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

« back to all changes in this revision

Viewing changes to ivle/webapp/console/media/console.js

Semesters now have separate URL name, display name and code attributes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
108
108
            }
109
109
        }
110
110
 
 
111
    $("#console_output").append(
 
112
        '<span class="console_message">IVLE console starting up...</span>\n');
 
113
    console_maximize(true);
111
114
    ajax_call(
112
115
        callback1, "console", "service",
113
116
        {"ivle.op": "start", "cwd": get_console_start_directory()}, 
114
117
        "POST");
115
118
}
116
119
 
 
120
/** Start up the console backend before the user has entered text.
 
121
 * This will disable the text input, start a backend, and enable the input
 
122
 * again.
 
123
 */
 
124
function start_server_early()
 
125
{
 
126
    var inputbox = document.getElementById("console_inputText");
 
127
    inputbox.setAttribute("disabled", "disabled");
 
128
    var callback = function(xhr)
 
129
    {
 
130
        inputbox.removeAttribute("disabled")
 
131
    }
 
132
    start_server(callback);
 
133
}
 
134
 
117
135
/** Initialises the console. All apps which import console are required to
118
136
 * call this function.
119
137
 * Optional "windowpane" (bool), if true, will cause the console to go into
147
165
 
148
166
/** Show the main console panel, so it enlarges out to its full size.
149
167
 */
150
 
function console_maximize()
 
168
function console_maximize(do_not_start)
151
169
{
152
170
    if (!windowpane_mode) return;
 
171
    if (!do_not_start && !server_started) start_server_early();
153
172
    console_body.setAttribute("class", "console_body windowpane maximal");
154
173
    console_filler.setAttribute("class", "windowpane maximal");
155
174
}
276
295
{
277
296
    interrupted = false;
278
297
 
 
298
    // Open up the console so we can see the output
 
299
    console_maximize();
 
300
 
279
301
    if (typeof(inputbox) == "string")
280
302
    {
281
303
        var inputline = inputbox + "\n";
302
324
        span.setAttribute("class", "inputMsg");
303
325
        span.appendChild(document.createTextNode(inputline));
304
326
        output.appendChild(span);
 
327
        divScroll.activeScroll();
305
328
    }
306
329
    var args = {
307
330
        "ivle.op": "chat", "kind": which, "key": server_key,
333
356
        {
334
357
            output.appendChild(document.createTextNode(res.okay + "\n"));
335
358
            output.appendChild(span);
 
359
            divScroll.activeScroll();
336
360
        }
337
361
        // set the prompt to >>>
338
362
        set_prompt(">>>");
355
379
 
356
380
        // Print a reason to explain why we'd do such a horrible thing
357
381
        // (console timeout, server error etc.)
358
 
        print_error("Console Restart: " + res.restart);
 
382
        print_error(
 
383
            "IVLE console restarted: " + res.restart, "console_message");
359
384
        
360
385
        // set the prompt to >>>
361
386
        set_prompt(">>>");
370
395
        if (res.output.length > 0)
371
396
        {
372
397
            output.appendChild(document.createTextNode(res.output));
 
398
            divScroll.activeScroll();
373
399
        }
374
400
        var callback = function(xhr)
375
401
            {
390
416
        ajax_call(callback, "console", "service", args, "POST");
391
417
 
392
418
        // Open up the console so we can see the output
393
 
        // FIXME: do we need to maximize here?
394
419
        console_maximize();
395
420
 
396
 
        /* Auto-scrolling */
397
 
        divScroll.activeScroll();
398
 
 
399
421
        // Return early, so we don't re-enable the input box.
400
422
        return;
401
423
    }
416
438
        interrupted = false;
417
439
    }
418
440
 
419
 
    /* Open up the console so we can see the output */
420
 
    console_maximize();
421
441
    /* Auto-scrolling */
422
442
    divScroll.activeScroll();
423
443
 
513
533
}
514
534
 
515
535
/** Prints an error line in the console **/
516
 
function print_error(error)
517
 
 
536
function print_error(error, cls)
 
537
{
 
538
    if (!cls)
 
539
        cls = "errorMsg";
 
540
 
518
541
    var output = document.getElementById("console_output");
519
542
  
520
543
    // Create text block
521
544
    var span = document.createElement("span");
522
 
    span.setAttribute("class", "errorMsg");
 
545
    span.setAttribute("class", cls);
523
546
    span.appendChild(document.createTextNode(error + "\n"));
524
547
    output.appendChild(span);
525
548