>
>>
>> Thanks,
>> Simon
>>
>>
>> On 9/10/18 6:46 PM, Thomas Mortagne wrote:
>>
>>> On Mon, Sep 10, 2018 at 3:47 PM Simon Urli <simon.urli(a)xwiki.com>
wrote:
>>>
>>>>
>>>>
>>>>
>>>> On 9/10/18 3:24 PM, Marius Dumitru Florea wrote:
>>>>
>>>>> On Mon, Sep 10, 2018 at 4:07 PM, Thomas Mortagne <
>>>>> thomas.mortagne(a)xwiki.com>
>>>>> wrote:
>>>>>
>>>>> On Mon, Sep 10, 2018 at 2:56 PM Marius Dumitru Florea
>>>>>> <mariusdumitru.florea(a)xwiki.com> wrote:
>>>>>>
>>>>>>>
>>>>>>> On Mon, Sep 10, 2018 at 3:42 PM, Thomas Mortagne <
>>>>>>>
>>>>>> thomas.mortagne(a)xwiki.com>
>>>>>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> On Mon, Sep 10, 2018 at 2:13 PM Simon Urli
<simon.urli(a)xwiki.com>
>>>>>>>>
>>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 9/10/18 1:35 PM, Vincent Massol wrote:
>>>>>>>>>
>>>>>>>>>> Hi Simon,
>>>>>>>>>>
>>>>>>>>>> On 10 Sep 2018, at 13:05, Simon Urli
<simon.urli(a)xwiki.com>
>>>>>>>>>>>
>>>>>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>>>>> Hi everyone,
>>>>>>>>>>>
>>>>>>>>>>> I'm working on the roadmap issues related
to the inline edition
>>>>>>>>>>>
>>>>>>>>>> with
>>>>>>
>>>>>>> WYSIWYG editor for macro content and macro parameters.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Cool :) We've been waiting for a long time
about this feature! See
>>>>>>>>>>
>>>>>>>>> below.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> The first step is to add a flag to allow user
specify that a
>>>>>>>>>>>
>>>>>>>>>> content
>>>>>>
>>>>>>> or a parameter can be edited inline with the WYSIWYG editor.
>>>>>>>>
>>>>>>>>> The second step is to allow the CKEditor to detect
where the
>>>>>>>>>>>
>>>>>>>>>> content
>>>>>>
>>>>>>> and/or parameters should be edited.
>>>>>>>>
>>>>>>>>> Let's take the exampe of a simple macro without
any parameter,
>>>>>>>>>>>
>>>>>>>>>> which
>>>>>>
>>>>>>> currently produces this code:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>> <div class="box
infomessage">
>>>>>>>>>>> <div class="title">
>>>>>>>>>>> <span class="icon
info"></span>
>>>>>>>>>>> some title
>>>>>>>>>>> </div>
>>>>>>>>>>> Some content
>>>>>>>>>>> </div>
>>>>>>>>>>>
>>>>>>>>>>> We propose (me & Marius) to ask users to
add a wrapper with a
>>>>>>>>>>>
>>>>>>>>>> specific class around the content to tell the
editor it should only
>>>>>>>>
>>>>>>> allow
>>>>>>
>>>>>>> editing this content, e.g.:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>> <div class="box
infomessage">
>>>>>>>>>>> <div class="title">
>>>>>>>>>>> <span class="icon
info"></span>
>>>>>>>>>>> some title
>>>>>>>>>>> </div>
>>>>>>>>>>> <span
class="editable-content">Some content</span>
>>>>>>>>>>> </div>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> By “users”, I guess you mean macro developers?
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Here yes it's the macro developer. I'll try
to be more specific in
>>>>>>>>> my
>>>>>>>>> answers.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> So if I understand you well, you’re not planning
to add a
>>>>>>>>>>
>>>>>>>>> getter/setters to the Macro descriptor, to tell that
the macro
>>>>>>>> content
>>>>>>>> contains wiki markup and that it should be editable in
the WYSIWYG
>>>>>>>>
>>>>>>> editor?
>>>>>>
>>>>>>>
>>>>>>>>> Actually we're planning to add the getter/setter
**and** the
>>>>>>>>> specific
>>>>>>>>> markup for the editor. The getter/setter (which I
called the flag
>>>>>>>>> above), is here to specify that the macro will
contain inline
>>>>>>>>>
>>>>>>>> editable
>>>>>>
>>>>>>> content in WYSIWYG. The markup will specify *where* exactly
is this
>>>>>>>>> content, and what shouldn't be changed.
>>>>>>>>>
>>>>>>>>
>>>>>>>> About that "flag", you seems to plan a boolean
but I feel something
>>>>>>>> more generic that we want to introduce since a long time
would be
>>>>>>>> better: make the content descriptor return a type like
parameters
>>>>>>>> descriptors do. The kind of inline editing you have in
mind right now
>>>>>>>> would then be associated to the type List<Block>
for example (or
>>>>>>>> CompositeBlock
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> or some another type if we want to differentiate
>>>>>>>> between wiki content modified by the macro and wiki
content not
>>>>>>>> modified by the macro
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> We need this differentiation.
>>>>>>>
>>>>>>
>>>>>> Sure but as I said you can differentiate using types too and we
need
>>>>>> content types for other use cases so it's a good occasion.
Also when
>>>>>> you use the type you can differentiate between wiki content and
HTML
>>>>>> content and support inline editing of HTML macro in the same
system
>>>>>> for example.
>>>>>>
>>>>>>
>>>>> I'm not against your proposal. It's a bit more work though,
to define
>>>>> the
>>>>> types, but I suppose it's worth the effort.
>>>>>
>>>>
>>> It's not much more work, just need to define one type for the current
>>> use case ("final" wiki content). Other types can come later when
>>> implementing support for them.
>>>
>>>
>>>>>
>>>>>
>>>> So if I follow the idea would be to use this type defined for the
>>>> content descriptor to specify the behaviour of the editor: e.g. if the
>>>> content descriptor is defined as an html content, then the html editor
>>>> would be used, if it's defined as an inline content, then it would be
an
>>>> editor with limitation to clean html and line returns, etc.
>>>>
>>>> Still it does not change the need to specify which elements of the
>>>> content are editable, right?
>>>>
>>>
>>> Sure but that's the "second step". I only talked about
replacing the
>>> flag you defined as the first step by a more generic type :)
>>>
>>>
>>>> Moreover I've the feeling that the parameters are already not
supporting
>>>> the different types for edition (e.g. a boolean parameter only shows a
>>>> text input). So wouldn't it be a priority before putting a type on
the
>>>> content descriptor itself?
>>>>
>>>
>>> The WYSIWYG does miss a lot of displayers and we need work on that for
>>> sure but:
>>> * you get a checkbox for boolean properties so the type is taken into
>>> account
>>> * having more specific displayers is not a requirement for working on
>>> inline wiki editing
>>>
>>>
>>>>
>>>>>>
>>>>>>>
>>>>>>> ). The other types would be used in other use
>>>>>>>> cases (syntax coloring for scripts, json editor, etc.).
The idea of
>>>>>>>> using Java type is to be consistent with parameters and
reuse
>>>>>>>> existing
>>>>>>>> the displayers in the macro modal window for example but
it can cover
>>>>>>>> this need too.
>>>>>>>>
>>>>>>>>
>>>>>>>>> I guess that if the flag is set and the markup is not
present, then
>>>>>>>>>
>>>>>>>> the
>>>>>>
>>>>>>> entire content is considered as editable.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Is that because you want to be finer-grained and
have macro content
>>>>>>>>>>
>>>>>>>>> which can have parts editable with the WYSIWYG while
having other
>>>>>>>>
>>>>>>> parts of
>>>>>>
>>>>>>> the content not editable (for example)?
>>>>>>>>
>>>>>>>>>
>>>>>>>>> It's exactly why yes. On my example, the macro
user won't be able to
>>>>>>>>> change the content of the title.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Technically Macros don’t generate HTML, only
XDOM. So in order to
>>>>>>>>>>
>>>>>>>>> make
>>>>>>
>>>>>>> it easier for java macro developers, I’d suggest to introduce
some new
>>>>>>>> wrapping Block to indicate this information. We might
need something
>>>>>>>> similar for wiki macros too, to make it more reusable and
typed.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> I'd need to look more on wrapping block but after
a quick overlook
>>>>>>>>> it
>>>>>>>>> seems to make sense indeed.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> About parameters, our idea was to define a new
metadata attribute
>>>>>>>>>>>
>>>>>>>>>> and
>>>>>>
>>>>>>> to ask users to use it for specifying the content is
editable, such as
>>>>>>>>
>>>>>>> for
>>>>>>
>>>>>>> a parameter named foo:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>> <span class="editable-content"
data-parameter="foo">my foo
>>>>>>>>>>>
>>>>>>>>>> parameter
>>>>>>
>>>>>>> value</span>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> What’s your idea for editing parameters requiring
WYSIWYG? How do
>>>>>>>>>>
>>>>>>>>> you
>>>>>>
>>>>>>> present them in the UI? Do you have any mockup?
>>>>>>>>
>>>>>>>>>
>>>>>>>>> I don't have any mockup right now. FTM I see it
like this:
>>>>>>>>> - when creating the macro, the current text
input are improved
>>>>>>>>> with
>>>>>>>>> the CKEditor for the editable content/parameters
>>>>>>>>> - when editing the macro, you stay in the main
editor UI, but
>>>>>>>>> the
>>>>>>>>> content is now editable instead of opening back the
macro UI
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> However I don't know right now how the editor
would manage cases
>>>>>>>>>>>
>>>>>>>>>> such
>>>>>>
>>>>>>> as:
>>>>>>>>
>>>>>>>>> <span class="editable-content">Some
content with <span
>>>>>>>>>>>
>>>>>>>>>> class="editable-content"
data-parameter="myparameter">a
>>>>>>>> parameter</span></span>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>> So:
>>>>>>>>>>> 1. Do you agree on the usage of a class
named
>>>>>>>>>>> "editable-content"
>>>>>>>>>>>
>>>>>>>>>> which would be used as a tag to allow inline
edition?
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Small details, there’s already the
“contenteditable” notion that
>>>>>>>>>>
>>>>>>>>> exists (see
https://developer.mozilla.org/
>>>>>>>> fr/docs/Web/HTML/Attributs_
>>>>>>>> universels/contenteditable) so “editable-content” is
quite close.
>>>>>>>> Maybe
>>>>>>>> we should have something more xwiki-specific? or more
>>>>>>>> WYSIWYG-specific?
>>>>>>>> Like “editable-wysiwyg” or “wysiwyg-editable”.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> I'm open to suggestion on this one.
"wysiwyg-editable" could be
>>>>>>>>> nice.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> My main comment is what I put above: how do we
make it easy for
>>>>>>>>>>
>>>>>>>>> macro
>>>>>>
>>>>>>> developers to specify this information.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> 2. WDYT about using a data-parameter and
this class for inline
>>>>>>>>>>>
>>>>>>>>>> editing of parameters?
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Before answering that part, I would need to
understand what’s the
>>>>>>>>>>
>>>>>>>>> proposal in term of UI.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Note that the main use case is for content but
it’s nice if you can
>>>>>>>>>>
>>>>>>>>> also support parameters. Now, accepting markup in
parameters is not
>>>>>>>>
>>>>>>> really
>>>>>>
>>>>>>> a great use case IMO and is usually a design issue so I’m not
sure we
>>>>>>>> should spend that much time in supporting that. WDYT?
>>>>>>>>
>>>>>>>>>
>>>>>>>>> We just discuss about macro parameters with Ludovic
and apparently
>>>>>>>>>
>>>>>>>> they
>>>>>>
>>>>>>> cannot support line returns, so we might have to use a custom
editor
>>>>>>>>>
>>>>>>>> for
>>>>>>
>>>>>>> those.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> The only macro parameter I know ATM that supports
markup is the
>>>>>>>>>>
>>>>>>>>> “title” param of the {{box}} macro and I think it’s
badly designed.
>>>>>>>>
>>>>>>> Note:
>>>>>>
>>>>>>> if you check the recent {{figure}} macro, I implemented this
need by
>>>>>>>>
>>>>>>> having
>>>>>>
>>>>>>> a {{figureCaption}} nested macro.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> BTW this raises a question, will you support
WYSIWYG editing of
>>>>>>>>>>
>>>>>>>>> nested
>>>>>>
>>>>>>> macros?
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Not for the moment.
>>>>>>>>>
>>>>>>>>> Simon
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> -Vincent
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>> Simon
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> [snip]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Simon Urli
>>>>>>>>> Software Engineer at XWiki SAS
>>>>>>>>> simon.urli(a)xwiki.com
>>>>>>>>> More about us at
http://www.xwiki.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thomas Mortagne
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thomas Mortagne
>>>>>>
>>>>>>
>>>> --
>>>> Simon Urli
>>>> Software Engineer at XWiki SAS
>>>> simon.urli(a)xwiki.com
>>>> More about us at
http://www.xwiki.com
>>>>
>>>
>>>
>>>
>>>
>> --
>> Simon Urli
>> Software Engineer at XWiki SAS
>> simon.urli(a)xwiki.com
>> More about us at
http://www.xwiki.com
>>
--
Simon Urli
Software Engineer at XWiki SAS
simon.urli(a)xwiki.com
More about us at
http://www.xwiki.com