cpee 1.4.28 → 1.4.29

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: cb0566c97a5e94d22d7514cec30e8aedb3a1f869a58f9db36e2101395bb23f35
4
- data.tar.gz: 76766b11cfe15848f0c1b072f20c0fe5d8b5b33cb672d4bca97a525e7c497c6c
3
+ metadata.gz: 69167cf7972c5d782e186b52c9bc447b01ca491c3c711a483d6abf50249d9f46
4
+ data.tar.gz: e8354ec5bdd70105d979acf467de51d3368b050add7e86e3e6bf848c789bb89e
5
5
  SHA512:
6
- metadata.gz: b7803a310214036f8381239be726703c80afa69757b278dfac2e17eac42d2f00e6c094407549c3bbd0ae206a8422dcf96924125bb3e0bffc493a8f113d102a46
7
- data.tar.gz: 4748f4903496f66c666f6ed2b2d01834ad1bbf0f11fbbf8ce3f9533fb94c9b995d76220cadc5f5d4c618a85b3c53ce551024daed8f9b3234c0ecded0c67d8a12
6
+ metadata.gz: 046a33c964cccb7ea6ec83b52abcc2ac9ae44b648c9a45ebf0b8922666493b001df6a6191b0c4cee00720e837cf14d6b171104362aa517223bac393dff4a6079
7
+ data.tar.gz: d4ff60f1b32c7df91303848dac2dc410f02f672dd3c4ee4c7459d82a40cb6b74c7b6a8e5fdfa0b00f0670ec545c8682fdfe62000f49e5b87ee9dd7dd6658f6ea
@@ -0,0 +1,41 @@
1
+ #trackfull {
2
+ display: flex;
3
+ flex-direction:row;
4
+ align-items: stretch;
5
+ height: 100vh;
6
+ }
7
+ #graphcolumn {
8
+ flex: 0 0 auto;
9
+ overflow: auto;
10
+ min-width: 35em;
11
+ border-right: 0 none;
12
+ }
13
+ #trackcolumn {
14
+ flex: 1 1 auto;
15
+ display: flex;
16
+ flex-direction:column;
17
+ align-items: stretch;
18
+ }
19
+
20
+ #trackcolumn iframe {
21
+ flex: 1 1 auto;
22
+ border: 0 none;
23
+ padding: 0;
24
+ margin: 0;
25
+ border-left: 0.1em solid var(--x-ui-border-color);
26
+ border-bottom: 0.1em solid var(--x-ui-border-color);
27
+ }
28
+
29
+ #usage {
30
+ line-height: 2em;
31
+ margin-left: 2em;
32
+ margin-right: 1em;
33
+ }
34
+ #usage button{
35
+ width: 2em;
36
+ height: 2em;
37
+ vertical-align: center;
38
+ }
39
+ #current-instance[href]:after {
40
+ content: "";
41
+ }
data/cockpit/css/ui.css CHANGED
@@ -14,7 +14,7 @@ body {
14
14
  #areanew input {
15
15
  width: 100%;
16
16
  padding: 0.1em 0.5em;
17
- border: 0.1em solid #a1a1a1;
17
+ border: 0.1em solid var(--x-ui-border-color);
18
18
  border-radius: 0;
19
19
  box-sizing: border-box;
20
20
  -moz-box-sizing: border-box;
@@ -49,9 +49,9 @@ ui-tabbed ui-tabbar ui-behind button {
49
49
 
50
50
  #areainstance input[type=file] { display: none; }
51
51
  #areainstance div.section { display: table-cell; vertical-align: middle; }
52
- #areainstance div.section:nth-child(1) { padding: 0 0.5em 0 0; white-space: nowrap; }
53
- #areainstance div.section:nth-child(2) { border-left: 1px solid #a1a1a1; padding: 0 0.5em; white-space: nowrap; }
54
- #areainstance div.section:nth-child(3) { border-left: 1px solid #a1a1a1; padding: 0 0 0 0.5em; white-space: nowrap; }
52
+ #areainstance div.section:nth-child(1) { padding: 0 0.5em 0 0; white-space: nowrap; }
53
+ #areainstance div.section:nth-child(2) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0.5em; white-space: nowrap; }
54
+ #areainstance div.section:nth-child(3) { border-left: 1px solid var(--x-ui-border-color); padding: 0 0 0 0.5em; white-space: nowrap; }
55
55
 
56
56
  #areainstance div.section:nth-child(1) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
57
57
  #areainstance div.section:nth-child(1) button { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
@@ -71,7 +71,7 @@ ui-tabbed ui-tabbar ui-behind button {
71
71
  #areaexecution table.x-ui-compact tbody.debug tr:last-child td { padding-bottom: 0.5em; }
72
72
  #areaexecution table.x-ui-compact tbody.debug tr:last-child td input { vertical-align: middle; }
73
73
  #areaexecution table.x-ui-compact tbody.exe tr:first-child td { padding-top: 0.5em; }
74
- #areaexecution table.x-ui-compact tbody.exe { border-top: 1px solid #a1a1a1; }
74
+ #areaexecution table.x-ui-compact tbody.exe { border-top: 1px solid var(--x-ui-border-color); }
75
75
 
76
76
  #areaexecution table.x-ui-compact tbody.exe td { height: 2.2em; }
77
77
 
@@ -125,7 +125,7 @@ span.vote {
125
125
  #graphcolumn {
126
126
  margin: 0;
127
127
  padding: 0;
128
- border-right: 1px solid #a1a1a1;
128
+ border-right: 1px solid var(--x-ui-border-color);
129
129
  min-width: 9em;
130
130
  }
131
131
  #detailcolumn {
@@ -35,6 +35,8 @@ var sub_more = 'topic' + '=' + 'activity' + '&' +// {{{
35
35
  'events' + '=' + 'change' + '&' +
36
36
  'topic' + '=' + 'attributes' + '&' +
37
37
  'events' + '=' + 'change' + '&' +
38
+ 'topic' + '=' + 'task' + '&' +
39
+ 'events' + '=' + 'instantiation' + '&' +
38
40
  'topic' + '=' + 'transformation' + '&' +
39
41
  'events' + '=' + 'change' + '&' +
40
42
  'topic' + '=' + 'handlerwrapper' + '&' +
@@ -55,6 +57,8 @@ var sub_less = 'topic' + '=' + 'activity' + '&' +// {{{
55
57
  'events' + '=' + 'change' + '&' +
56
58
  'topic' + '=' + 'attributes' + '&' +
57
59
  'events' + '=' + 'change' + '&' +
60
+ 'topic' + '=' + 'task' + '&' +
61
+ 'events' + '=' + 'instantiation' + '&' +
58
62
  'topic' + '=' + 'transformation' + '&' +
59
63
  'events' + '=' + 'change' + '&' +
60
64
  'topic' + '=' + 'handlerwrapper' + '&' +
@@ -90,7 +94,7 @@ function cockpit() { //{{{
90
94
  }
91
95
  if (q.monitor && q.load) {
92
96
  if (q.load.match(/https?:\/\//)) {
93
- $("#predefinedtestsets").attr('data-other',q.load);
97
+ $('body').attr('load-testset',q.load);
94
98
  } else {
95
99
  $("#predefinedtestsets div.menuitem").each(function(k,v){
96
100
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
@@ -100,7 +104,7 @@ function cockpit() { //{{{
100
104
  monitor_instance(q.monitor,$("body").attr('current-repo'),true,false);
101
105
  } else if (q.load) {
102
106
  if (q.load.match(/https?:\/\//)) {
103
- $("#predefinedtestsets").attr('data-other',q.load);
107
+ $('body').attr('load-testset',q.load);
104
108
  } else {
105
109
  $("#predefinedtestsets div.menuitem").each(function(k,v){
106
110
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
@@ -116,7 +120,7 @@ function cockpit() { //{{{
116
120
  monitor_instance(q.monitor,$("body").attr('current-repo'),false,false);
117
121
  } else if (q.exec) {
118
122
  if (q.exec.match(/https?:\/\//)) {
119
- $("#predefinedtestsets").attr('data-other',q.load);
123
+ $('body').attr('load-testset',q.load);
120
124
  } else {
121
125
  $("#predefinedtestsets div.menuitem").each(function(k,v){
122
126
  if ($(v).text() == q.exec) { $(v).attr('data-selected','selected'); }
@@ -234,6 +238,12 @@ function websocket() { //{{{
234
238
  monitor_graph_change(true);
235
239
  }
236
240
  break;
241
+ case 'task':
242
+ if ($('#trackcolumn').length > 0) {
243
+ var details = JSON.parse($('event > notification',data).text());
244
+ $('#trackcolumn').append($('<iframe src="track.html?monitor=' + details.received['CPEE-INSTANCE-URL'].replace(/\/*$/,'/') + '"></iframe>'));
245
+ }
246
+ break;
237
247
  case 'state':
238
248
  monitor_instance_state_change(JSON.parse($('event > notification',data).text()).state);
239
249
  break;
@@ -372,7 +382,9 @@ function monitor_instance_values(val) {// {{{
372
382
  });
373
383
  });
374
384
  } else if(val == "attributes") {
375
- document.title = $(" > value > info",res).text() + " (" + url.replace(/\/$/,'').split(/[\\/]/).pop() + ")";
385
+ var text = $(" > value > info",res).text() + " (" + url.replace(/\/$/,'').split(/[\\/]/).pop() + ")";
386
+ $('#title').text(text);
387
+ document.title = text;
376
388
  }
377
389
  }
378
390
  });
@@ -515,9 +527,15 @@ function monitor_instance_running(notification,event) {// {{{
515
527
  format_visual_remove(parts.activity,"active")
516
528
  } // }}}
517
529
  function monitor_instance_state_change(notification) { //{{{
530
+ if ($('#trackcolumn').length > 0) {
531
+ if (notification == "finished") {
532
+ parent.closeIFrame(window.location.search);
533
+ }
534
+ }
518
535
  if (notification == "ready" || notification == "stopped" || notification == "running") {
519
536
  $("#state button").removeAttr('disabled');
520
537
  }
538
+
521
539
  // sometimes, out of sheer network routingness, stopping comes after stopped, which fucks the UI hard
522
540
  // thus, we are having none of it
523
541
  if (notification == 'stopping' && save['state'] == 'stopped')
@@ -537,9 +555,9 @@ function monitor_instance_state_change(notification) { //{{{
537
555
 
538
556
  var but = "";
539
557
  if (notification == "ready" || notification == "stopped") {
540
- but = " ⇒ <button onclick='$(this).attr(\"disabled\",\"disabled\");start_instance();'>start</button> / <button onclick='$(this).attr(\"disabled\",\"disabled\");sim_instance();'>simulate</button> / <button onclick='aba_instance();'>abandon</button>";
558
+ but = " ⇒ <button onclick='$(this).attr(\"disabled\",\"disabled\");start_instance();' title='start'>⏵</button> / <button onclick='$(this).attr(\"disabled\",\"disabled\");sim_instance();' title='simulate'>🎜</button> / <button onclick='aba_instance();' title='abandon'>⛌</button>";
541
559
  } else if (notification == "running") {
542
- but = " ⇒ <button onclick='$(this).attr(\"disabled\",\"disabled\");stop_instance();'>stop</button>";
560
+ but = " ⇒ <button onclick='$(this).attr(\"disabled\",\"disabled\");stop_instance();' title='stop'>⏸</button>";
543
561
  }
544
562
 
545
563
  // disable all input, also check themes
@@ -710,7 +728,7 @@ function save_svg() {// {{{
710
728
  if (x && x.href && x.href.match(/wfadaptor\.css$/)) {
711
729
  $(x.cssRules).each(function(j,y){
712
730
  var loc = $(gc).find(y.selectorText.replace(/^svg /,''));
713
- loc.attr('style',y.style.cssText);
731
+ loc.attr('style',y.style.cssText + loc.attr('style') + ';');
714
732
  });
715
733
  var loc = $(gc).find('text.super');
716
734
  loc.attr('style',loc.attr('style') + ' display: none');
@@ -854,7 +872,9 @@ function load_testset(exec) {// {{{
854
872
  if (name) {
855
873
  url = $('body').attr('current-testsets') + name + ".xml";
856
874
  } else {
857
- url = $("#predefinedtestsets").attr('data-other');
875
+ if ($('body').attr('load-testset').length > 0) {
876
+ url = $('body').attr('load-testset');
877
+ }
858
878
  }
859
879
  if (url) {
860
880
  $.ajax({
@@ -0,0 +1,8 @@
1
+ function closeIFrame(srch) {
2
+ $('iframe').each(function(i,val){
3
+ if ($(val).attr('src') == 'track.html' + srch) {
4
+ $(val).remove();
5
+ }
6
+ });
7
+ }
8
+
data/cockpit/track.html CHANGED
@@ -44,75 +44,30 @@
44
44
  <link rel="stylesheet" href="/js_libs/ui.css" type="text/css"/>
45
45
 
46
46
  <link rel="stylesheet" href="/js_libs/relaxngui.css" type="text/css"/>
47
- <script>
48
- var lines;
49
- var ws;
50
- var acts = {};
51
- var transitions = [];
52
- var lastpos;
53
47
 
54
- var sub = 'topic' + '=' + 'activity' + '&' +// {{{
55
- 'events' + '=' + 'receiving';// }}}
48
+ <!-- modelling ui -->
49
+ <script type="text/javascript" src="js/wfadaptor.js"></script>
50
+ <link rel="stylesheet" href="css/wfadaptor.css" type="text/css"/>
56
51
 
57
- function websocket(what) { //{{{
58
- var url = $('body').attr('current-instance');
59
- var Socket = "MozWebSocket" in window ? MozWebSocket : WebSocket;
60
- if (ws) ws.close();
61
- ws = new Socket(url.replace(/http/,'ws') + "/notifications/subscriptions/" + what + "/ws/");
62
- ws.onopen = function() {
63
- console.log("monitoring", "opened", "");
64
- };
65
- ws.onmessage = function(e) {
66
- data = $.parseXML(e.data);
67
- if ($('event > topic',data).length > 0) {
68
- switch($('event > topic',data).text()) {
69
- case 'activity':
70
- var data = JSON.parse($('event > notification',data).text());
71
- if (data.endpoint == "https://centurio.work/flow/start/url/") {
72
- var num = parseInt(data.received[0].data.match(/\d+$/)[0]);
73
- console.log(num);
74
- $('#bla1').attr('src','https://centurio.work/flow/graph.html?monitor=' + data.received[0].data);
75
- setTimeout(function(){ $('#bla2').attr('src','https://centurio.work/flow/graph.html?monitor=' + data.received[0].data.replace(/\d+$/,num+1)); }, 2000);
76
- setTimeout(function(){ $('#bla3').attr('src','https://centurio.work/flow/graph.html?monitor=' + data.received[0].data.replace(/\d+$/,num+2)); }, 4000);
77
- }
78
- break;
79
- }
80
- }
81
- if ($('vote > topic',data).length > 0) {
82
- }
83
- };
84
- ws.onclose = function() {
85
- console.log("monitoring", "closed", "server down i assume.");
86
- };
87
- } //}}}
88
-
89
- $(document).ready(function(){
90
- var url = "https://centurio.work/flow/engine/11/";
91
- $('body').attr('current-instance',url);
92
- $.ajax({
93
- type: "POST",
94
- url: url + "/notifications/subscriptions/",
95
- data: sub,
96
- success: function(res){
97
- res = res.unserialize();
98
- $.each(res,function(a,b){
99
- if (b[0] == 'key') {
100
- websocket(b[1]);
101
- }
102
- });
103
- }
104
- });
105
- });
106
- </script>
52
+ <!-- custom stuff, play arround -->
53
+ <script type="text/javascript" src="js/ui.js"></script>
54
+ <script type="text/javascript" src="js/instance.js"></script>
55
+ <script type="text/javascript" src="js/details.js"></script>
56
+ <script type="text/javascript" src="js/parameters.js"></script>
57
+ <script type="text/javascript" src="js/track.js"></script>
58
+ <link rel="stylesheet" href="css/ui.css" type="text/css"/>
59
+ <link rel="stylesheet" href="css/track.css" type="text/css"/>
107
60
  </head>
108
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui" style="display: flex; flex-direction:row; align-items: stretch; height: 100vh;">
109
- <div style="flex: 1 1 auto; display: flex; flex-direction:column; align-items: stretch; height: 100vh">
110
- <iframe style="flex: 1 1 auto;" src="graph.html?monitor=https://centurio.work/flow/engine/11/"></iframe>
111
- <iframe id="bla1" style="flex: 1 1 auto;" src=""></iframe>
112
- </div>
113
- <div style="flex: 1 1 auto; display: flex; flex-direction:column; align-items: stretch; height: 100vh">
114
- <iframe id="bla2" style="flex: 1 1 auto;" src=""></iframe>
115
- <iframe id="bla3" style="flex: 1 1 auto;" src=""></iframe>
116
- </div>
61
+ <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui">
62
+ <div id="trackfull">
63
+ <div id='graphcolumn'>
64
+ <div id="usage">
65
+ <span id="title"></span> | <span id='state'></span>
66
+ </div>
67
+ <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>
68
+ </div>
69
+ <div id='trackcolumn'>
70
+ </div>
71
+ </div>
117
72
  </body>
118
73
  </html>
data/cpee.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.4.28"
3
+ s.version = "1.4.29"
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). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
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: 1.4.28
4
+ version: 1.4.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -118,6 +118,7 @@ files:
118
118
  - cockpit/contrib/transformation1.xsl
119
119
  - cockpit/contrib/transformation2.xsl
120
120
  - cockpit/contrib/tree_example.svg
121
+ - cockpit/css/track.css
121
122
  - cockpit/css/ui.css
122
123
  - cockpit/css/wfadaptor.css
123
124
  - cockpit/graph.html
@@ -125,6 +126,7 @@ files:
125
126
  - cockpit/js/details.js
126
127
  - cockpit/js/instance.js
127
128
  - cockpit/js/parameters.js
129
+ - cockpit/js/track.js
128
130
  - cockpit/js/ui.js
129
131
  - cockpit/js/wfadaptor.js
130
132
  - cockpit/js_libs.zip