>
>>
>>>
>>> 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
--
Thomas Mortagne