~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to console/console.js

  • Committer: mattgiuca
  • Date: 2008-01-15 03:06:54 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:229
Images: Reduced "small" icons from 22x22 to 16x16. Reduced "large" icons from
    128x128 to 96x96.
Changed some of the icons for Subversion so they make a bit more sense.
    (Missing and deleted are now distinct).
Modified JavaScript and CSS so the interface flows with 16x16 icons instead of
22. This makes each file vertically a lot shorter.
Made the bands of colour in the file listing much closer together in colour.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
var magic = 'xyzzy';
 
2
 
 
3
function historyUp()
 
4
{
 
5
    if (this.cursor >= 0)
 
6
    {
 
7
        this.cursor--;
 
8
    }
 
9
}
 
10
 
 
11
function historyDown()
 
12
{
 
13
    if (this.cursor < this.items.length)
 
14
    {
 
15
        this.cursor++;
 
16
    }
 
17
}
 
18
 
 
19
function historyCurr()
 
20
{
 
21
    if (this.cursor < 0 || this.cursor >= this.items.length)
 
22
    {
 
23
        return "";
 
24
    }
 
25
    return this.items[this.cursor];
 
26
}
 
27
 
 
28
function historyAdd(text)
 
29
{
 
30
    this.items[this.items.length] = text;
 
31
    this.cursor = this.items.length
 
32
}
 
33
 
 
34
function historyShow()
 
35
{
 
36
    var res = "";
 
37
    if (this.cursor == -1)
 
38
    {
 
39
        res += "[]";
 
40
    }
 
41
    for (var i = 0; i < this.items.length; i++)
 
42
    {
 
43
        if (i == this.cursor)
 
44
        {
 
45
            res += "["
 
46
        }
 
47
        res += this.items[i].toString();
 
48
        if (i == this.cursor)
 
49
        {
 
50
            res += "]"
 
51
        }
 
52
        res += " "
 
53
    }
 
54
    if (this.cursor == this.items.length)
 
55
    {
 
56
        res += "[]";
 
57
    }
 
58
    return res;
 
59
}
 
60
 
 
61
function History()
 
62
{
 
63
    this.items = new Array();
 
64
    this.cursor = -1;
 
65
    this.up = historyUp;
 
66
    this.down = historyDown;
 
67
    this.curr = historyCurr;
 
68
    this.add = historyAdd;
 
69
    this.show = historyShow;
 
70
}
 
71
 
 
72
var hist = new History();
 
73
 
 
74
function make_query_string(pagename, args)
 
75
{
 
76
    var first = true;
 
77
    var qs = pagename;
 
78
    for (key in args)
 
79
    {
 
80
        vals = args[key];
 
81
        // vals can be an array, to make multiple args with the same name
 
82
        // To handle this, make non-array objects into an array, then loop
 
83
        if (!(vals instanceof Array))
 
84
            vals = [vals];
 
85
        for each (val in vals)
 
86
        {
 
87
            if (first)
 
88
            {
 
89
                qs += "?";
 
90
                first = false;
 
91
            }
 
92
            else
 
93
            {
 
94
                qs += "&";
 
95
            }
 
96
            qs += encodeURI(key) + "=" + encodeURI(val);
 
97
        }
 
98
    }
 
99
    return qs;
 
100
}
 
101
 
 
102
function make_post_body(args)
 
103
{
 
104
    var first = true;
 
105
    var qs = '';
 
106
    for (key in args)
 
107
    {
 
108
        vals = args[key];
 
109
        // vals can be an array, to make multiple args with the same name
 
110
        // To handle this, make non-array objects into an array, then loop
 
111
        if (!(vals instanceof Array))
 
112
            vals = [vals];
 
113
        for each (val in vals)
 
114
        {
 
115
            if (first)
 
116
            {
 
117
                first = false;
 
118
            }
 
119
            else
 
120
            {
 
121
                qs += "&";
 
122
            }
 
123
            qs += encodeURI(key) + "=" + encodeURI(val);
 
124
        }
 
125
    }
 
126
    return qs;
 
127
}
 
128
 
 
129
function enter_line()
 
130
{
 
131
    var inp = document.getElementById('inputText');
 
132
    var digest = hex_md5(inp.value + magic);
 
133
    var xmlhttp = new XMLHttpRequest();
 
134
    xmlhttp.open("POST", "chat", false);
 
135
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 
136
    xmlhttp.send(make_post_body({"digest":digest, "text":inp.value}))
 
137
    var res = JSON.parse(xmlhttp.responseText);
 
138
    var output = document.getElementById("output")
 
139
    {
 
140
        var pre = document.createElement("pre");
 
141
        pre.setAttribute("class", "inputMsg");
 
142
        pre.appendChild(document.createTextNode(inp.value + "\n"));
 
143
        output.appendChild(pre);
 
144
    }
 
145
    if (res.hasOwnProperty('okay'))
 
146
    {
 
147
        // Success!
 
148
        // print out the output (res.okay[0])
 
149
        var pre = document.createElement("pre");
 
150
        pre.setAttribute("class", "outputMsg");
 
151
        pre.appendChild(document.createTextNode(res.okay[0]));
 
152
        output.appendChild(pre);
 
153
        // print out the return value (res.okay[1])
 
154
        if (res.okay[1])
 
155
        {
 
156
            var pre = document.createElement("pre");
 
157
            pre.setAttribute("class", "outputMsg");
 
158
            pre.appendChild(document.createTextNode(res.okay[1] + "\n"));
 
159
            output.appendChild(pre);
 
160
        }
 
161
        // set the prompt to >>>
 
162
        var prompt = document.getElementById("prompt");
 
163
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
 
164
    }
 
165
    else if (res.hasOwnProperty('exc'))
 
166
    {
 
167
        // Failure!
 
168
        // print out the error message (res.exc)
 
169
        var pre = document.createElement("pre");
 
170
        pre.setAttribute("class", "errorMsg");
 
171
        pre.appendChild(document.createTextNode(res.exc));
 
172
        output.appendChild(pre);
 
173
    }
 
174
    else if (res.hasOwnProperty('more'))
 
175
    {
 
176
        // Need more input, so set the prompt to ...
 
177
        var prompt = document.getElementById("prompt");
 
178
        prompt.replaceChild(document.createTextNode("... "), prompt.firstChild);
 
179
    }
 
180
    else {
 
181
        // assert res.hasOwnProperty('input')
 
182
        var prompt = document.getElementById("prompt");
 
183
        prompt.replaceChild(document.createTextNode("+++ "), prompt.firstChild);
 
184
    }
 
185
}
 
186
 
 
187
function catch_input(key)
 
188
{
 
189
    var inp = document.getElementById('inputText');
 
190
    if (key == 13)
 
191
    {
 
192
        enter_line();
 
193
        hist.add(inp.value);
 
194
        inp.value = hist.curr();
 
195
    }
 
196
    if (key == 38)
 
197
    {
 
198
        hist.up();
 
199
        inp.value = hist.curr();
 
200
    }
 
201
    if (key == 40)
 
202
    {
 
203
        hist.down();
 
204
        inp.value = hist.curr();
 
205
    }
 
206
}