Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js 8 May 2009 17:38:37 -0000 1.1
@@ -0,0 +1,43 @@
+var AdvHRDialog = {
+ init : function(ed) {
+ var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;
+
+ w = dom.getAttrib(n, 'width');
+ 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], st = '';
+
+ h = '
';
+
+ ed.execCommand("mceInsertContent", false, h);
+ tinyMCEPopup.close();
+ }
+};
+
+tinyMCEPopup.requireLangPack();
+tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,5 @@
+tinyMCE.addI18n('en.advhr_dlg',{
+width:"Width",
+size:"Height",
+noshade:"No shadow"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,443 @@
+var ImageDialog = {
+ preInit : function() {
+ var url;
+
+ tinyMCEPopup.requireLangPack();
+
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))
+ document.write('');
+ },
+
+ init : function(ed) {
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();
+
+ tinyMCEPopup.resizeToInnerSize();
+ this.fillClassList('class_list');
+ 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');
+ nl.width.value = dom.getAttrib(n, 'width');
+ nl.height.value = dom.getAttrib(n, 'height');
+ nl.alt.value = dom.getAttrib(n, 'alt');
+ nl.title.value = dom.getAttrib(n, 'title');
+ nl.vspace.value = this.getAttrib(n, 'vspace');
+ 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'), true, true);
+ nl.style.value = dom.getAttrib(n, 'style');
+ nl.id.value = dom.getAttrib(n, 'id');
+ nl.dir.value = dom.getAttrib(n, 'dir');
+ nl.lang.value = dom.getAttrib(n, 'lang');
+ nl.usemap.value = dom.getAttrib(n, 'usemap');
+ nl.longdesc.value = dom.getAttrib(n, 'longdesc');
+ nl.insert.value = ed.getLang('update');
+
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))
+ nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
+
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))
+ nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
+
+ if (ed.settings.inline_styles) {
+ // Move attribs to styles
+ if (dom.getAttrib(n, 'align'))
+ this.updateStyle('align');
+
+ if (dom.getAttrib(n, 'hspace'))
+ this.updateStyle('hspace');
+
+ if (dom.getAttrib(n, 'border'))
+ this.updateStyle('border');
+
+ if (dom.getAttrib(n, 'vspace'))
+ this.updateStyle('vspace');
+ }
+ }
+
+ // Setup browse button
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
+ if (isVisible('srcbrowser'))
+ document.getElementById('src').style.width = '260px';
+
+ // Setup browse button
+ document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');
+ if (isVisible('overbrowser'))
+ document.getElementById('onmouseoversrc').style.width = '260px';
+
+ // Setup browse button
+ document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');
+ if (isVisible('outbrowser'))
+ document.getElementById('onmouseoutsrc').style.width = '260px';
+
+ // If option enabled default contrain proportions to checked
+ if (ed.getParam("advimage_constrain_proportions", true))
+ f.constrain.checked = true;
+
+ // Check swap image if valid data
+ if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)
+ this.setSwapImage(true);
+ else
+ this.setSwapImage(false);
+
+ this.changeAppearance();
+ this.showPreviewImage(nl.src.value, 1);
+ },
+
+ insert : function(file, title) {
+ var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];
+
+ if (f.src.value === '') {
+ if (ed.selection.getNode().nodeName == 'IMG') {
+ ed.dom.remove(ed.selection.getNode());
+ ed.execCommand('mceRepaint');
+ }
+
+ tinyMCEPopup.close();
+ return;
+ }
+
+ if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {
+ if (!f.alt.value) {
+ tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
+ if (s)
+ t.insertAndClose();
+ });
+
+ return;
+ }
+ }
+
+ t.insertAndClose();
+ },
+
+ insertAndClose : function() {
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;
+
+ tinyMCEPopup.restoreSelection();
+
+ // Fixes crash in Safari
+ if (tinymce.isWebKit)
+ ed.getWin().focus();
+
+ if (!ed.settings.inline_styles) {
+ args = {
+ vspace : nl.vspace.value,
+ hspace : nl.hspace.value,
+ border : nl.border.value,
+ align : getSelectValue(f, 'align')
+ };
+ } else {
+ // Remove deprecated values
+ args = {
+ vspace : '',
+ hspace : '',
+ border : '',
+ align : ''
+ };
+ }
+
+ tinymce.extend(args, {
+ src : nl.src.value,
+ width : nl.width.value,
+ height : nl.height.value,
+ alt : nl.alt.value,
+ title : nl.title.value,
+ 'class' : getSelectValue(f, 'class_list'),
+ style : nl.style.value,
+ id : nl.id.value,
+ dir : nl.dir.value,
+ lang : nl.lang.value,
+ usemap : nl.usemap.value,
+ longdesc : nl.longdesc.value
+ });
+
+ args.onmouseover = args.onmouseout = '';
+
+ if (f.onmousemovecheck.checked) {
+ if (nl.onmouseoversrc.value)
+ args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";
+
+ if (nl.onmouseoutsrc.value)
+ args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";
+ }
+
+ el = ed.selection.getNode();
+
+ if (el && el.nodeName == 'IMG') {
+ ed.dom.setAttribs(el, args);
+ } else {
+ ed.execCommand('mceInsertContent', false, '', {skip_undo : 1});
+ ed.dom.setAttribs('__mce_tmp', args);
+ ed.dom.setAttrib('__mce_tmp', 'id', '');
+ ed.undoManager.add();
+ }
+
+ tinyMCEPopup.close();
+ },
+
+ getAttrib : function(e, at) {
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
+
+ if (ed.settings.inline_styles) {
+ switch (at) {
+ case 'align':
+ if (v = dom.getStyle(e, 'float'))
+ return v;
+
+ if (v = dom.getStyle(e, 'vertical-align'))
+ return v;
+
+ break;
+
+ case 'hspace':
+ v = dom.getStyle(e, 'margin-left')
+ v2 = dom.getStyle(e, 'margin-right');
+
+ if (v && v == v2)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+
+ case 'vspace':
+ v = dom.getStyle(e, 'margin-top')
+ v2 = dom.getStyle(e, 'margin-bottom');
+ if (v && v == v2)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+
+ case 'border':
+ v = 0;
+
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
+ sv = dom.getStyle(e, 'border-' + sv + '-width');
+
+ // False or not the same as prev
+ if (!sv || (sv != v && v !== 0)) {
+ v = 0;
+ return false;
+ }
+
+ if (sv)
+ v = sv;
+ });
+
+ if (v)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+ }
+ }
+
+ if (v = dom.getAttrib(e, at))
+ return v;
+
+ return '';
+ },
+
+ setSwapImage : function(st) {
+ var f = document.forms[0];
+
+ f.onmousemovecheck.checked = st;
+ setBrowserDisabled('overbrowser', !st);
+ setBrowserDisabled('outbrowser', !st);
+
+ if (f.over_list)
+ f.over_list.disabled = !st;
+
+ if (f.out_list)
+ f.out_list.disabled = !st;
+
+ f.onmouseoversrc.disabled = !st;
+ f.onmouseoutsrc.disabled = !st;
+ },
+
+ fillClassList : function(id) {
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+ if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
+ cl = [];
+
+ tinymce.each(v.split(';'), function(v) {
+ var p = v.split('=');
+
+ cl.push({'title' : p[0], 'class' : p[1]});
+ });
+ } else
+ 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) {
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
+ });
+ } else
+ dom.remove(dom.getParent(id, 'tr'));
+ },
+
+ fillFileList : function(id, l) {
+ 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('', '');
+
+ tinymce.each(l, function(o) {
+ lst.options[lst.options.length] = new Option(o[0], o[1]);
+ });
+ } else
+ dom.remove(dom.getParent(id, 'tr'));
+ },
+
+ resetImageData : function() {
+ var f = document.forms[0];
+
+ f.elements.width.value = f.elements.height.value = '';
+ },
+
+ updateImageData : function(img, st) {
+ var f = document.forms[0];
+
+ if (!st) {
+ f.elements.width.value = img.width;
+ f.elements.height.value = img.height;
+ }
+
+ this.preloadImg = img;
+ },
+
+ changeAppearance : function() {
+ var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');
+
+ if (img) {
+ if (ed.getParam('inline_styles')) {
+ ed.dom.setAttrib(img, 'style', f.style.value);
+ } else {
+ img.align = f.align.value;
+ img.border = f.border.value;
+ img.hspace = f.hspace.value;
+ img.vspace = f.vspace.value;
+ }
+ }
+ },
+
+ changeHeight : function() {
+ var f = document.forms[0], tp, t = this;
+
+ if (!f.constrain.checked || !t.preloadImg) {
+ return;
+ }
+
+ if (f.width.value == "" || f.height.value == "")
+ return;
+
+ tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;
+ f.height.value = tp.toFixed(0);
+ },
+
+ changeWidth : function() {
+ var f = document.forms[0], tp, t = this;
+
+ if (!f.constrain.checked || !t.preloadImg) {
+ return;
+ }
+
+ if (f.width.value == "" || f.height.value == "")
+ return;
+
+ tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;
+ f.width.value = tp.toFixed(0);
+ },
+
+ updateStyle : function(ty) {
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});
+
+ if (tinyMCEPopup.editor.settings.inline_styles) {
+ // Handle align
+ if (ty == 'align') {
+ dom.setStyle(img, 'float', '');
+ dom.setStyle(img, 'vertical-align', '');
+
+ v = getSelectValue(f, 'align');
+ if (v) {
+ if (v == 'left' || v == 'right')
+ dom.setStyle(img, 'float', v);
+ else
+ img.style.verticalAlign = v;
+ }
+ }
+
+ // Handle border
+ if (ty == 'border') {
+ dom.setStyle(img, 'border', '');
+
+ v = f.border.value;
+ if (v || v == '0') {
+ if (v == '0')
+ img.style.border = '0';
+ else
+ img.style.border = v + 'px solid black';
+ }
+ }
+
+ // Handle hspace
+ if (ty == 'hspace') {
+ dom.setStyle(img, 'marginLeft', '');
+ dom.setStyle(img, 'marginRight', '');
+
+ v = f.hspace.value;
+ if (v) {
+ img.style.marginLeft = v + 'px';
+ img.style.marginRight = v + 'px';
+ }
+ }
+
+ // Handle vspace
+ if (ty == 'vspace') {
+ dom.setStyle(img, 'marginTop', '');
+ dom.setStyle(img, 'marginBottom', '');
+
+ v = f.vspace.value;
+ if (v) {
+ img.style.marginTop = v + 'px';
+ img.style.marginBottom = v + 'px';
+ }
+ }
+
+ // Merge
+ dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
+ }
+ },
+
+ changeMouseMove : function() {
+ },
+
+ showPreviewImage : function(u, st) {
+ if (!u) {
+ tinyMCEPopup.dom.setHTML('prev', '');
+ return;
+ }
+
+ if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))
+ this.resetImageData();
+
+ u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);
+
+ if (!st)
+ tinyMCEPopup.dom.setHTML('prev', '');
+ else
+ tinyMCEPopup.dom.setHTML('prev', '');
+ }
+};
+
+ImageDialog.preInit();
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,43 @@
+tinyMCE.addI18n('en.advimage_dlg',{
+tab_general:"General",
+tab_appearance:"Appearance",
+tab_advanced:"Advanced",
+general:"General",
+title:"Title",
+preview:"Preview",
+constrain_proportions:"Constrain proportions",
+langdir:"Language direction",
+langcode:"Language code",
+long_desc:"Long description link",
+style:"Style",
+classes:"Classes",
+ltr:"Left to right",
+rtl:"Right to left",
+id:"Id",
+map:"Image map",
+swap_image:"Swap image",
+alt_image:"Alternative image",
+mouseover:"for mouse over",
+mouseout:"for mouse out",
+misc:"Miscellaneous",
+example_img:"Appearance preview image",
+missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",
+dialog_title:"Insert/edit image",
+src:"Image URL",
+alt:"Image description",
+list:"Image list",
+border:"Border",
+dimensions:"Dimensions",
+vspace:"Vertical space",
+hspace:"Horizontal space",
+align:"Alignment",
+align_baseline:"Baseline",
+align_top:"Top",
+align_middle:"Middle",
+align_bottom:"Bottom",
+align_texttop:"Text top",
+align_textbottom:"Text bottom",
+align_left:"Left",
+align_right:"Right",
+image_list:"Image list"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,521 @@
+/* Functions for the advlink plugin popup */
+
+tinyMCEPopup.requireLangPack();
+
+var templates = {
+ "window.open" : "window.open('${url}','${target}','${options}')"
+};
+
+function preinit() {
+ var url;
+
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))
+ document.write('');
+}
+
+function changeClass() {
+ var f = document.forms[0];
+
+ f.classes.value = getSelectValue(f, 'classlist');
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+ var inst = tinyMCEPopup.editor;
+ var elm = inst.selection.getNode();
+ var action = "insert";
+ var html;
+
+ html = getLinkListHTML('linklisthref','href');
+ if (html == "")
+ document.getElementById("linklisthrefrow").style.display = 'none';
+ else
+ document.getElementById("linklisthrefcontainer").innerHTML = html;
+
+ // Resize some elements
+ if (isVisible('hrefbrowser'))
+ document.getElementById('href').style.width = '260px';
+
+ if (isVisible('popupurlbrowser'))
+ document.getElementById('popupurl').style.width = '180px';
+
+ elm = inst.dom.getParent(elm, "A");
+ if (elm != null && elm.nodeName == "A")
+ action = "update";
+
+ formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true);
+
+ setPopupControlsDisabled(true);
+
+ if (action == "update") {
+ var href = inst.dom.getAttrib(elm, 'href');
+ var onclick = inst.dom.getAttrib(elm, 'onclick');
+
+ // Setup form data
+ setFormValue('href', href);
+ setFormValue('title', inst.dom.getAttrib(elm, 'title'));
+ setFormValue('id', inst.dom.getAttrib(elm, 'id'));
+ setFormValue('style', inst.dom.getAttrib(elm, "style"));
+ setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));
+ setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));
+ setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));
+ setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));
+ setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));
+ setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));
+ setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+ setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+ setFormValue('type', inst.dom.getAttrib(elm, 'type'));
+ setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));
+ setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));
+ setFormValue('onclick', onclick);
+ setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));
+ setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));
+ setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));
+ setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));
+ setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));
+ setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));
+ setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));
+ setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));
+ setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));
+ setFormValue('target', inst.dom.getAttrib(elm, 'target'));
+ setFormValue('classes', inst.dom.getAttrib(elm, 'class'));
+
+ // Parse onclick data
+ if (onclick != null && onclick.indexOf('window.open') != -1)
+ parseWindowOpen(onclick);
+ else
+ parseFunction(onclick);
+
+ // Select by the values
+ selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));
+ selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));
+ selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));
+ selectByValue(formObj, 'linklisthref', href);
+
+ if (href.charAt(0) == '#')
+ selectByValue(formObj, 'anchorlist', href);
+
+ addClassesToList('classlist', 'advlink_styles');
+
+ selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);
+ selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);
+ } else
+ addClassesToList('classlist', 'advlink_styles');
+}
+
+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')))
+ n.value = 'http://' + n.value;
+}
+
+function setFormValue(name, value) {
+ document.forms[0].elements[name].value = value;
+}
+
+function parseWindowOpen(onclick) {
+ var formObj = document.forms[0];
+
+ // Preprocess center code
+ if (onclick.indexOf('return false;') != -1) {
+ formObj.popupreturn.checked = true;
+ onclick = onclick.replace('return false;', '');
+ } else
+ formObj.popupreturn.checked = false;
+
+ var onClickData = parseLink(onclick);
+
+ if (onClickData != null) {
+ formObj.ispopup.checked = true;
+ setPopupControlsDisabled(false);
+
+ var onClickWindowOptions = parseOptions(onClickData['options']);
+ var url = onClickData['url'];
+
+ formObj.popupname.value = onClickData['target'];
+ formObj.popupurl.value = url;
+ formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');
+ formObj.popupheight.value = getOption(onClickWindowOptions, 'height');
+
+ formObj.popupleft.value = getOption(onClickWindowOptions, 'left');
+ formObj.popuptop.value = getOption(onClickWindowOptions, 'top');
+
+ if (formObj.popupleft.value.indexOf('screen') != -1)
+ formObj.popupleft.value = "c";
+
+ if (formObj.popuptop.value.indexOf('screen') != -1)
+ formObj.popuptop.value = "c";
+
+ formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";
+ formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";
+ formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";
+ formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";
+ formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";
+ formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";
+ formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";
+
+ buildOnClick();
+ }
+}
+
+function parseFunction(onclick) {
+ var formObj = document.forms[0];
+ var onClickData = parseLink(onclick);
+
+ // TODO: Add stuff here
+}
+
+function getOption(opts, name) {
+ return typeof(opts[name]) == "undefined" ? "" : opts[name];
+}
+
+function setPopupControlsDisabled(state) {
+ var formObj = document.forms[0];
+
+ formObj.popupname.disabled = state;
+ formObj.popupurl.disabled = state;
+ formObj.popupwidth.disabled = state;
+ formObj.popupheight.disabled = state;
+ formObj.popupleft.disabled = state;
+ formObj.popuptop.disabled = state;
+ formObj.popuplocation.disabled = state;
+ formObj.popupscrollbars.disabled = state;
+ formObj.popupmenubar.disabled = state;
+ formObj.popupresizable.disabled = state;
+ formObj.popuptoolbar.disabled = state;
+ formObj.popupstatus.disabled = state;
+ formObj.popupreturn.disabled = state;
+ formObj.popupdependent.disabled = state;
+
+ setBrowserDisabled('popupurlbrowser', state);
+}
+
+function parseLink(link) {
+ link = link.replace(new RegExp(''', 'g'), "'");
+
+ var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
+
+ // Is function name a template function
+ var template = templates[fnName];
+ if (template) {
+ // Build regexp
+ var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
+ var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
+ var replaceStr = "";
+ for (var i=0; i";
+ } else
+ regExp += ".*";
+ }
+
+ regExp += "\\);?";
+
+ // Build variable array
+ var variables = [];
+ variables["_function"] = fnName;
+ var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('');
+ for (var i=0; i';
+ html += '';
+
+ for (i=0; i' + name + '';
+ }
+
+ html += '';
+
+ return html;
+}
+
+function insertAction() {
+ var inst = tinyMCEPopup.editor;
+ var elm, elementArray, i;
+
+ elm = inst.selection.getNode();
+ checkPrefix(document.forms[0].href);
+
+ elm = inst.dom.getParent(elm, "A");
+
+ // Remove element if there is no href
+ if (!document.forms[0].href.value) {
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+ i = inst.selection.getBookmark();
+ inst.dom.remove(elm, 1);
+ inst.selection.moveToBookmark(i);
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
+ tinyMCEPopup.close();
+ return;
+ }
+
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+ // 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';
+
+ for (var i=0; i' + tinyMCELinkList[i][0] + '';
+
+ html += '';
+
+ return html;
+
+ // tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+function getTargetListHTML(elm_id, target_form_element) {
+ var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');
+ var html = '';
+
+ html += '';
+
+ return html;
+}
+
+// While loading
+preinit();
+tinyMCEPopup.onInit.add(init);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,52 @@
+tinyMCE.addI18n('en.advlink_dlg',{
+title:"Insert/edit link",
+url:"Link URL",
+target:"Target",
+titlefield:"Title",
+is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",
+is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",
+list:"Link list",
+general_tab:"General",
+popup_tab:"Popup",
+events_tab:"Events",
+advanced_tab:"Advanced",
+general_props:"General properties",
+popup_props:"Popup properties",
+event_props:"Events",
+advanced_props:"Advanced properties",
+popup_opts:"Options",
+anchor_names:"Anchors",
+target_same:"Open in this window / frame",
+target_parent:"Open in parent window / frame",
+target_top:"Open in top frame (replaces all frames)",
+target_blank:"Open in new window",
+popup:"Javascript popup",
+popup_url:"Popup URL",
+popup_name:"Window name",
+popup_return:"Insert 'return false'",
+popup_scrollbars:"Show scrollbars",
+popup_statusbar:"Show status bar",
+popup_toolbar:"Show toolbars",
+popup_menubar:"Show menu bar",
+popup_location:"Show location bar",
+popup_resizable:"Make window resizable",
+popup_dependent:"Dependent (Mozilla/Firefox only)",
+popup_size:"Size",
+popup_position:"Position (X/Y)",
+id:"Id",
+style:"Style",
+classes:"Classes",
+target_name:"Target name",
+langdir:"Language direction",
+target_langcode:"Target language",
+langcode:"Language code",
+encoding:"Target character encoding",
+mime:"Target MIME type",
+rel:"Relationship page to target",
+rev:"Relationship target to page",
+tabindex:"Tabindex",
+accesskey:"Accesskey",
+ltr:"Left to right",
+rtl:"Right to left",
+link_list:"Link list"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/compat2x/Attic/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1 @@
+(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.is;tinymce.create("tinymce.plugins.Compat2x",{getInfo:function(){return{longname:"Compat2x",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x",version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}}});(function(){tinymce.extend(tinyMCE,{addToLang:function(f,e){d(e,function(h,g){tinyMCE.i18n[(tinyMCE.settings.language||"en")+"."+(f?f+"_":"")+g]=h})},getInstanceById:function(e){return this.get(e)}})})();(function(){var e=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(f,h,g){tinyMCE.plugins[h]=g});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(g,f){return this.activeEditor.getParam(g,f)},addEvent:function(i,g,h,j){tinymce.dom.Event.add(i,g,h,j||this)},getControlHTML:function(f){return e.activeEditor.controlManager.createControl(f)},loadCSS:function(f){tinymce.DOM.loadCSS(f)},importCSS:function(g,f){if(g==document){this.loadCSS(f)}else{new tinymce.dom.DOMUtils(g).loadCSS(f)}},log:function(){console.debug.apply(console,arguments)},getLang:function(h,g){var f=e.activeEditor.getLang(h.replace(/^lang_/g,""),g);if(/^[0-9\-.]+$/g.test(f)){return parseInt(f)}return f},isInstance:function(f){return f!=null&&typeof(f)=="object"&&f.execCommand},triggerNodeChange:function(){e.activeEditor.nodeChanged()},regexpReplace:function(j,f,h,i){var g;if(j==null){return j}if(typeof(i)=="undefined"){i="g"}g=new RegExp(f,i);return j.replace(g,h)},trim:function(f){return tinymce.trim(f)},xmlEncode:function(f){return tinymce.DOM.encode(f)},explode:function(f,h){var g=[];tinymce.each(f.split(h),function(i){if(i!=""){g.push(i)}});return g},switchClass:function(h,g){var f;if(/^mceButton/.test(g)){f=e.activeEditor.controlManager.get(h);if(!f){return}switch(g){case"mceButtonNormal":f.setDisabled(false);f.setActive(false);return;case"mceButtonDisabled":f.setDisabled(true);return;case"mceButtonSelected":f.setActive(true);f.setDisabled(false);return}}},addCSSClass:function(g,h,f){return tinymce.DOM.addClass(g,h,f)},hasCSSClass:function(f,g){return tinymce.DOM.hasClass(f,g)},removeCSSClass:function(f,g){return tinymce.DOM.removeClass(f,g)},getCSSClasses:function(){var f=e.activeEditor.dom.getClasses(),g=[];d(f,function(h){g.push(h["class"])});return g},setWindowArg:function(g,f){e.activeEditor.windowManager.params[g]=f},getWindowArg:function(i,g){var h=e.activeEditor.windowManager,f;f=h.getParam(i);if(f===""){return""}return f||h.getFeature(i)||g},getParentNode:function(h,g){return this._getDOM().getParent(h,g)},selectElements:function(o,k,m){var l,j=[],h,g;for(g=0,k=k.split(",");g
+
+
+ {#example_dlg.title}
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1 @@
+(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)})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,81 @@
+/**
+ * $Id: editor_plugin_src.js,v 1.1 2009/05/08 17:38:38 daveb Exp $
+ *
+ * @author Moxiecode
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ // Load plugin specific language pack
+ tinymce.PluginManager.requireLangPack('example');
+
+ tinymce.create('tinymce.plugins.ExamplePlugin', {
+ /**
+ * 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) {
+ // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
+ 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, // Plugin absolute URL
+ some_custom_arg : 'custom arg' // Custom argument
+ });
+ });
+
+ // Register example button
+ ed.addButton('example', {
+ title : 'example.desc',
+ cmd : 'mceExample',
+ image : url + '/img/example.gif'
+ });
+
+ // Add a node change handler, selects the button in the UI when a image is selected
+ ed.onNodeChange.add(function(ed, cm, n) {
+ cm.setActive('example', n.nodeName == 'IMG');
+ });
+ },
+
+ /**
+ * Creates control instances based in the incomming name. This method is normally not
+ * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
+ * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
+ * method can be used to create those.
+ *
+ * @param {String} n Name of the control to create.
+ * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
+ * @return {tinymce.ui.Control} New control instance or null if no control was created.
+ */
+ createControl : function(n, cm) {
+ return null;
+ },
+
+ /**
+ * 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 : 'Example plugin',
+ author : 'Some author',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',
+ version : "1.0"
+ };
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);
+})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,19 @@
+tinyMCEPopup.requireLangPack();
+
+var ExampleDialog = {
+ init : function() {
+ var f = document.forms[0];
+
+ // Get the selected contents as text and place it in the input
+ f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});
+ f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');
+ },
+
+ insert : function() {
+ // Insert the contents from the input into the document
+ tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);
+ tinyMCEPopup.close();
+ }
+};
+
+tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,3 @@
+tinyMCE.addI18n('en.example',{
+ desc : 'This is just a template button'
+});
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,3 @@
+tinyMCE.addI18n('en.example_dlg',{
+ title : 'This is just a example title'
+});
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js 8 May 2009 17:38:38 -0000 1.1
@@ -0,0 +1,461 @@
+tinyMCEPopup.requireLangPack();
+
+var doc;
+
+var defaultDocTypes =
+ 'XHTML 1.0 Transitional=,' +
+ 'XHTML 1.0 Frameset=,' +
+ 'XHTML 1.0 Strict=,' +
+ 'XHTML 1.1=,' +
+ 'HTML 4.01 Transitional=,' +
+ 'HTML 4.01 Strict=,' +
+ 'HTML 4.01 Frameset=';
+
+var defaultEncodings =
+ 'Western european (iso-8859-1)=iso-8859-1,' +
+ 'Central European (iso-8859-2)=iso-8859-2,' +
+ 'Unicode (UTF-8)=utf-8,' +
+ 'Chinese traditional (Big5)=big5,' +
+ 'Cyrillic (iso-8859-5)=iso-8859-5,' +
+ 'Japanese (iso-2022-jp)=iso-2022-jp,' +
+ 'Greek (iso-8859-7)=iso-8859-7,' +
+ 'Korean (iso-2022-kr)=iso-2022-kr,' +
+ 'ASCII (us-ascii)=us-ascii';
+
+var defaultMediaTypes =
+ 'all=all,' +
+ 'screen=screen,' +
+ 'print=print,' +
+ 'tty=tty,' +
+ 'tv=tv,' +
+ 'projection=projection,' +
+ 'handheld=handheld,' +
+ 'braille=braille,' +
+ 'aural=aural';
+
+var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
+var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
+
+function init() {
+ var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style;
+
+ // Setup doctype select box
+ doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(',');
+ for (i=0; i 1)
+ addSelectValue(f, 'doctypes', p[0], p[1]);
+ }
+
+ // Setup fonts select box
+ fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';');
+ for (i=0; i 1)
+ addSelectValue(f, 'fontface', p[0], p[1]);
+ }
+
+ // Setup fontsize select box
+ fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
+ for (i=0; i 1) {
+ addSelectValue(f, 'element_style_media', p[0], p[1]);
+ addSelectValue(f, 'element_link_media', p[0], p[1]);
+ }
+ }
+
+ // Setup encodings select box
+ encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(',');
+ for (i=0; i 1) {
+ addSelectValue(f, 'docencoding', p[0], p[1]);
+ addSelectValue(f, 'element_script_charset', p[0], p[1]);
+ addSelectValue(f, 'element_link_charset', p[0], p[1]);
+ }
+ }
+
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+ document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
+ //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');
+ document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
+ document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
+ document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
+ document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
+ document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');
+ document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');
+ document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
+
+ // Resize some elements
+ if (isVisible('stylesheetbrowser'))
+ document.getElementById('stylesheet').style.width = '220px';
+
+ if (isVisible('link_href_browser'))
+ document.getElementById('element_link_href').style.width = '230px';
+
+ if (isVisible('bgimage_browser'))
+ document.getElementById('bgimage').style.width = '210px';
+
+ // Add iframe
+ dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}});
+ doc = dom.get('documentIframe').contentWindow.document;
+ h = tinyMCEPopup.getWindowArg('head_html');
+
+ // Preprocess the HTML disable scripts and urls
+ h = h.replace(/');
+
+function init() {
+ var pl = "", f, val;
+ var type = "flash", fe, i;
+
+ ed = tinyMCEPopup.editor;
+
+ tinyMCEPopup.resizeToInnerSize();
+ f = document.forms[0]
+
+ fe = ed.selection.getNode();
+ if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
+ pl = fe.title;
+
+ switch (ed.dom.getAttrib(fe, 'class')) {
+ case 'mceItemFlash':
+ type = 'flash';
+ break;
+
+ case 'mceItemFlashVideo':
+ type = 'flv';
+ break;
+
+ case 'mceItemShockWave':
+ type = 'shockwave';
+ break;
+
+ case 'mceItemWindowsMedia':
+ type = 'wmp';
+ break;
+
+ case 'mceItemQuickTime':
+ type = 'qt';
+ break;
+
+ case 'mceItemRealMedia':
+ type = 'rmp';
+ break;
+ }
+
+ document.forms[0].insert.value = ed.getLang('update', 'Insert', true);
+ }
+
+ document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
+ document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+ var html = getMediaListHTML('medialist','src','media','media');
+ if (html == "")
+ document.getElementById("linklistrow").style.display = 'none';
+ else
+ document.getElementById("linklistcontainer").innerHTML = html;
+
+ // Resize some elements
+ if (isVisible('filebrowser'))
+ document.getElementById('src').style.width = '230px';
+
+ // Setup form
+ if (pl != "") {
+ pl = tinyMCEPopup.editor.plugins.media._parse(pl);
+
+ switch (type) {
+ case "flash":
+ setBool(pl, 'flash', 'play');
+ setBool(pl, 'flash', 'loop');
+ setBool(pl, 'flash', 'menu');
+ setBool(pl, 'flash', 'swliveconnect');
+ setStr(pl, 'flash', 'quality');
+ setStr(pl, 'flash', 'scale');
+ setStr(pl, 'flash', 'salign');
+ setStr(pl, 'flash', 'wmode');
+ setStr(pl, 'flash', 'base');
+ setStr(pl, 'flash', 'flashvars');
+ break;
+
+ case "qt":
+ setBool(pl, 'qt', 'loop');
+ setBool(pl, 'qt', 'autoplay');
+ setBool(pl, 'qt', 'cache');
+ setBool(pl, 'qt', 'controller');
+ setBool(pl, 'qt', 'correction');
+ setBool(pl, 'qt', 'enablejavascript');
+ setBool(pl, 'qt', 'kioskmode');
+ setBool(pl, 'qt', 'autohref');
+ setBool(pl, 'qt', 'playeveryframe');
+ setBool(pl, 'qt', 'tarsetcache');
+ setStr(pl, 'qt', 'scale');
+ setStr(pl, 'qt', 'starttime');
+ setStr(pl, 'qt', 'endtime');
+ setStr(pl, 'qt', 'tarset');
+ setStr(pl, 'qt', 'qtsrcchokespeed');
+ setStr(pl, 'qt', 'volume');
+ setStr(pl, 'qt', 'qtsrc');
+ break;
+
+ case "shockwave":
+ setBool(pl, 'shockwave', 'sound');
+ setBool(pl, 'shockwave', 'progress');
+ setBool(pl, 'shockwave', 'autostart');
+ setBool(pl, 'shockwave', 'swliveconnect');
+ setStr(pl, 'shockwave', 'swvolume');
+ setStr(pl, 'shockwave', 'swstretchstyle');
+ setStr(pl, 'shockwave', 'swstretchhalign');
+ setStr(pl, 'shockwave', 'swstretchvalign');
+ break;
+
+ case "wmp":
+ setBool(pl, 'wmp', 'autostart');
+ setBool(pl, 'wmp', 'enabled');
+ setBool(pl, 'wmp', 'enablecontextmenu');
+ setBool(pl, 'wmp', 'fullscreen');
+ setBool(pl, 'wmp', 'invokeurls');
+ setBool(pl, 'wmp', 'mute');
+ setBool(pl, 'wmp', 'stretchtofit');
+ setBool(pl, 'wmp', 'windowlessvideo');
+ setStr(pl, 'wmp', 'balance');
+ setStr(pl, 'wmp', 'baseurl');
+ setStr(pl, 'wmp', 'captioningid');
+ setStr(pl, 'wmp', 'currentmarker');
+ setStr(pl, 'wmp', 'currentposition');
+ setStr(pl, 'wmp', 'defaultframe');
+ setStr(pl, 'wmp', 'playcount');
+ setStr(pl, 'wmp', 'rate');
+ setStr(pl, 'wmp', 'uimode');
+ setStr(pl, 'wmp', 'volume');
+ break;
+
+ case "rmp":
+ setBool(pl, 'rmp', 'autostart');
+ setBool(pl, 'rmp', 'loop');
+ setBool(pl, 'rmp', 'autogotourl');
+ setBool(pl, 'rmp', 'center');
+ setBool(pl, 'rmp', 'imagestatus');
+ setBool(pl, 'rmp', 'maintainaspect');
+ setBool(pl, 'rmp', 'nojava');
+ setBool(pl, 'rmp', 'prefetch');
+ setBool(pl, 'rmp', 'shuffle');
+ setStr(pl, 'rmp', 'console');
+ setStr(pl, 'rmp', 'controls');
+ setStr(pl, 'rmp', 'numloop');
+ setStr(pl, 'rmp', 'scriptcallbacks');
+ break;
+ }
+
+ setStr(pl, null, 'src');
+ setStr(pl, null, 'id');
+ setStr(pl, null, 'name');
+ setStr(pl, null, 'vspace');
+ setStr(pl, null, 'hspace');
+ setStr(pl, null, 'bgcolor');
+ setStr(pl, null, 'align');
+ setStr(pl, null, 'width');
+ setStr(pl, null, 'height');
+
+ if ((val = ed.dom.getAttrib(fe, "width")) != "")
+ pl.width = f.width.value = val;
+
+ if ((val = ed.dom.getAttrib(fe, "height")) != "")
+ pl.height = f.height.value = val;
+
+ oldWidth = pl.width ? parseInt(pl.width) : 0;
+ oldHeight = pl.height ? parseInt(pl.height) : 0;
+ } else
+ oldWidth = oldHeight = 0;
+
+ selectByValue(f, 'media_type', type);
+ changedType(type);
+ updateColor('bgcolor_pick', 'bgcolor');
+
+ TinyMCE_EditableSelects.init();
+ generatePreview();
+}
+
+function insertMedia() {
+ var fe, f = document.forms[0], h;
+
+ tinyMCEPopup.restoreSelection();
+
+ if (!AutoValidator.validate(f)) {
+ tinyMCEPopup.alert(ed.getLang('invalid_data'));
+ return false;
+ }
+
+ f.width.value = f.width.value == "" ? 100 : f.width.value;
+ f.height.value = f.height.value == "" ? 100 : f.height.value;
+
+ fe = ed.selection.getNode();
+ if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {
+ case "flash":
+ fe.className = "mceItemFlash";
+ break;
+
+ case "flv":
+ fe.className = "mceItemFlashVideo";
+ break;
+
+ case "shockwave":
+ fe.className = "mceItemShockWave";
+ break;
+
+ case "qt":
+ fe.className = "mceItemQuickTime";
+ break;
+
+ case "wmp":
+ fe.className = "mceItemWindowsMedia";
+ break;
+
+ case "rmp":
+ fe.className = "mceItemRealMedia";
+ break;
+ }
+
+ if (fe.width != f.width.value || fe.height != f.height.value)
+ ed.execCommand('mceRepaint');
+
+ fe.title = serializeParameters();
+ fe.width = f.width.value;
+ fe.height = f.height.value;
+ fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');
+ fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');
+ fe.align = f.align.options[f.align.selectedIndex].value;
+ } else {
+ h = '';
+
+ ed.execCommand('mceInsertContent', false, h);
+ }
+
+ tinyMCEPopup.close();
+}
+
+function updatePreview() {
+ var f = document.forms[0], type;
+
+ f.width.value = f.width.value || '320';
+ f.height.value = f.height.value || '240';
+
+ type = getType(f.src.value);
+ selectByValue(f, 'media_type', type);
+ changedType(type);
+ generatePreview();
+}
+
+function getMediaListHTML() {
+ if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
+ var html = "";
+
+ html += '';
+
+ return html;
+ }
+
+ return "";
+}
+
+function getType(v) {
+ var fo, i, c, el, x, f = document.forms[0];
+
+ fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');
+
+ // YouTube
+ if (v.match(/watch\?v=(.+)(.*)/)) {
+ f.width.value = '425';
+ f.height.value = '350';
+ f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];
+ return 'flash';
+ }
+
+ // Google video
+ if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {
+ f.width.value = '425';
+ f.height.value = '326';
+ f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';
+ return 'flash';
+ }
+
+ for (i=0; i 0 ? s.substring(0, s.length - 1) : s;
+
+ return s;
+}
+
+function setBool(pl, p, n) {
+ if (typeof(pl[n]) == "undefined")
+ return;
+
+ document.forms[0].elements[p + "_" + n].checked = pl[n] != 'false';
+}
+
+function setStr(pl, p, n) {
+ var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];
+
+ if (typeof(pl[n]) == "undefined")
+ return;
+
+ if (e.type == "text")
+ e.value = pl[n];
+ else
+ selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);
+}
+
+function getBool(p, n, d, tv, fv) {
+ var v = document.forms[0].elements[p + "_" + n].checked;
+
+ tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";
+ fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";
+
+ return (v == d) ? '' : n + (v ? ':' + tv + ',' : ":\'" + fv + "\',");
+}
+
+function getStr(p, n, d) {
+ var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
+ var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
+
+ if (n == 'src')
+ v = tinyMCEPopup.editor.convertURL(v, 'src', null);
+
+ return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");
+}
+
+function getInt(p, n, d) {
+ var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
+ var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
+
+ return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");
+}
+
+function jsEncode(s) {
+ s = s.replace(new RegExp('\\\\', 'g'), '\\\\');
+ s = s.replace(new RegExp('"', 'g'), '\\"');
+ s = s.replace(new RegExp("'", 'g'), "\\'");
+
+ return s;
+}
+
+function generatePreview(c) {
+ var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;
+
+ p.innerHTML = '';
+
+ nw = parseInt(f.width.value);
+ nh = parseInt(f.height.value);
+
+ if (f.width.value != "" && f.height.value != "") {
+ if (f.constrain.checked) {
+ if (c == 'width' && oldWidth != 0) {
+ wp = nw / oldWidth;
+ nh = Math.round(wp * nh);
+ f.height.value = nh;
+ } else if (c == 'height' && oldHeight != 0) {
+ hp = nh / oldHeight;
+ nw = Math.round(hp * nw);
+ f.width.value = nw;
+ }
+ }
+ }
+
+ if (f.width.value != "")
+ oldWidth = nw;
+
+ if (f.height.value != "")
+ oldHeight = nh;
+
+ // After constrain
+ pl = serializeParameters();
+
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {
+ case "flash":
+ cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
+ codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
+ type = 'application/x-shockwave-flash';
+ break;
+
+ case "shockwave":
+ cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';
+ codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
+ type = 'application/x-director';
+ break;
+
+ case "qt":
+ cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
+ codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
+ type = 'video/quicktime';
+ break;
+
+ case "wmp":
+ cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';
+ codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
+ type = 'application/x-mplayer2';
+ break;
+
+ case "rmp":
+ cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
+ codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
+ type = 'audio/x-pn-realaudio-plugin';
+ break;
+ }
+
+ if (pl == '') {
+ p.innerHTML = '';
+ return;
+ }
+
+ pl = tinyMCEPopup.editor.plugins.media._parse(pl);
+
+ if (!pl.src) {
+ p.innerHTML = '';
+ return;
+ }
+
+ pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);
+ pl.width = !pl.width ? 100 : pl.width;
+ pl.height = !pl.height ? 100 : pl.height;
+ pl.id = !pl.id ? 'obj' : pl.id;
+ pl.name = !pl.name ? 'eobj' : pl.name;
+ pl.align = !pl.align ? '' : pl.align;
+
+ // Avoid annoying warning about insecure items
+ if (!tinymce.isIE || document.location.protocol != 'https:') {
+ h += '';
+
+ p.innerHTML = "" + h;
+}
+
+tinyMCEPopup.onInit.add(init);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,103 @@
+tinyMCE.addI18n('en.media_dlg',{
+title:"Insert / edit embedded media",
+general:"General",
+advanced:"Advanced",
+file:"File/URL",
+list:"List",
+size:"Dimensions",
+preview:"Preview",
+constrain_proportions:"Constrain proportions",
+type:"Type",
+id:"Id",
+name:"Name",
+class_name:"Class",
+vspace:"V-Space",
+hspace:"H-Space",
+play:"Auto play",
+loop:"Loop",
+menu:"Show menu",
+quality:"Quality",
+scale:"Scale",
+align:"Align",
+salign:"SAlign",
+wmode:"WMode",
+bgcolor:"Background",
+base:"Base",
+flashvars:"Flashvars",
+liveconnect:"SWLiveConnect",
+autohref:"AutoHREF",
+cache:"Cache",
+hidden:"Hidden",
+controller:"Controller",
+kioskmode:"Kiosk mode",
+playeveryframe:"Play every frame",
+targetcache:"Target cache",
+correction:"No correction",
+enablejavascript:"Enable JavaScript",
+starttime:"Start time",
+endtime:"End time",
+href:"Href",
+qtsrcchokespeed:"Choke speed",
+target:"Target",
+volume:"Volume",
+autostart:"Auto start",
+enabled:"Enabled",
+fullscreen:"Fullscreen",
+invokeurls:"Invoke URLs",
+mute:"Mute",
+stretchtofit:"Stretch to fit",
+windowlessvideo:"Windowless video",
+balance:"Balance",
+baseurl:"Base URL",
+captioningid:"Captioning id",
+currentmarker:"Current marker",
+currentposition:"Current position",
+defaultframe:"Default frame",
+playcount:"Play count",
+rate:"Rate",
+uimode:"UI Mode",
+flash_options:"Flash options",
+qt_options:"Quicktime options",
+wmp_options:"Windows media player options",
+rmp_options:"Real media player options",
+shockwave_options:"Shockwave options",
+autogotourl:"Auto goto URL",
+center:"Center",
+imagestatus:"Image status",
+maintainaspect:"Maintain aspect",
+nojava:"No java",
+prefetch:"Prefetch",
+shuffle:"Shuffle",
+console:"Console",
+numloop:"Num loops",
+controls:"Controls",
+scriptcallbacks:"Script callbacks",
+swstretchstyle:"Stretch style",
+swstretchhalign:"Stretch H-Align",
+swstretchvalign:"Stretch V-Align",
+sound:"Sound",
+progress:"Progress",
+qtsrc:"QT Src",
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",
+align_top:"Top",
+align_right:"Right",
+align_bottom:"Bottom",
+align_left:"Left",
+align_center:"Center",
+align_top_left:"Top left",
+align_top_right:"Top right",
+align_bottom_left:"Bottom left",
+align_bottom_right:"Bottom right",
+flv_options:"Flash video options",
+flv_scalemode:"Scale mode",
+flv_buffer:"Buffer",
+flv_startimage:"Start image",
+flv_starttime:"Start time",
+flv_defaultvolume:"Default volumne",
+flv_hiddengui:"Hidden GUI",
+flv_autostart:"Auto start",
+flv_loop:"Loop",
+flv_showscalemodes:"Show scale modes",
+flv_smoothvideo:"Smooth video",
+flv_jscallback:"JS Callback"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/img/sample.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/img/sample.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/js/image.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/js/image.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/js/image.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,301 @@
+var ImageDialog = {
+ preInit : function() {
+ var url;
+
+ tinyMCEPopup.requireLangPack();
+
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))
+ document.write('');
+ },
+
+ init : function(ed) {
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();
+ },
+
+ insertAndClose : function() {
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;
+ var src = nl.f_url.value;
+ args={
+ "src":src
+ };
+ tinyMCEPopup.restoreSelection();
+
+ // Fixes crash in Safari
+ if (tinymce.isWebKit)
+ ed.getWin().focus();
+
+ el = ed.selection.getNode();
+
+ if (el && el.nodeName == 'IMG') {
+ ed.dom.setAttribs(el, args);
+ } else {
+ ed.execCommand('mceInsertContent', false, '', {skip_undo : 1});
+ ed.dom.setAttribs('__mce_tmp', args);
+ ed.dom.setAttrib('__mce_tmp', 'id', '');
+ ed.undoManager.add();
+ }
+
+ tinyMCEPopup.close();
+ },
+
+ getAttrib : function(e, at) {
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
+
+ if (ed.settings.inline_styles) {
+ switch (at) {
+ case 'align':
+ if (v = dom.getStyle(e, 'float'))
+ return v;
+
+ if (v = dom.getStyle(e, 'vertical-align'))
+ return v;
+
+ break;
+
+ case 'hspace':
+ v = dom.getStyle(e, 'margin-left')
+ v2 = dom.getStyle(e, 'margin-right');
+
+ if (v && v == v2)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+
+ case 'vspace':
+ v = dom.getStyle(e, 'margin-top')
+ v2 = dom.getStyle(e, 'margin-bottom');
+ if (v && v == v2)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+
+ case 'border':
+ v = 0;
+
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
+ sv = dom.getStyle(e, 'border-' + sv + '-width');
+
+ // False or not the same as prev
+ if (!sv || (sv != v && v !== 0)) {
+ v = 0;
+ return false;
+ }
+
+ if (sv)
+ v = sv;
+ });
+
+ if (v)
+ return parseInt(v.replace(/[^0-9]/g, ''));
+
+ break;
+ }
+ }
+
+ if (v = dom.getAttrib(e, at))
+ return v;
+
+ return '';
+ },
+
+ setSwapImage : function(st) {
+ var f = document.forms[0];
+
+ f.onmousemovecheck.checked = st;
+ setBrowserDisabled('overbrowser', !st);
+ setBrowserDisabled('outbrowser', !st);
+
+ if (f.over_list)
+ f.over_list.disabled = !st;
+
+ if (f.out_list)
+ f.out_list.disabled = !st;
+
+ f.onmouseoversrc.disabled = !st;
+ f.onmouseoutsrc.disabled = !st;
+ },
+
+ fillClassList : function(id) {
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+ if (v = tinyMCEPopup.getParam('theme_openacs_styles')) {
+ cl = [];
+
+ tinymce.each(v.split(';'), function(v) {
+ var p = v.split('=');
+
+ cl.push({'title' : p[0], 'class' : p[1]});
+ });
+ } else
+ 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) {
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
+ });
+ } else
+ dom.remove(dom.getParent(id, 'tr'));
+ },
+
+ fillFileList : function(id, l) {
+ 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('', '');
+
+ tinymce.each(l, function(o) {
+ lst.options[lst.options.length] = new Option(o[0], o[1]);
+ });
+ } else
+ dom.remove(dom.getParent(id, 'tr'));
+ },
+
+ resetImageData : function() {
+ var f = document.forms[0];
+
+ f.elements.width.value = f.elements.height.value = '';
+ },
+
+ updateImageData : function(img, st) {
+ var f = document.forms[0];
+
+ if (!st) {
+ f.elements.width.value = img.width;
+ f.elements.height.value = img.height;
+ }
+
+ this.preloadImg = img;
+ },
+
+ changeAppearance : function() {
+ var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');
+
+ if (img) {
+ if (ed.getParam('inline_styles')) {
+ ed.dom.setAttrib(img, 'style', f.style.value);
+ } else {
+ img.align = f.align.value;
+ img.border = f.border.value;
+ img.hspace = f.hspace.value;
+ img.vspace = f.vspace.value;
+ }
+ }
+ },
+
+ changeHeight : function() {
+ var f = document.forms[0], tp, t = this;
+
+ if (!f.constrain.checked || !t.preloadImg) {
+ return;
+ }
+
+ if (f.width.value == "" || f.height.value == "")
+ return;
+
+ tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;
+ f.height.value = tp.toFixed(0);
+ },
+
+ changeWidth : function() {
+ var f = document.forms[0], tp, t = this;
+
+ if (!f.constrain.checked || !t.preloadImg) {
+ return;
+ }
+
+ if (f.width.value == "" || f.height.value == "")
+ return;
+
+ tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;
+ f.width.value = tp.toFixed(0);
+ },
+
+ updateStyle : function(ty) {
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});
+
+ if (tinyMCEPopup.editor.settings.inline_styles) {
+ // Handle align
+ if (ty == 'align') {
+ dom.setStyle(img, 'float', '');
+ dom.setStyle(img, 'vertical-align', '');
+
+ v = getSelectValue(f, 'align');
+ if (v) {
+ if (v == 'left' || v == 'right')
+ dom.setStyle(img, 'float', v);
+ else
+ img.style.verticalAlign = v;
+ }
+ }
+
+ // Handle border
+ if (ty == 'border') {
+ dom.setStyle(img, 'border', '');
+
+ v = f.border.value;
+ if (v || v == '0') {
+ if (v == '0')
+ img.style.border = '0';
+ else
+ img.style.border = v + 'px solid black';
+ }
+ }
+
+ // Handle hspace
+ if (ty == 'hspace') {
+ dom.setStyle(img, 'marginLeft', '');
+ dom.setStyle(img, 'marginRight', '');
+
+ v = f.hspace.value;
+ if (v) {
+ img.style.marginLeft = v + 'px';
+ img.style.marginRight = v + 'px';
+ }
+ }
+
+ // Handle vspace
+ if (ty == 'vspace') {
+ dom.setStyle(img, 'marginTop', '');
+ dom.setStyle(img, 'marginBottom', '');
+
+ v = f.vspace.value;
+ if (v) {
+ img.style.marginTop = v + 'px';
+ img.style.marginBottom = v + 'px';
+ }
+ }
+
+ // Merge
+ dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
+ }
+ },
+
+ changeMouseMove : function() {
+ },
+
+ showPreviewImage : function(u, st) {
+ if (!u) {
+ tinyMCEPopup.dom.setHTML('prev', '');
+ return;
+ }
+
+ if (!st && tinyMCEPopup.getParam("oacsimage_update_dimensions_onchange", true))
+ this.resetImageData();
+
+ u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);
+
+ if (!st)
+ tinyMCEPopup.dom.setHTML('prev', '');
+ else
+ tinyMCEPopup.dom.setHTML('prev', '');
+ }
+};
+
+ImageDialog.preInit();
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacsimage/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,43 @@
+tinyMCE.addI18n('en.oacsimage_dlg',{
+tab_general:"General",
+tab_appearance:"Appearance",
+tab_advanced:"Advanced",
+general:"General",
+title:"Title",
+preview:"Preview",
+constrain_proportions:"Constrain proportions",
+langdir:"Language direction",
+langcode:"Language code",
+long_desc:"Long description link",
+style:"Style",
+classes:"Classes",
+ltr:"Left to right",
+rtl:"Right to left",
+id:"Id",
+map:"Image map",
+swap_image:"Swap image",
+alt_image:"Alternative image",
+mouseover:"for mouse over",
+mouseout:"for mouse out",
+misc:"Miscellaneous",
+example_img:"Appearance preview image",
+missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",
+dialog_title:"Insert/edit image",
+src:"Image URL",
+alt:"Image description",
+list:"Image list",
+border:"Border",
+dimensions:"Dimensions",
+vspace:"Vertical space",
+hspace:"Horizontal space",
+align:"Alignment",
+align_baseline:"Baseline",
+align_top:"Top",
+align_middle:"Middle",
+align_bottom:"Bottom",
+align_texttop:"Text top",
+align_textbottom:"Text bottom",
+align_left:"Left",
+align_right:"Right",
+image_list:"Image list"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacslink/img/attach.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacslink/img/attach.png,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacslink/js/link.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacslink/js/link.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/oacslink/js/link.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,399 @@
+/* Functions for the oacslink plugin popup */
+
+tinyMCEPopup.requireLangPack();
+
+var templates = {
+ "window.open" : "window.open('${url}','${target}','${options}')"
+};
+
+function preinit() {
+ var url;
+
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))
+ document.write('');
+}
+
+function changeClass() {
+ var f = document.forms[0];
+
+ f.classes.value = getSelectValue(f, 'classlist');
+}
+
+function init() {
+ var formObj = document.forms[0];
+ var inst = tinyMCEPopup.editor;
+ var elm = inst.selection.getNode();
+ var action = "insert";
+ var linkText = getFormValue(formObj,'f_title');
+
+ elm = inst.dom.getParent(elm, "A");
+ if (elm != null && elm.nodeName == "A")
+ action = "update";
+ setPopupControlsDisabled(true);
+
+ if (action == "update") {
+ var href = inst.dom.getAttrib(elm, 'href');
+ var onclick = inst.dom.getAttrib(elm, 'onclick');
+
+
+ var href = inst.dom.getAttrib(elm, 'href');
+ linkText = elm.innerHTML;
+ href = convertURL(href, elm, true);
+
+ // Setup form data
+// setFormValue('f_href', href);
+// setFormValue('f_title', linkText);
+ }
+ if (action == 'insert') {
+// setFormValue('f_href', href);
+// setFormValue('f_title', linkText);
+ }
+
+ window.focus();
+}
+
+function checkPrefix(n) {
+ if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('oacslink_dlg.is_email')))
+ n.value = 'mailto:' + n.value;
+
+ if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('oacslink_dlg.is_external')))
+ n.value = 'http://' + n.value;
+}
+
+function setFormValue(name, value) {
+ document.forms[0].elements[name].value = value;
+}
+
+function getFormValue(formObj,name) {
+ return formObj.elements[name].value;
+}
+
+function convertURL(url, node, on_save) {
+ return eval("tinyMCEPopup.getWin." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");
+}
+
+function parseWindowOpen(onclick) {
+ var formObj = document.forms[0];
+
+ // Preprocess center code
+ if (onclick.indexOf('return false;') != -1) {
+ formObj.popupreturn.checked = true;
+ onclick = onclick.replace('return false;', '');
+ } else
+ formObj.popupreturn.checked = false;
+
+}
+
+function parseFunction(onclick) {
+ var formObj = document.forms[0];
+ var onClickData = parseLink(onclick);
+
+ // TODO: Add stuff here
+}
+
+function getOption(opts, name) {
+ return typeof(opts[name]) == "undefined" ? "" : opts[name];
+}
+
+function setPopupControlsDisabled(state) {
+ var formObj = document.forms[0];
+
+}
+
+function parseLink(link) {
+ link = link.replace(new RegExp(''', 'g'), "'");
+
+ var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
+
+ // Is function name a template function
+ var template = templates[fnName];
+ if (template) {
+ // Build regexp
+ var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
+ var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
+ var replaceStr = "";
+ for (var i=0; i";
+ } else
+ regExp += ".*";
+ }
+
+ regExp += "\\);?";
+
+ // Build variable array
+ var variables = [];
+ variables["_function"] = fnName;
+ var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('');
+ for (var i=0; i';
+ html += '';
+
+ for (i=0; i' + name + '';
+ }
+
+ html += '';
+
+ return html;
+}
+
+function insertAction() {
+ var inst = tinyMCEPopup.editor;
+ var elm, elementArray, i;
+
+ elm = inst.selection.getNode();
+ checkPrefix(document.forms[0].f_href);
+
+ elm = inst.dom.getParent(elm, "A");
+ // Remove element if there is no href
+ if (!document.forms[0].f_href.value) {
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+ i = inst.selection.getBookmark();
+ inst.dom.remove(elm, 1);
+ inst.selection.moveToBookmark(i);
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
+ tinyMCEPopup.close();
+ return;
+ }
+
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+ // 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';
+
+ for (var i=0; i' + tinyMCELinkList[i][0] + '';
+
+ html += '';
+
+ return html;
+
+ // tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+function getTargetListHTML(elm_id, target_form_element) {
+ var targets = tinyMCEPopup.getParam('theme_openacs_link_targets', '').split(';');
+ var html = '';
+
+ html += '';
+
+ return html;
+}
+
+// While loading
+preinit();
+tinyMCEPopup.onInit.add(init);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),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(/]+>/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)})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,74 @@
+/**
+ * $Id: editor_plugin_src.js,v 1.1 2009/05/08 17:38:39 daveb Exp $
+ *
+ * @author Moxiecode
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ tinymce.create('tinymce.plugins.PageBreakPlugin', {
+ init : function(ed, url) {
+ var pb = '', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', ''), pbRE;
+
+ pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
+
+ // Register commands
+ ed.addCommand('mcePageBreak', function() {
+ ed.execCommand('mceInsertContent', 0, pb);
+ });
+
+ // Register buttons
+ ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
+
+ ed.onInit.add(function() {
+ if (ed.settings.content_css !== false)
+ 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(/]+>/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
+ };
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);
+})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;}
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,42 @@
+tinyMCEPopup.requireLangPack();
+
+function saveContent() {
+ if (document.forms[0].htmlSource.value == '') {
+ tinyMCEPopup.close();
+ return false;
+ }
+
+ 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);
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,56 @@
+tinyMCEPopup.requireLangPack();
+
+function saveContent() {
+ var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
+
+ if (html == ''){
+ tinyMCEPopup.close();
+ return false;
+ }
+
+ 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 = '';
+}
+
+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);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,5 @@
+tinyMCE.addI18n('en.paste_dlg',{
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
+text_linebreaks:"Keep linebreaks",
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/preview/preview.html,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/preview/preview.html 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+{#preview.preview_desc}
+
+
+
+
+
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+(function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&&k.nodeValue&&/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&&/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create("tinymce.plugins.Safari",{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=["x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large"];g.namedFontSizes=["xx-small","x-small","small","medium","large","x-large","xx-large"];f.addCommand("CreateLink",function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&&(/^(left|right)$/i.test(l.getStyle(m,"float",1))||/^(left|right)$/i.test(l.getAttrib(m,"align")))){i=l.create("a",{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand("CreateLink",false,j)}});f.onPaste.add(function(i,k){function j(l){l=l.target;if(l.nodeType==1){l.style.cssText="";d(i.dom.select("*",l),function(m){m.style.cssText=""})}}a.add(i.getDoc(),"DOMNodeInserted",j);window.setTimeout(function(){a.remove(i.getDoc(),"DOMNodeInserted",j)},0)});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&&!/<(img|hr)/.test(l)&&tinymce.trim(l.replace(/<[^>]+>/g,"")).length==0){j.setContent('
',{format:"raw"});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand("FormatBlock",function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand("FormatBlock",false,i)}});f.addCommand("mceInsertContent",function(j,i){f.getDoc().execCommand("InsertText",false,"mce_marker");f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'XX');f.selection.select(f.dom.get("_mce_tmp"));f.getDoc().execCommand("Delete",false," ")});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&&q.nodeName!="LI"){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,"LI")){r=h.getParent(v,"OL,UL");u=o.getDoc();s=h.create("p");h.add(s,"br",{mce_bogus:"1"});if(e(u,v)){if(k=h.getParent(r.parentNode,"LI,OL,UL")){return}k=h.getParent(r,"p,h1,h2,h3,h4,h5,h6,div")||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k=="InsertUnorderedList"||k=="InsertOrderedList"){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName=="IMG"){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d(["strong","b","em","u","strike","sub","sup","a"],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k=="a"){if(l.name){h.replace(h.create("img",{mce_name:"a",name:l.name,"class":"mceItemAnchor"}),l)}return}switch(k){case"b":case"strong":if(k=="b"){k="strong"}j="font-weight: bold;";break;case"em":j="font-style: italic;";break;case"u":j="text-decoration: underline;";break;case"sub":j="vertical-align: sub;";break;case"sup":j="vertical-align: super;";break;case"strike":j="text-decoration: line-through;";break}h.replace(h.create("span",{mce_name:k,style:j,"class":"Apple-style-span"}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName("span")).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,"Apple-style-span")){l=m.style.backgroundColor;switch(h.getAttrib(m,"mce_name")){case"font":if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,"style","")}break;case"strong":case"em":case"sub":case"sup":h.setAttrib(m,"style","");break;case"strike":case"u":if(!i.settings.inline_styles){h.setAttrib(m,"style","")}else{h.setAttrib(m,"mce_name","")}break;default:if(!i.settings.inline_styles){h.setAttrib(m,"style","")}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,"mceItemRemoved")){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/
<\/(h[1-6]|div|p|address|pre)>/g,"$1>");j.content=j.content.replace(/ id=\"undefined\"/g,"")})},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}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),"DOMNodeInserted",function(h){h=h.target;if(h&&h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,"mce_fixed")){return}if(l.nodeName=="SPAN"&&l.className=="Apple-style-span"){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"size",b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"face",h.fontFamily)}if(h.color){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"color",m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,"mce_name","font");m.setStyle(l,"background-color",h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,"fontSize",f[b(i,h.fontSize)])}}if(h.fontWeight=="bold"){m.setAttrib(l,"mce_name","strong")}if(h.fontStyle=="italic"){m.setAttrib(l,"mce_name","em")}if(h.textDecoration=="underline"){m.setAttrib(l,"mce_name","u")}if(h.textDecoration=="line-through"){m.setAttrib(l,"mce_name","strike")}if(h.verticalAlign=="super"){m.setAttrib(l,"mce_name","sup")}if(h.verticalAlign=="sub"){m.setAttrib(l,"mce_name","sub")}m.setAttrib(l,"mce_fixed","1")}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create("br"));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode("\u00a0"),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add("safari",tinymce.plugins.Safari)})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,428 @@
+/**
+ * $Id: editor_plugin_src.js,v 1.1 2009/05/08 17:38:39 daveb Exp $
+ *
+ * @author Moxiecode
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ 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) {
+ var t = this, dom;
+
+ // Ignore on non webkit
+ if (!tinymce.isWebKit)
+ return;
+
+ t.editor = ed;
+ 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 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);
+ });
+
+ 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, b, r, n, s;
+
+ // If backspace or delete key
+ if (e.keyCode == 46 || e.keyCode == 8) {
+ b = ed.getBody();
+ h = b.innerHTML;
+ s = ed.selection;
+
+ // If there is no text content or images or hr elements then remove everything
+ if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0) {
+ // Inject paragrah and bogus br
+ ed.setContent('
', {format : 'raw'});
+
+ // Move caret before bogus br
+ n = b.firstChild;
+ r = s.getRng();
+ r.setStart(n, 0);
+ r.setEnd(n, 0);
+ s.setRng(r);
+ }
+ }
+ });
+
+ // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004
+ ed.addCommand('FormatBlock', function(u, v) {
+ var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);
+
+ if (e)
+ dom.replace(dom.create(v), e, 1);
+ else
+ ed.getDoc().execCommand("FormatBlock", false, v);
+ });
+
+ // 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, ed.dom.processHTML(v) + 'XX');
+ ed.selection.select(ed.dom.get('_mce_tmp'));
+ ed.getDoc().execCommand("Delete", false, ' ');
+ });
+
+ ed.onKeyPress.add(function(ed, 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 doesn't place lists outside block elements
+ ed.onExecCommand.add(function(ed, cmd) {
+ var sel, dom, bl, bm;
+
+ if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') {
+ sel = ed.selection;
+ dom = ed.dom;
+
+ 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
+ ed.onClick.add(function(ed, e) {
+ e = e.target;
+
+ if (e.nodeName == 'IMG') {
+ t.selElm = e;
+ ed.selection.select(e);
+ } else
+ t.selElm = null;
+ });
+
+ ed.onInit.add(function() {
+ t._fixWebKitSpans();
+ });
+
+ ed.onSetContent.add(function() {
+ dom = ed.dom;
+
+ // Convert strong,b,em,u,strike to spans
+ each(['strong','b','em','u','strike','sub','sup','a'], function(v) {
+ each(grep(dom.select(v)).reverse(), function(n) {
+ var nn = n.nodeName.toLowerCase(), st;
+
+ // Convert anchors into images
+ if (nn == 'a') {
+ if (n.name)
+ dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);
+
+ return;
+ }
+
+ switch (nn) {
+ case 'b':
+ case 'strong':
+ if (nn == 'b')
+ nn = 'strong';
+
+ st = 'font-weight: bold;';
+ break;
+
+ case 'em':
+ st = 'font-style: italic;';
+ break;
+
+ case 'u':
+ st = 'text-decoration: underline;';
+ break;
+
+ case 'sub':
+ st = 'vertical-align: sub;';
+ break;
+
+ case 'sup':
+ st = 'vertical-align: super;';
+ break;
+
+ case 'strike':
+ st = 'text-decoration: line-through;';
+ break;
+ }
+
+ dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);
+ });
+ });
+ });
+
+ ed.onPreProcess.add(function(ed, o) {
+ dom = ed.dom;
+
+ each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {
+ var v, bg;
+
+ if (o.get) {
+ if (dom.hasClass(n, 'Apple-style-span')) {
+ bg = n.style.backgroundColor;
+
+ switch (dom.getAttrib(n, 'mce_name')) {
+ case 'font':
+ if (!ed.settings.convert_fonts_to_spans)
+ dom.setAttrib(n, 'style', '');
+ break;
+
+ case 'strong':
+ case 'em':
+ case 'sub':
+ case 'sup':
+ dom.setAttrib(n, 'style', '');
+ break;
+
+ case 'strike':
+ case 'u':
+ if (!ed.settings.inline_styles)
+ dom.setAttrib(n, 'style', '');
+ else
+ dom.setAttrib(n, 'mce_name', '');
+
+ break;
+
+ default:
+ if (!ed.settings.inline_styles)
+ dom.setAttrib(n, 'style', '');
+ }
+
+
+ if (bg)
+ n.style.backgroundColor = bg;
+ }
+ }
+
+ if (dom.hasClass(n, 'mceItemRemoved'))
+ dom.remove(n, 1);
+ });
+ });
+
+ ed.onPostProcess.add(function(ed, o) {
+ // Safari adds BR at end of all block elements
+ o.content = o.content.replace(/
<\/(h[1-6]|div|p|address|pre)>/g, '$1>');
+
+ // Safari adds id="undefined" to HR elements
+ o.content = o.content.replace(/ id=\"undefined\"/g, '');
+ });
+ },
+
+ 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;
+
+ // Use mutator events on new WebKit
+ Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
+ e = e.target;
+
+ if (e && e.nodeType == 1)
+ t._fixAppleSpan(e);
+ });
+ },
+
+ _fixAppleSpan : function(e) {
+ var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;
+
+ if (dom.getAttrib(e, 'mce_fixed'))
+ return;
+
+ // Handle Apple style spans
+ if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {
+ st = e.style;
+
+ if (!s.convert_fonts_to_spans) {
+ if (st.fontSize) {
+ dom.setAttrib(e, 'mce_name', 'font');
+ dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);
+ }
+
+ if (st.fontFamily) {
+ dom.setAttrib(e, 'mce_name', 'font');
+ dom.setAttrib(e, 'face', st.fontFamily);
+ }
+
+ if (st.color) {
+ dom.setAttrib(e, 'mce_name', 'font');
+ dom.setAttrib(e, 'color', dom.toHex(st.color));
+ }
+
+ if (st.backgroundColor) {
+ dom.setAttrib(e, 'mce_name', 'font');
+ dom.setStyle(e, 'background-color', st.backgroundColor);
+ }
+ } else {
+ if (st.fontSize)
+ dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);
+ }
+
+ if (st.fontWeight == 'bold')
+ dom.setAttrib(e, 'mce_name', 'strong');
+
+ if (st.fontStyle == 'italic')
+ dom.setAttrib(e, 'mce_name', 'em');
+
+ if (st.textDecoration == 'underline')
+ dom.setAttrib(e, 'mce_name', 'u');
+
+ if (st.textDecoration == 'line-through')
+ dom.setAttrib(e, 'mce_name', 'strike');
+
+ if (st.verticalAlign == 'super')
+ dom.setAttrib(e, 'mce_name', 'sup');
+
+ if (st.verticalAlign == 'sub')
+ dom.setAttrib(e, 'mce_name', 'sub');
+
+ dom.setAttrib(e, 'mce_fixed', '1');
+ }
+ },
+
+ _insertBR : function(ed) {
+ var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
+
+ // Insert BR element
+ r.insertNode(br = dom.create('br'));
+
+ // Place caret after BR
+ r.setStartAfter(br);
+ r.setEndAfter(br);
+ s.setRng(r);
+
+ // Could not place caret after BR then insert an nbsp entity and move the caret
+ if (s.getSel().focusNode == br.previousSibling) {
+ s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));
+ s.collapse(1);
+ }
+
+ // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
+ ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('safari', tinymce.plugins.Safari);
+})();
+
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,126 @@
+tinyMCEPopup.requireLangPack();
+
+var SearchReplaceDialog = {
+ init : function(ed) {
+ var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");
+
+ this.switchMode(m);
+
+ f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");
+
+ // Focus input field
+ f[m + '_panel_searchstring'].focus();
+ },
+
+ switchMode : function(m) {
+ var f, lm = this.lastMode;
+
+ if (lm != m) {
+ f = document.forms[0];
+
+ if (lm) {
+ f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;
+ f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;
+ f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;
+ f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;
+ }
+
+ mcTabs.displayTab(m + '_tab', m + '_panel');
+ document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";
+ document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";
+ this.lastMode = m;
+ }
+ },
+
+ searchNext : function(a) {
+ var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;
+
+ // Get input
+ f = document.forms[0];
+ s = f[m + '_panel_searchstring'].value;
+ b = f[m + '_panel_backwardsu'].checked;
+ 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();
+ ed.getDoc().execCommand('SelectAll', false, null);
+ se.setRng(r);
+ };
+
+ function replace() {
+ if (tinymce.isIE)
+ ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE
+ else
+ ed.getDoc().execCommand('InsertHTML', false, rs);
+ };
+
+ // IE flags
+ if (ca)
+ fl = fl | 4;
+
+ 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();
+ r.select();
+ replace();
+ fo = 1;
+ }
+
+ tinyMCEPopup.storeSelection();
+ } else {
+ while (w.find(s, ca, b, false, false, false, false)) {
+ replace();
+ fo = 1;
+ }
+ }
+
+ if (fo)
+ tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
+ else
+ tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+
+ return;
+
+ case 'current':
+ if (!ed.selection.isCollapsed())
+ replace();
+
+ break;
+ }
+
+ se.collapse(b);
+ r = se.getRng();
+
+ // Whats the point
+ if (!s)
+ return;
+
+ if (tinymce.isIE) {
+ if (r.findText(s, b ? -1 : 1, fl)) {
+ r.scrollIntoView();
+ r.select();
+ } else
+ tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+
+ tinyMCEPopup.storeSelection();
+ } else {
+ if (!w.find(s, ca, b, false, false, false, false))
+ tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+ else
+ fix();
+ }
+ }
+};
+
+tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,16 @@
+tinyMCE.addI18n('en.searchreplace_dlg',{
+searchnext_desc:"Find again",
+notfound:"The search has been completed. The search string could not be found.",
+search_title:"Find",
+replace_title:"Find/Replace",
+allreplaced:"All occurrences of the search string were replaced.",
+findwhat:"Find what",
+replacewith:"Replace with",
+direction:"Direction",
+up:"Up",
+down:"Down",
+mcase:"Match case",
+findnext:"Find next",
+replace:"Replace",
+replaceall:"Replace all"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;e.addCommand("mceSpellCheck",function(){if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);e.windowManager.alert("spellchecker.no_mpell")}})}else{g._done()}});e.onInit.add(function(){if(e.settings.content_css!==false){e.dom.loadCSS(f+"/css/content.css")}});e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}����������������\u201d\u201c');for(d=0;d$1$2');q=q.replace(g,'$1$2');j.replace(j.create("span",{"class":"mceItemHidden"},q),r)}}});l.moveToBookmark(m)},_showMenu:function(g,i){var h=this,g=h.editor,d=h._menu,k,j=g.dom,f=j.getViewPort(g.getWin());if(!d){k=b.getPos(g.getContentAreaContainer());d=g.controlManager.createDropMenu("spellcheckermenu",{offset_x:k.x,offset_y:k.y,"class":"mceNoIcons"});h._menu=d}if(j.hasClass(i.target,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);h._sendRPC("getSuggestions",[h.selectedLang,j.decode(i.target.innerHTML)],function(e){d.removeAll();if(e.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(e,function(l){d.add({title:l,onclick:function(){j.replace(g.getDoc().createTextNode(l),i.target);h._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}d.add({title:"spellchecker.ignore_word",onclick:function(){j.remove(i.target,1);h._checkDone()}});d.add({title:"spellchecker.ignore_words",onclick:function(){h._removeWords(j.decode(i.target.innerHTML));h._checkDone()}});d.update()});g.selection.select(i.target);k=j.getPos(i.target);d.showMenu(k.x,k.y+i.target.offsetHeight-f.y);return tinymce.dom.Event.cancel(i)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,h,d){var g=this,f=g.editor.getParam("spellchecker_rpc_url","{backend}");if(f=="{backend}"){g.editor.setProgressState(0);alert("Please specify: spellchecker_rpc_url");return}a.sendRPC({url:f,method:e,params:h,success:d,error:function(j,i){g.editor.setProgressState(0);g.editor.windowManager.alert(j.errstr||("Error response: "+i.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,338 @@
+/**
+ * $Id: editor_plugin_src.js,v 1.1 2009/05/08 17:38:39 daveb Exp $
+ *
+ * @author Moxiecode
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
+
+ tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
+ getInfo : function() {
+ return {
+ longname : 'Spellchecker',
+ author : 'Moxiecode Systems AB',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
+ };
+ },
+
+ init : function(ed, url) {
+ var t = this, cm;
+
+ t.url = url;
+ t.editor = ed;
+
+ // Register commands
+ ed.addCommand('mceSpellCheck', function() {
+ if (!t.active) {
+ ed.setProgressState(1);
+ t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
+ if (r.length > 0) {
+ t.active = 1;
+ t._markWords(r);
+ ed.setProgressState(0);
+ ed.nodeChanged();
+ } else {
+ ed.setProgressState(0);
+ ed.windowManager.alert('spellchecker.no_mpell');
+ }
+ });
+ } else
+ t._done();
+ });
+
+ ed.onInit.add(function() {
+ if (ed.settings.content_css !== false)
+ ed.dom.loadCSS(url + '/css/content.css');
+ });
+
+ ed.onClick.add(t._showMenu, t);
+ ed.onContextMenu.add(t._showMenu, t);
+ ed.onBeforeGetContent.add(function() {
+ if (t.active)
+ t._removeWords();
+ });
+
+ ed.onNodeChange.add(function(ed, cm) {
+ cm.setActive('spellchecker', t.active);
+ });
+
+ ed.onSetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeGetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeExecCommand.add(function(ed, cmd) {
+ if (cmd == 'mceFullScreen')
+ t._done();
+ });
+
+ // Find selected language
+ t.languages = {};
+ each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
+ if (k.indexOf('+') === 0) {
+ k = k.substring(1);
+ t.selectedLang = v;
+ }
+
+ t.languages[k] = v;
+ });
+ },
+
+ createControl : function(n, cm) {
+ var t = this, c, ed = t.editor;
+
+ if (n == 'spellchecker') {
+ c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
+
+ c.onRenderMenu.add(function(c, m) {
+ m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(t.languages, function(v, k) {
+ var o = {icon : 1}, mi;
+
+ o.onclick = function() {
+ mi.setSelected(1);
+ t.selectedItem.setSelected(0);
+ t.selectedItem = mi;
+ t.selectedLang = v;
+ };
+
+ o.title = k;
+ mi = m.add(o);
+ mi.setSelected(v == t.selectedLang);
+
+ if (v == t.selectedLang)
+ t.selectedItem = mi;
+ })
+ });
+
+ return c;
+ }
+ },
+
+ // Internal functions
+
+ _walk : function(n, f) {
+ var d = this.editor.getDoc(), w;
+
+ if (d.createTreeWalker) {
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
+
+ while ((n = w.nextNode()) != null)
+ f.call(this, n);
+ } else
+ tinymce.walk(n, f, 'childNodes');
+ },
+
+ _getSeparators : function() {
+ var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');
+
+ // Build word separator regexp
+ for (i=0; i$1$2');
+ v = v.replace(r3, '$1$2');
+
+ dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);
+ }
+ }
+ });
+
+ se.moveToBookmark(b);
+ },
+
+ _showMenu : function(ed, e) {
+ var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());
+
+ if (!m) {
+ p1 = DOM.getPos(ed.getContentAreaContainer());
+ //p2 = DOM.getPos(ed.getContainer());
+
+ m = ed.controlManager.createDropMenu('spellcheckermenu', {
+ offset_x : p1.x,
+ offset_y : p1.y,
+ 'class' : 'mceNoIcons'
+ });
+
+ t._menu = m;
+ }
+
+ if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {
+ m.removeAll();
+ m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {
+ m.removeAll();
+
+ if (r.length > 0) {
+ m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(r, function(v) {
+ m.add({title : v, onclick : function() {
+ dom.replace(ed.getDoc().createTextNode(v), e.target);
+ t._checkDone();
+ }});
+ });
+
+ m.addSeparator();
+ } else
+ m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ m.add({
+ title : 'spellchecker.ignore_word',
+ onclick : function() {
+ dom.remove(e.target, 1);
+ t._checkDone();
+ }
+ });
+
+ m.add({
+ title : 'spellchecker.ignore_words',
+ onclick : function() {
+ t._removeWords(dom.decode(e.target.innerHTML));
+ t._checkDone();
+ }
+ });
+
+ m.update();
+ });
+
+ ed.selection.select(e.target);
+ p1 = dom.getPos(e.target);
+ m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);
+
+ return tinymce.dom.Event.cancel(e);
+ } else
+ m.hideMenu();
+ },
+
+ _checkDone : function() {
+ var t = this, ed = t.editor, dom = ed.dom, o;
+
+ each(dom.select('span'), function(n) {
+ if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
+ o = true;
+ return false;
+ }
+ });
+
+ if (!o)
+ t._done();
+ },
+
+ _done : function() {
+ var t = this, la = t.active;
+
+ if (t.active) {
+ t.active = 0;
+ t._removeWords();
+
+ if (t._menu)
+ t._menu.hideMenu();
+
+ if (la)
+ t.editor.nodeChanged();
+ }
+ },
+
+ _sendRPC : function(m, p, cb) {
+ var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");
+
+ if (url == '{backend}') {
+ t.editor.setProgressState(0);
+ alert('Please specify: spellchecker_rpc_url');
+ return;
+ }
+
+ JSONRequest.sendRPC({
+ url : url,
+ method : m,
+ params : p,
+ success : cb,
+ error : function(e, x) {
+ t.editor.setProgressState(0);
+ t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
+ }
+ });
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
+})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1 @@
+.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/js/props.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/js/props.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/js/props.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,641 @@
+tinyMCEPopup.requireLangPack();
+
+var defaultFonts = "" +
+ "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" +
+ "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
+ "Courier New, Courier, mono=Courier New, Courier, mono;" +
+ "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
+ "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" +
+ "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" +
+ "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 defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
+var defaultTextStyle = "normal;italic;oblique";
+var defaultVariant = "normal;small-caps";
+var defaultLineHeight = "normal";
+var defaultAttachment = "fixed;scroll";
+var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
+var defaultPosH = "left;center;right";
+var defaultPosV = "top;center;bottom";
+var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
+var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
+var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
+var defaultBorderWidth = "thin;medium;thick";
+var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";
+
+function init() {
+ var ce = document.getElementById('container'), h;
+
+ ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');
+
+ h = getBrowserHTML('background_image_browser','background_image','image','advimage');
+ document.getElementById("background_image_browser").innerHTML = h;
+
+ document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
+ document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
+ document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
+ document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
+ document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
+ document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');
+
+ fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
+ fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
+ fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
+ fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
+ fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
+ fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
+ fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
+ fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);
+
+ fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
+ fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);
+
+ fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);
+
+ fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
+ fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);
+
+ fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
+ fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
+ fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
+ fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
+ fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
+ fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
+ fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
+ fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
+ fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);
+
+ fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
+ fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
+ fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);
+
+ fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
+ fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
+ fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
+ fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);
+
+ fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
+ fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
+ fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
+ fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);
+
+ fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);
+
+ fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
+ fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);
+
+ fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
+ fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);
+
+ fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);
+
+ fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);
+
+ fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
+ fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);
+
+ TinyMCE_EditableSelects.init();
+ setupFormData();
+ showDisabledControls();
+}
+
+function setupFormData() {
+ var ce = document.getElementById('container'), f = document.forms[0], s, b, i;
+
+ // Setup text fields
+
+ selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
+ selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
+ selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
+ selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
+ selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
+ selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
+ selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
+ selectByValue(f, 'text_case', ce.style.textTransform, true, true);
+ selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
+ f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);
+ updateColor('text_color_pick', 'text_color');
+ f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
+ f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
+ f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
+ f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');
+
+ // Setup background fields
+
+ f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);
+ updateColor('background_color_pick', 'background_color');
+ f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
+ selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
+ selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
+ selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
+ selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
+ selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));
+
+ // Setup block fields
+
+ selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
+ selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
+ selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
+ selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
+ selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
+ selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
+ f.block_text_indent.value = getNum(ce.style.textIndent);
+ selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
+ selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
+ selectByValue(f, 'block_display', ce.style.display, true, true);
+
+ // Setup box fields
+
+ f.box_width.value = getNum(ce.style.width);
+ selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));
+
+ f.box_height.value = getNum(ce.style.height);
+ selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
+
+ if (tinymce.isGecko)
+ selectByValue(f, 'box_float', ce.style.cssFloat, true, true);
+ else
+ selectByValue(f, 'box_float', ce.style.styleFloat, true, true);
+
+ selectByValue(f, 'box_clear', ce.style.clear, true, true);
+
+ setupBox(f, ce, 'box_padding', 'padding', '');
+ setupBox(f, ce, 'box_margin', 'margin', '');
+
+ // Setup border fields
+
+ setupBox(f, ce, 'border_style', 'border', 'Style');
+ setupBox(f, ce, 'border_width', 'border', 'Width');
+ setupBox(f, ce, 'border_color', 'border', 'Color');
+
+ updateColor('border_color_top_pick', 'border_color_top');
+ updateColor('border_color_right_pick', 'border_color_right');
+ updateColor('border_color_bottom_pick', 'border_color_bottom');
+ updateColor('border_color_left_pick', 'border_color_left');
+
+ f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);
+ f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);
+ f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);
+ f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);
+
+ // Setup list fields
+
+ selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
+ selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
+ f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+
+ // Setup box fields
+
+ selectByValue(f, 'positioning_type', ce.style.position, true, true);
+ selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
+ selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
+ f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";
+
+ f.positioning_width.value = getNum(ce.style.width);
+ selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));
+
+ f.positioning_height.value = getNum(ce.style.height);
+ selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
+
+ 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([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));
+ selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
+ f.positioning_clip_bottom.value = getNum(getVal(s, 2));
+ selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
+ f.positioning_clip_left.value = getNum(getVal(s, 3));
+ selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
+ } else {
+ f.positioning_clip_top.value = getNum(getVal(s, 0));
+ selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
+ f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
+ }
+
+// setupBox(f, ce, '', 'border', 'Color');
+}
+
+function getMeasurement(s) {
+ 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, '');
+
+ return s;
+}
+
+function inStr(s, n) {
+ return new RegExp(n, 'gi').test(s);
+}
+
+function getVal(s, i) {
+ var a = s.split(' ');
+
+ if (a.length > 1)
+ return a[i];
+
+ return "";
+}
+
+function setValue(f, n, v) {
+ if (f.elements[n].type == "text")
+ f.elements[n].value = v;
+ else
+ selectByValue(f, n, v, true, true);
+}
+
+function setupBox(f, ce, fp, pr, sf, b) {
+ if (typeof(b) == "undefined")
+ b = ['Top', 'Right', 'Bottom', 'Left'];
+
+ if (isSame(ce, pr, sf, b)) {
+ f.elements[fp + "_same"].checked = true;
+
+ setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+ f.elements[fp + "_top"].disabled = false;
+
+ f.elements[fp + "_right"].value = "";
+ f.elements[fp + "_right"].disabled = true;
+ f.elements[fp + "_bottom"].value = "";
+ f.elements[fp + "_bottom"].disabled = true;
+ f.elements[fp + "_left"].value = "";
+ f.elements[fp + "_left"].disabled = true;
+
+ if (f.elements[fp + "_top_measurement"]) {
+ selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+ f.elements[fp + "_left_measurement"].disabled = true;
+ f.elements[fp + "_bottom_measurement"].disabled = true;
+ f.elements[fp + "_right_measurement"].disabled = true;
+ }
+ } else {
+ f.elements[fp + "_same"].checked = false;
+
+ setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+ f.elements[fp + "_top"].disabled = false;
+
+ setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
+ f.elements[fp + "_right"].disabled = false;
+
+ setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
+ f.elements[fp + "_bottom"].disabled = false;
+
+ setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
+ f.elements[fp + "_left"].disabled = false;
+
+ if (f.elements[fp + "_top_measurement"]) {
+ selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+ selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
+ selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
+ selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
+ f.elements[fp + "_left_measurement"].disabled = false;
+ f.elements[fp + "_bottom_measurement"].disabled = false;
+ f.elements[fp + "_right_measurement"].disabled = false;
+ }
+ }
+}
+
+function isSame(e, pr, sf, b) {
+ var a = [], i, x;
+
+ if (typeof(b) == "undefined")
+ b = ['Top', 'Right', 'Bottom', 'Left'];
+
+ if (typeof(sf) == "undefined" || sf == null)
+ sf = "";
+
+ a[0] = e.style[pr + b[0] + sf];
+ a[1] = e.style[pr + b[1] + sf];
+ a[2] = e.style[pr + b[2] + sf];
+ a[3] = e.style[pr + b[3] + sf];
+
+ for (i=0; i 0 ? s.substring(1) : s;
+
+ if (f.text_none.checked)
+ s = "none";
+
+ ce.style.textDecoration = s;
+
+ // Build background styles
+
+ ce.style.backgroundColor = f.background_color.value;
+ ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
+ ce.style.backgroundRepeat = f.background_repeat.value;
+ ce.style.backgroundAttachment = f.background_attachment.value;
+
+ if (f.background_hpos.value != "") {
+ s = "";
+ s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
+ s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
+ ce.style.backgroundPosition = s;
+ }
+
+ // Build block styles
+
+ ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
+ ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
+ ce.style.verticalAlign = f.block_vertical_alignment.value;
+ ce.style.textAlign = f.block_text_align.value;
+ ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
+ ce.style.whiteSpace = f.block_whitespace.value;
+ ce.style.display = f.block_display.value;
+
+ // Build box styles
+
+ ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
+ ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
+ ce.style.styleFloat = f.box_float.value;
+
+ if (tinymce.isGecko)
+ ce.style.cssFloat = f.box_float.value;
+
+ ce.style.clear = f.box_clear.value;
+
+ if (!f.box_padding_same.checked) {
+ ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
+ ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
+ ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
+ ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
+ } else
+ ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
+
+ if (!f.box_margin_same.checked) {
+ ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
+ ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
+ ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
+ ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
+ } else
+ ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
+
+ // Build border styles
+
+ if (!f.border_style_same.checked) {
+ ce.style.borderTopStyle = f.border_style_top.value;
+ ce.style.borderRightStyle = f.border_style_right.value;
+ ce.style.borderBottomStyle = f.border_style_bottom.value;
+ ce.style.borderLeftStyle = f.border_style_left.value;
+ } else
+ ce.style.borderStyle = f.border_style_top.value;
+
+ if (!f.border_width_same.checked) {
+ ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
+ ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
+ 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;
+
+ if (!f.border_color_same.checked) {
+ ce.style.borderTopColor = f.border_color_top.value;
+ ce.style.borderRightColor = f.border_color_right.value;
+ ce.style.borderBottomColor = f.border_color_bottom.value;
+ ce.style.borderLeftColor = f.border_color_left.value;
+ } else
+ ce.style.borderColor = f.border_color_top.value;
+
+ // Build list styles
+
+ ce.style.listStyleType = f.list_type.value;
+ ce.style.listStylePosition = f.list_position.value;
+ ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";
+
+ // Build positioning styles
+
+ ce.style.position = f.positioning_type.value;
+ ce.style.visibility = f.positioning_visibility.value;
+
+ if (ce.style.width == "")
+ ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");
+
+ if (ce.style.height == "")
+ ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");
+
+ ce.style.zIndex = f.positioning_zindex.value;
+ ce.style.overflow = f.positioning_overflow.value;
+
+ if (!f.positioning_placement_same.checked) {
+ ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+ ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
+ ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
+ ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
+ } else {
+ s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+ ce.style.top = s;
+ ce.style.right = s;
+ ce.style.bottom = s;
+ ce.style.left = s;
+ }
+
+ if (!f.positioning_clip_same.checked) {
+ s = "rect(";
+ s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
+ s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
+ s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
+ s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
+ s += ")";
+
+ if (s != "rect(auto auto auto auto)")
+ ce.style.clip = s;
+ } else {
+ s = "rect(";
+ t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
+ s += t + " ";
+ s += t + " ";
+ s += t + " ";
+ s += t + ")";
+
+ if (s != "rect(auto auto auto auto)")
+ ce.style.clip = s;
+ }
+
+ ce.style.cssText = ce.style.cssText;
+}
+
+function isNum(s) {
+ return new RegExp('[0-9]+', 'g').test(s);
+}
+
+function showDisabledControls() {
+ var f = document.forms, i, a;
+
+ for (i=0; i 1) {
+ addSelectValue(f, s, p[0], p[1]);
+
+ if (se)
+ selectByValue(f, s, p[1]);
+ } else {
+ addSelectValue(f, s, p[0], p[0]);
+
+ if (se)
+ selectByValue(f, s, p[0]);
+ }
+ }
+}
+
+function toggleSame(ce, pre) {
+ var el = document.forms[0].elements, i;
+
+ if (ce.checked) {
+ el[pre + "_top"].disabled = false;
+ el[pre + "_right"].disabled = true;
+ el[pre + "_bottom"].disabled = true;
+ el[pre + "_left"].disabled = true;
+
+ if (el[pre + "_top_measurement"]) {
+ el[pre + "_top_measurement"].disabled = false;
+ el[pre + "_right_measurement"].disabled = true;
+ el[pre + "_bottom_measurement"].disabled = true;
+ el[pre + "_left_measurement"].disabled = true;
+ }
+ } else {
+ el[pre + "_top"].disabled = false;
+ el[pre + "_right"].disabled = false;
+ el[pre + "_bottom"].disabled = false;
+ el[pre + "_left"].disabled = false;
+
+ if (el[pre + "_top_measurement"]) {
+ el[pre + "_top_measurement"].disabled = false;
+ el[pre + "_right_measurement"].disabled = false;
+ el[pre + "_bottom_measurement"].disabled = false;
+ el[pre + "_left_measurement"].disabled = false;
+ }
+ }
+
+ showDisabledControls();
+}
+
+function synch(fr, to) {
+ var f = document.forms[0];
+
+ f.elements[to].value = f.elements[fr].value;
+
+ if (f.elements[fr + "_measurement"])
+ selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
+}
+
+tinyMCEPopup.onInit.add(init);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,63 @@
+tinyMCE.addI18n('en.style_dlg',{
+title:"Edit CSS Style",
+apply:"Apply",
+text_tab:"Text",
+background_tab:"Background",
+block_tab:"Block",
+box_tab:"Box",
+border_tab:"Border",
+list_tab:"List",
+positioning_tab:"Positioning",
+text_props:"Text",
+text_font:"Font",
+text_size:"Size",
+text_weight:"Weight",
+text_style:"Style",
+text_variant:"Variant",
+text_lineheight:"Line height",
+text_case:"Case",
+text_color:"Color",
+text_decoration:"Decoration",
+text_overline:"overline",
+text_underline:"underline",
+text_striketrough:"strikethrough",
+text_blink:"blink",
+text_none:"none",
+background_color:"Background color",
+background_image:"Background image",
+background_repeat:"Repeat",
+background_attachment:"Attachment",
+background_hpos:"Horizontal position",
+background_vpos:"Vertical position",
+block_wordspacing:"Word spacing",
+block_letterspacing:"Letter spacing",
+block_vertical_alignment:"Vertical alignment",
+block_text_align:"Text align",
+block_text_indent:"Text indent",
+block_whitespace:"Whitespace",
+block_display:"Display",
+box_width:"Width",
+box_height:"Height",
+box_float:"Float",
+box_clear:"Clear",
+padding:"Padding",
+same:"Same for all",
+top:"Top",
+right:"Right",
+bottom:"Bottom",
+left:"Left",
+margin:"Margin",
+style:"Style",
+width:"Width",
+height:"Height",
+color:"Color",
+list_type:"Type",
+bullet_image:"Bullet image",
+position:"Position",
+positioning_type:"Type",
+visibility:"Visibility",
+zindex:"Z-index",
+overflow:"Overflow",
+placement:"Placement",
+clip:"Clip"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js 8 May 2009 17:38:39 -0000 1.1
@@ -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=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",tinyMCE.activeEditor.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)})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,109 @@
+/**
+ * $Id: editor_plugin_src.js,v 1.1 2009/05/08 17:38:39 daveb Exp $
+ *
+ * @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', tinyMCE.activeEditor.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);
+})();
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,269 @@
+tinyMCEPopup.requireLangPack();
+
+var ed;
+
+function init() {
+ ed = tinyMCEPopup.editor;
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+ document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
+
+ var inst = ed;
+ var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");
+ var formObj = document.forms[0];
+ var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
+
+ // Get table cell data
+ var celltype = tdElm.nodeName.toLowerCase();
+ var align = ed.dom.getAttrib(tdElm, 'align');
+ var valign = ed.dom.getAttrib(tdElm, 'valign');
+ var width = trimSize(getStyle(tdElm, 'width', 'width'));
+ var height = trimSize(getStyle(tdElm, 'height', 'height'));
+ var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
+ var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
+ var className = ed.dom.getAttrib(tdElm, 'class');
+ var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
+ var id = ed.dom.getAttrib(tdElm, 'id');
+ var lang = ed.dom.getAttrib(tdElm, 'lang');
+ var dir = ed.dom.getAttrib(tdElm, 'dir');
+ var scope = ed.dom.getAttrib(tdElm, 'scope');
+
+ // Setup form
+ addClassesToList('class', 'table_cell_styles');
+ TinyMCE_EditableSelects.init();
+
+ formObj.bordercolor.value = bordercolor;
+ formObj.bgcolor.value = bgcolor;
+ formObj.backgroundimage.value = backgroundimage;
+ formObj.width.value = width;
+ formObj.height.value = height;
+ formObj.id.value = id;
+ formObj.lang.value = lang;
+ formObj.style.value = ed.dom.serializeStyle(st);
+ selectByValue(formObj, 'align', align);
+ selectByValue(formObj, 'valign', valign);
+ selectByValue(formObj, 'class', className, true, true);
+ selectByValue(formObj, 'celltype', celltype);
+ selectByValue(formObj, 'dir', dir);
+ selectByValue(formObj, 'scope', scope);
+
+ // Resize some elements
+ if (isVisible('backgroundimagebrowser'))
+ document.getElementById('backgroundimage').style.width = '180px';
+
+ updateColor('bordercolor_pick', 'bordercolor');
+ updateColor('bgcolor_pick', 'bgcolor');
+}
+
+function updateAction() {
+ 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');
+
+ switch (getSelectValue(formObj, 'action')) {
+ case "cell":
+ var celltype = getSelectValue(formObj, 'celltype');
+ var scope = getSelectValue(formObj, 'scope');
+
+ function doUpdate(s) {
+ if (s) {
+ updateCell(tdElm);
+
+ 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);
+ break;
+
+ case "row":
+ var cell = trElm.firstChild;
+
+ if (cell.nodeName != "TD" && cell.nodeName != "TH")
+ cell = nextCell(cell);
+
+ do {
+ cell = updateCell(cell, true);
+ } while ((cell = nextCell(cell)) != null);
+
+ break;
+
+ case "all":
+ var rows = tableElm.getElementsByTagName("tr");
+
+ for (var i=0; i colLimit) {
+ tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
+ return false;
+ } else if (rowLimit && rows > rowLimit) {
+ tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
+ return false;
+ } else if (cellLimit && cols * rows > cellLimit) {
+ tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
+ return false;
+ }
+
+ // Update table
+ if (action == "update") {
+ inst.execCommand('mceBeginUndoLevel');
+
+ dom.setAttrib(elm, 'cellPadding', cellpadding, true);
+ dom.setAttrib(elm, 'cellSpacing', cellspacing, true);
+ dom.setAttrib(elm, 'border', border);
+ dom.setAttrib(elm, 'align', align);
+ dom.setAttrib(elm, 'frame', frame);
+ dom.setAttrib(elm, 'rules', rules);
+ dom.setAttrib(elm, 'class', className);
+ dom.setAttrib(elm, 'style', style);
+ dom.setAttrib(elm, 'id', id);
+ dom.setAttrib(elm, 'summary', summary);
+ dom.setAttrib(elm, 'dir', dir);
+ dom.setAttrib(elm, 'lang', lang);
+
+ capEl = inst.dom.select('caption', elm)[0];
+
+ if (capEl && !caption)
+ capEl.parentNode.removeChild(capEl);
+
+ if (!capEl && caption) {
+ capEl = elm.ownerDocument.createElement('caption');
+
+ if (!tinymce.isIE)
+ capEl.innerHTML = '
';
+
+ elm.insertBefore(capEl, elm.firstChild);
+ }
+
+ if (width && inst.settings.inline_styles) {
+ dom.setStyle(elm, 'width', width);
+ dom.setAttrib(elm, 'width', '');
+ } else {
+ dom.setAttrib(elm, 'width', width, true);
+ dom.setStyle(elm, 'width', '');
+ }
+
+ // Remove these since they are not valid XHTML
+ dom.setAttrib(elm, 'borderColor', '');
+ dom.setAttrib(elm, 'bgColor', '');
+ dom.setAttrib(elm, 'background', '');
+
+ 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 + "')";
+ else
+ elm.style.backgroundImage = '';
+
+/* if (tinyMCEPopup.getParam("inline_styles")) {
+ if (width != '')
+ elm.style.width = getCSSSize(width);
+ }*/
+
+ if (bordercolor != "") {
+ elm.style.borderColor = bordercolor;
+ elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
+ elm.style.borderWidth = border == "" ? "1px" : border;
+ } else
+ elm.style.borderColor = '';
+
+ elm.style.backgroundColor = bgcolor;
+ elm.style.height = getCSSSize(height);
+
+ inst.addVisual();
+
+ // Fix for stange MSIE align bug
+ //elm.outerHTML = elm.outerHTML;
+
+ inst.nodeChanged();
+ inst.execCommand('mceEndUndoLevel');
+
+ // Repaint if dimensions changed
+ if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
+ inst.execCommand('mceRepaint');
+
+ tinyMCEPopup.close();
+ return true;
+ }
+
+ // Create new table
+ html += '';
+
+ if (caption) {
+ if (!tinymce.isIE)
+ html += '
';
+ else
+ html += '';
+ }
+
+ for (var y=0; y";
+
+ for (var x=0; x
';
+ else
+ html += ' | ';
+ }
+
+ html += "";
+ }
+
+ html += "
";
+
+ inst.execCommand('mceBeginUndoLevel');
+
+ // Move table
+ if (inst.settings.fix_table_elements) {
+ var bm = inst.selection.getBookmark(), patt = '';
+
+ inst.execCommand('mceInsertContent', false, '
');
+
+ 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');
+
+ tinyMCEPopup.close();
+}
+
+function makeAttrib(attrib, value) {
+ var formObj = document.forms[0];
+ var valueElm = formObj.elements[attrib];
+
+ if (typeof(value) == "undefined" || value == null) {
+ value = "";
+
+ if (valueElm)
+ value = valueElm.value;
+ }
+
+ if (value == "")
+ return "";
+
+ // XML encode it
+ value = value.replace(/&/g, '&');
+ value = value.replace(/\"/g, '"');
+ value = value.replace(//g, '>');
+
+ return ' ' + attrib + '="' + value + '"';
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+ document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+ var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');
+ var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
+ var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame;
+ var inst = tinyMCEPopup.editor, dom = inst.dom;
+ var formObj = document.forms[0];
+ var elm = dom.getParent(inst.selection.getNode(), "table");
+
+ action = tinyMCEPopup.getWindowArg('action');
+
+ if (!action)
+ action = elm ? "update" : "insert";
+
+ if (elm && action != "insert") {
+ var rowsAr = elm.rows;
+ var cols = 0;
+ for (var i=0; i cols)
+ cols = rowsAr[i].cells.length;
+
+ cols = cols;
+ rows = rowsAr.length;
+
+ st = dom.parseStyle(dom.getAttrib(elm, "style"));
+ border = trimSize(getStyle(elm, 'border', 'borderWidth'));
+ cellpadding = dom.getAttrib(elm, 'cellpadding', "");
+ cellspacing = dom.getAttrib(elm, 'cellspacing', "");
+ width = trimSize(getStyle(elm, 'width', 'width'));
+ height = trimSize(getStyle(elm, 'height', 'height'));
+ bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
+ bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
+ align = dom.getAttrib(elm, 'align', align);
+ frame = dom.getAttrib(elm, 'frame');
+ rules = dom.getAttrib(elm, 'rules');
+ className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));
+ id = dom.getAttrib(elm, 'id');
+ summary = dom.getAttrib(elm, 'summary');
+ style = dom.serializeStyle(st);
+ dir = dom.getAttrib(elm, 'dir');
+ lang = dom.getAttrib(elm, 'lang');
+ background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;
+
+ orgTableWidth = width;
+ orgTableHeight = height;
+
+ action = "update";
+ formObj.insert.value = inst.getLang('update');
+ }
+
+ addClassesToList('class', "table_styles");
+ TinyMCE_EditableSelects.init();
+
+ // Update form
+ selectByValue(formObj, 'align', align);
+ selectByValue(formObj, 'frame', frame);
+ selectByValue(formObj, 'rules', rules);
+ selectByValue(formObj, 'class', className, true, true);
+ formObj.cols.value = cols;
+ formObj.rows.value = rows;
+ formObj.border.value = border;
+ formObj.cellpadding.value = cellpadding;
+ formObj.cellspacing.value = cellspacing;
+ formObj.width.value = width;
+ formObj.height.value = height;
+ formObj.bordercolor.value = bordercolor;
+ formObj.bgcolor.value = bgcolor;
+ formObj.id.value = id;
+ formObj.summary.value = summary;
+ formObj.style.value = style;
+ formObj.dir.value = dir;
+ formObj.lang.value = lang;
+ formObj.backgroundimage.value = background;
+
+ updateColor('bordercolor_pick', 'bordercolor');
+ updateColor('bgcolor_pick', 'bgcolor');
+
+ // Resize some elements
+ if (isVisible('backgroundimagebrowser'))
+ document.getElementById('backgroundimage').style.width = '180px';
+
+ // Disable some fields in update mode
+ if (action == "update") {
+ formObj.cols.disabled = true;
+ formObj.rows.disabled = true;
+ }
+}
+
+function changedSize() {
+ var formObj = document.forms[0];
+ var st = dom.parseStyle(formObj.style.value);
+
+/* var width = formObj.width.value;
+ if (width != "")
+ st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";
+ else
+ st['width'] = "";*/
+
+ var height = formObj.height.value;
+ if (height != "")
+ st['height'] = getCSSSize(height);
+ else
+ st['height'] = "";
+
+ formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedBackgroundImage() {
+ var formObj = document.forms[0];
+ var st = dom.parseStyle(formObj.style.value);
+
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+ formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedBorder() {
+ var formObj = document.forms[0];
+ var st = dom.parseStyle(formObj.style.value);
+
+ // Update border width if the element has a color
+ if (formObj.border.value != "" && formObj.bordercolor.value != "")
+ st['border-width'] = formObj.border.value + "px";
+
+ formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedColor() {
+ var formObj = document.forms[0];
+ var st = dom.parseStyle(formObj.style.value);
+
+ st['background-color'] = formObj.bgcolor.value;
+
+ if (formObj.bordercolor.value != "") {
+ st['border-color'] = formObj.bordercolor.value;
+
+ // Add border-width if it's missing
+ if (!st['border-width'])
+ st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
+ }
+
+ formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedStyle() {
+ var formObj = document.forms[0];
+ var st = dom.parseStyle(formObj.style.value);
+
+ if (st['background-image'])
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ else
+ formObj.backgroundimage.value = '';
+
+ if (st['width'])
+ formObj.width.value = trimSize(st['width']);
+
+ if (st['height'])
+ formObj.height.value = trimSize(st['height']);
+
+ if (st['background-color']) {
+ formObj.bgcolor.value = st['background-color'];
+ updateColor('bgcolor_pick','bgcolor');
+ }
+
+ if (st['border-color']) {
+ formObj.bordercolor.value = st['border-color'];
+ updateColor('bordercolor_pick','bordercolor');
+ }
+}
+
+tinyMCEPopup.onInit.add(init);
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,74 @@
+tinyMCE.addI18n('en.table_dlg',{
+general_tab:"General",
+advanced_tab:"Advanced",
+general_props:"General properties",
+advanced_props:"Advanced properties",
+rowtype:"Row in table part",
+title:"Insert/Modify table",
+width:"Width",
+height:"Height",
+cols:"Cols",
+rows:"Rows",
+cellspacing:"Cellspacing",
+cellpadding:"Cellpadding",
+border:"Border",
+align:"Alignment",
+align_default:"Default",
+align_left:"Left",
+align_right:"Right",
+align_middle:"Center",
+row_title:"Table row properties",
+cell_title:"Table cell properties",
+cell_type:"Cell type",
+valign:"Vertical alignment",
+align_top:"Top",
+align_bottom:"Bottom",
+bordercolor:"Border color",
+bgcolor:"Background color",
+merge_cells_title:"Merge table cells",
+id:"Id",
+style:"Style",
+langdir:"Language direction",
+langcode:"Language code",
+mime:"Target MIME type",
+ltr:"Left to right",
+rtl:"Right to left",
+bgimage:"Background image",
+summary:"Summary",
+td:"Data",
+th:"Header",
+cell_cell:"Update current cell",
+cell_row:"Update all cells in row",
+cell_all:"Update all cells in table",
+row_row:"Update current row",
+row_odd:"Update odd rows in table",
+row_even:"Update even rows in table",
+row_all:"Update all rows in table",
+thead:"Table Head",
+tbody:"Table Body",
+tfoot:"Table Foot",
+scope:"Scope",
+rowgroup:"Row Group",
+colgroup:"Col Group",
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",
+caption:"Table caption",
+frame:"Frame",
+frame_none:"none",
+frame_groups:"groups",
+frame_rows:"rows",
+frame_cols:"cols",
+frame_all:"all",
+rules:"Rules",
+rules_void:"void",
+rules_above:"above",
+rules_below:"below",
+rules_hsides:"hsides",
+rules_lhs:"lhs",
+rules_rhs:"rhs",
+rules_vsides:"vsides",
+rules_box:"box",
+rules_border:"border"
+});
\ No newline at end of file
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/template/js/template.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/template/js/template.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/template/js/template.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,106 @@
+tinyMCEPopup.requireLangPack();
+
+var TemplateDialog = {
+ preInit : function() {
+ var url = tinyMCEPopup.getParam("template_external_list_url");
+
+ if (url != null)
+ document.write('');
+ },
+
+ init : function() {
+ var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
+
+ tsrc = ed.getParam("template_templates", false);
+ sel = document.getElementById('tpath');
+
+ // Setup external template list
+ if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
+ for (x=0, tsrc = []; x');
+ });
+ },
+
+ 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 0) {
+ insertInlineElement('del');
+ var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});
+ for (var i=0; i 0) {
+ tagName = element_name;
+
+ if (tinymce.isIE && element_name.indexOf('html:') == 0)
+ element_name = element_name.substring(5).toLowerCase();
+
+ insertInlineElement(element_name);
+ var elementArray = tinymce.grep(SXE.inst.dom.select(element_name));
+ for (var i=0; i -1) ? true : false;
+}
+
+SXE.removeClass = function(elm,cl) {
+ if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {
+ return true;
+ }
+ var classNames = elm.className.split(" ");
+ var newClassNames = "";
+ for (var x = 0, cnl = classNames.length; x < cnl; x++) {
+ if (classNames[x] != cl) {
+ newClassNames += (classNames[x] + " ");
+ }
+ }
+ elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end
+}
+
+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);
+ });
+}
Index: openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-templating/www/resources/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js 8 May 2009 17:38:39 -0000 1.1
@@ -0,0 +1,59 @@
+ /**
+ * $Id: ins.js,v 1.1 2009/05/08 17:38:39 daveb Exp $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+function init() {
+ SXE.initElementDialog('ins');
+ if (SXE.currentAction == "update") {
+ setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));
+ setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));
+ SXE.showRemoveButton();
+ }
+}
+
+function setElementAttribs(elm) {
+ setAllCommonAttribs(elm);
+ setAttrib(elm, 'datetime');
+ setAttrib(elm, 'cite');
+}
+
+function insertIns() {
+ var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');
+ tinyMCEPopup.execCommand('mceBeginUndoLevel');
+ if (elm == null) {
+ var s = SXE.inst.selection.getContent();
+ if(s.length > 0) {
+ insertInlineElement('INS');
+ var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});
+ for (var i=0; i