• Buildout Builder discussion

  • 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