CRM-15097 - crmCaseType - If a case-type isn't forkable, then don't allow editing...
[civicrm-core.git] / js / angular-crmCaseType.js
index 131dd62f8767c75354c09ab88bf5c01988a0df1f..3238260a7a27261faf0698636ceb62b76f76a5a4 100644 (file)
       }
     };
 
+    $scope.isForkable = function() {
+      return !$scope.caseType.id || $scope.caseType.is_forkable
+    };
+
     $scope.isNewActivitySetAllowed = function(workflow) {
       switch (workflow) {
         case 'timeline':
     };
     $scope.$watch('locks.caseTypeName', updateCaseTypeName);
     $scope.$watch('caseType.title', updateCaseTypeName);
+
+    if (!$scope.isForkable()) {
+      CRM.alert(ts('The CiviCase XML file for this case-type prohibits editing the definition.'));
+    }
   });
 
   crmCaseType.controller('CaseTypeListCtrl', function($scope, crmApi, caseTypes) {
         });
     };
     $scope.deleteCaseType = function (caseType) {
-      crmApi('CaseType', 'delete', {id: caseType.id}, true)
+      crmApi('CaseType', 'delete', {id: caseType.id}, {
+        error: function (data) {
+          CRM.alert(data.error_message, ts('Error'));
+        }
+      })
         .then(function (data) {
           if (!data.is_error) {
             delete caseTypes.values[caseType.id];