cpee 2.0.20 → 2.0.25
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.
- checksums.yaml +4 -4
- data/cockpit/CPEE.xml +8 -0
- data/cockpit/Signavio.xml +8 -0
- data/cockpit/css/model.css +2 -0
- data/cockpit/css/replay.css +55 -0
- data/cockpit/css/ui.css +3 -1
- data/cockpit/edit.html +260 -0
- data/cockpit/index.html +2 -2
- data/cockpit/js/edit.js +32 -0
- data/cockpit/js/instance.js +34 -36
- data/cockpit/js/model.js +0 -25
- data/cockpit/js/parameters.js +3 -0
- data/cockpit/js/replay.js +40 -0
- data/cockpit/js/ui.js +7 -0
- data/cockpit/model.html +4 -1
- data/cockpit/replay.html +52 -0
- data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
- data/cockpit/themes/compact/rngs/call.rng +93 -41
- data/cockpit/themes/compact/rngs/callmanipulate.rng +113 -40
- data/cockpit/themes/compact/theme.js +57 -25
- data/cockpit/themes/{diana → control}/rngs/alternative.rng +0 -0
- data/cockpit/themes/control/rngs/call.rng +174 -0
- data/cockpit/themes/control/rngs/callmanipulate.rng +218 -0
- data/cockpit/themes/{diana → control}/rngs/choose.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/closed_loop.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/closed_loop_cancel.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/closed_loop_control.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/closed_loop_measuring.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/critical.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/escape.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/group.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/loop.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/manipulate.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/otherwise.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/parallel.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/parallel_branch.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/scripts.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/stop.rng +0 -0
- data/cockpit/themes/{diana → control}/rngs/terminate.rng +0 -0
- data/cockpit/themes/{diana → control}/symbols/alternative.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/arrow.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/call.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/callmanipulate.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/choose.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/choose_exclusive.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/choose_inclusive.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/closed_loop.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/closed_loop_cancel.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/closed_loop_control.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/closed_loop_measuring.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/complex.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/critical.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/end.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/escape.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/event_end.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/loop.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/manipulate.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/otherwise.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/parallel.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/parallel_branch.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/parallel_branch_compact.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/parallel_branch_event.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/parallel_branch_normal.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/scripts.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/start.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/stop.svg +0 -0
- data/cockpit/themes/{diana → control}/symbols/terminate.svg +0 -0
- data/cockpit/themes/{diana → control}/theme.js +74 -28
- data/cockpit/themes/default/rngs/call.rng +93 -41
- data/cockpit/themes/default/rngs/callmanipulate.rng +113 -40
- data/cockpit/themes/default/theme.js +1318 -0
- data/cockpit/themes/extended/rngs/call.rng +93 -41
- data/cockpit/themes/extended/rngs/callmanipulate.rng +113 -40
- data/cockpit/themes/extended/theme.js +50 -19
- data/cockpit/themes/model/rngs/call.rng +21 -20
- data/cockpit/themes/model/rngs/callmanipulate.rng +23 -22
- data/cockpit/themes/model/theme.js +51 -20
- data/cockpit/themes/packed/rngs/call.rng +93 -41
- data/cockpit/themes/packed/rngs/callmanipulate.rng +113 -40
- data/cockpit/themes/packed/theme.js +50 -19
- data/cockpit/themes/preset/rngs/call.rng +93 -41
- data/cockpit/themes/preset/rngs/callmanipulate.rng +113 -40
- data/cockpit/themes/preset/theme.js +49 -18
- data/cockpit/track.html +0 -7
- data/cockpit/transformations.xml +4 -0
- data/cpee.gemspec +2 -2
- data/lib/callbacks.xml +5 -0
- data/lib/cpee/controller.rb +29 -27
- data/lib/cpee/implementation_callbacks.rb +53 -0
- data/server/handlerwrappers/default.rb +17 -5
- data/server/resources/notifications/logging/subscription.xml +6 -0
- data/server/resources/transformation_dslx.xsl +1 -1
- data/server/routing/end.pid +1 -0
- data/server/routing/forward-events.pid +1 -0
- data/server/routing/forward-votes.pid +1 -0
- data/server/routing/persist.pid +1 -0
- data/server/routing/persist.rb +3 -3
- data/server/server.pid +1 -0
- metadata +63 -50
- data/cockpit/edit.html +0 -1
- data/cockpit/themes/diana/rngs/call.rng +0 -122
- data/cockpit/themes/diana/rngs/callmanipulate.rng +0 -145
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a3830f81020d6eb6b83ac9eba995f7175607f8aee0279b1537e0f5415f3dab21
|
|
4
|
+
data.tar.gz: a3e1ce78c221dae79d973435cc6997c3dc5e8d00ce8e5cd89634b2648b75012d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 56cb04c53af5f2f7eee0c0dcbb83d339a75985e32d7584294f33f5ec755b0d4db9bd4100e0e9c692d921f7bdfe5f60be0a167f7416484ddb6f67d250bb67a013
|
|
7
|
+
data.tar.gz: de22ffe114afc38010c7650c75e28b067ecec6fec52df16f96f08928a1038634e175636e0cc177d4ecd88ab4de1cc1a99e53a670578041a7f6515ca718c46c7e
|
data/cockpit/CPEE.xml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<testset xmlns="http://cpee.org/ns/properties/2.0">
|
|
3
|
+
<transformation>
|
|
4
|
+
<description type='rest'>http://localhost:9295/bpmn2/</description>
|
|
5
|
+
<dataelements type='rest'>http://localhost:9295/bpmn2/</dataelements>
|
|
6
|
+
<endpoints type='rest'>http://localhost:9295/bpmn2/</endpoints>
|
|
7
|
+
</transformation>
|
|
8
|
+
</testset>
|
data/cockpit/css/model.css
CHANGED
|
@@ -22,3 +22,5 @@
|
|
|
22
22
|
|
|
23
23
|
#areamodel div.section:nth-child(4) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
|
|
24
24
|
#areamodel div.section:nth-child(4) button[name=loadmodeltype] { white-space: normal; width: 10em; height: 2em; }
|
|
25
|
+
|
|
26
|
+
#model ui-content { height: 5em; }
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
body {
|
|
2
|
+
-webkit-user-select: none;
|
|
3
|
+
-moz-user-select: -moz-none;
|
|
4
|
+
-ms-user-select: none;
|
|
5
|
+
user-select: none;
|
|
6
|
+
font-family: sans-serif;
|
|
7
|
+
font-size: 1em;
|
|
8
|
+
padding: 0;
|
|
9
|
+
margin: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
#replayer {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
flex-wrap: nowrap;
|
|
16
|
+
align-items: stretch;
|
|
17
|
+
height: 100vh;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#replay {
|
|
21
|
+
width: 100%;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: row;
|
|
24
|
+
flex-wrap: nowrap;
|
|
25
|
+
align-items: stretch;
|
|
26
|
+
padding: 1em 0;
|
|
27
|
+
flex: 0 0 auto;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#replay span {
|
|
31
|
+
flex: 0 0 auto;
|
|
32
|
+
margin-left: 1em;
|
|
33
|
+
align-self: center;
|
|
34
|
+
}
|
|
35
|
+
#replay input {
|
|
36
|
+
margin: 0em 1em;
|
|
37
|
+
flex: 1 1 auto;
|
|
38
|
+
}
|
|
39
|
+
#replay button {
|
|
40
|
+
margin-right: 1em;
|
|
41
|
+
flex: 0 0 auto;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#content {
|
|
45
|
+
width: 100%;
|
|
46
|
+
align-self: center;
|
|
47
|
+
flex: 1 1 auto;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
iframe {
|
|
51
|
+
border: 0 none;
|
|
52
|
+
padding: 0;
|
|
53
|
+
margin: 0;
|
|
54
|
+
overflow: scroll;
|
|
55
|
+
}
|
data/cockpit/css/ui.css
CHANGED
|
@@ -121,10 +121,12 @@ ui-tabbed ui-tabbar ui-behind button {
|
|
|
121
121
|
#areainstance div.section:nth-child(2) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0.5em; white-space: nowrap; }
|
|
122
122
|
#areainstance div.section:nth-child(3) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0 0 0.5em; white-space: nowrap; }
|
|
123
123
|
|
|
124
|
+
#areainstance div.section:nth-child(1) > div:nth-child(2) { white-space: normal; text-align: right; }
|
|
125
|
+
|
|
124
126
|
#areainstance div.section:nth-child(1) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
|
|
125
127
|
#areainstance div.section:nth-child(1) button { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
|
|
126
|
-
#areainstance div.section:nth-child(1) div:nth-child(2) { white-space: normal; text-align: right; }
|
|
127
128
|
#areainstance div.section:nth-child(1) button[name=loadtestset] { white-space: normal; width: 10em; height: 3.5em; }
|
|
129
|
+
#areainstance div.section:nth-child(1) button[name=save] { white-space: normal; width: 10em; height: 3.5em; margin-left: 0.2em; }
|
|
128
130
|
#areainstance div.section:nth-child(1) button[name=loadtestsetfile] { white-space: normal; width: 10em; height: 3.5em; margin-left: 0.2em; }
|
|
129
131
|
#areainstance div.section:nth-child(1) button[name=loadmodelfile] { white-space: normal; width: 10em; height: 2em; margin-top: 0.2em; }
|
|
130
132
|
|
data/cockpit/edit.html
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
This file is part of CPEE.
|
|
3
|
+
|
|
4
|
+
CPEE is free software: you can redistribute it and/or modify it under the terms
|
|
5
|
+
of the GNU General Public License as published by the Free Software Foundation,
|
|
6
|
+
either version 3 of the License, or (at your option) any later version.
|
|
7
|
+
|
|
8
|
+
CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
9
|
+
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
10
|
+
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
11
|
+
|
|
12
|
+
You should have received a copy of the GNU General Public License along with
|
|
13
|
+
CPEE (file COPYING in the main directory). If not, see
|
|
14
|
+
<http://www.gnu.org/licenses/>.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
<!DOCTYPE html>
|
|
18
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
|
19
|
+
<head>
|
|
20
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
21
|
+
<title>CPEE Cockpit</title>
|
|
22
|
+
|
|
23
|
+
<!-- libs, do not modify. When local than load local libs. -->
|
|
24
|
+
<script type="text/javascript" src="/js_libs/jquery.min.js"></script>
|
|
25
|
+
<script type="text/javascript" src="/js_libs/jquery.browser.js"></script>
|
|
26
|
+
<script type="text/javascript" src="/js_libs/jquery.svg.min.js"></script>
|
|
27
|
+
<script type="text/javascript" src="/js_libs/jquery.svgdom.min.js"></script>
|
|
28
|
+
<script type="text/javascript" src="/js_libs/vkbeautify.js"></script>
|
|
29
|
+
<script type="text/javascript" src="/js_libs/util.js"></script>
|
|
30
|
+
<script type="text/javascript" src="/js_libs/printf.js"></script>
|
|
31
|
+
<script type="text/javascript" src="/js_libs/strftime.min.js"></script>
|
|
32
|
+
<script type="text/javascript" src="/js_libs/parsequery.js"></script>
|
|
33
|
+
<script type="text/javascript" src="/js_libs/underscore.min.js"></script>
|
|
34
|
+
<script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
|
|
35
|
+
<script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
|
|
36
|
+
|
|
37
|
+
<script type="text/javascript" src="/js_libs/relaxngui.js"></script>
|
|
38
|
+
|
|
39
|
+
<script type="text/javascript" src="/js_libs/ui.js"></script>
|
|
40
|
+
<script type="text/javascript" src="/js_libs/custommenu.js"></script>
|
|
41
|
+
|
|
42
|
+
<link rel="stylesheet" href="/js_libs/custommenu.css" type="text/css"/>
|
|
43
|
+
<link rel="stylesheet" href="/js_libs/ui.css" type="text/css"/>
|
|
44
|
+
|
|
45
|
+
<link rel="stylesheet" href="/js_libs/relaxngui.css" type="text/css"/>
|
|
46
|
+
|
|
47
|
+
<!-- modelling ui -->
|
|
48
|
+
<script type="text/javascript" src="js/wfadaptor.js"></script>
|
|
49
|
+
<link rel="stylesheet" href="css/wfadaptor.css" type="text/css"/>
|
|
50
|
+
|
|
51
|
+
<!-- custom stuff, play arround -->
|
|
52
|
+
<script type="text/javascript" src="js/ui.js"></script>
|
|
53
|
+
<script type="text/javascript" src="js/instance.js"></script>
|
|
54
|
+
<script type="text/javascript" src="js/details.js"></script>
|
|
55
|
+
<script type="text/javascript" src="js/parameters.js"></script>
|
|
56
|
+
<script type="text/javascript" src="js/edit.js"></script>
|
|
57
|
+
<link rel="stylesheet" href="css/ui.css" type="text/css"/>
|
|
58
|
+
<link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
|
|
59
|
+
<style>
|
|
60
|
+
/* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
|
|
61
|
+
/* shit balls, no elegance is left in this world */
|
|
62
|
+
</style>
|
|
63
|
+
</head>
|
|
64
|
+
<body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui">
|
|
65
|
+
<div id='disclaimer' class='hidden'> <!--{{{-->
|
|
66
|
+
<h1>Disclaimer</h1>
|
|
67
|
+
|
|
68
|
+
<p>
|
|
69
|
+
We use reasonable care in creating and presenting the functionality
|
|
70
|
+
found in this demonstrator. It is provided purely for demonstration purposes
|
|
71
|
+
and you should seek further guidance and make independent enquiries
|
|
72
|
+
before relying upon it.
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
<p>
|
|
76
|
+
All functionality included in this demonstrator is subject to change
|
|
77
|
+
without notice. We make no representation or warranty whatsoever
|
|
78
|
+
regarding the completeness, accuracy, adequacy, suitability or
|
|
79
|
+
operation of this demonstrator, or of the results it produces.
|
|
80
|
+
</p>
|
|
81
|
+
|
|
82
|
+
<p>
|
|
83
|
+
We assume no responsibility for process instances created with this
|
|
84
|
+
demonstrator and disclaim all liability arising from negligence or
|
|
85
|
+
otherwise in respect of such process instances. We will not be liable
|
|
86
|
+
for any damages (including, without limitation, damages for any
|
|
87
|
+
consequential loss or loss of business opportunities or projects, or
|
|
88
|
+
loss of profits) howsoever arising from use of or inability to use
|
|
89
|
+
this demonstrator, or from any action or omission taken as a result of
|
|
90
|
+
using this demonstrator.
|
|
91
|
+
</p>
|
|
92
|
+
|
|
93
|
+
<p>
|
|
94
|
+
This demonstrator was created in Austria. All liability is excluded to the extent
|
|
95
|
+
permitted by law including any implied terms. Any interpretation of its
|
|
96
|
+
content, claims or disputes (of whatever nature and not limited to contractual
|
|
97
|
+
issues) shall be subject to the exclusive jurisdiction of the Austrian Courts
|
|
98
|
+
under Austrian law.
|
|
99
|
+
</p>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
<p>
|
|
103
|
+
All actions performed while using this demonstrator will be logged, including
|
|
104
|
+
the IP address of the user.
|
|
105
|
+
</p>
|
|
106
|
+
|
|
107
|
+
<p>
|
|
108
|
+
<input id='iagree' type='checkbox'/><label for='iagree'><strong>OK, I Agree with this terms. I will be a happy person, and do no evil.</strong></label>
|
|
109
|
+
</p>
|
|
110
|
+
<p>
|
|
111
|
+
<button id='icontinue' disabled='disabled'>Continue</button>
|
|
112
|
+
</p>
|
|
113
|
+
</div> <!--}}}-->
|
|
114
|
+
|
|
115
|
+
<div class='hidden' id='relaxngworker'></div>
|
|
116
|
+
|
|
117
|
+
<div class='menu' id='templates'></div>
|
|
118
|
+
<div class='menu' id='modeltypes'></div>
|
|
119
|
+
|
|
120
|
+
<ui-tabbed id="instance">
|
|
121
|
+
<ui-tabbar>
|
|
122
|
+
<ui-tab class="switch" ></ui-tab>
|
|
123
|
+
<ui-tab class="" data-tab="new" id="tabnew" >New</ui-tab>
|
|
124
|
+
<ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
|
|
125
|
+
<ui-tab class="inactive hidden" data-tab="execution" id="tabexecution">Execution</ui-tab>
|
|
126
|
+
<ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
|
|
127
|
+
<ui-last ><a class="logo" href=".."></a></ui-last>
|
|
128
|
+
</ui-tabbar>
|
|
129
|
+
<ui-content>
|
|
130
|
+
<ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
|
|
131
|
+
<table class='x-ui-layout'>
|
|
132
|
+
<tr>
|
|
133
|
+
<td>Resources:</td>
|
|
134
|
+
<td><input name="res-url" type="text" value=""/></td>
|
|
135
|
+
<td></td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<td>Engine:</td>
|
|
139
|
+
<td><input name="base-url" type="text" value=""/></td>
|
|
140
|
+
<td><button name="base">create new instance</button></td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td>Instance:</td>
|
|
144
|
+
<td><input name="instance-url" type="text" value=""/></td>
|
|
145
|
+
<td><button name="instance">monitor instance</button></td>
|
|
146
|
+
</tr>
|
|
147
|
+
</table>
|
|
148
|
+
</ui-area> <!--}}}-->
|
|
149
|
+
<ui-area data-belongs-to-tab="instance" id="areainstance" class="inactive"> <!--{{{-->
|
|
150
|
+
<div class='section'>
|
|
151
|
+
<div>
|
|
152
|
+
<form id='fuckchrome'>
|
|
153
|
+
<input type='file' name='testsetfile' id='testsetfile'/>
|
|
154
|
+
</form>
|
|
155
|
+
<button title='save a testset includes various settings, subscriptions and a model' name="save" disabled=""><div>save</div><div class="hidden" id='lastsavedline'>(last: <span id="lastsaved"></span>)</div></button>
|
|
156
|
+
<button title='a testset includes various settings, subscriptions or a model' name="loadtestsetfile">load testset</button>
|
|
157
|
+
</div>
|
|
158
|
+
<div>
|
|
159
|
+
<input type='file' name='modelfile' id='modelfile'/>
|
|
160
|
+
<button title='a standalone process model is only loadable if the currently loaded testset sucessfully prepared the current instance for the type of model' name="loadmodelfile">load model</button>
|
|
161
|
+
</div>
|
|
162
|
+
</div><div class='section'>
|
|
163
|
+
<a id="savetestsetfile" href="" download=""></a>
|
|
164
|
+
<a id="savesvgfile" href="" download=""></a>
|
|
165
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savetestsetfile">save testset</button>
|
|
166
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savesvgfile">save svg graph</button>
|
|
167
|
+
</div><div class='section'>
|
|
168
|
+
<div>
|
|
169
|
+
Current model: <span id='currentmodel'></span>
|
|
170
|
+
</div>
|
|
171
|
+
<div>
|
|
172
|
+
<button title='a testset includes various settings, subscriptions and a model' name="loadmodeltype">set model type</button>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</ui-area> <!--}}}-->
|
|
176
|
+
<ui-area data-belongs-to-tab="execution" id="areaexecution" class='inactive'> <!--{{{-->
|
|
177
|
+
<table class='x-ui-compact'>
|
|
178
|
+
<tbody class='debug'>
|
|
179
|
+
<tr>
|
|
180
|
+
<td>Debugging:</td>
|
|
181
|
+
<td><input type="checkbox" name="votecontinue"/></td>
|
|
182
|
+
</tr>
|
|
183
|
+
</tbody>
|
|
184
|
+
<tbody class='exe'>
|
|
185
|
+
<tr>
|
|
186
|
+
<td>State:</td>
|
|
187
|
+
<td id='state'>
|
|
188
|
+
<span id="state_text"></span>
|
|
189
|
+
<span id="state_any" style='display:none'>
|
|
190
|
+
<span> ⇒ </span>
|
|
191
|
+
<button name="state_start" title='start' style='display:none'>Start</button>
|
|
192
|
+
<button name="state_stop" title='stop' style='display:none'>Stop</button>
|
|
193
|
+
<span id="state_extended" style='display:none'>
|
|
194
|
+
<span> / </span>
|
|
195
|
+
<button name="state_abandon" title='abandon' style='display:none'>Abandon</button>
|
|
196
|
+
</span>
|
|
197
|
+
</span>
|
|
198
|
+
</td>
|
|
199
|
+
</tr>
|
|
200
|
+
<tr>
|
|
201
|
+
<td>Continue:</td>
|
|
202
|
+
<td id='votes'></td>
|
|
203
|
+
</tr>
|
|
204
|
+
</tbody>
|
|
205
|
+
</table>
|
|
206
|
+
</ui-area> <!--}}}-->
|
|
207
|
+
</ui-content>
|
|
208
|
+
</ui-tabbed>
|
|
209
|
+
|
|
210
|
+
<ui-tabbed class="hidden" id='parameters'>
|
|
211
|
+
<ui-tabbar>
|
|
212
|
+
<ui-tab class="switch" ></ui-tab>
|
|
213
|
+
<ui-tab class="" data-tab="dataelements" id="tabdataelements">Data Elements</ui-tab>
|
|
214
|
+
<ui-tab class="inactive" data-tab="endpoints" id="tabendpoints" >Endpoints</ui-tab>
|
|
215
|
+
<ui-tab class="inactive" data-tab="attributes" id="tabattributes" >Attributes</ui-tab>
|
|
216
|
+
<ui-behind ><button title='add entry'>New</button></ui-behind>
|
|
217
|
+
</ui-tabbar>
|
|
218
|
+
<ui-content>
|
|
219
|
+
<ui-area data-belongs-to-tab="dataelements" id="areadataelements"> <!--{{{-->
|
|
220
|
+
<div id="dat_dataelements"></div>
|
|
221
|
+
</ui-area> <!--}}}-->
|
|
222
|
+
<ui-area data-belongs-to-tab="endpoints" id="areaendpoints" class="inactive"> <!--{{{-->
|
|
223
|
+
<table id="dat_endpoints"></table>
|
|
224
|
+
</ui-area> <!--}}}-->
|
|
225
|
+
<ui-area data-belongs-to-tab="attributes" id="areaattributes" class="inactive"> <!--{{{-->
|
|
226
|
+
<table id="dat_attributes"></table>
|
|
227
|
+
</ui-area> <!--}}}-->
|
|
228
|
+
</ui-content>
|
|
229
|
+
</ui-tabbed>
|
|
230
|
+
|
|
231
|
+
<ui-resizehandle class="hidden">drag to resize</ui-resizehandle>
|
|
232
|
+
|
|
233
|
+
<ui-rest id="main" class="hidden">
|
|
234
|
+
<ui-tabbar>
|
|
235
|
+
<ui-before ></ui-before>
|
|
236
|
+
<ui-tab class="" data-tab="details" id="tabdetails">Graph</ui-tab>
|
|
237
|
+
<ui-tab class="inactive" data-tab="dsl" id="tabdsl" >Description</ui-tab>
|
|
238
|
+
<ui-tab class="inactive" data-tab="log" id="tablog" >Log</ui-tab>
|
|
239
|
+
<ui-behind ><a style='display:none' target='_blank' id='current-track'>T</a><a style='display:none' target='_blank' id='current-graph'>G</a></ui-behind>
|
|
240
|
+
</ui-tabbar>
|
|
241
|
+
<ui-content>
|
|
242
|
+
<ui-area data-belongs-to-tab="details" id='graphcolumn'>
|
|
243
|
+
<div id='graphgrid'>
|
|
244
|
+
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:x="http://www.w3.org/1999/xlink" id='graphcanvas' width='1' height='1'></svg>
|
|
245
|
+
</div>
|
|
246
|
+
</ui-area>
|
|
247
|
+
<ui-resizehandle data-belongs-to-tab="details" data-label="drag to resize"></ui-resizehandle>
|
|
248
|
+
<ui-area data-belongs-to-tab="details" id="detailcolumn">
|
|
249
|
+
<div id="dat_details" class='x-ui-layout'></div>
|
|
250
|
+
</ui-area>
|
|
251
|
+
<ui-area data-belongs-to-tab="dsl" id="areadsl" class="inactive"></ui-area>
|
|
252
|
+
<ui-area data-belongs-to-tab="log" id="arealog" class="inactive"> <!--{{{-->
|
|
253
|
+
<div>Persistent Log: <a style='display:none' target='_blank' id='current-log'></a></div>
|
|
254
|
+
<table id="dat_log" class="x-ui-layout"></table>
|
|
255
|
+
</ui-area> <!--}}}-->
|
|
256
|
+
</ui-content>
|
|
257
|
+
</ui-rest>
|
|
258
|
+
|
|
259
|
+
</body>
|
|
260
|
+
</html>
|
data/cockpit/index.html
CHANGED
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
<script type="text/javascript" src="js/details.js"></script>
|
|
55
55
|
<script type="text/javascript" src="js/parameters.js"></script>
|
|
56
56
|
<link rel="stylesheet" href="css/ui.css" type="text/css"/>
|
|
57
|
+
<link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
|
|
57
58
|
<style>
|
|
58
59
|
/* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
|
|
59
60
|
/* shit balls, no elegance is left in this world */
|
|
@@ -122,6 +123,7 @@
|
|
|
122
123
|
<ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
|
|
123
124
|
<ui-tab class="inactive hidden" data-tab="execution" id="tabexecution">Execution</ui-tab>
|
|
124
125
|
<ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
|
|
126
|
+
<ui-last ><a class="logo" href=".."></a></ui-last>
|
|
125
127
|
</ui-tabbar>
|
|
126
128
|
<ui-content>
|
|
127
129
|
<ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
|
|
@@ -187,8 +189,6 @@
|
|
|
187
189
|
<button name="state_start" title='start' style='display:none'>Start</button>
|
|
188
190
|
<button name="state_stop" title='stop' style='display:none'>Stop</button>
|
|
189
191
|
<span id="state_extended" style='display:none'>
|
|
190
|
-
<span> / </span>
|
|
191
|
-
<button name="state_replay" title='replay' style='display:none'>Replay</button>
|
|
192
192
|
<span> / </span>
|
|
193
193
|
<button name="state_abandon" title='abandon' style='display:none'>Abandon</button>
|
|
194
194
|
</span>
|
data/cockpit/js/edit.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
document.addEventListener('graph:changed', function (e) {
|
|
2
|
+
$("button[name=save]").prop("disabled",false);
|
|
3
|
+
}, false);
|
|
4
|
+
document.addEventListener('parameters:changed', function (e) {
|
|
5
|
+
$("button[name=save]").prop("disabled",false);
|
|
6
|
+
}, false);
|
|
7
|
+
|
|
8
|
+
$(document).ready(function() {
|
|
9
|
+
$("button[name=save]").click(function(){
|
|
10
|
+
var def = new $.Deferred();
|
|
11
|
+
def.done(function(name,testset) {
|
|
12
|
+
$.ajax({
|
|
13
|
+
url: $('body').attr('current-save') + ($('body').attr('current-save-dir') ? ($('body').attr('current-save-dir') + '/').replace(/\/+/,'/') : '') + name + '.xml',
|
|
14
|
+
type: 'PUT',
|
|
15
|
+
contentType: 'application/xml',
|
|
16
|
+
data: testset.serializePrettyXML(),
|
|
17
|
+
headers: { 'Content-ID': 'content' },
|
|
18
|
+
success: function() {
|
|
19
|
+
$("button[name=save]").prop("disabled",true);
|
|
20
|
+
$("#lastsavedline").removeClass('hidden');
|
|
21
|
+
var dt = new Date();
|
|
22
|
+
var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
|
|
23
|
+
$("#lastsaved").text(time);
|
|
24
|
+
},
|
|
25
|
+
error: function() {
|
|
26
|
+
alert('File was moved or deleted. Save testset to disk.');
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
get_testset(def);
|
|
31
|
+
});
|
|
32
|
+
});
|
data/cockpit/js/instance.js
CHANGED
|
@@ -91,19 +91,19 @@ function cockpit() { //{{{
|
|
|
91
91
|
$("button[name=savesvgfile]").click(function(){ save_svgfile(); });
|
|
92
92
|
$("button[name=state_start]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");start_instance(); });
|
|
93
93
|
$("button[name=state_stop]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");stop_instance(); });
|
|
94
|
-
$("button[name=state_replay]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");replay_instance(); });
|
|
95
94
|
$("button[name=state_abandon]").click(function(){ aba_instance(); });
|
|
96
95
|
$("input[name=votecontinue]").click(check_subscription);
|
|
97
96
|
$("input[name=testsetfile]").change(load_testsetfile_after);
|
|
98
97
|
$("input[name=modelfile]").change(load_modelfile_after);
|
|
99
98
|
|
|
100
99
|
$.ajax({
|
|
101
|
-
url: $('body').attr('current-templates')
|
|
102
|
-
dataType: '
|
|
100
|
+
url: $('body').attr('current-templates'),
|
|
101
|
+
dataType: 'json',
|
|
103
102
|
success: function(res){
|
|
104
|
-
$(
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
$(res).each(function(){
|
|
104
|
+
if (this.type == 'file') {
|
|
105
|
+
$('#templates').append($("<div class='menuitem'></div>").text(this.name.replace(/\.xml/,'')));
|
|
106
|
+
}
|
|
107
107
|
});
|
|
108
108
|
var q = $.parseQuerySimple();
|
|
109
109
|
if (q.min || q.min == "") {
|
|
@@ -157,7 +157,7 @@ function cockpit() { //{{{
|
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
159
|
$.ajax({
|
|
160
|
-
url:
|
|
160
|
+
url: "transformations.xml",
|
|
161
161
|
dataType: 'xml',
|
|
162
162
|
success: function(res){
|
|
163
163
|
$('transformation',res).each(function(){
|
|
@@ -631,7 +631,7 @@ function monitor_instance_transformation() {// {{{
|
|
|
631
631
|
var url = $('body').attr('current-instance');
|
|
632
632
|
$.ajax({
|
|
633
633
|
type: "GET",
|
|
634
|
-
url: url + "/properties/attributes/modeltype",
|
|
634
|
+
url: url + "/properties/attributes/modeltype/",
|
|
635
635
|
success: function(res){
|
|
636
636
|
$("#currentmodel").text(res);
|
|
637
637
|
},
|
|
@@ -657,17 +657,21 @@ function monitor_instance_pos() {// {{{
|
|
|
657
657
|
function monitor_instance_running(content,event) {// {{{
|
|
658
658
|
if (save['state'] == "stopping") return;
|
|
659
659
|
if (event == "calling") {
|
|
660
|
-
save['activity_states'][content
|
|
661
|
-
|
|
662
|
-
}
|
|
663
|
-
if (event == "manipulating") {
|
|
664
|
-
if (!save['activity_states'][content.activity_uuid]) {
|
|
660
|
+
if (!save['activity_states'][content['activity-uuid']]) {
|
|
661
|
+
save['activity_states'][content['activity-uuid']] = true
|
|
665
662
|
format_visual_add(content.activity,"active")
|
|
666
663
|
}
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
664
|
+
} else if (event == "manipulating") {
|
|
665
|
+
if (!save['activity_states'][content['activity-uuid']]) {
|
|
666
|
+
save['activity_states'][content['activity-uuid']] = true
|
|
667
|
+
format_visual_add(content.activity,"active")
|
|
668
|
+
}
|
|
669
|
+
} else if (event == "done") {
|
|
670
|
+
if (save['activity_states'][content['activity-uuid']]) {
|
|
671
|
+
save['activity_states'][content['activity-uuid']] = true
|
|
672
|
+
format_visual_remove(content.activity,"active")
|
|
673
|
+
setTimeout(() => {delete save['activity_states'][content['activity-uuid']]},5000);
|
|
674
|
+
}
|
|
671
675
|
}
|
|
672
676
|
} // }}}
|
|
673
677
|
function monitor_instance_state_change(notification) { //{{{
|
|
@@ -699,19 +703,16 @@ function monitor_instance_state_change(notification) { //{{{
|
|
|
699
703
|
$('#state_extended').show();
|
|
700
704
|
$("button[name=state_start]").show();
|
|
701
705
|
$("button[name=state_stop]").hide();
|
|
702
|
-
$("button[name=state_replay]").show();
|
|
703
706
|
$("button[name=state_abandon]").show();
|
|
704
707
|
} else if (notification == "running") {
|
|
705
708
|
$('#state_extended').hide();
|
|
706
709
|
$("button[name=state_start]").hide();
|
|
707
710
|
$("button[name=state_stop]").show();
|
|
708
|
-
$("button[name=state_replay]").hide();
|
|
709
711
|
$("button[name=state_abandon]").hide();
|
|
710
712
|
} else {
|
|
711
713
|
$('#state_extended').hide();
|
|
712
714
|
$("button[name=state_start]").hide();
|
|
713
715
|
$("button[name=state_stop]").hide();
|
|
714
|
-
$("button[name=state_replay]").hide();
|
|
715
716
|
$("button[name=state_abandon]").hide();
|
|
716
717
|
}
|
|
717
718
|
|
|
@@ -720,6 +721,8 @@ function monitor_instance_state_change(notification) { //{{{
|
|
|
720
721
|
// remove all markings with state change
|
|
721
722
|
if (save['graph_adaptor'] && save['graph_adaptor'].illustrator) {
|
|
722
723
|
save['graph_adaptor'].illustrator.get_elements().removeClass('marked');
|
|
724
|
+
localStorage.removeItem('marked');
|
|
725
|
+
localStorage.removeItem('marked_from');
|
|
723
726
|
}
|
|
724
727
|
|
|
725
728
|
if (notification != "ready" && notification != "stopped" && notification != "running") {
|
|
@@ -774,26 +777,17 @@ function start_instance() {// {{{
|
|
|
774
777
|
var url = $('body').attr('current-instance');
|
|
775
778
|
$.ajax({
|
|
776
779
|
type: "PUT",
|
|
777
|
-
url: url + "/properties/state",
|
|
780
|
+
url: url + "/properties/state/",
|
|
778
781
|
data: ({value: "running"}),
|
|
779
782
|
error: report_failure
|
|
780
783
|
});
|
|
781
784
|
}// }}}
|
|
782
|
-
function replay_instance() {// {{{
|
|
783
|
-
var url = $('body').attr('current-instance');
|
|
784
|
-
$.ajax({
|
|
785
|
-
type: "PUT",
|
|
786
|
-
url: url + "/properties/state",
|
|
787
|
-
data: ({value: "replaying"}),
|
|
788
|
-
error: report_failure
|
|
789
|
-
});
|
|
790
|
-
}// }}}
|
|
791
785
|
function aba_instance() {// {{{
|
|
792
786
|
monitor_instance_state_change('abandoned');
|
|
793
787
|
var url = $('body').attr('current-instance');
|
|
794
788
|
$.ajax({
|
|
795
789
|
type: "PUT",
|
|
796
|
-
url: url + "/properties/state",
|
|
790
|
+
url: url + "/properties/state/",
|
|
797
791
|
data: ({value: "abandoned"}),
|
|
798
792
|
error: report_failure
|
|
799
793
|
});
|
|
@@ -802,7 +796,7 @@ function stop_instance() {// {{{
|
|
|
802
796
|
var url = $('body').attr('current-instance');
|
|
803
797
|
$.ajax({
|
|
804
798
|
type: "PUT",
|
|
805
|
-
url: url + "/properties/state",
|
|
799
|
+
url: url + "/properties/state/",
|
|
806
800
|
data: ({value: "stopping"}),
|
|
807
801
|
error: report_failure
|
|
808
802
|
});
|
|
@@ -951,7 +945,7 @@ async function set_testset(testset,exec) {// {{{
|
|
|
951
945
|
success: function(res){
|
|
952
946
|
$.ajax({
|
|
953
947
|
type: "PUT",
|
|
954
|
-
url: url + "/properties/state",
|
|
948
|
+
url: url + "/properties/state/",
|
|
955
949
|
data: ({value: res}),
|
|
956
950
|
error: report_failure,
|
|
957
951
|
success: function(res){
|
|
@@ -1015,7 +1009,11 @@ function load_testset(exec) {// {{{
|
|
|
1015
1009
|
var name = $("#templates div.menuitem[data-selected=selected]").text();
|
|
1016
1010
|
var url;
|
|
1017
1011
|
if (name) {
|
|
1018
|
-
|
|
1012
|
+
if ($('body').attr('current-templates').match(/\?/)) {
|
|
1013
|
+
url = $('body').attr('current-templates').replace(/\?/,name + '.xml?');
|
|
1014
|
+
} else {
|
|
1015
|
+
url = $('body').attr('current-templates') + name + ".xml";
|
|
1016
|
+
}
|
|
1019
1017
|
} else {
|
|
1020
1018
|
if ($('body').attr('load-testset').length > 0) {
|
|
1021
1019
|
url = $('body').attr('load-testset');
|
|
@@ -1049,11 +1047,11 @@ function load_modeltype() {// {{{
|
|
|
1049
1047
|
$.ajax({
|
|
1050
1048
|
cache: false,
|
|
1051
1049
|
dataType: 'xml',
|
|
1052
|
-
url:
|
|
1050
|
+
url: name + ".xml",
|
|
1053
1051
|
success: function(res){
|
|
1054
1052
|
$.ajax({
|
|
1055
1053
|
type: "PUT",
|
|
1056
|
-
url: url + "/properties/attributes/modeltype",
|
|
1054
|
+
url: url + "/properties/attributes/modeltype/",
|
|
1057
1055
|
data: ({value: name}),
|
|
1058
1056
|
success: function(){
|
|
1059
1057
|
set_testset(res,false);
|