I'd also like to know if we can support the use case of having a  
normal table for which we'd like to do filtering/sorting.

Could that be a special {{table}} macro that would use the  
{{livetable}} macro with a special source that takes the content of  
the {{table}} macro as the content to be displayed and extract from it  
both the content and the table definition?

Thanks
-Vincent

On Sep 21, 2009, at 2:22 PM, Vincent Massol wrote:

>
> On Sep 21, 2009, at 1:58 PM, Asiri Rathnayake wrote:
>
>> Hi Devs,
>>
>> I've been thinking about the new {{doclist}} macro syntax which is  
>> going to
>> be the successor of old livetable macro.
>
> Then there's a pb of name since doclist is about listing document  
> but livetable is about creating a table from a JSON source.
>
> Why not name it {{livetable}}?
>
>> Following is the syntax I have in mind:
>>
>> {{doclist <macro_parameters>}}
>> |=(% <column_spec> %) column_name |=(% <column_spec> %) column_name  
>> |=(%
>> <column_spec> %) column_name  ...
>> {{/doclist}}
>>
>>
>> [macro_parameters]
>>
>> class="" ## bounds the table to a class.
>
> I don't think this class parameter should be here. IMO it's a  
> special source( json source) that will do that.
>
>> source="" ## can be a document name or a url. (will be ignored if  
>> class
>> parameter is set)
>
> document name = document that produces json content right?
>
>> rowCount="" ## number of rows per page.
>>
>> tagCloud="" ## whether to display the tag cloud or not. (On/Off)
>>
>> callback="" ## name of a js function to be used for handling server  
>> (JSON)
>> response manually.
>>
>>
>> [column_spec]
>>
>> mapping="" ## name of the json attribute to which this column  
>> should be
>> bound to. [1] (see below)
>>
>> selected="" ## if this column should be selected by default.
>>
>> order="" ## Default sort order for this column (applies only if  
>> this is the
>> default selected column).
>>
>> isHtml="" ## if the result JSON string should be treated as html and
>> directly injected into cell content.
>>
>> filterable="" ## whether this column should present a filter or not.
>>
>> sortable="" ## whether this columnd should be sortable or not.
>>
>> filterType="" ## what type of a filter to be used (only for  
>> filterable
>> columns).
>>
>> linkType="" ## type of link to be used if a cell value should link  
>> to the
>> original document. [2] (see below)
>>
>>
>> [1] - mapping:
>>
>> This is a mandatory parameter. I'm not sure if this is the correct  
>> name for
>> the parameter. For the default implementation  
>> (XWiki.DocListMacroResults) we
>> have to decide the names of the JSON properties that will be  
>> returned, we
>> could use:
>>
>> "doc.<fieldName>" ## for document metadata.
>>
>> "obj.<propertyName>" ## for object properties when the table is  
>> bound to a
>> class.
>>
>> "actions" ## special column for listing all the actions available  
>> for the
>> current user.
>>
>> * We could have an special "function_name(field1, field2, ....)"  
>> mapping
>> parameter which will deligate the mapping function to a local js  
>> function.
>> This can be useful if someone wants to calculate a column value  
>> based on the
>> returned results.
>>
>> * Question: Do we need to have attachment / image columns?
>>
>>
>> [2] - linkType:
>>
>> We can have "none", "view", "edit" & "inline" type of links. Any  
>> other type
>> of link?
>>
>>
>> You can compare this doclist macro specification with the old  
>> livetable
>> macro spec here: http://code.xwiki.org/xwiki/bin/view/Macros/LiveTableMacro 
>> .
>>
>> WDYT?
>
> sounds good
>
> I'd like to see also some predefined macros that would use the  
> livetable macro.
> I can think of:
>
> - a {{objects}} macro that would display a livetable of objects  
> matching a given xclass
> - a {{documents}} macro that would display a livetable of documents  
> matching a query
>
> Thanks
> -Vincent
>
>> Thanks.
>>
>> - Asiri

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to