diff --git a/app/views/queries/_columns.rhtml b/app/views/queries/_columns.rhtml
index e11b286b..91ee627b 100644
--- a/app/views/queries/_columns.rhtml
+++ b/app/views/queries/_columns.rhtml
@@ -5,15 +5,19 @@
:multiple => true, :size => 10, :style => "width:150px" %>
-
-
|
<%= select_tag 'query[column_names][]',
options_for_select(query.columns.collect {|column| [column.caption, column.name]}),
:id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px" %>
|
+
+
+
+ |
diff --git a/public/javascripts/select_list_move.js b/public/javascripts/select_list_move.js
index 1ced8823..a9c5bfd3 100644
--- a/public/javascripts/select_list_move.js
+++ b/public/javascripts/select_list_move.js
@@ -7,6 +7,17 @@ function addOption(theSel, theText, theValue)
theSel.options[selLength] = newOpt;
}
+function swapOptions(theSel, index1, index2)
+{
+ var text, value;
+ text = theSel.options[index1].text;
+ value = theSel.options[index1].value;
+ theSel.options[index1].text = theSel.options[index2].text;
+ theSel.options[index1].value = theSel.options[index2].value;
+ theSel.options[index2].text = text;
+ theSel.options[index2].value = value;
+}
+
function deleteOption(theSel, theIndex)
{
var selLength = theSel.length;
@@ -45,6 +56,22 @@ function moveOptions(theSelFrom, theSelTo)
if(NS4) history.go(0);
}
+function moveOptionUp(theSel) {
+ var index = theSel.selectedIndex;
+ if (index > 0) {
+ swapOptions(theSel, index-1, index);
+ theSel.selectedIndex = index-1;
+ }
+}
+
+function moveOptionDown(theSel) {
+ var index = theSel.selectedIndex;
+ if (index < theSel.length - 1) {
+ swapOptions(theSel, index, index+1);
+ theSel.selectedIndex = index+1;
+ }
+}
+
function selectAllOptions(id)
{
var select = $(id);