mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-02 22:28:38 +02:00
f4e2dcb61a
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@92807 467b73ca-7a2a-4603-9d3b-597d59a354a9
188 lines
4.4 KiB
JavaScript
Executable File
188 lines
4.4 KiB
JavaScript
Executable File
/**
|
|
* Configuration for the left hand tree
|
|
*/
|
|
if(typeof SiteTreeHandlers == 'undefined') SiteTreeHandlers = {};
|
|
SiteTreeHandlers.parentChanged_url = 'admin/assets/ajaxupdateparent';
|
|
SiteTreeHandlers.orderChanged_url = 'admin/assets/ajaxupdatesort';
|
|
SiteTreeHandlers.loadPage_url = 'admin/assets/getitem';
|
|
SiteTreeHandlers.loadTree_url = 'admin/assets/getsubtree';
|
|
SiteTreeHandlers.showRecord_url = 'admin/assets/show/';
|
|
SiteTreeHandlers.controller_url = 'admin/assets';
|
|
|
|
var _HANDLER_FORMS = {
|
|
addpage : 'Form_AddForm',
|
|
deletepage : 'Form_DeleteItemsForm',
|
|
sortitems : 'sortitems_options'
|
|
};
|
|
|
|
(function($) {
|
|
$('.AssetAdmin').concrete('ss', function($) {
|
|
return {
|
|
onmatch: function() {
|
|
|
|
this._super();
|
|
}
|
|
};
|
|
});
|
|
|
|
/**
|
|
* Delete selected folders through "batch actions" tab.
|
|
*/
|
|
$('#Form_BatchActionsForm').concrete('ss').register(
|
|
'admin/assets/batchactions/delete',
|
|
function(ids) {
|
|
var confirmed = confirm(
|
|
ss.i18n.sprintf(
|
|
ss.i18n._t(
|
|
'AssetAdmin.BATCHACTIONSDELETECONFIRM',
|
|
"Do you really want to delete %d folders?"
|
|
),
|
|
ids.length
|
|
)
|
|
);
|
|
return (confirmed) ? ids : false;
|
|
}
|
|
);
|
|
|
|
/**
|
|
* @class Simple form with a page type dropdown
|
|
* which creates a new page through #Form_EditForm and adds a new tree node.
|
|
* @name ss.Form_AddForm
|
|
* @requires ss.i18n
|
|
* @requires ss.Form_EditForm
|
|
*/
|
|
$('#Form_AddForm').concrete(function($) {
|
|
return/** @lends ss.Form_AddForm */{
|
|
/**
|
|
* @type DOMElement
|
|
*/
|
|
Tree: null,
|
|
|
|
/**
|
|
* @type Array Internal counter to create unique page identifiers prior to ajax saving
|
|
*/
|
|
_NewPages: [],
|
|
|
|
onmatch: function() {
|
|
var self = this;
|
|
|
|
this.bind('submit', function(e) {
|
|
return self._submit(e);
|
|
});
|
|
|
|
Observable.applyTo(this[0]);
|
|
|
|
var tree = jQuery('#sitetree')[0];
|
|
this.setTree(tree);
|
|
},
|
|
|
|
_submit: function(e) {
|
|
var newPages = this._NewPages();
|
|
var tree = this.Tree();
|
|
var parentID = (tree.firstSelected()) ? tree.getIdxOf(tree.firstSelected()) : 0;
|
|
|
|
// TODO: Remove 'new-' code http://open.silverstripe.com/ticket/875
|
|
if(parentID && parentID.substr(0,3) == 'new') {
|
|
alert(ss.i18n._t('CMSMAIN.WARNINGSAVEPAGESBEFOREADDING'));
|
|
}
|
|
|
|
if(tree.firstSelected() && jQuery(tree.firstSelected()).hasClass("nochildren")) {
|
|
alert(ss.i18n._t('CMSMAIN.CANTADDCHILDREN') );
|
|
}
|
|
|
|
// Optionally initalize the new pages tracker
|
|
if(!newPages[parentID] ) newPages[parentID] = 1;
|
|
|
|
// default to first button
|
|
var button = jQuery(this).find(':submit:first');
|
|
button.addClass('loading');
|
|
|
|
// collect data and submit the form
|
|
var data = jQuery(this).serializeArray();
|
|
data.push({name:'Suffix',value:newPages[parentID]++});
|
|
data.push({name:button.attr('name'),value:button.val()});
|
|
jQuery('#Form_EditForm').concrete('ss').loadForm(
|
|
jQuery(this).attr('action'),
|
|
function() {
|
|
button.removeClass('loading');
|
|
},
|
|
{type: 'POST', data: data}
|
|
);
|
|
|
|
this.set_NewPages(newPages);
|
|
|
|
return false;
|
|
}
|
|
};
|
|
});
|
|
|
|
$('#Form_SyncForm').concrete('ss', function($) {
|
|
return {
|
|
onmatch: function() {
|
|
this.bind('submit', this._onsubmit);
|
|
this._super();
|
|
},
|
|
_onsubmit: function(e) {
|
|
var button = jQuery(this).find(':submit:first');
|
|
button.addClass('loading');
|
|
$.get(
|
|
jQuery(this).attr('action'),
|
|
function() {
|
|
button.removeClass('loading');
|
|
}
|
|
);
|
|
|
|
return false;
|
|
}
|
|
};
|
|
});
|
|
}(jQuery));
|
|
|
|
|
|
Behaviour.register({
|
|
'#Form_EditForm_Files': {
|
|
removeFile : function(fileID) {
|
|
var record;
|
|
if(record = $('record-' + fileID)) {
|
|
record.parentNode.removeChild(record);
|
|
}
|
|
}
|
|
},
|
|
|
|
'#Form_EditForm_Files a.deletelink' : {
|
|
onclick : function(event) {
|
|
// Send request
|
|
new Ajax.Request(this.href + (this.href.indexOf("?") == -1 ? "?" : "&") + "ajax=1", {
|
|
method : 'get',
|
|
onSuccess : Ajax.Evaluator,
|
|
onFailure : function(response) {errorMessage('Server Error', response);}
|
|
});
|
|
Event.stop(event);
|
|
return false;
|
|
}
|
|
},
|
|
|
|
|
|
'#Form_EditForm' : {
|
|
changeDetection_fieldsToIgnore : {
|
|
'Files[]' : true
|
|
}
|
|
}
|
|
});
|
|
|
|
/**
|
|
* We don't want hitting the enter key in the name field
|
|
* to submit the form.
|
|
*/
|
|
Behaviour.register({
|
|
'#Form_EditForm_Name' : {
|
|
onkeypress : function(event) {
|
|
event = (event) ? event : window.event;
|
|
var kc = event.keyCode ? event.keyCode : event.charCode;
|
|
if(kc == 13) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
});
|