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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c55f39b3a28510aa125fab8be30c6abefcda2ecea411b37193c85659ce87ad60
4
- data.tar.gz: 28efcb5ebe9c46f4b1c0e107f557b7ac4ccc295d254c9a5515812f94420d8e1b
3
+ metadata.gz: 37a2b6910315c8913216a368e40556013da8a33e5887adb75729a52ead89daba
4
+ data.tar.gz: 93b34b46c2e9db0586ce251a51e388f668b128cf497cb1ba95920cbe5424e09b
5
5
  SHA512:
6
- metadata.gz: 80afb6a0631c42f8ce45f90b545067f85384c32da9964f61857a07314ae1252dbfb19f833581de426c788f2cf2fe52d409451e44b71f63aa1bf286c922f6c80f
7
- data.tar.gz: b15f56166f86bd72b791d8ef23ccb41d0eec8d840073777a2315e18993a2e88db071472e956c3b5f43afce5189461111b3326bdc7e9f48c3c7cd7d37ae0eb4fa
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 { display: table-cell; vertical-align: middle; }
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: 4.5em; vertical-align: middle; margin: 0; padding: 0; }
148
- #areainstance div.section:nth-child(3) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
149
- #areainstance div.section:nth-child(3) button[name=loadmodeltype] { white-space: normal; width: 10em; height: 2em; }
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 class='section'>
148
- <div>
149
- <form id='fuckchrome'>
150
- <input type='file' name='testsetfile' id='testsetfile'/>
151
- </form>
152
- <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>
153
- <button title='a testset includes various settings, subscriptions or a model' name="loadtestsetfile">load testset</button>
154
- </div>
155
- <div>
156
- <input type='file' name='modelfile' id='modelfile'/>
157
- <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>
158
- </div>
159
- </div><div class='section'>
160
- <a id="savetestsetfile" href="" download=""></a>
161
- <a id="savesvgfile" href="" download=""></a>
162
- <button title='a testset includes various settings, subscriptions and a model' name="savetestsetfile">save testset</button>
163
- <button title='a testset includes various settings, subscriptions and a model' name="savesvgfile">save svg graph</button>
164
- </div><div class='section'>
165
- <div>
166
- Current model: <span id='currentmodel'></span>
167
- </div>
168
- <div>
169
- <button title='a testset includes various settings, subscriptions and a model' name="loadmodeltype">set model type</button>
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 class='section'>
150
- <div>
151
- <form id='fuckchrome'>
152
- <input type='file' name='testsetfile' id='testsetfile'/>
153
- </form>
154
- <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>
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'>
166
- <div>
167
- Current model: <span id='currentmodel'></span>
168
- </div>
169
- <div>
170
- <button title='a testset includes various settings, subscriptions and a model' name="loadmodeltype">set model type</button>
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> <!--}}}-->
@@ -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.5"
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."
@@ -1 +1 @@
1
- 431893
1
+ 742413
@@ -1 +1 @@
1
- 431878
1
+ 742401
@@ -1 +1 @@
1
- 431885
1
+ 742405
@@ -1 +1 @@
1
- 431889
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.5
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-14 00:00:00.000000000 Z
13
+ date: 2021-06-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl