Create a templates_kcls to hold KCLS branding of TT OPAC
authorDan Scott <dan@coffeecode.net>
Sun, 1 May 2011 20:57:01 +0000 (16:57 -0400)
committerDan Scott <dan@coffeecode.net>
Sun, 1 May 2011 20:57:01 +0000 (16:57 -0400)
The debranding of the TT OPAC begins with the top navigation.
  * Replace the KCLS logo with the Evergreen logo (even though
    white background on black doesn't look great, it's something)
  * Replace the KCLS specific top links with example links.
  * Split the logo and the links sections out into separate
    templates so that we can maximize commonality of the
    topnav.tt2 template.

For now, all files containing the string 'kcls' have been
copied into the templates_kcls directory. As we move through
the templates, we may refactor them in similar to how we just
refactored topnav.tt2.

Signed-off-by: Dan Scott <dbs@coffeecode.net>

13 files changed:
Open-ILS/web/templates/default/opac/parts/printnav.tt2
Open-ILS/web/templates/default/opac/parts/topnav.tt2
Open-ILS/web/templates/default/opac/parts/topnav_links.tt2 [new file with mode: 0644]
Open-ILS/web/templates/default/opac/parts/topnav_logo.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/myopac/main.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/myopac/prefs_settings.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/footer.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/homesearch.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/login/form.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/printnav.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/record/summary.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/topnav_links.tt2 [new file with mode: 0644]
Open-ILS/web/templates_kcls/default/opac/parts/topnav_logo.tt2 [new file with mode: 0644]

index 13a8f66..580c0d6 100644 (file)
@@ -12,7 +12,7 @@
                 <a href="javascript:window.print();"
                     id="util_print_btn"><img alt="[% l('Print Page') %]"
                     src="[% ctx.media_prefix %]/images/tool_print.png" /></a>
-                <a href="http://www.kcls.org/usingthelibrary/catalog_help/index.cfm"
+                <a href="http://open-ils.org/dokuwiki/doku.php?id=evergreen-user:opac_help"
                     id="util_help_btn"><img alt="[% l('Help') %]"
                     src="[% ctx.media_prefix %]/images/tool_help.png" /></a>
                 <a href="javascript:history.go(+1)"
index ab467c8..5c01e7e 100644 (file)
@@ -1,8 +1,7 @@
 [% IF !ctx.is_staff %]
 <div id="header">
     <div class="float-left">
-        <a href="http://www.kcls.org"><img alt="[% l('KCLS Logo') %]" 
-            src="[% ctx.media_prefix %]/images/KCLS_logo_horiz.gif" /></a>
+        [% INCLUDE "default/opac/parts/topnav_logo.tt2" %]
     </div>
     <div class="float-right">
         [% IF !ctx.user %]
     <div class="common-no-pad"></div>
 </div>
 [% END %]
-<div id="gold-links-holder">
-    <div id="gold-links">
-        <div id="header-links">
-            <a href="http://www.kcls.org/usingthelibrary/index.cfm">Using the Library</a>
-            <a href="http://www.kcls.org/booksandreading/">Books &amp; Reading</a>
-            <a href="http://www.kcls.org/research/index.cfm">Research &amp; Homework</a>
-            <a href="http://www.kcls.org/programs/">Programs &amp; Classes</a>
-            <a href="http://www.kcls.org/events/">Events</a>
-            <a href="/opac/extras/mobile/">Mobile Catalog</a>
-            <a href="http://www.kcls.org/about/">About KCLS</a>
-        </div>
-    </div>
-</div>
+[% INCLUDE "default/opac/parts/topnav_links.tt2" %]
diff --git a/Open-ILS/web/templates/default/opac/parts/topnav_links.tt2 b/Open-ILS/web/templates/default/opac/parts/topnav_links.tt2
new file mode 100644 (file)
index 0000000..2a8c9b0
--- /dev/null
@@ -0,0 +1,11 @@
+<div id="gold-links-holder">
+    <div id="gold-links">
+        <div id="header-links">
+            <a href="http://example.com">Link 1</a>
+            <a href="http://example.com">Link 2</a>
+            <a href="http://example.com">Link 3</a>
+            <a href="http://example.com">Link 4</a>
+            <a href="http://example.com">Link 5</a>
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/web/templates/default/opac/parts/topnav_logo.tt2 b/Open-ILS/web/templates/default/opac/parts/topnav_logo.tt2
new file mode 100644 (file)
index 0000000..7e479f9
--- /dev/null
@@ -0,0 +1,2 @@
+        <a href="http://evergreen-ils.org"><img alt="[% l('Evergreen Logo') %]" 
+            src="[% ctx.media_prefix %]/opac/images/small_logo.jpg" /></a>
diff --git a/Open-ILS/web/templates_kcls/default/opac/myopac/main.tt2 b/Open-ILS/web/templates_kcls/default/opac/myopac/main.tt2
new file mode 100644 (file)
index 0000000..03347fb
--- /dev/null
@@ -0,0 +1,334 @@
+[%  PROCESS "default/opac/parts/header.tt2";
+    PROCESS "default/opac/parts/misc_util.tt2";
+    WRAPPER "default/opac/parts/myopac/main_base.tt2";
+    myopac_page = "main";
+    myopac_main_page = "main";
+%]
+
+    [% IF ctx.fines.circulation.size > 0 %]
+    <div id='myopac_circ_trans_div'>
+        <table width='100%' class='data_grid'>
+            <thead>
+                <tr>
+                    <td colspan='10' style='padding: 6px'>
+                        <strong>[% l("Fines") %]</strong>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l("Title") %]</td>
+                    <td>[% l("Author") %]</td>
+                    <td>[% l("Checkout Date") %]</td>
+                    <td>[% l("Due Date") %]</td>
+                    <td>[% l("Date Returned") %]</td>
+                    <td>[% l("Balance Owed") %]</td>
+                    <!-- TODO: hidden until pay-fines is implemented
+                    <td nowrap="nowrap" style="white-space:nowrap;">
+                        <input id="pay_fines_box1" checked="checked"
+                            type="checkbox" title="[% l('Click to (un)select all fines') %]" />
+                        <label for="pay_fines_box1">[% l('Pay Fines') %]</label>
+                    </td>
+                    -->
+                </tr>
+            </thead>
+            <tbody id='myopac_circ_trans_tbody'>
+                [% FOR f IN ctx.fines.circulation;
+                    attrs = {marc_xml => f.marc_xml};
+                    IF f.marc_xml;
+                        PROCESS get_marc_attrs args=attrs;
+                    ELSIF f.xact.reservation;
+                        attrs.title = f.xact.reservation.target_resource_type.name;
+                    END %]
+                <tr id='myopac_circ_trans_row'>
+                    <td>
+                        [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;
+                        IF recid; %]
+                        <a href="[% ctx.opac_root %]/record/[% recid %]">[% attrs.title %]</a>
+                        [% ELSE %]
+                        [% attrs.title %]
+                        [% END %]
+                    </td>
+                    <td>
+                        <a href="[% ctx.opac_root %]/results?qtype=author&query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author %]</a>
+                    </td>
+                    <td name='myopac_circ_trans_start'>
+                        [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;
+                        IF ts;
+                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td name='myopac_circ_trans_due'>
+                        [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0;
+                        IF ts;
+                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td name='myopac_circ_trans_finished'>
+                        [%  ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;
+                            IF ts;
+                                date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                            ELSE %]
+                            <!-- XXX TODO fines aren't really accruing
+                                if circ has hit maxfines. more clarity
+                                here? -->
+                            <span class="red">[% l('(fines accruing)') %]</span>
+                        [%  END %]
+                    </td>
+                    <td>
+                        <strong class="red">
+                            [% money(f.xact.balance_owed) %]
+                        </strong>
+                    </td>
+                    <!-- TODO: hidden until pay-fines is implemented
+                    <td>
+                        <input type="checkbox" name="selector" title="[% l('Pay this fine') %]" />
+                    </td>
+                    -->
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+    </div>
+    [% END %]
+
+    [% IF ctx.fines.grocery.size > 0 %]
+    <!-- Table for all non-circulation transactions -->
+    <div id='myopac_trans_div'>
+        <br/>
+        <hr class='opac-auto-013'  color="#dcdbdb" />
+        <br/>
+        <table width='100%' class='data_grid data_grid_center'
+            id='myopac_trans_table'>
+            <thead>
+                <tr>
+                    <td colspan='8' style='padding: 6px'>
+                        <b>[% l("Other Fees") %]</b>
+                    </td>
+                </tr>
+                <tr>
+                    <td width='16%'>[% l("Transaction Start Time") %]</td>
+                    <td width='16%'>[% l("Last Payment Time") %]</td>
+                    <td width='16%'>[% l("Initial Amount Owed") %]</td>
+                    <td width='16%'>[% l("Total Amount Paid") %]</td>
+                    <td width='16%'>[% l("Balance Owed") %]</td>
+                    <td width='16%'>[% l("Billing Type") %]</td>
+                    <!-- TODO: hidden until pay-fines is implemented
+                    <td width='4%' align="center" nowrap="nowrap"
+                        style="white-space:nowrap;">
+                        <input id="pay_fines_box2" checked="checked"
+                            type="checkbox"
+                            title="[% l('Click to (un)select all fines') %]" />
+                        <label for="pay_fines_box2">[% l("Pay Fines") %]</label>
+                    </td>
+                    -->
+                </tr>
+            </thead>
+            <tbody id='myopac_trans_tbody'>
+                [% FOR f IN ctx.fines.grocery %]
+                <tr id='myopac_trans_row'>
+                    <td>[% date.format(
+                            ctx.parse_datetime(f.xact.xact_start),
+                            DATE_FORMAT
+                    ) %]</td>
+                    <td>
+                        [%  IF f.xact.last_payment_ts;
+                                date.format(
+                                    ctx.parse_datetime(
+                                        f.xact.last_payment_ts
+                                    ), DATE_FORMAT
+                                );
+                            END %]
+                    </td>
+                    <td>[% money(f.xact.total_owed) %]</td>
+                    <td>[% money(f.xact.total_paid) %]</td>
+                    <td class="red">
+                        <strong>
+                            [% money(f.xact.balance_owed) %]
+                        </strong>
+                    </td>
+                    <td>[% f.xact.last_billing_type %]</td>
+                    <!-- TODO: hidden until pay-fines is implemented
+                    <td>
+                        <input type="checkbox" name='selector' title='[% l("Pay this fine") %]'/>
+                    </td>
+                    -->
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+    </div>
+    [% END %]
+
+<!-- TODO: move payment form to its own page -->
+
+<div id="pay_fines_now" class="hide_me">
+    <table id='oils-selfck-cc-payment-table'>
+        <tbody>
+            <tr>
+                <td><div style="width:129px;"></div></td>
+                <td><div style="width:195px;"></div></td>
+                <td><div style="width:324px;"></div></td>
+            </tr>
+            <tr>
+                <td colspan='2'><strong>Billing Information</strong></td>
+                <td rowspan='13' valign='top'>
+                    Selected fines you are paying for:
+                    <table cellpadding="0" cellspacing="5" border="0">
+                        <thead>
+                            <tr>
+                                <td>
+                                    <strong>Name</strong>
+                                </td>
+                                <td>
+                                    <strong>Amount</strong>
+                                </td>
+                            </tr>
+                        </thead>
+                        <tbody id="selectedFines">
+                        </tbody>
+                    </table>
+                    <br />
+                    <div id='oils-selfck-cc-payment-summary'>
+                        Total amount to pay:
+                        <strong>$<span></span></strong>
+                    </div>
+                    <br />
+                    Click <strong>Cancel</strong> to go back and (un)select
+                    other fines.
+                </td>
+            </tr>
+            <tr>
+                <td>First Name</td>
+                <td><input jsId='oilsSelfckCCFName' /></td>
+            </tr>
+            <tr>
+                <td>Last Name</td>
+                <td><input jsId='oilsSelfckCCLName' /></td>
+            </tr>
+            <tr>
+                <td>Street Address</td>
+                <td><input jsId='oilsSelfckCCStreet' /></td>
+            </tr>
+            <tr>
+                <td>City</td>
+                <td><input jsId='oilsSelfckCCCity' /></td>
+            </tr>
+            <tr>
+                <td>State or Province</td>
+                <td><input jsId='oilsSelfckCCState' /></td>
+            </tr>
+            <tr>
+                <td>ZIP or Postal Code</td>
+                <td><input jsId='oilsSelfckCCZip' /></td>
+            </tr>
+            <tr>
+              <td colspan='2'><strong>Credit Card Information</strong></td>
+            </tr>
+            <!-- Technically not needed since card type is derived from the CC number
+            <tr>
+                <td>Type of Card</td>
+                <td>
+                    <select jsId='oilsSelfckCCType' required='true'>
+                        <option value='VISA'>VISA</option>
+                        <option value='MasterCard'>MasterCard</option>
+                        <option value='American Express'>American Express</option>
+                    </select>
+                </td>
+            </tr>
+            -->
+            <tr>
+                <td>Credit Card #</td>
+                <td><input jsId='oilsSelfckCCNumber' /></td>
+            </tr>
+            <tr>
+                <td>
+                    <div style="position:absolute;">
+                        <div style="position:relative;left:80px;">
+                            <a href="#"><img
+                                src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                        </div>
+                    </div>
+                    Security Code
+                </td>
+                <td>
+                    <input jsId='oilsSelfckCCCVV' />
+                </td>
+            </tr>
+            <tr>
+                <td>Exipration Month</td>
+                <td>
+                    <select jsId='oilsSelfckCCMonth'>
+                        <option value='01' selected='selected'>January</option>
+                        <option value='02'>February</option>
+                        <option value='03'>March</option>
+                        <option value='04'>April</option>
+                        <option value='05'>May</option>
+                        <option value='06'>June</option>
+                        <option value='07'>July</option>
+                        <option value='08'>August</option>
+                        <option value='09'>September</option>
+                        <option value='10'>October</option>
+                        <option value='11'>November</option>
+                        <option value='12'>December</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td>Expiration Year</td>
+                <td>
+                  <select jsId='oilsSelfckCCYear'>
+                    <option value='2011'>2011</option>
+                    <option value='2012'>2012</option>
+                    <option value='2013'>2013</option>
+                    <option value='2014'>2014</option>
+                    <option value='2015'>2015</option>
+                    <option value='2016'>2016</option>
+                    <option value='2017'>2017</option>
+                    <option value='2018'>2018</option>
+                    <option value='2019'>2019</option>
+                  </select>
+                </td>
+            </tr>
+            <tr class="hide_me">
+                <td>Edit Billing Address</td>
+                <td>
+                    <input jsId='oilsSelfckEditDetails'/>
+                </td>
+            </tr>
+            <tr>
+                <td colspan='2' align="center">
+                    <button jsId='oilsSelfckCCSubmit'>
+                        Submit Payment
+                    </button>
+                    <button>
+                        Cancel
+                    </button>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="3">
+                    <br />
+                    Important! You must have a printed receipt to be
+                    eligible for a refund on lost items (regulations allow
+                    for no exceptions).
+                    <br />
+                    <strong>
+                        To ensure your necessary receipt information is
+                        not lost, enter your email address above and a
+                        receipt will be emailed to you. Otherwise, make
+                        certain you have a printed receipt in hand before
+                        closing the payment receipt screen.
+                    </strong>
+                    <br />
+                    Refunds are not available for parts and pieces, overdue
+                    fines, or items that do not display a specific title in
+                    My Account. For a full list of refundable and
+                    non-refundable items, visit
+                    <a href="http://www.kcls.org/usingthelibrary/borrowing/refundable.cfm">http://www.kcls.org/usingthelibrary/borrowing/refundable.cfm</a><br /><br />
+                    This site uses VeriSign SSL encryption to ensure your
+                    privacy.
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</div>
+[% END %]
diff --git a/Open-ILS/web/templates_kcls/default/opac/myopac/prefs_settings.tt2 b/Open-ILS/web/templates_kcls/default/opac/myopac/prefs_settings.tt2
new file mode 100644 (file)
index 0000000..4267d3a
--- /dev/null
@@ -0,0 +1,116 @@
+[%  PROCESS "default/opac/parts/header.tt2";
+    WRAPPER "default/opac/parts/myopac/prefs_base.tt2";
+    myopac_page = "prefs_notify";
+    prefs_page = 'settings' %]
+
+USER SETTINGS
+
+        <!-- SEARCH PREFS SAVE, MOVE TO SUB-TEMPLATE
+        <div style="float:right;width:65px;">
+            <div style="position:absolute">
+                <div style="position:relative;top:75px;">
+                    <a id='acct_prefs_save'
+                         class='hide_me'
+                         href="#"><img alt="Save"
+                         src="[% ctx.media_prefix %]/images/save-btn.png" /></a>
+                </div>
+            </div>
+        </div>
+        -->
+
+
+        <!-- SEARCH PREFERENCES / leaving here for reference
+        <table class="hide_me full-width" id="acct_search_main">
+            <tbody id='myopac_prefs_tbody'>
+                <tr id='myopac_prefs_loading'>
+                    <td colspan='3'><b>[% l("Loading...") %]</b></td>
+                </tr>
+
+                <tr id='myopac_prefs_row'>
+                    <td width='20%'>[% l("Search hits per page") %]</td>
+
+                    <td>
+                        <div style="position:absolute">
+                            <div style="position:relative;top:0px;left:55px;">
+                                <a href="#">
+                                <img alt="Search Hits Help"
+                                     src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                            </div>
+                        </div><select id='prefs_hits_per'
+                            style="position:relative;z-index:100;">
+                            <option value='5'>
+                                5
+                            </option>
+
+                            <option value='8'>
+                                8
+                            </option>
+
+                            <option value='10'>
+                                10
+                            </option>
+
+                            <option value='15'>
+                                15
+                            </option>
+
+                            <option value='20'>
+                                20
+                            </option>
+
+                            <option value='25'>
+                                25
+                            </option>
+
+                            <option value='50'>
+                                50
+                            </option>
+                        </select>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td colspan="2"><label for="circHistStart">Keep history of
+                    checked out items?</label> <input type="checkbox"
+                           id="circHistStart" /></td>
+                </tr>
+
+                <tr class="hide_me">
+                    <td>[% l("Default Font Size") %]</td>
+
+                    <td><select id='prefs_def_font'>
+                        <option value='regular'>
+                            [% l("Regular Font") %]
+                        </option>
+
+                        <option value='large'>
+                            [% l("Large Font") %]
+                        </option>
+                    </select></td>
+                </tr>
+
+                <tr class="hide_me">
+                    <td>[% l("Default Search Location") %]</td>
+                    <td>
+                        <div style='margin-bottom: 5px;'>
+                            <input type='checkbox' id='myopac_pref_home_lib' />
+                                 [% l("Always search my home library by default.") %]
+                        </div>
+                        <select id='prefs_def_location'></select>
+                    </td>
+                </tr>
+
+                <tr class="hide_me">
+                    <td>[% l("Default Search Range") %]</td>
+
+                    <td><select id='prefs_def_range'>
+                        </select></td>
+                </tr>
+            </tbody>
+        </table><a href=
+        "http://www.kcls.org/usingthelibrary/catalog_help/library_elf.cfm"><u>Try
+        Library Elf-to manage library materials!</u></a>
+
+        -->
+
+[% END %]
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/footer.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/footer.tt2
new file mode 100644 (file)
index 0000000..9ab3ace
--- /dev/null
@@ -0,0 +1,10 @@
+<div id="footer">
+    <a href="http://www.kcls.org/usingthelibrary/request/">[% l('Request a Purchase') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/usingthelibrary/request/">[% l('Interlibrary Loan') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/about/contact/">[% l('Contact Us') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/usingthelibrary/catalog_help/">[% l('Site Help') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/usingthelibrary/policies/privacy.cfm">[% l('Privacy Statement') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/about/support/">[% l('Support KCLS') %]</a> &nbsp;|&nbsp;
+    <a href="http://www.kcls.org/employment/">[% l('Employment') %]</a> 
+</div>
+
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/homesearch.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/homesearch.tt2
new file mode 100644 (file)
index 0000000..2021f16
--- /dev/null
@@ -0,0 +1,64 @@
+<div style='width:664px;height:35px;background:#FFFFFF;'>
+    <strong><center></center></strong>
+</div>
+<div id='hp-banner'>
+    <a href='http://www.kcls.org/newcatalog/'><img
+        src='[% ctx.media_prefix %]/images/golive.jpg'
+        alt='new catalog' title='New Catalog Information' /></a>
+</div>
+<div id='hp-buttons'>
+    <div class="float-left">
+        <img src='[% ctx.media_prefix %]/images/hp-links-left.jpg' />
+    </div>
+    <div class="float-left">
+           <div id='homesearch_thing'>
+               <table cellpadding='0' cellspacing='5' border='0' id='hp-ql-table'>
+                <tr>
+                    <td colspan='4'>
+                        <span class="opac-auto-029">
+                            [% l("Browse for") %]:
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td>
+                        <a href='http://www.kcls.org/booksandreading/'>books</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/movies/movies_browse.cfm'>movies</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/ecollection/'>downloads</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/websites/'>websites</a>
+                    </td>
+                </tr>
+                <tr>
+                    <td>
+                        <a href='http://www.kcls.org/music/'>music</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/databases/subject_categories.cfm#17'>magazines</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/databases/'>databases</a>
+                    </td>
+                    <td>
+                        <a href='http://www.kcls.org/answers/'>answers</a>
+                    </td>
+                </tr>
+               </table>
+           </div>
+           <div id='hp-ql-bottom'>
+            <a href='http://www.kcls.org/locations'>Locations:
+                Find a Library Near You!
+                <img src='[% ctx.media_prefix %]/images/arrow-right.png' /></a>
+
+           </div>
+    </div>
+    <div class="float-left">
+        <img src='[% ctx.media_prefix %]/images/hp-links-right.jpg' />
+    </div>
+    <div class="clear-both"></div>
+</div>
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/login/form.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/login/form.tt2
new file mode 100644 (file)
index 0000000..c0624ae
--- /dev/null
@@ -0,0 +1,171 @@
+<!-- TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE 
+
+<div class="hide_me">
+       <div class='login_text color_1' style='padding: 4px; text-align: center;'>
+               <span>[% l("Login") %]</span>
+       </div>
+       <br/>
+</div>
+<div class="hide_me" id="forget_pw">
+    <h1>Password Reset</h1>
+       Username or Barcode<br />
+       <input type="text" id="forget_pw_user" /><br /><br />
+       Email Address on account<br />
+       <input type="text" id="forget_pw_email" /><br />
+    <a href="#">Submit</a> &nbsp;
+    <a href="#">Cancel</a>
+</div>
+<table id='change_pw_table' class='data_grid hide_me' style='margin-left: 20px;' width='95%'>
+       <thead>
+        <tr><td colspan='2' align='center'><b>[% l("Password") %]</b></td></tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td colspan='2' style='padding:10px;'>
+                [% l("This appears to be the first time you have logged in.  You will need to change your password.") %]
+                [% l("The password must be at least 7 characters in length,
+ contain at least one letter (a-z/A-Z),
+ and contain at least one number.") %]
+            </td>
+        </tr>
+        <tr>
+            <td>[% l("Enter your current password") %]</td>
+            <td><input type='password' id='change_pw_current'/></td>
+        </tr>
+        <tr>
+            <td>[% l("Enter the new password") %]</td>
+            <td><input type='password' id='change_pw_1'/></td>
+        </tr>
+        <tr>
+            <td>[% l("Re-type the new password for verification") %]</td>
+            <td><input type='password' id='change_pw_2'/></td>
+        </tr>
+        <tr><td><br/></td><td/></tr>
+        <tr class='color_1'>
+            <td colspan='2' align='center'>
+                <span class='login_text' style='margin-right: 20px;'>
+                    <input type='submit' value='[% l("Update Password") %]'  id='change_pw_button'/>
+                </span>
+            </td>
+        </tr>
+    </tbody>
+</table>
+
+
+<span id='pw_no_match' class='hide_me'>[% l("Passwords do not match") %]</span>
+<span id='pw_update_successful' class='hide_me'>[% l("Password successfully updated") %]</span>
+<span id='pw_not_strong' class='hide_me'>
+    [% l("The password provided is not strong enough.") %]
+    [% l("The password must be at least 7 characters in length, contain at least one letter (a-z/A-Z), and contain at least one number.") %]
+</span>
+
+ ^== TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE  -->
+
+[% IF ctx.login_failed_event %]
+<div id='login-failed-message'>
+[%
+    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 or contact your local library.");
+    END;
+%]
+</div>
+[% END %]
+
+<div>
+    <div style="height:20px;"></div>
+    <form method='POST'>
+        <table cellpadding="0" cellspacing="0" border="0">
+            <tr>
+                <td valign="top" width="676" class="login_boxes left_brain">
+                    <table cellpadding="0" cellspacing="0" border="0"
+                        width="100%">
+                        <tr>
+                               <td colspan="2" style="padding-bottom: 10px;">
+                                <h1>[% l('Log in to Your Account') %]</h1>
+                                [% l('Please enter the following information:') %]
+                                <br /><br />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td width="42%" class="lbl1">
+                                [% l('Library Card Number or Username') %]
+                                <br />
+                                <span class="lbl2">
+                                    [% l('Please include leading zeros and no spaces.') %]
+                                    <br/>
+                                    [% l('Example: 0026626051') %]
+                                </span>
+                                <br /><br />
+                            </td>
+                            <td width="58%" valign="top">
+                                <div class="input_bg">
+                                    <input type="text" id="username_field" name="username"/>
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="2">
+                                <div style="height:15px;"></div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td valign="top" class="lbl1">
+                                [% l('PIN Number or Password') %]<br />
+                                <span class="lbl2">
+                                    [% | l('<br/>', '<br/>') %]
+                                       If this is your first time logging in, please enter [_1] the last 4 digits of your phone number. [_2] Example: 0926
+                                    [% END %]
+                                </span>
+                            </td>
+                            <td valign="top">
+                                <div class="input_bg">
+                                    <input name="password" type="password" />
+                                </div>
+                                <div style="padding-top:7px;">
+                                    [%
+                                        # If no redirect is offered or it's leading us back to the 
+                                        # login form, redirect the user to My Account
+                                        redirect = CGI.param('redirect_to') || ctx.referer;
+                                        IF !redirect OR redirect.match(ctx.path_info _ '$');
+                                            redirect = CGI.url('-full' => 1) _ '/opac/myopac/main';
+                                        END;
+                                        redirect = redirect  | replace('^http:', 'https:');
+                                    %]
+                                    <input type='hidden' name='redirect_to' value='[% redirect %]'/>
+                                    <input type="checkbox" name="persist" /> [% l('Remember Me?') %]
+                                </div>
+                                <div style="padding-top:14px;">
+                                    <input type='image' alt="[% l('Log in') %]" src="[% ctx.media_prefix %]/images/login-btn2.png" />
+                                    <!-- TODO
+                                    <a href="reset_password"
+                                        style="position:relative;top:-13px;left:2px;font-size:10px;">Forgot your PIN?</a>
+                                    -->
+                                </div>
+                               </td>
+                        </tr>
+                    </table>
+                    <br /><br />
+                </td>
+                   <td><div style="width:10px;"></div></td>
+                <td class="login_boxes right_brain" align="center" valign="top" width="291">
+
+                    <a href="http://www.kcls.org/about/contact/"><img 
+                        src="[% ctx.media_prefix %]/images/questions.png" alt="[% l('Questions?') %]" style="margin-top:29px;" /></a>
+
+                       <div style="width:182px;color:black;padding:5px 25px;">
+                        [% l('Visit our FAQs section for answers to common questions about how to use your account.') %]
+                       </div>
+
+                    <a href="http://www.kcls.org/usingthelibrary/catalog_help/index.cfm#FAQs"><img
+                        alt="[% l('FAQs') %]" src="[% ctx.media_prefix %]/images/faqs-btn.png" style="margin-top:13px;" /></a>
+                   </td>
+            </tr>
+        </table>
+    </form>
+    <div class="clear-both"></div>
+</div>
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/printnav.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/printnav.tt2
new file mode 100644 (file)
index 0000000..13a8f66
--- /dev/null
@@ -0,0 +1,25 @@
+<div class="big-block">
+    <div class="float-right">
+        <div class="pos-rel">
+            <img src="[% ctx.media_prefix %]/images/utils-corner-left.png" class="float-left" />
+            <div class="left-corner"> 
+                <a href="javascript:history.go(-1)"
+                    id="util_back_btn"><img alt="[% l('Back') %]"
+                    src="[% ctx.media_prefix %]/images/tool_back.png" /></a>
+                <a href="[% ctx.opac_root %]/home"
+                    id="util_home_btn"><img alt="[% l('Homepage') %]"
+                    src="[% ctx.media_prefix %]/images/tool_home.png" /></a>
+                <a href="javascript:window.print();"
+                    id="util_print_btn"><img alt="[% l('Print Page') %]"
+                    src="[% ctx.media_prefix %]/images/tool_print.png" /></a>
+                <a href="http://www.kcls.org/usingthelibrary/catalog_help/index.cfm"
+                    id="util_help_btn"><img alt="[% l('Help') %]"
+                    src="[% ctx.media_prefix %]/images/tool_help.png" /></a>
+                <a href="javascript:history.go(+1)"
+                    id="util_forw_btn"><img alt="[% l('Forward') %]"
+                    src="[% ctx.media_prefix %]/images/tool_forward.png" /></a>
+            </div>
+            <img src="[% ctx.media_prefix %]/images/utils-corner-right.png" class="float-left" />
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/record/summary.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/record/summary.tt2
new file mode 100644 (file)
index 0000000..9d08781
--- /dev/null
@@ -0,0 +1,248 @@
+<!-- ****************** rdetail_summary.xml ***************************** -->
+<abbr class="unapi-id" title='tag:HTTP_HOST,OILS_TIME_YEAR:biblio-record_entry/OILS_OPAC_RID'></abbr><!-- XXX FIXME or remove -->
+<!-- This holds the record summary information -->
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0" id="rdetail_details_table">
+    <tbody id="rdetail_details_tbody">
+        <tr>
+            <td width="90" valign="top" id="rdetail_image_cell">
+                [% ident = attrs.isbn_clean || attrs.upc; IF ident; %]
+                <a id='rdetail_img_link' href='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/[% ident %]'><img
+                    alt="[% l('Image of item') %]" id='rdetail_image'
+                    src='[% ctx.media_prefix %]/opac/extras/ac/jacket/medium/[% ident %]' /></a>
+                [% END %]
+                <br />
+                <div class='jacket_attrib hide_me' id='rdetail.jacket_attrib_div'>
+                    <div>[% l("Image provided by") %]</div>
+                    <div>
+                        <a target='_blank' href='[% l("http://amazon.com/dp/") %]'
+                            class='classic_link' id='rdetail.jacket_attrib_link'>[% l("Amazon") %]</a>
+                    </div>
+                </div>
+            </td>
+    
+            <td valign="top">
+                <table border="0" cellpadding="0" cellspacing="0" width="100%">
+                    <tr>
+                        <td valign="top">
+                            <span id='rdetail_title'>[% attrs.title %]</span><br />
+                            [% IF attrs.author %]
+                            <span class='opac-auto-030'>[% l("Author") %]:</span>
+                            <em><a title='[% l("Perform an author search") %]'
+                                    id='rdetail_author'
+                                    href="[% ctx.opac_root %]/results?qtype=author&query=[%-
+                                        attrs.author | replace('[,\.:;]', '') | uri %]&loc=[% CGI.param('loc') | uri %]">[% attrs.author %]</a></em>
+                            [% END %]
+                        </td>
+                        <td align="right" valign="top" nowrap="nowrap" style="white-space:nowrap;">
+                            <div style="width:230px;text-align:left;margin-top:3px;">
+                                <div style="float:right;">
+                                    <div class="rdetail_aux_utils opac-auto-010">
+                                        <a href="[% ctx.opac_root %]/place_hold[%-
+                                            propagator; propagator.length > 1 ? "&" : ""; %]hold_target=[% ctx.bre_id %]&hold_type=T" id="rdetail_place_hold" class="no-dec"><img
+                                            src="[% ctx.media_prefix %]/images/green_check.png" alt="[% l('place hold') %]" /><span 
+                                                style="position:relative;top:-3px;left:3px;">[% l('Place Hold') %]</span></a>
+                                    </div>
+                                    <div class="rdetail_aux_utils opac-auto-121">
+                                        [%  
+                                            operation = ctx.mylist.grep(ctx.bre_id).size ? "delete" : "add";
+                                            label = (operation == "add") ? l("Add to my list") : l("Remove from my list"); 
+                                        %]
+                                        <form action="[% ctx.opac_root %]/mylist/[% operation %]" method="POST">
+                                            <input type="hidden" name="record" value="[% ctx.bre_id %]" />
+                                            <div class="pos-abs">
+                                                <div class="opac-auto-149">
+                                                    <input type="submit" title="[% label %]" value="[% label %]" class="subtle-button" />
+                                                </div>
+                                            </div>
+                                            <input type="image" alt="[% label %]"
+                                                src="[% ctx.media_prefix %]/images/clipboard.png" />
+                                        </form>
+                                    </div>
+                                </div>
+                                <div style="float:right;margin-right:17px;">
+                                    [% IF attrs.format_icon %]
+                                    <img alt="[% attrs.format_label %]" title="[% attrs.format_label %]" src="[% attrs.format_icon %]" />
+                                    [% END %]
+                                </div>
+                            </div>
+                        </td>
+                    </tr>
+                </table>
+                <div class='opac-auto-018'>
+                    <table border="0" cellpadding="0" width="100%">
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                [% IF attrs.isbn %]<strong id="rdetail_isbn_lbl">[% l("ISBN") %]</strong>[% END %]
+                            </td>
+                            <td valign="top" id='rdetail_isbn'>[% attrs.isbn %]</td>
+                            <td nowrap='nowrap' valign="top">
+                                [% IF attrs.phys_desc %]<strong id="rdetail_phys_lbl">[% l("Physical Description") %]</strong>[% END %]
+                            </td>
+                            <td valign="top" id='rdetail_physical_desc'>[% attrs.phys_desc %]</td>
+                        </tr>
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                <strong id="rdetail_ed_lbl">[% IF attrs.edition; l("Edition"); END %]</strong>
+                            </td>
+                            <td valign="top" id='rdetail_edition'>[% attrs.edition %]</td>
+                        </tr>
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                <strong id="rdetail_pub_lbl">[% IF attrs.publisher; l("Publisher"); END %]</strong>
+                            </td>
+                            <td valign="top" id='rdetail_publisher'>[% attrs.publisher %]</td>
+                            <td nowrap='nowrap' valign="top">
+                                <strong id="rdetail_pubdate_lbl">[% IF attrs.pubdate; l("Publication Date"); END %]</strong>
+                            </td>
+                            <td valign="top" id='rdetail_pubdate'>[% attrs.pubdate %]</td>
+                        </tr>
+                    </table>
+                </div>
+            </td>
+        </tr>
+    </tbody>
+</table>
+<br /><br />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" id="rdetails_status">
+    <thead>
+        <tr id="rdetails_status_head">
+            <td>[% l("Location") %]</td>
+            <td>[% l("Call Number") %]</td>
+            <td>[% l("Barcode") %]</td>
+            <td>[% l("Shelving Location") %]</td>
+            [% IF ctx.is_staff %]
+            <td>[% l("Age Hold Protection") %]</td>
+            <td>[% l("Create Date") %]</td>
+            <td>[% l("Holdable") %]</td>
+            [% END %]
+            <td>[% l("Status") %]</td>
+            <td>[% l("Due Date") %]</td>
+        </tr>
+    </thead>
+    <tbody class="copy_details_table">
+        [% FOR copy_info IN ctx.copies %]
+        <tr>
+            <td>[%
+                # XXX KCLS-specific kludging
+                org_name = ctx.get_aou(copy_info.circ_lib).name;
+                dir = org_name | lower | replace('[^\w]', '') |
+                    replace('.+320th', '320th'); %]
+                <a href="http://www.kcls.org/[% dir %]/"
+                    class="classic_link">[% org_name %]</a>
+            </td>
+            <td>[% copy_info.call_number_label %]</td>
+            <td>[% copy_info.barcode %]</td>
+            <td>[% copy_info.copy_location %]</td>
+            [% IF ctx.is_staff %]
+            <td>
+                [% copy_info.age_protect ?
+                    ctx.get_crahp(copy_info.age_protect).name : l('None') %]
+            </td>
+            <td>[% date.format(
+                ctx.parse_datetime(copy_info.create_date),
+                DATE_FORMAT
+            ) %]</td>
+            <td>[% (copy_info.holdable == 't' AND
+                    copy_info.location_holdable == 't' AND
+                    copy_info.status_holdable == 't') ? l('Yes') : l('No') %]</td>
+            [% END %]
+            <td>[% copy_info.copy_status %]</td>
+            <td>[%
+                IF copy_info.due_date;
+                    date.format(
+                        ctx.parse_datetime(copy_info.due_date),
+                        DATE_FORMAT
+                    );
+                ELSE;
+                    '-';
+                END %]</td>
+        </tr>
+        [% END %]
+        <tr>
+        [% IF ctx.copy_offset > 0;
+            new_offset = ctx.copy_offset - ctx.copy_limit;
+            IF new_offset < 0; new_offset = 0; END %]
+            <td>
+                [%# For some reason, browsers render &copy (as in, &copy_limit=foo) as the copyright 
+                    symbol, even though it's inside inside the href attribute string.  Use ; instead %]
+                <a href="[% ctx.opac_root %]/record/[% ctx.bre_id %]?copy_offset=[% new_offset %];copy_limit=[% ctx.copy_limit %]">&laquo; [%
+                    l('Previous [_1]', ctx.copy_offset - new_offset)
+                %]</a>
+            </td>
+        [% END %]
+        [% IF ctx.copies.size >= ctx.copy_limit %]
+            <td>
+                <a href="[% ctx.opac_root %]/record/[% ctx.bre_id %]?copy_offset=[% ctx.copy_offset + ctx.copy_limit %];copy_limit=[% ctx.copy_limit %]">[%
+                    l('Next [_1]', ctx.copy_limit)
+                %] &raquo;</a>
+            </td>
+        [% END %]
+        </tr>
+    </tbody>
+</table>
+
+<div id="rdetail_locs_expand" class="hide_me">
+    <a href="#"><img
+        src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">Show more locations</a>
+</div>
+
+<div id="rdetail_locs_collapse" class="hide_me">
+    <a href="#"><img
+        src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">Collapse locations</a>
+</div>
+
+<div id="rdetail_extras_expand" class="hide_me">
+    <a href="#"><img
+        src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">Expand all tabs</a>
+</div>
+
+<div id="rdetail_extras_collapse" class="hide_me">
+    <a href="#"><img src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">Collapse all tabs</a>
+</div>
+
+<div class="hide_me">
+    <table id='' border="0" width="100%">
+        <tbody id='rdetail_details_tbody'>
+            <tr>
+                <td id='' rowspan='2' valign="top" align="center" style="padding-right:10px;">
+                </td>
+                <td class='rdetail_desc' valign="top" colspan="3">
+                    <table border="0" width="100%">
+                        <tr>
+                            <td valign="top">
+                                <div style="padding-bottom:7px;">
+                                    <strong>[% l("Title") %]:</strong>
+                                </div>
+                            </td>
+                            <td width="1" valign="top" align="right" style="white-space:nowrap;">
+                                <a href="[% ctx.opac_root %]/place_hold[% propagator; propagator.length > 1 ? "&" : ""; %]hold_target=[% ctx.bre_id %]&hold_type=T"><img alt="[% l('Place Hold') %]"
+                                    src="[% ctx.media_prefix %]/images/place_hold.gif" /></a>
+                                <a href="#" id="rd_reviews_and_more" target="_blank"><img
+                                    alt="[% l('Reviews and More') %]" src="[% ctx.media_prefix %]/images/reviews.gif" /></a>
+                                <a href="#" id=""><img alt="[% l('Add to My List') %]"
+                                    src="[% ctx.media_prefix %]/images/add_mylist.gif" /></a>
+                            </td>
+                        </tr>
+                    </table>
+                </td>        
+            </tr>
+            <tr>
+                <td nowrap='nowrap' colspan="3" valign="bottom" style="padding-bottom:16px;">
+                </td>
+            </tr>
+            <tr>
+                <td><div style="height:20px;"></div></td>
+            </tr>
+        </tbody>
+    </table>
+    <!-- Empty span used for creating unAPI links -->
+    <abbr name="unapi" class="unapi-id"> <!-- unAPI URI goes here --> </abbr>
+</div> <!-- details_body -->
+
+<!-- ****************** end: rdetail_summary.xml ***************************** -->
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/topnav_links.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/topnav_links.tt2
new file mode 100644 (file)
index 0000000..6ea4b4d
--- /dev/null
@@ -0,0 +1,13 @@
+<div id="gold-links-holder">
+    <div id="gold-links">
+        <div id="header-links">
+            <a href="http://www.kcls.org/usingthelibrary/index.cfm">Using the Library</a>
+            <a href="http://www.kcls.org/booksandreading/">Books &amp; Reading</a>
+            <a href="http://www.kcls.org/research/index.cfm">Research &amp; Homework</a>
+            <a href="http://www.kcls.org/programs/">Programs &amp; Classes</a>
+            <a href="http://www.kcls.org/events/">Events</a>
+            <a href="/opac/extras/mobile/">Mobile Catalog</a>
+            <a href="http://www.kcls.org/about/">About KCLS</a>
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/web/templates_kcls/default/opac/parts/topnav_logo.tt2 b/Open-ILS/web/templates_kcls/default/opac/parts/topnav_logo.tt2
new file mode 100644 (file)
index 0000000..f9d4320
--- /dev/null
@@ -0,0 +1,2 @@
+        <a href="http://www.kcls.org"><img alt="[% l('KCLS Logo') %]" 
+            src="[% ctx.media_prefix %]/images/KCLS_logo_horiz.gif" /></a>