From 215a29c0ac8a5f32afd4fc47547cdae195236773 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sat, 6 Jun 2015 21:39:18 +0200 Subject: [PATCH] [ticket/578] Correctly assign classes upon moving modules up/down B3P-578 --- adm/style/portal/ajax.js | 80 +++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/adm/style/portal/ajax.js b/adm/style/portal/ajax.js index 29f0ad4d..eb85ac05 100644 --- a/adm/style/portal/ajax.js +++ b/adm/style/portal/ajax.js @@ -13,33 +13,39 @@ phpbb.addAjaxCallback('b3p_move_module_up', function(res) { return; } - var el = $(this).parents('tr:first'), - trSwap = el.prev(), - elClass = trSwap.attr('class'), - trSwapClass = el.attr('class'); + var $bottomRow = $(this).parents('tr:first'), + $topRow = $bottomRow.prev(), + topRowClass = $topRow.attr('class'), + bottomRowClass = $bottomRow.attr('class'); - el.insertBefore(trSwap); - el.attr('class', elClass); - trSwap.attr('class', trSwapClass); + $bottomRow.insertBefore($topRow); + if (bottomRowClass !== 'row3' && topRowClass !== 'row3') { + $bottomRow.attr('class', topRowClass); + $topRow.attr('class', bottomRowClass); + } else if (bottomRowClass === 'row3') { + $topRow.attr('class', (topRowClass === 'row1') ? 'row2' : 'row1'); + } else if (topRowClass === 'row3') { + $bottomRow.attr('class', (bottomRowClass === 'row1') ? 'row2' : 'row1'); + } // Swap images if swap element is first row - var swapIsFirstRow = trSwap.find('img[src*="icon_up_disabled"]').parents('span:first').is(':visible'); + var swapIsFirstRow = $topRow.find('img[src*="icon_up_disabled"]').parents('span:first').is(':visible'); if (swapIsFirstRow) { - trSwap.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); - trSwap.find('img[src*="icon_up."]').parents('span:first').toggle(); - el.find('img[src*="icon_up."]').parents('span:first').toggle(); - el.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_up."]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_up."]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); } // Swap images if move element is last row - var elIsLastRow = el.find('img[src*="icon_down_disabled"]').parents('span:first').is(':visible'); + var elIsLastRow = $bottomRow.find('img[src*="icon_down_disabled"]').parents('span:first').is(':visible'); if (elIsLastRow) { - trSwap.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); - trSwap.find('img[src*="icon_down."]').parents('span:first').toggle(); - el.find('img[src*="icon_down."]').parents('span:first').toggle(); - el.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_down."]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_down."]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); } }); @@ -48,33 +54,39 @@ phpbb.addAjaxCallback('b3p_move_module_down', function(res) { return; } - var el = $(this).parents('tr:first'), - trSwap = el.next(), - elClass = trSwap.attr('class'), - trSwapClass = el.attr('class'); + var $topRow = $(this).parents('tr:first'), + $bottomRow = $topRow.next(), + bottomRowClass = $bottomRow.attr('class'), + topRowClass = $topRow.attr('class'); - el.insertAfter(trSwap); - el.attr('class', elClass); - trSwap.attr('class', trSwapClass); + $topRow.insertAfter($bottomRow); + if (bottomRowClass !== 'row3' && topRowClass !== 'row3') { + $bottomRow.attr('class', topRowClass); + $topRow.attr('class', bottomRowClass); + } else if (bottomRowClass === 'row3') { + $topRow.attr('class', (topRowClass === 'row1') ? 'row2' : 'row1'); + } else if (topRowClass === 'row3') { + $bottomRow.attr('class', (bottomRowClass === 'row1') ? 'row2' : 'row1'); + } // Swap images if swap element is last row - var swapIsLastRow = trSwap.find('img[src*="icon_down_disabled"]').parents('span:first').is(':visible'); + var swapIsLastRow = $bottomRow.find('img[src*="icon_down_disabled"]').parents('span:first').is(':visible'); if (swapIsLastRow) { - trSwap.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); - trSwap.find('img[src*="icon_down."]').parents('span:first').toggle(); - el.find('img[src*="icon_down."]').parents('span:first').toggle(); - el.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_down."]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_down."]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_down_disabled"]').parents('span:first').toggle(); } // Swap images if move element is first row - var elIsFirstRow = el.find('img[src*="icon_up_disabled"]').parents('span:first').is(':visible'); + var elIsFirstRow = $topRow.find('img[src*="icon_up_disabled"]').parents('span:first').is(':visible'); if (elIsFirstRow) { - trSwap.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); - trSwap.find('img[src*="icon_up."]').parents('span:first').toggle(); - el.find('img[src*="icon_up."]').parents('span:first').toggle(); - el.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); + $bottomRow.find('img[src*="icon_up."]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_up."]').parents('span:first').toggle(); + $topRow.find('img[src*="icon_up_disabled"]').parents('span:first').toggle(); } });