mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
884795b6e8
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@64812 467b73ca-7a2a-4603-9d3b-597d59a354a9
118 lines
3.2 KiB
JavaScript
Executable File
118 lines
3.2 KiB
JavaScript
Executable File
|
|
Behaviour.register({
|
|
'#Form_EditForm' : {
|
|
initialise : function() {
|
|
this.openTab = null;
|
|
this.prepareForm();
|
|
},
|
|
|
|
/**
|
|
* Processing called whenever a page is loaded in the right - including the initial one
|
|
*/
|
|
prepareForm : function() {
|
|
ajaxActionsAtTop('Form_EditForm', 'form_actions', 'right');
|
|
},
|
|
|
|
/**
|
|
* Request a page from the server via Ajax
|
|
*/
|
|
getPageFromServer : function(id) {
|
|
if(id) {
|
|
this.receivingID = id;
|
|
|
|
// Treenode might not exist if that part of the tree is closed
|
|
var treeNode = $('sitetree').getTreeNodeByIdx(id);
|
|
|
|
if(treeNode) treeNode.addNodeClass('loading');
|
|
|
|
statusMessage("loading...");
|
|
|
|
var requestURL = 'admin/reports/show/' + id;
|
|
new Ajax.Request(requestURL, {
|
|
asynchronous : true,
|
|
method : 'post',
|
|
postBody : 'ajax=1',
|
|
onSuccess : this.successfullyReceivedPage.bind(this),
|
|
onFailure : function(response) {
|
|
errorMessage('error loading page',response);
|
|
}
|
|
});
|
|
} else {
|
|
throw("getPageFromServer: Bad page ID: " + id);
|
|
}
|
|
},
|
|
|
|
successfullyReceivedPage : function(response) {
|
|
this.loadNewPage(response.responseText);
|
|
|
|
// Treenode might not exist if that part of the tree is closed
|
|
var treeNode = $('sitetree').getTreeNodeByIdx(this.receivingID);
|
|
if(treeNode) {
|
|
$('sitetree').changeCurrentTo(treeNode);
|
|
treeNode.removeNodeClass('loading');
|
|
}
|
|
statusMessage('');
|
|
|
|
onload_init_tabstrip();
|
|
|
|
if( this.openTab ) {
|
|
openTab( this.openTab );
|
|
this.openTab = null;
|
|
}
|
|
},
|
|
|
|
didntReceivePage : function(response) {
|
|
errorMessage('error loading page', response);
|
|
$('sitetree').getTreeNodeByIdx(this.elements.ID.value).removeNodeClass('loading');
|
|
},
|
|
|
|
/**
|
|
* Load a new page into the right-hand form
|
|
*/
|
|
loadNewPage : function(formContent) {
|
|
rightHTML = formContent;
|
|
rightHTML = rightHTML.replace(/href *= *"#/g, 'href="' + window.location.href.replace(/#.*$/,'') + '#');
|
|
|
|
// Prepare iframes for removal, otherwise we get loading bugs
|
|
var i, allIframes = this.getElementsByTagName('iframe');
|
|
if(allIframes) for(i=0;i<allIframes.length;i++) {
|
|
allIframes[i].contentWindow.location.href = 'about:blank';
|
|
allIframes[i].parentNode.removeChild(allIframes[i]);
|
|
}
|
|
|
|
this.innerHTML = rightHTML;
|
|
|
|
allIframes = this.getElementsByTagName('iframe');
|
|
if(allIframes) for(i=0;i<allIframes.length;i++) {
|
|
try {
|
|
allIframes[i].contentWindow.location.href = allIframes[i].src;
|
|
} catch(er) {alert(er.message);}
|
|
}
|
|
|
|
_TAB_DIVS_ON_PAGE = [];
|
|
|
|
try {
|
|
var tabs = document.getElementsBySelector('#Form_EditForm ul.tabstrip');
|
|
} catch(er) {/* alert('a: '+ er.message + '\n' + er.line);*/ }
|
|
try {
|
|
for(var i=0;i<tabs.length;i++) if(tabs[i].tagName) initTabstrip(tabs[i]);
|
|
} catch(er) { /*alert('b: '+ er.message + '\n' + er.line); */}
|
|
|
|
// Note: TinyMCE coupling
|
|
if((typeof tinymce != 'undefined') && tinymce.EditorManager) {
|
|
tinymce.EditorManager.editors = {};
|
|
}
|
|
|
|
// if(this.prepareForm) this.prepareForm();
|
|
Behaviour.apply($('Form_EditForm'));
|
|
if(this.prepareForm)
|
|
this.prepareForm();
|
|
|
|
this.resetElements();
|
|
|
|
window.ontabschanged();
|
|
|
|
}
|
|
}
|
|
});
|