1 angular.module('egCoreMod')
3 .directive('egNavbar', function() {
7 templateUrl : 'eg-navbar-template',
8 link : function(scope, element, attrs) {
10 // Find all eg-accesskey entries within the menu and attach
11 // hotkey handlers for each.
12 // jqlite doesn't support selectors, so we have to
13 // manually navigate to the elements we're interested in.
14 function inspect(elm) {
15 elm = angular.element(elm);
16 if (elm.attr('eg-accesskey')) {
18 elm.attr('eg-accesskey'),
20 elm.attr('eg-accesskey-desc'),
24 angular.forEach(elm.children(), inspect);
29 controller:['$scope','$window','$location','$timeout','hotkeys',
30 'egCore','$uibModal','ngToast','egOpChange',
31 function($scope , $window , $location , $timeout , hotkeys ,
32 egCore , $uibModal , ngToast, egOpChange) {
34 function navTo(path) {
35 // Strip the leading "./" if any.
36 path = path.replace(/^\.\//,'');
37 var reg = new RegExp($location.path());
38 $window.location.href = egCore.env.basePath + path;
41 // adds a keyboard shortcut
42 // http://chieffancypants.github.io/angular-hotkeys/
43 $scope.addHotkey = function(key, path, desc, elm) {
44 angular.forEach(key.split(' '), function (k) {
47 allowIn: ['INPUT','SELECT','TEXTAREA'],
49 callback: function(e) {
51 if (path) return navTo(path);
52 return $timeout(function(){$(elm).trigger('click')});
58 $scope.retrieveLastRecord = function() {
59 var last_record = egCore.hatch.getLocalItem("eg.cat.last_record_retrieved");
61 $window.location.href =
62 egCore.env.basePath + 'cat/catalog/record/' + last_record;
66 $scope.applyLocale = function(locale) {
67 // EGWeb.pm can change the locale for us w/ the right param
68 // Note: avoid using $location.search() to derive a new
69 // URL, since it creates an intermediate path change.
70 // Instead, use the ham-fisted approach of killing any
71 // search args and applying the args we want.
72 $window.location.href =
73 $window.location.href.replace(
75 '?set_eg_locale=' + encodeURIComponent(locale)
79 $scope.changeOperatorUndo = function() {
80 egOpChange.changeOperatorUndo().then(function() {
81 $scope.op_changed = false;
82 $scope.username = egCore.auth.user().usrname();
86 $scope.changeOperator = function() {
87 egOpChange.changeOperator().then(function() {
88 $scope.op_changed = egCore.auth.OCtoken() ? true : false;
89 $scope.username = egCore.auth.user().usrname();
93 $scope.currentToken = function () {
94 return egCore.auth.token();
97 // tied to logout link
98 $scope.logout = function() {
103 egCore.startup.go().then(
105 if (egCore.auth.user()) {
106 $scope.op_changed = egCore.auth.OCtoken() ? true : false;
107 $scope.username = egCore.auth.user().usrname();
108 $scope.workstation = egCore.auth.workstation();