|
|
@ -1,43 +1,453 @@
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
|
|
|
|
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
|
|
|
|
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
|
|
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/,
|
|
|
|
(function () {
|
|
|
|
w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a,
|
|
|
|
var r = function (c, j) {
|
|
|
|
b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio?
|
|
|
|
function r() {
|
|
|
|
e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d?
|
|
|
|
var a = arguments, b = this.getContentElement("advanced", "txtdlgGenStyle");
|
|
|
|
("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement;a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);CKEDITOR.document.getById(m).setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")},
|
|
|
|
b && b.commit.apply(b, a);
|
|
|
|
0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement;a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);CKEDITOR.document.getById(m).setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"),
|
|
|
|
this.foreach(function (b) {
|
|
|
|
z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1);CKEDITOR.document.getById(m).setStyle("display","none");t=new CKEDITOR.dom.element("img",a.document);
|
|
|
|
b.commit && "txtdlgGenStyle" != b.id && b.commit.apply(b, a)
|
|
|
|
this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;var c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"==j&&
|
|
|
|
})
|
|
|
|
this.setupContent(2,d)}if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img");
|
|
|
|
}
|
|
|
|
l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"),
|
|
|
|
|
|
|
|
this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement);
|
|
|
|
function i(a) {
|
|
|
|
this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)},
|
|
|
|
if (!s) {
|
|
|
|
onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=
|
|
|
|
s = 1;
|
|
|
|
!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display",
|
|
|
|
var b = this.getDialog(), d = b.imageElement;
|
|
|
|
"");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);t.setAttribute("src",b);a.preview.setAttribute("src",t.$.src);g(a)}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",
|
|
|
|
if (d) {
|
|
|
|
this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:10px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))},commit:function(a,
|
|
|
|
this.commit(f, d);
|
|
|
|
b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);
|
|
|
|
for (var a = [].concat(a), e = a.length, c, g = 0; g < e; g++)(c = b.getContentElement.apply(b, a[g].split(":"))) && c.setup(f, d)
|
|
|
|
(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var c=this.getValue();a==f?(c?b.setStyle("width",CKEDITOR.tools.cssLength(c)):b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?c.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",
|
|
|
|
}
|
|
|
|
width:"45px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var c=this.getValue();a==f?(c?b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),!d&&b.removeAttribute("height")):4==a?c.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(a=this.getDialog().originalElement,
|
|
|
|
s = 0
|
|
|
|
"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},
|
|
|
|
}
|
|
|
|
a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info","txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+
|
|
|
|
}
|
|
|
|
'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},
|
|
|
|
|
|
|
|
onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),
|
|
|
|
var f = 1, k = /^\s*(\d+)((px)|\%)?\s*$/i, v = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i, o = /^\d+px$/,
|
|
|
|
b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),
|
|
|
|
w = function () {
|
|
|
|
setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(e))),
|
|
|
|
var a = this.getValue(), b = this.getDialog(), d = a.match(k);
|
|
|
|
!c&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace),setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=
|
|
|
|
d && ("%" == d[2] && l(b, !1), a = d[1]);
|
|
|
|
b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))),!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),
|
|
|
|
b.lockRatio && (d = b.originalElement, "true" == d.getCustomData("isReady") && ("txtHeight" == this.id ? (a && "0" != a && (a = Math.round(d.$.width * (a / d.$.height))), isNaN(a) || b.setValueOf("info", "txtWidth", a)) : (a && "0" != a && (a = Math.round(d.$.height * (a / d.$.width))), isNaN(a) || b.setValueOf("info", "txtHeight", a))));
|
|
|
|
b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||
|
|
|
|
g(b)
|
|
|
|
"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+
|
|
|
|
}, g = function (a) {
|
|
|
|
A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
|
|
|
|
if (!a.originalElement || !a.preview)return 1;
|
|
|
|
"</td></tr></table></div></div>"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=decodeURI(this.getValue());b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink=
|
|
|
|
a.commitContent(4, a.preview);
|
|
|
|
!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||
|
|
|
|
return 0
|
|
|
|
"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],
|
|
|
|
}, s, l = function (a, b) {
|
|
|
|
children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))},
|
|
|
|
if (!a.getContentElement("info", "ratioLock"))return null;
|
|
|
|
commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))},
|
|
|
|
var d = a.originalElement;
|
|
|
|
commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle,
|
|
|
|
if (!d)return null;
|
|
|
|
"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a,
|
|
|
|
if ("check" == b) {
|
|
|
|
b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}};
|
|
|
|
if (!a.userlockRatio && "true" == d.getCustomData("isReady")) {
|
|
|
|
CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})();
|
|
|
|
var e = a.getValueOf("info", "txtWidth"), c = a.getValueOf("info", "txtHeight"), d = 1E3 * d.$.width / d.$.height, f = 1E3 * e / c;
|
|
|
|
|
|
|
|
a.lockRatio = !1;
|
|
|
|
|
|
|
|
!e && !c ? a.lockRatio = !0 : !isNaN(d) && !isNaN(f) && Math.round(d) == Math.round(f) && (a.lockRatio = !0)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else void 0 != b ? a.lockRatio = b : (a.userlockRatio = 1, a.lockRatio = !a.lockRatio);
|
|
|
|
|
|
|
|
e = CKEDITOR.document.getById(p);
|
|
|
|
|
|
|
|
a.lockRatio ?
|
|
|
|
|
|
|
|
e.removeClass("cke_btn_unlocked") : e.addClass("cke_btn_unlocked");
|
|
|
|
|
|
|
|
e.setAttribute("aria-checked", a.lockRatio);
|
|
|
|
|
|
|
|
CKEDITOR.env.hc && e.getChild(0).setHtml(a.lockRatio ? CKEDITOR.env.ie ? "■" : "▣" : CKEDITOR.env.ie ? "□" : "▢");
|
|
|
|
|
|
|
|
return a.lockRatio
|
|
|
|
|
|
|
|
}, x = function (a) {
|
|
|
|
|
|
|
|
var b = a.originalElement;
|
|
|
|
|
|
|
|
if ("true" == b.getCustomData("isReady")) {
|
|
|
|
|
|
|
|
var d = a.getContentElement("info", "txtWidth"), e = a.getContentElement("info", "txtHeight");
|
|
|
|
|
|
|
|
d && d.setValue(b.$.width);
|
|
|
|
|
|
|
|
e && e.setValue(b.$.height)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
g(a)
|
|
|
|
|
|
|
|
}, y = function (a, b) {
|
|
|
|
|
|
|
|
function d(a, b) {
|
|
|
|
|
|
|
|
var d = a.match(k);
|
|
|
|
|
|
|
|
return d ?
|
|
|
|
|
|
|
|
("%" == d[2] && (d[1] += "%", l(e, !1)), d[1]) : b
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var e = this.getDialog(), c = "", g = "txtWidth" == this.id ? "width" : "height", h = b.getAttribute(g);
|
|
|
|
|
|
|
|
h && (c = d(h, c));
|
|
|
|
|
|
|
|
c = d(b.getStyle(g), c);
|
|
|
|
|
|
|
|
this.setValue(c)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, t, q = function () {
|
|
|
|
|
|
|
|
var a = this.originalElement;
|
|
|
|
|
|
|
|
a.setCustomData("isReady", "true");
|
|
|
|
|
|
|
|
a.removeListener("load", q);
|
|
|
|
|
|
|
|
a.removeListener("error", h);
|
|
|
|
|
|
|
|
a.removeListener("abort", h);
|
|
|
|
|
|
|
|
CKEDITOR.document.getById(m).setStyle("display", "none");
|
|
|
|
|
|
|
|
this.dontResetSize || x(this);
|
|
|
|
|
|
|
|
this.firstLoad && CKEDITOR.tools.setTimeout(function () {
|
|
|
|
|
|
|
|
l(this, "check")
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
0, this);
|
|
|
|
|
|
|
|
this.dontResetSize = this.firstLoad = !1
|
|
|
|
|
|
|
|
}, h = function () {
|
|
|
|
|
|
|
|
var a = this.originalElement;
|
|
|
|
|
|
|
|
a.removeListener("load", q);
|
|
|
|
|
|
|
|
a.removeListener("error", h);
|
|
|
|
|
|
|
|
a.removeListener("abort", h);
|
|
|
|
|
|
|
|
a = CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path + "images/noimage.png");
|
|
|
|
|
|
|
|
this.preview && this.preview.setAttribute("src", a);
|
|
|
|
|
|
|
|
CKEDITOR.document.getById(m).setStyle("display", "none");
|
|
|
|
|
|
|
|
l(this, !1)
|
|
|
|
|
|
|
|
}, n = function (a) {
|
|
|
|
|
|
|
|
return CKEDITOR.tools.getNextId() + "_" + a
|
|
|
|
|
|
|
|
}, p = n("btnLockSizes"), u = n("btnResetSize"), m = n("ImagePreviewLoader"), A = n("previewLink"),
|
|
|
|
|
|
|
|
z = n("previewImage");
|
|
|
|
|
|
|
|
return{title: c.lang.image["image" == j ? "title" : "titleButton"], minWidth: 420, minHeight: 360, onShow: function () {
|
|
|
|
|
|
|
|
this.linkEditMode = this.imageEditMode = this.linkElement = this.imageElement = !1;
|
|
|
|
|
|
|
|
this.lockRatio = !0;
|
|
|
|
|
|
|
|
this.userlockRatio = 0;
|
|
|
|
|
|
|
|
this.dontResetSize = !1;
|
|
|
|
|
|
|
|
this.firstLoad = !0;
|
|
|
|
|
|
|
|
this.addLink = !1;
|
|
|
|
|
|
|
|
var a = this.getParentEditor(), b = a.getSelection(), d = (b = b && b.getSelectedElement()) && a.elementPath(b).contains("a", 1);
|
|
|
|
|
|
|
|
CKEDITOR.document.getById(m).setStyle("display", "none");
|
|
|
|
|
|
|
|
t = new CKEDITOR.dom.element("img", a.document);
|
|
|
|
|
|
|
|
this.preview = CKEDITOR.document.getById(z);
|
|
|
|
|
|
|
|
this.originalElement = a.document.createElement("img");
|
|
|
|
|
|
|
|
this.originalElement.setAttribute("alt", "");
|
|
|
|
|
|
|
|
this.originalElement.setCustomData("isReady", "false");
|
|
|
|
|
|
|
|
if (d) {
|
|
|
|
|
|
|
|
this.linkElement = d;
|
|
|
|
|
|
|
|
this.linkEditMode = !0;
|
|
|
|
|
|
|
|
var c = d.getChildren();
|
|
|
|
|
|
|
|
if (1 == c.count()) {
|
|
|
|
|
|
|
|
var g = c.getItem(0).getName();
|
|
|
|
|
|
|
|
if ("img" == g || "input" == g)this.imageElement = c.getItem(0), "img" == this.imageElement.getName() ? this.imageEditMode = "img" : "input" == this.imageElement.getName() && (this.imageEditMode = "input")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
"image" == j &&
|
|
|
|
|
|
|
|
this.setupContent(2, d)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.customImageElement)this.imageEditMode = "img", this.imageElement = this.customImageElement, delete this.customImageElement; else if (b && "img" == b.getName() && !b.data("cke-realelement") || b && "input" == b.getName() && "image" == b.getAttribute("type"))this.imageEditMode = b.getName(), this.imageElement = b;
|
|
|
|
|
|
|
|
this.imageEditMode ? (this.cleanImageElement = this.imageElement, this.imageElement = this.cleanImageElement.clone(!0, !0), this.setupContent(f, this.imageElement)) : this.imageElement = a.document.createElement("img");
|
|
|
|
|
|
|
|
l(this, !0);
|
|
|
|
|
|
|
|
CKEDITOR.tools.trim(this.getValueOf("info", "txtUrl")) || (this.preview.removeAttribute("src"), this.preview.setStyle("display", "none"))
|
|
|
|
|
|
|
|
}, onOk: function () {
|
|
|
|
|
|
|
|
if (this.imageEditMode) {
|
|
|
|
|
|
|
|
var a = this.imageEditMode;
|
|
|
|
|
|
|
|
"image" == j && "input" == a && confirm(c.lang.image.button2Img) ? (this.imageElement = c.document.createElement("img"), this.imageElement.setAttribute("alt", ""), c.insertElement(this.imageElement)) : "image" != j && "img" == a && confirm(c.lang.image.img2Button) ? (this.imageElement = c.document.createElement("input"),
|
|
|
|
|
|
|
|
this.imageElement.setAttributes({type: "image", alt: ""}), c.insertElement(this.imageElement)) : (this.imageElement = this.cleanImageElement, delete this.cleanImageElement)
|
|
|
|
|
|
|
|
} else"image" == j ? this.imageElement = c.document.createElement("img") : (this.imageElement = c.document.createElement("input"), this.imageElement.setAttribute("type", "image")), this.imageElement.setAttribute("alt", "");
|
|
|
|
|
|
|
|
this.linkEditMode || (this.linkElement = c.document.createElement("a"));
|
|
|
|
|
|
|
|
this.commitContent(f, this.imageElement);
|
|
|
|
|
|
|
|
this.commitContent(2, this.linkElement);
|
|
|
|
|
|
|
|
this.imageElement.getAttribute("style") || this.imageElement.removeAttribute("style");
|
|
|
|
|
|
|
|
this.imageEditMode ? !this.linkEditMode && this.addLink ? (c.insertElement(this.linkElement), this.imageElement.appendTo(this.linkElement)) : this.linkEditMode && !this.addLink && (c.getSelection().selectElement(this.linkElement), c.insertElement(this.imageElement)) : this.addLink ? this.linkEditMode ? c.insertElement(this.imageElement) : (c.insertElement(this.linkElement), this.linkElement.append(this.imageElement, !1)) : c.insertElement(this.imageElement)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onLoad: function () {
|
|
|
|
|
|
|
|
"image" != j && this.hidePage("Link");
|
|
|
|
|
|
|
|
var a = this._.element.getDocument();
|
|
|
|
|
|
|
|
this.getContentElement("info", "ratioLock") && (this.addFocusable(a.getById(u), 5), this.addFocusable(a.getById(p), 5));
|
|
|
|
|
|
|
|
this.commitContent = r
|
|
|
|
|
|
|
|
}, onHide: function () {
|
|
|
|
|
|
|
|
this.preview && this.commitContent(8, this.preview);
|
|
|
|
|
|
|
|
this.originalElement && (this.originalElement.removeListener("load", q), this.originalElement.removeListener("error", h), this.originalElement.removeListener("abort", h), this.originalElement.remove(), this.originalElement = !1);
|
|
|
|
|
|
|
|
delete this.imageElement
|
|
|
|
|
|
|
|
}, contents: [
|
|
|
|
|
|
|
|
{id: "info", label: c.lang.image.infoTab, accessKey: "I", elements: [
|
|
|
|
|
|
|
|
{type: "vbox", padding: 0, children: [
|
|
|
|
|
|
|
|
{type: "hbox", widths: ["280px", "110px"], align: "right", children: [
|
|
|
|
|
|
|
|
{id: "txtUrl", type: "text", label: c.lang.common.url, required: !0, onChange: function () {
|
|
|
|
|
|
|
|
var a = this.getDialog(), b = this.getValue();
|
|
|
|
|
|
|
|
if (0 < b.length) {
|
|
|
|
|
|
|
|
var a = this.getDialog(), d = a.originalElement;
|
|
|
|
|
|
|
|
a.preview.removeStyle("display");
|
|
|
|
|
|
|
|
d.setCustomData("isReady", "false");
|
|
|
|
|
|
|
|
var c = CKEDITOR.document.getById(m);
|
|
|
|
|
|
|
|
c && c.setStyle("display",
|
|
|
|
|
|
|
|
"");
|
|
|
|
|
|
|
|
d.on("load", q, a);
|
|
|
|
|
|
|
|
d.on("error", h, a);
|
|
|
|
|
|
|
|
d.on("abort", h, a);
|
|
|
|
|
|
|
|
d.setAttribute("src", b);
|
|
|
|
|
|
|
|
t.setAttribute("src", b);
|
|
|
|
|
|
|
|
a.preview.setAttribute("src", t.$.src);
|
|
|
|
|
|
|
|
g(a)
|
|
|
|
|
|
|
|
} else a.preview && (a.preview.removeAttribute("src"), a.preview.setStyle("display", "none"))
|
|
|
|
|
|
|
|
}, setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var d = b.data("cke-saved-src") || b.getAttribute("src");
|
|
|
|
|
|
|
|
this.getDialog().dontResetSize = !0;
|
|
|
|
|
|
|
|
this.setValue(d);
|
|
|
|
|
|
|
|
this.setInitValue()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) ? (b.data("cke-saved-src", this.getValue()), b.setAttribute("src",
|
|
|
|
|
|
|
|
this.getValue())) : 8 == a && (b.setAttribute("src", ""), b.removeAttribute("src"))
|
|
|
|
|
|
|
|
}, validate: CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},
|
|
|
|
|
|
|
|
{type: "button", id: "browse", style: "display:inline-block;margin-top:10px;", align: "center", label: c.lang.common.browseServer, hidden: !0, filebrowser: "info:txtUrl"}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{id: "txtAlt", type: "text", label: c.lang.image.alt, accessKey: "T", "default": "", onChange: function () {
|
|
|
|
|
|
|
|
g(this.getDialog())
|
|
|
|
|
|
|
|
}, setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("alt"))
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("alt", this.getValue()) : 4 == a ? b.setAttribute("alt", this.getValue()) : 8 == a && b.removeAttribute("alt")
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "hbox", children: [
|
|
|
|
|
|
|
|
{id: "basic", type: "vbox", children: [
|
|
|
|
|
|
|
|
{type: "hbox", requiredContent: "img{width,height}", widths: ["50%", "50%"], children: [
|
|
|
|
|
|
|
|
{type: "vbox", padding: 1, children: [
|
|
|
|
|
|
|
|
{type: "text", width: "45px", id: "txtWidth", label: c.lang.common.width, onKeyUp: w, onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, validate: function () {
|
|
|
|
|
|
|
|
var a = this.getValue().match(v);
|
|
|
|
|
|
|
|
(a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidWidth);
|
|
|
|
|
|
|
|
return a
|
|
|
|
|
|
|
|
}, setup: y, commit: function (a, b, d) {
|
|
|
|
|
|
|
|
var c = this.getValue();
|
|
|
|
|
|
|
|
a == f ? (c ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : b.removeStyle("width"), !d && b.removeAttribute("width")) : 4 == a ? c.match(k) ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement, "true" == a.getCustomData("isReady") && b.setStyle("width", a.$.width + "px")) : 8 == a && (b.removeAttribute("width"), b.removeStyle("width"))
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "text", id: "txtHeight",
|
|
|
|
|
|
|
|
width: "45px", label: c.lang.common.height, onKeyUp: w, onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, validate: function () {
|
|
|
|
|
|
|
|
var a = this.getValue().match(v);
|
|
|
|
|
|
|
|
(a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidHeight);
|
|
|
|
|
|
|
|
return a
|
|
|
|
|
|
|
|
}, setup: y, commit: function (a, b, d) {
|
|
|
|
|
|
|
|
var c = this.getValue();
|
|
|
|
|
|
|
|
a == f ? (c ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : b.removeStyle("height"), !d && b.removeAttribute("height")) : 4 == a ? c.match(k) ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement,
|
|
|
|
|
|
|
|
"true" == a.getCustomData("isReady") && b.setStyle("height", a.$.height + "px")) : 8 == a && (b.removeAttribute("height"), b.removeStyle("height"))
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{id: "ratioLock", type: "html", style: "margin-top:30px;width:40px;height:40px;", onLoad: function () {
|
|
|
|
|
|
|
|
var a = CKEDITOR.document.getById(u), b = CKEDITOR.document.getById(p);
|
|
|
|
|
|
|
|
a && (a.on("click", function (a) {
|
|
|
|
|
|
|
|
x(this);
|
|
|
|
|
|
|
|
a.data && a.data.preventDefault()
|
|
|
|
|
|
|
|
}, this.getDialog()), a.on("mouseover", function () {
|
|
|
|
|
|
|
|
this.addClass("cke_btn_over")
|
|
|
|
|
|
|
|
}, a), a.on("mouseout", function () {
|
|
|
|
|
|
|
|
this.removeClass("cke_btn_over")
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
a));
|
|
|
|
|
|
|
|
b && (b.on("click", function (a) {
|
|
|
|
|
|
|
|
l(this);
|
|
|
|
|
|
|
|
var b = this.originalElement, c = this.getValueOf("info", "txtWidth");
|
|
|
|
|
|
|
|
if (b.getCustomData("isReady") == "true" && c) {
|
|
|
|
|
|
|
|
b = b.$.height / b.$.width * c;
|
|
|
|
|
|
|
|
if (!isNaN(b)) {
|
|
|
|
|
|
|
|
this.setValueOf("info", "txtHeight", Math.round(b));
|
|
|
|
|
|
|
|
g(this)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
a.data && a.data.preventDefault()
|
|
|
|
|
|
|
|
}, this.getDialog()), b.on("mouseover", function () {
|
|
|
|
|
|
|
|
this.addClass("cke_btn_over")
|
|
|
|
|
|
|
|
}, b), b.on("mouseout", function () {
|
|
|
|
|
|
|
|
this.removeClass("cke_btn_over")
|
|
|
|
|
|
|
|
}, b))
|
|
|
|
|
|
|
|
}, html: '<div><a href="javascript:void(0)" tabindex="-1" title="' + c.lang.image.lockRatio +
|
|
|
|
|
|
|
|
'" class="cke_btn_locked" id="' + p + '" role="checkbox"><span class="cke_icon"></span><span class="cke_label">' + c.lang.image.lockRatio + '</span></a><a href="javascript:void(0)" tabindex="-1" title="' + c.lang.image.resetSize + '" class="cke_btn_reset" id="' + u + '" role="button"><span class="cke_label">' + c.lang.image.resetSize + "</span></a></div>"}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{type: "vbox", padding: 1, children: [
|
|
|
|
|
|
|
|
{type: "text", id: "txtBorder", requiredContent: "img{border-width}", width: "60px", label: c.lang.image.border, "default": "", onKeyUp: function () {
|
|
|
|
|
|
|
|
g(this.getDialog())
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, validate: CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder), setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var d;
|
|
|
|
|
|
|
|
d = (d = (d = b.getStyle("border-width")) && d.match(/^(\d+px)(?: \1 \1 \1)?$/)) && parseInt(d[1], 10);
|
|
|
|
|
|
|
|
isNaN(parseInt(d, 10)) && (d = b.getAttribute("border"));
|
|
|
|
|
|
|
|
this.setValue(d)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b, d) {
|
|
|
|
|
|
|
|
var c = parseInt(this.getValue(), 10);
|
|
|
|
|
|
|
|
a == f || 4 == a ? (isNaN(c) ? !c && this.isChanged() && b.removeStyle("border") : (b.setStyle("border-width", CKEDITOR.tools.cssLength(c)),
|
|
|
|
|
|
|
|
b.setStyle("border-style", "solid")), !d && a == f && b.removeAttribute("border")) : 8 == a && (b.removeAttribute("border"), b.removeStyle("border-width"), b.removeStyle("border-style"), b.removeStyle("border-color"))
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "text", id: "txtHSpace", requiredContent: "img{margin-left,margin-right}", width: "60px", label: c.lang.image.hSpace, "default": "", onKeyUp: function () {
|
|
|
|
|
|
|
|
g(this.getDialog())
|
|
|
|
|
|
|
|
}, onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, validate: CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),
|
|
|
|
|
|
|
|
setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var d, c;
|
|
|
|
|
|
|
|
d = b.getStyle("margin-left");
|
|
|
|
|
|
|
|
c = b.getStyle("margin-right");
|
|
|
|
|
|
|
|
d = d && d.match(o);
|
|
|
|
|
|
|
|
c = c && c.match(o);
|
|
|
|
|
|
|
|
d = parseInt(d, 10);
|
|
|
|
|
|
|
|
c = parseInt(c, 10);
|
|
|
|
|
|
|
|
d = d == c && d;
|
|
|
|
|
|
|
|
isNaN(parseInt(d, 10)) && (d = b.getAttribute("hspace"));
|
|
|
|
|
|
|
|
this.setValue(d)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b, c) {
|
|
|
|
|
|
|
|
var e = parseInt(this.getValue(), 10);
|
|
|
|
|
|
|
|
a == f || 4 == a ? (isNaN(e) ? !e && this.isChanged() && (b.removeStyle("margin-left"), b.removeStyle("margin-right")) : (b.setStyle("margin-left", CKEDITOR.tools.cssLength(e)), b.setStyle("margin-right", CKEDITOR.tools.cssLength(e))),
|
|
|
|
|
|
|
|
!c && a == f && b.removeAttribute("hspace")) : 8 == a && (b.removeAttribute("hspace"), b.removeStyle("margin-left"), b.removeStyle("margin-right"))
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "text", id: "txtVSpace", requiredContent: "img{margin-top,margin-bottom}", width: "60px", label: c.lang.image.vSpace, "default": "", onKeyUp: function () {
|
|
|
|
|
|
|
|
g(this.getDialog())
|
|
|
|
|
|
|
|
}, onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, validate: CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace), setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var c, e;
|
|
|
|
|
|
|
|
c = b.getStyle("margin-top");
|
|
|
|
|
|
|
|
e =
|
|
|
|
|
|
|
|
b.getStyle("margin-bottom");
|
|
|
|
|
|
|
|
c = c && c.match(o);
|
|
|
|
|
|
|
|
e = e && e.match(o);
|
|
|
|
|
|
|
|
c = parseInt(c, 10);
|
|
|
|
|
|
|
|
e = parseInt(e, 10);
|
|
|
|
|
|
|
|
c = c == e && c;
|
|
|
|
|
|
|
|
isNaN(parseInt(c, 10)) && (c = b.getAttribute("vspace"));
|
|
|
|
|
|
|
|
this.setValue(c)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b, c) {
|
|
|
|
|
|
|
|
var e = parseInt(this.getValue(), 10);
|
|
|
|
|
|
|
|
a == f || 4 == a ? (isNaN(e) ? !e && this.isChanged() && (b.removeStyle("margin-top"), b.removeStyle("margin-bottom")) : (b.setStyle("margin-top", CKEDITOR.tools.cssLength(e)), b.setStyle("margin-bottom", CKEDITOR.tools.cssLength(e))), !c && a == f && b.removeAttribute("vspace")) : 8 == a && (b.removeAttribute("vspace"),
|
|
|
|
|
|
|
|
b.removeStyle("margin-top"), b.removeStyle("margin-bottom"))
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{id: "cmbAlign", requiredContent: "img{float}", type: "select", widths: ["35%", "65%"], style: "width:90px", label: c.lang.common.align, "default": "", items: [
|
|
|
|
|
|
|
|
[c.lang.common.notSet, ""],
|
|
|
|
|
|
|
|
[c.lang.common.alignLeft, "left"],
|
|
|
|
|
|
|
|
[c.lang.common.alignRight, "right"]
|
|
|
|
|
|
|
|
], onChange: function () {
|
|
|
|
|
|
|
|
g(this.getDialog());
|
|
|
|
|
|
|
|
i.call(this, "advanced:txtdlgGenStyle")
|
|
|
|
|
|
|
|
}, setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var c = b.getStyle("float");
|
|
|
|
|
|
|
|
switch (c) {
|
|
|
|
|
|
|
|
case "inherit":
|
|
|
|
|
|
|
|
case "none":
|
|
|
|
|
|
|
|
c = ""
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
!c && (c = (b.getAttribute("align") ||
|
|
|
|
|
|
|
|
"").toLowerCase());
|
|
|
|
|
|
|
|
this.setValue(c)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b, c) {
|
|
|
|
|
|
|
|
var e = this.getValue();
|
|
|
|
|
|
|
|
if (a == f || 4 == a) {
|
|
|
|
|
|
|
|
if (e ? b.setStyle("float", e) : b.removeStyle("float"), !c && a == f)switch (e = (b.getAttribute("align") || "").toLowerCase(), e) {
|
|
|
|
|
|
|
|
case "left":
|
|
|
|
|
|
|
|
case "right":
|
|
|
|
|
|
|
|
b.removeAttribute("align")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else 8 == a && b.removeStyle("float")
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{type: "vbox", height: "250px", children: [
|
|
|
|
|
|
|
|
{type: "html", id: "htmlPreview", style: "width:95%;", html: "<div>" + CKEDITOR.tools.htmlEncode(c.lang.common.preview) + '<br><div id="' + m + '" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="' +
|
|
|
|
|
|
|
|
A + '"><img id="' + z + '" alt="" /></a>' + (c.config.image_previewText || "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.") +
|
|
|
|
|
|
|
|
"</td></tr></table></div></div>"}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{id: "Link", requiredContent: "a[href]", label: c.lang.image.linkTab, padding: 0, elements: [
|
|
|
|
|
|
|
|
{id: "txtUrl", type: "text", label: c.lang.common.url, style: "width: 100%", "default": "", setup: function (a, b) {
|
|
|
|
|
|
|
|
if (2 == a) {
|
|
|
|
|
|
|
|
var c = b.data("cke-saved-href");
|
|
|
|
|
|
|
|
c || (c = b.getAttribute("href"));
|
|
|
|
|
|
|
|
this.setValue(c)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
if (2 == a && (this.getValue() || this.isChanged())) {
|
|
|
|
|
|
|
|
var d = decodeURI(this.getValue());
|
|
|
|
|
|
|
|
b.data("cke-saved-href", d);
|
|
|
|
|
|
|
|
b.setAttribute("href", d);
|
|
|
|
|
|
|
|
if (this.getValue() || !c.config.image_removeLinkByEmptyURL)this.getDialog().addLink = !0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "button", id: "browse", filebrowser: {action: "Browse", target: "Link:txtUrl", url: c.config.filebrowserImageBrowseLinkUrl}, style: "float:right", hidden: !0, label: c.lang.common.browseServer},
|
|
|
|
|
|
|
|
{id: "cmbTarget", type: "select", requiredContent: "a[target]", label: c.lang.common.target, "default": "", items: [
|
|
|
|
|
|
|
|
[c.lang.common.notSet, ""],
|
|
|
|
|
|
|
|
[c.lang.common.targetNew, "_blank"],
|
|
|
|
|
|
|
|
[c.lang.common.targetTop, "_top"],
|
|
|
|
|
|
|
|
[c.lang.common.targetSelf, "_self"],
|
|
|
|
|
|
|
|
[c.lang.common.targetParent, "_parent"]
|
|
|
|
|
|
|
|
], setup: function (a, b) {
|
|
|
|
|
|
|
|
2 == a && this.setValue(b.getAttribute("target") ||
|
|
|
|
|
|
|
|
"")
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
2 == a && (this.getValue() || this.isChanged()) && b.setAttribute("target", this.getValue())
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{id: "Upload", hidden: !0, filebrowser: "uploadButton", label: c.lang.image.upload, elements: [
|
|
|
|
|
|
|
|
{type: "file", id: "upload", label: c.lang.image.btnUpload, style: "height:40px", size: 38},
|
|
|
|
|
|
|
|
{type: "fileButton", id: "uploadButton", filebrowser: "info:txtUrl", label: c.lang.image.btnUpload, "for": ["Upload", "upload"]}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{id: "advanced", label: c.lang.common.advancedTab, elements: [
|
|
|
|
|
|
|
|
{type: "hbox", widths: ["50%", "25%", "25%"],
|
|
|
|
|
|
|
|
children: [
|
|
|
|
|
|
|
|
{type: "text", id: "linkId", requiredContent: "img[id]", label: c.lang.common.id, setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("id"))
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("id", this.getValue())
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{id: "cmbLangDir", type: "select", requiredContent: "img[dir]", style: "width : 100px;", label: c.lang.common.langDir, "default": "", items: [
|
|
|
|
|
|
|
|
[c.lang.common.notSet, ""],
|
|
|
|
|
|
|
|
[c.lang.common.langDirLtr, "ltr"],
|
|
|
|
|
|
|
|
[c.lang.common.langDirRtl, "rtl"]
|
|
|
|
|
|
|
|
], setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("dir"))
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("dir", this.getValue())
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "text", id: "txtLangCode", requiredContent: "img[lang]", label: c.lang.common.langCode, "default": "", setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("lang"))
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("lang", this.getValue())
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{type: "text", id: "txtGenLongDescr", requiredContent: "img[longdesc]", label: c.lang.common.longDescr, setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("longDesc"))
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("longDesc", this.getValue())
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "hbox", widths: ["50%", "50%"], children: [
|
|
|
|
|
|
|
|
{type: "text", id: "txtGenClass", requiredContent: "img(cke-xyz)", label: c.lang.common.cssClass, "default": "", setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("class"))
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("class", this.getValue())
|
|
|
|
|
|
|
|
}},
|
|
|
|
|
|
|
|
{type: "text", id: "txtGenTitle", requiredContent: "img[title]", label: c.lang.common.advisoryTitle,
|
|
|
|
|
|
|
|
"default": "", onChange: function () {
|
|
|
|
|
|
|
|
g(this.getDialog())
|
|
|
|
|
|
|
|
}, setup: function (a, b) {
|
|
|
|
|
|
|
|
a == f && this.setValue(b.getAttribute("title"))
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("title", this.getValue()) : 4 == a ? b.setAttribute("title", this.getValue()) : 8 == a && b.removeAttribute("title")
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]},
|
|
|
|
|
|
|
|
{type: "text", id: "txtdlgGenStyle", requiredContent: "img{cke-xyz}", label: c.lang.common.cssStyle, validate: CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle), "default": "", setup: function (a, b) {
|
|
|
|
|
|
|
|
if (a == f) {
|
|
|
|
|
|
|
|
var c = b.getAttribute("style");
|
|
|
|
|
|
|
|
!c && b.$.style.cssText && (c = b.$.style.cssText);
|
|
|
|
|
|
|
|
this.setValue(c);
|
|
|
|
|
|
|
|
var e = b.$.style.height, c = b.$.style.width, e = (e ? e : "").match(k), c = (c ? c : "").match(k);
|
|
|
|
|
|
|
|
this.attributesInStyle = {height: !!e, width: !!c}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, onChange: function () {
|
|
|
|
|
|
|
|
i.call(this, "info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));
|
|
|
|
|
|
|
|
g(this)
|
|
|
|
|
|
|
|
}, commit: function (a, b) {
|
|
|
|
|
|
|
|
a == f && (this.getValue() || this.isChanged()) && b.setAttribute("style", this.getValue())
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
CKEDITOR.dialog.add("image", function (c) {
|
|
|
|
|
|
|
|
return r(c, "image")
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
CKEDITOR.dialog.add("imagebutton", function (c) {
|
|
|
|
|
|
|
|
return r(c, "imagebutton")
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})();
|