PHP Classes

File: public/js/tinymce/src/plugins/image/src/main/js/ui/Dialog.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/plugins/image/src/main/js/ui/Dialog.js   Download  
File: public/js/tinymce/src/plugins/image/src/main/js/ui/Dialog.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 8,641 bytes
 

Contents

Class file image Download
/** * Dialog.js * * Released under LGPL License. * Copyright (c) 1999-2017 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** * @class tinymce.image.ui.Dialog * @private */ define( 'tinymce.plugins.image.ui.Dialog', [ 'global!Math', 'global!RegExp', 'tinymce.core.util.Tools', 'tinymce.plugins.image.api.Settings', 'tinymce.plugins.image.core.Utils', 'tinymce.plugins.image.ui.AdvTab', 'tinymce.plugins.image.ui.MainTab', 'tinymce.plugins.image.ui.SizeManager', 'tinymce.plugins.image.ui.UploadTab' ], function (Math, RegExp, Tools, Settings, Utils, AdvTab, MainTab, SizeManager, UploadTab) { return function (editor) { var updateStyle = function (editor, rootControl) { if (!Settings.hasAdvTab(editor)) { return; } var dom = editor.dom; var data = rootControl.toJSON(); var css = dom.parseStyle(data.style); css = Utils.mergeMargins(css); if (data.vspace) { css['margin-top'] = css['margin-bottom'] = Utils.addPixelSuffix(data.vspace); } if (data.hspace) { css['margin-left'] = css['margin-right'] = Utils.addPixelSuffix(data.hspace); } if (data.border) { css['border-width'] = Utils.addPixelSuffix(data.border); } rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); }; function showDialog(imageList) { var win, data = {}, imgElm, figureElm, dom = editor.dom; var imageListCtrl; function onSubmitForm() { var figureElm, oldImg; SizeManager.updateSize(win); updateStyle(editor, win); data = Tools.extend(data, win.toJSON()); if (!data.alt) { data.alt = ''; } if (!data.title) { data.title = ''; } if (data.width === '') { data.width = null; } if (data.height === '') { data.height = null; } if (!data.style) { data.style = null; } // Setup new data excluding style properties /*eslint dot-notation: 0*/ data = { src: data.src, alt: data.alt, title: data.title, width: data.width, height: data.height, style: data.style, caption: data.caption, "class": data["class"] }; editor.undoManager.transact(function () { if (!data.src) { if (imgElm) { var elm = dom.is(imgElm.parentNode, 'figure.image') ? imgElm.parentNode : imgElm; dom.remove(elm); editor.focus(); editor.nodeChanged(); if (dom.isEmpty(editor.getBody())) { editor.setContent(''); editor.selection.setCursorLocation(); } } return; } if (data.title === "") { data.title = null; } if (!imgElm) { data.id = '__mcenew'; editor.focus(); editor.selection.setContent(dom.createHTML('img', data)); imgElm = dom.get('__mcenew'); dom.setAttrib(imgElm, 'id', null); } else { dom.setAttribs(imgElm, data); } editor.editorUpload.uploadImagesAuto(); if (data.caption === false) { if (dom.is(imgElm.parentNode, 'figure.image')) { figureElm = imgElm.parentNode; dom.insertAfter(imgElm, figureElm); dom.remove(figureElm); } } if (data.caption === true) { if (!dom.is(imgElm.parentNode, 'figure.image')) { oldImg = imgElm; imgElm = imgElm.cloneNode(true); figureElm = dom.create('figure', { 'class': 'image' }); figureElm.appendChild(imgElm); figureElm.appendChild(dom.create('figcaption', { contentEditable: true }, 'Caption')); figureElm.contentEditable = false; var textBlock = dom.getParent(oldImg, function (node) { return editor.schema.getTextBlockElements()[node.nodeName]; }); if (textBlock) { dom.split(textBlock, oldImg, figureElm); } else { dom.replace(figureElm, oldImg); } editor.selection.select(figureElm); } return; } Utils.waitLoadImage(editor, data, imgElm); }); } imgElm = editor.selection.getNode(); figureElm = dom.getParent(imgElm, 'figure.image'); if (figureElm) { imgElm = dom.select('img', figureElm)[0]; } if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) { imgElm = null; } if (imgElm) { data = { src: dom.getAttrib(imgElm, 'src'), alt: dom.getAttrib(imgElm, 'alt'), title: dom.getAttrib(imgElm, 'title'), "class": dom.getAttrib(imgElm, 'class'), width: dom.getAttrib(imgElm, 'width'), height: dom.getAttrib(imgElm, 'height'), caption: !!figureElm }; } if (imageList) { imageListCtrl = { type: 'listbox', label: 'Image list', name: 'image-list', values: Utils.buildListItems( imageList, function (item) { item.value = editor.convertURL(item.value || item.url, 'src'); }, [{ text: 'None', value: '' }] ), value: data.src && editor.convertURL(data.src, 'src'), onselect: function (e) { var altCtrl = win.find('#alt'); if (!altCtrl.value() || (e.lastControl && altCtrl.value() === e.lastControl.text())) { altCtrl.value(e.control.text()); } win.find('#src').value(e.control.value()).fire('change'); }, onPostRender: function () { /*eslint consistent-this: 0*/ imageListCtrl = this; } }; } if (Settings.hasAdvTab(editor) || Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { var body = [ MainTab.makeTab(editor, imageListCtrl) ]; if (Settings.hasAdvTab(editor)) { // Parse styles from img if (imgElm) { if (imgElm.style.marginLeft && imgElm.style.marginRight && imgElm.style.marginLeft === imgElm.style.marginRight) { data.hspace = Utils.removePixelSuffix(imgElm.style.marginLeft); } if (imgElm.style.marginTop && imgElm.style.marginBottom && imgElm.style.marginTop === imgElm.style.marginBottom) { data.vspace = Utils.removePixelSuffix(imgElm.style.marginTop); } if (imgElm.style.borderWidth) { data.border = Utils.removePixelSuffix(imgElm.style.borderWidth); } data.style = editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm, 'style'))); } body.push(AdvTab.makeTab(editor, updateStyle)); } if (Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { body.push(UploadTab.makeTab(editor)); } // Advanced dialog shows general+advanced tabs win = editor.windowManager.open({ title: 'Insert/edit image', data: data, bodyType: 'tabpanel', body: body, onSubmit: onSubmitForm }); } else { // Simple default dialog win = editor.windowManager.open({ title: 'Insert/edit image', data: data, body: MainTab.getGeneralItems(editor, imageListCtrl), onSubmit: onSubmitForm }); } SizeManager.syncSize(win); } function open() { Utils.createImageList(editor, showDialog); } return { open: open }; }; } );