Hi, On Wed, Jun 13, 2012 at 7:09 PM, Sergiu Dumitriu <ser...@xwiki.com> wrote:
> On 06/13/2012 09:17 AM, Vincent Massol wrote: > >> >> On Jun 13, 2012, at 2:52 PM, Anca Luca wrote: >> >> On 06/13/2012 02:44 PM, Vincent Massol wrote: >>> >>>> On Jun 13, 2012, at 2:39 PM, Anca Luca wrote: >>>> >>>> On 06/13/2012 01:52 PM, Raluca Stavro wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> On Wed, Jun 13, 2012 at 2:15 PM, Vincent Massol<vinc...@massol.net> >>>>>> wrote: >>>>>> >>>>>> On Jun 13, 2012, at 12:44 PM, Raluca Stavro wrote: >>>>>>> >>>>>>> I'm resending this mail by using the right subject pattern. >>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> I am trying to upgrade an old XEM to 3.5.1. >>>>>>>> In this XEM there are some custom panels which have been converted >>>>>>>> to 2.0 >>>>>>>> syntax and contain code like this: >>>>>>>> >>>>>>>> {{velocity}} >>>>>>>> {{html}} >>>>>>>> #panelheader("...") >>>>>>>> ... >>>>>>>> #panelfooter() >>>>>>>> {{/html}} >>>>>>>> {{/velocity}} >>>>>>>> >>>>>>> > Do the panels really need the {{html}} wrapper? > If no, then you must remove it. > If yes, then you should consider rewriting them using wiki syntax only, > then remove the {{html}} wrapper. > If you can't do that, then just move the wrapper inside the > panelheader/footer. > > You can do that automatically with a script. I applied the solution suggested by Vincent (including both old and new macro definitions in macros.vm and use a script to make all panels call the right macros). But yes, another solution would be to remove the {{html}} wrapper. > > > Because since 2.7.2 panel macros were converted to 2.0 syntax, because >>>>>>>> panel macros from inside macros.vm were modified by calling >>>>>>>> {{html}} wiki >>>>>>>> macro and because we can't use nested {{html}} macros without >>>>>>>> wiki="true" >>>>>>>> parameter, I don't know how to fix this issue besides modifying >>>>>>>> panel >>>>>>>> >>>>>>> code. >>>>>>> >>>>>> > I don't understand this. Are you saying that in macros.vm #panelheader > uses {{html}}? That's not true, the panelheader/footer macros only use wiki > syntax, not {{html}}. The problem isn't that nested {{html}} macros don't > work, but that wiki syntax doesn't work in {{html}} without wiki="true". Actually they contain both wiki syntax and a call to {{html}} when displaying the title in 2.0 syntax, on 4.0 stable version WAR at least. > > > This XEM has more than 70 wikis and this I can't just modify all custom >>>>>>>> (converted to 2.0 syntax) panels manually. >>>>>>>> Is there a nice solution to this problem ? >>>>>>>> >>>>>>> Idea 1: >>>>>>> ====== >>>>>>> >>>>>>> Add a new #panelheaderold macro in macros.vm and replace all calls of >>>>>>> #panelheader to #panelheaderold in your panels (easy to do with a >>>>>>> XWQL >>>>>>> query and 3 lines of scripts). >>>>>>> >>>>>>> Slowy migrate panels to new syntax. >>>>>>> >>>>>>> Note: >>>>>>> ===== >>>>>>> >>>>>>> Actually in the future we need to add a new {{panel}} macro, >>>>>>> something >>>>>>> like: >>>>>>> >>>>>>> {{panel style=".." title="…"}} >>>>>>> … content here … >>>>>>> {{/panel}} >>>>>>> >>>>>>> Idea 2: >>>>>>> ====== >>>>>>> >>>>>>> Create a custom Panel wiki macro (give it a name other than >>>>>>> "panel"!), >>>>>>> search for: >>>>>>> {{velocity}}{{html}}#**panelheader….#panelfooter{{/**html}}{{/velocity}} >>>>>>> (use >>>>>>> a regex) >>>>>>> >>>>>>> Replace with your panel macro. >>>>>>> >>>>>>> Should I open an issue on Jira ? >>>>>>>> >>>>>>> Nope >>>>>>> >>>>>> So this means that none of the macros in macros.vm are API? >>>>> Which means that there is no API to make a panel header consistent >>>>> with the panel headers of the default panels? >>>>> >>>> Good point. Macros in macros.vm are supposed to be APIs and it means we >>>> broke the backward compatibility at some point in the past (2.7 as >>>> suggested by Raluca). >>>> >>> > The macros still work for both xwiki/1.0 and xwiki/2.x panels. What > doesn't work is putting the whole panel content inside a {{html}} block, > without any wiki parsing. > > The problem was that there was a misunderstanding of the macros behavior. > The macros were supposed to work well in wiki syntax. Initially, that meant > the only xwiki syntax, which did mix HTML with the rest of the wiki and > velocity syntax. When new wiki syntaxes were introduced and the macros were > updated, the behavior remained the same: the #panelheader/footer macros > work well in both xwiki/1.0 and xwiki/2.x syntaxes. But pure HTML isn't > really a wiki syntax. The fact that for a few releases the macros worked in > pure HTML embedded in an xwiki/2.0 document, but not directly in a > xwiki/2.0 document, was a bug, not a contract. Unfortunately some > developers did rely on this bug. The same issue happens with parameters like output="none" for {{velocity}} macro. It was a bug and developers did rely on it (maybe not even knowing that it was indeed a bug), but on latest versions this parameter value does not work anymore and it has to be replaced with output="false". Such bugs make upgrades hard to be performed. It takes plenty of time to detect the cause of a problem (unknown old bug) and then to fix it in the appropriate way. I would like to be able to click a button and upgrade the wiki without being forced to fix post-upgrade bugs. Of course that this is maybe almost impossible because each wiki has its own particularities, but I'll continue dreaming of it :) Thank you all for your feedback, Raluca. > > > 3.2 M1 https://github.com/xwiki/**xwiki-platform/commit/** >>> 2e4b54267b9bf4048c14fdf14b6a0a**65236aabad<https://github.com/xwiki/xwiki-platform/commit/2e4b54267b9bf4048c14fdf14b6a0a65236aabad> >>> http://jira.xwiki.org/browse/**XWIKI-6504<http://jira.xwiki.org/browse/XWIKI-6504> >>> It's interesting that the API Breakage section of the 3.2M1 release >>> notes says only "[TODO]" http://www.xwiki.org/xwiki/** >>> bin/view/ReleaseNotes/**ReleaseNotesXWikiEnterprise32M**1#HAPIBreakages<http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/ReleaseNotesXWikiEnterprise32M1#HAPIBreakages>... >>> :) >>> >> >> bad bad… >> >> Who was the RM? :) >> >> -Vincent >> >> Anca >>> >>> >>>> We should probably have introduced new macros instead when we >>>> introduced the conversion to 2.0 syntax. >>>> >>>> Now since this is very old we need to decide what we want to do at this >>>> point. >>>> >>>> Thanks >>>> -Vincent >>>> >>>> Thanks, >>>>> Anca >>>>> >>>>> So there is no other way to fix this issue but by modifying the code >>>>>> inside >>>>>> panels. >>>>>> Thank you, Vincent. >>>>>> >>>>>> Raluca. >>>>>> >>>>>> >>>>>> Thanks >>>>>>> -Vincent >>>>>>> >>>>>> > > -- > Sergiu Dumitriu > http://purl.org/net/sergiu/ > > > > ______________________________**_________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/**mailman/listinfo/users<http://lists.xwiki.org/mailman/listinfo/users> > _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users