webstaff serials: add buttons for removing pending dists/streams
authorGalen Charlton <gmc@equinoxinitiative.org>
Wed, 5 Jul 2017 20:22:53 +0000 (16:22 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 5 Jul 2017 20:22:53 +0000 (16:22 -0400)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/templates/staff/serials/t_subscription_manager.tt2
Open-ILS/web/js/ui/default/staff/serials/directives/subscription_manager.js

index 40d08e2..3743d16 100644 (file)
     </div>
     <div class="row form-inline pad-vert" ng-repeat="sdist in ssub.distributions">
       <div class="row">
-        <div class="col-sm-1"></div>
+        <div class="col-sm-1">
+            <button class="btn btn-xs btn-danger" ng-if="sdist._isnew && ssub.distributions.length > 1"
+                    ng-click="remove_pending_distribution(ssub, sdist)"
+            >[% l('Remove') %]</button>
+        </div>
         <div class="col-sm-2">
           <label>[% l('Distributed At') %]</label>
           <eg-org-selector selected="sdist.holding_lib"></eg-org-selector>
       </div>
       <div class="row form-inline pad-vert">
         <div class="row form-inline" ng-repeat="sstr in sdist.streams">
-          <div class="col-sm-2"></div>
+          <div class="col-sm-1"></div>
+          <div class="col-sm-1">
+            <button class="btn btn-xs btn-danger" ng-if="sstr._isnew && sdist.streams.length > 1"
+                    ng-click="remove_pending_stream(sdist, sstr)"
+            >[% l('Remove') %]</button>
+          </div>
           <div class="col-sm-8">
             <label>[% l('Send to') %]</label>
             <eg-basic-combo-box list="localStreamNames" on-select="dirtyForm" selected="sstr.routing_label"></eg-basic-combo-box>
index 977e2c1..8756bc7 100644 (file)
@@ -76,6 +76,18 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider ,
         ssub.distributions.push(new_sdist);
         $scope.add_stream(new_sdist); // since we know we want at least one stream
     }
+    $scope.remove_pending_distribution = function(ssub, sdist) {
+        var to_remove = -1;
+        for (var i = 0; i < ssub.distributions.length; i++) {
+            if (ssub.distributions[i] === sdist) {
+                to_remove = i;
+                break;
+            }
+        }
+        if (to_remove > -1) {
+            ssub.distributions.splice(to_remove, 1);
+        }
+    }
     $scope.add_stream = function(sdist) {
         var new_sstr = egCore.idl.toTypedHash(new egCore.idl.sstr());
         new_sstr.distribution = sdist.id;
@@ -86,6 +98,18 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider ,
         sdist.streams.push(new_sstr);
         $scope.dirtyForm();
     }
+    $scope.remove_pending_stream = function(sdist, sstr) {
+        var to_remove = -1;
+        for (var i = 0; i < sdist.streams.length; i++) {
+            if (sdist.streams[i] === sstr) {
+                to_remove = i;
+                break;
+            }
+        }
+        if (to_remove > -1) {
+            sdist.streams.splice(to_remove, 1);
+        }
+    }
 
     $scope.abort_changes = function(form) {
         reload();