Skip to content

Commit

Permalink
Item14323: fix list types
Browse files Browse the repository at this point in the history
  • Loading branch information
cdot committed Mar 10, 2017
1 parent 03ba3dd commit 51c1da7
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 88 deletions.
44 changes: 22 additions & 22 deletions TinyMCEPlugin/data/System/TinyMCEPlugin.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
%META:TOPICINFO{author="ProjectContributor" comment="" date="1488486156" format="1.1" version="1"}%
%META:TOPICINFO{author="ProjectContributor" comment="" date="1489161054" format="1.1" version="1"}%
%META:TOPICPARENT{name="Plugins"}%
---+!! !TinyMCEPlugin
<!--
Expand Down Expand Up @@ -83,7 +83,7 @@ removeformat: [
],
contextmenu: "link image inserttable | cell row column deletetable | example",
menubar : false,
toolbar : "styleselect | bold italic fwtt forecolor | removeformat | bullist numlist %IF{"context SUPPORTS_PARA_INDENT" then="fwexdent fwindent" else="outdent indent"}% blockquote | link unlink anchor | undo redo | searchreplace table fwupload fwinsertlink image charmap hr restoredraft fullscreen code fwhide",
toolbar : "styleselect | bold italic fwtt forecolor | removeformat | fwchangelisttype bullist numlist outdent indent blockquote | link unlink anchor | undo redo | searchreplace table fwupload fwinsertlink image charmap hr restoredraft fullscreen code fwhide",
autosave_interval : "180s",
autosave_retention : "4320m",
content_css: "%PUBURLPATH%/%SYSTEMWEB%/TinyMCEPlugin/wysiwyg.css,%PUBURLPATH%/%SYSTEMWEB%/SkinTemplates/base.css,%FOSWIKI_STYLE_URL%,%FOSWIKI_COLORS_URL%"
Expand Down Expand Up @@ -297,23 +297,23 @@ Many thanks to the following sponsors for supporting this work:
%META:FIELD{name="License" title="License" value="[[http://www.gnu.org/licenses/gpl.html][GPL (Gnu General Public License)]]"}%
%META:FIELD{name="Home" title="Home" value="Foswiki:Extensions.%25$ROOTMODULE%25"}%
%META:FIELD{name="Support" title="Support" value="Foswiki:Support.%25$ROOTMODULE%25"}%
%META:FILEATTACHMENT{name="wysiwyg.css.gz" attr="h" comment="" date="1488486156" size="390" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.uncompressed.js" attr="h" comment="" date="1488486156" size="18556" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_hidden_verbatim.gif" attr="h" comment="" date="1488486156" size="1654" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermarks.psd" attr="h" comment="" date="1488486156" size="427691" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_literal.gif" attr="h" comment="" date="1488486156" size="1029" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_protect_on_save.gif" attr="h" comment="" date="1488486156" size="1492" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.uncompressed.js" attr="h" comment="" date="1488486156" size="4233" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.js.gz" attr="h" comment="" date="1488486156" size="2625" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wysiwyg_src.css" attr="h" comment="" date="1488486156" size="1007" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_verbatim.gif" attr="h" comment="" date="1488486156" size="1181" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wysiwyg.css" attr="h" comment="" date="1488486156" size="827" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="screenshot.png" attr="h" comment="" date="1488486156" size="30118" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_hidden.gif" attr="h" comment="" date="1488486156" size="950" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.js" attr="h" comment="" date="1488486156" size="1847" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.js.gz" attr="h" comment="" date="1488486156" size="869" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_protect_forever.gif" attr="h" comment="" date="1488486156" size="1494" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="tinymce.gif" attr="h" comment="screenshot" date="1488486156" size="35155" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wikiringlogo20x20.png" attr="h" comment="" date="1488486156" size="1343" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.js" attr="h" comment="" date="1488486156" size="8435" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="Makefile" attr="h" comment="" date="1488486156" size="147" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wysiwyg.css.gz" attr="h" comment="" date="1489161054" size="390" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.uncompressed.js" attr="h" comment="" date="1489161054" size="18556" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_hidden_verbatim.gif" attr="h" comment="" date="1489161054" size="1654" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermarks.psd" attr="h" comment="" date="1489161054" size="427691" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_literal.gif" attr="h" comment="" date="1489161054" size="1029" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_protect_on_save.gif" attr="h" comment="" date="1489161054" size="1492" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.uncompressed.js" attr="h" comment="" date="1489161054" size="4233" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.js.gz" attr="h" comment="" date="1489161054" size="2625" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wysiwyg_src.css" attr="h" comment="" date="1489161054" size="1007" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_verbatim.gif" attr="h" comment="" date="1489161054" size="1181" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wysiwyg.css" attr="h" comment="" date="1489161054" size="827" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="screenshot.png" attr="h" comment="" date="1489161054" size="30118" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_hidden.gif" attr="h" comment="" date="1489161054" size="950" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.js" attr="h" comment="" date="1489161054" size="1847" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki.js.gz" attr="h" comment="" date="1489161054" size="869" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="watermark_protect_forever.gif" attr="h" comment="" date="1489161054" size="1494" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="tinymce.gif" attr="h" comment="screenshot" date="1489161054" size="35155" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="wikiringlogo20x20.png" attr="h" comment="" date="1489161054" size="1343" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="foswiki_tiny.js" attr="h" comment="" date="1489161054" size="8435" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="Makefile" attr="h" comment="" date="1489161054" size="147" user="ProjectContributor" version="1"}%
Original file line number Diff line number Diff line change
Expand Up @@ -343,50 +343,36 @@
});
}

// onclick for "fwindent"
function handleIndent(ed) {
if (ed.queryCommandState('InsertUnorderedList') ||
ed.queryCommandState('InsertOrderedList')) {
// list type node - use the default behaviour
ed.execCommand("Indent");
}
else {
// drive up to the nearest block node
var dom = ed.dom, selection = ed.selection,
node = dom.getParent(selection.getStart(), dom.isBlock) ||
dom.getParent(selection.getEnd(), dom.isBlock),
div;
if (node) {
// SMELL: what about indentation inside tables?
// Needs to be disabled.
// insert div below the nearest block node
div = dom.create('div', { 'class' : 'foswikiIndent'});
while (node.firstChild) {
dom.add(div, dom.remove(node.firstChild));
}
div = dom.add(node, div);
ed.selection.select(div);
ed.selection.collapse(); // This eats the cursor!
ed.selection.setCursorLocation(div, 0);
}
}
}
var next_style = {
"foswikiListStyle1": "foswikiListStyleA",
"foswikiListStyleA": "foswikiListStylea",
"foswikiListStylea": "foswikiListStyleI",
"foswikiListStyleI": "foswikiListStylei",
"foswikiListStylei": "foswikiListStyle1"
};


// onclick for "fwchangelisttype"
function handleChangeListType(ed) {
var node = ed.dom.getParent(
ed.selection.getStart(), function(f) {
return ed.dom.is(f, 'ol, ul');
});

// onclick for "fwexdent"
function handleExdent(ed) {
var dom = ed.dom, selection = ed.selection,
node = dom.getParent(selection.getStart(), dom.isBlock),
p;
if (node && dom.hasClass(node, 'foswikiIndent')) {
p = node.parentNode;
while (node.firstChild) {
p.insertBefore(dom.remove(node.firstChild), node);
if (node.tagName === "OL") {
for (var i in next_style) {
if (ed.dom.hasClass(node, i)) {
ed.dom.removeClass(node, i);
ed.dom.addClass(node, next_style[i]);
return;
}
}
dom.remove(node);
ed.selection.select(p.firstChild);
ed.selection.collapse();
ed.dom.addClass(node, 'foswikiListStylea');
} else {
ed.execCommand("Outdent");
if (ed.dom.hasClass(node, 'foswikiListStyleNone'))
ed.dom.removeClass(node, 'foswikiListStyleNone')
else
ed.dom.addClass(node, 'foswikiListStyleNone');
}
}

Expand Down Expand Up @@ -456,31 +442,19 @@
}
});

ed.addButton('fwindent', {
title: 'Indent more',
image: url + '/img/indent.gif',
onClick: function() { handleIndent(ed); }
});

ed.addButton('fwexdent', {
title: 'Indent less',
image: url + '/img/exdent.gif',
onClick: function() { handleExdent(ed); },
onPostRender: function() {
var ctrl = this;
ed.on("NodeChange", function(evt) {
var ed = evt.target;
var dom = ed.dom;
var selection = ed.selection;
var node = dom.getParent(
selection.getStart(), dom.isBlock);
var state = (node
&& dom.hasClass(node, 'foswikiIndent')) ||
ed.queryCommandState('Outdent');

ctrl.active(state);
ed.addButton('fwchangelisttype', {
title: 'Change bullet/number style',
image: url + '/img/plainlist.gif',
onClick: function() { handleChangeListType(ed); },
onpostrender: function() {
var btn = this;
ed.on("NodeChange", function(e) {
btn.disabled(
!ed.queryCommandState("InsertUnorderedList")
&& !ed.queryCommandState("InsertOrderedList"));
});
}

});

ed.addButton('fwhide', {
Expand Down
25 changes: 23 additions & 2 deletions core/pub/System/SkinTemplates/base_src.css
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,29 @@ pre {
.foswikiHorizontalList ul li.foswikiLast {
border:none;
}
.foswikiIndent {
padding-left: 3em;

.foswikiListStyleNone {
list-style-type: none;
}

.foswikiListStyle1 {
list-style-type: decimal;
}

.foswikiListStyleA {
list-style-type: upper-alpha;
}

.foswikiListStylea {
list-style-type: lower-alpha;
}

.foswikiListStylei {
list-style-type: lower-roman;
}

.foswikiListStyleI {
list-style-type: upper-roman;
}

.foswikiToc.foswikiRight {
Expand Down

0 comments on commit 51c1da7

Please sign in to comment.