btn('align-right' , 'justifyright',true);
btn('link', false, true, this.onLinkClick);
- function(btn) {
- var url = this.selectedNode && this.selectedNode.tagName.toUpperCase() == 'A' ?
- this.selectedNode.getAttribute('href') : '';
-
- Roo.bootstrap.MessageBox.show({
- title : "Add / Edit Link URL",
- msg : "Enter the URL for the link",
- buttons: Roo.bootstrap.MessageBox.OKCANCEL,
- minWidth: 250,
- scope : this,
- prompt:true,
- multiline: false,
- modal : true,
- value : url,
- fn: function(pressed, newurl) {
- if (pressed != 'ok') {
- return;
- }
- if (url != '') {
- this.selectedNode.setAttribute('href', newurl);
- return;
- }
- if(newurl && newurl .match(/http(s):\/\/.+/)) {
- this.editorcore.relayCmd('createlink', newurl);
- }
- }
- });
- });
+
btn('image', false, true, function() {
});
this.editorcore.focus();
},
+ onLinkClick : function(btn) {
+ var url = this.selectedNode && this.selectedNode.tagName.toUpperCase() == 'A' ?
+ this.selectedNode.getAttribute('href') : '';
+
+ Roo.bootstrap.MessageBox.show({
+ title : "Add / Edit Link URL",
+ msg : "Enter the URL for the link",
+ buttons: Roo.bootstrap.MessageBox.OKCANCEL,
+ minWidth: 250,
+ scope : this,
+ prompt:true,
+ multiline: false,
+ modal : true,
+ value : url,
+ fn: function(pressed, newurl) {
+ if (pressed != 'ok') {
+ this.editorcore.focus();
+ return;
+ }
+ if (url != '') {
+ this.selectedNode.setAttribute('href', newurl);
+ return;
+ }
+ if(newurl && newurl .match(/http(s):\/\/.+/)) {
+ this.editorcore.relayCmd('createlink', newurl);
+ }
+ this.editorcore.focus();
+ }
+ });
+ },
/**
* Protected method that will not generally be called directly. It triggers
* a toolbar update by reading the markup state of the current selection in the editor.
// Roo/bootstrap/form/HtmlEditorToolbar/Standard.js
Roo.bootstrap.form.HtmlEditorToolbar.Standard=function(A){Roo.apply(this,A);this.disable=this.disable||{};Roo.applyIf(this.disable,{fontSize:true,colors:true,specialElements:true});Roo.bootstrap.form.HtmlEditorToolbar.Standard.superclass.constructor.call(this,A);
-this.editor=A.editor;this.editorcore=A.editor.editorcore;this.buttons=new Roo.util.MixedCollection(false,function(o){return o.btnid;});};Roo.extend(Roo.bootstrap.form.HtmlEditorToolbar.Standard,Roo.bootstrap.nav.Simplebar,{bar:true,editor:false,editorcore:false,formats:["p","h1","h2","h3","h4","h5","h6","pre","code","abbr","acronym","address","cite","samp","var",'div','span'],deleteBtn:false,onRender:function(ct,position){Roo.bootstrap.form.HtmlEditorToolbar.Standard.superclass.onRender.call(this,ct,position);
-Roo.log(this.el);this.el.dom.style.marginBottom='0';var _this=this;var editorcore=this.editorcore;var editor=this.editor;var children=[];var btn=function(id,cmd,toggle,handler,html){var event=toggle?'toggle':'click';var a={size:'sm',xtype:'Button',xns:Roo.bootstrap,btnid:id,fa:id,cmd:cmd,enableToggle:toggle!==false,html:html||'',pressed:toggle?false:null,listeners:{}
-};a.listeners[toggle?'toggle':'click']=function(){handler?handler.call(_this,this):_this.onBtnClick.call(_this,cmd||id);};children.push(a);return a;};var style={xtype:'Button',size:'sm',xns:Roo.bootstrap,fa:'font',menu:{xtype:'Menu',xns:Roo.bootstrap,items:[]}
-};Roo.each(this.formats,function(f){style.menu.items.push({xtype:'MenuItem',xns:Roo.bootstrap,html:'<'+f+' style="margin:2px">'+f+'</'+f+'>',tagname:f,listeners:{click:function(){editorcore.insertTag(this.tagname);editor.focus();}}});});children.push(style);
-btn('bold',false,true);btn('italic',false,true);btn('align-left','justifyleft',true);btn('align-center','justifycenter',true);btn('align-right','justifyright',true);btn('link',false,true,this.onLinkClick);function(btn){var url=this.selectedNode&&this.selectedNode.tagName.toUpperCase()=='A'?this.selectedNode.getAttribute('href'):'';
-Roo.bootstrap.MessageBox.show({title:"Add / Edit Link URL",msg:"Enter the URL for the link",buttons:Roo.bootstrap.MessageBox.OKCANCEL,minWidth:250,scope:this,prompt:true,multiline:false,modal:true,value:url,fn:function(pressed,newurl){if(pressed!='ok'){return;
-}if(url!=''){this.selectedNode.setAttribute('href',newurl);return;}if(newurl&&newurl.match(/http(s):\/\/.+/)){this.editorcore.relayCmd('createlink',newurl);}}});});btn('image',false,true,function(){});btn('list','insertunorderedlist',true);btn('list-ol','insertorderedlist',true);
-btn('pencil',false,true,function(A){Roo.log(this);this.toggleSourceEdit(A.pressed);});if(this.editor.btns.length>0){for(var i=0;i<this.editor.btns.length;i++){children.push(this.editor.btns[i]);}}this.xtype='NavSimplebar';for(var i=0;i<children.length;i++){this.buttons.add(this.addxtypeChild(children[i]));
-}this.buildToolbarDelete();editor.on('editorevent',this.updateToolbar,this);},buildToolbarDelete:function(){this.deleteBtn=this.addxtypeChild({size:'sm',xtype:'Button',xns:Roo.bootstrap,fa:'trash',listeners:{click:this.onDelete.createDelegate(this)}});this.deleteBtn.hide();
-},onBtnClick:function(id){this.editorcore.relayCmd(id);this.editorcore.focus();},updateToolbar:function(editor,ev,sel){if(!this.editorcore.activated){this.editor.onFirstFocus();return;}var btns=this.buttons;var doc=this.editorcore.doc;var hasToggle=false;
-btns.each(function(e){if(e.enableToggle&&e.cmd){hasToggle=hasToggle||(['align-left','align-right','align-center'].indexOf(e.btnid)<0&&doc.queryCommandState(e.cmd));e.setActive(doc.queryCommandState(e.cmd));}},this);if(ev&&(ev.type=='mouseup'||ev.type=='click')&&ev.target&&ev.target.tagName!='BODY'){sel=ev.target;
-}var ans=this.editorcore.getAllAncestors();if(!sel){sel=ans.length?(ans[0]?ans[0]:ans[1]):this.editorcore.doc.body;sel=sel?sel:this.editorcore.doc.body;sel=sel.tagName.length?sel:this.editorcore.doc.body;}var lastSel=this.selectedNode;this.selectedNode=sel;
-var db=false;if(sel&&sel.hasAttribute('data-block')){db=sel;}else if(sel&&sel.closest('[data-block]')){db=sel.closest('[data-block]');}Array.from(this.editorcore.doc.body.querySelectorAll('.roo-ed-selection')).forEach(function(e){e.classList.remove('roo-ed-selection');
-});var block=false;if(db&&this.editorcore.enableBlocks){block=Roo.htmleditor.Block.factory(db);if(block){db.className=(db.classList.length>0?db.className+' ':'')+' roo-ed-selection';sel=this.selectedNode=db;}}var tn=sel&&sel.tagName.toUpperCase()||'';if(!block&&sel&&tn!='A'){var asel=sel.closest('A');
-if(asel){sel=asel;}}btns.get('link').setActive(tn=='A'&&this.selectedNode.hasAttribute('href'));Roo.bootstrap.menu.Manager.hideAll();if(hasToggle||(tn.length&&tn=='BODY')){this.deleteBtn.hide();return;}this.deleteBtn.show();},onFirstFocus:function(){this.buttons.each(function(item){item.enable();
-});},onDelete:function(){var range=this.editorcore.createRange();var selection=this.editorcore.getSelection();var sn=this.selectedNode;range.setStart(sn,0);range.setEnd(sn,0);if(sn.hasAttribute('data-block')){var block=Roo.htmleditor.Block.factory(this.selectedNode);
-if(block){sn=block.removeNode();sn.parentNode.removeChild(sn);selection.removeAllRanges();selection.addRange(range);this.updateToolbar(null,null,null);this.editorcore.fireEditorEvent(false);return;}}if(!sn){return;}if(sn&&sn.tagName=='BODY'){return;}var stn=sn.childNodes[0]||sn.nextSibling||sn.previousSibling||sn.parentNode;
-a=new Roo.htmleditor.FilterKeepChildren({tag:false});a.replaceTag(sn);selection.removeAllRanges();selection.addRange(range);this.editorcore.fireEditorEvent(false);},toggleSourceEdit:function(sourceEditMode){if(sourceEditMode){Roo.log("disabling buttons");
-this.buttons.each(function(item){if(item.cmd!='pencil'){item.disable();}});}else{Roo.log("enabling buttons");if(this.editorcore.initialized){this.buttons.each(function(item){item.enable();});}}Roo.log("calling toggole on editor");this.editor.toggleSourceEdit(sourceEditMode);
-}});
+this.editor=A.editor;this.editorcore=A.editor.editorcore;this.buttons=new Roo.util.MixedCollection(false,function(o){return o.btnid;});};Roo.extend(Roo.bootstrap.form.HtmlEditorToolbar.Standard,Roo.bootstrap.nav.Simplebar,{bar:true,editor:false,editorcore:false,formats:["p","h1","h2","h3","h4","h5","h6","pre","code","abbr","acronym","address","cite","samp","var",'div','span'],deleteBtn:false,onRender:function(ct,A){Roo.bootstrap.form.HtmlEditorToolbar.Standard.superclass.onRender.call(this,ct,A);
+Roo.log(this.el);this.el.dom.style.marginBottom='0';var B=this;var C=this.editorcore;var D=this.editor;var E=[];var F=function(id,G,H,I,J){var K=H?'toggle':'click';var a={size:'sm',xtype:'Button',xns:Roo.bootstrap,btnid:id,fa:id,cmd:G,enableToggle:H!==false,html:J||'',pressed:H?false:null,listeners:{}
+};a.listeners[H?'toggle':'click']=function(){I?I.call(B,this):B.onBtnClick.call(B,G||id);};E.push(a);return a;};var style={xtype:'Button',size:'sm',xns:Roo.bootstrap,fa:'font',menu:{xtype:'Menu',xns:Roo.bootstrap,items:[]}};Roo.each(this.formats,function(f){style.menu.items.push({xtype:'MenuItem',xns:Roo.bootstrap,html:'<'+f+' style="margin:2px">'+f+'</'+f+'>',tagname:f,listeners:{click:function(){C.insertTag(this.tagname);
+D.focus();}}});});E.push(style);F('bold',false,true);F('italic',false,true);F('align-left','justifyleft',true);F('align-center','justifycenter',true);F('align-right','justifyright',true);F('link',false,true,this.onLinkClick);F('image',false,true,function(){}
+);F('list','insertunorderedlist',true);F('list-ol','insertorderedlist',true);F('pencil',false,true,function(G){Roo.log(this);this.toggleSourceEdit(G.pressed);});if(this.editor.btns.length>0){for(var i=0;i<this.editor.btns.length;i++){E.push(this.editor.btns[i]);
+}}this.xtype='NavSimplebar';for(var i=0;i<E.length;i++){this.buttons.add(this.addxtypeChild(E[i]));}this.buildToolbarDelete();D.on('editorevent',this.updateToolbar,this);},buildToolbarDelete:function(){this.deleteBtn=this.addxtypeChild({size:'sm',xtype:'Button',xns:Roo.bootstrap,fa:'trash',listeners:{click:this.onDelete.createDelegate(this)}
+});this.deleteBtn.hide();},onBtnClick:function(id){this.editorcore.relayCmd(id);this.editorcore.focus();},onLinkClick:function(A){var B=this.selectedNode&&this.selectedNode.tagName.toUpperCase()=='A'?this.selectedNode.getAttribute('href'):'';Roo.bootstrap.MessageBox.show({title:"Add / Edit Link URL",msg:"Enter the URL for the link",buttons:Roo.bootstrap.MessageBox.OKCANCEL,minWidth:250,scope:this,prompt:true,multiline:false,modal:true,value:B,fn:function(C,D){if(C!='ok'){this.editorcore.focus();
+return;}if(B!=''){this.selectedNode.setAttribute('href',D);return;}if(D&&D.match(/http(s):\/\/.+/)){this.editorcore.relayCmd('createlink',D);}this.editorcore.focus();}});},updateToolbar:function(A,ev,B){if(!this.editorcore.activated){this.editor.onFirstFocus();
+return;}var C=this.buttons;var D=this.editorcore.doc;var E=false;C.each(function(e){if(e.enableToggle&&e.cmd){E=E||(['align-left','align-right','align-center'].indexOf(e.btnid)<0&&D.queryCommandState(e.cmd));e.setActive(D.queryCommandState(e.cmd));}},this);
+if(ev&&(ev.type=='mouseup'||ev.type=='click')&&ev.target&&ev.target.tagName!='BODY'){B=ev.target;}var F=this.editorcore.getAllAncestors();if(!B){B=F.length?(F[0]?F[0]:F[1]):this.editorcore.doc.body;B=B?B:this.editorcore.doc.body;B=B.tagName.length?B:this.editorcore.doc.body;
+}var G=this.selectedNode;this.selectedNode=B;var db=false;if(B&&B.hasAttribute('data-block')){db=B;}else if(B&&B.closest('[data-block]')){db=B.closest('[data-block]');}Array.from(this.editorcore.doc.body.querySelectorAll('.roo-ed-selection')).forEach(function(e){e.classList.remove('roo-ed-selection');
+});var H=false;if(db&&this.editorcore.enableBlocks){H=Roo.htmleditor.Block.factory(db);if(H){db.className=(db.classList.length>0?db.className+' ':'')+' roo-ed-selection';B=this.selectedNode=db;}}var tn=B&&B.tagName.toUpperCase()||'';if(!H&&B&&tn!='A'){var I=B.closest('A');
+if(I){B=I;}}C.get('link').setActive(tn=='A'&&this.selectedNode.hasAttribute('href'));Roo.bootstrap.menu.Manager.hideAll();if(E||(tn.length&&tn=='BODY')){this.deleteBtn.hide();return;}this.deleteBtn.show();},onFirstFocus:function(){this.buttons.each(function(A){A.enable();
+});},onDelete:function(){var A=this.editorcore.createRange();var B=this.editorcore.getSelection();var sn=this.selectedNode;A.setStart(sn,0);A.setEnd(sn,0);if(sn.hasAttribute('data-block')){var C=Roo.htmleditor.Block.factory(this.selectedNode);if(C){sn=C.removeNode();
+sn.parentNode.removeChild(sn);B.removeAllRanges();B.addRange(A);this.updateToolbar(null,null,null);this.editorcore.fireEditorEvent(false);return;}}if(!sn){return;}if(sn&&sn.tagName=='BODY'){return;}var D=sn.childNodes[0]||sn.nextSibling||sn.previousSibling||sn.parentNode;
+a=new Roo.htmleditor.FilterKeepChildren({tag:false});a.replaceTag(sn);B.removeAllRanges();B.addRange(A);this.editorcore.fireEditorEvent(false);},toggleSourceEdit:function(A){if(A){Roo.log("disabling buttons");this.buttons.each(function(B){if(B.cmd!='pencil'){B.disable();
+}});}else{Roo.log("enabling buttons");if(this.editorcore.initialized){this.buttons.each(function(B){B.enable();});}}Roo.log("calling toggole on editor");this.editor.toggleSourceEdit(A);}});
// Roo/bootstrap/form/HtmlEditorToolbar/Context.js
Roo.bootstrap.form.HtmlEditorToolbar.Context=function(A){Roo.apply(this,A);Roo.bootstrap.form.HtmlEditorToolbar.Context.superclass.constructor.call(this,A);this.editor=A.editor;this.editorcore=A.editor.editorcore;this.buttons=new Roo.util.MixedCollection(false,function(o){return o.cmd;
});};Roo.bootstrap.form.HtmlEditorToolbar.Context.types={'IMG':[{name:'width',title:"Width",width:40},{name:'height',title:"Height",width:40},{name:'align',title:"Align",opts:[[""],["left"],["right"],["center"],["top"]],width:80},{name:'border',title:"Border",width:40}