diff options
author | 2008-11-14 15:39:19 +0000 | |
---|---|---|
committer | 2008-11-14 15:39:19 +0000 | |
commit | 1c5685d68f1b73270fb814fe04cbb490eb90ba5f (patch) | |
tree | 3d3ada08a934b96fc31531f1327690d7edc6f766 /includes/js/dijit/_editor | |
parent | 104d59099e048688c4dbac37d72137006e396558 (diff) | |
download | scuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.gz scuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.zip |
Minor fix: Remove DOJO library (60Mo) replaced by link to Google CDN (online DOJO library)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@159 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dijit/_editor')
83 files changed, 0 insertions, 3494 deletions
diff --git a/includes/js/dijit/_editor/RichText.js b/includes/js/dijit/_editor/RichText.js deleted file mode 100644 index 9ece365..0000000 --- a/includes/js/dijit/_editor/RichText.js +++ /dev/null @@ -1,1449 +0,0 @@ -if(!dojo._hasResource["dijit._editor.RichText"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.RichText"] = true; -dojo.provide("dijit._editor.RichText"); - -dojo.require("dijit._Widget"); -dojo.require("dijit._editor.selection"); -dojo.require("dijit._editor.html"); -dojo.require("dojo.i18n"); -dojo.requireLocalization("dijit.form", "Textarea", null, "zh,pt,da,tr,ru,de,ROOT,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,it,hu"); - -// used to restore content when user leaves this page then comes back -// but do not try doing dojo.doc.write if we are using xd loading. -// dojo.doc.write will only work if RichText.js is included in the dojo.js -// file. If it is included in dojo.js and you want to allow rich text saving -// for back/forward actions, then set dojo.config.allowXdRichTextSave = true. -if(!dojo.config["useXDomain"] || dojo.config["allowXdRichTextSave"]){ - if(dojo._postLoad){ - (function(){ - var savetextarea = dojo.doc.createElement('textarea'); - savetextarea.id = dijit._scopeName + "._editor.RichText.savedContent"; - var s = savetextarea.style; - s.display='none'; - s.position='absolute'; - s.top="-100px"; - s.left="-100px"; - s.height="3px"; - s.width="3px"; - dojo.body().appendChild(savetextarea); - })(); - }else{ - //dojo.body() is not available before onLoad is fired - try{ - dojo.doc.write('<textarea id="' + dijit._scopeName + '._editor.RichText.savedContent" ' + - 'style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>'); - }catch(e){ } - } -} -dojo.declare("dijit._editor.RichText", dijit._Widget, { - constructor: function(){ - // summary: - // dijit._editor.RichText is the core of the WYSIWYG editor in dojo, which - // provides the basic editing features. It also encapsulates the differences - // of different js engines for various browsers - // - // contentPreFilters: Array - // pre content filter function register array. - // these filters will be executed before the actual - // editing area get the html content - this.contentPreFilters = []; - - // contentPostFilters: Array - // post content filter function register array. - // these will be used on the resulting html - // from contentDomPostFilters. The resuling - // content is the final html (returned by getValue()) - this.contentPostFilters = []; - - // contentDomPreFilters: Array - // pre content dom filter function register array. - // these filters are applied after the result from - // contentPreFilters are set to the editing area - this.contentDomPreFilters = []; - - // contentDomPostFilters: Array - // post content dom filter function register array. - // these filters are executed on the editing area dom - // the result from these will be passed to contentPostFilters - this.contentDomPostFilters = []; - - // editingAreaStyleSheets: Array - // array to store all the stylesheets applied to the editing area - this.editingAreaStyleSheets=[]; - - this._keyHandlers = {}; - this.contentPreFilters.push(dojo.hitch(this, "_preFixUrlAttributes")); - if(dojo.isMoz){ - this.contentPreFilters.push(this._fixContentForMoz); - this.contentPostFilters.push(this._removeMozBogus); - }else if(dojo.isSafari){ - this.contentPostFilters.push(this._removeSafariBogus); - } - //this.contentDomPostFilters.push(this._postDomFixUrlAttributes); - - this.onLoadDeferred = new dojo.Deferred(); - }, - - // inheritWidth: Boolean - // whether to inherit the parent's width or simply use 100% - inheritWidth: false, - - // focusOnLoad: Boolean - // whether focusing into this instance of richtext when page onload - focusOnLoad: false, - - // name: String - // If a save name is specified the content is saved and restored when the user - // leave this page can come back, or if the editor is not properly closed after - // editing has started. - name: "", - - // styleSheets: String - // semicolon (";") separated list of css files for the editing area - styleSheets: "", - - // _content: String - // temporary content storage - _content: "", - - // height: String - // set height to fix the editor at a specific height, with scrolling. - // By default, this is 300px. If you want to have the editor always - // resizes to accommodate the content, use AlwaysShowToolbar plugin - // and set height="" - height: "300px", - - // minHeight: String - // The minimum height that the editor should have - minHeight: "1em", - - // isClosed: Boolean - isClosed: true, - - // isLoaded: Boolean - isLoaded: false, - - // _SEPARATOR: String - // used to concat contents from multiple textareas into a single string - _SEPARATOR: "@@**%%__RICHTEXTBOUNDRY__%%**@@", - - // onLoadDeferred: dojo.Deferred - // deferred which is fired when the editor finishes loading - onLoadDeferred: null, - - postCreate: function(){ - // summary: init - dojo.publish(dijit._scopeName + "._editor.RichText::init", [this]); - this.open(); - this.setupDefaultShortcuts(); - }, - - setupDefaultShortcuts: function(){ - // summary: add some default key handlers - // description: - // Overwrite this to setup your own handlers. The default - // implementation does not use Editor commands, but directly - // executes the builtin commands within the underlying browser - // support. - var exec = function(cmd, arg){ - return arguments.length == 1 ? function(){ this.execCommand(cmd); } : - function(){ this.execCommand(cmd, arg); }; - }; - - var ctrlKeyHandlers = { b: exec("bold"), - i: exec("italic"), - u: exec("underline"), - a: exec("selectall"), - s: function(){ this.save(true); }, - - "1": exec("formatblock", "h1"), - "2": exec("formatblock", "h2"), - "3": exec("formatblock", "h3"), - "4": exec("formatblock", "h4"), - - "\\": exec("insertunorderedlist") }; - - if(!dojo.isIE){ - ctrlKeyHandlers.Z = exec("redo"); //FIXME: undo? - } - - for(var key in ctrlKeyHandlers){ - this.addKeyHandler(key, this.KEY_CTRL, ctrlKeyHandlers[key]); - } - }, - - // events: Array - // events which should be connected to the underlying editing area - events: ["onKeyPress", "onKeyDown", "onKeyUp", "onClick"], - - // events: Array - // events which should be connected to the underlying editing - // area, events in this array will be addListener with - // capture=true - captureEvents: [], - - _editorCommandsLocalized: false, - _localizeEditorCommands: function(){ - if(this._editorCommandsLocalized){ - return; - } - this._editorCommandsLocalized = true; - - //in IE, names for blockformat is locale dependent, so we cache the values here - - //if the normal way fails, we try the hard way to get the list - - //do not use _cacheLocalBlockFormatNames here, as it will - //trigger security warning in IE7 - - //in the array below, ul can not come directly after ol, - //otherwise the queryCommandValue returns Normal for it - var formats = ['p', 'pre', 'address', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'div', 'ul']; - var localhtml = "", format, i=0; - while((format=formats[i++])){ - if(format.charAt(1) != 'l'){ - localhtml += "<"+format+"><span>content</span></"+format+">"; - }else{ - localhtml += "<"+format+"><li>content</li></"+format+">"; - } - } - //queryCommandValue returns empty if we hide editNode, so move it out of screen temporary - var div=dojo.doc.createElement('div'); - div.style.position = "absolute"; - div.style.left = "-2000px"; - div.style.top = "-2000px"; - dojo.doc.body.appendChild(div); - div.innerHTML = localhtml; - var node = div.firstChild; - while(node){ - dijit._editor.selection.selectElement(node.firstChild); - dojo.withGlobal(this.window, "selectElement", dijit._editor.selection, [node.firstChild]); - var nativename = node.tagName.toLowerCase(); - this._local2NativeFormatNames[nativename] = dojo.doc.queryCommandValue("formatblock");//this.queryCommandValue("formatblock"); - this._native2LocalFormatNames[this._local2NativeFormatNames[nativename]] = nativename; - node = node.nextSibling; - } - dojo.doc.body.removeChild(div); - }, - - open: function(/*DomNode?*/element){ - // summary: - // Transforms the node referenced in this.domNode into a rich text editing - // node. This will result in the creation and replacement with an <iframe> - // if designMode(FF)/contentEditable(IE) is used. - - if((!this.onLoadDeferred)||(this.onLoadDeferred.fired >= 0)){ - this.onLoadDeferred = new dojo.Deferred(); - } - - if(!this.isClosed){ this.close(); } - dojo.publish(dijit._scopeName + "._editor.RichText::open", [ this ]); - - this._content = ""; - if((arguments.length == 1)&&(element["nodeName"])){ this.domNode = element; } // else unchanged - - var html; - if( (this.domNode["nodeName"])&& - (this.domNode.nodeName.toLowerCase() == "textarea")){ - // if we were created from a textarea, then we need to create a - // new editing harness node. - this.textarea = this.domNode; - this.name=this.textarea.name; - html = this._preFilterContent(this.textarea.value); - this.domNode = dojo.doc.createElement("div"); - this.domNode.setAttribute('widgetId',this.id); - this.textarea.removeAttribute('widgetId'); - this.domNode.cssText = this.textarea.cssText; - this.domNode.className += " "+this.textarea.className; - dojo.place(this.domNode, this.textarea, "before"); - var tmpFunc = dojo.hitch(this, function(){ - //some browsers refuse to submit display=none textarea, so - //move the textarea out of screen instead - dojo.attr(this.textarea, 'tabIndex', '-1'); - with(this.textarea.style){ - display = "block"; - position = "absolute"; - left = top = "-1000px"; - - if(dojo.isIE){ //nasty IE bug: abnormal formatting if overflow is not hidden - this.__overflow = overflow; - overflow = "hidden"; - } - } - }); - if(dojo.isIE){ - setTimeout(tmpFunc, 10); - }else{ - tmpFunc(); - } - - // this.domNode.innerHTML = html; - -// if(this.textarea.form){ -// // FIXME: port: this used to be before advice!!! -// dojo.connect(this.textarea.form, "onsubmit", this, function(){ -// // FIXME: should we be calling close() here instead? -// this.textarea.value = this.getValue(); -// }); -// } - }else{ - html = this._preFilterContent(dijit._editor.getChildrenHtml(this.domNode)); - this.domNode.innerHTML = ''; - } - if(html == ""){ html = " "; } - - var content = dojo.contentBox(this.domNode); - // var content = dojo.contentBox(this.srcNodeRef); - this._oldHeight = content.h; - this._oldWidth = content.w; - - // If we're a list item we have to put in a blank line to force the - // bullet to nicely align at the top of text - if( (this.domNode["nodeName"]) && - (this.domNode.nodeName == "LI") ){ - this.domNode.innerHTML = " <br>"; - } - - this.editingArea = dojo.doc.createElement("div"); - this.domNode.appendChild(this.editingArea); - - if(this.name != "" && (!dojo.config["useXDomain"] || dojo.config["allowXdRichTextSave"])){ - var saveTextarea = dojo.byId(dijit._scopeName + "._editor.RichText.savedContent"); - if(saveTextarea.value != ""){ - var datas = saveTextarea.value.split(this._SEPARATOR), i=0, dat; - while((dat=datas[i++])){ - var data = dat.split(":"); - if(data[0] == this.name){ - html = data[1]; - datas.splice(i, 1); - break; - } - } - } - - // FIXME: need to do something different for Opera/Safari - this.connect(window, "onbeforeunload", "_saveContent"); - // dojo.connect(window, "onunload", this, "_saveContent"); - } - - this.isClosed = false; - // Safari's selections go all out of whack if we do it inline, - // so for now IE is our only hero - //if(typeof dojo.doc.body.contentEditable != "undefined"){ - if(dojo.isIE || dojo.isSafari || dojo.isOpera){ // contentEditable, easy - - if(dojo.config["useXDomain"] && !dojo.config["dojoBlankHtmlUrl"]){ - console.debug("dijit._editor.RichText: When using cross-domain Dojo builds," - + " please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl" - + " to the path on your domain to blank.html"); - } - - var burl = dojo.config["dojoBlankHtmlUrl"] || (dojo.moduleUrl("dojo", "resources/blank.html")+""); - var ifr = this.editorObject = this.iframe = dojo.doc.createElement('iframe'); - ifr.id = this.id+"_iframe"; - ifr.src = burl; - ifr.style.border = "none"; - ifr.style.width = "100%"; - ifr.frameBorder = 0; - // ifr.style.scrolling = this.height ? "auto" : "vertical"; - this.editingArea.appendChild(ifr); - var h = null; // set later in non-ie6 branch - var loadFunc = dojo.hitch( this, function(){ - if(h){ dojo.disconnect(h); h = null; } - this.window = ifr.contentWindow; - var d = this.document = this.window.document; - d.open(); - d.write(this._getIframeDocTxt(html)); - d.close(); - - if(dojo.isIE >= 7){ - if(this.height){ - ifr.style.height = this.height; - } - if(this.minHeight){ - ifr.style.minHeight = this.minHeight; - } - }else{ - ifr.style.height = this.height ? this.height : this.minHeight; - } - - if(dojo.isIE){ - this._localizeEditorCommands(); - } - - this.onLoad(); - this.savedContent = this.getValue(true); - }); - if(dojo.isIE && dojo.isIE < 7){ // IE 6 is a steaming pile... - var t = setInterval(function(){ - if(ifr.contentWindow.isLoaded){ - clearInterval(t); - loadFunc(); - } - }, 100); - }else{ // blissful sanity! - h = dojo.connect( - ((dojo.isIE) ? ifr.contentWindow : ifr), "onload", loadFunc - ); - } - }else{ // designMode in iframe - this._drawIframe(html); - this.savedContent = this.getValue(true); - } - - // TODO: this is a guess at the default line-height, kinda works - if(this.domNode.nodeName == "LI"){ this.domNode.lastChild.style.marginTop = "-1.2em"; } - this.domNode.className += " RichTextEditable"; - }, - - //static cache variables shared among all instance of this class - _local2NativeFormatNames: {}, - _native2LocalFormatNames: {}, - _localizedIframeTitles: null, - - _getIframeDocTxt: function(/* String */ html){ - var _cs = dojo.getComputedStyle(this.domNode); - if(dojo.isIE || (!this.height && !dojo.isMoz)){ - html="<div>"+html+"</div>"; - } - var font = [ _cs.fontWeight, _cs.fontSize, _cs.fontFamily ].join(" "); - - // line height is tricky - applying a units value will mess things up. - // if we can't get a non-units value, bail out. - var lineHeight = _cs.lineHeight; - if(lineHeight.indexOf("px") >= 0){ - lineHeight = parseFloat(lineHeight)/parseFloat(_cs.fontSize); - // console.debug(lineHeight); - }else if(lineHeight.indexOf("em")>=0){ - lineHeight = parseFloat(lineHeight); - }else{ - lineHeight = "1.0"; - } - return [ - this.isLeftToRight() ? "<html><head>" : "<html dir='rtl'><head>", - (dojo.isMoz ? "<title>" + this._localizedIframeTitles.iframeEditTitle + "</title>" : ""), - "<style>", - "body,html {", - " background:transparent;", - " font:", font, ";", - " padding: 1em 0 0 0;", - " margin: -1em 0 0 0;", // remove extraneous vertical scrollbar on safari and firefox - " height: 100%;", - "}", - // TODO: left positioning will cause contents to disappear out of view - // if it gets too wide for the visible area - "body{", - " top:0px; left:0px; right:0px;", - ((this.height||dojo.isOpera) ? "" : "position: fixed;"), - // FIXME: IE 6 won't understand min-height? - " min-height:", this.minHeight, ";", - " line-height:", lineHeight, - "}", - "p{ margin: 1em 0 !important; }", - (this.height ? // height:auto undoes the height:100% - "" : "body,html{height:auto;overflow-y:hidden;/*for IE*/} body > div {overflow-x:auto;/*for FF to show vertical scrollbar*/}" - ), - "li > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; } ", - "li{ min-height:1.2em; }", - "</style>", - this._applyEditingAreaStyleSheets(), - "</head><body>"+html+"</body></html>" - ].join(""); // String - }, - - _drawIframe: function(/*String*/html){ - // summary: - // Draws an iFrame using the existing one if one exists. - // Used by Mozilla, Safari, and Opera - - if(!this.iframe){ - var ifr = this.iframe = dojo.doc.createElement("iframe"); - ifr.id=this.id; - // this.iframe.src = "about:blank"; - // dojo.doc.body.appendChild(this.iframe); - // console.debug(this.iframe.contentDocument.open()); - // dojo.body().appendChild(this.iframe); - var ifrs = ifr.style; - // ifrs.border = "1px solid black"; - ifrs.border = "none"; - ifrs.lineHeight = "0"; // squash line height - ifrs.verticalAlign = "bottom"; -// ifrs.scrolling = this.height ? "auto" : "vertical"; - this.editorObject = this.iframe; - // get screen reader text for mozilla here, too - this._localizedIframeTitles = dojo.i18n.getLocalization("dijit.form", "Textarea"); - // need to find any associated label element and update iframe document title - var label=dojo.query('label[for="'+this.id+'"]'); - if(label.length){ - this._localizedIframeTitles.iframeEditTitle = label[0].innerHTML + " " + this._localizedIframeTitles.iframeEditTitle; - } - } - // opera likes this to be outside the with block - // this.iframe.src = "javascript:void(0)";//dojo.uri.dojoUri("src/widget/templates/richtextframe.html") + ((dojo.doc.domain != currentDomain) ? ("#"+dojo.doc.domain) : ""); - this.iframe.style.width = this.inheritWidth ? this._oldWidth : "100%"; - - if(this.height){ - this.iframe.style.height = this.height; - }else{ - this.iframe.height = this._oldHeight; - } - - var tmpContent; - if(this.textarea){ - tmpContent = this.srcNodeRef; - }else{ - tmpContent = dojo.doc.createElement('div'); - tmpContent.style.display="none"; - tmpContent.innerHTML = html; - //append tmpContent to under the current domNode so that the margin - //calculation below is correct - this.editingArea.appendChild(tmpContent); - } - - this.editingArea.appendChild(this.iframe); - - //do we want to show the content before the editing area finish loading here? - //if external style sheets are used for the editing area, the appearance now - //and after loading of the editing area won't be the same (and padding/margin - //calculation above may not be accurate) - // tmpContent.style.display = "none"; - // this.editingArea.appendChild(this.iframe); - - var _iframeInitialized = false; - // console.debug(this.iframe); - // var contentDoc = this.iframe.contentWindow.document; - - - // note that on Safari lower than 420+, we have to get the iframe - // by ID in order to get something w/ a contentDocument property - - var contentDoc = this.iframe.contentDocument; - contentDoc.open(); - if(dojo.isAIR){ - contentDoc.body.innerHTML = html; - }else{ - contentDoc.write(this._getIframeDocTxt(html)); - } - contentDoc.close(); - - // now we wait for onload. Janky hack! - var ifrFunc = dojo.hitch(this, function(){ - if(!_iframeInitialized){ - _iframeInitialized = true; - }else{ return; } - if(!this.editNode){ - try{ - if(this.iframe.contentWindow){ - this.window = this.iframe.contentWindow; - this.document = this.iframe.contentWindow.document - }else if(this.iframe.contentDocument){ - // for opera - this.window = this.iframe.contentDocument.window; - this.document = this.iframe.contentDocument; - } - if(!this.document.body){ - throw 'Error'; - } - }catch(e){ - setTimeout(ifrFunc,500); - _iframeInitialized = false; - return; - } - - dojo._destroyElement(tmpContent); - this.onLoad(); - }else{ - dojo._destroyElement(tmpContent); - this.editNode.innerHTML = html; - this.onDisplayChanged(); - } - this._preDomFilterContent(this.editNode); - }); - - ifrFunc(); - }, - - _applyEditingAreaStyleSheets: function(){ - // summary: - // apply the specified css files in styleSheets - var files = []; - if(this.styleSheets){ - files = this.styleSheets.split(';'); - this.styleSheets = ''; - } - - //empty this.editingAreaStyleSheets here, as it will be filled in addStyleSheet - files = files.concat(this.editingAreaStyleSheets); - this.editingAreaStyleSheets = []; - - var text='', i=0, url; - while((url=files[i++])){ - var abstring = (new dojo._Url(dojo.global.location, url)).toString(); - this.editingAreaStyleSheets.push(abstring); - text += '<link rel="stylesheet" type="text/css" href="'+abstring+'"/>' - } - return text; - }, - - addStyleSheet: function(/*dojo._Url*/uri){ - // summary: - // add an external stylesheet for the editing area - // uri: a dojo.uri.Uri pointing to the url of the external css file - var url=uri.toString(); - - //if uri is relative, then convert it to absolute so that it can be resolved correctly in iframe - if(url.charAt(0) == '.' || (url.charAt(0) != '/' && !uri.host)){ - url = (new dojo._Url(dojo.global.location, url)).toString(); - } - - if(dojo.indexOf(this.editingAreaStyleSheets, url) > -1){ -// console.debug("dijit._editor.RichText.addStyleSheet: Style sheet "+url+" is already applied"); - return; - } - - this.editingAreaStyleSheets.push(url); - if(this.document.createStyleSheet){ //IE - this.document.createStyleSheet(url); - }else{ //other browser - var head = this.document.getElementsByTagName("head")[0]; - var stylesheet = this.document.createElement("link"); - with(stylesheet){ - rel="stylesheet"; - type="text/css"; - href=url; - } - head.appendChild(stylesheet); - } - }, - - removeStyleSheet: function(/*dojo._Url*/uri){ - // summary: - // remove an external stylesheet for the editing area - var url=uri.toString(); - //if uri is relative, then convert it to absolute so that it can be resolved correctly in iframe - if(url.charAt(0) == '.' || (url.charAt(0) != '/' && !uri.host)){ - url = (new dojo._Url(dojo.global.location, url)).toString(); - } - var index = dojo.indexOf(this.editingAreaStyleSheets, url); - if(index == -1){ -// console.debug("dijit._editor.RichText.removeStyleSheet: Style sheet "+url+" has not been applied"); - return; - } - delete this.editingAreaStyleSheets[index]; - dojo.withGlobal(this.window,'query', dojo, ['link:[href="'+url+'"]']).orphan() - }, - - disabled: true, - _mozSettingProps: ['styleWithCSS','insertBrOnReturn'], - setDisabled: function(/*Boolean*/ disabled){ - if(dojo.isIE || dojo.isSafari || dojo.isOpera){ - if(dojo.isIE){ this.editNode.unselectable = "on"; } // prevent IE from setting focus - this.editNode.contentEditable = !disabled; - if(dojo.isIE){ - var _this = this; - setTimeout(function(){ _this.editNode.unselectable = "off"; }, 0); - } - }else{ //moz - if(disabled){ - //AP: why isn't this set in the constructor, or put in mozSettingProps as a hash? - this._mozSettings=[false,this.blockNodeForEnter==='BR']; - } - this.document.designMode=(disabled?'off':'on'); - if(!disabled && this._mozSettings){ - dojo.forEach(this._mozSettingProps, function(s,i){ - this.document.execCommand(s,false,this._mozSettings[i]); - },this); - } -// this.document.execCommand('contentReadOnly', false, disabled); -// if(disabled){ -// this.blur(); //to remove the blinking caret -// } - } - this.disabled = disabled; - }, - -/* Event handlers - *****************/ - - _isResized: function(){ return false; }, - - onLoad: function(/* Event */ e){ - // summary: handler after the content of the document finishes loading - this.isLoaded = true; - if(!this.window.__registeredWindow){ - this.window.__registeredWindow=true; - dijit.registerWin(this.window); - } - if(!dojo.isIE && (this.height || dojo.isMoz)){ - this.editNode=this.document.body; - }else{ - this.editNode=this.document.body.firstChild; - var _this = this; - if(dojo.isIE){ // #4996 IE wants to focus the BODY tag - var tabStop = this.tabStop = dojo.doc.createElement('<div tabIndex=-1>'); - this.editingArea.appendChild(tabStop); - this.iframe.onfocus = function(){ _this.editNode.setActive(); } - } - } - - try{ - this.setDisabled(false); - }catch(e){ - // Firefox throws an exception if the editor is initially hidden - // so, if this fails, try again onClick by adding "once" advice - var handle = dojo.connect(this, "onClick", this, function(){ - this.setDisabled(false); - dojo.disconnect(handle); - }); - } - - this._preDomFilterContent(this.editNode); - - var events=this.events.concat(this.captureEvents),i=0,et; - while((et=events[i++])){ - this.connect(this.document, et.toLowerCase(), et); - } - if(!dojo.isIE){ - try{ // sanity check for Mozilla - //AP: what's the point of this? -// this.document.execCommand("useCSS", false, true); // old moz call - this.document.execCommand("styleWithCSS", false, false); // new moz call - //this.document.execCommand("insertBrOnReturn", false, false); // new moz call - }catch(e2){ } - // FIXME: when scrollbars appear/disappear this needs to be fired - }else{ // IE contentEditable - // give the node Layout on IE - this.connect(this.document, "onmousedown", "_onMouseDown"); // #4996 fix focus - this.editNode.style.zoom = 1.0; - } - - if(this.focusOnLoad){ - setTimeout(dojo.hitch(this, "focus"), 0); // have to wait for IE to set unselectable=off - } - - this.onDisplayChanged(e); - if(this.onLoadDeferred){ - this.onLoadDeferred.callback(true); - } - }, - - onKeyDown: function(/* Event */ e){ - // summary: Fired on keydown - - // we need this event at the moment to get the events from control keys - // such as the backspace. It might be possible to add this to Dojo, so that - // keyPress events can be emulated by the keyDown and keyUp detection. - if(dojo.isIE){ - if(e.keyCode == dojo.keys.TAB && e.shiftKey && !e.ctrlKey && !e.altKey){ - // focus the BODY so the browser will tab away from it instead - this.iframe.focus(); - }else if(e.keyCode == dojo.keys.TAB && !e.shiftKey && !e.ctrlKey && !e.altKey){ - // focus the BODY so the browser will tab away from it instead - this.tabStop.focus(); - }else if(e.keyCode === dojo.keys.BACKSPACE && this.document.selection.type === "Control"){ - // IE has a bug where if a non-text object is selected in the editor, - // hitting backspace would act as if the browser's back button was - // clicked instead of deleting the object. see #1069 - dojo.stopEvent(e); - this.execCommand("delete"); - }else if((65 <= e.keyCode&&e.keyCode <= 90) || - (e.keyCode>=37&&e.keyCode<=40) // FIXME: get this from connect() instead! - ){ //arrow keys - e.charCode = e.keyCode; - this.onKeyPress(e); - } - }else if(dojo.isMoz){ - if(e.keyCode == dojo.keys.TAB && !e.shiftKey && !e.ctrlKey && !e.altKey && this.iframe){ - // update iframe document title for screen reader - this.iframe.contentDocument.title = this._localizedIframeTitles.iframeFocusTitle; - - // Place focus on the iframe. A subsequent tab or shift tab will put focus - // on the correct control. - this.iframe.focus(); // this.focus(); won't work - dojo.stopEvent(e); - }else if(e.keyCode == dojo.keys.TAB && e.shiftKey){ - // if there is a toolbar, set focus to it, otherwise ignore - if(this.toolbar){ - this.toolbar.focus(); - } - dojo.stopEvent(e); - } - } - }, - - onKeyUp: function(e){ - // summary: Fired on keyup - return; - }, - - KEY_CTRL: 1, - KEY_SHIFT: 2, - - onKeyPress: function(e){ - // summary: Fired on keypress - - // handle the various key events - var modifiers = (e.ctrlKey && !e.altKey) ? this.KEY_CTRL : 0 | e.shiftKey ? this.KEY_SHIFT : 0; - - var key = e.keyChar || e.keyCode; - if(this._keyHandlers[key]){ - // console.debug("char:", e.key); - var handlers = this._keyHandlers[key], i = 0, h; - while((h = handlers[i++])){ - if(modifiers == h.modifiers){ - if(!h.handler.apply(this,arguments)){ - e.preventDefault(); - } - break; - } - } - } - - // function call after the character has been inserted - setTimeout(dojo.hitch(this, function(){ - this.onKeyPressed(e); - }), 1); - }, - - addKeyHandler: function(/*String*/key, /*Int*/modifiers, /*Function*/handler){ - // summary: add a handler for a keyboard shortcut - if(!dojo.isArray(this._keyHandlers[key])){ this._keyHandlers[key] = []; } - this._keyHandlers[key].push({ - modifiers: modifiers || 0, - handler: handler - }); - }, - - onKeyPressed: function(/*Event*/e){ - this.onDisplayChanged(/*e*/); // can't pass in e - }, - - onClick: function(/*Event*/e){ -// console.info('onClick',this._tryDesignModeOn); - this.onDisplayChanged(e); - }, - - _onMouseDown: function(/*Event*/e){ // IE only to prevent 2 clicks to focus - if(!this._focused && !this.disabled){ - this.focus(); - } - }, - - _onBlur: function(e){ - this.inherited(arguments); - var _c=this.getValue(true); - if(_c!=this.savedContent){ - this.onChange(_c); - this.savedContent=_c; - } - if(dojo.isMoz && this.iframe){ - this.iframe.contentDocument.title = this._localizedIframeTitles.iframeEditTitle; - } - }, - _initialFocus: true, - _onFocus: function(/*Event*/e){ - // summary: Fired on focus - this.inherited(arguments); - if(dojo.isMoz && this._initialFocus){ - this._initialFocus = false; - if(this.editNode.innerHTML.replace(/^\s+|\s+$/g, "") == " "){ - this.placeCursorAtStart(); -// this.execCommand("selectall"); -// this.window.getSelection().collapseToStart(); - } - } - }, - - // TODO: why is this needed - should we deprecate this ? - blur: function(){ - // summary: remove focus from this instance - if(!dojo.isIE && this.window.document.documentElement && this.window.document.documentElement.focus){ - this.window.document.documentElement.focus(); - }else if(dojo.doc.body.focus){ - dojo.doc.body.focus(); - } - }, - - focus: function(){ - // summary: move focus to this instance - if(!dojo.isIE){ - dijit.focus(this.iframe); - }else if(this.editNode && this.editNode.focus){ - // editNode may be hidden in display:none div, lets just punt in this case - //this.editNode.focus(); -> causes IE to scroll always (strict and quirks mode) to the top the Iframe - // if we fire the event manually and let the browser handle the focusing, the latest - // cursor position is focused like in FF - this.iframe.fireEvent('onfocus', document.createEventObject()); // createEventObject only in IE -// }else{ -// TODO: should we throw here? -// console.debug("Have no idea how to focus into the editor!"); - } - }, - -// _lastUpdate: 0, - updateInterval: 200, - _updateTimer: null, - onDisplayChanged: function(/*Event*/e){ - // summary: - // This event will be fired everytime the display context - // changes and the result needs to be reflected in the UI. - // description: - // If you don't want to have update too often, - // onNormalizedDisplayChanged should be used instead - -// var _t=new Date(); - if(!this._updateTimer){ -// this._lastUpdate=_t; - if(this._updateTimer){ - clearTimeout(this._updateTimer); - } - this._updateTimer=setTimeout(dojo.hitch(this,this.onNormalizedDisplayChanged),this.updateInterval); - } - }, - onNormalizedDisplayChanged: function(){ - // summary: - // This event is fired every updateInterval ms or more - // description: - // If something needs to happen immidiately after a - // user change, please use onDisplayChanged instead - this._updateTimer=null; - }, - onChange: function(newContent){ - // summary: - // this is fired if and only if the editor loses focus and - // the content is changed - -// console.log('onChange',newContent); - }, - _normalizeCommand: function(/*String*/cmd){ - // summary: - // Used as the advice function by dojo.connect to map our - // normalized set of commands to those supported by the target - // browser - - var command = cmd.toLowerCase(); - if(command == "hilitecolor" && !dojo.isMoz){ - command = "backcolor"; - } - - return command; - }, - - queryCommandAvailable: function(/*String*/command){ - // summary: - // Tests whether a command is supported by the host. Clients SHOULD check - // whether a command is supported before attempting to use it, behaviour - // for unsupported commands is undefined. - // command: The command to test for - var ie = 1; - var mozilla = 1 << 1; - var safari = 1 << 2; - var opera = 1 << 3; - var safari420 = 1 << 4; - - var gt420 = dojo.isSafari; - - function isSupportedBy(browsers){ - return { - ie: Boolean(browsers & ie), - mozilla: Boolean(browsers & mozilla), - safari: Boolean(browsers & safari), - safari420: Boolean(browsers & safari420), - opera: Boolean(browsers & opera) - } - } - - var supportedBy = null; - - switch(command.toLowerCase()){ - case "bold": case "italic": case "underline": - case "subscript": case "superscript": - case "fontname": case "fontsize": - case "forecolor": case "hilitecolor": - case "justifycenter": case "justifyfull": case "justifyleft": - case "justifyright": case "delete": case "selectall": case "toggledir": - supportedBy = isSupportedBy(mozilla | ie | safari | opera); - break; - - case "createlink": case "unlink": case "removeformat": - case "inserthorizontalrule": case "insertimage": - case "insertorderedlist": case "insertunorderedlist": - case "indent": case "outdent": case "formatblock": - case "inserthtml": case "undo": case "redo": case "strikethrough": - supportedBy = isSupportedBy(mozilla | ie | opera | safari420); - break; - - case "blockdirltr": case "blockdirrtl": - case "dirltr": case "dirrtl": - case "inlinedirltr": case "inlinedirrtl": - supportedBy = isSupportedBy(ie); - break; - case "cut": case "copy": case "paste": - supportedBy = isSupportedBy( ie | mozilla | safari420); - break; - - case "inserttable": - supportedBy = isSupportedBy(mozilla | ie); - break; - - case "insertcell": case "insertcol": case "insertrow": - case "deletecells": case "deletecols": case "deleterows": - case "mergecells": case "splitcell": - supportedBy = isSupportedBy(ie | mozilla); - break; - - default: return false; - } - - return (dojo.isIE && supportedBy.ie) || - (dojo.isMoz && supportedBy.mozilla) || - (dojo.isSafari && supportedBy.safari) || - (gt420 && supportedBy.safari420) || - (dojo.isOpera && supportedBy.opera); // Boolean return true if the command is supported, false otherwise - }, - - execCommand: function(/*String*/command, argument){ - // summary: Executes a command in the Rich Text area - // command: The command to execute - // argument: An optional argument to the command - var returnValue; - - //focus() is required for IE to work - //In addition, focus() makes sure after the execution of - //the command, the editor receives the focus as expected - this.focus(); - - command = this._normalizeCommand(command); - if(argument != undefined){ - if(command == "heading"){ - throw new Error("unimplemented"); - }else if((command == "formatblock") && dojo.isIE){ - argument = '<'+argument+'>'; - } - } - if(command == "inserthtml"){ - argument=this._preFilterContent(argument); - if(dojo.isIE){ - var insertRange = this.document.selection.createRange(); - if(this.document.selection.type.toUpperCase()=='CONTROL'){ - var n=insertRange.item(0); - while(insertRange.length){ - insertRange.remove(insertRange.item(0)); - } - n.outerHTML=argument; - }else{ - insertRange.pasteHTML(argument); - } - insertRange.select(); - //insertRange.collapse(true); - returnValue=true; - }else if(dojo.isMoz && !argument.length){ - //mozilla can not inserthtml an empty html to delete current selection - //so we delete the selection instead in this case - dojo.withGlobal(this.window,'remove',dijit._editor.selection); - returnValue=true; - }else{ - returnValue=this.document.execCommand(command, false, argument); - } - }else if( - (command == "unlink")&& - (this.queryCommandEnabled("unlink"))&& - (dojo.isMoz || dojo.isSafari) - ){ - // fix up unlink in Mozilla to unlink the link and not just the selection - - // grab selection - // Mozilla gets upset if we just store the range so we have to - // get the basic properties and recreate to save the selection - var selection = this.window.getSelection(); - // var selectionRange = selection.getRangeAt(0); - // var selectionStartContainer = selectionRange.startContainer; - // var selectionStartOffset = selectionRange.startOffset; - // var selectionEndContainer = selectionRange.endContainer; - // var selectionEndOffset = selectionRange.endOffset; - - // select our link and unlink - var a = dojo.withGlobal(this.window, "getAncestorElement",dijit._editor.selection, ['a']); - dojo.withGlobal(this.window, "selectElement", dijit._editor.selection, [a]); - - returnValue=this.document.execCommand("unlink", false, null); - }else if((command == "hilitecolor")&&(dojo.isMoz)){ -// // mozilla doesn't support hilitecolor properly when useCSS is -// // set to false (bugzilla #279330) - - this.document.execCommand("styleWithCSS", false, true); - returnValue = this.document.execCommand(command, false, argument); - this.document.execCommand("styleWithCSS", false, false); - - }else if((dojo.isIE)&&( (command == "backcolor")||(command == "forecolor") )){ - // Tested under IE 6 XP2, no problem here, comment out - // IE weirdly collapses ranges when we exec these commands, so prevent it -// var tr = this.document.selection.createRange(); - argument = arguments.length > 1 ? argument : null; - returnValue = this.document.execCommand(command, false, argument); - - // timeout is workaround for weird IE behavior were the text - // selection gets correctly re-created, but subsequent input - // apparently isn't bound to it -// setTimeout(function(){tr.select();}, 1); - }else{ - argument = arguments.length > 1 ? argument : null; -// if(dojo.isMoz){ -// this.document = this.iframe.contentWindow.document -// } - - if(argument || command!="createlink"){ - returnValue = this.document.execCommand(command, false, argument); - } - } - - this.onDisplayChanged(); - return returnValue; - }, - - queryCommandEnabled: function(/*String*/command){ - // summary: check whether a command is enabled or not - - if(this.disabled){ return false; } - command = this._normalizeCommand(command); - if(dojo.isMoz || dojo.isSafari){ - if(command == "unlink"){ // mozilla returns true always - // console.debug(dojo.withGlobal(this.window, "hasAncestorElement",dijit._editor.selection, ['a'])); - return dojo.withGlobal(this.window, "hasAncestorElement",dijit._editor.selection, ['a']); - }else if(command == "inserttable"){ - return true; - } - } - //see #4109 - if(dojo.isSafari){ - if(command == "copy"){ - command = "cut"; - }else if(command == "paste"){ - return true; - } - } - - // return this.document.queryCommandEnabled(command); - var elem = dojo.isIE ? this.document.selection.createRange() : this.document; - return elem.queryCommandEnabled(command); - }, - - queryCommandState: function(command){ - // summary: check the state of a given command - - if(this.disabled){ return false; } - command = this._normalizeCommand(command); - return this.document.queryCommandState(command); - }, - - queryCommandValue: function(command){ - // summary: check the value of a given command - - if(this.disabled){ return false; } - command = this._normalizeCommand(command); - if(dojo.isIE && command == "formatblock"){ - return this._local2NativeFormatNames[this.document.queryCommandValue(command)]; - } - return this.document.queryCommandValue(command); - }, - - // Misc. - - placeCursorAtStart: function(){ - // summary: - // place the cursor at the start of the editing area - this.focus(); - - //see comments in placeCursorAtEnd - var isvalid=false; - if(dojo.isMoz){ - var first=this.editNode.firstChild; - while(first){ - if(first.nodeType == 3){ - if(first.nodeValue.replace(/^\s+|\s+$/g, "").length>0){ - isvalid=true; - dojo.withGlobal(this.window, "selectElement", dijit._editor.selection, [first]); - break; - } - }else if(first.nodeType == 1){ - isvalid=true; - dojo.withGlobal(this.window, "selectElementChildren",dijit._editor.selection, [first]); - break; - } - first = first.nextSibling; - } - }else{ - isvalid=true; - dojo.withGlobal(this.window, "selectElementChildren",dijit._editor.selection, [this.editNode]); - } - if(isvalid){ - dojo.withGlobal(this.window, "collapse", dijit._editor.selection, [true]); - } - }, - - placeCursorAtEnd: function(){ - // summary: - // place the cursor at the end of the editing area - this.focus(); - - //In mozilla, if last child is not a text node, we have to use selectElementChildren on this.editNode.lastChild - //otherwise the cursor would be placed at the end of the closing tag of this.editNode.lastChild - var isvalid=false; - if(dojo.isMoz){ - var last=this.editNode.lastChild; - while(last){ - if(last.nodeType == 3){ - if(last.nodeValue.replace(/^\s+|\s+$/g, "").length>0){ - isvalid=true; - dojo.withGlobal(this.window, "selectElement",dijit._editor.selection, [last]); - break; - } - }else if(last.nodeType == 1){ - isvalid=true; - if(last.lastChild){ - dojo.withGlobal(this.window, "selectElement",dijit._editor.selection, [last.lastChild]); - }else{ - dojo.withGlobal(this.window, "selectElement",dijit._editor.selection, [last]); - } - break; - } - last = last.previousSibling; - } - }else{ - isvalid=true; - dojo.withGlobal(this.window, "selectElementChildren",dijit._editor.selection, [this.editNode]); - } - if(isvalid){ - dojo.withGlobal(this.window, "collapse", dijit._editor.selection, [false]); - } - }, - - getValue: function(/*Boolean?*/nonDestructive){ - // summary: - // return the current content of the editing area (post filters are applied) - if(this.textarea){ - if(this.isClosed || !this.isLoaded){ - return this.textarea.value; - } - } - - return this._postFilterContent(null, nonDestructive); - }, - - setValue: function(/*String*/html){ - // summary: - // this function set the content. No undo history is preserved - - if(!this.isLoaded){ - // try again after the editor is finished loading - this.onLoadDeferred.addCallback(dojo.hitch(this, function(){ - this.setValue(html); - })); - return; - } - - if(this.textarea && (this.isClosed || !this.isLoaded)){ - this.textarea.value=html; - }else{ - html = this._preFilterContent(html); - var node = this.isClosed ? this.domNode : this.editNode; - node.innerHTML = html; - this._preDomFilterContent(node); - } - - this.onDisplayChanged(); - }, - - replaceValue: function(/*String*/html){ - // summary: - // this function set the content while trying to maintain the undo stack - // (now only works fine with Moz, this is identical to setValue in all - // other browsers) - if(this.isClosed){ - this.setValue(html); - }else if(this.window && this.window.getSelection && !dojo.isMoz){ // Safari - // look ma! it's a totally f'd browser! - this.setValue(html); - }else if(this.window && this.window.getSelection){ // Moz - html = this._preFilterContent(html); - this.execCommand("selectall"); - if(dojo.isMoz && !html){ html = " " } - this.execCommand("inserthtml", html); - this._preDomFilterContent(this.editNode); - }else if(this.document && this.document.selection){//IE - //In IE, when the first element is not a text node, say - //an <a> tag, when replacing the content of the editing - //area, the <a> tag will be around all the content - //so for now, use setValue for IE too - this.setValue(html); - } - }, - - _preFilterContent: function(/*String*/html){ - // summary: - // filter the input before setting the content of the editing area - var ec = html; - dojo.forEach(this.contentPreFilters, function(ef){ if(ef){ ec = ef(ec); } }); - return ec; - }, - _preDomFilterContent: function(/*DomNode*/dom){ - // summary: - // filter the input - dom = dom || this.editNode; - dojo.forEach(this.contentDomPreFilters, function(ef){ - if(ef && dojo.isFunction(ef)){ - ef(dom); - } - }, this); - }, - - _postFilterContent: function(/*DomNode|DomNode[]|String?*/dom,/*Boolean?*/nonDestructive){ - // summary: - // filter the output after getting the content of the editing area - var ec; - if(!dojo.isString(dom)){ - dom = dom || this.editNode; - if(this.contentDomPostFilters.length){ - if(nonDestructive && dom['cloneNode']){ - dom = dom.cloneNode(true); - } - dojo.forEach(this.contentDomPostFilters, function(ef){ - dom = ef(dom); - }); - } - ec = dijit._editor.getChildrenHtml(dom); - }else{ - ec = dom; - } - - if(!ec.replace(/^(?:\s|\xA0)+/g, "").replace(/(?:\s|\xA0)+$/g,"").length){ ec = ""; } - - // if(dojo.isIE){ - // //removing appended <P> </P> for IE - // ec = ec.replace(/(?:<p> </p>[\n\r]*)+$/i,""); - // } - dojo.forEach(this.contentPostFilters, function(ef){ - ec = ef(ec); - }); - - return ec; - }, - - _saveContent: function(/*Event*/e){ - // summary: - // Saves the content in an onunload event if the editor has not been closed - var saveTextarea = dojo.byId(dijit._scopeName + "._editor.RichText.savedContent"); - saveTextarea.value += this._SEPARATOR + this.name + ":" + this.getValue(); - }, - - escapeXml: function(/*String*/str, /*Boolean*/noSingleQuotes){ - dojo.deprecated('dijit.Editor::escapeXml is deprecated','use dijit._editor.escapeXml instead', 2); - return dijit._editor.escapeXml(str,noSingleQuotes); - }, - - getNodeHtml: function(/* DomNode */node){ - dojo.deprecated('dijit.Editor::getNodeHtml is deprecated','use dijit._editor.getNodeHtml instead', 2); - return dijit._editor.getNodeHtml(node); - }, - - getNodeChildrenHtml: function(/* DomNode */dom){ - dojo.deprecated('dijit.Editor::getNodeChildrenHtml is deprecated','use dijit._editor.getChildrenHtml instead', 2); - return dijit._editor.getChildrenHtml(dom); - }, - - close: function(/*Boolean*/save, /*Boolean*/force){ - // summary: - // Kills the editor and optionally writes back the modified contents to the - // element from which it originated. - // save: - // Whether or not to save the changes. If false, the changes are discarded. - // force: - if(this.isClosed){return false; } - - if(!arguments.length){ save = true; } - this._content = this.getValue(); - var changed = (this.savedContent != this._content); - - // line height is squashed for iframes - // FIXME: why was this here? if(this.iframe){ this.domNode.style.lineHeight = null; } - - if(this.interval){ clearInterval(this.interval); } - - if(this.textarea){ - with(this.textarea.style){ - position = ""; - left = top = ""; - if(dojo.isIE){ - overflow = this.__overflow; - this.__overflow = null; - } - } - this.textarea.value = save ? this._content : this.savedContent; - dojo._destroyElement(this.domNode); - this.domNode = this.textarea; - }else{ -// if(save){ - //why we treat moz differently? comment out to fix #1061 -// if(dojo.isMoz){ -// var nc = dojo.doc.createElement("span"); -// this.domNode.appendChild(nc); -// nc.innerHTML = this.editNode.innerHTML; -// }else{ -// this.domNode.innerHTML = this._content; -// } -// } - this.domNode.innerHTML = save ? this._content : this.savedContent; - } - - dojo.removeClass(this.domNode, "RichTextEditable"); - this.isClosed = true; - this.isLoaded = false; - // FIXME: is this always the right thing to do? - delete this.editNode; - - if(this.window && this.window._frameElement){ - this.window._frameElement = null; - } - - this.window = null; - this.document = null; - this.editingArea = null; - this.editorObject = null; - - return changed; // Boolean: whether the content has been modified - }, - - destroyRendering: function(){ - // summary: stub - }, - - destroy: function(){ - this.destroyRendering(); - if(!this.isClosed){ this.close(false); } - this.inherited("destroy",arguments); - //dijit._editor.RichText.superclass.destroy.call(this); - }, - - _removeMozBogus: function(/* String */ html){ - return html.replace(/\stype="_moz"/gi, '').replace(/\s_moz_dirty=""/gi, ''); // String - }, - _removeSafariBogus: function(/* String */ html){ - return html.replace(/\sclass="webkit-block-placeholder"/gi, ''); // String - }, - _fixContentForMoz: function(/* String */ html){ - // summary: - // Moz can not handle strong/em tags correctly, convert them to b/i - return html.replace(/<(\/)?strong([ \>])/gi, '<$1b$2') - .replace(/<(\/)?em([ \>])/gi, '<$1i$2' ); // String - }, - - _srcInImgRegex : /(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi , - _hrefInARegex : /(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi , - - _preFixUrlAttributes: function(/* String */ html){ - return html.replace(this._hrefInARegex, '$1$4$2$3$5$2 _djrealurl=$2$3$5$2') - .replace(this._srcInImgRegex, '$1$4$2$3$5$2 _djrealurl=$2$3$5$2'); // String - } -}); - -} diff --git a/includes/js/dijit/_editor/_Plugin.js b/includes/js/dijit/_editor/_Plugin.js deleted file mode 100644 index 32fde3b..0000000 --- a/includes/js/dijit/_editor/_Plugin.js +++ /dev/null @@ -1,101 +0,0 @@ -if(!dojo._hasResource["dijit._editor._Plugin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor._Plugin"] = true; -dojo.provide("dijit._editor._Plugin"); -dojo.require("dijit._Widget"); -dojo.require("dijit.Editor"); -dojo.require("dijit.form.Button"); - -dojo.declare("dijit._editor._Plugin", null, { - // summary - // This represents a "plugin" to the editor, which is basically - // a single button on the Toolbar and some associated code - constructor: function(/*Object?*/args, /*DomNode?*/node){ - if(args){ - dojo.mixin(this, args); - } - this._connects=[]; - }, - - editor: null, - iconClassPrefix: "dijitEditorIcon", - button: null, - queryCommand: null, - command: "", - commandArg: null, - useDefaultCommand: true, - buttonClass: dijit.form.Button, - getLabel: function(key){ - return this.editor.commands[key]; - }, - _initButton: function(props){ - if(this.command.length){ - var label = this.getLabel(this.command); - var className = this.iconClassPrefix+" "+this.iconClassPrefix + this.command.charAt(0).toUpperCase() + this.command.substr(1); - if(!this.button){ - props = dojo.mixin({ - label: label, - showLabel: false, - iconClass: className, - dropDown: this.dropDown, - tabIndex: "-1" - }, props || {}); - this.button = new this.buttonClass(props); - } - } - }, - destroy: function(f){ - dojo.forEach(this._connects, dojo.disconnect); - }, - connect: function(o, f, tf){ - this._connects.push(dojo.connect(o, f, this, tf)); - }, - updateState: function(){ - var _e = this.editor; - var _c = this.command; - if(!_e){ return; } - if(!_e.isLoaded){ return; } - if(!_c.length){ return; } - if(this.button){ - try{ - var enabled = _e.queryCommandEnabled(_c); - this.button.setAttribute('disabled', !enabled); - if(typeof this.button.checked == 'boolean'){ - this.button.setAttribute('checked', _e.queryCommandState(_c)); - } - }catch(e){ - console.debug(e); - } - } - }, - setEditor: function(/*Widget*/editor){ - // FIXME: detatch from previous editor!! - this.editor = editor; - - // FIXME: prevent creating this if we don't need to (i.e., editor can't handle our command) - this._initButton(); - - // FIXME: wire up editor to button here! - if(this.command.length && - !this.editor.queryCommandAvailable(this.command) - ){ - // console.debug("hiding:", this.command); - if(this.button){ - this.button.domNode.style.display = "none"; - } - } - if(this.button && this.useDefaultCommand){ - this.connect(this.button, "onClick", - dojo.hitch(this.editor, "execCommand", this.command, this.commandArg) - ); - } - this.connect(this.editor, "onNormalizedDisplayChanged", "updateState"); - }, - setToolbar: function(/*Widget*/toolbar){ - if(this.button){ - toolbar.addChild(this.button); - } - // console.debug("adding", this.button, "to:", toolbar); - } -}); - -} diff --git a/includes/js/dijit/_editor/html.js b/includes/js/dijit/_editor/html.js deleted file mode 100644 index 8b20592..0000000 --- a/includes/js/dijit/_editor/html.js +++ /dev/null @@ -1,106 +0,0 @@ -if(!dojo._hasResource["dijit._editor.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.html"] = true; -dojo.provide("dijit._editor.html"); - -dijit._editor.escapeXml=function(/*String*/str, /*Boolean*/noSingleQuotes){ - //summary: - // Adds escape sequences for special characters in XML: &<>"' - // Optionally skips escapes for single quotes - str = str.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """); - if(!noSingleQuotes){ - str = str.replace(/'/gm, "'"); - } - return str; // string -}; - -dijit._editor.getNodeHtml=function(/* DomNode */node){ - var output; - switch(node.nodeType){ - case 1: //element node - output = '<'+node.nodeName.toLowerCase(); - - //store the list of attributes and sort it to have the - //attributes appear in the dictionary order - var attrarray = []; - if(dojo.isIE && node.outerHTML){ - var s = node.outerHTML; - s = s.substr(0,s.indexOf('>')); - s = s.replace(/(['"])[^"']*\1/g, '');//to make the following regexp safe - var reg = /([^\s=]+)=/g; - var m, key; - while((m = reg.exec(s))){ - key=m[1]; - if(key.substr(0,3) != '_dj'){ - if(key == 'src' || key == 'href'){ - if(node.getAttribute('_djrealurl')){ - attrarray.push([key,node.getAttribute('_djrealurl')]); - continue; - } - } - if(key=='style'){ - attrarray.push([key, node.style.cssText.toLowerCase()]); - }else{ - attrarray.push([key, key=='class'?node.className:node.getAttribute(key)]); - } - } - } - }else{ - var attr, i=0, attrs = node.attributes; - while((attr=attrs[i++])){ - //ignore all attributes starting with _dj which are - //internal temporary attributes used by the editor - var n=attr.name; - if(n.substr(0,3) != '_dj' /*&& - (attr.specified == undefined || attr.specified)*/){ - var v = attr.value; - if(n == 'src' || n == 'href'){ - if(node.getAttribute('_djrealurl')){ - v = node.getAttribute('_djrealurl'); - } - } - attrarray.push([n,v]); - } - } - } - attrarray.sort(function(a,b){ - return a[0]<b[0]?-1:(a[0]==b[0]?0:1); - }); - i=0; - while((attr=attrarray[i++])){ - output += ' '+attr[0]+'="'+ - (dojo.isString(attr[1]) ? dijit._editor.escapeXml(attr[1],true) : attr[1])+'"'; - } - if(node.childNodes.length){ - output += '>' + dijit._editor.getChildrenHtml(node)+'</'+node.nodeName.toLowerCase()+'>'; - }else{ - output += ' />'; - } - break; - case 3: //text - // FIXME: - output = dijit._editor.escapeXml(node.nodeValue,true); - break; - case 8: //comment - // FIXME: - output = '<!--'+dijit._editor.escapeXml(node.nodeValue,true)+'-->'; - break; - default: - output = "Element not recognized - Type: " + node.nodeType + " Name: " + node.nodeName; - } - return output; -}; - -dijit._editor.getChildrenHtml = function(/* DomNode */dom){ - // summary: Returns the html content of a DomNode and children - var out = ""; - if(!dom){ return out; } - var nodes = dom["childNodes"]||dom; - var i=0; - var node; - while((node=nodes[i++])){ - out += dijit._editor.getNodeHtml(node); - } - return out; // String -} - -} diff --git a/includes/js/dijit/_editor/nls/FontChoice.js b/includes/js/dijit/_editor/nls/FontChoice.js deleted file mode 100644 index 71da48d..0000000 --- a/includes/js/dijit/_editor/nls/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/LinkDialog.js b/includes/js/dijit/_editor/nls/LinkDialog.js deleted file mode 100644 index 3e1b917..0000000 --- a/includes/js/dijit/_editor/nls/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Set","text":"Description:","insertImageTitle":"Image Properties","url":"URL:","createLinkTitle":"Link Properties"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ar/FontChoice.js b/includes/js/dijit/_editor/nls/ar/FontChoice.js deleted file mode 100644 index 72381b6..0000000 --- a/includes/js/dijit/_editor/nls/ar/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"صغير جدا جدا ","2":"صغير جدا ","formatBlock":"النسق","monospaced":"خط أحادي المسافة ","3":"صغير ","4":"متوسط ","5":"كبير ","6":"كبير جدا ","7":"كبير جدا جدا ","fantasy":"خيالي ","serif":"serif","p":"فقرة ","pre":"منسق بصفة مسبقة ","sans-serif":"sans-serif","fontName":"طاقم طباعة","h1":"عنوان","h2":"عنوان فرعي ","h3":"فرعي-عنوان فرعي ","fontSize":"الحجم","cursive":"كتابة بحروف متصلة ","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ar/LinkDialog.js b/includes/js/dijit/_editor/nls/ar/LinkDialog.js deleted file mode 100644 index ca46031..0000000 --- a/includes/js/dijit/_editor/nls/ar/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"تحديد","text":"الوصف: ","insertImageTitle":"خصائص الصورة ","url":"عنوان URL:","createLinkTitle":"خصائص الوصلة "})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ar/commands.js b/includes/js/dijit/_editor/nls/ar/commands.js deleted file mode 100644 index 79ce209..0000000 --- a/includes/js/dijit/_editor/nls/ar/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"ازالة النسق","copy":"نسخ","paste":"لصق","selectAll":"اختيار كل","insertOrderedList":"كشف مرقم","insertTable":"ادراج/تحرير جدول ","underline":"تسطير","foreColor":"لون الواجهة الأمامية","htmlToggle":"مصدر HTML","formatBlock":"نمط الفقرة","insertHorizontalRule":"مسطرة أفقية","delete":"حذف","insertUnorderedList":"كشف نقطي","tableProp":"خصائص الجدول ","insertImage":"ادراج صورة","superscript":"رمز علوي","subscript":"رمز سفلي","createLink":"تكوين وصلة","undo":"تراجع","italic":"مائل","fontName":"اسم طاقم الطباعة","justifyLeft":"محاذاة الى اليسار","unlink":"ازالة وصلة","toggleTableBorder":"تبديل حدود الجدول ","fontSize":"حجم طاقم الطباعة","indent":"ازاحة للداخل","redo":"اعادة","strikethrough":"تشطيب","justifyFull":"ضبط","justifyCenter":"محاذاة في الوسط","hiliteColor":"لون الخلفية","deleteTable":"حذف جدول ","outdent":"ازاحة للخارج","cut":"قص","plainFormatBlock":"نمط الفقرة","toggleDir":"تبديل الاتجاه ","bold":"عريض","systemShortcutFF":"يكون التصرف \"${0}\" متاحا فقط في برنامج Mozilla Firefox باستخدام اختصارات لوحة المفاتيح. استخدم ${1}.","justifyRight":"محاذاة الى اليمين","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/commands.js b/includes/js/dijit/_editor/nls/commands.js deleted file mode 100644 index d58b0c8..0000000 --- a/includes/js/dijit/_editor/nls/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","ctrlKey":"ctrl+${0}","fontSize":"Font Size","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","systemShortcutFF":"The \"${0}\" action is only available in Mozilla Firefox using a keyboard shortcut. Use ${1}.","justifyRight":"Align Right"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/cs/FontChoice.js b/includes/js/dijit/_editor/nls/cs/FontChoice.js deleted file mode 100644 index 2a12e61..0000000 --- a/includes/js/dijit/_editor/nls/cs/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"extra malé","2":"velmi malé","formatBlock":"Formát","monospaced":"monospaced","3":"malé","4":"střední","5":"velké","6":"velmi velké","7":"extra velké","fantasy":"fantasy","serif":"serif","p":"Odstavec","pre":"Předformátované","sans-serif":"sans-serif","fontName":"Písmo","h1":"Nadpis","h2":"Podnadpis","h3":"Podnadpis 2","fontSize":"Velikost","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/cs/LinkDialog.js b/includes/js/dijit/_editor/nls/cs/LinkDialog.js deleted file mode 100644 index cf124d5..0000000 --- a/includes/js/dijit/_editor/nls/cs/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Nastavit","text":"Popis:","insertImageTitle":"Vlastnosti obrázku","url":"Adresa URL:","createLinkTitle":"Vlastnosti odkazu"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/cs/commands.js b/includes/js/dijit/_editor/nls/cs/commands.js deleted file mode 100644 index 2d19f8f..0000000 --- a/includes/js/dijit/_editor/nls/cs/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Odebrat formát","copy":"Kopírovat","paste":"Vložit","selectAll":"Vybrat vše","insertOrderedList":"Číslovaný seznam","insertTable":"Vložit/upravit tabulku","underline":"Podtržení","foreColor":"Barva popředí","htmlToggle":"Zdroj HTML","formatBlock":"Styl odstavce","insertHorizontalRule":"Vodorovné pravítko","delete":"Odstranit","insertUnorderedList":"Seznam s odrážkami","tableProp":"Vlastnost tabulky","insertImage":"Vložit obraz","superscript":"Horní index","subscript":"Dolní index","createLink":"Vytvořit odkaz","undo":"Zpět","italic":"Kurzíva","fontName":"Název písma","justifyLeft":"Zarovnat vlevo","unlink":"Odebrat odkaz","toggleTableBorder":"Přepnout ohraničení tabulky","ctrlKey":"Ctrl+${0}","fontSize":"Velikost písma","indent":"Odsadit","redo":"Opakovat","strikethrough":"Přeškrtnutí","justifyFull":"Do bloku","justifyCenter":"Zarovnat na střed","hiliteColor":"Barva pozadí","deleteTable":"Odstranit tabulku","outdent":"Předsadit","cut":"Vyjmout","plainFormatBlock":"Styl odstavce","toggleDir":"Přepnout směr","bold":"Tučné","systemShortcutFF":"Akce \"${0}\" je v prohlížeči Mozilla Firefox dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesy ${1}.","justifyRight":"Zarovnat vpravo","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/da/FontChoice.js b/includes/js/dijit/_editor/nls/da/FontChoice.js deleted file mode 100644 index aae3c40..0000000 --- a/includes/js/dijit/_editor/nls/da/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-small","2":"x-small","formatBlock":"Format","monospaced":"monospaced","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Afsnit","pre":"Forudformateret","sans-serif":"sans-serif","fontName":"Skrifttype","h1":"Overskrift","h2":"Underoverskrift","h3":"Underunderoverskrift","fontSize":"Størrelse","cursive":"kursiv","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/da/LinkDialog.js b/includes/js/dijit/_editor/nls/da/LinkDialog.js deleted file mode 100644 index 87fd8a9..0000000 --- a/includes/js/dijit/_editor/nls/da/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Definér","text":"Beskrivelse:","insertImageTitle":"Billedegenskaber","url":"URL:","createLinkTitle":"Linkegenskaber"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/da/commands.js b/includes/js/dijit/_editor/nls/da/commands.js deleted file mode 100644 index 04e6262..0000000 --- a/includes/js/dijit/_editor/nls/da/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Fjern format","copy":"Kopiér","paste":"Sæt ind","selectAll":"Markér alle","insertOrderedList":"Nummereret liste","insertTable":"Indsæt/redigér tabel","underline":"Understreget","foreColor":"Forgrundsfarve","htmlToggle":"HTML-kilde","formatBlock":"Afsnitstypografi","insertHorizontalRule":"Vandret linje","delete":"Slet","insertUnorderedList":"Punktliste","tableProp":"Tabelegenskab","insertImage":"Indsæt billede","superscript":"Hævet skrift","subscript":"Sænket skrift","createLink":"Opret link","undo":"Fortryd","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejusteret","unlink":"Fjern link","toggleTableBorder":"Skift tabelramme","fontSize":"Skriftstørrelse","indent":"Indrykning","redo":"Annullér Fortryd","strikethrough":"Gennemstreget","justifyFull":"Lige margener","justifyCenter":"Centreret","hiliteColor":"Baggrundsfarve","deleteTable":"Slet tabel","outdent":"Udrykning","cut":"Klip","plainFormatBlock":"Afsnitstypografi","toggleDir":"Skift retning","bold":"Fed","systemShortcutFF":"Funktionen \"${0}\" kan kun bruges i Mozilla Firefox med en tastaturgenvej. Brug ${1}.","justifyRight":"Højrejusteret","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/de/FontChoice.js b/includes/js/dijit/_editor/nls/de/FontChoice.js deleted file mode 100644 index d23c16d..0000000 --- a/includes/js/dijit/_editor/nls/de/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"XXS","2":"XS","formatBlock":"Format","monospaced":"Monospace","3":"S","4":"M","5":"L","6":"XL","7":"XXL","fantasy":"Fantasie","serif":"Serife","p":"Absatz","pre":"Vorformatiert","sans-serif":"Serifenlos","fontName":"Schriftart","h1":"Überschrift","h2":"Unterüberschrift","h3":"Unterunterüberschrift","fontSize":"Größe","cursive":"Kursiv","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/de/LinkDialog.js b/includes/js/dijit/_editor/nls/de/LinkDialog.js deleted file mode 100644 index 0bc01cb..0000000 --- a/includes/js/dijit/_editor/nls/de/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Festlegen","text":"Beschreibung:","insertImageTitle":"Grafikeigenschaften","url":"URL:","createLinkTitle":"Linkeigenschaften"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/de/commands.js b/includes/js/dijit/_editor/nls/de/commands.js deleted file mode 100644 index d597b0e..0000000 --- a/includes/js/dijit/_editor/nls/de/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Formatierung entfernen","copy":"Kopieren","paste":"Einfügen","selectAll":"Alles auswählen","insertOrderedList":"Nummerierung","insertTable":"Tabelle einfügen/bearbeiten","underline":"Unterstrichen","foreColor":"Vordergrundfarbe","htmlToggle":"HTML-Quelltext","formatBlock":"Absatzstil","insertHorizontalRule":"Horizontaler Strich","delete":"Löschen","insertUnorderedList":"Aufzählungszeichen","tableProp":"Tabelleneigenschaft","insertImage":"Grafik einfügen","superscript":"Hochgestellt","subscript":"Tiefgestellt","createLink":"Link erstellen","undo":"Rückgängig","italic":"Kursiv","fontName":"Schriftartname","justifyLeft":"Linksbündig","unlink":"Link entfernen","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","ctrlKey":"Strg+${0}","fontSize":"Schriftgröße","indent":"Einrücken","redo":"Wiederherstellen","strikethrough":"Durchgestrichen","justifyFull":"Blocksatz","justifyCenter":"Zentriert","hiliteColor":"Hintergrundfarbe","deleteTable":"Tabelle löschen","outdent":"Ausrücken","cut":"Ausschneiden","plainFormatBlock":"Absatzstil","toggleDir":"Richtung wechseln","bold":"Fett","systemShortcutFF":"Die Aktion \"${0}\" ist in Mozilla Firefox nur über einen Tastaturkurzbefehl verfügbar. Verwenden Sie ${1}.","justifyRight":"Rechtsbündig","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/el/FontChoice.js b/includes/js/dijit/_editor/nls/el/FontChoice.js deleted file mode 100644 index ac1d1fd..0000000 --- a/includes/js/dijit/_editor/nls/el/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-μικρά","2":"x-μικρά","formatBlock":"Μορφή","monospaced":"σταθερού πλάτους","3":"μικρά","4":"μεσαία","5":"μεγάλα","6":"x-μεγάλα","7":"xx-μεγάλα","fantasy":"φαντασίας","serif":"με πατούρες (serif)","p":"Παράγραφος","pre":"Προ-μορφοποιημένο","sans-serif":"χωρίς πατούρες (sans-serif)","fontName":"Γραμματοσειρά","h1":"Επικεφαλίδα","h2":"Δευτερεύουσα επικεφαλίδα","h3":"Δευτερεύουσα επικεφαλίδα τρίτου επιπέδου","fontSize":"Μέγεθος","cursive":"πλάγιοι","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/el/LinkDialog.js b/includes/js/dijit/_editor/nls/el/LinkDialog.js deleted file mode 100644 index a615aeb..0000000 --- a/includes/js/dijit/_editor/nls/el/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Ορισμός","text":"Περιγραφή:","insertImageTitle":"Ιδιότητες εικόνας","url":"Διεύθυνση URL:","createLinkTitle":"Ιδιότητες διασύνδεσης"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/el/commands.js b/includes/js/dijit/_editor/nls/el/commands.js deleted file mode 100644 index 4954c9c..0000000 --- a/includes/js/dijit/_editor/nls/el/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Αφαίρεση μορφοποίησης","copy":"Αντιγραφή","paste":"Επικόλληση","selectAll":"Επιλογή όλων","insertOrderedList":"Αριθμημένη λίστα","insertTable":"Εισαγωγή/Τροποποίηση πίνακα","underline":"Υπογράμμιση","foreColor":"Χρώμα προσκηνίου","htmlToggle":"Πρωτογενής κώδικας HTML","formatBlock":"Στυλ παραγράφου","insertHorizontalRule":"Οριζόντια γραμμή","delete":"Διαγραφή","insertUnorderedList":"Λίστα με κουκίδες","tableProp":"Ιδιότητα πίνακα","insertImage":"Εισαγωγή εικόνας","superscript":"Εκθέτης","subscript":"Δείκτης","createLink":"Δημιουργία διασύνδεσης","undo":"Αναίρεση","italic":"Πλάγια","fontName":"Όνομα γραμματοσειράς","justifyLeft":"Στοίχιση αριστερά","unlink":"Αφαίρεση διασύνδεσης","toggleTableBorder":"Εναλλαγή εμφάνισης περιγράμματος πίνακα","fontSize":"Μέγεθος γραμματοσειράς","indent":"Εσοχή","redo":"Επανάληψη","strikethrough":"Διαγράμμιση","justifyFull":"Πλήρης στοίχιση","justifyCenter":"Στοίχιση στο κέντρο","hiliteColor":"Χρώμα φόντου","deleteTable":"Διαγραφή πίνακα","outdent":"Μείωση περιθωρίου","cut":"Αποκοπή","plainFormatBlock":"Στυλ παραγράφου","toggleDir":"Εναλλαγή κατεύθυνσης","bold":"Έντονα","systemShortcutFF":"Η ενέργεια \"${0}\" είναι διαθέσιμη μόνο στο Mozilla Firefox με τη χρήση συντόμευσης πληκτρολογίου. Χρησιμοποιήστε το ${1}.","justifyRight":"Στοίχιση δεξιά","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/es/FontChoice.js b/includes/js/dijit/_editor/nls/es/FontChoice.js deleted file mode 100644 index b0f4d90..0000000 --- a/includes/js/dijit/_editor/nls/es/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-pequeño","2":"x-pequeño","formatBlock":"Formato","monospaced":"monoespacio","3":"pequeño","4":"medio","5":"grande","6":"x-grande","7":"xx-grande","fantasy":"fantasía","serif":"serif","p":"Párrafo","pre":"Preformateado","sans-serif":"sans-serif","fontName":"Font","h1":"Cabecera","h2":"Subcabecera","h3":"Sub-subcabecera","fontSize":"Tamaño","cursive":"cursiva","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/es/LinkDialog.js b/includes/js/dijit/_editor/nls/es/LinkDialog.js deleted file mode 100644 index 8dfe95f..0000000 --- a/includes/js/dijit/_editor/nls/es/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Establecer","text":"Descripción:","insertImageTitle":"Propiedades de la imagen","url":"URL:","createLinkTitle":"Propiedades del enlace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/es/commands.js b/includes/js/dijit/_editor/nls/es/commands.js deleted file mode 100644 index 54605ed..0000000 --- a/includes/js/dijit/_editor/nls/es/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Eliminar formato","copy":"Copiar","paste":"Pegar","selectAll":"Seleccionar todo","insertOrderedList":"Lista numerada","insertTable":"Insertar/Editar tabla","underline":"Subrayado","foreColor":"Color de primer plano","htmlToggle":"Fuente HTML","formatBlock":"Estilo de párrafo","insertHorizontalRule":"Regla horizontal","delete":"Suprimir","insertUnorderedList":"Lista con viñetas","tableProp":"Propiedad de tabla","insertImage":"Insertar imagen","superscript":"Superíndice","subscript":"Subíndice","createLink":"Crear enlace","undo":"Deshacer","italic":"Cursiva","fontName":"Nombre de font","justifyLeft":"Alinear izquierda","unlink":"Eliminar enlace","toggleTableBorder":"Conmutar borde de tabla","ctrlKey":"Control+${0}","fontSize":"Tamaño de font","indent":"Sangría","redo":"Rehacer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinear centro","hiliteColor":"Color de segundo plano","deleteTable":"Suprimir tabla","outdent":"Anular sangría","cut":"Cortar","plainFormatBlock":"Estilo de párrafo","toggleDir":"Conmutar dirección","bold":"Negrita","systemShortcutFF":"La acción \"${0}\" sólo está disponible en Mozilla Firefox mediante un atajo de teclado. Utilice ${1}.","justifyRight":"Alinear derecha","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fi/FontChoice.js b/includes/js/dijit/_editor/nls/fi/FontChoice.js deleted file mode 100644 index b5975ef..0000000 --- a/includes/js/dijit/_editor/nls/fi/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-small","2":"x-small","formatBlock":"Muoto","monospaced":"monospaced","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Kappale","pre":"Esimuotoiltu","sans-serif":"sans-serif","fontName":"Fontti","h1":"Otsikko","h2":"Alatason otsikko","h3":"Alimman tason otsikko","fontSize":"Koko","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fi/LinkDialog.js b/includes/js/dijit/_editor/nls/fi/LinkDialog.js deleted file mode 100644 index dba80b6..0000000 --- a/includes/js/dijit/_editor/nls/fi/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Aseta","text":"Kuvaus:","insertImageTitle":"Kuvan ominaisuudet","url":"URL-osoite:","createLinkTitle":"Linkin ominaisuudet"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fi/commands.js b/includes/js/dijit/_editor/nls/fi/commands.js deleted file mode 100644 index 2d2cfc7..0000000 --- a/includes/js/dijit/_editor/nls/fi/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Poista muotoilu","copy":"Kopioi","paste":"Liitä","selectAll":"Valitse kaikki","insertOrderedList":"Numeroitu luettelo","insertTable":"Lisää taulukko/muokkaa taulukkoa","underline":"Alleviivaus","foreColor":"Edustaväri","htmlToggle":"HTML-lähde","formatBlock":"Kappaletyyli","insertHorizontalRule":"Vaakasuuntainen viiva","delete":"Poista","insertUnorderedList":"Numeroimaton luettelo","tableProp":"Taulukon ominaisuudet","insertImage":"Lisää kuva","superscript":"Yläindeksi","subscript":"Alaindeksi","createLink":"Luo linkki","undo":"Kumoa","italic":"Kursivointi","fontName":"Fontin nimi","justifyLeft":"Tasaus vasemmalle","unlink":"Poista linkki","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","fontSize":"Fontin koko","indent":"Sisennä","redo":"Tee uudelleen","strikethrough":"Yliviivaus","justifyFull":"Tasaus","justifyCenter":"Tasaus keskelle","hiliteColor":"Taustaväri","deleteTable":"Poista taulukko","outdent":"Ulonna","cut":"Leikkaa","plainFormatBlock":"Kappaletyyli","toggleDir":"Vaihda suuntaa","bold":"Lihavointi","systemShortcutFF":"Toiminto \"${0}\" on käytettävissä vain Mozilla Firefox -ohjelmassa, kun käytetään pikanäppäimiä. Käytä kohdetta ${1}.","justifyRight":"Tasaus oikealle","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fr/FontChoice.js b/includes/js/dijit/_editor/nls/fr/FontChoice.js deleted file mode 100644 index 749ed85..0000000 --- a/includes/js/dijit/_editor/nls/fr/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xxs","2":"xs","formatBlock":"Mise en forme","monospaced":"espacement constant","3":"s","4":"m","5":"l","6":"xl","7":"xxl","fantasy":"fantaisie","serif":"serif","p":"Paragraphe","pre":"Pré-mise en forme","sans-serif":"sans serif","fontName":"Police","h1":"En-tête","h2":"Sous-en-tête","h3":"Sous-sous-en-tête","fontSize":"Taille","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fr/LinkDialog.js b/includes/js/dijit/_editor/nls/fr/LinkDialog.js deleted file mode 100644 index d3d8728..0000000 --- a/includes/js/dijit/_editor/nls/fr/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Définir","text":"Description :","insertImageTitle":"Propriétés de l'image","url":"URL :","createLinkTitle":"Propriétés du lien"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/fr/commands.js b/includes/js/dijit/_editor/nls/fr/commands.js deleted file mode 100644 index 34eb40c..0000000 --- a/includes/js/dijit/_editor/nls/fr/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Supprimer la mise en forme","copy":"Copier","paste":"Coller","selectAll":"Sélectionner tout","insertOrderedList":"Liste numérotée","insertTable":"Insérer/Modifier un tableau","underline":"Souligner","foreColor":"Couleur d'avant-plan","htmlToggle":"Source HTML","formatBlock":"Style de paragraphe","insertHorizontalRule":"Règle horizontale","delete":"Supprimer","insertUnorderedList":"Liste à puces","tableProp":"Propriété du tableau","insertImage":"Insérer une image","superscript":"Exposant","subscript":"Indice","createLink":"Créer un lien","undo":"Annuler","italic":"Italique","fontName":"Nom de police","justifyLeft":"Aligner à gauche","unlink":"Supprimer le lien","toggleTableBorder":"Afficher/Masquer la bordure du tableau","fontSize":"Taille de police","indent":"Retrait","redo":"Rétablir","strikethrough":"Barrer","justifyFull":"Justifier","justifyCenter":"Aligner au centre","hiliteColor":"Couleur d'arrière-plan","deleteTable":"Supprimer le tableau","outdent":"Retrait négatif","cut":"Couper","plainFormatBlock":"Style de paragraphe","toggleDir":"Afficher/Masquer la direction","bold":"Gras","systemShortcutFF":"L'action \"${0}\" est disponible dans Mozilla Firefox uniquement, par le biais d'un raccourci-clavier. Utilisez ${1}.","justifyRight":"Aligner à droite","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/he/FontChoice.js b/includes/js/dijit/_editor/nls/he/FontChoice.js deleted file mode 100644 index 13b2126..0000000 --- a/includes/js/dijit/_editor/nls/he/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"קטן ביות","2":"קטן מאוד","formatBlock":"עיצוב","monospaced":"monospaced","3":"קטן ","4":"בינוני","5":"גדול","6":"גדול מאוד","7":"גדול ביותר","fantasy":"fantasy","serif":"serif","p":"פיסקה","pre":"מעוצב מראש","sans-serif":"sans-serif","fontName":"גופן","h1":"כותרת","h2":"תת-כותרת","h3":"תת-תת-כותרת","fontSize":"גודל","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/he/LinkDialog.js b/includes/js/dijit/_editor/nls/he/LinkDialog.js deleted file mode 100644 index c99735b..0000000 --- a/includes/js/dijit/_editor/nls/he/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"הגדרה","text":"תיאור:","insertImageTitle":"תכונות תמונה","url":"URL:","createLinkTitle":"תכונות קישור"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/he/commands.js b/includes/js/dijit/_editor/nls/he/commands.js deleted file mode 100644 index 6488ff8..0000000 --- a/includes/js/dijit/_editor/nls/he/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"סילוק עיצוב","copy":"העתקה","paste":"הדבקה","selectAll":"בחירת הכל","insertOrderedList":"רשימה ממוספרת","insertTable":"הוספת/עריכת טבלה","underline":"קו תחתי","foreColor":"צבע חזית ","htmlToggle":"מקור HTML","formatBlock":"סגנון פיסקה","insertHorizontalRule":"קו אופקי","delete":"מחיקה","insertUnorderedList":"רשימה עם תבליטים","tableProp":"תכונת טבלה","insertImage":"הוספת תמונה","superscript":"כתב עילי","subscript":"כתב תחתי","createLink":"יצירת קישור","undo":"ביטול פעולה","italic":"נטוי","fontName":"שם גופן","justifyLeft":"יישור לשמאל","unlink":"סילוק הקישור","toggleTableBorder":"מיתוג גבול טבלה","fontSize":"גופן יחסי","indent":"הגדלת כניסה","redo":"שחזור פעולה","strikethrough":"קו חוצה","justifyFull":"יישור דו-צדדי","justifyCenter":"יישור למרכז","hiliteColor":"צבע רקע","deleteTable":"מחיקת טבלה","outdent":"הקטנת כניסה","cut":"גזירה","plainFormatBlock":"סגנון פיסקה","toggleDir":"מיתוג כיוון ","bold":"מודגש","systemShortcutFF":"הפעולה \"${0}\" זמינה בדפדפן Mozilla Firefox רק באמצעות קיצור דרך במקלדת. נא להשתמש ב-${1}.","justifyRight":"יישור לימין","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/hu/FontChoice.js b/includes/js/dijit/_editor/nls/hu/FontChoice.js deleted file mode 100644 index 0a6ca9f..0000000 --- a/includes/js/dijit/_editor/nls/hu/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-kicsi","2":"x-kicsi","formatBlock":"Formátum","monospaced":"egyenközű","3":"kicsi","4":"közepes","5":"nagy","6":"x-nagy","7":"xx-nagy","fantasy":"fantázia","serif":"talpas","p":"Bekezdés","pre":"Előformázott","sans-serif":"talpatlan","fontName":"Betűtípus","h1":"Címsor","h2":"Alcím","h3":"Al-alcím","fontSize":"Méret","cursive":"kurzív","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/hu/LinkDialog.js b/includes/js/dijit/_editor/nls/hu/LinkDialog.js deleted file mode 100644 index 8662cf2..0000000 --- a/includes/js/dijit/_editor/nls/hu/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Beállítás","text":"Leírás:","insertImageTitle":"Kép tulajdonságai","url":"URL:","createLinkTitle":"Hivatkozás tulajdonságai"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/hu/commands.js b/includes/js/dijit/_editor/nls/hu/commands.js deleted file mode 100644 index 3cd13e3..0000000 --- a/includes/js/dijit/_editor/nls/hu/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Formázás eltávolítása","copy":"Másolás","paste":"Beillesztés","selectAll":"Összes kijelölése","insertOrderedList":"Számozott lista","insertTable":"Táblázat beszúrása/szerkesztése","underline":"Aláhúzott","foreColor":"Előtérszín","htmlToggle":"HTML forrás","formatBlock":"Bekezdés stílusa","insertHorizontalRule":"Vízszintes vonalzó","delete":"Törlés","insertUnorderedList":"Felsorolásjeles lista","tableProp":"Táblázat tulajdonságai","insertImage":"Kép beszúrása","superscript":"Felső index","subscript":"Alsó index","createLink":"Hivatkozás létrehozása","undo":"Visszavonás","italic":"Dőlt","fontName":"Betűtípus","justifyLeft":"Balra igazítás","unlink":"Hivatkozás eltávolítása","toggleTableBorder":"Táblázatszegély ki-/bekapcsolása","fontSize":"Betűméret","indent":"Behúzás","redo":"Újra","strikethrough":"Áthúzott","justifyFull":"Sorkizárás","justifyCenter":"Középre igazítás","hiliteColor":"Háttérszín","deleteTable":"Táblázat törlése","outdent":"Negatív behúzás","cut":"Kivágás","plainFormatBlock":"Bekezdés stílusa","toggleDir":"Irányváltás","bold":"Félkövér","systemShortcutFF":"A(z) \"${0}\" művelet csak Mozilla Firefox böngészőben érhető el billentyűparancs használatával. Használja a következőt: ${1}.","justifyRight":"Jobbra igazítás","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/it/FontChoice.js b/includes/js/dijit/_editor/nls/it/FontChoice.js deleted file mode 100644 index d2ad29d..0000000 --- a/includes/js/dijit/_editor/nls/it/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-small","2":"x-small","formatBlock":"Formato","monospaced":"monospaced","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragrafo","pre":"Preformattato","sans-serif":"sans-serif","fontName":"Carattere","h1":"Intestazione","h2":"Sottointestazione","h3":"Sottointestazione secondaria","fontSize":"Dimensione","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/it/LinkDialog.js b/includes/js/dijit/_editor/nls/it/LinkDialog.js deleted file mode 100644 index 72f76e4..0000000 --- a/includes/js/dijit/_editor/nls/it/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Imposta","text":"Descrizione:","insertImageTitle":"Proprietà immagine","url":"URL:","createLinkTitle":"Proprietà collegamento"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/it/commands.js b/includes/js/dijit/_editor/nls/it/commands.js deleted file mode 100644 index 6e22372..0000000 --- a/includes/js/dijit/_editor/nls/it/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Rimuovi formato","copy":"Copia","paste":"Incolla","selectAll":"Seleziona tutto","insertOrderedList":"Elenco numerato","insertTable":"Inserisci/Modifica tabella","underline":"Sottolineato","foreColor":"Colore primo piano","htmlToggle":"Origine HTML","formatBlock":"Stile paragrafo","insertHorizontalRule":"Righello orizzontale","delete":"Elimina","insertUnorderedList":"Elenco puntato","tableProp":"Proprietà tabella","insertImage":"Inserisci immagine","superscript":"Apice","subscript":"Pedice","createLink":"Crea collegamento","undo":"Annulla","italic":"Corsivo","fontName":"Nome carattere","justifyLeft":"Allinea a sinistra","unlink":"Rimuovi collegamento","toggleTableBorder":"Mostra/Nascondi margine tabella","fontSize":"Dimensione carattere","indent":"Rientra","redo":"Ripristina","strikethrough":"Barrato","justifyFull":"Giustifica","justifyCenter":"Allinea al centro","hiliteColor":"Colore sfondo","deleteTable":"Elimina tabella","outdent":"Rimuovi rientro","cut":"Taglia","plainFormatBlock":"Stile paragrafo","toggleDir":"Inverti direzione","bold":"Grassetto","systemShortcutFF":"L'azione \"${0}\" è disponibile solo in Mozilla Firefox tramite tasti di scelta rapida. Utilizzare ${1}.","justifyRight":"Allinea a destra","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ja/FontChoice.js b/includes/js/dijit/_editor/nls/ja/FontChoice.js deleted file mode 100644 index 633fc9a..0000000 --- a/includes/js/dijit/_editor/nls/ja/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"超極小","2":"極小","formatBlock":"フォーマット","monospaced":"monospace","3":"小","4":"標準","5":"大","6":"特大","7":"超特大","fantasy":"fantasy","serif":"serif","p":"段落","pre":"事前フォーマット済み","sans-serif":"sans-serif","fontName":"フォント","h1":"見出し","h2":"副見出し","h3":"副見出しの副見出し","fontSize":"サイズ","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ja/LinkDialog.js b/includes/js/dijit/_editor/nls/ja/LinkDialog.js deleted file mode 100644 index 2fc7a63..0000000 --- a/includes/js/dijit/_editor/nls/ja/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"設定","text":"説明:","insertImageTitle":"イメージ・プロパティー","url":"URL:","createLinkTitle":"リンク・プロパティー"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ja/commands.js b/includes/js/dijit/_editor/nls/ja/commands.js deleted file mode 100644 index c33fdca..0000000 --- a/includes/js/dijit/_editor/nls/ja/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"形式の除去","copy":"コピー","paste":"貼り付け","selectAll":"すべて選択","insertOrderedList":"番号付きリスト","insertTable":"テーブルの挿入/編集","underline":"下線","foreColor":"前景色","htmlToggle":"HTML ソース","formatBlock":"段落スタイル","insertHorizontalRule":"水平罫線","delete":"削除","insertUnorderedList":"黒丸付きリスト","tableProp":"テーブル・プロパティー","insertImage":"イメージの挿入","superscript":"上付き文字","subscript":"下付き文字","createLink":"リンクの作成","undo":"元に戻す","italic":"イタリック","fontName":"フォント名","justifyLeft":"左揃え","unlink":"リンクの除去","toggleTableBorder":"テーブル・ボーダーの切り替え","fontSize":"フォント・サイズ","indent":"インデント","redo":"やり直し","strikethrough":"取り消し線","justifyFull":"両端揃え","justifyCenter":"中央揃え","hiliteColor":"背景色","deleteTable":"テーブルの削除","outdent":"アウトデント","cut":"切り取り","plainFormatBlock":"段落スタイル","toggleDir":"方向の切り替え","bold":"太字","systemShortcutFF":"\"${0}\" アクションは、キーボード・ショートカットを使用して Mozilla Firefox でのみ使用できます。${1} を使用してください。","justifyRight":"右揃え","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ko/FontChoice.js b/includes/js/dijit/_editor/nls/ko/FontChoice.js deleted file mode 100644 index cd5268a..0000000 --- a/includes/js/dijit/_editor/nls/ko/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"가장 작게","2":"조금 작게","formatBlock":"서식","monospaced":"monospaced","3":"작게","4":"중간","5":"크게","6":"조금 크게","7":"가장 크게","fantasy":"fantasy","serif":"serif","p":"단락","pre":"서식이 지정됨","sans-serif":"sans-serif","fontName":"글꼴","h1":"제목","h2":"부제목","h3":"하위 부제목","fontSize":"크기","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ko/LinkDialog.js b/includes/js/dijit/_editor/nls/ko/LinkDialog.js deleted file mode 100644 index c8d10c3..0000000 --- a/includes/js/dijit/_editor/nls/ko/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"설정","text":"설명:","insertImageTitle":"이미지 등록 정보","url":"URL:","createLinkTitle":"링크 등록 정보"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ko/commands.js b/includes/js/dijit/_editor/nls/ko/commands.js deleted file mode 100644 index 8327472..0000000 --- a/includes/js/dijit/_editor/nls/ko/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"형식 제거","copy":"복사","paste":"붙여넣기","selectAll":"모두 선택","insertOrderedList":"번호 목록","insertTable":"테이블 삽입/편집","underline":"밑줄","foreColor":"전경색","htmlToggle":"HTML 소스","formatBlock":"단락 양식","insertHorizontalRule":"수평 자","delete":"삭제","insertUnorderedList":"글머리표 목록","tableProp":"테이블 특성","insertImage":"이미지 삽입","superscript":"위첨자","subscript":"아래첨자","createLink":"링크 작성","undo":"실행 취소","italic":"이탤릭체","fontName":"글꼴 이름","justifyLeft":"왼쪽 맞춤","unlink":"링크 제거","toggleTableBorder":"토글 테이블 경계","fontSize":"글꼴 크기","indent":"들여쓰기","redo":"다시 실행","strikethrough":"취소선","justifyFull":"양쪽 맞춤","justifyCenter":"가운데 맞춤","hiliteColor":"배경색","deleteTable":"테이블 삭제","outdent":"내어쓰기","cut":"잘라내기","plainFormatBlock":"단락 양식","toggleDir":"토글 방향","bold":"굵은체","systemShortcutFF":"\"${0}\" 조치는 키보드 바로 가기를 사용하는 Mozilla Firefox에서만 사용 가능합니다. ${1} 사용.","justifyRight":"오른쪽 맞춤","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nb/FontChoice.js b/includes/js/dijit/_editor/nls/nb/FontChoice.js deleted file mode 100644 index 440c44b..0000000 --- a/includes/js/dijit/_editor/nls/nb/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-liten","2":"x-liten","formatBlock":"Format","monospaced":"ikke-proporsjonal","3":"liten","4":"middels","5":"stor","6":"x-stor","7":"xx-stor","fantasy":"fantasi","serif":"serif","p":"Avsnitt","pre":"Forhåndsformatert","sans-serif":"sans-serif","fontName":"Skrift","h1":"Overskrift","h2":"Undertittel","h3":"Under-undertittel","fontSize":"Størrelse","cursive":"kursiv","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nb/LinkDialog.js b/includes/js/dijit/_editor/nls/nb/LinkDialog.js deleted file mode 100644 index 1f26a40..0000000 --- a/includes/js/dijit/_editor/nls/nb/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Definer","text":"Beskrivelse:","insertImageTitle":"Bildeegenskaper","url":"URL:","createLinkTitle":"Koblingsegenskaper"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nb/commands.js b/includes/js/dijit/_editor/nls/nb/commands.js deleted file mode 100644 index 039c1b3..0000000 --- a/includes/js/dijit/_editor/nls/nb/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Fjern format","copy":"Kopier","paste":"Lim inn","selectAll":"Velg alle","insertOrderedList":"Nummerert liste","insertTable":"Sett inn/rediger tabell","underline":"Understreking","foreColor":"Forgrunnsfarge","htmlToggle":"HTML-kilde","formatBlock":"Avsnittsstil","insertHorizontalRule":"Vannrett strek","delete":"Slett","insertUnorderedList":"Punktliste","tableProp":"Tabellegenskap","insertImage":"Sett inn bilde","superscript":"Hevet skrift","subscript":"Senket skrift","createLink":"Opprett kobling","undo":"Angre","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejuster","unlink":"Fjern kobling","toggleTableBorder":"Bytt tabellkant","fontSize":"Skriftstørrelse","indent":"Innrykk","redo":"Gjør om","strikethrough":"Gjennomstreking","justifyFull":"Juster","justifyCenter":"Midtstill","hiliteColor":"Bakgrunnsfarge","deleteTable":"Slett tabell","outdent":"Fjern innrykk","cut":"Klipp ut","plainFormatBlock":"Avsnittsstil","toggleDir":"Bytt retning","bold":"Fet","systemShortcutFF":"Handlingen \"${0}\" er bare tilgjengelig i Mozilla Firefox ved hjelp av en tastatursnarvei. Bruk ${1}.","justifyRight":"Høyrejuster","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nl/FontChoice.js b/includes/js/dijit/_editor/nls/nl/FontChoice.js deleted file mode 100644 index 7af12bf..0000000 --- a/includes/js/dijit/_editor/nls/nl/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-klein","2":"x-klein","formatBlock":"Opmaak","monospaced":"monospaced","3":"klein","4":"gemiddeld","5":"groot","6":"x-groot","7":"xx-groot","fantasy":"fantasy","serif":"serif","p":"Alinea","pre":"Vooraf opgemaakt","sans-serif":"sans-serif","fontName":"Lettertype","h1":"Kop","h2":"Subkop","h3":"Sub-subkop","fontSize":"Grootte","cursive":"cursief","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nl/LinkDialog.js b/includes/js/dijit/_editor/nls/nl/LinkDialog.js deleted file mode 100644 index 5f89113..0000000 --- a/includes/js/dijit/_editor/nls/nl/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Instellen","text":"Beschrijving:","insertImageTitle":"Afbeeldingseigenschappen","url":"URL:","createLinkTitle":"Linkeigenschappen"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/nl/commands.js b/includes/js/dijit/_editor/nls/nl/commands.js deleted file mode 100644 index 3a259c3..0000000 --- a/includes/js/dijit/_editor/nls/nl/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Opmaak verwijderen","copy":"Kopiëren","paste":"Plakken","selectAll":"Alles selecteren","insertOrderedList":"Genummerde lijst","insertTable":"Tabel invoegen/bewerken","underline":"Onderstrepen","foreColor":"Voorgrondkleur","htmlToggle":"HTML-bron","formatBlock":"Alineastijl","insertHorizontalRule":"Horizontale liniaal","delete":"Wissen","insertUnorderedList":"Lijst met opsommingstekens","tableProp":"Tabeleigenschap","insertImage":"Afbeelding invoegen","superscript":"Superscript","subscript":"Subscript","createLink":"Link maken","undo":"Ongedaan maken","italic":"Cursief","fontName":"Lettertype","justifyLeft":"Links uitlijnen","unlink":"Link verwijderen","toggleTableBorder":"Tabelkader wijzigen","ctrlKey":"Ctrl+${0}","fontSize":"Lettergrootte","indent":"Inspringen","redo":"Opnieuw","strikethrough":"Doorhalen","justifyFull":"Uitvullen","justifyCenter":"Centreren","hiliteColor":"Achtergrondkleur","deleteTable":"Tabel wissen","outdent":"Uitspringen","cut":"Knippen","plainFormatBlock":"Alineastijl","toggleDir":"Schrijfrichting wijzigen","bold":"Vet","systemShortcutFF":"De actie \"${0}\" is alleen beschikbaar in Mozilla Firefox via een sneltoestcombinatie. Gebruik ${1}.","justifyRight":"Rechts uitlijnen","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pl/FontChoice.js b/includes/js/dijit/_editor/nls/pl/FontChoice.js deleted file mode 100644 index 8c9bbd8..0000000 --- a/includes/js/dijit/_editor/nls/pl/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"najmniejsza","2":"mniejsza","formatBlock":"Format","monospaced":"stałej szerokości","3":"mała","4":"średnia","5":"duża","6":"większa","7":"największa","fantasy":"fantazyjna","serif":"szeryfowa","p":"Akapit","pre":"Wstępnie sformatowane","sans-serif":"bezszeryfowa","fontName":"Czcionka","h1":"Nagłówek","h2":"Nagłówek 2-go poziomu","h3":"Nagłówek 3-go poziomu","fontSize":"Wielkość","cursive":"kursywa","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pl/LinkDialog.js b/includes/js/dijit/_editor/nls/pl/LinkDialog.js deleted file mode 100644 index 9d6c182..0000000 --- a/includes/js/dijit/_editor/nls/pl/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Ustaw","text":"Opis:","insertImageTitle":"Właściwości obrazu","url":"Adres URL:","createLinkTitle":"Właściwości odsyłacza"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pl/commands.js b/includes/js/dijit/_editor/nls/pl/commands.js deleted file mode 100644 index 49f8021..0000000 --- a/includes/js/dijit/_editor/nls/pl/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Usuń formatowanie","copy":"Kopiuj","paste":"Wklej","selectAll":"Wybierz wszystko","insertOrderedList":"Lista numerowana","insertTable":"Wstaw/edytuj tabelę","underline":"Podkreślenie","foreColor":"Kolor pierwszego planu","htmlToggle":"Źródło HTML","formatBlock":"Styl akapitu","insertHorizontalRule":"Linia pozioma","delete":"Usuń","insertUnorderedList":"Lista wypunktowana","tableProp":"Właściwość tabeli","insertImage":"Wstaw obraz","superscript":"Indeks górny","subscript":"Indeks dolny","createLink":"Utwórz odsyłacz","undo":"Cofnij","italic":"Kursywa","fontName":"Nazwa czcionki","justifyLeft":"Wyrównaj do lewej","unlink":"Usuń odsyłacz","toggleTableBorder":"Przełącz ramkę tabeli","fontSize":"Wielkość czcionki","indent":"Wcięcie","redo":"Przywróć","strikethrough":"Przekreślenie","justifyFull":"Wyrównaj do lewej i prawej","justifyCenter":"Wyrównaj do środka","hiliteColor":"Kolor tła","deleteTable":"Usuń tabelę","outdent":"Usuń wcięcie","cut":"Wytnij","plainFormatBlock":"Styl akapitu","toggleDir":"Przełącz kierunek","bold":"Pogrubienie","systemShortcutFF":"Działanie ${0} jest dostępne w przeglądarce Mozilla Firefox wyłącznie za pomocą skrótu klawiaturowego. Użyj ${1}.","justifyRight":"Wyrównaj do prawej","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt-pt/FontChoice.js b/includes/js/dijit/_editor/nls/pt-pt/FontChoice.js deleted file mode 100644 index f697a6f..0000000 --- a/includes/js/dijit/_editor/nls/pt-pt/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xxs","2":"xs","formatBlock":"Formato","monospaced":"monospaced","3":"small","4":"medium","5":"large","6":"xl","7":"xxl","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Tipo de letra","h1":"Título","h2":"Sub-título","h3":"Sub-subtítulo","fontSize":"Tamanho","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt-pt/LinkDialog.js b/includes/js/dijit/_editor/nls/pt-pt/LinkDialog.js deleted file mode 100644 index 3478d41..0000000 --- a/includes/js/dijit/_editor/nls/pt-pt/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Definir","text":"Descrição:","insertImageTitle":"Propriedades da imagem","url":"URL:","createLinkTitle":"Propriedade da ligação"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt-pt/commands.js b/includes/js/dijit/_editor/nls/pt-pt/commands.js deleted file mode 100644 index 0a93447..0000000 --- a/includes/js/dijit/_editor/nls/pt-pt/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Remover formato","copy":"Copiar","paste":"Colar","selectAll":"Seleccionar tudo","insertOrderedList":"Lista numerada","insertTable":"Inserir/Editar tabela","underline":"Sublinhado","foreColor":"Cor de primeiro plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de parágrafo","insertHorizontalRule":"Régua horizontal","delete":"Eliminar","insertUnorderedList":"Lista marcada","tableProp":"Propriedades da tabela","insertImage":"Inserir imagem","superscript":"Superior à linha","subscript":"Inferior à linha","createLink":"Criar ligação","undo":"Anular","italic":"Itálico","fontName":"Nome do tipo de letra","justifyLeft":"Alinhar à esquerda","unlink":"Remover ligação","toggleTableBorder":"Alternar limite da tabela","fontSize":"Tamanho do tipo de letra","indent":"Indentar","redo":"Repetir","strikethrough":"Rasurado","justifyFull":"Justificar","justifyCenter":"Alinhar ao centro","hiliteColor":"Cor de segundo plano","deleteTable":"Eliminar tabela","outdent":"Recuar","cut":"Cortar","plainFormatBlock":"Estilo de parágrafo","toggleDir":"Alternar direcção","bold":"Negrito","systemShortcutFF":"A acção \"${0}\" apenas está disponível no Mozilla Firefox utilizando um atalho de teclado. Utilize ${1}.","justifyRight":"Alinhar à direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt/FontChoice.js b/includes/js/dijit/_editor/nls/pt/FontChoice.js deleted file mode 100644 index e2ee4e7..0000000 --- a/includes/js/dijit/_editor/nls/pt/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-small","2":"x-small","formatBlock":"Formato","monospaced":"monospaced","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Fonte","h1":"Título","h2":"Subtítulo","h3":"Sub-subtítulo","fontSize":"Tamanho","cursive":"cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt/LinkDialog.js b/includes/js/dijit/_editor/nls/pt/LinkDialog.js deleted file mode 100644 index e74d4fd..0000000 --- a/includes/js/dijit/_editor/nls/pt/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Definir","text":"Descrição:","insertImageTitle":"Propriedades de Imagem","url":"URL:","createLinkTitle":"Propriedades de Link"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/pt/commands.js b/includes/js/dijit/_editor/nls/pt/commands.js deleted file mode 100644 index e7aabc5..0000000 --- a/includes/js/dijit/_editor/nls/pt/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Remover Formato","copy":"Copiar","paste":"Colar","selectAll":"Selecionar Todos","insertOrderedList":"Lista Numerada","insertTable":"Inserir/Editar Tabela","underline":"Sublinhado","foreColor":"Cor do Primeiro Plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de Parágrafo","insertHorizontalRule":"Régua Horizontal","delete":"Excluir ","insertUnorderedList":"Lista com Marcadores","tableProp":"Propriedade da Tabela","insertImage":"Inserir Imagem","superscript":"Sobrescrito","subscript":"Subscrito","createLink":"Criar Link","undo":"Desfazer","italic":"Itálico","fontName":"Nome da Fonte","justifyLeft":"Alinhar pela Esquerda","unlink":"Remover Link","toggleTableBorder":"Alternar Moldura da Tabela","fontSize":"Tamanho da Fonte","indent":"Recuar","redo":"Refazer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinhar pelo Centro","hiliteColor":"Cor de segundo plano","deleteTable":"Excluir Tabela","outdent":"Não-chanfrado","cut":"Recortar","plainFormatBlock":"Estilo de Parágrafo","toggleDir":"Alternar Direção","bold":"Negrito","systemShortcutFF":"A ação \"${0}\" está disponível apenas no Mozilla Firefox utilizando um atalho do teclado. Utilize ${1}.","justifyRight":"Alinhar pela Direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ru/FontChoice.js b/includes/js/dijit/_editor/nls/ru/FontChoice.js deleted file mode 100644 index b1fde8d..0000000 --- a/includes/js/dijit/_editor/nls/ru/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"самый маленький","2":"очень маленький","formatBlock":"Формат","monospaced":"непропорциональный","3":"маленький","4":"средний","5":"большой","6":"очень большой","7":"самый большой","fantasy":"артистический","serif":"с засечками","p":"Абзац","pre":"Заранее отформатированный","sans-serif":"без засечек","fontName":"Шрифт","h1":"Заголовок","h2":"Подзаголовок","h3":"Вложенный подзаголовок","fontSize":"Размер","cursive":"курсив","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ru/LinkDialog.js b/includes/js/dijit/_editor/nls/ru/LinkDialog.js deleted file mode 100644 index 42a6826..0000000 --- a/includes/js/dijit/_editor/nls/ru/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Задать","text":"Описание:","insertImageTitle":"Свойства изображения","url":"URL:","createLinkTitle":"Свойства ссылки"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/ru/commands.js b/includes/js/dijit/_editor/nls/ru/commands.js deleted file mode 100644 index 82ed23f..0000000 --- a/includes/js/dijit/_editor/nls/ru/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Удалить формат","copy":"Копировать","paste":"Вставить","selectAll":"Выбрать все","insertOrderedList":"Нумерованный список","insertTable":"Вставить/изменить таблицу","underline":"Подчеркивание","foreColor":"Цвет текста","htmlToggle":"Код HTML","formatBlock":"Стиль абзаца","insertHorizontalRule":"Горизонтальная линейка","delete":"Удалить","insertUnorderedList":"Список с маркерами","tableProp":"Свойства таблицы","insertImage":"Вставить изображение","superscript":"Верхний индекс","subscript":"Нижний индекс","createLink":"Создать ссылку","undo":"Отменить","italic":"Курсив","fontName":"Название шрифта","justifyLeft":"По левому краю","unlink":"Удалить ссылку","toggleTableBorder":"Переключить рамку таблицы","fontSize":"Размер шрифта","indent":"Отступ","redo":"Повторить","strikethrough":"Перечеркивание","justifyFull":"По ширине","justifyCenter":"По центру","hiliteColor":"Цвет фона","deleteTable":"Удалить таблицу","outdent":"Втяжка","cut":"Вырезать","plainFormatBlock":"Стиль абзаца","toggleDir":"Изменить направление","bold":"Полужирный","systemShortcutFF":"Действие \"${0}\" доступно в Mozilla Firefox только через сочетание клавиш. Используйте ${1}.","justifyRight":"По правому краю","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/sv/FontChoice.js b/includes/js/dijit/_editor/nls/sv/FontChoice.js deleted file mode 100644 index 8d9c1b1..0000000 --- a/includes/js/dijit/_editor/nls/sv/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"mycket, mycket litet","2":"mycket litet","formatBlock":"Format","monospaced":"fast teckenavstånd","3":"litet","4":"medelstort","5":"stort","6":"extra stort","7":"extra extra stort","fantasy":"fantasy","serif":"serif","p":"Stycke","pre":"Förformaterat","sans-serif":"sans-serif","fontName":"Teckensnitt","h1":"Rubrik","h2":"Underrubrik","h3":"Underunderrubrik","fontSize":"Storlek","cursive":"kursivt","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/sv/LinkDialog.js b/includes/js/dijit/_editor/nls/sv/LinkDialog.js deleted file mode 100644 index 64e8cfb..0000000 --- a/includes/js/dijit/_editor/nls/sv/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Ange","text":"Beskrivning:","insertImageTitle":"Bildegenskaper","url":"URL-adress:","createLinkTitle":"Länkegenskaper"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/sv/commands.js b/includes/js/dijit/_editor/nls/sv/commands.js deleted file mode 100644 index a5082a4..0000000 --- a/includes/js/dijit/_editor/nls/sv/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Ta bort format","copy":"Kopiera","paste":"Klistra in","selectAll":"Markera allt","insertOrderedList":"Numrerad lista","insertTable":"Infoga/redigera tabell","underline":"Understrykning","foreColor":"Förgrundsfärg","htmlToggle":"HTML-källkod","formatBlock":"Styckeformat","insertHorizontalRule":"Horisontell linjal","delete":"Ta bort","insertUnorderedList":"Punktlista","tableProp":"Tabellegenskap","insertImage":"Infoga bild","superscript":"Upphöjt","subscript":"Nedsänkt","createLink":"Skapa länk","undo":"Ångra","italic":"Kursiv","fontName":"Teckensnittsnamn","justifyLeft":"Vänsterjustera","unlink":"Ta bort länk","toggleTableBorder":"Aktivera/avaktivera tabellram","ctrlKey":"Ctrl+${0}","fontSize":"Teckenstorlek","indent":"Indrag","redo":"Gör om","strikethrough":"Genomstruken","justifyFull":"Marginaljustera","justifyCenter":"Centrera","hiliteColor":"Bakgrundsfärg","deleteTable":"Ta bort tabell","outdent":"Utdrag","cut":"Klipp ut","plainFormatBlock":"Styckeformat","toggleDir":"Växla riktning","bold":"Fetstil","systemShortcutFF":"Åtgärden \"${0}\" är endast tillgänglig i Mozilla Firefox med hjälp av ett kortkommando. Använd ${1}.","justifyRight":"Högerjustera","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/tr/FontChoice.js b/includes/js/dijit/_editor/nls/tr/FontChoice.js deleted file mode 100644 index 3f11939..0000000 --- a/includes/js/dijit/_editor/nls/tr/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"xx-küçük","2":"x-küçük","formatBlock":"Biçim","monospaced":"eşaralıklı","3":"küçük","4":"orta","5":"büyük","6":"x-büyük","7":"xx-büyük","fantasy":"fantazi","serif":"serif","p":"Paragraf","pre":"Önceden Biçimlendirilmiş","sans-serif":"sans-serif","fontName":"Yazı Tipi","h1":"Başlık","h2":"Alt Başlık","h3":"Alt Alt Başlık","fontSize":"Boyut","cursive":"el yazısı","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/tr/LinkDialog.js b/includes/js/dijit/_editor/nls/tr/LinkDialog.js deleted file mode 100644 index 7f5856d..0000000 --- a/includes/js/dijit/_editor/nls/tr/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"Ayarla","text":"Açıklama:","insertImageTitle":"Resim Özellikleri","url":"URL:","createLinkTitle":"Bağlantı Özellikleri"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/tr/commands.js b/includes/js/dijit/_editor/nls/tr/commands.js deleted file mode 100644 index 5731261..0000000 --- a/includes/js/dijit/_editor/nls/tr/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"Biçimi Kaldır","copy":"Kopyala","paste":"Yapıştır","selectAll":"Tümünü Seç","insertOrderedList":"Numaralı Liste","insertTable":"Tablo Ekle/Düzenle","underline":"Altı Çizili","foreColor":"Ön Plan Rengi","htmlToggle":"HTML Kaynağı","formatBlock":"Paragraf Stili","insertHorizontalRule":"Yatay Kural","delete":"Sil","insertUnorderedList":"Madde İşaretli Liste","tableProp":"Tablo Özelliği","insertImage":"Resim Ekle","superscript":"Üst Simge","subscript":"Alt Simge","createLink":"Bağlantı Oluştur","undo":"Geri Al","italic":"İtalik","fontName":"Yazı Tipi Adı","justifyLeft":"Sola Hizala","unlink":"Bağlantıyı Kaldır","toggleTableBorder":"Tablo Kenarlığını Göster/Gizle","fontSize":"Yazı Tipi Boyutu","indent":"Girinti","redo":"Yinele","strikethrough":"Üstü Çizili","justifyFull":"Yasla","justifyCenter":"Ortaya Hizala","hiliteColor":"Arka Plan Rengi","deleteTable":"Tabloyu Sil","outdent":"Çıkıntı","cut":"Kes","plainFormatBlock":"Paragraf Stili","toggleDir":"Yönü Değiştir","bold":"Kalın","systemShortcutFF":"\"${0}\" işlemi yalnızca Mozilla Firefox'ta bir klavye kısayoluyla birlikte kullanılabilir. ${1} işlemini kullanın.","justifyRight":"Sağa Hizala","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh-tw/FontChoice.js b/includes/js/dijit/_editor/nls/zh-tw/FontChoice.js deleted file mode 100644 index fa5527c..0000000 --- a/includes/js/dijit/_editor/nls/zh-tw/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"最小","2":"較小","formatBlock":"格式","monospaced":"單距","3":"小","4":"中","5":"大","6":"較大","7":"最大","fantasy":"Fantasy","serif":"新細明體","p":"段落","pre":"預先格式化","sans-serif":"新細明體","fontName":"字型","h1":"標題","h2":"子標題","h3":"次子標題","fontSize":"大小","cursive":"Cursive","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh-tw/LinkDialog.js b/includes/js/dijit/_editor/nls/zh-tw/LinkDialog.js deleted file mode 100644 index fb74fb6..0000000 --- a/includes/js/dijit/_editor/nls/zh-tw/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"設定","text":"說明:","insertImageTitle":"影像檔內容","url":"URL:","createLinkTitle":"鏈結內容"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh-tw/commands.js b/includes/js/dijit/_editor/nls/zh-tw/commands.js deleted file mode 100644 index adde3bc..0000000 --- a/includes/js/dijit/_editor/nls/zh-tw/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"移除格式","copy":"複製","paste":"貼上","selectAll":"全選","insertOrderedList":"編號清單","insertTable":"插入/編輯表格","underline":"底線","foreColor":"前景顏色","htmlToggle":"HTML 原始檔","formatBlock":"段落樣式","insertHorizontalRule":"水平尺規","delete":"刪除","insertUnorderedList":"項目符號清單","tableProp":"表格內容","insertImage":"插入影像","superscript":"上標","subscript":"下標","createLink":"建立鏈結","undo":"復原","italic":"斜體","fontName":"字型名稱","justifyLeft":"靠左對齊","unlink":"移除鏈結","toggleTableBorder":"切換表格邊框","fontSize":"字型大小","indent":"縮排","redo":"重做","strikethrough":"加刪除線","justifyFull":"對齊","justifyCenter":"置中對齊","hiliteColor":"背景顏色","deleteTable":"刪除表格","outdent":"凸排","cut":"剪下","plainFormatBlock":"段落樣式","toggleDir":"切換方向","bold":"粗體","systemShortcutFF":"\"${0}\" 動作在 Mozilla Firefox 中,只能使用鍵盤快速鍵。請使用 ${1}。","justifyRight":"靠右對齊","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh/FontChoice.js b/includes/js/dijit/_editor/nls/zh/FontChoice.js deleted file mode 100644 index ba28c8b..0000000 --- a/includes/js/dijit/_editor/nls/zh/FontChoice.js +++ /dev/null @@ -1 +0,0 @@ -({"1":"XXS 号","2":"XS 号","formatBlock":"格式","monospaced":"等宽","3":"S 号","4":"M 号","5":"L 号","6":"XL 号","7":"XXL 号","fantasy":"虚线","serif":"有衬线","p":"段落","pre":"预设有格式的","sans-serif":"无衬线","fontName":"字体","h1":"标题","h2":"子标题","h3":"二级子标题","fontSize":"大小","cursive":"草书","monospace":"monospace"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh/LinkDialog.js b/includes/js/dijit/_editor/nls/zh/LinkDialog.js deleted file mode 100644 index 73fca59..0000000 --- a/includes/js/dijit/_editor/nls/zh/LinkDialog.js +++ /dev/null @@ -1 +0,0 @@ -({"set":"集合","text":"描述:","insertImageTitle":"图像属性","url":"URL:","createLinkTitle":"链接属性"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/nls/zh/commands.js b/includes/js/dijit/_editor/nls/zh/commands.js deleted file mode 100644 index 4cb3c96..0000000 --- a/includes/js/dijit/_editor/nls/zh/commands.js +++ /dev/null @@ -1 +0,0 @@ -({"removeFormat":"除去格式","copy":"复制","paste":"粘贴","selectAll":"全选","insertOrderedList":"编号列表","insertTable":"插入/编辑表","underline":"下划线","foreColor":"前景色","htmlToggle":"HTML 源代码","formatBlock":"段落样式","insertHorizontalRule":"水平线","delete":"删除","insertUnorderedList":"符号列表","tableProp":"表属性","insertImage":"插入图像","superscript":"上标","subscript":"下标","createLink":"创建链接","undo":"撤销","italic":"斜体","fontName":"字体名称","justifyLeft":"左对齐","unlink":"除去链接","toggleTableBorder":"切换表边框","fontSize":"字体大小","indent":"增加缩进","redo":"重做","strikethrough":"删除线","justifyFull":"对齐","justifyCenter":"居中","hiliteColor":"背景色","deleteTable":"删除表","outdent":"减少缩进","cut":"剪切","plainFormatBlock":"段落样式","toggleDir":"固定方向","bold":"粗体","systemShortcutFF":"只能在 Mozilla Firefox 中通过键盘快捷方式执行“${0}”操作。请使用 ${1}。","justifyRight":"右对齐","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/includes/js/dijit/_editor/plugins/AlwaysShowToolbar.js b/includes/js/dijit/_editor/plugins/AlwaysShowToolbar.js deleted file mode 100644 index 9879e88..0000000 --- a/includes/js/dijit/_editor/plugins/AlwaysShowToolbar.js +++ /dev/null @@ -1,140 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"] = true; -dojo.provide("dijit._editor.plugins.AlwaysShowToolbar"); - -dojo.declare("dijit._editor.plugins.AlwaysShowToolbar", dijit._editor._Plugin, - { - _handleScroll: true, - setEditor: function(e){ - this.editor = e; -// setTimeout(dojo.hitch(this,this.enable), 10000); - e.onLoadDeferred.addCallback(dojo.hitch(this, this.enable)); -// this.scrollInterval = setInterval(dojo.hitch(this, "globalOnScrollHandler"), 100); - }, - enable: function(d){ - this._updateHeight(); - this.connect(window, 'onscroll', "globalOnScrollHandler"); - this.connect(this.editor, 'onNormalizedDisplayChanged', "_updateHeight"); - return d; - }, - _updateHeight: function(){ - // summary: - // Updates the height of the editor area to fit the contents. - var e = this.editor; - if(!e.isLoaded){ return; } - if(e.height){ return; } - - var height = dojo.marginBox(e.editNode).h; - if(dojo.isOpera){ - height = e.editNode.scrollHeight; - } - // console.debug('height',height); - // alert(this.editNode); - - //height maybe zero in some cases even though the content is not empty, - //we try the height of body instead - if(!height){ - height = dojo.marginBox(e.document.body).h; - } - - if(height == 0){ - console.debug("Can not figure out the height of the editing area!"); - return; //prevent setting height to 0 - } - if(height != this._lastHeight){ - this._lastHeight = height; - // this.editorObject.style.height = this._lastHeight + "px"; - dojo.marginBox(e.iframe, { h: this._lastHeight }); -// this.iframe.height=this._lastHeight+10+'px'; -// this.iframe.style.height=this._lastHeight+'px'; - } - }, - _lastHeight: 0, - globalOnScrollHandler: function(){ - var isIE = dojo.isIE && dojo.isIE<7; - if(!this._handleScroll){ return; } - var tdn = this.editor.toolbar.domNode; - var db = dojo.body; - - if(!this._scrollSetUp){ - this._scrollSetUp = true; - this._scrollThreshold = dojo._abs(tdn, true).y; -// console.log("threshold:", this._scrollThreshold); - //what's this for?? comment out for now -// if((isIE)&&(db)&&(dojo.style(db, "backgroundIimage")=="none")){ -// db.style.backgroundImage = "url(" + dojo.uri.moduleUri("dijit", "templates/blank.gif") + ")"; -// db.style.backgroundAttachment = "fixed"; -// } - } - - var scrollPos = dojo._docScroll().y; - var s = tdn.style; - - if(scrollPos > this._scrollThreshold && scrollPos < this._scrollThreshold+this._lastHeight){ - // dojo.debug(scrollPos); - if(!this._fixEnabled){ - var tdnbox = dojo.marginBox(tdn); - this.editor.iframe.style.marginTop = tdnbox.h+"px"; - - if(isIE){ - s.left = dojo._abs(tdn).x; - if(tdn.previousSibling){ - this._IEOriginalPos = ['after',tdn.previousSibling]; - }else if(tdn.nextSibling){ - this._IEOriginalPos = ['before',tdn.nextSibling]; - }else{ - this._IEOriginalPos = ['last',tdn.parentNode]; - } - dojo.body().appendChild(tdn); - dojo.addClass(tdn,'dijitIEFixedToolbar'); - }else{ - s.position = "fixed"; - s.top = "0px"; - } - - dojo.marginBox(tdn, { w: tdnbox.w }); - s.zIndex = 2000; - this._fixEnabled = true; - } - // if we're showing the floating toolbar, make sure that if - // we've scrolled past the bottom of the editor that we hide - // the toolbar for this instance of the editor. - - // TODO: when we get multiple editor toolbar support working - // correctly, ensure that we check this against the scroll - // position of the bottom-most editor instance. - var eHeight = (this.height) ? parseInt(this.editor.height) : this.editor._lastHeight; - s.display = (scrollPos > this._scrollThreshold+eHeight) ? "none" : ""; - }else if(this._fixEnabled){ - this.editor.iframe.style.marginTop = ''; - s.position = ""; - s.top = ""; - s.zIndex = ""; - s.display = ""; - if(isIE){ - s.left = ""; - dojo.removeClass(tdn,'dijitIEFixedToolbar'); - if(this._IEOriginalPos){ - dojo.place(tdn, this._IEOriginalPos[1], this._IEOriginalPos[0]); - this._IEOriginalPos = null; - }else{ - dojo.place(tdn, this.editor.iframe, 'before'); - } - } - s.width = ""; - this._fixEnabled = false; - } - }, - destroy: function(){ - this._IEOriginalPos = null; - this._handleScroll = false; - dojo.forEach(this._connects, dojo.disconnect); -// clearInterval(this.scrollInterval); - - if(dojo.isIE && dojo.isIE<7){ - dojo.removeClass(this.editor.toolbar.domNode, 'dijitIEFixedToolbar'); - } - } -}); - -} diff --git a/includes/js/dijit/_editor/plugins/EnterKeyHandling.js b/includes/js/dijit/_editor/plugins/EnterKeyHandling.js deleted file mode 100644 index 083743d..0000000 --- a/includes/js/dijit/_editor/plugins/EnterKeyHandling.js +++ /dev/null @@ -1,416 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"] = true; -dojo.provide("dijit._editor.plugins.EnterKeyHandling"); - -dojo.declare("dijit._editor.plugins.EnterKeyHandling", dijit._editor._Plugin, { - // summary: this plugin tries to handle enter key events to make all - // browsers have identical behaviors. - - // blockNodeForEnter: String - // this property decides the behavior of Enter key. It can be either P, - // DIV, BR, or empty (which means disable this feature). Anything else - // will trigger errors. - blockNodeForEnter: 'P', - constructor: function(args){ - if(args){ - dojo.mixin(this,args); - } - }, - setEditor: function(editor){ - this.editor = editor; - if(this.blockNodeForEnter == 'BR'){ - if(dojo.isIE){ - editor.contentDomPreFilters.push(dojo.hitch(this, "regularPsToSingleLinePs")); - editor.contentDomPostFilters.push(dojo.hitch(this, "singleLinePsToRegularPs")); - editor.onLoadDeferred.addCallback(dojo.hitch(this, "_fixNewLineBehaviorForIE")); - }else{ - editor.onLoadDeferred.addCallback(dojo.hitch(this,function(d){ - try{ - this.editor.document.execCommand("insertBrOnReturn", false, true); - }catch(e){} - return d; - })); - } - }else if(this.blockNodeForEnter){ - //add enter key handler - // FIXME: need to port to the new event code!! - dojo['require']('dijit._editor.range'); - var h = dojo.hitch(this,this.handleEnterKey); - editor.addKeyHandler(13, 0, h); //enter - editor.addKeyHandler(13, 2, h); //shift+enter - this.connect(this.editor,'onKeyPressed','onKeyPressed'); - } - }, - connect: function(o,f,tf){ - if(!this._connects){ - this._connects=[]; - } - this._connects.push(dojo.connect(o,f,this,tf)); - }, - destroy: function(){ - dojo.forEach(this._connects,dojo.disconnect); - this._connects=[]; - }, - onKeyPressed: function(e){ - if(this._checkListLater){ - if(dojo.withGlobal(this.editor.window, 'isCollapsed', dijit)){ - if(!dojo.withGlobal(this.editor.window, 'hasAncestorElement', dijit._editor.selection, ['LI'])){ - //circulate the undo detection code by calling RichText::execCommand directly - dijit._editor.RichText.prototype.execCommand.apply(this.editor, ['formatblock',this.blockNodeForEnter]); - //set the innerHTML of the new block node - var block = dojo.withGlobal(this.editor.window, 'getAncestorElement', dijit._editor.selection, [this.blockNodeForEnter]); - if(block){ - block.innerHTML=this.bogusHtmlContent; - if(dojo.isIE){ - //the following won't work, it will move the caret to the last list item in the previous list -// var newrange = dijit.range.create(); -// newrange.setStart(block.firstChild,0); -// var selection = dijit.range.getSelection(this.editor.window) -// selection.removeAllRanges(); -// selection.addRange(newrange); - //move to the start by move backward one char - var r = this.editor.document.selection.createRange(); - r.move('character',-1); - r.select(); - } - }else{ - alert('onKeyPressed: Can not find the new block node'); //FIXME - } - } - } - this._checkListLater = false; - }else if(this._pressedEnterInBlock){ - //the new created is the original current P, so we have previousSibling below - this.removeTrailingBr(this._pressedEnterInBlock.previousSibling); - delete this._pressedEnterInBlock; - } - }, - bogusHtmlContent: ' ', - blockNodes: /^(?:H1|H2|H3|H4|H5|H6|LI)$/, - handleEnterKey: function(e){ - // summary: manually handle enter key event to make the behavior consistant across - // all supported browsers. See property blockNodeForEnter for available options - if(!this.blockNodeForEnter){ return true; } //let browser handle this - var selection, range, newrange; - if(e.shiftKey //shift+enter always generates <br> - || this.blockNodeForEnter=='BR'){ - var parent = dojo.withGlobal(this.editor.window, "getParentElement", dijit._editor.selection); - var header = dijit.range.getAncestor(parent,this.editor.blockNodes); - if(header){ - if(header.tagName=='LI'){ - return true; //let brower handle - } - selection = dijit.range.getSelection(this.editor.window); - range = selection.getRangeAt(0); - if(!range.collapsed){ - range.deleteContents(); - } - if(dijit.range.atBeginningOfContainer(header, range.startContainer, range.startOffset)){ - dojo.place(this.editor.document.createElement('br'), header, "before"); - }else if(dijit.range.atEndOfContainer(header, range.startContainer, range.startOffset)){ - dojo.place(this.editor.document.createElement('br'), header, "after"); - newrange = dijit.range.create(); - newrange.setStartAfter(header); - - selection.removeAllRanges(); - selection.addRange(newrange); - }else{ - return true; //let brower handle - } - }else{ - //don't change this: do not call this.execCommand, as that may have other logic in subclass - // FIXME - dijit._editor.RichText.prototype.execCommand.call(this.editor, 'inserthtml', '<br>'); - } - return false; - } - var _letBrowserHandle = true; - //blockNodeForEnter is either P or DIV - //first remove selection - selection = dijit.range.getSelection(this.editor.window); - range = selection.getRangeAt(0); - if(!range.collapsed){ - range.deleteContents(); - } - - var block = dijit.range.getBlockAncestor(range.endContainer, null, this.editor.editNode); - - if((this._checkListLater = (block.blockNode && block.blockNode.tagName == 'LI'))){ - return true; - } - - //text node directly under body, let's wrap them in a node - if(!block.blockNode){ - this.editor.document.execCommand('formatblock', false, this.blockNodeForEnter); - //get the newly created block node - // FIXME - block = {blockNode:dojo.withGlobal(this.editor.window, "getAncestorElement", dijit._editor.selection, [this.blockNodeForEnter]), - blockContainer: this.editor.editNode}; - if(block.blockNode){ - if(!(block.blockNode.textContent || block.blockNode.innerHTML).replace(/^\s+|\s+$/g, "").length){ - this.removeTrailingBr(block.blockNode); - return false; - } - }else{ - block.blockNode = this.editor.editNode; - } - selection = dijit.range.getSelection(this.editor.window); - range = selection.getRangeAt(0); - } - var newblock = this.editor.document.createElement(this.blockNodeForEnter); - newblock.innerHTML=this.bogusHtmlContent; - this.removeTrailingBr(block.blockNode); - if(dijit.range.atEndOfContainer(block.blockNode, range.endContainer, range.endOffset)){ - if(block.blockNode === block.blockContainer){ - block.blockNode.appendChild(newblock); - }else{ - dojo.place(newblock, block.blockNode, "after"); - } - _letBrowserHandle = false; - //lets move caret to the newly created block - newrange = dijit.range.create(); - newrange.setStart(newblock,0); - selection.removeAllRanges(); - selection.addRange(newrange); - if(this.editor.height){ - newblock.scrollIntoView(false); - } - }else if(dijit.range.atBeginningOfContainer(block.blockNode, - range.startContainer, range.startOffset)){ - dojo.place(newblock, block.blockNode, block.blockNode === block.blockContainer ? "first" : "before"); - if(newblock.nextSibling && this.editor.height){ - //browser does not scroll the caret position into view, do it manually - newblock.nextSibling.scrollIntoView(false); - } - _letBrowserHandle = false; - }else{ //press enter in the middle of P - if(dojo.isMoz){ - //press enter in middle of P may leave a trailing <br/>, let's remove it later - this._pressedEnterInBlock = block.blockNode; - } - } - return _letBrowserHandle; - }, - removeTrailingBr: function(container){ - var para = /P|DIV|LI/i.test(container.tagName) ? - container : dijit._editor.selection.getParentOfType(container,['P','DIV','LI']); - - if(!para){ return; } - if(para.lastChild){ - if((para.childNodes.length > 1 && para.lastChild.nodeType == 3 && /^[\s\xAD]*$/.test(para.lastChild.nodeValue)) || - (para.lastChild && para.lastChild.tagName=='BR')){ - - dojo._destroyElement(para.lastChild); - } - } - if(!para.childNodes.length){ - para.innerHTML=this.bogusHtmlContent; - } - }, - _fixNewLineBehaviorForIE: function(d){ - if(this.editor.document.__INSERTED_EDITIOR_NEWLINE_CSS === undefined){ - var lineFixingStyles = "p{margin:0 !important;}"; - var insertCssText = function( - /*String*/ cssStr, - /*Document*/ doc, - /*String*/ URI) - { - // summary: - // Attempt to insert CSS rules into the document through inserting a - // style element - - // DomNode Style = insertCssText(String ".dojoMenu {color: green;}"[, DomDoc document, dojo.uri.Uri Url ]) - if(!cssStr){ - return null; // HTMLStyleElement - } - if(!doc){ doc = document; } -// if(URI){// fix paths in cssStr -// cssStr = dojo.html.fixPathsInCssText(cssStr, URI); -// } - var style = doc.createElement("style"); - style.setAttribute("type", "text/css"); - // IE is b0rken enough to require that we add the element to the doc - // before changing it's properties - var head = doc.getElementsByTagName("head")[0]; - if(!head){ // must have a head tag - console.debug("No head tag in document, aborting styles"); - return null; // HTMLStyleElement - }else{ - head.appendChild(style); - } - if(style.styleSheet){// IE - var setFunc = function(){ - try{ - style.styleSheet.cssText = cssStr; - }catch(e){ console.debug(e); } - }; - if(style.styleSheet.disabled){ - setTimeout(setFunc, 10); - }else{ - setFunc(); - } - }else{ // w3c - var cssText = doc.createTextNode(cssStr); - style.appendChild(cssText); - } - return style; // HTMLStyleElement - } - insertCssText(lineFixingStyles, this.editor.document); - this.editor.document.__INSERTED_EDITIOR_NEWLINE_CSS = true; - // this.regularPsToSingleLinePs(this.editNode); - return d; - } - return null; - }, - regularPsToSingleLinePs: function(element, noWhiteSpaceInEmptyP){ - function wrapLinesInPs(el){ - // move "lines" of top-level text nodes into ps - function wrapNodes(nodes){ - // nodes are assumed to all be siblings - var newP = nodes[0].ownerDocument.createElement('p'); // FIXME: not very idiomatic - nodes[0].parentNode.insertBefore(newP, nodes[0]); - dojo.forEach(nodes, function(node){ - newP.appendChild(node); - }); - } - - var currentNodeIndex = 0; - var nodesInLine = []; - var currentNode; - while(currentNodeIndex < el.childNodes.length){ - currentNode = el.childNodes[currentNodeIndex]; - if( (currentNode.nodeName!='BR') && - (currentNode.nodeType==1) && - (dojo.style(currentNode, "display")!="block") - ){ - nodesInLine.push(currentNode); - }else{ - // hit line delimiter; process nodesInLine if there are any - var nextCurrentNode = currentNode.nextSibling; - if(nodesInLine.length){ - wrapNodes(nodesInLine); - currentNodeIndex = (currentNodeIndex+1)-nodesInLine.length; - if(currentNode.nodeName=="BR"){ - dojo._destroyElement(currentNode); - } - } - nodesInLine = []; - } - currentNodeIndex++; - } - if(nodesInLine.length){ wrapNodes(nodesInLine); } - } - - function splitP(el){ - // split a paragraph into seperate paragraphs at BRs - var currentNode = null; - var trailingNodes = []; - var lastNodeIndex = el.childNodes.length-1; - for(var i=lastNodeIndex; i>=0; i--){ - currentNode = el.childNodes[i]; - if(currentNode.nodeName=="BR"){ - var newP = currentNode.ownerDocument.createElement('p'); - dojo.place(newP, el, "after"); - if (trailingNodes.length==0 && i != lastNodeIndex) { - newP.innerHTML = " " - } - dojo.forEach(trailingNodes, function(node){ - newP.appendChild(node); - }); - dojo._destroyElement(currentNode); - trailingNodes = []; - }else{ - trailingNodes.unshift(currentNode); - } - } - } - - var pList = []; - var ps = element.getElementsByTagName('p'); - dojo.forEach(ps, function(p){ pList.push(p); }); - dojo.forEach(pList, function(p){ - if( (p.previousSibling) && - (p.previousSibling.nodeName == 'P' || dojo.style(p.previousSibling, 'display') != 'block') - ){ - var newP = p.parentNode.insertBefore(this.document.createElement('p'), p); - // this is essential to prevent IE from losing the P. - // if it's going to be innerHTML'd later we need - // to add the to _really_ force the issue - newP.innerHTML = noWhiteSpaceInEmptyP ? "" : " "; - } - splitP(p); - },this.editor); - wrapLinesInPs(element); - return element; - }, - - singleLinePsToRegularPs: function(element){ - function getParagraphParents(node){ - var ps = node.getElementsByTagName('p'); - var parents = []; - for(var i=0; i<ps.length; i++){ - var p = ps[i]; - var knownParent = false; - for(var k=0; k < parents.length; k++){ - if(parents[k] === p.parentNode){ - knownParent = true; - break; - } - } - if(!knownParent){ - parents.push(p.parentNode); - } - } - return parents; - } - - function isParagraphDelimiter(node){ - if(node.nodeType != 1 || node.tagName != 'P'){ - return dojo.style(node, 'display') == 'block'; - }else{ - if(!node.childNodes.length || node.innerHTML==" "){ return true; } - //return node.innerHTML.match(/^(<br\ ?\/?>| |\ \;)$/i); - } - return false; - } - - var paragraphContainers = getParagraphParents(element); - for(var i=0; i<paragraphContainers.length; i++){ - var container = paragraphContainers[i]; - var firstPInBlock = null; - var node = container.firstChild; - var deleteNode = null; - while(node){ - if(node.nodeType != "1" || node.tagName != 'P'){ - firstPInBlock = null; - }else if (isParagraphDelimiter(node)){ - deleteNode = node; - firstPInBlock = null; - }else{ - if(firstPInBlock == null){ - firstPInBlock = node; - }else{ - if( (!firstPInBlock.lastChild || firstPInBlock.lastChild.nodeName != 'BR') && - (node.firstChild) && - (node.firstChild.nodeName != 'BR') - ){ - firstPInBlock.appendChild(this.editor.document.createElement('br')); - } - while(node.firstChild){ - firstPInBlock.appendChild(node.firstChild); - } - deleteNode = node; - } - } - node = node.nextSibling; - if(deleteNode){ - dojo._destroyElement(deleteNode); - deleteNode = null; - } - } - } - return element; - } -}); - -} diff --git a/includes/js/dijit/_editor/plugins/FontChoice.js b/includes/js/dijit/_editor/plugins/FontChoice.js deleted file mode 100644 index 642237b..0000000 --- a/includes/js/dijit/_editor/plugins/FontChoice.js +++ /dev/null @@ -1,167 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.FontChoice"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.FontChoice"] = true; -dojo.provide("dijit._editor.plugins.FontChoice"); - -dojo.require("dijit._editor._Plugin"); -dojo.require("dijit.form.FilteringSelect"); -dojo.require("dojo.data.ItemFileReadStore"); -dojo.require("dojo.i18n"); - -dojo.requireLocalization("dijit._editor", "FontChoice", null, "zh,pt,da,tr,ru,de,sv,ja,he,ROOT,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,it,hu"); - -dojo.declare("dijit._editor.plugins.FontChoice", - dijit._editor._Plugin, - { - // summary: - // This plugin provides three dropdowns for setting font information in the editor - // - // description: - // The commands provided by this plugin are: - // - // * fontName - // | Provides a dropdown to select from a list of generic font names - // * fontSize - // | Provides a dropdown to select from a list of pre-defined font sizes - // * formatBlock - // | Provides a dropdown to select from a list of styles - // | - // - // which can easily be added to an editor by including one or more of the above commands - // in the `plugins` attribute as follows: - // - // | plugins="['fontName','fontSize',...]" - // - // It is possible to override the default dropdown list by providing an Array for the `custom` property when - // instantiating this plugin, e.g. - // - // | plugins="[{name:'dijit._editor.plugins.FontChoice', command:'fontName', custom:['Verdana','Myriad','Garamond']},...]" - // - // Alternatively, for `fontName` only, `generic:true` may be specified to provide a dropdown with - // [CSS generic font families](http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families) - // - // Note that the editor is often unable to properly handle font styling information defined outside - // the context of the current editor instance, such as pre-populated HTML. - - _uniqueId: 0, - - buttonClass: dijit.form.FilteringSelect, - - _initButton: function(){ - //TODO: would be nice to be able to handle comma-separated font lists and search within them - var cmd = this.command; - var names = this.custom || - { - fontName: this.generic ? ["serif", "sans-serif", "monospace", "cursive", "fantasy"] : // CSS font-family generics - ["Arial", "Times New Roman", "Comic Sans MS", "Courier New"], - fontSize: [1,2,3,4,5,6,7], // sizes according to the old HTML FONT SIZE - formatBlock: ["p", "h1", "h2", "h3", "pre"] - }[cmd]; - var strings = dojo.i18n.getLocalization("dijit._editor", "FontChoice"); - var items = dojo.map(names, function(value){ - var name = strings[value] || value; - var label = name; - switch(cmd){ - case "fontName": - label = "<div style='font-family: "+value+"'>" + name + "</div>"; - break; - case "fontSize": - // we're stuck using the deprecated FONT tag to correspond with the size measurements used by the editor - label = "<font size="+value+"'>"+name+"</font>"; - break; - case "formatBlock": - label = "<" + value + ">" + name + "</" + value + ">"; - } - return { label: label, name: name, value: value }; - }); - items.push({label: "", name:"", value:""}); // FilteringSelect doesn't like unmatched blank strings - - dijit._editor.plugins.FontChoice.superclass._initButton.apply(this, - [{ labelType: "html", labelAttr: "label", searchAttr: "name", store: new dojo.data.ItemFileReadStore( - { data: { identifier: "value", items: items } })}]); - - this.button.setValue(""); - - this.connect(this.button, "onChange", function(choice){ - if(this.updating){ return; } - // FIXME: IE is really messed up here!! - if(dojo.isIE && "_savedSelection" in this){ - var b = this._savedSelection; - delete this._savedSelection; - this.editor.focus(); - this.editor._moveToBookmark(b); - }else{ -// this.editor.focus(); - dijit.focus(this._focusHandle); - } - if(this.command == "fontName" && choice.indexOf(" ") != -1){ choice = "'" + choice + "'"; } - this.editor.execCommand(this.editor._normalizeCommand(this.command), choice); - }); - }, - - updateState: function(){ - this.inherited(arguments); - var _e = this.editor; - var _c = this.command; - if(!_e || !_e.isLoaded || !_c.length){ return; } - if(this.button){ - var value = _e.queryCommandValue(this.editor._normalizeCommand(_c)) || ""; - // strip off single quotes, if any - var quoted = dojo.isString(value) && value.match(/'([^']*)'/); - if(quoted){ value = quoted[1]; } -//console.log("selected " + value); - if(this.generic && _c == "fontName"){ - var map = { - "Arial": "sans-serif", - "Helvetica": "sans-serif", - "Myriad": "sans-serif", - "Times": "serif", - "Times New Roman": "serif", - "Comic Sans MS": "cursive", - "Apple Chancery": "cursive", - "Courier": "monospace", - "Courier New": "monospace", - "Papyrus": "fantasy" -// ,"????": "fantasy" TODO: IE doesn't map fantasy font-family? - }; -//console.log("mapped to " + map[value]); - value = map[value] || value; - }else if(_c == "fontSize" && value.indexOf && value.indexOf("px") != -1){ - var pixels = parseInt(value); - value = {10:1, 13:2, 16:3, 18:4, 24:5, 32:6, 48:7}[pixels] || value; - } - this.updating = true; - this.button.setValue(value); - delete this.updating; - } - - // FIXME: IE is *really* b0rken - if(dojo.isIE){ - this._savedSelection = this.editor._getBookmark(); - } - this._focusHandle = dijit.getFocus(this.editor.iframe); - }, - - setToolbar: function(){ - this.inherited(arguments); - - var forRef = this.button; - if(!forRef.id){ forRef.id = dijit._scopeName+"EditorButton-"+this.command+(this._uniqueId++); } //TODO: is this necessary? FilteringSelects always seem to have an id? - var label = dojo.doc.createElement("label"); - dojo.addClass(label, "dijit dijitReset dijitLeft dijitInline"); - label.setAttribute("for", forRef.id); - var strings = dojo.i18n.getLocalization("dijit._editor", "FontChoice"); - label.appendChild(dojo.doc.createTextNode(strings[this.command])); - dojo.place(label, this.button.domNode, "before"); - } - } -); - -dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ - if(o.plugin){ return; } - switch(o.args.name){ - case "fontName": case "fontSize": case "formatBlock": - o.plugin = new dijit._editor.plugins.FontChoice({command: o.args.name}); - } -}); - -} diff --git a/includes/js/dijit/_editor/plugins/LinkDialog.js b/includes/js/dijit/_editor/plugins/LinkDialog.js deleted file mode 100644 index 9015058..0000000 --- a/includes/js/dijit/_editor/plugins/LinkDialog.js +++ /dev/null @@ -1,147 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.LinkDialog"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.LinkDialog"] = true; -dojo.provide("dijit._editor.plugins.LinkDialog"); - -dojo.require("dijit._Widget"); -dojo.require("dijit._Templated"); -dojo.require("dijit._editor._Plugin"); -dojo.require("dijit.Dialog"); -dojo.require("dijit.form.Button"); -dojo.require("dijit.form.ValidationTextBox"); -dojo.require("dojo.i18n"); -dojo.require("dojo.string"); -dojo.requireLocalization("dijit._editor", "LinkDialog", null, "zh,pt,da,tr,ru,de,ROOT,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,it,hu"); - -dojo.declare("dijit._editor.plugins.LinkDialog", - dijit._editor._Plugin, - { - // summary: - // This plugin provides dialogs for inserting links and images into the editor - // - // description: - // The commands provided by this plugin are: - // * createLink - // * insertImage - - buttonClass: dijit.form.DropDownButton, - useDefaultCommand: false, - urlRegExp: "((https?|ftps?)\\://|)(([0-9a-zA-Z]([-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?\\.)+(arpa|aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|xxx|jobs|mobi|post|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|eu|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sk|sl|sm|sn|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:(0|[1-9]\\d*))?(/([^?#\\s/]+/)*)?([^?#\\s/]+(\\?[^?#\\s/]*)?(#[A-Za-z][\\w.:-]*)?)?", - linkDialogTemplate: [ - "<table><tr><td>", - "<label for='${id}_urlInput'>${url}</label>", - "</td><td>", - "<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' required='true' id='${id}_urlInput' name='urlInput'>", - "</td></tr><tr><td>", - "<label for='${id}_textInput'>${text}</label>", - "</td><td>", - "<input dojoType='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' name='textInput'>", - "</td></tr><tr><td colspan='2'>", - "<button dojoType='dijit.form.Button' type='submit'>${set}</button>", - "</td></tr></table>" - ].join(""), - - _initButton: function(){ - var _this = this; - this.tag = this.command == 'insertImage' ? 'img' : 'a'; - var messages = dojo.i18n.getLocalization("dijit._editor", "LinkDialog", this.lang); - var dropDown = (this.dropDown = new dijit.TooltipDialog({ - title: messages[this.command + "Title"], - execute: dojo.hitch(this, "setValue"), - onOpen: function(){ - _this._onOpenDialog(); - dijit.TooltipDialog.prototype.onOpen.apply(this, arguments); - }, - onCancel: function(){ - setTimeout(dojo.hitch(_this, "_onCloseDialog"),0); - }, - onClose: dojo.hitch(this, "_onCloseDialog") - })); - messages.urlRegExp = this.urlRegExp; - messages.id = dijit.getUniqueId(this.editor.id); - this._setContent(dropDown.title + "<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>" + dojo.string.substitute(this.linkDialogTemplate, messages)); - dropDown.startup(); - - this.inherited(arguments); - }, - - _setContent: function(staticPanel){ - this.dropDown.setContent(staticPanel); - }, - - setValue: function(args){ - // summary: callback from the dialog when user hits "set" button - //TODO: prevent closing popup if the text is empty - this._onCloseDialog(); - if(dojo.isIE){ //see #4151 - var a = dojo.withGlobal(this.editor.window, "getAncestorElement", dijit._editor.selection, [this.tag]); - if(a){ - dojo.withGlobal(this.editor.window, "selectElement", dijit._editor.selection, [a]); - } - } - args.tag = this.tag; - args.refAttr = this.tag == 'img' ? 'src' : 'href'; - //TODO: textInput should be formatted by escapeXml - var template = "<${tag} ${refAttr}='${urlInput}' _djrealurl='${urlInput}'" + - (args.tag == 'img' ? " alt='${textInput}'>" : ">${textInput}") + - "</${tag}>"; - this.editor.execCommand('inserthtml', dojo.string.substitute(template, args)); - }, - - _onCloseDialog: function(){ - // FIXME: IE is really messed up here!! - if(dojo.isIE){ - if("_savedSelection" in this){ - var b = this._savedSelection; - delete this._savedSelection; - this.editor.focus(); - this.editor._moveToBookmark(b); - } - }else{ - this.editor.focus(); - } - }, - - _onOpenDialog: function(){ - var a = dojo.withGlobal(this.editor.window, "getAncestorElement", dijit._editor.selection, [this.tag]); - var url, text; - if(a){ - url = a.getAttribute('_djrealurl'); - text = this.tag == 'img' ? a.getAttribute('alt') : a.textContent || a.innerText; - dojo.withGlobal(this.editor.window, "selectElement", dijit._editor.selection, [a, true]); - }else{ - text = dojo.withGlobal(this.editor.window, dijit._editor.selection.getSelectedText); - } - // FIXME: IE is *really* b0rken - if(dojo.isIE){ - this._savedSelection = this.editor._getBookmark(); - } - this.dropDown.reset(); - this.dropDown.setValues({urlInput: url || '', textInput: text || ''}); - //dijit.focus(this.urlInput); - }/*, - -//TODO we don't show this state anymore - updateState: function(){ - // summary: change shading on button if we are over a link (or not) - - var _e = this.editor; - if(!_e || !_e.isLoaded){ return; } - if(this.button){ - // display button differently if there is an existing link associated with the current selection - var hasA = dojo.withGlobal(this.editor.window, "hasAncestorElement", dijit._editor.selection, [this.tag]); - this.button.setAttribute('checked', hasA); - } - } -*/ - } -); - -dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ - if(o.plugin){ return; } - switch(o.args.name){ - case "createLink": case "insertImage": - o.plugin = new dijit._editor.plugins.LinkDialog({command: o.args.name}); - } -}); - -} diff --git a/includes/js/dijit/_editor/plugins/TextColor.js b/includes/js/dijit/_editor/plugins/TextColor.js deleted file mode 100644 index fef3911..0000000 --- a/includes/js/dijit/_editor/plugins/TextColor.js +++ /dev/null @@ -1,40 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.TextColor"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.TextColor"] = true; -dojo.provide("dijit._editor.plugins.TextColor"); - -dojo.require("dijit._editor._Plugin"); -dojo.require("dijit.ColorPalette"); - -dojo.declare("dijit._editor.plugins.TextColor", - dijit._editor._Plugin, - { - // summary: - // This plugin provides dropdown color pickers for setting text color and background color - // - // description: - // The commands provided by this plugin are: - // * foreColor - sets the text color - // * hiliteColor - sets the background color - - buttonClass: dijit.form.DropDownButton, - -//TODO: set initial focus/selection state? - - constructor: function(){ - this.dropDown = new dijit.ColorPalette(); - this.connect(this.dropDown, "onChange", function(color){ - this.editor.execCommand(this.command, color); - }); - } - } -); - -dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ - if(o.plugin){ return; } - switch(o.args.name){ - case "foreColor": case "hiliteColor": - o.plugin = new dijit._editor.plugins.TextColor({command: o.args.name}); - } -}); - -} diff --git a/includes/js/dijit/_editor/plugins/ToggleDir.js b/includes/js/dijit/_editor/plugins/ToggleDir.js deleted file mode 100644 index 7aaae70..0000000 --- a/includes/js/dijit/_editor/plugins/ToggleDir.js +++ /dev/null @@ -1,40 +0,0 @@ -if(!dojo._hasResource["dijit._editor.plugins.ToggleDir"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.plugins.ToggleDir"] = true; -dojo.provide("dijit._editor.plugins.ToggleDir"); -dojo.experimental("dijit._editor.plugins.ToggleDir"); - -dojo.require("dijit._editor._Plugin"); - -dojo.declare("dijit._editor.plugins.ToggleDir", - dijit._editor._Plugin, - { - //summary: This plugin is used to toggle direction of the edited document only, - // no matter what direction the whole page is. - - useDefaultCommand: false, - command: "toggleDir", - - _initButton: function(){ - this.inherited("_initButton", arguments); - this.connect(this.button, "onClick", this._toggleDir); - }, - - updateState: function(){},//overwrite - - _toggleDir: function(){ - var editDoc = this.editor.editorObject.contentWindow.document.documentElement; - var isLtr = dojo.getComputedStyle(editDoc).direction == "ltr"; - editDoc.dir/*html node*/ = isLtr ? "rtl" : "ltr"; - } - } -); - -dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ - if(o.plugin){ return; } - switch(o.args.name){ - case "toggleDir": - o.plugin = new dijit._editor.plugins.ToggleDir({command: o.args.name}); - } -}); - -} diff --git a/includes/js/dijit/_editor/range.js b/includes/js/dijit/_editor/range.js deleted file mode 100644 index cd84b60..0000000 --- a/includes/js/dijit/_editor/range.js +++ /dev/null @@ -1,570 +0,0 @@ -if(!dojo._hasResource["dijit._editor.range"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.range"] = true; -dojo.provide("dijit._editor.range"); - -dijit.range={}; - -dijit.range.getIndex=function(/*DomNode*/node, /*DomNode*/parent){ -// dojo.profile.start("dijit.range.getIndex"); - var ret=[], retR=[]; - var stop = parent; - var onode = node; - - var pnode, n; - while(node != stop){ - var i = 0; - pnode = node.parentNode; - while((n=pnode.childNodes[i++])){ - if(n===node){ - --i; - break; - } - } - if(i>=pnode.childNodes.length){ - dojo.debug("Error finding index of a node in dijit.range.getIndex"); - } - ret.unshift(i); - retR.unshift(i-pnode.childNodes.length); - node = pnode; - } - - //normalized() can not be called so often to prevent - //invalidating selection/range, so we have to detect - //here that any text nodes in a row - if(ret.length>0 && onode.nodeType==3){ - n = onode.previousSibling; - while(n && n.nodeType==3){ - ret[ret.length-1]--; - n = n.previousSibling; - } - n = onode.nextSibling; - while(n && n.nodeType==3){ - retR[retR.length-1]++; - n = n.nextSibling; - } - } -// dojo.profile.end("dijit.range.getIndex"); - return {o: ret, r:retR}; -} - -dijit.range.getNode = function(/*Array*/index, /*DomNode*/parent){ - if(!dojo.isArray(index) || index.length==0){ - return parent; - } - var node = parent; -// if(!node)debugger - dojo.every(index, function(i){ - if(i>=0&&i< node.childNodes.length){ - node = node.childNodes[i]; - }else{ - node = null; - console.debug('Error: can not find node with index',index,'under parent node',parent ); - return false; //terminate dojo.every - } - return true; //carry on the every loop - }); - - return node; -} - -dijit.range.getCommonAncestor = function(n1,n2,root){ - var getAncestors = function(n,root){ - var as=[]; - while(n){ - as.unshift(n); - if(n!=root && n.tagName!='BODY'){ - n = n.parentNode; - }else{ - break; - } - } - return as; - }; - var n1as = getAncestors(n1,root); - var n2as = getAncestors(n2,root); - - var m = Math.min(n1as.length,n2as.length); - var com = n1as[0]; //at least, one element should be in the array: the root (BODY by default) - for(var i=1;i<m;i++){ - if(n1as[i]===n2as[i]){ - com = n1as[i] - }else{ - break; - } - } - return com; -} - -dijit.range.getAncestor = function(/*DomNode*/node, /*RegEx?*/regex, /*DomNode?*/root){ - root = root || node.ownerDocument.body; - while(node && node !== root){ - var name = node.nodeName.toUpperCase() ; - if(regex.test(name)){ - return node; - } - - node = node.parentNode; - } - return null; -} - -dijit.range.BlockTagNames = /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/; -dijit.range.getBlockAncestor = function(/*DomNode*/node, /*RegEx?*/regex, /*DomNode?*/root){ - root = root || node.ownerDocument.body; - regex = regex || dijit.range.BlockTagNames; - var block=null, blockContainer; - while(node && node !== root){ - var name = node.nodeName.toUpperCase() ; - if(!block && regex.test(name)){ - block = node; - } - if(!blockContainer && (/^(?:BODY|TD|TH|CAPTION)$/).test(name)){ - blockContainer = node; - } - - node = node.parentNode; - } - return {blockNode:block, blockContainer:blockContainer || node.ownerDocument.body}; -} - -dijit.range.atBeginningOfContainer = function(/*DomNode*/container, /*DomNode*/node, /*Int*/offset){ - var atBeginning = false; - var offsetAtBeginning = (offset == 0); - if(!offsetAtBeginning && node.nodeType==3){ //if this is a text node, check whether the left part is all space - if(dojo.trim(node.nodeValue.substr(0,offset))==0){ - offsetAtBeginning = true; - } - } - if(offsetAtBeginning){ - var cnode = node; - atBeginning = true; - while(cnode && cnode !== container){ - if(cnode.previousSibling){ - atBeginning = false; - break; - } - cnode = cnode.parentNode; - } - } - return atBeginning; -} - -dijit.range.atEndOfContainer = function(/*DomNode*/container, /*DomNode*/node, /*Int*/offset){ - var atEnd = false; - var offsetAtEnd = (offset == (node.length || node.childNodes.length)); - if(!offsetAtEnd && node.nodeType==3){ //if this is a text node, check whether the right part is all space - if(dojo.trim(node.nodeValue.substr(offset))==0){ - offsetAtEnd = true; - } - } - if(offsetAtEnd){ - var cnode = node; - atEnd = true; - while(cnode && cnode !== container){ - if(cnode.nextSibling){ - atEnd = false; - break; - } - cnode = cnode.parentNode; - } - } - return atEnd; -} - -dijit.range.adjacentNoneTextNode=function(startnode, next){ - var node = startnode; - var len = (0-startnode.length) || 0; - var prop = next?'nextSibling':'previousSibling'; - while(node){ - if(node.nodeType!=3){ - break; - } - len += node.length - node = node[prop]; - } - return [node,len]; -} - -dijit.range._w3c = Boolean(window['getSelection']); -dijit.range.create = function(){ - if(dijit.range._w3c){ - return dojo.doc.createRange(); - }else{//IE - return new dijit.range.W3CRange; - } -} - -dijit.range.getSelection = function(win, /*Boolean?*/ignoreUpdate){ - if(dijit.range._w3c){ - return win.getSelection(); - }else{//IE - var id=win.__W3CRange,s; - if(!id || !dijit.range.ie.cachedSelection[id]){ - s = new dijit.range.ie.selection(win); - //use win as the key in an object is not reliable, which - //can leads to quite odd behaviors. thus we generate a - //string and use it as a key in the cache - id=(new Date).getTime(); - while(id in dijit.range.ie.cachedSelection){ - id=id+1; - } - id=String(id); - dijit.range.ie.cachedSelection[id] = s; - }else{ - s = dijit.range.ie.cachedSelection[id]; - } - if(!ignoreUpdate){ - s._getCurrentSelection(); - } - return s; - } -} - -if(!dijit.range._w3c){ - dijit.range.ie={ - cachedSelection: {}, - selection: function(win){ - this._ranges = []; - this.addRange = function(r, /*boolean*/internal){ - this._ranges.push(r); - if(!internal){ - r._select(); - } - this.rangeCount = this._ranges.length; - }; - this.removeAllRanges = function(){ - //don't detach, the range may be used later -// for(var i=0;i<this._ranges.length;i++){ -// this._ranges[i].detach(); -// } - this._ranges = []; - this.rangeCount = 0; - }; - var _initCurrentRange = function(){ - var r = win.document.selection.createRange(); - var type=win.document.selection.type.toUpperCase(); - if(type == "CONTROL"){ - //TODO: multiple range selection(?) - return new dijit.range.W3CRange(dijit.range.ie.decomposeControlRange(r)); - }else{ - return new dijit.range.W3CRange(dijit.range.ie.decomposeTextRange(r)); - } - }; - this.getRangeAt = function(i){ - return this._ranges[i]; - }; - this._getCurrentSelection = function(){ - this.removeAllRanges(); - var r=_initCurrentRange(); - if(r){ - this.addRange(r, true); - } - }; - }, - decomposeControlRange: function(range){ - var firstnode = range.item(0), lastnode = range.item(range.length-1) - var startContainer = firstnode.parentNode, endContainer = lastnode.parentNode; - var startOffset = dijit.range.getIndex(firstnode, startContainer).o; - var endOffset = dijit.range.getIndex(lastnode, endContainer).o+1; - return [[startContainer, startOffset],[endContainer, endOffset]]; - }, - getEndPoint: function(range, end){ - var atmrange = range.duplicate(); - atmrange.collapse(!end); - var cmpstr = 'EndTo' + (end?'End':'Start'); - var parentNode = atmrange.parentElement(); - - var startnode, startOffset, lastNode; - if(parentNode.childNodes.length>0){ - dojo.every(parentNode.childNodes, function(node,i){ - var calOffset; - if(node.nodeType != 3){ - atmrange.moveToElementText(node); - - if(atmrange.compareEndPoints(cmpstr,range) > 0){ - startnode = node.previousSibling; - if(lastNode && lastNode.nodeType == 3){ - //where share we put the start? in the text node or after? - startnode = lastNode; - calOffset = true; - }else{ - startnode = parentNode; - startOffset = i; - return false; - } - }else{ - if(i==parentNode.childNodes.length-1){ - startnode = parentNode; - startOffset = parentNode.childNodes.length; - return false; - } - } - }else{ - if(i==parentNode.childNodes.length-1){//at the end of this node - startnode = node; - calOffset = true; - } - } - // try{ - if(calOffset && startnode){ - var prevnode = dijit.range.adjacentNoneTextNode(startnode)[0]; - if(prevnode){ - startnode = prevnode.nextSibling; - }else{ - startnode = parentNode.firstChild; //firstChild must be a text node - } - var prevnodeobj = dijit.range.adjacentNoneTextNode(startnode); - prevnode = prevnodeobj[0]; - var lenoffset = prevnodeobj[1]; - if(prevnode){ - atmrange.moveToElementText(prevnode); - atmrange.collapse(false); - }else{ - atmrange.moveToElementText(parentNode); - } - atmrange.setEndPoint(cmpstr, range); - startOffset = atmrange.text.length-lenoffset; - - return false; - } - // }catch(e){ debugger } - lastNode = node; - return true; - }); - }else{ - startnode = parentNode; - startOffset = 0; - } - - //if at the end of startnode and we are dealing with start container, then - //move the startnode to nextSibling if it is a text node - //TODO: do this for end container? - if(!end && startnode.nodeType!=3 && startOffset == startnode.childNodes.length){ - if(startnode.nextSibling && startnode.nextSibling.nodeType==3){ - startnode = startnode.nextSibling; - startOffset = 0; - } - } - return [startnode, startOffset]; - }, - setEndPoint: function(range, container, offset){ - //text node - var atmrange = range.duplicate(), node, len; - if(container.nodeType!=3){ //normal node - atmrange.moveToElementText(container); - atmrange.collapse(true); - if(offset == container.childNodes.length){ - if(offset > 0){ - //a simple atmrange.collapse(false); won't work here: - //although moveToElementText(node) is supposed to encompass the content of the node, - //but when collapse to end, it is in fact after the ending tag of node (collapse to start - //is after the begining tag of node as expected) - node = container.lastChild; - len = 0; - while(node && node.nodeType == 3){ - len += node.length; - container = node; //pass through - node = node.previousSibling; - } - if(node){ - atmrange.moveToElementText(node); - } - atmrange.collapse(false); - offset = len; //pass through - }else{ //no childNodes - atmrange.moveToElementText(container); - atmrange.collapse(true); - } - }else{ - if(offset > 0){ - node = container.childNodes[offset-1]; - if(node.nodeType==3){ - container = node; - offset = node.length; - //pass through - }else{ - atmrange.moveToElementText(node); - atmrange.collapse(false); - } - } - } - } - if(container.nodeType==3){ - var prevnodeobj = dijit.range.adjacentNoneTextNode(container); - var prevnode = prevnodeobj[0]; - len = prevnodeobj[1]; - if(prevnode){ - atmrange.moveToElementText(prevnode); - atmrange.collapse(false); - //if contentEditable is not inherit, the above collapse won't make the end point - //in the correctly position: it always has a -1 offset, so compensate it - if(prevnode.contentEditable!='inherit'){ - len++; - } - }else{ - atmrange.moveToElementText(container.parentNode); - atmrange.collapse(true); - } - - offset += len; - if(offset>0){ - if(atmrange.moveEnd('character',offset) != offset){ - alert('Error when moving!'); - } - atmrange.collapse(false); - } - } - - return atmrange; - }, - decomposeTextRange: function(range){ - var tmpary = dijit.range.ie.getEndPoint(range); - var startContainter = tmpary[0], startOffset = tmpary[1]; - var endContainter = tmpary[0], endOffset = tmpary[1]; - - if(range.htmlText.length){ - if(range.htmlText == range.text){ //in the same text node - endOffset = startOffset+range.text.length; - }else{ - tmpary = dijit.range.ie.getEndPoint(range,true); - endContainter = tmpary[0], endOffset = tmpary[1]; - } - } - return [[startContainter, startOffset],[endContainter, endOffset], range.parentElement()]; - }, - setRange: function(range, startContainter, - startOffset, endContainter, endOffset, check){ - var startrange = dijit.range.ie.setEndPoint(range, startContainter, startOffset); - range.setEndPoint('StartToStart', startrange); - if(!this.collapsed){ - var endrange = dijit.range.ie.setEndPoint(range, endContainter, endOffset); - range.setEndPoint('EndToEnd', endrange); - } - - return range; - } - } - -dojo.declare("dijit.range.W3CRange",null, { - constructor: function(){ - if(arguments.length>0){ - this.setStart(arguments[0][0][0],arguments[0][0][1]); - this.setEnd(arguments[0][1][0],arguments[0][1][1],arguments[0][2]); - }else{ - this.commonAncestorContainer = null; - this.startContainer = null; - this.startOffset = 0; - this.endContainer = null; - this.endOffset = 0; - this.collapsed = true; - } - }, - _simpleSetEndPoint: function(node, range, end){ - var r = (this._body||node.ownerDocument.body).createTextRange(); - if(node.nodeType!=1){ - r.moveToElementText(node.parentNode); - }else{ - r.moveToElementText(node); - } - r.collapse(true); - range.setEndPoint(end?'EndToEnd':'StartToStart',r); - }, - _updateInternal: function(__internal_common){ - if(this.startContainer !== this.endContainer){ - if(!__internal_common){ - var r = (this._body||this.startContainer.ownerDocument.body).createTextRange(); - this._simpleSetEndPoint(this.startContainer,r); - this._simpleSetEndPoint(this.endContainer,r,true); - __internal_common = r.parentElement(); - } - this.commonAncestorContainer = dijit.range.getCommonAncestor(this.startContainer, this.endContainer, __internal_common); - }else{ - this.commonAncestorContainer = this.startContainer; - } - this.collapsed = (this.startContainer === this.endContainer) && (this.startOffset == this.endOffset); - }, - setStart: function(node, offset, __internal_common){ - offset=parseInt(offset); - if(this.startContainer === node && this.startOffset == offset){ - return; - } - delete this._cachedBookmark; - - this.startContainer = node; - this.startOffset = offset; - if(!this.endContainer){ - this.setEnd(node, offset, __internal_common); - }else{ - this._updateInternal(__internal_common); - } - }, - setEnd: function(node, offset, __internal_common){ - offset=parseInt(offset); - if(this.endContainer === node && this.endOffset == offset){ - return; - } - delete this._cachedBookmark; - - this.endContainer = node; - this.endOffset = offset; - if(!this.startContainer){ - this.setStart(node, offset, __internal_common); - }else{ - this._updateInternal(__internal_common); - } - }, - setStartAfter: function(node, offset){ - this._setPoint('setStart', node, offset, 1); - }, - setStartBefore: function(node, offset){ - this._setPoint('setStart', node, offset, 0); - }, - setEndAfter: function(node, offset){ - this._setPoint('setEnd', node, offset, 1); - }, - setEndBefore: function(node, offset){ - this._setPoint('setEnd', node, offset, 0); - }, - _setPoint: function(what, node, offset, ext){ - var index = dijit.range.getIndex(node, node.parentNode).o; - this[what](node.parentNode, index.pop()+ext); - }, - _getIERange: function(){ - var r=(this._body||this.endContainer.ownerDocument.body).createTextRange(); - dijit.range.ie.setRange(r, this.startContainer, this.startOffset, this.endContainer, this.endOffset); - return r; - }, - getBookmark: function(body){ - this._getIERange(); - return this._cachedBookmark; - }, - _select: function(){ - var r = this._getIERange(); - r.select(); - }, - deleteContents: function(){ - var r = this._getIERange(); - r.pasteHTML(''); - this.endContainer = this.startContainer; - this.endOffset = this.startOffset; - this.collapsed = true; - }, - cloneRange: function(){ - var r = new dijit.range.W3CRange([[this.startContainer,this.startOffset], - [this.endContainer,this.endOffset]]); - r._body = this._body; - return r; - }, - detach: function(){ - this._body = null; - this.commonAncestorContainer = null; - this.startContainer = null; - this.startOffset = 0; - this.endContainer = null; - this.endOffset = 0; - this.collapsed = true; -} -}); -} //if(!dijit.range._w3c) - -} diff --git a/includes/js/dijit/_editor/selection.js b/includes/js/dijit/_editor/selection.js deleted file mode 100644 index 9b403aa..0000000 --- a/includes/js/dijit/_editor/selection.js +++ /dev/null @@ -1,246 +0,0 @@ -if(!dojo._hasResource["dijit._editor.selection"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit._editor.selection"] = true; -dojo.provide("dijit._editor.selection"); - -// FIXME: -// all of these methods branch internally for IE. This is probably -// sub-optimal in terms of runtime performance. We should investigate the -// size difference for differentiating at definition time. - -dojo.mixin(dijit._editor.selection, { - getType: function(){ - // summary: Get the selection type (like dojo.doc.select.type in IE). - if(dojo.doc.selection){ //IE - return dojo.doc.selection.type.toLowerCase(); - }else{ - var stype = "text"; - - // Check if the actual selection is a CONTROL (IMG, TABLE, HR, etc...). - var oSel; - try{ - oSel = dojo.global.getSelection(); - }catch(e){ /*squelch*/ } - - if(oSel && oSel.rangeCount==1){ - var oRange = oSel.getRangeAt(0); - if( (oRange.startContainer == oRange.endContainer) && - ((oRange.endOffset - oRange.startOffset) == 1) && - (oRange.startContainer.nodeType != 3 /* text node*/) - ){ - stype = "control"; - } - } - return stype; - } - }, - - getSelectedText: function(){ - // summary: - // Return the text (no html tags) included in the current selection or null if no text is selected - if(dojo.doc.selection){ //IE - if(dijit._editor.selection.getType() == 'control'){ - return null; - } - return dojo.doc.selection.createRange().text; - }else{ - var selection = dojo.global.getSelection(); - if(selection){ - return selection.toString(); - } - } - return '' - }, - - getSelectedHtml: function(){ - // summary: - // Return the html of the current selection or null if unavailable - if(dojo.doc.selection){ //IE - if(dijit._editor.selection.getType() == 'control'){ - return null; - } - return dojo.doc.selection.createRange().htmlText; - }else{ - var selection = dojo.global.getSelection(); - if(selection && selection.rangeCount){ - var frag = selection.getRangeAt(0).cloneContents(); - var div = dojo.doc.createElement("div"); - div.appendChild(frag); - return div.innerHTML; - } - return null; - } - }, - - getSelectedElement: function(){ - // summary: - // Retrieves the selected element (if any), just in the case that - // a single element (object like and image or a table) is - // selected. - if(this.getType() == "control"){ - if(dojo.doc.selection){ //IE - var range = dojo.doc.selection.createRange(); - if(range && range.item){ - return dojo.doc.selection.createRange().item(0); - } - }else{ - var selection = dojo.global.getSelection(); - return selection.anchorNode.childNodes[ selection.anchorOffset ]; - } - } - return null; - }, - - getParentElement: function(){ - // summary: - // Get the parent element of the current selection - if(this.getType() == "control"){ - var p = this.getSelectedElement(); - if(p){ return p.parentNode; } - }else{ - if(dojo.doc.selection){ //IE - return dojo.doc.selection.createRange().parentElement(); - }else{ - var selection = dojo.global.getSelection(); - if(selection){ - var node = selection.anchorNode; - - while(node && (node.nodeType != 1)){ // not an element - node = node.parentNode; - } - - return node; - } - } - } - return null; - }, - - hasAncestorElement: function(/*String*/tagName /* ... */){ - // summary: - // Check whether current selection has a parent element which is - // of type tagName (or one of the other specified tagName) - return this.getAncestorElement.apply(this, arguments) != null; - }, - - getAncestorElement: function(/*String*/tagName /* ... */){ - // summary: - // Return the parent element of the current selection which is of - // type tagName (or one of the other specified tagName) - - var node = this.getSelectedElement() || this.getParentElement(); - return this.getParentOfType(node, arguments); - }, - - isTag: function(/*DomNode*/node, /*Array*/tags){ - if(node && node.tagName){ - var _nlc = node.tagName.toLowerCase(); - for(var i=0; i<tags.length; i++){ - var _tlc = String(tags[i]).toLowerCase(); - if(_nlc == _tlc){ - return _tlc; - } - } - } - return ""; - }, - - getParentOfType: function(/*DomNode*/node, /*Array*/tags){ - while(node){ - if(this.isTag(node, tags).length){ - return node; - } - node = node.parentNode; - } - return null; - }, - - collapse: function(/*Boolean*/beginning) { - // summary: clear current selection - if(window['getSelection']){ - var selection = dojo.global.getSelection(); - if(selection.removeAllRanges){ // Mozilla - if(beginning){ - selection.collapseToStart(); - }else{ - selection.collapseToEnd(); - } - }else{ // Safari - // pulled from WebCore/ecma/kjs_window.cpp, line 2536 - selection.collapse(beginning); - } - }else if(dojo.doc.selection){ // IE - var range = dojo.doc.selection.createRange(); - range.collapse(beginning); - range.select(); - } - }, - - remove: function(){ - // summary: delete current selection - var _s = dojo.doc.selection; - if(_s){ //IE - if(_s.type.toLowerCase() != "none"){ - _s.clear(); - } - return _s; - }else{ - _s = dojo.global.getSelection(); - _s.deleteFromDocument(); - return _s; - } - }, - - selectElementChildren: function(/*DomNode*/element,/*Boolean?*/nochangefocus){ - // summary: - // clear previous selection and select the content of the node - // (excluding the node itself) - var _window = dojo.global; - var _document = dojo.doc; - element = dojo.byId(element); - if(_document.selection && dojo.body().createTextRange){ // IE - var range = element.ownerDocument.body.createTextRange(); - range.moveToElementText(element); - if(!nochangefocus){ - try{ - range.select(); // IE throws an exception here if the widget is hidden. See #5439 - }catch(e){ /* squelch */} - } - }else if(_window.getSelection){ - var selection = _window.getSelection(); - if(selection.setBaseAndExtent){ // Safari - selection.setBaseAndExtent(element, 0, element, element.innerText.length - 1); - }else if(selection.selectAllChildren){ // Mozilla - selection.selectAllChildren(element); - } - } - }, - - selectElement: function(/*DomNode*/element,/*Boolean?*/nochangefocus){ - // summary: - // clear previous selection and select element (including all its children) - var range, _document = dojo.doc; - element = dojo.byId(element); - if(_document.selection && dojo.body().createTextRange){ // IE - try{ - range = dojo.body().createControlRange(); - range.addElement(element); - if(!nochangefocus){ - range.select(); - } - }catch(e){ - this.selectElementChildren(element,nochangefocus); - } - }else if(dojo.global.getSelection){ - var selection = dojo.global.getSelection(); - // FIXME: does this work on Safari? - if(selection.removeAllRanges){ // Mozilla - range = _document.createRange(); - range.selectNode(element); - selection.removeAllRanges(); - selection.addRange(range); - } - } - } -}); - -} |