Pl Manager UI Discussion
Dave wrote:
Now that we have a (mostly) functional extended plugin manager system, we need to re-factor the UI for plugin management overall.
-
There should be exactly one large list for all plugins, new and legacy, installed, or not.
-
The panel for each plugin (by name) should provide information on the current state of the plugin, and controls to allow manipulation of it (install, activate, upgrade, downgrade, etc.)
-
There should be a simple control for the list allowing global selection of the advanced plugin channel in use, always visible.
-
There should be an "update catalog" button, always visible.
-
There should not be multi-level popups for advanced functions. At most a single level of popup dialog.
-
There should NOT be popups showing incremental status of the various operations. I understand that this is very useful during development, to monitor the operation of some complex state-machine code. But this is too distracting for our target user base.
I understand that the "biggie" here is integration of the two lists.
Lots of code, and won’t be done in a day. The rest will be subject to
tweaking as we move along. But I am certain that we should make this
effort to harmonize and simplify the UI now, before we even try to
introduce the new plugin concepts in the wild. After all, we all hope
that in a year, there will be NO interesting legacy plugins….
Dave
'==============='
Rick wrote:
Selection of a "Channel" is intended to be selection of a Github Branch
from https://github.com/OpenCPN/plugins/
There is a one to one correspondence
Channel = URL
-
Alpha = [[https:github.com/OpenCPN/plugins/tree/Alpha|https:github.com/OpenCPN/plugins/tree/Alpha]] Create PR for your own meta-url (I created a new branch rg-alpha with a meta-url, once merged I could test plugins using the meta-url) * Beta = [[https:github.com/OpenCPN/plugins/tree/Beta|https:github.com/OpenCPN/plugins/tree/Beta]] Add your xml files, compile a new ocpn-plugin.xml, check it and then make a PR. * Experimental = [[https:__github.com/OpenCPN/plugins/tree/Experimental|https://github.com/OpenCPN/plugins/tree/Experimental]
However we are actually looking for the ocpn-plugins.xml catalog for each of these branches so it is actually this correspondence
-
master = https:__raw.githubusercontent.com/OpenCPN/plugins/master/ocpn-plugins.xml]
-
Alpha = [[https:raw.githubusercontent.com/OpenCPN/plugins/Alpha/ocpn-plugins.xml|https:raw.githubusercontent.com/OpenCPN/plugins/Alpha/ocpn-plugins.xml]]
-
Beta= [[https:raw.githubusercontent.com/OpenCPN/plugins/Beta/ocpn-plugins.xml|https:raw.githubusercontent.com/OpenCPN/plugins/Beta/ocpn-plugins.xml]]
-
Experimental = [[https:raw.githubusercontent.com/OpenCPN/plugins/Experimental/ocpn-plugins.xml|https:raw.githubusercontent.com/OpenCPN/plugins/Experimental/ocpn-plugins.xml]]
-
Custom= User defined url such as * Custom= [[https:raw.githubusercontent.com/rgleason/plugins/rg-alpha/ocpn-plugins.xml|https:raw.githubusercontent.com/rgleason/plugins/rg-alpha/ocpn-plugins.xml]] * Custom=[[https:__raw.githubusercontent.com/rgleason/plugins/Alpha/ocpn-plugins.xml|https://raw.githubusercontent.com/rgleason/plugins/Alpha/ocpn-plugins.xml]
When the user selects from the dropdown one of these Channels or set
Github Branches both the "Channel" and the underlying "URL" must change
and the catalog data fetched from the respective website url, read into
the Plugin Manager List and finally displayed properly.
There is no reason this can’t be clearer.
-
Pick the Catalog
-
Pick Update which updates to the most current catalog.
-
Plugin Manager List Displays the respective ocpn-plugins.xml
If it has trouble doing this have the appropriate failure messages:
-
Internet Connection Lost.
-
Incomplete transmission. Try again.
-
Catalog corrupted or not formatted properly and cannot be used.
-
Catalog ocpn-plugs.xml does not exist on the website
This does not require a complicated menu system, it could be a drop down Channel selection at the top of the Plugin Manager Listing, with an Update button, which loads the new catalog and displays it below.
Then there some Advanced functions needed.
-
"Custom" Catalog , treat this the same as the Channels (Branches). This also be n the drop down menu at the top of the Plugin Manager List, and when selected it brings up a URL field where the user can enter the URL for a custom catalog. Later a programmer can add URL memory for previous URL selection, maybe even allowing change of "Custom" to some user defined name.
-
Need to "rollback" to a previous "Catalog"
I believe this is the same as going back to a previous github commit and Updating.
The reason this is needed is if a new Catalog is corrupted and the user needs to rollback.
It would be nice to be able to step forward and back through commits.
Rollback functionality is represented by the current "Advanced Catalog/Manage-Plugin-Catalog" menu to a greater or lesser degree.
Why not label it "Advanced Catalog"
Show the Channel that has been selected previously, for Example "Alpha"
or "Custom"
Then just show the current and last 2 commits with ocpn-plugins.xml (if
they exist) and the commit date
Advanced Catalog
Channel: [Alpha]
"Select as active Catalog"
(Current [Date]) (As a selection button)
(Recent [Date]) (As a selection button)
(Previous [Date]) (As a selection button)
Note: Selection of these buttons complete the action (no need to hit
"Done"), the menu closes and the Plugin Manager List redisplays the
catalog.
Perhaps we will want to know in the list, which channel an installed plugin came from? Experimental, Alpha, Beta, master, Custom?
Perhaps have a opencpn.ini setting for PluginInstallerDebugMenus=yes during this process?