| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- (function () {
- var template = (function () {
- 'use strict';
- var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
- var curry = function (f) {
- var x = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- x[_i - 1] = arguments[_i];
- }
- var args = new Array(arguments.length - 1);
- for (var i = 1; i < arguments.length; i++)
- args[i - 1] = arguments[i];
- return function () {
- var x = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- x[_i] = arguments[_i];
- }
- var newArgs = new Array(arguments.length);
- for (var j = 0; j < newArgs.length; j++)
- newArgs[j] = arguments[j];
- var all = args.concat(newArgs);
- return f.apply(null, all);
- };
- };
- var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.XHR');
- var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
- var getCreationDateClasses = function (editor) {
- return editor.getParam('template_cdate_classes', 'cdate');
- };
- var getModificationDateClasses = function (editor) {
- return editor.getParam('template_mdate_classes', 'mdate');
- };
- var getSelectedContentClasses = function (editor) {
- return editor.getParam('template_selected_content_classes', 'selcontent');
- };
- var getPreviewReplaceValues = function (editor) {
- return editor.getParam('template_preview_replace_values');
- };
- var getTemplateReplaceValues = function (editor) {
- return editor.getParam('template_replace_values');
- };
- var getTemplates = function (editorSettings) {
- return editorSettings.templates;
- };
- var getCdateFormat = function (editor) {
- return editor.getParam('template_cdate_format', editor.getLang('template.cdate_format'));
- };
- var getMdateFormat = function (editor) {
- return editor.getParam('template_mdate_format', editor.getLang('template.mdate_format'));
- };
- var getDialogWidth = function (editor) {
- return editor.getParam('template_popup_width', 600);
- };
- var getDialogHeight = function (editor) {
- return Math.min(global$3.DOM.getViewPort().h, editor.getParam('template_popup_height', 500));
- };
- var $_j4vdpr9jkmcws43 = {
- getCreationDateClasses: getCreationDateClasses,
- getModificationDateClasses: getModificationDateClasses,
- getSelectedContentClasses: getSelectedContentClasses,
- getPreviewReplaceValues: getPreviewReplaceValues,
- getTemplateReplaceValues: getTemplateReplaceValues,
- getTemplates: getTemplates,
- getCdateFormat: getCdateFormat,
- getMdateFormat: getMdateFormat,
- getDialogWidth: getDialogWidth,
- getDialogHeight: getDialogHeight
- };
- var addZeros = function (value, len) {
- value = '' + value;
- if (value.length < len) {
- for (var i = 0; i < len - value.length; i++) {
- value = '0' + value;
- }
- }
- return value;
- };
- var getDateTime = function (editor, 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(' ');
- 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;
- };
- var $_7qxvygrbjkmcws45 = { getDateTime: getDateTime };
- var createTemplateList = function (editorSettings, callback) {
- return function () {
- var templateList = $_j4vdpr9jkmcws43.getTemplates(editorSettings);
- if (typeof templateList === 'function') {
- templateList(callback);
- return;
- }
- if (typeof templateList === 'string') {
- global$2.send({
- url: templateList,
- success: function (text) {
- callback(JSON.parse(text));
- }
- });
- } else {
- callback(templateList);
- }
- };
- };
- var replaceTemplateValues = function (editor, html, templateValues) {
- global$1.each(templateValues, function (v, k) {
- if (typeof v === 'function') {
- v = v(k);
- }
- html = html.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);
- });
- return html;
- };
- var replaceVals = function (editor, e) {
- var dom = editor.dom, vl = $_j4vdpr9jkmcws43.getTemplateReplaceValues(editor);
- global$1.each(dom.select('*', e), function (e) {
- global$1.each(vl, function (v, k) {
- if (dom.hasClass(e, k)) {
- if (typeof vl[k] === 'function') {
- vl[k](e);
- }
- }
- });
- });
- };
- var hasClass = function (n, c) {
- return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
- };
- var insertTemplate = function (editor, ui, html) {
- var el;
- var n;
- var dom = editor.dom;
- var sel = editor.selection.getContent();
- html = replaceTemplateValues(editor, html, $_j4vdpr9jkmcws43.getTemplateReplaceValues(editor));
- el = dom.create('div', null, html);
- n = dom.select('.mceTmpl', el);
- if (n && n.length > 0) {
- el = dom.create('div', null);
- el.appendChild(n[0].cloneNode(true));
- }
- global$1.each(dom.select('*', el), function (n) {
- if (hasClass(n, $_j4vdpr9jkmcws43.getCreationDateClasses(editor).replace(/\s+/g, '|'))) {
- n.innerHTML = $_7qxvygrbjkmcws45.getDateTime(editor, $_j4vdpr9jkmcws43.getCdateFormat(editor));
- }
- if (hasClass(n, $_j4vdpr9jkmcws43.getModificationDateClasses(editor).replace(/\s+/g, '|'))) {
- n.innerHTML = $_7qxvygrbjkmcws45.getDateTime(editor, $_j4vdpr9jkmcws43.getMdateFormat(editor));
- }
- if (hasClass(n, $_j4vdpr9jkmcws43.getSelectedContentClasses(editor).replace(/\s+/g, '|'))) {
- n.innerHTML = sel;
- }
- });
- replaceVals(editor, el);
- editor.execCommand('mceInsertContent', false, el.innerHTML);
- editor.addVisual();
- };
- var $_dv7lv7r6jkmcws40 = {
- createTemplateList: createTemplateList,
- replaceTemplateValues: replaceTemplateValues,
- replaceVals: replaceVals,
- insertTemplate: insertTemplate
- };
- var register = function (editor) {
- editor.addCommand('mceInsertTemplate', curry($_dv7lv7r6jkmcws40.insertTemplate, editor));
- };
- var $_ga6lx9r4jkmcws3k = { register: register };
- var setup = function (editor) {
- editor.on('PreProcess', function (o) {
- var dom = editor.dom, dateFormat = $_j4vdpr9jkmcws43.getMdateFormat(editor);
- global$1.each(dom.select('div', o.node), function (e) {
- if (dom.hasClass(e, 'mceTmpl')) {
- global$1.each(dom.select('*', e), function (e) {
- if (dom.hasClass(e, editor.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) {
- e.innerHTML = $_7qxvygrbjkmcws45.getDateTime(editor, dateFormat);
- }
- });
- $_dv7lv7r6jkmcws40.replaceVals(editor, e);
- }
- });
- });
- };
- var $_cfkisrrcjkmcws47 = { setup: setup };
- var insertIframeHtml = function (editor, win, html) {
- if (html.indexOf('<html>') === -1) {
- var contentCssLinks_1 = '';
- global$1.each(editor.contentCSS, function (url) {
- contentCssLinks_1 += '<link type="text/css" rel="stylesheet" href="' + editor.documentBaseURI.toAbsolute(url) + '">';
- });
- var bodyClass = editor.settings.body_class || '';
- if (bodyClass.indexOf('=') !== -1) {
- bodyClass = editor.getParam('body_class', '', 'hash');
- bodyClass = bodyClass[editor.id] || '';
- }
- html = '<!DOCTYPE html>' + '<html>' + '<head>' + contentCssLinks_1 + '</head>' + '<body class="' + bodyClass + '">' + html + '</body>' + '</html>';
- }
- html = $_dv7lv7r6jkmcws40.replaceTemplateValues(editor, html, $_j4vdpr9jkmcws43.getPreviewReplaceValues(editor));
- var doc = win.find('iframe')[0].getEl().contentWindow.document;
- doc.open();
- doc.write(html);
- doc.close();
- };
- var open = function (editor, templateList) {
- var win;
- var values = [];
- var templateHtml;
- if (!templateList || templateList.length === 0) {
- var message = editor.translate('No templates defined.');
- editor.notificationManager.open({
- text: message,
- type: 'info'
- });
- return;
- }
- global$1.each(templateList, function (template) {
- values.push({
- selected: !values.length,
- text: template.title,
- value: {
- url: template.url,
- content: template.content,
- description: template.description
- }
- });
- });
- var onSelectTemplate = function (e) {
- var value = e.control.value();
- if (value.url) {
- global$2.send({
- url: value.url,
- success: function (html) {
- templateHtml = html;
- insertIframeHtml(editor, win, templateHtml);
- }
- });
- } else {
- templateHtml = value.content;
- insertIframeHtml(editor, win, 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: '\xA0'
- },
- {
- type: 'iframe',
- flex: 1,
- border: 1
- }
- ],
- onsubmit: function () {
- $_dv7lv7r6jkmcws40.insertTemplate(editor, false, templateHtml);
- },
- minWidth: $_j4vdpr9jkmcws43.getDialogWidth(editor),
- minHeight: $_j4vdpr9jkmcws43.getDialogHeight(editor)
- });
- win.find('listbox')[0].fire('select');
- };
- var $_3zebchrejkmcws4b = { open: open };
- var showDialog = function (editor) {
- return function (templates) {
- $_3zebchrejkmcws4b.open(editor, templates);
- };
- };
- var register$1 = function (editor) {
- editor.addButton('template', {
- title: 'Insert template',
- onclick: $_dv7lv7r6jkmcws40.createTemplateList(editor.settings, showDialog(editor))
- });
- editor.addMenuItem('template', {
- text: 'Template',
- onclick: $_dv7lv7r6jkmcws40.createTemplateList(editor.settings, showDialog(editor)),
- icon: 'template',
- context: 'insert'
- });
- };
- var $_3pj1nhrdjkmcws49 = { register: register$1 };
- global.add('template', function (editor) {
- $_3pj1nhrdjkmcws49.register(editor);
- $_ga6lx9r4jkmcws3k.register(editor);
- $_cfkisrrcjkmcws47.setup(editor);
- });
- function Plugin () {
- }
- return Plugin;
- }());
- })();
|