On 15.02.2011 16:54, Guillaume Lerouge wrote:
> Hi,
>
> On Tue, Feb 15, 2011 at 16:44, Anca Luca<[email protected]> wrote:
>
>> Hi devs,
>>
>> I committed XWIKI-5938 but I think we should discuss the default source
>> of the dashboard macro, namely where does it pick the gadget objects to
>> display on the dashboard, e.g. in the case of a dashboard macro call in
>> an included document.
>> It is very easy to add a "source" parameter to the dashboard macro,
>> which would tell the dashboard where should it read the objects from
>> (and render in the context of the current document), but now the
>> question is what should {{dashboard /}} without parameters do?
>>
>> 1/ read the objects from the current document, which means, in the case
>> of an include, it will depend on the context of the include. Note that,
>> if an include is done in a new context, then all the gadgets on that
>> dashboard will be also relative to the included document (e.g. if they
>> use $doc, the $doc will be the included document, not the including doc).
>>
>> 2/ read the objects from the closest MetaData.SOURCE, which means the
>> document from which the content that contains the {{dashboard /}} call
>> comes from. E.g. in the case of an include, the included document.
>>
>
> My take is that the default should be to use the including document as the
> default source (solution 1/). If users want another document to be the
> source, they can specify it manually.
>
> Rationale: it's the easiest to understand / less cognitive demanding
> behavior (I put the dashboard macro on page A, it gets data from page A). As
> an user, if I add a dashboard on a page and I can't see where it takes data
> from right away even though I didn't specify a source, I will feel lost. So
> it feels natural to me to have behavior 1/ and it's in the spirit of how the
> include macro works by default.
Obviously if you put {{dashboard /}} on page A it will take data from
page A.
The question is, what should happen when you include page A in page B.
Say page B has as content: {{include document="A" /}}
Where should the dashboard defined in page A take objects from when page
B is rendered?
solution 1/ means it would be from document B, unless it's {{include
document="A" context="new" /}}. If you want to be able to include
dashboard defined in the document A as is in a document B, you'll have
some options:
a. you include with context="new" but that means if some stuff in
document A is using $doc, $doc will be A, and not B -- for example will
not work with the current Main.Dashboard included in main webhome and
space webhomes, which uses $doc to figure out if it's on the
Main.WebHome or a space dashboard.
b. in page A, instead of {{dashboard /}} you write {{dashboard
source="A" /}} but this makes it really bad when you want to copy
document A (because document name will change but not the dashboard
param) -- usecase C is a little in this spirit
c. in page B, if all you care about is the dashboard and not the rest of
the stuff, you write {{dashboard source="A" /}} instead of {{include
document="A" /}} -- see usecase F.
solution 2/ means it would be from document A.
Thanks,
Anca
>
> Guillaume
>
> WDYT?
>>
>> There are a lot of possible situations to discuss, I will just present a
>> few usecases below, to be taken into account when analyzing:
>>
>> A. The current Main.Dashboard is included in all the WebHomes by
>> default, but its gadgets refer to the current document (the _including_
>> document)
>>
>> B. Users want to be able to easily customize their WebHomes, without
>> affecting other people (not change the wiki general dashboard, but only
>> their space dashboard)
>>
>> C. There is a dashboard somewhere on the wiki, Main.CoolDashboard, and
>> users want to be able to include that dashboard as a copy, without
>> having to re-create the dashboard objects on their including page
>>
>> D. User dashboards: at one point we will want each user to have their
>> own dashboard on their profile page, which is rendered by a sheet.
>> Ideally we should have the same user sheet for all users.
>>
>> E. Also, the user dashboard should be include-able on the Main.WebHome
>> of a logged in user (a "Home").
>>
>> F. Since the include doesn't make too much sense for a dashboard
>> document (since the dashboard document is only a call to a {{dashboard
>> /}} macro), users will replace its usage with {{dashboard /}} macro
>> calls, with a source parameter to pick gadget objects from another
>> document ('reuse' a dashboard definition).
>>
>> If you can think of more cases that could involve include issues, please
>> fill them in.
>>
>> Thanks,
>> Anca
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs