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

« back to all changes in this revision

Viewing changes to console/console.js

  • Committer: William Grant
  • Date: 2010-02-17 08:57:40 UTC
  • Revision ID: grantw@unimelb.edu.au-20100217085740-3atwitguxi3ukx2l
Add a Projects breadcrumb.

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
 
    alert(inp.value);
135
 
    xmlhttp.open("POST", "chat", false);
136
 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
137
 
    xmlhttp.send(make_post_body({"digest":digest, "text":inp.value}))
138
 
    var res = JSON.parse(xmlhttp.responseText);
139
 
    var output = document.getElementById("output")
140
 
    {
141
 
        var pre = document.createElement("pre");
142
 
        pre.setAttribute("class", "inputMsg");
143
 
        pre.appendChild(document.createTextNode(inp.value + "\n"));
144
 
        output.appendChild(pre);
145
 
    }
146
 
    if (res && res[0])
147
 
    {
148
 
        // Success!
149
 
        // print out the output (res[0])
150
 
        var pre = document.createElement("pre");
151
 
        pre.setAttribute("class", "outputMsg");
152
 
        pre.appendChild(document.createTextNode(res[0]));
153
 
        output.appendChild(pre);
154
 
        // print out the return value (res[1])
155
 
        if (res[1])
156
 
        {
157
 
            var pre = document.createElement("pre");
158
 
            pre.setAttribute("class", "outputMsg");
159
 
            pre.appendChild(document.createTextNode(res[1] + "\n"));
160
 
            output.appendChild(pre);
161
 
        }
162
 
        // set the prompt to >>>
163
 
        var prompt = document.getElementById("prompt");
164
 
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
165
 
    }
166
 
    else if (res)
167
 
    {
168
 
        // Failure!
169
 
        // print out the error message (res[2])
170
 
        var pre = document.createElement("pre");
171
 
        pre.setAttribute("class", "errorMsg");
172
 
        pre.appendChild(document.createTextNode(res[2]));
173
 
        output.appendChild(pre);
174
 
    }
175
 
    else
176
 
    {
177
 
        // Need more input, so set the prompt to ...
178
 
        var prompt = document.getElementById("prompt");
179
 
        prompt.replaceChild(document.createTextNode("... "), prompt.firstChild);
180
 
    }
181
 
}
182
 
 
183
 
function catch_input(key)
184
 
{
185
 
    var inp = document.getElementById('inputText');
186
 
    if (key == 13)
187
 
    {
188
 
        enter_line();
189
 
        hist.add(inp.value);
190
 
        inp.value = hist.curr();
191
 
    }
192
 
    if (key == 38)
193
 
    {
194
 
        hist.up();
195
 
        inp.value = hist.curr();
196
 
    }
197
 
    if (key == 40)
198
 
    {
199
 
        hist.down();
200
 
        inp.value = hist.curr();
201
 
    }
202
 
}