id-field="id"
idl-class="spt"
grid-controls="gridControls"
- features="-multiselect"
persist-key="admin.serials.pattern_template">
<eg-grid-menu-item handler="new_record" label="[% l('New Record') %]"></eg-grid-menu-item>
- <eg-grid-action handler="edit_record" label="[% l('Edit Record') %]"></eg-grid-action>
- <eg-grid-action handler="delete_record" label="[% l('Delete Record') %]"></eg-grid-action>
+ <eg-grid-action handler="edit_record" label="[% l('Edit Record') %]" disabled="need_one_selected"></eg-grid-action>
+ <eg-grid-action handler="delete_selected" label="[% l('Delete Selected') %]"></eg-grid-action>
<eg-grid-field label="[% l('Name') %]" path="name"></eg-grid-field>
<eg-grid-field label="[% l('Pattern Code') %]" path="pattern_code"></eg-grid-field>
.controller('PatternTemplate',
['$scope','$q','$timeout','$location','$window','$uibModal','egCore','egGridDataProvider',
- 'egConfirmDialog',
+ 'egConfirmDialog','ngToast',
function($scope , $q , $timeout , $location , $window , $uibModal , egCore , egGridDataProvider ,
- egConfirmDialog) {
+ egConfirmDialog , ngToast) {
egCore.startup.go(); // standalone mode requires manual startup
spawn_editor();
}
+ $scope.need_one_selected = function() {
+ var items = $scope.gridControls.selectedItems();
+ if (items.length == 1) return false;
+ return true;
+ };
+
$scope.edit_record = function(items) {
if (items.length != 1) return;
spawn_editor(items[0].id);
});
}
- $scope.delete_record = function(selected) {
+ $scope.delete_selected = function(selected) {
if (!selected || !selected.length) return;
+ var ids = selected.map(function(rec) { return rec.id });
- egCore.pcrud.retrieve('spt', selected[0].id).then(function(rec) {
- egConfirmDialog.open(
- egCore.strings.EG_CONFIRM_DELETE_RECORD_TITLE,
- egCore.strings.EG_CONFIRM_DELETE_RECORD_BODY,
- { id : rec.id() } // TODO replace with selector if available?
- ).result.then(function() {
- egCore.pcrud.remove(rec).then(function() {
+ egConfirmDialog.open(
+ egCore.strings.EG_CONFIRM_DELETE_PATTERN_TEMPLATE_TITLE,
+ egCore.strings.EG_CONFIRM_DELETE_PATTERN_TEMPLATE_BODY,
+ { count : ids.length }
+ ).result.then(function() {
+ var promises = [];
+ var list = [];
+ angular.forEach(selected, function(rec) {
+ promises.push(
+ egCore.pcrud.retrieve('spt', rec.id).then(function(r) {
+ list.push(r);
+ })
+ );
+ })
+ $q.all(promises).then(function() {
+ egCore.pcrud.remove(list).then(function() {
+ ngToast.success(egCore.strings.PATTERN_TEMPLATE_SUCCESS_DELETE);
$scope.gridControls.refresh();
+ },
+ function() {
+ ngToast.success(egCore.strings.PATTERN_TEMPLATE_FAIL_DELETE);
});
});
});