Commit 05dabec2bb1a7514c7a072360069cde914985ffb

Authored by Sergey Tarnavskiy
1 parent 86c2fe82

htt-form transformer-validation fix

... ... @@ -48,7 +48,9 @@ export default function ExtensionFormHttpDirective($compile, $templateCache, $tr
48 48 enableBasicAutocompletion: true,
49 49 enableLiveAutocompletion: true
50 50 },
51   - onLoad: aceOnLoad
  51 + onLoad: function(_ace) {
  52 + _ace.$blockScrolling = 1;
  53 + }
52 54 };
53 55
54 56 if(scope.isAdd) {
... ... @@ -120,24 +122,17 @@ export default function ExtensionFormHttpDirective($compile, $templateCache, $tr
120 122 attribute.transformer = "";
121 123 }
122 124
123   - function aceOnLoad(_ace) {
124   - _ace.$blockScrolling = 1;
125   - _ace.on("change", function(){
126   - var aceValue = _ace.getSession().getDocument().getValue();
127   - var valid = true;
128   - if(!aceValue && !aceValue.length) {
129   - valid = false;
130   - } else {
131   - try {
132   - angular.fromJson(aceValue);
133   - } catch(e) {
134   - valid = false;
135   - }
  125 + scope.validateTransformer = function (model, editorName) {
  126 + if(model && model.length) {
  127 + try {
  128 + angular.fromJson(model);
  129 + scope.theForm[editorName].$setValidity('transformerJSON', true);
  130 + } catch(e) {
  131 + scope.theForm[editorName].$setValidity('transformerJSON', false);
136 132 }
137   - scope.theForm.$setValidity('transformerRequired', valid);
138   - });
  133 + }
139 134 }
140   -
  135 +
141 136 $compile(element.contents())(scope);
142 137 }
143 138
... ...
... ... @@ -152,11 +152,14 @@
152 152 <div flex class="tb-extension-custom-transformer"
153 153 ui-ace="extensionCustomTransformerOptions"
154 154 ng-model="attribute.transformer"
155   - name="test_{{$index}}">
  155 + name="attributeCustomTransformer_{{configIndex}}{{converterIndex}}{{attributeIndex}}"
  156 + ng-change='validateTransformer(attribute.transformer,"attributeCustomTransformer_" + configIndex + converterIndex + attributeIndex)'
  157 + required>
156 158 </div>
157 159 </div>
158   - <div class="tb-error-messages" ng-messages="theForm['test_' + $index].$error" role="alert">
159   - <div ng-message="transformerRequired" class="tb-error-message">Ну привет :)</div>
  160 + <div class="tb-error-messages" ng-messages="theForm['attributeCustomTransformer_' + configIndex + converterIndex + attributeIndex].$error" role="alert">
  161 + <div ng-message="required" class="tb-error-message" translate>extension.json-required</div>
  162 + <div ng-message="transformerJSON" class="tb-error-message" translate>extension.json-parse</div>
160 163 </div>
161 164 </div>
162 165
... ... @@ -243,9 +246,16 @@
243 246 <div flex class="tb-extension-custom-transformer-panel">
244 247 <div flex class="tb-extension-custom-transformer"
245 248 ui-ace="extensionCustomTransformerOptions"
246   - ng-model="timeseries.transformer">
  249 + ng-model="timeseries.transformer"
  250 + name="timeseriesCustomTransformer_{{configIndex}}{{converterIndex}}{{timeseriesIndex}}"
  251 + ng-change='validateTransformer(timeseries.transformer,"timeseriesCustomTransformer_" + configIndex + converterIndex + timeseriesIndex)'
  252 + required>
247 253 </div>
248 254 </div>
  255 + <div class="tb-error-messages" ng-messages="theForm['timeseriesCustomTransformer_' + configIndex + converterIndex + timeseriesIndex].$error" role="alert">
  256 + <div ng-message="required" class="tb-error-message" translate>extension.json-required</div>
  257 + <div ng-message="transformerJSON" class="tb-error-message" translate>extension.json-parse</div>
  258 + </div>
249 259 </div>
250 260
251 261
... ...
... ... @@ -769,6 +769,8 @@ export default angular.module('thingsboard.locale', [])
769 769 "custom": "Custom",
770 770 "to-double": "To Double",
771 771 "transformer": "Transformer",
  772 + "json-required": "Transformer json is required.",
  773 + "json-parse": "Unable to parse transformer json.",
772 774 "attributes": "Attributes",
773 775 "add-attribute": "Add attribute",
774 776 "timeseries": "Timeseries",
... ...