--- /dev/null
+<div class="row pad-vert" ng-repeat="map in patron().stat_cat_entries()">
+ <div class="col-md-12 well" style="margin-left:12px">
+ <div class="row">
+ <div class="col-md-7">
+ <span class="strong-text">{{map.stat_cat().name()}}</span>
+ <span class="pad-horiz">{{map.stat_cat_entry()}}</span>
+ </div>
+ <div class="col-md-5">
+ <div class="pull-right">
+ <span class="pad-horiz alert alert-warning"
+ ng-if="map.stat_cat().opac_visible() == 't'">[% l('Patron Visible') %]</span>
+ <span class="pad-horiz alert alert-info"
+ ng-if="map.stat_cat().opac_visible() == 'f'">[% l('Staff Only') %]</span>
+ <span>[% l('@ [_1]', '{{map.stat_cat().owner().shortname()}}') %]</span>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
// note: only load settings here needed by all tabs; load tab-
// specific settings from within their respective controllers
egCore.env.classLoaders.aous = function() {
- return egCore.org.settings(
- [
+ return egCore.org.settings([
'circ.obscure_dob',
'ui.circ.show_billing_tab_on_bills',
'circ.patron_expires_soon_warning'
]).then(function(settings) { egCore.env.aous = settings });
}
+ egCore.env.classLoaders.actsc = function() {
+ return egCore.pcrud.search('actsc',
+ {owner : egCore.org.ancestors(
+ egCore.auth.user().ws_ou(), true)},
+ {}, {atomic : true}
+ ).then(function(cats) {
+ egCore.env.absorbList(cats, 'actsc');
+ });
+ }
+
egCore.env.loadClasses.push('aous');
+ egCore.env.loadClasses.push('actsc');
// app-globally modify the default flesh fields for
- // fleshed user retrieval
- egUser.defaultFleshFields = egUser.defaultFleshFields.concat([
- 'profile',
- 'net_access_level',
- 'ident_type',
- 'ident_type2',
- 'cards'
- ]);
+ // fleshed user retrieval.
+ if (egUser.defaultFleshFields.indexOf('profile') == -1) {
+ egUser.defaultFleshFields = egUser.defaultFleshFields.concat([
+ 'profile',
+ 'net_access_level',
+ 'ident_type',
+ 'ident_type2',
+ 'cards'
+ ]);
+ }
return egCore.startup.go()
}]};
resolve : resolver
});
+ $routeProvider.when('/circ/patron/:id/stat_cats', {
+ templateUrl: './circ/patron/t_stat_cats',
+ controller: 'PatronStatCatsCtrl',
+ resolve : resolver
+ });
+
$routeProvider.otherwise({redirectTo : '/circ/patron/search'});
})
service.localFlesh = function(user) {
if (typeof user.home_ou() != 'object')
user.home_ou(egCore.org.get(user.home_ou()));
+
angular.forEach(
user.standing_penalties(),
function(penalty) {
penalty.org_unit(egCore.org.get(penalty.org_unit()));
}
);
+
+ service.summary_stat_cats = [];
+
+ // stat_cat_entries == stat_cat_entry_user_map
+ angular.forEach(user.stat_cat_entries(), function(map) {
+ // flesh the stat cat
+ map.stat_cat(egCore.env.actsc.map[map.stat_cat()]);
+ // flesh the owner
+ map.stat_cat().owner(egCore.org.get(map.stat_cat().owner()));
+
+ if (map.stat_cat().usr_summary() == 't')
+ service.summary_stat_cats.push(map);
+ });
}
// resolves to true if the patron account has expired or will
$scope.patron = function() { return patronSvc.current }
$scope.patron_stats = function() { return patronSvc.patron_stats }
+ $scope.summary_stat_cats = function() { return patronSvc.summary_stat_cats }
}])
.controller('PatronBarcodeSearchCtrl',
$scope.moveToAnotherGroup = function(selected) { moveToGroup(selected) };
}])
+.controller('PatronStatCatsCtrl',
+ ['$scope','$routeParams','$q','egCore','patronSvc',
+function($scope, $routeParams , $q , egCore , patronSvc) {
+ $scope.initTab('other', $routeParams.id);
+ // nothing to do. Stat cats are already fleshed and patron is
+ // already accessible from the scope.
+}])
+