I’m liking Cockpit, great job! I noticed its pretty much pure jquery so far. TL;DR; have you considered using AngularJS?
As a bit more background; I work at Red Hat in the Java / Middleware / Integration side of the house (the JBoss Fuse & xPaaS team) mostly on a HTML5 web console for all things integration (like Apache Camel, Apache ActiveMQ etc). We used to use jquery + backbone a few years go; then after realising how much JS we were writing & how hard it is to maintain & refactor as UX requirements change; we saw angularjs and have never looked back:
since then we refactored all our code to use angularjs and gained massive amounts of productivity. We write relatively little JS now and spend most of our time writing/hacking HTML templates and directives (that are kinda like reusable HTML fragments - like the new Web Components spec).
The open source project for the java / middleware / integration console is called hawtio:
we started it about 18 months ago with one person full time and a couple more folks part time and we’re kinda blown away by what we’ve managed to achieve in that time - all thanks to angularjs.
We’ve so far created all these plugins - which in itself doesn’t really give justice to the sheer scope and functionality (e.g. a full camel EIP route designer, debugger & wiki are examples of 2 plugins):
One day I’d love to integrate Cockpit and Hawtio together more closely; so they can be combined or cross link to each other etc.
But the main reason for this brain dump was just to ask if you guys had looked or pondered AngularJS at all? I realise the JS framework world is full of many shiny things - I just wanted to say we moved from jquery+backbone to angularjs and its paid huge dividends; we’re now big fans. A few other UIs have done the same (e.g. dockerui and kibana for ElasticSearch).
Increasingly there’s going to be more PatternFly directives for angularjs; we’ve also created a library of directives in hawtio if you ever go angular please feel free to reuse:
(the site obviously uses hawtio directives itself too ;)
So please consider AngualrJS & I’ll gladly help if you need any angularjs advice or anything. Whatever you choose to use though; keep up the great work!
Twitter: jstrachan, fusenews
Open Source Integration
I've created a sample UI plugin for oVirt that displays a cockpit UI inside a subtab for a host in oVirt UI.
Please see attached an example screenshot.
I haven't found a way to limit the view to one server only on cockpit side (not via permissions either), so a user is able to navigate inside cockpit UI to "all", and manage all servers in the subtab, and not only the host that was selected in oVirt.
Is there a way to limit the view to a one server only?
If not, are there any plans to add such a functionality?
Please note that there's a bug regarding localhost/IP error resolving, that is also related to the use case of opening the UI for a specific host externally via a direct link.
I'd like to raise for discussion several suggestions for the UI.
Please see attached screenshot.
The part that is marked in red disappears every time a user presses some option ( system services, storage, networking, etc.)
Hence, if user selected category A (let's say storage), and now needs to work on category B (let's say Journal), there's a need to go through clicking in top nav menu on the server (which is a bit not intuitive because the user is already working in the "context" of this server anyway) in order to make the left menu appear, and only then selecting section B.
Hence - 2 actions (top click and left click) in order to manage different things in a same server.
I'd like to suggest to make this menu on the left "static" - always visible.
This way the navigation is much easier, the user always sees it and switching categories requires only one click.
Some categories seem to have few options, and hold basic and general info about the system (for example - "system information" and "shutdown and reboot"). Perhaps they can be merged into fewer categories, or/and be visible in the main view without the need to explicitly navigate to? Currently this view contains 4 graphs and has plenty of free space anyway.
(I mean here the same view that is present in the screenshot attached).