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

Reply via email to