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

« back to all changes in this revision

Viewing changes to www/media/console/console.js

  • Committer: dcoles
  • Date: 2008-07-03 04:20:54 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:803
Setup: Modularised setup.py so it is now no longer over 1000 lines. This should 
allow us to get in there and tidy up each module much easier. Also removed 
updatejails since this functionality seems to be duplicated with remakeuser.py 
and remakealluser.py scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
    var callback1 = function(xhr)
59
59
        {
60
60
            var json_text = xhr.responseText;
61
 
            server_key = JSON.parse(json_text).key;
 
61
            server_key = JSON.parse(json_text);
62
62
            server_started = true;
63
63
            if (callback != null)
64
64
                callback();
65
65
        }
66
 
 
67
 
    //var current_path;
68
 
    if((typeof(current_path) != 'undefined') && current_file)
69
 
    {
70
 
        // We have a current_path - give a suggestion to the server
71
 
        var path;
72
 
        if (current_file.isdir)
73
 
        {
74
 
            // Browser
75
 
            path = path_join("/home", current_path);
76
 
        }
77
 
        else
78
 
        {
79
 
            // Editor - need to chop off filename
80
 
            var tmp_path = current_path.split('/');
81
 
            tmp_path.pop();
82
 
            path = path_join("/home", tmp_path.join('/'));
83
 
        }
84
 
        ajax_call(callback1, "consoleservice", "start", {"startdir": path}, "POST");
85
 
    }
86
 
    else
87
 
    {
88
 
        // No current_path - let the server decide
89
 
        ajax_call(callback1, "consoleservice", "start", {}, "POST");
90
 
    }
 
66
    ajax_call(callback1, "consoleservice", "start", {}, "POST");
91
67
}
92
68
 
93
69
/** Initialises the console. All apps which import console are required to
261
237
    else
262
238
    {
263
239
        GLOBAL_inputbox = inputbox;     /* For timer */
264
 
        var inputline = inputbox.value + "\n";
 
240
        var inputline = inputbox.value;
265
241
        var graytimer = setTimeout("GLOBAL_inputbox.setAttribute(\"class\", "
266
242
            + "\"disabled\");", 100);
267
243
    }
270
246
        // Print ">>>" span
271
247
        var span = document.createElement("span");
272
248
        span.setAttribute("class", "inputPrompt");
273
 
        span.appendChild(document.createTextNode(
274
 
              document.getElementById("console_prompt").firstChild.textContent)
275
 
                        );
 
249
        span.appendChild(document.createTextNode(">>> "));
276
250
        output.appendChild(span);
277
251
        // Print input line itself in a span
278
252
        var span = document.createElement("span");
279
253
        span.setAttribute("class", "inputMsg");
280
 
        span.appendChild(document.createTextNode(inputline));
 
254
        span.appendChild(document.createTextNode(inputline + "\n"));
281
255
        output.appendChild(span);
282
256
    }
283
257
    var args = {"key": server_key, "text":inputline};
312
286
            output.appendChild(span);
313
287
        }
314
288
        // set the prompt to >>>
315
 
        set_prompt(">>>");
 
289
        var prompt = document.getElementById("console_prompt");
 
290
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
316
291
    }
317
292
    else if (res.hasOwnProperty('exc'))
318
293
    {
319
294
        // Failure!
320
295
        // print out the error message (res.exc)
321
 
        print_error(res.exc);
322
 
        
 
296
        var span = document.createElement("span");
 
297
        span.setAttribute("class", "errorMsg");
 
298
        span.appendChild(document.createTextNode(res.exc + "\n"));
 
299
        output.appendChild(span);
323
300
        // set the prompt to >>>
324
 
        set_prompt(">>>");
 
301
        var prompt = document.getElementById("console_prompt");
 
302
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
325
303
    }
326
304
    else if (res.hasOwnProperty('restart') && res.hasOwnProperty('key'))
327
305
    {
332
310
 
333
311
        // Print a reason to explain why we'd do such a horrible thing
334
312
        // (console timeout, server error etc.)
335
 
        print_error("Console Restart: " + res.restart);
336
 
        
 
313
        var span = document.createElement("span");
 
314
        span.setAttribute("class", "errorMsg");
 
315
        span.appendChild(document.createTextNode("Console Restart: " + res.restart + "\n"));
 
316
        output.appendChild(span);
337
317
        // set the prompt to >>>
338
 
        set_prompt(">>>");
 
318
        var prompt = document.getElementById("console_prompt");
 
319
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
 
320
 
339
321
    }
340
322
    else if (res.hasOwnProperty('more'))
341
323
    {
342
324
        // Need more input, so set the prompt to ...
343
 
        set_prompt("...");
 
325
        var prompt = document.getElementById("console_prompt");
 
326
        prompt.replaceChild(document.createTextNode("... "), prompt.firstChild);
344
327
    }
345
328
    else if (res.hasOwnProperty('output'))
346
329
    {
374
357
        // Return early, so we don't re-enable the input box.
375
358
        return;
376
359
    }
377
 
    else
378
 
    {
 
360
    else {
379
361
        // assert res.hasOwnProperty('input')
380
 
        set_prompt("...");
 
362
        var prompt = document.getElementById("console_prompt");
 
363
        prompt.replaceChild(document.createTextNode("+++ "), prompt.firstChild);
381
364
    }
382
365
 
383
366
    if (inputbox != null)
395
378
    divScroll.activeScroll();
396
379
 
397
380
    // Focus the input box by default
398
 
    document.getElementById("console_output").focus();
399
 
    document.getElementById("console_inputText").focus();
 
381
    document.getElementById("console_output").focus()
 
382
    document.getElementById("console_inputText").focus()
400
383
}
401
384
 
402
385
function catch_input(key)
455
438
    }
456
439
}
457
440
 
458
 
/** Resets the console by signalling the old console to expire and starting a 
459
 
 * new one.
460
 
 */
461
 
function console_reset()
462
 
{
463
 
    // FIXME: We show some feedback here - either disable input or at very 
464
 
    // least the reset button.
465
 
 
466
 
    // Restart the console
467
 
    if(!server_started)
468
 
    {
469
 
        start_server(null);
470
 
    }
471
 
    else
472
 
    {
473
 
        xhr = ajax_call(null, "consoleservice", "restart", {"key": server_key}, "POST");
474
 
        console_response(null, null, null, xhr.responseText);
475
 
    }
476
 
}
477
 
 
478
 
/** Prints an error line in the console **/
479
 
function print_error(error)
480
 
481
 
    var output = document.getElementById("console_output");
482
 
  
483
 
    // Create text block
484
 
    var span = document.createElement("span");
485
 
    span.setAttribute("class", "errorMsg");
486
 
    span.appendChild(document.createTextNode(error + "\n"));
487
 
    output.appendChild(span);
488
 
 
489
 
    // Autoscroll
490
 
    divScroll.activeScroll();
491
 
}
492
 
 
493
 
/** Sets the prompt text **/
494
 
function set_prompt(prompt_text)
495
 
{
496
 
    var prompt = document.getElementById("console_prompt");
497
 
    prompt.replaceChild(document.createTextNode(prompt_text + " "), prompt.firstChild);
498
 
}
499
 
 
500
441
/**** Following Code modified from ******************************************/
501
442
/**** http://radio.javaranch.com/pascarello/2006/08/17/1155837038219.html ***/
502
443
/****************************************************************************/
514
455
        
515
456
    if (scrollDiv.scrollHeight > 0)
516
457
        currentHeight = scrollDiv.scrollHeight;
517
 
    else if (scrollDiv.offsetHeight > 0)
518
 
        currentHeight = scrollDiv.offsetHeight;
 
458
    else 
 
459
        if (objDiv.offsetHeight > 0)
 
460
            currentHeight = scrollDiv.offsetHeight;
519
461
 
520
462
    scrollDiv.scrollTop = currentHeight;
521
463