1 angular.module('egAdminConfig',
2 ['ngRoute','ui.bootstrap','egCoreMod','egUiMod','egGridMod','egFmRecordEditorMod'])
4 .controller('MetabibFieldVirtualMap',
5 ['$scope','$q','$timeout','$location','$window','$uibModal','egCore','egGridDataProvider',
7 function($scope , $q , $timeout , $location , $window , $uibModal , egCore , egGridDataProvider ,
10 egCore.startup.go(); // standalone mode requires manual startup
14 $scope.virt_field = $location.search().cmf || '';
15 if ($scope.virt_field) egCore.pcrud.retrieve('cmf', $scope.virt_field).then(function(c) { $scope.cmf = c });
17 $scope.$watch('virt_field', function(newVal, oldVal) {
18 if (newVal != oldVal) {
19 egCore.pcrud.retrieve('cmf', newVal).then(function(c) { $scope.cmf = c });
20 $scope.gridControls.setQuery(generateQuery($scope.virt_field));
21 $scope.gridControls.refresh();
25 $scope.new_record = function() {
29 $scope.edit_record = function(items) {
30 if (items.length != 1) return;
31 spawn_editor(items[0].id);
34 spawn_editor = function(id) {
36 if (arguments.length == 1) {
37 templ = '<eg-edit-fm-record idl-class="cmfvm" mode="update" record-id="id" on-save="ok" on-cancel="cancel"></eg-edit-fm-record>';
39 templ = '<eg-edit-fm-record idl-class="cmfvm" mode="create" on-save="ok" on-cancel="cancel"></eg-edit-fm-record>';
41 gridControls = $scope.gridControls;
46 '$scope', '$uibModalInstance',
47 function($scope , $uibModalInstance) {
50 $scope.ok = function($event) {
51 $uibModalInstance.close();
52 gridControls.refresh();
55 $scope.cancel = function($event) {
56 $uibModalInstance.dismiss();
63 $scope.delete_record = function(selected) {
64 if (!selected || !selected.length) return;
66 egCore.pcrud.retrieve('cmfvm', selected[0].id).then(function(rec) {
68 egCore.strings.EG_CONFIRM_DELETE_RECORD_TITLE,
69 egCore.strings.EG_CONFIRM_DELETE_RECORD_BODY,
70 { id : rec.id() } // TODO replace with selector if available?
71 ).result.then(function() {
72 egCore.pcrud.remove(rec).then(function() {
73 $scope.gridControls.refresh();
79 function generateQuery(virt_field) {
80 var q = { 'id' : { '!=' : null } };
83 q.virtual = virt_field;
89 $scope.gridControls = {
90 activateItem : function (i) { return $scope.edit_record([i]) },
91 setQuery : function() {
92 return generateQuery($scope.virt_field);
94 setSort : function() {