dotnetic Posted September 16, 2019 Share Posted September 16, 2019 Modules Manager 2 provides an easy to use interface to download, update, install, uninstall and configure modules. It is meant to provide an optimized alternative to the core ProcessModule dashboard. Maybe @ryan agrees to merge it to the core at some point when it is finished and polished. Features: Seamlessly download, update, install, uninstall or delete modules Live-Search (aka find as you type) for module names Live-Search (aka find as you type) for categories Browse new and unkown modules from the modules directory on modules.processwire.com Choose your favorite layout (cards, reduced cards, table) Modern UIKit design (therefore only works with AdminThemeUikit) Caches the module list from modules.processwire.com directory locally. What is Modules Manager 2? Why a new module manager? Some people including myself think that the actual module installation in ProcessWire could be improved in some places. Make it easy for ProcessWire beginners and power users Offer better discoverbility to find the right module Make it easier and faster for powerusers to manage modules A manager that list all official modules is a feature, that many other frameworks/CMS's like ModX, WordPress or PrestaShop have by default. What are the disadvantages of the actual core module interface? Installation of a module is not very user-friendly: You have to be aware where to get new modules, search for a module, copy or remember the module name or URL, go back to your ProcessWire installation, paste the module name(URL, click on "get module info" and finally install the module It only displays installed modules, not the ones that are available in the modules directory Uninstalling a module requires you to go to the module detail page, click a checkbox and then submit the change. After that you have to go back to the module overview page. It only displays installed modules, not the ones that are available in the modules directory, so it makes discovering modules hard BETA software Use this module at your own risk. I am not responsible for any damage or unexpected behaviour. Some things might not work fully, please see the TODO list for details. I need your feedback and help This module is still in development and I am happy to discuss with you and get some feedback. What do you like? What is missing? What could make the process even easier? Ask, suggest or provide pull requests. You can download the module at https://modules.processwire.com/modules/modules-manager2/ or from Github: https://github.com/jmartsch/processwire-modules-manager2 31 1 Link to comment Share on other sites More sharing options...
netcarver Posted September 16, 2019 Share Posted September 16, 2019 Jens, this looks really nice! I like the to-do list as well. 1 Link to comment Share on other sites More sharing options...
kongondo Posted September 16, 2019 Share Posted September 16, 2019 (edited) Hi @jens.martsch, This looks awesome! Even without the todo list, this is a huge improvement to the current way of installing and searching for modules. I really like the listing of modules. Some quick questions: Why call it Modules Manager 2? Why not just ModulesManager? I might have missed it; Is it possible to read/find modules that have been moved physically to the modules folder on one's site but have not yet been installed? This will cater for modules that are not online in ProcessWire's module's directory Great work! PS: Nice overview video, btw! Edited September 16, 2019 by kongondo 1 Link to comment Share on other sites More sharing options...
dotnetic Posted September 16, 2019 Author Share Posted September 16, 2019 2 minutes ago, kongondo said: Why call it Modules Manager 2? Why not just ModulesManager? Because Soma's module is called ModulesManager. This module is meant as a successor to ModulesManager. Regarding question two: Yes this is possible. The option to download a module from a URL will be added also. Link to comment Share on other sites More sharing options...
kongondo Posted September 16, 2019 Share Posted September 16, 2019 5 minutes ago, jens.martsch said: Because Soma's module is called ModulesManager. My bad. I thought his was ModuleManager ?. 6 minutes ago, jens.martsch said: Regarding question two: Yes this is possible. The option to download a module from a URL will be added also. Great! 1 Link to comment Share on other sites More sharing options...
Peter Knight Posted September 17, 2019 Share Posted September 17, 2019 12 hours ago, jens.martsch said: I need your feedback This module is in development right now, and I am happy to discuss with you and get some feedback. Hi Jens It looks great and is badly needed too. Did you want feedback to be provided privately or on this thread? 1 Link to comment Share on other sites More sharing options...
dotnetic Posted September 17, 2019 Author Share Posted September 17, 2019 Hey Peter, feedback can be provided here, so everyone is on the same page and can discuss together. I am sure you guys will find some more things to talk about, as soon as I publish the module. There is a thing that I am not really happy with, but have to find a better solution: The vue template is embedded right in the module's php, and I would like to change that, so an external automatically genererated (vue-cli) HTML file will be included. Maybe some of you are experienced with this and can help me out. I hope to find time at the weekend to publish the current state of the module. Link to comment Share on other sites More sharing options...
dotnetic Posted September 17, 2019 Author Share Posted September 17, 2019 Possible concern about including the module in the core: The module depends on vue.js which adds a new library to the ProcessWire ecosystem. I am biased about using vue.js as it allows two-way-data-binding. So when something changes in the module JSON file, changes can be reflected instantly without reloading or rerendering the whole view. It also allows to quickly filter modules, much quicker than it was possible with HTML which is in the DOM. Link to comment Share on other sites More sharing options...
Peter Knight Posted September 17, 2019 Share Posted September 17, 2019 Ok my feedback is mainly just UX/UI 1. I love the cards layout and how much info is presented. It's informative without being crowded. I think a list view is also needed too and a user should be able to flick between two. Particularly when viewing modules with an update, I want to quickly scan down a compact list and see what might require an update. 2. On the filters for 'Show only installed', 'Show only uninstalled', 'Show only updateable, 'Show most recommended', 'Picked', I wonder if these could be a little more compact and less wordy. IE a simple dropdown with a title of Display and then 4 shorter options of Installed Uninstalled Updatable Most recommended Picked Happy to do a quick mockup/wireframe if that's any use to you. 3. Will 'Show only uninstalled' display modules I have installed and subsequently uninstalled or display everything that's not installed? Might be a better label for this? 2 Link to comment Share on other sites More sharing options...
OllieMackJames Posted September 17, 2019 Share Posted September 17, 2019 I love the idea, I used soma's modulesmanager with much pleasure, so look forward to this one as well! Good work @jens.martsch Link to comment Share on other sites More sharing options...
dotnetic Posted September 17, 2019 Author Share Posted September 17, 2019 @Peter Knight The filters for installed uninstalled could be also seen as a category and I think I will integrate them into the category select. "Show only uninstalled" are modules that are already downloaded but not yet installed. I am not even sure if this option makes any sense. Picked, is not an option. It was just a demo, which of the filter I selected. 1 Link to comment Share on other sites More sharing options...
louisstephens Posted September 17, 2019 Share Posted September 17, 2019 1 hour ago, jens.martsch said: "Show only uninstalled" are modules that are already downloaded but not yet installed. You could just rename this to "Inactive" (downloaded and not installed) and "Active" (downloaded and installed). 1 Link to comment Share on other sites More sharing options...
dotnetic Posted September 18, 2019 Author Share Posted September 18, 2019 @louisstephens I had this discussion in the inital topic "Revamped module install interface" and @kongondo replied Quote I think let's stick to convention. ProcessWire has always used installed ?. For me, it means the module is installed in the ProcessWire system. A module that is present on the disk but not yet installed just means it is not yet part of the ProcessWire system. but I am still not convinced and think active and inactive would be better labels. What do you other guys think? Link to comment Share on other sites More sharing options...
LostKobrakai Posted September 19, 2019 Share Posted September 19, 2019 On 9/16/2019 at 10:43 PM, Jens Martsch - dotnetic said: You have to be aware where to get new modules, search for a module, copy or remember the module name or URL, go back to your ProcessWire installation, paste the module name , or URL, click on "get module info" and finally install the module It only displays installed modules, not the ones that are available in the modules directory, so it makes discovering modules hard. I really feel this is a good thing that it's still only working that way. I get that there's no great way to discover modules, but I also feel that "discovering modules" is a totally different tasks to "managing modules on the system", which is what the current modules section in processwire is about. The ability to install just by name from the modules directory is imho a nice to have convenience and not an unfinished start of integrating the modules directory as the source for modules. The modules directory is just one source for modules, possibly the biggest at least for open sourced modules, but not the only one. This is not to say though that a module filling the gap of "discovering modules" isn't useful and what you created seems like a very nice way to browse the directory and move a module from being listed there to actually being downloaded/installed. I'd personally wouldn't like to see the current module section replaced though. On 9/17/2019 at 12:12 PM, Peter Knight said: I love the cards layout and how much info is presented. It's informative without being crowded. I think a list view is also needed too and a user should be able to flick between two. Particularly when viewing modules with an update, I want to quickly scan down a compact list and see what might require an update. This hint's at the reasons for the above. Browsing the modules directory is great with a cards view. Maintaining installed modules is a totally different task. It needs modules to be quickly scanable - table layouts are way better at that -, it needs to highlight different data - a version is more important than a lengthy description of what the module does, or how many hearts it got - and I'll also hardly switch rapidly between browsing and maintenance so it doesn't need to be co-located in the interface. On 9/16/2019 at 10:43 PM, Jens Martsch - dotnetic said: Integrate the Readme or changelog of a module That part I'd like to see in the core (a bit depending on how it's implemented though). This is an improvement to the "maintaining modules" part of having installed modules, but rather nice to have when browsing modules. To summarise: I really like the problems you're tackling with your module, but personally I'd like to see the efforts split up. The part about "discovery" is great, but certainly not essential to processwire and should in my opinion be either not in the core or at least not installed by default. The part about better maintenance of modules and maybe touching up the UX of the current modules section by lessening the clicks to handle certain usecases is something anyone would benefit from. 2 Link to comment Share on other sites More sharing options...
dotnetic Posted September 26, 2019 Author Share Posted September 26, 2019 Here is a little update. Not much to see on the frontend side, but I added a whole build setup which generates the JavaScripts and stylesheets from a .vue file. These files will later be embedded into the module. This step allows me to develop quicker with hot media reloading and better debugging possibilities for vue. I don't even need a ProcessWire environment to make updates to the view, so this enables others to quickly jump in on this and help me with development. Added functions that remember the category or the module name. So you can even provide links for users, to guide them to a special module or category like so: http://localhost:8080/processwire/module/edit/?module=process404-logger Added a switch to switch between card and table layout. This is even remembered and restored after you close your tab or browser. The table layout is something that I plan to integrate at a later point when the main functions work correctly. As I am very busy right now with customer requests I don't have an official date for releasing the module yet. I hope that I can work on the weekend on it. 1 Link to comment Share on other sites More sharing options...
dotnetic Posted September 26, 2019 Author Share Posted September 26, 2019 Thanks for the feedback so far and even mentioning me in the pw.weekly issue ? On 9/19/2019 at 10:16 AM, LostKobrakai said: The ability to install just by name from the modules directory is imho a nice to have convenience and not an unfinished start of integrating the modules directory as the source for modules. The modules directory is just one source for modules, possibly the biggest at least for open sourced modules, but not the only one. In the standard ProcessModules section is also an input for entering the name of the module, which would download this module from the modules.processwire.com directory. ModulesManager2 simplifies and optimizes this process by providing the modules names in an autocomplete. I know that the modules directory is just ONE source, but that's how the standard in PW always was and I think we should have an official repository for modules. Think of it like the npm registry which is the main source for npm packages. Maybe in the future we could also add alternative module registries like in npm or other package managers, but I really don't know if this is needed. Options to upload a module zip file or provide a download URL like in the original ProcessModules will also be added soon. On 9/19/2019 at 10:16 AM, LostKobrakai said: Maintaining installed modules is a totally different task. It needs modules to be quickly scanable - table layouts are way better at that -, it needs to highlight different data Partly I agree with you, but every user is different and if you only want to update one module you can search for its name and click the update button. I've been planning from the beginning, to also offer a table based view, or a view with reduced information to quickly scan the modules. As you can see in the latest update there is an example table layout (not even nearly finished) to showcase what is planned later. Also we have buttons for filtering the cards or table view to show only modules which can be updated. I personally think that I would even use the card view for updating my modules, but that's just me. On 9/19/2019 at 10:16 AM, LostKobrakai said: and I'll also hardly switch rapidly between browsing and maintenance so it doesn't need to be co-located in the interface That's your opinion, but others (including me) may see this differently. In the latest update the chosen layout mode is remembered so you don't have to switch. I am even thinking about providing a button to switch between compact and detailed information which would be available for the table and the card view. This would allow someone regardless of the layout to view all information or only the most important bits. This is very easy to accomplish with vue. Maybe I hack something together, because I really like the idea. On 9/19/2019 at 10:16 AM, LostKobrakai said: The part about "discovery" is great, but certainly not essential to processwire and should in my opinion be either not in the core or at least not installed by default. I have to disagree on this point with you. I think the "discovery" process is good for all users, even powerusers like us. Sometimes I just don't remember a module's name but with MM2 allows me, to search for a term, which might be in the description and I find my module. That's just one example. Another one is that users might not even be aware what great extensions exist and with the modules directory integration they can get an overview. This is something that other CMS or ecommerce systems (like PrestaShop or Shopware) have integrated by default (not at least to earn money, but that's a different topic). But however, if someone does not like the card view or detailed information, he can switch and forget about it. One doesn't need to use all the features. I hope my reaction will not be seen as an offensive, because that is not my intention. Unfortunately, it can often seem that way when written. And of course it is also the case that one can have different opinions on a topic. Whereby anybody can be right. So you guys see, a lot of stuff is still planned, but before I integrate more and more stuff, I am working on the main features for the card view, then release the module and you guys can try it out, provide feedback or pull requests to make it even better. 2 Link to comment Share on other sites More sharing options...
dotnetic Posted December 18, 2019 Author Share Posted December 18, 2019 Guys, just to give you an update: I still want and have to work on this module before I can release it on github. I am changing a big part of the rendering of the actions, so they work either in card or in table view. Sadly I hadn't much time in the past, because I changed my company to a GmbH, had to design a new logo and website texts, and all that legal stuff that comes with changing your company. And don't forget about my customers, who also want their work done. I hope to get some time in the next weeks, so maybe I can work after christmas on this, but no promises. 6 Link to comment Share on other sites More sharing options...
dotnetic Posted February 11, 2020 Author Share Posted February 11, 2020 I worked hard on the module the last days, and rewrote much of the core logic and added some more features. I wanted to record a screencast yesterday, but my recording software ignored my mic. So I show you some annotated screenshots instead. Since then, many things changed again. Right now I am working on downloading and installing a module via a URL, and also making a transition to modal dialogs instead of panels, if applicable. I moved the whole button logic from the PHP script to a vue component. So I am flexible how to display the buttons, and I can reuse them in the cards and in the table layout: I added a reduced card layout, which moves the description of a module into the "more information" accordion: Updated TODOs with much more features to come. I will work on the module in the next 2 days and hope to make so much progress, that I can finally release the first version on github. 7 1 Link to comment Share on other sites More sharing options...
dotnetic Posted February 11, 2020 Author Share Posted February 11, 2020 Install from URL is implemented and almost working. Sadly the module can not be installed after the download, because I can't get the name of the module from the zip file. Maybe I can find a way, but later. Preview 2 Link to comment Share on other sites More sharing options...
dotnetic Posted February 12, 2020 Author Share Posted February 12, 2020 I just released the beta version on github. Updated my first post with the download URL. A new video is coming soon, as many features have changed. For example panels are only being used for a module's settings. All other actions are executed via AJAX and show a notification on success. Happy testing, and have fun with it. 4 Link to comment Share on other sites More sharing options...
adrian Posted February 12, 2020 Share Posted February 12, 2020 On 2/11/2020 at 2:52 AM, Jens Martsch - dotnetic said: Sadly the module can not be installed after the download Maybe you can find some useful code from the downloadAndInstall() method in my ModuleToolkit module: https://github.com/adrianbj/ProcessModuleToolkit/blob/09b437d888c270ffe01f3a80fc5dccab3136e42e/ProcessModuleToolkit.module#L1278 4 Link to comment Share on other sites More sharing options...
dotnetic Posted February 15, 2020 Author Share Posted February 15, 2020 OMG. My IDE prevented adding the dist files to the repo, so you had to generate them yourself. This is fixed now. Enjoy. Link to comment Share on other sites More sharing options...
dotnetic Posted February 15, 2020 Author Share Posted February 15, 2020 version 2.0.101 released * sanitize all class names for better security * optimize delete function to catch and display errors * unify methods a little bit more (same vars, etc) * remove some debug messages 1 Link to comment Share on other sites More sharing options...
dotnetic Posted February 15, 2020 Author Share Posted February 15, 2020 added new videos to first post 2 Link to comment Share on other sites More sharing options...
dotnetic Posted February 15, 2020 Author Share Posted February 15, 2020 module is also now in the modules directory at https://modules.processwire.com/modules/modules-manager2/ Still pending 6 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now