From 11f6fb6e5a5c5f343f9c87fc5d323b50669cdfa4 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Wed, 24 Oct 2012 14:51:35 -0400
Subject: [PATCH] Resolving VUFIND-327 (Add availability status to list view).

---
 .../RecordDriver/SolrDefault/list-entry.phtml | 23 ++++++++++++++++++-
 .../templates/myresearch/mylist.phtml         |  1 +
 .../RecordDriver/SolrDefault/list-entry.phtml | 18 ++++++++++++++-
 .../templates/myresearch/mylist.phtml         |  5 +++-
 4 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/themes/blueprint/templates/RecordDriver/SolrDefault/list-entry.phtml b/themes/blueprint/templates/RecordDriver/SolrDefault/list-entry.phtml
index a5ef70353f0..099ab934f3d 100644
--- a/themes/blueprint/templates/RecordDriver/SolrDefault/list-entry.phtml
+++ b/themes/blueprint/templates/RecordDriver/SolrDefault/list-entry.phtml
@@ -10,7 +10,8 @@
         $user_id = $this->user ? $this->user->id : null;
     }
 ?>
-<div class="listentry recordId source<?=$this->escapeHtml($source)?>" id="record<?=$this->escapeHtml($id)?>">
+<div class="listentry recordId source<?=$this->escapeHtml($source)?><?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>" id="record<?=$this->escapeHtml($id)?>">
+  <input type="hidden" value="<?=$this->escapeHtml($this->driver->getUniqueID())?>" class="hiddenId" />
   <div class="span-2">
     <? if ($listThumb = $this->record($this->driver)->getThumbnail()): ?>
       <img src="<?=$this->escapeHtml($listThumb)?>" class="summcover" alt="<?=$this->transEsc('Cover Image')?>"/>
@@ -58,7 +59,27 @@
         <br/>
     <? endif; ?>
 
+    <div class="callnumAndLocation">
+      <? if ($this->driver->supportsAjaxStatus()): ?>
+        <strong class="hideIfDetailed"><?=$this->transEsc('Call Number')?>:</strong>
+        <span class="callnumber ajax_availability hide">
+          <?=$this->transEsc('Loading')?>...
+        </span><br class="hideIfDetailed"/>
+        <strong><?=$this->transEsc('Located')?>:</strong>
+        <span class="location ajax_availability hide">
+          <?=$this->transEsc('Loading')?>...
+        </span>
+        <div class="locationDetails hide"></div>
+      <? else: ?>
+        <? $summCallNo = $this->driver->getCallNumber(); if (!empty($summCallNo)): ?>
+          <strong><?=$this->transEsc('Call Number')?>:</strong> <?=$this->escapeHtml($summCallNo)?>
+        <? endif; ?>
+      <? endif; ?>
+    </div>
     <?=$this->record($this->driver)->getFormatList()?>
+    <? if ($this->driver->supportsAjaxStatus()): ?>
+      <div class="status ajax_availability hide"><?=$this->transEsc('Loading')?>...</div>
+    <? endif; ?>
   </div>
 
   <? // Allow editing if a list is selected and edit is allowed OR if no list is selected
diff --git a/themes/blueprint/templates/myresearch/mylist.phtml b/themes/blueprint/templates/myresearch/mylist.phtml
index 594ca91ca6f..a2b5c8346f6 100644
--- a/themes/blueprint/templates/myresearch/mylist.phtml
+++ b/themes/blueprint/templates/myresearch/mylist.phtml
@@ -13,6 +13,7 @@
 
     // Load Javascript dependencies into header:
     $this->headScript()->appendFile("bulk_actions.js");
+    $this->headScript()->appendFile("check_item_statuses.js");
 
     // Convenience variable:
     $account = $this->auth()->getManager();
diff --git a/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml b/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml
index debf75de308..af10d29eb69 100644
--- a/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml
+++ b/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml
@@ -11,7 +11,8 @@
     }
 ?>
 <a rel="external" href="<?=$this->recordLink()->getUrl($this->driver)?>">
-  <div class="result">
+  <div class="result source<?=$this->escapeHtml($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>">
+    <input type="hidden" value="<?=$this->escapeHtml($this->driver->getUniqueID())?>" class="hiddenId" />
     <h3>
       <?
         $listTitle = $this->driver->getTitle();
@@ -44,7 +45,22 @@
       <? endforeach; ?>
     <? endif; ?>
 
+    <? if ($this->driver->supportsAjaxStatus()): ?>
+      <p class="callnumAndLocation">
+        <strong><?=$this->transEsc('Call Number')?>:</strong>
+        <span class="callnumber ajax_availability hide"><?=$this->transEsc('Loading')?>...</span><br />
+        <strong><?=$this->transEsc('Located')?>:</strong>
+        <span class="location ajax_availability hide"><?=$this->transEsc('Loading')?>...</span>
+      </p>
+    <? else: ?>
+      <? $summCallNo = $this->driver->getCallNumber(); if (!empty($summCallNo)): ?>
+        <p><strong><?=$this->transEsc('Call Number')?>:</strong> <?=$this->escapeHtml($summCallNo)?></p>
+      <? endif; ?>
+    <? endif; ?>
     <?=$this->record($this->driver)->getFormatList()?>
+    <? if ($this->driver->supportsAjaxStatus()): ?>
+      <p><span class="ajax_availability hide status"><?=$this->transEsc('Loading')?>...</span></p>
+    <? endif; ?>
   </div>
 </a>
 <? // Allow editing if a list is selected and edit is allowed OR if no list is selected
diff --git a/themes/jquerymobile/templates/myresearch/mylist.phtml b/themes/jquerymobile/templates/myresearch/mylist.phtml
index 60bd3abe4db..d98e6d6478a 100644
--- a/themes/jquerymobile/templates/myresearch/mylist.phtml
+++ b/themes/jquerymobile/templates/myresearch/mylist.phtml
@@ -8,6 +8,9 @@
     // Set up page title:
     $this->headTitle(isset($list) ? $list->title : $this->translate('Favorites'));
 
+    // Load Javascript dependencies into header:
+    $this->headScript()->appendFile("check_item_statuses.js");
+
     // Set up extra button for header:
     $extraButton = (isset($list) && $list->editAllowed($user))
         ? '<a rel="external" href="'
@@ -18,7 +21,7 @@
         : '';
 ?>
 
-<div data-role="page" id="MyResearch-list">
+<div data-role="page" id="MyResearch-list" class="results-page">
   <?=$this->mobileMenu()->header(array('extraButtons'=>array($extraButton)))?>
   <div data-role="content">
     <? foreach ($this->results->getRecommendations('side') as $current): ?>
-- 
GitLab