To sum up, here is what I can do: On XWiki Commons: * Introduce a PropertyDisplayType annotation that we can use to specify with which type the macro parameter should be rendered. * Add the *display type* in the property descriptor (use the existing *property type* as default)
On XWiki Rendering: * Add the *display type* in the parameter descriptor (use the existing *property type* as default) On XWiki Platform: * Use the PropertyDisplayType annotation, on reference macro parameters, with the EntityReference type (for the include and display macro) * Display a document picker for the EntityReference type and make sure free text is enabled (so that we can enter a reference manually) On the CKeditor application: * Use the *display type* instead of the *property type* when using the html displayer. I'll create the Jira issues and make the related PRs if we agree on this. On Mon, Jan 21, 2019 at 9:30 AM Adel Atallah <adel.atal...@xwiki.com> wrote: > > On Sat, Jan 19, 2019 at 11:33 AM Vincent Massol <vinc...@massol.net> wrote: > > > > Hi Adel, > > > > > On 18 Jan 2019, at 11:59, Adel Atallah <adel.atal...@xwiki.com> wrote: > > > > > > On Fri, Jan 18, 2019 at 11:27 AM Vincent Massol <vinc...@massol.net> > > > wrote: > > >> > > >> Hi Adel, > > >> > > >>> On 17 Jan 2019, at 11:05, Adel Atallah <adel.atal...@xwiki.com> wrote: > > >>> > > >>> Hi devs, > > >>> > > >>> After discussing with Marius and Thomas, we thought it might be a good > > >>> idea to do the following to have a document picker in the include and > > >>> display maros: > > >>> * Remove the deprecation of the document parameter (only for the > > >>> include macro). > > >> > > >> I don’t understand this part. Sounds counter-intuitive to me since we > > >> want users to use the “reference” one. Could you explain? > > > > > > We currently only have a document picker that we can use for > > > DocumentReferences. To have auto-suggestion on the "reference" > > > parameter, we would need to make another picker for all type of > > > references, not just document. > > > > Ok I understand. > > > > But I don’t think it’s a good idea to remove the deprecation on “document”. > > This is deprecated for a good reason. And if we undeprecate it then we’ll > > need to redeprecate it soon enough and it also means “deprecating" > > “reference” so that it’s moved to the advanced section. It’s also bad for > > users who’ve been told to not use the “document” parameter. Without > > mentioning that the document parameter is only available in the legacy > > module and thus without legacy modules it wouldn’t work. Raises plenty of > > problems. > > > > Other Ideas instead: > > 1) Use the DocumentReference picker when the Type is Document and when the > > type is changed to something else, let the user type the reference. > > 2) Improve the picker to support picking any type of references: documents, > > spaces, wiki, attachments, objects, properties. > > 3) Now in practice the include macro only supports including Documents so > > we could also simply do an override as you suggested (but on the > > “reference” field), that would be used only for the WYSIWYG (when in wiki > > mode you’d be able to enter only Document references). However if the user > > has used the macro in wiki mode, we’ll need to only display the > > DocumentReference picker if the type is Document. > > I think 3) is the simplest solution for now. We could always show the > document picker on the "reference" field but allow free text so that > other references can be manually entered. > > > > > <side note> > > I don’t think there are really good user use-cases for using something else > > than the Document type since it’ll always translate into a Document in the > > end so the user can always pick that doc instead of letting the macro > > resolve it for him. > > </side note> > > > > Note: If 1) or 2) or 3) are too hard for 11.0 (and it seems we’re too late > > already since we’re releasing RC Monday!) then we could push that one for > > later for the include/display macros and instead support other and simpler > > well known macros in 11.0, from > > https://design.xwiki.org/xwiki/bin/view/Proposal/AutocompleteOnReference#HWYIWYGMacros, > > like DocumentTree macro. > > > > What I’d like is to have at least one macro that can use the picker in > > 11.0, mostly to prove that it works and to have something to report for > > users in the release notes and to show progress. > > > > Thanks > > -Vincent > > > > > > > >> > > >> Thanks > > >> -Vincent > > >> > > >>> * Introduce a new annotation to macro parameters to specify / override > > >>> its type (different from its actual java type). > > >>> > > >>> The new annotation will mostly be useful for the WYSIWYG side. In our > > >>> case we want to use the document parameter which is a String. The > > >>> annotation will allow us to work with a DocumentReference instead > > >>> which can be used to display the document picker when editing the > > >>> macro in WYSIWYG mode. > > >>> > > >>> To be clear, here is how we would use it: > > >>> @PropertyType(DocumentReference.class) > > >>> public void setDocument(String document) > > >>> > > >>> WDYT? > > >>> > > >>> Thanks, > > >>> Adel > >