I totally agree with you.

I've started a mobile UI and noted how difficult is to change some things, just because the layout is entirely locked inside tables.

Although to "boil the ocean" should be a lot o work, maybe a major rewrite of Jenkins interface (I liked the REST idea) will bring much more responsiveness and reduce the bandwidth traffic that Jenkins needs today.

Another great advantage is to adapt to distinct screens and layouts much better and to add the possibility to override the default stylesheet with plugins to fine tune.

I personally access Jenkins frequently via smartphone and in my company it is shown in a big screen and we have some difficult to lay out all jobs (we don't use extreme feedback plugins). With a more semantic page design, based in CSS, it could be more easy to adapt.

If you want to make it happens, I want to collaborate.

Em 26/05/2014 10:54, "Tom Fennelly" <tom.fenne...@gmail.com <mailto:tom.fenne...@gmail.com>> escreveu:

   Hi guys.

   I've just started looking into ways in which we can "refresh" the
   look and feel of the Jenkins UI, as well as looking at tackling some
   of the main usability issues.  I've really only started, but have
   committed a small bit of code to a branch on github at
   https://github.com/tfennelly/jenkins/tree/ui-refresh.  As you might
   notice... Daniel Beck has already posted some good comments/feedback
   on the commit
   
<https://github.com/tfennelly/jenkins/commit/d586be517616a3ba33ac11c6b5a85965d473c8ab>.

   What I've experimented with so far:

    1. Tweaking the main layout in
       core/src/main/resources/lib/layout/layout.jelly (and added some
       CSS to style.css).  Everything was layed out with tables, so I
       changed that to use divs instead, allowing us to more easily do
       things like make the sidebar disappear on small screens (if that
       was a good idea) etc etc.  Here's a screenshot of that:
       
https://www.dropbox.com/s/vngs5jjailatanq/Screenshot%202014-05-26%2012.49.31.png
    2. Modified the main project/job configuration page, in an effort
       to make it less cluttered, by adding accordions for the
       different config sections.  The only way I found I could do this
       was to wire in some javascript to manipulate the page
       post-rendering.  Kohsuke says there's a way of doing the bulk of
       the DOM manipulation within Jelly templates, but I failed to
       work that one out yet - I'm sure it will be "obvious" after I
       see it :)  Not sure if accordions are the correct choice.
         Here's a screenshot of what it looks like:
       
https://www.dropbox.com/s/wsy96r1czhzhy5z/Screenshot%202014-05-26%2012.54.39.png

   The above commit obviously breaks things e.g. the breadcrumbs + some
   of the styling is screwed up (I added Twitter bootstrap, causing the
   css's to clash).  What I've done so far is really just hacking to
   see what we could do.  I'm keen to hear the opinions of the
   community... what people thing we should concentrate on... what
   should we avoid... what are the risks etc etc.  I'm aware there is
   some prior art in this area e.g. OHTAKE Tomohiro's work
   <https://github.com/jenkinsci/jenkins/tree/ui-changes>, the Simple
   Theme Plugin
   <https://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin>
   and others.

   General comments/challenges/risks, as I see it:

    1. Jelly + Stapler are not the easiest to work with.  At least I've
       found it quite difficult to figure out where to make changes.
         Sometimes it was obvious.... other times it was anything but
       e.g. tweaking the project config page to get Jelly to create a
       series of <table> elements (Vs one uber <table>).  In the end...
       I found it easier to do it post-rendering via Javascript, which
       is not good imo.
    2. What will be the effect on plugins of changing project config
       layout.  I already see some strange behaviour e.g. I added an
       "Execute shell" build step... it works fine in the "uber
       <table>" layout, but is screwed up after I manipulate it - prob
       easy to fix, but still an indication that some of the plugins
       are sensitive to changes in their surroundings.
    3. Use of <table> for layout seems to be quite popular Vs using
       <div> + CSS.
    4. New more "modern" icons?

   After a few brief conversations with some of my colleagues at
   CloudBees (Kohsuke, Jesse Glick, Mic Neale and others), it seems
   like the most "doable" approach for now is to stick with making
   changes to what's there right now i.e. jelly templates, javascript
   and CSS.  We also talked (not in detail) about the possibility of
   working towards more modern technologies and approaches e.g. a
   Single Page App using the Jenkins REST API Vs the current
   server-side approach with Stapler and Jelly.  To do that now,
   however, seems a bit like trying to "boil the ocean" (quoting one of
   the guys there).  What do you guys think?

   So I hope there's an appetite/interest in this and I hope people
   will let us know where they would like to see this go (or not, as
   the case may be).  And of course, if anyone is interested in getting
   involved in a "hands-on" way, then that would be even better :)  I
   think the next steps are for me to gather peoples opinions and
   formulate an actionable plan that people can see and comment on if
   they want to.

   Regards,

   Tom.
-- You received this message because you are subscribed to the Google
   Groups "Jenkins Developers" group.
   To unsubscribe from this group and stop receiving emails from it,
   send an email to jenkinsci-dev+unsubscr...@googlegroups.com
   <mailto:jenkinsci-dev+unsubscr...@googlegroups.com>.
   For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Jenkins 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to