@nocobase/plugin-workflow 0.11.1-alpha.1 → 0.11.1-alpha.3

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.
Files changed (33) hide show
  1. package/lib/client/components/DynamicExpression.js +8 -5
  2. package/lib/client/nodes/index.js +15 -0
  3. package/lib/client/style.js +6 -3
  4. package/lib/locale/fr-FR.js +136 -0
  5. package/lib/locale/pt-BR.d.ts +130 -0
  6. package/lib/server/triggers/schedule.js +4 -1
  7. package/package.json +3 -3
  8. package/src/client/components/DynamicExpression.tsx +9 -5
  9. package/src/client/nodes/index.tsx +15 -0
  10. package/src/client/style.tsx +6 -3
  11. package/src/locale/fr-FR.ts +137 -0
  12. package/src/server/triggers/schedule.ts +5 -1
  13. /package/lib/{client/locale → locale}/en-US.d.ts +0 -0
  14. /package/lib/{client/locale → locale}/en-US.js +0 -0
  15. /package/lib/{client/locale → locale}/es-ES.d.ts +0 -0
  16. /package/lib/{client/locale → locale}/es-ES.js +0 -0
  17. /package/lib/{client/locale/pt-BR.d.ts → locale/fr-FR.d.ts} +0 -0
  18. /package/lib/{client/locale → locale}/ja-JP.d.ts +0 -0
  19. /package/lib/{client/locale → locale}/ja-JP.js +0 -0
  20. /package/lib/{client/locale → locale}/pt-BR.js +0 -0
  21. /package/lib/{client/locale → locale}/ru-RU.d.ts +0 -0
  22. /package/lib/{client/locale → locale}/ru-RU.js +0 -0
  23. /package/lib/{client/locale → locale}/tr-TR.d.ts +0 -0
  24. /package/lib/{client/locale → locale}/tr-TR.js +0 -0
  25. /package/lib/{client/locale → locale}/zh-CN.d.ts +0 -0
  26. /package/lib/{client/locale → locale}/zh-CN.js +0 -0
  27. /package/src/{client/locale → locale}/en-US.ts +0 -0
  28. /package/src/{client/locale → locale}/es-ES.ts +0 -0
  29. /package/src/{client/locale → locale}/ja-JP.ts +0 -0
  30. /package/src/{client/locale → locale}/pt-BR.ts +0 -0
  31. /package/src/{client/locale → locale}/ru-RU.ts +0 -0
  32. /package/src/{client/locale → locale}/tr-TR.ts +0 -0
  33. /package/src/{client/locale → locale}/zh-CN.ts +0 -0
@@ -63,9 +63,12 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
63
63
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
64
64
  const InternalExpression = (0, _react().observer)(props => {
65
65
  const onChange = props.onChange;
66
- const _useForm = (0, _react().useForm)(),
67
- values = _useForm.values;
68
- const _useState = (0, _react2().useState)(values === null || values === void 0 ? void 0 : values.sourceCollection),
66
+ const field = (0, _react().useField)();
67
+ // TODO(refactor): better to provide another context like useFieldset()
68
+ const form = (0, _react().useForm)();
69
+ const basePath = field.path.segments.slice(0, -1);
70
+ const collectionPath = [...basePath, 'sourceCollection'].join('.');
71
+ const _useState = (0, _react2().useState)(form.getValuesIn(collectionPath)),
69
72
  _useState2 = _slicedToArray(_useState, 2),
70
73
  collection = _useState2[0],
71
74
  setCollection = _useState2[1];
@@ -74,9 +77,9 @@ const InternalExpression = (0, _react().observer)(props => {
74
77
  getCollectionFields = _useCollectionManager.getCollectionFields;
75
78
  (0, _react().useFormEffects)(() => {
76
79
  (0, _core().onFormInitialValuesChange)(form => {
77
- setCollection(form.values.sourceCollection);
80
+ setCollection(form.getValuesIn(collectionPath));
78
81
  });
79
- (0, _core().onFieldInputValueChange)('sourceCollection', f => {
82
+ (0, _core().onFieldInputValueChange)(collectionPath, f => {
80
83
  setCollection(f.value);
81
84
  onChange(null);
82
85
  });
@@ -498,10 +498,25 @@ function NodeDefaultView(props) {
498
498
  'x-component': 'fieldset',
499
499
  'x-component-props': {
500
500
  className: (0, _client().css)`
501
+ .ant-input,
501
502
  .ant-select,
502
503
  .ant-cascader-picker,
503
504
  .ant-picker,
504
505
  .ant-input-number,
506
+ .ant-input-affix-wrapper {
507
+ &:not(.full-width) {
508
+ width: auto;
509
+ min-width: 6em;
510
+ }
511
+ }
512
+ .ant-input-affix-wrapper {
513
+ &:not(.full-width) {
514
+ .ant-input {
515
+ width: auto;
516
+ min-width: 6em;
517
+ }
518
+ }
519
+ }
505
520
  `
506
521
  },
507
522
  properties: instruction.fieldset
@@ -108,7 +108,7 @@ const useStyles = (0, _client().createStyles)(({
108
108
  bottom: 0;
109
109
  left: calc(50% - 0.5px);
110
110
  width: 1px;
111
- background-color: ${token.colorBorder};
111
+ background-color: ${token.colorBgLayout};
112
112
  }
113
113
  `,
114
114
  branchClass: css`
@@ -228,7 +228,9 @@ const useStyles = (0, _client().createStyles)(({
228
228
  font-weight: bold;
229
229
 
230
230
  &:not(:focus) {
231
- transition: background-color 0.3s ease, border-color 0.3s ease;
231
+ transition:
232
+ background-color 0.3s ease,
233
+ border-color 0.3s ease;
232
234
  border-color: ${token.colorBorderBg};
233
235
  background-color: ${token.colorBgContainerDisabled};
234
236
 
@@ -261,7 +263,7 @@ const useStyles = (0, _client().createStyles)(({
261
263
  right: 1em;
262
264
  justify-content: center;
263
265
  align-items: center;
264
- color: ${token.colorText};
266
+ color: ${token.colorTextLightSolid};
265
267
 
266
268
  &[type='button'] {
267
269
  border: none;
@@ -328,6 +330,7 @@ const useStyles = (0, _client().createStyles)(({
328
330
  top: calc(1.5em - 1px);
329
331
  line-height: 1em;
330
332
  color: ${token.colorTextSecondary};
333
+ background-color: ${token.colorBgLayout};
331
334
  padding: 1px;
332
335
  }
333
336
  `,
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ Workflow: 'Workflow',
9
+ 'Execution history': "Historique d'exécution",
10
+ Executed: 'Exécuté',
11
+ 'Trigger type': 'Type de déclencheur',
12
+ Status: 'Statut',
13
+ On: 'Activé',
14
+ Off: 'Désactivé',
15
+ Version: 'Version',
16
+ 'Copy to new version': 'Copier vers une nouvelle version',
17
+ Duplicate: 'Dupliquer',
18
+ Loading: 'Chargement',
19
+ 'Load failed': 'Échec du chargement',
20
+ Trigger: 'Déclencheur',
21
+ 'Trigger variables': 'Variables de déclenchement',
22
+ 'Trigger data': 'Données de déclenchement',
23
+ 'Trigger time': 'Temps de déclenchement',
24
+ 'Triggered at': 'Déclenché à',
25
+ 'Collection event': 'Événement de collection',
26
+ 'Trigger on': 'Déclencher sur',
27
+ 'After record added': "Après l'ajout d'un enregistrement",
28
+ 'After record updated': "Après la mise à jour d'un enregistrement",
29
+ 'After record added or updated': "Après l'ajout ou la mise à jour d'un enregistrement",
30
+ 'After record deleted': "Après la suppression d'un enregistrement",
31
+ 'Changed fields': 'Champs modifiés',
32
+ 'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.': "Déclenché uniquement si l'un des champs sélectionnés change. S'il n'est pas sélectionné, cela signifie qu'il sera déclenché lorsque n'importe quel champ change. Lorsque l'enregistrement est ajouté ou supprimé, n'importe quel champ est considéré comme ayant été modifié.",
33
+ 'Only triggers when match conditions': 'Déclenche uniquement lorsque les conditions correspondent',
34
+ 'Schedule event': 'Événement planifié',
35
+ 'Trigger mode': 'Mode de déclenchement',
36
+ 'Based on certain date': 'Basé sur une date spécifique',
37
+ 'Based on date field of collection': 'Basé sur le champ de date de la collection',
38
+ 'Starts on': 'Commence le',
39
+ 'Ends on': 'Se termine le',
40
+ 'No end': 'Pas de fin',
41
+ 'Exactly at': 'Exactement à',
42
+ 'Repeat mode': 'Mode de répétition',
43
+ 'Repeat limit': 'Limite de répétition',
44
+ 'No limit': 'Pas de limite',
45
+ Seconds: 'Secondes',
46
+ Minutes: 'Minutes',
47
+ Hours: 'Heures',
48
+ Days: 'Jours',
49
+ Weeks: 'Semaines',
50
+ Months: 'Mois',
51
+ 'No repeat': 'Pas de répétition',
52
+ Every: 'Chaque',
53
+ 'By minute': 'Par minute',
54
+ 'By hour': 'Par heure',
55
+ 'By day': 'Par jour',
56
+ 'By week': 'Par semaine',
57
+ 'By month': 'Par mois',
58
+ 'By field': 'Par champ',
59
+ 'By custom date': 'Par date personnalisée',
60
+ Advanced: 'Avancé',
61
+ End: 'Fin',
62
+ 'Node result': 'Résultat du nœud',
63
+ Constant: 'Constante',
64
+ Null: 'Null',
65
+ Boolean: 'Booléen',
66
+ String: 'Chaîne de caractères',
67
+ Calculator: 'Calculatrice',
68
+ 'Arithmetic calculation': 'Calcul arithmétique',
69
+ 'String operation': 'Opération sur les chaînes de caractères',
70
+ 'Executed at': 'Exécuté à',
71
+ Queueing: 'En attente',
72
+ 'On going': 'En cours',
73
+ Succeeded: 'Réussi',
74
+ Failed: 'Échoué',
75
+ Pending: 'En attente',
76
+ Canceled: 'Annulé',
77
+ 'This node contains branches, deleting will also be preformed to them, are you sure?': 'Ce nœud contient des branches, leur suppression sera également effectuée, êtes-vous sûr(e) ?',
78
+ Control: 'Contrôle',
79
+ 'Collection operations': 'Opérations sur la collection',
80
+ 'Extended types': 'Types étendus',
81
+ 'Node type': 'Type de nœud',
82
+ Calculation: 'Calcul',
83
+ 'Configure calculation': 'Configurer le calcul',
84
+ 'Calculation result': 'Résultat du calcul',
85
+ True: 'Vrai',
86
+ False: 'Faux',
87
+ concat: 'concat',
88
+ Condition: 'Condition',
89
+ Mode: 'Mode',
90
+ 'Continue when "Yes"': 'Continuer quand "Oui"',
91
+ 'Branch into "Yes" and "No"': 'Brancher sur "Oui" et "Non"',
92
+ Conditions: 'Conditions',
93
+ 'Parallel branch': 'Branche parallèle',
94
+ 'Add branch': 'Ajouter une branche',
95
+ 'All succeeded': 'Tous réussis',
96
+ 'Any succeeded': 'Un réussi',
97
+ 'Any succeeded or failed': 'Un réussi ou un échoué',
98
+ 'Continue after all branches succeeded': 'Continuer après la réussite de toutes les branches',
99
+ 'Continue after any branch succeeded': "Continuer après la réussite d'une branche",
100
+ 'Continue after any branch succeeded, or exit after any branch failed': "Continuer après la réussite d'une branche, ou quitter après l'échec d'une branche",
101
+ Delay: 'Délai',
102
+ Duration: 'Durée',
103
+ 'End Status': 'Statut de fin',
104
+ 'Select status': 'Sélectionner un statut',
105
+ 'Succeed and continue': 'Réussir et continuer',
106
+ 'Fail and exit': 'Échouer et quitter',
107
+ 'Create record': 'Créer un enregistrement',
108
+ 'Update record': 'Mettre à jour un enregistrement',
109
+ 'Query record': 'Interroger un enregistrement',
110
+ 'Multiple records': 'Multiples enregistrements',
111
+ 'Please select collection first': "Veuillez d'abord sélectionner une collection",
112
+ 'Only update records matching conditions': 'Mettre à jour uniquement les enregistrements correspondant aux conditions',
113
+ 'Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.': "Les champs qui ne reçoivent pas de valeur seront définis sur la valeur par défaut, et ceux qui n'ont pas de valeur par défaut seront définis sur null.",
114
+ 'Trigger in executed workflow cannot be modified': 'Le déclencheur dans le workflow exécuté ne peut pas être modifié',
115
+ 'Node in executed workflow cannot be modified': 'Le nœud dans le workflow exécuté ne peut pas être modifié',
116
+ 'Can not delete': 'Impossible de supprimer',
117
+ 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': "Le résultat de ce nœud a été référencé par d'autres nœuds ({{nodes}}), veuillez supprimer son utilisation avant de le supprimer.",
118
+ 'HTTP request': 'Requête HTTP',
119
+ 'HTTP method': 'Méthode HTTP',
120
+ URL: 'URL',
121
+ Headers: 'En-têtes',
122
+ 'Add request header': 'Ajouter un en-tête de requête',
123
+ Parameters: 'Paramètres',
124
+ 'Add parameter': 'Ajouter un paramètre',
125
+ Body: 'Corps',
126
+ 'Use variable': 'Utiliser une variable',
127
+ Format: 'Format',
128
+ Insert: 'Insérer',
129
+ 'Timeout config': "Configuration du délai d'expiration",
130
+ ms: 'ms',
131
+ 'Input request data': 'Entrée des données de requête',
132
+ 'Only support standard JSON data': 'Prend uniquement en charge les données JSON standard',
133
+ '"Content-Type" only support "application/json", and no need to specify': '"Content-Type" prend uniquement en charge "application/json" et n\'a pas besoin d\'être spécifié',
134
+ 'Ignore fail request and continue workflow': "Ignorer l'échec de la requête et continuer le workflow"
135
+ };
136
+ exports.default = _default;
@@ -0,0 +1,130 @@
1
+ declare const _default: {
2
+ Workflow: string;
3
+ 'Execution history': string;
4
+ Executed: string;
5
+ 'Trigger type': string;
6
+ Status: string;
7
+ On: string;
8
+ Off: string;
9
+ Version: string;
10
+ 'Copy to new version': string;
11
+ Duplicate: string;
12
+ Loading: string;
13
+ 'Load failed': string;
14
+ Trigger: string;
15
+ 'Trigger variables': string;
16
+ 'Trigger data': string;
17
+ 'Trigger time': string;
18
+ 'Triggered at': string;
19
+ 'Collection event': string;
20
+ 'Trigger on': string;
21
+ 'After record added': string;
22
+ 'After record updated': string;
23
+ 'After record added or updated': string;
24
+ 'After record deleted': string;
25
+ 'Changed fields': string;
26
+ 'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.': string;
27
+ 'Only triggers when match conditions': string;
28
+ 'Schedule event': string;
29
+ 'Trigger mode': string;
30
+ 'Based on certain date': string;
31
+ 'Based on date field of collection': string;
32
+ 'Starts on': string;
33
+ 'Ends on': string;
34
+ 'No end': string;
35
+ 'Exactly at': string;
36
+ 'Repeat mode': string;
37
+ 'Repeat limit': string;
38
+ 'No limit': string;
39
+ Seconds: string;
40
+ Minutes: string;
41
+ Hours: string;
42
+ Days: string;
43
+ Weeks: string;
44
+ Months: string;
45
+ 'No repeat': string;
46
+ Every: string;
47
+ 'By minute': string;
48
+ 'By hour': string;
49
+ 'By day': string;
50
+ 'By week': string;
51
+ 'By month': string;
52
+ 'By field': string;
53
+ 'By custom date': string;
54
+ Advanced: string;
55
+ End: string;
56
+ 'Node result': string;
57
+ Constant: string;
58
+ Null: string;
59
+ Boolean: string;
60
+ String: string;
61
+ Calculator: string;
62
+ 'Arithmetic calculation': string;
63
+ 'String operation': string;
64
+ 'Executed at': string;
65
+ Queueing: string;
66
+ 'On going': string;
67
+ Succeeded: string;
68
+ Failed: string;
69
+ Pending: string;
70
+ Canceled: string;
71
+ 'This node contains branches, deleting will also be preformed to them, are you sure?': string;
72
+ Control: string;
73
+ 'Collection operations': string;
74
+ 'Extended types': string;
75
+ 'Node type': string;
76
+ Calculation: string;
77
+ 'Configure calculation': string;
78
+ 'Calculation result': string;
79
+ True: string;
80
+ False: string;
81
+ concat: string;
82
+ Condition: string;
83
+ Mode: string;
84
+ 'Continue when "Yes"': string;
85
+ 'Branch into "Yes" and "No"': string;
86
+ Conditions: string;
87
+ 'Parallel branch': string;
88
+ 'Add branch': string;
89
+ 'All succeeded': string;
90
+ 'Any succeeded': string;
91
+ 'Any succeeded or failed': string;
92
+ 'Continue after all branches succeeded': string;
93
+ 'Continue after any branch succeeded': string;
94
+ 'Continue after any branch succeeded, or exit after any branch failed': string;
95
+ Delay: string;
96
+ Duration: string;
97
+ 'End Status': string;
98
+ 'Select status': string;
99
+ 'Succeed and continue': string;
100
+ 'Fail and exit': string;
101
+ 'Create record': string;
102
+ 'Update record': string;
103
+ 'Query record': string;
104
+ 'Multiple records': string;
105
+ 'Please select collection first': string;
106
+ 'Only update records matching conditions': string;
107
+ 'Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.': string;
108
+ 'Trigger in executed workflow cannot be modified': string;
109
+ 'Node in executed workflow cannot be modified': string;
110
+ 'Can not delete': string;
111
+ 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': string;
112
+ 'HTTP request': string;
113
+ 'HTTP method': string;
114
+ URL: string;
115
+ Headers: string;
116
+ 'Add request header': string;
117
+ Parameters: string;
118
+ 'Add parameter': string;
119
+ Body: string;
120
+ 'Use variable': string;
121
+ Format: string;
122
+ Insert: string;
123
+ 'Timeout config': string;
124
+ ms: string;
125
+ 'Input request data': string;
126
+ 'Only support standard JSON data': string;
127
+ '"Content-Type" only support "application/json", and no need to specify': string;
128
+ 'Ignore fail request and continue workflow': string;
129
+ };
130
+ export default _default;
@@ -408,6 +408,9 @@ class ScheduleTrigger extends _.Trigger {
408
408
  });
409
409
  }
410
410
  init() {
411
+ if (this.plugin.app.name !== 'main') {
412
+ return;
413
+ }
411
414
  if (this.timer) {
412
415
  return;
413
416
  }
@@ -416,7 +419,7 @@ class ScheduleTrigger extends _.Trigger {
416
419
  this.timer = setTimeout(this.run,
417
420
  // NOTE:
418
421
  // try to align to system time on each second starts,
419
- // after at least 1 second initialized for anything to get ready.
422
+ // after at least 1 second initialized for everything to get ready.
420
423
  // so jobs in 2 seconds will be missed at first start.
421
424
  1000 - now.getMilliseconds());
422
425
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "工作流",
5
5
  "description": "A powerful workflow plugin designed to support business process management and automation.",
6
6
  "description.zh-CN": "工作流插件,为业务流程管理和自动化提供支持。",
7
- "version": "0.11.1-alpha.1",
7
+ "version": "0.11.1-alpha.3",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./lib/server/index.js",
10
10
  "files": [
@@ -48,8 +48,8 @@
48
48
  "winston": "^3.8.2"
49
49
  },
50
50
  "devDependencies": {
51
- "@nocobase/test": "0.11.1-alpha.1",
51
+ "@nocobase/test": "0.11.1-alpha.3",
52
52
  "@types/ejs": "^3.1.1"
53
53
  },
54
- "gitHead": "9ed1dba520bc5f3a7cb1255ea8d92ccbefc11bc8"
54
+ "gitHead": "5ed3bd7d5b16bd38d268961b34875d5cd45799ef"
55
55
  }
@@ -1,5 +1,5 @@
1
1
  import { onFieldInputValueChange, onFormInitialValuesChange } from '@formily/core';
2
- import { connect, mapReadPretty, observer, useForm, useFormEffects } from '@formily/react';
2
+ import { connect, mapReadPretty, observer, useField, useForm, useFormEffects } from '@formily/react';
3
3
  import { Tag } from 'antd';
4
4
  import React, { useMemo, useState } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
@@ -12,16 +12,20 @@ import { getCollectionFieldOptions } from '../variable';
12
12
  const InternalExpression = observer(
13
13
  (props: any) => {
14
14
  const { onChange } = props;
15
- const { values } = useForm();
16
- const [collection, setCollection] = useState(values?.sourceCollection);
15
+ const field = useField<any>();
16
+ // TODO(refactor): better to provide another context like useFieldset()
17
+ const form = useForm();
18
+ const basePath = field.path.segments.slice(0, -1);
19
+ const collectionPath = [...basePath, 'sourceCollection'].join('.');
20
+ const [collection, setCollection] = useState(form.getValuesIn(collectionPath));
17
21
  const compile = useCompile();
18
22
  const { getCollectionFields } = useCollectionManager();
19
23
 
20
24
  useFormEffects(() => {
21
25
  onFormInitialValuesChange((form) => {
22
- setCollection(form.values.sourceCollection);
26
+ setCollection(form.getValuesIn(collectionPath));
23
27
  });
24
- onFieldInputValueChange('sourceCollection', (f) => {
28
+ onFieldInputValueChange(collectionPath, (f) => {
25
29
  setCollection(f.value);
26
30
  onChange(null);
27
31
  });
@@ -441,10 +441,25 @@ export function NodeDefaultView(props) {
441
441
  'x-component': 'fieldset',
442
442
  'x-component-props': {
443
443
  className: css`
444
+ .ant-input,
444
445
  .ant-select,
445
446
  .ant-cascader-picker,
446
447
  .ant-picker,
447
448
  .ant-input-number,
449
+ .ant-input-affix-wrapper {
450
+ &:not(.full-width) {
451
+ width: auto;
452
+ min-width: 6em;
453
+ }
454
+ }
455
+ .ant-input-affix-wrapper {
456
+ &:not(.full-width) {
457
+ .ant-input {
458
+ width: auto;
459
+ min-width: 6em;
460
+ }
461
+ }
462
+ }
448
463
  `,
449
464
  },
450
465
  properties: instruction.fieldset,
@@ -96,7 +96,7 @@ const useStyles = createStyles(({ css, token }) => {
96
96
  bottom: 0;
97
97
  left: calc(50% - 0.5px);
98
98
  width: 1px;
99
- background-color: ${token.colorBorder};
99
+ background-color: ${token.colorBgLayout};
100
100
  }
101
101
  `,
102
102
 
@@ -220,7 +220,9 @@ const useStyles = createStyles(({ css, token }) => {
220
220
  font-weight: bold;
221
221
 
222
222
  &:not(:focus) {
223
- transition: background-color 0.3s ease, border-color 0.3s ease;
223
+ transition:
224
+ background-color 0.3s ease,
225
+ border-color 0.3s ease;
224
226
  border-color: ${token.colorBorderBg};
225
227
  background-color: ${token.colorBgContainerDisabled};
226
228
 
@@ -254,7 +256,7 @@ const useStyles = createStyles(({ css, token }) => {
254
256
  right: 1em;
255
257
  justify-content: center;
256
258
  align-items: center;
257
- color: ${token.colorText};
259
+ color: ${token.colorTextLightSolid};
258
260
 
259
261
  &[type='button'] {
260
262
  border: none;
@@ -327,6 +329,7 @@ const useStyles = createStyles(({ css, token }) => {
327
329
  top: calc(1.5em - 1px);
328
330
  line-height: 1em;
329
331
  color: ${token.colorTextSecondary};
332
+ background-color: ${token.colorBgLayout};
330
333
  padding: 1px;
331
334
  }
332
335
  `,
@@ -0,0 +1,137 @@
1
+ export default {
2
+ Workflow: 'Workflow',
3
+ 'Execution history': "Historique d'exécution",
4
+ Executed: 'Exécuté',
5
+ 'Trigger type': 'Type de déclencheur',
6
+ Status: 'Statut',
7
+ On: 'Activé',
8
+ Off: 'Désactivé',
9
+ Version: 'Version',
10
+ 'Copy to new version': 'Copier vers une nouvelle version',
11
+ Duplicate: 'Dupliquer',
12
+ Loading: 'Chargement',
13
+ 'Load failed': 'Échec du chargement',
14
+ Trigger: 'Déclencheur',
15
+ 'Trigger variables': 'Variables de déclenchement',
16
+ 'Trigger data': 'Données de déclenchement',
17
+ 'Trigger time': 'Temps de déclenchement',
18
+ 'Triggered at': 'Déclenché à',
19
+ 'Collection event': 'Événement de collection',
20
+ 'Trigger on': 'Déclencher sur',
21
+ 'After record added': "Après l'ajout d'un enregistrement",
22
+ 'After record updated': "Après la mise à jour d'un enregistrement",
23
+ 'After record added or updated': "Après l'ajout ou la mise à jour d'un enregistrement",
24
+ 'After record deleted': "Après la suppression d'un enregistrement",
25
+ 'Changed fields': 'Champs modifiés',
26
+ 'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.':
27
+ "Déclenché uniquement si l'un des champs sélectionnés change. S'il n'est pas sélectionné, cela signifie qu'il sera déclenché lorsque n'importe quel champ change. Lorsque l'enregistrement est ajouté ou supprimé, n'importe quel champ est considéré comme ayant été modifié.",
28
+ 'Only triggers when match conditions': 'Déclenche uniquement lorsque les conditions correspondent',
29
+ 'Schedule event': 'Événement planifié',
30
+ 'Trigger mode': 'Mode de déclenchement',
31
+ 'Based on certain date': 'Basé sur une date spécifique',
32
+ 'Based on date field of collection': 'Basé sur le champ de date de la collection',
33
+ 'Starts on': 'Commence le',
34
+ 'Ends on': 'Se termine le',
35
+ 'No end': 'Pas de fin',
36
+ 'Exactly at': 'Exactement à',
37
+ 'Repeat mode': 'Mode de répétition',
38
+ 'Repeat limit': 'Limite de répétition',
39
+ 'No limit': 'Pas de limite',
40
+ Seconds: 'Secondes',
41
+ Minutes: 'Minutes',
42
+ Hours: 'Heures',
43
+ Days: 'Jours',
44
+ Weeks: 'Semaines',
45
+ Months: 'Mois',
46
+ 'No repeat': 'Pas de répétition',
47
+ Every: 'Chaque',
48
+ 'By minute': 'Par minute',
49
+ 'By hour': 'Par heure',
50
+ 'By day': 'Par jour',
51
+ 'By week': 'Par semaine',
52
+ 'By month': 'Par mois',
53
+ 'By field': 'Par champ',
54
+ 'By custom date': 'Par date personnalisée',
55
+ Advanced: 'Avancé',
56
+ End: 'Fin',
57
+ 'Node result': 'Résultat du nœud',
58
+ Constant: 'Constante',
59
+ Null: 'Null',
60
+ Boolean: 'Booléen',
61
+ String: 'Chaîne de caractères',
62
+ Calculator: 'Calculatrice',
63
+ 'Arithmetic calculation': 'Calcul arithmétique',
64
+ 'String operation': 'Opération sur les chaînes de caractères',
65
+ 'Executed at': 'Exécuté à',
66
+ Queueing: 'En attente',
67
+ 'On going': 'En cours',
68
+ Succeeded: 'Réussi',
69
+ Failed: 'Échoué',
70
+ Pending: 'En attente',
71
+ Canceled: 'Annulé',
72
+ 'This node contains branches, deleting will also be preformed to them, are you sure?':
73
+ 'Ce nœud contient des branches, leur suppression sera également effectuée, êtes-vous sûr(e) ?',
74
+ Control: 'Contrôle',
75
+ 'Collection operations': 'Opérations sur la collection',
76
+ 'Extended types': 'Types étendus',
77
+ 'Node type': 'Type de nœud',
78
+ Calculation: 'Calcul',
79
+ 'Configure calculation': 'Configurer le calcul',
80
+ 'Calculation result': 'Résultat du calcul',
81
+ True: 'Vrai',
82
+ False: 'Faux',
83
+ concat: 'concat',
84
+ Condition: 'Condition',
85
+ Mode: 'Mode',
86
+ 'Continue when "Yes"': 'Continuer quand "Oui"',
87
+ 'Branch into "Yes" and "No"': 'Brancher sur "Oui" et "Non"',
88
+ Conditions: 'Conditions',
89
+ 'Parallel branch': 'Branche parallèle',
90
+ 'Add branch': 'Ajouter une branche',
91
+ 'All succeeded': 'Tous réussis',
92
+ 'Any succeeded': 'Un réussi',
93
+ 'Any succeeded or failed': 'Un réussi ou un échoué',
94
+ 'Continue after all branches succeeded': 'Continuer après la réussite de toutes les branches',
95
+ 'Continue after any branch succeeded': "Continuer après la réussite d'une branche",
96
+ 'Continue after any branch succeeded, or exit after any branch failed':
97
+ "Continuer après la réussite d'une branche, ou quitter après l'échec d'une branche",
98
+ Delay: 'Délai',
99
+ Duration: 'Durée',
100
+ 'End Status': 'Statut de fin',
101
+ 'Select status': 'Sélectionner un statut',
102
+ 'Succeed and continue': 'Réussir et continuer',
103
+ 'Fail and exit': 'Échouer et quitter',
104
+ 'Create record': 'Créer un enregistrement',
105
+ 'Update record': 'Mettre à jour un enregistrement',
106
+ 'Query record': 'Interroger un enregistrement',
107
+ 'Multiple records': 'Multiples enregistrements',
108
+ 'Please select collection first': "Veuillez d'abord sélectionner une collection",
109
+ 'Only update records matching conditions':
110
+ 'Mettre à jour uniquement les enregistrements correspondant aux conditions',
111
+ 'Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.':
112
+ "Les champs qui ne reçoivent pas de valeur seront définis sur la valeur par défaut, et ceux qui n'ont pas de valeur par défaut seront définis sur null.",
113
+ 'Trigger in executed workflow cannot be modified': 'Le déclencheur dans le workflow exécuté ne peut pas être modifié',
114
+ 'Node in executed workflow cannot be modified': 'Le nœud dans le workflow exécuté ne peut pas être modifié',
115
+ 'Can not delete': 'Impossible de supprimer',
116
+ 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.':
117
+ "Le résultat de ce nœud a été référencé par d'autres nœuds ({{nodes}}), veuillez supprimer son utilisation avant de le supprimer.",
118
+
119
+ 'HTTP request': 'Requête HTTP',
120
+ 'HTTP method': 'Méthode HTTP',
121
+ URL: 'URL',
122
+ Headers: 'En-têtes',
123
+ 'Add request header': 'Ajouter un en-tête de requête',
124
+ Parameters: 'Paramètres',
125
+ 'Add parameter': 'Ajouter un paramètre',
126
+ Body: 'Corps',
127
+ 'Use variable': 'Utiliser une variable',
128
+ Format: 'Format',
129
+ Insert: 'Insérer',
130
+ 'Timeout config': "Configuration du délai d'expiration",
131
+ ms: 'ms',
132
+ 'Input request data': 'Entrée des données de requête',
133
+ 'Only support standard JSON data': 'Prend uniquement en charge les données JSON standard',
134
+ '"Content-Type" only support "application/json", and no need to specify':
135
+ '"Content-Type" prend uniquement en charge "application/json" et n\'a pas besoin d\'être spécifié',
136
+ 'Ignore fail request and continue workflow': "Ignorer l'échec de la requête et continuer le workflow",
137
+ };
@@ -424,6 +424,10 @@ export default class ScheduleTrigger extends Trigger {
424
424
  }
425
425
 
426
426
  init() {
427
+ if (this.plugin.app.name !== 'main') {
428
+ return;
429
+ }
430
+
427
431
  if (this.timer) {
428
432
  return;
429
433
  }
@@ -435,7 +439,7 @@ export default class ScheduleTrigger extends Trigger {
435
439
  this.run,
436
440
  // NOTE:
437
441
  // try to align to system time on each second starts,
438
- // after at least 1 second initialized for anything to get ready.
442
+ // after at least 1 second initialized for everything to get ready.
439
443
  // so jobs in 2 seconds will be missed at first start.
440
444
  1_000 - now.getMilliseconds(),
441
445
  );
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes