diff -r 318533413200 -r a1707c607eec src/pyams_skin/resources/js/ext/tinymce/dev/plugins/template/plugin.js --- a/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/template/plugin.js Sun Jul 19 02:02:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,262 +0,0 @@ -/** - * plugin.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/*global tinymce:true */ - -tinymce.PluginManager.add('template', function(editor) { - var each = tinymce.each; - - function createTemplateList(callback) { - return function() { - var templateList = editor.settings.templates; - - if (typeof templateList == "string") { - tinymce.util.XHR.send({ - url: templateList, - success: function(text) { - callback(tinymce.util.JSON.parse(text)); - } - }); - } else { - callback(templateList); - } - }; - } - - function showDialog(templateList) { - var win, values = [], templateHtml; - - if (!templateList || templateList.length === 0) { - editor.windowManager.alert('No templates defined'); - return; - } - - tinymce.each(templateList, function(template) { - values.push({ - selected: !values.length, - text: template.title, - value: { - url: template.url, - content: template.content, - description: template.description - } - }); - }); - - function onSelectTemplate(e) { - var value = e.control.value(); - - function insertIframeHtml(html) { - if (html.indexOf('') == -1) { - var contentCssLinks = ''; - - tinymce.each(editor.contentCSS, function(url) { - contentCssLinks += ''; - }); - - html = ( - '' + - '' + - '' + - contentCssLinks + - '' + - '' + - html + - '' + - '' - ); - } - - html = replaceTemplateValues(html, 'template_preview_replace_values'); - - var doc = win.find('iframe')[0].getEl().contentWindow.document; - doc.open(); - doc.write(html); - doc.close(); - } - - if (value.url) { - tinymce.util.XHR.send({ - url: value.url, - success: function(html) { - templateHtml = html; - insertIframeHtml(templateHtml); - } - }); - } else { - templateHtml = value.content; - insertIframeHtml(templateHtml); - } - - win.find('#description')[0].text(e.control.value().description); - } - - win = editor.windowManager.open({ - title: 'Insert template', - layout: 'flex', - direction: 'column', - align: 'stretch', - padding: 15, - spacing: 10, - - items: [ - {type: 'form', flex: 0, padding: 0, items: [ - {type: 'container', label: 'Templates', items: { - type: 'listbox', label: 'Templates', name: 'template', values: values, onselect: onSelectTemplate - }} - ]}, - {type: 'label', name: 'description', label: 'Description', text: '\u00a0'}, - {type: 'iframe', flex: 1, border: 1} - ], - - onsubmit: function() { - insertTemplate(false, templateHtml); - }, - - width: editor.getParam('template_popup_width', 600), - height: editor.getParam('template_popup_height', 500) - }); - - win.find('listbox')[0].fire('select'); - } - - function getDateTime(fmt, date) { - var daysShort = "Sun Mon Tue Wed Thu Fri Sat Sun".split(' '); - var daysLong = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(' '); - var monthsShort = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(' '); - var monthsLong = "January February March April May June July August September October November December".split(' '); - - function addZeros(value, len) { - value = "" + value; - - if (value.length < len) { - for (var i = 0; i < (len - value.length); i++) { - value = "0" + value; - } - } - - return value; - } - - date = date || new Date(); - - fmt = fmt.replace("%D", "%m/%d/%Y"); - fmt = fmt.replace("%r", "%I:%M:%S %p"); - fmt = fmt.replace("%Y", "" + date.getFullYear()); - fmt = fmt.replace("%y", "" + date.getYear()); - fmt = fmt.replace("%m", addZeros(date.getMonth() + 1, 2)); - fmt = fmt.replace("%d", addZeros(date.getDate(), 2)); - fmt = fmt.replace("%H", "" + addZeros(date.getHours(), 2)); - fmt = fmt.replace("%M", "" + addZeros(date.getMinutes(), 2)); - fmt = fmt.replace("%S", "" + addZeros(date.getSeconds(), 2)); - fmt = fmt.replace("%I", "" + ((date.getHours() + 11) % 12 + 1)); - fmt = fmt.replace("%p", "" + (date.getHours() < 12 ? "AM" : "PM")); - fmt = fmt.replace("%B", "" + editor.translate(monthsLong[date.getMonth()])); - fmt = fmt.replace("%b", "" + editor.translate(monthsShort[date.getMonth()])); - fmt = fmt.replace("%A", "" + editor.translate(daysLong[date.getDay()])); - fmt = fmt.replace("%a", "" + editor.translate(daysShort[date.getDay()])); - fmt = fmt.replace("%%", "%"); - - return fmt; - } - - function replaceVals(e) { - var dom = editor.dom, vl = editor.getParam('template_replace_values'); - - each(dom.select('*', e), function(e) { - each(vl, function(v, k) { - if (dom.hasClass(e, k)) { - if (typeof vl[k] == 'function') { - vl[k](e); - } - } - }); - }); - } - - function replaceTemplateValues(html, templateValuesOptionName) { - each(editor.getParam(templateValuesOptionName), function(v, k) { - if (typeof v != 'function') { - html = html.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v); - } - }); - - return html; - } - - function insertTemplate(ui, html) { - var el, n, dom = editor.dom, sel = editor.selection.getContent(); - - html = replaceTemplateValues(html, 'template_replace_values'); - el = dom.create('div', null, html); - - // Find template element within div - n = dom.select('.mceTmpl', el); - if (n && n.length > 0) { - el = dom.create('div', null); - el.appendChild(n[0].cloneNode(true)); - } - - function hasClass(n, c) { - return new RegExp('\\b' + c + '\\b', 'g').test(n.className); - } - - each(dom.select('*', el), function(n) { - // Replace cdate - if (hasClass(n, editor.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|'))) { - n.innerHTML = getDateTime(editor.getParam("template_cdate_format", editor.getLang("template.cdate_format"))); - } - - // Replace mdate - if (hasClass(n, editor.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) { - n.innerHTML = getDateTime(editor.getParam("template_mdate_format", editor.getLang("template.mdate_format"))); - } - - // Replace selection - if (hasClass(n, editor.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|'))) { - n.innerHTML = sel; - } - }); - - replaceVals(el); - - editor.execCommand('mceInsertContent', false, el.innerHTML); - editor.addVisual(); - } - - editor.addCommand('mceInsertTemplate', insertTemplate); - - editor.addButton('template', { - title: 'Insert template', - onclick: createTemplateList(showDialog) - }); - - editor.addMenuItem('template', { - text: 'Insert template', - onclick: createTemplateList(showDialog), - context: 'insert' - }); - - editor.on('PreProcess', function(o) { - var dom = editor.dom; - - each(dom.select('div', o.node), function(e) { - if (dom.hasClass(e, 'mceTmpl')) { - each(dom.select('*', e), function(e) { - if (dom.hasClass(e, editor.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) { - e.innerHTML = getDateTime(editor.getParam("template_mdate_format", editor.getLang("template.mdate_format"))); - } - }); - - replaceVals(e); - } - }); - }); -}); \ No newline at end of file