Skip to content

Commit 5c4c725

Browse files
Merge pull request #192 from AlexanderBlanchardAC/DIS-464_refactor_filter_holds
Dis-464: refactor filter holds
2 parents efea1f1 + fbf9f17 commit 5c4c725

File tree

7 files changed

+140
-136
lines changed

7 files changed

+140
-136
lines changed

code/web/interface/themes/responsive/MyAccount/holdsList.tpl

+3-3
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@
8484
<a href="#" onclick="AspenDiscovery.Account.confirmThawHoldSelected()" class="btn btn-sm btn-default">{translate text="Thaw Selected" isPublicFacing=true}</a>
8585
<a href="#" onclick="AspenDiscovery.Account.confirmThawHoldAll('{$userId}')" class="btn btn-sm btn-default">{translate text="Thaw All" isPublicFacing=true}</a>
8686
{/if}
87-
{if $allowSelectingHoldsToDisplay}
88-
<a href="#" onclick="AspenDiscovery.Account.displayOnlySelectedHolds()" class="btn btn-sm btn-default">{translate text="Display Selected" isPublicFacing=true}</a>
89-
<a href="#" onclick="AspenDiscovery.Account.clearDisplayOnlySelectedHolds()" class="btn btn-sm btn-default">{translate text="Display All" isPublicFacing=true}</a>
87+
88+
{if $allowSelectingHoldsToExport}
89+
<a href="#" onclick="return AspenDiscovery.Account.exportOnlySelectedHolds('{$source}', $('#availableHoldSort_{$source} option:selected').val(), $('#unavailableHoldSort_{$source} option:selected').val());" class="btn btn-sm btn-default">{translate text="Export Selected to CSV" isPublicFacing=true}</a>
9090
{/if}
9191
</div>
9292
<div class="btn-group">

code/web/interface/themes/responsive/js/aspen.js

+27-30
Original file line numberDiff line numberDiff line change
@@ -5674,6 +5674,30 @@ AspenDiscovery.Account = (function () {
56745674
return false;
56755675
},
56765676

5677+
5678+
exportOnlySelectedHolds: function (source, availableHoldsSort, unavailableHoldsSort) {
5679+
var url = Globals.path + "/MyAccount/AJAX?method=exportHolds&source=" + source;
5680+
var selectedTitles = AspenDiscovery.getSelectedTitles();
5681+
5682+
if (selectedTitles && selectedTitles.length > 0) {
5683+
sessionStorage.setItem('selectedHolds', JSON.stringify(selectedTitles));
5684+
url += "&selectedHolds=" + encodeURIComponent(JSON.stringify(selectedTitles));
5685+
}
5686+
if (availableHoldsSort !== undefined) {
5687+
url += "&availableHoldsSort=" + availableHoldsSort;
5688+
}
5689+
if (unavailableHoldsSort !== undefined) {
5690+
url += "&unavailableHoldsSort=" + unavailableHoldsSort;
5691+
}
5692+
document.location.href = url;
5693+
AspenDiscovery.Account.clearSelectedTitles();
5694+
return false;
5695+
},
5696+
5697+
clearSelectedTitles: function() {
5698+
$('input[type="checkbox"]:checked').prop('checked', false);
5699+
},
5700+
56775701
followLinkIfLoggedIn: function (trigger, linkDestination) {
56785702
if (trigger === undefined) {
56795703
alert("You must provide the trigger to follow a link after logging in.");
@@ -5788,17 +5812,14 @@ AspenDiscovery.Account = (function () {
57885812
return false;
57895813
},
57905814

5791-
loadHolds: function (source, availableHoldSort, unavailableHoldSort, showCovers, selectedUser,selectedTitles) {
5815+
loadHolds: function (source, availableHoldSort, unavailableHoldSort, showCovers, selectedUser) {
57925816
AspenDiscovery.Account.currentHoldSource = source;
57935817
var url = Globals.path + "/MyAccount/AJAX?method=getHolds&source=" + source;
57945818

57955819
if (selectedUser || selectedUser == "") {
57965820
url += "&selectedUser=" + selectedUser;
57975821
}
57985822

5799-
if (selectedTitles !== undefined) {
5800-
url += "&selectedHolds=" + encodeURIComponent(JSON.stringify(selectedTitles));
5801-
}
58025823

58035824
if (availableHoldSort !== undefined) {
58045825
url += "&availableHoldSort=" + availableHoldSort;
@@ -5815,8 +5836,7 @@ AspenDiscovery.Account = (function () {
58155836
availableHoldSort: availableHoldSort,
58165837
unavailableHoldSort: unavailableHoldSort,
58175838
showCovers: showCovers,
5818-
selectedUser: selectedUser,
5819-
selectedTitles: selectedTitles
5839+
selectedUser: selectedUser
58205840
};
58215841
var newUrl = AspenDiscovery.buildUrl(document.location.origin + document.location.pathname, 'source', source);
58225842
if (document.location.href) {
@@ -6869,30 +6889,7 @@ AspenDiscovery.Account = (function () {
68696889
var showCovers = $('#showCovers').prop('checked');
68706890
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, []);
68716891
},
6872-
displayOnlySelectedHolds: function () {
6873-
var selectedTitles = AspenDiscovery.getSelectedTitles();
6874-
6875-
if (selectedTitles) {
6876-
var availableHoldSort = $('#availableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
6877-
var unavailableHoldSort = $('#unavailableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
6878-
var showCovers = $('#showCovers').prop('checked');
6879-
6880-
var selectedUser = sessionStorage.getItem('selectedUsers');
6881-
6882-
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, selectedTitles);
6883-
}
6884-
6885-
},
6886-
6887-
clearDisplayOnlySelectedHolds: function () {
6888-
var availableHoldSort = $('#availableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
6889-
var unavailableHoldSort = $('#unavailableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
6890-
var showCovers = $('#showCovers').prop('checked');
6891-
6892-
var selectedUser = sessionStorage.getItem('selectedUser');
6893-
6894-
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, []);
6895-
},
6892+
68966893

68976894
saveSearch: function (searchId) {
68986895
if (!Globals.loggedIn) {

code/web/interface/themes/responsive/js/aspen/account.js

+27-30
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,30 @@ AspenDiscovery.Account = (function () {
142142
return false;
143143
},
144144

145+
146+
exportOnlySelectedHolds: function (source, availableHoldsSort, unavailableHoldsSort) {
147+
var url = Globals.path + "/MyAccount/AJAX?method=exportHolds&source=" + source;
148+
var selectedTitles = AspenDiscovery.getSelectedTitles();
149+
150+
if (selectedTitles && selectedTitles.length > 0) {
151+
sessionStorage.setItem('selectedHolds', JSON.stringify(selectedTitles));
152+
url += "&selectedHolds=" + encodeURIComponent(JSON.stringify(selectedTitles));
153+
}
154+
if (availableHoldsSort !== undefined) {
155+
url += "&availableHoldsSort=" + availableHoldsSort;
156+
}
157+
if (unavailableHoldsSort !== undefined) {
158+
url += "&unavailableHoldsSort=" + unavailableHoldsSort;
159+
}
160+
document.location.href = url;
161+
AspenDiscovery.Account.clearSelectedTitles();
162+
return false;
163+
},
164+
165+
clearSelectedTitles: function() {
166+
$('input[type="checkbox"]:checked').prop('checked', false);
167+
},
168+
145169
followLinkIfLoggedIn: function (trigger, linkDestination) {
146170
if (trigger === undefined) {
147171
alert("You must provide the trigger to follow a link after logging in.");
@@ -256,17 +280,14 @@ AspenDiscovery.Account = (function () {
256280
return false;
257281
},
258282

259-
loadHolds: function (source, availableHoldSort, unavailableHoldSort, showCovers, selectedUser,selectedTitles) {
283+
loadHolds: function (source, availableHoldSort, unavailableHoldSort, showCovers, selectedUser) {
260284
AspenDiscovery.Account.currentHoldSource = source;
261285
var url = Globals.path + "/MyAccount/AJAX?method=getHolds&source=" + source;
262286

263287
if (selectedUser || selectedUser == "") {
264288
url += "&selectedUser=" + selectedUser;
265289
}
266290

267-
if (selectedTitles !== undefined) {
268-
url += "&selectedHolds=" + encodeURIComponent(JSON.stringify(selectedTitles));
269-
}
270291

271292
if (availableHoldSort !== undefined) {
272293
url += "&availableHoldSort=" + availableHoldSort;
@@ -283,8 +304,7 @@ AspenDiscovery.Account = (function () {
283304
availableHoldSort: availableHoldSort,
284305
unavailableHoldSort: unavailableHoldSort,
285306
showCovers: showCovers,
286-
selectedUser: selectedUser,
287-
selectedTitles: selectedTitles
307+
selectedUser: selectedUser
288308
};
289309
var newUrl = AspenDiscovery.buildUrl(document.location.origin + document.location.pathname, 'source', source);
290310
if (document.location.href) {
@@ -1337,30 +1357,7 @@ AspenDiscovery.Account = (function () {
13371357
var showCovers = $('#showCovers').prop('checked');
13381358
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, []);
13391359
},
1340-
displayOnlySelectedHolds: function () {
1341-
var selectedTitles = AspenDiscovery.getSelectedTitles();
1342-
1343-
if (selectedTitles) {
1344-
var availableHoldSort = $('#availableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
1345-
var unavailableHoldSort = $('#unavailableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
1346-
var showCovers = $('#showCovers').prop('checked');
1347-
1348-
var selectedUser = sessionStorage.getItem('selectedUsers');
1349-
1350-
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, selectedTitles);
1351-
}
1352-
1353-
},
1354-
1355-
clearDisplayOnlySelectedHolds: function () {
1356-
var availableHoldSort = $('#availableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
1357-
var unavailableHoldSort = $('#unavailableHoldSort_' + AspenDiscovery.Account.currentHoldSource).val();
1358-
var showCovers = $('#showCovers').prop('checked');
1359-
1360-
var selectedUser = sessionStorage.getItem('selectedUser');
1361-
1362-
AspenDiscovery.Account.loadHolds(AspenDiscovery.Account.currentHoldSource, availableHoldSort, unavailableHoldSort, showCovers, selectedUser, []);
1363-
},
1360+
13641361

13651362
saveSearch: function (searchId) {
13661363
if (!Globals.loggedIn) {

code/web/release_notes/25.03.00.MD

+3-2
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,9 @@
181181
- Add Community Engagement Module to allow patrons to participate in reading challenges set by libraries. The module also allows staff to monitor enrollment and give rewards. (DIS-51) (*AB*)(*PA*)
182182

183183
### Holds Updates
184-
- Add the ability for libraries to give permission for users to filter holds by linked users and by selecting holds by adding settings in ILS / Account Integration. (DIS-219) (*AB*)
185-
- Add the ability for users to filter their holds by linked user and by selecting holds. (DIS-219) (*AB*)
184+
- Add the ability for libraries to give permission for users to filter holds by linked users in ILS / Account Integration. (DIS-219) (*AB*)
185+
- Add the ability for users to filter their holds by linked user. (DIS-219) (*AB*)
186+
- Allow users to export only selected holds. (DIS-464) (*AB*)
186187

187188
### Summon Updates
188189
- Update the Summon Search Indexes to match those found in Summon Serials Solutions. (DIS-232) (*AB*)

0 commit comments

Comments
 (0)