From e1420f0d915cbe323906a3ffe706a3eb54211b0d Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Tue, 6 Jan 2015 14:23:46 -0500
Subject: [PATCH] Smarter capability checking - hide unsupported ILS features.

---
 .../blueprint/templates/myresearch/menu.phtml | 16 ++++++--
 .../templates/myresearch/menu.phtml           | 40 +++++++++++--------
 .../templates/myresearch/header-navbar.phtml  | 12 ++++--
 3 files changed, 45 insertions(+), 23 deletions(-)

diff --git a/themes/blueprint/templates/myresearch/menu.phtml b/themes/blueprint/templates/myresearch/menu.phtml
index a1b6c496e0d..abe0d6d472c 100644
--- a/themes/blueprint/templates/myresearch/menu.phtml
+++ b/themes/blueprint/templates/myresearch/menu.phtml
@@ -5,16 +5,24 @@
       <li<?=$this->active == 'favorites' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-favorites')?>"><?=$this->transEsc('Favorites')?></a></li>
     <? endif; ?>
     <? if ('ils-none' !== $this->ils()->getOfflineMode()): ?>
-      <li<?=$this->active == 'checkedout' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-checkedout')?>"><?=$this->transEsc('Checked Out Items')?></a></li>
-      <li<?=$this->active == 'holds' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-holds')?>"><?=$this->transEsc('Holds and Recalls')?></a></li>
+      <? if ($this->ils()->checkCapability('getMyTransactions')): ?>
+        <li<?=$this->active == 'checkedout' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-checkedout')?>"><?=$this->transEsc('Checked Out Items')?></a></li>
+      <? endif; ?>
+      <? if ($this->ils()->checkCapability('getMyHolds')): ?>
+        <li<?=$this->active == 'holds' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-holds')?>"><?=$this->transEsc('Holds and Recalls')?></a></li>
+      <? endif; ?>
       <? if ($this->ils()->checkFunction('StorageRetrievalRequests')): ?>
       <li<?=$this->active == 'storageRetrievalRequests' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-storageretrievalrequests')?>"><?=$this->transEsc('Storage Retrieval Requests')?></a></li>
       <? endif; ?>
       <? if ($this->ils()->checkFunction('ILLRequests')): ?>
       <li<?=$this->active == 'ILLRequests' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-illrequests')?>"><?=$this->transEsc('Interlibrary Loan Requests')?></a></li>
       <? endif; ?>
-      <li<?=$this->active == 'fines' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-fines')?>"><?=$this->transEsc('Fines')?></a></li>
-      <li<?=$this->active == 'profile' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-profile')?>"><?=$this->transEsc('Profile')?></a></li>
+      <? if ($this->ils()->checkCapability('getMyFines')): ?>
+        <li<?=$this->active == 'fines' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-fines')?>"><?=$this->transEsc('Fines')?></a></li>
+      <? endif; ?>
+      <? if ($this->ils()->checkCapability('getMyProfile')): ?>
+        <li<?=$this->active == 'profile' ? ' class="active"' : ''?>><a href="<?=$this->url('myresearch-profile')?>"><?=$this->transEsc('Profile')?></a></li>
+      <? endif; ?>
     <? endif; ?>
     <li<?=$this->active == 'history' ? ' class="active"' : ''?>><a href="<?=$this->url('search-history')?>?require_login"><?=$this->transEsc('history_saved_searches')?></a></li>
   </ul>
diff --git a/themes/bootstrap3/templates/myresearch/menu.phtml b/themes/bootstrap3/templates/myresearch/menu.phtml
index bf7e220d4ab..41daba3c915 100644
--- a/themes/bootstrap3/templates/myresearch/menu.phtml
+++ b/themes/bootstrap3/templates/myresearch/menu.phtml
@@ -7,14 +7,18 @@
     </a>
   <? endif; ?>
   <? if ('ils-none' !== $this->ils()->getOfflineMode()): ?>
-    <a href="<?=$this->url('myresearch-checkedout')?>" class="list-group-item<?=$this->active == 'checkedout' ? ' active' : ''?>">
-      <?=$this->transEsc('Checked Out Items')?>
-      <span class="pull-right"><i class="fa fa-book"></i></span>
-    </a>
-    <a href="<?=$this->url('myresearch-holds')?>" class="list-group-item<?=$this->active == 'holds' ? ' active' : ''?>">
-      <?=$this->transEsc('Holds and Recalls')?>
-      <span class="pull-right"><i class="fa fa-flag"></i></span>
-    </a>
+    <? if ($this->ils()->checkCapability('getMyTransactions')): ?>
+      <a href="<?=$this->url('myresearch-checkedout')?>" class="list-group-item<?=$this->active == 'checkedout' ? ' active' : ''?>">
+        <?=$this->transEsc('Checked Out Items')?>
+        <span class="pull-right"><i class="fa fa-book"></i></span>
+      </a>
+    <? endif; ?>
+    <? if ($this->ils()->checkCapability('getMyHolds')): ?>
+      <a href="<?=$this->url('myresearch-holds')?>" class="list-group-item<?=$this->active == 'holds' ? ' active' : ''?>">
+        <?=$this->transEsc('Holds and Recalls')?>
+        <span class="pull-right"><i class="fa fa-flag"></i></span>
+      </a>
+    <? endif; ?>
     <? if ($this->ils()->checkFunction('StorageRetrievalRequests')): ?>
       <a href="<?=$this->url('myresearch-storageretrievalrequests')?>" class="list-group-item<?=$this->active == 'storageRetrievalRequests' ? ' active' : ''?>">
         <?=$this->transEsc('Storage Retrieval Requests')?>
@@ -27,14 +31,18 @@
       <span class="pull-right"><i class="fa fa-exchange"></i></span>
     </a>
     <? endif; ?>
-    <a href="<?=$this->url('myresearch-fines')?>" class="list-group-item<?=$this->active == 'fines' ? ' active' : ''?>">
-      <?=$this->transEsc('Fines')?>
-      <span class="pull-right"><i class="fa fa-usd"></i></span>
-    </a>
-    <a href="<?=$this->url('myresearch-profile')?>" class="list-group-item<?=$this->active == 'profile' ? ' active' : ''?>">
-      <?=$this->transEsc('Profile')?>
-      <span class="pull-right"><i class="fa fa-user"></i></span>
-    </a>
+    <? if ($this->ils()->checkCapability('getMyFines')): ?>
+      <a href="<?=$this->url('myresearch-fines')?>" class="list-group-item<?=$this->active == 'fines' ? ' active' : ''?>">
+        <?=$this->transEsc('Fines')?>
+        <span class="pull-right"><i class="fa fa-usd"></i></span>
+      </a>
+    <? endif; ?>
+    <? if ($this->ils()->checkCapability('getMyProfile')): ?>
+      <a href="<?=$this->url('myresearch-profile')?>" class="list-group-item<?=$this->active == 'profile' ? ' active' : ''?>">
+        <?=$this->transEsc('Profile')?>
+        <span class="pull-right"><i class="fa fa-user"></i></span>
+      </a>
+    <? endif; ?>
   <? endif; ?>
   <a href="<?=$this->url('search-history')?>?require_login" class="list-group-item<?=$this->active == 'history' ? ' active' : ''?>">
     <?=$this->transEsc('history_saved_searches')?>
diff --git a/themes/jquerymobile/templates/myresearch/header-navbar.phtml b/themes/jquerymobile/templates/myresearch/header-navbar.phtml
index 67ab366bd64..ef5187198fd 100644
--- a/themes/jquerymobile/templates/myresearch/header-navbar.phtml
+++ b/themes/jquerymobile/templates/myresearch/header-navbar.phtml
@@ -1,9 +1,15 @@
 <? if ($this->auth()->isLoggedIn() && 'ils-none' !== $this->ils()->getOfflineMode()): ?>
   <div data-role="navbar">
     <ul>
-      <li><a rel="external" <?=$this->layout()->templateName=="checkedout" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-checkedout')?>"><?=$this->transEsc('Checked Out')?></a></li>
-      <li><a rel="external" <?=$this->layout()->templateName=="holds" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-holds')?>"><?=$this->transEsc('Holds')?></a></li>
-      <li><a rel="external" <?=$this->layout()->templateName=="fines" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-fines')?>"><?=$this->transEsc('Fines')?></a></li>
+      <? if ($this->ils()->checkCapability('getMyTransactions')): ?>
+        <li><a rel="external" <?=$this->layout()->templateName=="checkedout" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-checkedout')?>"><?=$this->transEsc('Checked Out')?></a></li>
+      <? endif; ?>
+      <? if ($this->ils()->checkCapability('getMyHolds')): ?>
+        <li><a rel="external" <?=$this->layout()->templateName=="holds" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-holds')?>"><?=$this->transEsc('Holds')?></a></li>
+      <? endif; ?>
+      <? if ($this->ils()->checkCapability('getMyFines')): ?>
+        <li><a rel="external" <?=$this->layout()->templateName=="fines" ? ' class="ui-btn-active"' : ''?> href="<?=$this->url('myresearch-fines')?>"><?=$this->transEsc('Fines')?></a></li>
+      <? endif; ?>
     </ul>
   </div>
 <? endif; ?>
\ No newline at end of file
-- 
GitLab