From 2d2d8d6bb708a23db7efc05d68bb438930b28847 Mon Sep 17 00:00:00 2001 From: Tom Locke Date: Mon, 19 May 2008 09:10:49 +0100 Subject: [PATCH] Moved to nicedit (nicedit.com) for HTML inputs and editors. Dropped all TinyMCE stuff --- .../hobo_rapid/hobo_rapid_generator.rb | 12 ++- .../hobo_rapid/templates/hobo-rapid.js | 53 ++++++---- .../hobo_rapid/templates/nicEdit.js | 91 ++++++++++++++++++ .../hobo_rapid/templates/nicEditorIcons.gif | Bin 0 -> 2967 bytes .../clean/public/stylesheets/rapid-ui.css | 2 + hobo/taglibs/rapid.dryml | 16 +-- hobo/taglibs/rapid_pages.dryml | 4 +- 7 files changed, 139 insertions(+), 39 deletions(-) create mode 100755 hobo/generators/hobo_rapid/templates/nicEdit.js create mode 100755 hobo/generators/hobo_rapid/templates/nicEditorIcons.gif diff --git a/hobo/generators/hobo_rapid/hobo_rapid_generator.rb b/hobo/generators/hobo_rapid/hobo_rapid_generator.rb index 3f809e687..52e82ce66 100644 --- a/hobo/generators/hobo_rapid/hobo_rapid_generator.rb +++ b/hobo/generators/hobo_rapid/hobo_rapid_generator.rb @@ -10,11 +10,13 @@ def manifest end record do |m| - m.file "hobo-rapid.js", "public/javascripts/hobo-rapid.js" - m.file "lowpro.js", "public/javascripts/lowpro.js" - m.file "IE7.js", "public/javascripts/IE7.js" - m.file "reset.css", "public/stylesheets/reset.css" - m.file "hobo-rapid.css", "public/stylesheets/hobo-rapid.css" + m.file "hobo-rapid.js", "public/javascripts/hobo-rapid.js" + m.file "lowpro.js", "public/javascripts/lowpro.js" + m.file "IE7.js", "public/javascripts/IE7.js" + m.file "nicEdit.js", "public/javascripts/nicEdit.js" + m.file "nicEditorIcons.gif", "public/images/nicEditorIcons.gif" + m.file "reset.css", "public/stylesheets/reset.css" + m.file "hobo-rapid.css", "public/stylesheets/hobo-rapid.css" create_all(m, "themes/clean/public", "public/hobothemes/clean") create_all(m, "themes/clean/views", "app/views/taglibs/themes/clean") end diff --git a/hobo/generators/hobo_rapid/templates/hobo-rapid.js b/hobo/generators/hobo_rapid/templates/hobo-rapid.js index ef72fa788..1c3d8368b 100644 --- a/hobo/generators/hobo_rapid/templates/hobo-rapid.js +++ b/hobo/generators/hobo_rapid/templates/hobo-rapid.js @@ -210,6 +210,21 @@ var Hobo = { return new Ajax.InPlaceEditor(el, Hobo.putUrl(el), opts) }, + nicEditorOptions: { buttonList : ['bold','italic', + 'left','center','right', + 'ul', + 'fontFormat', + 'indent','outdent', + 'link','unlink', + 'image', 'removeLink']}, + + makeNicEditor: function(element) { + if (!Hobo.nicEditorOptions.iconsPath) { Hobo.nicEditorOptions.iconsPath = urlBase + '/images/nicEditorIcons.gif' } + var nic = new nicEditor(Hobo.nicEditorOptions) + nic.panelInstance(element.id, {hasPanel : true}) + return nic.instanceById(element) + }, + applyEvents: function(root) { root = $(root) function select(p) { @@ -231,25 +246,22 @@ var Hobo = { }) select(".in-place-html-textarea-bhv").each(function (el) { - var options = {rows: 2, handleLineBreaks: false} - if (typeof(tinyMCE) != "undefined") options["submitOnBlur"] = false + var nicEditPresent = typeof(nicEditor) != "undefined" + var options = { rows: 2, handleLineBreaks: false, okButton: true, cancelLink: true, okText: "Save" } + if (nicEditPresent) options["submitOnBlur"] = false var ipe = Hobo._makeInPlaceEditor(el, options) - if (typeof(tinyMCE) != "undefined") { + if (nicEditPresent) { ipe.afterEnterEditMode = function() { - var id = this._form.id = Hobo.uid() - - // 'orrible 'ack - // What is the correct way to individually configure a tinyMCE instace? - var old = tinyMCE.settings.theme_advanced_buttons1 - tinyMCE.settings.theme_advanced_buttons1 += ", separator, save" - tinyMCE.addMCEControl(this._controls.editor, id); - tinyMCE.settings.theme_advanced_buttons1 = old - - this._form.onsubmit = function() { - tinyMCE.removeMCEControl(ipe.form.id) - setTimeout(ipe.onSubmit.bind(ipe), 10) - return false - } + var editor = this._controls.editor + var id = editor.id = Hobo.uid() + var nicInstance = Hobo.makeNicEditor(editor) + var panel = this._form.down(".nicEdit-panel") + panel.appendChild(this._controls.cancel) + panel.appendChild(this._controls.ok) + bkLib.addEvent(this._controls.ok,'click', function () { + nicInstance.saveContent() + setTimeout(function() {nicInstance.remove()}, 1) + }) } } }) @@ -573,6 +585,13 @@ SelectManyInput = Behavior.create({ }) Event.addBehavior({ + + 'textarea.html' : function(e) { + if (typeof(nicEditors) != "undefined") { + Hobo.makeNicEditor(this) + } + }, + 'div.select-many.input' : SelectManyInput(), '.association-count:click' : function(e) { diff --git a/hobo/generators/hobo_rapid/templates/nicEdit.js b/hobo/generators/hobo_rapid/templates/nicEdit.js new file mode 100755 index 000000000..11ee66838 --- /dev/null +++ b/hobo/generators/hobo_rapid/templates/nicEdit.js @@ -0,0 +1,91 @@ +/* NicEdit - Micro Inline WYSIWYG + * Copyright 2007-2008 Brian Kirchoff + * + * NicEdit is distributed under the terms of the MIT license + * For more information visit http://nicedit.com/ + * Do not remove this copyright message + */ +var bkExtend=function(){var A=arguments;if(A.length==1){A=[this,A[0]]}for(var B in A[1]){A[0][B]=A[1][B]}return A[0]};function bkClass(){}bkClass.prototype.construct=function(){};bkClass.extend=function(C){var A=function(){if(arguments[0]!==bkClass){return this.construct.apply(this,arguments)}};var B=new this(bkClass);bkExtend(B,C);A.prototype=B;A.extend=this.extend;return A};var bkElement=bkClass.extend({construct:function(A){if(typeof (A)=="string"){A=document.createElement(A)}A=$BK(A);return A},appendTo:function(A){A.appendChild(this);return this},appendBefore:function(A){A.parentNode.insertBefore(this,A);return this},addEvent:function(B,A){bkLib.addEvent(this,B,A);return this},setContent:function(A){this.innerHTML=A;return this},pos:function(){var C=curtop=0;var B=obj=this;if(obj.offsetParent){do{C+=obj.offsetLeft;curtop+=obj.offsetTop}while(obj=obj.offsetParent)}var A=(!window.opera)?parseInt(this.getStyle("border-width")||this.style.border)||0:0;return[C+A,curtop+A+this.offsetHeight]},noSelect:function(){bkLib.noSelect(this);return this},parentTag:function(A){var B=this;do{if(B&&B.nodeName&&B.nodeName.toUpperCase()==A){return B}B=B.parentNode}while(B);return false},hasClass:function(A){return this.className.match(new RegExp("(\\s|^)nicEdit-"+A+"(\\s|$)"))},addClass:function(A){if(!this.hasClass(A)){this.className+=" nicEdit-"+A}return this},removeClass:function(A){if(this.hasClass(A)){this.className=this.className.replace(new RegExp("(\\s|^)nicEdit-"+A+"(\\s|$)")," ")}return this},setStyle:function(A){var B=this.style;for(var C in A){switch(C){case"float":B.cssFloat=B.styleFloat=A[C];break;case"opacity":B.opacity=A[C];B.filter="alpha(opacity="+Math.round(A[C]*100)+")";break;case"className":this.className=A[C];break;default:B[C]=A[C]}}return this},getStyle:function(A,C){var B=(!C)?document.defaultView:C;if(this.nodeType==1){return(B&&B.getComputedStyle)?B.getComputedStyle(this,null).getPropertyValue(A):this.currentStyle[bkLib.camelize(A)]}},remove:function(){this.parentNode.removeChild(this);return this},setAttributes:function(A){for(var B in A){this[B]=A[B]}return this}});var bkLib={isMSIE:(navigator.appVersion.indexOf("MSIE")!=-1),addEvent:function(C,B,A){(C.addEventListener)?C.addEventListener(B,A,false):C.attachEvent("on"+B,A)},toArray:function(C){var B=C.length,A=new Array(B);while(B--){A[B]=C[B]}return A},noSelect:function(B){if(B.setAttribute&&B.nodeName.toLowerCase()!="input"&&B.nodeName.toLowerCase()!="textarea"){B.setAttribute("unselectable","on")}for(var A=0;A<\/script>");$BK("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){bkLib.domLoaded()}}}}window.onload=bkLib.domLoaded}};function $BK(A){if(typeof (A)=="string"){A=document.getElementById(A)}return(A&&!A.appendTo)?bkExtend(A,bkElement.prototype):A}var bkEvent={addEvent:function(A,B){if(B){this.eventList=this.eventList||{};this.eventList[A]=this.eventList[A]||[];this.eventList[A].push(B)}return this},fireEvent:function(){var A=bkLib.toArray(arguments),C=A.shift();if(this.eventList&&this.eventList[C]){for(var B=0;B")}this.instanceDoc=document.defaultView;this.elm.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keypress",this.keyDown.closureListener(this)).addEvent("focus",this.selected.closure(this)).addEvent("blur",this.blur.closure(this)).addEvent("keyup",this.selected.closure(this))},remove:function(){this.saveContent();if(this.copyElm||this.options.hasPanel){this.editorContain.remove();this.e.setStyle({display:"block"});this.ne.removePanel()}this.disable();this.ne.fireEvent("removeInstance",this)},disable:function(){this.elm.setAttribute("contentEditable","false")},getSel:function(){return(window.getSelection)?window.getSelection():document.selection},getRng:function(){var A=this.getSel();if(!A){return null}return(A.rangeCount>0)?A.getRangeAt(0):A.createRange()},selRng:function(A,B){if(window.getSelection){B.removeAllRanges();B.addRange(A)}else{A.select()}},selElm:function(){var C=this.getRng();if(C.startContainer){var D=C.startContainer;if(C.cloneContents().childNodes.length==1){for(var B=0;B");A.collapse(false);A.select();return false}}if(C.ctrlKey){this.ne.fireEvent("key",this,C);if(C.preventDefault){C.preventDefault()}return false}},selected:function(C,A){if(!A){A=this.selElm()}if(!C.ctrlKey){var B=this.ne.selectedInstance;if(B!=this){if(B){this.ne.fireEvent("blur",B,A)}this.ne.selectedInstance=this;this.ne.fireEvent("focus",B,A)}this.ne.fireEvent("selected",B,A);this.isFocused=true;this.elm.addClass("selected")}return false},blur:function(){this.isFocused=false;this.elm.removeClass("selected")},saveContent:function(){if(this.copyElm||this.options.hasPanel){this.ne.fireEvent("save",this);(this.copyElm)?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent()}},getElm:function(){return this.elm},getContent:function(){this.content=this.getElm().innerHTML;this.ne.fireEvent("get",this);return this.content},setContent:function(A){this.content=A;this.ne.fireEvent("set",this);this.elm.innerHTML=this.content},nicCommand:function(B,A){document.execCommand(B,false,A)}}); +var nicEditorIFrameInstance=nicEditorInstance.extend({savedStyles:[],init:function(){var B=this.elm.innerHTML.replace(/^\s+|\s+$/g,"");this.elm.innerHTML="";(!B)?B="
":B;this.initialContent=B;this.elmFrame=new bkElement("iframe").setAttributes({src:"javascript:;",frameBorder:0,allowTransparency:"true",scrolling:"no"}).setStyle({height:"100px",width:"100%"}).addClass("frame").appendTo(this.elm);if(this.copyElm){this.elmFrame.setStyle({width:(this.elm.offsetWidth-4)+"px"})}var A={fontSize:"font-size",fontFamily:"font-family",fontWeight:"font-weight",color:"color"};for(itm in A){this.savedStyles[itm]=this.elm.getStyle(A[itm])}setTimeout(this.initFrame.closure(this),50)},disable:function(){this.elm.innerHTML=this.getContent()},initFrame:function(){this.frameDoc=$BK(this.elmFrame.contentWindow.document);this.frameDoc.designMode="on";this.frameDoc.open();this.frameDoc.write(''+this.initialContent+"");this.frameDoc.close();this.frameWin=$BK(this.elmFrame.contentWindow);this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles);this.instanceDoc=this.frameWin.document.defaultView;this.heightUpdate();this.frameDoc.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keyup",this.heightUpdate.closureListener(this)).addEvent("keydown",this.keyDown.closureListener(this)).addEvent("keyup",this.selected.closure(this))},getElm:function(){return this.frameContent},setContent:function(A){this.content=A;this.ne.fireEvent("set",this);this.frameContent.innerHTML=this.content;this.heightUpdate()},getSel:function(){return(this.frameWin)?this.frameWin.getSelection():this.frameDoc.selection},heightUpdate:function(){var A=this.frameContent.offsetHeight;this.elmFrame.style.height=Math.max(A,this.initialHeight)+"px"},nicCommand:function(B,A){this.frameDoc.execCommand(B,false,A);setTimeout(this.heightUpdate.closure(this),100)}}); +var nicEditorPanel=bkClass.extend({construct:function(E,B,A){this.elm=E;this.options=B;this.ne=A;this.panelButtons=new Array();this.buttonList=bkExtend([],this.ne.options.buttonList);this.panelContain=new bkElement("DIV").setStyle({overflow:"hidden",width:"100%",border:"1px solid #cccccc",backgroundColor:"#efefef"}).addClass("panelContain");this.panelElm=new bkElement("DIV").setStyle({margin:"2px",marginTop:"0px",zoom:1,overflow:"hidden"}).addClass("panel").appendTo(this.panelContain);this.panelContain.appendTo(E);var C=this.ne.options;var D=C.buttons;for(button in D){this.addButton(button,C,true)}this.reorder();E.noSelect()},addButton:function(buttonName,options,noOrder){var button=options.buttons[buttonName];var type=(button.type)?eval("(typeof("+button.type+') == "undefined") ? null : '+button.type+";"):nicEditorButton;var hasButton=bkLib.inArray(this.buttonList,buttonName);if(type&&(hasButton||this.ne.options.fullPanel)){this.panelButtons.push(new type(this.panelElm,buttonName,options,this.ne));if(!hasButton){this.buttonList.push(buttonName)}}},findButton:function(B){for(var A=0;A'+this.sel[itm]+"")}}});var nicEditorFontFamilySelect=nicEditorSelect.extend({sel:{arial:"Arial","comic sans ms":"Comic Sans","courier new":"Courier New",georgia:"Georgia",helvetica:"Helvetica",impact:"Impact","times new roman":"Times","trebuchet ms":"Trebuchet",verdana:"Verdana"},init:function(){this.setDisplay("Font Family...");for(itm in this.sel){this.add(itm,''+this.sel[itm]+"")}}});var nicEditorFontFormatSelect=nicEditorSelect.extend({sel:{p:"Paragraph",pre:"Pre",h6:"Heading 6",h5:"Heading 5",h4:"Heading 4",h3:"Heading 3",h2:"Heading 2",h1:"Heading 1"},init:function(){this.setDisplay("Font Format...");for(itm in this.sel){var A=itm.toUpperCase();this.add("<"+A+">","<"+itm+' style="padding: 0px; margin: 0px;">'+this.sel[itm]+"")}}});nicEditors.registerPlugin(nicPlugin,nicSelectOptions); + + +var nicLinkOptions = { + buttons : { + 'link' : {name : 'Add Link', type : 'nicLinkButton', tags : ['A']}, + 'unlink' : {name : 'Remove Link', command : 'unlink', noActive : true} + } +}; + +var nicLinkButton=nicEditorAdvancedButton.extend({addPane:function(){this.ln=this.ne.selectedInstance.selElm().parentTag("A");this.addForm({"":{type:"title",txt:"Add/Edit Link"},href:{type:"text",txt:"URL",value:"http://",style:{width:"150px"}},title:{type:"text",txt:"Title"},target:{type:"select",txt:"Open In",options:{"":"Current Window",_blank:"New Window"},style:{width:"100px"}}},this.ln)},submit:function(C){var A=this.inputs.href.value;if(A=="http://"||A==""){alert("You must enter a URL to Create a Link");return false}this.removePane();if(!this.ln){var B="javascript:nicTemp();";this.ne.nicCommand("createlink",B);this.ln=this.findElm("A","href",B)}if(this.ln){this.ln.setAttributes({href:this.inputs.href.value,title:this.inputs.title.value,target:this.inputs.target.options[this.inputs.target.selectedIndex].value})}}});nicEditors.registerPlugin(nicPlugin,nicLinkOptions); + + +var nicColorOptions = { + buttons : { + 'forecolor' : {name : __('Change Text Color'), type : 'nicEditorColorButton', noClose : true}, + 'bgcolor' : {name : __('Change Background Color'), type : 'nicEditorBgColorButton', noClose : true} + } +}; + +var nicEditorColorButton=nicEditorAdvancedButton.extend({addPane:function(){var D={0:"00",1:"33",2:"66",3:"99",4:"CC",5:"FF"};var H=new bkElement("DIV").setStyle({width:"270px"});for(var A in D){for(var F in D){for(var E in D){var I="#"+D[A]+D[E]+D[F];var C=new bkElement("DIV").setStyle({cursor:"pointer",height:"15px","float":"left"}).appendTo(H);var G=new bkElement("DIV").setStyle({border:"2px solid "+I}).appendTo(C);var B=new bkElement("DIV").setStyle({backgroundColor:I,overflow:"hidden",width:"11px",height:"11px"}).addEvent("click",this.colorSelect.closure(this,I)).addEvent("mouseover",this.on.closure(this,G)).addEvent("mouseout",this.off.closure(this,G,I)).appendTo(G);if(!window.opera){C.onmousedown=B.onmousedown=bkLib.cancelEvent}}}}this.pane.append(H.noSelect())},colorSelect:function(A){this.ne.nicCommand("foreColor",A);this.removePane()},on:function(A){A.setStyle({border:"2px solid #000"})},off:function(A,B){A.setStyle({border:"2px solid "+B})}});var nicEditorBgColorButton=nicEditorColorButton.extend({colorSelect:function(A){this.ne.nicCommand("hiliteColor",A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicColorOptions); + + +var nicImageOptions = { + buttons : { + 'image' : {name : 'Add Image', type : 'nicImageButton', tags : ['IMG']} + } + +}; + +var nicImageButton=nicEditorAdvancedButton.extend({addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag("IMG");this.addForm({"":{type:"title",txt:"Add/Edit Image"},src:{type:"text",txt:"URL",value:"http://",style:{width:"150px"}},alt:{type:"text",txt:"Alt Text",style:{width:"100px"}},align:{type:"select",txt:"Align",options:{left:"Left",right:"Right"}}},this.im)},submit:function(B){var C=this.inputs.src.value;if(C==""||C=="http://"){alert("You must enter a Image URL to insert");return false}this.removePane();if(!this.im){var A="javascript:nicImTemp();";this.ne.nicCommand("insertImage",A);this.im=this.findElm("IMG","src",A)}if(this.im){this.im.setAttributes({src:this.inputs.src.value,alt:this.inputs.alt.value,align:this.inputs.align.value})}}});nicEditors.registerPlugin(nicPlugin,nicImageOptions); + diff --git a/hobo/generators/hobo_rapid/templates/nicEditorIcons.gif b/hobo/generators/hobo_rapid/templates/nicEditorIcons.gif new file mode 100755 index 0000000000000000000000000000000000000000..1eb20587d32a65cd8a47ad44be3535cc0eb87682 GIT binary patch literal 2967 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 -<%= +<%= res = '" - - if tiny_mce - res += javascript_include_tag("tiny_mce/tiny_mce_src") + %{ - } - end res %> diff --git a/hobo/taglibs/rapid_pages.dryml b/hobo/taglibs/rapid_pages.dryml index cc4a16e2d..15162394a 100644 --- a/hobo/taglibs/rapid_pages.dryml +++ b/hobo/taglibs/rapid_pages.dryml @@ -1,4 +1,4 @@ - + <% full_title ||= "#{title} : #{app_name}" %> @@ -11,7 +11,7 @@ - + <%= "" %>