Subversion Repositories wimsdev

Rev

Rev 13962 | Rev 14066 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9381 schaersvoo 1
#!/bin/sh
2
# do not run compile time !
12107 schaersvoo 3
# generates simple canvasdraw usage html-page and a javascript live example
9381 schaersvoo 4
 
13940 bpr 5
##echo "install into wims distribution(D)
6
##or use for local testing (L) ?
7
##D,L ?"
8
##read ans
9
ans="D"
10
helpdir="../../../public_html/scripts/help"
13962 bpr 11
if [ $ans = "D" ]; then
12107 schaersvoo 12
 # path used for href/http link !
13940 bpr 13
 jsdir="scripts/help/canvas_examples"
13965 bpr 14
 mkdir -p "$helpdir/canvas_examples" 2>/dev/null
12107 schaersvoo 15
else
16
 jsdir="./examples"
17
fi
11013 schaersvoo 18
in="canvasdraw.c"
19
phtml="canvasdraw.phtml"
20
html="canvasdraw.html"
21
tmp="canvas_index"
22
keys="keywords"
23
datum=`date +%d-%m-%Y`
12106 schaersvoo 24
htmlhead="<!DOCTYPE html><html><body>"
25
htmltail="</body></html>"
13965 bpr 26
interaction="<script type=\"text/javascript\">\"use strict\";function read_canvas(){if( typeof popup !== 'undefined' ){var fun = popup['read_canvas'+canvas_scripts[0]];return fun();}else{var script_len = canvas_scripts.length;var draw_reply = \"\";var found_result = false;for(var p = 0 ; p < script_len ; p++){var fun = eval(\"read_canvas\"+canvas_scripts[p]);if( typeof fun === 'function'){var result = fun();if( result && result.length != 0){if(script_len == 1 ){ return result;};found_result = true;draw_reply = draw_reply + \"[\"+p+\"]=\"+ result + \"\n\";};};};if( found_result ){return draw_reply;}else{return null;}};};function read_dragdrop(){if( typeof popup !== 'undefined' ){var fun = popup['read_dragdrop'+canvas_scripts[0]];return fun();}else{var script_len = canvas_scripts.length;var dragdrop_reply = \"\";var found_result = false; for(var p = 0 ; p < script_len ; p++){var fun = eval(\"read_dragdrop\"+canvas_scripts[p]); if(typeof fun === 'function'){var result = fun();if( result && result.length != 0 ){if(script_len == 1 ){ return result;};found_result = true;dragdrop_reply = dragdrop_reply + \"[\"+p+\"]=\" + result +\"\n\";};};};if( found_result ){return dragdrop_reply;}else{return null;}};};</script><input type=\"button\" onclick=\"alert(read_canvas());\" value=\"read_canvas()\" /><input type=\"button\" onclick=\"alert(read_dragdrop());\" value=\"read_dragdrop()\" />"
12107 schaersvoo 27
 
12106 schaersvoo 28
# these are only used to simulate a wims session
29
export "w_wims_session"="example"
30
export "w_session"="123"
31
export "w_wims_home"="/var/wims/src/Misc"
12107 schaersvoo 32
wims_tmp="../sessions/example/getfile/"
12106 schaersvoo 33
mkdir -p $wims_tmp
13940 bpr 34
# the popup html pages and corresponding javascript includes are locate here
35
tmpdir="canvas_examples"
12106 schaersvoo 36
rm -rf $tmpdir
37
mkdir $tmpdir 2>/dev/null
11090 bpr 38
 
13940 bpr 39
##echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN\" \"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd\">
40
##<html>
41
##<head><meta charset=\"UTF-8\"></head>
42
##<body xmlns=\"http://www.w3.org/1999/xhtml\" class=\"main_body\" dir=\"ltr\">
43
##<style type='text/css'>
44
## a:link {color:#004077;text-decoration:none;cursor:pointer;}
45
## a:hover {color:#dd6300;}
46
## a:visited {color:#004077;}
47
##</style>"> $html
11013 schaersvoo 48
 
13940 bpr 49
echo "!!generated by canvasinfo.sh
13965 bpr 50
<input type='text' size='10' value='' id='search' onkeydown='javascripts:if(event.keyCode == 13){look();}'/><input type='button' onclick='javascript:look();' value='search' />
12107 schaersvoo 51
<h2 style='text-align:center'>Implemented canvasdraw commands ($datum)</h2>
9381 schaersvoo 52
<table style='color:blue;font-size:0.8em;'><tr>
11013 schaersvoo 53
" > $phtml
11090 bpr 54
 
9381 schaersvoo 55
p=0
56
echo "<ul>" > $tmp
57
cnt=0
9478 schaersvoo 58
br=8
9381 schaersvoo 59
while read line ; do
12106 schaersvoo 60
 chk=`echo "$line" | grep "@"`
9383 schaersvoo 61
 if [ ! -z "$chk" ] ; then
12106 schaersvoo 62
  chk=`echo "$chk" | grep @%`
63
  if [ -z "$chk" ] ; then
64
   echo $line
65
   if [ $p -eq 0 ]; then
66
    string=`echo "$line" | tr '@' ' '`
67
    idx=`echo "$string" | awk '{ print $1 }'`
68
    echo ",'$idx'" >> $keys
9383 schaersvoo 69
    if [ $cnt -gt $br ]; then
11013 schaersvoo 70
     echo "</tr><tr>" >> $phtml
9383 schaersvoo 71
     cnt=0
9381 schaersvoo 72
    fi
9383 schaersvoo 73
    cnt=$(($cnt+1))
12106 schaersvoo 74
    echo "<td><a name='$idx top' href='#$idx'>$idx</a></td>" >> $phtml
13965 bpr 75
    echo "<li>$string <a name='$idx' href='#$idx top'>&#8593;</a><ul>" >> $tmp
12106 schaersvoo 76
    p=1
9383 schaersvoo 77
   else
12106 schaersvoo 78
    p=2
79
    alt=`echo "$line" | grep "@ alternative :" | awk '{ print $4 }' | tr -d '[:blank:]'`
80
    if [ ! -z $alt ] ; then
81
     if [ $cnt -gt $br ]; then
82
      echo "</tr><tr>" >> $phtml
83
      cnt=0
84
     fi
85
     cnt=$(($cnt+1))
86
     echo ",'$alt'" >> $keys
87
     echo "<td><a name='$alt top' href='#$idx'>$alt</a></td>" >> $phtml
13965 bpr 88
     echo "<li><span style=\"color:blue;font-size:0.8em\">alternative command:<a name='$alt' href='#$alt top'>$alt</a></span></li>" >> $tmp
12106 schaersvoo 89
    else
13965 bpr 90
     echo $line | sed 's/@/<li><span style="color:blue;font-size:0.8em">/g' >> $tmp
91
     echo "</span></li>" >> $tmp
12106 schaersvoo 92
    fi
9383 schaersvoo 93
   fi
12106 schaersvoo 94
  else
13940 bpr 95
 # begin generating live examples signaled by @%
13965 bpr 96
   name=`echo "$chk" | awk -F'%' '{ print $2 }' `
12106 schaersvoo 97
   echo "command $name"
13965 bpr 98
   cont=`echo "$chk" | tr '%' '\n'`
13940 bpr 99
   #echo "!!generated by canvasinfo.sh" > $tmpdir/$name
100
   echo "$cont" | sed '1,2d'> $tmpdir/$name
101
   ##echo "$htmlhead" > $tmpdir/$name.html
102
   ##cat $tmpdir/$name | ~/other/bin/canvasdraw | sed 's/src=\"wims.cgi?session=123*.*.js\"/src=\"'$name'.js\"/g' >> $tmpdir/$name.html
103
   echo "<li>
13945 bpr 104
   !set wims_ref_class=wims_button
13940 bpr 105
   !href cmd=help&special_parm=canvas_examples,$name \$wims_name_Example: $name
106
   </li>" >> $tmp
107
   ##echo "<textarea cols='60' rows='10'>" >> $tmpdir/$name.html
108
   ##echo "$cont" | sed '1,2d' >> $tmpdir/$name.html
109
   ##echo "</textarea>" >> $tmpdir/$name.html
110
   ##echo "$interaction" >> $tmpdir/$name.html
111
   ##echo "$htmltail" >> $tmpdir/$name.html
112
   ##mv -v $wims_tmp/*.js $tmpdir/$name.js
9383 schaersvoo 113
  fi
114
 else
115
  if [ $p -eq 2 ]; then
13965 bpr 116
   echo "</ul>" >> $tmp
9383 schaersvoo 117
  fi
118
  p=0
119
 fi
9381 schaersvoo 120
done < $in
11013 schaersvoo 121
 
9381 schaersvoo 122
while [ $cnt -le $br ] ; do
123
 cnt=$(($cnt+1))
11013 schaersvoo 124
 echo "<td>&nbsp;</td>" >> $phtml
9381 schaersvoo 125
done
11013 schaersvoo 126
echo "</tr></table>" >> $phtml
127
 
128
cat $tmp >> $phtml
129
 
9381 schaersvoo 130
keywords=`cat $keys | tr -d '\n'`
131
echo "
132
</li>
133
</ul>
134
<script type='text/javascript'>
135
 var keys = ['canvasdraw' $keywords];
136
 var keys_len = keys.length;
9382 schaersvoo 137
 function match(s1,s2){
138
  var n1 = s1.length;
9383 schaersvoo 139
  if(n1 < 3){return 0;}
9382 schaersvoo 140
  var n2 = s2.length;
141
  var c1,c2,found;
142
  var count = n1 - Math.abs(n1 - n2);
143
  for(var p = 0;p < n1;p++){
144
   c1=s1.charAt(p);
145
   found = false;
146
   for(var i = 0;i < n2;i++){
147
    c2 = s2.charAt(i);
148
    if(c1 == c2){found = true;count = count + n1 - Math.abs(p - i);}
149
   };
150
   if(! found ){count = count - n2;}
151
  };
152
  return count;
153
 };
9381 schaersvoo 154
 function look(){
9382 schaersvoo 155
  var s = ((document.getElementById('search').value).replace(/\s/g, '')).toLowerCase();
156
  var typo;var next_best = -1;var next_idx = s.length;var tmp;var ss;
9381 schaersvoo 157
  for(var p = 0; p < keys_len ; p++){
9382 schaersvoo 158
   ss = keys[p];
159
   if( s == ss ){
160
    window.location.href = '#'+ss;
161
    return;
9381 schaersvoo 162
   };
9382 schaersvoo 163
   /* not ok? ... try to find a match for a reasonable typo... */
164
   tmp = match(s,ss);
165
   if(tmp > next_idx){
166
    next_idx = tmp;
167
    next_best = p;
168
   };
9381 schaersvoo 169
  };
9382 schaersvoo 170
  if(next_best != -1 ){
171
   typo = keys[next_best];
172
   if(confirm('\"'+s+'\" is not a valid canvasdraw command\ndid you mean \"'+typo+'\" ?')){
173
    window.location.href = '#'+typo;
174
    return;
175
   };
176
  }
177
  else
178
  {
179
   alert(s+' is not a valid canvasdraw command');
180
  };
9381 schaersvoo 181
  return;
182
 };
11013 schaersvoo 183
</script>" >> $phtml
184
 
13940 bpr 185
##cat $phtml >> $html
186
##echo "
187
##</body>
188
##</html>" >> $html
12107 schaersvoo 189
 
190
# install in wims distribution scripts/help/en
13962 bpr 191
if [ $ans = "D" ] ; then
13940 bpr 192
mv $phtml "$helpdir/en"
12107 schaersvoo 193
cp -rv $tmpdir $helpdir
194
fi
195
 
9381 schaersvoo 196
rm $tmp
197
rm $keys