From 56a63f03c5f057fa06e1b093fdc35906e3ac4176 Mon Sep 17 00:00:00 2001 From: James Fournie Date: Wed, 10 Jul 2013 20:41:51 -0400 Subject: [PATCH] Server maintenance message via Apache config 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 Signed-off-by: Dan Scott --- Open-ILS/examples/apache/eg.conf | 154 ++++++++++++++++++ .../perlmods/lib/OpenILS/WWW/EGCatLoader.pm | 2 + Open-ILS/src/templates/opac/css/style.css.tt2 | 61 ++----- Open-ILS/src/templates/opac/parts/topnav.tt2 | 7 +- 4 files changed, 178 insertions(+), 46 deletions(-) create mode 100644 Open-ILS/examples/apache/eg.conf diff --git a/Open-ILS/examples/apache/eg.conf b/Open-ILS/examples/apache/eg.conf new file mode 100644 index 0000000000..aec2c286b2 --- /dev/null +++ b/Open-ILS/examples/apache/eg.conf @@ -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 +# ---------------------------------------------------------------------------------- + + Order allow,deny + Allow from all + + + +# ---------------------------------------------------------------------------------- +# XUL directory +# ---------------------------------------------------------------------------------- + + Options Indexes FollowSymLinks + AllowOverride None + Order allow,deny + Allow from all + + + +# ---------------------------------------------------------------------------------- +# 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/" + + 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 + + + +# ---------------------------------------------------------------------------------- +# Updates folder +# ---------------------------------------------------------------------------------- +Alias /updates/ "/openils/var/updates/pub/" + + + ForceType cgi-script + + + ForceType cgi-script + + + ForceType cgi-script + + + ForceType cgi-script + + AllowOverride None + Options None + Allow from all + Options ExecCGI + + + +# ---------------------------------------------------------------------------------- +# 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 + + 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 + + + +# ---------------------------------------------------------------------------------- +# 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 + + 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 + + +# 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." diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 0838a29eb5..e2de1e8a85 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -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; diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2 index 63c20bfbca..7ca45febde 100644 --- a/Open-ILS/src/templates/opac/css/style.css.tt2 +++ b/Open-ILS/src/templates/opac/css/style.css.tt2 @@ -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 diff --git a/Open-ILS/src/templates/opac/parts/topnav.tt2 b/Open-ILS/src/templates/opac/parts/topnav.tt2 index 7ac772888f..04a3758d9c 100644 --- a/Open-ILS/src/templates/opac/parts/topnav.tt2 +++ b/Open-ILS/src/templates/opac/parts/topnav.tt2 @@ -1,3 +1,8 @@ +[% IF ctx.maintenance_message %] +
+[%= ctx.maintenance_message %] +
+[% END %] [% IF !ctx.is_staff %]