- Author:
- Tommy Yu <tommy.yu@auckland.ac.nz>
- Date:
- 2015-02-12 19:28:32+13:00
- Desc:
- Merging to remove the extra head
- Since the title is changed and in the interest of maintaining the
current structure we keep it as is.
- Permanent Source URI:
- https://models.cellml.org/w/matthiaskoenig/MetabolicComponentLibrary/rawfile/e0e2c28e2dfdfe37ea2cae3390a6ae26c28a3393/examples/nazaret_2009/nazareth_2009_files/tiny_mce_init-cachekey-fa57bbd2cda5b2a15e6dbf007a5cd498.js
/* - tiny_mce_init.js - */
var InitializedTinyMCEInstances = {};
function TinyMCEConfig(id) {
this.id = id;
this.widget_config = eval('(' + document.getElementById (this.id).title + ')');
this.toolbars = [];
this.init = function() {
// Check if already initialized
if (typeof (InitializedTinyMCEInstances[this.id]) != 'undefined') {
return;
}
InitializedTinyMCEInstances[this.id] = 1;
this.initToolbars();
var format = document.getElementById(this.id + '_text_format');
if (format && format.tagName.toLowerCase() == 'input' && format.value.indexOf('html') == -1) {
return;
}
// Set textformat to html and hide selector
var node = tinymce.DOM.get(this.id);
node = tinymce.DOM.getParent(node, '.ArchetypesRichWidget,.richTextWidget');
if (node != null) {
node = tinymce.DOM.select('div.fieldTextFormat', node);
if (node.length > 0) {
tinymce.DOM.select('select', node[0])[0].value = 'text/html';
tinymce.DOM.setStyle(node[0], 'display', 'none');
}
}
for (var i = 0; i < this.widget_config.customplugins.length; i++) {
if (this.widget_config.customplugins[i].indexOf('|') != -1) {
e = this.widget_config.customplugins[i].split('|');
tinymce.PluginManager.load(e[0], this.getPortalUrl() + e[1]);
}
}
var init_dict = {
mode : "exact",
elements : this.id,
strict_loading_mode : true,
theme : "advanced",
language : this.getLanguage(),
skin : "plone",
inlinepopups_skin : "plonepopup",
plugins : this.getPlugins(),
// Find out if ieSpell requires gecko spellchecker...
gecko_spellcheck : this.geckoSpellcheckEnabled(),
atd_rpc_id : this.widget_config.atd_rpc_id,
atd_rpc_url : this.widget_config.atd_rpc_url,
atd_show_types : this.widget_config.atd_show_types,
atd_ignore_strings : this.widget_config.atd_ignore_strings,
labels : this.widget_config.labels,
theme_advanced_styles : this.getStyles(),
theme_advanced_buttons1 : this.getToolbar(0),
theme_advanced_buttons2 : this.getToolbar(1),
theme_advanced_buttons3 : this.getToolbar(2),
theme_advanced_buttons4 : this.getToolbar(3),
theme_advanced_toolbar_location : this.getToolbarLocation(),
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : this.getPathLocation(),
theme_advanced_path : false,
theme_advanced_resizing : this.getResizing(),
theme_advanced_resizing_use_cookie : this.getResizingUseCookie(),
theme_advanced_resize_horizontal : this.getResizeHorizontal(),
theme_advanced_source_editor_width : this.getEditorWidth(),
theme_advanced_source_editor_height : this.getEditorHeight(),
table_styles : this.getTableStyles(),
table_firstline_th : true,
directionality : this.getDirectionality(),
entity_encoding : this.getEntityEncoding(),
content_css : this.getContentCSS(),
body_class : "documentContent",
body_id : "content",
document_base_url : this.getBase(),
document_url : this.getDocumentUrl(),
portal_url : this.getPortalUrl(),
navigation_root_url : this.getNavigationRootUrl(),
livesearch : this.getLivesearch(),
valid_elements : this.getValidElements(),
valid_inline_styles : this.getValidInlineStyles(),
link_using_uids : this.getLinkUsingUids(),
allow_captioned_images : this.getAllowCaptionedImages(),
rooted : this.getRooted(),
force_span_wrappers : true,
fix_list_elements : false,
// allow embed tag if user removes it from
// list of nasty tags - see #10681
media_strict: false
};
window.tinyMCE.init(init_dict);
};
this.getButtonWidth = function(b) {
switch (b) {
case 'style':
return 150;
case 'forecolor':
return 32;
case 'backcolor':
return 32;
case 'tablecontrols':
return 285;
}
return 23;
};
this.getTableStyles = function() {
return this.widget_config.table_styles.join (";");
};
this.getToolbar = function(i) {
return this.toolbars[i];
};
this.initToolbars = function() {
var t = [[],[],[],[]];
var cur_toolbar = 0;
var cur_x = 0;
var button_width;
for (var i = 0; i < this.widget_config.buttons.length; i++) {
button_width = this.getButtonWidth(this.widget_config.buttons[i]);
if (cur_x + button_width > this.widget_config.toolbar_width) {
cur_x = button_width;
cur_toolbar++;
} else {
cur_x += button_width;
}
if (cur_toolbar <= 3) {
t[cur_toolbar].push (this.widget_config.buttons[i]);
}
}
this.toolbars = [t[0].join(','), t[1].join(','), t[2].join(','), t[3].join(',')];
};
this.getStyles = function() {
var h = {'Text': [], 'Selection': [], 'Tables': [], 'Lists': [], 'Print': []};
var styletype = "";
// Push title
h['Text'].push('{ title: "Text", tag: "", className: "-", type: "Text" }');
h['Selection'].push('{ title: "Selection", tag: "", className: "-", type: "Selection" }');
h['Tables'].push('{ title: "Tables", tag: "table", className: "-", type: "Tables" }');
h['Lists'].push('{ title: "Lists", tag: "ul", className: "-", type: "Lists" }');
h['Lists'].push('{ title: "Lists", tag: "ol", className: "-", type: "Lists" }');
h['Lists'].push('{ title: "Lists", tag: "dl", className: "-", type: "Lists" }');
h['Print'].push('{ title: "Print", tag: "", className: "-", type: "Print" }');
// Add defaults
h['Text'].push('{ title: "' + this.widget_config.labels['label_paragraph'] + '", tag: "p", className: "", type: "Text" }');
h['Selection'].push('{ title: "' + this.widget_config.labels['label_styles'] + '", tag: "", className: "", type: "Selection" }');
h['Tables'].push('{ title: "'+this.widget_config.labels['label_plain_cell'] +'", tag: "td", className: "", type: "Tables" }');
h['Lists'].push('{ title: "'+this.widget_config.labels['label_lists'] +'", tag: "dl", className: "", type: "Lists" }');
for (var i = 0; i < this.widget_config.styles.length; i++) {
e = this.widget_config.styles[i].split('|');
if (e.length <= 2) {
e[2] = "";
}
switch (e[1].toLowerCase()) {
case 'del':
case 'ins':
case 'span':
styletype = "Selection";
break;
case 'tr':
case 'td':
case 'th':
case 'table':
styletype = "Tables";
break;
case 'ul':
case 'ol':
case 'li':
case 'dt':
case 'dd':
case 'dl':
styletype = "Lists";
break;
default:
styletype = "Text";
break;
}
if (e[2] == "pageBreak") {
styletype = "Print";
}
h[styletype].push('{ title: "' + e[0] + '", tag: "' + e[1] + '", className: "' + e[2] + '", type: "' + styletype + '" }');
}
// Add items to array
var a = [];
if (h['Text'].length > 1) {
for (var i = 0; i < h['Text'].length; i++) {
a.push(h['Text'][i]);
}
}
if (h['Selection'].length > 1) {
for (var i = 0; i < h['Selection'].length; i++) {
a.push(h['Selection'][i]);
}
}
if (h['Tables'].length > 1) {
for (var i = 0; i < h['Tables'].length; i++) {
a.push(h['Tables'][i]);
}
}
if (h['Lists'].length > 1) {
for (var i = 0; i < h['Lists'].length; i++) {
a.push(h['Lists'][i]);
}
}
if (h['Print'].length > 1) {
for (var i = 0; i < h['Print'].length; i++) {
a.push(h['Print'][i]);
}
}
return '[' + a.join(',') + ']';
};
this.getValidInlineStyles = function() {
return this.widget_config.valid_inline_styles.join (',');
};
this.getValidElements = function() {
a = [];
for (var valid_element in this.widget_config.valid_elements) {
var s = valid_element;
if (this.widget_config.valid_elements[valid_element].length > 0) {
s += '[' + this.widget_config.valid_elements[valid_element].join ('|') + ']';
}
a.push (s);
}
return a.join (',');
};
this.getDocumentUrl = function() {
return this.widget_config.document_url;
};
this.getBase = function() {
return this.widget_config.parent;
};
this.getToolbarLocation = function () {
return this.widget_config.toolbar_location;
};
this.getPathLocation = function () {
return this.widget_config.path_location;
};
this.getResizing = function () {
return this.widget_config.resizing;
};
this.getResizingUseCookie = function () {
return this.widget_config.resizing_use_cookie;
};
this.getResizeHorizontal = function () {
return this.widget_config.resize_horizontal;
};
this.getEditorWidth = function () {
return this.widget_config.editor_width;
};
this.getEditorHeight = function () {
return this.widget_config.editor_height;
};
this.getDirectionality = function () {
return this.widget_config.directionality;
};
this.getEntityEncoding = function () {
return this.widget_config.entity_encoding;
};
this.getContentCSS = function () {
return this.widget_config.content_css;
};
this.getLanguage = function () {
return this.widget_config.language;
};
this.getLinkUsingUids = function () {
return this.widget_config.link_using_uids;
};
this.getAllowCaptionedImages = function () {
return this.widget_config.allow_captioned_images;
};
this.getRooted = function () {
return this.widget_config.rooted;
};
this.getPortalUrl = function () {
return this.widget_config.portal_url;
};
this.getNavigationRootUrl = function () {
return this.widget_config.navigation_root_url;
};
this.getLivesearch = function () {
return this.widget_config.livesearch;
};
this.getSpellchecker = function () {
var sp = this.widget_config.libraries_spellchecker_choice;
if ((sp != '') && (sp != 'browser')) {
return sp;
}
else {
return;
}
};
this.geckoSpellcheckEnabled = function () {
if (this.widget_config.libraries_spellchecker_choice == 'browser') {
return true;
}
else {
return false;
}
};
this.getPlugins = function () {
var plugins = "safari,pagebreak,table,save,advhr,emotions,insertdatetime,preview,media,searchreplace,print,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,inlinepopups,plonestyle,tabfocus,definitionlist,ploneinlinestyles";
var sp = this.getSpellchecker();
if (sp) {
plugins += ',' + sp;
}
for (var i = 0; i < this.widget_config.customplugins.length; i++) {
if (this.widget_config.customplugins[i].indexOf('|') == -1) {
plugins += ',' + this.widget_config.customplugins[i];
} else {
plugins += ',' + this.widget_config.customplugins[i].split('|')[0];
}
}
if (this.widget_config.contextmenu) {
plugins += ',contextmenu';
}
if (this.widget_config.autoresize) {
plugins += ',autoresize';
}
return plugins;
};
}
if (typeof(kukit) != "undefined") {
kukit.actionsGlobalRegistry.register("init-tinymce", function(oper) {
var config = new TinyMCEConfig(oper.node.id);
delete InitializedTinyMCEInstances[oper.node.id];
config.init();
});
kukit.actionsGlobalRegistry.register("save-tinymce", function(oper) {
if(tinymce.EditorManager != undefined && tinymce.EditorManager.activeEditor != null){
tinymce.EditorManager.activeEditor.save();
}
});
}