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

« back to all changes in this revision

Viewing changes to console/console.js

  • Committer: mattgiuca
  • Date: 2008-01-10 00:10:11 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:149
fileservice:
    * Both subversion and OS mode listings now output "." as one of the files.
        This is deliberate in order for the client to see (by the presence or
        absence of the "svnstatus" attribute) whether this directory is
        under version control.
    * Directories no longer display a "type" attribute (since this was always
        just the default type, it's meaningless).
    * Fixed bug where unversioned directories inside a versioned directory
        output an empty listing.

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
}