Marius Dumitru Florea wrote:
On 11/15/2010 03:05 PM, Sergiu Dumitriu wrote:
> On 11/15/2010 09:18 AM, Raluca Stavro wrote:
>
>
>> Hello Ricardo,
>>
>> Yes, you can use velocity code inside SSX and JSX objects. What you
>> need to do is to set the 'Parse content' property to 'Yes'. You
can
>> take a look at the SSX documentation:
>>
http://code.xwiki.org/xwiki/bin/view/Plugins/SkinExtensionsPlugin#HTip:Howt…
>> .
>>
>> Example of usage:
>> #if(!$hasEdit)
>> #body{
>> background-color: red;
>> }
>> #end
>>
>>
> This is problematic, since the extension is cached on the clientside
> (browser cache). So if a user visits the wiki once unauthenticated,
> after he logs in the same CSS file (already parsed) is used, so nothing
> will change in the UI.
>
> To load the re-parsed CSS, either refresh the browser cache, or you can
> set the Cache property of the extension to "Forbid", which is bad for
> performance.
>
>
In this particular case changing the JavaScript code that loads the
annotation feature is better IMO.
I tried but failed to do that.
Ricardo, did you check
AnnotationCode.Script ? I can see these lines at the end of the second
JSX (named "Annotation Javascript -- Annotation application"):
// if the action on the current document is not view, don't load annotations
if (XWiki.contextaction != "view") {
return;
}
I'm sure you can extend the test for your needs.
Hope this helps,
Marius
I think I get the point. Even though I'm not able to understand this
script now or how to tweak it, I understand that this option blocks the
loading process of the annotation feature. It is "cheaper" to do that as
it stops a process not required for a given type of users.
But, please, one more question. When is this script executed? Each time
a document is loaded or even reloaded?
The JavaScript code of this extension is evaluated (loaded into
browser's memory) for each wiki page, and the code at the end of the
second JSX object is executed after a wiki page finished loading (in the
browser):
document.observe('xwiki:dom:loaded', function() {
... // code executed after the page finished loading.
});
Does this match your needs:
document.observe('xwiki:dom:loaded', function() {
// if the action on the current document is not view, don't load
annotations
if (XWiki.contextaction != "view" || !XWiki.hasEdit) {
return;
}
...// the rest of the code that loads the annotation feature.
});