I finally found what was the problem...

Ludovic, after seeing you at Solutions Linux, I had a look with firebug...

In fact, i was not disconnected, it was just that the invalid url page 
is displayed as if I was logged out (not any trace of delete cookie as 
you thought).

Regarding the invalid url, it came from the select named topic, renaming 
it blabla, everything works fine.

Maybe XWiki uses topic string for another matter, I don't know but 
anyway, it works fine now.

Jean Couteau a écrit :
> Sergiu Dumitriu a écrit :
>   
>> Jean Couteau wrote:
>>   
>>     
>>> Hi list,
>>>
>>> I have a really weird bug which is quite annoying and I don't find any 
>>> solution to it :
>>>
>>> I want to edit a page in inline mode. I have a form to select the page 
>>> to edit with a button. I use the $xwiki.getURL() method to get the right 
>>> URL. When i select my page and click on the edit button, I have an 
>>> invalid URL error and i am deconnected. What is weird is that if I 
>>> reconnect and actualize the page I can access it. The second weird thing 
>>> is that I use exactly the same method to edit other pages form other 
>>> forms in the same first page and I do not have the problem. I am quite 
>>> lost with this issue. I tried to recreate the URL as a string but I have 
>>> the same problem.
>>>
>>> I am thinking maybe this is a known bug in xwiki. If not maybe i am 
>>> missing something somewhere. Please open my eyes on the obvious i am 
>>> missing in my code :
>>>
>>> <FORM method=POST action="">
>>>     <input type="hidden" name="backlog" value="${backlogId}" />
>>>     <input type="hidden" name="webname" value="Project" />
>>>     <input type="hidden" name="name" value="backlog" />
>>>     <input type="hidden" name="domain" value="${domainId}" />
>>>     <input type="hidden" name="cut" value="${cut}" />
>>>     Select topic : <SELECT name="topic">
>>>       #foreach ($item in $topiclist)
>>>         #set 
>>> ($topic=$xwiki.getDocument(${item}).getObject("XWiki.TopicClass"))
>>>         <OPTION VALUE="${topic.id}">$topic.get("name")</OPTION>
>>>       #end
>>>     </SELECT>
>>>     <input type="button" value="Select" 
>>> onclick='{this.form.action="../../view/" + this.form.webname.value + "/" 
>>> + this.form.name.value + "?backlog=" + this.form.backlog.value + 
>>> "&domain=" + this.form.domain.value + "&topic=" + 
>>> this.form.topic.value.substring(this.form.topic.value.lastIndexOf("${separator}")+1)
>>>  
>>> + "&cut=" + this.form.cut.value; this.form.submit(); }'/>
>>>     <input type="button" value="Edit" 
>>> onclick='{url="Project."+this.form.topic.value; 
>>> this.form.action="${xwiki.getURL(url, "inline")}"; this.form.submit(); }' />
>>>     
>>>       
>> Classic mix between serverside and clientside scripting.
>>   
>>     
> That was the obvious ;)
>   
>> ${xwiki.getURL...} is executed on the server, before the page is
>> displayed in the browser. url is a javascript variable, created long
>> after the velocity engine tried to generate the URL. I'm surprised you
>> didn't get a stack trace instead of the panel.
>>
>> Still, this doesn't explain why you get disconnected, this should not
>> happen.
>>   
>>     
> A lot of strange things are happening with this issue. I used this 
> method because the previous one was not working.
>   
>> Try this:
>>
>>      <input type="button" value="Edit"
>>  onclick='this.form.action="${xwiki.getURL("Project.__topic__",
>> "inline")}".replace("__topic__", this.form.topic.value);
>> this.form.submit();' />
>>   
>>     
> This does not work, nothing happens, I stay on the same page and i am 
> still connected. Strange.
>
> I tried also with :
>
> <input type="button" value="Edit" 
> onclick='{this.form.action="../../inline/" + this.form.webname.value + 
> "/" + this.form.topic.value; this.form.submit(); }' />
>
> and
>
> <input type="button" value="Edit" 
> onclick='{this.form.action="../../inline/Project/" + 
> this.form.topic.value; this.form.submit(); }' />
>
> I am then disconnected and still have my invalid url (Strange though 
> because this method gave me a good url in almost the same form on the 
> same page (instead of topic, it is domain ;)). (Note that if i validate 
> the invalid url (that is in my browser address bar), i go to the page i 
> wanted to reach and i am connected, refreshing does not work).
>   
>> This uses $xwiki.getURL to obtain a valid URL template, which uses a
>> placeholder (__topic__) instead of the real topic name, which in the
>> generated HTML appears as a string like
>> "/xwiki/bin/inline/Project/__topic__", and javascript replaces this
>> placeholder with the real value taken from the form
>>     
> Thanks for this explanation, clearer for me now ;).
>
> Thanks for your time.
> Jean
>   
-- 
----
Jean Couteau
Code Lutin - http://www.codelutin.com
44 Bd des Pas Enchantés - 44230 St-Sébastien/Loire
Tél : 02 40 50 29 28 - Fax : 09 59 92 29 28 

_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to