angular.module('egCoreMod').run(['egStrings', function(s) {
s.SERIALS_SUBSCRIPTION_SUCCESS_CLONE = "[% l('Cloned serial subscription') %]";
s.SERIALS_SUBSCRIPTION_FAIL_CLONE = "[% l('Failed to clone serial subscription') %]";
+ s.SERIALS_SUBSCRIPTION_SUCCESS_DELETE = "[% l('Deleted serial subscription') %]";
+ s.SERIALS_SUBSCRIPTION_FAIL_DELETE = "[% l('Failed to delete serial subscription') %]";
+ s.SERIALS_DISTRIBUTION_SUCCESS_DELETE = "[% l('Deleted serial distribution') %]";
+ s.SERIALS_DISTRIBUTION_FAIL_DELETE = "[% l('Failed to delete serial distribution') %]";
+ s.SERIALS_STREAM_SUCCESS_DELETE = "[% l('Deleted serial stream') %]";
+ s.SERIALS_STREAM_FAIL_DELETE = "[% l('Failed to delete serial stream') %]";
s.SERIALS_ISSUANCE_FAIL_SAVE = "[% l('Failed to save issuance') %]";
s.SERIALS_ISSUANCE_SUCCESS_SAVE = "[% l('Issuance saved') %]";
s.SERIALS_DISTRIBUTION_SUCCESS_LINK_MFHD = "[% l('Distribution linked to MFHD') %]";
s.SERIALS_ISSUANCE_PREDICT = "[% l('Predict New Issues: Initial Values') %]";
s.SERIALS_ISSUANCE_ADD = "[% l('Add folloing issue') %]";
+ s.CONFIRM_DELETE_SUBSCRIPTION = "[% l('Delete selected subscription(s)?') %]";
+ s.CONFIRM_DELETE_SUBSCRIPTION_MESSAGE = "[% l('Will delete {{count}} subscription(s)') %]";
+ s.CONFIRM_DELETE_DISTRIBUTION = "[% l('Delete selected distribution(s)?') %]";
+ s.CONFIRM_DELETE_DISTRIBUTION_MESSAGE = "[% l('Will delete {{count}} distribution(s)') %]";
+ s.CONFIRM_DELETE_STREAM = "[% l('Delete selected stream(s)?') %]";
+ s.CONFIRM_DELETE_STREAM_MESSAGE = "[% l('Will delete {{count}} stream(s)') %]";
+
s.CONFIRM_CHANGE_ITEMS = {};
s.CONFIRM_CHANGE_ITEMS_MESSAGE = {};
s.CONFIRM_CHANGE_ITEMS.delete = "[% l('Delete selected item(s)?') %]";
templateUrl: './serials/t_subscription_manager',
controller:
['$scope','$q','egSerialsCoreSvc','egCore','egGridDataProvider',
- '$uibModal','ngToast',
+ '$uibModal','ngToast','egConfirmDialog',
function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider ,
- $uibModal , ngToast ) {
+ $uibModal , ngToast , egConfirmDialog ) {
function reload() {
egSerialsCoreSvc.fetch($scope.bibId).then(function() {
form.$setPristine();
});
}
+ $scope.delete_subscription = function(rows) {
+ if (rows.length == 0) { return; }
+ var s_rows = rows.filter(function(el) {
+ return typeof el['id'] != 'undefined';
+ });
+ if (s_rows.length == 0) { return; }
+ egConfirmDialog.open(
+ egCore.strings.CONFIRM_DELETE_SUBSCRIPTION,
+ egCore.strings.CONFIRM_DELETE_SUBSCRIPTION_MESSAGE,
+ {count : s_rows.length}
+ ).result.then(function () {
+ var promises = [];
+ angular.forEach(s_rows, function(el) {
+ promises.push(
+ egCore.net.request(
+ 'open-ils.serial',
+ 'open-ils.serial.subscription.safe_delete',
+ egCore.auth.token(),
+ el['id']
+ ).then(function(resp){
+ var evt = egCore.evt.parse(resp);
+ if (evt) {
+ ngToast.danger(egCore.strings.SERIALS_SUBSCRIPTION_FAIL_DELETE + ' : ' + evt.desc);
+ } else {
+ ngToast.success(egCore.strings.SERIALS_SUBSCRIPTION_SUCCESS_DELETE);
+ }
+ })
+ );
+ });
+ $q.all(promises).then(function() {
+ reload();
+ });
+ });
+ }
+ $scope.delete_distribution = function(rows) {
+ if (rows.length == 0) { return; }
+ var d_rows = rows.filter(function(el) {
+ return typeof el['sdist.id'] != 'undefined';
+ });
+ if (d_rows.length == 0) { return; }
+ egConfirmDialog.open(
+ egCore.strings.CONFIRM_DELETE_DISTRIBUTION,
+ egCore.strings.CONFIRM_DELETE_DISTRIBUTION_MESSAGE,
+ {count : d_rows.length}
+ ).result.then(function () {
+ var promises = [];
+ angular.forEach(d_rows, function(el) {
+ promises.push(
+ egCore.net.request(
+ 'open-ils.serial',
+ 'open-ils.serial.distribution.safe_delete',
+ egCore.auth.token(),
+ el['sdist.id']
+ ).then(function(resp){
+ var evt = egCore.evt.parse(resp);
+ if (evt) {
+ ngToast.danger(egCore.strings.SERIALS_DISTRIBUTION_FAIL_DELETE + ' : ' + evt.desc);
+ } else {
+ ngToast.success(egCore.strings.SERIALS_DISTRIBUTION_SUCCESS_DELETE);
+ }
+ })
+ );
+ });
+ $q.all(promises).then(function() {
+ reload();
+ });
+ });
+ }
+ $scope.delete_stream = function(rows) {
+ if (rows.length == 0) { return; }
+ var s_rows = rows.filter(function(el) {
+ return typeof el['sstr.id'] != 'undefined';
+ });
+ if (s_rows.length == 0) { return; }
+ egConfirmDialog.open(
+ egCore.strings.CONFIRM_DELETE_STREAM,
+ egCore.strings.CONFIRM_DELETE_STREAM_MESSAGE,
+ {count : s_rows.length}
+ ).result.then(function () {
+ var promises = [];
+ angular.forEach(s_rows, function(el) {
+ promises.push(
+ egCore.net.request(
+ 'open-ils.serial',
+ 'open-ils.serial.stream.safe_delete',
+ egCore.auth.token(),
+ el['sstr.id']
+ ).then(function(resp){
+ var evt = egCore.evt.parse(resp);
+ if (evt) {
+ ngToast.danger(egCore.strings.SERIALS_STREAM_FAIL_DELETE + ' : ' + evt.desc);
+ } else {
+ ngToast.success(egCore.strings.SERIALS_STREAM_SUCCESS_DELETE);
+ }
+ })
+ );
+ });
+ $q.all(promises).then(function() {
+ reload();
+ });
+ });
+ }
$scope.additional_routing = function(rows) {
if (!rows) { return; }
var row = rows[0];