side-porting web staff template/sidebar improvements
authorBill Erickson <berick@esilibrary.com>
Mon, 4 Nov 2013 14:36:32 +0000 (09:36 -0500)
committerBill Erickson <berick@esilibrary.com>
Mon, 4 Nov 2013 14:36:32 +0000 (09:36 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/staff/index.tt2
Open-ILS/src/templates/staff/t_base_js.tt2
Open-ILS/src/templates/staff/t_navbar.tt2
Open-ILS/src/templates/staff/t_splash.tt2
Open-ILS/web/js/ui/default/staff/navbar.js

index c13c0ce..e543d1a 100644 (file)
@@ -1,25 +1,14 @@
-<!doctype html>
-<html ng-app="egHome" lang="[% ctx.locale %]">
-  <head>
-    <title>[% l('Evergreen Staff') %]</title>
-    <base href="/eg/staff/">
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <!-- TODO: remote hosted CSS should be hosted locally instead -->
-    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
-  </head>
-  <body>
-    [% 
-      # load the navbar server-side to speed up initial page display
-      INCLUDE "staff/t_navbar.tt2"; 
-    %]
+[%
+  WRAPPER "staff/t_base.tt2";
+  ctx.page_title = l("Home"); 
+  ctx.page_app = "egHome";
+%]
 
-    <!-- angular route-specific view -->
-    <div ng-view></div> 
-  </body>
-  [% INCLUDE "staff/t_base_js.tt2" %]
+[% BLOCK APP_JS %]
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/app.js"></script>
+[% END %]
+
+<div ng-view></div> 
+
+[% END %]
 
-  <!-- angular-driven controllers -->
-  <script src="[% ctx.media_prefix %]/js/ui/default/staff/app.js"></script>
-  <script src="[% ctx.media_prefix %]/js/ui/default/staff/navbar.js"></script>
-</html>
index 1080058..09c129e 100644 (file)
@@ -30,3 +30,5 @@
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/startup.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
 
+<!-- navbar driver -->
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/navbar.js"></script>
index 7ef2aca..ccde984 100644 (file)
@@ -1,39 +1,48 @@
+<!-- 
+  main navigation bar
+    
+  note the use of target="_self" for navigation links.
+  this tells angular to treat the href as a new page 
+  and not an intra-app route.  This is necessary when
+  moving between applications.
+-->
+
 <div class="navbar navbar-default navbar-static-top" ng-controller="NavCtrl">
   <div class="navbar-collapse collapse">
     <ul class="nav navbar-nav">
+
+      <!-- circulation -->
       <li class="dropdown">
         <a href="javascript:;" class="dropdown-toggle" 
           data-toggle="dropdown">[% l('Circulation') %]<b class="caret"></b></a>
         <ul class="dropdown-menu">
-          <!-- note the use of target="_self" - this tells angular to
-              treat the href has a new page and not a intra-page route -->
-          <li><a href="./circ/patron/search" target="_self">[% l('Patron Search') %]</a></li>
-          <li><a href="javascript:;">Stuff 2</a></li>
-          <li><a href="javascript:;">Stuff 3</a></li>
+          <li><a href="./circ/patron/search" 
+            target="_self">[% l('Patron Search') %]</a></li>
           <li class="divider"></li>
-          <li class="dropdown-header">A Sub Menu</li>
-          <li><a href="javascript:;">Other Stuff</a></li>
+          <li class="dropdown-header">Sub Menu Test</li>
+          <li><a href="javascript:;">Test Item</a></li>
         </ul>
       </li>
+
+      <!-- cataloging -->
       <li class="dropdown">
         <a href="javascript:;" class="dropdown-toggle" 
-          data-toggle="dropdown">Thing 2<b class="caret"></b></a>
+          data-toggle="dropdown">[% l('Cataloging') %]<b class="caret"></b></a>
         <ul class="dropdown-menu">
-          <li><a href="javascript:;">Stuff 1</a></li>
-          <li><a href="javascript:;">Stuff 2</a></li>
-          <li><a href="javascript:;">Stuff 3</a></li>
-          <li><a href="javascript:;">...</a></li>
-          <li class="divider"></li>
-          <li class="dropdown-header">A Sub Menu</li>
-          <li><a href="javascript:;">Other Stuff</a></li>
+          <li><a href="./cat/bucket/record/view" 
+            target="_self">[% l('Record Buckets') %]</a></li>
        </ul>
       </li>
     </ul>
+
+    <!-- entries along the right side of the navbar -->
     <ul class="nav navbar-nav navbar-right">
-      <!-- ng-cloak tells angular to hide unresolved page variables.
-          When a value is populated, it will un-hide -->
-      <li><a ng-cloak>{{username}}</a></li>
-      <li><a href="./login" ng-click="logout()" target="_self">[% l('Log Out') %]</a></li>
+      <li><a ng-cloak ng-show="username" href="./" target="_self" 
+        ng-init="workstation = '[% l('<none>') %]'">
+        [% l('{{username}} @ {{workstation}}') %]
+      </a></li>
+      <li><a href="./login" ng-click="logout()" 
+        target="_self">[% l('Log Out') %]</a></li>
     </ul>
   </div>
 </div>
index 113c55f..b1e3e19 100644 (file)
@@ -29,7 +29,7 @@
         <div class="panel-body">
           <div>
             <img src="/xul/server/skin/media/images/portal/bucket.png"/>
-            <a target="_self" href="./circ/patron/search">More Things</a>
+            <a target="_self" href="./cat/bucket/record/">[% l('Record Buckets') %]</a>
           </div>
         </div>
       </div>
@@ -43,7 +43,7 @@
         <div class="panel-body">
           <div>
             <img src="/xul/server/skin/media/images/portal/helpdesk.png"/>
-            <a target="_self" href="./circ/patron/search">All the Things</a>
+            <a target="_self" href="./">All the Things</a>
           </div>
         </div>
       </div>
index 48de8f2..09983ac 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * Free-floating controller which can be used by any app.
  */
-function NavCtrl($scope, egStartup, egAuth) {
+function NavCtrl($scope, egStartup, egAuth, egEnv) {
 
     $scope.logout = function() {
         egAuth.logout();
@@ -30,10 +30,15 @@ function NavCtrl($scope, egStartup, egAuth) {
             if (!egAuth.user()) return;
 
             $scope.username = egAuth.user().usrname();
-            // TODO: add workstation
+
+            // TODO: move workstation into egAuth
+            if (egEnv.aws) {
+                $scope.workstation = 
+                    egEnv.aws.map[egAuth.user().wsid()].name();
+            }
         }
     );
 }
 
 // minify-safe dependency injection
-NavCtrl.$inject = ['$scope', 'egStartup', 'egAuth'];
+NavCtrl.$inject = ['$scope', 'egStartup', 'egAuth', 'egEnv'];