API CHANGE Removed tinymce_removeAll() javacsript method in favour of a cleanup() method in #Form_EditForm

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@92642 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2009-11-21 02:37:59 +00:00
parent eba09dff2d
commit 07e8d2e1e7
4 changed files with 21 additions and 26 deletions

View File

@ -200,6 +200,19 @@
}, },
/**
* Remove all the currently active TinyMCE editors.
* Note: Everything that calls this externally has an inappropriate coupling to TinyMCE.
*/
cleanup: function() {
if((typeof tinymce != 'undefined') && tinymce.EditorManager) {
var id;
for(id in tinymce.EditorManager.editors) {
tinymce.EditorManager.editors[id].remove();
}
tinymce.EditorManager.editors = {};
}
},
/** /**
* @param {String} result Either HTML for straight insertion, or eval'ed JavaScript. * @param {String} result Either HTML for straight insertion, or eval'ed JavaScript.
@ -207,8 +220,7 @@
* but the old <form> tag itself stays intact. * but the old <form> tag itself stays intact.
*/ */
_loadResponse: function(response) { _loadResponse: function(response) {
// TinyMCE coupling this.cleanup();
if(typeof tinymce_removeAll != 'undefined') tinymce_removeAll();
var html = response; var html = response;

View File

@ -38,7 +38,7 @@ CMSForm.prototype = {
closeIfSetTo: function(id) { closeIfSetTo: function(id) {
if(this.elements.ID && this.elements.ID.value == id) { if(this.elements.ID && this.elements.ID.value == id) {
// Note: TinyMCE coupling // Note: TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
this.innerHTML = "<p>" + ss.i18n._t('LeftAndMain.PAGEWASDELETED') + "</p>"; this.innerHTML = "<p>" + ss.i18n._t('LeftAndMain.PAGEWASDELETED') + "</p>";
} }
}, },
@ -84,7 +84,7 @@ CMSForm.prototype = {
rightHTML = rightHTML.replace(/(<iframe[^>]*src=")([^"]+)("[^>]*>)/g, '$1' + jQuery('base').attr('href') + '$2$3'); rightHTML = rightHTML.replace(/(<iframe[^>]*src=")([^"]+)("[^>]*>)/g, '$1' + jQuery('base').attr('href') + '$2$3');
// Note: TinyMCE coupling // Note: TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
// Prepare iframes for removal, otherwise we get loading bugs // Prepare iframes for removal, otherwise we get loading bugs
var i, allIframes = this.getElementsByTagName('iframe'); var i, allIframes = this.getElementsByTagName('iframe');
@ -421,20 +421,3 @@ StageLink.prototype = {
StageLink.applyTo('#viewStageSite', '?stage=Stage', 'StageURLSegment'); StageLink.applyTo('#viewStageSite', '?stage=Stage', 'StageURLSegment');
StageLink.applyTo('#viewLiveSite', '?stage=Live', 'LiveURLSegment'); StageLink.applyTo('#viewLiveSite', '?stage=Live', 'LiveURLSegment');
StageLink.applyTo('#viewArchivedSite', '', 'URLSegment'); StageLink.applyTo('#viewArchivedSite', '', 'URLSegment');
/**
* Remove all the currently active TinyMCE editors.
* Note: everything that calls this has an inappropriate coupling to TinyMCE.
* Perhaps an observer pattern could be used, where TinyMCE listens to a onBeforeCMSPageLoad
* event?
*/
function tinymce_removeAll() {
if((typeof tinymce != 'undefined') && tinymce.EditorManager) {
var id;
for(id in tinymce.EditorManager.editors) {
tinymce.EditorManager.editors[id].remove();
}
tinymce.EditorManager.editors = {};
}
}

View File

@ -90,7 +90,7 @@ $(document).ready(function() {
var $form = $(this); var $form = $(this);
// @todo TinyMCE coupling // @todo TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
$('#ModelAdminPanel').fn('startHistory', $(this).attr('action'), $(this).formToArray()); $('#ModelAdminPanel').fn('startHistory', $(this).attr('action'), $(this).formToArray());
$('#ModelAdminPanel').load($(this).attr('action'), $(this).formToArray(), standardStatusHandler(function(result) { $('#ModelAdminPanel').load($(this).attr('action'), $(this).formToArray(), standardStatusHandler(function(result) {
@ -204,7 +204,7 @@ $(document).ready(function() {
// Post the data to save // Post the data to save
$.post(formAction, form.formToArray(), function(result){ $.post(formAction, form.formToArray(), function(result){
// @todo TinyMCE coupling // @todo TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
$('#right #ModelAdminPanel').html(result); $('#right #ModelAdminPanel').html(result);
@ -295,7 +295,7 @@ $(document).ready(function() {
*/ */
loadForm: function(url, successCallback) { loadForm: function(url, successCallback) {
// @todo TinyMCE coupling // @todo TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
$('#right #ModelAdminPanel').load(url, standardStatusHandler(function(result) { $('#right #ModelAdminPanel').load(url, standardStatusHandler(function(result) {
if(typeof(successCallback) == 'function') successCallback.apply(); if(typeof(successCallback) == 'function') successCallback.apply();

View File

@ -71,7 +71,7 @@ Behaviour.register({
rightHTML = rightHTML.replace(/href *= *"#/g, 'href="' + window.location.href.replace(/#.*$/,'') + '#'); rightHTML = rightHTML.replace(/href *= *"#/g, 'href="' + window.location.href.replace(/#.*$/,'') + '#');
// Note: TinyMCE coupling // Note: TinyMCE coupling
tinymce_removeAll(); jQuery('#Form_EditForm').concrete('ss').cleanup();
// Prepare iframes for removal, otherwise we get loading bugs // Prepare iframes for removal, otherwise we get loading bugs
var i, allIframes = this.getElementsByTagName('iframe'); var i, allIframes = this.getElementsByTagName('iframe');