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

« back to all changes in this revision

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

  • Committer: mattgiuca
  • Date: 2008-07-15 07:19:34 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:875
Added "migrations" directory, which contains incremental database update
    scripts.
Updated users.sql, uniqueness key on offering table.
Added migration matching this update to the migrations directory. Mm handy!

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
66
 
67
67
    //var current_path;
68
 
    if((typeof(current_path) != 'undefined') && current_file)
 
68
    if(typeof(current_path) != 'undefined')
69
69
    {
70
70
        // We have a current_path - give a suggestion to the server
71
71
        var path;
81
81
            tmp_path.pop();
82
82
            path = path_join("/home", tmp_path.join('/'));
83
83
        }
84
 
        ajax_call(callback1, "console", "service", {"ivle.op": "start", "cwd": path}, "POST");
 
84
        ajax_call(callback1, "consoleservice", "start", {"startdir": path}, "POST");
85
85
    }
86
86
    else
87
87
    {
88
88
        // No current_path - let the server decide
89
 
        ajax_call(callback1, "console", "service", {"ivle.op": "start"}, "POST");
 
89
        ajax_call(callback1, "consoleservice", "start", {}, "POST");
90
90
    }
91
91
}
92
92
 
261
261
    else
262
262
    {
263
263
        GLOBAL_inputbox = inputbox;     /* For timer */
264
 
        var inputline = inputbox.value + "\n";
 
264
        var inputline = inputbox.value;
265
265
        var graytimer = setTimeout("GLOBAL_inputbox.setAttribute(\"class\", "
266
266
            + "\"disabled\");", 100);
267
267
    }
270
270
        // Print ">>>" span
271
271
        var span = document.createElement("span");
272
272
        span.setAttribute("class", "inputPrompt");
273
 
        span.appendChild(document.createTextNode(
274
 
              document.getElementById("console_prompt").firstChild.textContent)
275
 
                        );
 
273
        span.appendChild(document.createTextNode(">>> "));
276
274
        output.appendChild(span);
277
275
        // Print input line itself in a span
278
276
        var span = document.createElement("span");
279
277
        span.setAttribute("class", "inputMsg");
280
 
        span.appendChild(document.createTextNode(inputline));
 
278
        span.appendChild(document.createTextNode(inputline + "\n"));
281
279
        output.appendChild(span);
282
280
    }
283
 
    var args = {"ivle.op": "chat", "kind": which, "key": server_key, "text":inputline};
 
281
    var args = {"key": server_key, "text":inputline};
284
282
    var callback = function(xhr)
285
283
        {
286
284
            console_response(inputbox, graytimer, inputline, xhr.responseText);
288
286
    /* Disable the text box */
289
287
    if (inputbox != null)
290
288
        inputbox.setAttribute("disabled", "disabled");
291
 
    ajax_call(callback, "console", "service", args, "POST");
 
289
    ajax_call(callback, "consoleservice", which, args, "POST");
292
290
}
293
291
 
294
292
function console_response(inputbox, graytimer, inputline, responseText)
305
303
    var output = document.getElementById("console_output");
306
304
    if (res.hasOwnProperty('okay'))
307
305
    {
308
 
        // Success!
309
 
        if (res.okay)
310
 
        {
311
 
            output.appendChild(document.createTextNode(res.okay + "\n"));
312
 
            output.appendChild(span);
313
 
        }
314
306
        // set the prompt to >>>
315
 
        set_prompt(">>>");
 
307
        var prompt = document.getElementById("console_prompt");
 
308
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
316
309
    }
317
310
    else if (res.hasOwnProperty('exc'))
318
311
    {
319
312
        // Failure!
320
313
        // print out the error message (res.exc)
321
 
        print_error(res.exc);
322
 
        
 
314
        var span = document.createElement("span");
 
315
        span.setAttribute("class", "errorMsg");
 
316
        span.appendChild(document.createTextNode(res.exc + "\n"));
 
317
        output.appendChild(span);
323
318
        // set the prompt to >>>
324
 
        set_prompt(">>>");
 
319
        var prompt = document.getElementById("console_prompt");
 
320
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
325
321
    }
326
322
    else if (res.hasOwnProperty('restart') && res.hasOwnProperty('key'))
327
323
    {
332
328
 
333
329
        // Print a reason to explain why we'd do such a horrible thing
334
330
        // (console timeout, server error etc.)
335
 
        print_error("Console Restart: " + res.restart);
336
 
        
 
331
        var span = document.createElement("span");
 
332
        span.setAttribute("class", "errorMsg");
 
333
        span.appendChild(document.createTextNode("Console Restart: " + res.restart + "\n"));
 
334
        output.appendChild(span);
337
335
        // set the prompt to >>>
338
 
        set_prompt(">>>");
 
336
        var prompt = document.getElementById("console_prompt");
 
337
        prompt.replaceChild(document.createTextNode(">>> "), prompt.firstChild);
 
338
 
339
339
    }
340
340
    else if (res.hasOwnProperty('more'))
341
341
    {
342
342
        // Need more input, so set the prompt to ...
343
 
        set_prompt("...");
 
343
        var prompt = document.getElementById("console_prompt");
 
344
        prompt.replaceChild(document.createTextNode("... "), prompt.firstChild);
344
345
    }
345
346
    else if (res.hasOwnProperty('output'))
346
347
    {
361
362
        {
362
363
            var kind = "chat";
363
364
        }
364
 
        var args = {"ivle.op": "chat", "kind": kind, "key": server_key, "text":''};
365
 
        ajax_call(callback, "console", "service", args, "POST");
 
365
        var args = {"key": server_key, "text":''};
 
366
        ajax_call(callback, "consoleservice", kind, args, "POST");
366
367
 
367
368
        // Open up the console so we can see the output
368
369
        // FIXME: do we need to maximize here?
374
375
        // Return early, so we don't re-enable the input box.
375
376
        return;
376
377
    }
377
 
    else
378
 
    {
 
378
    else {
379
379
        // assert res.hasOwnProperty('input')
380
 
        set_prompt("...");
 
380
        var prompt = document.getElementById("console_prompt");
 
381
        prompt.replaceChild(document.createTextNode("+++ "), prompt.firstChild);
381
382
    }
382
383
 
383
384
    if (inputbox != null)
395
396
    divScroll.activeScroll();
396
397
 
397
398
    // Focus the input box by default
398
 
    document.getElementById("console_output").focus();
399
 
    document.getElementById("console_inputText").focus();
 
399
    document.getElementById("console_output").focus()
 
400
    document.getElementById("console_inputText").focus()
400
401
}
401
402
 
402
403
function catch_input(key)
455
456
    }
456
457
}
457
458
 
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, "console", "service", {"ivle.op": "chat", "kind": "terminate", "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
459
/**** Following Code modified from ******************************************/
501
460
/**** http://radio.javaranch.com/pascarello/2006/08/17/1155837038219.html ***/
502
461
/****************************************************************************/
514
473
        
515
474
    if (scrollDiv.scrollHeight > 0)
516
475
        currentHeight = scrollDiv.scrollHeight;
517
 
    else if (scrollDiv.offsetHeight > 0)
518
 
        currentHeight = scrollDiv.offsetHeight;
 
476
    else 
 
477
        if (objDiv.offsetHeight > 0)
 
478
            currentHeight = scrollDiv.offsetHeight;
519
479
 
520
480
    scrollDiv.scrollTop = currentHeight;
521
481