diff --git a/frontend/app/scripts/controllers/admin/AdminCustomFieldDialogCtrl.js b/frontend/app/scripts/controllers/admin/AdminCustomFieldDialogCtrl.js index 62f3ed4021..106e8026ea 100644 --- a/frontend/app/scripts/controllers/admin/AdminCustomFieldDialogCtrl.js +++ b/frontend/app/scripts/controllers/admin/AdminCustomFieldDialogCtrl.js @@ -14,6 +14,7 @@ self.customField.options = (customField.options || []).join('\n'); var onSuccess = function(data) { + NotificationSrv.log('The Custom field has been successfully saved.', 'success'); $uibModalInstance.close(data); }; @@ -57,28 +58,20 @@ .catch(onFailure); } else { - CustomFieldsSrv.create(postData) - .then(onSuccess) - .catch(onFailure); - - // ListSrv.exists({ - // 'listId': 'custom_fields' - // }, { - // key: 'reference', - // value: postData.reference - // }, function(response) { - // - // if (response.toJSON().found === true) { - // form.name.$setValidity('unique', false); - // form.name.$setDirty(); - // } else { - // ListSrv.save({ - // 'listId': 'custom_fields' - // }, { - // 'value': postData - // }, onSuccess, onFailure); - // } - // }, onFailure); + CustomFieldsSrv.get(postData.reference) + .then(function() { + form.reference.$setValidity('unique', false); + form.reference.$setDirty(); + }, function(err) { + if(err.status === 404) { + CustomFieldsSrv.create(postData) + .then(onSuccess) + .catch(onFailure); + } + }) + .catch(function(err) { + NotificationSrv.error('AdminCustomFieldDialogCtrl', err.data, err.status); + }); } }; diff --git a/frontend/app/scripts/controllers/admin/AdminCustomFieldsCtrl.js b/frontend/app/scripts/controllers/admin/AdminCustomFieldsCtrl.js index 92c7cfbe19..3ad0fab645 100644 --- a/frontend/app/scripts/controllers/admin/AdminCustomFieldsCtrl.js +++ b/frontend/app/scripts/controllers/admin/AdminCustomFieldsCtrl.js @@ -51,16 +51,6 @@ size: 'lg', resolve: { customField: function() { - // return customField.id ? { - // id: customField.id, - // name: customField.reference, - // displayName: customField.name, - // description: customField.description, - // type: customField.type, - // options: customField.options, - // mandatory: customField.mandatory - // } : {}; - return customField.id ? angular.copy(customField, {}) : {}; } } diff --git a/frontend/app/scripts/services/api/CustomFieldsSrv.js b/frontend/app/scripts/services/api/CustomFieldsSrv.js index 8e3940606c..c1362ebe61 100644 --- a/frontend/app/scripts/services/api/CustomFieldsSrv.js +++ b/frontend/app/scripts/services/api/CustomFieldsSrv.js @@ -18,6 +18,10 @@ return $http.get('./api/customField'); }; + this.get = function(idOrReference) { + return $http.get('./api/customField/' + idOrReference); + }; + this.create = function(field) { //return $http.post('./api/customField', self._convert(field)); return $http.post('./api/customField', field);