Commit 4c2264ee authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

Adds 2 buttons to easily reorder selected columns (#4272).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3106 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 66540afc
...@@ -5,15 +5,19 @@ ...@@ -5,15 +5,19 @@
:multiple => true, :size => 10, :style => "width:150px" %> :multiple => true, :size => 10, :style => "width:150px" %>
</td> </td>
<td align="center" valign="middle"> <td align="center" valign="middle">
<input type="button" value="--&gt;" <input type="button" value="&#8594;"
onclick="moveOptions(this.form.available_columns, this.form.selected_columns);" /><br /> onclick="moveOptions(this.form.available_columns, this.form.selected_columns);" /><br />
<input type="button" value="&lt;--" <input type="button" value="&#8592;"
onclick="moveOptions(this.form.selected_columns, this.form.available_columns);" /> onclick="moveOptions(this.form.selected_columns, this.form.available_columns);" />
</td> </td>
<td><%= select_tag 'query[column_names][]', <td><%= select_tag 'query[column_names][]',
options_for_select(query.columns.collect {|column| [column.caption, column.name]}), options_for_select(query.columns.collect {|column| [column.caption, column.name]}),
:id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px" %> :id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px" %>
</td> </td>
<td align="center" valign="middle">
<input type="button" value="&#8593;" onclick="moveOptionUp(this.form.selected_columns);" /><br />
<input type="button" value="&#8595;" onclick="moveOptionDown(this.form.selected_columns);" />
</td>
</tr> </tr>
</table> </table>
......
...@@ -7,6 +7,17 @@ function addOption(theSel, theText, theValue) ...@@ -7,6 +7,17 @@ function addOption(theSel, theText, theValue)
theSel.options[selLength] = newOpt; 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) function deleteOption(theSel, theIndex)
{ {
var selLength = theSel.length; var selLength = theSel.length;
...@@ -45,6 +56,22 @@ function moveOptions(theSelFrom, theSelTo) ...@@ -45,6 +56,22 @@ function moveOptions(theSelFrom, theSelTo)
if(NS4) history.go(0); 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) function selectAllOptions(id)
{ {
var select = $(id); var select = $(id);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment