Bug fix: shell might terminate even though new request was initiated
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 20 Dec 1995 16:31:30 +0000 (16:31 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 20 Dec 1995 16:31:30 +0000 (16:31 +0000)
by the cgi interface program.
Work on more simple user interface and Europagate buttons.

www/Makefile
www/query.egw
www/search.egw
www/showfull.egw
www/targets.egw
www/wcgi.c
www/wsh.c
www/z39util.tcl

index 5d2bc73..a568940 100644 (file)
@@ -2,7 +2,12 @@
 # Europagate, 1995
 #
 # $Log: Makefile,v $
-# Revision 1.17  1995/11/14 16:31:35  adam
+# Revision 1.18  1995/12/20 16:31:30  adam
+# Bug fix: shell might terminate even though new request was initiated
+# by the cgi interface program.
+# Work on more simple user interface and Europagate buttons.
+#
+# Revision 1.17  1995/11/14  16:31:35  adam
 # Temporary remove of ccl entry.
 #
 # Revision 1.16  1995/11/14  16:01:50  adam
@@ -78,7 +83,6 @@ WSCRIPTS=egwscript targets.egw query.egw search.egw showfull.egw z39util.tcl \
  mtargets.egw mquery.egw msearch.egw
 HSCRIPTS=egwindex.html
 CONFFILES=ztargets.conf
-GIFFILES=webgate.gif darrw.gif uarrw.gif noway.gif
 TPROG1=egwcgi
 TPROG2=egwsh
 TPROG3=wtest
@@ -134,7 +138,7 @@ install.script:
                echo Installing $$x; \
                cp $$x $(CONFDIR); \
        done
-       @for x in $(GIFFILES); do \
+       @for x in gif/*.gif; do \
                echo Installing $$x; \
                cp $$x $(GIFDIR); \
        done
index 79ad442..e922e29 100644 (file)
@@ -4,7 +4,7 @@
 </head>
 <body>
 {
-# $Id: query.egw,v 1.18 1995/11/14 16:31:36 adam Exp $
+# $Id: query.egw,v 1.19 1995/12/20 16:31:31 adam Exp $
 
     if {[info commands saveState] == ""} {
         source z39util.tcl
@@ -41,7 +41,8 @@ proc ok-response {} {
         ir z39
     }
 
-    html "<h2> Search in " [lindex $targets($host) 0] "</h2>\n"
+    html {<h2><img src="/gif/button-egw.gif" border=0 align=middle>}
+    html " Search in " [lindex $targets($host) 0] "</h2>\n"
 
     z39 callback ok-response
     z39 failback fail-response
@@ -126,10 +127,9 @@ proc ok-response {} {
             html {<input type="checkbox" name="baseall" value="} 
             html [concat $databases] {"> All <br>} \n
         }
+        html "Input your search criteria:<br>\n"
     }
 }
-<hr>
-<h3>Input your search criteria: </h3> <br>
 {
     set fields [lindex $targets($host) 2]
     for {set no 1} {$no < 4} {incr no} {
@@ -164,18 +164,11 @@ proc ok-response {} {
     }
 }
 
-{
-    if {0} {
-    html {<hr><p>Alternatively you can enter your query in }
-    html {<a href="http://www.dtv.dk/ccl.html"> CCL </a> here: <br>}
-    html {<input type=text name="cclentry" size=52> <br>}
-    html "<hr>\n"
-    }
-}
 <input type=submit value="Search"><input type=reset value="Reset">
-<h3> Various technical parameters: </h3> <br>
+<br>
 {
-    html {Max hits: <input type="text" name="hits" value="}
+    html {Number of records to display in the result set list: }
+    html {<input type="text" name="hits" value="}
     if {$oSetNo > 0} {
         html $hist($oSetNo,maxPresent)
     } else {
@@ -183,28 +176,24 @@ proc ok-response {} {
     }
     html {" size=3>}
 }
-Records are shown in:
-<select name="format">
-<option> Long format
-<option> Medium format
-<option> Short format
-<option> Raw MARC
-</select>
 <br>
 <p>
 </form>
+
+{
+    html {<img src="/gif/button-egw.gif" border=0></a>}
+    html {<a href="http:} $env(SCRIPT_NAME)
+    html / $sessionId {/targets.egw}
+    html {"><img src="/gif/button-new-target.gif" border=0></a>}
+}
+
 <hr>
 This page is maintained by <a href="mailto:pwh@dtv.dk"> Peter Wad Hansen </a>.
 Last modified 29. september 1995. <br>
 <em> This and the following pages are under construction
 and will continue to be so until the end of December 1995.</em>
-<hr>
 
 {
-    html {<a href="http:} $env(SCRIPT_NAME)
-    html / $sessionId {/targets.egw"> New target </a>}
-}
-{
     html "<hr>\n"
     html "<h3>Debug information</h3>\n"
     html "sessionId: $sessionId <br>\n"
index a249f6c..c25bfb9 100644 (file)
@@ -1,13 +1,14 @@
 <html>
 {
-# $Id: search.egw,v 1.17 1995/11/14 16:01:51 adam Exp $
+# $Id: search.egw,v 1.18 1995/12/20 16:31:31 adam Exp $
 
 proc buttons {setNo setMax startPos after} {
     global sessionId
+    global useIcons
     global env
     global hist
 
-    if {$after && $setMax < [z39.$setNo resultCount]} {
+    if {!$useIcons && $after && $setMax < [z39.$setNo resultCount]} {
         html "<p>\n"
         html "<center>\n"
         html {<a href="http:} $env(SCRIPT_NAME)
@@ -18,27 +19,47 @@ proc buttons {setNo setMax startPos after} {
     }
 
     html "<p>\n"
+    if {$useIcons} {
+        html {<img src="/gif/button-egw.gif">}
+    }
     if {$setMax < [z39.$setNo resultCount]} {
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/search.egw/} $setNo + [expr $setMax + 1]
         html + [expr $setMax + $hist($setNo,maxPresent)]
-        html {">Next records</a>} " | \n"
+        if {$useIcons} {
+            html {"><img src="/gif/button-next-records.gif" border=0></a>}
+        } else {
+            html {">Next records</a>} " | \n"
+        }
     }
     if {$startPos != "" && $startPos != "1"} {
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/search.egw/} $setNo 
         html + [expr $startPos - $hist($setNo,maxPresent)]
         html + [expr $startPos - 1]
-        html {">Previous records</a>} " | \n"
+        if {$useIcons} {
+            html {"><img src="/gif/button-previous-records.gif" border=0></a>}
+        } else {
+            html {">Previous records</a>} " | \n"
+        }
     }
     html {<a href="http:} $env(SCRIPT_NAME)
     html / $sessionId {/query.egw/} $hist($setNo,host) + $setNo 
-    html {">New query</a>} " | \n"
+    if {$useIcons} {
+        html {"><img src="/gif/button-new-query.gif" border=0></a>}
+    } else {
+        html {">New query</a>} " | \n"
+    }
 
     html {<a href="http:} $env(SCRIPT_NAME)
-    html / $sessionId {/targets.egw">New target</a>} "<p>\n"
-
-    if {!$after && $startPos != "" && $startPos != "1"} {
+    html / $sessionId {/targets.egw}
+    if {$useIcons} {
+        html {"><img src="/gif/button-new-target.gif" border=0></a>}
+    } else {
+        html {">New target</a>}
+    }
+    html "<p>\n"
+    if {!$useIcons && !$after && $startPos != "" && $startPos != "1"} {
         html "<center>\n"
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/search.egw/} $setNo 
@@ -63,7 +84,6 @@ proc buttons {setNo setMax startPos after} {
         set hist($nextSetNo,idAuthentication) $hist($setNo,idAuthentication)
         set hist($nextSetNo,host) $hist($setNo,host)
         set setNo $nextSetNo
-        html "using host " $hist($setNo,host) " <br\n"
 
         set query [build-query $hist($setNo,host)]
         if {"x$query" == "x"} {
index f27800e..1c09eb2 100644 (file)
@@ -1,14 +1,15 @@
 <html>
 {
-# $Id: showfull.egw,v 1.11 1995/11/14 09:30:20 adam Exp $
+# $Id: showfull.egw,v 1.12 1995/12/20 16:31:32 adam Exp $
 
 proc buttons {setNo tno no format count host after} {
     global sessionId
+    global useIcons
     global env
     global hist
 
     html "<p>\n"
-    if {$after && $no < $count} {
+    if {!$useIcons && $after && $no < $count} {
         html "<center>\n"
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/showfull.egw/} $setNo + $tno + 
@@ -16,25 +17,46 @@ proc buttons {setNo tno no format count host after} {
         html {"><img src="/gif/darrw.gif"></a>}
         html "</center><p>\n"
     }
+    if {$useIcons} {
+        html {<img src="/gif/button-egw.gif">}
+    }
     if {$no < $count} {
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/showfull.egw/} $setNo + $tno + 
         html [expr $no + 1] + $format
-        html {">Next record</a>} " | \n"
+        if {$useIcons} {
+            html {"><img src="/gif/button-next-record.gif" border=0></a>}
+        } else {
+            html {">Next record</a>} " | \n"
+        }
     }
     if {$no > 1} {
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/showfull.egw/} $setNo + $tno +
         html [expr $no - 1] + $format
-        html {">Previous record</a>} " | \n"
+        if {$useIcons} {
+            html {"><img src="/gif/button-previous-record.gif" border=0></a>}
+        } else {
+            html {">Previous record</a>} " | \n"
+        }
     }
 
     html {<a href="http:} $env(SCRIPT_NAME)
     html / $sessionId {/showfull.egw/} $setNo + $tno + $no +
     if {$format == "full"} {
-       html raw {">Raw format</a>} " | \n"
+        html raw 
+        if {$useIcons} {        
+            html {"><img src="/gif/button-raw-marc.gif" border=0></a>}
+        } else {
+            html {">Raw format</a>} " | \n"
+        }
     } else {
-       html full {">Full format</a>} " | \n"
+        html full
+        if {$useIcons} {
+            html {"><img src="/gif/button-full-format.gif" border=0></a>}
+        } else {
+            html {">Full format</a>} " | \n"
+        }
     }
 
     html {<a href="http:} $env(SCRIPT_NAME) / $sessionId 
@@ -45,8 +67,11 @@ proc buttons {setNo tno no format count host after} {
     }
     html $setNo + 1
     html + $hist($setNo,maxPresent)
-    html {">Result set</a>} " | \n"
-       
+    if {$useIcons} {
+        html {"><img src="/gif/button-result-set.gif" border=0></a>}
+    } else {
+        html {">Result set</a>} " | \n"
+    }
     html {<a href="http:} $env(SCRIPT_NAME) / $sessionId 
     if {$tno > 0} {
         html {/mquery.egw/} 
@@ -54,17 +79,24 @@ proc buttons {setNo tno no format count host after} {
         html {/query.egw/} 
     }
     html $host + $setNo 
-    html {">New query</a>} " | \n"
-
+    if {$useIcons} {
+        html {"><img src="/gif/button-new-query.gif" border=0></a>}
+    } else {
+        html {">New query</a>} " | \n"
+    }
     html {<a href="http:} $env(SCRIPT_NAME) / $sessionId 
     if {$tno > 0} {
         html {/mtargets.egw} 
     } else {
         html {/targets.egw} 
     }
-    html {">New target</a>} "<p>\n"
-
-    if {!$after && $no > 1} {
+    if {$useIcons} {
+        html {"><img src="/gif/button-new-target.gif" border=0></a>}
+    } else {
+        html {">New target</a>}
+    }
+    html "<p>\n"
+    if {!$useIcons && !$after && $no > 1} {
         html "<p><center>\n"
         html {<a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/showfull.egw/} $setNo + $tno +
index 366e502..7827fb4 100644 (file)
@@ -1,6 +1,6 @@
 <html>
 {
-# $Id: targets.egw,v 1.7 1995/11/08 16:14:34 adam Exp $
+# $Id: targets.egw,v 1.8 1995/12/20 16:31:32 adam Exp $
     source /usr/local/etc/httpd/conf/ztargets.conf
     if {[info commands saveState] == ""} {
         source z39util.tcl
 <title> Europagate, WWW/Z39.50 Gateway </title>
 </head>
 <body>
-<center>
-<img src="/gif/webgate.gif" Alt="Welcome to EUROPAGATE">
-</center>
-Part of Europagate is a World Wide Web to Z39.50 gateway. The gateway provides search and 
-retrieve facilities in the databases of various libraries. <p>
-<a href="http://www.dtu.dk/dtv/egate/egate.html"> Europagate </a> is a 
-project in the <a href="http://www.echo.lu/programmes/en/LIBRARIES.html"> 
-EU libraries Programme </a> carried out by: <br>
-<a href="http://www.ucd.ie/"> University College Dublin </a> <br>
-<a href="http://www.dtv.dk/dtv/">Technical University & Library of Denmark </a> <br>
-Library Council <br>
-Consejo Superior de Investigaciones Cient&iacute;ficas <br>
-<hr>
-<h3> Choose a Z39.50 target: </h3>
+<h3>
+<img src="/gif/button-egw.gif" Alt="Welcome to EUROPAGATE" align=middle>
+ Choose a Z39.50 target: </h3>
 <dl>
 {
     foreach t [array names targets] {
index be3cb96..06b8ace 100644 (file)
  * USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  * $Log: wcgi.c,v $
- * Revision 1.8  1995/11/08 16:14:35  adam
+ * Revision 1.9  1995/12/20 16:31:33  adam
+ * Bug fix: shell might terminate even though new request was initiated
+ * by the cgi interface program.
+ * Work on more simple user interface and Europagate buttons.
+ *
+ * Revision 1.8  1995/11/08  16:14:35  adam
  * Many improvements and bug fixes.
  * First version that ran on dtbsun.
  *
@@ -184,7 +189,7 @@ int main()
        path_info++;
     if (*path_info)
        *(path_info++) = '\0';
-    if (!(gw_db = gw_db_open ("user.db", 1)))
+    if (!(gw_db = gw_db_open ("www.db", 1, 1)))
     {
         gw_log (GW_LOG_FATAL, prog, "gw_db_open");
         exit (1);
index c6093f4..f15ae87 100644 (file)
--- a/www/wsh.c
+++ b/www/wsh.c
  * USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  * $Log: wsh.c,v $
- * Revision 1.7  1995/11/06 17:44:23  adam
+ * Revision 1.8  1995/12/20 16:31:33  adam
+ * Bug fix: shell might terminate even though new request was initiated
+ * by the cgi interface program.
+ * Work on more simple user interface and Europagate buttons.
+ *
+ * Revision 1.7  1995/11/06  17:44:23  adam
  * State reestablised when shell restarts. History of previous
  * result sets.
  *
 #include <unistd.h>
 #include <ctype.h>
 
+#include <gw-db.h>
 #include "whtml.h"
 #include "wtcl.h"
 #include "wirtcl.h"
 
-#define TIMEOUT_SHORT 60
-#define TIMEOUT_MEDIUM 1800
-#define TIMEOUT_LONG 7200
+#define TIMEOUT 60
 
 static WCLIENT wcl;
 static char *mod = "wsh";
@@ -89,8 +93,9 @@ static char *mod = "wsh";
 int main (int argc, char **argv)
 {
     char *script, *parms, parms_buf[512];
-    int timeout = TIMEOUT_SHORT;
+    int timeout;
     W_Interp w_interp;
+    GW_DB gw_db;
 
     chdir("/usr/local/etc/httpd/cgi-bin");
     gw_log_init (*argv);
@@ -117,10 +122,23 @@ int main (int argc, char **argv)
         exit (1);
     }
     w_interp_load_state (w_interp, NULL);
-    while (wproto_process(wcl, timeout) > 0)
+    timeout = TIMEOUT;
+    while (1)
     {
         char *p;
+        int r;
 
+        r = wproto_process (wcl, timeout);
+        if (r <= 0)
+        {
+            gw_db = gw_db_open ("www.db", 0, 0);
+            if (gw_db)
+                break;
+            gw_log (GW_LOG_DEBUG, mod, "Cannot terminate - new request");
+            timeout = 10;
+            continue;
+        }
+        timeout = TIMEOUT;
        wo_clear (wcl, "text/html");
        strcpy (parms_buf, wcl->wf_parms);
        script = parms = parms_buf;
index 216784c..fcd6bdb 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: z39util.tcl,v 1.11 1995/11/14 16:01:52 adam Exp $
+# $Id: z39util.tcl,v 1.12 1995/12/20 16:31:34 adam Exp $
 #
 proc saveState {} {
     uplevel #0 {
@@ -118,7 +118,7 @@ proc display-raw {zset no tno} {
         set indicator [lindex $line 1]
         set fields [lindex $line 2]
         set l [string length $indicator]
-        html "$tag "
+        html "<tt>$tag "
         if {$l > 0} {
             for {set i 0} {$i < $l} {incr i} {
                 if {[string index $indicator $i] == " "} {
@@ -128,6 +128,7 @@ proc display-raw {zset no tno} {
                 }
             }
         }
+        html "</tt>"
         foreach field $fields {
             set id [lindex $field 0]
             set data [lindex $field 1]
@@ -155,7 +156,7 @@ proc put-marc-contents {cc} {
     }
     html $cc
     if {$ref != ""} {
-        html {">} $urltype { reference</a>}
+        html {">} $cc {</a>}
     }
 }
 
@@ -730,3 +731,5 @@ proc displayError {msga msgb} {
     }
     html "</center><p>\n"
 }
+
+set useIcons 1
\ No newline at end of file