summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2014-11-18 21:44:45 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2014-11-18 21:44:45 +0000
commit8b6939e2f40f391df59a2a67475909fcd2828d04 (patch)
tree47ee1214637881986446d8bc1deda8376ad6d1d8
parent08bae5928a901ce68a4effe5ff140563798334d2 (diff)
downloadredmine-8b6939e2f40f391df59a2a67475909fcd2828d04.tar.gz
redmine-8b6939e2f40f391df59a2a67475909fcd2828d04.zip
Rewritten select_list_move.js functions with JQuery.
git-svn-id: http://svn.redmine.org/redmine/trunk@13615 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--public/javascripts/select_list_move.js98
1 files changed, 10 insertions, 88 deletions
diff --git a/public/javascripts/select_list_move.js b/public/javascripts/select_list_move.js
index a5687981f..d542ac624 100644
--- a/public/javascripts/select_list_move.js
+++ b/public/javascripts/select_list_move.js
@@ -1,105 +1,27 @@
-var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5);
-
-function addOption(theSel, theText, theValue) {
- var newOpt = new Option(theText, theValue);
- var selLength = theSel.length;
- theSel.options[selLength] = newOpt;
-}
-
-function swapOptions(theSel, index1, index2) {
- var text, value, selected;
- text = theSel.options[index1].text;
- value = theSel.options[index1].value;
- selected = theSel.options[index1].selected;
- theSel.options[index1].text = theSel.options[index2].text;
- theSel.options[index1].value = theSel.options[index2].value;
- theSel.options[index1].selected = theSel.options[index2].selected;
- theSel.options[index2].text = text;
- theSel.options[index2].value = value;
- theSel.options[index2].selected = selected;
-}
-
-function deleteOption(theSel, theIndex) {
- var selLength = theSel.length;
- if (selLength > 0) {
- theSel.options[theIndex] = null;
- }
-}
-
function moveOptions(theSelFrom, theSelTo) {
- var selLength = theSelFrom.length;
- var selectedText = new Array();
- var selectedValues = new Array();
- var selectedCount = 0;
- var i;
- for (i = selLength - 1; i >= 0; i--) {
- if (theSelFrom.options[i].selected) {
- selectedText[selectedCount] = theSelFrom.options[i].text;
- selectedValues[selectedCount] = theSelFrom.options[i].value;
- deleteOption(theSelFrom, i);
- selectedCount++;
- }
- }
- for (i = selectedCount - 1; i >= 0; i--) {
- addOption(theSelTo, selectedText[i], selectedValues[i]);
- }
- if (NS4) history.go(0);
+ $(theSelFrom).find('option:selected').detach().prop("selected", false).appendTo($(theSelTo));
}
function moveOptionUp(theSel) {
- var indexTop = 0;
- for(var s=0; s<theSel.length; s++) {
- if (theSel.options[s].selected) {
- if (s > indexTop) {
- swapOptions(theSel, s-1, s);
- }
- indexTop++;
- }
- }
+ $(theSel).find('option:selected').each(function(){
+ $(this).prev(':not(:selected)').detach().insertAfter($(this));
+ });
}
function moveOptionTop(theSel) {
- var indexTop = 0;
- for(var s=0; s<theSel.length; s++) {
- if (theSel.options[s].selected) {
- if (s > indexTop) {
- for (var i=s; i>indexTop; i--) {
- swapOptions(theSel, i-1, i);
- }
- }
- indexTop++;
- }
- }
+ $(theSel).find('option:selected').detach().prependTo($(theSel));
}
function moveOptionDown(theSel) {
- var indexBottom = theSel.length - 1;
- for(var s=indexBottom; s>=0; s--) {
- if (theSel.options[s].selected) {
- if (s < indexBottom) {
- swapOptions(theSel, s+1, s);
- }
- indexBottom--;
- }
- }
+ $($(theSel).find('option:selected').get().reverse()).each(function(){
+ $(this).next(':not(:selected)').detach().insertBefore($(this));
+ });
}
function moveOptionBottom(theSel) {
- var indexBottom = theSel.length - 1;
- for(var s=indexBottom; s>=0; s--) {
- if (theSel.options[s].selected) {
- if (s < indexBottom) {
- for (i=s; i<indexBottom; i++) {
- swapOptions(theSel, i+1, i);
- }
- }
- indexBottom--;
- }
- }
+ $(theSel).find('option:selected').detach().appendTo($(theSel));
}
-// OK
function selectAllOptions(id) {
- var select = $('#'+id);
- select.children('option').attr('selected', true);
+ $('#'+id).find('option').prop('selected', true);
}