@projectcaluma/ember-form 9.1.1 → 10.0.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/CHANGELOG.md +21 -0
- package/addon/components/cf-field/input/action-button.hbs +19 -0
- package/addon/components/cf-field/input/action-button.js +75 -0
- package/addon/components/cf-field/input/file.hbs +24 -13
- package/addon/components/cf-field/input/file.js +19 -9
- package/addon/components/cf-field/input/table.hbs +94 -95
- package/addon/components/cf-field/input/table.js +97 -80
- package/addon/components/cf-field/input.hbs +1 -0
- package/addon/components/cf-field/input.js +2 -1
- package/addon/components/cf-field-value.hbs +2 -2
- package/addon/components/cf-field.hbs +14 -12
- package/addon/components/cf-field.js +9 -1
- package/addon/components/document-validity.js +11 -5
- package/addon/gql/fragments/{field-question.graphql → field.graphql} +61 -0
- package/addon/gql/mutations/remove-answer.graphql +7 -0
- package/addon/gql/mutations/save-document-date-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-file-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-float-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-integer-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-list-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-string-answer.graphql +2 -2
- package/addon/gql/mutations/save-document-table-answer.graphql +2 -2
- package/addon/gql/mutations/save-document.graphql +2 -2
- package/addon/gql/queries/get-document-answers.graphql +18 -2
- package/addon/gql/queries/get-document-forms.graphql +2 -2
- package/addon/gql/queries/get-dynamic-options.graphql +1 -1
- package/addon/gql/queries/get-fileanswer-info.graphql +1 -1
- package/addon/lib/document.js +17 -1
- package/addon/lib/field.js +17 -2
- package/app/components/cf-field/input/action-button.js +1 -0
- package/package.json +18 -17
- package/translations/de.yaml +3 -15
- package/translations/en.yaml +3 -15
- package/translations/fr.yaml +3 -16
- package/addon/gql/fragments/field-answer.graphql +0 -57
@@ -1,3 +1,4 @@
|
|
1
|
+
import { dasherize } from "@ember/string";
|
1
2
|
import Component from "@glimmer/component";
|
2
3
|
|
3
4
|
const mapping = {
|
@@ -25,7 +26,7 @@ export default class CfFieldInputComponent extends Component {
|
|
25
26
|
|
26
27
|
return (
|
27
28
|
typename &&
|
28
|
-
(mapping[typename] || typename.replace(/Question$/, "")
|
29
|
+
(mapping[typename] || dasherize(typename.replace(/Question$/, "")))
|
29
30
|
);
|
30
31
|
}
|
31
32
|
}
|
@@ -16,21 +16,23 @@
|
|
16
16
|
{{/let}}
|
17
17
|
</div>
|
18
18
|
|
19
|
-
{{#if @field.question.infoText}}
|
19
|
+
{{#if (and @field.question.infoText this.infoTextVisible)}}
|
20
20
|
<CfField::info @text={{@field.question.infoText}} />
|
21
21
|
{{/if}}
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
23
|
+
{{#if this.saveIndicatorVisible}}
|
24
|
+
<div
|
25
|
+
class="cf-field__icon uk-padding-remove-vertical uk-flex uk-flex-middle uk-flex-center"
|
26
|
+
>
|
27
|
+
{{#if @field.save.isRunning}}
|
28
|
+
<UkSpinner class="uk-animation-fade" />
|
29
|
+
{{else if (or @field.save.last.isError @field.isInvalid)}}
|
30
|
+
<UkIcon @icon="warning" class="uk-animation-fade uk-text-danger" />
|
31
|
+
{{else if @field.save.last.isSuccessful}}
|
32
|
+
<UkIcon @icon="check" class="uk-animation-fade uk-text-success" />
|
33
|
+
{{/if}}
|
34
|
+
</div>
|
35
|
+
{{/if}}
|
34
36
|
</div>
|
35
37
|
|
36
38
|
{{#if @field.errors.length}}
|
@@ -29,10 +29,18 @@ export default class CfFieldComponent extends Component {
|
|
29
29
|
get labelVisible() {
|
30
30
|
return (
|
31
31
|
!this.args.field?.question.meta.hideLabel &&
|
32
|
-
!hasQuestionType(this.args.field?.question, "static")
|
32
|
+
!hasQuestionType(this.args.field?.question, "static", "action-button")
|
33
33
|
);
|
34
34
|
}
|
35
35
|
|
36
|
+
get infoTextVisible() {
|
37
|
+
return !hasQuestionType(this.args.field?.question, "action-button");
|
38
|
+
}
|
39
|
+
|
40
|
+
get saveIndicatorVisible() {
|
41
|
+
return !hasQuestionType(this.args.field?.question, "action-button");
|
42
|
+
}
|
43
|
+
|
36
44
|
/**
|
37
45
|
* Task to save a field. This will set the passed value to the answer and
|
38
46
|
* save the field to the API after a timeout off 500 milliseconds.
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { action } from "@ember/object";
|
2
2
|
import Component from "@glimmer/component";
|
3
|
+
import { restartableTask } from "ember-concurrency-decorators";
|
3
4
|
|
4
5
|
/**
|
5
6
|
* Component to check the validity of a document
|
@@ -34,11 +35,11 @@ export default class DocumentValidity extends Component {
|
|
34
35
|
return this.args.document.fields.every((f) => f.isValid);
|
35
36
|
}
|
36
37
|
|
37
|
-
@
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
@restartableTask
|
39
|
+
*_validate() {
|
40
|
+
for (const field of this.args.document.fields) {
|
41
|
+
yield field.validate.linked().perform();
|
42
|
+
}
|
42
43
|
|
43
44
|
if (this.isValid) {
|
44
45
|
this.args.onValid?.();
|
@@ -48,4 +49,9 @@ export default class DocumentValidity extends Component {
|
|
48
49
|
|
49
50
|
return this.isValid;
|
50
51
|
}
|
52
|
+
|
53
|
+
@action
|
54
|
+
validate() {
|
55
|
+
return this._validate.perform();
|
56
|
+
}
|
51
57
|
}
|
@@ -76,6 +76,11 @@ fragment SimpleQuestion on Question {
|
|
76
76
|
... on CalculatedFloatQuestion {
|
77
77
|
calcExpression
|
78
78
|
}
|
79
|
+
... on ActionButtonQuestion {
|
80
|
+
action
|
81
|
+
color
|
82
|
+
validateOnEnter
|
83
|
+
}
|
79
84
|
}
|
80
85
|
|
81
86
|
fragment FieldTableQuestion on Question {
|
@@ -157,3 +162,59 @@ fragment FieldQuestion on Question {
|
|
157
162
|
}
|
158
163
|
}
|
159
164
|
}
|
165
|
+
|
166
|
+
fragment SimpleAnswer on Answer {
|
167
|
+
id
|
168
|
+
question {
|
169
|
+
slug
|
170
|
+
}
|
171
|
+
... on StringAnswer {
|
172
|
+
stringValue: value
|
173
|
+
}
|
174
|
+
... on IntegerAnswer {
|
175
|
+
integerValue: value
|
176
|
+
}
|
177
|
+
... on FloatAnswer {
|
178
|
+
floatValue: value
|
179
|
+
}
|
180
|
+
... on ListAnswer {
|
181
|
+
listValue: value
|
182
|
+
}
|
183
|
+
... on FileAnswer {
|
184
|
+
fileValue: value {
|
185
|
+
uploadUrl
|
186
|
+
downloadUrl
|
187
|
+
metadata
|
188
|
+
name
|
189
|
+
}
|
190
|
+
}
|
191
|
+
... on DateAnswer {
|
192
|
+
dateValue: value
|
193
|
+
}
|
194
|
+
}
|
195
|
+
|
196
|
+
fragment FieldAnswer on Answer {
|
197
|
+
...SimpleAnswer
|
198
|
+
... on TableAnswer {
|
199
|
+
tableValue: value {
|
200
|
+
id
|
201
|
+
form {
|
202
|
+
slug
|
203
|
+
questions {
|
204
|
+
edges {
|
205
|
+
node {
|
206
|
+
...FieldQuestion
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}
|
211
|
+
answers {
|
212
|
+
edges {
|
213
|
+
node {
|
214
|
+
...SimpleAnswer
|
215
|
+
}
|
216
|
+
}
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentDateAnswerInput!) {
|
3
|
+
mutation SaveDocumentDateAnswer($input: SaveDocumentDateAnswerInput!) {
|
4
4
|
saveDocumentDateAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentFileAnswerInput!) {
|
3
|
+
mutation SaveDocumentFileAnswer($input: SaveDocumentFileAnswerInput!) {
|
4
4
|
saveDocumentFileAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentFloatAnswerInput!) {
|
3
|
+
mutation SaveDocumentFloatAnswer($input: SaveDocumentFloatAnswerInput!) {
|
4
4
|
saveDocumentFloatAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentIntegerAnswerInput!) {
|
3
|
+
mutation SaveDocumentIntegerAnswer($input: SaveDocumentIntegerAnswerInput!) {
|
4
4
|
saveDocumentIntegerAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentListAnswerInput!) {
|
3
|
+
mutation SaveDocumentListAnswer($input: SaveDocumentListAnswerInput!) {
|
4
4
|
saveDocumentListAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentStringAnswerInput!) {
|
3
|
+
mutation SaveDocumentStringAnswer($input: SaveDocumentStringAnswerInput!) {
|
4
4
|
saveDocumentStringAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentTableAnswerInput!) {
|
3
|
+
mutation saveDocumentTableAnswer($input: SaveDocumentTableAnswerInput!) {
|
4
4
|
saveDocumentTableAnswer(input: $input) {
|
5
5
|
answer {
|
6
6
|
...FieldAnswer
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
mutation ($input: SaveDocumentInput!) {
|
3
|
+
mutation SaveDocument($input: SaveDocumentInput!) {
|
4
4
|
saveDocument(input: $input) {
|
5
5
|
document {
|
6
6
|
id
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import * from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
query ($id: ID!) {
|
3
|
+
query GetDocumentAnswers($id: ID!) {
|
4
4
|
allDocuments(filter: [{ id: $id }]) {
|
5
5
|
edges {
|
6
6
|
node {
|
@@ -8,6 +8,22 @@ query ($id: ID!) {
|
|
8
8
|
form {
|
9
9
|
slug
|
10
10
|
}
|
11
|
+
workItem {
|
12
|
+
id
|
13
|
+
}
|
14
|
+
case {
|
15
|
+
id
|
16
|
+
workItems {
|
17
|
+
edges {
|
18
|
+
node {
|
19
|
+
id
|
20
|
+
task {
|
21
|
+
id
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
11
27
|
answers {
|
12
28
|
edges {
|
13
29
|
node {
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
#import FieldQuestion, FieldTableQuestion, SimpleQuestion from '../fragments/field.graphql'
|
2
2
|
|
3
|
-
query ($slug: String!) {
|
3
|
+
query GetDocumentForms($slug: String!) {
|
4
4
|
allForms(filter: [{ slug: $slug }]) {
|
5
5
|
edges {
|
6
6
|
node {
|
package/addon/lib/document.js
CHANGED
@@ -83,6 +83,22 @@ export default Base.extend({
|
|
83
83
|
return decodeId(this.raw.id);
|
84
84
|
}),
|
85
85
|
|
86
|
+
workItemUuid: computed(
|
87
|
+
"raw.{workItem.id,case.workItems.edges.[]}",
|
88
|
+
function () {
|
89
|
+
// The document is either directly attached to a work item (via
|
90
|
+
// CompleteTaskFormTask) or it's the case document and therefore
|
91
|
+
// indirectly attached to a work item (via CompleteWorkflowFormTask)
|
92
|
+
const rawId =
|
93
|
+
this.raw.workItem?.id ||
|
94
|
+
this.raw.case?.workItems.edges.find(
|
95
|
+
(edge) => edge.node.task.__typename === "CompleteWorkflowFormTask"
|
96
|
+
)?.node.id;
|
97
|
+
|
98
|
+
return rawId ? decodeId(rawId) : null;
|
99
|
+
}
|
100
|
+
),
|
101
|
+
|
86
102
|
/**
|
87
103
|
* The root form of this document
|
88
104
|
*
|
@@ -230,7 +246,7 @@ export default Base.extend({
|
|
230
246
|
}
|
231
247
|
|
232
248
|
if (field.hidden || [undefined, null].includes(field.value)) {
|
233
|
-
return field.question.isMultipleChoice ? [] : null;
|
249
|
+
return defaultValue ?? field.question.isMultipleChoice ? [] : null;
|
234
250
|
}
|
235
251
|
|
236
252
|
if (field.question.__typename === "TableQuestion") {
|
package/addon/lib/field.js
CHANGED
@@ -553,8 +553,9 @@ export default Base.extend({
|
|
553
553
|
*
|
554
554
|
* The field is optional if:
|
555
555
|
* - The form question field of the fieldset is hidden
|
556
|
-
* - All depending
|
556
|
+
* - All depending fields (used in the expression) are hidden
|
557
557
|
* - The evaluated `question.isRequired` expression returns `false`
|
558
|
+
* - The question type is FormQuestion or CalculatedFloatQuestion
|
558
559
|
*
|
559
560
|
* @property {Boolean} optional
|
560
561
|
*/
|
@@ -563,11 +564,14 @@ export default Base.extend({
|
|
563
564
|
"fieldset.field.hidden",
|
564
565
|
"jexlContext",
|
565
566
|
"optionalDependencies.@each.{hidden,value}",
|
566
|
-
"question.isRequired",
|
567
|
+
"question.{__typename,isRequired}",
|
567
568
|
"pk",
|
568
569
|
function () {
|
569
570
|
if (
|
570
571
|
this.fieldset.field?.hidden ||
|
572
|
+
["FormQuestion", "CalculatedFloatQuestion"].includes(
|
573
|
+
this.question.__typename
|
574
|
+
) ||
|
571
575
|
(this.optionalDependencies.length &&
|
572
576
|
this.optionalDependencies.every(fieldIsHidden))
|
573
577
|
) {
|
@@ -932,4 +936,15 @@ export default Base.extend({
|
|
932
936
|
_validateCalculatedFloatQuestion() {
|
933
937
|
return resolve(true);
|
934
938
|
},
|
939
|
+
|
940
|
+
/**
|
941
|
+
* Dummy method for the validation of work item button fields
|
942
|
+
*
|
943
|
+
* @method _validateActionButtonQuestion
|
944
|
+
* @return {RSVP.Promise}
|
945
|
+
* @private
|
946
|
+
*/
|
947
|
+
_validateActionButtonQuestion() {
|
948
|
+
return resolve(true);
|
949
|
+
},
|
935
950
|
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-form/components/cf-field/input/action-button";
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@projectcaluma/ember-form",
|
3
|
-
"version": "
|
3
|
+
"version": "10.0.0",
|
4
4
|
"description": "Ember addon for rendering Caluma forms.",
|
5
5
|
"keywords": [
|
6
6
|
"ember-addon"
|
@@ -16,21 +16,21 @@
|
|
16
16
|
"dependencies": {
|
17
17
|
"@glimmer/component": "^1.0.4",
|
18
18
|
"@glimmer/tracking": "^1.0.4",
|
19
|
-
"@projectcaluma/ember-core": "
|
19
|
+
"@projectcaluma/ember-core": "^10.0.0",
|
20
20
|
"ember-apollo-client": "^3.2.0",
|
21
|
-
"ember-auto-import": "^2.2.
|
21
|
+
"ember-auto-import": "^2.2.3",
|
22
22
|
"ember-cli-babel": "^7.26.6",
|
23
|
-
"ember-cli-htmlbars": "^
|
23
|
+
"ember-cli-htmlbars": "^6.0.0",
|
24
24
|
"ember-cli-showdown": "^6.0.0",
|
25
25
|
"ember-composable-helpers": "^4.5.0",
|
26
26
|
"ember-fetch": "^8.0.4",
|
27
|
-
"ember-in-viewport": "^3.10.
|
27
|
+
"ember-in-viewport": "^3.10.3",
|
28
28
|
"ember-intl": "^5.7.0",
|
29
|
-
"ember-math-helpers": "^2.
|
29
|
+
"ember-math-helpers": "^2.18.0",
|
30
30
|
"ember-pikaday": "^3.0.0",
|
31
|
-
"ember-power-select": "^4.1.
|
31
|
+
"ember-power-select": "^4.1.7",
|
32
32
|
"ember-uikit": "^4.0.0",
|
33
|
-
"graphql": "^15.6.
|
33
|
+
"graphql": "^15.6.1",
|
34
34
|
"jexl": "^2.3.0",
|
35
35
|
"lodash.clonedeep": "^4.5.0",
|
36
36
|
"lodash.isequal": "^4.5.0",
|
@@ -38,11 +38,12 @@
|
|
38
38
|
},
|
39
39
|
"devDependencies": {
|
40
40
|
"@ember/optional-features": "2.0.0",
|
41
|
-
"@ember/test-helpers": "2.
|
42
|
-
"@embroider/test-setup": "0.
|
43
|
-
"@projectcaluma/ember-testing": "9.
|
41
|
+
"@ember/test-helpers": "2.6.0",
|
42
|
+
"@embroider/test-setup": "0.47.2",
|
43
|
+
"@projectcaluma/ember-testing": "9.1.0",
|
44
|
+
"@projectcaluma/ember-workflow": "9.0.3",
|
44
45
|
"broccoli-asset-rev": "3.0.0",
|
45
|
-
"ember-cli": "3.28.
|
46
|
+
"ember-cli": "3.28.4",
|
46
47
|
"ember-cli-code-coverage": "1.0.3",
|
47
48
|
"ember-cli-dependency-checker": "3.2.0",
|
48
49
|
"ember-cli-inject-live-reload": "2.1.0",
|
@@ -53,21 +54,21 @@
|
|
53
54
|
"ember-export-application-global": "2.0.1",
|
54
55
|
"ember-load-initializers": "2.1.2",
|
55
56
|
"ember-maybe-import-regenerator": "1.0.0",
|
56
|
-
"ember-qunit": "5.1.
|
57
|
+
"ember-qunit": "5.1.5",
|
57
58
|
"ember-resolver": "8.0.3",
|
58
|
-
"ember-source": "3.28.
|
59
|
+
"ember-source": "3.28.6",
|
59
60
|
"ember-source-channel-url": "3.0.0",
|
60
|
-
"ember-try": "
|
61
|
+
"ember-try": "2.0.0",
|
61
62
|
"faker": "5.5.3",
|
62
63
|
"loader.js": "4.7.0",
|
63
64
|
"npm-run-all": "4.1.5",
|
64
65
|
"qunit": "2.17.2",
|
65
66
|
"qunit-dom": "2.0.0",
|
66
67
|
"uuid": "8.3.2",
|
67
|
-
"webpack": "5.
|
68
|
+
"webpack": "5.64.1"
|
68
69
|
},
|
69
70
|
"engines": {
|
70
|
-
"node": "
|
71
|
+
"node": "12.* || 14.* || >= 16"
|
71
72
|
},
|
72
73
|
"ember": {
|
73
74
|
"edition": "octane"
|
package/translations/de.yaml
CHANGED
@@ -1,24 +1,12 @@
|
|
1
1
|
caluma:
|
2
|
-
caluma-query:
|
3
|
-
work-item:
|
4
|
-
status:
|
5
|
-
READY: "Offen"
|
6
|
-
COMPLETED: "Erledigt"
|
7
|
-
CANCELED: "Abgebrochen"
|
8
|
-
SKIPPED: "Übersprungen"
|
9
|
-
|
10
|
-
case:
|
11
|
-
status:
|
12
|
-
RUNNING: "In Bearbeitung"
|
13
|
-
COMPLETED: "Abgeschlossen"
|
14
|
-
CANCELED: "Abgebrochen"
|
15
2
|
form:
|
16
3
|
optional: "Optional"
|
17
4
|
save: "Speichern"
|
18
5
|
delete: "Löschen"
|
19
6
|
edit: "Bearbeiten"
|
20
|
-
|
21
|
-
|
7
|
+
cancel: "Abbrechen"
|
8
|
+
close: "Schliessen"
|
9
|
+
selectFile: "Durchsuchen..."
|
22
10
|
deleteRow: "Möchten Sie diese Zeile wirklich löschen?"
|
23
11
|
addRow: "Zeile hinzufügen"
|
24
12
|
optionNotAvailable: "Diese Option ist nicht mehr verfügbar"
|
package/translations/en.yaml
CHANGED
@@ -1,24 +1,12 @@
|
|
1
1
|
caluma:
|
2
|
-
caluma-query:
|
3
|
-
work-item:
|
4
|
-
status:
|
5
|
-
READY: "Pending"
|
6
|
-
COMPLETED: "Completed"
|
7
|
-
CANCELED: "Canceled"
|
8
|
-
SKIPPED: "Skipped"
|
9
|
-
case:
|
10
|
-
status:
|
11
|
-
RUNNING: "Pending"
|
12
|
-
COMPLETED: "Completed"
|
13
|
-
CANCELED: "Canceled"
|
14
|
-
|
15
2
|
form:
|
16
3
|
optional: "Optional"
|
17
4
|
save: "Save"
|
18
5
|
delete: "Delete"
|
19
6
|
edit: "Edit"
|
20
|
-
|
21
|
-
|
7
|
+
cancel: "Cancel"
|
8
|
+
close: "Close"
|
9
|
+
selectFile: "Browse..."
|
22
10
|
deleteRow: "Do you really want to delete this row?"
|
23
11
|
addRow: "Add row"
|
24
12
|
optionNotAvailable: "This option is not available anymore"
|
package/translations/fr.yaml
CHANGED
@@ -1,25 +1,12 @@
|
|
1
1
|
caluma:
|
2
|
-
caluma-query:
|
3
|
-
work-item:
|
4
|
-
status:
|
5
|
-
READY: "En attente"
|
6
|
-
COMPLETED: "Terminé"
|
7
|
-
CANCELED: "Annulé"
|
8
|
-
SKIPPED: "Sauté"
|
9
|
-
|
10
|
-
case:
|
11
|
-
status:
|
12
|
-
RUNNING: "En cours"
|
13
|
-
COMPLETED: "Terminé"
|
14
|
-
CANCELED: "Annulé"
|
15
|
-
|
16
2
|
form:
|
17
3
|
optional: "optional"
|
18
4
|
save: "sauvegarder"
|
19
5
|
delete: "supprimer"
|
20
6
|
edit: "modifier"
|
21
|
-
|
22
|
-
|
7
|
+
cancel: "annuler"
|
8
|
+
close: "fermer"
|
9
|
+
selectFile: "Sélectionner..."
|
23
10
|
deleteRow: "Voulez-vous supprimer cette ligne?"
|
24
11
|
addRow: "Ajouter une ligne"
|
25
12
|
optionNotAvailable: "Cette option n'est plus disponible"
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# import * from '@projectcaluma/ember-form/gql/fragments/field-question.graphql'
|
2
|
-
|
3
|
-
fragment SimpleAnswer on Answer {
|
4
|
-
id
|
5
|
-
question {
|
6
|
-
slug
|
7
|
-
}
|
8
|
-
... on StringAnswer {
|
9
|
-
stringValue: value
|
10
|
-
}
|
11
|
-
... on IntegerAnswer {
|
12
|
-
integerValue: value
|
13
|
-
}
|
14
|
-
... on FloatAnswer {
|
15
|
-
floatValue: value
|
16
|
-
}
|
17
|
-
... on ListAnswer {
|
18
|
-
listValue: value
|
19
|
-
}
|
20
|
-
... on FileAnswer {
|
21
|
-
fileValue: value {
|
22
|
-
uploadUrl
|
23
|
-
downloadUrl
|
24
|
-
metadata
|
25
|
-
name
|
26
|
-
}
|
27
|
-
}
|
28
|
-
... on DateAnswer {
|
29
|
-
dateValue: value
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
fragment FieldAnswer on Answer {
|
34
|
-
...SimpleAnswer
|
35
|
-
... on TableAnswer {
|
36
|
-
tableValue: value {
|
37
|
-
id
|
38
|
-
form {
|
39
|
-
slug
|
40
|
-
questions {
|
41
|
-
edges {
|
42
|
-
node {
|
43
|
-
...FieldQuestion
|
44
|
-
}
|
45
|
-
}
|
46
|
-
}
|
47
|
-
}
|
48
|
-
answers {
|
49
|
-
edges {
|
50
|
-
node {
|
51
|
-
...SimpleAnswer
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
}
|