Proposal & Implementation
Similarly to issue #1973, the overall goal is to make it possible for editors of themes to feel comfortable working directly in the theme editor. Specifically, I propose that the following be made possible:
- users should be able to clone files from another theme to the current theme, e.g. fragments, rapido apps and images. I implemented this for Rapido apps in my GSoC 2017 project.
- users should be able to download and install themes from a store TTW from an external site. This would be similar to Wordpress and other major CMS theme/plugin stores.
- Drag and Drop upload (Almost finish)
- Implement ACE editor’s autocomplete feature in Plone theme editor for code hinting.
- help should be displayed in context and not load off-site (it may need to be rewritten to be more Plone specific rather than linking to the diazo.org site)
- new features identified above working
- documentation on how to use the new features
- clean upgrade from the old theme editor to the new theme editor
- Users should be able to change the skin of the theme editor, i.e. change the look of the theme editor. There are cases where individuals may have visual impairment when it comes on to certain colors. By default, ACE Editor allows developers to set the theme to be used when instantiating the editor. With the suggested new theme editor, it will allow users to update the skin from a drop-down menu with all available themes, similar to changing the skin for c9 or sublime text. The selected skin will be stored in localStorage to be activated upon visiting the theme editor.
- Users should be able to revert to a previous version of a file from the version history of the file. This should work similar to Google Docs document history mechanism. Old revisions of the file should be loaded from ZODB, but would be a good amount of backend coding. This feature was recommended by Asko Soukka from the plone community.
- TTW Git, Apart from uses git versioning to do the file comparison mentioned above, users should be able to push their theme directly to a git repository.
The aim of this project is to build a fully stable user-friendly version of the Theme Editor that supports automated backups, version comparison and integrated service component with git and external services.
- improve the UX/UI for the theme editor, especially for web accessibility.
- reduce the worry about overriding themes upon upload even if someone made a change that you don't know about.
- remove the need to download images, fragments and other files from one theme and upload those file ton another theme.
- instead of cloning the theme and having many version of it shown in the theme editor, the editor versions the theme for you and allow you to revert or compare various versions of the theme.