├── src
├── App.css
├── index.js
├── index.css
├── App.js
└── localization
│ ├── el.js
│ └── el.json
├── screens
└── good-result.png
├── public
└── index.html
├── .gitignore
├── package.json
└── README.md
/src/App.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/screens/good-result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/optimajet/workflow-designer-react-sample/HEAD/screens/good-result.png
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Workflow Designer React App
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {createRoot} from 'react-dom/client';
3 | import './index.css';
4 | import App from './App';
5 |
6 | const root = createRoot(document.getElementById('root'));
7 | root.render(
8 |
9 |
10 |
11 | )
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 | import WorkflowDesigner from '@optimajet/workflow-designer-react';
4 | import el from './localization/el.json';
5 | import elElementUILocalization from './localization/el.js';
6 |
7 | el.elementUILocalization = elElementUILocalization;
8 |
9 | // ---------- Parameters for Workflow Designer ---------------
10 | const props = {
11 | designerConfig: {
12 | apiurl: 'https://demo.workflowengine.io/Designer/API',
13 | name: 'wfe',
14 | language: 'en',
15 | customLocalization: [el]
16 | },
17 | schemeCode: 'SimpleWF',
18 | loadError: error => console.error(error),
19 | onLoadDesigner: () => {
20 | },
21 | readOnly: false,
22 | }
23 |
24 | const App = () =>
25 |
26 | export default App;
27 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "workflow-designer-react-sample",
3 | "version": "20.0.3",
4 | "description": "Designer for Workflow Engine React Sample",
5 | "keywords": [
6 | "designer",
7 | "workflow",
8 | "optimajet",
9 | "react"
10 | ],
11 | "author": "OptimaJet",
12 | "license": "SEE LICENSE IN https://workflowengine.io/pricing/",
13 | "bugs": {
14 | "email": "support@optimajet.com"
15 | },
16 | "private": true,
17 | "dependencies": {
18 | "@optimajet/workflow-designer-react": "^20.0.3",
19 | "react": "^18.2.0",
20 | "react-dom": "^18.2.0",
21 | "react-scripts": "5.0.1"
22 | },
23 | "scripts": {
24 | "start": "react-scripts start",
25 | "build": "react-scripts build"
26 | },
27 | "eslintConfig": {
28 | "extends": [
29 | "react-app"
30 | ]
31 | },
32 | "browserslist": {
33 | "production": [
34 | ">0.2%",
35 | "not dead",
36 | "not op_mini all"
37 | ],
38 | "development": [
39 | "last 1 chrome version",
40 | "last 1 firefox version",
41 | "last 1 safari version"
42 | ]
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/localization/el.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | exports.__esModule = true;
4 | exports.default = {
5 | el: {
6 | colorpicker: {
7 | confirm: 'Εντάξει',
8 | clear: 'Καθαρισμός'
9 | },
10 | datepicker: {
11 | now: 'Τώρα',
12 | today: 'Σήμερα',
13 | cancel: 'Ακύρωση',
14 | clear: 'Καθαρισμός',
15 | confirm: 'Εντάξει',
16 | selectDate: 'Επιλέξτε ημέρα',
17 | selectTime: 'Επιλέξτε ώρα',
18 | startDate: 'Ημερομηνία Έναρξης',
19 | startTime: 'Ωρα Έναρξης',
20 | endDate: 'Ημερομηνία Λήξης',
21 | endTime: 'Ωρα Λήξης',
22 | prevYear: 'Προηγούμενο Έτος',
23 | nextYear: 'Επόμενο Έτος',
24 | prevMonth: 'Προηγούμενος Μήνας',
25 | nextMonth: 'Επόμενος Μήνας',
26 | year: 'Έτος',
27 | month1: 'Ιανουάριος',
28 | month2: 'Φεβρουάριος',
29 | month3: 'Μάρτιος',
30 | month4: 'Απρίλιος',
31 | month5: 'Μάιος',
32 | month6: 'Ιούνιος',
33 | month7: 'Ιούλιος',
34 | month8: 'Αύγουστος',
35 | month9: 'Σεπτέμβριος',
36 | month10: 'Οκτώβριος',
37 | month11: 'Νοέμβριος',
38 | month12: 'Δεκέμβριος',
39 | // week: 'εβδομάδα',
40 | weeks: {
41 | sun: 'Κυρ',
42 | mon: 'Δευ',
43 | tue: 'Τρι',
44 | wed: 'Τετ',
45 | thu: 'Πεμ',
46 | fri: 'Παρ',
47 | sat: 'Σαβ'
48 | },
49 | months: {
50 | jan: 'Ιαν',
51 | feb: 'Φεβ',
52 | mar: 'Μαρ',
53 | apr: 'Απρ',
54 | may: 'Μαϊ',
55 | jun: 'Ιουν',
56 | jul: 'Ιουλ',
57 | aug: 'Αυγ',
58 | sep: 'Σεπ',
59 | oct: 'Οκτ',
60 | nov: 'Νοε',
61 | dec: 'Δεκ'
62 | }
63 | },
64 | select: {
65 | loading: 'Φόρτωση',
66 | noMatch: 'Δεν βρέθηκαν αποτελέσματα',
67 | noData: 'Χωρίς δεδομένα',
68 | placeholder: 'Επιλογή'
69 | },
70 | cascader: {
71 | noMatch: 'Δεν βρέθηκαν αποτελέσματα',
72 | loading: 'Φόρτωση',
73 | placeholder: 'Επιλογή',
74 | noData: 'Χωρίς δεδομένα'
75 | },
76 | pagination: {
77 | goto: 'Μετάβαση σε',
78 | pagesize: '/σελίδα',
79 | total: 'Σύνολο {total}',
80 | pageClassifier: ''
81 | },
82 | messagebox: {
83 | title: 'Μήνυμα',
84 | confirm: 'Εντάξει',
85 | cancel: 'Ακύρωση',
86 | error: 'Άκυρη εισαγωγή'
87 | },
88 | upload: {
89 | deleteTip: 'Πάτησε Διαγραφή για αφαίρεση',
90 | delete: 'Διαγραφή',
91 | preview: 'Προεπισκόπηση',
92 | continue: 'Συνέχεια'
93 | },
94 | table: {
95 | emptyText: 'Χωρίς Δεδομένα',
96 | confirmFilter: 'Επιβεβαίωση',
97 | resetFilter: 'Επαναφορά',
98 | clearFilter: 'Όλα',
99 | sumText: 'Σύνολο'
100 | },
101 | tree: {
102 | emptyText: 'Χωρίς Δεδομένα'
103 | },
104 | transfer: {
105 | noMatch: 'Δεν βρέθηκαν αποτελέσματα',
106 | noData: 'Χωρίς δεδομένα',
107 | titles: ['Λίστα 1', 'Λίστα 2'],
108 | filterPlaceholder: 'Αναζήτηση',
109 | noCheckedFormat: '{total} Αντικείμενα',
110 | hasCheckedFormat: '{checked}/{total} επιλεγμένα'
111 | },
112 | image: {
113 | error: 'FAILED' // to be translated
114 | },
115 | pageHeader: {
116 | title: 'Back' // to be translated
117 | },
118 | popconfirm: {
119 | confirmButtonText: 'Yes', // to be translated
120 | cancelButtonText: 'No' // to be translated
121 | },
122 | empty: {
123 | description: 'Χωρίς Δεδομένα'
124 | }
125 | }
126 | };
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WorkflowEngine Designer for React Sample
2 |
3 | ## Introduction
4 |
5 | WorkflowEngine Designer for React is a library developed to facilitate the use of this component. It provides a convenient way to interact and create the Workflow Designer on your web page using React. This section explains you how to add the Workflow Designer to your web application in a convenient format - Get Started - that thoroughly interprets the procedure, step by step.
6 |
7 | ## Prerequisites
8 |
9 | To run the example below, you should create the WorkflowEngine backend capable of handling requests from the Workflow Designer, the NodeJS runtime, and the NPM package manager to download the required packages. That is all you need for further action.
10 |
11 | ## Get Started
12 |
13 | The first step is to create a working directory where the project will be developed. For this, you can use the `create-react-app` console command and install the `@optimajet/workflow-designer-react` npm-package:
14 |
15 | ```shell
16 | npx create-react-app workflow-designer-react-sample
17 | cd workflow-designer-react-sample
18 | npm install @optimajet/workflow-designer-react
19 | ```
20 |
21 | Now, the `workflow-designer-react-sample` folder contains all the necessary files for our web application. Their file hierarchy is presented below (depending on the version used, it may differ):
22 |
23 | ```
24 | ├── node_modules
25 | │ └── ...
26 | ├── public
27 | │ ├── favicon.ico
28 | │ ├── index.html
29 | │ ├── logo192.png
30 | │ ├── logo512.png
31 | │ ├── manifest.json
32 | │ └── robots.txt
33 | ├── src
34 | │ ├── App.css
35 | │ ├── App.js
36 | │ ├── App.test.js
37 | │ ├── index.css
38 | │ ├── index.js
39 | │ ├── logo.svg
40 | │ ├── reportWebVitals.js
41 | │ └── setupTests.js
42 | ├── package.json
43 | ├── README.md
44 | └── yarn.lock
45 | ```
46 |
47 | You can start this application by writing `npm start` in the command line from the working directory.
48 |
49 | Next, we delete some unnecessary files. If you do not want, you can leave everything as it is; these files do not affect the execution of the application.
50 |
51 | In the project root, delete the `README.md` file. Then, go to the `public` folder and delete the following files:
52 |
53 | - logo192.png
54 | - logo512.png
55 | - manifest.json
56 | - robots.txt
57 |
58 | Now, go to the `src` folder and delete these files:
59 |
60 | - logo.svg
61 | - reportWebVitals.js
62 | - setupTests.js
63 |
64 | Having deleted these files, you must remove each reference to them from other files. For this, go to the contents of the `src/App.css` file and completely delete the contents. Next, delete the following snippets in the `src/App.js` file
65 |
66 | ```javascript
67 | 1. import logo from './logo.svg';
68 | 2.
82 | ```
83 |
84 | Next, delete the following lines in the `src/index.js` file:
85 |
86 | ```javascript
87 | 1. import reportWebVitals from './reportWebVitals';
88 | 2. reportWebVitals();
89 | ```
90 |
91 | After completing these steps, a blank page will be displayed at startup (`npm start`).
92 |
93 | Now, let's go directly to connecting and displaying the Workflow Designer in this web application. For this, open the `src/App.js` file and paste the following code:
94 |
95 | ```javascript
96 | import React from 'react'
97 | import './App.css';
98 | import WorkflowDesigner from '@optimajet/workflow-designer-react';
99 |
100 | function App() {
101 | // ---------- Parameters for Workflow Designer ---------------
102 | const schemeCode = '';
103 | const processId = undefined;
104 | const designerConfig = {
105 | renderTo: 'wfdesigner',
106 | apiurl: '',
107 | templatefolder: '/templates/',
108 | widthDiff: 0,
109 | heightDiff: 0
110 | };
111 |
112 | return (
113 |
118 | );
119 | }
120 |
121 | export default App;
122 | ```
123 |
124 | In this section:
125 |
126 | - `schemeCode` - is the code for the Workflow diagram to be displayed in the Workflow Designer.
127 | - `processId` - is the identifier of the WorkflowEngine process.
128 | - `designerConfig` - are the direct settings for the Designer indicating all the necessary parameters, namely: the HTTP address of the WorkflowAPI for interacting with the server side of the application (`apiurl`), the difference between the total page width and the width available for the WorkflowDesigner (`widthDiff`), and the difference between the total page height and the height available for the WorkflowDesigner (`heightDiff`) to display the WorkflowDesigner window. For a more detailed list of the parameters, see the **Designer** section of the documentation page about the WorkflowEngine.
129 |
130 | > **NOTE:** Be careful with the case of the characters when specifying the parameters. For example: `apiUrl` and `apiurl` are two completely different values.
131 |
132 | If you want to display the Workflow scheme in the Workflow Designer interface, set the required value to the `schemecode` variable, and assign the `undefined` value to the `processId`. In case you want to display the Workflow process, assign the `undefined` value to the `schemecode`, and the required value to the `processId` variable of the WorkflowEngine process identifier.
133 |
134 | Now, run the `npm start` command and your page will display something like that:
135 | 
136 |
137 | ## How to Call WorkflowDesigner Functions inside React Component
138 |
139 | The `workflow-designer-react` component is a wrapper over the usual WorkflowDesigner. Some of the most commonly used methods are wrapped in the `workflow-designer-react` component for convenience. To use them, do the following:
140 |
141 | 1. In the constructor of your component, create a class variable (for example, `this.workflowDesigner`) and assign the `React.createRef()` value to it; in the `render()` method of your component, in the `WorkflowDesigner` component, assign the value of the created variable to the `ref` parameter:
142 |
143 | ```javascript
144 | import WorkflowDesigner from '@optimajet/workflow-designer-react';
145 | import React from 'react';
146 |
147 | export default class YourComponent extends React.Component {
148 | constructor(props) {
149 | super(props);
150 | this.workflowDesigner = React.createRef();
151 | }
152 |
153 | render() {
154 | // ---------- Parameters for Workflow Designer ---------------
155 | const schemeCode = '';
156 | const processId = undefined;
157 | const designerConfig = {
158 | renderTo: 'wfdesigner',
159 | apiurl: '',
160 | templatefolder: '',
161 | widthDiff: 0,
162 | heightDiff: 0
163 | };
164 |
165 | return (
166 |
172 | );
173 | }
174 | }
175 | ```
176 |
177 | 2. Now you can use the methods of the `WorkflowDesigner` component directly in your component:
178 |
179 | ```javascript
180 | yourFunction() {
181 | this.workflowDesigner.current.methodName();
182 | }
183 | ```
184 |
185 | A complete list of the methods available for use from the `WorkflowDesigner` component is given below:
186 |
187 | | Method Name | Description |
188 | | ------------------------------------ | ------------------------------------------------------------ |
189 | | clearScheme() | Clears the designer, equivalent of creating empty scheme design |
190 | | getDesignerErrors() | Get Workflow Designer Errors
**Returns** Errors in Workflow Designer |
191 | | save(successCallback, errorCallback) | Save Workflow scheme
**successCallback** Function which will be executed if save was successful
**errorCallback** Function which will be executed if save operation failed |
192 | | downloadScheme() | Download XML file with Workflow Scheme description |
193 | | downloadBpmn() | Download BPMN file with BPM description of the scheme. |
194 | | upload(uploadType, callback) | Upload BPMN or XML file.
**uploadType** Upload type, can be 'scheme' or 'bpmn'
**callback** Function that will be executed after uploading file |
195 | | isSchemeExist() | Check for scheme existence by the scheme code from props.
**Returns** {boolean} If scheme exists true, otherwise, false |
196 | | isProcessExist() | Check for process existence by scheme code and process id given in props.
**Returns** {boolean} If process exists true, otherwise, false |
197 | | refresh() | Refresh data in WorkflowDesigner |
198 |
199 | In case you want some methods that are not presented in this table, use the WorkflowDesigner and call its methods directly without wrappers, for example:
200 |
201 | ```javascript
202 | this.workflowDesigner.current.innerDesigner.methodName();
203 | ```
204 |
--------------------------------------------------------------------------------
/src/localization/el.json:
--------------------------------------------------------------------------------
1 | {
2 | "LangInfo": {
3 | "code": "el",
4 | "dialect": "HE",
5 | "name": "Greek",
6 | "description": "Greek native"
7 | },
8 | "DeleteConfirm": "Είστε βέβαιοι ότι θέλετε να διαγράψετε επιλεγμένα στοιχεία;",
9 | "DeleteConfirmCurrent": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το στοιχείο;",
10 | "EscapeConfirm": "Υπάρχουν μη αποθηκευμένες αλλαγές. Θέλετε να αποθηκεύσετε το σχήμα;",
11 | "FieldIsRequired": "Το πεδίο είναι υποχρεωτικό!",
12 | "FieldIsNotCorrected": "Field is not corrected!",
13 | "FieldMustBeUnique": "Field must be unique!",
14 | "FieldMustContainAt": "Field must contain @",
15 | "ButtonTextDelete": "Delete",
16 | "ButtonTextCreate": "Create",
17 | "ButtonTextSave": "Save",
18 | "ButtonTextYes": "Yes",
19 | "ButtonTextNo": "No",
20 | "ButtonTextOk": "Ok",
21 | "ButtonTextCancel": "Cancel",
22 | "ButtonTextClose": "Close",
23 | "ButtonTextUndo": "Undo",
24 | "ButtonTextRedo": "Redo",
25 | "SaveConfirm": "Save changes?",
26 | "CloseWithoutSaving": "Close without saving?",
27 | "TransitionAuto": "Auto",
28 | "DialogConfirmText": "Question",
29 | "AlertTitle": "Warning",
30 | "ReadMore": "Read more.",
31 | "None": "None",
32 | "Warning": "Warning",
33 | "SwitchToExpertMode": "Switch To Expert Mode",
34 | "SwitchToDefaultMode": "Switch To Default Mode",
35 | "InfoBlockLabel": {
36 | "Activity": "Activities: ",
37 | "Transition": "Transitions: ",
38 | "Command": "Commands: "
39 | },
40 | "ActivityNamePrefix": "Activity",
41 | "ActivityFormLabel": {
42 | "Title": "Activity",
43 | "TitleForInline": "Activity Inline",
44 | "Name": "Name",
45 | "State": "State",
46 | "IsInitial": "Initial",
47 | "IsFinal": "Final",
48 | "IsForSetState": "For set state",
49 | "IsAutoSchemeUpdate": "Auto scheme update",
50 | "DisablePersist": "Disable persist",
51 | "DisablePersists": {
52 | "DisablePersistTransitionHistory": "Disable persist transition history",
53 | "DisablePersistState": "Disable persist process state",
54 | "DisablePersistParameters": "Disable persist process parameters"
55 | },
56 | "Implementation": "Implementation",
57 | "PreExecutionImplementation": "PreExecution Implementation",
58 | "ImpOrder": "Order",
59 | "ExecutionTimeoutLabel": "Execution timeout",
60 | "ExecutionTimeoutWarning": "Execution timeout works only with async actions. Check the cancellation token for proper timeout handling.",
61 | "TimeoutsLabel": "Timeouts",
62 | "TypeLabel": "Type",
63 | "ActivityLabel": "Activity",
64 | "StateLabel": "State",
65 | "RetryCountLabel": "Retry count",
66 | "SetActivityLabel": "SetActivity",
67 | "SetStateLabel": "SetState",
68 | "RetryLabel": "Retry",
69 | "IgnoreLabel": "Ignore",
70 | "AllExceptions": "*",
71 | "IdleTimeoutLabel": "Idle timeout",
72 | "ExceptionsHandling": "Exceptions handling",
73 | "Exceptions": "Exceptions",
74 | "ImpAction": "Action",
75 | "ImpActionParameter": "Action parameter",
76 | "Annotations": "Annotations",
77 | "AnnotationName": "Name",
78 | "AnnotationValue": "Value",
79 | "Scheme": "Inline scheme",
80 | "UserComment": "Comment"
81 | },
82 | "Decision": {
83 | "Title": "Decision",
84 | "TitleForInline": "Decision Inline",
85 | "To": "To activity",
86 | "WhenTrue": "When True",
87 | "WhenFalse": "When False",
88 | "Transition": "Transitions to activities",
89 | "Name": "Name",
90 | "State": "State",
91 | "IsInitial": "Initial",
92 | "IsFinal": "Final",
93 | "IsForSetState": "For set state",
94 | "IsAutoSchemeUpdate": "Auto scheme update",
95 | "Implementation": "Implementation",
96 | "PreExecutionImplementation": "PreExecution Implementation",
97 | "Annotations": "Annotations",
98 | "Scheme": "Inline scheme",
99 | "Condition": "Condition",
100 | "ConditionType": "Type",
101 | "ConditionAction": "Action",
102 | "ResultOnPreExecution": "PreExec. Result",
103 | "ConditionActionParameter": "Action parameter",
104 | "ConditionInversion": "Invert result",
105 | "ActionLabel": "Action",
106 | "ExpressionLabel": "Expression",
107 | "UserComment": "Comment"
108 | },
109 | "DecisionTable": {
110 | "Title": "Decision table",
111 | "TitleForInline": "Decision table Inline",
112 | "To": "To activity",
113 | "Transition": "Transitions to activities",
114 | "Parameters": "Parameters",
115 | "Name": "Name",
116 | "State": "State",
117 | "IsInitial": "Initial",
118 | "IsFinal": "Final",
119 | "IsForSetState": "For set state",
120 | "IsAutoSchemeUpdate": "Auto scheme update",
121 | "Implementation": "Implementation",
122 | "PreExecutionImplementation": "PreExecution Implementation",
123 | "Annotations": "Annotations",
124 | "Scheme": "Inline scheme",
125 | "ConditionType": "Type",
126 | "Condition": "Condition",
127 | "ConditionAction": "Action",
128 | "ResultOnPreExecution": "PreExec. Result",
129 | "ConditionActionParameter": "Action parameter",
130 | "ConditionInversion": "Invert result",
131 | "ActionLabel": "Action",
132 | "ExpressionLabel": "Expression",
133 | "UserComment": "Comment"
134 | },
135 | "TransitionFormLabel": {
136 | "Title": "Transition",
137 | "Name": "Name",
138 | "From": "From activity",
139 | "To": "To activity",
140 | "Classifier": "Classifier",
141 | "ClassifierValues": {
142 | "NotSpecified": "NotSpecified",
143 | "Direct": "Direct",
144 | "Reverse": "Reverse"
145 | },
146 | "Restrictions": "Restrictions",
147 | "RestrictionsType": "Type",
148 | "RestrictionsActor": "Actor",
149 | "Condition": "Condition",
150 | "ConditionType": "Type",
151 | "ConditionAction": "Action",
152 | "ResultOnPreExecution": "PreExec. Result",
153 | "Trigger": "Trigger",
154 | "TriggerType": "Type",
155 | "TriggerAuto": "Auto",
156 | "TriggerCommand": "Command",
157 | "TriggerTimer": "Timer",
158 | "ConditionActionParameter": "Action parameter",
159 | "ConditionExpression": "Expression",
160 | "ConditionInversion": "Invert result",
161 | "ConditionsConcatenationType": "Conditions concatenation type",
162 | "AllowConcatenationType": "Concat allow as",
163 | "RestrictConcatenationType": "Concat restrict as",
164 | "IsFork": "Is fork (Parallel process)",
165 | "MergeViaSetState": "Merge subprocess via set state",
166 | "DisableParentStateControl": "Disable parent process control",
167 | "ShowConcatParameters": "Show concatenation",
168 | "HideConcatParameters": "Hide concatenation",
169 | "Annotations": "Annotations",
170 | "AnnotationName": "Name",
171 | "AnnotationValue": "Value",
172 | "InlinedFinalActivityName": "Inlined Final Activity Name",
173 | "Allow": "Allow",
174 | "Restrict": "Restrict",
175 | "ConditionsListShouldNotBeEmpty": "Conditions list should not be empty",
176 | "AlwaysConditionShouldBeSingle": "Always condition should be single",
177 | "OtherwiseConditionShouldBeSingle": "Otherwise condition should be single",
178 | "ConditionalLabel": "Conditional",
179 | "AlwaysLabel": "Always",
180 | "ActionLabel": "Action",
181 | "ExpressionLabel": "Expression",
182 | "OtherwiseLabel": "Otherwise",
183 | "UserComment": "Comment",
184 | "Subprocess": "Subprocess",
185 | "SubprocessNone": "None",
186 | "SubprocessStart": "Start",
187 | "SubprocessFinalize": "Finalize",
188 | "SubprocessAuto": "Auto",
189 | "SubprocessStartSettings": "Subprocess start settings",
190 | "SubprocessFinalizeSettings": "Subprocess finalize settings",
191 | "SubprocessName": "Subprocess name",
192 | "SubprocessId": "Subprocess id",
193 | "SubprocessIdPlaceholder": "Autogenerated GUID",
194 | "SubprocessNamePlaceholder": "Same as transition name",
195 | "SubprocessStartupType": "Subprocess startup type",
196 | "SubprocessStartupTypeSameThread": "Same thread",
197 | "SubprocessStartupTypeAnotherThread": "Another thread",
198 | "SubprocessStartupTypeTimerQueue": "Timer queue",
199 | "SubprocessStartupParameterCopyStrategy": "Parameters copy strategy",
200 | "SubprocessStartupParameterCopyStrategyCopyAll": "Copy all",
201 | "SubprocessStartupParameterCopyStrategyIgnoreAll": "Ignore all",
202 | "SubprocessStartupParameterCopyStrategyCopySpecified": "Copy specified",
203 | "SubprocessStartupParameterCopyStrategyIgnoreSpecified": "Ignore specified",
204 | "SubprocessSpecifiedParameters": "Specified parameters",
205 | "SubprocessFinalizeParameterMergeStrategy": "Parameters merge strategy",
206 | "SubprocessFinalizeParameterMergeStrategyOverwriteAllNulls": "Overwrite all nulls",
207 | "SubprocessFinalizeParameterMergeStrategyOverwriteAll": "Overwrite all",
208 | "SubprocessFinalizeParameterMergeStrategyOverwriteSpecified": "Overwrite specified",
209 | "SubprocessFinalizeParameterMergeStrategyDontOverwriteSpecified": "Don't overwrite specified"
210 | },
211 | "LocalizationFormLabel": {
212 | "Title": "Localization",
213 | "ObjectName": "ObjectName",
214 | "Type": "Type",
215 | "IsDefault": "IsDefault",
216 | "Culture": "Culture",
217 | "Value": "Value",
218 | "ShowPredefined": "Show predefined",
219 | "Types": {
220 | "State": "State",
221 | "Parameter": "Parameter",
222 | "Action": "Action",
223 | "Condition": "Condition",
224 | "Command": "Command",
225 | "Comment": "Comment",
226 | "Scheme": "Scheme"
227 | }
228 | },
229 | "TimerFormLabel": {
230 | "Title": "Timers",
231 | "Name": "Name",
232 | "Type": "Type",
233 | "Value": "Value",
234 | "OverrideHint": "Override timer if exists",
235 | "Override": "Override"
236 | },
237 | "AssignmentFormLabel": {
238 | "Title": "Assignments",
239 | "Code": "Code",
240 | "Name": "Name",
241 | "Executor": "Executor",
242 | "ExecutorId": "Executor Id",
243 | "Status": "Status",
244 | "DateCreation": "Date creation",
245 | "Description": "Description",
246 | "DateStart": "Date start",
247 | "DateFinish": "Date finish",
248 | "DeadlineToStart": "Deadline to start",
249 | "DeadlineToFinish": "Deadline to finish",
250 | "Observers": "Observers",
251 | "ObserverId": "Observer Id",
252 | "Tags": "Tags",
253 | "ProhibitedForExecution": "Prohibited for execution",
254 | "AssignmentDeleted": "Assignment deleted",
255 | "TypeSomething": "Type something"
256 | },
257 | "ParameterFormLabel": {
258 | "Title": "Parameters",
259 | "Name": "Name",
260 | "Type": "Type",
261 | "Purpose": "Purpose",
262 | "Value": "Value",
263 | "InitialValue": "InitialValue",
264 | "ShowSystemParameters": "Show system parameters"
265 | },
266 | "ActorFormLabel": {
267 | "Title": "Actors",
268 | "Name": "Name",
269 | "Rule": "Rule",
270 | "Value": "Value",
271 | "ShowPredefinedActors": "Show predefined actors"
272 | },
273 | "CommandFormLabel": {
274 | "Title": "Command",
275 | "Name": "Name"
276 | },
277 | "CommandParametersFormLabel": {
278 | "Title": "command parameters",
279 | "InputParametersName": "Name",
280 | "InputParametersIsRequired": "Required",
281 | "InputParametersParameter": "Parameter",
282 | "InputParametersDefaultValue": "Default"
283 | },
284 | "ProcessInfoFormLabel": {
285 | "Title": "Process Info",
286 | "IsObsolete": "IsObsolete",
287 | "DefiningParameters": "Defining parameters",
288 | "ProcessParameters": "Process parameters",
289 | "SystemParametersTabName": "System Parameters",
290 | "ProcessParametersTabName": "Process Parameters",
291 | "HistoryTabName": "History",
292 | "TimersTabName": "Timers",
293 | "TagsTabName": "Tags",
294 | "TagsInputPlaceholder": "Start entering a name to add a tag",
295 | "HistoryTabFromLabel": "From",
296 | "HistoryTabFromStateLabel": "From State",
297 | "HistoryTabToLabel": "To",
298 | "HistoryTabToStateLabel": "To State",
299 | "HistoryTabExecutorIdLabel": "Executor Id",
300 | "HistoryTabActorIdLabel": "Actor Id",
301 | "HistoryTabExecutorLabel": "Executor",
302 | "HistoryTabActorLabel": "Actor",
303 | "HistoryTabTimeLabel": "Time",
304 | "HistoryTabStartTimeLabel": "Start Time",
305 | "HistoryTabDurationLabel": "Duration (ms)",
306 | "HistoryTabTriggerNameLabel": "Trigger Name",
307 | "HistoryTabTransitionClassifierNameLabel": "Classifier",
308 | "ParametersNameLabel": "Name",
309 | "ParametersValueLabel": "Value",
310 | "TimersTabNameLabel": "Name",
311 | "TimersTabValueLabel": "Value",
312 | "RootProcess": "Root Process",
313 | "TagsLabel": "Tags",
314 | "GeneralTabLabel": "General",
315 | "ProcessIdLabel": "Process Id"
316 | },
317 | "DropdownValues": {
318 | "Name": "Name",
319 | "Value": "Value",
320 | "Dropdown": "Dropdown",
321 | "Values": "values"
322 | },
323 | "CodeActionsFormLabel": {
324 | "Title": "Code actions",
325 | "Name": "Name",
326 | "ActionCode": "Action code",
327 | "CommonUsings": "Common Usings",
328 | "IsGlobal": "Is global",
329 | "IsAsync": "Async",
330 | "Type": "Type",
331 | "CustomTypeHint": "To use a custom type, add its name here and add its implementation to the jsonform template.",
332 | "GlobalDeleteMessage": "If you've delete the Global CodeAction -
other schemes won't be able to call it!",
333 | "UnGlobalMessage": "You've changed the state of the global flag.
There will be created a Local CodeAction based on this Global CodeAction after saving this scheme.",
334 | "EditParameters": "Edit parameters",
335 | "Parameters": "Parameters",
336 | "Text": "Text",
337 | "TextArea": "TextArea",
338 | "Number": "Number",
339 | "Checkbox": "Checkbox",
340 | "Dropdown": "Dropdown",
341 | "MultiSelect": "MultiSelect",
342 | "DateTime": "Date and time",
343 | "Date": "Date",
344 | "Time": "Time",
345 | "Values": "Values",
346 | "DropdownName": "Name",
347 | "DropdownValue": "Value",
348 | "DropdownShouldContainValues": "Dropdown should contain values",
349 | "IsRequired": "Required",
350 | "DefaultValue": "Default value",
351 | "Json": "Json",
352 | "TitleField": "Title"
353 | },
354 | "EditParametersFormlabel": {
355 | "Title": "Edit parameter values",
356 | "NumberRequired": "Should be a numeric value",
357 | "DateShouldBeInISOFormat": "Date/Time parameter should be in ISO8601 format",
358 | "SwitchToJson": "Switch to JSON editor",
359 | "SwitchToConstructor": "Switch to parameter values editor",
360 | "InvalidJson": "JSON object is invalid or does not match the model",
361 | "CustomForms": {
362 | "HTTPRequest": {
363 | "Name": "Name",
364 | "State": "State",
365 | "UseAuth": "Use authentication",
366 | "Heading": "Request",
367 | "Url": "Url",
368 | "Post": "Post",
369 | "StoreResponse": "Store response",
370 | "Username": "Username",
371 | "Password": "Password",
372 | "ParameterName": "Parameter name",
373 | "ParameterPurpose": "Parameter purpose",
374 | "ContentType": "Content type",
375 | "AddProcessInstanceParameters": "Add process instance parameters",
376 | "Parameters": "Parameters",
377 | "Headers": "Headers"
378 | },
379 | "SendEmail": {
380 | "Name": "Name",
381 | "State": "State",
382 | "Heading": "Form",
383 | "UseAuth": "Use authentication",
384 | "MailServer": "Mail server",
385 | "MailServerPort": "Mail server port",
386 | "MailServerFrom": "Mail server from",
387 | "To": "To",
388 | "CcList": "CC address list",
389 | "BccList": "BCC address list",
390 | "ReplyToList": "Reply to address list",
391 | "Subject": "Subject",
392 | "MailServerSsl": "MailServerSsl",
393 | "IsHTML": "IsHTML",
394 | "MailServerLogin": "Mail server login",
395 | "MailServerPass": "Mail server pass",
396 | "Body": "Body"
397 | },
398 | "StartLoopFor": {
399 | "Name": "Name",
400 | "State": "State",
401 | "Heading": "Loop",
402 | "DateRange": "Date range",
403 | "RangeSeparator": "To",
404 | "StartDate": "Start date",
405 | "EndDate": "End date",
406 | "Reverse": "Reverse",
407 | "LoopName": "Loop name",
408 | "LoopStateParameterName": "Loop state parameter name",
409 | "LoopCounterValueParameterName": "Loop counter value parameter name",
410 | "CounterType": "Counter type",
411 | "StartValue": "Start value",
412 | "EndValue": "End value",
413 | "Step": "Step",
414 | "StepType": "Step type",
415 | "IncludeLastValue": "Include last value"
416 | },
417 | "StartLoopForeach": {
418 | "Name": "Name",
419 | "State": "State",
420 | "Heading": "Loop",
421 | "ValuesError": "None value cannot be empty!",
422 | "Values": "Values",
423 | "LoopName": "Loop name",
424 | "LoopStateParameterName": "Loop state parameter name",
425 | "LoopCounterValueParameterName": "Loop counter value parameter name",
426 | "Reverse": "Reverse"
427 | },
428 | "CreateProcess": {
429 | "Name": "Name",
430 | "State": "State",
431 | "Heading": "Main settings",
432 | "ParameterName": "Name",
433 | "ParameterPurpose": "Purpose",
434 | "ParameterValue": "Value",
435 | "Scheme": "Scheme",
436 | "ProcessId": "Process id",
437 | "ProcessCreationParameters": "Process creation parameters"
438 | },
439 | "AssignmentCreate": {
440 | "Name": "Name",
441 | "State": "State",
442 | "Heading": "Assignment",
443 | "Code": "Code",
444 | "NewTag": "New Tag",
445 | "Executors": "Executors",
446 | "IsActive": "Is active",
447 | "Description": "Description",
448 | "DeadlineToStart": "Deadline to start",
449 | "DeadlineToComplete": "Deadline to complete",
450 | "Observers": "Observers",
451 | "Tags": "Tags"
452 | },
453 | "AssignmentChange": {
454 | "Name": "Name",
455 | "State": "State",
456 | "Heading": "Assignment",
457 | "Code": "Code",
458 | "ReplacementExecutors": "Replacement of executors",
459 | "OldExecutor": "Old executor",
460 | "NewExecutor": "New executor",
461 | "AllExecutors": "All",
462 | "Change": "Change",
463 | "Status": "Status",
464 | "DeadlineToStart": "Deadline to start",
465 | "DeadlineToComplete": "Deadline to complete",
466 | "Tags": "Tags",
467 | "Observers": "Observers",
468 | "NewTag": "New Tag",
469 | "StatusState": "Status state",
470 | "IsActive": "Is active"
471 | },
472 | "AssignmentsHaveStatus": {
473 | "Name": "Name",
474 | "State": "State",
475 | "Code": "Code",
476 | "Condition": "Condition",
477 | "IncludeInactive": "Include inactive",
478 | "StatusState": "Status state",
479 | "Assignments": "Assignments"
480 | },
481 | "SetLoopState": {
482 | "Name": "Name",
483 | "State": "State",
484 | "LoopName": "Loop name",
485 | "LoopState": "Loop state"
486 | }
487 | },
488 | "IncorrectForm": "Your form contains greater than one element, and at least one element doesn't have a Name. Please specify the Name for each element."
489 | },
490 | "ElementToolbar": {
491 | "ShowProperties": "Show properties",
492 | "Clone": "Clone",
493 | "Color": "Color",
494 | "Delete": "Delete"
495 | },
496 | "ActivityToolbar": {
497 | "CreateActivity": "Create activity",
498 | "CreateTransition": "Create transition",
499 | "CreateTransitionAndActivity": "Create transition and activity"
500 | },
501 | "ToolbarLabel": {
502 | "CopySelected": "Copy selected",
503 | "Undo": "Undo",
504 | "Redo": "Redo",
505 | "Move": "Move",
506 | "Menu": "Menu",
507 | "FitToScreen": "Fit to screen",
508 | "Upload": "Upload",
509 | "UploadXML": "Upload XML",
510 | "UploadBPMN": "Upload BPMN",
511 | "Download": "Download",
512 | "DownloadXML": "Download as XML",
513 | "DownloadBPMN": "Download as BPMN",
514 | "FullScreen": "Full Screen",
515 | "ResetZoom": "Reset zoom",
516 | "Refresh": "Refresh",
517 | "View": "View",
518 | "Scheme": "Scheme",
519 | "AutoArrangement": "Auto arrangement",
520 | "Actors": "Actors",
521 | "Commands": "Commands",
522 | "Parameters": "Parameters",
523 | "Assignments": "Assignments",
524 | "Localization": "Localization",
525 | "Timers": "Timers",
526 | "AdditionalParameters": "Additional Parameters",
527 | "CodeActions": "Code actions",
528 | "Info": "Extended info",
529 | "Delete": "Delete",
530 | "Settings": "Settings",
531 | "CreateTransition": "Create a transition",
532 | "CreateActivityTransition": "Create an activity and a transition",
533 | "Legend": "Legend",
534 | "ProcessInfo": "Process Info",
535 | "Inline": "The scheme can be inlined",
536 | "Elements": "Elements",
537 | "Library": "Library",
538 | "Language": "Language",
539 | "File": "File",
540 | "SaveToImage": "Save to image",
541 | "ShowGrid": "Show grid",
542 | "ImageQuality": "Quality (pixel aspect ratio):",
543 | "ResetSettings": "Reset settings",
544 | "Clear": "Clear",
545 | "ActivitiesCount": "Activities count / Limit",
546 | "TransitionsCount": "Transitions count / Limit",
547 | "CommandsCount": "Commands count / Limit",
548 | "CreateActivity": "Create activity",
549 | "CreateInline": "Create inline (template)",
550 | "ZoomIn": "Zoom In",
551 | "ZoomOut": "Zoom Out",
552 | "ZoomTo100": "Set zoom to 100%",
553 | "Clone": "Clone",
554 | "ZoomPositionDefault": "Zoom default"
555 | },
556 | "LibraryLabel": {
557 | "PluginRequired": "Plugin required:"
558 | },
559 | "Logs": {
560 | "Label": "Logs",
561 | "ParamName": "LogEnabled",
562 | "Description": "This parameter is the default value for logging processes based on this scheme",
563 | "Refresh": "Refresh",
564 | "AutoRefresh": "Auto refresh",
565 | "Empty": "Empty",
566 | "Timestamp": "Timestamp",
567 | "Message": "Message",
568 | "Exception": "Exception",
569 | "Show": "Show",
570 | "ExceptionInfo": "Exception info",
571 | "HideDetails": "Hide details",
572 | "ShowDetails": "Show details"
573 | },
574 | "ErrorActivityIsInitialCountText": "One element must be marked flag Initial",
575 | "ErrorActivityIsFinalCountText": "This scheme is Inlined. One or more elements must be marked flag Final",
576 | "ErrorReadOnlySaveText": "The Designer in ReadOnly mode, you can't save it.",
577 | "ErrorInvalidObjectsSaveText": "Can't save the schema. Those objects are in invalid state",
578 | "BrokenReferencesDialogText": "This schema contains references to ELEMENTS that aren't defined by this schema or current action providers. Do you want to keep them?",
579 | "EditCodeLabel": {
580 | "Title": "Edit code",
581 | "EditCodeButton": "Edit code",
582 | "Usings": "Usings",
583 | "Compile": "Compile",
584 | "CompileSucceeded": "Compilation succeeded.",
585 | "Success": "Success",
586 | "Error": "Error",
587 | "OK": "OK",
588 | "ShowUsings": "Show usings",
589 | "HideUsings": "Hide usings"
590 | },
591 | "EditJSONLabel": {
592 | "Title": "Edit value in JSON",
593 | "CreateEmptyType": "Create",
594 | "Format": "Format"
595 | },
596 | "EditExpressionLabel": {
597 | "Title": "Edit expression",
598 | "Validate": "Validate",
599 | "Succeeded": "Expression is valid.",
600 | "Success": "Success",
601 | "Error": "Error",
602 | "OK": "OK"
603 | },
604 | "Elements": {
605 | "Activities": "Activities",
606 | "Templates": "Templates",
607 | "BasicActivity": "Basic Activity",
608 | "BasicActivityDesc": "It determines a state and the order, in which Actions are executed in your process.",
609 | "InlineHeader": "Inline",
610 | "InitialActivity": "Initial Activity",
611 | "PluginRequired": "Plugin required:",
612 | "InitialActivityDesc": "It a initial state.",
613 | "FinalActivity": "Final Activity",
614 | "FinalActivityDesc": "It a final state.",
615 | "SetLoopState": {
616 | "Title": "Set loop state",
617 | "Description": "The action for set loop state"
618 | },
619 | "Comment": {
620 | "Title": "Comment",
621 | "Description": "Place a comment on the scheme",
622 | "Name": "Name",
623 | "CommentText": "Comment text",
624 | "Alignment": "Alignment",
625 | "FontSize": "Font size",
626 | "TextFormatting": "Text formatting"
627 | },
628 | "Header": "Elements"
629 | },
630 | "ErrorInBrowserConsole": "See more info in the browser console."
631 | }
632 |
--------------------------------------------------------------------------------