Guillaume Lerouge wrote:
Hi Asiri,
On Thu, Sep 17, 2009 at 1:09 PM, <[email protected]> wrote:
Hi Asiri,
Here is some feedback about the live table since I have been using it on client projects: + things work well with the standard version - I was a pain when I had to add a custom column with information from the documents in the live table - performance when filtering a lot of documents
Hi All,
I'm working on designing LiveTable 2.0 macro, an xwiki/2.0 macro that is supposed to work similar to current LiveTable (say 1.0) Macro. By looking at LiveTable 1.0 macro code I encountered few problems that confuses me a lot.
* First, LiveTable macro is different from other macros (those I have seen / written so far) in which the generated content is "live"... Normally macros replaces the macro block with some other generated content but here LiveTable macro makes use of AJAX to fetch content dynamically. So the question, is LiveTable a macro or is it something else? Stuffing JavaScript/AJAX code inside a rendering 2.0 feels unfamiliar to me.
* Second, existing LiveTable macro can be viewed in several ways:
1. Way of presenting a list of documents containing an object of a specific class.
2. Way of presenting a list of documents matching a criterion.
3. Generic way of presenting information mactching a criterion. I would like the main purpose of the live table to be the display of a list of documents from the wiki. It should be up to the user what documents the live table displays (with objects - 1, a query result -2).
I'm having a hard time figuring out what should be the exact purpose of LiveTable 2.0 macro, should it be same as LiveTable 1.0 macro?
I agree with Oana on this one. The Livetable can be used to suit any of the purposes you stated. However if we want to keep the macro as simple as possible we could use it only for purposes 1 & 2 and tell developers to use the underlying code when trying to achieve 3 since it most cases that's what they"ll end up doing when they want to add custom rows, data sources etc...
1) is the most useful when it comes to writing basic applications -> it would allow an application writer to easily create a dynamic list of the items of any given class. I think it's the most important for "basic" users of this macro
2) is how the livetable is used on more ambitious applications, requiring a custom data source to be written -> it's used by "advanced" users of the livetable
That's not necessarily true. The default JSON source supports tables without objects, and right now supports certain filters (like document's space or the fact the document is orphaned or not). This is how are built the AllDocs, SpaceIndex and OrphanedPages UIs in XE. For me the 2.0 syntax livetable should be user-oriented, not developer-oriented as the velocity one is, and doesn't need to support custom JSON source (at least not in a first version). Here how I see it : {{doclist /}} // displays all documents on the wiki with no restriction {{doclist creator="XWiki.JohnDoe"/}} //displays all docs created by John Doe {{doclist class="Blog.BlogPostClass" /}} displays all docs containing a Blog Post {{doclist class="XWiki.SchedulerJobClass" space="Scheduler" /}} displays all docs containing a scheduler job in the Scheduler space I think most of the metadata carried by XWikiDocument should be supported by the table (dates, author/creator, tags, etc.) I will think a little about how columns parameters should be expressed, probably using the macro's content, with a default on standards columns. Jerome.
3) is the same as 2 in the context of XWiki since everything is a document ;-)
Thus you should make the macro aiming at 1) and 2)
-> Either the user specifies an object name and the macro displays documents holding such an object
-> Or the user specifies a data source document and the macro displays what the data source tells it to
WDYT?
Guillaume
* Third, LiveTable macro uses several resources.
1. XWiki.LiveTableResults
2. XWiki.LiveTableResultsMacros
3. LiveTable JavaScript widget & CSS
I would like to for the javascript API to be extended, being able to listen to more events(not just xwiki:livetable:newrow).
If we decide that LiveTable 2.0 macro should serve the same purpose as LiveTable 1.0 macro, should these resources be reused? (within the 2.0 rendering macro)
Please help me to clarify these issues, I'm a bit lost here.
Many thanks.
- Asiri _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs