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.

<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

Reply via email to