A Week with Toolbar, Part 1

One week of work on project of my choice ... and getting paid for it ... it's almost like a dream.

I've got a generous request from Pretaweb if I have time to work a bit on bringing plone.app.toolbar closer to production ready state. Over the past year they collected some smaller amount of money which they wish to spend on getting closer to what we can call theming nirvana. Just imagine not worrying about overriding styles of edit form ever again? Its theming nirvana I tell you. Or to quote them directly: "The reason we are putting money into it as its an upgrade to the Plone UI which improves usability and brings some sexiness back into Plone which has had some more technical excitment brought into it recently but still looks very much the same."

I was hired to work on this issue whole week (7 days), with 3 days of work already behind me. I'll be giving out second report at the end of the week.

Goal for this week is to get all existing overlays from edit bar (green bar) into working state. Out of scope for this week are just 2 things:

  1. overlay for Contents tab
  2. and widget for related items

Whats been done until now

Its important to mention that this widgets which I'm going to show below can be used without any plone.app.toolbar/deco and should work with any Plone 4 site.

Also currently only Archetypes is supported, but widgets are backend agnostic and can be easily implemented for Dexterity as well, but first I'll make sure they work for Archetypes.

Initial work

  • Got buildout.deco environment ready and up to date with latest releases of Plone.
  • Rework plone.init.js which was planned long time ago. I borrowed some concepts from patternslib and Backbone, but I kept it small and simple (less then 160 lines, which half of them are comments or blank lines). New script is called patterns.js now. I won't go into detail about it now and I'm going to save this for some other blogpost.

Calendar widget

Library I chose for our calendar is pickadate.js. I've tried and tested many of them, but this one was far superior then any I tried. Check screenshots and let me know what you think in comments below.

calendar widgetcalendar open

Autocomplete widget

Autocomplete widget is used for 3 fields: Tags, Creators, Contributors

Library I chose for this widget is textext.js. It's a mature with highly active group of contributors and offers almost unlimited customization.

tags fieldtags field opencreators fieldcreators field open

Goals for second part of week

  • Migrate to new infrastructure some more javascript which is used in forms. (alert on form submit, form tabs)
  • Overlays, overlays and again overlays of edit bar (green bar). (add/edit form, rules form, sharing form, rename form, advance state changing form, default view form)
  • (if there's time) Growl like notifications.

Where to go after this week

Since I'm at the moment available for hire I was also thinking of opening a Chipin to get sponsorship to continue my work on plone.app.toolbar instead of looking for new clients and doing client work.

Would any of you be interested in chipping in for this?

I'm also happy if somebody else gets the funds and finishes this. Working CMSUI is few weeks of work away and all I want is to be finished. So if you're interested in financially helping this out or actually working on it please leave some comment or email me.

If anybody wants to start digging into code, please ping me on IRC and I'll be gladly to help you out and get you up and started with plone.app.toolbar.

comments powered by Disqus