[
https://issues.apache.org/jira/browse/JSPWIKI-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18132530#comment-18132530
]
Arturo Bernal commented on JSPWIKI-1312:
----------------------------------------
Correction: I missed JSPWIKI-1097 (Gradually replace mootools js library by
native js/css3) when I opened this ticket. It already sets the direction:
vanilla JavaScript with a small set of helper functions, adopted gradually
since 2.11.0-M4, and it has commits from 2019 (for example the refactoring of
the collapse markup). So the question of the target that this ticket asks to
decide was decided there. What this ticket adds is the measurement above of
what is still left on Mootools, and the icon font (JSPWIKI-1098). It can be
closed as a duplicate of JSPWIKI-1097 if that is preferred, with the numbers
moved there.
> Replace Mootools with native JavaScript or a maintained library, and the icon
> font with SVG icons
> -------------------------------------------------------------------------------------------------
>
> Key: JSPWIKI-1312
> URL: https://issues.apache.org/jira/browse/JSPWIKI-1312
> Project: JSPWiki
> Issue Type: Improvement
> Reporter: Arturo Bernal
> Priority: Major
>
> This is the umbrella of JSPWIKI-811 (migrate from Mootools to jQuery, opened
> in 2014) and JSPWIKI-1098 (replace the icon fonts by SVG icons), which are
> both open. JSPWIKI-811 already has a discussion: jQuery was favoured, the
> work was judged to be bigger than a weekend, and a way to let both libraries
> live together with jQuery.noConflict was proposed, so that plugins can use
> jQuery without migrating the core. This ticket asks to decide the target
> first, as native JavaScript may be enough, and to plan the work in pieces.
>
> What there is today, measured in jspwiki-war/src/main/scripts without the
> libraries and the third-party editors: 74 JavaScript files with about 17,500
> lines, 52 of them using $(), new Class or addEvent. In them $() appears 196
> times, $$() 34 times, new Class 53 times and addEvent 151 times. The helpers
> to handle the DOM (set, setStyle, addClass, removeClass, toggleClass) are
> called about 295 times, getElement(s), getParent and similar 118 times, new
> Element 86 times, each 91 times, new Request 18 times, store and retrieve 13
> times, the effects (Fx, morph, tween) 7 times and Cookie 4 times. Six
> extensions of Mootools classes are in moo-extend. mootools-core and
> mootools-more 1.6.0 are about 7,200 lines, and wro4j bundles them for the
> Haddock style (wro-haddock.xml). The WYSIWYG editor is based on MooEditable,
> which is built on Mootools too.
>
> The icons are not from a third-party library but from an own font,
> FontJspwiki (woff and ttf files), repeated in the default and reader
> templates and in the Haddock style.
>
> Not looked at yet: the 210 template, the Markdown editor, and how many
> third-party plugins depend on Mootools.
>
> Proposal: first decide the target (native JavaScript, or a maintained library
> such as jQuery) and the browsers to support. Then migrate piece by piece, one
> component at a time, with a thin compatibility layer while both exist, and
> remove Mootools when nothing uses it. The icons can go separately: one SVG
> for each glyph of FontJspwiki, used from the CSS of the three templates.
>
> The user interface has no automated tests, so each step has to be checked by
> hand in a browser; some tests for the pieces that are migrated would help.
> This ticket is a plan to discuss, probably on
> [[email protected]|mailto:[email protected]] first; there is no
> implementation.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)