@processmaker/screen-builder 2.87.1 → 2.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue-form-builder.css +1 -1
- package/dist/vue-form-builder.es.js +5863 -5603
- package/dist/vue-form-builder.es.js.map +1 -1
- package/dist/vue-form-builder.umd.js +82 -63
- package/dist/vue-form-builder.umd.js.map +1 -1
- package/package.json +3 -3
- package/src/assets/priority-header.svg +3 -0
- package/src/components/renderer/form-list-table.vue +98 -108
- package/src/components/renderer/form-new-request.vue +11 -8
- package/src/components/renderer/form-requests.vue +172 -85
- package/src/components/renderer/form-tasks.vue +358 -59
- package/src/components/task.vue +0 -11
- package/src/form-builder-controls.js +2 -2
- package/src/mixins/ValidationRules.js +2 -2
- package/src/mixins/datatable.js +86 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@processmaker/screen-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.89.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "VITE_COVERAGE=true vite",
|
|
6
6
|
"build": "vite build",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@fortawesome/fontawesome-free": "^5.6.1",
|
|
57
57
|
"@originjs/vite-plugin-commonjs": "^1.0.3",
|
|
58
58
|
"@panter/vue-i18next": "^0.15.2",
|
|
59
|
-
"@processmaker/vue-form-elements": "0.
|
|
59
|
+
"@processmaker/vue-form-elements": "0.55.0",
|
|
60
60
|
"@processmaker/vue-multiselect": "2.3.0",
|
|
61
61
|
"@storybook/addon-essentials": "^7.6.13",
|
|
62
62
|
"@storybook/addon-interactions": "^7.6.13",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
},
|
|
116
116
|
"peerDependencies": {
|
|
117
117
|
"@panter/vue-i18next": "^0.15.0",
|
|
118
|
-
"@processmaker/vue-form-elements": "0.
|
|
118
|
+
"@processmaker/vue-form-elements": "0.55.0",
|
|
119
119
|
"i18next": "^15.0.8",
|
|
120
120
|
"vue": "^2.6.12",
|
|
121
121
|
"vuex": "^3.1.1"
|
|
@@ -2,21 +2,17 @@
|
|
|
2
2
|
<div class="card" :style="customStyle">
|
|
3
3
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
4
4
|
<template v-if="dataControl.showControl">
|
|
5
|
-
<div class="
|
|
6
|
-
<b-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:variant="dataControl.variant"
|
|
10
|
-
:text="dataControl.count"
|
|
11
|
-
class="avatar-text"
|
|
12
|
-
></b-avatar>
|
|
5
|
+
<div class="head-filter">
|
|
6
|
+
<b-badge class="badge-custom" pill :variant="dataControl.variant">
|
|
7
|
+
{{ dataControl.count }}
|
|
8
|
+
</b-badge>
|
|
13
9
|
<p class="control-text mb-0" :style="dataControl.colorText">
|
|
14
10
|
{{ $t(title) }}
|
|
15
11
|
</p>
|
|
16
12
|
<template v-if="dataControl.dropdownShow === 'requests'">
|
|
17
13
|
<b-dropdown
|
|
18
14
|
variant="outline-secondary"
|
|
19
|
-
|
|
15
|
+
offset="-70"
|
|
20
16
|
no-caret
|
|
21
17
|
>
|
|
22
18
|
<template #button-content>
|
|
@@ -48,44 +44,21 @@
|
|
|
48
44
|
<div class="mr-4">
|
|
49
45
|
<b-dropdown
|
|
50
46
|
variant="outline-secondary"
|
|
47
|
+
offset="-50"
|
|
51
48
|
size="sm"
|
|
52
49
|
>
|
|
53
50
|
<template #button-content>
|
|
54
51
|
<span class="text-capitalize">
|
|
55
|
-
<b-icon
|
|
56
|
-
v-if="showBadge"
|
|
57
|
-
icon="circle-fill"
|
|
58
|
-
class="mr-2"
|
|
59
|
-
:variant="badgeVariant"
|
|
60
|
-
/>
|
|
61
52
|
{{ $t(titleDropdown) }}
|
|
62
53
|
</span>
|
|
63
54
|
</template>
|
|
64
55
|
<b-dropdown-item
|
|
65
|
-
|
|
56
|
+
v-for="option in requestFilterDropdown"
|
|
57
|
+
:key="option"
|
|
58
|
+
@click="handleDropdownSelection('requests_dropdown', option)"
|
|
66
59
|
>
|
|
67
60
|
<span class="item-text">
|
|
68
|
-
{{ $t(
|
|
69
|
-
</span>
|
|
70
|
-
</b-dropdown-item>
|
|
71
|
-
<b-dropdown-item
|
|
72
|
-
@click="handleDropdownSelection('requests_dropdown', 'Completed')"
|
|
73
|
-
>
|
|
74
|
-
<span class="item-text">
|
|
75
|
-
<i
|
|
76
|
-
class="fas fa-circle mr-2 text-primary"
|
|
77
|
-
/>
|
|
78
|
-
{{ $t("Completed") }}
|
|
79
|
-
</span>
|
|
80
|
-
</b-dropdown-item>
|
|
81
|
-
<b-dropdown-item
|
|
82
|
-
@click="handleDropdownSelection('requests_dropdown', 'In Progress')"
|
|
83
|
-
>
|
|
84
|
-
<span class="item-text">
|
|
85
|
-
<i
|
|
86
|
-
class="fas fa-circle mr-2 text-success"
|
|
87
|
-
/>
|
|
88
|
-
{{ $t("In Progress") }}
|
|
61
|
+
{{ $t(option) }}
|
|
89
62
|
</span>
|
|
90
63
|
</b-dropdown-item>
|
|
91
64
|
</b-dropdown>
|
|
@@ -95,42 +68,21 @@
|
|
|
95
68
|
<div class="mr-4">
|
|
96
69
|
<b-dropdown
|
|
97
70
|
variant="outline-secondary"
|
|
71
|
+
offset="-50"
|
|
98
72
|
size="sm"
|
|
99
73
|
>
|
|
100
74
|
<template #button-content>
|
|
101
75
|
<span class="text-capitalize">
|
|
102
|
-
<b-icon
|
|
103
|
-
v-if="showBadge"
|
|
104
|
-
icon="circle-fill"
|
|
105
|
-
class="mr-2"
|
|
106
|
-
:variant="badgeVariant"
|
|
107
|
-
/>
|
|
108
76
|
{{ $t(titleDropdown) }}
|
|
109
77
|
</span>
|
|
110
78
|
</template>
|
|
111
|
-
<b-dropdown-item @click="handleDropdownSelection('tasks', 'all')">
|
|
112
|
-
<span class="item-text">
|
|
113
|
-
{{ $t("View All") }}
|
|
114
|
-
</span>
|
|
115
|
-
</b-dropdown-item>
|
|
116
79
|
<b-dropdown-item
|
|
117
|
-
|
|
80
|
+
v-for="option in taskFilterDropdown"
|
|
81
|
+
:key="option"
|
|
82
|
+
@click="handleDropdownSelection('tasks', option)"
|
|
118
83
|
>
|
|
119
84
|
<span class="item-text">
|
|
120
|
-
|
|
121
|
-
class="fas fa-circle mr-2 text-danger"
|
|
122
|
-
/>
|
|
123
|
-
{{ $t("Overdue") }}
|
|
124
|
-
</span>
|
|
125
|
-
</b-dropdown-item>
|
|
126
|
-
<b-dropdown-item
|
|
127
|
-
@click="handleDropdownSelection('tasks', 'In Progress')"
|
|
128
|
-
>
|
|
129
|
-
<span class="item-text">
|
|
130
|
-
<i
|
|
131
|
-
class="fas fa-circle mr-2 text-warning"
|
|
132
|
-
/>
|
|
133
|
-
{{ $t("In Progress") }}
|
|
85
|
+
{{ $t(option) }}
|
|
134
86
|
</span>
|
|
135
87
|
</b-dropdown-item>
|
|
136
88
|
</b-dropdown>
|
|
@@ -172,10 +124,10 @@
|
|
|
172
124
|
<template v-if="listOption === 'My Tasks'">
|
|
173
125
|
<FormTasks @tasksCount="getData"></FormTasks>
|
|
174
126
|
</template>
|
|
175
|
-
<template v-if="
|
|
127
|
+
<template v-if="verifyListCase()">
|
|
176
128
|
<FormRequests @requestsCount="getData"></FormRequests>
|
|
177
129
|
</template>
|
|
178
|
-
<template v-if="
|
|
130
|
+
<template v-if="verifyNewCase()">
|
|
179
131
|
<FormNewRequest @startControl="getData"></FormNewRequest>
|
|
180
132
|
</template>
|
|
181
133
|
</div>
|
|
@@ -202,24 +154,46 @@ export default {
|
|
|
202
154
|
searchCriteria: "",
|
|
203
155
|
showInput: false,
|
|
204
156
|
pmql: "",
|
|
205
|
-
badgeVariant: "",
|
|
206
157
|
typeSelected: "",
|
|
207
158
|
showBadge: false,
|
|
208
159
|
customStyle: {
|
|
209
160
|
"border-radius": "8px"
|
|
210
|
-
}
|
|
161
|
+
},
|
|
162
|
+
taskFilterDropdown: [
|
|
163
|
+
"Self-service",
|
|
164
|
+
"In Progress",
|
|
165
|
+
"Overdue",
|
|
166
|
+
"View All"
|
|
167
|
+
],
|
|
168
|
+
requestFilterDropdown: [
|
|
169
|
+
"View All",
|
|
170
|
+
"Completed",
|
|
171
|
+
"In Progress",
|
|
172
|
+
]
|
|
211
173
|
};
|
|
212
174
|
},
|
|
213
175
|
watch: {
|
|
214
176
|
listOption() {
|
|
215
|
-
this.title = this.listOption;
|
|
177
|
+
this.title = this.checkTitle(this.listOption);
|
|
216
178
|
this.dataControl = {};
|
|
217
179
|
}
|
|
218
180
|
},
|
|
219
181
|
mounted() {
|
|
220
|
-
this.title = this.listOption;
|
|
182
|
+
this.title = this.checkTitle(this.listOption);
|
|
221
183
|
},
|
|
222
184
|
methods: {
|
|
185
|
+
/**
|
|
186
|
+
* Backward compatibility beacuse value is used as title
|
|
187
|
+
*/
|
|
188
|
+
checkTitle(option) {
|
|
189
|
+
if (option === "Start New Request") {
|
|
190
|
+
return "Start New Case";
|
|
191
|
+
}
|
|
192
|
+
if (option === "My Requests") {
|
|
193
|
+
return "My Cases";
|
|
194
|
+
}
|
|
195
|
+
return option;
|
|
196
|
+
},
|
|
223
197
|
getData(data) {
|
|
224
198
|
this.dataControl = data.dataControls;
|
|
225
199
|
},
|
|
@@ -231,23 +205,19 @@ export default {
|
|
|
231
205
|
this.typeSelected = listType;
|
|
232
206
|
if (listType === "tasks") {
|
|
233
207
|
this.$root.$emit("dropdownSelectionTask", valueSelected);
|
|
234
|
-
this.titleDropdown =
|
|
235
|
-
valueSelected === "all" ? this.viewAll : valueSelected;
|
|
236
|
-
this.colorBadge();
|
|
208
|
+
this.titleDropdown = valueSelected;
|
|
237
209
|
} else {
|
|
238
210
|
if (listType === "requests_filter") {
|
|
239
211
|
this.optionRequest = valueSelected;
|
|
240
212
|
if (valueSelected === "by_me") {
|
|
241
|
-
this.title = "
|
|
213
|
+
this.title = "Cases Started By Me";
|
|
242
214
|
}
|
|
243
215
|
if (valueSelected === "as_participant") {
|
|
244
216
|
this.title = "With Me as Participant";
|
|
245
217
|
}
|
|
246
218
|
}
|
|
247
219
|
if (listType === "requests_dropdown") {
|
|
248
|
-
this.titleDropdown =
|
|
249
|
-
valueSelected === "all" ? this.viewAll : valueSelected;
|
|
250
|
-
this.colorBadge();
|
|
220
|
+
this.titleDropdown = valueSelected;
|
|
251
221
|
this.dropdownRequest = valueSelected;
|
|
252
222
|
}
|
|
253
223
|
combinedFilter.push(this.optionRequest);
|
|
@@ -285,34 +255,21 @@ export default {
|
|
|
285
255
|
this.showInput = !this.showInput;
|
|
286
256
|
},
|
|
287
257
|
/**
|
|
288
|
-
*
|
|
258
|
+
* Verify backward compatibility for Start New Case
|
|
289
259
|
*/
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
this.
|
|
302
|
-
|
|
303
|
-
}
|
|
304
|
-
if (this.titleDropdown === "Overdue") {
|
|
305
|
-
this.badgeVariant = "danger";
|
|
306
|
-
this.showBadge = true;
|
|
307
|
-
}
|
|
308
|
-
if (this.titleDropdown === "Completed") {
|
|
309
|
-
this.badgeVariant = "primary";
|
|
310
|
-
this.showBadge = true;
|
|
311
|
-
}
|
|
312
|
-
if (this.titleDropdown === "View All" || this.titleDropdown === "all") {
|
|
313
|
-
this.badgeVariant = "";
|
|
314
|
-
this.showBadge = false;
|
|
315
|
-
}
|
|
260
|
+
verifyNewCase() {
|
|
261
|
+
return (
|
|
262
|
+
this.listOption === "Start New Case" ||
|
|
263
|
+
this.listOption === "Start New Request"
|
|
264
|
+
);
|
|
265
|
+
},
|
|
266
|
+
/**
|
|
267
|
+
* Verify backward compatibility for List Cases
|
|
268
|
+
*/
|
|
269
|
+
verifyListCase() {
|
|
270
|
+
return (
|
|
271
|
+
this.listOption === "My Cases" || this.listOption === "My Requests"
|
|
272
|
+
);
|
|
316
273
|
}
|
|
317
274
|
}
|
|
318
275
|
};
|
|
@@ -355,10 +312,13 @@ export default {
|
|
|
355
312
|
height: 300px;
|
|
356
313
|
overflow: auto;
|
|
357
314
|
background-color: #f9f9f9;
|
|
315
|
+
padding: 0;
|
|
358
316
|
}
|
|
359
317
|
|
|
360
|
-
.btn-outline-secondary
|
|
318
|
+
.btn-outline-secondary,
|
|
319
|
+
.btn-outline-secondary:focus {
|
|
361
320
|
border: none;
|
|
321
|
+
box-shadow: none;
|
|
362
322
|
}
|
|
363
323
|
|
|
364
324
|
.item-text {
|
|
@@ -372,12 +332,42 @@ export default {
|
|
|
372
332
|
}
|
|
373
333
|
|
|
374
334
|
.dropdown-menu {
|
|
375
|
-
padding:
|
|
376
|
-
width:
|
|
377
|
-
box-shadow: 0px
|
|
335
|
+
padding: 0px;
|
|
336
|
+
width: 180px;
|
|
337
|
+
box-shadow: 0px 4px 8px 0px #0000001A;
|
|
338
|
+
border-radius: 4px;
|
|
378
339
|
}
|
|
379
340
|
|
|
380
341
|
.dropdown-item {
|
|
381
|
-
padding:
|
|
342
|
+
padding: 13px 12px;
|
|
343
|
+
font-family: 'Open Sans', sans-serif;
|
|
344
|
+
font-size: 16px;
|
|
345
|
+
font-weight: 400;
|
|
346
|
+
line-height: 21.79px;
|
|
347
|
+
letter-spacing: -0.02em;
|
|
348
|
+
text-align: left;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.btn-outline-secondary:hover,
|
|
352
|
+
.btn-outline-secondary:not(:disabled):not(.disabled):active,
|
|
353
|
+
.btn-outline-secondary:not(:disabled):not(.disabled).active,
|
|
354
|
+
.show > .btn-outline-secondary.dropdown-toggle {
|
|
355
|
+
background: none;
|
|
356
|
+
color: #228fed;
|
|
357
|
+
border: none;
|
|
358
|
+
box-shadow: none;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.head-filter {
|
|
362
|
+
display: flex;
|
|
363
|
+
align-items: baseline;
|
|
364
|
+
gap: 8px;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.badge {
|
|
368
|
+
display: inline-flex;
|
|
369
|
+
padding: 8px;
|
|
370
|
+
height: 24px;
|
|
371
|
+
align-items: center;
|
|
382
372
|
}
|
|
383
373
|
</style>
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div
|
|
3
|
+
<div
|
|
4
|
+
v-if="Object.keys(processes).length && !loading"
|
|
5
|
+
class="process-list p-4"
|
|
6
|
+
>
|
|
4
7
|
<div class="row">
|
|
5
8
|
<template v-for="(process, index) in processes">
|
|
6
|
-
<div
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/>
|
|
9
|
+
<div
|
|
10
|
+
v-for="(event, indexE) in emptyStartEvents(process)"
|
|
11
|
+
:key="`process-${index}-${indexE}`"
|
|
12
|
+
class="col-sm-6"
|
|
13
|
+
>
|
|
14
|
+
<ProcessCard :filter="filter" :process="process" :event="event" />
|
|
12
15
|
</div>
|
|
13
16
|
</template>
|
|
14
17
|
</div>
|
|
15
18
|
</div>
|
|
16
19
|
<div v-else>
|
|
17
|
-
<formEmpty link="" title="No
|
|
20
|
+
<formEmpty link="" title="No Case to Start" url="" />
|
|
18
21
|
</div>
|
|
19
22
|
</div>
|
|
20
23
|
</template>
|