CRM-14798 - crmCaseType - Filter/validate caseType.name
authortotten@civicrm.org <Tim Otten>
Fri, 27 Jun 2014 11:33:20 +0000 (04:33 -0700)
committertotten@civicrm.org <Tim Otten>
Tue, 1 Jul 2014 22:11:48 +0000 (15:11 -0700)
If the name is auto-generated, filter out invalid characters. If the name is
manually-generated, emphasize errors.

css/civicrm.css
js/angular-crmCaseType.js

index 54d1fb1088e14743584ed60981ffc289fc7079f4..c618104ea8aa15b48db8639d2d37d7771370c181 100644 (file)
@@ -331,6 +331,9 @@ input.crm-form-entityref {
   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);
   background-image: linear-gradient(top, #fff 0%, #eee 50%);
 }
+.crm-container input.crm-form-text.ng-invalid {
+    border: 1px solid #FF0000;
+}
 .crm-container input.crm-form-text,
 .crm-container input.dateplugin {
   border: 1px solid #999;
index 5ce47c855d824b3c7709fd152d66417c2569e641..bf3e5d571e511d3b38628e34dd745b8c2bd7e0c9 100644 (file)
     var updateCaseTypeName = function () {
       if (!$scope.caseType.id && $scope.locks.caseTypeName) {
         // Should we do some filtering? Lowercase? Strip whitespace?
-        $scope.caseType.name = $scope.caseType.title;
+        var t = $scope.caseType.title ? $scope.caseType.title : '';
+        $scope.caseType.name = t.replace(/ /g, '_').replace(/[^a-zA-Z0-9_]/g, '').toLowerCase();
       }
     };
     $scope.$watch('locks.caseTypeName', updateCaseTypeName);