editor 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.rdoc +27 -0
- data/Rakefile +1 -0
- data/app/assets/javascripts/.DS_Store +0 -0
- data/app/assets/javascripts/ace/.DS_Store +0 -0
- data/app/assets/javascripts/ace/ace-uncompressed.js +14206 -0
- data/app/assets/javascripts/ace/mode-html.js +1 -0
- data/app/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
- data/app/assets/javascripts/editor.js.erb +234 -0
- data/app/assets/stylesheets/editor.css.erb +22 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/.DS_Store +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/content.css +48 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/butt2.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/button-bg.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/buttons.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/down_arrow.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/fade-butt.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/icons.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/items.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/menu-arrow.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/menu-check.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/progress.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/tabs.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/img/toolbarbg.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -0
- data/editor.gemspec +25 -0
- data/lib/editor.rb +12 -0
- data/lib/editor/engine.rb +4 -0
- data/lib/editor/version.rb +3 -0
- data/lib/generators/editor/install/USAGE +8 -0
- data/lib/generators/editor/install/install_generator.rb +51 -0
- data/lib/generators/editor/install/templates/editor.rb +7 -0
- data/script/rails +8 -0
- metadata +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("./javascript").Mode,g=a("./css").Mode,h=a("../tokenizer").Tokenizer,i=a("./html_highlight_rules").HtmlHighlightRules,j=a("./behaviour/xml").XmlBehaviour,k=a("./folding/html").FoldMode,l=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g}),this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(l.prototype),b.Mode=l}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d<b.data.length;d++){var e=b.data[d];e&&c.push({row:e.line-1,column:e.character-1,text:e.reason,type:"warning",lint:e})}a.setAnnotations(c)}),b.on("narcissus",function(b){a.setAnnotations([b.data])}),b.on("terminate",function(){a.clearAnnotations()}),b}}.call(m.prototype),b.Mode=m}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/unicode","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("../unicode"),g=a("./doc_comment_highlight_rules").DocCommentHighlightRules,h=a("./text_highlight_rules").TextHighlightRules,i=function(){var a=e.arrayToMap("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document".split("|")),b=e.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|const|yield|import|get|set".split("|")),c="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield",d=e.arrayToMap("__parent__|__count__|escape|unescape|with|__proto__".split("|")),h=e.arrayToMap("const|let|var|function".split("|")),i=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),j=e.arrayToMap("class|enum|extends|super|export|implements|private|public|interface|package|protected|static".split("|")),k="["+f.packages.L+"\\$_]["+f.packages.L+f.packages.Mn+f.packages.Mc+f.packages.Nd+f.packages.Pc+"\\$_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new g).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:["keyword.definition","text","entity.name.function"],regex:"(function)(\\s+)("+k+")"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"keyword",regex:"(?:"+c+")\\b",next:"regex_allowed"},{token:function(c){return a.hasOwnProperty(c)?"variable.language":d.hasOwnProperty(c)?"invalid.deprecated":h.hasOwnProperty(c)?"keyword.definition":b.hasOwnProperty(c)?"keyword":i.hasOwnProperty(c)?"constant.language":j.hasOwnProperty(c)?"invalid.illegal":c=="debugger"?"invalid.deprecated":"identifier"},regex:k},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\.",next:"regex_allowed"},{token:"paren.lparen",regex:"[[({]",next:"regex_allowed"},{token:"paren.rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)",next:"regex"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)",next:"regex_character_class"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};((function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}})).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/event_emitter").EventEmitter,f=function(b,d,e,f){this.changeListener=this.changeListener.bind(this);if(c.packaged){var g=this.$guessBasePath();this.$worker=new Worker(g+d)}else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_"));this.$worker=new Worker(h);var i={};for(var j=0;j<b.length;j++){var k=b[j],l=this.$normalizePath(a.nameToUrl(k,null,"_").replace(/.js$/,""));i[k]=l}}this.$worker.postMessage({init:!0,tlns:i,module:e,classname:f}),this.callbackId=1,this.callbacks={};var m=this;this.$worker.onerror=function(a){throw window.console&&console.log&&console.log(a),a},this.$worker.onmessage=function(a){var b=a.data;switch(b.type){case"log":window.console&&console.log&&console.log(b.data);break;case"event":m._emit(b.name,{data:b.data});break;case"call":var c=m.callbacks[b.id];c&&(c(b.data),delete m.callbacks[b.id])}}};((function(){d.implement(this,e),this.$normalizePath=function(a){return a=a.replace(/^[a-z]+:\/\/[^\/]+\//,""),a=location.protocol+"//"+location.host+(a.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+a.replace(/^[\/]+/,""),a},this.$guessBasePath=function(){if(a.aceBaseUrl)return a.aceBaseUrl;var b=document.getElementsByTagName("script");for(var c=0;c<b.length;c++){var d=b[c],e=d.getAttribute("data-ace-base");if(e)return e.replace(/\/*$/,"/");var f=d.src||d.getAttribute("src");if(!f)continue;var g=f.match(/^(?:(.*\/)ace\.js|(.*\/)ace(-uncompressed)?(-noconflict)?\.js)(?:\?|$)/);if(g)return g[1]||g[2]}return""},this.terminate=function(){this._emit("terminate",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener("change",this.changeListener),this.$doc=null},this.send=function(a,b){this.$worker.postMessage({command:a,args:b})},this.call=function(a,b,c){if(c){var d=this.callbackId++;this.callbacks[d]=c,b.push(d)}this.send(a,b)},this.emit=function(a,b){try{this.$worker.postMessage({event:a,data:{data:b.data}})}catch(c){}},this.attachToDocument=function(a){this.$doc&&this.terminate(),this.$doc=a,this.call("setValue",[a.getValue()]),a.on("change",this.changeListener)},this.changeListener=function(a){a.range={start:a.data.range.start,end:a.data.range.end},this.emit("change",a)}})).call(f.prototype),b.WorkerClient=f}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return null;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;o<k.length;o++){m=k[o],m.type=="string"?n=-1:n<0&&(n=m.value.indexOf('"'));if(m.value.length+l>f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};((function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++b<k){h=a.getLine(b);var l=h.match(e)[0].length;if(l==h.length)continue;if(l<=j)break;g=b}if(g>f){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}})).call(e.prototype)}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./css_highlight_rules").CssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../worker/worker_client").WorkerClient,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(["ace"],"worker-css.js","ace/mode/css_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)}),b}}.call(k.prototype),b.Mode=k}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("-moz-appearance|-moz-box-sizing|-webkit-box-sizing|-moz-outline-radius|-moz-transform|-webkit-transform|appearance|azimuth|background-attachment|background-color|background-image|background-origin|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|-moz-border-radius|opacity|orphans|outline-color|outline-offset|outline-radius|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|pointer-events|position|quotes|resize|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transform|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",g=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:f+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],h=e.copyArray(g);h.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var i=e.copyArray(g);i.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var j=[{token:"comment",merge:!0,regex:".+"}],k=e.copyArray(j);k.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var l=e.copyArray(j);l.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=e.copyArray(j);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:k,ruleset:h,ruleset_comment:m,media_ruleset:i,media_comment:l}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("./xml_util"),h=a("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=s*style\\b)",next:"css"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},g.tag(this.$rules,"tag","start"),g.tag(this.$rules,"css","css-start"),g.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(i,h),b.HtmlHighlightRules=i}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"-qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:!]+",next:b+"embed-attribute-list"},{token:"empty",regex:"",next:b+"embed-attribute-list"}],a[b+"-qstring"]=h("'",b+"embed-attribute-list"),a[b+"-qqstring"]=h('"',b+"embed-attribute-list"),a[b+"embed-attribute-list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="</"){var l=this.$getIndent(d.doc.getLine(h.row))+d.getTabString(),m=this.$getIndent(d.doc.getLine(h.row));return{text:"\n"+l+"\n"+m,selection:[1,l.length,1,l.length]}}}})};d.inherits(g,e),b.XmlBehaviour=g}),define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./mixed").FoldMode,f=a("./xml").FoldMode,g=a("./cstyle").FoldMode,h=b.FoldMode=function(){e.call(this,new f({area:1,base:1,br:1,col:1,command:1,embed:1,hr:1,img:1,input:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1,li:1,dt:1,dd:1,p:1,rt:1,rp:1,optgroup:1,option:1,colgroup:1,td:1,th:1}),{"js-":new g,"css-":new g})};d.inherits(h,e)}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./fold_mode").FoldMode,f=b.FoldMode=function(a,b){this.defaultMode=a,this.subModes=b};d.inherits(f,e),function(){this.$getMode=function(a){for(var b in this.subModes)if(a.indexOf(b)===0)return this.subModes[b];return null},this.$tryMode=function(a,b,c,d){var e=this.$getMode(a);return e?e.getFoldWidget(b,c,d):""},this.getFoldWidget=function(a,b,c){return this.$tryMode(a.getState(c-1),a,b,c)||this.$tryMode(a.getState(c),a,b,c)||this.defaultMode.getFoldWidget(a,b,c)},this.getFoldWidgetRange=function(a,b,c){var d=this.$getMode(a.getState(c-1));if(!d||!d.getFoldWidget(a,b,c))d=this.$getMode(a.getState(c));if(!d||!d.getFoldWidget(a,b,c))d=this.defaultMode;return d.getFoldWidgetRange(a,b,c)}}.call(f.prototype)}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../lib/lang"),f=a("../../range").Range,g=a("./fold_mode").FoldMode,h=a("../../token_iterator").TokenIterator,i=b.FoldMode=function(a){g.call(this),this.voidElements=a||{}};d.inherits(i,g),function(){this.getFoldWidget=function(a,b,c){var d=this._getFirstTagInLine(a,c);return d.closing?b=="markbeginend"?"end":"":!d.tagName||this.voidElements[d.tagName.toLowerCase()]?"":d.selfClosing?"":d.value.indexOf("/"+d.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(a,b){var c=a.getTokens(b,b)[0].tokens,d="";for(var f=0;f<c.length;f++){var g=c[f];g.type.indexOf("meta.tag")===0?d+=g.value:d+=e.stringRepeat(" ",g.value.length)}return this._parseTag(d)},this.tagRe=/^(\s*)(<?(\/?)([-_a-zA-Z0-9:!]*)\s*(\/?)>?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}),function(){window.require(["ace/ace"],function(a){window.ace||(window.ace={});for(var b in a)a.hasOwnProperty(b)&&(ace[b]=a[b])})}()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
define("ace/theme/tomorrow_night",["require","exports","module"],function(a,b,c){b.isDark=!0,b.cssClass="ace-tomorrow-night",b.cssText=".ace-tomorrow-night .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow-night .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow-night .ace_gutter { background: #e8e8e8; color: #333;}.ace-tomorrow-night .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow-night .ace_scroller { background-color: #1D1F21;}.ace-tomorrow-night .ace_text-layer { cursor: text; color: #C5C8C6;}.ace-tomorrow-night .ace_cursor { border-left: 2px solid #AEAFAD;}.ace-tomorrow-night .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #AEAFAD;} .ace-tomorrow-night .ace_marker-layer .ace_selection { background: #373B41;}.ace-tomorrow-night .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow-night .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #4B4E55;}.ace-tomorrow-night .ace_marker-layer .ace_active_line { background: #282A2E;}.ace-tomorrow-night .ace_marker-layer .ace_selected_word { border: 1px solid #373B41;} .ace-tomorrow-night .ace_invisible { color: #4B4E55;}.ace-tomorrow-night .ace_keyword { color:#B294BB;}.ace-tomorrow-night .ace_keyword.ace_operator { color:#8ABEB7;}.ace-tomorrow-night .ace_constant.ace_language { color:#DE935F;}.ace-tomorrow-night .ace_constant.ace_numeric { color:#DE935F;}.ace-tomorrow-night .ace_invalid { color:#CED2CF;background-color:#DF5F5F;}.ace-tomorrow-night .ace_invalid.ace_deprecated { color:#CED2CF;background-color:#B798BF;}.ace-tomorrow-night .ace_fold { background-color: #81A2BE; border-color: #C5C8C6;}.ace-tomorrow-night .ace_support.ace_function { color:#81A2BE;}.ace-tomorrow-night .ace_string { color:#B5BD68;}.ace-tomorrow-night .ace_string.ace_regexp { color:#CC6666;}.ace-tomorrow-night .ace_comment { color:#969896;}.ace-tomorrow-night .ace_variable { color:#CC6666;}.ace-tomorrow-night .ace_meta.ace_tag { color:#CC6666;}.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name { color:#CC6666;}.ace-tomorrow-night .ace_entity.ace_name.ace_function { color:#81A2BE;}.ace-tomorrow-night .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow-night .ace_markup.ace_heading { color:#B5BD68;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}),function(){window.require(["ace/ace"],function(a){window.ace||(window.ace={});for(var b in a)a.hasOwnProperty(b)&&(ace[b]=a[b])})}()
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
//= require ./ace/ace-uncompressed
|
|
2
|
+
//= require ./ace/mode-html
|
|
3
|
+
//= require ./ace/theme-tomorrow_night
|
|
4
|
+
//= require tinymce-jquery
|
|
5
|
+
var editor = window.editor = (function(editor){
|
|
6
|
+
|
|
7
|
+
var inited = editor.inited = false;
|
|
8
|
+
|
|
9
|
+
var currents = editor.currents = {};
|
|
10
|
+
var editables = editor.editables = <%= Editor.editables.to_json %>;
|
|
11
|
+
for( var i in editables){
|
|
12
|
+
editor.currents[editables[i]] = "visual";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var mce_options = editor.mce_options = {cleanup:0, format:'raw'};
|
|
16
|
+
|
|
17
|
+
var aces = editor.aces = {};
|
|
18
|
+
var _textareas = editor._textareas = [];
|
|
19
|
+
var mces = editor.mces = {};
|
|
20
|
+
|
|
21
|
+
var switchEditor = editor.switchEditor = function(elm,ref) {
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
console.log(currents[ref],ref);
|
|
25
|
+
if (currents[ref]!=elm) {
|
|
26
|
+
|
|
27
|
+
currents[ref] = elm;
|
|
28
|
+
|
|
29
|
+
$(".switches a[ref="+ref+"].active").removeClass('active');
|
|
30
|
+
$(".switches a[ref="+ref+"]." + elm).addClass('active');
|
|
31
|
+
|
|
32
|
+
if(elm=="visual"){
|
|
33
|
+
// for( var i in editor._textareas) {
|
|
34
|
+
|
|
35
|
+
// var _textarea = editor._textareas[i];
|
|
36
|
+
|
|
37
|
+
editor.mces[ref].setContent(
|
|
38
|
+
editor.aces[ref].getSession().getValue(),
|
|
39
|
+
mce_options
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// }
|
|
43
|
+
$(".mceEditor#"+ref+"_parent").show();
|
|
44
|
+
$(".ace_editor#"+ref+"_ace").hide();
|
|
45
|
+
}else{
|
|
46
|
+
// for( var i in editor._textareas) {
|
|
47
|
+
// var _textarea = editor._textareas[i];
|
|
48
|
+
|
|
49
|
+
editor.aces[ref].getSession().setValue(
|
|
50
|
+
editor.mces[ref].getContent(
|
|
51
|
+
mce_options
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
// }
|
|
56
|
+
$(".mceEditor#"+ref+"_parent").hide();
|
|
57
|
+
$(".ace_editor#"+ref+"_ace").show();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var init = editor.init = function() {
|
|
64
|
+
|
|
65
|
+
if(!editor.inited){
|
|
66
|
+
|
|
67
|
+
var editables = <%= Editor.editables.to_json %>
|
|
68
|
+
|
|
69
|
+
var t = editor.t = false;
|
|
70
|
+
|
|
71
|
+
for(var i=0; i < editables.length; i++){
|
|
72
|
+
if ( $("#"+editables[i]+"_body").length > 0 ){
|
|
73
|
+
t = editables[i];
|
|
74
|
+
initialize(t);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
editor.inited = true;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
var initialize = editor.initialize = function(t) {
|
|
84
|
+
|
|
85
|
+
// var textarea = editor.textarea = typeof editor.textarea!=="undefined" ? editor.textarea : '#' + t + '_body';
|
|
86
|
+
var textarea = "#" + t + "_body";
|
|
87
|
+
|
|
88
|
+
// var $textarea = editor.$textarea = $(textarea);
|
|
89
|
+
var $textarea = $(textarea);
|
|
90
|
+
|
|
91
|
+
var container = $textarea.parents("fieldset.inputs");
|
|
92
|
+
|
|
93
|
+
var _textarea = textarea.replace(/#/,"");
|
|
94
|
+
editor._textareas.push(_textarea);
|
|
95
|
+
|
|
96
|
+
if( $textarea.length > 0 ) {
|
|
97
|
+
|
|
98
|
+
$textarea.parents('form').unbind('submit').submit(function() {
|
|
99
|
+
for( var i in editor._textareas) {
|
|
100
|
+
_textarea = editor._textareas[i];
|
|
101
|
+
var rawVal = currents[_textarea] == "code" ? editor.aces[_textarea].getSession().getValue() : editor.mces[_textarea].getContent(mce_options);
|
|
102
|
+
editor.mces[_textarea].remove();
|
|
103
|
+
$(_textarea).hide();
|
|
104
|
+
$(_textarea).val(rawVal);
|
|
105
|
+
tinymce = null;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
$('<div class="switches">'+
|
|
111
|
+
'<a class="visual" ref="'+_textarea+'">visual</a>'+
|
|
112
|
+
'<a class="code" ref="'+_textarea+'">code</a>'+
|
|
113
|
+
'</div>').insertAfter( container.find("label[for="+_textarea+"]") );
|
|
114
|
+
|
|
115
|
+
$(".switches a").unbind('click').click(function(){
|
|
116
|
+
switchEditor($(this).prop("class").replace("active",""), $(this).attr("ref"));
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
$(textarea+"_input").append($("<div id=\""+_textarea+"_ace\"></div>"));
|
|
120
|
+
|
|
121
|
+
// var ace = editor.ace = window.ace.edit(_textarea+"_ace");
|
|
122
|
+
var ace = window.ace.edit(_textarea+"_ace");
|
|
123
|
+
editor.aces[_textarea] = ace;
|
|
124
|
+
|
|
125
|
+
var HtmlMode = require("ace/mode/html").Mode;
|
|
126
|
+
ace.getSession().setMode(new HtmlMode());
|
|
127
|
+
|
|
128
|
+
ace.setTheme("ace/theme/tomorrow_night");
|
|
129
|
+
|
|
130
|
+
ace.getSession().setValue( $textarea.val() );
|
|
131
|
+
|
|
132
|
+
ace.getSession().on('change', function(){
|
|
133
|
+
$textarea.val( ace.getSession().getValue() );
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
ace.renderer.setHScrollBarAlwaysVisible(false);
|
|
137
|
+
|
|
138
|
+
$textarea.tinymce({
|
|
139
|
+
theme: 'advanced',
|
|
140
|
+
skin:"cirkuit",
|
|
141
|
+
|
|
142
|
+
plugins : "spellchecker,safari,pagebreak,style,layer,save,advlink,advlist,iespell,inlinepopups,insertdatetime,contextmenu,directionality,noneditable,nonbreaking,xhtmlxtras,template",
|
|
143
|
+
// Theme options
|
|
144
|
+
theme_advanced_buttons1 : "formatselect,fontsizeselect,forecolor,|,bold,italic,strikethrough,|,bullist,numlist,|,justifyleft,justifycenter,justifyright,|,link,unlink,|,image",
|
|
145
|
+
theme_advanced_buttons2 : "",
|
|
146
|
+
theme_advanced_buttons3 : "",
|
|
147
|
+
theme_advanced_toolbar_location : "top",
|
|
148
|
+
theme_advanced_toolbar_align : "left",
|
|
149
|
+
width:"77%",
|
|
150
|
+
height:"400px",
|
|
151
|
+
|
|
152
|
+
apply_source_formatting: 0,
|
|
153
|
+
convert_fonts_to_spans: 0,
|
|
154
|
+
convert_newlines_to_brs: 0,
|
|
155
|
+
// custom_elements:
|
|
156
|
+
doctype: "<!DOCTYPE html>",
|
|
157
|
+
content_css: "<%= asset_path "application.css" %>",
|
|
158
|
+
element_format: 'raw',
|
|
159
|
+
encoding: '',
|
|
160
|
+
// entities: ,
|
|
161
|
+
entity_encoding: 'raw',
|
|
162
|
+
extended_valid_elements : "script[type|src],iframe[src|style|width|height|scrolling|marginwidth|marginheight|frameborder]",
|
|
163
|
+
fix_list_elements: 0,
|
|
164
|
+
// font_size_classes:
|
|
165
|
+
// font_size_style_values:
|
|
166
|
+
forced_root_block: '',
|
|
167
|
+
force_br_newlines: 0,
|
|
168
|
+
force_hex_style_colors: 0,
|
|
169
|
+
force_p_newlines: 1,
|
|
170
|
+
// formats:
|
|
171
|
+
// indentation:
|
|
172
|
+
// inline_styles:
|
|
173
|
+
// invalid_elements:
|
|
174
|
+
preformatted: 1,
|
|
175
|
+
remove_linebreaks: 0,
|
|
176
|
+
// style_formats:
|
|
177
|
+
// valid_children:
|
|
178
|
+
valid_elements : "**",
|
|
179
|
+
verify_css_classes: 0,
|
|
180
|
+
verify_html: 0,
|
|
181
|
+
cleanup: 0,
|
|
182
|
+
cleanup_on_startup: 0,
|
|
183
|
+
validate: 0,
|
|
184
|
+
convert_urls : 0,
|
|
185
|
+
|
|
186
|
+
setup : function(ed) {
|
|
187
|
+
ed.onBeforeSetContent.add(function(ed, o) {
|
|
188
|
+
o.content = o.content.replace(/</gi, "<");
|
|
189
|
+
o.content = o.content.replace(/>/gi, ">");
|
|
190
|
+
o.content = o.content.replace(/<body>/gi, "");
|
|
191
|
+
o.content = o.content.replace(/<\/body>/gi, "");
|
|
192
|
+
});
|
|
193
|
+
ed.onGetContent.add(function(ed, o) {
|
|
194
|
+
o.content = o.content.replace(/</gi, "<");
|
|
195
|
+
o.content = o.content.replace(/>/gi, ">");
|
|
196
|
+
o.content = o.content.replace(/<body>/gi, "");
|
|
197
|
+
o.content = o.content.replace(/<\/body>/gi, "");
|
|
198
|
+
});
|
|
199
|
+
ed.onSetContent.add(function(ed, o) {
|
|
200
|
+
o.content = o.content.replace(/</gi, "<");
|
|
201
|
+
o.content = o.content.replace(/>/gi, ">");
|
|
202
|
+
o.content = o.content.replace(/<body>/gi, "");
|
|
203
|
+
o.content = o.content.replace(/<\/body>/gi, "");
|
|
204
|
+
});
|
|
205
|
+
},
|
|
206
|
+
|
|
207
|
+
oninit : function(){
|
|
208
|
+
// var mce = editor.mce = $textarea.tinymce();
|
|
209
|
+
var mce = $textarea.tinymce();
|
|
210
|
+
editor.mces[_textarea] = mce;
|
|
211
|
+
// editor.mce.setContent(
|
|
212
|
+
// editor.ace.getSession().getValue(),
|
|
213
|
+
// mce_options
|
|
214
|
+
// );
|
|
215
|
+
mce.setContent(
|
|
216
|
+
editor.aces[_textarea].getSession().getValue(),
|
|
217
|
+
mce_options
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
var reload = editor.reload = function() {
|
|
228
|
+
$(".switches").remove();
|
|
229
|
+
init();
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return editor;
|
|
233
|
+
|
|
234
|
+
})(editor || {});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.ace_editor{
|
|
2
|
+
position:relative !important;
|
|
3
|
+
width:77.8%;
|
|
4
|
+
height:407px;
|
|
5
|
+
display:none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
<%= Editor.editables.map{|e| "label[for=#{e}_body]"}.join(",") %>{
|
|
9
|
+
margin-bottom: 400px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.switches a{
|
|
13
|
+
padding:7px 5px;
|
|
14
|
+
border:1px solid #e4e4e4;
|
|
15
|
+
text-decoration:none;
|
|
16
|
+
cursor:pointer;
|
|
17
|
+
display:inline-block;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.switches a.active{
|
|
21
|
+
background:#fff;
|
|
22
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
body, td, pre {color:#000; font: 12px/1.5em "Lucida Grande", Helvetica, Arial, sans-serif; margin:8px;}
|
|
2
|
+
html,body {padding: 0 !important; margin: 0 !important; background:#fff !important;}
|
|
3
|
+
body {height: 94% !important; padding: 0 !important;}
|
|
4
|
+
body.mceForceColors {background:#FFF; color:#000;}
|
|
5
|
+
h1 {font-size: 2em}
|
|
6
|
+
h2 {font-size: 1.5em}
|
|
7
|
+
h3 {font-size: 1.17em}
|
|
8
|
+
h4 {font-size: 1em}
|
|
9
|
+
h5 {font-size: .83em}
|
|
10
|
+
h6 {font-size: .75em}
|
|
11
|
+
.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
|
|
12
|
+
a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;}
|
|
13
|
+
img.mceItemAnchor {width:11px; height:11px; background:url(img/items.gif) no-repeat;}
|
|
14
|
+
span.mceItemNbsp {background: #DDD}
|
|
15
|
+
td.mceSelected, th.mceSelected {background-color:#3399ff !important}
|
|
16
|
+
img {border:0;}
|
|
17
|
+
table {cursor:default}
|
|
18
|
+
table td, table th {cursor:text}
|
|
19
|
+
ins {border-bottom:1px solid green; text-decoration: none; color:green}
|
|
20
|
+
del {color:red; text-decoration:line-through}
|
|
21
|
+
cite {border-bottom:1px dashed blue}
|
|
22
|
+
acronym {border-bottom:1px dotted #CCC; cursor:help}
|
|
23
|
+
abbr {border-bottom:1px dashed #CCC; cursor:help}
|
|
24
|
+
|
|
25
|
+
* html body {
|
|
26
|
+
scrollbar-3dlight-color:#F0F0EE;
|
|
27
|
+
scrollbar-arrow-color:#676662;
|
|
28
|
+
scrollbar-base-color:#F0F0EE;
|
|
29
|
+
scrollbar-darkshadow-color:#DDD;
|
|
30
|
+
scrollbar-face-color:#E0E0DD;
|
|
31
|
+
scrollbar-highlight-color:#F0F0EE;
|
|
32
|
+
scrollbar-shadow-color:#F0F0EE;
|
|
33
|
+
scrollbar-track-color:#F5F5F5;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
|
|
37
|
+
font[face=mceinline] {font-family:inherit !important}
|
|
38
|
+
|
|
39
|
+
.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc}
|
|
40
|
+
.mceItemShockWave {background-image:url(../../img/shockwave.gif)}
|
|
41
|
+
.mceItemFlash {background-image:url(../../img/flash.gif)}
|
|
42
|
+
.mceItemQuickTime {background-image:url(../../img/quicktime.gif)}
|
|
43
|
+
.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)}
|
|
44
|
+
.mceItemRealMedia {background-image:url(../../img/realmedia.gif)}
|
|
45
|
+
.mceItemVideo {background-image:url(../../img/video.gif)}
|
|
46
|
+
.mceItemIframe {background-image:url(../../img/iframe.gif)}
|
|
47
|
+
.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;}
|
|
48
|
+
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* Generic */
|
|
2
|
+
body {
|
|
3
|
+
font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
|
|
4
|
+
background:#f1f1f1;
|
|
5
|
+
padding:0;
|
|
6
|
+
margin:8px 8px 0 8px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
html {background:#f1f1f1;}
|
|
10
|
+
td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
|
|
11
|
+
textarea {resize:none;outline:none;}
|
|
12
|
+
a:link, a:visited {color:black;}
|
|
13
|
+
a:hover {color:#2B6FB6;}
|
|
14
|
+
.nowrap {white-space: nowrap}
|
|
15
|
+
|
|
16
|
+
/* Forms */
|
|
17
|
+
fieldset {margin:0; padding:4px; border:1px solid #dfdfdf; font-family:Verdana, Arial; font-size:10px;}
|
|
18
|
+
legend {color:#2B6FB6; font-weight:bold;}
|
|
19
|
+
label.msg {display:none;}
|
|
20
|
+
label.invalid {color:#EE0000; display:inline;}
|
|
21
|
+
input.invalid {border:1px solid #EE0000;}
|
|
22
|
+
input {background:#FFF; border:1px solid #dfdfdf;}
|
|
23
|
+
input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
|
|
24
|
+
input, select, textarea {border:1px solid #dfdfdf;}
|
|
25
|
+
input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
|
|
26
|
+
input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
|
|
27
|
+
.input_noborder {border:0;}
|
|
28
|
+
|
|
29
|
+
/* Buttons */
|
|
30
|
+
#insert, #cancel, #apply, .mceActionPanel .button, input.mceButton, .updateButton {
|
|
31
|
+
border: 1px solid #bbb;
|
|
32
|
+
margin:0;
|
|
33
|
+
padding:0 0 1px;
|
|
34
|
+
font-weight:bold;
|
|
35
|
+
font-size: 11px;
|
|
36
|
+
width:94px;
|
|
37
|
+
height:24px;
|
|
38
|
+
background:url(img/fade-butt.png) 0 0;
|
|
39
|
+
color:#000;
|
|
40
|
+
cursor:pointer;
|
|
41
|
+
-moz-border-radius: 3px;
|
|
42
|
+
-khtml-border-radius: 3px;
|
|
43
|
+
-webkit-border-radius: 3px;
|
|
44
|
+
border-radius: 3px;
|
|
45
|
+
}
|
|
46
|
+
#insert:hover, #cancel:hover, input.mceButton:hover, .updateButton:hover,
|
|
47
|
+
#insert:focus, #cancel:focus, input.mceButton:focus, .updateButton:focus {
|
|
48
|
+
border: 1px solid #555;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Browse */
|
|
52
|
+
a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
|
|
53
|
+
.mceOldBoxModel a.browse span {width:22px; height:20px;}
|
|
54
|
+
a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
|
|
55
|
+
a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}
|
|
56
|
+
a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
|
|
57
|
+
a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
|
|
58
|
+
.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
|
|
59
|
+
a.pickcolor:hover span {background-color:#B2BBD0;}
|
|
60
|
+
a.pickcolor, a.browse {text-decoration:none}
|
|
61
|
+
|
|
62
|
+
/* Charmap */
|
|
63
|
+
table.charmap {border:1px solid #AAA; text-align:center}
|
|
64
|
+
td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
|
|
65
|
+
#charmap a {display:block; color:#000; text-decoration:none; border:0}
|
|
66
|
+
#charmap a:hover {background:#CCC;color:#2B6FB6}
|
|
67
|
+
#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
|
|
68
|
+
#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
|
|
69
|
+
#charmap #charmapView {background-color:#fff;}
|
|
70
|
+
|
|
71
|
+
/* Source */
|
|
72
|
+
.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
|
|
73
|
+
.mceActionPanel {margin-top:5px;}
|
|
74
|
+
|
|
75
|
+
/* Tabs classes */
|
|
76
|
+
.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}
|
|
77
|
+
.tabs ul {margin:0; padding:0; list-style:none;}
|
|
78
|
+
.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}
|
|
79
|
+
.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}
|
|
80
|
+
.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}
|
|
81
|
+
.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}
|
|
82
|
+
.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
|
|
83
|
+
.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
|
|
84
|
+
|
|
85
|
+
/* Panels */
|
|
86
|
+
.panel_wrapper div.panel {display:none;}
|
|
87
|
+
.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
|
|
88
|
+
.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}
|
|
89
|
+
|
|
90
|
+
/* Columns */
|
|
91
|
+
.column {float:left;}
|
|
92
|
+
.properties {width:100%;}
|
|
93
|
+
.properties .column1 {}
|
|
94
|
+
.properties .column2 {text-align:left;}
|
|
95
|
+
|
|
96
|
+
/* Titles */
|
|
97
|
+
h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
|
|
98
|
+
h3 {font-size:14px;}
|
|
99
|
+
.title {font-size:12px; font-weight:bold; color:#2B6FB6;}
|
|
100
|
+
|
|
101
|
+
/* Dialog specific */
|
|
102
|
+
#link .panel_wrapper, #link div.current {height:125px;}
|
|
103
|
+
#image .panel_wrapper, #image div.current {height:200px;}
|
|
104
|
+
#plugintable thead {font-weight:bold; background:#DDD;}
|
|
105
|
+
#plugintable, #about #plugintable td {border:1px solid #919B9C;}
|
|
106
|
+
#plugintable {width:96%; margin-top:10px;}
|
|
107
|
+
#pluginscontainer {height:290px; overflow:auto;}
|
|
108
|
+
#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
|
|
109
|
+
#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
|
|
110
|
+
#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
|
|
111
|
+
#colorpicker #light div {overflow:hidden;}
|
|
112
|
+
#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
|
|
113
|
+
#colorpicker .panel_wrapper div.current {height:175px;}
|
|
114
|
+
#colorpicker #namedcolors {width:150px;}
|
|
115
|
+
#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
|
|
116
|
+
#colorpicker #colornamecontainer {margin-top:5px;}
|
|
117
|
+
#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|