Changeset 14852 for misc/runpugs

Show
Ignore:
Timestamp:
11/28/06 16:07:49 (2 years ago)
Author:
andara
Message:

[runpugs]
"ajaxified" runpugs:
-fixed ( & -disabling JS bug
-better cross-platform JS support (command history, block backspace on prompt)
FF/Camino on OS X still have a few quirks, Safari is quite broken.

Location:
misc/runpugs/htdocs/runpugs
Files:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • misc/runpugs/htdocs/runpugs/index.html

    r14850 r14852  
    33<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Run Perl 6 Now -- in your browser!</title> 
    44<link rel="stylesheet" type="text/css" href="../runpugs.css"> 
    5 <script language="JavaScript"> 
    6 var nchars=0; 
    7 var histlist; 
    8 var histentry=0; 
    9 var reply=""; 
    10 function getnchars() { 
    11     return document.terminal.cmd.value.length 
    12 } 
    13  
    14 function getcursorpos() { 
    15         var obj=document.terminal.cmd; 
    16         if(document.selection) { 
    17         obj.focus();                     
    18                 var rng=document.selection.createRange();                        
    19         rng.moveStart('character',-nchars); 
    20                 return rng.text.length; 
    21         } else if(obj.selectionStart>=0) { // FireFox 
    22         var start = obj.selectionStart; 
    23         var end   = obj.selectionEnd; 
    24                 if (start<=end) { 
    25                         return start; 
    26                 } else { 
    27                         return end; 
    28            } 
    29         } 
    30 } 
    31  
    32 function catchbackspace(myfield,e) { 
    33     var keycode; 
    34     if (window.event) { 
    35         keycode = window.event.keyCode; 
    36     } else if (e) { 
    37         keycode = e.which; 
    38     } else { 
    39         return true; 
    40     } 
    41     //alert(keycode); 
    42     if (keycode == 13) { 
    43         //alert(document.terminal.cmd.value); 
    44         var cmd=document.terminal.cmd.value; 
    45         //cmd.replace(/^.*pugs\>\ /, ""); 
    46         //cmds=cmd.split('pugs> '); 
    47         //cmd=cmds[cmds.length-1]; 
    48         frames['scratch'].document.getElementById("cmd").value=cmd; 
    49         frames['scratch'].document.terminal.submit();  
    50         return false; 
    51     } 
    52     if (keycode==38) { 
    53         hist_next(); 
    54         return false; 
    55     } 
    56     if (keycode==40) { 
    57         hist_prev(); 
    58         return false; 
    59     } 
    60     if ((keycode==8)||(keycode==37)||(keycode==46)) { 
    61         if ((getnchars()>nchars) && (getcursorpos() > nchars)) { 
    62             return true; 
    63         } else { 
    64             return false; 
    65         } 
    66     } else { 
    67         return true; 
    68     } 
    69 } 
    70  
    71 function getreply () { 
    72     //getElementById("scratch") 
    73     scratchpad=frames['scratch'].document;//.contentDocument; 
    74     reply=scratchpad.getElementById("cmd").value; 
    75     histlist=scratchpad.terminal.history.options; 
    76     histentry=histlist.length; 
    77     //histlist.reverse; 
    78     document.terminal.cmd.value=reply; 
    79     document.terminal.cmd.focus()  
    80     document.terminal.cmd.scrollTop =document.terminal.cmd.scrollHeight; 
    81     nchars=document.terminal.cmd.value.length; 
    82 } 
    83  
    84 function hist_next () { 
    85     if (histentry>1) { 
    86         histentry-=1; 
    87         document.terminal.cmd.value=reply+histlist[histentry].value; 
    88         document.terminal.cmd.scrollTop =document.terminal.cmd.scrollHeight;  
    89     } 
    90     return false; 
    91 } 
    92  
    93 function hist_prev () { 
    94     if (histentry<histlist.length-1) { 
    95         histentry+=1; 
    96         document.terminal.cmd.value=reply+histlist[histentry].value; 
    97         document.terminal.cmd.scrollTop =document.terminal.cmd.scrollHeight;  
    98     } 
    99 } 
    100  
    101 function set_version () { 
    102     var reldev=document.terminal.reldev[0].checked; 
    103     if (reldev==true) { 
    104         frames['scratch'].document.terminal.reldev[0].checked=true; 
    105         frames['scratch'].document.terminal.reldev[1].checked=false; 
    106     } else { 
    107         frames['scratch'].document.terminal.reldev[0].checked=false; 
    108         frames['scratch'].document.terminal.reldev[1].checked=true; 
    109     } 
    110     //alert(frames['scratch'].document.terminal.reldev[0].checked+'<>'+frames['scratch'].document.terminal.reldev[1].checked); 
    111     frames['scratch'].document.terminal.submit(); 
    112 } 
    113 </script> 
     5<script language="JavaScript" src="runpugs.js"></script> 
    1146</head> 
    1157<body> 
     
    12820<input id="dev" value="1" name="reldev" type="radio" onClick="set_version()"><label for="dev">Development version</label> 
    12921<div id="termwindow"> 
    130 <textarea id="cmd" name="cmd" rows="20" cols="80" wrap="virtual" onkeypress="return catchbackspace(this,event)" onkeydown="return catchbackspace(this,event)">Please wait while Pugs starts up...</textarea>  
     22<!--<textarea id="cmd" name="cmd" rows="20" cols="80" wrap="virtual" 
     23onkeydown="return catchbackspace_ff(this,event)" onkeypress="return 
     24catchbackspace_ie(this,event)">Please wait while Pugs starts 
     25up...</textarea>--> 
     26<textarea id="cmd" name="cmd" rows="20" cols="80" wrap="virtual" 
     27onkeydown="return catch_events(this,event)">Please wait while Pugs starts up...</textarea> 
    13128</div> 
    13229</form> 
    13330<script language="JavaScript"> 
    134 document.terminal.enter.style.display='none'; 
    13531document.terminal.cmd.focus() // _SKIPC_ 
    13632document.terminal.cmd.scrollTop =document.terminal.cmd.scrollHeight; // _SKIPC_