summaryrefslogtreecommitdiff
path: root/modules/shortcut
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-01-11 23:19:09 -0500
committerwebchick <webchick@24967.no-reply.drupal.org>2012-01-11 23:19:09 -0500
commit84844cf37d999d59b0262c0573b89fbe4c9e7486 (patch)
treee668056c36deaefa9531bcfe7e11acef3fb1a77e /modules/shortcut
parentb9fb497483b375aaa2dca080754eb108cf4c1077 (diff)
downloadbrdo-84844cf37d999d59b0262c0573b89fbe4c9e7486.tar.gz
brdo-84844cf37d999d59b0262c0573b89fbe4c9e7486.tar.bz2
Issue #1344752 by pflame, aspilicious, JacobSingh: Fixed Drag and Drop of shortcuts between Enable and Disable Does not respect the Shortcuts Limit.
Diffstat (limited to 'modules/shortcut')
-rw-r--r--modules/shortcut/shortcut.admin.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/modules/shortcut/shortcut.admin.js b/modules/shortcut/shortcut.admin.js
index 5e71e6fb6..9a730fa67 100644
--- a/modules/shortcut/shortcut.admin.js
+++ b/modules/shortcut/shortcut.admin.js
@@ -42,6 +42,15 @@ Drupal.behaviors.shortcutDrag = {
if (total == -1) {
var disabled = $(table).find('tr.shortcut-status-disabled');
disabled.after(disabled.prevAll().filter(':not(.shortcut-slot-empty)').get(0));
+ if ($(swappedRow).hasClass('draggable')) {
+ // The dropped element will automatically be marked as changed by
+ // the tableDrag system. However, the row that swapped with it
+ // has moved to the "disabled" section, so we need to force its
+ // status to be disabled and mark it also as changed.
+ swappedRowObject = new tableDrag.row(swappedRow, 'mouse', self.indentEnabled, self.maxDepth, true);
+ swappedRowObject.markChanged();
+ rowStatusChange(swappedRowObject);
+ }
}
else if (total != visibleLength) {
if (total > visibleLength) {
@@ -59,13 +68,17 @@ Drupal.behaviors.shortcutDrag = {
// Add a handler so when a row is dropped, update fields dropped into new regions.
tableDrag.onDrop = function () {
+ rowStatusChange(this.rowObject);
+ return true;
+ };
+
+ function rowStatusChange(rowObject) {
// Use "status-message" row instead of "status" row because
// "status-{status_name}-message" is less prone to regexp match errors.
- var statusRow = $(this.rowObject.element).prevAll('tr.shortcut-status').get(0);
+ var statusRow = $(rowObject.element).prevAll('tr.shortcut-status').get(0);
var statusName = statusRow.className.replace(/([^ ]+[ ]+)*shortcut-status-([^ ]+)([ ]+[^ ]+)*/, '$2');
- var statusField = $('select.shortcut-status-select', this.rowObject.element);
+ var statusField = $('select.shortcut-status-select', rowObject.element);
statusField.val(statusName);
- return true;
};
tableDrag.restripeTable = function () {