Upgrade TinyMCE to 3.2.7. Fixes bug #10993.
This commit is contained in:
parent
dae7215922
commit
a2a2bac440
140 changed files with 8023 additions and 3591 deletions
|
|
@ -61,7 +61,7 @@ iespell_desc:"Run spell checking",
|
|||
download:"ieSpell not detected. Do you want to install it now?"
|
||||
},
|
||||
advhr:{
|
||||
advhr_desc:"Horizontale rule"
|
||||
advhr_desc:"Horizontal rule"
|
||||
},
|
||||
emotions:{
|
||||
emotions_desc:"Emotions"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})();
|
||||
|
|
@ -3,25 +3,34 @@ var AdvHRDialog = {
|
|||
var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;
|
||||
|
||||
w = dom.getAttrib(n, 'width');
|
||||
f.width.value = w ? parseInt(w) : '';
|
||||
f.size.value = dom.getAttrib(n, 'size');
|
||||
f.noshade.checked = !!dom.getAttrib(n, 'noshade');
|
||||
f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');
|
||||
f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';
|
||||
f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');
|
||||
selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');
|
||||
},
|
||||
|
||||
update : function() {
|
||||
var ed = tinyMCEPopup.editor, h, f = document.forms[0];
|
||||
var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';
|
||||
|
||||
h = '<hr';
|
||||
|
||||
if (f.size.value)
|
||||
if (f.size.value) {
|
||||
h += ' size="' + f.size.value + '"';
|
||||
st += ' height:' + f.size.value + 'px;';
|
||||
}
|
||||
|
||||
if (f.width.value)
|
||||
if (f.width.value) {
|
||||
h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';
|
||||
st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';
|
||||
}
|
||||
|
||||
if (f.noshade.checked)
|
||||
if (f.noshade.checked) {
|
||||
h += ' noshade="noshade"';
|
||||
st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';
|
||||
}
|
||||
|
||||
if (ed.settings.inline_styles)
|
||||
h += ' style="' + tinymce.trim(st) + '"';
|
||||
|
||||
h += ' />';
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<link href="css/advhr.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body>
|
||||
<form onsubmit="AdvHRDialog.update();return false;" action="#">
|
||||
|
|
@ -22,7 +21,7 @@
|
|||
<table border="0" cellpadding="4" cellspacing="0">
|
||||
<tr>
|
||||
<td><label for="width">{#advhr_dlg.width}</label></td>
|
||||
<td nowrap="nowrap">
|
||||
<td class="nowrap">
|
||||
<input id="width" name="width" type="text" value="" class="mceFocus" />
|
||||
<select name="width2" id="width2">
|
||||
<option value="">px</option>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}
|
||||
.checkbox {border:0;}
|
||||
.panel_wrapper div.current {height:305px;}
|
||||
#prev {margin:0; border:1px solid #000; width:99%; height:150px; overflow:auto;}
|
||||
#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}
|
||||
#align, #classlist {width:150px;}
|
||||
#width, #height {vertical-align:middle; width:50px; text-align:center;}
|
||||
#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})();
|
||||
|
|
@ -6,9 +6,9 @@
|
|||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="../../utils/validate.js"></script>
|
||||
<script type="text/javascript" src="../../utils/editable_selects.js"></script>
|
||||
<script type="text/javascript" src="js/image.js"></script>
|
||||
<link href="css/advimage.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="advimage" style="display: none">
|
||||
<form onsubmit="ImageDialog.insert();return false;" action="#">
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><label for="src_list">{#advimage_dlg.image_list}</label></td>
|
||||
<td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"></select></td>
|
||||
<td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td>
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
|
||||
<tr>
|
||||
<td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>
|
||||
<td nowrap="nowrap">
|
||||
<td class="nowrap">
|
||||
<input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" /> x
|
||||
<input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" /> px
|
||||
</td>
|
||||
|
|
@ -122,7 +122,7 @@
|
|||
|
||||
<tr>
|
||||
<td><label for="class_list">{#class_name}</label></td>
|
||||
<td><select id="class_list" name="class_list"></select></td>
|
||||
<td colspan="2"><select id="class_list" name="class_list" class="mceEditableSelect"><option value=""></option></select></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -157,7 +157,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><label for="over_list">{#advimage_dlg.image_list}</label></td>
|
||||
<td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"></select></td>
|
||||
<td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td>
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><label for="out_list">{#advimage_dlg.image_list}</label></td>
|
||||
<td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"></select></td>
|
||||
<td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"><option value=""></option></select></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ var ImageDialog = {
|
|||
this.fillFileList('src_list', 'tinyMCEImageList');
|
||||
this.fillFileList('over_list', 'tinyMCEImageList');
|
||||
this.fillFileList('out_list', 'tinyMCEImageList');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
if (n.nodeName == 'IMG') {
|
||||
nl.src.value = dom.getAttrib(n, 'src');
|
||||
|
|
@ -27,7 +28,7 @@ var ImageDialog = {
|
|||
nl.hspace.value = this.getAttrib(n, 'hspace');
|
||||
nl.border.value = this.getAttrib(n, 'border');
|
||||
selectByValue(f, 'align', this.getAttrib(n, 'align'));
|
||||
selectByValue(f, 'class_list', dom.getAttrib(n, 'class'));
|
||||
selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);
|
||||
nl.style.value = dom.getAttrib(n, 'style');
|
||||
nl.id.value = dom.getAttrib(n, 'id');
|
||||
nl.dir.value = dom.getAttrib(n, 'dir');
|
||||
|
|
@ -102,7 +103,7 @@ var ImageDialog = {
|
|||
|
||||
if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {
|
||||
if (!f.alt.value) {
|
||||
tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
|
||||
tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
|
||||
if (s)
|
||||
t.insertAndClose();
|
||||
});
|
||||
|
|
@ -170,7 +171,7 @@ var ImageDialog = {
|
|||
if (el && el.nodeName == 'IMG') {
|
||||
ed.dom.setAttribs(el, args);
|
||||
} else {
|
||||
ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />', {skip_undo : 1});
|
||||
ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
|
||||
ed.dom.setAttribs('__mce_tmp', args);
|
||||
ed.dom.setAttrib('__mce_tmp', 'id', '');
|
||||
ed.undoManager.add();
|
||||
|
|
@ -271,6 +272,7 @@ var ImageDialog = {
|
|||
cl = tinyMCEPopup.editor.dom.getClasses();
|
||||
|
||||
if (cl.length > 0) {
|
||||
lst.options.length = 0;
|
||||
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
|
||||
|
||||
tinymce.each(cl, function(o) {
|
||||
|
|
@ -284,6 +286,7 @@ var ImageDialog = {
|
|||
var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
|
||||
|
||||
l = window[l];
|
||||
lst.options.length = 0;
|
||||
|
||||
if (l && l.length > 0) {
|
||||
lst.options[lst.options.length] = new Option('', '');
|
||||
|
|
@ -380,7 +383,7 @@ var ImageDialog = {
|
|||
v = f.border.value;
|
||||
if (v || v == '0') {
|
||||
if (v == '0')
|
||||
img.style.border = '';
|
||||
img.style.border = '0';
|
||||
else
|
||||
img.style.border = v + 'px solid black';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;if(se.isCollapsed()&&!ed.dom.getParent(se.getNode(),'A'))return;ed.windowManager.open({file:url+'/link.htm',width:480+parseInt(ed.getLang('advlink.delta_width',0)),height:400+parseInt(ed.getLang('advlink.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('link',{title:'advlink.link_desc',cmd:'mceAdvLink'});ed.addShortcut('ctrl+k','advlink.advlink_desc','mceAdvLink');ed.onNodeChange.add(function(ed,cm,n,co){cm.setDisabled('link',co&&n.nodeName!='A');cm.setActive('link',n.nodeName=='A'&&!n.name);});},getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})();
|
||||
|
|
@ -14,8 +14,9 @@ function preinit() {
|
|||
}
|
||||
|
||||
function changeClass() {
|
||||
var formObj = document.forms[0];
|
||||
formObj.classes.value = getSelectValue(formObj, 'classlist');
|
||||
var f = document.forms[0];
|
||||
|
||||
f.classes.value = getSelectValue(f, 'classlist');
|
||||
}
|
||||
|
||||
function init() {
|
||||
|
|
@ -115,7 +116,7 @@ function checkPrefix(n) {
|
|||
if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))
|
||||
n.value = 'mailto:' + n.value;
|
||||
|
||||
if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
|
||||
if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
|
||||
n.value = 'http://' + n.value;
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +235,7 @@ function parseLink(link) {
|
|||
regExp += "\\);?";
|
||||
|
||||
// Build variable array
|
||||
var variables = new Array();
|
||||
var variables = [];
|
||||
variables["_function"] = fnName;
|
||||
var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');
|
||||
for (var i=0; i<variableNames.length; i++)
|
||||
|
|
@ -248,7 +249,7 @@ function parseLink(link) {
|
|||
|
||||
function parseOptions(opts) {
|
||||
if (opts == null || opts == "")
|
||||
return new Array();
|
||||
return [];
|
||||
|
||||
// Cleanup the options
|
||||
opts = opts.toLowerCase();
|
||||
|
|
@ -256,7 +257,7 @@ function parseOptions(opts) {
|
|||
opts = opts.replace(/[^0-9a-z=,]/g, "");
|
||||
|
||||
var optionChunks = opts.split(',');
|
||||
var options = new Array();
|
||||
var options = [];
|
||||
|
||||
for (var i=0; i<optionChunks.length; i++) {
|
||||
var parts = optionChunks[i].split('=');
|
||||
|
|
@ -401,47 +402,23 @@ function insertAction() {
|
|||
|
||||
// Create new anchor elements
|
||||
if (elm == null) {
|
||||
inst.getDoc().execCommand("unlink", false, null);
|
||||
tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});
|
||||
|
||||
elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});
|
||||
for (i=0; i<elementArray.length; i++) {
|
||||
elm = elementArray[i];
|
||||
|
||||
// Move cursor to end
|
||||
try {
|
||||
tinyMCEPopup.editor.selection.collapse(false);
|
||||
} catch (ex) {
|
||||
// Ignore
|
||||
}
|
||||
|
||||
// Move cursor behind the new anchor
|
||||
// Don't remember why this was needed so it's now removed
|
||||
/*
|
||||
if (tinyMCE.isGecko) {
|
||||
var sp = inst.getDoc().createTextNode(" ");
|
||||
|
||||
if (elm.nextSibling)
|
||||
elm.parentNode.insertBefore(sp, elm.nextSibling);
|
||||
else
|
||||
elm.parentNode.appendChild(sp);
|
||||
|
||||
// Set range after link
|
||||
var rng = inst.getDoc().createRange();
|
||||
rng.setStartAfter(elm);
|
||||
rng.setEndAfter(elm);
|
||||
|
||||
// Update selection
|
||||
var sel = inst.getSel();
|
||||
sel.removeAllRanges();
|
||||
sel.addRange(rng);
|
||||
}
|
||||
*/
|
||||
|
||||
setAllAttribs(elm);
|
||||
}
|
||||
for (i=0; i<elementArray.length; i++)
|
||||
setAllAttribs(elm = elementArray[i]);
|
||||
} else
|
||||
setAllAttribs(elm);
|
||||
|
||||
// Don't move caret if selection was image
|
||||
if (elm.childNodes.length != 1 || elm.firstChild.nodeName != 'IMG') {
|
||||
inst.focus();
|
||||
inst.selection.select(elm);
|
||||
inst.selection.collapse(0);
|
||||
tinyMCEPopup.storeSelection();
|
||||
}
|
||||
|
||||
tinyMCEPopup.execCommand("mceEndUndoLevel");
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
|
@ -452,7 +429,6 @@ function setAllAttribs(elm) {
|
|||
var target = getSelectValue(formObj, 'targetlist');
|
||||
|
||||
setAttrib(elm, 'href', href);
|
||||
setAttrib(elm, 'mce_href', href);
|
||||
setAttrib(elm, 'title');
|
||||
setAttrib(elm, 'target', target == '_self' ? '' : target);
|
||||
setAttrib(elm, 'id');
|
||||
|
|
@ -488,7 +464,7 @@ function setAllAttribs(elm) {
|
|||
function getSelectValue(form_obj, field_name) {
|
||||
var elm = form_obj.elements[field_name];
|
||||
|
||||
if (elm == null || elm.options == null)
|
||||
if (!elm || elm.options == null || elm.selectedIndex == -1)
|
||||
return "";
|
||||
|
||||
return elm.options[elm.selectedIndex].value;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
<script type="text/javascript" src="../../utils/validate.js"></script>
|
||||
<script type="text/javascript" src="js/advlink.js"></script>
|
||||
<link href="css/advlink.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="advlink" style="display: none">
|
||||
<form onsubmit="insertAction();return false;" action="#">
|
||||
|
|
@ -28,7 +27,7 @@
|
|||
|
||||
<table border="0" cellpadding="4" cellspacing="0">
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>
|
||||
<td class="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>
|
||||
<td><table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><input id="href" name="href" type="text" class="mceFocus" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>
|
||||
|
|
@ -38,25 +37,25 @@
|
|||
</tr>
|
||||
<tr id="linklisthrefrow">
|
||||
<td class="column1"><label for="linklisthref">{#advlink_dlg.list}</label></td>
|
||||
<td colspan="2" id="linklisthrefcontainer"> </td>
|
||||
<td colspan="2" id="linklisthrefcontainer"><select id="linklisthref"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="column1"><label for="anchorlist">{#advlink_dlg.anchor_names}</label></td>
|
||||
<td colspan="2" id="anchorlistcontainer"> </td>
|
||||
<td colspan="2" id="anchorlistcontainer"><select id="anchorlist"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label id="targetlistlabel" for="targetlist">{#advlink_dlg.target}</label></td>
|
||||
<td id="targetlistcontainer"> </td>
|
||||
<td id="targetlistcontainer"><select id="targetlist"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>
|
||||
<td class="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>
|
||||
<td><input id="title" name="title" type="text" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label id="classlabel" for="classlist">{#class_name}</label></td>
|
||||
<td>
|
||||
<select id="classlist" name="classlist" onchange="changeClass();">
|
||||
<option value="" selected>{#not_set}</option>
|
||||
<option value="" selected="selected">{#not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -73,7 +72,7 @@
|
|||
|
||||
<table border="0" cellpadding="0" cellspacing="4">
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label> </td>
|
||||
<td class="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label> </td>
|
||||
<td>
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
|
|
@ -84,19 +83,19 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label> </td>
|
||||
<td class="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label> </td>
|
||||
<td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label>{#advlink_dlg.popup_size}</label> </td>
|
||||
<td nowrap="nowrap">
|
||||
<td class="nowrap"><label>{#advlink_dlg.popup_size}</label> </td>
|
||||
<td class="nowrap">
|
||||
<input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x
|
||||
<input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap" id="labelleft"><label>{#advlink_dlg.popup_position}</label> </td>
|
||||
<td nowrap="nowrap">
|
||||
<td class="nowrap" id="labelleft"><label>{#advlink_dlg.popup_position}</label> </td>
|
||||
<td class="nowrap">
|
||||
<input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> /
|
||||
<input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)
|
||||
</td>
|
||||
|
|
@ -109,27 +108,27 @@
|
|||
<table border="0" cellpadding="0" cellspacing="4">
|
||||
<tr>
|
||||
<td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>
|
||||
<td class="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>
|
||||
<td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>
|
||||
<td class="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>
|
||||
<td class="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>
|
||||
<td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>
|
||||
<td class="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>
|
||||
<td class="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>
|
||||
<td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>
|
||||
<td class="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>
|
||||
<td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>
|
||||
<td class="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>
|
||||
<td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>
|
||||
<td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>
|
||||
<td class="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
|
|
|||
1
www/extras/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js
vendored
Normal file
1
www/extras/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this;if(a.getParam("fullscreen_is_enabled")){return}function b(){var h=a.getDoc(),e=h.body,j=h.documentElement,g=tinymce.DOM,i=d.autoresize_min_height,f;f=tinymce.isIE?e.scrollHeight:j.offsetHeight;if(f>d.autoresize_min_height){i=f}g.setStyle(g.get(a.id+"_ifr"),"height",i+"px");if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=a.getElement().offsetHeight;a.onInit.add(function(f,e){f.setProgressState(true);d.throbbing=true;f.getBody().style.overflowY="hidden"});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);a.onLoadContent.add(function(f,e){b();setTimeout(function(){b();f.setProgressState(false);d.throbbing=false},1250)});a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})();
|
||||
114
www/extras/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js
vendored
Normal file
114
www/extras/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 539 2008-01-14 19:08:58Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
/**
|
||||
* Auto Resize
|
||||
*
|
||||
* This plugin automatically resizes the content area to fit its content height.
|
||||
* It will retain a minimum height, which is the height of the content area when
|
||||
* it's initialized.
|
||||
*/
|
||||
tinymce.create('tinymce.plugins.AutoResizePlugin', {
|
||||
/**
|
||||
* Initializes the plugin, this will be executed after the plugin has been created.
|
||||
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
||||
* of the editor instance to intercept that event.
|
||||
*
|
||||
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
||||
* @param {string} url Absolute URL to where the plugin is located.
|
||||
*/
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
if (ed.getParam('fullscreen_is_enabled'))
|
||||
return;
|
||||
|
||||
/**
|
||||
* This method gets executed each time the editor needs to resize.
|
||||
*/
|
||||
function resize() {
|
||||
var d = ed.getDoc(), b = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight;
|
||||
|
||||
// Get height differently depending on the browser used
|
||||
myHeight = tinymce.isIE ? b.scrollHeight : de.offsetHeight;
|
||||
|
||||
// Don't make it smaller than the minimum height
|
||||
if (myHeight > t.autoresize_min_height)
|
||||
resizeHeight = myHeight;
|
||||
|
||||
// Resize content element
|
||||
DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
|
||||
|
||||
// if we're throbbing, we'll re-throb to match the new size
|
||||
if (t.throbbing) {
|
||||
ed.setProgressState(false);
|
||||
ed.setProgressState(true);
|
||||
}
|
||||
};
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Define minimum height
|
||||
t.autoresize_min_height = ed.getElement().offsetHeight;
|
||||
|
||||
// Things to do when the editor is ready
|
||||
ed.onInit.add(function(ed, l) {
|
||||
// Show throbber until content area is resized properly
|
||||
ed.setProgressState(true);
|
||||
t.throbbing = true;
|
||||
|
||||
// Hide scrollbars
|
||||
ed.getBody().style.overflowY = "hidden";
|
||||
});
|
||||
|
||||
// Add appropriate listeners for resizing content area
|
||||
ed.onChange.add(resize);
|
||||
ed.onSetContent.add(resize);
|
||||
ed.onPaste.add(resize);
|
||||
ed.onKeyUp.add(resize);
|
||||
ed.onPostRender.add(resize);
|
||||
|
||||
ed.onLoadContent.add(function(ed, l) {
|
||||
resize();
|
||||
|
||||
// Because the content area resizes when its content CSS loads,
|
||||
// and we can't easily add a listener to its onload event,
|
||||
// we'll just trigger a resize after a short loading period
|
||||
setTimeout(function() {
|
||||
resize();
|
||||
|
||||
// Disable throbber
|
||||
ed.setProgressState(false);
|
||||
t.throbbing = false;
|
||||
}, 1250);
|
||||
});
|
||||
|
||||
// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
|
||||
ed.addCommand('mceAutoResize', resize);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns information about the plugin as a name/value array.
|
||||
* The current keys are longname, author, authorurl, infourl and version.
|
||||
*
|
||||
* @return {Object} Name/value array containing information about the plugin.
|
||||
*/
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Auto Resize',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin);
|
||||
})();
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.AutoSavePlugin',{init:function(ed,url){var t=this;t.editor=ed;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+"."+tinymce.minorVersion};},'static':{_beforeUnloadHandler:function(){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.getParam("fullscreen_is_enabled"))return;if(ed.isDirty()){msg=ed.getLang("autosave.unload_msg");return false;}});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.AutoSavePlugin",{init:function(a,b){var c=this;c.editor=a;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler},getInfo:function(){return{longname:"Auto save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave",version:tinymce.majorVersion+"."+tinymce.minorVersion}},"static":{_beforeUnloadHandler:function(){var a;tinymce.each(tinyMCE.editors,function(b){if(b.getParam("fullscreen_is_enabled")){return}if(b.isDirty()){a=b.getLang("autosave.unload_msg");return false}});return a}}});tinymce.PluginManager.add("autosave",tinymce.plugins.AutoSavePlugin)})();
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.BBCodePlugin',{init:function(ed,url){var t=this,dialect=ed.getParam('bbcode_dialect','punbb').toLowerCase();ed.onBeforeSetContent.add(function(ed,o){o.content=t['_'+dialect+'_bbcode2html'](o.content);});ed.onPostProcess.add(function(ed,o){if(o.set)o.content=t['_'+dialect+'_bbcode2html'](o.content);if(o.get)o.content=t['_'+dialect+'_html2bbcode'](o.content);});},getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");rep(/<u>/gi,"[u]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/ /gi," ");rep(/"/gi,"\"");rep(/</gi,"<");rep(/>/gi,">");rep(/&/gi,"&");return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(a,b){var d=this,c=a.getParam("bbcode_dialect","punbb").toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d["_"+c+"_bbcode2html"](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d["_"+c+"_bbcode2html"](f.content)}if(f.get){f.content=d["_"+c+"_html2bbcode"](f.content)}})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_punbb_html2bbcode:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");b(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");b(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");b(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");b(/<font>(.*?)<\/font>/gi,"$1");b(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");b(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");b(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");b(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");b(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");b(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");b(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");b(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");b(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");b(/<\/(strong|b)>/gi,"[/b]");b(/<(strong|b)>/gi,"[b]");b(/<\/(em|i)>/gi,"[/i]");b(/<(em|i)>/gi,"[i]");b(/<\/u>/gi,"[/u]");b(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");b(/<u>/gi,"[u]");b(/<blockquote[^>]*>/gi,"[quote]");b(/<\/blockquote>/gi,"[/quote]");b(/<br \/>/gi,"\n");b(/<br\/>/gi,"\n");b(/<br>/gi,"\n");b(/<p>/gi,"");b(/<\/p>/gi,"\n");b(/ /gi," ");b(/"/gi,'"');b(/</gi,"<");b(/>/gi,">");b(/&/gi,"&");return a},_punbb_bbcode2html:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/\n/gi,"<br />");b(/\[b\]/gi,"<strong>");b(/\[\/b\]/gi,"</strong>");b(/\[i\]/gi,"<em>");b(/\[\/i\]/gi,"</em>");b(/\[u\]/gi,"<u>");b(/\[\/u\]/gi,"</u>");b(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>');b(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>');b(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />');b(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>');b(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> ');b(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> ');return a}});tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})();
|
||||
|
|
@ -69,6 +69,8 @@
|
|||
rep(/<\/u>/gi,"[/u]");
|
||||
rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
|
||||
rep(/<u>/gi,"[u]");
|
||||
rep(/<blockquote[^>]*>/gi,"[quote]");
|
||||
rep(/<\/blockquote>/gi,"[/quote]");
|
||||
rep(/<br \/>/gi,"\n");
|
||||
rep(/<br\/>/gi,"\n");
|
||||
rep(/<br>/gi,"\n");
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);Event.add(document,'click',hide);},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x,offset_y:p1.y,constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
|
||||
(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(d){var f=this;f.editor=d;f.onContextMenu=new tinymce.util.Dispatcher(this);d.onContextMenu.add(function(g,h){if(!h.ctrlKey){f._getMenu(g).showMenu(h.clientX,h.clientY);a.add(g.getDoc(),"click",e);a.cancel(h)}});function e(){if(f._menu){f._menu.removeAll();f._menu.destroy();a.remove(d.getDoc(),"click",e)}}d.onMouseDown.add(e);d.onKeyDown.add(e)},getInfo:function(){return{longname:"Contextmenu",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getMenu:function(h){var l=this,f=l._menu,i=h.selection,e=i.isCollapsed(),d=i.getNode()||h.getBody(),g,k,j;if(f){f.removeAll();f.destroy()}k=b.getPos(h.getContentAreaContainer());j=b.getPos(h.getContainer());f=h.controlManager.createDropMenu("contextmenu",{offset_x:k.x+h.getParam("contextmenu_offset_x",0),offset_y:k.y+h.getParam("contextmenu_offset_y",0),constrain:1});l._menu=f;f.add({title:"advanced.cut_desc",icon:"cut",cmd:"Cut"}).setDisabled(e);f.add({title:"advanced.copy_desc",icon:"copy",cmd:"Copy"}).setDisabled(e);f.add({title:"advanced.paste_desc",icon:"paste",cmd:"Paste"});if((d.nodeName=="A"&&!h.dom.getAttrib(d,"name"))||!e){f.addSeparator();f.add({title:"advanced.link_desc",icon:"link",cmd:h.plugins.advlink?"mceAdvLink":"mceLink",ui:true});f.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"})}f.addSeparator();f.add({title:"advanced.image_desc",icon:"image",cmd:h.plugins.advimage?"mceAdvImage":"mceImage",ui:true});f.addSeparator();g=f.addMenu({title:"contextmenu.align"});g.add({title:"contextmenu.left",icon:"justifyleft",cmd:"JustifyLeft"});g.add({title:"contextmenu.center",icon:"justifycenter",cmd:"JustifyCenter"});g.add({title:"contextmenu.right",icon:"justifyright",cmd:"JustifyRight"});g.add({title:"contextmenu.full",icon:"justifyfull",cmd:"JustifyFull"});l.onContextMenu.dispatch(l,f,d,e);return f}});tinymce.PluginManager.add("contextmenu",tinymce.plugins.ContextMenu)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 665 2008-03-04 13:26:59Z spocke $
|
||||
* $Id: editor_plugin_src.js 848 2008-05-15 11:54:40Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
ed.onContextMenu.add(function(ed, e) {
|
||||
if (!e.ctrlKey) {
|
||||
t._getMenu(ed).showMenu(e.clientX, e.clientY);
|
||||
Event.add(ed.getDoc(), 'click', hide);
|
||||
Event.cancel(e);
|
||||
}
|
||||
});
|
||||
|
|
@ -26,12 +27,22 @@
|
|||
if (t._menu) {
|
||||
t._menu.removeAll();
|
||||
t._menu.destroy();
|
||||
Event.remove(ed.getDoc(), 'click', hide);
|
||||
}
|
||||
};
|
||||
|
||||
ed.onMouseDown.add(hide);
|
||||
ed.onKeyDown.add(hide);
|
||||
Event.add(document, 'click', hide);
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Contextmenu',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
_getMenu : function(ed) {
|
||||
|
|
@ -46,10 +57,8 @@
|
|||
p2 = DOM.getPos(ed.getContainer());
|
||||
|
||||
m = ed.controlManager.createDropMenu('contextmenu', {
|
||||
offset_x : p1.x,
|
||||
offset_y : p1.y,
|
||||
/* vp_offset_x : p2.x,
|
||||
vp_offset_y : p2.y,*/
|
||||
offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),
|
||||
offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),
|
||||
constrain : 1
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="ltr")ed.dom.setAttrib(e,"dir","ltr");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="rtl")ed.dom.setAttrib(e,"dir","rtl");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir=="ltr");cm.setDisabled('ltr',0);cm.setActive('rtl',dir=="rtl");cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})();
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.EmotionsPlugin",{init:function(a,b){a.addCommand("mceEmotion",function(){a.windowManager.open({file:b+"/emotions.htm",width:250+parseInt(a.getLang("emotions.delta_width",0)),height:160+parseInt(a.getLang("emotions.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("emotions",tinymce.plugins.EmotionsPlugin)})();
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{#emotions_dlg.title}</title>
|
||||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="js/emotions.js"></script>
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<div align="center">
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){ed.addCommand('mceExample',function(){ed.windowManager.open({file:url+'/dialog.htm',width:320+parseInt(ed.getLang('example.delta_width',0)),height:120+parseInt(ed.getLang('example.delta_height',0)),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Example plugin',author:'Some author',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('example',tinymce.plugins.ExamplePlugin);})();
|
||||
(function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})();
|
||||
|
|
@ -53,6 +53,10 @@
|
|||
height: 20px;
|
||||
}
|
||||
|
||||
#doctypes {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover {
|
||||
border: 1px solid #0A246A;
|
||||
background-color: #B6BDD2;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)>/i);if(attr&&attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);for(i=0,len=bdattr.length;i<len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^["'](.*)["']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content;c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';t.head+='\n<html>\n<head>\n<title>Untitled document</title>\n</head>\n<body>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.FullPagePlugin",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceFullPageProperties",function(){a.windowManager.open({file:b+"/fullpage.htm",width:430+parseInt(a.getLang("fullpage.delta_width",0)),height:495+parseInt(a.getLang("fullpage.delta_height",0)),inline:1},{plugin_url:b,head_html:c.head})});a.addButton("fullpage",{title:"fullpage.desc",cmd:"mceFullPageProperties"});a.onBeforeSetContent.add(c._setContent,c);a.onSetContent.add(c._setBodyAttribs,c);a.onGetContent.add(c._getContent,c)},getInfo:function(){return{longname:"Fullpage",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_setBodyAttribs:function(d,a){var l,c,e,g,b,h,j,f=this.head.match(/body(.*?)>/i);if(f&&f[1]){l=f[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);if(l){for(c=0,e=l.length;c<e;c++){g=l[c].split("=");b=g[0].replace(/\s/,"");h=g[1];if(h){h=h.replace(/^\s+/,"").replace(/\s+$/,"");j=h.match(/^["'](.*)["']$/);if(j){h=j[1]}}else{h=b}d.dom.setAttrib(d.getBody(),"style",h)}}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true})},_setContent:function(d,b){var h=this,a,j,f=b.content,g,i="";if(b.source_view&&d.getParam("fullpage_hide_in_source_view")){return}f=f.replace(/<(\/?)BODY/gi,"<$1body");a=f.indexOf("<body");if(a!=-1){a=f.indexOf(">",a);h.head=f.substring(0,a+1);j=f.indexOf("</body",a);if(j==-1){j=f.indexOf("</body",j)}b.content=f.substring(a+1,j);h.foot=f.substring(j);function e(c){return c.replace(/<\/?[A-Z]+/g,function(k){return k.toLowerCase()})}h.head=e(h.head);h.foot=e(h.foot)}else{h.head="";if(d.getParam("fullpage_default_xml_pi")){h.head+='<?xml version="1.0" encoding="'+d.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'}h.head+=d.getParam("fullpage_default_doctype",'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');h.head+="\n<html>\n<head>\n<title>"+d.getParam("fullpage_default_title","Untitled document")+"</title>\n";if(g=d.getParam("fullpage_default_encoding")){h.head+='<meta http-equiv="Content-Type" content="'+g+'" />\n'}if(g=d.getParam("fullpage_default_font_family")){i+="font-family: "+g+";"}if(g=d.getParam("fullpage_default_font_size")){i+="font-size: "+g+";"}if(g=d.getParam("fullpage_default_text_color")){i+="color: "+g+";"}h.head+="</head>\n<body"+(i?' style="'+i+'"':"")+">\n";h.foot="\n</body>\n</html>"}},_getContent:function(a,c){var b=this;if(!c.source_view||!a.getParam("fullpage_hide_in_source_view")){c.content=tinymce.trim(b.head)+"\n"+tinymce.trim(c.content)+"\n"+tinymce.trim(b.foot)}}});tinymce.PluginManager.add("fullpage",tinymce.plugins.FullPagePlugin)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 593 2008-02-13 13:00:12Z spocke $
|
||||
* $Id: editor_plugin_src.js 1029 2009-02-24 22:32:21Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -51,21 +51,23 @@
|
|||
if (attr && attr[1]) {
|
||||
bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);
|
||||
|
||||
for(i = 0, len = bdattr.length; i < len; i++) {
|
||||
kv = bdattr[i].split('=');
|
||||
k = kv[0].replace(/\s/,'');
|
||||
v = kv[1];
|
||||
if (bdattr) {
|
||||
for(i = 0, len = bdattr.length; i < len; i++) {
|
||||
kv = bdattr[i].split('=');
|
||||
k = kv[0].replace(/\s/,'');
|
||||
v = kv[1];
|
||||
|
||||
if (v) {
|
||||
v = v.replace(/^\s+/,'').replace(/\s+$/,'');
|
||||
t = v.match(/^["'](.*)["']$/);
|
||||
if (v) {
|
||||
v = v.replace(/^\s+/,'').replace(/\s+$/,'');
|
||||
t = v.match(/^["'](.*)["']$/);
|
||||
|
||||
if (t)
|
||||
v = t[1];
|
||||
} else
|
||||
v = k;
|
||||
if (t)
|
||||
v = t[1];
|
||||
} else
|
||||
v = k;
|
||||
|
||||
ed.dom.setAttrib(ed.getBody(), 'style', v);
|
||||
ed.dom.setAttrib(ed.getBody(), 'style', v);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -78,7 +80,10 @@
|
|||
},
|
||||
|
||||
_setContent : function(ed, o) {
|
||||
var t = this, sp, ep, c = o.content;
|
||||
var t = this, sp, ep, c = o.content, v, st = '';
|
||||
|
||||
if (o.source_view && ed.getParam('fullpage_hide_in_source_view'))
|
||||
return;
|
||||
|
||||
// Parse out head, body and footer
|
||||
c = c.replace(/<(\/?)BODY/gi, '<$1body');
|
||||
|
|
@ -104,8 +109,26 @@
|
|||
t.head = low(t.head);
|
||||
t.foot = low(t.foot);
|
||||
} else {
|
||||
t.head = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
|
||||
t.head += '\n<html>\n<head>\n<title>Untitled document</title>\n</head>\n<body>\n';
|
||||
t.head = '';
|
||||
if (ed.getParam('fullpage_default_xml_pi'))
|
||||
t.head += '<?xml version="1.0" encoding="' + ed.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n';
|
||||
|
||||
t.head += ed.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
|
||||
t.head += '\n<html>\n<head>\n<title>' + ed.getParam('fullpage_default_title', 'Untitled document') + '</title>\n';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_encoding'))
|
||||
t.head += '<meta http-equiv="Content-Type" content="' + v + '" />\n';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_font_family'))
|
||||
st += 'font-family: ' + v + ';';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_font_size'))
|
||||
st += 'font-size: ' + v + ';';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_text_color'))
|
||||
st += 'color: ' + v + ';';
|
||||
|
||||
t.head += '</head>\n<body' + (st ? ' style="' + st + '"' : '') + '>\n';
|
||||
t.foot = '\n</body>\n</html>';
|
||||
}
|
||||
},
|
||||
|
|
@ -113,7 +136,8 @@
|
|||
_getContent : function(ed, o) {
|
||||
var t = this;
|
||||
|
||||
o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);
|
||||
if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view'))
|
||||
o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="js/fullpage.js"></script>
|
||||
<link href="css/fullpage.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="advlink" style="display: none">
|
||||
<form onsubmit="updateAction();return false;" name="fullpage" action="#">
|
||||
|
|
@ -26,27 +25,27 @@
|
|||
|
||||
<table border="0" cellpadding="4" cellspacing="0">
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>
|
||||
<td class="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>
|
||||
<td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>
|
||||
<td class="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>
|
||||
<td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>
|
||||
<td class="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>
|
||||
<td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>
|
||||
<td class="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>
|
||||
<td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>
|
||||
<td class="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>
|
||||
<td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>
|
||||
<td class="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>
|
||||
<td>
|
||||
<select id="metarobots" name="metarobots">
|
||||
<option value="">{#not_set}</option>
|
||||
|
|
@ -73,7 +72,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label> </td>
|
||||
<td class="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label> </td>
|
||||
<td>
|
||||
<select id="doctypes" name="doctypes">
|
||||
<option value="">{#not_set}</option>
|
||||
|
|
@ -81,7 +80,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>
|
||||
<td class="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>
|
||||
<td><input type="text" id="langcode" name="langcode" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -95,7 +94,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>
|
||||
<td class="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>
|
||||
<td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ function init() {
|
|||
// Parse xml and doctype
|
||||
xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);
|
||||
xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);
|
||||
docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0);
|
||||
docType = getReItem(/<\!DOCTYPE.*?>/gi, h.replace(/\n/g, ''), 0).replace(/ +/g, ' ');
|
||||
f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1);
|
||||
|
||||
// Parse title
|
||||
|
|
@ -143,7 +143,7 @@ function init() {
|
|||
|
||||
switch (eq.toLowerCase()) {
|
||||
case "content-type":
|
||||
tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, value, 1);
|
||||
tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, va, 1);
|
||||
|
||||
// Override XML encoding
|
||||
if (tmp != "")
|
||||
|
|
@ -374,7 +374,6 @@ function updateAction() {
|
|||
}
|
||||
|
||||
function changedStyleField(field) {
|
||||
//alert(field.id);
|
||||
}
|
||||
|
||||
function setMeta(he, k, v) {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=document.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{window.setTimeout(function(){tinymce.dom.Event.remove(window,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(document.body,'overflow',ed.getParam('fullscreen_overflow'));window.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=window.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(document.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(document.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();window.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(document.body,'div',{id:'mce_fullscreen_container',style:'position:absolute;top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:150;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(window,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
|
||||
(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(c,d){var e=this,f={},b;e.editor=c;c.addCommand("mceFullScreen",function(){var h,i=a.doc.documentElement;if(c.getParam("fullscreen_is_enabled")){if(c.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",e.resizeFunc);tinyMCE.get(c.getParam("fullscreen_editor_id")).setContent(c.getContent({format:"raw"}),{format:"raw"});tinyMCE.remove(c);a.remove("mce_fullscreen_container");i.style.overflow=c.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",c.getParam("fullscreen_overflow"));a.win.scrollTo(c.getParam("fullscreen_scrollx"),c.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(c.getParam("fullscreen_new_window")){h=a.win.open(d+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{h.resizeTo(screen.availWidth,screen.availHeight)}catch(g){}}else{tinyMCE.oldSettings=tinyMCE.settings;f.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";f.fullscreen_html_overflow=a.getStyle(i,"overflow",1);b=a.getViewPort();f.fullscreen_scrollx=b.x;f.fullscreen_scrolly=b.y;if(tinymce.isOpera&&f.fullscreen_overflow=="visible"){f.fullscreen_overflow="auto"}if(tinymce.isIE&&f.fullscreen_overflow=="scroll"){f.fullscreen_overflow="auto"}if(tinymce.isIE&&(f.fullscreen_html_overflow=="visible"||f.fullscreen_html_overflow=="scroll")){f.fullscreen_html_overflow="auto"}if(f.fullscreen_overflow=="0px"){f.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");i.style.overflow="hidden";b=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){b.h-=1}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+(tinymce.isIE6||(tinymce.isIE&&!a.boxModel)?"absolute":"fixed")+";top:0;left:0;width:"+b.w+"px;height:"+b.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(c.settings,function(j,k){f[k]=j});f.id="mce_fullscreen";f.width=n.clientWidth;f.height=n.clientHeight-15;f.fullscreen_is_enabled=true;f.fullscreen_editor_id=c.id;f.theme_advanced_resizing=false;f.save_onsavecallback=function(){c.setContent(tinyMCE.get(f.id).getContent({format:"raw"}),{format:"raw"});c.execCommand("mceSave")};tinymce.each(c.getParam("fullscreen_settings"),function(l,j){f[j]=l});if(f.theme_advanced_toolbar_location==="external"){f.theme_advanced_toolbar_location="top"}e.fullscreenEditor=new tinymce.Editor("mce_fullscreen",f);e.fullscreenEditor.onInit.add(function(){e.fullscreenEditor.setContent(c.getContent());e.fullscreenEditor.focus()});e.fullscreenEditor.render();tinyMCE.add(e.fullscreenEditor);e.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");e.fullscreenElement.update();e.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var j=tinymce.DOM.getViewPort();e.fullscreenEditor.theme.resizeTo(j.w,j.h)})}});c.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});c.onNodeChange.add(function(h,g){g.setActive("fullscreen",h.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 689 2008-03-09 18:47:19Z spocke $
|
||||
* $Id: editor_plugin_src.js 923 2008-09-09 16:45:29Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -16,20 +16,20 @@
|
|||
|
||||
// Register commands
|
||||
ed.addCommand('mceFullScreen', function() {
|
||||
var win, de = document.documentElement;
|
||||
var win, de = DOM.doc.documentElement;
|
||||
|
||||
if (ed.getParam('fullscreen_is_enabled')) {
|
||||
if (ed.getParam('fullscreen_new_window'))
|
||||
closeFullscreen(); // Call to close in new window
|
||||
else {
|
||||
window.setTimeout(function() {
|
||||
tinymce.dom.Event.remove(window, 'resize', t.resizeFunc);
|
||||
DOM.win.setTimeout(function() {
|
||||
tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);
|
||||
tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});
|
||||
tinyMCE.remove(ed);
|
||||
DOM.remove('mce_fullscreen_container');
|
||||
de.style.overflow = ed.getParam('fullscreen_html_overflow');
|
||||
DOM.setStyle(document.body, 'overflow', ed.getParam('fullscreen_overflow'));
|
||||
window.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
|
||||
DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));
|
||||
DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
|
||||
tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings
|
||||
}, 10);
|
||||
}
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
}
|
||||
|
||||
if (ed.getParam('fullscreen_new_window')) {
|
||||
win = window.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
|
||||
win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
|
||||
try {
|
||||
win.resizeTo(screen.availWidth, screen.availHeight);
|
||||
} catch (e) {
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
}
|
||||
} else {
|
||||
tinyMCE.oldSettings = tinyMCE.settings; // Store old settings
|
||||
s.fullscreen_overflow = DOM.getStyle(document.body, 'overflow', 1) || 'auto';
|
||||
s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';
|
||||
s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);
|
||||
vp = DOM.getViewPort();
|
||||
s.fullscreen_scrollx = vp.x;
|
||||
|
|
@ -60,18 +60,22 @@
|
|||
if (tinymce.isIE && s.fullscreen_overflow == 'scroll')
|
||||
s.fullscreen_overflow = 'auto';
|
||||
|
||||
// Fixes an IE bug where the scrollbars doesn't reappear
|
||||
if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
|
||||
s.fullscreen_html_overflow = 'auto';
|
||||
|
||||
if (s.fullscreen_overflow == '0px')
|
||||
s.fullscreen_overflow = '';
|
||||
|
||||
DOM.setStyle(document.body, 'overflow', 'hidden');
|
||||
DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');
|
||||
de.style.overflow = 'hidden'; //Fix for IE6/7
|
||||
vp = DOM.getViewPort();
|
||||
window.scrollTo(0, 0);
|
||||
DOM.win.scrollTo(0, 0);
|
||||
|
||||
if (tinymce.isIE)
|
||||
vp.h -= 1;
|
||||
|
||||
n = DOM.add(document.body, 'div', {id : 'mce_fullscreen_container', style : 'position:absolute;top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:150;'});
|
||||
n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
|
||||
DOM.add(n, 'div', {id : 'mce_fullscreen'});
|
||||
|
||||
tinymce.each(ed.settings, function(v, n) {
|
||||
|
|
@ -99,6 +103,7 @@
|
|||
t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);
|
||||
t.fullscreenEditor.onInit.add(function() {
|
||||
t.fullscreenEditor.setContent(ed.getContent());
|
||||
t.fullscreenEditor.focus();
|
||||
});
|
||||
|
||||
t.fullscreenEditor.render();
|
||||
|
|
@ -108,7 +113,7 @@
|
|||
t.fullscreenElement.update();
|
||||
//document.body.overflow = 'hidden';
|
||||
|
||||
t.resizeFunc = tinymce.dom.Event.add(window, 'resize', function() {
|
||||
t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {
|
||||
var vp = tinymce.DOM.getViewPort();
|
||||
|
||||
t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
settings[key] = "window.opener." + settings[key];
|
||||
}
|
||||
|
||||
var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings;
|
||||
var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;
|
||||
|
||||
// Clone array
|
||||
for (var n in paSe)
|
||||
|
|
@ -41,13 +41,13 @@
|
|||
settings['ask'] = false;
|
||||
settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();
|
||||
settings['fullscreen_is_enabled'] = true;
|
||||
settings['fullscreen_editor_id'] = window.opener.tinyMCE.activeEditor.id;
|
||||
settings['fullscreen_editor_id'] = oeID;
|
||||
settings['theme_advanced_resizing'] = false;
|
||||
settings['strict_loading_mode'] = true;
|
||||
|
||||
settings.save_onsavecallback = function() {
|
||||
window.opener.tinyMCE.activeEditor.setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});
|
||||
window.opener.tinyMCE.activeEditor.execCommand('mceSave');
|
||||
window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});
|
||||
window.opener.tinyMCE.get(oeID).execCommand('mceSave');
|
||||
window.close();
|
||||
};
|
||||
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
}
|
||||
|
||||
function moveContent() {
|
||||
window.opener.tinyMCE.activeEditor.setContent(tinyMCE.activeEditor.getContent());
|
||||
window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());
|
||||
}
|
||||
|
||||
function closeFullscreen() {
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
function render() {
|
||||
var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;
|
||||
|
||||
e.value = window.opener.tinyMCE.activeEditor.getContent();
|
||||
e.value = window.opener.tinyMCE.get(oeID).getContent();
|
||||
|
||||
vp = dom.getViewPort();
|
||||
settings.width = vp.w;
|
||||
|
|
@ -96,7 +96,6 @@
|
|||
// Add onunload
|
||||
tinymce.dom.Event.add(window, "beforeunload", unloadHandler);
|
||||
</script>
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">
|
||||
<form onsubmit="doParentSubmit();">
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;ed.addCommand('mceIESpell',function(){try{sp=new ActiveXObject("ieSpell.ieSpellExtension");sp.CheckDocumentNode(ed.getDoc().documentElement);}catch(e){if(e.number==-2146827859){ed.windowManager.confirm(ed.getLang("iespell.download"),function(s){if(s)window.open('http://www.iespell.com/download.php','ieSpellDownload','');});}else ed.windowManager.alert("Error Loading ieSpell: Exception "+e.number);}});ed.addButton('iespell',{title:'iespell.iespell_desc',cmd:'mceIESpell'});},getInfo:function(){return{longname:'IESpell (IE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
|
||||
(function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 697 2008-03-11 10:33:06Z spocke $
|
||||
* $Id: editor_plugin_src.js 1150 2009-06-01 11:50:46Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -33,8 +33,9 @@
|
|||
var t = this;
|
||||
|
||||
t.parent(ed);
|
||||
t.zIndex = 1000;
|
||||
t.zIndex = 300000;
|
||||
t.count = 0;
|
||||
t.windows = {};
|
||||
},
|
||||
|
||||
open : function(f, p) {
|
||||
|
|
@ -47,7 +48,10 @@
|
|||
if (!f.inline)
|
||||
return t.parent(f, p);
|
||||
|
||||
t.bookmark = ed.selection.getBookmark('simple');
|
||||
// Only store selection if the type is a normal window
|
||||
if (!f.type)
|
||||
t.bookmark = ed.selection.getBookmark(1);
|
||||
|
||||
id = DOM.uniqueId();
|
||||
vp = DOM.getViewPort();
|
||||
f.width = parseInt(f.width || 320);
|
||||
|
|
@ -99,8 +103,8 @@
|
|||
opt += ' mceMovable';
|
||||
|
||||
// Create DOM objects
|
||||
t._addAll(document.body,
|
||||
['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', dir : 'ltr', style : 'width:100px;height:100px'},
|
||||
t._addAll(DOM.doc.body,
|
||||
['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', style : 'width:100px;height:100px'},
|
||||
['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},
|
||||
['div', {id : id + '_top', 'class' : 'mceTop'},
|
||||
['div', {'class' : 'mceLeft'}],
|
||||
|
|
@ -157,8 +161,12 @@
|
|||
DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});
|
||||
|
||||
u = f.url || f.file;
|
||||
if (tinymce.relaxedDomain)
|
||||
u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;
|
||||
if (u) {
|
||||
if (tinymce.relaxedDomain)
|
||||
u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;
|
||||
|
||||
u = tinymce._addVer(u);
|
||||
}
|
||||
|
||||
if (!f.type) {
|
||||
DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});
|
||||
|
|
@ -230,7 +238,6 @@
|
|||
});
|
||||
|
||||
// Add window
|
||||
t.windows = t.windows || {};
|
||||
w = t.windows[id] = {
|
||||
id : id,
|
||||
mousedown_func : mdf,
|
||||
|
|
@ -247,17 +254,20 @@
|
|||
});
|
||||
|
||||
// Setup blocker
|
||||
if (t.count == 0 && t.editor.getParam('dialog_type') == 'modal') {
|
||||
if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {
|
||||
DOM.add(DOM.doc.body, 'div', {
|
||||
id : 'mceModalBlocker',
|
||||
'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
|
||||
style : {left : vp.x, top : vp.y, width : vp.w, height : vp.h, zIndex : t.zIndex - 1}
|
||||
style : {zIndex : t.zIndex - 1}
|
||||
});
|
||||
|
||||
DOM.show('mceModalBlocker'); // Reduces flicker in IE
|
||||
} else
|
||||
DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
|
||||
|
||||
if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel))
|
||||
DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
|
||||
|
||||
t.focus(id);
|
||||
t._fixIELayout(id, 1);
|
||||
|
||||
|
|
@ -271,16 +281,18 @@
|
|||
},
|
||||
|
||||
focus : function(id) {
|
||||
var t = this, w = t.windows[id];
|
||||
var t = this, w;
|
||||
|
||||
w.zIndex = this.zIndex++;
|
||||
w.element.setStyle('zIndex', w.zIndex);
|
||||
w.element.update();
|
||||
if (w = t.windows[id]) {
|
||||
w.zIndex = this.zIndex++;
|
||||
w.element.setStyle('zIndex', w.zIndex);
|
||||
w.element.update();
|
||||
|
||||
id = id + '_wrapper';
|
||||
DOM.removeClass(t.lastId, 'mceFocus');
|
||||
DOM.addClass(id, 'mceFocus');
|
||||
t.lastId = id;
|
||||
id = id + '_wrapper';
|
||||
DOM.removeClass(t.lastId, 'mceFocus');
|
||||
DOM.addClass(id, 'mceFocus');
|
||||
t.lastId = id;
|
||||
}
|
||||
},
|
||||
|
||||
_addAll : function(te, ne) {
|
||||
|
|
@ -297,7 +309,7 @@
|
|||
},
|
||||
|
||||
_startDrag : function(id, se, ac) {
|
||||
var t = this, mu, mm, d = document, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;
|
||||
var t = this, mu, mm, d = DOM.doc, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;
|
||||
|
||||
// Get positons and sizes
|
||||
// cp = DOM.getPos(t.editor.getContainer());
|
||||
|
|
@ -342,8 +354,12 @@
|
|||
DOM.add(d.body, 'div', {
|
||||
id : 'mceEventBlocker',
|
||||
'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),
|
||||
style : {left : vp.x, top : vp.y, width : vp.w + 2, height : vp.h + 2, zIndex : 20001}
|
||||
style : {zIndex : t.zIndex + 1}
|
||||
});
|
||||
|
||||
if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))
|
||||
DOM.setStyles('mceEventBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
|
||||
|
||||
eb = new Element('mceEventBlocker');
|
||||
eb.update();
|
||||
|
||||
|
|
@ -459,23 +475,27 @@
|
|||
},
|
||||
|
||||
close : function(win, id) {
|
||||
var t = this, w, d = document, ix = 0, fw;
|
||||
var t = this, w, d = DOM.doc, ix = 0, fw, id;
|
||||
|
||||
id = t._findId(id || win);
|
||||
|
||||
// Probably not inline
|
||||
if (!t.windows[id]) {
|
||||
t.parent(win);
|
||||
return;
|
||||
}
|
||||
|
||||
t.count--;
|
||||
|
||||
if (t.count == 0)
|
||||
DOM.remove('mceModalBlocker');
|
||||
|
||||
// Probably not inline
|
||||
if (!id && win) {
|
||||
t.parent(win);
|
||||
return;
|
||||
}
|
||||
|
||||
if (w = t.windows[id]) {
|
||||
t.onClose.dispatch(t);
|
||||
Event.remove(d, 'mousedown', w.mousedownFunc);
|
||||
Event.remove(d, 'click', w.clickFunc);
|
||||
Event.clear(id);
|
||||
Event.clear(id + '_ifr');
|
||||
|
||||
DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak
|
||||
w.element.remove();
|
||||
|
|
@ -494,8 +514,13 @@
|
|||
}
|
||||
},
|
||||
|
||||
setTitle : function(ti, id) {
|
||||
DOM.get(id + '_title').innerHTML = DOM.encode(ti);
|
||||
setTitle : function(w, ti) {
|
||||
var e;
|
||||
|
||||
w = this._findId(w);
|
||||
|
||||
if (e = DOM.get(w + '_title'))
|
||||
e.innerHTML = DOM.encode(ti);
|
||||
},
|
||||
|
||||
alert : function(txt, cb, s) {
|
||||
|
|
@ -538,6 +563,24 @@
|
|||
|
||||
// Internal functions
|
||||
|
||||
_findId : function(w) {
|
||||
var t = this;
|
||||
|
||||
if (typeof(w) == 'string')
|
||||
return w;
|
||||
|
||||
each(t.windows, function(wo) {
|
||||
var ifr = DOM.get(wo.id + '_ifr');
|
||||
|
||||
if (ifr && w == ifr.contentWindow) {
|
||||
w = wo.id;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return w;
|
||||
},
|
||||
|
||||
_fixIELayout : function(id, s) {
|
||||
var w, img;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
/* Clearlooks 2 */
|
||||
|
||||
/* Reset */
|
||||
.clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
|
||||
.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
|
||||
|
||||
/* General */
|
||||
.clearlooks2 {position:absolute}
|
||||
.clearlooks2 {position:absolute; direction:ltr}
|
||||
.clearlooks2 .mceWrapper {position:static}
|
||||
.mceEventBlocker {position:absolute; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
|
||||
.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; filter:alpha(opacity=50)}
|
||||
.clearlooks2_modalBlocker {position:absolute; left:0; top:0; background:#FFF; opacity:0.6; filter:alpha(opacity=60); display:none}
|
||||
.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
|
||||
.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
|
||||
.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
|
||||
|
||||
/* Top */
|
||||
.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_dateFormat",ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_timeFormat",ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.addButton('inserttime',{title:'insertdatetime.inserttime_desc',cmd:'mceInsertTime'});},getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getDateTime:function(d,fmt){var ed=this.editor;function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;};fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
|
||||
(function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d)});a.addButton("insertdate",{title:"insertdatetime.insertdate_desc",cmd:"mceInsertDate"});a.addButton("inserttime",{title:"insertdatetime.inserttime_desc",cmd:"mceInsertTime"})},getInfo:function(){return{longname:"Insert date/time",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=""+g;if(g.length<d){for(var f=0;f<(d-g.length);f++){g="0"+g}}return g}a=a.replace("%D","%m/%d/%y");a=a.replace("%r","%I:%M:%S %p");a=a.replace("%Y",""+e.getFullYear());a=a.replace("%y",""+e.getYear());a=a.replace("%m",b(e.getMonth()+1,2));a=a.replace("%d",b(e.getDate(),2));a=a.replace("%H",""+b(e.getHours(),2));a=a.replace("%M",""+b(e.getMinutes(),2));a=a.replace("%S",""+b(e.getSeconds(),2));a=a.replace("%I",""+((e.getHours()+11)%12+1));a=a.replace("%p",""+(e.getHours()<12?"AM":"PM"));a=a.replace("%B",""+c.getLang("insertdatetime.months_long").split(",")[e.getMonth()]);a=a.replace("%b",""+c.getLang("insertdatetime.months_short").split(",")[e.getMonth()]);a=a.replace("%A",""+c.getLang("insertdatetime.day_long").split(",")[e.getDay()]);a=a.replace("%a",""+c.getLang("insertdatetime.day_short").split(",")[e.getDay()]);a=a.replace("%%","%");return a}});tinymce.PluginManager.add("insertdatetime",tinymce.plugins.InsertDateTime)})();
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertLayer',t._insertLayer,t);ed.addCommand('mceMoveForward',function(){t._move(1);});ed.addCommand('mceMoveBackward',function(){t._move(-1);});ed.addCommand('mceMakeAbsolute',function(){t._toggleAbsolute();});ed.addButton('moveforward',{title:'layer.forward_desc',cmd:'mceMoveForward'});ed.addButton('movebackward',{title:'layer.backward_desc',cmd:'mceMoveBackward'});ed.addButton('absolute',{title:'layer.absolute_desc',cmd:'mceMakeAbsolute'});ed.addButton('insertlayer',{title:'layer.insertlayer_desc',cmd:'mceInsertLayer'});ed.onInit.add(function(){if(tinymce.isIE)ed.getDoc().execCommand('2D-Position',false,true);});ed.onNodeChange.add(t._nodeChange,t);ed.onVisualAid.add(t._visualAid,t);},getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var le,p;le=this._getParentLayer(n);p=ed.dom.getParent(n,'DIV,P,IMG');if(!p){cm.setDisabled('absolute',1);cm.setDisabled('moveforward',1);cm.setDisabled('movebackward',1);}else{cm.setDisabled('absolute',0);cm.setDisabled('moveforward',!le);cm.setDisabled('movebackward',!le);cm.setActive('absolute',le&&le.style.position.toLowerCase()=="absolute");}},_visualAid:function(ed,e,s){var dom=ed.dom;tinymce.each(dom.select('div,p',e),function(e){if(/^(absolute|relative|static)$/i.test(e.style.position)){if(s)dom.addClass(e,'mceItemVisualAid');else dom.removeClass(e,'mceItemVisualAid');}});},_move:function(d){var ed=this.editor,i,z=[],le=this._getParentLayer(ed.selection.getNode()),ci=-1,fi=-1,nl;nl=[];tinymce.walk(ed.getBody(),function(n){if(n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position))nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i;}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1;}}else{for(i=0;i<z.length;i++){if(z[i]>z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else nl[ci].style.zIndex=z[ci]+1;}ed.execCommand('mceRepaint');},_getParentLayer:function(n){return this.editor.dom.getParent(n,function(n){return n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position);});},_insertLayer:function(){var ed=this.editor,p=ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(),'*'));ed.dom.add(ed.getBody(),'div',{style:{position:'absolute',left:p.x,top:(p.y>20?p.y:20),width:100,height:100},'class':'mceItemVisualAid'},ed.selection.getContent()||ed.getLang('layer.content'));},_toggleAbsolute:function(){var ed=this.editor,le=this._getParentLayer(ed.selection.getNode());if(!le)le=ed.dom.getParent(ed.selection.getNode(),'DIV,P,IMG');if(le){if(le.style.position.toLowerCase()=="absolute"){ed.dom.setStyles(le,{position:'',left:'',top:'',width:'',height:''});ed.dom.removeClass(le,'mceItemVisualAid');}else{if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';le.style.position="absolute";ed.addVisual(ed.getBody());}ed.execCommand('mceRepaint');ed.nodeChanged();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Layer",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertLayer",c._insertLayer,c);a.addCommand("mceMoveForward",function(){c._move(1)});a.addCommand("mceMoveBackward",function(){c._move(-1)});a.addCommand("mceMakeAbsolute",function(){c._toggleAbsolute()});a.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"});a.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"});a.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"});a.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"});a.onInit.add(function(){if(tinymce.isIE){a.getDoc().execCommand("2D-Position",false,true)}});a.onNodeChange.add(c._nodeChange,c);a.onVisualAid.add(c._visualAid,c)},getInfo:function(){return{longname:"Layer",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var c,d;c=this._getParentLayer(e);d=b.dom.getParent(e,"DIV,P,IMG");if(!d){a.setDisabled("absolute",1);a.setDisabled("moveforward",1);a.setDisabled("movebackward",1)}else{a.setDisabled("absolute",0);a.setDisabled("moveforward",!c);a.setDisabled("movebackward",!c);a.setActive("absolute",c&&c.style.position.toLowerCase()=="absolute")}},_visualAid:function(a,c,b){var d=a.dom;tinymce.each(d.select("div,p",c),function(f){if(/^(absolute|relative|static)$/i.test(f.style.position)){if(b){d.addClass(f,"mceItemVisualAid")}else{d.removeClass(f,"mceItemVisualAid")}}})},_move:function(h){var b=this.editor,f,g=[],e=this._getParentLayer(b.selection.getNode()),c=-1,j=-1,a;a=[];tinymce.walk(b.getBody(),function(d){if(d.nodeType==1&&/^(absolute|relative|static)$/i.test(d.style.position)){a.push(d)}},"childNodes");for(f=0;f<a.length;f++){g[f]=a[f].style.zIndex?parseInt(a[f].style.zIndex):0;if(c<0&&a[f]==e){c=f}}if(h<0){for(f=0;f<g.length;f++){if(g[f]<g[c]){j=f;break}}if(j>-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{if(g[c]>0){a[c].style.zIndex=g[c]-1}}}else{for(f=0;f<g.length;f++){if(g[f]>g[c]){j=f;break}}if(j>-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{a[c].style.zIndex=g[c]+1}}b.execCommand("mceRepaint")},_getParentLayer:function(a){return this.editor.dom.getParent(a,function(b){return b.nodeType==1&&/^(absolute|relative|static)$/i.test(b.style.position)})},_insertLayer:function(){var a=this.editor,b=a.dom.getPos(a.dom.getParent(a.selection.getNode(),"*"));a.dom.add(a.getBody(),"div",{style:{position:"absolute",left:b.x,top:(b.y>20?b.y:20),width:100,height:100},"class":"mceItemVisualAid"},a.selection.getContent()||a.getLang("layer.content"))},_toggleAbsolute:function(){var a=this.editor,b=this._getParentLayer(a.selection.getNode());if(!b){b=a.dom.getParent(a.selection.getNode(),"DIV,P,IMG")}if(b){if(b.style.position.toLowerCase()=="absolute"){a.dom.setStyles(b,{position:"",left:"",top:"",width:"",height:""});a.dom.removeClass(b,"mceItemVisualAid")}else{if(b.style.left==""){b.style.left=20+"px"}if(b.style.top==""){b.style.top=20+"px"}if(b.style.width==""){b.style.width=b.width?(b.width+"px"):"100px"}if(b.style.height==""){b.style.height=b.height?(b.height+"px"):"100px"}b.style.position="absolute";a.addVisual(a.getBody())}a.execCommand("mceRepaint");a.nodeChanged()}}});tinymce.PluginManager.add("layer",tinymce.plugins.Layer)})();
|
||||
|
|
@ -1,68 +1,16 @@
|
|||
#id, #name, #hspace, #vspace, #class_name, #align {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#hspace, #vspace {
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#flash_base, #flash_flashvars {
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
#width, #height {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
#src, #media_type {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
#class {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
#prev {
|
||||
margin: 0;
|
||||
border: 1px solid black;
|
||||
width: 99%;
|
||||
height: 230px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.panel_wrapper div.current {
|
||||
height: 390px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mceAddSelectValue {
|
||||
background-color: #DDDDDD;
|
||||
}
|
||||
|
||||
#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle {
|
||||
width: 90px;
|
||||
}
|
||||
|
||||
#qt_qtsrc {
|
||||
width: 200px;
|
||||
}
|
||||
#id, #name, #hspace, #vspace, #class_name, #align { width: 100px }
|
||||
#hspace, #vspace { width: 50px }
|
||||
#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }
|
||||
#flash_base, #flash_flashvars { width: 240px }
|
||||
#width, #height { width: 40px }
|
||||
#src, #media_type { width: 250px }
|
||||
#class { width: 120px }
|
||||
#prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto }
|
||||
.panel_wrapper div.current { height: 390px; overflow: auto }
|
||||
#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }
|
||||
.mceAddSelectValue { background-color: #DDDDDD }
|
||||
#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }
|
||||
#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }
|
||||
#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }
|
||||
#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }
|
||||
#qt_qtsrc { width: 200px }
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 615 2008-02-20 23:18:01Z spocke $
|
||||
* $Id: editor_plugin_src.js 1222 2009-09-03 17:26:47Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -19,6 +19,11 @@
|
|||
return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);
|
||||
};
|
||||
|
||||
ed.onPreInit.add(function() {
|
||||
// Force in _value parameter this extra parameter is required for older Opera versions
|
||||
ed.serializer.addRules('param[name|value|_mce_value]');
|
||||
});
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceMedia', function() {
|
||||
ed.windowManager.open({
|
||||
|
|
@ -47,9 +52,16 @@
|
|||
mceItemRealMedia : 'realmedia'
|
||||
};
|
||||
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
ed.selection.onSetContent.add(function() {
|
||||
t._spansToImgs(ed.getBody());
|
||||
});
|
||||
|
||||
if (ed.theme.onResolveName) {
|
||||
ed.selection.onBeforeSetContent.add(t._objectsToSpans, t);
|
||||
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
|
||||
if (ed.theme && ed.theme.onResolveName) {
|
||||
ed.theme.onResolveName.add(function(th, o) {
|
||||
if (o.name == 'img') {
|
||||
each(lo, function(v, k) {
|
||||
|
|
@ -72,23 +84,7 @@
|
|||
}
|
||||
});
|
||||
|
||||
ed.onBeforeSetContent.add(function(ed, o) {
|
||||
var h = o.content;
|
||||
|
||||
h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {
|
||||
var o = t._parse(c);
|
||||
|
||||
return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'
|
||||
});
|
||||
|
||||
h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
|
||||
h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
|
||||
h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');
|
||||
h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});
|
||||
h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');
|
||||
|
||||
o.content = h;
|
||||
});
|
||||
ed.onBeforeSetContent.add(t._objectsToSpans, t);
|
||||
|
||||
ed.onSetContent.add(function() {
|
||||
t._spansToImgs(ed.getBody());
|
||||
|
|
@ -166,17 +162,17 @@
|
|||
});
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
o.content = o.content.replace(/_value=/g, 'value=');
|
||||
o.content = o.content.replace(/_mce_value=/g, 'value=');
|
||||
});
|
||||
|
||||
if (ed.getParam('media_use_script')) {
|
||||
function getAttr(s, n) {
|
||||
n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);
|
||||
function getAttr(s, n) {
|
||||
n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);
|
||||
|
||||
return n ? ed.dom.decode(n[1]) : '';
|
||||
};
|
||||
return n ? ed.dom.decode(n[1]) : '';
|
||||
};
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
if (ed.getParam('media_use_script')) {
|
||||
o.content = o.content.replace(/<img[^>]+>/g, function(im) {
|
||||
var cl = getAttr(im, 'class');
|
||||
|
||||
|
|
@ -189,8 +185,8 @@
|
|||
|
||||
return im;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
|
|
@ -204,30 +200,72 @@
|
|||
},
|
||||
|
||||
// Private methods
|
||||
_objectsToSpans : function(ed, o) {
|
||||
var t = this, h = o.content;
|
||||
|
||||
h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {
|
||||
var o = t._parse(c);
|
||||
|
||||
return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + t.url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'
|
||||
});
|
||||
|
||||
h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
|
||||
h = h.replace(/<embed([^>]*)\/?>/gi, '<span class="mceItemEmbed" $1></span>');
|
||||
h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
|
||||
h = h.replace(/<\/(object)([^>]*)>/gi, '</span>');
|
||||
h = h.replace(/<\/embed>/gi, '');
|
||||
h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_mce_value=') + ' class="mceItemParam"></span>'});
|
||||
h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');
|
||||
|
||||
o.content = h;
|
||||
},
|
||||
|
||||
_buildObj : function(o, n) {
|
||||
var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);
|
||||
var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title), stc;
|
||||
|
||||
stc = ed.getParam('media_strict', true) && o.type == 'application/x-shockwave-flash';
|
||||
|
||||
p.width = o.width = dom.getAttrib(n, 'width') || 100;
|
||||
p.height = o.height = dom.getAttrib(n, 'height') || 100;
|
||||
|
||||
ob = dom.create('span', {
|
||||
mce_name : 'object',
|
||||
classid : "clsid:" + o.classid,
|
||||
codebase : o.codebase,
|
||||
width : o.width,
|
||||
height : o.height
|
||||
});
|
||||
|
||||
if (p.src)
|
||||
p.src = ed.convertURL(p.src, 'src', n);
|
||||
|
||||
if (stc) {
|
||||
ob = dom.create('span', {
|
||||
id : p.id,
|
||||
mce_name : 'object',
|
||||
type : 'application/x-shockwave-flash',
|
||||
data : p.src,
|
||||
style : dom.getAttrib(n, 'style'),
|
||||
width : o.width,
|
||||
height : o.height
|
||||
});
|
||||
} else {
|
||||
ob = dom.create('span', {
|
||||
id : p.id,
|
||||
mce_name : 'object',
|
||||
classid : "clsid:" + o.classid,
|
||||
style : dom.getAttrib(n, 'style'),
|
||||
codebase : o.codebase,
|
||||
width : o.width,
|
||||
height : o.height
|
||||
});
|
||||
}
|
||||
|
||||
each (p, function(v, k) {
|
||||
if (!/^(width|height|codebase|classid)$/.test(k))
|
||||
dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});
|
||||
if (!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(k)) {
|
||||
// Use url instead of src in IE for Windows media
|
||||
if (o.type == 'application/x-mplayer2' && k == 'src' && !p.url)
|
||||
k = 'url';
|
||||
|
||||
if (v)
|
||||
dom.add(ob, 'span', {mce_name : 'param', name : k, '_mce_value' : v});
|
||||
}
|
||||
});
|
||||
|
||||
dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));
|
||||
if (!stc)
|
||||
dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type, style : dom.getAttrib(n, 'style')}, p));
|
||||
|
||||
return ob;
|
||||
},
|
||||
|
|
@ -301,18 +339,21 @@
|
|||
},
|
||||
|
||||
_createImg : function(cl, n) {
|
||||
var im, dom = this.editor.dom, pa = {}, ti = '';
|
||||
var im, dom = this.editor.dom, pa = {}, ti = '', args;
|
||||
|
||||
args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality', 'data'];
|
||||
|
||||
// Create image
|
||||
im = dom.create('img', {
|
||||
src : this.url + '/img/trans.gif',
|
||||
width : dom.getAttrib(n, 'width') || 100,
|
||||
height : dom.getAttrib(n, 'height') || 100,
|
||||
style : dom.getAttrib(n, 'style'),
|
||||
'class' : cl
|
||||
});
|
||||
|
||||
// Setup base parameters
|
||||
each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {
|
||||
each(args, function(na) {
|
||||
var v = dom.getAttrib(n, na);
|
||||
|
||||
if (v)
|
||||
|
|
@ -322,7 +363,7 @@
|
|||
// Add optional parameters
|
||||
each(dom.select('span', n), function(n) {
|
||||
if (dom.hasClass(n, 'mceItemParam'))
|
||||
pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');
|
||||
pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_mce_value');
|
||||
});
|
||||
|
||||
// Use src not movie
|
||||
|
|
@ -331,6 +372,23 @@
|
|||
delete pa.movie;
|
||||
}
|
||||
|
||||
// No src try data
|
||||
if (!pa.src) {
|
||||
pa.src = pa.data;
|
||||
delete pa.data;
|
||||
}
|
||||
|
||||
// Merge with embed args
|
||||
n = dom.select('.mceItemEmbed', n)[0];
|
||||
if (n) {
|
||||
each(args, function(na) {
|
||||
var v = dom.getAttrib(n, na);
|
||||
|
||||
if (v && !pa[na])
|
||||
pa[na] = v;
|
||||
});
|
||||
}
|
||||
|
||||
delete pa.width;
|
||||
delete pa.height;
|
||||
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ function insertMedia() {
|
|||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(f)) {
|
||||
alert(ed.getLang('invalid_data'));
|
||||
tinyMCEPopup.alert(ed.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -218,7 +218,7 @@ function insertMedia() {
|
|||
break;
|
||||
}
|
||||
|
||||
if (fe.width != f.width.value || fe.height != f.height.height)
|
||||
if (fe.width != f.width.value || fe.height != f.height.value)
|
||||
ed.execCommand('mceRepaint');
|
||||
|
||||
fe.title = serializeParameters();
|
||||
|
|
@ -359,7 +359,9 @@ function changedType(t) {
|
|||
d.getElementById('shockwave_options').style.display = 'none';
|
||||
d.getElementById('wmp_options').style.display = 'none';
|
||||
d.getElementById('rmp_options').style.display = 'none';
|
||||
d.getElementById(t + '_options').style.display = 'block';
|
||||
|
||||
if (t)
|
||||
d.getElementById(t + '_options').style.display = 'block';
|
||||
}
|
||||
|
||||
function serializeParameters() {
|
||||
|
|
@ -467,7 +469,7 @@ function setBool(pl, p, n) {
|
|||
if (typeof(pl[n]) == "undefined")
|
||||
return;
|
||||
|
||||
document.forms[0].elements[p + "_" + n].checked = pl[n];
|
||||
document.forms[0].elements[p + "_" + n].checked = pl[n] != 'false';
|
||||
}
|
||||
|
||||
function setStr(pl, p, n) {
|
||||
|
|
@ -488,7 +490,7 @@ function getBool(p, n, d, tv, fv) {
|
|||
tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";
|
||||
fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";
|
||||
|
||||
return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');
|
||||
return (v == d) ? '' : n + (v ? ':' + tv + ',' : ":\'" + fv + "\',");
|
||||
}
|
||||
|
||||
function getStr(p, n, d) {
|
||||
|
|
@ -598,14 +600,17 @@ function generatePreview(c) {
|
|||
pl.name = !pl.name ? 'eobj' : pl.name;
|
||||
pl.align = !pl.align ? '' : pl.align;
|
||||
|
||||
h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';
|
||||
// Avoid annoying warning about insecure items
|
||||
if (!tinymce.isIE || document.location.protocol != 'https:') {
|
||||
h += '<object classid="' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';
|
||||
|
||||
for (n in pl) {
|
||||
h += '<param name="' + n + '" value="' + pl[n] + '">';
|
||||
for (n in pl) {
|
||||
h += '<param name="' + n + '" value="' + pl[n] + '">';
|
||||
|
||||
// Add extra url parameter if it's an absolute URL
|
||||
if (n == 'src' && pl[n].indexOf('://') != -1)
|
||||
h += '<param name="url" value="' + pl[n] + '" />';
|
||||
// Add extra url parameter if it's an absolute URL
|
||||
if (n == 'src' && pl[n].indexOf('://') != -1)
|
||||
h += '<param name="url" value="' + pl[n] + '" />';
|
||||
}
|
||||
}
|
||||
|
||||
h += '<embed type="' + type + '" ';
|
||||
|
|
@ -613,7 +618,11 @@ function generatePreview(c) {
|
|||
for (n in pl)
|
||||
h += n + '="' + pl[n] + '" ';
|
||||
|
||||
h += '></embed></object>';
|
||||
h += '></embed>';
|
||||
|
||||
// Avoid annoying warning about insecure items
|
||||
if (!tinymce.isIE || document.location.protocol != 'https:')
|
||||
h += '</object>';
|
||||
|
||||
p.innerHTML = "<!-- x --->" + h;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="../../utils/editable_selects.js"></script>
|
||||
<link href="css/media.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<form onsubmit="insertMedia();return false;" action="#">
|
||||
|
|
@ -33,7 +32,7 @@
|
|||
<option value="flash">Flash</option>
|
||||
<!-- <option value="flv">Flash video (FLV)</option> -->
|
||||
<option value="qt">Quicktime</option>
|
||||
<option value="shockwave">Shockware</option>
|
||||
<option value="shockwave">Shockwave</option>
|
||||
<option value="wmp">Windows Media</option>
|
||||
<option value="rmp">Real Media</option>
|
||||
</select>
|
||||
|
|
@ -52,7 +51,7 @@
|
|||
</tr>
|
||||
<tr id="linklistrow">
|
||||
<td><label for="linklist">{#media_dlg.list}</label></td>
|
||||
<td id="linklistcontainer"> </td>
|
||||
<td id="linklistcontainer"><select id="linklist"><option value=""></option></select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="width">{#media_dlg.size}</label></td>
|
||||
|
|
@ -260,8 +259,7 @@
|
|||
<td><label for="flv_defaultvolume">{#media_dlg.flv_defaultvolume}</label></td>
|
||||
<td><input type="text" id="flv_defaultvolume" name="flv_defaultvolume" onchange="generatePreview();" /></td>
|
||||
|
||||
<td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>
|
||||
<td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&&ed.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">·</span>':' ');});ed.addButton('nonbreaking',{title:'nonbreaking.nonbreaking_desc',cmd:'mceNonBreaking'});if(ed.getParam('nonbreaking_force_tab')){ed.onKeyDown.add(function(ed,e){if(tinymce.isIE&&e.keyCode==9){ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');tinymce.dom.Event.cancel(e);}});}},getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">·</span>':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(tinymce.isIE&&f.keyCode==9){d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");tinymce.dom.Event.cancel(f)}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})();
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.NonEditablePlugin',{init:function(ed,url){var t=this,editClass,nonEditClass;t.editor=ed;editClass=ed.getParam("noneditable_editable_class","mceEditable");nonEditClass=ed.getParam("noneditable_noneditable_class","mceNonEditable");ed.onNodeChange.addToTop(function(ed,cm,n){var sc,ec;sc=ed.dom.getParent(ed.selection.getStart(),function(n){return ed.dom.hasClass(n,nonEditClass);});ec=ed.dom.getParent(ed.selection.getEnd(),function(n){return ed.dom.hasClass(n,nonEditClass);});if(sc||ec){t._setDisabled(1);return false;}else t._setDisabled(0);});},getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_block:function(ed,e){return Event.cancel(e);},_setDisabled:function(s){var t=this,ed=t.editor;tinymce.each(ed.controlManager.controls,function(c){c.setDisabled(s);});if(s!==t.disabled){if(s){ed.onKeyDown.addToTop(t._block);ed.onKeyPress.addToTop(t._block);ed.onKeyUp.addToTop(t._block);ed.onPaste.addToTop(t._block);}else{ed.onKeyDown.remove(t._block);ed.onKeyPress.remove(t._block);ed.onKeyUp.remove(t._block);ed.onPaste.remove(t._block);}t.disabled=s;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
|
||||
(function(){var a=tinymce.dom.Event;tinymce.create("tinymce.plugins.NonEditablePlugin",{init:function(d,e){var f=this,c,b;f.editor=d;c=d.getParam("noneditable_editable_class","mceEditable");b=d.getParam("noneditable_noneditable_class","mceNonEditable");d.onNodeChange.addToTop(function(h,g,k){var j,i;j=h.dom.getParent(h.selection.getStart(),function(l){return h.dom.hasClass(l,b)});i=h.dom.getParent(h.selection.getEnd(),function(l){return h.dom.hasClass(l,b)});if(j||i){f._setDisabled(1);return false}else{f._setDisabled(0)}})},getInfo:function(){return{longname:"Non editable elements",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_block:function(c,d){var b=d.keyCode;if((b>32&&b<41)||(b>111&&b<124)){return}return a.cancel(d)},_setDisabled:function(d){var c=this,b=c.editor;tinymce.each(b.controlManager.controls,function(e){e.setDisabled(d)});if(d!==c.disabled){if(d){b.onKeyDown.addToTop(c._block);b.onKeyPress.addToTop(c._block);b.onKeyUp.addToTop(c._block);b.onPaste.addToTop(c._block)}else{b.onKeyDown.remove(c._block);b.onKeyPress.remove(c._block);b.onKeyUp.remove(c._block);b.onPaste.remove(c._block)}c.disabled=d}}});tinymce.PluginManager.add("noneditable",tinymce.plugins.NonEditablePlugin)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $
|
||||
* $Id: editor_plugin_src.js 743 2008-03-23 17:47:33Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -48,6 +48,12 @@
|
|||
},
|
||||
|
||||
_block : function(ed, e) {
|
||||
var k = e.keyCode;
|
||||
|
||||
// Don't block arrow keys, pg up/down, and F1-F12
|
||||
if ((k > 32 && k < 41) || (k > 111 && k < 124))
|
||||
return;
|
||||
|
||||
return Event.cancel(e);
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='<img src="'+url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','<!-- pagebreak -->'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});ed.addButton('pagebreak',{title:'pagebreak.desc',cmd:cls});ed.onInit.add(function(){ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName=='IMG'&&ed.dom.hasClass(o.node,cls))o.name='pagebreak';});}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls))ed.selection.select(e);});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('pagebreak',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls));});ed.onBeforeSetContent.add(function(ed,o){o.content=o.content.replace(pbRE,pb);});ed.onPostProcess.add(function(ed,o){if(o.get)o.content=o.content.replace(/<img[^>]+>/g,function(im){if(im.indexOf('class="mcePageBreak')!==-1)im=sep;return im;});});},getInfo:function(){return{longname:'PageBreak',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='<img src="'+d+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',a="mcePageBreak",c=b.getParam("pagebreak_separator","<!-- pagebreak -->"),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.settings.content_css!==false){b.dom.loadCSS(d+"/css/content.css")}if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/<img[^>]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})();
|
||||
|
|
@ -21,7 +21,8 @@
|
|||
ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
|
||||
if (ed.theme.onResolveName) {
|
||||
ed.theme.onResolveName.add(function(th, o) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,75 +1,179 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 650 2008-02-27 13:41:02Z spocke $
|
||||
* $Id: editor_plugin_src.js 1225 2009-09-07 19:06:19Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event;
|
||||
var each = tinymce.each;
|
||||
|
||||
tinymce.create('tinymce.plugins.PastePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
var t = this, cb;
|
||||
|
||||
t.editor = ed;
|
||||
t.editor = ed;
|
||||
t.url = url;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mcePasteText', function(ui, v) {
|
||||
if (ui) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/pastetext.htm',
|
||||
width : 450,
|
||||
height : 400,
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
} else
|
||||
t._insertText(v.html, v.linebreaks);
|
||||
// Setup plugin events
|
||||
t.onPreProcess = new tinymce.util.Dispatcher(t);
|
||||
t.onPostProcess = new tinymce.util.Dispatcher(t);
|
||||
|
||||
// Register default handlers
|
||||
t.onPreProcess.add(t._preProcess);
|
||||
t.onPostProcess.add(t._postProcess);
|
||||
|
||||
// Register optional preprocess handler
|
||||
t.onPreProcess.add(function(pl, o) {
|
||||
ed.execCallback('paste_preprocess', pl, o);
|
||||
});
|
||||
|
||||
ed.addCommand('mcePasteWord', function(ui, v) {
|
||||
if (ui) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/pasteword.htm',
|
||||
width : 450,
|
||||
height : 400,
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
} else
|
||||
t._insertWordContent(v);
|
||||
// Register optional postprocess
|
||||
t.onPostProcess.add(function(pl, o) {
|
||||
ed.execCallback('paste_postprocess', pl, o);
|
||||
});
|
||||
|
||||
ed.addCommand('mceSelectAll', function() {
|
||||
ed.execCommand('selectall');
|
||||
// This function executes the process handlers and inserts the contents
|
||||
function process(o) {
|
||||
var dom = ed.dom;
|
||||
|
||||
// Execute pre process handlers
|
||||
t.onPreProcess.dispatch(t, o);
|
||||
|
||||
// Create DOM structure
|
||||
o.node = dom.create('div', 0, o.content);
|
||||
|
||||
// Execute post process handlers
|
||||
t.onPostProcess.dispatch(t, o);
|
||||
|
||||
// Serialize content
|
||||
o.content = ed.serializer.serialize(o.node, {getInner : 1});
|
||||
|
||||
// Insert cleaned content. We need to handle insertion of contents containing block elements separately
|
||||
if (/<(p|h[1-6]|ul|ol)/.test(o.content))
|
||||
t._insertBlockContent(ed, dom, o.content);
|
||||
else
|
||||
t._insert(o.content);
|
||||
};
|
||||
|
||||
// Add command for external usage
|
||||
ed.addCommand('mceInsertClipboardContent', function(u, o) {
|
||||
process(o);
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});
|
||||
ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});
|
||||
ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});
|
||||
// This function grabs the contents from the clipboard by adding a
|
||||
// hidden div and placing the caret inside it and after the browser paste
|
||||
// is done it grabs that contents and processes that
|
||||
function grabContent(e) {
|
||||
var n, or, rng, sel = ed.selection, dom = ed.dom, body = ed.getBody(), posY;
|
||||
|
||||
if (ed.getParam("paste_auto_cleanup_on_paste", false)) {
|
||||
ed.onPaste.add(function(ed, e) {
|
||||
return t._handlePasteEvent(e)
|
||||
if (dom.get('_mcePaste'))
|
||||
return;
|
||||
|
||||
// Create container to paste into
|
||||
n = dom.add(body, 'div', {id : '_mcePaste'}, '\uFEFF');
|
||||
|
||||
// If contentEditable mode we need to find out the position of the closest element
|
||||
if (body != ed.getDoc().body)
|
||||
posY = dom.getPos(ed.selection.getStart(), body).y;
|
||||
else
|
||||
posY = body.scrollTop;
|
||||
|
||||
// Styles needs to be applied after the element is added to the document since WebKit will otherwise remove all styles
|
||||
dom.setStyles(n, {
|
||||
position : 'absolute',
|
||||
left : -10000,
|
||||
top : posY,
|
||||
width : 1,
|
||||
height : 1,
|
||||
overflow : 'hidden'
|
||||
});
|
||||
}
|
||||
|
||||
if (!tinymce.isIE && ed.getParam("paste_auto_cleanup_on_paste", false)) {
|
||||
// Force paste dialog if non IE browser
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
if (e.ctrlKey && e.keyCode == 86) {
|
||||
window.setTimeout(function() {
|
||||
ed.execCommand("mcePasteText", true);
|
||||
}, 1);
|
||||
if (tinymce.isIE) {
|
||||
// Select the container
|
||||
rng = dom.doc.body.createTextRange();
|
||||
rng.moveToElementText(n);
|
||||
rng.execCommand('Paste');
|
||||
|
||||
Event.cancel(e);
|
||||
// Remove container
|
||||
dom.remove(n);
|
||||
|
||||
// Check if the contents was changed, if it wasn't then clipboard extraction failed probably due
|
||||
// to IE security settings so we pass the junk though better than nothing right
|
||||
if (n.innerHTML === '\uFEFF') {
|
||||
ed.execCommand('mcePasteWord');
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
// Process contents
|
||||
process({content : n.innerHTML});
|
||||
|
||||
// Block the real paste event
|
||||
return tinymce.dom.Event.cancel(e);
|
||||
} else {
|
||||
or = ed.selection.getRng();
|
||||
|
||||
// Move caret into hidden div
|
||||
n = n.firstChild;
|
||||
rng = ed.getDoc().createRange();
|
||||
rng.setStart(n, 0);
|
||||
rng.setEnd(n, 1);
|
||||
sel.setRng(rng);
|
||||
|
||||
// Wait a while and grab the pasted contents
|
||||
window.setTimeout(function() {
|
||||
var h = '', nl = dom.select('div[id=_mcePaste]');
|
||||
|
||||
// WebKit will split the div into multiple ones so this will loop through then all and join them to get the whole HTML string
|
||||
each(nl, function(n) {
|
||||
h += (dom.select('> span.Apple-style-span div', n)[0] || dom.select('> span.Apple-style-span', n)[0] || n).innerHTML;
|
||||
});
|
||||
|
||||
// Remove the nodes
|
||||
each(nl, function(n) {
|
||||
dom.remove(n);
|
||||
});
|
||||
|
||||
// Restore the old selection
|
||||
if (or)
|
||||
sel.setRng(or);
|
||||
|
||||
process({content : h});
|
||||
}, 0);
|
||||
}
|
||||
};
|
||||
|
||||
// Check if we should use the new auto process method
|
||||
if (ed.getParam('paste_auto_cleanup_on_paste', true)) {
|
||||
// Is it's Opera or older FF use key handler
|
||||
if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
|
||||
grabContent(e);
|
||||
});
|
||||
} else {
|
||||
// Grab contents on paste event on Gecko and WebKit
|
||||
ed.onPaste.addToTop(function(ed, e) {
|
||||
return grabContent(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Block all drag/drop events
|
||||
if (ed.getParam('paste_block_drop')) {
|
||||
ed.onInit.add(function() {
|
||||
ed.dom.bind(ed.getBody(), ['dragend', 'dragover', 'draggesture', 'dragdrop', 'drop', 'drag'], function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Add legacy support
|
||||
t._legacySupport();
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
|
|
@ -82,297 +186,343 @@
|
|||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
_preProcess : function(pl, o) {
|
||||
var ed = this.editor, h = o.content, process, stripClass;
|
||||
|
||||
_handlePasteEvent : function(e) {
|
||||
var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;
|
||||
//console.log('Before preprocess:' + o.content);
|
||||
|
||||
// Removes italic, strong etc, the if was needed due to bug #1437114
|
||||
if (ed && (r = sel.getRng()) && r.text.length > 0)
|
||||
ed.execCommand('delete');
|
||||
function process(items) {
|
||||
each(items, function(v) {
|
||||
// Remove or replace
|
||||
if (v.constructor == RegExp)
|
||||
h = h.replace(v, '');
|
||||
else
|
||||
h = h.replace(v[0], v[1]);
|
||||
});
|
||||
};
|
||||
|
||||
if (html && html.length > 0)
|
||||
ed.execCommand('mcePasteWord', false, html);
|
||||
// Detect Word content and process it more aggressive
|
||||
if (/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(h) || o.wordContent) {
|
||||
o.wordContent = true; // Mark the pasted contents as word specific content
|
||||
//console.log('Word contents detected.');
|
||||
|
||||
return Event.cancel(e);
|
||||
// Process away some basic content
|
||||
process([
|
||||
/^\s*( )+/g, // nbsp entities at the start of contents
|
||||
/( |<br[^>]*>)+\s*$/g // nbsp entities at the end of contents
|
||||
]);
|
||||
|
||||
if (ed.getParam('paste_convert_middot_lists', true)) {
|
||||
process([
|
||||
[/<!--\[if !supportLists\]-->/gi, '$&__MCE_ITEM__'], // Convert supportLists to a list item marker
|
||||
[/(<span[^>]+:\s*symbol[^>]+>)/gi, '$1__MCE_ITEM__'], // Convert symbol spans to list items
|
||||
[/(<span[^>]+mso-list:[^>]+>)/gi, '$1__MCE_ITEM__'] // Convert mso-list to item marker
|
||||
]);
|
||||
}
|
||||
|
||||
process([
|
||||
/<!--[\s\S]+?-->/gi, // Word comments
|
||||
/<\/?(img|font|meta|link|style|div|v:\w+)[^>]*>/gi, // Remove some tags including VML content
|
||||
/<\\?\?xml[^>]*>/gi, // XML namespace declarations
|
||||
/<\/?o:[^>]*>/gi, // MS namespaced elements <o:tag>
|
||||
/ (id|name|language|type|on\w+|v:\w+)=\"([^\"]*)\"/gi, // on.., class, style and language attributes with quotes
|
||||
/ (id|name|language|type|on\w+|v:\w+)=(\w+)/gi, // on.., class, style and language attributes without quotes (IE)
|
||||
[/<(\/?)s>/gi, '<$1strike>'], // Convert <s> into <strike> for line-though
|
||||
/<script[^>]+>[\s\S]*?<\/script>/gi, // All scripts elements for msoShowComment for example
|
||||
[/ /g, '\u00a0'] // Replace nsbp entites to char since it's easier to handle
|
||||
]);
|
||||
|
||||
// Remove all spans if no styles is to be retained
|
||||
if (!ed.getParam('paste_retain_style_properties')) {
|
||||
process([
|
||||
/<\/?(span)[^>]*>/gi
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// Allow for class names to be retained if desired; either all, or just the ones from Word
|
||||
// Note that the paste_strip_class_attributes: 'none, verify_css_classes: true is also a good variation.
|
||||
stripClass = ed.getParam('paste_strip_class_attributes');
|
||||
if (stripClass != 'none') {
|
||||
// Cleans everything but mceItem... classes
|
||||
function cleanClasses(str, cls) {
|
||||
var i, out = '';
|
||||
|
||||
// Remove all classes
|
||||
if (stripClass == 'all')
|
||||
return '';
|
||||
|
||||
cls = tinymce.explode(cls, ' ');
|
||||
|
||||
for (i = cls.length - 1; i >= 0; i--) {
|
||||
// Remove Mso classes
|
||||
if (!/^(Mso)/i.test(cls[i]))
|
||||
out += (!out ? '' : ' ') + cls[i];
|
||||
}
|
||||
|
||||
return ' class="' + out + '"';
|
||||
};
|
||||
|
||||
process([
|
||||
[/ class=\"([^\"]*)\"/gi, cleanClasses], // class attributes with quotes
|
||||
[/ class=(\w+)/gi, cleanClasses] // class attributes without quotes (IE)
|
||||
]);
|
||||
}
|
||||
|
||||
// Remove spans option
|
||||
if (ed.getParam('paste_remove_spans')) {
|
||||
process([
|
||||
/<\/?(span)[^>]*>/gi
|
||||
]);
|
||||
}
|
||||
|
||||
//console.log('After preprocess:' + h);
|
||||
|
||||
o.content = h;
|
||||
},
|
||||
|
||||
_insertText : function(content, bLinebreaks) {
|
||||
if (content && content.length > 0) {
|
||||
if (bLinebreaks) {
|
||||
// Special paragraph treatment
|
||||
if (this.editor.getParam("paste_create_paragraphs", true)) {
|
||||
var rl = this.editor.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
|
||||
for (var i=0; i<rl.length; i+=2)
|
||||
content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
|
||||
/**
|
||||
* Various post process items.
|
||||
*/
|
||||
_postProcess : function(pl, o) {
|
||||
var t = this, ed = t.editor, dom = ed.dom, styleProps;
|
||||
|
||||
content = content.replace(/\r\n\r\n/g, '</p><p>');
|
||||
content = content.replace(/\r\r/g, '</p><p>');
|
||||
content = content.replace(/\n\n/g, '</p><p>');
|
||||
if (o.wordContent) {
|
||||
// Remove named anchors or TOC links
|
||||
each(dom.select('a', o.node), function(a) {
|
||||
if (!a.href || a.href.indexOf('#_Toc') != -1)
|
||||
dom.remove(a, 1);
|
||||
});
|
||||
|
||||
// Has paragraphs
|
||||
if ((pos = content.indexOf('</p><p>')) != -1) {
|
||||
this.editor.execCommand("Delete");
|
||||
if (t.editor.getParam('paste_convert_middot_lists', true))
|
||||
t._convertLists(pl, o);
|
||||
|
||||
var node = this.editor.selection.getNode();
|
||||
// Process styles
|
||||
styleProps = ed.getParam('paste_retain_style_properties'); // retained properties
|
||||
|
||||
// Get list of elements to break
|
||||
var breakElms = [];
|
||||
// If string property then split it
|
||||
if (tinymce.is(styleProps, 'string'))
|
||||
styleProps = tinymce.explode(styleProps);
|
||||
|
||||
do {
|
||||
if (node.nodeType == 1) {
|
||||
// Don't break tables and break at body
|
||||
if (node.nodeName == "TD" || node.nodeName == "BODY")
|
||||
break;
|
||||
|
||||
breakElms[breakElms.length] = node;
|
||||
}
|
||||
} while(node = node.parentNode);
|
||||
// Retains some style properties
|
||||
each(dom.select('*', o.node), function(el) {
|
||||
var newStyle = {}, npc = 0, i, sp, sv;
|
||||
|
||||
var before = "", after = "</p>";
|
||||
before += content.substring(0, pos);
|
||||
// Store a subset of the existing styles
|
||||
if (styleProps) {
|
||||
for (i = 0; i < styleProps.length; i++) {
|
||||
sp = styleProps[i];
|
||||
sv = dom.getStyle(el, sp);
|
||||
|
||||
for (var i=0; i<breakElms.length; i++) {
|
||||
before += "</" + breakElms[i].nodeName + ">";
|
||||
after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">";
|
||||
}
|
||||
|
||||
before += "<p>";
|
||||
content = before + content.substring(pos+7) + after;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.editor.getParam("paste_create_linebreaks", true)) {
|
||||
content = content.replace(/\r\n/g, '<br />');
|
||||
content = content.replace(/\r/g, '<br />');
|
||||
content = content.replace(/\n/g, '<br />');
|
||||
if (sv) {
|
||||
newStyle[sp] = sv;
|
||||
npc++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.editor.execCommand("mceInsertRawHTML", false, content);
|
||||
|
||||
// Remove all of the existing styles
|
||||
dom.setAttrib(el, 'style', '');
|
||||
|
||||
if (styleProps && npc > 0)
|
||||
dom.setStyles(el, newStyle); // Add back the stored subset of styles
|
||||
else // Remove empty span tags that do not have class attributes
|
||||
if (el.nodeName == 'SPAN' && !el.className)
|
||||
dom.remove(el, true);
|
||||
});
|
||||
}
|
||||
|
||||
// Remove all style information or only specifically on WebKit to avoid the style bug on that browser
|
||||
if (ed.getParam("paste_remove_styles") || (ed.getParam("paste_remove_styles_if_webkit") && tinymce.isWebKit)) {
|
||||
each(dom.select('*[style]', o.node), function(el) {
|
||||
el.removeAttribute('style');
|
||||
el.removeAttribute('mce_style');
|
||||
});
|
||||
} else {
|
||||
if (tinymce.isWebKit) {
|
||||
// We need to compress the styles on WebKit since if you paste <img border="0" /> it will become <img border="0" style="... lots of junk ..." />
|
||||
// Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
|
||||
each(dom.select('*', o.node), function(el) {
|
||||
el.removeAttribute('mce_style');
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_insertWordContent : function(content) {
|
||||
/**
|
||||
* Converts the most common bullet and number formats in Office into a real semantic UL/LI list.
|
||||
*/
|
||||
_convertLists : function(pl, o) {
|
||||
var dom = pl.editor.dom, listElm, li, lastMargin = -1, margin, levels = [], lastType, html;
|
||||
|
||||
// Convert middot lists into real semantic lists
|
||||
each(dom.select('p', o.node), function(p) {
|
||||
var sib, val = '', type, html, idx, parents;
|
||||
|
||||
// Get text node value at beginning of paragraph
|
||||
for (sib = p.firstChild; sib && sib.nodeType == 3; sib = sib.nextSibling)
|
||||
val += sib.nodeValue;
|
||||
|
||||
val = p.innerHTML.replace(/<\/?\w+[^>]*>/gi, '').replace(/ /g, '\u00a0');
|
||||
|
||||
// Detect unordered lists look for bullets
|
||||
if (/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o]\s*\u00a0*/.test(val))
|
||||
type = 'ul';
|
||||
|
||||
// Detect ordered lists 1., a. or ixv.
|
||||
if (/^__MCE_ITEM__\s*\w+\.\s*\u00a0{2,}/.test(val))
|
||||
type = 'ol';
|
||||
|
||||
// Check if node value matches the list pattern: o
|
||||
if (type) {
|
||||
margin = parseFloat(p.style.marginLeft || 0);
|
||||
|
||||
if (margin > lastMargin)
|
||||
levels.push(margin);
|
||||
|
||||
if (!listElm || type != lastType) {
|
||||
listElm = dom.create(type);
|
||||
dom.insertAfter(listElm, p);
|
||||
} else {
|
||||
// Nested list element
|
||||
if (margin > lastMargin) {
|
||||
listElm = li.appendChild(dom.create(type));
|
||||
} else if (margin < lastMargin) {
|
||||
// Find parent level based on margin value
|
||||
idx = tinymce.inArray(levels, margin);
|
||||
parents = dom.getParents(listElm.parentNode, type);
|
||||
listElm = parents[parents.length - 1 - idx] || listElm;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove middot or number spans if they exists
|
||||
each(dom.select('span', p), function(span) {
|
||||
var html = span.innerHTML.replace(/<\/?\w+[^>]*>/gi, '');
|
||||
|
||||
// Remove span with the middot or the number
|
||||
if (type == 'ul' && /^[\u2022\u00b7\u00a7\u00d8o]/.test(html))
|
||||
dom.remove(span);
|
||||
else if (/^[\s\S]*\w+\.( |\u00a0)*\s*/.test(html))
|
||||
dom.remove(span);
|
||||
});
|
||||
|
||||
html = p.innerHTML;
|
||||
|
||||
// Remove middot/list items
|
||||
if (type == 'ul')
|
||||
html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^[\u2022\u00b7\u00a7\u00d8o]\s*( |\u00a0)+\s*/, '');
|
||||
else
|
||||
html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^\s*\w+\.( |\u00a0)+\s*/, '');
|
||||
|
||||
// Create li and add paragraph data into the new li
|
||||
li = listElm.appendChild(dom.create('li', 0, html));
|
||||
dom.remove(p);
|
||||
|
||||
lastMargin = margin;
|
||||
lastType = type;
|
||||
} else
|
||||
listElm = lastMargin = 0; // End list element
|
||||
});
|
||||
|
||||
// Remove any left over makers
|
||||
html = o.node.innerHTML;
|
||||
if (html.indexOf('__MCE_ITEM__') != -1)
|
||||
o.node.innerHTML = html.replace(/__MCE_ITEM__/g, '');
|
||||
},
|
||||
|
||||
/**
|
||||
* This method will split the current block parent and insert the contents inside the split position.
|
||||
* This logic can be improved so text nodes at the start/end remain in the start/end block elements
|
||||
*/
|
||||
_insertBlockContent : function(ed, dom, content) {
|
||||
var parentBlock, marker, sel = ed.selection, last, elm, vp, y, elmHeight;
|
||||
|
||||
function select(n) {
|
||||
var r;
|
||||
|
||||
if (tinymce.isIE) {
|
||||
r = ed.getDoc().body.createTextRange();
|
||||
r.moveToElementText(n);
|
||||
r.collapse(false);
|
||||
r.select();
|
||||
} else {
|
||||
sel.select(n, 1);
|
||||
sel.collapse(false);
|
||||
}
|
||||
};
|
||||
|
||||
// Insert a marker for the caret position
|
||||
this._insert('<span id="_marker"> </span>', 1);
|
||||
marker = dom.get('_marker');
|
||||
parentBlock = dom.getParent(marker, 'p,h1,h2,h3,h4,h5,h6,ul,ol,th,td');
|
||||
|
||||
// If it's a parent block but not a table cell
|
||||
if (parentBlock && !/TD|TH/.test(parentBlock.nodeName)) {
|
||||
// Split parent block
|
||||
marker = dom.split(parentBlock, marker);
|
||||
|
||||
// Insert nodes before the marker
|
||||
each(dom.create('div', 0, content).childNodes, function(n) {
|
||||
last = marker.parentNode.insertBefore(n.cloneNode(true), marker);
|
||||
});
|
||||
|
||||
// Move caret after marker
|
||||
select(last);
|
||||
} else {
|
||||
dom.setOuterHTML(marker, content);
|
||||
sel.select(ed.getBody(), 1);
|
||||
sel.collapse(0);
|
||||
}
|
||||
|
||||
dom.remove('_marker'); // Remove marker if it's left
|
||||
|
||||
// Get element, position and height
|
||||
elm = sel.getStart();
|
||||
vp = dom.getViewPort(ed.getWin());
|
||||
y = ed.dom.getPos(elm).y;
|
||||
elmHeight = elm.clientHeight;
|
||||
|
||||
// Is element within viewport if not then scroll it into view
|
||||
if (y < vp.y || y + elmHeight > vp.y + vp.h)
|
||||
ed.getDoc().body.scrollTop = y < vp.y ? y : y - vp.h + 25;
|
||||
},
|
||||
|
||||
/**
|
||||
* Inserts the specified contents at the caret position.
|
||||
*/
|
||||
_insert : function(h, skip_undo) {
|
||||
var ed = this.editor;
|
||||
|
||||
// First delete the contents seems to work better on WebKit
|
||||
if (!ed.selection.isCollapsed())
|
||||
ed.getDoc().execCommand('Delete', false, null);
|
||||
|
||||
// It's better to use the insertHTML method on Gecko since it will combine paragraphs correctly before inserting the contents
|
||||
ed.execCommand(tinymce.isGecko ? 'insertHTML' : 'mceInsertContent', false, h, {skip_undo : skip_undo});
|
||||
},
|
||||
|
||||
/**
|
||||
* This method will open the old style paste dialogs. Some users might want the old behavior but still use the new cleanup engine.
|
||||
*/
|
||||
_legacySupport : function() {
|
||||
var t = this, ed = t.editor;
|
||||
|
||||
if (content && content.length > 0) {
|
||||
// Cleanup Word content
|
||||
var bull = String.fromCharCode(8226);
|
||||
var middot = String.fromCharCode(183);
|
||||
// Register commands for backwards compatibility
|
||||
each(['mcePasteText', 'mcePasteWord'], function(cmd) {
|
||||
ed.addCommand(cmd, function() {
|
||||
ed.windowManager.open({
|
||||
file : t.url + (cmd == 'mcePasteText' ? '/pastetext.htm' : '/pasteword.htm'),
|
||||
width : parseInt(ed.getParam("paste_dialog_width", "450")),
|
||||
height : parseInt(ed.getParam("paste_dialog_height", "400")),
|
||||
inline : 1
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
if (ed.getParam('paste_insert_word_content_callback'))
|
||||
content = ed.execCallback('paste_insert_word_content_callback', 'before', content);
|
||||
|
||||
var rl = ed.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
|
||||
for (var i=0; i<rl.length; i+=2)
|
||||
content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
|
||||
|
||||
if (this.editor.getParam("paste_convert_headers_to_strong", false)) {
|
||||
content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
|
||||
}
|
||||
|
||||
content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
|
||||
content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
|
||||
content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
|
||||
content = content.replace(/<o:p><\/o:p>/gi, "");
|
||||
content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
|
||||
content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), ""); // Word comments
|
||||
|
||||
if (this.editor.getParam("paste_remove_spans", true))
|
||||
content = content.replace(/<\/?span[^>]*>/gi, "");
|
||||
|
||||
if (this.editor.getParam("paste_remove_styles", true))
|
||||
content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
|
||||
|
||||
content = content.replace(/<\/?font[^>]*>/gi, "");
|
||||
|
||||
// Strips class attributes.
|
||||
switch (this.editor.getParam("paste_strip_class_attributes", "all")) {
|
||||
case "all":
|
||||
content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
|
||||
break;
|
||||
|
||||
case "mso":
|
||||
content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");
|
||||
break;
|
||||
}
|
||||
|
||||
content = content.replace(new RegExp('href="?' + this._reEscape("" + document.location) + '', 'gi'), 'href="' + this.editor.documentBaseURI.getURI());
|
||||
content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
|
||||
content = content.replace(/<\\?\?xml[^>]*>/gi, "");
|
||||
content = content.replace(/<\/?\w+:[^>]*>/gi, "");
|
||||
content = content.replace(/-- page break --\s*<p> <\/p>/gi, ""); // Remove pagebreaks
|
||||
content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
|
||||
|
||||
// content = content.replace(/\/? */gi, "");
|
||||
// content = content.replace(/<p> <\/p>/gi, '');
|
||||
|
||||
if (!this.editor.getParam('force_p_newlines')) {
|
||||
content = content.replace('', '' ,'gi');
|
||||
content = content.replace('</p>', '<br /><br />' ,'gi');
|
||||
}
|
||||
|
||||
if (!tinymce.isIE && !this.editor.getParam('force_p_newlines')) {
|
||||
content = content.replace(/<\/?p[^>]*>/gi, "");
|
||||
}
|
||||
|
||||
content = content.replace(/<\/?div[^>]*>/gi, "");
|
||||
|
||||
// Convert all middlot lists to UL lists
|
||||
if (this.editor.getParam("paste_convert_middot_lists", true)) {
|
||||
var div = ed.dom.create("div", null, content);
|
||||
|
||||
// Convert all middot paragraphs to li elements
|
||||
var className = this.editor.getParam("paste_unindented_list_class", "unIndentedList");
|
||||
|
||||
while (this._convertMiddots(div, "--list--")) ; // bull
|
||||
while (this._convertMiddots(div, middot, className)) ; // Middot
|
||||
while (this._convertMiddots(div, bull)) ; // bull
|
||||
|
||||
content = div.innerHTML;
|
||||
}
|
||||
|
||||
// Replace all headers with strong and fix some other issues
|
||||
if (this.editor.getParam("paste_convert_headers_to_strong", false)) {
|
||||
content = content.replace(/<h[1-6]> <\/h[1-6]>/gi, '<p> </p>');
|
||||
content = content.replace(/<h[1-6]>/gi, '<p><b>');
|
||||
content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
|
||||
content = content.replace(/<b> <\/b>/gi, '<b> </b>');
|
||||
content = content.replace(/^( )*/gi, '');
|
||||
}
|
||||
|
||||
content = content.replace(/--list--/gi, ""); // Remove --list--
|
||||
|
||||
if (ed.getParam('paste_insert_word_content_callback'))
|
||||
content = ed.execCallback('paste_insert_word_content_callback', 'after', content);
|
||||
|
||||
// Insert cleaned content
|
||||
this.editor.execCommand("mceInsertContent", false, content);
|
||||
|
||||
if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {
|
||||
var ed = this.editor;
|
||||
|
||||
window.setTimeout(function() {
|
||||
ed.execCommand("mceCleanup");
|
||||
}, 1); // Do normal cleanup detached from this thread
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_reEscape : function(s) {
|
||||
var l = "?.\\*[](){}+^$:";
|
||||
var o = "";
|
||||
|
||||
for (var i=0; i<s.length; i++) {
|
||||
var c = s.charAt(i);
|
||||
|
||||
if (l.indexOf(c) != -1)
|
||||
o += '\\' + c;
|
||||
else
|
||||
o += c;
|
||||
}
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
_convertMiddots : function(div, search, class_name) {
|
||||
var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);
|
||||
var nodes, prevul, i, p, ul, li, np, cp, li;
|
||||
|
||||
nodes = div.getElementsByTagName("p");
|
||||
for (i=0; i<nodes.length; i++) {
|
||||
p = nodes[i];
|
||||
|
||||
// Is middot
|
||||
if (p.innerHTML.indexOf(search) == 0) {
|
||||
ul = ed.dom.create("ul");
|
||||
|
||||
if (class_name)
|
||||
ul.className = class_name;
|
||||
|
||||
// Add the first one
|
||||
li = ed.dom.create("li");
|
||||
li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
|
||||
ul.appendChild(li);
|
||||
|
||||
// Add the rest
|
||||
np = p.nextSibling;
|
||||
while (np) {
|
||||
// If the node is whitespace, then
|
||||
// ignore it and continue on.
|
||||
if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {
|
||||
np = np.nextSibling;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (search == mdot) {
|
||||
if (np.nodeType == 1 && new RegExp('^o(\\s+| )').test(np.innerHTML)) {
|
||||
// Second level of nesting
|
||||
if (!prevul) {
|
||||
prevul = ul;
|
||||
ul = ed.dom.create("ul");
|
||||
prevul.appendChild(ul);
|
||||
}
|
||||
np.innerHTML = np.innerHTML.replace(/^o/, '');
|
||||
} else {
|
||||
// Pop the stack if we're going back up to the first level
|
||||
if (prevul) {
|
||||
ul = prevul;
|
||||
prevul = null;
|
||||
}
|
||||
// Not element or middot paragraph
|
||||
if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// Not element or middot paragraph
|
||||
if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
cp = np.nextSibling;
|
||||
li = ed.dom.create("li");
|
||||
li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
|
||||
np.parentNode.removeChild(np);
|
||||
ul.appendChild(li);
|
||||
np = cp;
|
||||
}
|
||||
|
||||
p.parentNode.replaceChild(ul, p);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
_clipboardHTML : function() {
|
||||
var div = document.getElementById('_TinyMCE_clipboardHTML');
|
||||
|
||||
if (!div) {
|
||||
var div = document.createElement('DIV');
|
||||
div.id = '_TinyMCE_clipboardHTML';
|
||||
|
||||
with (div.style) {
|
||||
visibility = 'hidden';
|
||||
overflow = 'hidden';
|
||||
position = 'absolute';
|
||||
width = 1;
|
||||
height = 1;
|
||||
}
|
||||
|
||||
document.body.appendChild(div);
|
||||
}
|
||||
|
||||
div.innerHTML = '';
|
||||
var rng = document.body.createTextRange();
|
||||
rng.moveToElementText(div);
|
||||
rng.execCommand('Paste');
|
||||
var html = div.innerHTML;
|
||||
div.innerHTML = '';
|
||||
return html;
|
||||
// Register buttons for backwards compatibility
|
||||
ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText'});
|
||||
ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord'});
|
||||
ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'selectall'});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,42 +1,36 @@
|
|||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function saveContent() {
|
||||
if (document.forms[0].htmlSource.value == '') {
|
||||
var PasteTextDialog = {
|
||||
init : function() {
|
||||
this.resize();
|
||||
},
|
||||
|
||||
insert : function() {
|
||||
var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
|
||||
|
||||
// Convert linebreaks into paragraphs
|
||||
if (document.getElementById('linebreaks').checked) {
|
||||
lines = h.split(/\r?\n/);
|
||||
if (lines.length > 1) {
|
||||
h = '';
|
||||
tinymce.each(lines, function(row) {
|
||||
h += '<p>' + row + '</p>';
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
|
||||
tinyMCEPopup.close();
|
||||
return false;
|
||||
},
|
||||
|
||||
resize : function() {
|
||||
var vp = tinyMCEPopup.dom.getViewPort(window), el;
|
||||
|
||||
el = document.getElementById('content');
|
||||
|
||||
el.style.width = (vp.w - 20) + 'px';
|
||||
el.style.height = (vp.h - 90) + 'px';
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.execCommand('mcePasteText', false, {
|
||||
html : document.forms[0].htmlSource.value,
|
||||
linebreaks : document.forms[0].linebreaks.checked
|
||||
});
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function onLoadInit() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
// Remove Gecko spellchecking
|
||||
if (tinymce.isGecko)
|
||||
document.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");
|
||||
|
||||
resizeInputs();
|
||||
}
|
||||
|
||||
var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
|
||||
|
||||
function resizeInputs() {
|
||||
if (!tinymce.isIE) {
|
||||
wHeight = self.innerHeight-80;
|
||||
wWidth = self.innerWidth-17;
|
||||
} else {
|
||||
wHeight = document.body.clientHeight-80;
|
||||
wWidth = document.body.clientWidth-17;
|
||||
}
|
||||
|
||||
document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
|
||||
document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(onLoadInit);
|
||||
tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);
|
||||
|
|
|
|||
|
|
@ -1,56 +1,51 @@
|
|||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function saveContent() {
|
||||
var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
|
||||
var PasteWordDialog = {
|
||||
init : function() {
|
||||
var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
|
||||
|
||||
if (html == ''){
|
||||
// Create iframe
|
||||
el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
|
||||
ifr = document.getElementById('iframe');
|
||||
doc = ifr.contentWindow.document;
|
||||
|
||||
// Force absolute CSS urls
|
||||
css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
|
||||
css = css.concat(tinymce.explode(ed.settings.content_css) || []);
|
||||
tinymce.each(css, function(u) {
|
||||
cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
|
||||
});
|
||||
|
||||
// Write content into iframe
|
||||
doc.open();
|
||||
doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
|
||||
doc.close();
|
||||
|
||||
doc.designMode = 'on';
|
||||
this.resize();
|
||||
|
||||
window.setTimeout(function() {
|
||||
ifr.contentWindow.focus();
|
||||
}, 10);
|
||||
},
|
||||
|
||||
insert : function() {
|
||||
var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
|
||||
|
||||
tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
|
||||
tinyMCEPopup.close();
|
||||
return false;
|
||||
},
|
||||
|
||||
resize : function() {
|
||||
var vp = tinyMCEPopup.dom.getViewPort(window), el;
|
||||
|
||||
el = document.getElementById('iframe');
|
||||
|
||||
if (el) {
|
||||
el.style.width = (vp.w - 20) + 'px';
|
||||
el.style.height = (vp.h - 90) + 'px';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.execCommand('mcePasteWord', false, html);
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function onLoadInit() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
// Fix for endless reloading in FF
|
||||
window.setTimeout(createIFrame, 10);
|
||||
}
|
||||
|
||||
function createIFrame() {
|
||||
document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';
|
||||
}
|
||||
|
||||
var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
|
||||
|
||||
function initIframe(doc) {
|
||||
var dir = tinyMCEPopup.editor.settings.directionality;
|
||||
|
||||
doc.body.dir = dir;
|
||||
|
||||
// Remove Gecko spellchecking
|
||||
if (tinymce.isGecko)
|
||||
doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");
|
||||
|
||||
resizeInputs();
|
||||
}
|
||||
|
||||
function resizeInputs() {
|
||||
if (!tinymce.isIE) {
|
||||
wHeight = self.innerHeight - 80;
|
||||
wWidth = self.innerWidth - 18;
|
||||
} else {
|
||||
wHeight = document.body.clientHeight - 80;
|
||||
wWidth = document.body.clientWidth - 18;
|
||||
}
|
||||
|
||||
var elm = document.getElementById('frmData');
|
||||
if (elm) {
|
||||
elm.style.height = Math.abs(wHeight) + 'px';
|
||||
elm.style.width = Math.abs(wWidth) + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(onLoadInit);
|
||||
tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);
|
||||
|
|
|
|||
|
|
@ -4,31 +4,30 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="js/pastetext.js"></script>
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body onresize="resizeInputs();" style="display:none; overflow:hidden;">
|
||||
<form name="source" onsubmit="saveContent();return false;" action="#">
|
||||
<div style="float: left" class="title">{#paste.paste_text_desc}</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>
|
||||
</div>
|
||||
|
||||
<br style="clear: both" />
|
||||
|
||||
<div>{#paste_dlg.text_title}</div>
|
||||
|
||||
<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div style="float: left">
|
||||
<input type="submit" name="insert" value="{#insert}" id="insert" />
|
||||
</div>
|
||||
<body onresize="PasteTextDialog.resize();" style="display:none; overflow:hidden;">
|
||||
<form name="source" onsubmit="return PasteTextDialog.insert();" action="#">
|
||||
<div style="float: left" class="title">{#paste.paste_text_desc}</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
|
||||
<input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<br style="clear: both" />
|
||||
|
||||
<div>{#paste_dlg.text_title}</div>
|
||||
|
||||
<textarea id="content" name="content" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div style="float: left">
|
||||
<input type="submit" name="insert" value="{#insert}" id="insert" />
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -4,11 +4,9 @@
|
|||
<title>{#paste.paste_word_desc}</title>
|
||||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="js/pasteword.js"></script>
|
||||
<link href="css/pasteword.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body onresize="resizeInputs();" style="display:none; overflow:hidden;">
|
||||
<form name="source" onsubmit="saveContent();" action="#">
|
||||
<body onresize="PasteWordDialog.resize();" style="display:none; overflow:hidden;">
|
||||
<form name="source" onsubmit="return PasteWordDialog.insert();" action="#">
|
||||
<div class="title">{#paste.paste_word_desc}</div>
|
||||
|
||||
<div>{#paste_dlg.word_title}</div>
|
||||
|
|
@ -17,7 +15,7 @@
|
|||
|
||||
<div class="mceActionPanel">
|
||||
<div style="float: left">
|
||||
<input type="button" id="insert" name="insert" value="{#insert}" onclick="saveContent();" />
|
||||
<input type="submit" id="insert" name="insert" value="{#insert}" />
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePreview',t._preview,t);ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_preview:function(){var ed=this.editor,win,html,c,pos,pos2,css,i,page=ed.getParam("plugin_preview_pageurl",null),w=ed.getParam("plugin_preview_width","550"),h=ed.getParam("plugin_preview_height","600");if(page){ed.windowManager.open({file:ed.getParam("plugin_preview_pageurl",null),width:w,height:h},{resizable:"yes",scrollbars:"yes",inline:1});}else{win=window.open("","mcePreview","menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width="+w+",height="+h);html="";c=ed.getContent();pos=c.indexOf('<body');css=ed.getParam("content_css",'').split(',');tinymce.map(css,function(u){return ed.documentBaseURI.toAbsolute(u);});if(pos!=-1){pos=c.indexOf('>',pos);pos2=c.lastIndexOf('</body>');c=c.substring(pos+1,pos2);}html+=ed.getParam('doctype');html+='<html xmlns="http://www.w3.org/1999/xhtml">';html+='<head>';html+='<title>'+ed.getLang('preview.preview_desc')+'</title>';html+='<base href="'+ed.documentBaseURI.getURI()+'" />';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(i=0;i<css.length;i++)html+='<link href="'+css[i]+'" rel="stylesheet" type="text/css" />';html+='</head>';html+='<body dir="'+ed.getParam("directionality")+'" onload="window.opener.tinymce.EditorManager.get(\''+ed.id+'\').plugins[\'preview\']._onLoad(window,document);">';html+=c;html+='</body>';html+='</html>';win.document.write(html);win.document.close();}},_onLoad:function(w,d){var t=this,nl,i,el=[],sv,ne;t._doc=d;w.writeFlash=t._writeFlash;w.writeShockWave=t._writeShockWave;w.writeQuickTime=t._writeQuickTime;w.writeRealMedia=t._writeRealMedia;w.writeWindowsMedia=t._writeWindowsMedia;w.writeEmbed=t._writeEmbed;nl=d.getElementsByTagName("script");for(i=0;i<nl.length;i++){sv=tinymce.isIE?nl[i].innerHTML:nl[i].firstChild.nodeValue;if(new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*','g').test(sv))el[el.length]=nl[i];}for(i=0;i<el.length;i++){ne=d.createElement("div");ne.innerHTML=d._embeds[i];el[i].parentNode.insertBefore(ne.firstChild,el[i]);}},_writeFlash:function(p){p.src=this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','application/x-shockwave-flash',p);},_writeShockWave:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0','application/x-director',p);},_writeQuickTime:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0','video/quicktime',p);},_writeRealMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','audio/x-pn-realaudio-plugin',p);},_writeWindowsMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);p.url=p.src;TinyMCE_PreviewPlugin._writeEmbed('6BF52A52-394A-11D3-B153-00C04F79FAA6','http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701','application/x-mplayer2',p);},_writeEmbed:function(cls,cb,mt,p){var h='',n,d=t._doc,ne,c;h+='<object classid="clsid:'+cls+'" codebase="'+cb+'"';h+=typeof(p.id)!="undefined"?'id="'+p.id+'"':'';h+=typeof(p.name)!="undefined"?'name="'+p.name+'"':'';h+=typeof(p.width)!="undefined"?'width="'+p.width+'"':'';h+=typeof(p.height)!="undefined"?'height="'+p.height+'"':'';h+=typeof(p.align)!="undefined"?'align="'+p.align+'"':'';h+='>';for(n in p)h+='<param name="'+n+'" value="'+p[n]+'">';h+='<embed type="'+mt+'"';for(n in p)h+=n+'="'+p[n]+'" ';h+='></embed></object>';d._embeds[d._embeds.length]=h;}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 537 2008-01-14 16:38:33Z spocke $
|
||||
* $Id: editor_plugin_src.js 1056 2009-03-13 12:47:03Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -8,11 +8,29 @@
|
|||
(function() {
|
||||
tinymce.create('tinymce.plugins.Preview', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
var t = this, css = tinymce.explode(ed.settings.content_css);
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
ed.addCommand('mcePreview', t._preview, t);
|
||||
// Force absolute CSS urls
|
||||
tinymce.each(css, function(u, k) {
|
||||
css[k] = ed.documentBaseURI.toAbsolute(u);
|
||||
});
|
||||
|
||||
ed.addCommand('mcePreview', function() {
|
||||
ed.windowManager.open({
|
||||
file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
|
||||
width : parseInt(ed.getParam("plugin_preview_width", "550")),
|
||||
height : parseInt(ed.getParam("plugin_preview_height", "600")),
|
||||
resizable : "yes",
|
||||
scrollbars : "yes",
|
||||
popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"),
|
||||
inline : ed.getParam("plugin_preview_inline", 1)
|
||||
}, {
|
||||
base : ed.documentBaseURI.getURI()
|
||||
});
|
||||
});
|
||||
|
||||
ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
|
||||
},
|
||||
|
||||
|
|
@ -24,161 +42,6 @@
|
|||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_preview : function() {
|
||||
var ed = this.editor, win, html, c, pos, pos2, css, i, page = ed.getParam("plugin_preview_pageurl", null), w = ed.getParam("plugin_preview_width", "550"), h = ed.getParam("plugin_preview_height", "600");
|
||||
|
||||
// Use a custom preview page
|
||||
if (page) {
|
||||
ed.windowManager.open({
|
||||
file : ed.getParam("plugin_preview_pageurl", null),
|
||||
width : w,
|
||||
height : h
|
||||
}, {
|
||||
resizable : "yes",
|
||||
scrollbars : "yes",
|
||||
inline : 1
|
||||
});
|
||||
} else {
|
||||
win = window.open("", "mcePreview", "menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + w + ",height=" + h);
|
||||
html = "";
|
||||
c = ed.getContent();
|
||||
pos = c.indexOf('<body');
|
||||
css = ed.getParam("content_css", '').split(',');
|
||||
|
||||
tinymce.map(css, function(u) {
|
||||
return ed.documentBaseURI.toAbsolute(u);
|
||||
});
|
||||
|
||||
if (pos != -1) {
|
||||
pos = c.indexOf('>', pos);
|
||||
pos2 = c.lastIndexOf('</body>');
|
||||
c = c.substring(pos + 1, pos2);
|
||||
}
|
||||
|
||||
html += ed.getParam('doctype');
|
||||
html += '<html xmlns="http://www.w3.org/1999/xhtml">';
|
||||
html += '<head>';
|
||||
html += '<title>' + ed.getLang('preview.preview_desc') + '</title>';
|
||||
html += '<base href="' + ed.documentBaseURI.getURI() + '" />';
|
||||
html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
|
||||
|
||||
for (i=0; i<css.length; i++)
|
||||
html += '<link href="' + css[i] + '" rel="stylesheet" type="text/css" />';
|
||||
|
||||
html += '</head>';
|
||||
html += '<body dir="' + ed.getParam("directionality") + '" onload="window.opener.tinymce.EditorManager.get(\'' + ed.id + '\').plugins[\'preview\']._onLoad(window,document);">';
|
||||
html += c;
|
||||
html += '</body>';
|
||||
html += '</html>';
|
||||
|
||||
win.document.write(html);
|
||||
win.document.close();
|
||||
}
|
||||
},
|
||||
|
||||
_onLoad : function(w, d) {
|
||||
var t = this, nl, i, el = [], sv, ne;
|
||||
|
||||
t._doc = d;
|
||||
w.writeFlash = t._writeFlash;
|
||||
w.writeShockWave = t._writeShockWave;
|
||||
w.writeQuickTime = t._writeQuickTime;
|
||||
w.writeRealMedia = t._writeRealMedia;
|
||||
w.writeWindowsMedia = t._writeWindowsMedia;
|
||||
w.writeEmbed = t._writeEmbed;
|
||||
|
||||
nl = d.getElementsByTagName("script");
|
||||
for (i=0; i<nl.length; i++) {
|
||||
sv = tinymce.isIE ? nl[i].innerHTML : nl[i].firstChild.nodeValue;
|
||||
|
||||
if (new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*', 'g').test(sv))
|
||||
el[el.length] = nl[i];
|
||||
}
|
||||
|
||||
for (i=0; i<el.length; i++) {
|
||||
ne = d.createElement("div");
|
||||
ne.innerHTML = d._embeds[i];
|
||||
el[i].parentNode.insertBefore(ne.firstChild, el[i]);
|
||||
}
|
||||
},
|
||||
|
||||
_writeFlash : function(p) {
|
||||
p.src = this.editor.documentBaseURI.toAbsolute(p.src);
|
||||
TinyMCE_PreviewPlugin._writeEmbed(
|
||||
'D27CDB6E-AE6D-11cf-96B8-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'application/x-shockwave-flash',
|
||||
p
|
||||
);
|
||||
},
|
||||
|
||||
_writeShockWave : function(p) {
|
||||
this.editor.documentBaseURI.toAbsolute(p.src);
|
||||
TinyMCE_PreviewPlugin._writeEmbed(
|
||||
'166B1BCA-3F9C-11CF-8075-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
|
||||
'application/x-director',
|
||||
p
|
||||
);
|
||||
},
|
||||
|
||||
_writeQuickTime : function(p) {
|
||||
this.editor.documentBaseURI.toAbsolute(p.src);
|
||||
TinyMCE_PreviewPlugin._writeEmbed(
|
||||
'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
|
||||
'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
|
||||
'video/quicktime',
|
||||
p
|
||||
);
|
||||
},
|
||||
|
||||
_writeRealMedia : function(p) {
|
||||
this.editor.documentBaseURI.toAbsolute(p.src);
|
||||
TinyMCE_PreviewPlugin._writeEmbed(
|
||||
'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'audio/x-pn-realaudio-plugin',
|
||||
p
|
||||
);
|
||||
},
|
||||
|
||||
_writeWindowsMedia : function(p) {
|
||||
this.editor.documentBaseURI.toAbsolute(p.src);
|
||||
p.url = p.src;
|
||||
TinyMCE_PreviewPlugin._writeEmbed(
|
||||
'6BF52A52-394A-11D3-B153-00C04F79FAA6',
|
||||
'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
|
||||
'application/x-mplayer2',
|
||||
p
|
||||
);
|
||||
},
|
||||
|
||||
_writeEmbed : function(cls, cb, mt, p) {
|
||||
var h = '', n, d = t._doc, ne, c;
|
||||
|
||||
h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
|
||||
h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
|
||||
h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
|
||||
h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
|
||||
h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
|
||||
h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
|
||||
h += '>';
|
||||
|
||||
for (n in p)
|
||||
h += '<param name="' + n + '" value="' + p[n] + '">';
|
||||
|
||||
h += '<embed type="' + mt + '"';
|
||||
|
||||
for (n in p)
|
||||
h += n + '="' + p[n] + '" ';
|
||||
|
||||
h += '></embed></object>';
|
||||
|
||||
d._embeds[d._embeds.length] = h;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
17
www/extras/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
vendored
Normal file
17
www/extras/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="jscripts/embed.js"></script>
|
||||
<script type="text/javascript"><!--
|
||||
document.write('<base href="' + tinyMCEPopup.getWindowArg("base") + '">');
|
||||
// -->
|
||||
</script>
|
||||
<title>{#preview.preview_desc}</title>
|
||||
</head>
|
||||
<body id="content">
|
||||
<script type="text/javascript">
|
||||
document.write(tinyMCEPopup.editor.getContent());
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -6,7 +6,30 @@
|
|||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;
|
||||
var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray;
|
||||
|
||||
function isEmpty(d, e, f) {
|
||||
var w, n;
|
||||
|
||||
w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false);
|
||||
while (n = w.nextNode()) {
|
||||
// Filter func
|
||||
if (f) {
|
||||
if (!f(n))
|
||||
return false;
|
||||
}
|
||||
|
||||
// Non whitespace text node
|
||||
if (n.nodeType == 3 && n.nodeValue && /[^\s\u00a0]+/.test(n.nodeValue))
|
||||
return false;
|
||||
|
||||
// Is non text element byt still content
|
||||
if (n.nodeType == 1 && /^(HR|IMG|TABLE)$/.test(n.nodeName))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
tinymce.create('tinymce.plugins.Safari', {
|
||||
init : function(ed) {
|
||||
|
|
@ -20,21 +43,61 @@
|
|||
t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];
|
||||
t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];
|
||||
|
||||
// Safari will crash if the build in createlink command is used
|
||||
/* ed.addCommand('CreateLink', function(u, v) {
|
||||
ed.execCommand("mceInsertContent", false, '<a href="' + dom.encode(v) + '">' + ed.selection.getContent() + '</a>');
|
||||
});*/
|
||||
// Safari CreateLink command will not work correctly on images that is aligned
|
||||
ed.addCommand('CreateLink', function(u, v) {
|
||||
var n = ed.selection.getNode(), dom = ed.dom, a;
|
||||
|
||||
if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {
|
||||
a = dom.create('a', {href : v}, n.cloneNode());
|
||||
n.parentNode.replaceChild(a, n);
|
||||
ed.selection.select(a);
|
||||
} else
|
||||
ed.getDoc().execCommand("CreateLink", false, v);
|
||||
});
|
||||
|
||||
/*
|
||||
// WebKit generates spans out of thin air this patch used to remove them but it will also remove styles we want so it's disabled for now
|
||||
ed.onPaste.add(function(ed, e) {
|
||||
function removeStyles(e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeType == 1) {
|
||||
e.style.cssText = '';
|
||||
|
||||
each(ed.dom.select('*', e), function(e) {
|
||||
e.style.cssText = '';
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
||||
|
||||
window.setTimeout(function() {
|
||||
Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
||||
}, 0);
|
||||
});
|
||||
*/
|
||||
ed.onKeyUp.add(function(ed, e) {
|
||||
var h;
|
||||
var h, b, r, n, s;
|
||||
|
||||
// If backspace or delete key
|
||||
if (e.keyCode == 46 || e.keyCode == 8) {
|
||||
h = ed.getBody().innerHTML;
|
||||
b = ed.getBody();
|
||||
h = b.innerHTML;
|
||||
s = ed.selection;
|
||||
|
||||
// If there is no text content or images or hr elements then remove everything
|
||||
if (!/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0)
|
||||
ed.setContent('', {format : 'raw'});
|
||||
if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0) {
|
||||
// Inject paragrah and bogus br
|
||||
ed.setContent('<p><br mce_bogus="1" /></p>', {format : 'raw'});
|
||||
|
||||
// Move caret before bogus br
|
||||
n = b.firstChild;
|
||||
r = s.getRng();
|
||||
r.setStart(n, 0);
|
||||
r.setEnd(n, 0);
|
||||
s.setRng(r);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -51,49 +114,96 @@
|
|||
// Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382
|
||||
ed.addCommand('mceInsertContent', function(u, v) {
|
||||
ed.getDoc().execCommand("InsertText", false, 'mce_marker');
|
||||
ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>');
|
||||
ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, ed.dom.processHTML(v) + '<span id="_mce_tmp">XX</span>');
|
||||
ed.selection.select(ed.dom.get('_mce_tmp'));
|
||||
ed.getDoc().execCommand("Delete", false, ' ');
|
||||
});
|
||||
|
||||
/* ed.onKeyDown.add(function(ed, e) {
|
||||
// Ctrl+A select all will fail on WebKit since if you paste the contents you selected it will produce a odd div wrapper
|
||||
if ((e.ctrlKey || e.metaKey) && e.keyCode == 65) {
|
||||
ed.selection.select(ed.getBody(), 1);
|
||||
return Event.cancel(e);
|
||||
}
|
||||
});*/
|
||||
|
||||
// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
|
||||
ed.onKeyPress.add(function(ed, e) {
|
||||
if (e.keyCode == 13 && (e.shiftKey || ed.settings.force_br_newlines && ed.selection.getNode().nodeName != 'LI')) {
|
||||
t._insertBR(ed);
|
||||
Event.cancel(e);
|
||||
var se, li, lic, r1, r2, n, sel, doc, be, af, pa;
|
||||
|
||||
if (e.keyCode == 13) {
|
||||
sel = ed.selection;
|
||||
se = sel.getNode();
|
||||
|
||||
// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
|
||||
if (e.shiftKey || ed.settings.force_br_newlines && se.nodeName != 'LI') {
|
||||
t._insertBR(ed);
|
||||
Event.cancel(e);
|
||||
}
|
||||
|
||||
// Workaround for DIV elements produced by Safari
|
||||
if (li = dom.getParent(se, 'LI')) {
|
||||
lic = dom.getParent(li, 'OL,UL');
|
||||
doc = ed.getDoc();
|
||||
|
||||
pa = dom.create('p');
|
||||
dom.add(pa, 'br', {mce_bogus : "1"});
|
||||
|
||||
if (isEmpty(doc, li)) {
|
||||
// If list in list then use browser default behavior
|
||||
if (n = dom.getParent(lic.parentNode, 'LI,OL,UL'))
|
||||
return;
|
||||
|
||||
n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic;
|
||||
|
||||
// Create range from the start of block element to the list item
|
||||
r1 = doc.createRange();
|
||||
r1.setStartBefore(n);
|
||||
r1.setEndBefore(li);
|
||||
|
||||
// Create range after the list to the end of block element
|
||||
r2 = doc.createRange();
|
||||
r2.setStartAfter(li);
|
||||
r2.setEndAfter(n);
|
||||
|
||||
be = r1.cloneContents();
|
||||
af = r2.cloneContents();
|
||||
|
||||
if (!isEmpty(doc, af))
|
||||
dom.insertAfter(af, n);
|
||||
|
||||
dom.insertAfter(pa, n);
|
||||
|
||||
if (!isEmpty(doc, be))
|
||||
dom.insertAfter(be, n);
|
||||
|
||||
dom.remove(n);
|
||||
|
||||
n = pa.firstChild;
|
||||
r1 = doc.createRange();
|
||||
r1.setStartBefore(n);
|
||||
r1.setEndBefore(n);
|
||||
sel.setRng(r1);
|
||||
|
||||
return Event.cancel(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Safari returns incorrect values
|
||||
ed.addQueryValueHandler('FontSize', function(u, v) {
|
||||
var e, v;
|
||||
// Safari doesn't place lists outside block elements
|
||||
ed.onExecCommand.add(function(ed, cmd) {
|
||||
var sel, dom, bl, bm;
|
||||
|
||||
// Check for the real font size at the start of selection
|
||||
if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontSize))
|
||||
return tinymce.inArray(t.namedFontSizes, v) + 1;
|
||||
if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') {
|
||||
sel = ed.selection;
|
||||
dom = ed.dom;
|
||||
|
||||
// Check for the real font size at the end of selection
|
||||
if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontSize))
|
||||
return tinymce.inArray(t.namedFontSizes, v) + 1;
|
||||
|
||||
// Return default value it's better than nothing right!
|
||||
return ed.getDoc().queryCommandValue('FontSize');
|
||||
});
|
||||
|
||||
// Safari returns incorrect values
|
||||
ed.addQueryValueHandler('FontName', function(u, v) {
|
||||
var e, v;
|
||||
|
||||
// Check for the real font name at the start of selection
|
||||
if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontFamily))
|
||||
return v.replace(/, /g, ',');
|
||||
|
||||
// Check for the real font name at the end of selection
|
||||
if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontFamily))
|
||||
return v.replace(/, /g, ',');
|
||||
|
||||
// Return default value it's better than nothing right!
|
||||
return ed.getDoc().queryCommandValue('FontName');
|
||||
if (bl = dom.getParent(sel.getNode(), function(n) {return /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName);})) {
|
||||
bm = sel.getBookmark();
|
||||
dom.remove(bl, 1);
|
||||
sel.moveToBookmark(bm);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
|
||||
|
|
@ -107,36 +217,8 @@
|
|||
t.selElm = null;
|
||||
});
|
||||
|
||||
ed.onBeforeExecCommand.add(function(ed, c, b) {
|
||||
var r = t.bookmarkRng;
|
||||
|
||||
// Restore selection
|
||||
if (r) {
|
||||
ed.selection.setRng(r);
|
||||
t.bookmarkRng = null;
|
||||
//console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
|
||||
}
|
||||
});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
t._fixWebKitSpans();
|
||||
|
||||
ed.windowManager.onOpen.add(function() {
|
||||
var r = ed.selection.getRng();
|
||||
|
||||
// Store selection if valid
|
||||
if (r.startContainer != ed.getDoc()) {
|
||||
t.bookmarkRng = r.cloneRange();
|
||||
//console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
|
||||
}
|
||||
});
|
||||
|
||||
ed.windowManager.onClose.add(function() {
|
||||
t.bookmarkRng = null;
|
||||
});
|
||||
|
||||
if (isOldWebKit)
|
||||
t._patchSafari2x(ed);
|
||||
});
|
||||
|
||||
ed.onSetContent.add(function() {
|
||||
|
|
@ -247,27 +329,28 @@
|
|||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Safari compatibility',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Internal methods
|
||||
|
||||
_fixWebKitSpans : function() {
|
||||
var t = this, ed = t.editor;
|
||||
|
||||
if (!isOldWebKit) {
|
||||
// Use mutator events on new WebKit
|
||||
Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
|
||||
e = e.target;
|
||||
// Use mutator events on new WebKit
|
||||
Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
|
||||
e = e.target;
|
||||
|
||||
if (e && e.nodeType == 1)
|
||||
t._fixAppleSpan(e);
|
||||
});
|
||||
} else {
|
||||
// Do post command processing in old WebKit since the browser crashes on Mutator events :(
|
||||
ed.onExecCommand.add(function() {
|
||||
each(ed.dom.select('span'), function(n) {
|
||||
t._fixAppleSpan(n);
|
||||
});
|
||||
|
||||
ed.nodeChanged();
|
||||
});
|
||||
}
|
||||
if (e && e.nodeType == 1)
|
||||
t._fixAppleSpan(e);
|
||||
});
|
||||
},
|
||||
|
||||
_fixAppleSpan : function(e) {
|
||||
|
|
@ -327,78 +410,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
_patchSafari2x : function(ed) {
|
||||
var t = this, setContent, getNode, dom = ed.dom, lr;
|
||||
|
||||
// Inline dialogs
|
||||
if (ed.windowManager.onBeforeOpen) {
|
||||
ed.windowManager.onBeforeOpen.add(function() {
|
||||
r = ed.selection.getRng();
|
||||
});
|
||||
}
|
||||
|
||||
// Fake select on 2.x
|
||||
ed.selection.select = function(n) {
|
||||
this.getSel().setBaseAndExtent(n, 0, n, 1);
|
||||
};
|
||||
|
||||
getNode = ed.selection.getNode;
|
||||
ed.selection.getNode = function() {
|
||||
return t.selElm || getNode.call(this);
|
||||
};
|
||||
|
||||
// Fake range on Safari 2.x
|
||||
ed.selection.getRng = function() {
|
||||
var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;
|
||||
|
||||
// Fake range on Safari 2.x
|
||||
if (s.anchorNode) {
|
||||
r = d.createRange();
|
||||
|
||||
try {
|
||||
// Setup before range
|
||||
rb = d.createRange();
|
||||
rb.setStart(s.anchorNode, s.anchorOffset);
|
||||
rb.collapse(1);
|
||||
|
||||
// Setup after range
|
||||
ra = d.createRange();
|
||||
ra.setStart(s.focusNode, s.focusOffset);
|
||||
ra.collapse(1);
|
||||
|
||||
// Setup start/end points by comparing locations
|
||||
di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;
|
||||
r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);
|
||||
r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);
|
||||
|
||||
lr = r;
|
||||
} catch (ex) {
|
||||
// Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!
|
||||
}
|
||||
}
|
||||
|
||||
return r || lr;
|
||||
};
|
||||
|
||||
// Fix setContent so it works
|
||||
setContent = ed.selection.setContent;
|
||||
ed.selection.setContent = function(h, s) {
|
||||
var r = this.getRng(), b;
|
||||
|
||||
try {
|
||||
setContent.call(this, h, s);
|
||||
} catch (ex) {
|
||||
// Workaround for Safari 2.x
|
||||
b = dom.create('body');
|
||||
b.innerHTML = h;
|
||||
|
||||
each(b.childNodes, function(n) {
|
||||
r.insertNode(n.cloneNode(true));
|
||||
});
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
_insertBR : function(ed) {
|
||||
var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam("save_enablewhendirty")&&!ed.isDirty())return true;tinyMCE.triggerSave();if(os=ed.getParam("save_onsavecallback")){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert("Error: No form element found.");return true;},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam("save_oncancelcallback")){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
|
||||
(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 609 2008-02-18 16:19:27Z spocke $
|
||||
* $Id: editor_plugin_src.js 851 2008-05-26 15:38:49Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
|
||||
|
||||
if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
|
||||
return true;
|
||||
return;
|
||||
|
||||
tinyMCE.triggerSave();
|
||||
|
||||
|
|
@ -76,8 +76,6 @@
|
|||
ed.nodeChanged();
|
||||
} else
|
||||
ed.windowManager.alert("Error: No form element found.");
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
_cancel : function() {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:160+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})();
|
||||
|
|
@ -42,6 +42,9 @@ var SearchReplaceDialog = {
|
|||
ca = f[m + '_panel_casesensitivebox'].checked;
|
||||
rs = f['replace_panel_replacestring'].value;
|
||||
|
||||
if (s == '')
|
||||
return;
|
||||
|
||||
function fix() {
|
||||
// Correct Firefox graphics glitches
|
||||
r = se.getRng().cloneRange();
|
||||
|
|
@ -62,6 +65,10 @@ var SearchReplaceDialog = {
|
|||
|
||||
switch (a) {
|
||||
case 'all':
|
||||
// Move caret to beginning of text
|
||||
ed.execCommand('SelectAll');
|
||||
ed.selection.collapse(true);
|
||||
|
||||
if (tinymce.isIE) {
|
||||
while (r.findText(s, b ? -1 : 1, fl)) {
|
||||
r.scrollIntoView();
|
||||
|
|
@ -79,14 +86,16 @@ var SearchReplaceDialog = {
|
|||
}
|
||||
|
||||
if (fo)
|
||||
wm.alert(ed.getLang('searchreplace_dlg.allreplaced'));
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
|
||||
else
|
||||
wm.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
|
||||
return;
|
||||
|
||||
case 'current':
|
||||
replace();
|
||||
if (!ed.selection.isCollapsed())
|
||||
replace();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -102,12 +111,12 @@ var SearchReplaceDialog = {
|
|||
r.scrollIntoView();
|
||||
r.select();
|
||||
} else
|
||||
wm.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
|
||||
tinyMCEPopup.storeSelection();
|
||||
} else {
|
||||
if (!w.find(s, ca, b, false, false, false, false))
|
||||
wm.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
else
|
||||
fix();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="js/searchreplace.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/searchreplace.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display:none;">
|
||||
<form onsubmit="SearchReplaceDialog.searchNext('none');return false;" action="#">
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -45,7 +45,8 @@
|
|||
});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
ed.dom.loadCSS(url + '/css/content.css');
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + '/css/content.css');
|
||||
});
|
||||
|
||||
ed.onClick.add(t._showMenu, t);
|
||||
|
|
@ -227,7 +228,7 @@
|
|||
m = ed.controlManager.createDropMenu('spellcheckermenu', {
|
||||
offset_x : p1.x,
|
||||
offset_y : p1.y,
|
||||
'class' : 'noIcons'
|
||||
'class' : 'mceNoIcons'
|
||||
});
|
||||
|
||||
t._menu = m;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:320+parseInt(a.getLang("style.delta_height",0)),inline:1},{plugin_url:b,style_text:a.selection.getNode().style.cssText})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $
|
||||
* $Id: editor_plugin_src.js 787 2008-04-10 11:40:57Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -28,6 +28,10 @@
|
|||
}
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setDisabled('styleprops', n.nodeName === 'BODY');
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ var defaultFonts = "" +
|
|||
"Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";
|
||||
|
||||
var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
|
||||
var defaultMeasurement = "+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%";
|
||||
var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";
|
||||
var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";
|
||||
var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
|
||||
var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%";
|
||||
var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
|
||||
var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
|
||||
var defaultTextStyle = "normal;italic;oblique";
|
||||
var defaultVariant = "normal;small-caps";
|
||||
|
|
@ -223,12 +223,12 @@ function setupFormData() {
|
|||
f.positioning_height.value = getNum(ce.style.height);
|
||||
selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
|
||||
|
||||
setupBox(f, ce, 'positioning_placement', '', '', new Array('top', 'right', 'bottom', 'left'));
|
||||
setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);
|
||||
|
||||
s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
s = s.replace(/,/g, ' ');
|
||||
|
||||
if (!hasEqualValues(new Array(getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)))) {
|
||||
if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {
|
||||
f.positioning_clip_top.value = getNum(getVal(s, 0));
|
||||
selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
|
||||
f.positioning_clip_right.value = getNum(getVal(s, 1));
|
||||
|
|
@ -247,12 +247,12 @@ function setupFormData() {
|
|||
}
|
||||
|
||||
function getMeasurement(s) {
|
||||
return s.replace(/^([0-9]+)(.*)$/, "$2");
|
||||
return s.replace(/^([0-9.]+)(.*)$/, "$2");
|
||||
}
|
||||
|
||||
function getNum(s) {
|
||||
if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))
|
||||
return s.replace(/[^0-9]/g, '');
|
||||
if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s))
|
||||
return s.replace(/[^0-9.]/g, '');
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
@ -279,7 +279,7 @@ function setValue(f, n, v) {
|
|||
|
||||
function setupBox(f, ce, fp, pr, sf, b) {
|
||||
if (typeof(b) == "undefined")
|
||||
b = new Array('Top', 'Right', 'Bottom', 'Left');
|
||||
b = ['Top', 'Right', 'Bottom', 'Left'];
|
||||
|
||||
if (isSame(ce, pr, sf, b)) {
|
||||
f.elements[fp + "_same"].checked = true;
|
||||
|
|
@ -328,10 +328,10 @@ function setupBox(f, ce, fp, pr, sf, b) {
|
|||
}
|
||||
|
||||
function isSame(e, pr, sf, b) {
|
||||
var a = new Array(), i, x;
|
||||
var a = [], i, x;
|
||||
|
||||
if (typeof(b) == "undefined")
|
||||
b = new Array('Top', 'Right', 'Bottom', 'Left');
|
||||
b = ['Top', 'Right', 'Bottom', 'Left'];
|
||||
|
||||
if (typeof(sf) == "undefined" || sf == null)
|
||||
sf = "";
|
||||
|
|
@ -478,7 +478,7 @@ function generateCSS() {
|
|||
ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
|
||||
ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
|
||||
} else
|
||||
ce.style.borderWidth = f.border_width_top.value;
|
||||
ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
|
||||
|
||||
if (!f.border_color_same.checked) {
|
||||
ce.style.borderTopColor = f.border_color_top.value;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="js/props.js"></script>
|
||||
<link href="css/props.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
|
||||
<body id="styleprops" style="display: none">
|
||||
|
|
|
|||
1
www/extras/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
vendored
Normal file
1
www/extras/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(i){o=c.getParent(l.id,"form");n=o.elements;if(o){d(n,function(s,r){if(s.id==l.id){j=r;return false}});if(i>0){for(m=j+1;m<n.length;m++){if(n[m].type!="hidden"){return n[m]}}}else{for(m=j-1;m>=0;m--){if(n[m].type!="hidden"){return n[m]}}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(l=tinymce.EditorManager.get(n.id||n.name)){l.focus()}else{window.setTimeout(function(){window.focus();n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}f.onInit.add(function(){d(c.select("a:first,a:last",f.getContainer()),function(i){a.add(i,"focus",function(){f.focus()})})})},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
|
||||
109
www/extras/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
vendored
Normal file
109
www/extras/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
vendored
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 787 2008-04-10 11:40:57Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode;
|
||||
|
||||
tinymce.create('tinymce.plugins.TabFocusPlugin', {
|
||||
init : function(ed, url) {
|
||||
function tabCancel(ed, e) {
|
||||
if (e.keyCode === 9)
|
||||
return Event.cancel(e);
|
||||
};
|
||||
|
||||
function tabHandler(ed, e) {
|
||||
var x, i, f, el, v;
|
||||
|
||||
function find(d) {
|
||||
f = DOM.getParent(ed.id, 'form');
|
||||
el = f.elements;
|
||||
|
||||
if (f) {
|
||||
each(el, function(e, i) {
|
||||
if (e.id == ed.id) {
|
||||
x = i;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (d > 0) {
|
||||
for (i = x + 1; i < el.length; i++) {
|
||||
if (el[i].type != 'hidden')
|
||||
return el[i];
|
||||
}
|
||||
} else {
|
||||
for (i = x - 1; i >= 0; i--) {
|
||||
if (el[i].type != 'hidden')
|
||||
return el[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
if (e.keyCode === 9) {
|
||||
v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next')));
|
||||
|
||||
if (v.length == 1) {
|
||||
v[1] = v[0];
|
||||
v[0] = ':prev';
|
||||
}
|
||||
|
||||
// Find element to focus
|
||||
if (e.shiftKey) {
|
||||
if (v[0] == ':prev')
|
||||
el = find(-1);
|
||||
else
|
||||
el = DOM.get(v[0]);
|
||||
} else {
|
||||
if (v[1] == ':next')
|
||||
el = find(1);
|
||||
else
|
||||
el = DOM.get(v[1]);
|
||||
}
|
||||
|
||||
if (el) {
|
||||
if (ed = tinymce.EditorManager.get(el.id || el.name))
|
||||
ed.focus();
|
||||
else
|
||||
window.setTimeout(function() {window.focus();el.focus();}, 10);
|
||||
|
||||
return Event.cancel(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ed.onKeyUp.add(tabCancel);
|
||||
|
||||
if (tinymce.isGecko) {
|
||||
ed.onKeyPress.add(tabHandler);
|
||||
ed.onKeyDown.add(tabCancel);
|
||||
} else
|
||||
ed.onKeyDown.add(tabHandler);
|
||||
|
||||
ed.onInit.add(function() {
|
||||
each(DOM.select('a:first,a:last', ed.getContainer()), function(n) {
|
||||
Event.add(n, 'focus', function() {ed.focus();});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Tabfocus',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin);
|
||||
})();
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="../../utils/editable_selects.js"></script>
|
||||
<script type="text/javascript" src="js/cell.js"></script>
|
||||
<link href="css/cell.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="tablecell" style="display: none">
|
||||
<form onsubmit="updateAction();return false;" action="#">
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
<tr id="styleSelectRow">
|
||||
<td><label for="class">{#class_name}</label></td>
|
||||
<td colspan="3">
|
||||
<select id="class" name="class">
|
||||
<select id="class" name="class" class="mceEditableSelect">
|
||||
<option value="" selected="selected">{#not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 691 2008-03-09 19:58:20Z spocke $
|
||||
* $Id: editor_plugin_src.js 1209 2009-08-20 12:35:10Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
|
|
@ -8,6 +8,20 @@
|
|||
(function() {
|
||||
var each = tinymce.each;
|
||||
|
||||
// Checks if the selection/caret is at the start of the specified block element
|
||||
function isAtStart(rng, par) {
|
||||
var doc = par.ownerDocument, rng2 = doc.createRange(), elm;
|
||||
|
||||
rng2.setStartBefore(par);
|
||||
rng2.setEnd(rng.endContainer, rng.endOffset);
|
||||
|
||||
elm = doc.createElement('body');
|
||||
elm.appendChild(rng2.cloneContents());
|
||||
|
||||
// Check for text characters of other elements that should be treated as content
|
||||
return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0;
|
||||
};
|
||||
|
||||
tinymce.create('tinymce.plugins.TablePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
|
@ -33,13 +47,98 @@
|
|||
ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});
|
||||
});
|
||||
|
||||
if (ed.getParam('inline_styles')) {
|
||||
// Force move of attribs to styles in strict mode
|
||||
ed.onPreProcess.add(function(ed, o) {
|
||||
var dom = ed.dom;
|
||||
|
||||
each(dom.select('table', o.node), function(n) {
|
||||
var v;
|
||||
|
||||
if (v = dom.getAttrib(n, 'width')) {
|
||||
dom.setStyle(n, 'width', v);
|
||||
dom.setAttrib(n, 'width');
|
||||
}
|
||||
|
||||
if (v = dom.getAttrib(n, 'height')) {
|
||||
dom.setStyle(n, 'height', v);
|
||||
dom.setAttrib(n, 'height');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
ed.onInit.add(function() {
|
||||
// Fixes an issue on Gecko where it's impossible to place the caret behind a table
|
||||
// This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
|
||||
if (!tinymce.isIE && ed.getParam('forced_root_block')) {
|
||||
function fixTableCaretPos() {
|
||||
var last = ed.getBody().lastChild;
|
||||
|
||||
if (last && last.nodeName == 'TABLE')
|
||||
ed.dom.add(ed.getBody(), 'p', null, '<br mce_bogus="1" />');
|
||||
};
|
||||
|
||||
// Fixes an bug where it's impossible to place the caret before a table in Gecko
|
||||
// this fix solves it by detecting when the caret is at the beginning of such a table
|
||||
// and then manually moves the caret infront of the table
|
||||
if (tinymce.isGecko) {
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
var rng, table, dom = ed.dom;
|
||||
|
||||
// On gecko it's not possible to place the caret before a table
|
||||
if (e.keyCode == 37 || e.keyCode == 38) {
|
||||
rng = ed.selection.getRng();
|
||||
table = dom.getParent(rng.startContainer, 'table');
|
||||
|
||||
if (table && ed.getBody().firstChild == table) {
|
||||
if (isAtStart(rng, table)) {
|
||||
rng = dom.createRng();
|
||||
|
||||
rng.setStartBefore(table);
|
||||
rng.setEndBefore(table);
|
||||
|
||||
ed.selection.setRng(rng);
|
||||
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ed.onKeyUp.add(fixTableCaretPos);
|
||||
ed.onSetContent.add(fixTableCaretPos);
|
||||
ed.onVisualAid.add(fixTableCaretPos);
|
||||
|
||||
ed.onPreProcess.add(function(ed, o) {
|
||||
var last = o.node.lastChild;
|
||||
|
||||
if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR')
|
||||
ed.dom.remove(last);
|
||||
});
|
||||
|
||||
fixTableCaretPos();
|
||||
}
|
||||
|
||||
if (ed && ed.plugins.contextmenu) {
|
||||
ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
|
||||
var sm;
|
||||
var sm, se = ed.selection, el = se.getNode() || ed.getBody();
|
||||
|
||||
if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th')) {
|
||||
m.removeAll();
|
||||
|
||||
if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {
|
||||
m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
|
||||
m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
|
||||
m.addSeparator();
|
||||
}
|
||||
|
||||
if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {
|
||||
m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
|
||||
m.addSeparator();
|
||||
}
|
||||
|
||||
m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true, value : {action : 'insert'}});
|
||||
m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable', ui : true});
|
||||
m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete', ui : true});
|
||||
|
|
@ -74,30 +173,34 @@
|
|||
}
|
||||
});
|
||||
|
||||
// Block delete on gecko inside TD:s. Gecko is removing table elements and then produces incorrect tables
|
||||
// The backspace key also removed TD:s but this one can not be blocked
|
||||
if (tinymce.isGecko) {
|
||||
ed.onKeyPress.add(function(ed, e) {
|
||||
var n;
|
||||
|
||||
if (e.keyCode == 46) {
|
||||
n = ed.dom.getParent(ed.selection.getNode(), 'TD,TH');
|
||||
if (n && (!n.hasChildNodes() || (n.childNodes.length == 1 && n.firstChild.nodeName == 'BR')))
|
||||
tinymce.dom.Event.cancel(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Add undo level when new rows are created using the tab key
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE'))
|
||||
if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE')) {
|
||||
if (!tinymce.isGecko && !tinymce.isOpera) {
|
||||
tinyMCE.execInstanceCommand(ed.editorId, "mceTableMoveToNextRow", true);
|
||||
return tinymce.dom.Event.cancel(e);
|
||||
}
|
||||
|
||||
ed.undoManager.add();
|
||||
}
|
||||
});
|
||||
|
||||
// Select whole table is a table border is clicked
|
||||
if (!tinymce.isIE) {
|
||||
if (ed.getParam('table_selection', true)) {
|
||||
ed.onClick.add(function(ed, e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeName === 'TABLE')
|
||||
ed.selection.select(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
var p = ed.dom.getParent(n, 'td,th,caption');
|
||||
|
||||
cm.setActive('table', !!p);
|
||||
cm.setActive('table', n.nodeName === 'TABLE' || !!p);
|
||||
if (p && p.nodeName === 'CAPTION')
|
||||
p = null;
|
||||
|
||||
|
|
@ -114,6 +217,14 @@
|
|||
cm.setDisabled('split_cells', !p || (parseInt(ed.dom.getAttrib(p, 'colspan', '1')) < 2 && parseInt(ed.dom.getAttrib(p, 'rowspan', '1')) < 2));
|
||||
cm.setDisabled('merge_cells', !p);
|
||||
});
|
||||
|
||||
// Padd empty table cells
|
||||
if (!tinymce.isIE) {
|
||||
ed.onBeforeSetContent.add(function(ed, o) {
|
||||
if (o.initial)
|
||||
o.content = o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g, tinymce.isOpera ? '<$1$2> </$1>' : '<$1$2><br mce_bogus="1" /></$1>');
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
execCommand : function(cmd, ui, val) {
|
||||
|
|
@ -121,6 +232,7 @@
|
|||
|
||||
// Is table command
|
||||
switch (cmd) {
|
||||
case "mceTableMoveToNextRow":
|
||||
case "mceInsertTable":
|
||||
case "mceTableRowProps":
|
||||
case "mceTableCellProps":
|
||||
|
|
@ -246,6 +358,19 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
function getNextCell(table, cell) {
|
||||
var cells = [], x = 0, i, j, cell, nextCell;
|
||||
|
||||
for (i = 0; i < table.rows.length; i++)
|
||||
for (j = 0; j < table.rows[i].cells.length; j++, x++)
|
||||
cells[x] = table.rows[i].cells[j];
|
||||
|
||||
for (i = 0; i < cells.length; i++)
|
||||
if (cells[i] == cell)
|
||||
if (nextCell = cells[i+1])
|
||||
return nextCell;
|
||||
}
|
||||
|
||||
function getTableGrid(table) {
|
||||
var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;
|
||||
|
||||
|
|
@ -413,6 +538,19 @@
|
|||
|
||||
// Handle commands
|
||||
switch (command) {
|
||||
case "mceTableMoveToNextRow":
|
||||
var nextCell = getNextCell(tableElm, tdElm);
|
||||
|
||||
if (!nextCell) {
|
||||
inst.execCommand("mceTableInsertRowAfter", tdElm);
|
||||
nextCell = getNextCell(tableElm, tdElm);
|
||||
}
|
||||
|
||||
inst.selection.select(nextCell);
|
||||
inst.selection.collapse(true);
|
||||
|
||||
return true;
|
||||
|
||||
case "mceTableRowProps":
|
||||
if (trElm == null)
|
||||
return true;
|
||||
|
|
@ -625,7 +763,7 @@
|
|||
var cpos = getCellPos(grid, tdElm);
|
||||
|
||||
// Only one row, remove whole table
|
||||
if (grid.length == 1) {
|
||||
if (grid.length == 1 && tableElm.nodeName == 'TBODY') {
|
||||
inst.dom.remove(inst.dom.getParent(tableElm, "table"));
|
||||
return true;
|
||||
}
|
||||
|
|
@ -677,7 +815,7 @@
|
|||
if (!trElm || !tdElm)
|
||||
return true;
|
||||
|
||||
var grid = getTableGrid(tableElm);
|
||||
var grid = getTableGrid(inst.dom.getParent(tableElm, "table"));
|
||||
var cpos = getCellPos(grid, tdElm);
|
||||
var lastTDElm = null;
|
||||
|
||||
|
|
@ -708,7 +846,7 @@
|
|||
if (!trElm || !tdElm)
|
||||
return true;
|
||||
|
||||
var grid = getTableGrid(tableElm);
|
||||
var grid = getTableGrid(inst.dom.getParent(tableElm, "table"));
|
||||
var cpos = getCellPos(grid, tdElm);
|
||||
var lastTDElm = null;
|
||||
|
||||
|
|
@ -748,7 +886,7 @@
|
|||
var lastTDElm = null;
|
||||
|
||||
// Only one col, remove whole table
|
||||
if (grid.length > 1 && grid[0].length <= 1) {
|
||||
if ((grid.length > 1 && grid[0].length <= 1) && tableElm.nodeName == 'TBODY') {
|
||||
inst.dom.remove(inst.dom.getParent(tableElm, "table"));
|
||||
return true;
|
||||
}
|
||||
|
|
@ -886,7 +1024,7 @@
|
|||
if (!tdElm)
|
||||
break;
|
||||
|
||||
if (tdElm.nodeName == "TD")
|
||||
if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")
|
||||
cells[cells.length] = tdElm;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ function init() {
|
|||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_cell_styles');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
formObj.bordercolor.value = bordercolor;
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
|
|
@ -42,7 +44,7 @@ function init() {
|
|||
formObj.style.value = ed.dom.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
selectByValue(formObj, 'celltype', celltype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
selectByValue(formObj, 'scope', scope);
|
||||
|
|
@ -56,12 +58,13 @@ function init() {
|
|||
}
|
||||
|
||||
function updateAction() {
|
||||
var el = ed.selection.getNode();
|
||||
var inst = ed;
|
||||
var tdElm = ed.dom.getParent(el, "td,th");
|
||||
var trElm = ed.dom.getParent(el, "tr");
|
||||
var tableElm = ed.dom.getParent(el, "table");
|
||||
var formObj = document.forms[0];
|
||||
var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
el = ed.selection.getNode();
|
||||
tdElm = ed.dom.getParent(el, "td,th");
|
||||
trElm = ed.dom.getParent(el, "tr");
|
||||
tableElm = ed.dom.getParent(el, "table");
|
||||
|
||||
ed.execCommand('mceBeginUndoLevel');
|
||||
|
||||
|
|
@ -70,14 +73,24 @@ function updateAction() {
|
|||
var celltype = getSelectValue(formObj, 'celltype');
|
||||
var scope = getSelectValue(formObj, 'scope');
|
||||
|
||||
if (ed.getParam("accessibility_warnings")) {
|
||||
if (celltype == "th" && scope == "")
|
||||
var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));
|
||||
else
|
||||
var answer = true;
|
||||
function doUpdate(s) {
|
||||
if (s) {
|
||||
updateCell(tdElm);
|
||||
|
||||
if (!answer)
|
||||
return;
|
||||
ed.addVisual();
|
||||
ed.nodeChanged();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
};
|
||||
|
||||
if (ed.getParam("accessibility_warnings", 1)) {
|
||||
if (celltype == "th" && scope == "")
|
||||
tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
|
||||
else
|
||||
doUpdate(1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
updateCell(tdElm);
|
||||
|
|
|
|||
|
|
@ -6,14 +6,16 @@ function init() {
|
|||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);
|
||||
f.numrows.value = tinyMCEPopup.getWindowArg('numcols', 1);
|
||||
f.numrows.value = tinyMCEPopup.getWindowArg('numrows', 1);
|
||||
}
|
||||
|
||||
function mergeCells() {
|
||||
var args = [], f = document.forms[0];
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(f)) {
|
||||
alert(tinyMCEPopup.getLang('invalid_data'));
|
||||
tinyMCEPopup.alert(tinyMCEPopup.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ function init() {
|
|||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_row_styles');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
formObj.height.value = height;
|
||||
|
|
@ -34,7 +36,7 @@ function init() {
|
|||
formObj.style.value = dom.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
selectByValue(formObj, 'rowtype', rowtype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
|
||||
|
|
@ -46,13 +48,13 @@ function init() {
|
|||
}
|
||||
|
||||
function updateAction() {
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var dom = inst.dom;
|
||||
var trElm = dom.getParent(inst.selection.getNode(), "tr");
|
||||
var tableElm = dom.getParent(inst.selection.getNode(), "table");
|
||||
var formObj = document.forms[0];
|
||||
var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
|
||||
var action = getSelectValue(formObj, 'action');
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
trElm = dom.getParent(inst.selection.getNode(), "tr");
|
||||
tableElm = dom.getParent(inst.selection.getNode(), "table");
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
switch (action) {
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ function insertTable() {
|
|||
var html = '', capEl, elm;
|
||||
var cellLimit, rowLimit, colLimit;
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(formObj)) {
|
||||
alert(inst.getLang('invalid_data'));
|
||||
tinyMCEPopup.alert(inst.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -22,14 +24,14 @@ function insertTable() {
|
|||
border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;
|
||||
cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
|
||||
cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
|
||||
align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
|
||||
frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;
|
||||
rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;
|
||||
align = getSelectValue(formObj, "align");
|
||||
frame = getSelectValue(formObj, "tframe");
|
||||
rules = getSelectValue(formObj, "rules");
|
||||
width = formObj.elements['width'].value;
|
||||
height = formObj.elements['height'].value;
|
||||
bordercolor = formObj.elements['bordercolor'].value;
|
||||
bgcolor = formObj.elements['bgcolor'].value;
|
||||
className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
|
||||
className = getSelectValue(formObj, "class");
|
||||
id = formObj.elements['id'].value;
|
||||
summary = formObj.elements['summary'].value;
|
||||
style = formObj.elements['style'].value;
|
||||
|
|
@ -44,13 +46,13 @@ function insertTable() {
|
|||
|
||||
// Validate table size
|
||||
if (colLimit && cols > colLimit) {
|
||||
alert(inst.getLang('table_col_limit', '', true, {cols : colLimit}));
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
|
||||
return false;
|
||||
} else if (rowLimit && rows > rowLimit) {
|
||||
alert(inst.getLang('table_row_limit', '', true, {rows : rowLimit}));
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
|
||||
return false;
|
||||
} else if (cellLimit && cols * rows > cellLimit) {
|
||||
alert(inst.getLang('table_cell_limit', '', true, {cells : cellLimit}));
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -85,7 +87,7 @@ function insertTable() {
|
|||
elm.insertBefore(capEl, elm.firstChild);
|
||||
}
|
||||
|
||||
if (width && /(pt|em|cm)$/.test(width)) {
|
||||
if (width && inst.settings.inline_styles) {
|
||||
dom.setStyle(elm, 'width', width);
|
||||
dom.setAttrib(elm, 'width', '');
|
||||
} else {
|
||||
|
|
@ -98,10 +100,13 @@ function insertTable() {
|
|||
dom.setAttrib(elm, 'bgColor', '');
|
||||
dom.setAttrib(elm, 'background', '');
|
||||
|
||||
if (height) {
|
||||
if (height && inst.settings.inline_styles) {
|
||||
dom.setStyle(elm, 'height', height);
|
||||
dom.setAttrib(elm, 'height', '');
|
||||
}
|
||||
} else {
|
||||
dom.setAttrib(elm, 'height', height, true);
|
||||
dom.setStyle(elm, 'height', '');
|
||||
}
|
||||
|
||||
if (background != '')
|
||||
elm.style.backgroundImage = "url('" + background + "')";
|
||||
|
|
@ -147,10 +152,14 @@ function insertTable() {
|
|||
html += makeAttrib('cellpadding', cellpadding);
|
||||
html += makeAttrib('cellspacing', cellspacing);
|
||||
|
||||
if (width && /(pt|em|cm)$/.test(width)) {
|
||||
if (width && inst.settings.inline_styles) {
|
||||
if (style)
|
||||
style += '; ';
|
||||
|
||||
// Force px
|
||||
if (/^[0-9\.]+$/.test(width))
|
||||
width += 'px';
|
||||
|
||||
style += 'width: ' + width;
|
||||
} else
|
||||
html += makeAttrib('width', width);
|
||||
|
|
@ -198,7 +207,30 @@ function insertTable() {
|
|||
html += "</table>";
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
inst.execCommand('mceInsertContent', false, html);
|
||||
|
||||
// Move table
|
||||
if (inst.settings.fix_table_elements) {
|
||||
var bm = inst.selection.getBookmark(), patt = '';
|
||||
|
||||
inst.execCommand('mceInsertContent', false, '<br class="_mce_marker" />');
|
||||
|
||||
tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) {
|
||||
if (patt)
|
||||
patt += ',';
|
||||
|
||||
patt += n + ' ._mce_marker';
|
||||
});
|
||||
|
||||
tinymce.each(inst.dom.select(patt), function(n) {
|
||||
inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n);
|
||||
});
|
||||
|
||||
dom.setOuterHTML(dom.select('._mce_marker')[0], html);
|
||||
|
||||
inst.selection.moveToBookmark(bm);
|
||||
} else
|
||||
inst.execCommand('mceInsertContent', false, html);
|
||||
|
||||
inst.addVisual();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
|
||||
|
|
@ -286,12 +318,13 @@ function init() {
|
|||
}
|
||||
|
||||
addClassesToList('class', "table_styles");
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
// Update form
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'frame', frame);
|
||||
selectByValue(formObj, 'tframe', frame);
|
||||
selectByValue(formObj, 'rules', rules);
|
||||
selectByValue(formObj, 'class', className);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
formObj.cols.value = cols;
|
||||
formObj.rows.value = rows;
|
||||
formObj.border.value = border;
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@
|
|||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/validate.js"></script>
|
||||
<script type="text/javascript" src="js/merge_cells.js"></script>
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="margin: 8px" style="display: none">
|
||||
<body style="margin: 8px">
|
||||
<form onsubmit="mergeCells();return false;" action="#">
|
||||
<fieldset>
|
||||
<legend>{#table_dlg.merge_cells_title}</legend>
|
||||
|
|
|
|||
|
|
@ -5,12 +5,12 @@
|
|||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="../../utils/editable_selects.js"></script>
|
||||
<script type="text/javascript" src="js/row.js"></script>
|
||||
<link href="css/row.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="tablerow" style="display: none">
|
||||
<form onsubmit="updateAction();return false;">
|
||||
<form onsubmit="updateAction();return false;" action="#">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
<tr id="styleSelectRow">
|
||||
<td><label for="class">{#class_name}</label></td>
|
||||
<td class="col2">
|
||||
<select id="class" name="class">
|
||||
<select id="class" name="class" class="mceEditableSelect">
|
||||
<option value="" selected="selected">{#not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
<script type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="../../utils/validate.js"></script>
|
||||
<script type="text/javascript" src="../../utils/editable_selects.js"></script>
|
||||
<script type="text/javascript" src="js/table.js"></script>
|
||||
<link href="css/table.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="table" style="display: none">
|
||||
<form onsubmit="insertTable();return false;" action="#">
|
||||
|
|
@ -56,8 +56,8 @@
|
|||
<tr id="styleSelectRow">
|
||||
<td><label id="classlabel" for="class">{#class_name}</label></td>
|
||||
<td colspan="3">
|
||||
<select id="class" name="class">
|
||||
<option value="" selected>{#not_set}</option>
|
||||
<select id="class" name="class" class="mceEditableSelect">
|
||||
<option value="" selected="selected">{#not_set}</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -108,24 +108,10 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="frame">{#table_dlg.frame}</label></td>
|
||||
<td class="column1"><label for="tframe">{#table_dlg.frame}</label></td>
|
||||
<td>
|
||||
<select id="frame" name="frame" class="advfield">
|
||||
<option value="">{#not_set}</option>
|
||||
<option value="none">{#table_dlg.frame_none}</option>
|
||||
<option value="groups">{#table_dlg.frame_groups}</option>
|
||||
<option value="rows">{#table_dlg.frame_rows}</option>
|
||||
<option value="cols">{#table_dlg.frame_cols}</option>
|
||||
<option value="all">{#table_dlg.frame_all}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="rules">{#table_dlg.rules}</label></td>
|
||||
<td>
|
||||
<select id="rules" name="rules" class="advfield">
|
||||
<option value="">{#not_set}</option>
|
||||
<select id="tframe" name="tframe" class="advfield">
|
||||
<option value="">{#not_set}</option>
|
||||
<option value="void">{#table_dlg.rules_void}</option>
|
||||
<option value="above">{#table_dlg.rules_above}</option>
|
||||
<option value="below">{#table_dlg.rules_below}</option>
|
||||
|
|
@ -135,6 +121,20 @@
|
|||
<option value="vsides">{#table_dlg.rules_vsides}</option>
|
||||
<option value="box">{#table_dlg.rules_box}</option>
|
||||
<option value="border">{#table_dlg.rules_border}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="rules">{#table_dlg.rules}</label></td>
|
||||
<td>
|
||||
<select id="rules" name="rules" class="advfield">
|
||||
<option value="">{#not_set}</option>
|
||||
<option value="none">{#table_dlg.frame_none}</option>
|
||||
<option value="groups">{#table_dlg.frame_groups}</option>
|
||||
<option value="rows">{#table_dlg.frame_rows}</option>
|
||||
<option value="cols">{#table_dlg.frame_cols}</option>
|
||||
<option value="all">{#table_dlg.frame_all}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_cdate_format",ed.getLang("template.cdate_format")));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value;}return value;}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('template',tinymce.plugins.TemplatePlugin);})();
|
||||
(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length<d){for(f=0;f<(d-g.length);f++){g="0"+g}}return g}b=b.replace("%D","%m/%d/%y");b=b.replace("%r","%I:%M:%S %p");b=b.replace("%Y",""+e.getFullYear());b=b.replace("%y",""+e.getYear());b=b.replace("%m",c(e.getMonth()+1,2));b=b.replace("%d",c(e.getDate(),2));b=b.replace("%H",""+c(e.getHours(),2));b=b.replace("%M",""+c(e.getMinutes(),2));b=b.replace("%S",""+c(e.getSeconds(),2));b=b.replace("%I",""+((e.getHours()+11)%12+1));b=b.replace("%p",""+(e.getHours()<12?"AM":"PM"));b=b.replace("%B",""+this.editor.getLang("template_months_long").split(",")[e.getMonth()]);b=b.replace("%b",""+this.editor.getLang("template_months_short").split(",")[e.getMonth()]);b=b.replace("%A",""+this.editor.getLang("template_day_long").split(",")[e.getDay()]);b=b.replace("%a",""+this.editor.getLang("template_day_short").split(",")[e.getDay()]);b=b.replace("%%","%");return b}});tinymce.PluginManager.add("template",tinymce.plugins.TemplatePlugin)})();
|
||||
|
|
@ -69,6 +69,13 @@
|
|||
|
||||
el = dom.create('div', null, h);
|
||||
|
||||
// Find template element within div
|
||||
n = dom.select('.mceTmpl', el);
|
||||
if (n && n.length > 0) {
|
||||
el = dom.create('div', null);
|
||||
el.appendChild(n[0].cloneNode(true));
|
||||
}
|
||||
|
||||
function hasClass(n, c) {
|
||||
return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
|
||||
};
|
||||
|
|
@ -134,10 +141,10 @@
|
|||
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
|
||||
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
|
||||
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
|
||||
fmt = fmt.replace("%B", "" + tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%b", "" + tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%A", "" + tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%a", "" + tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%%", "%");
|
||||
|
||||
return fmt;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ var TemplateDialog = {
|
|||
sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
|
||||
|
||||
this.resize();
|
||||
this.tsrc = tsrc;
|
||||
},
|
||||
|
||||
resize : function() {
|
||||
|
|
@ -47,19 +48,24 @@ var TemplateDialog = {
|
|||
|
||||
loadCSSFiles : function(d) {
|
||||
var ed = tinyMCEPopup.editor;
|
||||
|
||||
|
||||
tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
|
||||
d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
|
||||
d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
|
||||
});
|
||||
},
|
||||
|
||||
selectTemplate : function(u) {
|
||||
var d = window.frames['templatesrc'].document;
|
||||
selectTemplate : function(u, ti) {
|
||||
var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
|
||||
|
||||
if (!u)
|
||||
return;
|
||||
|
||||
d.body.innerHTML = this.templateHTML = this.getFileContents(u);
|
||||
|
||||
for (x=0; x<tsrc.length; x++) {
|
||||
if (tsrc[x].title == ti)
|
||||
document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
|
||||
}
|
||||
},
|
||||
|
||||
insert : function() {
|
||||
|
|
|
|||
|
|
@ -4,14 +4,13 @@
|
|||
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script type="text/javascript" src="js/template.js"></script>
|
||||
<link href="css/template.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body onresize="TemplateDialog.resize();">
|
||||
<form onsubmit="TemplateDialog.insert();return false;">
|
||||
<div id="frmbody">
|
||||
<div class="title">{#template_dlg.desc}</div>
|
||||
<div class="frmRow"><label for="tpath" title="{#template_dlg.select}">{#template_dlg.label}:</label>
|
||||
<select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value);" class="mceFocus">
|
||||
<select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value, this.options[this.selectedIndex].text);" class="mceFocus">
|
||||
<option value="">{#template_dlg.select}...</option>
|
||||
</select>
|
||||
<span id="warning"></span></div>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i<nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(·|\u00b7)/g,' '),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
|
||||
(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state){c.state=true;c._toggleVisualChars()}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(){var m=this,g=m.editor,a,e,f,k=g.getDoc(),l=g.getBody(),j,n=g.selection,c;m.state=!m.state;g.controlManager.setActive("visualchars",m.state);if(m.state){a=[];tinymce.walk(l,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(e=0;e<a.length;e++){j=a[e].nodeValue;j=j.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');j=j.replace(/\u00a0/g,"\u00b7");g.dom.setOuterHTML(a[e],j,k)}}else{a=tinymce.grep(g.dom.select("span",l),function(b){return g.dom.hasClass(b,"mceVisualNbsp")});for(e=0;e<a.length;e++){g.dom.setOuterHTML(a[e],a[e].innerHTML.replace(/(·|\u00b7)/g," "),k)}}}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})();
|
||||
1
www/extras/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js
vendored
Normal file
1
www/extras/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(a,b){var c=this,d=0;c.countre=a.getParam("wordcount_countregex",/\S\s+/g);c.cleanre=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$¿'"_+=\\/-]*/g);c.id=a.id+"-word-count";a.onPostRender.add(function(f,e){var g,h;h=f.getParam("wordcount_target_id");if(!h){g=tinymce.DOM.get(f.id+"_path_row");if(g){tinymce.DOM.add(g.parentNode,"div",{style:"float: right"},f.getLang("wordcount.words","Words: ")+'<span id="'+c.id+'">0</span>')}}else{tinymce.DOM.add(h,"span",{},'<span id="'+c.id+'">0</span>')}});a.onInit.add(function(e){e.selection.onSetContent.add(function(){c._count(e)});c._count(e)});a.onSetContent.add(function(e){c._count(e)});a.onKeyUp.add(function(f,g){if(g.keyCode==d){return}if(13==g.keyCode||8==d||46==d){c._count(f)}d=g.keyCode})},_count:function(b){var c=this,a=0;if(c.block){return}c.block=1;setTimeout(function(){var d=b.getContent({format:"raw"});if(d){d=d.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ");d=d.replace(c.cleanre,"");d.replace(c.countre,function(){a++})}tinymce.DOM.setHTML(c.id,a.toString());setTimeout(function(){c.block=0},2000)},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})();
|
||||
95
www/extras/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js
vendored
Normal file
95
www/extras/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js
vendored
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
/**
|
||||
* $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.WordCount', {
|
||||
block : 0,
|
||||
id : null,
|
||||
countre : null,
|
||||
cleanre : null,
|
||||
|
||||
init : function(ed, url) {
|
||||
var t = this, last = 0;
|
||||
|
||||
t.countre = ed.getParam('wordcount_countregex', /\S\s+/g);
|
||||
t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g);
|
||||
t.id = ed.id + '-word-count';
|
||||
|
||||
ed.onPostRender.add(function(ed, cm) {
|
||||
var row, id;
|
||||
|
||||
// Add it to the specified id or the theme advanced path
|
||||
id = ed.getParam('wordcount_target_id');
|
||||
if (!id) {
|
||||
row = tinymce.DOM.get(ed.id + '_path_row');
|
||||
|
||||
if (row)
|
||||
tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '<span id="' + t.id + '">0</span>');
|
||||
} else
|
||||
tinymce.DOM.add(id, 'span', {}, '<span id="' + t.id + '">0</span>');
|
||||
});
|
||||
|
||||
ed.onInit.add(function(ed) {
|
||||
ed.selection.onSetContent.add(function() {
|
||||
t._count(ed);
|
||||
});
|
||||
|
||||
t._count(ed);
|
||||
});
|
||||
|
||||
ed.onSetContent.add(function(ed) {
|
||||
t._count(ed);
|
||||
});
|
||||
|
||||
ed.onKeyUp.add(function(ed, e) {
|
||||
if (e.keyCode == last)
|
||||
return;
|
||||
|
||||
if (13 == e.keyCode || 8 == last || 46 == last)
|
||||
t._count(ed);
|
||||
|
||||
last = e.keyCode;
|
||||
});
|
||||
},
|
||||
|
||||
_count : function(ed) {
|
||||
var t = this, tc = 0;
|
||||
|
||||
// Keep multiple calls from happening at the same time
|
||||
if (t.block)
|
||||
return;
|
||||
|
||||
t.block = 1;
|
||||
|
||||
setTimeout(function() {
|
||||
var tx = ed.getContent({format : 'raw'});
|
||||
|
||||
if (tx) {
|
||||
tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars
|
||||
tx = tx.replace(t.cleanre, ''); // remove numbers and punctuation
|
||||
tx.replace(t.countre, function() {tc++;}); // count the words
|
||||
}
|
||||
|
||||
tinymce.DOM.setHTML(t.id, tc.toString());
|
||||
|
||||
setTimeout(function() {t.block = 0;}, 2000);
|
||||
}, 1);
|
||||
},
|
||||
|
||||
getInfo: function() {
|
||||
return {
|
||||
longname : 'Word Count plugin',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount);
|
||||
})();
|
||||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="js/element_common.js"></script>
|
||||
<script type="text/javascript" src="js/abbr.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/popup.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<form onsubmit="insertAbbr();return false;" action="#">
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="js/element_common.js"></script>
|
||||
<script type="text/javascript" src="js/acronym.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/popup.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<form onsubmit="insertAcronym();return false;" action="#">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
<script type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script type="text/javascript" src="js/attributes.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/attributes.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<form onsubmit="insertAction();return false;" action="#">
|
||||
|
|
@ -36,12 +35,12 @@
|
|||
<td><label id="classlabel" for="classlist">{#class_name}</label></td>
|
||||
<td>
|
||||
<select id="classlist" name="classlist" class="mceEditableSelect">
|
||||
<option value="" selected>{#not_set}</option>
|
||||
<option value="" selected="selected">{#not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
|
||||
<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
|
||||
<td><input id="style" name="style" type="text" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="js/element_common.js"></script>
|
||||
<script type="text/javascript" src="js/cite.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/popup.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body style="display: none">
|
||||
<form onsubmit="insertCite();return false;" action="#">
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="js/element_common.js"></script>
|
||||
<script type="text/javascript" src="js/del.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/popup.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="xhtmlxtrasins" style="display: none">
|
||||
<form onsubmit="insertDel();return false;" action="#">
|
||||
|
|
@ -31,7 +30,7 @@
|
|||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td>
|
||||
<td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
|
||||
<td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');if(n){cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}else{cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
|
||||
(function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(b,c){b.addCommand("mceCite",function(){b.windowManager.open({file:c+"/cite.htm",width:350+parseInt(b.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(b.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:c})});b.addCommand("mceAcronym",function(){b.windowManager.open({file:c+"/acronym.htm",width:350+parseInt(b.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(b.getLang("xhtmlxtras.acronym_delta_width",0)),inline:1},{plugin_url:c})});b.addCommand("mceAbbr",function(){b.windowManager.open({file:c+"/abbr.htm",width:350+parseInt(b.getLang("xhtmlxtras.abbr_delta_width",0)),height:250+parseInt(b.getLang("xhtmlxtras.abbr_delta_width",0)),inline:1},{plugin_url:c})});b.addCommand("mceDel",function(){b.windowManager.open({file:c+"/del.htm",width:340+parseInt(b.getLang("xhtmlxtras.del_delta_width",0)),height:310+parseInt(b.getLang("xhtmlxtras.del_delta_width",0)),inline:1},{plugin_url:c})});b.addCommand("mceIns",function(){b.windowManager.open({file:c+"/ins.htm",width:340+parseInt(b.getLang("xhtmlxtras.ins_delta_width",0)),height:310+parseInt(b.getLang("xhtmlxtras.ins_delta_width",0)),inline:1},{plugin_url:c})});b.addCommand("mceAttributes",function(){b.windowManager.open({file:c+"/attributes.htm",width:380,height:370,inline:1},{plugin_url:c})});b.addButton("cite",{title:"xhtmlxtras.cite_desc",cmd:"mceCite"});b.addButton("acronym",{title:"xhtmlxtras.acronym_desc",cmd:"mceAcronym"});b.addButton("abbr",{title:"xhtmlxtras.abbr_desc",cmd:"mceAbbr"});b.addButton("del",{title:"xhtmlxtras.del_desc",cmd:"mceDel"});b.addButton("ins",{title:"xhtmlxtras.ins_desc",cmd:"mceIns"});b.addButton("attribs",{title:"xhtmlxtras.attribs_desc",cmd:"mceAttributes"});if(tinymce.isIE){function a(d,e){if(e.set){e.content=e.content.replace(/<abbr([^>]+)>/gi,"<html:abbr $1>");e.content=e.content.replace(/<\/abbr>/gi,"</html:abbr>")}}b.onBeforeSetContent.add(a);b.onPostProcess.add(a)}b.onNodeChange.add(function(e,d,g,f){g=e.dom.getParent(g,"CITE,ACRONYM,ABBR,DEL,INS");d.setDisabled("cite",f);d.setDisabled("acronym",f);d.setDisabled("abbr",f);d.setDisabled("del",f);d.setDisabled("ins",f);d.setDisabled("attribs",g&&g.nodeName=="BODY");d.setActive("cite",0);d.setActive("acronym",0);d.setActive("abbr",0);d.setActive("del",0);d.setActive("ins",0);if(g){do{d.setDisabled(g.nodeName.toLowerCase(),0);d.setActive(g.nodeName.toLowerCase(),1)}while(g=g.parentNode)}})},getInfo:function(){return{longname:"XHTML Xtras Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("xhtmlxtras",tinymce.plugins.XHTMLXtrasPlugin)})();
|
||||
|
|
@ -104,16 +104,18 @@
|
|||
cm.setDisabled('del', co);
|
||||
cm.setDisabled('ins', co);
|
||||
cm.setDisabled('attribs', n && n.nodeName == 'BODY');
|
||||
cm.setActive('cite', 0);
|
||||
cm.setActive('acronym', 0);
|
||||
cm.setActive('abbr', 0);
|
||||
cm.setActive('del', 0);
|
||||
cm.setActive('ins', 0);
|
||||
|
||||
// Activate all
|
||||
if (n) {
|
||||
cm.setDisabled(n.nodeName.toLowerCase(), 0);
|
||||
cm.setActive(n.nodeName.toLowerCase(), 1);
|
||||
} else {
|
||||
cm.setActive('cite', 0);
|
||||
cm.setActive('acronym', 0);
|
||||
cm.setActive('abbr', 0);
|
||||
cm.setActive('del', 0);
|
||||
cm.setActive('ins', 0);
|
||||
do {
|
||||
cm.setDisabled(n.nodeName.toLowerCase(), 0);
|
||||
cm.setActive(n.nodeName.toLowerCase(), 1);
|
||||
} while (n = n.parentNode);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
<script type="text/javascript" src="js/element_common.js"></script>
|
||||
<script type="text/javascript" src="js/ins.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/popup.css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="xhtmlxtrasins" style="display: none">
|
||||
<form onsubmit="insertIns();return false;" action="#">
|
||||
|
|
@ -31,7 +30,7 @@
|
|||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td>
|
||||
<td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
|
||||
<td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ function insertDel() {
|
|||
if (elm == null) {
|
||||
var s = SXE.inst.selection.getContent();
|
||||
if(s.length > 0) {
|
||||
tinyMCEPopup.execCommand('mceInsertContent', false, '<del id="#sxe_temp_del#">' + s + '</del>');
|
||||
insertInlineElement('del');
|
||||
var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});
|
||||
for (var i=0; i<elementArray.length; i++) {
|
||||
var elm = elementArray[i];
|
||||
|
|
@ -42,6 +42,16 @@ function insertDel() {
|
|||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function insertInlineElement(en) {
|
||||
var ed = tinyMCEPopup.editor, dom = ed.dom;
|
||||
|
||||
ed.getDoc().execCommand('FontName', false, 'mceinline');
|
||||
tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
|
||||
if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
|
||||
dom.replace(dom.create(en), n, 1);
|
||||
});
|
||||
}
|
||||
|
||||
function removeDel() {
|
||||
SXE.removeElement('del');
|
||||
tinyMCEPopup.close();
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ SXE.initElementDialog = function(element_name) {
|
|||
|
||||
element_name = element_name.toLowerCase();
|
||||
var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
|
||||
if (elm != null && elm.nodeName == element_name.toUpperCase()) {
|
||||
if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {
|
||||
SXE.currentAction = "update";
|
||||
}
|
||||
|
||||
|
|
@ -160,19 +160,19 @@ SXE.insertElement = function(element_name) {
|
|||
if (tinymce.isIE && element_name.indexOf('html:') == 0)
|
||||
element_name = element_name.substring(5).toLowerCase();
|
||||
|
||||
h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';
|
||||
|
||||
tinyMCEPopup.execCommand('mceInsertContent', false, h);
|
||||
|
||||
var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';});
|
||||
insertInlineElement(element_name);
|
||||
var elementArray = tinymce.grep(SXE.inst.dom.select(element_name));
|
||||
for (var i=0; i<elementArray.length; i++) {
|
||||
var elm = elementArray[i];
|
||||
|
||||
elm.id = '';
|
||||
elm.setAttribute('id', '');
|
||||
elm.removeAttribute('id');
|
||||
if (SXE.inst.dom.getAttrib(elm, '_mce_new')) {
|
||||
elm.id = '';
|
||||
elm.setAttribute('id', '');
|
||||
elm.removeAttribute('id');
|
||||
elm.removeAttribute('_mce_new');
|
||||
|
||||
setAllCommonAttribs(elm);
|
||||
setAllCommonAttribs(elm);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -185,7 +185,7 @@ SXE.insertElement = function(element_name) {
|
|||
SXE.removeElement = function(element_name){
|
||||
element_name = element_name.toLowerCase();
|
||||
elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
|
||||
if(elm && elm.nodeName == element_name.toUpperCase()){
|
||||
if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){
|
||||
tinyMCEPopup.execCommand('mceBeginUndoLevel');
|
||||
tinyMCE.execCommand('mceRemoveNode', false, elm);
|
||||
SXE.inst.nodeChanged();
|
||||
|
|
@ -218,4 +218,14 @@ SXE.removeClass = function(elm,cl) {
|
|||
SXE.addClass = function(elm,cl) {
|
||||
if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function insertInlineElement(en) {
|
||||
var ed = tinyMCEPopup.editor, dom = ed.dom;
|
||||
|
||||
ed.getDoc().execCommand('FontName', false, 'mceinline');
|
||||
tinymce.each(dom.select('span,font'), function(n) {
|
||||
if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
|
||||
dom.replace(dom.create(en, {_mce_new : 1}), n, 1);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ function insertIns() {
|
|||
if (elm == null) {
|
||||
var s = SXE.inst.selection.getContent();
|
||||
if(s.length > 0) {
|
||||
tinyMCEPopup.execCommand('mceInsertContent', false, '<ins id="#sxe_temp_ins#">' + s + '</ins>');
|
||||
insertInlineElement('INS');
|
||||
var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});
|
||||
for (var i=0; i<elementArray.length; i++) {
|
||||
var elm = elementArray[i];
|
||||
|
|
@ -46,4 +46,14 @@ function removeIns() {
|
|||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function insertInlineElement(en) {
|
||||
var ed = tinyMCEPopup.editor, dom = ed.dom;
|
||||
|
||||
ed.getDoc().execCommand('FontName', false, 'mceinline');
|
||||
tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
|
||||
if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
|
||||
dom.replace(dom.create(en), n, 1);
|
||||
});
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{#advanced_dlg.about_title}</title>
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
<p>Version: <span id="version"></span> (<span id="date"></span>)</p>
|
||||
<p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>
|
||||
by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>
|
||||
<p>Copyright © 2003-2007, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
|
||||
<p>Copyright © 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
|
||||
<p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>
|
||||
|
||||
<div id="buttoncontainer">
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue