mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-09-03 08:17:39 +02:00
The main benefit of this is so that authors who make use of .editorconfig don't end up with whitespace changes in their PRs. Spaces vs. tabs has been left alone, although that could do with a tidy-up in SS4 after the switch to PSR-1/2. The command used was this: for match in '*.ss' '*.css' '*.scss' '*.html' '*.yml' '*.php' '*.js' '*.csv' '*.inc' '*.php5'; do find . -path ./thirdparty -prune -o -type f -name "$match" -exec sed -i '' 's/[[:space:]]\+$//' {} \+ find . -path ./thirdparty -prune -o -type f -name "$match" | xargs perl -pi -e 's/ +$//' done
127 lines
3.4 KiB
JavaScript
127 lines
3.4 KiB
JavaScript
/**
|
|
* File: AssetAdmin.js
|
|
*/
|
|
|
|
(function($) {
|
|
$.entwine('ss', function($){
|
|
/**
|
|
* Delete selected folders through "batch actions" tab.
|
|
*/
|
|
/* assets don't currently have batch actions; disabling for now
|
|
$(document).ready(function() {
|
|
$('#Form_BatchActionsForm').entwine('.ss.tree').register(
|
|
// TODO Hardcoding of base URL
|
|
'admin/assets/batchactions/delete',
|
|
function(ids) {
|
|
var confirmed = confirm(
|
|
ss.i18n.sprintf(
|
|
ss.i18n._t('AssetAdmin.BATCHACTIONSDELETECONFIRM'),
|
|
ids.length
|
|
)
|
|
);
|
|
return (confirmed) ? ids : false;
|
|
}
|
|
);
|
|
});
|
|
*/
|
|
|
|
/**
|
|
* Load folder detail view via controller methods
|
|
* rather than built-in GridField view (which is only geared towards showing files).
|
|
*/
|
|
$('.AssetAdmin.cms-edit-form .ss-gridfield-item').entwine({
|
|
onclick: function(e) {
|
|
// Let actions do their own thing
|
|
if($(e.target).closest('.action').length) {
|
|
this._super(e);
|
|
return;
|
|
}
|
|
|
|
var grid = this.closest('.ss-gridfield');
|
|
if(this.data('class') == 'Folder') {
|
|
var url = grid.data('urlFolderTemplate').replace('%s', this.data('id'));
|
|
$('.cms-container').loadPanel(url);
|
|
return false;
|
|
}
|
|
|
|
this._super(e);
|
|
}
|
|
});
|
|
|
|
$('.AssetAdmin.cms-edit-form .ss-gridfield .col-buttons .action.gridfield-button-delete, .AssetAdmin.cms-edit-form .Actions button.action.action-delete').entwine({
|
|
onclick: function(e) {
|
|
var msg;
|
|
if(this.closest('.ss-gridfield-item').data('class') == 'Folder') {
|
|
msg = ss.i18n._t('AssetAdmin.ConfirmDelete');
|
|
} else {
|
|
msg = ss.i18n._t('TABLEFIELD.DELETECONFIRMMESSAGE');
|
|
}
|
|
if(!confirm(msg)) return false;
|
|
|
|
this.getGridField().reload({data: [{name: this.attr('name'), value: this.val()}]});
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$('.AssetAdmin.cms-edit-form :submit[name=action_delete]').entwine({
|
|
onclick: function(e) {
|
|
if(!confirm(ss.i18n._t('AssetAdmin.ConfirmDelete'))) return false;
|
|
else this._super(e);
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Prompt for a new foldername, rather than using dedicated form.
|
|
* Better usability, but less flexibility in terms of inputs and validation.
|
|
* Mainly necessary because AssetAdmin->AddForm() returns don't play nicely
|
|
* with the nested AssetAdmin->EditForm() DOM structures.
|
|
*/
|
|
$('.AssetAdmin .cms-add-folder-link').entwine({
|
|
onclick: function(e) {
|
|
var name = prompt(ss.i18n._t('Folder.Name'));
|
|
if(!name) return false;
|
|
|
|
this.closest('.cms-container').loadPanel(this.data('url') + '&Name=' + name);
|
|
return false;
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Class: #Form_SyncForm
|
|
*/
|
|
$('#Form_SyncForm').entwine({
|
|
|
|
/**
|
|
* Function: onsubmit
|
|
*
|
|
* Parameters:
|
|
* (Event) e
|
|
*/
|
|
onsubmit: function(e) {
|
|
var button = jQuery(this).find(':submit:first');
|
|
button.addClass('loading');
|
|
$.ajax({
|
|
url: jQuery(this).attr('action'),
|
|
data: this.serializeArray(),
|
|
success: function() {
|
|
button.removeClass('loading');
|
|
// reload current form and tree
|
|
var currNode = $('.cms-tree')[0].firstSelected();
|
|
if(currNode) {
|
|
var url = $(currNode).find('a').attr('href');
|
|
$('.cms-content').loadPanel(url);
|
|
}
|
|
$('.cms-tree')[0].setCustomURL('admin/assets/getsubtree');
|
|
$('.cms-tree')[0].reload({onSuccess: function() {
|
|
// TODO Reset current tree node
|
|
}});
|
|
}
|
|
});
|
|
|
|
return false;
|
|
}
|
|
});
|
|
});
|
|
}(jQuery));
|