From: Dan Scott Date: Tue, 31 Jul 2012 18:53:48 +0000 (-0400) Subject: Basic Laurentian University branding: colours and logos X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3a6527e56c967ce4ce4148a84f2a329dbbb72173;p=contrib%2FConifer.git Basic Laurentian University branding: colours and logos Required some wrestling with the default stylesheet but otherwise we appear to be good. Phone notifications for holds do not happen. Hide any mention of phone numbers or widgets for changing phone numbers. We also do not want to enable users to update their username, password, or email address. Override style.css in a separate stylesheet One more HTTP request, but much simpler tracking of HEAD stylesheet changes. Customize login form for Laurentian LDAP login Set ou_email_host via a hidden form variable. Provide more rational inline help for OSUL login form. Link to the OSUL password reset form on login failure Avoid the "place holds on available" lists hole by ripping out the option entirely, naturally. Turn on Google Book Previews Hide the display of 659 fields in Laurentian records. They appear to have been used for some sort of identifiers, not genres, and are meaningless to users. Remove the "Stay logged in" checkbox until we uncover the actual problem with logging in via LDAP and persistence. Enable Google Analytics in Laurentian skin Signed-off-by: Dan Scott --- diff --git a/Open-ILS/src/templates_laurentian/opac/css/style_overrides.css.tt2 b/Open-ILS/src/templates_laurentian/opac/css/style_overrides.css.tt2 new file mode 100644 index 0000000000..61b8eb36a4 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/css/style_overrides.css.tt2 @@ -0,0 +1,20 @@ +[%- PROCESS "opac/parts/css/colors.tt2" %] + +#adv_search_tabs a.acct-tab-on, #acct_tabs a.acct-tab-on, #acct_fines_tabs a.acct-tab-on { + color: [% css_colors.primary %]; +} +#acct_checked_tabs a, #acct_holds_tabs a, #acct_prefs_tabs a { + color: [% css_colors.text_invert %]; +} + +#acct_checked_tabs div.selected a, #acct_holds_tabs div.selected a, #acct_prefs_tabs div.selected a { + color: [% css_colors.text %]; +} + +#acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs { + color: [% css_colors.text %]; +} + +#main-content .login_boxes { + color: [% css_colors.text %]; +} diff --git a/Open-ILS/src/templates_laurentian/opac/myopac/lists.tt2 b/Open-ILS/src/templates_laurentian/opac/myopac/lists.tt2 new file mode 100644 index 0000000000..eba5521278 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/myopac/lists.tt2 @@ -0,0 +1,333 @@ +[% PROCESS "opac/parts/header.tt2"; + PROCESS "opac/parts/misc_util.tt2"; + WRAPPER "opac/parts/myopac/base.tt2"; + myopac_page = "lists" + limit = ctx.bookbags_limit; + offset = ctx.bookbags_offset; +%] +
+ + +
+

[% l('Create new list') %]

+ + + + + + + + + + +
+ + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + + + [% IF ctx.add_rec %] + + [% END %] + [% IF ctx.where_from %] + + [% END %] + + + + [% l('Sharing Help') %] + + +       + +
+ + + +
+
+ +

[% l("Your existing lists") %]

+ [% INCLUDE "opac/parts/anon_list.tt2" %] + [% IF ctx.bookbags.size %] +
+ [% l('Saved Lists') %] + [% IF limit < ctx.bookbag_count; %] + + [%- IF offset > 0 -%] + limit, offset => (offset - limit) + }) %]'>[% l('Previous') %] + [%- END; -%] + [%- IF (ctx.bookbag_count - offset) > limit; -%] + limit, offset => (offset + limit) + }) %]'>[% l('Next') %] + + [%- END; -%] + [% END %] +
+
+ +
+ [% FOR bbag IN ctx.bookbags %] +
+
+ [% baseurl = ctx.opac_root _ '/myopac/lists'; + IF bbag.id != CGI.param("bbid"); + url = mkurl(baseurl,{bbid => bbag.id},['edit_notes','sort']); + ltitle = l("Show items in list"); + ELSE; + url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']); + ltitle = l("Hide items in list"); + END %] +

[% bbag.name | html %]

+ [% IF bbag.description %]
[% bbag.description | html %]
[% END %] +
+ [% IF ctx.add_rec %] +
+
+ + + + [% IF ctx.where_from %] + + [% END %] + +
+
+ [% END %] +
+
+ + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + [% IF bbag.pub != 't' %] + + + [% ELSE %] + + + [% END %] +
+
+
+
+ + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + +
+
+
+
+ + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + +
+
+ [% setting = 'opac.default_list'; %] +
+
+ + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + [% IF ctx.user_setting_map.$setting == bbag.id %] + + + [% ELSE %] + + + [% END %] +
+
+
+ [% IF bbag.pub == 't'; %] + [% l('RSS Feed') %] + [% END %] +
+ +
+
+ [% IF CGI.param("bbid") == bbag.id %] +
+
+
+ + [%- INCLUDE "opac/parts/preserve_params.tt2" params=['loc', 'query', 'qtype']; %] + [% INCLUDE "opac/parts/filtersort.tt2" + value=CGI.param('sort') mode='bookbag' %] + + +
+
+
+
+ + + + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + + + + + + + + + + +
+ + + + + [% l("Save changes to name or description?") %]
+ +
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + [% UNLESS bbag.items.size %] + + [% END %] + [% FOR item IN bbag.items; + rec_id = item.target_biblio_record_entry.id; + attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id}; + PROCESS get_marc_attrs args=attrs %] + + + + + + + [% IF CGI.param("edit_notes") == bbag.id %] + + [% ELSE %] + + [% END %] + + [% END %] + [% IF CGI.param("edit_notes") == bbag.id %] + + + + + [% END %] + +
+ + + + [% l('Title') %] + + [% l('Author(s)') %] + + [% l('Publication Date') %] + + [% l('Format') %] + + [% l('Notes') %] + [% IF CGI.param("edit_notes") != bbag.id %] + | [% l('Edit') %] + [% END %] + + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + +
+ [% l("This list contains no items.") %] +
+ + + [% attrs.title | html %] + + [% attrs.author | html %] + + [% attrs.pubdate | html %] + + [% attrs.format_label | html %] + + [% FOR note IN item.notes %] + + [% END %] + + + [% FOR note IN item.notes %] +
[% note.note | html %]
+ [% END %] +
+ [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + + +
+
+ [% END %] + [% END %] +
+ [% END %] + + +[% |l %]Sharing a Bookbag means that the contents +of the Bookbag will be visible to others. +To see the public view of a shared Bookbag, +click on the Bookbag's name in the Bookbag list.[% END %] + +
+[% END %] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/anon_list.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/anon_list.tt2 new file mode 100644 index 0000000000..b075e83398 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/anon_list.tt2 @@ -0,0 +1,69 @@ + [% IF ctx.mylist.size %] +
+
+ + [% INCLUDE "opac/parts/filtersort.tt2" mode='bookbag' + id="anonsort" name="anonsort" value=CGI.param("anonsort") %] + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + +
+
+ +
+
+

[% l('Temporary List') %]

+ + + + + + + + + + [% FOR item IN ctx.mylist; + attrs = {marc_xml => ctx.mylist_marc_xml.$item}; + PROCESS get_marc_attrs args=attrs %] + + + + + + [% END %] + +
+ + [% l('Title') %][% l('Author(s)') %] + + + [%- INCLUDE "opac/parts/preserve_params.tt2"; %] + +
+ + [% attrs.title | html %][% attrs.author | html %]
+

+
+
+ [% END %] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/base.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/base.tt2 new file mode 100644 index 0000000000..30882d1388 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/base.tt2 @@ -0,0 +1,30 @@ + + + + + [% IF ctx.refresh %] + + [% ELSIF ctx.authtime %] + + [% END %] + + + + [% l('Catalog - [_1]', ctx.page_title) %] + + [% IF want_dojo %] + + [% END %] + [% INCLUDE 'opac/parts/goog_analytics.tt2' %] + + + [% content %] + [% INCLUDE 'opac/parts/footer.tt2' %] + [% INCLUDE 'opac/parts/js.tt2' %] + [%- IF ENV.OILS_CHILIFRESH_ACCOUNT %] + [%- INCLUDE 'opac/parts/chilifresh.tt2' %] + [%- END %] + + diff --git a/Open-ILS/src/templates_laurentian/opac/parts/config.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/config.tt2 new file mode 100644 index 0000000000..1f93e971b5 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/config.tt2 @@ -0,0 +1,153 @@ +[% + +############################################################################## +# This file contains skin-level configuration settings. +# Many of these settings will probably migrate into actor.org_unit_settings. +############################################################################## + +############################################################################## +# Holds blocking +############################################################################## +# Block the ability to place holds if item is available +ctx.holds_block.enabled = 'true'; + +############################################################################## +# RefWorks configuration +############################################################################## +# RefWorks is a Web-based citation manager +ctx.refworks.enabled = 'true'; + +# Base URL for RefWorks +ctx.refworks.url = 'http://librweb.laurentian.ca/login?url=http://refworks.scholarsportal.info'; + +# Some sites have a hosted RefWorks instance at a different URL; +# in addition, you might want to proxy access to RefWorks - for example: +# ctx.refworks.url = 'http://librweb.laurentian.ca/login?url=http://refworks.scholarsportal.info'; + +############################################################################## +# OpenURL resolution +############################################################################## +# Evergreen provides the ability to point at an OpenURL resolver to find +# electronic resources for a given ISSN or ISBN. Currently, only the SFX +# resolver is supported. +# +# You must enable the open-ils.resolver instance in opensrf.xml to use +# this feature. +############################################################################## + +openurl.enabled = 'true'; +openurl.baseurl = 'http://sfx.scholarsportal.info/laurentian'; + +############################################################################## +# Google Analytics support +############################################################################## +# You can enable Google Analytics support in Evergreen by entering a +# valid Google Analytics code and changing 'false' to 'true' +############################################################################## +google_analytics.enabled = 'true'; +google_analytics.code = 'UA-44360424-2'; + +############################################################################## +# Enable "Forgot your password?" prompt at login +############################################################################## +reset_password = 'false'; + +############################################################################## +# Hide various options from user preferences that you might not want to expose +# if you rely on centralized authentication via open-ils.auth_proxy, like LDAP +# +# Username changes can be disabled by the opac.lock_usernames OU setting. +############################################################################## +disable_password_change = 'true'; +disable_email_change = 'true'; + +############################################################################## +# Some libraries do not do notifications by phone; if not true, then this +# hides the user preference for phone notifications as well as the phone +# notification portion of the hold dialogue +############################################################################## +allow_phone_notifications = 'false'; + +############################################################################## +# Misc. UI Settings +############################################################################## +# Option for full details as a default, esp. impt. for e-content +# that uses resolver plumbing. Valid values are 'true', 'false' and 'hide'. +# Setting this to 'true' shows full details by default but allows the link +# to appear for 'Show Fewer Details'. The 'hide' option shows full details +# and also suppresses the link from displaying at all. +show_more_details.default = 'hide'; + +############################################################################## +# Size of the jacket image to display on the record detail summary. +# Sizes vary depending on added content provider. +# Options are "small", "medium", and "large" +record.summary.jacket_size = 'medium'; + + +############################################################################## +# Define the order in which facets are displayed. Only facets listed here +# will be displayed. To show all facets sorted by name, comment out this +# setting. +# facet.display = [] # show no facets +facet.display = [ + {facet_class => 'author', facet_order => ['personal', 'corporate']}, + {facet_class => 'subject', facet_order => ['topic']}, + {facet_class => 'series', facet_order => ['seriestitle']}, + {facet_class => 'subject', facet_order => ['name', 'geographic']} +]; + +############################################################################## +# Define the advanced search limiters and labels. +# adv_label is the (translated) label for the limiter +# adv_attr is an array of possible limiters, the first one that has any +# values will be used +# adv_break will end the current row. If specified with a label/attr it +# will do so *after* that limiter. +# adv_special will drop in a special entry: +# lib_selector will put the search library box (with limit to available) +# pub_year will put the publication year box +# sort_selector will put the sort results selector + +search.adv_config = [ + {adv_label => l("Item Type"), adv_attr => ["mattype", "item_type"]}, + {adv_label => l("Item Form"), adv_attr => "item_form"}, + {adv_label => l("Language"), adv_attr => "item_lang"}, + {adv_label => l("Audience"), adv_attr => ["audience_group", "audience"], adv_break => 1}, + {adv_label => l("Video Format"), adv_attr => "vr_format"}, + {adv_label => l("Bib Level"), adv_attr => "bib_level"}, + {adv_label => l("Literary Form"), adv_attr => "lit_form", adv_break => 1}, + {adv_label => l("Search Library"), adv_special => "lib_selector"}, + {adv_label => l("Publication Year"), adv_special => "pub_year"}, + {adv_label => l("Sort Results"), adv_special => "sort_selector"}, +]; + +############################################################################## +# For each search box the default "query type" value can be specified here +# This is the actual backend value, not the label +# Also note that including more than the row count entries won't add rows +# The first entry should be used as a default for "basic" search as well + +search.default_qtypes = ['keyword','title','author']; + +############################################################################## +# Basic Search Box definition +# This allows selection of what, exactly, basic search uses for a selection +# box. Previously it was hardcoded to use an attr box of mattype or item_type. +# +# type can be "attr" or "filter" +# group is the attr or filter entries you want to check for +# none_label is the label for the default nothing selected entry. + +search.basic_config = { + type => 'attr', + group => ['mattype','item_type'], + none_label => l("All Formats"), +}; + +############################################################################## +# Show Google Book Previews +# Set to 1 or 'true' to enable +ctx.google_books_preview = 1; + +%] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/css/colors.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/css/colors.tt2 new file mode 100644 index 0000000000..db3dd3b770 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/css/colors.tt2 @@ -0,0 +1,36 @@ +[% + 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_greatnews = "green", # green + text_invert = "#fff", # white + text_match = "#c00", # deep red + primary = "#003E7E", # dark blue + primary_fade = "#3076BF", # medium blue + primary_offset = "#5689BF", # light blue + control = "#003E7E", # 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 = "#5689BF", # 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 + table_heading = "#d8d8d8", # grey-blue + }; + +%] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/css/fonts.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/css/fonts.tt2 new file mode 100644 index 0000000000..728e2fdbdd --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/css/fonts.tt2 @@ -0,0 +1,11 @@ +[%- + css_fonts = { + size_base = "15px", + size_small = "92%", # 11px + size_smaller = "83%", # 10px + size_smallest = "75%", # 9px + size_big = "110%", # 13.2px + size_bigger = "125%", + size_biggest = "150%" + } +%] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/footer.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/footer.tt2 new file mode 100644 index 0000000000..3a2b5c59fb --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/footer.tt2 @@ -0,0 +1,30 @@ + diff --git a/Open-ILS/src/templates_laurentian/opac/parts/homesearch.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/homesearch.tt2 new file mode 100644 index 0000000000..1e1135e2db --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/homesearch.tt2 @@ -0,0 +1,3 @@ + diff --git a/Open-ILS/src/templates_laurentian/opac/parts/login/form.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/login/form.tt2 new file mode 100644 index 0000000000..e5ebeb0879 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/login/form.tt2 @@ -0,0 +1,65 @@ +[% IF ctx.login_failed_event %] +
+[% + IF ctx.login_failed_event.textcode == 'PATRON_CARD_INACTIVE'; + l("The barcode used to login is marked as inactive. Please contact your local library."); + ELSIF ctx.login_failed_event.textcode == 'PATRON_INACTIVE'; + l("This account has been deactivated. Please contact your local library."); + ELSE; + l("Login failed. The username or password provided was not valid. + Ensure Caps-Lock is off and try again."); + l(" Or reset your password."); + END; +%] +
+[% END %] + + diff --git a/Open-ILS/src/templates_laurentian/opac/parts/record/subjects.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/record/subjects.tt2 new file mode 100644 index 0000000000..ea70647582 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/record/subjects.tt2 @@ -0,0 +1,84 @@ +[% + subjects = [ + { + label => l('Subject: '), + xpath => '//*[@tag="600" or @tag="610" or @tag="611" or @tag="630" or @tag="650" or @tag="651"]' + }, { + label => l('Genre: '), + xpath => '//*[@tag="655"]' + }, { + label => l('Topic Heading: '), + xpath => '//*[@tag="690"]' + }, { + label => l('Geographic Setting: '), + xpath => '//*[@tag="691"]' + }, { + label => l('Biographical Subject: '), + xpath => '//*[@tag="692"]' + }, { + label => l('Character Attributes: '), + xpath => '//*[@tag="693"]' + }, { + label => l('Setting: '), + xpath => '//*[@tag="698"]' + }, { + label => l('Time Period: '), + xpath => '//*[@tag="699"]' + } + ]; + + BLOCK render_subject; + xpath = xpath || '//*[starts-with(@tag,"6")]'; + FOR node IN ctx.marc_xml.findnodes(xpath); + all_terms = []; + graphics = []; + FOR subfield IN node.childNodes; + NEXT UNLESS subfield.nodeName == "subfield"; + code = subfield.getAttribute('code'); + IF code == '6'; + linked_fields = [subfield.textContent()]; + target_field = node.getAttribute('tag'); + get_linked_880s; + END; + NEXT UNLESS code.match('[a-z]'); + IF code.match('[vxyz]'); " > "; END; + # at this point, we actually have a partial term to use. + single_term = subfield.textContent | html; + all_terms.push(subfield.textContent.replace('\-', ' ').replace('[#"^$\+,\.:;&|\[\]()]', '')); + total_term = all_terms.join(" ").replace('\s+$', ''); + %] +[% single_term %] + [%- END; + IF all_terms.size; "
"; END; + FOREACH link880 IN graphics; + '
'; + link880.value | html; + '
'; + END; + END; + END +%] + +[% BLOCK render_all_subjects; + FOREACH subj IN subjects; + content = PROCESS render_subject(xpath=subj.xpath); + IF content.match('\S'); +%] + + + + + + + +
[% subj.label %][% content %]
+ [%- END; %] + [%- END; %] +[%- END %] + +[%- subject_html = PROCESS render_all_subjects; + IF subject_html.length > 0; +%] + +[%- subject_html %] +[%- END %] diff --git a/Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2 new file mode 100644 index 0000000000..43f010f44f --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2 @@ -0,0 +1,12 @@ + diff --git a/Open-ILS/src/templates_laurentian/opac/parts/topnav_logo.tt2 b/Open-ILS/src/templates_laurentian/opac/parts/topnav_logo.tt2 new file mode 100644 index 0000000000..1aea2b4d63 --- /dev/null +++ b/Open-ILS/src/templates_laurentian/opac/parts/topnav_logo.tt2 @@ -0,0 +1,2 @@ + diff --git a/Open-ILS/web/images/lul_logo.png b/Open-ILS/web/images/lul_logo.png new file mode 100644 index 0000000000..867951c926 Binary files /dev/null and b/Open-ILS/web/images/lul_logo.png differ diff --git a/Open-ILS/web/images/lul_logo_small.png b/Open-ILS/web/images/lul_logo_small.png new file mode 100644 index 0000000000..db617a8427 Binary files /dev/null and b/Open-ILS/web/images/lul_logo_small.png differ