cpee 2.1.5 → 2.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cockpit/css/ui.css +14 -7
- data/cockpit/edit.html +26 -23
- data/cockpit/index.html +25 -22
- data/cockpit/js/instance.js +118 -18
- data/cockpit/model.html +0 -8
- data/cpee.gemspec +1 -1
- data/server/routing/end.pid +1 -1
- data/server/routing/forward-events.pid +1 -1
- data/server/routing/forward-votes.pid +1 -1
- data/server/routing/persist.pid +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37a2b6910315c8913216a368e40556013da8a33e5887adb75729a52ead89daba
|
4
|
+
data.tar.gz: 93b34b46c2e9db0586ce251a51e388f668b128cf497cb1ba95920cbe5424e09b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6ed4c4157ebb113589f14c1ab020c4199b30b3e673547b48522cf7cc901a4cbfb70b3ffeb7c21f942df2e151d474a5f7662f64ed1fff4ac60005424e403e83f
|
7
|
+
data.tar.gz: 87d605938e321c920c969aaf525e6fb7213e9eeef18ef99884175e5d75d14e25f793f1953d55b79dccce61e8270c5d222061c9d10c75fc18d4af9df3726df23d
|
data/cockpit/css/ui.css
CHANGED
@@ -129,11 +129,13 @@ ui-tabbed ui-tabbar ui-behind button {
|
|
129
129
|
#areaendpoints button.relaxngui_control { display: none; }
|
130
130
|
#areaattributes button.relaxngui_control { display: none; }
|
131
131
|
|
132
|
+
#areainstance { height: 100%; }
|
133
|
+
#areainstance > div { display: flex; height: 100%; }
|
132
134
|
#areainstance input[type=file] { display: none; }
|
133
|
-
#areainstance div.section {
|
134
|
-
#areainstance div.section:nth-child(1) { padding: 0 0.5em 0 0; white-space: nowrap; }
|
135
|
-
#areainstance div.section:nth-child(2) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0.5em; white-space: nowrap; }
|
136
|
-
#areainstance div.section:nth-child(3) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0 0 0.5em; white-space: nowrap; }
|
135
|
+
#areainstance div.section { vertical-align: middle; height: 100%; }
|
136
|
+
#areainstance div.section:nth-child(1) { flex: 0 0 auto; padding: 0 0.5em 0 0; white-space: nowrap; }
|
137
|
+
#areainstance div.section:nth-child(2) { flex: 0 0 auto; border-left: 1px solid var(--x-ui-border-color); padding: 0 0.5em; white-space: nowrap; }
|
138
|
+
#areainstance div.section:nth-child(3) { flex: 1 1 auto; border-left: 1px solid var(--x-ui-border-color); padding: 0 0 0 0.5em; white-space: nowrap; }
|
137
139
|
|
138
140
|
#areainstance div.section:nth-child(1) > div:nth-child(2) { white-space: normal; text-align: right; }
|
139
141
|
|
@@ -144,9 +146,14 @@ ui-tabbed ui-tabbar ui-behind button {
|
|
144
146
|
#areainstance div.section:nth-child(1) button[name=loadtestsetfile] { white-space: normal; width: 10em; height: 3.5em; margin-left: 0.2em; }
|
145
147
|
#areainstance div.section:nth-child(1) button[name=loadmodelfile] { white-space: normal; width: 10em; height: 2em; margin-top: 0.2em; }
|
146
148
|
|
147
|
-
#areainstance div.section:nth-child(2) button { white-space: normal; width: 6em; height:
|
148
|
-
|
149
|
-
#areainstance div.section:nth-child(3)
|
149
|
+
#areainstance div.section:nth-child(2) button { white-space: normal; width: 6em; height: 5.7em; vertical-align: middle; margin: 0; padding: 0; }
|
150
|
+
|
151
|
+
#areainstance div.section:nth-child(3) { overflow-y: scroll; }
|
152
|
+
#areainstance div.section:nth-child(3) strong { margin:0; padding:0; white-space: normal; font-size: 1em; }
|
153
|
+
#areainstance div.section:nth-child(3) > div:not(:first-child) { padding-top: 0.5em; }
|
154
|
+
#areainstance div.section:nth-child(3) > div { padding-bottom: 0.2em; }
|
155
|
+
#areainstance div.section:nth-child(3) select { margin-left: 1em; }
|
156
|
+
#areainstance div.section:nth-child(3) div.additional { margin-left: 1em; }
|
150
157
|
|
151
158
|
#areaexecution input { padding: 0; margin:0; }
|
152
159
|
#areaexecution table.x-ui-compact { width: 100%; }
|
data/cockpit/edit.html
CHANGED
@@ -144,29 +144,32 @@
|
|
144
144
|
</table>
|
145
145
|
</ui-area> <!--}}}-->
|
146
146
|
<ui-area data-belongs-to-tab="instance" id="areainstance" class="inactive"> <!--{{{-->
|
147
|
-
<div
|
148
|
-
<div>
|
149
|
-
<
|
150
|
-
<
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
<
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
147
|
+
<div>
|
148
|
+
<div class='section'>
|
149
|
+
<div>
|
150
|
+
<form id='fuckchrome'>
|
151
|
+
<input type='file' name='testsetfile' id='testsetfile'/>
|
152
|
+
</form>
|
153
|
+
<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>
|
154
|
+
<button title='a testset includes various settings, subscriptions or a model' name="loadtestsetfile">load testset</button>
|
155
|
+
</div>
|
156
|
+
<div>
|
157
|
+
<input type='file' name='modelfile' id='modelfile'/>
|
158
|
+
<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>
|
159
|
+
</div>
|
160
|
+
</div><div class='section'>
|
161
|
+
<a id="savetestsetfile" href="" download=""></a>
|
162
|
+
<a id="savesvgfile" href="" download=""></a>
|
163
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savetestsetfile">save testset</button>
|
164
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savesvgfile">save svg graph</button>
|
165
|
+
</div><div class='section' id='modifiers'>
|
166
|
+
<template id="item">
|
167
|
+
<div>
|
168
|
+
<div class='title'><strong></strong></div>
|
169
|
+
<div class='select'><select/></div>
|
170
|
+
<div class='additional'></div>
|
171
|
+
</div>
|
172
|
+
</template>
|
170
173
|
</div>
|
171
174
|
</div>
|
172
175
|
</ui-area> <!--}}}-->
|
data/cockpit/index.html
CHANGED
@@ -146,28 +146,31 @@
|
|
146
146
|
</table>
|
147
147
|
</ui-area> <!--}}}-->
|
148
148
|
<ui-area data-belongs-to-tab="instance" id="areainstance" class="inactive"> <!--{{{-->
|
149
|
-
<div
|
150
|
-
<div>
|
151
|
-
<
|
152
|
-
<
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
<
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
149
|
+
<div>
|
150
|
+
<div class='section'>
|
151
|
+
<div>
|
152
|
+
<form id='fuckchrome'>
|
153
|
+
<input type='file' name='testsetfile' id='testsetfile'/>
|
154
|
+
</form>
|
155
|
+
<button title='a template includes various settings, subscriptions or a (partial) model' name="loadtestset">load template</button><button title='a testset includes various settings, subscriptions or a model' name="loadtestsetfile">load testset</button>
|
156
|
+
</div>
|
157
|
+
<div>
|
158
|
+
<input type='file' name='modelfile' id='modelfile'/>
|
159
|
+
<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>
|
160
|
+
</div>
|
161
|
+
</div><div class='section'>
|
162
|
+
<a id="savetestsetfile" href="" download=""></a>
|
163
|
+
<a id="savesvgfile" href="" download=""></a>
|
164
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savetestsetfile">save testset</button>
|
165
|
+
<button title='a testset includes various settings, subscriptions and a model' name="savesvgfile">save svg graph</button>
|
166
|
+
</div><div class='section' id='modifiers'>
|
167
|
+
<template id="item">
|
168
|
+
<div>
|
169
|
+
<div class='title'><strong></strong></div>
|
170
|
+
<div class='select'><select/></div>
|
171
|
+
<div class='additional'></div>
|
172
|
+
</div>
|
173
|
+
</template>
|
171
174
|
</div>
|
172
175
|
</div>
|
173
176
|
</ui-area> <!--}}}-->
|
data/cockpit/js/instance.js
CHANGED
@@ -28,6 +28,8 @@ function global_init() {
|
|
28
28
|
save['details'] = undefined;
|
29
29
|
save['details_target'] = undefined;
|
30
30
|
save['instance_pos'] = [];
|
31
|
+
save['modifiers'] = {};
|
32
|
+
save['modifiers_active'] = {};
|
31
33
|
node_state = {};
|
32
34
|
}
|
33
35
|
|
@@ -95,6 +97,7 @@ function cockpit() { //{{{
|
|
95
97
|
$("input[name=votecontinue]").click(check_subscription);
|
96
98
|
$("input[name=testsetfile]").change(load_testsetfile_after);
|
97
99
|
$("input[name=modelfile]").change(load_modelfile_after);
|
100
|
+
$("#modifiers").on('change','div.select select',function(e){ modifiers_update(e); });
|
98
101
|
|
99
102
|
$.ajax({
|
100
103
|
url: $('body').attr('current-templates'),
|
@@ -276,7 +279,6 @@ function sse() { //{{{
|
|
276
279
|
break;
|
277
280
|
case 'attributes':
|
278
281
|
monitor_instance_values("attributes");
|
279
|
-
monitor_instance_transformation();
|
280
282
|
if (!suspended_monitoring) { // or else it would load twice, because dsl changes also trigger
|
281
283
|
if (save['graph_theme'] != data.content.values.theme) {
|
282
284
|
monitor_graph_change(true);
|
@@ -313,7 +315,6 @@ function sse() { //{{{
|
|
313
315
|
monitor_instance_values("dataelements");
|
314
316
|
monitor_instance_values("endpoints");
|
315
317
|
monitor_instance_values("attributes");
|
316
|
-
monitor_instance_transformation();
|
317
318
|
monitor_instance_dsl();
|
318
319
|
monitor_instance_state();
|
319
320
|
} //}}}
|
@@ -444,6 +445,11 @@ function monitor_instance_values(val) {// {{{
|
|
444
445
|
});
|
445
446
|
});
|
446
447
|
} else if(val == "attributes") {
|
448
|
+
if ($('#modifiers > div').length == 0) {
|
449
|
+
modifiers_display().then(modifiers_select);
|
450
|
+
} else {
|
451
|
+
modifiers_select();
|
452
|
+
}
|
447
453
|
var text = $(" > attributes > info",res).text() + " (" + url.replace(/\/$/,'').split(/[\\/]/).pop() + ")";
|
448
454
|
$('#title').text(text);
|
449
455
|
document.title = text;
|
@@ -632,19 +638,6 @@ function monitor_instance_state() {// {{{
|
|
632
638
|
}
|
633
639
|
});
|
634
640
|
}// }}}
|
635
|
-
function monitor_instance_transformation() {// {{{
|
636
|
-
var url = $('body').attr('current-instance');
|
637
|
-
$.ajax({
|
638
|
-
type: "GET",
|
639
|
-
url: url + "/properties/attributes/modeltype/",
|
640
|
-
success: function(res){
|
641
|
-
$("#currentmodel").text(res);
|
642
|
-
},
|
643
|
-
error: function() {
|
644
|
-
$("#currentmodel").text('???');
|
645
|
-
}
|
646
|
-
});
|
647
|
-
}// }}}
|
648
641
|
|
649
642
|
function monitor_instance_pos() {// {{{
|
650
643
|
var url = $('body').attr('current-instance');
|
@@ -1159,14 +1152,15 @@ async function load_testset_handlers(url,testset,vals) {// {{{
|
|
1159
1152
|
if ($("*",han).length == 0) {
|
1160
1153
|
$.ajax({
|
1161
1154
|
type: "DELETE",
|
1162
|
-
url: url + "/notifications/subscriptions/" + vals[suburl]
|
1155
|
+
url: url + "/notifications/subscriptions/" + vals[suburl] + '/'
|
1163
1156
|
})
|
1157
|
+
delete vals[suburl];
|
1164
1158
|
} else {
|
1165
1159
|
let inp = load_testset_extract_handlers([],han,suburl);
|
1166
1160
|
promises.push(
|
1167
1161
|
$.ajax({
|
1168
1162
|
type: "PUT",
|
1169
|
-
url: url + "/notifications/subscriptions/" + vals[suburl],
|
1163
|
+
url: url + "/notifications/subscriptions/" + vals[suburl] + '/',
|
1170
1164
|
data: inp.join('&')
|
1171
1165
|
})
|
1172
1166
|
)
|
@@ -1285,7 +1279,6 @@ function format_visual_vote_clear() {//{{{
|
|
1285
1279
|
|
1286
1280
|
function format_instance_pos() { //{{{
|
1287
1281
|
$(save['instance_pos']).each(function(){
|
1288
|
-
console.log(this);
|
1289
1282
|
var taskname = this.nodeName;
|
1290
1283
|
var taskstate = this.textContent;
|
1291
1284
|
format_visual_add(taskname,save['state'] == 'running' ? (taskstate == 'at' ? 'active' : 'passive') : 'passive');
|
@@ -1378,6 +1371,113 @@ function append_to_log(what,type,message) {//{{{
|
|
1378
1371
|
}
|
1379
1372
|
}//}}}
|
1380
1373
|
|
1374
|
+
async function modifiers_display() {
|
1375
|
+
let promises = [];
|
1376
|
+
let rep = $('body').attr('current-resources');
|
1377
|
+
$('#modifiers > div').remove();
|
1378
|
+
|
1379
|
+
promises.push(
|
1380
|
+
$.ajax({
|
1381
|
+
url: rep + 'modifiers/'
|
1382
|
+
}).then(async function(res) {
|
1383
|
+
let ipromises = [];
|
1384
|
+
$('resource',res).each(function(_,r) {
|
1385
|
+
ipromises.push(
|
1386
|
+
$.ajax({
|
1387
|
+
url: rep + 'modifiers/' + $(r).text()
|
1388
|
+
}).then(async function(ses){
|
1389
|
+
let clone = document.importNode(document.querySelector('#modifiers template').content,true);
|
1390
|
+
let t = $(r).text();
|
1391
|
+
$('> div',clone).attr('data-resource',t);
|
1392
|
+
$('div.title *',clone).text(decodeURIComponent(t));
|
1393
|
+
|
1394
|
+
let cpromises = [];
|
1395
|
+
$('resource',ses).each(function(_,s) {
|
1396
|
+
let opt = $('<option/>');
|
1397
|
+
opt.text(decodeURIComponent($(s).text()));
|
1398
|
+
$('div.select select',clone).append(opt);
|
1399
|
+
|
1400
|
+
cpromises.push(
|
1401
|
+
$.ajax({
|
1402
|
+
url: rep + 'modifiers/' + $(r).text() + '/' + $(s).text() + '/condition.json'
|
1403
|
+
}).then(function(tes){
|
1404
|
+
save['modifiers'][$(r).text() + '/' + $(s).text()] = tes;
|
1405
|
+
})
|
1406
|
+
);
|
1407
|
+
|
1408
|
+
});
|
1409
|
+
$(clone).insertBefore($('#modifiers template'));
|
1410
|
+
|
1411
|
+
await Promise.all(cpromises);
|
1412
|
+
})
|
1413
|
+
);
|
1414
|
+
});
|
1415
|
+
await Promise.all(ipromises);
|
1416
|
+
})
|
1417
|
+
);
|
1418
|
+
await Promise.all(promises);
|
1419
|
+
}
|
1420
|
+
|
1421
|
+
function modifiers_select(e) {
|
1422
|
+
let atts = {}
|
1423
|
+
let attr = save['attributes'].save();
|
1424
|
+
$('> attributes > *',attr).each(function(_,s){
|
1425
|
+
atts[s.nodeName] = $(s).text();
|
1426
|
+
});
|
1427
|
+
$('#modifiers div[data-resource]').each(function(_,r){
|
1428
|
+
$('select option',r).each(function(_,s){
|
1429
|
+
let where = $(r).attr('data-resource') + '/' + encodeURIComponent($(s).text());
|
1430
|
+
let cond = save['modifiers'][where];
|
1431
|
+
let success = true;
|
1432
|
+
for (x in cond) {
|
1433
|
+
if (cond[x] != atts[x]) { success = false; }
|
1434
|
+
}
|
1435
|
+
if (success) {
|
1436
|
+
save['modifiers_active'][$(r).attr('data-resource')] = $(s).text();
|
1437
|
+
$('select',r).val($(s).text());
|
1438
|
+
}
|
1439
|
+
});
|
1440
|
+
});
|
1441
|
+
}
|
1442
|
+
|
1443
|
+
function modifiers_update_patch(url,now) {
|
1444
|
+
$.ajax({
|
1445
|
+
url: url + '/' + now + '/patch.xml',
|
1446
|
+
success: function(res) {
|
1447
|
+
set_testset(res,false);
|
1448
|
+
}
|
1449
|
+
});
|
1450
|
+
}
|
1451
|
+
function modifiers_update_unpatch(url,last,now) {
|
1452
|
+
$.ajax({
|
1453
|
+
url: url + '/' + last + '/unpatch.xml',
|
1454
|
+
success: function(res) {
|
1455
|
+
set_testset(res,false).then(function() {
|
1456
|
+
modifiers_update_patch(url,now);
|
1457
|
+
});
|
1458
|
+
},
|
1459
|
+
error: function() {
|
1460
|
+
modifiers_update_patch(url,now);
|
1461
|
+
}
|
1462
|
+
});
|
1463
|
+
}
|
1464
|
+
|
1465
|
+
function modifiers_update(e) {
|
1466
|
+
// when change path
|
1467
|
+
// unpach from what changed
|
1468
|
+
// show ui
|
1469
|
+
let rep = $('body').attr('current-resources');
|
1470
|
+
let top = $(e.target).parents('div[data-resource]').attr('data-resource');
|
1471
|
+
let last = save['modifiers_active'][top];
|
1472
|
+
let now = $(e.target).val();
|
1473
|
+
|
1474
|
+
if (last) {
|
1475
|
+
modifiers_update_unpatch(rep + 'modifiers/' + top,last,now);
|
1476
|
+
} else {
|
1477
|
+
modifiers_update_patch(rep + 'modifiers/' + top,now);
|
1478
|
+
}
|
1479
|
+
}
|
1480
|
+
|
1381
1481
|
function report_failure(){}
|
1382
1482
|
|
1383
1483
|
function ui_pos(e,bl) {
|
data/cockpit/model.html
CHANGED
@@ -151,14 +151,6 @@
|
|
151
151
|
<button title='a testset includes various settings, subscriptions and a model' name="savesvgfile">save SVG</button>
|
152
152
|
</div>
|
153
153
|
</div>
|
154
|
-
<div class='section'>
|
155
|
-
<div>
|
156
|
-
Current model: <span id='currentmodel'></span>
|
157
|
-
</div>
|
158
|
-
<div>
|
159
|
-
<button title='a testset includes various settings, subscriptions and a model' name="loadmodeltype">set model type</button>
|
160
|
-
</div>
|
161
|
-
</div>
|
162
154
|
</ui-area> <!--}}}-->
|
163
155
|
<ui-area data-belongs-to-tab="dataelements" id="areadataelements" class="inactive"> <!--{{{-->
|
164
156
|
<button title='add entry'><span>New</span></button>
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.1.
|
3
|
+
s.version = "2.1.6"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0"
|
6
6
|
s.summary = "Preliminary release of cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
data/server/routing/end.pid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
742413
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
742401
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
742405
|
data/server/routing/persist.pid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
742409
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: tools
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-06-
|
13
|
+
date: 2021-06-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: riddl
|