JS formatting
This commit is contained in:
parent
c8b42e94df
commit
4d19ccb301
|
@ -1,202 +1,206 @@
|
|||
(function($) {
|
||||
$.entwine('ss', function($) {
|
||||
$('.ss-gridfield .gridfield-sortablerows input').entwine({
|
||||
PageSort: false,
|
||||
|
||||
onmatch: function() {
|
||||
var self=this;
|
||||
var refCheckbox=$(this);
|
||||
var gridField=this.getGridField();
|
||||
var form=gridField.closest('form');
|
||||
var pageArrows=gridField.find('.gridfield-sortablerows-movepage .sortablerows-psort-arrow');
|
||||
|
||||
if($(this).is(':checked')) {
|
||||
gridField.find('table').addClass('dragSorting');
|
||||
}else {
|
||||
gridField.find('table').removeClass('dragSorting');
|
||||
}
|
||||
|
||||
gridField.find('tbody').sortable({
|
||||
opacity: 0.6,
|
||||
disabled: ($(this).is(':checked')==false),
|
||||
start: function(event, ui) {
|
||||
pageArrows.show();
|
||||
pageArrows.redraw();
|
||||
pageArrows.startMoveTracking();
|
||||
},
|
||||
stop: function(event, ui) {
|
||||
pageArrows.stopMoveTracking();
|
||||
pageArrows.hide();
|
||||
},
|
||||
sort: function(event, ui) {
|
||||
pageArrows.moveTracking(event, ui);
|
||||
},
|
||||
update: function(event, ui) {
|
||||
if(self.getPageSort()) {
|
||||
self.setPageSort(false);
|
||||
return;
|
||||
}
|
||||
|
||||
var gridItems=gridField.getItems();
|
||||
|
||||
gridItems.removeClass('first last odd even');
|
||||
gridItems.first().addClass('first');
|
||||
gridItems.last().addClass('last');
|
||||
gridItems.filter(':even').addClass('odd');
|
||||
gridItems.filter(':odd').addClass('even');
|
||||
|
||||
var dataRows=[];
|
||||
var button=refCheckbox.parent().find('.sortablerows-savesort');
|
||||
|
||||
|
||||
for(var i=0;i<gridItems.length;i++) {
|
||||
dataRows[i]=$(gridItems[i]).data('id');
|
||||
}
|
||||
|
||||
|
||||
self._makeRequest({data: [
|
||||
{
|
||||
name: button.attr('name'),
|
||||
value: button.val()
|
||||
},
|
||||
{
|
||||
name: 'ItemIDs',
|
||||
value: dataRows
|
||||
}
|
||||
]},function() {
|
||||
form.removeClass('loading');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if(refCheckbox.hasClass('gridfield-sortablerows-noselection') || $(this).is(':checked')) {
|
||||
gridField.find('tbody').disableSelection();
|
||||
}
|
||||
},
|
||||
|
||||
onchange: function(e) {
|
||||
var gridField=this.getGridField();
|
||||
gridField.find('tbody').sortable('option', 'disabled', ($(this).is(':checked')==false));
|
||||
gridField.setState('GridFieldSortableRows', {sortableToggle: $(this).is(':checked')});
|
||||
|
||||
|
||||
var button=$(this).parent().find('.sortablerows-toggle');
|
||||
gridField.reload({data: [{name: button.attr('name'), value: button.val()}]});
|
||||
},
|
||||
|
||||
_makeRequest: function(ajaxOpts, callback) {
|
||||
var gridField=this.getGridField();
|
||||
var form = gridField.closest('form');
|
||||
|
||||
form.addClass('loading');
|
||||
|
||||
ajaxOpts.data = ajaxOpts.data.concat(form.find(':input').serializeArray());
|
||||
|
||||
// Include any GET parameters from the current URL, as the view state might depend on it.
|
||||
// For example, a list prefiltered through external search criteria might be passed to GridField.
|
||||
if(window.location.search) {
|
||||
ajaxOpts.data = window.location.search.replace(/^\?/, '') + '&' + $.param(ajaxOpts.data);
|
||||
}
|
||||
|
||||
$.ajax($.extend({}, {
|
||||
headers: {"X-Pjax" : 'CurrentField'},
|
||||
type: "POST",
|
||||
url: gridField.data('url'),
|
||||
dataType: 'html',
|
||||
success: callback,
|
||||
error: function(e) {
|
||||
alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION'));
|
||||
}
|
||||
}, ajaxOpts));
|
||||
}
|
||||
});
|
||||
|
||||
$('.ss-gridfield .gridfield-sortablerows-movepage .sortablerows-psort-arrow').entwine({
|
||||
ArrowIcon: null,
|
||||
|
||||
onmatch: function() {
|
||||
var gridField=this.getGridField();
|
||||
var sortableCheckbox=gridField.find('.gridfield-sortablerows input');
|
||||
var self=$(this);
|
||||
|
||||
if($(this).hasClass('sortablerows-prev-page') && (gridField.find('.ss-gridfield-previouspage').length==0 || gridField.find('.ss-gridfield-previouspage').is(':disabled'))) {
|
||||
$(this).remove();
|
||||
return;
|
||||
}else if($(this).hasClass('sortablerows-next-page') && (gridField.find('.ss-gridfield-nextpage').length==0 || gridField.find('.ss-gridfield-nextpage').is(':disabled'))) {
|
||||
$(this).remove();
|
||||
return;
|
||||
}
|
||||
|
||||
$(this).droppable({
|
||||
disabled: $(this).is(':disabled'),
|
||||
accept: 'tr.ss-gridfield-item',
|
||||
activeClass: 'sortablerows-droptarget',
|
||||
tolerance: 'pointer',
|
||||
drop: function(event, ui) {
|
||||
self.stopMoveTracking();
|
||||
|
||||
sortableCheckbox.setPageSort(true);
|
||||
|
||||
var button=gridField.find('.gridfield-sortablerows .sortablerows-sorttopage');
|
||||
var itemID=$(ui.draggable).data('id');
|
||||
var target='';
|
||||
|
||||
if($(this).hasClass('sortablerows-prev-page')) {
|
||||
target='previouspage';
|
||||
}else if($(this).hasClass('sortablerows-next-page')) {
|
||||
target='nextpage';
|
||||
}
|
||||
|
||||
|
||||
//Move and Reload the grid
|
||||
gridField.reload({data: [
|
||||
{
|
||||
name: button.attr('name'),
|
||||
value: button.val()
|
||||
},
|
||||
{
|
||||
name: 'ItemID',
|
||||
value: itemID
|
||||
},
|
||||
{
|
||||
name: 'Target',
|
||||
value: target
|
||||
}
|
||||
]});
|
||||
}
|
||||
});
|
||||
|
||||
this.redraw();
|
||||
},
|
||||
redraw: function() {
|
||||
var gridField=this.getGridField();
|
||||
var tbody=gridField.find('tbody');
|
||||
var tbodyPos=tbody.position();
|
||||
|
||||
$(this).css('top', tbodyPos.top+'px').height(tbody.height());
|
||||
},
|
||||
startMoveTracking: function() {
|
||||
var self=$(this);
|
||||
self.setArrowIcon(self.find('i'));
|
||||
},
|
||||
stopMoveTracking: function() {
|
||||
$(this).setArrowIcon(null);
|
||||
},
|
||||
moveTracking: function(e, ui) {
|
||||
var self=$(this);
|
||||
var arrowIcon=self.getArrowIcon();
|
||||
if(arrowIcon) {
|
||||
var selfOffset=self.offset().top;
|
||||
var arrowIconHeight=arrowIcon.width()+10;
|
||||
var railHeight=self.height()-arrowIconHeight;
|
||||
var helperPos=ui.helper.offset().top;
|
||||
|
||||
if(helperPos>selfOffset+10 && helperPos<selfOffset+railHeight) {
|
||||
arrowIcon.css('top', ((helperPos-selfOffset)+arrowIconHeight/2)+'px');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
(function ($) {
|
||||
$.entwine('ss', function ($) {
|
||||
$('.ss-gridfield .gridfield-sortablerows input').entwine({
|
||||
PageSort: false,
|
||||
|
||||
onmatch: function () {
|
||||
var self = this;
|
||||
var refCheckbox = $(this);
|
||||
var gridField = this.getGridField();
|
||||
var form = gridField.closest('form');
|
||||
var pageArrows = gridField.find('.gridfield-sortablerows-movepage .sortablerows-psort-arrow');
|
||||
|
||||
if ($(this).is(':checked')) {
|
||||
gridField.find('table').addClass('dragSorting');
|
||||
} else {
|
||||
gridField.find('table').removeClass('dragSorting');
|
||||
}
|
||||
|
||||
gridField.find('tbody').sortable({
|
||||
opacity: 0.6,
|
||||
disabled: ($(this).is(':checked') == false),
|
||||
start: function (event, ui) {
|
||||
pageArrows.show();
|
||||
pageArrows.redraw();
|
||||
pageArrows.startMoveTracking();
|
||||
},
|
||||
stop: function (event, ui) {
|
||||
pageArrows.stopMoveTracking();
|
||||
pageArrows.hide();
|
||||
},
|
||||
sort: function (event, ui) {
|
||||
pageArrows.moveTracking(event, ui);
|
||||
},
|
||||
update: function (event, ui) {
|
||||
if (self.getPageSort()) {
|
||||
self.setPageSort(false);
|
||||
return;
|
||||
}
|
||||
|
||||
var gridItems = gridField.getItems();
|
||||
|
||||
gridItems.removeClass('first last odd even');
|
||||
gridItems.first().addClass('first');
|
||||
gridItems.last().addClass('last');
|
||||
gridItems.filter(':even').addClass('odd');
|
||||
gridItems.filter(':odd').addClass('even');
|
||||
|
||||
var dataRows = [];
|
||||
var button = refCheckbox.parent().find('.sortablerows-savesort');
|
||||
|
||||
|
||||
for (var i = 0; i < gridItems.length; i++) {
|
||||
dataRows[i] = $(gridItems[i]).data('id');
|
||||
}
|
||||
|
||||
|
||||
self._makeRequest({
|
||||
data: [
|
||||
{
|
||||
name: button.attr('name'),
|
||||
value: button.val()
|
||||
},
|
||||
{
|
||||
name: 'ItemIDs',
|
||||
value: dataRows
|
||||
}
|
||||
]
|
||||
}, function () {
|
||||
form.removeClass('loading');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (refCheckbox.hasClass('gridfield-sortablerows-noselection') || $(this).is(':checked')) {
|
||||
gridField.find('tbody').disableSelection();
|
||||
}
|
||||
},
|
||||
|
||||
onchange: function (e) {
|
||||
var gridField = this.getGridField();
|
||||
gridField.find('tbody').sortable('option', 'disabled', ($(this).is(':checked') == false));
|
||||
gridField.setState('GridFieldSortableRows', {sortableToggle: $(this).is(':checked')});
|
||||
|
||||
|
||||
var button = $(this).parent().find('.sortablerows-toggle');
|
||||
gridField.reload({data: [{name: button.attr('name'), value: button.val()}]});
|
||||
},
|
||||
|
||||
_makeRequest: function (ajaxOpts, callback) {
|
||||
var gridField = this.getGridField();
|
||||
var form = gridField.closest('form');
|
||||
|
||||
form.addClass('loading');
|
||||
|
||||
ajaxOpts.data = ajaxOpts.data.concat(form.find(':input').serializeArray());
|
||||
|
||||
// Include any GET parameters from the current URL, as the view state might depend on it.
|
||||
// For example, a list prefiltered through external search criteria might be passed to GridField.
|
||||
if (window.location.search) {
|
||||
ajaxOpts.data = window.location.search.replace(/^\?/, '') + '&' + $.param(ajaxOpts.data);
|
||||
}
|
||||
|
||||
$.ajax($.extend({}, {
|
||||
headers: {"X-Pjax": 'CurrentField'},
|
||||
type: "POST",
|
||||
url: gridField.data('url'),
|
||||
dataType: 'html',
|
||||
success: callback,
|
||||
error: function (e) {
|
||||
alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION'));
|
||||
}
|
||||
}, ajaxOpts));
|
||||
}
|
||||
});
|
||||
|
||||
$('.ss-gridfield .gridfield-sortablerows-movepage .sortablerows-psort-arrow').entwine({
|
||||
ArrowIcon: null,
|
||||
|
||||
onmatch: function () {
|
||||
var gridField = this.getGridField();
|
||||
var sortableCheckbox = gridField.find('.gridfield-sortablerows input');
|
||||
var self = $(this);
|
||||
|
||||
if ($(this).hasClass('sortablerows-prev-page') && (gridField.find('.ss-gridfield-previouspage').length == 0 || gridField.find('.ss-gridfield-previouspage').is(':disabled'))) {
|
||||
$(this).remove();
|
||||
return;
|
||||
} else if ($(this).hasClass('sortablerows-next-page') && (gridField.find('.ss-gridfield-nextpage').length == 0 || gridField.find('.ss-gridfield-nextpage').is(':disabled'))) {
|
||||
$(this).remove();
|
||||
return;
|
||||
}
|
||||
|
||||
$(this).droppable({
|
||||
disabled: $(this).is(':disabled'),
|
||||
accept: 'tr.ss-gridfield-item',
|
||||
activeClass: 'sortablerows-droptarget',
|
||||
tolerance: 'pointer',
|
||||
drop: function (event, ui) {
|
||||
self.stopMoveTracking();
|
||||
|
||||
sortableCheckbox.setPageSort(true);
|
||||
|
||||
var button = gridField.find('.gridfield-sortablerows .sortablerows-sorttopage');
|
||||
var itemID = $(ui.draggable).data('id');
|
||||
var target = '';
|
||||
|
||||
if ($(this).hasClass('sortablerows-prev-page')) {
|
||||
target = 'previouspage';
|
||||
} else if ($(this).hasClass('sortablerows-next-page')) {
|
||||
target = 'nextpage';
|
||||
}
|
||||
|
||||
|
||||
//Move and Reload the grid
|
||||
gridField.reload({
|
||||
data: [
|
||||
{
|
||||
name: button.attr('name'),
|
||||
value: button.val()
|
||||
},
|
||||
{
|
||||
name: 'ItemID',
|
||||
value: itemID
|
||||
},
|
||||
{
|
||||
name: 'Target',
|
||||
value: target
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.redraw();
|
||||
},
|
||||
redraw: function () {
|
||||
var gridField = this.getGridField();
|
||||
var tbody = gridField.find('tbody');
|
||||
var tbodyPos = tbody.position();
|
||||
|
||||
$(this).css('top', tbodyPos.top + 'px').height(tbody.height());
|
||||
},
|
||||
startMoveTracking: function () {
|
||||
var self = $(this);
|
||||
self.setArrowIcon(self.find('i'));
|
||||
},
|
||||
stopMoveTracking: function () {
|
||||
$(this).setArrowIcon(null);
|
||||
},
|
||||
moveTracking: function (e, ui) {
|
||||
var self = $(this);
|
||||
var arrowIcon = self.getArrowIcon();
|
||||
if (arrowIcon) {
|
||||
var selfOffset = self.offset().top;
|
||||
var arrowIconHeight = arrowIcon.width() + 10;
|
||||
var railHeight = self.height() - arrowIconHeight;
|
||||
var helperPos = ui.helper.offset().top;
|
||||
|
||||
if (helperPos > selfOffset + 10 && helperPos < selfOffset + railHeight) {
|
||||
arrowIcon.css('top', ((helperPos - selfOffset) + arrowIconHeight / 2) + 'px');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
|
|
Loading…
Reference in New Issue