--- rat/client/Attic/code.html 2000/05/04 21:05:28 1.2 +++ rat/client/Attic/code.html 2001/04/30 17:01:06 1.29 @@ -8,7 +8,12 @@ Resource Assembly Tool 9/1,9/2,9/4,9/5,9/6, 1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31, 2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22, -5/2,5/3,5/4 Gerd Kortemeyer with Scott Harrison +5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25, +6/7,6/8,6/9,6/10,6/12,6/15,7/4,7/26,7/28,7/31,8/5,8/19,8/24, +01/17/01,03/03,03/05 Gerd Kortemeyer with Scott Harrison +March/April 01 Scott Harrison +04/20 Gerd Kortemeyer +04/30 Scott Harrison --> @@ -19,6 +24,7 @@ var row=new Array(); var maxrow=-1; var col=new Array(); var maxcol=-1; + var colmap=new Array(); var colmap2=new Array(); var colmap3=new Array(); @@ -27,6 +33,7 @@ var colmap5=new Array(); var colmap6=new Array(); var obj=new Array(); var objcont=new Array(); +var objparms=new Array(); var objlinks=new Array(); var rowcont=new Array(); var rowtype=new Array(); @@ -44,8 +51,22 @@ var notclear=0; var linkmode=0; var lastinfo=''; var graphdef='no'; +var mode=''; var mainrun=0; var tablemode=0; +var mostrecent=0; +var zscale=3; + +var disrows=0; +var discols=0; + +var finishdone=0; +var tim=0; +var funny='|'; +var reqaction=''; +var canceltim; + +var expense=0; var data1=new Array(1024); var data2=new Array(1024); @@ -53,12 +74,22 @@ var data3=new Array(1024); var data4=new Array(1024); var data5=new Array(1024); +var inf; +var srch; +var srchflag=-1; // 1 means currently open + // 0 means closed (but has been open) + // -1 means never yet opened/defined + +function testfunction() { + inf.document.forms.resinfo.elements.t.value="ABC"; +} // ------------------------------------------------ Insert a row into the table function insertrow(j,ex1,ex2) { var kj; stored=0; + expense++; expense++; objects1=''; objects2=''; for (kj=0;kj<=maxrow;kj++) { @@ -73,7 +104,7 @@ function insertrow(j,ex1,ex2) { objects=objects1+':'+objects2; data1=objects.split(':'); for (kj=0;kjj ) { col[kj]++; } } maxcol++; + expense++; expense++; col[maxcol]=j+1; } @@ -235,7 +268,7 @@ function maprow (jid,obj1,ign) { var j; var k; var left; var right; var middle; middle=-1; for (j=0;j<=maxcol;j++) { colmap[j]=0; } - if (rowcont[jid]!='') { + if ((rowcont[jid]!='') && (rowcont[jid]!=undefined)) { data2=rowcont[jid].split(':'); for (j=0;j'); - if (what!='') { - if (obj1!='') { + if ((what!='') && (what!=undefined)) { + if ((obj1!='') && (obj1!=undefined)) { obj1="'"+obj1+"'"; parent.mapout.document.write (''); + (''); } else { if (what=='c:') { parent.mapout.document.write - (''); + (''); } else { - parent.mapout.document.write - (''); + if (what=='rs:') { + parent.mapout.document.write + (''); + } else { + if (what=='rf:') { + parent.mapout.document.write + (''); + } else { + parent.mapout.document.write + (''); + } + } } } - if (obj1!='') { + if ((obj1!='') && (obj1!=undefined)) { parent.mapout.document.write(''); } } else { @@ -841,16 +974,37 @@ function drawcell (rtype,ctype,what,cm,o parent.mapout.document.write ('onMouseOver="parent.code.infoclear();">'); parent.mapout.document.write - (''); + ( + ''); } parent.mapout.document.write(''); } } +// --------------------------------------------------------- Color of resources + +function rescolor (ext,typ) { + var rc; var gc; var bc; + if (ext=='true') { bc='55'; } else { bc='99'; } + if (typ=='mandatory') { rc='FF'; } else { rc='BB'; } + if (typ=='optional') { gc='BB'; } else { gc='FF'; } + if ((typ=='start') || (typ=='finish')) { rc='AA'; gc='AA'; bc='FF'; } + return '#'+rc+gc+bc; +} + +// -------------------------------------------------------- Color of conditions + +function condcolor(typ) { + if (typ=='stop') { return '#EEAAAA'; } + if (typ=='force') { return '#AAAAEE'; } + return '#EEEEAA'; +} + // ----------------------------------------------------------------- Draw a row function drawrow (jid) { -var j; var jk; var k; var rc; var gc; var bc; var ck; +var j; var jk; var k; var ck; var rtype; var objd1=new Array(); var objd2=new Array(); var notempty=new Array(); @@ -858,19 +1012,19 @@ var condtype; if (rowtype[jid]!=0) { for (j=0;j<=maxcol;j++) { colmap[j]=''; colmap2[j]=''; colmap3[j]=''; colmap4[j]=''; - colmap5[j]='#FFFFFF'; colmap6[j]='#FFFFFF'; + colmap5[j]='#CCCCCC'; colmap6[j]='#CCCCCC'; objd1[j]=''; objd2[j]=''; notempty[j]=0; } + parent.mapout.document.writeln(''); - if (rowcont[jid]!='') { + if ((rowcont[jid]!='') && (rowcont[jid]!=undefined)) { data2=rowcont[jid].split(':'); for (jk=0;jkmiddle) { for (k=middle+1;kleftin;k--) { - if (colmap4[k]!='') { + if ((colmap4[k]!='') && (colmap4[k]!=undefined)) { colmap[k]='lrt'; } else { colmap[k]='lr'; @@ -944,7 +1104,7 @@ if (rowtype[jid]!=0) { if (rightoutmiddle) { - if (colmap3[middle]!='') { + if ((colmap3[middle]!='') && (colmap3[middle]!=undefined)) { colmap2[middle]='rtdl'; } else { colmap2[middle]='rtl'; @@ -953,7 +1113,7 @@ if (rowtype[jid]!=0) { } if (leftoutleftout;k--) { - if (colmap3[k]!='') { + if ((colmap3[k]!='') && (colmap3[k]!=undefined)) { colmap2[k]='rld'; } else { colmap2[k]='rl'; @@ -963,7 +1123,7 @@ if (rowtype[jid]!=0) { } if (rightout>middle) { for (k=middle+1;k'); + parent.mapout.document.writeln(''); + parent.mapout.document.writeln(''); for (k=0;k<=maxcol;k++) { - drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],objd2[k],jid,k,1); + drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],objd2[k],jid,k, + notempty[k]); } - parent.mapout.document.writeln(''); + parent.mapout.document.writeln(''); + parent.mapout.document.writeln(''); for (k=0;k<=maxcol;k++) { - drawcell(1,coltype[rcol[k]],colmap3[k],colmap6[k],objd2[k],jid,k,1); + drawcell(1,coltype[rcol[k]],colmap3[k],colmap6[k],objd2[k],jid,k, + notempty[k]); } } } @@ -1038,6 +1205,12 @@ if (rowtype[jid]!=0) { } } +// -------------------------------------------------------------- Print message + +function message(txt) { + parent.window.status=txt; +} + // ------------------------------------------------------------- Draw the table function draw () { @@ -1046,23 +1219,38 @@ function draw () { cleanup(); save(); - for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; } - for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; } rh[0]=0; - rh[1]=30; - rh[2]=60; + rh[1]=zscale*10; + rh[2]=zscale*20; cw[0]=0; - cw[1]=30; - cw[2]=60; + cw[1]=zscale*10; + cw[2]=zscale*20; + parent.mapout.document.open('text/html','replace'); parent.mapout.document.writeln(''); - parent.mapout.document.writeln( - ''); - + if (tablemode==0) { - for (kr=0;kr<=maxrow;kr++) { drawrow(rrow[kr]); } + if (graphdef=='no') { graphopt(); cleanup(); } + for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; } + for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; } + parent.mapout.document.writeln( + '
'); + for (kr=0;kr<=maxrow;kr++) { + message("Generating Output Row "+kr); + drawrow(rrow[kr]); + } } else { - tabledraw(); + message("Generating Table Output"); + for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; } + for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; } + + parent.mapout.document.writeln( '
'); + if (tablemode==1) { + tabledraw(); + } else { + simpletabledraw(); + } } parent.mapout.document.writeln('
'); @@ -1076,34 +1264,65 @@ function draw () { function infoclear() { if (notclear!=1) { - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln (''); if (linkmode!=0) { + if (tablemode==0) { inf.document.writeln( ''); + } else { + inf.document.writeln( +''); + } + } else { + if (tablemode==0) { + inf.document.writeln( + '' + ); + } } inf.document.writeln('
'+ 'Link Mode
Click on a resource to link it with
'+ (objcont[linkmode].split(':'))[0]+ '
click anywhere else to cancel.
Link Mode
Click on a resource number to link it with
'+ + (objcont[linkmode].split(':'))[0]+'
'+ +'' + +'Cancel
Click to Edit
Click in a light gray area
' + +'to insert resources, columns and rows
'); inf.document.close(); - parent.focus(); + if (srchflag==1) { + srchclose(); + } + parent.top.focus(); parent.mapout.focus(); notclear=1; lastinfo=''; } } +// ------------------------------------------------------------ Open inf window + +function infopen() { + var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; + inf=open("","infout",options); +} + +// -------------------------------------------------------- Do inf status check + +function infcheck() { + if (inf.closed) { + infopen(); + } +} + // --------------------------------------------------- Prints out resource info function info(infostr) { if ((editmode!=1) && (infostr!=lastinfo)) { notclear=1; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1130,9 +1349,25 @@ function info(infostr) { '
to '+objcont[data3[1]].split(':')[0]+''); } else { if (data1[0]=='r') { - inf.document.writeln('Resource
'); data2=objcont[data1[1]].split(':'); - inf.document.writeln(''+data2[0]+'
'); + inf.document.write(''); + if (data2[2]=='true') { inf.document.write('External '); } + if (data2[3]=='start') { + inf.document.writeln('Start'); + } else { + if (data2[3]=='finish') { + inf.document.writeln('Finish'); + } else { + inf.document.writeln('Resource'); + } + } + if (data2[3]=='mandatory') { + inf.document.write(' (Mandatory)'); + } + if (data2[3]=='optional') { + inf.document.write(' (Optional)'); + } + inf.document.writeln('
'+data2[0]+'
'); inf.document.writeln((data2[1].split('/')).join(' / ')); } else { inf.document.writeln('Link
'); @@ -1153,7 +1388,7 @@ function info(infostr) { } inf.document.writeln(''); inf.document.close(); - parent.focus(); + parent.top.focus(); parent.mapout.focus(); notclear=0; lastinfo=infostr; @@ -1180,7 +1415,98 @@ function escape(instring) { // -------------------------------------------------- Insert resource into link function insertreslink(infostr) { - alert(infostr); + var lnr; + var fobj; + var tobj; + var nobj; + var cobj; + var cid; + var rid; + data1=infostr.split('&'); + data2=obj[data1[0]].split('&'); + lnr=data2[data2.length-2]; + data3=objlinks[lnr].split(':'); + fobj=data3[0]; + tobj=data3[1]; + cobj=data3[2]; + if (data2[0]=='v') { + rid=data1[1]; + cid=data2[1]; + } else { + rid=data2[1]; + cid=(data2[2].split(':'))[0]; + } + dellink(lnr); + newresource(rid,cid,'','','false','normal'); + nobj=obj.length-1; + save(); + joinres(fobj,nobj,cobj); + save(); + joinres(nobj,tobj,0); +} + +// -------------------------------------------- Insert resource after condition + +function insertcondlink(cid,lnr) { + var fobj; + var tobj; + var nobj; + var cobj; + data3=objlinks[lnr].split(':'); + fobj=data3[0]; + tobj=data3[1]; + cobj=data3[2]; + rid=(obj[fobj].split('&'))[1]; + insertrow(row[rid]); + dellink(lnr); + newresource(maxrow,cid,'','','false','normal'); + nobj=obj.length-1; + save(); + joinres(fobj,nobj,cobj); + save(); + joinres(nobj,tobj,0); +} + + + + +// ------------------------------------------------------- Clears search window + +function srchclear() { + srch.document.clear(); +} + +// ------------------------------------------------------- Closes search window + +function srchclose() { + if (srch && !srch.closed) { + srchflag=0; + srch.close(); + } +} + +// --------------------------------------------------------- Open search window + +function srchopen() { + var options="scrollbars=1,resizable=1,menubar=0"; + srchflag=1; + srch=open("/adm/searchcat?catalogmode=interactive","srchout",options); + srch.focus(); +} + +// -------------------------------------------- Interface function to searching + +function search() { + alert("Searching not yet implemented"); +} + +// ------------------------------------------------------- Do srch status check + +function srchcheck() { + if (!srch || srch.closed) { + srchopen(); + } + srch.focus(); } // ---------------------------------------------------- Handles "click to edit" @@ -1189,8 +1515,7 @@ function handler(infostr) { var k; editmode=1; notclear=1; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1205,7 +1530,7 @@ function handler(infostr) { data2=objcont[data1[4]].split(':'); } inf.document.writeln( - '

Change to above values  ' - +' Reset' - +'
'); + +');">Change to above values  ' + +' Reset
' + +''); inf.document.writeln( 'Delete Condition'); - } else { + +');">Delete Condition
'); + inf.document.writeln( + 'Delete Link'); + + inf.document.writeln('
Insert Resource Into Link'); + + +} else { if (data1[0]=='r') { if (linkmode!=0) { joinres(linkmode,data1[1],0); @@ -1250,25 +1585,56 @@ function handler(infostr) { inf.document.writeln('Linked Resources'); draw(); } else { - inf.document.writeln('Resource'); data2=objcont[data1[1]].split(':'); + if (data2[3]=='start') { + inf.document.writeln('Start'); + } else { + if (data2[3]=='finish') { + inf.document.writeln('Finish'); + } else { + inf.document.writeln('Resource'); + } + } inf.document.write( - '
' + '
Title:' - +'
URL:' - +'
'); + if ((data2[3]!='start') && (data2[3]!='finish')) { + inf.document.write('' +'' - +'' + +''); + } else { + inf.document.write( + ''); + } + inf.document.writeln( + '
Title:' + +'
URL:' + +'
External:
Search
' + +' Regular   Mandatory   Optional
' + +'
' - +'Change to above values  ' + +'+self.document.forms.resinfo.elements.e.checked+'+"':'" + +'+self.document.forms.resinfo.elements.h.value+'+"':res'" + +';opener.infoclear();opener.editmode=0;opener.draw();">' + +'Change to above values  ' +' Reset' - +'
'); + +''); + if ((data2[3]!='start') && (data2[3]!='finish')) { inf.document.writeln( 'Delete Resource (preserving links)'); + } + if (data2[3]!='finish') { inf.document.writeln( '
Link Resource'); + } + inf.document.writeln( + '
Set Parameters'); + } } else { linkmode=0; - inf.document.writeln('Link
'); + inf.document.writeln('Link
'); data2=obj[data1[0]].split('&'); k=data2[data2.length-2]; data3=objlinks[k].split(':'); @@ -1294,7 +1668,7 @@ function handler(infostr) { k+');opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw(' +');">Delete Link'); inf.document.writeln('
Insert Resource Into Link'); } @@ -1302,7 +1676,7 @@ function handler(infostr) { inf.document.writeln( '
Done'); - inf.document.writeln(''); + inf.document.writeln('
'); inf.document.close(); inf.focus(); } @@ -1317,8 +1691,7 @@ function empty(rid,k) { editmode=1; notclear=1; linkmode=0; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1326,9 +1699,30 @@ function empty(rid,k) { 'Empty Field
'); inf.document.writeln('
Insert resource'); + + if ((mostrecent!=0) && (objcont[mostrecent]!='') && + (objcont[mostrecent]!=undefined)) { + + inf.document.writeln('
Insert resource linked to from most recent one'); + + inf.document.writeln('
Insert Resource'); + +');">Insert resource linking to most recent one'); + } + + inf.document.writeln('
Insert column:'); inf.document.writeln(''+k+'
'); + data2=obj[i].split('&'); + parent.mapout.document.write(''); + if (data1[3]=='start') { + parent.mapout.document.writeln(''); + } + if (data1[3]=='finish') { + parent.mapout.document.writeln(''); + } + parent.mapout.document.write( + ''); + if ((data1[3]!='start') && (data1[3]!='finish')) { + parent.mapout.document.write( + '' + +'' + +''); + } else { + parent.mapout.document.write( + ''); + } + parent.mapout.document.write( + ''); + parent.mapout.document.writeln('
Start
Finish
Title:
URL:
External:
Regular   Mandatory   Optional
' + +'
' + +'Change to above values  ' + +' Reset
'); + if ((data1[3]!='start') && (data1[3]!='finish')) { + parent.mapout.document.writeln( + '' ++'Delete Resource (cutting links)
' ++'' ++'Delete Resource (preserving links)
'); + } + if (data1[3]!='finish') { + parent.mapout.document.writeln( + ''+ + 'Link resource'); + } + parent.mapout.document.writeln( + '
Set Parameters'); + + parent.mapout.document.writeln('
'); + for (j=2;j1) { + if (data3[1]==nr) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + for (j=2;j1) { + if ((data3[1]!=nr) && (data3[1]!=0)) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + parent.mapout.document.writeln( + '
Next
'); + parent.mapout.document.writeln( + 'Edit'); + parent.mapout.document.writeln('
To: '+robjs[data3[1]]+'
'); + parent.mapout.document.writeln( + 'Edit'); + parent.mapout.document.writeln('
'); + insrestab(rrow[data2[1]],i,nr,data1[3]); + } - objsorted=objsort.sort(rescompare); - for (ij=0;ij'+ + '
' + +'Insert resource'); + if ((be!=-1) && (typ!='finish')) { + parent.mapout.document.writeln( + '' + +'Insert resource linked to from above
'); + } + if ((be!=-1) && (af!=-1) && (typ!='finish')) { + parent.mapout.document.writeln( + '' + +'Insert resource linked to from above and linking to below
'); + } + if (af!=-1) { + parent.mapout.document.writeln( + '' + +'Insert resource linking to below
'); + } + parent.mapout.document.writeln('
'); +} +// ---------------------------------------- Draw simple table instead of graph + +function simpletabledraw() { + var objsorted=new Array(); + var robjs=new Array(); + var iobjs=new Array(); + var k; + var i; + var j; + var nr; + var ck; + var cck; + var condid; + var sortstr=sortobjs(); + if ((sortstr!='') && (sortstr!=undefined)) { + objsorted=sortstr.split('&'); + for (k=0;k'+k+''); + data2=obj[i].split('&'); + parent.mapout.document.write(''); + if (data1[3]=='start') { + parent.mapout.document.writeln(''); + } + if (data1[3]=='finish') { + parent.mapout.document.writeln(''); + } + parent.mapout.document.write( + ''); + parent.mapout.document.write( + '' + +'
Start
Finish
Title:'+data1[0]+'
URL:'+data1[1]+'
'); + for (j=2;j1) { + if (data3[1]==nr) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + for (j=2;j1) { + if ((data3[1]!=nr) && (data3[1]!=0)) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + parent.mapout.document.writeln('
Next
'); + parent.mapout.document.writeln('
To: '+robjs[data3[1]]+'
'); + parent.mapout.document.writeln('
'); } - alert("Table mode not yet implemented"); + } else { + parent.mapout.document.writeln('No Resources'); + } } -// ------------------------------------------- Sort objects to straighten graph +// ---------------------------------- Sort objects to straighten graph or table -function graphopt() { +function sortobjs() { + message("Sorting Resources: "+funny); var k; var ij; + var dol; + var dtl; var kj; + var sortthis=0; var objsort=new Array(); - var objsorted=new Array(); - condense(); - graphreset(); for (k=1;kallcolmax) { allcolmax=thiscolmax; } thiscolmax=1; } kj=rowcont.length-1; - obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; + obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; + if (thiscolmax>allcolmax) { allcolmax=thiscolmax; } } for (k=0;k