Server maintenance message via Apache config
authorJames Fournie <jfournie@sitka.bclibraries.ca>
Thu, 11 Jul 2013 00:41:51 +0000 (20:41 -0400)
committerDan Scott <dscott@laurentian.ca>
Thu, 11 Jul 2013 00:44:37 +0000 (20:44 -0400)
This adds a custom maintenance message which you can issue in your
Apache config by setting the environment variable "MAINTENANCE_MESSAGE"
and restarting/reloading Apache.  This message appears in the TPAC for
both staff and patrons in the form of a red banner across the top of the
screen.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Open-ILS/examples/apache/eg.conf [new file with mode: 0644]
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/templates/opac/css/style.css.tt2
Open-ILS/src/templates/opac/parts/topnav.tt2

diff --git a/Open-ILS/examples/apache/eg.conf b/Open-ILS/examples/apache/eg.conf
new file mode 100644 (file)
index 0000000..aec2c28
--- /dev/null
@@ -0,0 +1,154 @@
+# :vim set syntax apache
+
+LogLevel info 
+# - log locally
+CustomLog /var/log/apache2/access.log combined
+ErrorLog /var/log/apache2/error.log
+# - log to syslog 
+# CustomLog "|/usr/bin/logger -p local7.info" common
+# ErrorLog  "|logger -p local7.error"
+
+
+# ----------------------------------------------------------------------------------
+# Set up Perl 
+# ----------------------------------------------------------------------------------
+
+# - needed by CGIs
+PerlRequire /etc/apache2/startup.pl
+PerlChildInitHandler OpenILS::WWW::Reporter::child_init
+PerlChildInitHandler OpenILS::WWW::SuperCat::child_init
+PerlChildInitHandler OpenILS::WWW::AddedContent::child_init
+PerlChildInitHandler OpenILS::WWW::PasswordReset::child_init
+PerlChildInitHandler OpenILS::WWW::AutoSuggest::child_init
+
+# ----------------------------------------------------------------------------------
+# Set some defaults for our working directories
+# ----------------------------------------------------------------------------------
+<Directory /openils/var/web>
+    Order allow,deny
+    Allow from all
+</Directory>
+
+
+# ----------------------------------------------------------------------------------
+# XUL directory
+# ----------------------------------------------------------------------------------
+<Directory /openils/var/web/xul>
+   Options Indexes FollowSymLinks
+   AllowOverride None
+   Order allow,deny
+   Allow from all
+</Directory>
+
+
+# ----------------------------------------------------------------------------------
+# Remove the language portion from the URL
+# ----------------------------------------------------------------------------------
+AliasMatch ^/opac/.*/skin/(.*)/(.*)/(.*) /openils/var/web/opac/skin/$1/$2/$3
+AliasMatch ^/opac/.*/extras/slimpac/(.*) /openils/var/web/opac/extras/slimpac/$1
+AliasMatch ^/opac/.*/extras/selfcheck/(.*) /openils/var/web/opac/extras/selfcheck/$1
+
+
+
+# ----------------------------------------------------------------------------------
+# System config CGI scripts go here
+# ----------------------------------------------------------------------------------
+Alias /cgi-bin/offline/ "/openils/var/cgi-bin/offline/"
+<Directory "/openils/var/cgi-bin/offline">
+       AddHandler cgi-script .cgi .pl
+       AllowOverride None
+       Options None
+       Order deny,allow
+       Deny from all
+       Allow from 10.0.0.0/8
+       Options FollowSymLinks ExecCGI Indexes
+</Directory>
+
+
+# ----------------------------------------------------------------------------------
+# Updates folder
+# ----------------------------------------------------------------------------------
+Alias /updates/ "/openils/var/updates/pub/"
+<Directory "/openils/var/updates/pub">
+       <Files check>
+               ForceType cgi-script
+       </Files>
+       <Files update.rdf>
+               ForceType cgi-script
+       </Files>
+       <Files manualupdate.html>
+               ForceType cgi-script
+       </Files>
+       <Files download>
+               ForceType cgi-script
+       </Files>
+       AllowOverride None
+       Options None
+       Allow from all
+       Options ExecCGI
+</Directory>
+
+
+# ----------------------------------------------------------------------------------
+# OPTIONAL: Set how long the client will cache our content.  Change to suit
+# ----------------------------------------------------------------------------------
+ExpiresActive On
+ExpiresDefault "access plus 1 month"
+ExpiresByType text/html "access plus 18 hours"
+ExpiresByType application/xhtml+xml "access plus 18 hours"
+ExpiresByType application/x-javascript "access plus 18 hours"
+ExpiresByType application/javascript "access plus 18 hours"
+ExpiresByType text/css "access plus 50 minutes"
+
+# ----------------------------------------------------------------------------------
+# Set up our SSL virtual host
+# ----------------------------------------------------------------------------------
+#Listen 443
+NameVirtualHost *:443
+<VirtualHost *:443>
+       DocumentRoot "/openils/var/web"
+       ServerName localhost:443
+       ServerAlias 127.0.0.1:443
+       SSLEngine on
+       SSLHonorCipherOrder On
+       SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
+
+    # If you don't have an SSL cert, you can create self-signed 
+    # certificate and key with:
+    # openssl req -new -x509 -nodes -out server.crt -keyout server.key
+       SSLCertificateFile ssl/server.crt
+       SSLCertificateKeyFile ssl/server.key
+
+    # - absorb the shared virtual host settings
+    Include eg_vhost.conf
+
+    # help IE along with SSL pages
+    SetEnvIf User-Agent ".*MSIE [1-5].*" \
+        nokeepalive ssl-unclean-shutdown \
+        downgrade-1.0 force-response-1.0
+
+    SetEnvIf User-Agent ".*MSIE [6-9].*" \
+        ssl-unclean-shutdown
+
+</VirtualHost>
+
+# ----------------------------------------------------------------------------------
+# Set up our main virtual host
+# Port 80 comes after 443 to avoid "unknown protocol speaking not SSL to HTTPS port!?" 
+# errors, per http://wiki.apache.org/httpd/InternalDummyConnection
+# ----------------------------------------------------------------------------------
+
+# Commented to avoid warnings from duplicate "NameVirtualHost: *80" directives
+#NameVirtualHost *:80
+<VirtualHost *:80>
+       ServerName localhost:80
+       ServerAlias 127.0.0.1:80
+       DocumentRoot /openils/var/web/
+       DirectoryIndex index.xml index.html index.xhtml
+    # - absorb the shared virtual host settings
+    Include eg_vhost.conf
+</VirtualHost>
+
+# Set a maintenance message for notifying OPAC users of scheduled downtime
+# This can be put in specific vhosts as needed
+#SetEnv MAINTENANCE_MESSAGE "The system will be down tomorrow night so use the card catalog at that time."
index 0838a29..e2de1e8 100644 (file)
@@ -243,6 +243,8 @@ sub load_common {
         return $self->redirect_ssl unless $self->cgi->https;
     }
 
+    $ctx->{maintenance_message} = $self->apache->subprocess_env("MAINTENANCE_MESSAGE");
+
     $ctx->{referer} = $self->cgi->referer;
     $ctx->{path_info} = $self->cgi->path_info;
     $ctx->{full_path} = $ctx->{base_path} . $self->cgi->path_info;
index 63c20bf..7ca45fe 100644 (file)
@@ -465,12 +465,6 @@ div.format_icon {
     padding-left: 13px;
     text-align: left;
 }
-#rdetails_status tbody td.copy_note {
-    color: [% css_colors.primary %];
-    text-wrap:normal;
-    white-space:pre-wrap !important;
-    word-wrap:normal;
-}
 
 .rdetail_extras {
     height: 29px;
@@ -692,12 +686,8 @@ tr.result_table_row > td.result_table_pic_header {
     padding-left: 1em;
 }
 
-.result_number {
-    padding-left:15px; white-space: nowrap; width: 320px;
-}
-
-.result_count_number {
-   font-weight: bold;
+.result_numbers {
+    font-size: [% css_fonts.size_small %]; padding-left:15px; white-space: nowrap; width: 320px;
 }
 
 .result_table_subtable {
@@ -789,29 +779,22 @@ div.result_place_hold {
     font-weight: normal;
 }
 
-.acct_sum_table {
-    border-collapse: collapse;
+.acct_sum_row {
+    padding: 7px 15px;
     background: [% css_colors.accent_ultralight %];
+    margin-bottom: 2px;
     font-size: [% css_fonts.size_smaller %];
     font-weight: bold;
     text-transform: uppercase;
 }
 
-.acct_sum_table tr {
-    border-bottom: 2px solid white;
-}
-
-.acct_sum_table td {
-    padding: 1em;
-}
-
-.acct_sum_table a {
+.acct_sum_row a {
     text-transform: none;
     position:relative;
     top:-1px;
 }
 
-.acct_sum_table .view_link {
+.acct_sum_row .view_link {
     font-weight: normal;
 }
 
@@ -1110,7 +1093,7 @@ div.facet_sidebar {
 .no-dec:hover { text-decoration: none; }
 .pending-addr td { background-color: [% css_colors.background_alert %] !important; border: 0 !important; }
 
-#account-update-email table { text-align: center; padding: 20px; margin-top: 18px; border-collapse: collapse; }
+#account-update-email table { text-align: center; padding: 20px; margin-top: 30px; border-collapse: collapse; }
 #account-update-email table td { padding: 5px 15px 5px 15px; border-bottom: 1px solid [% css_colors.accent_lighter %]; text-align: left;}
 #account-update-email-error { font-size: [% css_fonts.size_biggest %]; padding: 10px; border:1px solid [% css_colors.border_standard %];}
 a.dash-link:hover { text-decoration: underline !important; }
@@ -1171,8 +1154,6 @@ a.dash-link:hover { text-decoration: underline !important; }
     background-color: [% css_colors.accent_lighter %];
 }
 
-div.opac-multiline-button > a,
-.opac-multiline-button > a,
 .opac-button, .results_header_btns, #simple-detail-view-links { 
     color: [% css_colors.button_text %];
     font-weight: bold; 
@@ -1202,17 +1183,12 @@ div.opac-multiline-button > a,
     display: table-cell;
 }
 
-.opac-multiline-button > a:hover,
-.opac-button:hover, .results_header_btns a:hover, #simple-detail-view-links a:hover {
+a.opac-button:hover, .results_header_btns a:hover, #simple-detail-view-links a:hover {
     background: [% css_colors.primary %];
     text-decoration: none;
 }
 
-.opac-multiline-button > a {
-    display: inline-block;
-}
-
-.opac-multiline-button > a, a.opac-button, input.opac-button {
+a.opac-button, input.opac-button {
     margin: 10px;
     padding: 5px 10px 5px 10px;
 }
@@ -1515,16 +1491,11 @@ a.preflib_change {
     font-weight: bold; color: [% css_colors.text_alert %];
 }
 
-.record_title {
-    font-weight: bold;
-}
-
-.record_author {
-    font-style: italic;
+#maintenance_message {
+    padding: 5px; 
+    width: 100%; 
+    background-color: [% css_colors.text_alert %]; 
+    color: [% css_colors.text_invert %]; 
+    text-align: center;
 }
 
-.password_message {
-    padding-top: 1em;
-    padding-bottom: 0.5em;
-       font-style: italic;
-}
\ No newline at end of file
index 7ac7728..04a3758 100644 (file)
@@ -1,3 +1,8 @@
+[% IF ctx.maintenance_message %]
+<div id="maintenance_message">
+[%= ctx.maintenance_message %]
+</div>
+[% END %]
 [% IF !ctx.is_staff %]
 <div id="header-wrap">
 <div id="header">
@@ -9,7 +14,7 @@
         <div id="your-acct-login">
             <a href="[% mkurl(ctx.opac_root _ '/myopac/main') %]" 
                 class="opac-button opac-button-header" id="home_myopac_link">
-                [% l('My Account') %]
+                [% l('Your Account Log in') %]
             </a>
         </div>
         [% ELSE %]