From 6e53cb2ca2c80b4f57507da975b8d5694b07122b Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Wed, 11 Oct 2017 08:33:32 +0000 Subject: [PATCH] [erp5_xhtml_style] Add ckeditor gadget Make ckeditor responsive. Disable ACF. --- .../ckeditor.gadget.appcache.appcache | 342 ++++++++++++++++++ .../ckeditor.gadget.appcache.xml | 34 ++ .../erp5_ckeditor/ckeditor.gadget.html.html | 20 + .../erp5_ckeditor/ckeditor.gadget.html.xml | 34 ++ .../erp5_ckeditor/ckeditor.gadget.js.js | 216 +++++++++++ .../erp5_ckeditor/ckeditor.gadget.js.xml | 34 ++ 6 files changed, 680 insertions(+) create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.appcache create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.xml create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.html create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.xml create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.js create mode 100644 product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.xml diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.appcache b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.appcache new file mode 100644 index 0000000000..f13733170c --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.appcache @@ -0,0 +1,342 @@ +CACHE MANIFEST +# generated on Thu, 12 Oct 2017 10:00:01 +0000 +CACHE: +renderjs.js +rsvp.js +ckeditor.gadget.js +ckeditor/skins/moono-lisa/icons.png +ckeditor/skins/moono-lisa/editor_iequirks.css +ckeditor/skins/moono-lisa/images/lock.png +ckeditor/skins/moono-lisa/images/lock-open.png +ckeditor/skins/moono-lisa/images/refresh.png +ckeditor/skins/moono-lisa/images/spinner.gif +ckeditor/skins/moono-lisa/images/arrow.png +ckeditor/skins/moono-lisa/images/close.png +ckeditor/skins/moono-lisa/images/hidpi/lock.png +ckeditor/skins/moono-lisa/images/hidpi/lock-open.png +ckeditor/skins/moono-lisa/images/hidpi/refresh.png +ckeditor/skins/moono-lisa/images/hidpi/close.png +ckeditor/skins/moono-lisa/editor_ie.css +ckeditor/skins/moono-lisa/dialog_iequirks.css +ckeditor/skins/moono-lisa/dialog_ie8.css +ckeditor/skins/moono-lisa/icons_hidpi.png +ckeditor/skins/moono-lisa/editor_gecko.css +ckeditor/skins/moono-lisa/editor_ie8.css +ckeditor/skins/moono-lisa/editor.css +ckeditor/skins/moono-lisa/dialog_ie.css +ckeditor/skins/moono-lisa/dialog.css +ckeditor/lang/ro.js +ckeditor/lang/id.js +ckeditor/lang/fi.js +ckeditor/lang/mk.js +ckeditor/lang/es-mx.js +ckeditor/lang/az.js +ckeditor/lang/bg.js +ckeditor/lang/af.js +ckeditor/lang/et.js +ckeditor/lang/km.js +ckeditor/lang/sr-latn.js +ckeditor/lang/da.js +ckeditor/lang/bn.js +ckeditor/lang/eo.js +ckeditor/lang/si.js +ckeditor/lang/fa.js +ckeditor/lang/fo.js +ckeditor/lang/uk.js +ckeditor/lang/en.js +ckeditor/lang/mn.js +ckeditor/lang/fr.js +ckeditor/lang/pl.js +ckeditor/lang/it.js +ckeditor/lang/eu.js +ckeditor/lang/ug.js +ckeditor/lang/sr.js +ckeditor/lang/ka.js +ckeditor/lang/gl.js +ckeditor/lang/nl.js +ckeditor/lang/vi.js +ckeditor/lang/lv.js +ckeditor/lang/sk.js +ckeditor/lang/ja.js +ckeditor/lang/sq.js +ckeditor/lang/no.js +ckeditor/lang/th.js +ckeditor/lang/en-gb.js +ckeditor/lang/sl.js +ckeditor/lang/en-au.js +ckeditor/lang/el.js +ckeditor/lang/hi.js +ckeditor/lang/cy.js +ckeditor/lang/ar.js +ckeditor/lang/nb.js +ckeditor/lang/ms.js +ckeditor/lang/is.js +ckeditor/lang/pt-br.js +ckeditor/lang/es.js +ckeditor/lang/fr-ca.js +ckeditor/lang/de-ch.js +ckeditor/lang/ko.js +ckeditor/lang/bs.js +ckeditor/lang/ku.js +ckeditor/lang/tt.js +ckeditor/lang/hu.js +ckeditor/lang/ru.js +ckeditor/lang/cs.js +ckeditor/lang/zh.js +ckeditor/lang/sv.js +ckeditor/lang/lt.js +ckeditor/lang/tr.js +ckeditor/lang/hr.js +ckeditor/lang/zh-cn.js +ckeditor/lang/pt.js +ckeditor/lang/he.js +ckeditor/lang/de.js +ckeditor/lang/en-ca.js +ckeditor/lang/ca.js +ckeditor/lang/gu.js +ckeditor/lang/oc.js +ckeditor/build-config.js +ckeditor/plugins/icons.png +ckeditor/plugins/specialchar/dialogs/lang/id.js +ckeditor/plugins/specialchar/dialogs/lang/fi.js +ckeditor/plugins/specialchar/dialogs/lang/es-mx.js +ckeditor/plugins/specialchar/dialogs/lang/az.js +ckeditor/plugins/specialchar/dialogs/lang/bg.js +ckeditor/plugins/specialchar/dialogs/lang/af.js +ckeditor/plugins/specialchar/dialogs/lang/et.js +ckeditor/plugins/specialchar/dialogs/lang/km.js +ckeditor/plugins/specialchar/dialogs/lang/da.js +ckeditor/plugins/specialchar/dialogs/lang/eo.js +ckeditor/plugins/specialchar/dialogs/lang/si.js +ckeditor/plugins/specialchar/dialogs/lang/fa.js +ckeditor/plugins/specialchar/dialogs/lang/uk.js +ckeditor/plugins/specialchar/dialogs/lang/en.js +ckeditor/plugins/specialchar/dialogs/lang/fr.js +ckeditor/plugins/specialchar/dialogs/lang/pl.js +ckeditor/plugins/specialchar/dialogs/lang/it.js +ckeditor/plugins/specialchar/dialogs/lang/eu.js +ckeditor/plugins/specialchar/dialogs/lang/ug.js +ckeditor/plugins/specialchar/dialogs/lang/gl.js +ckeditor/plugins/specialchar/dialogs/lang/nl.js +ckeditor/plugins/specialchar/dialogs/lang/vi.js +ckeditor/plugins/specialchar/dialogs/lang/lv.js +ckeditor/plugins/specialchar/dialogs/lang/sk.js +ckeditor/plugins/specialchar/dialogs/lang/ja.js +ckeditor/plugins/specialchar/dialogs/lang/sq.js +ckeditor/plugins/specialchar/dialogs/lang/no.js +ckeditor/plugins/specialchar/dialogs/lang/th.js +ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +ckeditor/plugins/specialchar/dialogs/lang/sl.js +ckeditor/plugins/specialchar/dialogs/lang/en-au.js +ckeditor/plugins/specialchar/dialogs/lang/el.js +ckeditor/plugins/specialchar/dialogs/lang/cy.js +ckeditor/plugins/specialchar/dialogs/lang/ar.js +ckeditor/plugins/specialchar/dialogs/lang/nb.js +ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +ckeditor/plugins/specialchar/dialogs/lang/es.js +ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +ckeditor/plugins/specialchar/dialogs/lang/de-ch.js +ckeditor/plugins/specialchar/dialogs/lang/ko.js +ckeditor/plugins/specialchar/dialogs/lang/ku.js +ckeditor/plugins/specialchar/dialogs/lang/tt.js +ckeditor/plugins/specialchar/dialogs/lang/hu.js +ckeditor/plugins/specialchar/dialogs/lang/ru.js +ckeditor/plugins/specialchar/dialogs/lang/cs.js +ckeditor/plugins/specialchar/dialogs/lang/zh.js +ckeditor/plugins/specialchar/dialogs/lang/sv.js +ckeditor/plugins/specialchar/dialogs/lang/lt.js +ckeditor/plugins/specialchar/dialogs/lang/tr.js +ckeditor/plugins/specialchar/dialogs/lang/hr.js +ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +ckeditor/plugins/specialchar/dialogs/lang/pt.js +ckeditor/plugins/specialchar/dialogs/lang/he.js +ckeditor/plugins/specialchar/dialogs/lang/de.js +ckeditor/plugins/specialchar/dialogs/lang/en-ca.js +ckeditor/plugins/specialchar/dialogs/lang/ca.js +ckeditor/plugins/specialchar/dialogs/lang/oc.js +ckeditor/plugins/specialchar/dialogs/specialchar.js +ckeditor/plugins/smiley/images/embaressed_smile.gif +ckeditor/plugins/smiley/images/shades_smile.png +ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +ckeditor/plugins/smiley/images/lightbulb.png +ckeditor/plugins/smiley/images/tounge_smile.gif +ckeditor/plugins/smiley/images/teeth_smile.png +ckeditor/plugins/smiley/images/wink_smile.png +ckeditor/plugins/smiley/images/tongue_smile.gif +ckeditor/plugins/smiley/images/broken_heart.png +ckeditor/plugins/smiley/images/tongue_smile.png +ckeditor/plugins/smiley/images/confused_smile.gif +ckeditor/plugins/smiley/images/heart.gif +ckeditor/plugins/smiley/images/cry_smile.png +ckeditor/plugins/smiley/images/omg_smile.gif +ckeditor/plugins/smiley/images/regular_smile.png +ckeditor/plugins/smiley/images/angel_smile.gif +ckeditor/plugins/smiley/images/angel_smile.png +ckeditor/plugins/smiley/images/kiss.png +ckeditor/plugins/smiley/images/heart.png +ckeditor/plugins/smiley/images/cry_smile.gif +ckeditor/plugins/smiley/images/omg_smile.png +ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png +ckeditor/plugins/smiley/images/angry_smile.png +ckeditor/plugins/smiley/images/shades_smile.gif +ckeditor/plugins/smiley/images/angry_smile.gif +ckeditor/plugins/smiley/images/lightbulb.gif +ckeditor/plugins/smiley/images/kiss.gif +ckeditor/plugins/smiley/images/wink_smile.gif +ckeditor/plugins/smiley/images/thumbs_up.png +ckeditor/plugins/smiley/images/thumbs_up.gif +ckeditor/plugins/smiley/images/teeth_smile.gif +ckeditor/plugins/smiley/images/devil_smile.gif +ckeditor/plugins/smiley/images/broken_heart.gif +ckeditor/plugins/smiley/images/thumbs_down.gif +ckeditor/plugins/smiley/images/thumbs_down.png +ckeditor/plugins/smiley/images/sad_smile.png +ckeditor/plugins/smiley/images/embarrassed_smile.png +ckeditor/plugins/smiley/images/envelope.png +ckeditor/plugins/smiley/images/devil_smile.png +ckeditor/plugins/smiley/images/sad_smile.gif +ckeditor/plugins/smiley/images/embarrassed_smile.gif +ckeditor/plugins/smiley/images/regular_smile.gif +ckeditor/plugins/smiley/images/envelope.gif +ckeditor/plugins/smiley/images/confused_smile.png +ckeditor/plugins/smiley/dialogs/smiley.js +ckeditor/plugins/pastefromword/filter/default.js +ckeditor/plugins/templates/templates/images/template2.gif +ckeditor/plugins/templates/templates/images/template3.gif +ckeditor/plugins/templates/templates/images/template1.gif +ckeditor/plugins/templates/templates/default.js +ckeditor/plugins/templates/dialogs/templates.js +ckeditor/plugins/templates/dialogs/templates.css +ckeditor/plugins/div/dialogs/div.js +ckeditor/plugins/showblocks/images/block_h3.png +ckeditor/plugins/showblocks/images/block_h4.png +ckeditor/plugins/showblocks/images/block_div.png +ckeditor/plugins/showblocks/images/block_p.png +ckeditor/plugins/showblocks/images/block_h2.png +ckeditor/plugins/showblocks/images/block_pre.png +ckeditor/plugins/showblocks/images/block_address.png +ckeditor/plugins/showblocks/images/block_blockquote.png +ckeditor/plugins/showblocks/images/block_h1.png +ckeditor/plugins/showblocks/images/block_h5.png +ckeditor/plugins/showblocks/images/block_h6.png +ckeditor/plugins/colordialog/dialogs/colordialog.css +ckeditor/plugins/colordialog/dialogs/colordialog.js +ckeditor/plugins/scayt/skins/moono-lisa/scayt.css +ckeditor/plugins/scayt/dialogs/options.js +ckeditor/plugins/scayt/dialogs/toolbar.css +ckeditor/plugins/scayt/dialogs/dialog.css +ckeditor/plugins/table/dialogs/table.js +ckeditor/plugins/find/dialogs/find.js +ckeditor/plugins/about/dialogs/about.js +ckeditor/plugins/about/dialogs/logo_ckeditor.png +ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +ckeditor/plugins/image/images/noimage.png +ckeditor/plugins/image/dialogs/image.js +ckeditor/plugins/preview/preview.html +ckeditor/plugins/copyformatting/styles/copyformatting.css +ckeditor/plugins/copyformatting/cursors/cursor.svg +ckeditor/plugins/copyformatting/cursors/cursor-disabled.svg +ckeditor/plugins/link/images/anchor.png +ckeditor/plugins/link/images/hidpi/anchor.png +ckeditor/plugins/link/dialogs/anchor.js +ckeditor/plugins/link/dialogs/link.js +ckeditor/plugins/wsc/skins/moono-lisa/wsc.css +ckeditor/plugins/wsc/dialogs/ciframe.html +ckeditor/plugins/wsc/dialogs/wsc.css +ckeditor/plugins/wsc/dialogs/wsc.js +ckeditor/plugins/wsc/dialogs/wsc_ie.js +ckeditor/plugins/wsc/dialogs/tmpFrameset.html +ckeditor/plugins/icons_hidpi.png +ckeditor/plugins/tabletools/dialogs/tableCell.js +ckeditor/plugins/forms/images/hiddenfield.gif +ckeditor/plugins/forms/dialogs/button.js +ckeditor/plugins/forms/dialogs/radio.js +ckeditor/plugins/forms/dialogs/checkbox.js +ckeditor/plugins/forms/dialogs/textarea.js +ckeditor/plugins/forms/dialogs/textfield.js +ckeditor/plugins/forms/dialogs/select.js +ckeditor/plugins/forms/dialogs/hiddenfield.js +ckeditor/plugins/forms/dialogs/form.js +ckeditor/plugins/magicline/images/icon-rtl.png +ckeditor/plugins/magicline/images/icon.png +ckeditor/plugins/magicline/images/hidpi/icon-rtl.png +ckeditor/plugins/magicline/images/hidpi/icon.png +ckeditor/plugins/liststyle/dialogs/liststyle.js +ckeditor/plugins/flash/images/placeholder.png +ckeditor/plugins/flash/dialogs/flash.js +ckeditor/plugins/pagebreak/images/pagebreak.gif +ckeditor/plugins/dialog/dialogDefinition.js +ckeditor/plugins/iframe/images/placeholder.png +ckeditor/plugins/iframe/dialogs/iframe.js +ckeditor/plugins/tableselection/styles/tableselection.css +ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +ckeditor/plugins/a11yhelp/dialogs/lang/id.js +ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js +ckeditor/plugins/a11yhelp/dialogs/lang/az.js +ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +ckeditor/plugins/a11yhelp/dialogs/lang/af.js +ckeditor/plugins/a11yhelp/dialogs/lang/et.js +ckeditor/plugins/a11yhelp/dialogs/lang/km.js +ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +ckeditor/plugins/a11yhelp/dialogs/lang/da.js +ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +ckeditor/plugins/a11yhelp/dialogs/lang/si.js +ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +ckeditor/plugins/a11yhelp/dialogs/lang/fo.js +ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +ckeditor/plugins/a11yhelp/dialogs/lang/en.js +ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +ckeditor/plugins/a11yhelp/dialogs/lang/it.js +ckeditor/plugins/a11yhelp/dialogs/lang/eu.js +ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +ckeditor/plugins/a11yhelp/dialogs/lang/no.js +ckeditor/plugins/a11yhelp/dialogs/lang/th.js +ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js +ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +ckeditor/plugins/a11yhelp/dialogs/lang/el.js +ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +ckeditor/plugins/a11yhelp/dialogs/lang/es.js +ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js +ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +ckeditor/plugins/a11yhelp/dialogs/lang/he.js +ckeditor/plugins/a11yhelp/dialogs/lang/de.js +ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +ckeditor/plugins/a11yhelp/dialogs/lang/oc.js +ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +ckeditor/contents.css +ckeditor/styles.js +ckeditor/config.js +ckeditor/ckeditor.js +ckeditor/adapters/jquery.js +NETWORK: +* \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.xml new file mode 100644 index 0000000000..c02cdc216d --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.appcache.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="File" module="OFS.Image"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Cacheable__manager_id</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>ckeditor.gadget.appcache</string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/cache-manifest</string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.html b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.html new file mode 100644 index 0000000000..483dc6b331 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html manifest="ckeditor.gadget.appcache"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>CKEditor Gadget</title> + + <script src="rsvp.js" type="text/javascript"></script> + <script src="renderjs.js" type="text/javascript"></script> + + <!-- This gadget provides ckeditor with all Plugins activated by default --> + <!-- Make sure to check the timestamp of your CKEditor version in order to update the manifest --> + <script src="ckeditor/ckeditor.js"></script> + <script src="ckeditor.gadget.js" type="text/javascript"></script> + + </head> + <body> + <div class="ckeditor_gadget"><textarea></textarea></div> + </body> +</html> \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.xml new file mode 100644 index 0000000000..ade1f20c28 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.html.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="File" module="OFS.Image"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Cacheable__manager_id</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>ckeditor.gadget.html</string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.js b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.js new file mode 100644 index 0000000000..7644603ad4 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.js @@ -0,0 +1,216 @@ +/*global window, document, rJS, CKEDITOR, RSVP*/ +/*jslint nomen: true, maxlen:80, indent:2*/ +(function (window, document, rJS, CKEDITOR, RSVP) { + "use strict"; + + // erp5_globals is not in xhtml_style. + // Copy/Paste this function for now + function loopEventListener(target, type, useCapture, callback, + prevent_default) { + ////////////////////////// + // Infinite event listener (promise is never resolved) + // eventListener is removed when promise is cancelled/rejected + ////////////////////////// + var handle_event_callback, + callback_promise; + + if (prevent_default === undefined) { + prevent_default = true; + } + + function cancelResolver() { + if ((callback_promise !== undefined) && + (typeof callback_promise.cancel === "function")) { + callback_promise.cancel(); + } + } + + function canceller() { + if (handle_event_callback !== undefined) { + target.removeEventListener(type, handle_event_callback, useCapture); + } + cancelResolver(); + } + function itsANonResolvableTrap(resolve, reject) { + var result; + handle_event_callback = function (evt) { + if (prevent_default) { + evt.stopPropagation(); + evt.preventDefault(); + } + + cancelResolver(); + + try { + result = callback(evt); + } catch (e) { + result = RSVP.reject(e); + } + + callback_promise = result; + new RSVP.Queue() + .push(function () { + return result; + }) + .push(undefined, function (error) { + if (!(error instanceof RSVP.CancellationError)) { + canceller(); + reject(error); + } + }); + }; + + target.addEventListener(type, handle_event_callback, useCapture); + } + return new RSVP.Promise(itsANonResolvableTrap, canceller); + } + + // http://nightly.ckeditor.com/17-10-11-06-04/full/samples/toolbarconfigurator/index.html#advanced + var TOOLBAR_MOBILE = [ + {name: 'basicstyles', items: ['Bold', 'Italic', 'Underline']}, + {name: 'paragraph', items: ['NumberedList', 'BulletedList']}, + {name: 'links', items: ['Link']}, + {name: 'insert', items: ['Image']}, + {name: 'styles', items: ['Format']} + ], + TOOLBAR_DESKTOP = [ + {name: 'document', + items: ['Source', '-', 'Save', 'Print', '-', 'Templates']}, + {name: 'clipboard', items: ['Undo', 'Redo']}, + {name: 'editing', items: ['Find', 'Replace', '-', 'SelectAll', + '-', 'Scayt']}, + '/', + {name: 'basicstyles', + items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', + 'Superscript', '-', 'RemoveFormat']}, + {name: 'paragraph', + items: ['NumberedList', 'BulletedList', '-', 'Outdent', + 'Indent', '-', 'Blockquote', 'CreateDiv', '-', + 'JustifyLeft', 'JustifyCenter', 'JustifyRight', + 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language']}, + {name: 'links', items: ['Link', 'Unlink', 'Anchor']}, + {name: 'insert', + items: ['Image', 'Table', 'HorizontalRule', 'Smiley', + 'SpecialChar', 'PageBreak']}, + '/', + {name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize']}, + {name: 'colors', items: ['TextColor', 'BGColor']}, + {name: 'tools', items: ['ShowBlocks']} + ], + MOBILE_CONFIGURATION = { + toolbar: TOOLBAR_MOBILE, + disableNativeSpellChecker: false, + // Disable ACF to not destroy HTML on mobile + allowedContent: true + }, + DESKTOP_CONFIGURATION = { + toolbar: TOOLBAR_DESKTOP, + disableNativeSpellChecker: false, + // Disable ACF to not destroy HTML on mobile + allowedContent: true + }, + MATCH_MEDIA = window.matchMedia("not screen and (min-width: 45em)"); + + rJS(window) + .declareAcquiredMethod("notifySubmit", "notifySubmit") + .declareJob("deferNotifySubmit", function () { + // Ensure error will be correctly handled + return this.notifySubmit(); + }) + .declareAcquiredMethod("notifyChange", "notifyChange") + .declareJob("deferNotifyChange", function () { + // Ensure error will be correctly handled + return this.notifyChange(); + }) + + .setState({ + is_mobile: false + }) + + .declareMethod('render', function (options) { + return this.changeState({ + key: options.key, + value: options.value || "", + editable: options.editable === undefined ? true : options.editable, + configuration: options.configuration || DESKTOP_CONFIGURATION, + configuration_mobile: options.configuration_mobile || + MOBILE_CONFIGURATION, + is_responsive: (options.configuration_mobile !== undefined) || + (options.configuration === undefined) + }); + }) + + .declareMethod('getContent', function () { + var result = {}; + if (this.state.editable) { + result[this.state.key] = this.ckeditor.getData(); + } + return result; + }) + + .onStateChange(function (modification_dict) { + var gadget = this, + configuration; + if (modification_dict.hasOwnProperty('configuration') || + modification_dict.hasOwnProperty('configuration_mobile') || + modification_dict.hasOwnProperty('is_responsive') || + modification_dict.hasOwnProperty('is_mobile')) { + // Expected configuration changed. + // Recreate ckeditor + if (gadget.hasOwnProperty('ckeditor')) { + // Destroy previous instance + gadget.ckeditor.destroy(); + } + // Create a new editor + if (gadget.state.is_responsive && gadget.state.is_mobile) { + configuration = gadget.state.configuration_mobile; + } else { + configuration = gadget.state.configuration; + } + gadget.ckeditor = CKEDITOR.replace( + this.element.querySelector('textarea'), + configuration + ); + gadget.ckeditor.addCommand('saveRJS', { + readOnly: 1, + exec: gadget.deferNotifySubmit.bind(gadget) + }); + gadget.ckeditor.ui.addButton('Save', { + label: "Save", + command: 'saveRJS', + toolbar: 'document,1' + }); + gadget.ckeditor.on('instanceReady', function (event) { + event.editor.execCommand('maximize'); + }); + gadget.ckeditor.on('change', gadget.deferNotifyChange.bind(gadget)); + } + if (modification_dict.hasOwnProperty('value')) { + this.ckeditor.setData(this.state.value); + } + }) + + .declareService(function () { + var result, + event, + context = this; + function extractSizeAndDispatch() { + if (MATCH_MEDIA.matches) { + return context.changeState({ + is_mobile: true + }); + } + return context.changeState({ + is_mobile: false + }); + } + result = loopEventListener(window, 'resize', false, + extractSizeAndDispatch); + event = document.createEvent("Event"); + event.initEvent('resize', true, true); + window.dispatchEvent(event); + return result; + }); + + +}(window, document, rJS, CKEDITOR, RSVP)); \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.xml new file mode 100644 index 0000000000..7820d39e0e --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_ckeditor/ckeditor.gadget.js.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="File" module="OFS.Image"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Cacheable__manager_id</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>ckeditor.gadget.js</string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/javascript</string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> -- 2.30.9