UI for toggling hatch requried..
authorBill Erickson <berick@esilibrary.com>
Tue, 29 Apr 2014 21:07:09 +0000 (17:07 -0400)
committerBill Erickson <berick@esilibrary.com>
Tue, 29 Apr 2014 21:07:09 +0000 (17:07 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2
Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
Open-ILS/web/js/ui/default/staff/services/printstore.js

index c3bc7c0..1fd7591 100644 (file)
@@ -1,5 +1,27 @@
 <br/>
 <div class="container">
+  <div class="row">
+    <div class="col-md-6">
+      <div class="checkbox">
+        <label>
+          <input type="checkbox" ng-class="{disabled : !userHasAdminPerm}"
+            ng-model="hatchRequired" ng-change="updateHatchRequired()">
+[% l('This workstation uses a remote print / storage service ("Hatch")?') %]
+        </label>
+      </div>
+    </div><!-- row -->
+  </div>
+  <div class="row">
+    <div class="col-md-6">
+      <input type='text' class='form-control'  
+        ng-disabled="!hatchRequired || !userHasAdminPerm"
+        title="[% l('Hatch URL') %]"
+        placeholder="[% l('Hatch URL') %]"
+        ng-change='updateHatchURL()' ng-model='hatchURL'/>
+    </div>
+  </div>
+
+  <br/><br/>
   <div class="row" id="splash-nav">
 
     <div class="col-md-4">
index 743c9af..e786506 100644 (file)
@@ -30,11 +30,34 @@ angular.module('egWorkstationAdmin',
     // default page 
     $routeProvider.otherwise({
         templateUrl : './admin/workstation/t_splash',
-        controller : function() {},
+        controller : 'SplashCtrl',
         resolve : resolver
     });
 }])
 
+.controller('SplashCtrl',
+       ['$scope','egPrintStore','egUser',
+function($scope , egPrintStore , egUser) {
+
+    $scope.userHasAdminPerm = false;
+    egUser.hasPermHere('ADMIN_WORKSTATION')
+    .then(function(bool) { $scope.userHasAdminPerm = bool });
+    
+    $scope.hatchURL = egPrintStore.hatchURL();
+    $scope.hatchRequired = 
+        egPrintStore.getLocalItem('eg.conf.hatch.required');
+
+    $scope.updateHatchRequired = function() {
+        egPrintStore.setLocalItem(
+            'eg.conf.hatch.required', $scope.hatchRequired);
+    }
+
+    $scope.updateHatchURL = function() {
+        egPrintStore.setLocalItem(
+            'eg.conf.hatch.url', $scope.hatchURL);
+    }
+}])
+
 .controller('PrintingCtrl',
        ['$scope','egPrintStore',
 function($scope , egPrintStore) {
@@ -179,7 +202,7 @@ function($scope , egUser , egPrintStore , egConfirmDialog , egAppStrings , $q) {
 
     // grab the edit perm
     $scope.userHasDeletePerm = false;
-    egUser.hasPermHere('DELETE_WORKSTATION_PREFS')
+    egUser.hasPermHere('ADMIN_WORKSTATION')
     .then(function(bool) { $scope.userHasDeletePerm = bool });
 
     // fetch the keys
index 6dadbf3..a537de3 100644 (file)
@@ -137,6 +137,11 @@ angular.module('egCoreMod')
             service.onHatchClose();
     }
 
+    service.hatchURL = function() {
+        return service.getLocalItem('eg.conf.hatch.url') 
+            || service.defaultHatchURL;
+    }
+
     service.hatchConnect = function() {
 
         if (service.socket && 
@@ -149,9 +154,7 @@ angular.module('egCoreMod')
         console.debug("connecting to Hatch...");
 
         try {
-            var url = service.getLocalItem('eg.hatch.url') 
-                || service.defaultHatchURL;
-            service.socket = new WebSocket(url);
+            service.socket = new WebSocket(service.hatchURL());
         } catch(e) {
             service.hatchAvailable = false;
             service.hatchClosed();
@@ -181,7 +184,7 @@ angular.module('egCoreMod')
             if (service.hatchAvailable === false) return; // already registered
             service.hatchAvailable = false;
             console.debug(
-                "unable to connect to Hatch server at " + service.hatchURL);
+                "unable to connect to Hatch server at " + service.hatchURL());
             service.hatchClosed();
         }