We currently have an issue with Ginger/Gingerbase navigation bar in small screen resolutions and we also have huge tables in System Services page. Since working on the navigation bar involves editing Wok styles, I'm sending this e-mail to Wok mailing list instead of Ginger group.
I looked for successful combinations of sidebar + horizontal navigation bars and so far I couldn't find any example that would exactly fit with Wok and its plugins. The majority of examples I'm listing below are very good with traditional pages with deep subcategories and the navigation bars can work as sitemaps and replace breadcrumbs:
* http://www.worldwildlife.org/ - https://vimeo.com/166812605
* https://www.theguardian.com/us - https://vimeo.com/166812599
* https://next.ft.com/fastft - https://vimeo.com/166812597
Wok currently has two navigation levels. Kimchi doesn't have multiple sections but Ginger and Gingerbase uses collapsible panel groups to separate sections that could be third level elements on a sidebar. This was already discussed when we moved some features from Ginger to Gingerbase but I think we could achieve a functional sidebar with up to three levels without using a "landing page" for second-level elements.
In the attached screenshots ginger_sidebar1 and ginger_sidebar2 are mockups for an off-canvas menu that would slide the main content and hide itself once an option is clicked. It would also hide the other panel accordions. Here are two off-canvas menu in action:
Since this would require a change in Wok tabs and ginger/gingerbase tab-ext.xml, I think we could implement something entirely different that would with Wok and all plugins. This site menu only have first-level options on the sidebar but I think we could add collapsible links like a tree-table menu: https://www.sitepoint.com/
In addition to the sidebar, we could put a search/filter input on the top that would allow the user to type the desired option and show its position on the menu. Please take a look at the remaining attached screenshots. I did one variation with the content aligned to the center and another one aligned to the left.
This is an RFC for "Make AsyncTask stoppable" in Wok (and any other plugin). The
main idea is give to user a way to stop a Task that is still running, cleaning
all references and processes and setting the Task status to "killed".
To do this, the Task API need to be modified, by implementing the DELETE method
in Task Resource. Said that, the API will look like:
### Resource: Task
A task represents an asynchronous operation that is being performed by the
* **GET**: Retrieve the full description of the Task
* id: The Task ID is used to identify this Task in the API.
* status: The current status of the Task
* running: The task is running
* finished: The task has finished successfully
* failed: The task failed
+ * killed: The task was killed by user
* message: Human-readable details about the Task status
* target_uri: Resource URI related to the Task
+* **DELETE**: Delete the Task
* **POST**: *See Task Actions*
*No actions defined*
Since an AsyncTask is basic a thread running in the system and this thread can
execute a pure Python method or a background command (by using run_command()
from wok.utils), the developer must pass as argument to the add_task() a method
to be executed by the DELETE operation, called here as 'kill_cb'. With this
idea, the add_task() method and also the AsyncTask constructor will be like:
def add_task(target_uri, fn, objstore, kill_cb=None, opaque=None):
def __init__(self, id, target_uri, fn, objstore, kill_cb=None, opaque=None):
If none kill_cb is passed, the task will not be able to stopped and an error (or
warning) message will be raised to user if DELETE operation is executed.
Otherwise, the kill_cb method will be executed by kill() method (responsible to
execute the DELETE operation) of AsyncTask class and its status set to 'killed'.
If you have any comments or suggestions, please feel free to reply to ML.
Thanks and bestr regards,
Paulo Ricardo Paz Vital
Linux Technology Center, IBM Systems
available in distro repos. So let's discuss how i can do it:
Fedora has jquery, lodash, moment, typeahead and es5-shim libraries
No library available
Ubuntu has bootstrap, jquery, jquery-ui e lodash.
As not all libraries are available, i received a suggestion to use a
parameter at configure.ac, like --with-spice, to choose libs from rpm or
from the code. So, what is best:
Use single parameter (--use-js-from-rpms)
I will need to check the distro by code and generate the html templates
with the script tag changed.
Use parameters with distros (--ubuntu-use-js-from-rpms)
Same as above, but distro will not be checked.
Ramon Nunes Medeiros
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878