grid-controls="holdingsGridControls"
persist-key="cat.holdings">
- <eg-grid-menu-item handler="holdings_checkbox_handler"
+ <eg-grid-menu-item handler="holdings_checkbox_handler"
label="[% l('Show empty volumes') %]"
checkbox="holdings_show_empty"
checked="holdings_show_empty"/>
-
+
+ <eg-grid-menu-item handler="holdings_checkbox_handler"
+ label="[% l('Show empty libraries') %]"
+ checkbox="holdings_show_empty_org"
+ checked="holdings_show_empty_org"/>
+
<eg-grid-menu-item handler="holdings_checkbox_handler"
label="[% l('Show copy detail') %]"
checkbox="holdings_show_copies"
holdingsSvcInst.fetch({
rid : $scope.record_id,
org : $scope.holdings_ou,
- copy: $scope.holdings_show_copies,
+ copy: $scope.holdings_show_vols ? $scope.holdings_show_copies : false,
vol : $scope.holdings_show_vols,
- empty: $scope.holdings_show_empty
+ empty: $scope.holdings_show_empty,
+ empty_org: $scope.holdings_show_empty_org
}).then(function() {
$scope.holdingsGridDataProvider.refresh();
});
holdingsSvcInst.fetch({
rid : $scope.record_id,
org : $scope.holdings_ou,
- copy: $scope.holdings_show_copies,
+ copy: $scope.holdings_show_vols ? $scope.holdings_show_copies : false,
vol : $scope.holdings_show_vols,
- empty: $scope.holdings_show_empty
+ empty: $scope.holdings_show_empty,
+ empty_org: $scope.holdings_show_empty_org
}).then(function() {
$scope.holdingsGridDataProvider.refresh();
});
$scope.holdings_cb_changed = function(cb,newVal,norefresh) {
$scope[cb] = newVal;
+ var x = $scope.holdings_show_vols ? $scope.holdings_show_copies : false;
+ $('#holdings_show_copies').prop('checked', x);
egCore.hatch.setItem('cat.' + cb, newVal);
if (!norefresh) holdingsSvcInst.fetch({
rid : $scope.record_id,
org : $scope.holdings_ou,
- copy: $scope.holdings_show_copies,
+ copy: $scope.holdings_show_vols ? $scope.holdings_show_copies : false,
vol : $scope.holdings_show_vols,
- empty: $scope.holdings_show_empty
+ empty: $scope.holdings_show_empty,
+ empty_org: $scope.holdings_show_empty_org
}).then(function() {
$scope.holdingsGridDataProvider.refresh();
});
egCore.hatch.getItem('cat.holdings_show_copies').then(function(x){
if (typeof x == 'undefined') x = true;
$scope.holdings_cb_changed('holdings_show_copies',x,true);
+ x = $scope.holdings_show_vols ? x : false;
$('#holdings_show_copies').prop('checked', x);
}).then(function(){
egCore.hatch.getItem('cat.holdings_show_empty').then(function(x){
if (typeof x == 'undefined') x = true;
$scope.holdings_cb_changed('holdings_show_empty',x);
$('#holdings_show_empty').prop('checked', x);
+ }).then(function(){
+ egCore.hatch.getItem('cat.holdings_show_empty_org').then(function(x){
+ if (typeof x == 'undefined') x = true;
+ $scope.holdings_cb_changed('holdings_show_empty_org',x);
+ $('#holdings_show_empty_org').prop('checked', x);
+ })
})
})
});
return !$scope.holdings_show_copies;
}
+ $scope.empty_org_not_shown = function () {
+ return !$scope.holdings_show_empty_org;
+ }
+
$scope.holdings_checkbox_handler = function (item) {
$scope.holdings_cb_changed(item.checkbox,item.checked);
}
org: this.org,
copy: this.copy,
vol: this.vol,
- empty: this.empty
+ empty: this.empty,
+ empty_org: this.empty_org
})
};
}
var rid = opts.rid;
+ var empty_org = opts.empty_org;
var org = opts.org;
var copy = opts.copy;
var vol = opts.vol;
svc.ongoing = true;
svc.rid = rid;
+ svc.empty_org = opts.empty_org;
svc.org = org;
svc.copy = opts.copy;
svc.vol = opts.vol;
var org_list = egCore.org.descendants(org.id(), true);
console.log('Holdings fetch with: rid='+rid+' org='+org_list+' copy='+copy+' vol='+vol+' empty='+empty);
+ svc.org_use_map = {};
+ org_list.map(function(o){svc.org_use_map[''+o]=0;})
+
var p = egCore.pcrud.search(
'acn',
{record : rid, owning_lib : org_list, deleted : 'f'},
).then(
function() { // finished
if (p.cancel) return;
+
svc.copies = svc.copies.sort(
function (a, b) {
function compare_array (x, y, i) {
current_blob.cn_count++;
current_blob.copy_count += cp.copy_count;
current_blob.id_list = current_blob.id_list.concat(cp.id_list);
- if (cp.raw) current_blob.raw = current_blob.raw.concat(cp.raw);
+ if (cp.raw) {
+ if (current_blob.raw) current_blob.raw = current_blob.raw.concat(cp.raw);
+ else current_blob.raw = cp.raw;
+ }
} else {
current_blob.barcode = current_blob.copy_count;
current_blob.call_number = { label : current_blob.cn_count };
}
}
+ if (empty_org) {
+
+ var empty_org_list = [];
+ angular.forEach(svc.org_use_map,function(v,k){
+ if (v == 0) empty_org_list.push(k);
+ });
+
+ angular.forEach(empty_org_list, function (oid) {
+ var owner = egCore.org.get(oid);
+ if (owner.ou_type().can_have_vols() != 't') return;
+
+ var owner_list = [];
+ while (owner.parent_ou()) { // we're going to skip the top of the tree...
+ owner_list.unshift(owner.shortname());
+ owner = egCore.org.get(owner.parent_ou());
+ }
+
+ var owner_label = owner_list.join(' ... ');
+
+ new_list.push({
+ index : index++,
+ id_list : [],
+ call_number: { label : '' },
+ barcode : '',
+ owner_id : oid,
+ owner_list : owner_list,
+ owner_label: owner_label,
+ copy_count : 0,
+ cn_count : 0,
+ copy_alert_count : 0
+ });
+ });
+ }
+
svc.copies = new_list;
svc.ongoing = false;
},
var owner_id = cn.owning_lib();
var owner = egCore.org.get(owner_id);
+ svc.org_use_map[''+owner_id] += 1;
var owner_name_list = [];
while (owner.parent_ou()) { // we're going to skip the top of the tree...