PageRenderTime 9ms CodeModel.GetById 1ms app.highlight 5ms RepoModel.GetById 2ms app.codeStats 0ms

/static/scripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js

http://n23.googlecode.com/
JavaScript | 134 lines | 111 code | 14 blank | 9 comment | 6 complexity | 204598d84c41cc2b255b6ab5a709ff0b MD5 | raw file
  1/**
  2 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
  3 *
  4 * @author Moxiecode
  5 * @copyright Copyright Š 2004-2008, Moxiecode Systems AB, All rights reserved.
  6 */
  7
  8(function() {
  9	tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {
 10		init : function(ed, url) {
 11			// Register commands
 12			ed.addCommand('mceCite', function() {
 13				ed.windowManager.open({
 14					file : url + '/cite.htm',
 15					width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),
 16					height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),
 17					inline : 1
 18				}, {
 19					plugin_url : url
 20				});
 21			});
 22
 23			ed.addCommand('mceAcronym', function() {
 24				ed.windowManager.open({
 25					file : url + '/acronym.htm',
 26					width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
 27					height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
 28					inline : 1
 29				}, {
 30					plugin_url : url
 31				});
 32			});
 33
 34			ed.addCommand('mceAbbr', function() {
 35				ed.windowManager.open({
 36					file : url + '/abbr.htm',
 37					width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
 38					height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
 39					inline : 1
 40				}, {
 41					plugin_url : url
 42				});
 43			});
 44
 45			ed.addCommand('mceDel', function() {
 46				ed.windowManager.open({
 47					file : url + '/del.htm',
 48					width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
 49					height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
 50					inline : 1
 51				}, {
 52					plugin_url : url
 53				});
 54			});
 55
 56			ed.addCommand('mceIns', function() {
 57				ed.windowManager.open({
 58					file : url + '/ins.htm',
 59					width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
 60					height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
 61					inline : 1
 62				}, {
 63					plugin_url : url
 64				});
 65			});
 66
 67			ed.addCommand('mceAttributes', function() {
 68				ed.windowManager.open({
 69					file : url + '/attributes.htm',
 70					width : 380,
 71					height : 370,
 72					inline : 1
 73				}, {
 74					plugin_url : url
 75				});
 76			});
 77
 78			// Register buttons
 79			ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});
 80			ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});
 81			ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});
 82			ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});
 83			ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});
 84			ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});
 85
 86			if (tinymce.isIE) {
 87				function fix(ed, o) {
 88					if (o.set) {
 89						o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');
 90						o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');
 91					}
 92				};
 93
 94				ed.onBeforeSetContent.add(fix);
 95				ed.onPostProcess.add(fix);
 96			}
 97
 98			ed.onNodeChange.add(function(ed, cm, n, co) {
 99				n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');
100
101				cm.setDisabled('cite', co);
102				cm.setDisabled('acronym', co);
103				cm.setDisabled('abbr', co);
104				cm.setDisabled('del', co);
105				cm.setDisabled('ins', co);
106				cm.setDisabled('attribs', n && n.nodeName == 'BODY');
107
108				if (n) {
109					cm.setDisabled(n.nodeName.toLowerCase(), 0);
110					cm.setActive(n.nodeName.toLowerCase(), 1);
111				} else {
112					cm.setActive('cite', 0);
113					cm.setActive('acronym', 0);
114					cm.setActive('abbr', 0);
115					cm.setActive('del', 0);
116					cm.setActive('ins', 0);
117				}
118			});
119		},
120
121		getInfo : function() {
122			return {
123				longname : 'XHTML Xtras Plugin',
124				author : 'Moxiecode Systems AB',
125				authorurl : 'http://tinymce.moxiecode.com',
126				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
127				version : tinymce.majorVersion + "." + tinymce.minorVersion
128			};
129		}
130	});
131
132	// Register plugin
133	tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);
134})();