KMAIN-392 - Updating my lists
authorBill Erickson <berickxx@gmail.com>
Wed, 29 Oct 2014 21:07:29 +0000 (17:07 -0400)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
    Cross-port: 02a9b2c

Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm

KCLS/openils/var/templates_kcls/opac/myopac/lists.tt2
KCLS/openils/var/templates_kcls/opac/myopac/prefs_my_lists.tt2
KCLS/sql/kmain-392/kmain392.sql [new file with mode: 0644]
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
Open-ILS/web/css/skin/default/opac/style.css

index 8b51401..ce9e492 100644 (file)
@@ -1,41 +1,42 @@
 [%  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;
-    itemPage = ctx.bookbags_itemPage;
-
+    item_page = ctx.bookbags_item_page;
 %]
 <div id='myopac_bookbag_div' style="padding:5px;">
 
-    <!-- <div class="header_middle">
-        <span id="acct_holds_header" style="float:left;">[% l('My Lists') %]</span>
-        <span style="float:right;"><a class="hide_me" href="#">[% l('Export List') %]</a></span>
-    </div>
-    <div style="float:right;width:85px;">
-        <div style="position:absolute">
-            <div style="position:relative;top:13px;">
-                <a href="#" style="position:relative;top:-3px;left:-5px;"><img alt="[% l('Saving Help') %]" 
-                    src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                <a href="#"><img alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png"/></a>
-            </div>
-        </div>
-    </div> -->
-    <div id="temp_wrapper">
-
-
     <!-- new list creation -->
-    <form action="[% ctx.opac_root %]/myopac/list/update" method="POST" id="create_form">
-        <h2>[% l('Create new list') %]</h2><a name="createnewlist"></a>
+    <script type='text/javascript'>
+        function notEmpty(elem, msg){
+            var removedWhiteSpace = elem.value.replace(/\s/g, '');
+            if(0 == removedWhiteSpace.length){
+                alert(msg);
+                elem.value = '';
+                return false;
+            }
+            return true;
+        }
+    </script>
+    <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
+        <h1>[% l('Create New List') %]</h1><a name="createnewlist"></a>
         <table cellpadding="0" border="0" id="list_create_table">
             <tr>
                 <td>
                     <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
+                </td>
+                <td>
+                    [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
                     <input id="list_create_name" type="text" name="name" />
                     <input type="hidden" name="action" value="create" />
+                    [% IF ctx.add_rec %]
+                    <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" />
+                    [% END %]
+                    [% IF ctx.where_from %]
+                    <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
+                    [% END %]
                 </td>
                 <td>
                     <label for="list_create_shared">[% l('Share this list?') %]</label>
                     <a href="javascript:void(0);" onclick="alert(document.getElementById('bb_publish_text').innerHTML);"><img alt="[% l('Sharing Help') %]"
                         src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
                 </td>
-                <script type='text/javascript'>
-                    function notEmpty(elem, msg){
-                        var removedWhiteSpace = elem.value.replace(/\s/g, '');
-                        if(0 == removedWhiteSpace.length){
-                            alert(msg);
-                            elem.value = '';
-                            return false;
-                        }
-                        return true;
-                    }
-                </script>
                 <td class="list-create-table-buttons">
                     <input type="image" alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png" 
                         onClick="if(notEmpty(document.getElementById('list_create_name'), '[% l('Please enter a valid name for your list.') %]')) return true; return false"
                     />
                     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                    <a href="javascript:void(0);"
+                     <a href="javascript:void(0);"
                         onclick="document.getElementById('create_form').reset(); return false"><img
                         alt="[% l('Cancel') %]"
                         src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
                 </td>
             </tr>
+            <!-- <tr>
+                <td class="text-right-top">
+                    <label for="list_description">[% l("List description (optional):") %]</label>
+                </td>
+                <td colspan="3">
+                    <textarea cols="40" rows="3" name="description"
+                        id="list_description"></textarea>
+                </td>
+            </tr> -->
         </table>
     </form>
 
+    <h1>[% l("My Existing Lists") %]</h1>
     [% INCLUDE "opac/parts/anon_list.tt2" %]
     [% IF ctx.bookbags.size %]
-
+    <!-- Saved Lists Navigation -->
     <div class="header_middle">
         <span class="float-left">[% l('Saved Lists') %]</span>
         [% IF limit < ctx.bookbag_count; %]
@@ -83,7 +83,6 @@
                     offset => (offset - limit)
                 }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
             [%- END; -%]
-
             [%- IF (offset - (limit * 3)) >= 0 -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset - (limit * 3))
                     offset => (offset - limit)
                 }) %]'>[% ((offset - limit) / limit) + 1 %]</a>
             [%- END; -%]
-
             <span style="color:red;" >[% (offset / limit) + 1 %]</span>
-
-            [%- IF (ctx.bookbag_count - offset) > limit; -%]
+            [%- IF (offset + limit) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + limit)
                 }) %]'>[% ((offset + limit) / limit) + 1 %]</a>
             [%- END; -%]
-            [%- IF (ctx.bookbag_count - offset) > limit * 2; -%]
+            [%- IF (offset + (limit * 2)) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + (limit * 2))
                 }) %]'>[% ((offset + (limit * 2)) / limit) + 1 %]</a>
             [%- END; -%]
-            [%- IF (ctx.bookbag_count - offset) > limit * 3; -%]
+            [%- IF (offset + (limit * 3)) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + (limit * 3))
                 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
             [%- END; -%]
-
             [%- IF (ctx.bookbag_count - offset) > limit; -%] 
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                    offset => (offset + limit)
+                    limit => limit, offset => (offset + limit)
                 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
             </span>
             [%- END; -%]
     </div>
     <div class="clear-both"></div>
 
+    <!-- Existing Lists Display -->
     <div id='acct_lists_prime'>
         [% FOR bbag IN ctx.bookbags %]
-        <div id='acct_list_template'>
-            <div style="width:100%">
-                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
-                    <div class="bookbag-share">
+        <div class="bookbag-controls-holder">
+            [% IF ctx.add_rec %]
+                <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
+                    <div class="bookbag-controls">
+                        <input type="hidden" name="action" value="add_rec" />
                         <input type="hidden" name="list" value="[% bbag.id %]" />
-                        [% IF bbag.pub != 't' %]
-                        <input type="hidden" name="action" value="show" />
-                        <input type="submit" value="[% l('Share') %]" />
-                        [% ELSE %]
-                        <input type="hidden" name="action" value="hide" />
-                        <input type="submit" value="[% l('Hide') %]" />
+                        <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" />
+                        [% IF ctx.where_from %]
+                        <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
                         [% END %]
+                        <input class="fixed" type="submit" value="[% l('Add to this list') %]" />
                     </div>
                 </form>
-                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
+            [% END %]
+            <!-- Share/Hide Button -->
+            <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+                <div class="bookbag-share" style="width: 65px; text-align:center;">
+                    <input type="hidden" name="list" value="[% bbag.id %]" />
+                    [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                    [% IF bbag.pub != 't' %]
+                    <input type="hidden" name="action" value="show" />
+                    <input class="fixed" type="submit" value="[% l('Share') %]" />
+                    [% ELSE %]
+                    <input type="hidden" name="action" value="hide" />
+                    <input class="fixed" type="submit" value="[% l('Hide') %]" />
+                    [% END %]
+                </div>
+            </form>
+            <!-- Delete button -->
+            <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
+                <div class="bookbag-controls">
+                    <input type="hidden" name="list" value="[% bbag.id %]" />
+                    <input type="hidden" name="action" value="delete" />
+                    [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                    <input type="submit" value="[% l('Delete List') %]" />
+                </div>
+            </form>
+            <!-- Download CSV button -->
+            <!--
+                <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
                     <div class="bookbag-controls">
                         <input type="hidden" name="list" value="[% bbag.id %]" />
-                        <input type="hidden" name="action" value="delete" />
-                        <input type="submit" value="[% l('Delete List') %]" 
-                            onClick="if(confirm('Do you really want to delete this list?')) return true; return false" />
+                        <input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
+                        [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                        <input type="submit" value="[% l('Download CSV') %]" />
                     </div>
                 </form>
-                <div class="bookbag-controls">
-                    <big><strong>
-                    [% baseurl = ctx.opac_root _ '/myopac/lists';
-                    IF bbag.id != CGI.param("bbid");
-                        url = mkurl(baseurl, {bbid => bbag.id, itemPage => 1}, ['edit_notes','sort']);
-                        ltitle = l("Show items in list");
-                    ELSE;
-                        url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
-                        ltitle = l("Hide items in list");
-                    END %]
-                    <a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a></h2>
-                    </strong></big>
-                </div>
+            -->
+            <!-- Default list button -->
+            <!--
+                [% setting = 'opac.default_list'; %]
+                <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+                    <div class="bookbag-controls">
+                        <input type="hidden" name="list" value="[% bbag.id %]" />
+                        [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                        [% IF ctx.user_setting_map.$setting == bbag.id %]
+                        <input type="hidden" name="action" value="remove_default" />
+                        <input type="submit" value="[% l('Remove Default List') %]" />
+                        [% ELSE %]
+                        <input type="hidden" name="action" value="make_default" />
+                        <input type="submit" value="[% l('Make Default List') %]" />
+                        [% END %]
+                    </div>
+                </form>
+            -->
+            <!-- html view -->
+            <!--
                 <div class="bookbag-controls">
                     [% IF bbag.pub == 't'; %]
-                    <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]'><img
-                        alt="[% l('RSS Feed') %]" border="0"
-                        src="[% ctx.media_prefix %]/images/small-rss.png"/></a>
+                    <a href='[%-
+                        mkurl(
+                            ctx.opac_root _ '/results',
+                            {page => '0', bookbag => bbag.id, depth => 0, locg => ctx.search_ou},
+                            1
+                        )
+                    -%]'>[% l('HTML View') %]</a>
                     [% END %]
                 </div>
-                <div class="clear-both _pad-bottom-five"></div>
+            -->
+            <!-- bookbag/list title -->
+            <div class="bookbag-controls most">
+                [% baseurl = ctx.opac_root _ '/myopac/lists';
+                IF bbag.id != CGI.param("bbid");
+                    url = mkurl(baseurl,{bbid => bbag.id, item_page => 1},['edit_notes','sort']);
+                    ltitle = l("Show items in list");
+                ELSE;
+                    url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
+                    ltitle = l("Hide items in list");
+                END %]
+                <h2 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a></h2>
+                [% IF bbag.description %]<div class="bookbag-description">[% bbag.description | html %]</div>[% END %]
             </div>
-
-            <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
-            <input type="hidden" name="list" value="[% bbag.id %]" />
-
-            [% IF CGI.param("bbid") == bbag.id %]
-            <table cellpadding='0' cellspacing='0' border='0'>
-                <thead id="acct_list_header">
-                    <tr>
-                        <td width="1%" style="padding-left: 10px;">
-                        <input type="checkbox" onclick="
-                            var inputs=document.getElementsByTagName('input'); 
-                            for (i = 0; i < inputs.length; i++) { 
-                                if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %]) 
-                                    inputs[i].checked = this.checked;}"/>
-
+            <!-- RSS -->
+            <div class="bookbag-controls">
+                [% IF bbag.pub == 't'; %]
+                <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]'><img
+                    alt="[% l('RSS Feed') %]" border="0"
+                    src="[% ctx.media_prefix %]/images/small-rss.png"/></a>
+                [% END %]
+            </div>
+            <div class="clear-both pad-bottom-five"></div>
+        </div>
+        [% IF CGI.param("bbid") == bbag.id %]
+        <!--
+            <div class="bookbag-specific">
+                <div class="sort">
+                    <form method="get">
+                        <label for="opac.result.sort">[% l("Sort list items by: ") %]</label>
+                        [%- INCLUDE "opac/parts/preserve_params.tt2" params=['loc', 'query', 'qtype']; %]
+                        [% INCLUDE "opac/parts/filtersort.tt2"
+                            value=CGI.param('sort') mode='bookbag' %]
+                        <input type="hidden" name="bbid"
+                            value="[% CGI.param('bbid') | html %]" />
+                        <input type="submit" value="[% l('Sort') %]" />
+                    </form>
+                </div>
+                <div class="meta">
+                    <form method="post">
+                        <input type="hidden" name="bbid" value="[% bbag.id %]" />
+                        <input type="hidden" name="action" value="editmeta" />
+                        <input type="hidden" name="limit" value="[% limit %]" />
+                        <input type="hidden" name="offset" value="[% offset %]" />
+                        [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                        <table id="bbag-name-desc-form">
+                            <tr>
+                                <th>
+                                    <label for="bbag-edit-name">[% l('Name:') %]</label>
+                                </th>
+                                <td>
+                                    <input name="name" type="text"
+                                        value="[% bbag.name | html %]"
+                                        id="bbag-edit-name" />
+                                </td>
+                                <td rowspan="2" class="saver">
+                                    [% l("Save changes to name or description?") %]<br />
+                                    <input type="submit" value="[% l('Save') %]" />
+                                </td>
+                            </tr>
+                            <tr>
+                                <th><label for="bbag-edit-description">[% l('Description:') %]</label></th>
+                                <td>
+                                    <textarea name="description"
+                                        id="bbag-edit-description">[% bbag.description | html %]</textarea>
+                                </td>
+                            </tr>
+                        </table>
+                    </form>
+                </div>
+            </div>
+            <br class="clear-both" />
+        -->
+        <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+        <input type="hidden" name="list" value="[% bbag.id %]" />
+        <input type="hidden" name="sort" value="[% CGI.param('sort') | uri %]" />
+        <table class="bookbag-specific" cellpadding='0' cellspacing='0' border='0' width="100%">
+            <thead id="acct_list_header">
+                <tr>
+                    <td class="list_checkbox" style="width:3%">
+                    <input type="checkbox" onclick="
+                        var inputs=document.getElementsByTagName('input'); 
+                        for (i = 0; i < inputs.length; i++) { 
+                            if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %]) 
+                                inputs[i].checked = this.checked;}"/>
+
+                    </td>
+                    <td class="list_entry" style="width:37%">
+                        <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=> (CGI.param('sort') == 'titlesort' ? 'titlesort.descending' : 'titlesort')}) %]">[% l('Title') %]</a>
+                    </td>
+                    <td class="list_entry" style="width:36%">
+                        <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'authorsort' ? 'authorsort.descending' : 'authorsort')}) %]">[% l('Author(s)') %]</a>
+                    </td>
+                    <!-- Local Call Number description -->
+                    <!--
+                        <td class='list_entry'>
+                            [% l('Local Call Number') %]
                         </td>
-                        <td width="49%" style="padding-left: 5px;">[% l('Title') %]</td>
-                        <td width="49%">[% l('Author(s)') %]</td>
-                        <td width="1%" class="nowrap">
-                            <select class="opac-auto-179" name="action">
-                                <option>[% l('-- Actions for this list --') %]</option>
-                                <option value="place_hold">[% l('Place Hold') %]</option>
-                                <option value="del_item">[% l('Remove Items') %]</option>
-                            </select>
-                            <input type="submit" value="[% l('Go') %]" />
+                    -->
+                    <!-- Publication Date description -->
+                    <!--
+                        <td class="list_entry">
+                            <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'pubdate' ? 'pubdate.descending' : 'pubdate')}) %]">[% l('Publication Date') %]</a>
                         </td>
-                    </tr>
-                </thead>
-                <tbody>
-                    [% UNLESS bbag.items.size %]
-                    <tr><td colspan="4" class="opac-auto-171 opac-auto-097">
-                        [% l("This list contains no items.") %]
-                    </td></tr>
-                    [% 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 %]
-                    <tr>
-                        <td class="item_list_padding" style="padding-left: 10px;">
-                            <input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/>
+                    -->
+                    <!-- Format description -->
+                    <!--
+                        <td class="list_entry">
+                             [% l('Format') %]
                         </td>
-                        <td class="item_list_padding" style="padding-left: 5px;">
-                            <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec_id) %]">[% attrs.title | html %]</a>
+                    -->
+                    <!-- Notes description -->
+                    <!--
+                        <td class="list_entry">
+                            [% l('Notes') %]
+                            [% IF CGI.param("edit_notes") != bbag.id %]
+                            | <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {edit_notes=> bbag.id}) %]">[% l('Edit') %]</a>
+                            [% END %]
                         </td>
-                        <td class="item_list_padding">
-                            <a href="[%- 
-                                authorquery = attrs.author | replace('[,\.:;]', '');
-                                mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page'])
-                                -%]">[% attrs.author | html %]</a>
+                    -->
+                    <!-- Actions -->
+                    <td class="list_actions" style="width:27%">
+                        <select name="action">
+                            <option disabled="disabled">[% l('-- Actions for these items --') %]</option>
+                            <option value="place_hold">[% l('Place hold') %]</option>
+                            <option value="del_item">[% l('Remove from list') %]</option>
+                        </select>
+                        [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                        <input type="submit" value="[% l('Go') %]" />
+                    </td>
+                </tr>
+            </thead>
+            <tbody>
+                [% UNLESS bbag.items.size %]
+                <tr><td colspan="6" class="list_is_empty">
+                    [% l("This list contains no items.") %]
+                </td></tr>
+                [% 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 %]
+                <tr class="bookbag-item-row">
+                    <td class="list_checkbox">
+                        <input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/>
+                    </td>
+                    <td class="list_entry">
+                        <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec_id, {}, ['edit_notes', 'bbid']) %]">[% attrs.title | html %]</a>
+                    </td>
+                    <td class="list_entry">
+                        <a href="[%- 
+                            authorquery = attrs.author | replace('[,\.:;]', '');
+                            mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page', 'bbid', 'edit_notes'])
+                            -%]">[% attrs.author | html %]</a>
+                    </td>
+                    <!-- Local Call Number data -->
+                    <!--
+                        <td class="list_entry">
+                            [% 
+                                copy = attrs.holdings.0;
+                                IF copy;
+                                    # only show a relevant call number
+                                    copy_org = ctx.get_aou_by_shortname(copy.owner);
+                                    FOR ctx_org IN [ctx.pref_ou, ctx.search_ou, ctx.home_ou, ctx.physical_loc];
+                                        NEXT UNLESS ctx_org;
+                                        ctx_org = ctx.get_aou(ctx_org);
+                                        IF ctx.org_within_scope(ctx_org, copy_org, ctx_org.ou_type.depth);
+                                            l('[_1] ([_2])', copy.label, copy_org.name) | html;
+                                            LAST;
+                                        END;
+                                    END;
+                                END;
+                            %]
                         </td>
-                    </tr>
-                    [% END %]
-                </tbody>
-            </table>
-
-            [% IF ctx.bb_page_count > 1; %]
-                <div class="header_middle" style="padding-top:7px;">
-                    <span class="float-left" style="padding-left:34px;">[% l('Navigate Selected List ') %]</span>
-                    <span class='float-left' style='padding-left: 10px;'>
-                        [%- IF itemPage > 1 -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage - 1
-                            }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
-                        [%- END; -%]
-
-                        [%- IF (itemPage - 3) >= 1 -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage - 3
-                            }) %]'>[% itemPage - 3 %]</a>
-                        [%- END; -%]
-                        [%- IF (itemPage - 2) >= 1 -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage - 2
-                            }) %]'>[% itemPage - 2 %]</a>
-                        [%- END; -%]
-                        [%- IF (itemPage - 1) >= 1 -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage - 1
-                            }) %]'>[% itemPage - 1%]</a>
-                        [%- END; -%]
-                        <span style="color:red;" >[% itemPage %]</span>
-                        [%- IF (itemPage + 1) <= ctx.bb_page_count -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage + 1
-                            }) %]'>[% itemPage + 1 %]</a>
-                        [%- END; -%]
-                        [%- IF (itemPage + 2) <= ctx.bb_page_count -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage + 2
-                            }) %]'>[% itemPage + 2 %]</a>
-                        [%- END; -%]
-                        [%- IF (itemPage + 3) <= ctx.bb_page_count -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage + 3
-                            }) %]'>[% itemPage + 3 %]</a>
-                        [%- END; -%]
-
-                        [%- IF (itemPage + 1) <= ctx.bb_page_count; -%]
-                            <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                                itemPage => itemPage + 1
-                            }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
-                        [%- END; -%]
-                     </span>
-                </div>
-                <div class="clear-both"></div>
-            [% END %]
-            <br/>
-
-            [% END %] <!-- specific bookbag contents -->
-            </form>
+                    -->
+                    <!-- Publication Date data -->
+                    <!--
+                        <td class="list_entry">
+                              [% attrs.pubdate | html %]
+                        </td>
+                    -->
+                    <!-- Format data -->
+                    <!--
+                        <td class="list_entry">
+                              [% attrs.format_label | html %]
+                        </td>
+                    -->
+                    <!-- Notes data -->
+                    <!--
+                        [% IF CGI.param("edit_notes") == bbag.id %]
+                        <td class="list_entry">
+                            [% FOR note IN item.notes %]
+                            <input type="text" name="note-[% note.id %]" value="[% note.note | html %]" />
+                            [% END %]
+                            <input type="text" name="item-[% item.id %]" />
+                        </td>
+                        [% ELSE %]
+                        <td class="list_entry">
+                            [% FOR note IN item.notes %]
+                            <div>[% note.note | html %]</div>
+                            [% END %]
+                        </td>
+                        [% END %]
+                    -->
+                </tr>
+                [% END %]
+                [% IF CGI.param("edit_notes") == bbag.id %]
+                <tr>
+                    <td colspan="3"><!-- All space left of notes column --></td>
+                    <td class="save-notes">
+                        [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+                        <input type="hidden" name="bbid" value="[% CGI.param('bbid') | html %]" />
+                        <input type="submit" name="save_notes" value="[% l('Save Notes') %]" />
+                    </td>
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+        [% IF ctx.bb_page_count > 1; %]
+            <div class="header_middle" style="padding-top:7px;">
+                <span class="float-left" style="padding-left:34px;">[% l('Navigate Selected List ') %]</span>
+                <span class='float-left' style='padding-left: 10px;'>
+                    [%- IF item_page > 1 -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page - 1
+                        }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
+                    [%- END; -%]
+
+                    [%- IF (item_page - 3) >= 1 -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page - 3
+                        }) %]'>[% item_page - 3 %]</a>
+                    [%- END; -%]
+                    [%- IF (item_page - 2) >= 1 -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page - 2
+                        }) %]'>[% item_page - 2 %]</a>
+                    [%- END; -%]
+                    [%- IF (item_page - 1) >= 1 -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page - 1
+                        }) %]'>[% item_page - 1%]</a>
+                    [%- END; -%]
+                    <span style="color:red;" >[% item_page %]</span>
+                    [%- IF (item_page + 1) <= ctx.bb_page_count -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page + 1
+                        }) %]'>[% item_page + 1 %]</a>
+                    [%- END; -%]
+                    [%- IF (item_page + 2) <= ctx.bb_page_count -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page + 2
+                        }) %]'>[% item_page + 2 %]</a>
+                    [%- END; -%]
+                    [%- IF (item_page + 3) <= ctx.bb_page_count -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page + 3
+                        }) %]'>[% item_page + 3 %]</a>
+                    [%- END; -%]
+
+                    [%- IF (item_page + 1) <= ctx.bb_page_count; -%]
+                        <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
+                            item_page => item_page + 1
+                        }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
+                    [%- END; -%]
+                 </span>
+            </div>
+            <div class="clear-both"></div>
+        [% END %]
+        <br/>
 
-        </div>
+        </form>
+        [% END %]
         [% END %]
     </div>
-
+    <hr/>
+    <!-- Saved Lists Navigation -->
     <div class="header_middle">
         <span class="float-left">[% l('Saved Lists') %]</span>
         [% IF limit < ctx.bookbag_count; %]
         <span class='float-left' style='padding-left: 10px;'>
             [%- IF offset > 0 -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                    offset => (offset - limit)
+                    limit => limit, offset => (offset - limit)
                 }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
             [%- END; -%]
-
             [%- IF (offset - (limit * 3)) >= 0 -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset - (limit * 3))
                     offset => (offset - limit)
                 }) %]'>[% ((offset - limit) / limit) + 1 %]</a>
             [%- END; -%]
-
             <span style="color:red;" >[% (offset / limit) + 1 %]</span>
-
-            [%- IF (ctx.bookbag_count - offset) > limit; -%]
+            [%- IF (offset + limit) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + limit)
                 }) %]'>[% ((offset + limit) / limit) + 1 %]</a>
             [%- END; -%]
-            [%- IF (ctx.bookbag_count - offset) > limit * 2; -%]
+            [%- IF (offset + (limit * 2)) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + (limit * 2))
                 }) %]'>[% ((offset + (limit * 2)) / limit) + 1 %]</a>
             [%- END; -%]
-            [%- IF (ctx.bookbag_count - offset) > limit * 3; -%]
+            [%- IF (offset + (limit * 3)) <= ctx.bookbag_count -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + (limit * 3))
                 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
             [%- END; -%]
-
             [%- IF (ctx.bookbag_count - offset) > limit; -%] 
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
-                    offset => (offset + limit)
+                    limit => limit, offset => (offset + limit)
                 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
             </span>
             [%- END; -%]
         [% END %]
     </div>
-    <div class="clear-both"></div>
-
-
-
-
     [% END %]
 
-    <div id='myopac_delete_bookbag_warn' class='hide_me'>
-        [% l("This will remove the selected bookbag and all items contained within the bookbag.  Are you sure you wish to continue?") %]
-    </div>
-    <div style='text-align: center; font-weight: bold;' 
-        class='hide_me' id='myopac_bookbags_none'>[% l("You have not created any bookbags") %]</div>
-    <div style='width: 99%; text-align: center'>
-        <b id='myopac_bookbag_items_name'> </b>
-    </div>
     <span id='bb_publish_text' class='hide_me'>
 [% |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 %]
     </span>
-    <span id='myopac_remove_bb_item_confirm' class='hide_me'>
-        [% l("Are you sure you wish to remove this bookbag item?") %]
-    </span>
-    <span id='myopac_make_published_confirm' class='hide_me'>
-        [% l("Sharing this bookbag will allow the contents of the bookbag to be seen by others.  Are you sure you wish to share this bookbag?") %]
-    </span>
-    <span id='myopac_make_unpublished_confirm' class='hide_me'>
-        [% l("Are you sure you wish to hide this bookbag?") %]
-    </span>
-    <span id='myopac_bb_update_success' class='hide_me'>
-        [% l("The Bookbag was successfully updated.") %]
-    </span>
-    <span id='bb_create_warning' class='hide_me'>
-        [% l("Warning: Adding items to a bookbag creates a link between you and the items in the database.  The contents of the bookbag are NOT publicly viewable unless the bookbag is shared. However, if you prefer not to have any link between your patron record and a particular item or items, we suggest that you do not place said items in a bookbag or that you avoid using bookbags all together.  Thank you.") %]
-    </span>
-    <span id='myopac_bb_what_are' class='hide_me'>
-        [% l("Bookbags are...") %]
-    </span>
-    <span class='hide_me' id='bb_update_success'>
-        [% l("Bookbag successfully updated") %]
-    </span>
-
 </div>
 [% END %]
index 99e7799..960297a 100644 (file)
                         </select>
                     </td>
                 </tr>
+
+                [%- setting = 'opac.list_items_per_page' -%]
+                 <tr >
+                     <td width='20%'><label for='[% setting %]'>[%l("List items per page") %]</label></td>
+                     <td>
+                        <select id='[% setting %]' name='[% setting %]'>
+                            [%  UNLESS ctx.user_setting_map.$setting;
+                                    ctx.user_setting_map.$setting = 10;
+                                END;
+                                FOR val IN [10, 15, 20, 25, 50] %]
+                                <option value='[% val | uri %]' 
+                                    [% IF ctx.user_setting_map.$setting == val %]
+                                        selected='selected'[% END %]>[% val | html %]</option>
+                            [% END %]
+                        </select>
+                    </td>
+                </tr>
             </tbody>
         </table>
        <input type="submit" value="[% l('Save') %]" alt="[% l('Save') %]" class="opac-button"/>
diff --git a/KCLS/sql/kmain-392/kmain392.sql b/KCLS/sql/kmain-392/kmain392.sql
new file mode 100644 (file)
index 0000000..08f1489
--- /dev/null
@@ -0,0 +1,41 @@
+BEGIN;
+
+ INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
+     VALUES (
+         'opac.lists_per_page',
+         TRUE,
+         oils_i18n_gettext(
+             'opac.lists_per_page',
+             'Lists per Page',
+             'cust',
+             'label'
+         ),
+         oils_i18n_gettext(
+             'opac.lists_per_page',
+             'A number designating the amount of lists displayed per page.',
+             'cust',
+             'description'
+         ),
+         'string'
+     );
+     
+INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
+     VALUES (
+         'opac.list_items_per_page',
+         TRUE,
+         oils_i18n_gettext(
+             'opac.list_items_per_page',
+             'List Items per Page',
+             'cust',
+             'label'
+         ),
+         oils_i18n_gettext(
+             'opac.list_items_per_page',
+             'A number designating the amount of list items displayed per page of a selected list.',
+             'cust',
+             'description'
+         ),
+         'string'
+     );
+     
+COMMIT;
index d78b59b..0e06a12 100644 (file)
@@ -709,7 +709,7 @@ sub load_myopac_prefs_my_lists {
 
     my @user_prefs = qw/
         opac.lists_per_page
-        opac.list_items_per_page
+        opac.lists_per_page,
     /;
 
     my $stat = $self->_load_user_with_prefs;
@@ -2317,7 +2317,7 @@ sub load_myopac_bookbags {
     my $self = shift;
     my $e = $self->editor;
     my $ctx = $self->ctx;
-    my $limit = $self->_get_lists_per_page || 10;
+    my $limit = $self->_get_lists_per_page;
     my $offset = $self->cgi->param('offset') || 0;
 
     $ctx->{bookbags_limit} = $limit;
index a8fee6d..b12fac8 100644 (file)
@@ -1152,3 +1152,74 @@ a.dash-link:hover { text-decoration: underline !important; }
 .result_item_circulated {
     padding-top: 4px;
 }
+
+/* Popmenu styles used for making css menus. */
+.popmenu {
+    margin: 0;
+    padding: 0;
+}
+.popmenu li {
+    list-style: none;
+}
+.popmenu li a {
+    display: block;
+    padding: 3px 5px;
+}
+.popmenu li ul {
+    display: none; 
+    width: 10em; /* Width to help Opera out */
+    background-color: [% css_colors.primary %];
+}
+.popmenu li:hover ul {
+    display: block;
+    position: absolute;
+    margin: 0;
+    padding: 0;
+    border-color: [% css_colors.border_dark %];
+    border-width: 1px;
+    border-style: solid;
+}
+.popmenu li:hover li {
+    float: none;
+}
+.popmenu li:hover li a {
+    background-color: [% css_colors.primary %]; 
+    color: [% css_colors.accent_ultralight %];
+}
+.popmenu li li a:hover {
+    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_ultralight %];
+}
+.popmenu li li[class~="temporary"] a:hover {
+    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_ultralight %];
+}
+.popmenu li li[class~="default"] a:hover {
+    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_ultralight %];
+}
+.popmenu li li[class~="new"] a:hover {
+    background-color: [% css_colors.accent_ultralight %]; 
+    color: [% css_colors.primary %];
+}
+/* Style to add a divider on the menu. */
+.popmenu li li[class~="divider"] {
+    border-bottom-width: 1px;
+    border-bottom-color: [% css_colors.border_dark %];
+    border-bottom-style: solid;
+}