File: form_assign.js

package info (click to toggle)
horde3 3.1.3-4etch7
  • links: PTS
  • area: main
  • in suites: etch
  • size: 22,876 kB
  • ctags: 18,071
  • sloc: php: 75,151; xml: 2,979; sql: 1,069; makefile: 79; sh: 64
file content (83 lines) | stat: -rw-r--r-- 2,136 bytes parent folder | download | duplicates (2)
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
/**
 * Horde Form Assign Field Javascript Class
 *
 * Provides the javascript class to accompany the Horde_Form assign field.
 *
 * $Horde: horde/js/form_assign.js,v 1.2.10.4 2006/03/24 05:17:59 chuck Exp $
 *
 * Copyright 2004-2006 Jan Schneider <jan@horde.org>
 *
 * See the enclosed file COPYING for license information (LGPL).  If you
 * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
 */

Horde_Form_Assign = new Object();

Horde_Form_Assign.deselectHeaders = function(name, side)
{
    if (side) {
        document[name + '__right'][0].selected = false;
    } else {
        document[name + '__left'][0].selected = false;
    }
}

Horde_Form_Assign.move = function(name, direction)
{
    var left = document[name + '__left'];
    var right = document[name + '__right'];

    if (direction) {
        var from = right;
        var to = left;
    } else {
        var from = left;
        var to = right;
    }

    for (var i = 0; i < from.length; ++i) {
        if (from[i].selected) {
            to[to.length] = new Option(from[i].text, from[i].value);
            to[to.length - 1].ondblclick = function()
            {
                Horde_Form_Assign.move(name, 1 - direction);
            }
            from[i] = null;
            --i;
        }
    }

    this.setField(name);
}

Horde_Form_Assign.setField = function(name)
{
    var left = document[name + '__left'];
    var right = document[name + '__right'];

    var values = '';
    var hit = false;
    for (var i = 0; i < left.options.length; ++i) {
        if (i == 0 && !left[i].value) {
            continue;
        }
        values += left.options[i].value + '\t';
        hit = true;
    }
    if (hit) {
        values = values.substring(0, values.length - 1);
    }
    values += '\t\t';
    hit = false;
    for (var i = 0; i < right.options.length; ++i) {
        if (i == 0 && !right[i].value) {
            continue;
        }
        values += right.options[i].value + '\t';
        hit = true;
    }
    if (hit) {
        values = values.substring(0, values.length - 1);
    }
    document[name + '__values'].value = values;
}