[% BLOCK APP_JS %]
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/grid.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/eframe.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/marcrecord.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/services/record.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/services/tagtable.js"></script>
--- /dev/null
+<div>
+ <div class="modal-header">
+ <button type="button" class="close"
+ ng-click="cancel()" aria-hidden="true">×</button>
+ <h4 class="modal-title">[% l('Edit volumes') %]</h4>
+ </div>
+ <div class="modal-body">
+ <eg-embed-frame save-space="500" url="volcopy_url"></eg-embed-frame>
+ </div>
+ <div class="modal-footer">
+ <input type="submit" ng-click="ok()"
+ class="btn btn-primary" value="[% l('Done') %]"/>
+ </div>
+</div>
<eg-grid
id-field="index"
- features="-menu,-index,-picker,-pagination,-action,-display,-sort,-multisort,-multiselect"
+ features="-index,-picker,-pagination,-action,-display,-sort,-multisort,-multiselect"
items-provider="holdingsGridDataProvider"
grid-controls="holdingsGridControls"
persist-key="cat.record_overlay.holdings">
+ <eg-grid-menu-item handler="edit_volumes" label="[% l('Edit volumes') %]" />
+
<eg-grid-field label="[% l('Owning Library') %]" path="owner_label" flex="4" align="right" visible></eg-grid-field>
<eg-grid-field label="[% l('Call Number') %]" path="call_number.label" visible></eg-grid-field>
<eg-grid-field label="[% l('# Copies') %]" path="copy_count" visible></eg-grid-field>
},
templateUrl: './cat/share/t_volume_list',
controller:
- ['$scope','holdingsSvc','egCore','egGridDataProvider',
- function($scope , holdingsSvc , egCore , egGridDataProvider) {
+ ['$scope','holdingsSvc','egCore','egGridDataProvider','$modal',
+ function($scope , holdingsSvc , egCore , egGridDataProvider, $modal) {
var holdingsSvcInst = new holdingsSvc();
$scope.holdingsGridControls = {};
return this.arrayNotifier(holdingsSvcInst.copies, offset, count);
}
});
+
+ function gatherHoldingsIds () {
+ var cp_id_list = [];
+ angular.forEach(
+ $scope.holdingsGridControls.allItems(),
+ function (item) { cp_id_list = cp_id_list.concat(item.id_list) }
+ );
+ return cp_id_list;
+ }
+
+ $scope.edit_volumes = function () {
+ egCore.net.request(
+ 'open-ils.actor',
+ 'open-ils.actor.anon_cache.set_value',
+ null, 'edit-these-copies', {
+ record_id: $scope.recordId,
+ copies: gatherHoldingsIds(),
+ hide_vols : false,
+ hide_copies : true
+ }
+ ).then(function(key) {
+ if (key) {
+ $modal.open({
+ templateUrl: './cat/share/t_embedded_volcopy',
+ size: 'lg',
+ controller:
+ ['$scope', '$modalInstance', function($scope, $modalInstance) {
+ $scope.volcopy_url =
+ egCore.env.basePath + 'cat/volcopy/' + key + '/embedded';
+ $scope.ok = function(args) { $modalInstance.close(args) }
+ $scope.cancel = function () { $modalInstance.dismiss() }
+ }]
+ }).result.then(function() {
+ load_holdings();
+ });
+ }
+ });
+ }
+
function load_holdings() {
holdingsSvcInst.fetch({
rid : $scope.recordId,