PINES Custom Receipt Templates - Updated for 3.10
authorTerran McCanna <tmccanna@georgialibraries.org>
Fri, 18 Nov 2022 16:17:49 +0000 (11:17 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Wed, 23 Nov 2022 18:57:45 +0000 (13:57 -0500)
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
21 files changed:
Open-ILS/src/templates/staff/share/print_templates/t_bill_payment.tt2
Open-ILS/src/templates/staff/share/print_templates/t_bills_current.tt2
Open-ILS/src/templates/staff/share/print_templates/t_bills_historical.tt2
Open-ILS/src/templates/staff/share/print_templates/t_checkin.tt2
Open-ILS/src/templates/staff/share/print_templates/t_checkout.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_pull_list.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_shelf_list.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_shelf_slip.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_transit_slip.tt2
Open-ILS/src/templates/staff/share/print_templates/t_holds_for_bib.tt2
Open-ILS/src/templates/staff/share/print_templates/t_holds_for_patron.tt2
Open-ILS/src/templates/staff/share/print_templates/t_item_label.tt2
Open-ILS/src/templates/staff/share/print_templates/t_items_out.tt2
Open-ILS/src/templates/staff/share/print_templates/t_offline_checkin.tt2
Open-ILS/src/templates/staff/share/print_templates/t_offline_checkout.tt2
Open-ILS/src/templates/staff/share/print_templates/t_offline_in_house_use.tt2
Open-ILS/src/templates/staff/share/print_templates/t_offline_renew.tt2
Open-ILS/src/templates/staff/share/print_templates/t_patron_data.tt2
Open-ILS/src/templates/staff/share/print_templates/t_renew.tt2
Open-ILS/src/templates/staff/share/print_templates/t_transit_list.tt2
Open-ILS/src/templates/staff/share/print_templates/t_transit_slip.tt2

index 3efda80..ca4fc6e 100644 (file)
@@ -3,45 +3,19 @@
 <b>{{current_location.name}}</b></center>
 <h3>Payment Receipt</h3>
 
-* patron - has several fields from the patron object, including a financial summary
-
-  * first_given_name
-  * second_given_name
-  * family_name
-  * suffix
-  * pref_ versions of all name fields (e.g. pref_family_name);
-  * card.barcode
-  * expire_date
-  * alias - aka Holds Alias
-  * has_email - boolean value to show/hide elements on the receipt
-  * has_phone - same as has_email
-
-* current_location.name - name of workstation location
-* payment_type
-* payment_total - total paid
-* new_balance - balance after the payments were applied
-* payments - list of specific payments
-* approval_code - credit card approval code
-
-Individual payments within payments contain:
-* payment.xact.copy_barcode - Item barcode
-* payment.xact.title - Item title
--->
-Welcome to {{current_location.name}}!<br/>
-A receipt of your  transaction:<hr/>
-
-<table style="width:100%"> 
-  <tr> 
-    <td>[% l('Original Balance:') %]</td> 
-    <td align="right">{{previous_balance | currency}}</td> 
-  </tr> 
-  <tr> 
-    <td>[% l('Payment Method:') %]</td> 
-    <td align="right">
+<table style="width:100%">
+  <tr>
+    <td valign="top">Original Balance:</td>
+    <td align="right" valign="top">{{previous_balance | currency}}</td>
+  </tr>
+  <tr>
+    <td valign="top">Payment Method:</td>
+    <td align="right" valign="top">
       <div ng-switch="payment_type">
         <div ng-switch-when="cash_payment">[% l('Cash') %]</div>
         <div ng-switch-when="check_payment">[% l('Check') %]</div>
-        <div ng-switch-when="credit_card_payment">[% l('Credit Card') %]</div>
+       <div ng-switch-when="credit_card_payment">[% l('Credit Card') %]<br/>
+           [% l('Approval Code') %]: {{approval_code}}</div>
         <div ng-switch-when="debit_card_payment">[% l('Debit Card') %]</div>
         <div ng-switch-when="credit_payment">[% l('Patron Credit') %]</div>
         <div ng-switch-when="work_payment">[% l('Work') %]</div>
@@ -49,51 +23,49 @@ A receipt of your  transaction:<hr/>
         <div ng-switch-when="goods_payment">[% l('Goods') %]</div>
       </div>
     </td>
-  </tr> 
-  <tr> 
-    <td>[% l('Payment Received:') %]</td> 
-    <td align="right">{{payment_total | currency}}</td> 
-  </tr> 
-  <tr> 
-    <td>[% l('Payment Applied:') %]</td> 
-    <td align="right">{{payment_applied | currency}}</td> 
-  </tr> 
-  <tr> 
-    <td>[% l('Billings Voided:') %]</td> 
-    <td align="right">{{amount_voided | currency}}</td> 
-  </tr> 
-  <tr> 
-    <td>[% l('Change Given:') %]</td> 
-    <td align="right">{{change_given | currency}}</td> 
-  </tr> 
-  <tr> 
-    <td>[% l('New Balance:') %]</td> 
-    <td align="right">{{new_balance | currency}}</td> 
-  </tr> 
-</table> 
+  </tr>
+  <tr>
+    <td valign="top">Amount Paid:</td>
+    <td align="right" valign="top">{{payment_applied | currency}}</td>
+  </tr>
+  <tr>
+    <td valign="top">Billings Voided:</td>
+    <td align="right" valign="top">{{amount_voided | currency}}</td>
+  </tr>
+  <tr>
+    <td valign="top">New Balance:</td>
+    <td align="right" valign="top">{{new_balance | currency}}</td>
+  </tr>
+</table>
+<div ng-if="payment_note"><br/><b><i>Note: {{payment_note}}</i></b></div>
 
-<p>[% l('Note: [_1]', '{{payment_note}}') %]</p>
+<hr/>
+<h4>Bill Details</h4>
 
-<p>
-[% l('Specific Bills') %]
-  <blockquote>
-    <div ng-repeat="payment in payments">
-      <table style="width:100%">
+<div ng-repeat="payment in payments">
+     <br/>
+      <table>
         <tr>
-          <td>[% l('Bill # [_1]', '{{payment.xact.id}}') %]</td>
-          <td>{{payment.xact.summary.last_billing_type}}</td>
-          <td>[% l('Received: [_1]', '{{payment.amount | currency}}') %]</td>
+          <td valign="top">Bill #:</td>
+          <td valign="top">{{payment.xact.id}}</td>
         </tr>
         <tr>
-          <td colspan="5">
-            {{payment.xact.copy_barcode}} {{payment.xact.title}}
-          </td>
+          <td valign="top">Last Billing Type: &nbsp; </td>
+          <td valign="top">{{payment.xact.summary.last_billing_type}}</td>
+        </tr>
+        <tr>
+          <td valign="top">Received: &nbsp;</td>
+                 <td valign="top">{{payment.amount | currency}}</td>
+        </tr>
+        <tr ng-if="payment.xact.title">
+          <td valign="top">Title:</td>
+          <td valign="top">{{payment.xact.title}}</td>
+        </tr>
+        <tr ng-if="payment.xact.copy_barcode">
+          <td valign="top">Barcode:</td>
+          <td valign="top">{{payment.xact.copy_barcode}}</td>
         </tr>
       </table>
-      <br/>
     </div>
-  </blockquote>
-</p> 
 <hr/>
-<br/><br/> 
-{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}
+{{current_location.shortname}} {{today | date:'short'}}
index 5e8ab14..8df61ce 100644 (file)
@@ -6,39 +6,39 @@
     <br/>
     <table> 
       <tr valign="top">
-        <td>[% l('Type') %]:</td>
-        <td>{{xact.summary.xact_type}}</td>
-      </tr>
+        <td><b>Bill ID:</b></td>
+        <td><b>{{xact.id}}</b></td>
+      </tr> 
       <tr valign="top">
-        <td>[% l('Last Billing') %]:</td>
-        <td>{{xact.summary.last_billing_type}}<br/>
-            {{xact.summary.last_billing_note}}
-        </td>
-      </tr>
+        <td>Bill Start Date: &nbsp; </td>
+        <td>{{xact.xact_start | date:'M/d/yyyy'}}</td>
+      </tr> 
+        <tr>
+          <td valign="top">Last Billing Type: &nbsp; </td>
+          <td valign="top">{{xact.summary.last_billing_type}}</td>
+        </tr>
+        <tr ng-if="xact.title">
+          <td valign="top">Title:</td>
+          <td valign="top">{{xact.title}}</td>
+        </tr>
+        <tr ng-if="xact.copy_barcode">
+          <td valign="top">Barcode:</td>
+          <td valign="top">{{xact.copy_barcode}}</td>
+        </tr>
       <tr valign="top">
-        <td>[% l('Total Billed') %]:</td>
+        <td>Total Billed:</td>
         <td>{{xact.summary.total_owed | currency}}</td>
-      </tr>
+      </tr> 
       <tr valign="top">
-        <td>[% l('Last Payment') %]:</td>
-        <td>{{xact.summary.last_payment_type}}<br/>
-            {{xact.summary.last_payment_note}}
-        </td>
-      </tr>
-      <tr valign="top">
-        <td>[% l('Total Paid') %]:</td>
+        <td>Total Paid:</td>
         <td>{{xact.summary.total_paid | currency}}</td>
-      </tr>
+      </tr> 
       <tr valign="top">
-        <td><b>[% l('Balance') %]:</b></td>
+        <td><b>Balance:</b></td>
         <td><b>{{xact.summary.balance_owed | currency}}</b></td>
-      </tr>
+      </tr> 
     </table>
-    </dd>
-    <br/>
   </div><!-- ng-repeat -->
-</dl>
 <hr/>
-{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}
-<br/><br/>
-
+{{current_location.shortname}} {{today | date:'short'}}
+<br/>
index 28caaa0..57634f3 100644 (file)
@@ -5,45 +5,40 @@
 <div ng-repeat="xact in transactions">
     <br/>
     <table> 
-      <tr valign="top">
-        <td>[% l('Billing Date:') %]</td>
-        <td>{{xact.xact_start | date:$root.egDateAndTimeFormat}}</td>
+      <tr>
+        <td valign="top"><b>Bill ID:</b></td>
+        <td valign="top"><b>{{xact.id}}</b></td>
       </tr> 
-      <tr valign="top">
-        <td>[% l('Type') %]:</td>
-        <td>{{xact.summary.xact_type}}</td>
+      <tr>
+        <td valign="top">Bill Start Date: &nbsp; </td>
+        <td valign="top">{{xact.xact_start | date:'M/d/yyyy'}}</td>
       </tr> 
-      <tr valign="top">
-        <td>[% l('Last Billing') %]:</td>
-        <td>{{xact.summary.last_billing_type}}<br/>
-            {{xact.summary.last_billing_note}}
-        </td>
+        <tr>
+          <td valign="top">Last Billing Type: &nbsp; </td>
+          <td valign="top">{{xact.summary.last_billing_type}}</td>
+        </tr>
+        <tr ng-if="xact.title">
+          <td valign="top">Title:</td>
+          <td valign="top">{{xact.title}}</td>
+        </tr>
+        <tr ng-if="xact.copy_barcode">
+          <td valign="top">Barcode:</td>
+          <td valign="top">{{xact.copy_barcode}}</td>
+        </tr>
+      <tr>
+        <td valign="top">Total Billed:</td>
+        <td valign="top">{{xact.summary.total_owed | currency}}</td>
       </tr> 
-      <tr valign="top">
-        <td>[% l('Total Billed') %]:</td>
-        <td>{{xact.summary.total_owed | currency}}</td>
+      <tr>
+        <td valign="top">Total Paid:</td>
+        <td valign="top">{{xact.summary.total_paid | currency}}</td>
       </tr> 
-      <tr valign="top">
-        <td>[% l('Last Payment') %]:</td>
-        <td>{{xact.summary.last_payment_type}}<br/>
-            {{xact.summary.last_payment_note}}<br/>
-            {{xact.summary.last_payment_ts | date:$root.egDateAndTimeFormat}}
-        </td>
-      </tr> 
-      <tr valign="top">
-        <td>[% l('Total Paid') %]:</td>
-        <td>{{xact.summary.total_paid | currency}}</td>
-      </tr> 
-      <tr valign="top">
-        <td><b>[% l('Balance') %]:</b></td>
-        <td><b>{{xact.summary.balance_owed | currency}}</b></td>
+      <tr>
+        <td valign="top"><b>Balance:</b></td>
+        <td valign="top"><b>{{xact.summary.balance_owed | currency}}</b></td>
       </tr> 
     </table>
-    </dd>
-    <br/>
   </div><!-- ng-repeat -->
-</dl>
 <hr/>
-{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}
-<br/><br/>
-
+{{current_location.shortname}} {{today | date:'short'}}
+<br/>
index 7b4a11f..28e5a2b 100644 (file)
@@ -11,3 +11,6 @@
       Call Number: {{checkin.call_number.label || "Not Cataloged"}}
       </li>
 </div>
+</ol>
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index f348ccc..74b5b10 100644 (file)
@@ -4,16 +4,18 @@
 <h3>Checkout Receipt</h3>
 <div>You checked out the following items:</div>
 <br/>
+<div ng-init="transactions.subtotal=0">
 <ol>
 <div ng-repeat="checkout in circulations">
-      <li><b>{{checkout.title}}</b><br/>
+      <li ng-init="transactions.subtotal=transactions.subtotal -- checkout.copy.price"><b>{{checkout.title}}</b><br/>
       Barcode: {{checkout.copy.barcode}}<br/>
       Due: {{checkout.circ.due_date | date:"M/d/yyyy"}}
-
     </li>
-  </ol>
-  <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
-  <div>[% l('You were helped by [_1]', '{{staff.first_given_name}}') %]</div>
-<br/>
-
+</div>
+</ol>
+</div>
+<div style="font-weight:bold;">Total Amount Owed: {{patron_money.balance_owed | currency}}</div>
+<div style="font-weight:bold;border:1px dotted black; padding:5px;text-align:center;">You Saved<br/>
+{{transactions.subtotal | currency}}<br/>by borrowing from the library!</div>
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index 292f60c..d9dc3af 100644 (file)
@@ -1,15 +1,6 @@
-<!--
-Template for printing a table of holds to pull. Fields include:
-
-* holds - list of holds, each hold_data item includes:
-
-  * hold_data.title
-  * hold_data.author
-  * hold_data.hold.hold_type
-  * hold_data.copy.barcode
-  * hold_data.copy.location_name
-  * hold_data.volume.label - call number
--->
+<h3>Hold Pull List</h3>
+<b>Pull Date: {{today | date:'short'}}</b>
+<br/>
 <table id='pull-list-template-table'>
   <style>
     #pull-list-template-table td,
@@ -20,22 +11,22 @@ Template for printing a table of holds to pull. Fields include:
   </style>
   <thead>
     <tr>
-      <th>[% l('Type') %]</th>
-      <th>[% l('Title') %]</th>
-      <th>[% l('Author') %]</th>
-      <th>[% l('Shelf Location') %]</th>
-      <th>[% l('Call Number') %]</th>
-      <th>[% l('Barcode/Part') %]</th>
+      <th>Shelf Location</th>
+      <th>Call Number</th>
+      <th>Title</th>
+      <th>Author</th>
+      <th>Barcode/Part</th>
+      <th>Type</th>
     </tr>
   </thead>
   <tbody>
     <tr ng-repeat="hold_data in holds | orderBy : ['hold._copy_location_position', 'copy.location.name', 'volume.prefix_sortkey', 'volume.label_sortkey', 'volume.suffix_sortkey']">
-      <td>{{hold_data.hold.hold_type}}</td>
-      <td>{{hold_data.title}}</td>
-      <td>{{hold_data.author}}</td>
-      <td>{{hold_data.copy.location.name}}</td>
-      <td>{{hold_data.volume.prefix}} {{hold_data.volume.label}} {{hold_data.volume.suffix}}</td>
-      <td>{{hold_data.copy.barcode}} {{hold_data.part.label}}</td>
+      <td valign="top">{{hold_data.copy.location.name}}</td>
+      <td valign="top">{{hold_data.volume.label}}</td>
+      <td valign="top">{{hold_data.title}}</td>
+      <td valign="top">{{hold_data.author}}</td>
+      <td valign="top">{{hold_data.copy.barcode}} {{hold_data.part.label}}</td>
+      <td valign="top">{{hold_data.hold.hold_type}}</td>
     </tr>
   </tbody>
 </table>
index a948882..acec875 100644 (file)
@@ -1,60 +1,39 @@
-<!--
-Template for printing a list of items on the hold shelf. Fields include:
-
-* holds - list of hold requests, including
-
-  * call_number.label
-  * call
-  * patron_alias
-  * patron_last
-  * patron_first
-  * hold.hold_type
-  * title
-  * author
-  * volume.label
-  * copy.barcode
-  * status_string
-  * hold.shelf_expire_time
-
--->
-<table id='shelf-list-template-table'>
-  <style>
-    #pull-list-template-table td,
-    #pull-list-template-table th {
+<style>
+    #shelf-list-template-table td,
+    #shelf-list-template-table th {
       padding: 5px;
       border: 1px solid #000;
     }
-  </style>
+</style>
+<h3>Hold Shelf List</h3>
+<b>List Date: {{today | date:'short'}}</b>
+<br/>
+
+<table id='shelf-list-template-table'>
   <thead>
     <tr>
-      <th>[% l('Patron') %]</th>
-      <th>[% l('Type') %]</th>
-      <th>[% l('Title') %]</th>
-      <th>[% l('Author') %]</th>
-      <th>[% l('Call Number') %]</th>
-      <th>[% l('Barcode/Part') %]</th>
-      <th>[% l('Status') %]</th>
-      <th>[% l('Shelf Expire Time') %]</th>
+      <th>Patron</th>
+      <th>Title</th>
+      <th>Author</th>
+      <th>Call Number</th>
+      <th>Barcode/Part</th>
+         <th>Status</th>
+         <th>Shelf Expire Date</th>
     </tr>
   </thead>
   <tbody>
-    <tr ng-repeat="hold_data in holds">
-      <td>
-        <span ng-if="hold_data.patron_alias">{{hold_data.patron_alias}}</span>
+      <tr ng-repeat="hold_data in holds | orderBy : ['patron_alias','patron_last','patron_first','title']">
+      <td valign="top"><span ng-if="hold_data.patron_alias">{{hold_data.patron_alias}}</span>
         <span ng-if="!hold_data.patron_alias">
-          [% l('[_1], [_2]',
-            '{{hold_data.patron_last}}',
-            '{{hold_data.patron_first}}') %]
-        </span>
-      </td>
+          {{hold_data.patron_last}}, {{hold_data.patron_first}}
+        </span><br/>
       </td>
-      <td>{{hold_data.hold.hold_type}}</td>
-      <td>{{hold_data.title}}</td>
-      <td>{{hold_data.author}}</td>
-      <td>{{hold_data.volume.label}}</td>
-      <td>{{hold_data.copy.barcode}} {{hold_data.part.label}}</td>
-      <td>{{hold_data.status_string}}</td>
-      <td>{{hold_data.hold.shelf_expire_time | date:'yyyy-MM-dd HH:mm:ss'}}</td>
+      <td valign="top">{{hold_data.title}}</td>
+      <td valign="top">{{hold_data.author}}</td>
+      <td valign="top">{{hold_data.volume.label}}</td>
+      <td valign="top">{{hold_data.copy.barcode}} {{hold_data.part.label}}</td>
+         <td valign="top">{{hold_data.status_string}}</td>
+         <td valign="top">{{hold_data.hold.shelf_expire_time | date:'short'}}</td>
     </tr>
   </tbody>
 </table>
index 95802ae..a30294a 100644 (file)
@@ -1,65 +1,40 @@
-<!--
-Template for printing hold request slips. Fields include:
-
-* call_number.label
-* call number.prefix.label
-* call_number.suffix.label
-* hold.behind_desk
-* copy.barcode
-* title
-* patron.alias
-* patron.family_name
-* patron.first_given_name
-* patron.second_given_name
-* patron.card.barcode
-* patron.profile.name
-* hold.request_time
-* hold.phone_notify
-* hold.sms_notify
-* hold.email_notify
-* hold_notes (array of slip-printable notes)
-
--->
-<div>
-  <div ng-switch on="hold.behind_desk">
+<h1>{patron.pref_family_name ? patron.pref_family_name : patron.family_name}, 
+    {patron.pref_first_given_name ? patron.pref_first_given_name : patron.first_given_name}</h1>
+<b>Available on {{today | date:"M/d/yyyy"}}</b>
+<div ng-switch on="hold.behind_desk">
     <div ng-switch-when="t">
-      [% l('This item needs to be routed to the [_1]Private Holds Shelf[_2].',
-        '<strong>','</strong>') %]
+      <strong>Private - Hold Behind Desk</strong>
     </div>
     <div ng-switch-when="f">
-      [% l('This item needs to be routed to the [_1]Public Holds Shelf[_2].',
-        '<strong>','</strong>') %]
+      <strong>Public Holds Shelf</strong>
     </div>
-  </div>
-  <br/>
-
-  [% l('Barcode: [_1]', '{{copy.barcode}}') %]</div>
-  [% l('Title: [_1]', '{{title}}') %]</div>
-  <br/>
-  <div>[% l('Call Number: [_1] [_2] [_3]', '{{call_number.prefix}}', '{{call_number.label}}', '{{call_number.suffix}}') %]</div>
-
-  <br/>
-  <br/>
-
-  <div>[% l('Hold for patron: [_1], [_2] [_3]',
-    '{{patron.family_name}}',
-    '{{patron.first_given_name}}',
-    '{{patron.second_given_name}}') %]</div>
-  <div>[% l('Barcode: [_1]', '{{patron.card.barcode}}') %]</div>
-  <div ng-if="hold.phone_notify">[% l('Notify by phone: [_1]', '{{hold.phone_notify}}') %]</div>
-  <div ng-if="hold.sms_notify">[% l('Notify by text: [_1]', '{{hold.sms_notify}}') %]</div>
-  <div ng-if="hold.email_notify == 't'">[% l('Notify by email: [_1]', '{{patron.email}}') %]</div>
-    <div ng-if="hold_notes">
-      <ul>Notes:
-        <li ng-repeat="note in hold_notes | filter: {slip : 't'}"><strong>{{note.title}}</strong> - {{note.body}}</li>
-      </ul>
-    </div>
-  <br/>
-
-  <div>[% l('Request Date: [_1]', 
-    '{{hold.request_time | date:$root.egDateAndTimeFormat}}') %]</div>
-  <div>[% l('Slip Date: [_1]', '{{today | date:$root.egDateAndTimeFormat}}') %]</div>
-  <div>[% l('Printed by [_1] at [_2]', 
-    '{{staff.first_given_name}}', '{{current_location.shortname}}') %]</div>
-
 </div>
+<br/>
+
+<table>
+  <tr><td valign="top"><b>Title:</b></td><td valign="top"><b>{{title}}</b></td></tr>
+  <tr><td valign="top">Barcode:</td><td valign="top">{{copy.barcode}}</td></tr>
+  <tr><td valign="top">Hold Shelf Date: &nbsp;</td><td valign="top">{{hold.shelf_time | date:'M/d/yyyy'}}</td></tr>
+  <tr><td valign="top">Request Date: &nbsp;</td><td valign="top">{{hold.request_time | date:"M/d/yyyy"}}</td></tr>
+  <tr><td>&nbsp;</td><td></td></tr>
+  <tr><td valign="top"><b>Patron:</td><td valign="top"><b>{{patron.family_name}}, {{patron.first_given_name}} {{patron.second_given_name}}</b></tr>
+  <tr><td valign="top">Barcode:</td><td valign="top">{{patron.card.barcode}}</td></tr>
+  <tr><td>&nbsp;</td><td></td></tr>
+  <tr><td colspan="2" style="font-weight:bold;text-decoration:underline;">Notify By:</td></tr>
+  <tr ng-if="hold.phone_notify"><td  ng-if="hold.phone_notify" valign="top" style="font-weight:bold;">Phone: &nbsp;</td>
+        <td ng-if="hold.phone_notify" valign="top" style="font-weight:bold;">{{hold.phone_notify}}</td>
+  </tr>
+  <tr ng-if="hold.sms_notify"><td ng-if="hold.sms_notify" valign="top">Text:</td>
+        <td ng-if="hold.sms_notify" valign="top">{{hold.sms_notify}}</td>
+  </tr>
+  <tr ng-if="hold.email_notify == 't'"><td ng-if="hold.email_notify == 't'" valign="top">Email:</td>
+        <td ng-if="hold.email_notify == 't'" valign="top">{{patron.email}}</td>
+  </tr>
+</table>
+<ol>
+<li ng-repeat="note in hold_notes | filter: {slip : 't'}">
+<strong>{{note.title}}</strong><br/>
+{{note.body}}</li>
+</ol>
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index 7690302..689134c 100644 (file)
@@ -1,64 +1,15 @@
-<!--
-Template for printing hold transit slips. Fields include:
-
-* dest_location.name - name of destination library
-* dest_location.shortname
-* dest_address.street1
-* dest_address.street2
-* dest_address.city
-* dest_address.state
-* dest_address.post_code
-* dest_courier_code - from lib.courier_code library setting
-* source_location.name - name of source library
-* source_location.shortname
-* source_address.street1
-* source_address.street2
-* source_address.city
-* source_address.state
-* source_address.post_code
-* hold.behind_desk
-* copy.barcode
-* copy.status.name - Copy status
-* title
-* patron.family_name
-* patron.first_given_name
-* patron.second_given_name
-* patron.card.barcode
-* hold.request_time
-* hold.phone_notify
-* hold.sms_notify
-* hold.email_notify
-
--->
-<div>
-  <div>[% l('This item needs to be routed to [_1]', '<b>{{dest_location.shortname}}</b>') %]</div>
-  <div>{{dest_location.name}}</div>
-  <div ng-if="dest_address">
-    <div>{{dest_address.street1}}</div>
-    <div>{{dest_address.street2}}</div>
-    <div>{{dest_address.city}},
-        {{dest_address.state}}
-        {{dest_address.post_code}}</div>
-  </div>
-  <div ng-if="!dest_address">
-    [% l('We do not have a holds address for this library.') %]
-  </div>
-  <br/>
-
-  [% l('Barcode: [_1]', '{{copy.barcode}}') %]</div>
-  [% l('Title: [_1]', '{{title}}') %]</div>
-  [% l('Author: [_1]', '{{author}}') %]</div>
-
-  <br/>
-
-  <div>[% l('Hold for patron [_1]', '{{patron.card.barcode}}') %]</div>
-
-  <br/>
-
-  <div>[% l('Request Date: [_1]', 
-    '{{hold.request_time | date:$root.egDateAndTimeFormat}}') %]</div>
-  <div>[% l('Slip Date: [_1]', '{{today | date:$root.egDateAndTimeFormat}}') %]</div>
-  <div>[% l('Printed by [_1] at [_2]', 
-    '{{staff.first_given_name}}', '{{current_location.shortname}}') %]</div>
-
-</div>
+<div style="text-align:center;font-weight:bold;font-size:4em;">{{dest_courier_code}}</div>
+<div style="text-align:center;font-weight:bold;font-size:2.5em;">{{dest_location.shortname}}</div>
+<br/>
+<hr/>
+<b>This item is needed for a hold.</b>
+<div>This item needs to be routed to:<br/>
+{{dest_location.name}}</div>
+<br/>
+<table>
+<tr><td valign="top">Title:</td><td valign="top">{{title}}</td></tr>
+<tr><td valign="top">Author:</td><td valign="top">{{author}}</td></tr>
+<tr><td valign="top">Barcode: &nbsp;</td><td valign="top">{{copy.barcode}}</td></tr>
+</table>
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index df2eda5..bafb13e 100644 (file)
@@ -27,16 +27,14 @@ bib record. Fields include:
     </thead>
     <tbody>
       <tr ng-repeat="hold in holds">
-        <td>{{hold.hold.request_time | date:$root.egDateAndTimeFormat}}</td>
-        <td>{{hold.patron_barcode}}</td>
-        <td>{{hold.patron_last}}</td>
-        <td>{{hold.patron_alias}}</td>
-        <td>{{hold.copy.barcode}}</td>
+        <td valign="top">{{hold.hold.request_time | date:$root.egDateAndTimeFormat}}</td>
+        <td valign="top">{{hold.patron_barcode}}</td>
+        <td valign="top">{{hold.patron_last}}</td>
+        <td valign="top">{{hold.patron_alias}}</td>
+        <td valign="top">{{hold.copy.barcode}}</td>
       </tr>
     </tbody>
   </table>
   <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
-  <div>[% l('Printed by [_1]', '{{staff.first_given_name}}') %]</div>
-<br/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
 
index 6a2eb03..452fc06 100644 (file)
@@ -3,16 +3,12 @@
 <b>{{current_location.name}}</b></center>
 <h3>Current Holds</h3>
 <div>
-  <div>[% l('Welcome to [_1]', '{{current_location.name}}') %]</div>
-  <div>[% l('You have the following title on hold:') %]</div>
-  <hr/>
+  <div>You have the following title(s) on hold:</div>
+  <br/>
   <ol>
     <li ng-repeat="hold in holds">
-      <div>{{hold.title}}</div>
+      {{hold.title}}
     </li>
   </ol>
-  <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
-  <div>[% l('You were helped by [_1]', '{{staff.first_given_name}}') %]</div>
-<br/>
-
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index 46730ac..6fb33a1 100644 (file)
@@ -1,98 +1,42 @@
 <?xml version="1.0" encoding="Windows-1252"?>
-<!--
-Template for printing item labels (spine, pocket, etc.).
 
-Like receipt slip templates, this template uses AngularJS
-which fuses HTML and code together.  The code portion is
-mostly used to bind data for the item labels being printed
-to various HTML elements, but you can also use code to
-perform conditional logic, transform the data, etc.
-
--->
-<!--
-
-The <style> section is for holding most of our CSS, which
-is a language for controlling the appearance of HTML markup.
-
-The {{ and }} markers are similar to HTML's < and > characters,
-but are for separating AngularJS variables and code from the
-HTML itself.
-
--->
 <style>
-    /* The .spine here defines a CSS "class", which in this case, is used by our
-       left label */
-    .spine {
+    /* These CSS defaults will be used if the Label Settings fields are not filled out.
+       Do NOT edit this section. If you need to add or modify fields, scroll to the
+       bottom where you see the "{{col.c ? col.c.barcode : ''}}" line. Refer to the
+       instructions for additional details at:
+       https://pines.georgialibraries.org/dokuwiki/doku.php?id=cat:spine-label-printing */
 
-        /* this pulls from the "Item Print Label Font Family" setting, but will
-           default to 'monospace' */
+    .spine {
         font-family: {{settings['webstaff.cat.label.font.family'] || 'monospace'}};
-
-        /* this pulls from the "Item Print Label Font Size" setting, but will
-           default to 'normal' */
         font-size: {{settings['webstaff.cat.label.font.size'] || '10'}};
-
-        /* this pulls from the "Item Print Label Font Weight" setting, but will
-           default to 'normal' */
         font-weight: {{settings['webstaff.cat.label.font.weight'] || 'normal'}};
-
-        /* this pulls from the "Item Print Label - Height for Left Label"
-           setting, but will default to '1.25in' */
         height: {{settings['webstaff.cat.label.left_label.height'] || '1.25in'}};
         min-height: {{settings['webstaff.cat.label.left_label.height'] || '1.25in'}};
         max-height: {{settings['webstaff.cat.label.left_label.height'] || '1.25in'}};
-
-        /* this pulls from the "Item Print Label - Width for Left Label"
-           setting, but will default to '1in' */
         width: {{settings['webstaff.cat.label.left_label.width'] || '1in'}};
         min-width: {{settings['webstaff.cat.label.left_label.width'] || '1in'}};
         max-width: {{settings['webstaff.cat.label.left_label.width'] || '1in'}};
-
-        /* this pulls from the "Item Print Label - Left Margin for Left Label"
-           setting, but will default to '0in' */
         margin-left: {{settings['webstaff.cat.label.left_label.left_margin'] || '0in'}};
     }
 
-    /* This CSS class is used by our right label */
     .pocket {
-
-        /* this pulls from the "Item Print Label Font Family" setting, but will
-           default to 'monospace' */
         font-family: {{settings['webstaff.cat.label.font.family'] || 'monospace'}};
-
-        /* this pulls from the "Item Print Label Font Size" setting, but will
-           default to 'normal' */
         font-size: {{settings['webstaff.cat.label.font.size'] || '10'}};
-
-        /* this pulls from the "Item Print Label Font Weight" setting, but will
-           default to 'normal' */
         font-weight: {{settings['webstaff.cat.label.font.weight'] || 'normal'}};
-
-        /* this pulls from the "Item Print Label - Height for Left Label"
-           setting, but will default to '1.25in' */
         height: {{settings['webstaff.cat.label.right_label.height'] || '1.25in'}};
         min-height: {{settings['webstaff.cat.label.right_label.height'] || '1.25in'}};
         max-height: {{settings['webstaff.cat.label.right_label.height'] || '1.25in'}};
-
-        /* this pulls from the "Item Print Label - Width for Left Label"
-           setting, but will default to '2.625in' */
         width: {{settings['webstaff.cat.label.right_label.width'] || '2.625in'}};
         min-width: {{settings['webstaff.cat.label.right_label.width'] || '2.625in'}};
         max-width: {{settings['webstaff.cat.label.right_label.width'] || '2.625in'}};
-
-        /* this pulls from the "Item Print Label - Left Margin for Left Label"
-           setting, but will default to '0in' */
         margin-left: {{settings['webstaff.cat.label.right_label.left_margin'] || '0in'}};
-
     }
 
-    /* This is to help mitigate artifacts in the Preview pane which don't
-       actually print */
     .labels ::-webkit-scrollbar { 
         display: none; 
     }
 
-    /* This pulls from the "Item Print Label - Inline CSS" setting */
     {{settings['webstaff.cat.label.inline_css']||''}}
 
     .print+.print {
@@ -100,197 +44,3 @@ HTML itself.
     }
 
 </style>
-
-<!-- Here we are implementing our combined label as 2-column HTML <table>, with
-     each table containing a <pre> tag for preserving whitespace and linefeeds.
-
-     The ng-repeat attribute is from AngularJS, and in this case is looping
-     through a list of all the items that were selected when the Print Label
-     interface was invoked.  Each iteration puts item data into the variable
-     "copy", which may be referenced in the HTML by escaping it with {{ and }}
-
-     The following are available, and you may treat these similar to the
-     "macros" in earlier versions of Evergreen:
-
-                copy['active_date']
-                copy['age_protect']
-                copy['alert_message']
-                copy['barcode']
-                copy['call_number.copies']
-                copy['call_number.create_date']
-                copy['call_number.deleted']
-                copy['call_number.edit_date']
-                copy['call_number.id']
-                copy['call_number.label']
-                copy['call_number.label_class']
-                copy['call_number.label_sortkey']
-                copy['call_number.notes']
-                copy['call_number.owning_lib']
-                copy['call_number.owning_lib.id']
-                copy['call_number.owning_lib.shortname']
-                copy['call_number.owning_lib.name']
-                copy['call_number.prefix.id']
-                copy['call_number.prefix.label']
-                copy['call_number.prefix.label_sortkey']
-                copy['call_number.prefix.owning_lib']
-                copy['call_number.record.active']
-                copy['call_number.record.author_field_entries']
-                copy['call_number.record.call_numbers']
-                copy['call_number.record.create_date']
-                copy['call_number.record.creator.ws_ou']
-                copy['call_number.record.deleted']
-                copy['call_number.record.edit_date']
-                copy['call_number.record.fingerprint']
-                copy['call_number.record.fixed_fields']
-                copy['call_number.record.full_record_entries']
-                copy['call_number.record.id']
-                copy['call_number.record.identifier_field_entries']
-                copy['call_number.record.keyword_field_entries']
-                copy['call_number.record.language']
-                copy['call_number.record.last_xact_id']
-                copy['call_number.record.marc']
-                copy['call_number.record.metarecord']
-                copy['call_number.record.notes']
-                copy['call_number.record.owner']
-                copy['call_number.record.quality']
-                copy['call_number.record.series_field_entries']
-                copy['call_number.record.share_depth']
-                copy['call_number.record.simple_record.author']
-                copy['call_number.record.simple_record.fingerprint']
-                copy['call_number.record.simple_record.id']
-                copy['call_number.record.simple_record.isbn']
-                copy['call_number.record.simple_record.issn']
-                copy['call_number.record.simple_record.pubdate']
-                copy['call_number.record.simple_record.publisher']
-                copy['call_number.record.simple_record.quality']
-                copy['call_number.record.simple_record.tcn_source']
-                copy['call_number.record.simple_record.tcn_value']
-                copy['call_number.record.simple_record.title']
-                copy['call_number.record.source']
-                copy['call_number.record.subject_field_entries']
-                copy['call_number.record.tcn_source']
-                copy['call_number.record.tcn_value']
-                copy['call_number.record.title_field_entries']
-                copy['call_number.suffix.id']
-                copy['call_number.suffix.label']
-                copy['call_number.suffix.label_sortkey']
-                copy['call_number.suffix.owning_lib']
-                copy['call_number.uri_maps']
-                copy['call_number.uris']
-                copy['circ_as_type']
-                copy['circ_lib']
-                copy['circ_lib.id']
-                copy['circ_lib.shortname']
-                copy['circ_lib.name']
-                copy['circ_modifier']
-                copy['circulate']
-                copy['copy_number']
-                copy['cost']
-                copy['create_date']
-                copy['deleted']
-                copy['deposit']
-                copy['deposit_amount']
-                copy['dummy_author']
-                copy['dummy_isbn']
-                copy['dummy_title']
-                copy['edit_date']
-                copy['fine_level']
-                copy['floating']
-                copy['holdable']
-                copy['id']
-                copy['loan_duration']
-                copy['location.checkin_alert']
-                copy['location.circulate']
-                copy['location.copies']
-                copy['location.deleted']
-                copy['location.holdable']
-                copy['location.hold_verify']
-                copy['location.id']
-                copy['location.label_prefix']
-                copy['location.label_suffix']
-                copy['location.name']
-                copy['location.opac_visible']
-                copy['location.orders']
-                copy['location.owning_lib']
-                copy['mint_condition']
-                copy['opac_visible']
-                copy['price']
-                copy['ref']
-                copy['status_changed_time']
-                copy['status.copy_active']
-                copy['status.holdable']
-                copy['status.id']
-                copy['status.is_available']
-                copy['status.name']
-                copy['status.opac_visible']
-                copy['status.restrict_copy_delete']
-
-    There are also two functions available.  The following pulls manually
-    edited call numbers for a given item:
-
-                get_cn_for(copy)
-
-    And this one pulls bibliographic data for a given item:
-
-                get_bib_for(copy)
-
-    It returns a data structure similar to "copy" that has the following fields:
-
-                get_bib_for(copy)['author']
-                get_bib_for(copy)['copy_count']
-                get_bib_for(copy)['doc_id']
-                get_bib_for(copy)['doc_type']
-                get_bib_for(copy)['edition']
-                get_bib_for(copy)['isbn']
-                get_bib_for(copy)['physical_description']
-                get_bib_for(copy)['pubdate']
-                get_bib_for(copy)['publisher']
-                get_bib_for(copy)['series.0']
-                get_bib_for(copy)['synopsis']
-                get_bib_for(copy)['tcn']
-                get_bib_for(copy)['title']
-                get_bib_for(copy)['toc']
-                get_bib_for(copy)['types_of_resource.0']
-
-    Finally, there are filter functions which can be used to modify or transform
-    data being outputted.  For example, consider the following:
-
-                get_bib_for(copy)['title'] | limitTo:28
-
-    This would show up to the first 28 characters for an item's title and
-    truncate the rest.  Now, this:
-
-                get_bib_for(copy)['title'] | wrap:28
-
-    This would try to the wrap the item's title every 28 characters.
-
-                get_bib_for(copy)['title'] | wrap:28:multi:'  '
-
-    This does the same thing but indents subsequent lines with 2 spaces each.
-    
-                get_bib_for(copy)['title'] | wrap:28:once:'  '
-
-    This wraps the title just once, prefixes the second line with two spaces,
-    and truncates anything after the 2nd line.
-
--->
-
-<table class="labels" style="page-break-after: always;" ng-repeat="copy in copies"><tr valign="top"><td>
-
-<!-- Spine Label contents -->
-<pre class="spine" style="border:none" ng-show="true">
-{{get_cn_for(copy)}}
-</pre>
-
-</td><td>
-
-<!-- Pocket Label contents -->
-<pre class="pocket" style="border:none" ng-show="true">
-{{copy.barcode}}
-{{copy['call_number.label']}}
-{{get_bib_for(copy).author }}
-{{get_bib_for(copy).title | wrap:28:'once':' '}}
-</pre>
-
-</td></tr></table>
-
index a206bbf..0d96763 100644 (file)
@@ -3,51 +3,14 @@
 <b>{{current_location.name}}</b></center>
 <h3>Items Out</h3>
 
-* patron - has several fields from the patron object, including a financial summary
-
-  * patron.first_given_name
-  * patron.second_given_name
-  * patron.family_name
-  * patron.suffix
-  * patron.pref_ versions of all name fields (e.g. pref_family_name);
-  * patron.card.barcode
-  * patron.money_summary.balance_owed - current balance
-  * patron.money_summary.total_paid - payments made on outstanding fines/fees
-  * patron.money_summary.total_owed - total of outstanding fines/fees
-  * patron.expire_date
-  * patron.alias - aka Holds Alias
-  * patron.has_email - boolean value to show/hide elements on the receipt
-  * patron.has_phone - same as has_email
-  * patron.juvenile - boolean value (t/f) to show/hide elements on the receipt
-
-* circulations - list of current loans, including for each checkout
-
-  * checkout.title
-  * checkout.author
-  * checkout.circ.due_date
-  * checkout.circ.renewal_remaining
-  * checkout.copy.barcode
-  * checkout.copy.circ_modifier.name
-  * checkout.copy.call_number.label
-  * checkout.copy.call_number.owning_lib.name
-  * checkout.copy.call_number.owning_lib.shortname
-  * checkout.copy.location.name - Shelving location
-
--->
-<div>
-  <div>[% l('Welcome to [_1]', '{{current_location.name}}') %]</div>
-  <div>[% l('You have the following items:') %]</div>
-  <hr/>
+<div>You have the following items checked out:</div>
+<br/>
   <ol>
     <li ng-repeat="checkout in circulations">
-      <div>{{checkout.title}}</div>
-      <div>[% l('Barcode: [_1] Due: [_2]', 
-        '{{checkout.copy.barcode}}',
-        '{{checkout.circ.due_date | egDueDate:$root.egDateAndTimeFormat:checkout.circ.circ_lib:checkout.circ.duration}}') %]</div>
+      <div style="font-weight:bold;text-transform:capitalize;">{{checkout.title}}</div>
+      <div>Barcode: {{checkout.copy.barcode}}</div>
+      <div>Due: {{checkout.circ.due_date | date:"M/d/yyyy"}}</div>
     </li>
   </ol>
-  <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
-  <div>[% l('You were helped by [_1]', '{{staff.first_given_name}}') %]</div>
-<br/>
-
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index 7c0acdd..a2df19d 100644 (file)
@@ -1,25 +1,11 @@
-<!--
-Template for printing offline checkout receipts; fields available include:
-
-* transactions - list of loans made during this session. Each
-  includes:
-
-  * barcode
-  * backdate
-  * timestamp
-
--->
-<div>
-  <div>[% l('You checked in the following [_1] items:', '{{transactions.length}}') %]</div>
+  <h1 style="text-align:center;">PINES</h1>
+  <div>You checked in the following {{transactions.length}} items:</div>
   <hr/>
   <ol>
     <li ng-repeat="checkin in transactions">
-      <div>[% l('Barcode: [_1] Checkin date: [_2]', 
-        '{{checkin.barcode}}',
-        '{{checkin.backdate | date:"short"}}') %]</div>
+      <div>Barcode: {{checkin.barcode}}<br/>
+      Checkin date: {{checkin.backdate | date:"short"}}</div>
     </li>
   </ol>
   <hr/>
   <div>{{today | date:'short'}}</div>
-<br/>
-
index dc2bd27..b8e38e8 100644 (file)
@@ -1,27 +1,14 @@
-<!--
-Template for printing offline checkout receipts; fields available include:
-
-* transactions - list of loans made during this session. Each
-  includes:
-
-  * barcode
-  * patron_barcode
-  * due_date
-  * noncat_count
-
--->
-<div>
-  <div>[% l('Patron [_1]', '{{transactions[0].patron_barcode}}') %]</div>
-  <div>[% l('You checked out the following [_1] items:', '{{transactions.length}}') %]</div>
+  <h1 style="text-align:center;">PINES</h1>
+  <div>You checked out the following {{transactions.length}} items:</div>
   <hr/>
   <ol>
     <li ng-repeat="checkout in transactions">
-      <div ng-if="checkout.barcode">[% l('Barcode:') %] {{checkout.barcode}}</div>
-      <div ng-if="!checkout.barcode">[% l('Non-cataloged Item') %] ({{checkout.noncat_count}})</div>
-      <div>[% l('Due Date:') %] {{checkout.due_date | date:"short"}}</div>
+      <div ng-if="checkout.barcode">Barcode: {{checkout.barcode}}<br/>
+         Due: {{checkout.due_date | date:"M/d/yyyy"}}</div>
+      <div ng-if="!checkout.barcode">Non-cataloged Item<br/>
+         Due: {{checkout.due_date | date:"M/d/yyyy"}}</div>
     </li>
   </ol>
   <hr/>
   <div>{{today | date:'short'}}</div>
-<br/>
-
+  <td ng-if="hold.sms_notify" valign="top">{{hold.sms_notify}}</td>
index 1f177ce..efb11a0 100644 (file)
@@ -1,24 +1,11 @@
-<!--
-Template for printing offline in-house use receipts; fields available include:
+<h1 style="text-align:center;">PINES</h1>
 
-* transactions - list of loans made during this session. Each
-  includes:
-
-  * barcode
-  * count
-
--->
-<div>
-  <div>[% l('You recorded use for the following [_1] items:', '{{transactions.length}}') %]</div>
+  <div>You recorded in-house use for the following {{transactions.length}} items:</div>
   <hr/>
   <ol>
     <li ng-repeat="checkout in transactions">
-      <div>[% l('Barcode [_1] used [_2] times', 
-        '{{checkout.barcode}}',
-        '{{checkout.count}}') %]</div>
+      <div>Barcode {{checkout.barcode}} used {{checkout.count}} times</div>
     </li>
   </ol>
   <hr/>
   <div>{{today | date:'short'}}</div>
-<br/>
-
index 7bd8242..ba87cc1 100644 (file)
@@ -1,24 +1,12 @@
-<!--
-Template for printing offline renew receipts; fields available include:
-
-* transactions - list of loans made during this session. Each
-  includes:
-
-  * barcode
-  * due_date
-
--->
-<div>
-  <div>[% l('You renewed the following [_1] items:', '{{transactions.length}}') %]</div>
+  <h1 style="text-align:center;">PINES</h1>
+  <div>You renewed the following {{transactions.length}} items:</div>
   <hr/>
   <ol>
     <li ng-repeat="checkout in transactions">
-      <div>[% l('Barcode: [_1] Due: [_2]', 
-        '{{checkout.barcode}}',
-        '{{checkout.due_date | date:"short"}}') %]</div>
+      <div>Barcode: {{checkout.barcode}}<br/>
+      Due: {{checkout.due_date | date:"M/d/yyyy"}}</div>
     </li>
   </ol>
   <hr/>
   <div>{{today | date:'short'}}</div>
-<br/>
 
index 619ab0e..5bf66bc 100644 (file)
@@ -1,54 +1,50 @@
-<!--
-Template for printing a patron's data, including addresses and statistical categories.
--->
-<div>
-  <div>=-=-=-=</div>
-  <div>-------</div>
-  <div>Barcode: {{patron.card.barcode}}</div>
-  <div>-------</div>
-  <div>Patron's Username: {{patron.usrname}}</div>
-  <div>Prefix/Title: {{patron.prefix}}</div>
-  <div>First Name: {{patron.first_given_name}}</div>
-  <div>Middle Name: {{patron.second_given_name}}</div>
-  <div>Last Name: {{patron.family_name}}</div>
-  <div>Suffix: {{patron.suffix}}</div>
-  <div>Holds Alias: {{patron.alias}}</div>
-  <div>Date of Birth: {{patron.dob}}</div>
-  <div>Juvenile: {{patron.juvenile}}</div>
-  <div>Primary Identification Type: {{patron.ident_type.name()}}</div>
-  <div>Primary Identification: {{patron.ident_value}}</div>
-  <div>Secondary Identification Type: {{patron.ident_type2.name()}}</div>
-  <div>Secondary Identification: {{patron.ident_value2}}</div>
-  <div>Email Address: {{patron.email}}</div>
-  <div>Daytime Phone: {{patron.day_phone}}</div>
-  <div>Evening Phone: {{patron.evening_phone}}</div>
-  <div>Other Phone: {{patron.other_phone}}</div>
-  <div>Home Library: {{patron.home_ou.name()}}</div>
-  <div>Main (Profile) Permission Group: {{patron.profile.name()}}</div>
-  <div>Privilege Expiration Date: {{patron.expire_date}}</div>
-  <div>Internet Access Level: {{patron.net_access_level.name()}}</div>
-  <div>Active: {{patron.active}}</div>
-  <div>Barred: {{patron.barred}}</div>
-  <div>Is Group Lead Account: {{patron.master_account}}</div>
-  <div>Claims-Returned Count: {{patron.claims_returned_count}}</div>
-  <div>Claims-Never-Checked-Out Count: {{patron.claims_never_checked_out_count}}</div>
-
-  <div>
+<style>
+    td {padding: 2px;}
+</style>
+<h3 style="text-align:center;">Patron Information</h3>
+<div style="text-align:center;margin-bottom:10px;">This information will be used for library purpose only<br/>
+ and is considered confidential as specified by Georgia Code 24-9-46.</div>
+<table border=0>
+<tr><td><b>Name:</b></td><td><b><span ng-if="patron.prefix">{{patron.prefix}} </span>
+{{patron.first_given_name}} {{patron.second_given_name}} {{patron.family_name}} {{patron.suffix}}</b></td></tr>
+<tr><td><b>Barcode:</b></td><td><b>{{patron.card.barcode}}</b></td></tr>
+<tr><td>Date of Birth:</td><td>{{patron.dob | date:'M/d/yyyy'}} <div ng-if="patron.juvenile=='t'">Juvenile)</td></tr>
+<tr><td>Primary Identification Type: </td><td>{{patron.ident_type.name()}}</td></tr>
+<tr><td>Primary Identification: </td><td>{{patron.ident_value}}</td></tr>
+<tr><td>Parent/Guardian: </td><td>{{patron.guardian}}</td></tr>
+<tr><td>Email Address: </td><td>{{patron.email}}</td></tr>
+<tr><td>Daytime Phone: </td><td>{{patron.day_phone}}</td></tr>
+<tr><td>Evening Phone: </td><td>{{patron.evening_phone}}</td></tr>
+<tr><td>Other Phone: </td><td>{{patron.other_phone}}</td></tr>
+<tr><td>Home Library: </td><td>{{patron.home_ou.name()}}</td></tr>
+<tr><td>Patron Type: </td><td>{{patron.profile.name()}}</td></tr>
+<tr><td>Privilege Expiration Date: </td><td>{{patron.expire_date | date:'M/d/yyyy'}}</td></tr>
+<tr><td>Internet Access Level: </td><td>{{patron.net_access_level.name()}}</td></tr>
+<tr><td valign="top">Alert Message: </td><td>{{patron.alert_message}}</td></tr>
+<tr><td valign="top">Address:</td><td>
     <div ng-repeat="address in patron.addresses">
-      <div>-------</div>
-      <div>Type: {{address.address_type}}</div>
-      <div>Street (1): {{address.street1}}</div>
-      <div>Street (2): {{address.street2}}</div>
-      <div>City: {{address.city}}</div>
+      <div>Type: {{address.address_type}}</div> 
+      <div>{{address.street1}}</div>
+      <div ng-if="address.street2">{{address.street2}}</div>
+      <div>{{address.city}}, {{address.state}} &nbsp; {{address.post_code}}</div>
       <div>County: {{address.county}}</div>
-      <div>State: {{address.state}}</div>
-      <div>Postal Code: {{address.post_code}}</div>
       <div>Country: {{address.country}}</div>
       <div>Valid Address?: {{address.valid}}</div>
-      <div>Within City Limits?: {{address.within_city_limits}}</div>
+      <div>Within City Limits?: {{address.within_city_limits}}<br/> <br/></div>
     </div>
-    <div>-------</div>
-    <div ng-repeat="entry in patron.stat_cat_entries">{{entry.stat_cat.name}} : {{entry.stat_cat_entry}}</div>
-    <div>=-=-=-=</div>
-  </div>
+</td></tr>
+</table>
+<br/>
+<div style="border:1px dotted black;padding:3px;margin-bottom:5px;">
+<ul><li>I apply for the right to use the Library, agree to comply with all its rules and regulations, and give immediate notice of any change of address.</li>
+<li>I accept financial responsibility for all fines and/or damages to all Library materials, audiovisual materials and equipment beyond normal wear and tear, which is lost or damaged beyond use while checked out on your card. Under Georgia Code (OCGA Annotated Rev. 1985 20-5-53), failure to return items borrowed from a public library is considered a misdemeanor.</li>
+<li><u>If this card is for a juvenile</u>: As the parent or guardian of a child under 18 years, I am willing to allow him/her to borrow materials from the Public Library. I will take responsibility and make good any charges or loss to library materials and pay any fine justly charged. 
+</li>
+</ul>
+<table border=0>
+<tr><td>Name:</td><td>________________________________________________________</td></tr>
+<tr><td>Signature: </td><td>________________________________________________________</td></tr>
+<tr><td>Date: </td><td>___________________</td></tr>
+</table>
 </div>
+Printed at: {{current_location.shortname}} on {{today | date:'short'}}
index 3a39bbe..d4d3357 100644 (file)
@@ -6,14 +6,10 @@
 <br/>
   <ol>
     <li ng-repeat="renewal in circulations">
-      <div>{{renewal.title}}</div>
-      <div>[% l('Barcode: [_1] Due: [_2]', 
-        '{{renewal.copy.barcode}}',
-        '{{renewal.circ.due_date | egDueDate:$root.egDateAndTimeFormat:renewal.circ.circ_lib:renewal.circ.duration}}') %]</div>
+      <div><b>{{renewal.title}}</b></div>
+      <div>Barcode: {{renewal.copy.barcode}}</div>
+      <div>New Due Date: <b>{{renewal.circ.due_date | date:"M/d/yyyy"}}</b></div>
     </li>
   </ol>
-  <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
-  <div>[% l('You were helped by [_1]', '{{staff.first_given_name}}') %]</div>
-<br/>
-
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>
index a4c583c..646233c 100644 (file)
@@ -13,18 +13,13 @@ transits - list; each entry contains:
   * target_copy.call_number.record.simple_record.title
 -->
 <div>
-  <div>[% l('Transits:') %]</div>
+  <h1>Transit List:</h1>
   <hr/>
   <ol>
     <li ng-repeat="transit in transits">
-      <div>[% l('From: [_1] To: [_2] <br> When: [_3] <br> Barcode: [_4] Title: [_5]',
-        '{{transit.source.shortname}}',
-        '{{transit.dest.shortname}}',
-        '{{transit.source_send_time | date:$root.egDateAndTimeFormat}}',
-        '{{transit.target_copy.barcode}}',
-        '{{transit.target_copy.call_number.record.simple_record.title}}') %]</div>
+      <div>From: {{transit.source.shortname}}<br/>To: {{transit.dest.shortname}}<br/> When: {{transit.source_send_time | date:'short'}}<br/> Barcode: {{transit.target_copy.barcode}}<br/> Title: {{transit.target_copy.call_number.record.simple_record.title}}</div>
     </li>
   </ol>
   <hr/>
-  <div>{{current_location.shortname}} {{today | date:$root.egDateAndTimeFormat}}</div>
+  <div>{{current_location.shortname}}  {{today | date:'short'}}</div>
 <br/>
index a27585c..47e2ea4 100644 (file)
@@ -1,49 +1,14 @@
-<!--
-Template for printing a transit slip. Fields include:
-
-* dest_location.name - name of destination library
-* dest_location.shortname
-* dest_address.street1
-* dest_address.street2
-* dest_address.city
-* dest_address.state
-* dest_address.post_code
-* dest_courier_code - from lib.courier_code library setting
-* source_location.name - name of source library
-* source_location.shortname
-* source_address.street1
-* source_address.street2
-* source_address.city
-* source_address.state
-* source_address.post_code
-* copy.barcode
-* copy.status.name - Copy status
-* title
-* author
--->
-<div>
-  <div>[% l('This item needs to be routed to [_1]', '<b>{{dest_location.shortname}}</b>') %]</div>
-  <div>{{dest_location.name}}</div>
-  <div ng-if="dest_address">
-    <div>{{dest_address.street1}}</div>
-    <div>{{dest_address.street2}}</div>
-    <div>{{dest_address.city}},
-        {{dest_address.state}}
-        {{dest_address.post_code}}</div>
-  </div>
-  <div ng-if="!dest_address">
-    [% l('We do not have a holds address for this library.') %]
-  </div>
-  <br/>
-
- [% l('Barcode: [_1]', '{{copy.barcode}}') %]</div>
- [% l('Title: [_1]', '{{title}}') %]</div>
- [% l('Author: [_1]', '{{author}}') %]</div>
-
-  <br/>
-
-  <div>[% l('Slip Date: [_1]', '{{today | date:$root.egDateAndTimeFormat}}') %]</div>
-  <div>[% l('Printed by [_1] at [_2]', 
-    '{{staff.first_given_name}}', '{{current_location.shortname}}') %]</div>
-
-</div>
+<div style="text-align:center;font-weight:bold;font-size:4em;">{{dest_courier_code}}</div>
+<div style="text-align:center;font-weight:bold;font-size:2.5em;">{{dest_location.shortname}}</div>
+<br/>
+<hr/>
+<div>This item needs to be routed to:<br/>
+{{dest_location.name}}</div>
+<br/>
+<table>
+<tr><td valign="top">Title:</td><td valign="top">{{title}}</td></tr>
+<tr><td valign="top">Author:</td><td valign="top">{{author}}</td></tr>
+<tr><td valign="top">Barcode: &nbsp;</td><td valign="top">{{copy.barcode}}</td></tr>
+</table>
+<hr/>
+<div>{{current_location.shortname}} {{today | date:'short'}}</div>