~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to local/in/dhis-web-ga/javascript/actions.js

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function treeTooltipOn() { document.getElementById("tree-tooltip").innerHTML = treeTooltips[treeElements.indexOf(this.id)]; }
 
2
function treeTooltipOff() { document.getElementById("tree-tooltip").innerHTML = ""; }
 
3
 
 
4
var treeElements = ["tree-moveUp", "tree-moveDown", "tree-moveLeft", "tree-moveRight", "tree-insert", "tree-info", "tree-remove"];
 
5
var treeTooltips = ["Move Up", "Move Down", "Move Left", "Move Right", "Insert", "Info", "Delete"];
 
6
 
 
7
for (var i = 0; i < treeElements.length; i++) {
 
8
    document.getElementById(treeElements[i]).onmouseover = treeTooltipOn;
 
9
    document.getElementById(treeElements[i]).onmouseout = treeTooltipOff;
 
10
}
 
11
 
 
12
function treeMoveUp() {
 
13
    if (tree.mayMoveUp()) {
 
14
        tree.moveUp();
 
15
    }
 
16
}
 
17
function treeMoveDown() {
 
18
    if (tree.mayMoveDown()) {
 
19
        tree.moveDown();
 
20
    }
 
21
}
 
22
function treeMoveLeft() {
 
23
    if (tree.mayMoveLeft()) {
 
24
        tree.moveLeft();
 
25
    }
 
26
}
 
27
function treeMoveRight() {
 
28
    if (tree.mayMoveRight()) {
 
29
        tree.moveRight();
 
30
    }
 
31
}
 
32
function treeInsert() {
 
33
    treeHideInfo();
 
34
    document.getElementById("tree-insert-form").style.display = "block";
 
35
    document.getElementById("tree-insert-where-div").style.display = (tree.active ? "" : "none");
 
36
    if (tree.active) {
 
37
        var where = document.getElementById("tree-insert-where");
 
38
        if (tree.mayInsertInside()) {
 
39
            if (!where.options[2] && !where.options[3]) {
 
40
                where.options[2] = new Option("Inside at start", "inside_start");
 
41
                where.options[3] = new Option("Inside at end", "inside_end");
 
42
            }
 
43
        } else if (where.options[2] && where.options[3]) {
 
44
            where.options[2] = null;
 
45
            where.options[3] = null;
 
46
            where.options.length = 2;
 
47
        }
 
48
    }
 
49
}
 
50
function treeHideInsert() {
 
51
    var name = document.getElementById("tree-insert-name");
 
52
    var href = document.getElementById("tree-insert-href");
 
53
    var title = document.getElementById("tree-insert-title");
 
54
    var target = document.getElementById("tree-insert-target");
 
55
    name.value = "";
 
56
    href.value = "";
 
57
    title.value = "";
 
58
    target.value = "";
 
59
    document.getElementById("tree-insert-form").style.display = "none";
 
60
}
 
61
function treeInfo() {
 
62
    treeHideInsert();
 
63
    var name = document.getElementById("tree-info-name");
 
64
    var href = document.getElementById("tree-info-href");
 
65
    var title = document.getElementById("tree-info-title");
 
66
    var target = document.getElementById("tree-info-target");
 
67
    name.value = "";
 
68
    href.value = "";
 
69
    title.value = "";
 
70
    target.value = "";
 
71
    document.getElementById("tree-info-form").style.display = "block";
 
72
    if (tree.active) {
 
73
        var node = tree.getActiveNode();
 
74
        name.value = node.text;
 
75
        href.value = node.href;
 
76
        title.value = node.title;
 
77
        target.value = node.target;
 
78
    }
 
79
}
 
80
function treeInfoUpdate() {
 
81
    var name = document.getElementById("tree-info-name");
 
82
    var href = document.getElementById("tree-info-href");
 
83
    var title = document.getElementById("tree-info-title");
 
84
    var target = document.getElementById("tree-info-target");
 
85
    name.value = name.value.trim();
 
86
    href.value = href.value.trim();
 
87
    if (!name.value) {
 
88
        return false;
 
89
    }
 
90
    if (tree.active) {
 
91
        var node = tree.getActiveNode();
 
92
        node.text = name.value;
 
93
        node.href = href.value;
 
94
        node.title = title.value;
 
95
        node.target = target.value;
 
96
        tree.updateHtml();
 
97
    }
 
98
}
 
99
function treeHideInfo() {
 
100
    var name = document.getElementById("tree-info-name");
 
101
    var href = document.getElementById("tree-info-href");
 
102
    var title = document.getElementById("tree-info-title");
 
103
    var target = document.getElementById("tree-info-target");
 
104
    name.value = "";
 
105
    href.value = "";
 
106
    title.value = "";
 
107
    target.value = "";
 
108
    document.getElementById("tree-info-form").style.display = "none";
 
109
}
 
110
 
 
111
/* only event - blur */
 
112
function treeInsertExecute() {
 
113
    var where = document.getElementById("tree-insert-where");
 
114
    var type = document.getElementById("tree-insert-type");
 
115
    var name = document.getElementById("tree-insert-name");
 
116
    var href = document.getElementById("tree-insert-href");
 
117
    var title = document.getElementById("tree-insert-title");
 
118
    var target = document.getElementById("tree-insert-target");
 
119
    name.value = name.value.trim();
 
120
    href.value = href.value.trim();
 
121
    if (!name.value) {
 
122
        return false;
 
123
    }
 
124
    var o = {"href": href.value, "title": title.value, "target": target.value};
 
125
    if (tree.active) {
 
126
        switch (where.value) {
 
127
            case "before":
 
128
                tree.insertBefore("tree-"+(++tree.count), name.value, type.value, o);
 
129
                break;
 
130
            case "after":
 
131
                tree.insertAfter("tree-"+(++tree.count), name.value, type.value, o);
 
132
                break;
 
133
            case "inside_start":
 
134
                tree.insertInsideAtStart("tree-"+(++tree.count), name.value, type.value, o);
 
135
                break;
 
136
            case "inside_end":
 
137
                tree.insertInsideAtEnd("tree-"+(++tree.count), name.value, type.value, o);
 
138
                break;
 
139
        }
 
140
    } else {
 
141
        tree.insert("tree-"+(++tree.count), name.value, type.value, o);
 
142
    }
 
143
    name.value = "";
 
144
    href.value = "";
 
145
    title.value = "";
 
146
    target.value = "";
 
147
    this.blur();
 
148
}
 
149
function treeRemove() {
 
150
    if (tree.mayRemove()) {
 
151
        if (confirm("Delete current node ?")) {
 
152
            tree.remove();
 
153
            if (document.getElementById("tree-insert-form").style.display == "block") {
 
154
                treeInsert();
 
155
            }
 
156
            if (document.getElementById("tree-info-form").style.display == "block") {
 
157
                treeInfo();
 
158
            }
 
159
        }
 
160
    }
 
161
}
 
162
 
 
163
document.getElementById("tree-moveUp").onclick    = treeMoveUp;
 
164
document.getElementById("tree-moveDown").onclick  = treeMoveDown;
 
165
document.getElementById("tree-moveLeft").onclick  = treeMoveLeft;
 
166
document.getElementById("tree-moveRight").onclick = treeMoveRight;
 
167
 
 
168
if (document.all && !/opera/i.test(navigator.userAgent)) {
 
169
    document.getElementById("tree-moveUp").ondblclick    = treeMoveUp;
 
170
    document.getElementById("tree-moveDown").ondblclick  = treeMoveDown;
 
171
    document.getElementById("tree-moveLeft").ondblclick  = treeMoveLeft;
 
172
    document.getElementById("tree-moveRight").ondblclick = treeMoveRight;
 
173
}
 
174
 
 
175
document.getElementById("tree-insert").onclick = treeInsert;
 
176
document.getElementById("tree-info").onclick = treeInfo;
 
177
document.getElementById("tree-remove").onclick = treeRemove;
 
178
 
 
179
document.getElementById("tree-insert-button").onclick = treeInsertExecute;
 
180
document.getElementById("tree-insert-cancel").onclick = treeHideInsert;
 
181
 
 
182
document.getElementById("tree-info-button").onclick = treeInfoUpdate;
 
183
document.getElementById("tree-info-cancel").onclick = treeHideInfo;
 
184
 
 
185
tree.textClickListener.add(function() { if (document.getElementById("tree-insert-form").style.display == "block") { treeInsert(); } });
 
186
tree.textClickListener.add(function() { if (document.getElementById("tree-info-form").style.display == "block") { treeInfo(); } });
 
187
 
 
188
/* Finds the index of the first occurence of item in the array, or -1 if not found */
 
189
if (!Array.prototype.indexOf) {
 
190
    Array.prototype.indexOf = function(item) {
 
191
        for (var i = 0; i < this.length; ++i) {
 
192
            if (this[i] === item) { return i; }
 
193
        }
 
194
        return -1;
 
195
    };
 
196
}
 
197
 
 
198
// ---------
 
199
// ! PLUGINS
 
200
// ---------
 
201
 
 
202
function treePluginImportHtml() {
 
203
    document.getElementById("tree-plugin").style.display = "block";
 
204
    document.getElementById("tree-plugin-header").innerHTML = "Import from Html";
 
205
    document.getElementById("tree-plugin-button-import-html").style.display = "block";
 
206
}
 
207
function treePluginImportHtmlExecute() {
 
208
    var html = document.getElementById("tree-plugin-textarea");
 
209
    tree.importFromHtml(html.value);
 
210
}
 
211
function treePluginExportHtml() {
 
212
    var w = window.open("", "exportToHtml", "width=600,height=600,scrollbars=yes,resizable=yes");
 
213
    w.document.write('<html><body><pre>'+tree.exportToHtml().replace(/</g, "&lt;").replace(/>/g, "&gt;")+'</pre></body></html>');
 
214
}
 
215
function treePluginExportPhp() {
 
216
    var w = window.open("", "exportToPhp", "width=600,height=600,scrollbars=yes,resizable=yes");
 
217
    w.document.write('<pre>'+tree.exportToPhp().replace(/</g, "&lt;").replace(/>/g, "&gt;")+'</pre>');
 
218
}
 
219
function treePluginExportSql() {
 
220
    var w = window.open("", "exportToSql", "width=600,height=600,scrollbars=yes,resizable=yes");
 
221
    w.document.write('<pre>'+tree.exportToSql().replace(/</g, "&lt;").replace(/>/g, "&gt;")+'</pre>');
 
222
}
 
223
function treePluginHide() {
 
224
    document.getElementById("tree-plugin").style.display = "none";
 
225
    document.getElementById("tree-plugin-header").innerHTML = "";
 
226
    document.getElementById("tree-plugin-textarea").value = "";
 
227
    document.getElementById("tree-plugin-button-import-html").style.display = "none";
 
228
}
 
229
 
 
230
document.getElementById("tree-plugin-import-html").onclick = function() { this.blur(); treePluginHide(); treePluginImportHtml(); };
 
231
document.getElementById("tree-plugin-button-import-html").onclick = treePluginImportHtmlExecute;
 
232
document.getElementById("tree-plugin-export-html").onclick = function() { this.blur(); treePluginHide(); treePluginExportHtml(); };
 
233
document.getElementById("tree-plugin-export-php").onclick = function() { this.blur(); treePluginHide(); treePluginExportPhp(); };
 
234
document.getElementById("tree-plugin-export-sql").onclick = function() { this.blur(); treePluginHide(); treePluginExportSql(); }
 
 
b'\\ No newline at end of file'