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