Very nice Marius. This is great progress. I found a bug with ListClass items and some escaping issue. You can see the issue by editing the default XWiki.XWikiUsers class
Ludovic 2011/10/26 Marius Dumitru Florea <[email protected]> > Hi devs, > > I just committed a prototype of the class editor that will be used by > the Application Within Minutes. If you want to try it out, you can > either checkout the feature-applicationWithinMinutes platform branch > (see > https://github.com/xwiki/xwiki-platform/tree/feature-applicationWithinMinutes/xwiki-platform-core/xwiki-platform-applicationWithinMinutes > ) and build the latest XAR by yourself or you can download the > snapshot I put at http://ubuntuone.com/5dPv28OKz1p3ysY2ypjzrZ . It > requires XWiki Enterprise 3.2+ . Follow this steps after you import > the XAR: > > * choose an existing class or any document if you want to create a new > class > * add an object of type XWiki.DocumentSheetBinding and set the sheet > property to ApplicationWithinMinutes.ClassEditSheet > * edit the class/document in "Inline form" edit mode (simply click on > the Edit button) > > Notes: > > * I only tested the editor on Firefox for now but it should work on > other browsers too > * The "hint" and "required" meta properties are not saved yet. I > included them on the prototype just to show you the direction I'm > going in. > > A few words about the design: > > The class editor is an edit sheet for XWiki documents holding class > definitions. The editor supports only property types described by > FormFieldClass, which are grouped by FormFieldCategoryClass. For > instance ApplicationWithinMinutes.TextArea has an object of type > FormFieldClass which specifies the field icon, category and the list > of meta (configuration) properties that should be displayed. Moreover, > ApplicationWithinMinutes.TextArea holds a class definition with a > single TextArea field that serves as a template for all TextArea > fields added through the class editor. The class editor can store the > default field values in the class template and can generate a basic > class sheet (binding included). > > Open questions and limitations: > > (1) The editor relies heavily on JavaScript. If we're going to replace > the current class editor with the one used by the Application Within > Minutes then we need to decide if it needs to work without JavaScript. > > We have a no-JS compatible editor. This one does not need to. You can have a fallback to standard class editing > (2) The editor doesn't save intermediary changes (like the current > editor does when you add a new field or when you delete a field). All > changes are saved when you hit Save. > You could indeed save on each click on confirming a field > > (3) I don't think the Preview button is really needed because the edit > form already offers a preview of how the sheet will look like > Correct it's useless here. Now when embedded in the AppWithinMinutes app this will be even more relevant. > > (4) The problem with the Save & Continue button is this: the action > servlet filter forwards the request based on the action_* request > parameter. In order to prevent this (because I want to handle the > submit by myself) I renamed the submit buttons to xaction_* but > actionbuttons.js looks explicitly for action_saveandcontinue submit > button, and since it doesn't find it, it doesn't include it in the > POST request parameters, so I don't know the request is a Save & > Continue request. > You could add it in JS dynamically > > (5) Because I process the submit myself (i.e. the form action is '') I > need to find a good way to handle errors so that the user doesn't > loose unsaved changes due to an invalid value (e.g. invalid field > name). > You should have JS validation indeed > > (6) Although the UI allows it, you can't really swap the names of two > fields (e.g. rename 'title' to 'description' and 'description' to > 'title'). > You'll probably need some JS controls of what's allowed and not. That could include field conversions (allowing to convert a field if there is no data yet) Ludovic > > I'm waiting your feedback. > > Thanks, > Marius > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Ludovic Dubost Founder and CEO Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

