1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
/**
* Horde Form Sorter Field Javascript Class
*
* Provides the javascript class to accompany the Horde_Form sorter
* field.
*
* $Horde: horde/js/sorter.js,v 1.2.10.3 2006/01/01 21:29:02 jan Exp $
*
* Copyright 2003-2006 Marko Djukic <marko@oblo.com>
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*/
function Horde_Form_Sorter(instanceName, varName, header)
{
/* Set up this class instance for function calls from the page. */
this._instanceName = instanceName;
this._varName = varName;
/* Sorter variables. */
this._header = '';
this.minLength = 0;
if (header != '') {
this._header = header;
this.minLength = 1;
}
this.sorterList = document.getElementById(this._varName + '[list]');
this.sorterArray = document.getElementById(this._varName + '[array]');
this.deselectHeader = function()
{
if (this._header != '') {
this.sorterList[0].selected = false;
}
}
this.setHidden = function()
{
var tmpArray = new Array();
for (var i = this.minLength; i < this.sorterList.length; i++) {
if (this.sorterList[i].value) {
tmpArray[i - this.minLength] = this.sorterList[i].value;
}
}
this.sorterArray.value = tmpArray.join("\t");
}
this.moveColumnUp = function()
{
var sel = this.sorterList.selectedIndex;
if (sel <= this.minLength || this.sorterList.length <= this.minLength + 1) return;
/* Deselect everything but the first selected item. */
this.sorterList.selectedIndex = sel;
var up = this.sorterList[sel].value;
tmp = new Array();
for (i = this.minLength; i < this.sorterList.length; i++) {
tmp[i - this.minLength] = new Option(this.sorterList[i].text, this.sorterList[i].value)
}
for (i = 0; i < tmp.length; i++) {
if (i + this.minLength == sel - 1) {
this.sorterList[i + this.minLength] = tmp[i + 1];
} else if (i + this.minLength == sel) {
this.sorterList[i + this.minLength] = tmp[i - 1];
} else {
this.sorterList[i + this.minLength] = tmp[i];
}
}
this.sorterList.selectedIndex = sel - 1;
this.setHidden();
}
this.moveColumnDown = function()
{
var sel = this.sorterList.selectedIndex;
if (sel == -1 || sel == this.sorterList.length - 1) return;
/* Deselect everything but the first selected item. */
this.sorterList.selectedIndex = sel;
var down = this.sorterList[sel].value;
tmp = new Array();
for (i = this.minLength; i < this.sorterList.length; i++) {
tmp[i - this.minLength] = new Option(this.sorterList[i].text, this.sorterList[i].value)
}
for (i = 0; i < tmp.length; i++) {
if (i + this.minLength == sel) {
this.sorterList[i + this.minLength] = tmp[i + 1];
} else if (i + this.minLength == sel + 1) {
this.sorterList[i + this.minLength] = tmp[i - 1];
} else {
this.sorterList[i + this.minLength] = tmp[i];
}
}
this.sorterList.selectedIndex = sel + 1;
this.setHidden();
}
}
|