[open-ils-commits] [GIT] Evergreen ILS branch master updated. dbc5fe423f30eb2a826ce57ded79d70c8da8c2e1

Evergreen Git git at git.evergreen-ils.org
Mon Jul 30 16:04:45 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  dbc5fe423f30eb2a826ce57ded79d70c8da8c2e1 (commit)
       via  5ab9f4c4e727449f547f170784179ac65ed09cef (commit)
       via  b7e2789d529fe9831e555fc69a0f4a125da6c15d (commit)
       via  140c05d8a9807d94472a15d5e487487d072781f1 (commit)
       via  6a6010e68e3badef023e57c1dd6ab275b2357cc4 (commit)
      from  3a7a4ad057cfdab823e2788cc0a872d32aba7207 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit dbc5fe423f30eb2a826ce57ded79d70c8da8c2e1
Author: Dan Scott <dan at coffeecode.net>
Date:   Sun Jul 29 23:19:21 2012 -0400

    TPAC: Address remaining colors and background URL image
    
    Thanks to Thomas Berezansky for finding these remaining hard-coded CSS
    colors, and raising a question about one of the background images that
    turns out to not currently being in use.
    
    Signed-off-by: Dan Scott <dan at coffeecode.net>
    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>

diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2
index 5ed8ccb..07300f8 100644
--- a/Open-ILS/src/templates/opac/css/style.css.tt2
+++ b/Open-ILS/src/templates/opac/css/style.css.tt2
@@ -356,7 +356,7 @@ h2.rdetail_uris {
 }
 div.rdetail_uris {
     padding: 0.5em 1em 0.5em 1em;
-    background-color: lightGray;
+    background-color: [% css_colors.accent_lighter2 %];
 }
 div.rdetail_uris ul li {
     position: relative;
@@ -486,18 +486,7 @@ div.format_icon {
     color: [% css_colors.text_invert %];
 }
 
-#paginate-homebanner a.toc {
-    display:block;
-    width:20px;
-    height:20px;
-    background:gray;
-    float:left;
-    margin-left:2px;
-    margin-right:2px;
-    margin-top:2px;
-}
-
-#rdetail_extras_expand, #rdetail_extras_collapse, #rdetail_locs_collapse {
+##rdetail_extras_expand, #rdetail_extras_collapse, #rdetail_locs_collapse {
     margin-left: 13px;
 }
 
@@ -511,13 +500,6 @@ div.format_icon {
     margin:0;
 }
 
-#paginate-homebanner a.selected {
-    border: 2px solid [% css_colors.border_dark %];
-    margin-top:0px;
-    margin-left:0px;
-    margin-right:0px;
-}
-
 .almost-content-wrapper {
     background: [% css_colors.background %];
 }
@@ -593,11 +575,6 @@ div.format_icon {
     padding-top: 1em;
 }
 
-#home-buttons-inner {
-    height:117px;
-    background:#bda964;
-}
-
 #holds_temp_parent td {
     border-bottom:1px solid [% css_colors.border_standard %];
 }
@@ -892,7 +869,8 @@ table.acct_notes th {
 }
 
 .payment-processing {
-    font-weight: bold; color: green;
+    font-weight: bold;
+    color: [% css_colors.text_greatnews %];
     font-size: 120%;
     padding: 10px; border: 1px solid [% css_colors.accent_medium_dark %];
     text-align: center;
@@ -928,7 +906,13 @@ table.acct_notes th {
 .facetFieldLabel { padding-left: 2px; margin-top: 5px; margin-bottom: 5px; font-weight: bold; text-align: left; }
 .extraFacetFieldsWrapper { }
 .toggleExtraFacetFieldsButton { float: right; margin: 0px; padding: 0px; }
-.facetFieldLineCount { display: inline-block; border-right: 1px solid [% css_colors.accent_light %]; color: gray; width: 3em; margin-right: 3px }
+.facetFieldLineCount {
+    display: inline-block;
+    border-right: 1px solid [% css_colors.accent_light %];
+    color: [% css_colors.accent_mediumdark %];
+    width: 3em;
+    margin-right: 3px
+}
 .facetField { border-top: 1px solid [% css_colors.accent_light %]; }
 .facetFields { padding-left: 5px; }
 .facetFieldLineValue { overflow: hidden; text-overflow: ellipsis; }
@@ -988,10 +972,6 @@ div.facet_sidebar {
     padding-top:6px;
 }
 
-.facet_box_wrapper .box_wrapper .bottom {
-    background:url('/images/facet_box_bg_bottom.png') no-repeat;
-}
-
 .facet_template {
     padding-bottom:5px;
 }
@@ -1003,7 +983,7 @@ div.facet_sidebar {
 
 .facet_template .count {
     float:right;
-    color:#818080;
+    color: [% css_colors.accent_mediumdark %];
     padding-right:11px;
 }
 
@@ -1204,7 +1184,10 @@ a.opac-button {
 .bookbag-item-row td { vertical-align: top; }
 
 .error { color: [% css_colors.text_alert %]; font-weight: bold; }
-.success { color: green; font-weight: bold; }
+.success {
+    color: [% css_colors.text_greatnews %];
+    font-weight: bold;
+}
 
 .rdetail_related_subjects {
     margin-top: 1.5em;
@@ -1401,37 +1384,37 @@ a.preflib_change {
 }
 .popmenu li:hover li a {
     background-color: [% css_colors.primary %]; 
-    color: [% css_colors.accent_ultratint %];
+    color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li a:hover {
-    background-color: [% css_colors.accent_ultratint %]; 
+    background-color: [% css_colors.accent_ultralight %]; 
     color: [% css_colors.primary %];
 }
 /* Styles for the temporary list entry. */
 .popmenu li:hover li[class~="temporary"] a {
     background-color: [% css_colors.primary %]; 
-    color: [% css_colors.accent_ultratint %];
+    color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="temporary"] a:hover {
-    background-color: [% css_colors.accent_ultratint %]; 
+    background-color: [% css_colors.accent_ultralight %]; 
     color: [% css_colors.primary %];
 }
 /* Styles for the default list entry. */
 .popmenu li:hover li[class~="default"] a {
     background-color: [% css_colors.primary %]; 
-    color: [% css_colors.accent_ultratint %];
+    color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="default"] a:hover {
-    background-color: [% css_colors.accent_ultratint %]; 
+    background-color: [% css_colors.accent_ultralight %]; 
     color: [% css_colors.primary %];
 }
 /* Styles for the new list entry. */
 .popmenu li:hover li[class~="new"] a {
     background-color: [% css_colors.primary %]; 
-    color: [% css_colors.accent_ultratint %];
+    color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="new"] a:hover {
-    background-color: [% css_colors.accent_ultratint %]; 
+    background-color: [% css_colors.accent_ultralight %]; 
     color: [% css_colors.primary %];
 }
 /* Style to add a divider on the menu. */
diff --git a/Open-ILS/src/templates/opac/parts/css/colors.tt2 b/Open-ILS/src/templates/opac/parts/css/colors.tt2
index f8a1749..eda641d 100644
--- a/Open-ILS/src/templates/opac/parts/css/colors.tt2
+++ b/Open-ILS/src/templates/opac/parts/css/colors.tt2
@@ -9,6 +9,7 @@
         text_attention = "#ffcc33", # pumpkin orange
         text_badnews = "#f41d36", # cherry red
         text_goodnews = "#1dd93c", # lime green
+        text_greatnews = "green", # green
         text_invert = "#fff", # white
         text_match = "#c00", # deep red
         primary = "#00593d", # dark green
@@ -20,7 +21,6 @@
         accent_lighter2 = "#d8d8d8", #  grey (lighter again)
         accent_lightest = "#eee", #  grey (lightest)
         accent_ultralight = "#f0f0f0", # ivory
-        accent_ultratint = "#f0e0e0", # ivory-pink
         accent_medium = "#999", # gun metal grey (medium)
         accent_mediumdark = "#888", # gun metal grey (medium dark)
         accent_dark = "#666", # gun metal grey (dark)
diff --git a/Open-ILS/web/images/facet_box_bg_bottom.png b/Open-ILS/web/images/facet_box_bg_bottom.png
deleted file mode 100644
index fc776c3..0000000
Binary files a/Open-ILS/web/images/facet_box_bg_bottom.png and /dev/null differ
diff --git a/docs/RELEASE_NOTES_NEXT/tpac-css-colors.txt b/docs/RELEASE_NOTES_NEXT/tpac-css-colors.txt
new file mode 100644
index 0000000..b59ccae
--- /dev/null
+++ b/docs/RELEASE_NOTES_NEXT/tpac-css-colors.txt
@@ -0,0 +1,29 @@
+TPAC: Simplified CSS Color Customization
+========================================
+CSS colors are now defined as a pair of Template::Toolkit files,
+`Open-ILS/src/templates/opac/css/styles.css.tt2` and
+`Open-ILS/src/templates/opac/parts/css/colors.tt2`. Evergreen administrators
+can customize the color scheme for a given skin by copying `colors.tt2` into a
+template override directory and adjusting the colors as desired.
+
+Change required to eg_vhost.conf
+--------------------------------
+To enable Apache to pass the CSS file to the Template::Toolkit handler, you
+must remove `.css` from the list of file extensions that should not be passed
+to a handler in `eg_vhost.conf` as follows:
+
+.From
+------------------------------------------------------------------------------
+<LocationMatch ^/eg/.*(\.js|\.css|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
+    SetHandler None
+</LocationMatch>
+------------------------------------------------------------------------------
+
+.To
+------------------------------------------------------------------------------
+<LocationMatch ^/eg/.*(\.js|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
+    SetHandler None
+</LocationMatch>
+------------------------------------------------------------------------------
+
+After making this change, restart Apache to make the change take effect.

commit 5ab9f4c4e727449f547f170784179ac65ed09cef
Author: Dan Scott <dan at coffeecode.net>
Date:   Sun Jul 29 00:31:14 2012 -0400

    TPAC CSS: catch new colours added to master recently
    
    A few new colours were added to the CSS with recent features; roll them
    into the CSS templates for good measure.
    
    Signed-off-by: Dan Scott <dan at coffeecode.net>
    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>

diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2
index 178435f..5ed8ccb 100644
--- a/Open-ILS/src/templates/opac/css/style.css.tt2
+++ b/Open-ILS/src/templates/opac/css/style.css.tt2
@@ -42,7 +42,7 @@ a {
 
 /*
 #search-wrapper select {
-    border:0px solid black;
+    border:0px solid [% css_colors.border_dark %];
     filter:alpha(opacity=0);
     -moz-opacity:0;
     -khtml-opacity:0;
@@ -512,7 +512,7 @@ div.format_icon {
 }
 
 #paginate-homebanner a.selected {
-    border: 2px solid black;
+    border: 2px solid [% css_colors.border_dark %];
     margin-top:0px;
     margin-left:0px;
     margin-right:0px;
@@ -525,7 +525,7 @@ div.format_icon {
 #content-wrapper {
     background: [% css_colors.background %];
     min-height: 260px;
-    border-bottom: 1px solid black;
+    border-bottom: 1px solid [% css_colors.border_dark %];
 }
 
 .content-wrapper-record-page { top: -15px; position: relative; }
@@ -743,7 +743,7 @@ div.result_place_hold {
 }
 
 #myopac_holds_main_table td {
-    border: 1px solid black;
+    border: 1px solid [% css_colors.border_dark %];
     
 }
 
@@ -1187,7 +1187,7 @@ a.opac-button {
 }
 
 .rdetail-mfhd-bottom {
-    border-bottom: thin solid black;
+    border-bottom: thin solid [% css_colors.border_dark %];
     width: 100%;
 }
 
@@ -1365,9 +1365,9 @@ a.preflib_change {
 }
 
 #ac_tab_wrapper { width : 100%; }
-.ac_tab { float: left; padding-right: 10px; font-size: 110%; padding: 5px; border: 1px solid #417860; }
-.ac_tab_selected { background-color: #417860; }
-.ac_tab_selected a { color: #FFF; }
+.ac_tab { float: left; padding-right: 10px; font-size: 110%; padding: 5px; border: 1px solid [% css_colors.primary_offset %]; }
+.ac_tab_selected { background-color: [% css_colors.primary_offset %]; }
+.ac_tab_selected a { color: [% css_colors.text_invert %]; }
 #ac_content { clear: both; width: 100%; margin-top: 10px; }
 
 /* Popmenu styles used for making css menus. */
@@ -1385,14 +1385,14 @@ a.preflib_change {
 .popmenu li ul {
     display: none; 
     width: 10em; /* Width to help Opera out */
-    background-color: #00593d;
+    background-color: [% css_colors.primary %];
 }
 .popmenu li:hover ul {
     display: block;
     position: absolute;
     margin: 0;
     padding: 0;
-    border-color: black;
+    border-color: [% css_colors.border_dark %];
     border-width: 1px;
     border-style: solid;
 }
@@ -1400,44 +1400,44 @@ a.preflib_change {
     float: none;
 }
 .popmenu li:hover li a {
-    background-color: #00593d; 
-    color: #f0e0e0;
+    background-color: [% css_colors.primary %]; 
+    color: [% css_colors.accent_ultratint %];
 }
 .popmenu li li a:hover {
-    background-color: #f0e0e0; 
-    color: #00593d;
+    background-color: [% css_colors.accent_ultratint %]; 
+    color: [% css_colors.primary %];
 }
 /* Styles for the temporary list entry. */
 .popmenu li:hover li[class~="temporary"] a {
-    background-color: #00593d; 
-    color: #f0e0e0;
+    background-color: [% css_colors.primary %]; 
+    color: [% css_colors.accent_ultratint %];
 }
 .popmenu li li[class~="temporary"] a:hover {
-    background-color: #f0e0e0; 
-    color: #00593d;
+    background-color: [% css_colors.accent_ultratint %]; 
+    color: [% css_colors.primary %];
 }
 /* Styles for the default list entry. */
 .popmenu li:hover li[class~="default"] a {
-    background-color: #00593d; 
-    color: #f0e0e0;
+    background-color: [% css_colors.primary %]; 
+    color: [% css_colors.accent_ultratint %];
 }
 .popmenu li li[class~="default"] a:hover {
-    background-color: #f0e0e0; 
-    color: #00593d;
+    background-color: [% css_colors.accent_ultratint %]; 
+    color: [% css_colors.primary %];
 }
 /* Styles for the new list entry. */
 .popmenu li:hover li[class~="new"] a {
-    background-color: #00593d; 
-    color: #f0e0e0;
+    background-color: [% css_colors.primary %]; 
+    color: [% css_colors.accent_ultratint %];
 }
 .popmenu li li[class~="new"] a:hover {
-    background-color: #f0e0e0; 
-    color: #00593d;
+    background-color: [% css_colors.accent_ultratint %]; 
+    color: [% css_colors.primary %];
 }
 /* Style to add a divider on the menu. */
 .popmenu li li[class~="divider"] {
     border-bottom-width: 1px;
-    border-bottom-color: black;
+    border-bottom-color: [% css_colors.border_dark %];
     border-bottom-style: solid;
 }
     
diff --git a/Open-ILS/src/templates/opac/parts/css/colors.tt2 b/Open-ILS/src/templates/opac/parts/css/colors.tt2
index 5babc04..f8a1749 100644
--- a/Open-ILS/src/templates/opac/parts/css/colors.tt2
+++ b/Open-ILS/src/templates/opac/parts/css/colors.tt2
@@ -13,17 +13,20 @@
         text_match = "#c00", # deep red
         primary = "#00593d", # dark green
         primary_fade = "#007a54", # medium green
+        primary_offset = "#417860", # light_green
         control = "#69A088", # lighter green
         accent_light = "#ccc", #  grey (light)
         accent_lighter = "#ddd", #  grey (lighter)
         accent_lighter2 = "#d8d8d8", #  grey (lighter again)
         accent_lightest = "#eee", #  grey (lightest)
         accent_ultralight = "#f0f0f0", # ivory
+        accent_ultratint = "#f0e0e0", # ivory-pink
         accent_medium = "#999", # gun metal grey (medium)
         accent_mediumdark = "#888", # gun metal grey (medium dark)
         accent_dark = "#666", # gun metal grey (dark)
         accent_darker = "#333", # gun metal grey (darker)
         border_standard = "#e9ebf3", # light grey-blue
+        border_dark = "black", # black
         border_alert = "red", # red
         button_text = "#fbf9f9", # off-white 
         button_text_shadow = "#555555", # medium grey

commit b7e2789d529fe9831e555fc69a0f4a125da6c15d
Author: Dan Scott <dan at coffeecode.net>
Date:   Sun Jul 29 00:19:30 2012 -0400

    TPAC CSS: Whitespace consistency
    
    Resolve the spaces and tabs quandary.
    
    Signed-off-by: Dan Scott <dan at coffeecode.net>
    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>

diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2
index 34661fa..178435f 100644
--- a/Open-ILS/src/templates/opac/css/style.css.tt2
+++ b/Open-ILS/src/templates/opac/css/style.css.tt2
@@ -1,38 +1,38 @@
 [%- PROCESS "opac/parts/css/colors.tt2" %]
 
 body {
-	margin:0;
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 12px;
-	background: [% css_colors.primary %];
+    margin:0;
+    font-family: Arial, Helvetica, sans-serif;
+    font-size: 12px;
+    background: [% css_colors.primary %];
 }
 
 img {
-	border: none;
+    border: none;
 }
 
 #topnav_logo {
-	padding-bottom: 25px;
+    padding-bottom: 25px;
 }
 
 #homesearch_main_logo {
-        padding-top: 60px;
+    padding-top: 60px;
 }
 
 a {
-	color: [% css_colors.primary %];
+    color: [% css_colors.primary %];
 }
 
 #search-wrapper input[type=text] {
-	margin:0;
-	padding:0;
+    margin:0;
+    padding:0;
 }
 
 #search-wrapper select, .results_header_lbl select {
-	border:1px solid [% css_colors.border_standard %];
-	margin:0;
-	padding:0;
-	width: 12em;
+    border:1px solid [% css_colors.border_standard %];
+    margin:0;
+    padding:0;
+    width: 12em;
 }
 
 .searchbar {
@@ -42,49 +42,49 @@ a {
 
 /*
 #search-wrapper select {
-	border:0px solid black;
-	filter:alpha(opacity=0);
-	-moz-opacity:0;
-	-khtml-opacity:0;
-	opacity:0;
-	padding:0;
-	margin:0;
-	height:18px;
-	font-size: 12px;
+    border:0px solid black;
+    filter:alpha(opacity=0);
+    -moz-opacity:0;
+    -khtml-opacity:0;
+    opacity:0;
+    padding:0;
+    margin:0;
+    height:18px;
+    font-size: 12px;
 }
 */
 h1 {
-	margin:0;
-	margin-bottom: 5px;
-	font-size: 20px;
-	font-weight:normal;
+    margin:0;
+    margin-bottom: 5px;
+    font-size: 20px;
+    font-weight:normal;
 }
 
 h2 {
-	font-size: 16px;
-	font-weight:bold;
+    font-size: 16px;
+    font-weight:bold;
 }
 
 .hide_me, .hidden {
-	display: none;
-	visibility: hidden;
+    display: none;
+    visibility: hidden;
 }
 
 div.select-box-wrapper {
-	position:absolute;
-	padding-top:2px;
-	padding-left:3px;
-	overflow:hidden;
-	text-align:left;
+    position:absolute;
+    padding-top:2px;
+    padding-left:3px;
+    overflow:hidden;
+    text-align:left;
 }
 
 #dash_wrapper {
-	position: relative;
+    position: relative;
     top: -2em;
 }
 
 #dash_wrapper div {
-	position: relative;
+    position: relative;
     vertical-align: middle;
     background: [% css_colors.primary %];
     border-radius: 5px;
@@ -94,14 +94,14 @@ div.select-box-wrapper {
 
 span.dash_divider {
     margin: 0em 1em 0em 1em;
-	position: relative;
+    position: relative;
     top: 10px;
     color: [% css_colors.primary_fade %];
 }
 
 #dashboard {
-	clear:both;
-	float:right;
+    clear:both;
+    float:right;
     margin-top: 1em;
     background: [% css_colors.primary %];
     border-radius: 5px;
@@ -109,15 +109,15 @@ span.dash_divider {
 }
 
 #dashboard span.dash-align a {
-	font-weight: bold;
-	text-decoration: none;
-	position: relative;
+    font-weight: bold;
+    text-decoration: none;
+    position: relative;
     top: 10px;
 }
 
 #dash_user {
-	font-weight: bold;
-	text-transform: capitalize;
+    font-weight: bold;
+    text-transform: capitalize;
     position: relative;
     top: 10px;
 }
@@ -136,71 +136,71 @@ span.dash_divider {
     background-color: [% css_colors.primary_fade %];
 }
 #header {
-	color: [% css_colors.background %];
-	padding-top: 26px;
-	margin-left: 1em;
-	font-size:11px;
+    color: [% css_colors.background %];
+    padding-top: 26px;
+    margin-left: 1em;
+    font-size:11px;
 }
 
 #header a {
-	color: [% css_colors.background %];
+    color: [% css_colors.background %];
 }
 
 #header a:hover {
-	color: [% css_colors.text_invert %];
-	text-decoration: none;
+    color: [% css_colors.text_invert %];
+    text-decoration: none;
 }
 
 #header-links {
-	color: [% css_colors.text_invert %];
-	font-size: 11px;
-	font-weight: bold;
-	position: relative;
-	top:4px;
-	
+    color: [% css_colors.text_invert %];
+    font-size: 11px;
+    font-weight: bold;
+    position: relative;
+    top:4px;
+    
 }
 
 #header-links a {
-	color: [% css_colors.text_invert %];
-	display: block;
-	float:left;
-	margin-right:22px;
-	text-decoration: none;
+    color: [% css_colors.text_invert %];
+    display: block;
+    float:left;
+    margin-right:22px;
+    text-decoration: none;
 }
 
 #header-links a:hover {
-	color: [% css_colors.text_invert %];
-	text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
-	text-decoration: none;
+    color: [% css_colors.text_invert %];
+    text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
+    text-decoration: none;
 }
 
 #header #header-links2 {
-	position:relative;
-	top:-8px;
-	color: [% css_colors.text_invert %];
-	padding-bottom: 15px;
+    position:relative;
+    top:-8px;
+    color: [% css_colors.text_invert %];
+    padding-bottom: 15px;
 }
 
 #header #header-links2 a {
-	color: [% css_colors.text_invert %];
+    color: [% css_colors.text_invert %];
 }
 
 #header #header-links2 a:hover {
-	text-decoration: underline;
+    text-decoration: underline;
 }
 
 #header #your-acct-login {
-	padding-top:10px;
+    padding-top:10px;
 }
 
 #gold-links {
-	margin-left: 1em;
-	padding-left:0px;
+    margin-left: 1em;
+    padding-left:0px;
 }
 
 #gold-links-home {
-	margin:auto;
-	padding-left:0px;
+    margin:auto;
+    padding-left:0px;
 }
 
 #gold-links-holder {
@@ -209,52 +209,52 @@ span.dash_divider {
 }
 
 #util-bar {
-	margin-left: 1em;
-	padding-left:0px;
-	height:0px;
+    margin-left: 1em;
+    padding-left:0px;
+    height:0px;
 }
 
 #search-wrapper {
-	border-bottom: 1px solid [% css_colors.border_standard %];
-	padding-bottom: 5px;
-	background: [% css_colors.background %];
+    border-bottom: 1px solid [% css_colors.border_standard %];
+    padding-bottom: 5px;
+    background: [% css_colors.background %];
 }
 
 .search_box_wrapper {
-	padding: 10px 5px 5px 3px;
+    padding: 10px 5px 5px 3px;
 }
 
 #search-wrapper #breadcrumb {
-	margin-top:0px;
-	font-size: 10px;
-	float:left;
+    margin-top:0px;
+    font-size: 10px;
+    float:left;
 }
 
 #search-wrapper #search-within {
-	margin-top:10px;
-	float:right;
-	position:relative;
-	left:-173px;
+    margin-top:10px;
+    float:right;
+    position:relative;
+    left:-173px;
 }
 
 #search-wrapper #breadcrumb a {
-	color: [% css_colors.text %];
+    color: [% css_colors.text %];
 }
 
 #search-wrapper #search_frm label {
-	font-size: 10px;
+    font-size: 10px;
 }
 
 #search-wrapper #search-box {
-	margin-left: 1em;
-	padding-left: 0px;
-	padding-top: 10px;
-	padding-bottom: 10px;
+    margin-left: 1em;
+    padding-left: 0px;
+    padding-top: 10px;
+    padding-bottom: 10px;
 }
 
 #adv_search_tabs, #acct_tabs, #acct_fines_tabs, #acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs, #results_header_inner{
-	height: 40px;
-	margin-left: 1em;
+    height: 40px;
+    margin-left: 1em;
 }
 
 #adv_search_tabs a, #acct_tabs a, #acct_fines_tabs a, #acct_checked_tabs a, #acct_holds_tabs a, #acct_prefs_tabs a {
@@ -342,13 +342,13 @@ span.dash_divider {
 }
 
 #rdetail_details_table {
-	margin-top: 15px;
+    margin-top: 15px;
 }
 
 #rdetail_image { border: none; }
 #rdetail_image_cell {
-	padding-top: 3px;
-	padding-right: 10px;
+    padding-top: 3px;
+    padding-right: 10px;
 }
 
 h2.rdetail_uris {
@@ -391,10 +391,10 @@ span#rdetail_hold_counts {
 }
 
 .rdetail_aux_utils {
-	border-left:1px dotted [% css_colors.accent_light %];
-	padding-left: 17px;
-	padding-bottom: 6px;
-	padding-right: 70px;
+    border-left:1px dotted [% css_colors.accent_light %];
+    padding-left: 17px;
+    padding-bottom: 6px;
+    padding-right: 70px;
 }
 
 div.place_hold {
@@ -416,10 +416,10 @@ div.format_icon {
 }
 
 .results_aux_utils {
-	border-left:1px dotted [% css_colors.accent_light %];
-	padding-left: 17px;
-	padding-bottom: 6px;
-	padding-right: 50px;
+    border-left:1px dotted [% css_colors.accent_light %];
+    padding-left: 17px;
+    padding-bottom: 6px;
+    padding-right: 50px;
 }
 
 .result_util {
@@ -437,178 +437,178 @@ div.format_icon {
 }
 
 #rdetails_status td, #rdetails_status2 td {
-	white-space:nowrap !important;
-	padding: 7px 0px 3px 13px;
+    white-space:nowrap !important;
+    padding: 7px 0px 3px 13px;
 }
 
 #rdetails_status thead th {
-	background-color: [% css_colors.accent_lighter2 %];
-	padding: 13px 0px 13px 13px;
-	font-size: 10px;
-	text-transform: uppercase;
-	font-weight: bold;
+    background-color: [% css_colors.accent_lighter2 %];
+    padding: 13px 0px 13px 13px;
+    font-size: 10px;
+    text-transform: uppercase;
+    font-weight: bold;
     text-align: left;
 }
 
 #rdetails_status tbody td {
-	padding-left: 13px;
+    padding-left: 13px;
     text-align: left;
 }
 
 .rdetail_extras {
-	height: 29px;
-	background: [% css_colors.primary %];
-	padding-top:1px;
-	margin-bottom: 10px;
-	margin-top: 10px;
-	clear:both;
+    height: 29px;
+    background: [% css_colors.primary %];
+    padding-top:1px;
+    margin-bottom: 10px;
+    margin-top: 10px;
+    clear:both;
 }
 
 .rdetail_extras_hr {
-	height: 1px;
-	background: [% css_colors.accent_light %];
-	margin-left: 1px;
-	margin-right: 1px;
+    height: 1px;
+    background: [% css_colors.accent_light %];
+    margin-left: 1px;
+    margin-right: 1px;
 }
 
 .rdetail_extras_link {
-	padding-top: 4px;
-	padding-left: 12px;
-	font-size: 10px;
-	text-transform: uppercase;
-	font-weight: bold;
+    padding-top: 4px;
+    padding-left: 12px;
+    font-size: 10px;
+    text-transform: uppercase;
+    font-weight: bold;
 }
 
 .rdetail_extras_lbl {
-	position: relative;
-	top: -4px;
-	left: 7px;
-	color: [% css_colors.text_invert %];
+    position: relative;
+    top: -4px;
+    left: 7px;
+    color: [% css_colors.text_invert %];
 }
 
 #paginate-homebanner a.toc {
-	display:block;
-	width:20px;
-	height:20px;
-	background:gray;
-	float:left;
-	margin-left:2px;
-	margin-right:2px;
-	margin-top:2px;
+    display:block;
+    width:20px;
+    height:20px;
+    background:gray;
+    float:left;
+    margin-left:2px;
+    margin-right:2px;
+    margin-top:2px;
 }
 
 #rdetail_extras_expand, #rdetail_extras_collapse, #rdetail_locs_collapse {
-	margin-left: 13px;
+    margin-left: 13px;
 }
 
 #rdetail_locs_expand, #rdetail_locs_collapse {
-	padding-bottom:3px;
-	margin-top:15px;
-	margin-left:13px;
+    padding-bottom:3px;
+    margin-top:15px;
+    margin-left:13px;
 }
 
 #rdetail_anotes_div .biography {
-	margin:0;
+    margin:0;
 }
 
 #paginate-homebanner a.selected {
-	border: 2px solid black;
-	margin-top:0px;
-	margin-left:0px;
-	margin-right:0px;
+    border: 2px solid black;
+    margin-top:0px;
+    margin-left:0px;
+    margin-right:0px;
 }
 
 .almost-content-wrapper {
-	background: [% css_colors.background %];
+    background: [% css_colors.background %];
 }
 
 #content-wrapper {
-	background: [% css_colors.background %];
-	min-height: 260px;
-	border-bottom: 1px solid black;
+    background: [% css_colors.background %];
+    min-height: 260px;
+    border-bottom: 1px solid black;
 }
 
 .content-wrapper-record-page { top: -15px; position: relative; }
 
 #main-content-home {
-	padding-left: 17px;
+    padding-left: 17px;
     margin-left: 1em;
 }
 #main-content {
-	padding-left: 0px;
+    padding-left: 0px;
     margin-left: 1em;
 }
 
 #main-content-after-bar {
-	margin-left: 1em;
-	padding-left: 4px;
+    margin-left: 1em;
+    padding-left: 4px;
 }
 
 #results-side-bar { float: left; width: 174px; margin-right: 5px; background: [% css_colors.background %]; }
 
 #main-content .login_boxes {
-	border: 1px solid [% css_colors.accent_lighter %];
+    border: 1px solid [% css_colors.accent_lighter %];
     background: linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
     background: -moz-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
     background: -ms-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
     background: -o-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
     background: -webkit-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
 
-	color: [% css_colors.accent_darker %];
+    color: [% css_colors.accent_darker %];
 }
 
 #main-content .login_boxes h1 {
-	font-weight: normal;
-	font-size: 25px;
-	margin:0;
+    font-weight: normal;
+    font-size: 25px;
+    margin:0;
 }
 
 #main-content .left_brain {
-	padding-left:28px;
-	padding-top:25px;
+    padding-left:28px;
+    padding-top:25px;
 }
 
 #main-content .left_brain input[type=text], #main-content .left_brain input[type=password] {
-	width:167px;
-	height:18px;
-	margin:0;
-	padding:0;
-	border:none;
-	background: none;
-	font-size: 15px;
-	color: [% css_colors.accent_medium %];
+    width:167px;
+    height:18px;
+    margin:0;
+    padding:0;
+    border:none;
+    background: none;
+    font-size: 15px;
+    color: [% css_colors.accent_medium %];
 }
 
 #main-content .left_brain .input_bg {
-	padding:10px 10px 0px 13px;
+    padding:10px 10px 0px 13px;
     background: [% css_colors.background %];
-	width:167px;
-	height:29px;
+    width:167px;
+    height:29px;
 }
 
 #login-failed-message {
-	font-size: 125%;
+    font-size: 125%;
     font-weight: bold;
-	color: [% css_colors.text_alert %];
+    color: [% css_colors.text_alert %];
     padding-top: 1em;
 }
 
 #home-buttons-inner {
-	height:117px;
-	background:#bda964;
+    height:117px;
+    background:#bda964;
 }
 
 #holds_temp_parent td {
-	border-bottom:1px solid [% css_colors.border_standard %];
+    border-bottom:1px solid [% css_colors.border_standard %];
 }
 
 #holds_temp_parent input, #holds_temp_parent select {
-	margin:0;
+    margin:0;
 }
 
 #results_header_bar {
-	background: [% css_colors.accent_medium %];
-	border-top:1px solid [% css_colors.accent_mediumdark %];
+    background: [% css_colors.accent_medium %];
+    border-top:1px solid [% css_colors.accent_mediumdark %];
 }
 
 #results_header_inner {
@@ -619,46 +619,46 @@ div.format_icon {
 .cached_list_div { width: 111px; height: 25px; }
 
 .results_header_div {
-	float: left;
-	width: 0px;
-	height: 25px;
-	border-left: 1px solid [% css_colors.accent_mediumdark %];
-	border-right: 1px solid [% css_colors.accent_medium %];
-	margin: 0px 13px;
+    float: left;
+    width: 0px;
+    height: 25px;
+    border-left: 1px solid [% css_colors.accent_mediumdark %];
+    border-right: 1px solid [% css_colors.accent_medium %];
+    margin: 0px 13px;
 }
 
 .results_header_lbl {
-	font-weight: bold;
-	float: left;
-	font-size: 11px;
-	color: [% css_colors.text %];
-	background: [% css_colors.accent_medium %];
-	margin-right: 6px;
+    font-weight: bold;
+    float: left;
+    font-size: 11px;
+    color: [% css_colors.text %];
+    background: [% css_colors.accent_medium %];
+    margin-right: 6px;
 }
 
 .results_header_sel {
     /* width: 88px; */
-	float:left;
-	margin:0;
+    float:left;
+    margin:0;
 }
 
 .results_header_nav1 {
-	padding: 5px 7px 6px 0px;
-	border-bottom: 1px dotted [% css_colors.accent_light %];
+    padding: 5px 7px 6px 0px;
+    border-bottom: 1px dotted [% css_colors.accent_light %];
 }
 
 .results_header_nav1 .h1 {
-	font-size:14px;
-	font-weight:bold;
-	color:[% css_colors.primary_fade %];
+    font-size:14px;
+    font-weight:bold;
+    color:[% css_colors.primary_fade %];
 }
 
 .start_end_links_span {
-	font-size: 11px;
+    font-size: 11px;
 }
 
 #result_table_div {
-	margin-top: 1em;
+    margin-top: 1em;
 }
 
 tr.result_table_row > td.results_row_count,
@@ -678,7 +678,7 @@ tr.result_table_row > td.result_table_pic_header {
 }
 
 .result_numbers {
-	font-size: 11px; padding-left:15px; white-space: nowrap; width: 320px;
+    font-size: 11px; padding-left:15px; white-space: nowrap; width: 320px;
 }
 
 .result_table_subtable {
@@ -702,94 +702,94 @@ div.result_place_hold {
 }
 
 .icon_text {
-	text-transform:capitalize;
+    text-transform:capitalize;
 }
 
 #myopac_summary_div p {
-	margin:0;
-	margin-bottom: 10px;
+    margin:0;
+    margin-bottom: 10px;
 }
 
 #acct_sum_checked_table td {
-	padding-bottom:5px;
+    padding-bottom:5px;
 }
 
 .zero_search_hits_main { float:left; width:300px; margin-top: 2ex; }
 .zero_search_hits_saved { float:left; width:200px; margin-top: 2ex; margin-right: 2em; }
 
 #zero_search_hits p {
-	margin-top:0;
+    margin-top:0;
 }
 
 #zero_hits_term {
-	text-transform: uppercase;
+    text-transform: uppercase;
     font-weight: bold;
 }
 
 #zero_search_hits #spell_check_link {
-	text-transform: uppercase;
+    text-transform: uppercase;
 }
 
 #zero_search_hits #zero_hits_suggestions {
-	text-transform: uppercase;
+    text-transform: uppercase;
 }
 
 .results_info_table td {
-	padding-right: 10px;
+    padding-right: 10px;
 }
 
 #myopac_holds_main_table {
-	border-collapse: collapse;
+    border-collapse: collapse;
 }
 
 #myopac_holds_main_table td {
-	border: 1px solid black;
-	
+    border: 1px solid black;
+    
 }
 
 #myopac_prefs_div .data_grid {
-	border-collapse:collapse;
+    border-collapse:collapse;
 }
 
 #myopac_prefs_div .data_grid td {
-	background:[% css_colors.accent_ultralight %];
-	border-bottom:3px solid [% css_colors.background %];
-	padding:6px 0px 7px 17px;
+    background:[% css_colors.accent_ultralight %];
+    border-bottom:3px solid [% css_colors.background %];
+    padding:6px 0px 7px 17px;
 }
 
 .header_middle {
-	height:22px;
-	font-size:14px;
-	font-weight:bold;
-	color:[% css_colors.primary_fade %];
-	padding: 0px 7px 0px 0px;
-	border-bottom: 1px dotted [% css_colors.accent_light %];
+    height:22px;
+    font-size:14px;
+    font-weight:bold;
+    color:[% css_colors.primary_fade %];
+    padding: 0px 7px 0px 0px;
+    border-bottom: 1px dotted [% css_colors.accent_light %];
 }
 
 .header_middle a {
-	font-size: 12px;
-	font-weight: normal;
+    font-size: 12px;
+    font-weight: normal;
 }
 
 .acct_sum_row {
-	padding: 7px 15px;
-	background: [% css_colors.accent_ultralight %];
-	margin-bottom: 2px;
-	font-size: 10px;
-	font-weight: bold;
-	text-transform: uppercase;
+    padding: 7px 15px;
+    background: [% css_colors.accent_ultralight %];
+    margin-bottom: 2px;
+    font-size: 10px;
+    font-weight: bold;
+    text-transform: uppercase;
 }
 
 .acct_sum_row a {
-	text-transform: none;
-	font-size: 12px;
-	position:relative;
-	top:-1px;
+    text-transform: none;
+    font-size: 12px;
+    position:relative;
+    top:-1px;
 }
 
 .acct_sum_row .view_link {
-	font-weight: normal;
-	font-size:12px;
+    font-weight: normal;
+    font-size:12px;
 }
 
 table.acct_notes {
@@ -807,71 +807,71 @@ table.acct_notes th {
 }
 
 #myopac_sum_fines {
-	float:right;
-	padding: 15px 0px 0px 23px;
-	background: [% css_colors.accent_ultralight %];
-	width: 177px;
-	height: 166px;
+    float:right;
+    padding: 15px 0px 0px 23px;
+    background: [% css_colors.accent_ultralight %];
+    width: 177px;
+    height: 166px;
 }
 
 #myopac_sum_fines_placehold { float: right; width: 177px; height: 166px; }
 
 .acct_holds_temp td {
-	text-align: left;
+    text-align: left;
 }
 
 #acct_checked_tabs .align, #acct_holds_tabs .align, #acct_prefs_tabs .align {
-	float:left;
-	/*padding-left:10px;*/
+    float:left;
+    /*padding-left:10px;*/
 }
 
 #acct_checked_main_header, #acct_holds_main_header, #acct_checked_hist_header, #acct_list_header, #acct_list_header_anon, #temp_list_holds {
-	font-weight:bold;
-	text-transform:uppercase;
-	font-size: 10px;
+    font-weight:bold;
+    text-transform:uppercase;
+    font-size: 10px;
 }
 
 #acct_checked_main_header td, #acct_holds_main_header td, #acct_checked_hist_header td, #acct_list_header td, #acct_list_header_anon td, #temp_list_holds td {
-	background: [% css_colors.accent_lighter2 %];
-	padding: 8px 0px 7px 0px;
+    background: [% css_colors.accent_lighter2 %];
+    padding: 8px 0px 7px 0px;
 }
 
 #acct_list_header select, #acct_list_header_anon select {
-	font-weight:normal;
-	text-transform:none;
+    font-weight:normal;
+    text-transform:none;
 }
 
 #acct_holds_activates_table label {
-	font-weight: bold;
-	font-size: 11px;
-	text-transform:uppercase;
-	padding-right: 5px;
+    font-weight: bold;
+    font-size: 11px;
+    text-transform:uppercase;
+    padding-right: 5px;
 }
 
 .adv_search_font {
-	font-size: 10px;
+    font-size: 10px;
 }
 
 .search_catalog_lbl {
-	font-size: 14px;
+    font-size: 14px;
 }
 
 .lbl1 {
-	font-size:14px;
-	font-weight:bold;
+    font-size:14px;
+    font-weight:bold;
 }
 
 .lbl2 {
-	font-size:10px;
-	font-weight:normal;
-	position:relative;
-	top:3px;
+    font-size:10px;
+    font-weight:normal;
+    position:relative;
+    top:3px;
 }
 
 #myopac_tabs, #adv_search_parent, #fines_payments_wrapper {
-	background: [% css_colors.primary_fade %];
-	padding-top:5px;
-	margin-bottom:20px;
+    background: [% css_colors.primary_fade %];
+    padding-top:5px;
+    margin-bottom:20px;
 }
 
 #fines_payments_wrapper {
@@ -899,24 +899,24 @@ table.acct_notes th {
 }
 
 #adv_search_parent {
-	margin-bottom:0px;
+    margin-bottom:0px;
 }
 
 #myopac_loading {
-	width:100%;
-	text-align:center;
-	padding-top:20px;
-	font-size:16px;
-	font-weight:bold;
+    width:100%;
+    text-align:center;
+    padding-top:20px;
+    font-size:16px;
+    font-weight:bold;
 }
 
 .chili_link {
-	width:100px !important;
-	text-align: center !important;
+    width:100px !important;
+    text-align: center !important;
 }
 
 .chili_review div.chili_link div {
-	margin: auto;
+    margin: auto;
 }
 
 [%- IF we_want_to_turn_on_facet_styling.defined; %]
@@ -941,70 +941,70 @@ div.facet_sidebar {
 }
 
 .facet_box_temp {
-	padding-bottom:3px;
-	width: 15em;
-	overflow:hidden;
+    padding-bottom:3px;
+    width: 15em;
+    overflow:hidden;
 }
 
 .facet_box_temp .header {
-	height:31px;
-	overflow:hidden;
-	background:[% css_colors.primary %];
-        -moz-border-top-left-radius: 5px;
-        border-top-left-radius: 5px;
-        -moz-border-top-right-radius: 5px;
-        border-top-right-radius: 5px;
-	font-weight:bold;
-	color:[% css_colors.text_invert %];
-	padding-top:4px;
+    height:31px;
+    overflow:hidden;
+    background:[% css_colors.primary %];
+    -moz-border-top-left-radius: 5px;
+    border-top-left-radius: 5px;
+    -moz-border-top-right-radius: 5px;
+    border-top-right-radius: 5px;
+    font-weight:bold;
+    color:[% css_colors.text_invert %];
+    padding-top:4px;
 }
 
 .facet_box_temp .header .title {
-	float:left;
-	padding-top:6px;
-	padding-left:12px;
-	overflow:hidden;
+    float:left;
+    padding-top:6px;
+    padding-left:12px;
+    overflow:hidden;
 }
 
 .facet_box_temp .header .button {
-	float:right;
-	padding-right:6px;
+    float:right;
+    padding-right:6px;
 }
 
 .facet_box_wrapper .box_wrapper {
-	position:relative;
-	top:-4px;
-	margin-bottom:-5px;
-	*margin-bottom:-6px;
+    position:relative;
+    top:-4px;
+    margin-bottom:-5px;
+    *margin-bottom:-6px;
 }
 
 .facet_box_wrapper .box_wrapper .box {
-	width: 14em;
-	border-top:1px solid [% css_colors.border_standard %];
-	border-left:1px solid [% css_colors.border_standard %];
-	border-right:1px solid [% css_colors.border_standard %];
-	background:[% css_colors.background %];
-	padding-left:12px;
-	padding-top:6px;
+    width: 14em;
+    border-top:1px solid [% css_colors.border_standard %];
+    border-left:1px solid [% css_colors.border_standard %];
+    border-right:1px solid [% css_colors.border_standard %];
+    background:[% css_colors.background %];
+    padding-left:12px;
+    padding-top:6px;
 }
 
 .facet_box_wrapper .box_wrapper .bottom {
-	background:url('/images/facet_box_bg_bottom.png') no-repeat;
+    background:url('/images/facet_box_bg_bottom.png') no-repeat;
 }
 
 .facet_template {
-	padding-bottom:5px;
+    padding-bottom:5px;
 }
 
 .facet_template .facet {
-	float:left;
-	width:124px;
+    float:left;
+    width:124px;
 }
 
 .facet_template .count {
-	float:right;
-	color:#818080;
-	padding-right:11px;
+    float:right;
+    color:#818080;
+    padding-right:11px;
 }
 
 .facet_template_selected {
@@ -1025,16 +1025,16 @@ div.facet_sidebar {
 }
 
 #footer {
-	padding-top:5px;
-	padding-bottom: 10px;
-	margin-left: 1em;
-	font-size: 11px;
+    padding-top:5px;
+    padding-bottom: 10px;
+    margin-left: 1em;
+    font-size: 11px;
 }
 
 #footer a {
-	color: [% css_colors.text_invert %];
-	text-decoration: none;
-	text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
+    color: [% css_colors.text_invert %];
+    text-decoration: none;
+    text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
 }
 
 #copyright_text, #footer_logo {
@@ -1042,9 +1042,9 @@ div.facet_sidebar {
 }
 
 .color_4 {
-	text-transform: uppercase;
-	font-weight: bold;
-	font-size: 10px;
+    text-transform: uppercase;
+    font-weight: bold;
+    font-size: 10px;
 }
 
 .advanced_div { padding-top: 15px; }

commit 140c05d8a9807d94472a15d5e487487d072781f1
Author: Dan Scott <dan at coffeecode.net>
Date:   Sun Jul 29 00:15:07 2012 -0400

    TPAC CSS: Remove unused classes and associated images
    
    Combing through the remaining url() usages in the TPAC CSS, it seems
    that most of the usages are unreferenced in the actual TPAC. Therefore,
    delete the cruft.
    
    Signed-off-by: Dan Scott <dan at coffeecode.net>
    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>

diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2
index ec75480..34661fa 100644
--- a/Open-ILS/src/templates/opac/css/style.css.tt2
+++ b/Open-ILS/src/templates/opac/css/style.css.tt2
@@ -78,18 +78,6 @@ div.select-box-wrapper {
 	text-align:left;
 }
 
-div.select-wrapper {
-	border:1px solid #4C8AB0;
-	display:inline-block;
-	position:relative;
-	z-index:2;
-	background:url('/images/dropdown.gif') no-repeat right center;
-}
-
-div.select-wrapper:hover {
-	background:url('/images/dropdown-hover.gif') no-repeat right center;
-}
-
 #dash_wrapper {
 	position: relative;
     top: -2em;
@@ -264,22 +252,6 @@ span.dash_divider {
 	padding-bottom: 10px;
 }
 
-#utils {
-	float:right;
-	z-index:1;
-	width:150px;
-	height:30px;
-	background:url('/images/utils-corner-left.png') no-repeat left top;
-	padding-left: 3px;
-	color: [% css_colors.text_invert %];
-	position:relative;
-}
-
-#utils a {
-	color: [% css_colors.text_invert %];
-	font-size: 10px;
-}
-
 #adv_search_tabs, #acct_tabs, #acct_fines_tabs, #acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs, #results_header_inner{
 	height: 40px;
 	margin-left: 1em;
@@ -546,78 +518,6 @@ div.format_icon {
 	margin-right:0px;
 }
 
-#hp-buttons {
-	margin: auto;
-	margin-top: 6px;
-    margin-left: 1em;
-}
-
-#hp-welcome {
-	position:absolute;
-	width:295px;
-	height:192px;
-	background: url('/images/banner-bg.png') no-repeat;
-	color: [% css_colors.background %];
-	padding-left: 33px;
-	padding-top: 21px;
-	z-index:9999999999;
-}
-
-#hp-welcome h1 {
-	font-size: 25px;
-	margin-bottom:15px;
-}
-
-#hp-welcome a {
-	color: [% css_colors.background %];
-	text-decoration: underline;
-}
-
-#hp-banner {
-	margin-left: 1em;
-	height: 213px;
-}
-
-#hp-ql-table {
-	margin-left: 2px;
-	padding-top: 3px;
-}
-
-#hp-ql-table a {
-	color: [% css_colors.accent_darker %];
-	font-weight: bold;
-	font-size: 13px;
-	text-transform: uppercase;
-	text-decoration: none;
-	display: block;
-	width: 144px;
-	height: 25px;
-	padding-top: 9px;
-	padding-left: 15px;
-	background: url('/images/button-bg.png') no-repeat;
-}
-
-#hp-ql-bottom {
-	height: 31px;
-	padding-left: 24px;
-	padding-top: 13px;
-	background: url('/images/hp-links-mid.jpg') repeat-x;
-}
-
-#hp-ql-bottom a {
-	display: inline-block;
-	text-decoration: none;
-	color: [% css_colors.text_invert %];
-	font-size: 15px;
-	font-weight: bold;
-}
-
-#hp-ql-bottom img {
-    position:relative;
-    top:-1px;
-    left:2px;
-}
-
 .almost-content-wrapper {
 	background: [% css_colors.background %];
 }
@@ -925,10 +825,6 @@ table.acct_notes th {
 	/*padding-left:10px;*/
 }
 
-#acct_checked_tabs .selected, #acct_holds_tabs .selected, #acct_prefs_tabs .selected {
-	/*background:url('/images/gray-arrow.png') left 3px no-repeat;*/
-}
-
 #acct_checked_main_header, #acct_holds_main_header, #acct_checked_hist_header, #acct_list_header, #acct_list_header_anon, #temp_list_holds {
 	font-weight:bold;
 	text-transform:uppercase;
diff --git a/Open-ILS/web/css/skin/default/opac/semiauto.css b/Open-ILS/web/css/skin/default/opac/semiauto.css
index bb2e114..5b80025 100644
--- a/Open-ILS/web/css/skin/default/opac/semiauto.css
+++ b/Open-ILS/web/css/skin/default/opac/semiauto.css
@@ -4,7 +4,6 @@
 .normal-height { height: 15px; }
 .big-height { height: 20px; }
 .very-big-height { height: 30px; }
-#gold-links-holder { height: 24px; background: #69a088; }
 .big-block { margin: auto; width: 974px; height: 0px; }
 .qtype_selector_margin { margin-right: 7px; }
 .warning_box { margin-top: 10px; }
diff --git a/Open-ILS/web/images/banner-bg.png b/Open-ILS/web/images/banner-bg.png
deleted file mode 100644
index 6d990c5..0000000
Binary files a/Open-ILS/web/images/banner-bg.png and /dev/null differ
diff --git a/Open-ILS/web/images/dropdown-hover.gif b/Open-ILS/web/images/dropdown-hover.gif
deleted file mode 100644
index 1ac62ae..0000000
Binary files a/Open-ILS/web/images/dropdown-hover.gif and /dev/null differ
diff --git a/Open-ILS/web/images/dropdown.gif b/Open-ILS/web/images/dropdown.gif
deleted file mode 100644
index 3aab6fe..0000000
Binary files a/Open-ILS/web/images/dropdown.gif and /dev/null differ
diff --git a/Open-ILS/web/images/hp-links-mid.jpg b/Open-ILS/web/images/hp-links-mid.jpg
deleted file mode 100644
index c9cdabf..0000000
Binary files a/Open-ILS/web/images/hp-links-mid.jpg and /dev/null differ
diff --git a/Open-ILS/web/images/utils-corner-left.png b/Open-ILS/web/images/utils-corner-left.png
deleted file mode 100644
index db70a75..0000000
Binary files a/Open-ILS/web/images/utils-corner-left.png and /dev/null differ

commit 6a6010e68e3badef023e57c1dd6ab275b2357cc4
Author: Dan Scott <dscott at laurentian.ca>
Date:   Thu Jul 26 17:39:06 2012 -0400

    Templatize TPAC styles
    
    Begin by gathering the colors together in one consistent file, such that
    skinning for the purposes of color only needs to touch one small file.
    Also, it should make things easier for designers to reduce drastically
    the number of colors that are actually used in the design.
    
    Also, enable TT to handle the CSS files in Apache configuration.
    
    Also, convert the login background image into a simple gradient.
    
    Signed-off-by: Dan Scott <dscott at laurentian.ca>
    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>

diff --git a/Open-ILS/examples/apache/eg_vhost.conf b/Open-ILS/examples/apache/eg_vhost.conf
index cabf5e3..c0ff745 100644
--- a/Open-ILS/examples/apache/eg_vhost.conf
+++ b/Open-ILS/examples/apache/eg_vhost.conf
@@ -633,7 +633,7 @@ RewriteRule ^/openurl$ ${openurl:%1} [NE,PT]
 # Apache to serve the file.  However, in the interest of speed, go ahead 
 # and tell Apache to avoid asking OpenILS::WWW::EGWeb for static content.
 # Add more exemptions as needed.
-<LocationMatch ^/eg/.*(\.js|\.css|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
+<LocationMatch ^/eg/.*(\.js|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
     SetHandler None
 </LocationMatch>
 
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
index 6f68647..ca9b149 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
@@ -115,6 +115,7 @@ sub load {
         $path =~ /opac\/my(opac\/lists|list)/;
 
     return $self->load_simple("home") if $path =~ m|opac/home|;
+    return $self->load_simple("css") if $path =~ m|opac/css|;
     return $self->load_simple("advanced") if
         $path =~ m:opac/(advanced|numeric|expert):;
 
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
index f44a0af..1baf0ab 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
@@ -23,8 +23,6 @@ sub handler {
     my $ctx = load_context($r);
     my $base = $ctx->{base_path};
 
-    $r->content_type('text/html; encoding=utf8');
-
     my($template, $page_args, $as_xml) = find_template($r, $base, $ctx);
     $ctx->{page_args} = $page_args;
 
@@ -210,6 +208,12 @@ sub find_template {
 
     my @parts = split('/', $path);
     my $localpath = $path;
+
+    if ($localpath =~ m|opac/css|) {
+        $r->content_type('text/css; encoding=utf8');
+    } else {
+        $r->content_type('text/html; encoding=utf8');
+    }
     my @args;
     while(@parts) {
         last unless $localpath;
diff --git a/Open-ILS/web/css/skin/default/opac/style.css b/Open-ILS/src/templates/opac/css/style.css.tt2
similarity index 72%
rename from Open-ILS/web/css/skin/default/opac/style.css
rename to Open-ILS/src/templates/opac/css/style.css.tt2
index 3f5b33f..ec75480 100644
--- a/Open-ILS/web/css/skin/default/opac/style.css
+++ b/Open-ILS/src/templates/opac/css/style.css.tt2
@@ -1,8 +1,10 @@
+[%- PROCESS "opac/parts/css/colors.tt2" %]
+
 body {
 	margin:0;
 	font-family: Arial, Helvetica, sans-serif;
 	font-size: 12px;
-	background: #00593d;
+	background: [% css_colors.primary %];
 }
 
 img {
@@ -18,7 +20,7 @@ img {
 }
 
 a {
-	color: #00593d;
+	color: [% css_colors.primary %];
 }
 
 #search-wrapper input[type=text] {
@@ -27,7 +29,7 @@ a {
 }
 
 #search-wrapper select, .results_header_lbl select {
-	border:1px solid #e9ebf3;
+	border:1px solid [% css_colors.border_standard %];
 	margin:0;
 	padding:0;
 	width: 12em;
@@ -96,7 +98,7 @@ div.select-wrapper:hover {
 #dash_wrapper div {
 	position: relative;
     vertical-align: middle;
-    background: #00593d;
+    background: [% css_colors.primary %];
     border-radius: 5px;
     height: 3em;
     padding: 0em 1em 0em 1em;
@@ -106,14 +108,14 @@ span.dash_divider {
     margin: 0em 1em 0em 1em;
 	position: relative;
     top: 10px;
-    color: #007a54;
+    color: [% css_colors.primary_fade %];
 }
 
 #dashboard {
 	clear:both;
 	float:right;
     margin-top: 1em;
-    background: #00593d;
+    background: [% css_colors.primary %];
     border-radius: 5px;
     height: 3em;
 }
@@ -134,35 +136,35 @@ span.dash_divider {
 
 #logout_link { left: 1px; }
 
-#dash_checked { color: #ffcc33; }
-#dash_holds { color: #ffcc33; }
-#dash_pickup { color: #1dd93c; }
-#dash_fines { color: #f41d36; }
+#dash_checked { color: [% css_colors.text_attention %]; }
+#dash_holds { color: [% css_colors.text_attention %]; }
+#dash_pickup { color: [% css_colors.text_goodnews %]; }
+#dash_fines { color: [% css_colors.text_badnews %]; }
 #header-wrap {
-    background: linear-gradient(#00593d, #007a54);
-    background: -moz-linear-gradient(#00593d, #007a54);
-    background: -o-linear-gradient(#00593d, #007a54);
-    background: -webkit-linear-gradient(#00593d, #007a54);
-    background-color: #007a54;
+    background: linear-gradient([% css_colors.primary %], [% css_colors.primary_fade %]);
+    background: -moz-linear-gradient([% css_colors.primary %], [% css_colors.primary_fade %]);
+    background: -o-linear-gradient([% css_colors.primary %], [% css_colors.primary_fade %]);
+    background: -webkit-linear-gradient([% css_colors.primary %], [% css_colors.primary_fade %]);
+    background-color: [% css_colors.primary_fade %];
 }
 #header {
-	color: #fff;
+	color: [% css_colors.background %];
 	padding-top: 26px;
 	margin-left: 1em;
 	font-size:11px;
 }
 
 #header a {
-	color: #fff;
+	color: [% css_colors.background %];
 }
 
 #header a:hover {
-	color: white;
+	color: [% css_colors.text_invert %];
 	text-decoration: none;
 }
 
 #header-links {
-	color: white;
+	color: [% css_colors.text_invert %];
 	font-size: 11px;
 	font-weight: bold;
 	position: relative;
@@ -171,7 +173,7 @@ span.dash_divider {
 }
 
 #header-links a {
-	color: white;
+	color: [% css_colors.text_invert %];
 	display: block;
 	float:left;
 	margin-right:22px;
@@ -179,20 +181,20 @@ span.dash_divider {
 }
 
 #header-links a:hover {
-	color: white;
-	text-shadow: 0 0 0.2em #00593d, 0 0 0.2em #00593d;
+	color: [% css_colors.text_invert %];
+	text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
 	text-decoration: none;
 }
 
 #header #header-links2 {
 	position:relative;
 	top:-8px;
-	color: white;
+	color: [% css_colors.text_invert %];
 	padding-bottom: 15px;
 }
 
 #header #header-links2 a {
-	color: white;
+	color: [% css_colors.text_invert %];
 }
 
 #header #header-links2 a:hover {
@@ -215,7 +217,7 @@ span.dash_divider {
 
 #gold-links-holder {
     height: 24px;
-    background: #252525;
+    background: [% css_colors.background_invert %];
 }
 
 #util-bar {
@@ -225,9 +227,9 @@ span.dash_divider {
 }
 
 #search-wrapper {
-	border-bottom: 1px solid #e9ebf3;
+	border-bottom: 1px solid [% css_colors.border_standard %];
 	padding-bottom: 5px;
-	background: white;
+	background: [% css_colors.background %];
 }
 
 .search_box_wrapper {
@@ -248,7 +250,7 @@ span.dash_divider {
 }
 
 #search-wrapper #breadcrumb a {
-	color: black;
+	color: [% css_colors.text %];
 }
 
 #search-wrapper #search_frm label {
@@ -269,12 +271,12 @@ span.dash_divider {
 	height:30px;
 	background:url('/images/utils-corner-left.png') no-repeat left top;
 	padding-left: 3px;
-	color: white;
+	color: [% css_colors.text_invert %];
 	position:relative;
 }
 
 #utils a {
-	color: white;
+	color: [% css_colors.text_invert %];
 	font-size: 10px;
 }
 
@@ -293,8 +295,8 @@ span.dash_divider {
     -moz-border-radius: 10px 10px 0px 0px; 
     border-radius: 10px 10px 0px 0px;
     font-weight: bold;
-    color: white;
-    background: #69A088;
+    color: [% css_colors.text_invert %];
+    background: [% css_colors.control %];
     font-weight: bold;
     text-decoration: none;
 }
@@ -304,58 +306,58 @@ span.dash_divider {
 }
 
 #adv_search_tabs a:hover, #acct_tabs a:hover, #acct_fines_tabs a:hover, #acct_checked_tabs a:hover, #acct_holds_tabs a:hover, #acct_prefs_tabs a:hover {
-    background: #00593d; 
-    color: white;
+    background: [% css_colors.primary %]; 
+    color: [% css_colors.text_invert %];
     text-decoration: none;
 }
 
 #adv_search.on, #num_search.on, #expert_search.on {
-    color: #333333;
-    background: white;
+    color: [% css_colors.accent_darker %];
+    background: [% css_colors.background %];
     text-decoration: none;
 }
 
 #adv_search_tabs a.acct-tab-on, #acct_tabs a.acct-tab-on, #acct_fines_tabs a.acct-tab-on {
-    color: #333333;
-    background: white;
+    color: [% css_colors.accent_darker %];
+    background: [% css_colors.background %];
     text-decoration: none;
 }
 
 .acct-tab-off {
-    background: #69A088;
+    background: [% css_colors.control %];
 }
 
 #acct_checked_tabs a, #acct_holds_tabs a, #acct_prefs_tabs a {
     margin-top: 0px;
     font-size: 10px;
-    color: #333333;
+    color: [% css_colors.accent_darker %];
     padding: 10px 10px 10px 10px;
 }
 
 #acct_checked_tabs div.selected a, #acct_holds_tabs div.selected a, #acct_prefs_tabs div.selected a {
-    background: #e1e1e1;
-    color: #333333;
+    background: [% css_colors.accent_lightest %];
+    color: [% css_colors.accent_darker %];
 }
 
 #acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs {
     padding-bottom: 12px;
-    color: #666;
+    color: [% css_colors.accent_medium %];
 }
 
 .rdetail_header {
     padding: 5px 7px 6px 0px;
     margin-left: 1em;
-    border-bottom: 1px dotted #ccc;
+    border-bottom: 1px dotted [% css_colors.accent_light %];
 }
 
 .rdetail_results a {
-    color:#007a54;
+    color:[% css_colors.primary_fade %];
     font-weight:bold;
     font-size: 1.2em;
 }
 
 .rdetail_result_count {
-    color: black;
+    color: [% css_colors.text %];
     font-weight: normal;
     padding-left: 1em;
     display: inline-block;
@@ -395,7 +397,7 @@ div.rdetail_show_copies {
 
 div#rdetail_actions_div {
     float: right;
-    background: white;
+    background: [% css_colors.background %];
 }
 
 span#rdetail_copy_counts {
@@ -417,14 +419,14 @@ span#rdetail_hold_counts {
 }
 
 .rdetail_aux_utils {
-	border-left:1px dotted #ccc;
+	border-left:1px dotted [% css_colors.accent_light %];
 	padding-left: 17px;
 	padding-bottom: 6px;
 	padding-right: 70px;
 }
 
 div.place_hold {
-    border-bottom: 1px dotted #ccc;
+    border-bottom: 1px dotted [% css_colors.accent_light %];
     padding-top: 10px;
 }
 
@@ -442,14 +444,14 @@ div.format_icon {
 }
 
 .results_aux_utils {
-	border-left:1px dotted #ccc;
+	border-left:1px dotted [% css_colors.accent_light %];
 	padding-left: 17px;
 	padding-bottom: 6px;
 	padding-right: 50px;
 }
 
 .result_util {
-    border-bottom: 1px dotted #ccc;
+    border-bottom: 1px dotted [% css_colors.accent_light %];
     padding-top: 6px;
 }
 
@@ -468,7 +470,7 @@ div.format_icon {
 }
 
 #rdetails_status thead th {
-	background-color: #d8d8d8;
+	background-color: [% css_colors.accent_lighter2 %];
 	padding: 13px 0px 13px 13px;
 	font-size: 10px;
 	text-transform: uppercase;
@@ -483,7 +485,7 @@ div.format_icon {
 
 .rdetail_extras {
 	height: 29px;
-	background: #417860;
+	background: [% css_colors.primary %];
 	padding-top:1px;
 	margin-bottom: 10px;
 	margin-top: 10px;
@@ -492,7 +494,7 @@ div.format_icon {
 
 .rdetail_extras_hr {
 	height: 1px;
-	background: #b7def5;
+	background: [% css_colors.accent_light %];
 	margin-left: 1px;
 	margin-right: 1px;
 }
@@ -509,7 +511,7 @@ div.format_icon {
 	position: relative;
 	top: -4px;
 	left: 7px;
-	color: white;
+	color: [% css_colors.text_invert %];
 }
 
 #paginate-homebanner a.toc {
@@ -555,7 +557,7 @@ div.format_icon {
 	width:295px;
 	height:192px;
 	background: url('/images/banner-bg.png') no-repeat;
-	color: #fff;
+	color: [% css_colors.background %];
 	padding-left: 33px;
 	padding-top: 21px;
 	z-index:9999999999;
@@ -567,7 +569,7 @@ div.format_icon {
 }
 
 #hp-welcome a {
-	color: #fff;
+	color: [% css_colors.background %];
 	text-decoration: underline;
 }
 
@@ -582,7 +584,7 @@ div.format_icon {
 }
 
 #hp-ql-table a {
-	color: #333;
+	color: [% css_colors.accent_darker %];
 	font-weight: bold;
 	font-size: 13px;
 	text-transform: uppercase;
@@ -605,7 +607,7 @@ div.format_icon {
 #hp-ql-bottom a {
 	display: inline-block;
 	text-decoration: none;
-	color: white;
+	color: [% css_colors.text_invert %];
 	font-size: 15px;
 	font-weight: bold;
 }
@@ -617,11 +619,11 @@ div.format_icon {
 }
 
 .almost-content-wrapper {
-	background: white;
+	background: [% css_colors.background %];
 }
 
 #content-wrapper {
-	background: white;
+	background: [% css_colors.background %];
 	min-height: 260px;
 	border-bottom: 1px solid black;
 }
@@ -642,12 +644,17 @@ div.format_icon {
 	padding-left: 4px;
 }
 
-#results-side-bar { float: left; width: 174px; margin-right: 5px; background: white; }
+#results-side-bar { float: left; width: 174px; margin-right: 5px; background: [% css_colors.background %]; }
 
 #main-content .login_boxes {
-	border: 1px solid #dedede;
-	background:url('/images/login-bg.jpg') top repeat-x;
-	color: #333;
+	border: 1px solid [% css_colors.accent_lighter %];
+    background: linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
+    background: -moz-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
+    background: -ms-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
+    background: -o-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
+    background: -webkit-linear-gradient(bottom, [% css_colors.accent_ultralight %] 15%, [% css_colors.accent_lightest %] 55%, [% css_colors.accent_ultralight %] 85%);
+
+	color: [% css_colors.accent_darker %];
 }
 
 #main-content .login_boxes h1 {
@@ -669,12 +676,12 @@ div.format_icon {
 	border:none;
 	background: none;
 	font-size: 15px;
-	color: #666;
+	color: [% css_colors.accent_medium %];
 }
 
 #main-content .left_brain .input_bg {
 	padding:10px 10px 0px 13px;
-	background: url('/images/login-box-bg.jpg') no-repeat;
+    background: [% css_colors.background %];
 	width:167px;
 	height:29px;
 }
@@ -682,7 +689,7 @@ div.format_icon {
 #login-failed-message {
 	font-size: 125%;
     font-weight: bold;
-	color: red;
+	color: [% css_colors.text_alert %];
     padding-top: 1em;
 }
 
@@ -692,7 +699,7 @@ div.format_icon {
 }
 
 #holds_temp_parent td {
-	border-bottom:1px solid #dcdbdb;
+	border-bottom:1px solid [% css_colors.border_standard %];
 }
 
 #holds_temp_parent input, #holds_temp_parent select {
@@ -700,8 +707,8 @@ div.format_icon {
 }
 
 #results_header_bar {
-	background: #929292;
-	border-top:1px solid #8b8b8b;
+	background: [% css_colors.accent_medium %];
+	border-top:1px solid [% css_colors.accent_mediumdark %];
 }
 
 #results_header_inner {
@@ -715,8 +722,8 @@ div.format_icon {
 	float: left;
 	width: 0px;
 	height: 25px;
-	border-left: 1px solid #7c7c7c;
-	border-right: 1px solid #9c9c9c;
+	border-left: 1px solid [% css_colors.accent_mediumdark %];
+	border-right: 1px solid [% css_colors.accent_medium %];
 	margin: 0px 13px;
 }
 
@@ -724,8 +731,8 @@ div.format_icon {
 	font-weight: bold;
 	float: left;
 	font-size: 11px;
-	color: #191919;
-	background: #929292;
+	color: [% css_colors.text %];
+	background: [% css_colors.accent_medium %];
 	margin-right: 6px;
 }
 
@@ -737,13 +744,13 @@ div.format_icon {
 
 .results_header_nav1 {
 	padding: 5px 7px 6px 0px;
-	border-bottom: 1px dotted #ccc;
+	border-bottom: 1px dotted [% css_colors.accent_light %];
 }
 
 .results_header_nav1 .h1 {
 	font-size:14px;
 	font-weight:bold;
-	color:#007a54;
+	color:[% css_colors.primary_fade %];
 }
 
 .start_end_links_span {
@@ -761,7 +768,7 @@ tr.result_table_row > td.result_table_title_cell {
 }
 
 tr.result_table_row:nth-child(n+2) > td {
-    border-top: 1px solid #d4d4d4;
+    border-top: 1px solid [% css_colors.accent_lighter2 %];
 }
 
 tr.result_table_row > td.result_table_pic_header {
@@ -845,8 +852,8 @@ div.result_place_hold {
 }
 
 #myopac_prefs_div .data_grid td {
-	background:#f0f0f0;
-	border-bottom:3px solid white;
+	background:[% css_colors.accent_ultralight %];
+	border-bottom:3px solid [% css_colors.background %];
 	padding:6px 0px 7px 17px;
 }
 
@@ -854,9 +861,9 @@ div.result_place_hold {
 	height:22px;
 	font-size:14px;
 	font-weight:bold;
-	color:#007a54;
+	color:[% css_colors.primary_fade %];
 	padding: 0px 7px 0px 0px;
-	border-bottom: 1px dotted #ccc;
+	border-bottom: 1px dotted [% css_colors.accent_light %];
 }
 
 .header_middle a {
@@ -866,7 +873,7 @@ div.result_place_hold {
 
 .acct_sum_row {
 	padding: 7px 15px;
-	background: #f0f0f0;
+	background: [% css_colors.accent_ultralight %];
 	margin-bottom: 2px;
 	font-size: 10px;
 	font-weight: bold;
@@ -902,7 +909,7 @@ table.acct_notes th {
 #myopac_sum_fines {
 	float:right;
 	padding: 15px 0px 0px 23px;
-	background: #f0f0f0;
+	background: [% css_colors.accent_ultralight %];
 	width: 177px;
 	height: 166px;
 }
@@ -929,7 +936,7 @@ table.acct_notes th {
 }
 
 #acct_checked_main_header td, #acct_holds_main_header td, #acct_checked_hist_header td, #acct_list_header td, #acct_list_header_anon td, #temp_list_holds td {
-	background: #d8d8d8;
+	background: [% css_colors.accent_lighter2 %];
 	padding: 8px 0px 7px 0px;
 }
 
@@ -966,7 +973,7 @@ table.acct_notes th {
 }
 
 #myopac_tabs, #adv_search_parent, #fines_payments_wrapper {
-	background: #007a54;
+	background: [% css_colors.primary_fade %];
 	padding-top:5px;
 	margin-bottom:20px;
 }
@@ -977,21 +984,21 @@ table.acct_notes th {
 }
 
 .myopac_payments_table th { text-align: left; }
-.myopac_payments_table thead th { border-bottom: 1px dashed #333; }
+.myopac_payments_table thead th { border-bottom: 1px dashed [% css_colors.accent_darker %]; }
 .myopac_payments_table thead th:first-child { width: 8em; }
-.myopac_payments_table tbody tr:nth-child(odd) { background-color: #ddd; }
+.myopac_payments_table tbody tr:nth-child(odd) { background-color: [% css_colors.accent_lighter %]; }
 .myopac_payments_table form { display: inline; }
 .myopac_payments_table input[type="submit"] { padding: 1px; }
 
 .payment-error {
-    font-weight: bold; color: red;
-    padding: 10px; border: 1px solid #888;
+    font-weight: bold; color: [% css_colors.text_alert %];
+    padding: 10px; border: 1px solid [% css_colors.accent_medium_dark %];
 }
 
 .payment-processing {
     font-weight: bold; color: green;
     font-size: 120%;
-    padding: 10px; border: 1px solid #888;
+    padding: 10px; border: 1px solid [% css_colors.accent_medium_dark %];
     text-align: center;
 }
 
@@ -1016,24 +1023,24 @@ table.acct_notes th {
 	margin: auto;
 }
 
+[%- IF we_want_to_turn_on_facet_styling.defined; %]
 /* some facet styling */
-/*
-.facetClassContainer { margin: 2px; border: 1px solid #CCC; }
-.facetClassLabelContainer { border: 1px solid #CCC; }
+.facetClassContainer { margin: 2px; border: 1px solid [% css_colors.accent_light %]; }
+.facetClassLabelContainer { border: 1px solid [% css_colors.accent_light %]; }
 .facetClassLabel { font-weight: bold; text-align: center; }
 .facetFieldContainer {  }
 .facetFieldLabel { padding-left: 2px; margin-top: 5px; margin-bottom: 5px; font-weight: bold; text-align: left; }
 .extraFacetFieldsWrapper { }
 .toggleExtraFacetFieldsButton { float: right; margin: 0px; padding: 0px; }
-.facetFieldLineCount { display: inline-block; border-right: 1px solid #CCC; color: gray; width: 3em; margin-right: 3px }
-.facetField { border-top: 1px solid #CCC; }
+.facetFieldLineCount { display: inline-block; border-right: 1px solid [% css_colors.accent_light %]; color: gray; width: 3em; margin-right: 3px }
+.facetField { border-top: 1px solid [% css_colors.accent_light %]; }
 .facetFields { padding-left: 5px; }
 .facetFieldLineValue { overflow: hidden; text-overflow: ellipsis; }
-*/
+[%- END -%]
 
 div.facet_sidebar {
     float: left;
-    border-right: 1px solid #F3F3F3;
+    border-right: 1px solid [% css_colors.border_standard %];
     margin-right: 1em;
 }
 
@@ -1046,13 +1053,13 @@ div.facet_sidebar {
 .facet_box_temp .header {
 	height:31px;
 	overflow:hidden;
-	background:#00593d;
+	background:[% css_colors.primary %];
         -moz-border-top-left-radius: 5px;
         border-top-left-radius: 5px;
         -moz-border-top-right-radius: 5px;
         border-top-right-radius: 5px;
 	font-weight:bold;
-	color:white;
+	color:[% css_colors.text_invert %];
 	padding-top:4px;
 }
 
@@ -1077,10 +1084,10 @@ div.facet_sidebar {
 
 .facet_box_wrapper .box_wrapper .box {
 	width: 14em;
-	border-top:1px solid #7ebee5;
-	border-left:1px solid #f3f3f3;
-	border-right:1px solid #f3f3f3;
-	background:white;
+	border-top:1px solid [% css_colors.border_standard %];
+	border-left:1px solid [% css_colors.border_standard %];
+	border-right:1px solid [% css_colors.border_standard %];
+	background:[% css_colors.background %];
 	padding-left:12px;
 	padding-top:6px;
 }
@@ -1105,20 +1112,20 @@ div.facet_sidebar {
 }
 
 .facet_template_selected {
-    background-color: #d7d7d7;
+    background-color: [% css_colors.accent_lighter2 %];
 }
 
 .facet_border {
-    border-left: 1px solid #e9ebf3;
+    border-left: 1px solid [% css_colors.border_standard %];
     padding-right: 0.5em;
 }
 
 #footer-wrap {
-    background: linear-gradient(#007a54, #00593d);
-    background: -moz-linear-gradient(#007a54, #00593d);
-    background: -o-linear-gradient(#007a54, #00593d);
-    background: -webkit-linear-gradient(#007a54, #00593d);
-    background-color: #00593d;
+    background: linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -moz-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -o-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -webkit-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background-color: [% css_colors.primary %];
 }
 
 #footer {
@@ -1129,13 +1136,13 @@ div.facet_sidebar {
 }
 
 #footer a {
-	color: white;
+	color: [% css_colors.text_invert %];
 	text-decoration: none;
-	text-shadow: 0 0 0.2em #00593d, 0 0 0.2em #00593d;
+	text-shadow: 0 0 0.2em [% css_colors.primary %], 0 0 0.2em [% css_colors.primary %];
 }
 
 #copyright_text, #footer_logo {
-    color: white;
+    color: [% css_colors.text_invert %];
 }
 
 .color_4 {
@@ -1147,40 +1154,40 @@ div.facet_sidebar {
 .advanced_div { padding-top: 15px; }
 #adv_global_search select { width: 13em; }
 #adv_global_input_table select { width: 7em; }
-.adv_adv_link { font-size: 8pt; color: red; }
+.adv_adv_link { font-size: 8pt; color: [% css_colors.text_alert %]; }
 #acct_prefs_header { float: left; }
 .search_page_nav_link { cursor: pointer; }
 #opac.result.sort { width: 160px; }
 .renew-summary { font-size: 125%; font-style: italic; margin: 0.5ex 0; }
-.failure-text { margin-left: 4em; font-style: italic; color: #ff0000; }
+.failure-text { margin-left: 4em; font-style: italic; color: [% css_colors.text_alert %]; }
 .refine-controls { font-size: 125%; padding: 0.5ex 0; }
-#adv_search_refine input[type=text] { border: 1px inset #ccc !important; }
-#adv_search_refine select { border: 1px inset #ccc !important; }
+#adv_search_refine input[type=text] { border: 1px inset [% css_colors.accent_light %] !important; }
+#adv_search_refine select { border: 1px inset [% css_colors.accent_light %] !important; }
 #adv_search_refine {
-    padding-left: 5em; background-color: #d7d7d7; margin: 2ex 0;
+    padding-left: 5em; background-color: [% css_colors.accent_lighter2 %]; margin: 2ex 0;
 }
 .row-remover { position: relative; top: 1px; vertical-align: middle; }
 .subtle-button {
-    background-color: #ffffff;
-    color: #00593d; text-decoration: none;
+    background-color: [% css_colors.background %];
+    color: [% css_colors.primary %]; text-decoration: none;
     font-size: 12px;
     padding: 0; border: 0; margin: 0;
     vertical-align: middle;
 }
 .subtle-button:hover { text-decoration: underline; cursor: pointer; }
 .no-dec:hover { text-decoration: none; }
-.pending-addr td { background-color: #ffcccc !important; border: 0 !important; }
+.pending-addr td { background-color: [% css_colors.background_alert %] !important; border: 0 !important; }
 
 #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 #ddd; text-align: left;}
-#account-update-email-error { font-size: 1.5em; padding: 10px; border:1px solid #e9ebf3;}
+#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: 1.5em; padding: 10px; border:1px solid [% css_colors.border_standard %];}
 a.dash-link:hover { text-decoration: underline !important; }
 #list_create_table td { vertical-align: middle; padding: 0 8px; }
 #list_create_table {
-    background-color: #ccc;
+    background-color: [% css_colors.accent_light %];
     padding-bottom: 4px;
     margin-bottom: 10px;
-    border-bottom: 1px dotted #666;
+    border-bottom: 1px dotted [% css_colors.accent_medium %];
 }
 .list-create-table-buttons input[type=image] { margin-top: 2px; }
 .result_table_format_cell { padding: 0px 10px; text-align: center; }
@@ -1188,7 +1195,7 @@ a.dash-link:hover { text-decoration: underline !important; }
 #hold_editor h1 { font-size: 120%; font-weight: bold; }
 #hold_editor h2 { font-size: 111%; font-weight: normal; text-indent: 2em; font-style: italic; }
 #hold_editor h1, #hold_editor h2 { margin: 2px 0; }
-#hold_editor_table { background-color: #ddd; padding: 0.5em; }
+#hold_editor_table { background-color: [% css_colors.accent_lighter %]; padding: 0.5em; }
 #hold_editor_table th { text-align: right; padding-right: 1em; }
 #hold_editor_table td { padding: 0.25em 0; }
 .fmt-note { vertical-align: middle; padding-left: 1em !important; }
@@ -1201,21 +1208,21 @@ a.dash-link:hover { text-decoration: underline !important; }
 
 .invisible { visibility: hidden; }
 .rdetail-extras-summary { margin: 10px; }
-.staff-hold { background-color: #eee; }
+.staff-hold { background-color: [% css_colors.accent_lightest %]; }
 .expert-search tbody tr th { text-align: right; padding-left: 2em; }
 .expert-search-row { padding-top: 10px; }
 .bookshelf thead tr td {
-    border-bottom: 1px dashed #999;
+    border-bottom: 1px dashed [% css_colors.accent_dark %];
     padding-bottom: 1ex;
 }
 .cn_browse_item { padding: 2ex; }
 
-.results-paginator-selected { color: red; }
-.inactive-hold { background: #e5e5e5; }
+.results-paginator-selected { color: [% css_colors.text_alert %]; }
+.inactive-hold { background: [% css_colors.accent_lightest %]; }
 
 #hold-items-list td { padding: 5px; margin-bottom: 20px; }
 .hold-items-list-title { font-size: 120%; }
-.hold-items-list-problem { color: red; }
+.hold-items-list-problem { color: [% css_colors.text_alert %]; }
 
 .big-strong {font-weight: bold; font-size: 120%; }
 
@@ -1226,36 +1233,36 @@ a.dash-link:hover { text-decoration: underline !important; }
 }
 
 .opac-button, .results_header_btns, #simple-detail-view-links { 
-    color: #FBF9F9;
+    color: [% css_colors.button_text %];
     font-weight: bold; 
     text-decoration: none;
-    text-shadow: 1px 1px 1px #555555;
+    text-shadow: 1px 1px 1px [% css_colors.button_text_shadow %];
     cursor: pointer !important;
     -moz-border-radius: 5px;
     border-radius: 5px;
-    border: 1px solid #007a54;
-    background: linear-gradient(#007a54, #00593d);
-    background: -moz-linear-gradient(#007a54, #00593d);
-    background: -o-linear-gradient(#007a54, #00593d);
-    background: -webkit-linear-gradient(#007a54, #00593d);
-    background-color: #00593d;
+    border: 1px solid [% css_colors.primary_fade %];
+    background: linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -moz-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -o-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background: -webkit-linear-gradient([% css_colors.primary_fade %], [% css_colors.primary %]);
+    background-color: [% css_colors.primary %];
 }
 
 .opac-button-header {
-    background: #69A088;
+    background: [% css_colors.control %];
     box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
 }
 
 .results_header_btns a, #simple-detail-view-links a {
     margin: 10px;
     padding: 5px 10px 5px 10px;
-    color: white;
+    color: [% css_colors.text_invert %];
     vertical-align: middle;
     display: table-cell;
 }
 
 a.opac-button:hover, .results_header_btns a:hover, #simple-detail-view-links a:hover {
-    background: #00593d;
+    background: [% css_colors.primary %];
     text-decoration: none;
 }
 
@@ -1276,7 +1283,7 @@ a.opac-button {
 .rdetail-mfhd-head {
     margin-top: 5px;
     padding-top: 5px;
-    background-color: #D8D8D8;
+    background-color: [% css_colors.table_heading %];
 }
 
 .rdetail-mfhd-type {
@@ -1300,7 +1307,7 @@ a.opac-button {
 
 .bookbag-item-row td { vertical-align: top; }
 
-.error { color: red; font-weight: bold; }
+.error { color: [% css_colors.text_alert %]; font-weight: bold; }
 .success { color: green; font-weight: bold; }
 
 .rdetail_related_subjects {
@@ -1320,8 +1327,8 @@ a.opac-button {
     padding-left: 1em;
 }
 .bookbag-controls-holder { width: 100%; }
-.bookbag-controls-holder:nth-child(odd) { background-color: #d7d7d7; }
-.bookbag-controls-holder:nth-child(even) { background-color: #e3e3e3; }
+.bookbag-controls-holder:nth-child(odd) { background-color: [% css_colors.accent_lighter2 %]; }
+.bookbag-controls-holder:nth-child(even) { background-color: [% css_colors.accent_lightest %]; }
 .bookbag-controls-holder .most {
     padding-left: 0;
     margin-right: 5em;
@@ -1342,8 +1349,8 @@ h2.bookbag-name { margin-bottom: 0em; padding-bottom: 0em; }
 #bbag-edit-name { width: 20em; }
 textarea { font-family: sans-serif; }
 table.bookbag-specific {
-    border-right: 1px solid #999;
-    border-bottom: 1px solid #666;
+    border-right: 1px solid [% css_colors.accent_dark %];
+    border-bottom: 1px solid [% css_colors.accent_medium %];
     margin-bottom: 2ex;
 }
 .bookbag-share {
@@ -1397,7 +1404,7 @@ table.bookbag-specific {
     clear: both;
     height: 15px;
 }
-.alert { color: red; }
+.alert { color: [% css_colors.text_alert %]; }
 .float-left { float: left; }
 .float-right { float: right; }
 
@@ -1405,9 +1412,9 @@ table.bookbag-specific {
 .saved-searches-header .button { float: right; width: 28px; }
 .saved-searches-header .text { float: left; padding-right: 1em; margin: 0.5ex 0;}
 .saved-searches-header {font-weight: bold; font-size: 120%; }
-.saved-searches { border-bottom: 1px solid #666; padding-right: 1em; }
+.saved-searches { border-bottom: 1px solid [% css_colors.accent_medium %]; padding-right: 1em; }
 #staff-saved-search { /* wraps .saved-searches-header and .saved-searches on the record page */
-    border-right: 1px solid #333;
+    border-right: 1px solid [% css_colors.accent_darker %];
 }
 .result_item_circulated {
     padding-top: 4px;
@@ -1426,18 +1433,18 @@ table.bookbag-specific {
 .result-bookbag-description { font-size: 120%; font-style: italic; }
 .result-bookbag-item-note { font-style: italic; }
 .lowhits-bookbag-name { font-weight: bold; }
-.oils_AS { font-weight: bold; color: #c00; }
-.oils_AS_match_term { text-align: left; color: #000; }
+.oils_AS { font-weight: bold; color: [% css_colors.text_match %]; }
+.oils_AS_match_term { text-align: left; color: [% css_colors.text %]; }
 .oils_AS_match_field {
     font-size: 75%; padding: 0.65em 0;
-    text-align: right; color: #666;
+    text-align: right; color: [% css_colors.accent_medium %];
 }
 table.result_holdings_table {
     margin-top: 1em;
     margin-bottom: 1em;
 }
 table.result_holdings_table thead tr {
-    background: #D8D8D8;
+    background: [% css_colors.table_heading %];
 }
 table.result_holdings_table thead tr th {
     font-weight: bold;
@@ -1458,7 +1465,7 @@ a.preflib_change {
     font-weight: bold;
     padding: 1em;
     margin: 1em;
-    border: thick solid red;
+    border: thick solid [% css_colors.border_alert %];
 }
 
 #ac_tab_wrapper { width : 100%; }
@@ -1541,7 +1548,7 @@ a.preflib_change {
 #locale_picker_form {
     float: right;
     padding: 0.5em 1em 0.5em 0;
-    border-right: thin #69A088 solid;
+    border-right: thin [% css_colors.control %] solid;
 }
 
 #locale_picker_form * {
diff --git a/Open-ILS/src/templates/opac/parts/base.tt2 b/Open-ILS/src/templates/opac/parts/base.tt2
index 1721a9c..fc73804 100644
--- a/Open-ILS/src/templates/opac/parts/base.tt2
+++ b/Open-ILS/src/templates/opac/parts/base.tt2
@@ -8,7 +8,7 @@
         <meta http-equiv="refresh" content="[% ctx.authtime %]; url=[% ctx.logout_page %]">
         [% END %]
         <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css" />
-        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/style.css" />
+        <link rel="stylesheet" type="text/css" href="[% ctx.opac_root %]/css/style.css" />
         <title>[% l('Catalog - [_1]', ctx.page_title) %]</title>
         <link rel="unapi-server" type="application/xml" title="unAPI" href="/opac/extras/unapi" />
         [% IF want_dojo %]
diff --git a/Open-ILS/src/templates/opac/parts/css/colors.tt2 b/Open-ILS/src/templates/opac/parts/css/colors.tt2
new file mode 100644
index 0000000..5babc04
--- /dev/null
+++ b/Open-ILS/src/templates/opac/parts/css/colors.tt2
@@ -0,0 +1,33 @@
+[%
+    css_colors = {
+
+        background = "#fff", # white
+        background_alert = "#ffcccc", # pink
+        background_invert = "#252525", # charcoal
+        text = "black", # black 
+        text_alert = "red", # red
+        text_attention = "#ffcc33", # pumpkin orange
+        text_badnews = "#f41d36", # cherry red
+        text_goodnews = "#1dd93c", # lime green
+        text_invert = "#fff", # white
+        text_match = "#c00", # deep red
+        primary = "#00593d", # dark green
+        primary_fade = "#007a54", # medium green
+        control = "#69A088", # lighter green
+        accent_light = "#ccc", #  grey (light)
+        accent_lighter = "#ddd", #  grey (lighter)
+        accent_lighter2 = "#d8d8d8", #  grey (lighter again)
+        accent_lightest = "#eee", #  grey (lightest)
+        accent_ultralight = "#f0f0f0", # ivory
+        accent_medium = "#999", # gun metal grey (medium)
+        accent_mediumdark = "#888", # gun metal grey (medium dark)
+        accent_dark = "#666", # gun metal grey (dark)
+        accent_darker = "#333", # gun metal grey (darker)
+        border_standard = "#e9ebf3", # light grey-blue
+        border_alert = "red", # red
+        button_text = "#fbf9f9", # off-white 
+        button_text_shadow = "#555555", # medium grey
+        table_heading = "#d8d8d8", # grey-blue
+    };
+    
+%]
diff --git a/Open-ILS/web/images/login-bg.jpg b/Open-ILS/web/images/login-bg.jpg
deleted file mode 100644
index 46fc85f..0000000
Binary files a/Open-ILS/web/images/login-bg.jpg and /dev/null differ

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/examples/apache/eg_vhost.conf             |    2 +-
 .../src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm    |    1 +
 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm     |    8 +-
 .../templates/opac/css/style.css.tt2}              | 1038 +++++++++-----------
 Open-ILS/src/templates/opac/parts/base.tt2         |    2 +-
 Open-ILS/src/templates/opac/parts/css/colors.tt2   |   36 +
 Open-ILS/web/css/skin/default/opac/semiauto.css    |    1 -
 Open-ILS/web/images/banner-bg.png                  |  Bin 1702 -> 0 bytes
 Open-ILS/web/images/dropdown-hover.gif             |  Bin 197 -> 0 bytes
 Open-ILS/web/images/dropdown.gif                   |  Bin 197 -> 0 bytes
 Open-ILS/web/images/facet_box_bg_bottom.png        |  Bin 308 -> 0 bytes
 Open-ILS/web/images/hp-links-mid.jpg               |  Bin 563 -> 0 bytes
 Open-ILS/web/images/login-bg.jpg                   |  Bin 778 -> 0 bytes
 Open-ILS/web/images/utils-corner-left.png          |  Bin 284 -> 0 bytes
 docs/RELEASE_NOTES_NEXT/tpac-css-colors.txt        |   29 +
 15 files changed, 536 insertions(+), 581 deletions(-)
 rename Open-ILS/{web/css/skin/default/opac/style.css => src/templates/opac/css/style.css.tt2} (50%)
 create mode 100644 Open-ILS/src/templates/opac/parts/css/colors.tt2
 delete mode 100644 Open-ILS/web/images/banner-bg.png
 delete mode 100644 Open-ILS/web/images/dropdown-hover.gif
 delete mode 100644 Open-ILS/web/images/dropdown.gif
 delete mode 100644 Open-ILS/web/images/facet_box_bg_bottom.png
 delete mode 100644 Open-ILS/web/images/hp-links-mid.jpg
 delete mode 100644 Open-ILS/web/images/login-bg.jpg
 delete mode 100644 Open-ILS/web/images/utils-corner-left.png
 create mode 100644 docs/RELEASE_NOTES_NEXT/tpac-css-colors.txt


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list