Editable Buildout Mock-Up
from
xkenneth
on Jul 15, 2008 02:56 AM
All,
Getting back in the groove here. I've done a mockup of what I think an editable buildout interface should look like:
http://www.openplans.org/projects/buildoutbuilder/mock-ups
Implementing this mockup will encompass all features described in phases two and three.
I'll go over this in an ordered manner.
The Navigation/Title is fairly self-explanatory. As before we'll still have alot of pre-configured buildouts available. The mechanisms for storing these in a .tar.gz or directory format and displaying them exist, I still need to find a way to provide users with a download. This is secondary at the moment.
Left Tab Drawer
I'd like to have this as sort of a work-bench with pre-configured tools. As you notice there's 3 "drawers." My goal is to allow you to drag and drop pre-configured parts and recipes directly into the main editable buildout window. The buildout starting points will allow you to pull up a new template as a starting point.
Main Editable Buildout
The top-most division will allow a user to edit the buildout part specific items, such as eggs, find-links, develop-dirs, etc. I'd like to do this using AJAX (I've experimented with KSS so far) to keep it nice and clean. The '-' sign will allow to delete an option while a '+' sign will allow you to bring up a form to add a new one. I will also need to add a button to edit the options. After the top section, the rest will be reflective of the buildout parts. Options will be available to add in the '+/-' fashion. In order to reference a an option from another part, I'd like you to be able to drag and drop, or perhaps shift-drag and drop the option from the originating part.
This setup is particularly simplistic. I'd love to hear feedback.
Implementation:
So far I've been experimenting with the code mechanics in order to make this interface possible. It seems like I have to write alot of boilerplate and repetitive code. For example, this is the process in order to allow a user to add a new find-link. The template reads through the buildout, renders html reflecting it's current state, and sets up initial tags/text for adding extra find-links. A user clicks on the corresponding "+" and a KSS call replaces the '+' with form html generated by zope.formlib. After the use enters the information, another KSS call validates the data, modifies the BuildoutManager, and then updates the DOM. Is there a better way to do this? I basically have to write the same code to handle develop-dirs, find-links, eggs, etc, and then a piece of code that should be generic enough to handle parts.
What are your thoughts?
Also I need to start planning for the +/- options in the newer buildout spec.
Regards,
Kenneth Miller