X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FHtmlEditor%2FToolbarStandard.js;h=0c0f7d43b480b525c985262bae153c1cf6f3de50;hb=e40a4b7c6df9ce98225fca8380f39ca59bba8f50;hp=fcf9938d3e735274770ba3d63c28da504820facf;hpb=76aa0aff1b9db4109caa7092ed796e5d43dd2106;p=roojs1 diff --git a/Roo/form/HtmlEditor/ToolbarStandard.js b/Roo/form/HtmlEditor/ToolbarStandard.js index fcf9938d3e..0c0f7d43b4 100644 --- a/Roo/form/HtmlEditor/ToolbarStandard.js +++ b/Roo/form/HtmlEditor/ToolbarStandard.js @@ -62,6 +62,18 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { */ disable : false, + + + /** + * @cfg {String} createLinkText The default text for the create link prompt + */ + createLinkText : 'Please enter the URL for the link:', + /** + * @cfg {String} defaultLinkValue The default value for the create link prompt (defaults to http:/ /) + */ + defaultLinkValue : 'http:/'+'/', + + /** * @cfg {Array} fontFamilies An array of available font families */ @@ -226,7 +238,8 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { tb.add( btn('bold'), btn('italic'), - btn('underline') + btn('underline'), + btn('strikethrough') ); }; if(!this.disable.fontSize){ @@ -305,7 +318,7 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { if(!this.disable.links){ tb.add( '-', - btn('createlink', false, editorcore.createLink) /// MOVE TO HERE?!!?!?!?! + btn('createlink', false, this.createLink) /// MOVE TO HERE?!!?!?!?! ); }; @@ -320,7 +333,6 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { tb.add( '-', btn('sourceedit', true, function(btn){ - Roo.log(this); this.toggleSourceEdit(btn.pressed); }) ); @@ -371,17 +383,74 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { actiontype : this.cleanStyles[i], html: 'Remove ' + this.cleanStyles[i], handler: function(a,b) { - Roo.log(a); - Roo.log(b); +// Roo.log(a); +// Roo.log(b); var c = Roo.get(editorcore.doc.body); c.select('[style]').each(function(s) { s.dom.style.removeProperty(a.actiontype); }); - + editorcore.syncValue(); }, tabIndex:-1 }); } + cmenu.menu.items.push({ + actiontype : 'tablewidths', + html: 'Remove Table Widths', + handler: function(a,b) { + editorcore.cleanTableWidths(); + editorcore.syncValue(); + }, + tabIndex:-1 + }); + cmenu.menu.items.push({ + actiontype : 'word', + html: 'Remove MS Word Formating', + handler: function(a,b) { + editorcore.cleanWord(); + editorcore.syncValue(); + }, + tabIndex:-1 + }); + + cmenu.menu.items.push({ + actiontype : 'all', + html: 'Remove All Styles', + handler: function(a,b) { + + var c = Roo.get(editorcore.doc.body); + c.select('[style]').each(function(s) { + s.dom.removeAttribute('style'); + }); + editorcore.syncValue(); + }, + tabIndex:-1 + }); + + cmenu.menu.items.push({ + actiontype : 'all', + html: 'Remove All CSS Classes', + handler: function(a,b) { + + var c = Roo.get(editorcore.doc.body); + c.select('[class]').each(function(s) { + s.dom.removeAttribute('class'); + }); + editorcore.syncValue(); + }, + tabIndex:-1 + }); + + cmenu.menu.items.push({ + actiontype : 'tidy', + html: 'Tidy HTML Source', + handler: function(a,b) { + editorcore.doc.body.innerHTML = editorcore.domToHTML(); + editorcore.syncValue(); + }, + tabIndex:-1 + }); + tb.add(cmenu); } @@ -415,6 +484,11 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { for(var i =0; i< this.btns.length;i++) { var b = Roo.factory(this.btns[i],Roo.form); b.cls = 'x-edit-none'; + + if(typeof(this.btns[i].cls) != 'undefined' && this.btns[i].cls.indexOf('x-init-enable') !== -1){ + b.cls += ' x-init-enable'; + } + b.scope = editorcore; tb.add(b); } @@ -426,7 +500,12 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { // disable everything... this.tb.items.each(function(item){ - if(item.id != editorcore.frameId+ '-sourceedit'){ + + if( + item.id != editorcore.frameId+ '-sourceedit' && + (typeof(item.cls) != 'undefined' && item.cls.indexOf('x-init-enable') === -1) + ){ + item.disable(); } }); @@ -439,6 +518,18 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { }, + relayBtnCmd : function(btn) { + this.editorcore.relayCmd(btn.cmd); + }, + // private used internally + createLink : function(){ + Roo.log("create link?"); + var url = prompt(this.createLinkText, this.defaultLinkValue); + if(url && url != 'http:/'+'/'){ + this.editorcore.relayCmd('createlink', url); + } + }, + /** * Protected method that will not generally be called directly. It triggers @@ -467,6 +558,7 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { btns[frameId + '-bold'].toggle(doc.queryCommandState('bold')); btns[frameId + '-italic'].toggle(doc.queryCommandState('italic')); btns[frameId + '-underline'].toggle(doc.queryCommandState('underline')); + btns[frameId + '-strikethrough'].toggle(doc.queryCommandState('strikethrough')); } if(!this.disable.alignments){ btns[frameId + '-justifyleft'].toggle(doc.queryCommandState('justifyleft')); @@ -534,15 +626,17 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { return; } - if(this.editorcore.sourceEditMode){ + if(sourceEditMode){ + Roo.log("disabling buttons"); this.tb.items.each(function(item){ - if(item.cmd != 'sourceedit'){ + if(item.cmd != 'sourceedit' && (typeof(item.cls) != 'undefined' && item.cls.indexOf('x-init-enable') === -1)){ item.disable(); } }); }else{ - if(this.initialized){ + Roo.log("enabling buttons"); + if(this.editorcore.initialized){ this.tb.items.each(function(item){ item.enable(); }); @@ -590,6 +684,11 @@ Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype, { text: 'Underline the selected text.', cls: 'x-html-editor-tip' }, + strikethrough : { + title: 'Strikethrough', + text: 'Strikethrough the selected text.', + cls: 'x-html-editor-tip' + }, increasefontsize : { title: 'Grow Text', text: 'Increase the font size.',