Skip to content

Commit 7712ca7

Browse files
authored
Fixed #5831 (#5832)
Signed-off-by: StanZGenchev <stan.genchev@codbex.com>
1 parent a31b387 commit 7712ca7

File tree

5 files changed

+48
-31
lines changed

5 files changed

+48
-31
lines changed

.github/workflows/build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
node-version: 22.x
5959

6060
- name: Install TypeScript and esbuild
61-
run: npm install -g typescript esbuild
61+
run: npm install -g typescript@5.9.3 esbuild
6262

6363
- name: Maven Build
6464
run: mvn clean install -P quick-build
@@ -151,7 +151,7 @@ jobs:
151151
node-version: 22.x
152152

153153
- name: Install TypeScript and esbuild
154-
run: npm install -g typescript esbuild
154+
run: npm install -g typescript@5.9.3 esbuild
155155

156156
- name: Maven Build
157157
run: mvn clean install -P unit-tests
@@ -183,7 +183,7 @@ jobs:
183183
node-version: 22.x
184184

185185
- name: Install TypeScript and esbuild
186-
run: npm install -g typescript esbuild
186+
run: npm install -g typescript@5.9.3 esbuild
187187

188188
- name: Install ttyd (prebuilt)
189189
run: |
@@ -256,7 +256,7 @@ jobs:
256256
node-version: 22.x
257257

258258
- name: Install TypeScript and esbuild
259-
run: npm install -g typescript esbuild
259+
run: npm install -g typescript@5.9.3 esbuild
260260

261261
- name: Install ttyd (prebuilt)
262262
run: |
@@ -326,7 +326,7 @@ jobs:
326326
node-version: 22.x
327327

328328
- name: Install TypeScript and esbuild
329-
run: npm install -g typescript esbuild
329+
run: npm install -g typescript@5.9.3 esbuild
330330

331331
- name: Install ttyd (prebuilt)
332332
run: |

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
node-version: 22.x
4848

4949
- name: Install TypeScript and esbuild
50-
run: npm install -g typescript esbuild
50+
run: npm install -g typescript@5.9.3 esbuild
5151

5252
- name: Initialize CodeQL
5353
uses: github/codeql-action/init@v3

.github/workflows/pull-request.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
node-version: 22.x
5656

5757
- name: Install TypeScript and esbuild
58-
run: npm install -g typescript esbuild
58+
run: npm install -g typescript@5.9.3 esbuild
5959

6060
- name: Maven Build
6161
run: mvn clean install -P unit-tests -U
@@ -87,7 +87,7 @@ jobs:
8787
node-version: 22.x
8888

8989
- name: Install TypeScript and esbuild
90-
run: npm install -g typescript esbuild
90+
run: npm install -g typescript@5.9.3 esbuild
9191

9292
- name: Maven Build
9393
run: mvn clean install -P quick-build
@@ -129,7 +129,7 @@ jobs:
129129
node-version: 22.x
130130

131131
- name: Install TypeScript and esbuild
132-
run: npm install -g typescript esbuild
132+
run: npm install -g typescript@5.9.3 esbuild
133133

134134
- name: Install ttyd (prebuilt)
135135
run: |
@@ -201,7 +201,7 @@ jobs:
201201
node-version: 22.x
202202

203203
- name: Install TypeScript and esbuild
204-
run: npm install -g typescript esbuild
204+
run: npm install -g typescript@5.9.3 esbuild
205205

206206
- name: Install ttyd (prebuilt)
207207
run: |
@@ -271,7 +271,7 @@ jobs:
271271
node-version: 22.x
272272

273273
- name: Install TypeScript and esbuild
274-
run: npm install -g typescript esbuild
274+
run: npm install -g typescript@5.9.3 esbuild
275275

276276
- name: Install ttyd (prebuilt)
277277
run: |

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
registry-url: 'https://registry.npmjs.org'
6363

6464
- name: Install TypeScript and esbuild
65-
run: npm install -g typescript esbuild
65+
run: npm install -g typescript@5.9.3 esbuild
6666

6767
- name: Set up Docker Buildx
6868
uses: docker/setup-buildx-action@v3
@@ -171,7 +171,7 @@ jobs:
171171
run: npm install -g npm@11.11.1
172172

173173
- name: Install TypeScript and esbuild
174-
run: npm install -g typescript esbuild
174+
run: npm install -g typescript@5.9.3 esbuild
175175

176176
- name: "Configure Git"
177177
run: |
@@ -349,7 +349,7 @@ jobs:
349349

350350

351351
- name: Install TypeScript and esbuild
352-
run: npm install -g typescript esbuild
352+
run: npm install -g typescript@5.9.3 esbuild
353353

354354
- name: Initialize CodeQL
355355
uses: github/codeql-action/init@v3

components/template/template-form-builder-angularjs/src/main/resources/META-INF/dirigible/template-form-builder-angularjs/ui/controller.js.template

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,23 @@ angular.module('forms', ['blimpKit', 'platformView', 'platformLocale', 'platform
2525
})).constant('Dialogs', new DialogHub()).controller('FormController', ($scope, $http, Dialogs, LocaleService, ViewParameters) => {
2626
$scope._is_view = ViewParameters.get().container !== undefined;
2727
$scope._stepIndicators = {};
28+
${dollar}scope._setDeepModel = (path, value) => {
29+
const keys = path.split('.');
30+
let current = $scope.model;
31+
32+
keys.forEach((key, index) => {
33+
if (index === keys.length - 1) {
34+
current[key] = value;
35+
} else {
36+
if (current[key] === null || current[key] === undefined) {
37+
current[key] = {};
38+
} else if (typeof current[key] !== 'object') {
39+
throw new Error(`${key} is not an object! Cannot set inner keys.`);
40+
}
41+
current = current[key];
42+
}
43+
});
44+
};
2845
${dollar}scope._selectFromDocuments = (modelKey, multiple, uploadEnabled) => {
2946
Dialogs.showWindow({id: 'documentStorage', params: { readOnly: !uploadEnabled, multiple: multiple, topic: '${projectName}.doc.select' } });
3047
const docSelectListener = Dialogs.addMessageListener({
@@ -39,13 +56,13 @@ angular.module('forms', ['blimpKit', 'platformView', 'platformLocale', 'platform
3956
}
4057
});
4158
};
42-
$scope.forms = {
59+
${dollar}scope.forms = {
4360
form: {}
4461
};
4562
#if($metadata.url)
46-
$scope._submit = () => {
63+
${dollar}scope._submit = () => {
4764
const payload = {};
48-
angular.forEach($scope.forms.form, (control, name) => {
65+
angular.forEach(${dollar}scope.forms.form, (control, name) => {
4966
if (name[0] === '$') return;
5067
payload[name] = control.$modelValue;
5168
});
@@ -79,7 +96,7 @@ angular.module('forms', ['blimpKit', 'platformView', 'platformLocale', 'platform
7996
};
8097
#end
8198

82-
$scope.model = {};
99+
${dollar}scope.model = {};
83100
#macro(formWidgets $elements)
84101
#foreach($element in $elements)
85102
#if($element.controlId == "stepIndicator" && $element.staticData)
@@ -103,44 +120,44 @@ angular.module('forms', ['blimpKit', 'platformView', 'platformLocale', 'platform
103120
);
104121
});
105122
#elseif($element.controlId == "input-number")
106-
$scope.model.$element.model = 0;
123+
${dollar}scope._setDeepModel('$element.model', 0);
107124
#elseif($element.controlId == "input-checkbox")
108-
$scope.model.$element.model = false;
125+
${dollar}scope._setDeepModel('$element.model', false);
109126
#elseif($element.controlId == "input-radio")
110127
#set ($hasDefault = false)
111128
#if ($element.staticOptions)
112129
#foreach($radio in $element.staticOptions)
113130
#if ($radio.isDefault == true)
114131
#set ($hasDefault = true)
115-
$scope.model.$element.model = '$radio.value';
132+
${dollar}scope._setDeepModel('$element.model', '$radio.value');
116133
#break
117134
#end
118135
#end
119136
#end
120137
#if (!$hasDefault)
121-
$scope.model.$element.model = '';
138+
${dollar}scope._setDeepModel('$element.model', '');
122139
#end
123140
#elseif($element.controlId == "input-select")
124141
#set ($hasDefault = false)
125142
#if ($element.staticOptions)
126143
#foreach($select in $element.staticOptions)
127144
#if ($select.isDefault == true)
128145
#set ($hasDefault = true)
129-
$scope.model.$element.model = '$select.value';
146+
${dollar}scope._setDeepModel('$element.model', '$select.value');
130147
#break
131148
#end
132149
#end
133150
#end
134151
#if (!$hasDefault)
135-
$scope.model.$element.model = '';
152+
${dollar}scope._setDeepModel('$element.model', '');
136153
#end
137154
#elseif($element.controlId == "input-color")
138-
$scope.model.$element.model = '#ffbe6f';
155+
${dollar}scope._setDeepModel('$element.model', '#ffbe6f');
139156
#elseif($element.controlId == "paragraph")
140157
#if($element.model && $element.text)
141-
$scope.model.$element.model = `$element.text`;
158+
${dollar}scope._setDeepModel('$element.model', `$element.text`);
142159
#elseif($element.model)
143-
$scope.model.$element.model = null;
160+
${dollar}scope._setDeepModel('$element.model', null);
144161
#end
145162
#end
146163
#if($element.children)
@@ -158,15 +175,15 @@ $code
158175
${dollar}http.get(`$feed.url`).then(response => {
159176
#if($feed.func)
160177
#if($feed.name == 'model')
161-
Object.assign($scope.model, ${feed.func}(response.data));
178+
Object.assign(${dollar}scope.model, ${feed.func}(response.data));
162179
#else
163-
$scope.$feed.name = ${feed.func}(response.data);
180+
${dollar}scope.$feed.name = ${feed.func}(response.data);
164181
#end
165182
#else
166183
#if($feed.name == 'model')
167-
Object.assign($scope.model, response.data);
184+
Object.assign(${dollar}scope.model, response.data);
168185
#else
169-
$scope.$feed.name = response.data;
186+
${dollar}scope.$feed.name = response.data;
170187
#end
171188
#end
172189
}, error => {

0 commit comments

Comments
 (0)