cpee 2.1.53 → 2.1.54
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cockpit/css/{resources.css → resources-label.css} +0 -7
- data/cockpit/css/resources-svg.css +20 -0
- data/cockpit/css/ui.css +0 -4
- data/cockpit/edit.html +2 -1
- data/cockpit/graph.html +4 -0
- data/cockpit/index.html +3 -2
- data/cockpit/js/instance.js +117 -136
- data/cockpit/js/wfadaptor.js +0 -27
- data/cockpit/model.html +2 -0
- data/cockpit/themes/compact/theme.js +38 -32
- data/cockpit/themes/control/theme.js +76 -20
- data/cockpit/themes/dataflow/theme.js +45 -39
- data/cockpit/themes/default/theme.js +38 -33
- data/cockpit/themes/extended/theme.js +38 -33
- data/cockpit/themes/felix/theme.js +38 -33
- data/cockpit/themes/model/theme.js +14 -13
- data/cockpit/themes/packed/theme.js +38 -32
- data/cockpit/themes/preset/theme.js +38 -33
- data/cockpit/track.html +4 -0
- data/cpee.gemspec +1 -1
- data/server/routing/end.pid +1 -0
- data/server/routing/forward-events-00.pid +1 -0
- data/server/routing/forward-votes.pid +1 -0
- data/server/routing/persist.pid +1 -0
- metadata +8 -3
@@ -63,11 +63,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
63
63
|
//{{{ Render the details from rng (right hand side of graph tab)
|
64
64
|
this.update_details = function(svgid){
|
65
65
|
var tab = $('#dat_details');
|
66
|
-
var focus_ele = $(':focus',tab);
|
67
|
-
var focus_path = focus_ele.attr('data-relaxngui-path');
|
68
|
-
var focus_pos = focus_ele.prop('selectionStart');
|
69
66
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
70
|
-
tab.empty();
|
71
67
|
if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
|
72
68
|
save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
73
69
|
var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
|
@@ -78,20 +74,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
78
74
|
if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
|
79
75
|
$(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
|
80
76
|
}
|
81
|
-
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
82
77
|
var nn = $X($(node).serializeXML());
|
83
78
|
nn.removeAttr('svg-id');
|
84
79
|
nn.removeAttr('svg-type');
|
85
80
|
nn.removeAttr('svg-subtype');
|
86
81
|
nn.removeAttr('svg-label');
|
82
|
+
|
83
|
+
tab.empty();
|
84
|
+
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
87
85
|
save['details'].content(nn);
|
88
|
-
|
89
|
-
var ele = $('[data-relaxngui-path="' + focus_path + '"]',tab)[0];
|
90
|
-
ele.focus();
|
91
|
-
if (ele.setSelectionRange) {
|
92
|
-
ele.setSelectionRange(focus_pos,focus_pos);
|
93
|
-
}
|
94
|
-
}
|
86
|
+
|
95
87
|
format_visual_forms();
|
96
88
|
}
|
97
89
|
}; //}}}
|
@@ -211,8 +203,17 @@ function WFAdaptorManifestation(adaptor) {
|
|
211
203
|
$(nodes).each(function(key,str) {
|
212
204
|
nodes[key] = $X(str);
|
213
205
|
});
|
206
|
+
let svgids = [];
|
214
207
|
$(nodes).each(function(key,node){
|
215
|
-
|
208
|
+
svgids.push($(node).attr('svg-id'));
|
209
|
+
});
|
210
|
+
svgids.sort((a,b) => {
|
211
|
+
if (a > b) { return -1; }
|
212
|
+
else if (a < b) { return 1; }
|
213
|
+
else { return 0; }
|
214
|
+
});
|
215
|
+
svgids.forEach(svgid => {
|
216
|
+
var target = self.adaptor.description.get_node_by_svg_id(svgid);
|
216
217
|
del_ui_pos(target)
|
217
218
|
self.adaptor.description.remove(null,target);
|
218
219
|
localStorage.removeItem('marked');
|
@@ -385,10 +386,18 @@ function WFAdaptorManifestation(adaptor) {
|
|
385
386
|
},
|
386
387
|
'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
|
387
388
|
'resolve_symbol': function(node) {
|
388
|
-
if($('>
|
389
|
-
|
389
|
+
if ($('> annotations > _context_data_analysis > probes > probe', node).length > 0) {
|
390
|
+
if ($('> code', node).length > 0) {
|
391
|
+
return 'callmanipulate_sensor';
|
392
|
+
} else {
|
393
|
+
return 'call_sensor';
|
394
|
+
}
|
390
395
|
} else {
|
391
|
-
|
396
|
+
if ($('> code', node).length > 0) {
|
397
|
+
return 'callmanipulate';
|
398
|
+
} else {
|
399
|
+
return 'call';
|
400
|
+
}
|
392
401
|
}
|
393
402
|
},
|
394
403
|
'svg': self.adaptor.theme_dir + 'symbols/call.svg'
|
@@ -982,7 +991,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
982
991
|
ret.push({ column: 'Average', value: avg + '%' });
|
983
992
|
}
|
984
993
|
return ret;
|
985
|
-
|
994
|
+
,
|
986
995
|
'svg': self.adaptor.theme_dir + 'symbols/closed_loop.svg'
|
987
996
|
},//}}}
|
988
997
|
'description': self.adaptor.theme_dir + 'rngs/closed_loop.rng',
|
@@ -1586,13 +1595,42 @@ function WFAdaptorManifestation(adaptor) {
|
|
1586
1595
|
'expansion': function(node) {
|
1587
1596
|
return 'vertical';
|
1588
1597
|
},
|
1598
|
+
'resolve_symbol': function(node) {
|
1599
|
+
let alist = []
|
1600
|
+
let plist = []
|
1601
|
+
|
1602
|
+
var regassi = /data\.([a-zA-Z_]+)\s*(=[^=]|\+\=|\-\=|\*\=|\/\=|<<|>>)/g; // we do not have to check for >/< version of stuff as only conditions are in attributes, and conditions can not contain assignments
|
1603
|
+
var reg_not_assi = /data\.([a-zA-Z_]+)\s*/g;
|
1604
|
+
$ ('call > parameters > arguments > *, call > code > *, loop[condition], alternative[condition]',node).each(function(i,n) {
|
1605
|
+
let item;
|
1606
|
+
if (n.hasAttribute('condition')) {
|
1607
|
+
item = n.getAttribute('condition');
|
1608
|
+
} else {
|
1609
|
+
item = n.textContent;
|
1610
|
+
}
|
1611
|
+
if (n.parentNode.nodeName == 'arguments' && item.charAt(0) != '!' ) { return }
|
1612
|
+
|
1613
|
+
let indices = [];
|
1614
|
+
|
1615
|
+
for (const match of item.matchAll(regassi)) {
|
1616
|
+
indices.push(match.index);
|
1617
|
+
alist.push(match[1]);
|
1618
|
+
}
|
1619
|
+
for (const match of item.matchAll(reg_not_assi)) {
|
1620
|
+
const arg1 = match[1];
|
1621
|
+
if (indices.includes(match.index)) { continue; }
|
1622
|
+
if (!alist.includes(arg1)) { plist.push(arg1); }
|
1623
|
+
}
|
1624
|
+
})
|
1625
|
+
if (plist.length > 0) { return 'start_event'; }
|
1626
|
+
},
|
1589
1627
|
'closing_symbol': 'end',
|
1590
1628
|
'col_shift': function(node) {
|
1591
1629
|
return true;
|
1592
1630
|
},
|
1593
1631
|
'svg': self.adaptor.theme_dir + 'symbols/start.svg'
|
1594
1632
|
},//}}}
|
1595
|
-
'description':
|
1633
|
+
'description': self.adaptor.theme_dir + 'rngs/start.rng',
|
1596
1634
|
'permissible_children': function(node,mode) { //{{{
|
1597
1635
|
var func = null;
|
1598
1636
|
if (mode == 'into') { func = self.adaptor.description.insert_first_into }
|
@@ -1664,13 +1702,31 @@ function WFAdaptorManifestation(adaptor) {
|
|
1664
1702
|
// Abstract Elements
|
1665
1703
|
// * they may only have an illustrator (or other parts)
|
1666
1704
|
// * they HAVE TO have a parent
|
1705
|
+
this.elements.start_event = { /*{{{*/
|
1706
|
+
'parent': 'start',
|
1707
|
+
'illustrator': {//{{{
|
1708
|
+
'svg': self.adaptor.theme_dir + 'symbols/start_event.svg'
|
1709
|
+
}//}}}
|
1710
|
+
}; /*}}}*/
|
1711
|
+
this.elements.call_sensor = { /*{{{*/
|
1712
|
+
'parent': 'call',
|
1713
|
+
'illustrator': {//{{{
|
1714
|
+
'svg': self.adaptor.theme_dir + 'symbols/call_sensor.svg'
|
1715
|
+
}//}}}
|
1716
|
+
}; /*}}}*/
|
1667
1717
|
this.elements.callmanipulate = { /*{{{*/
|
1668
1718
|
'parent': 'call',
|
1669
1719
|
'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
|
1670
1720
|
'illustrator': {//{{{
|
1671
|
-
'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
|
1672
1721
|
'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
|
1673
|
-
}
|
1722
|
+
}//}}}
|
1723
|
+
}; /*}}}*/
|
1724
|
+
this.elements.callmanipulate_sensor = { /*{{{*/
|
1725
|
+
'parent': 'call',
|
1726
|
+
'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
|
1727
|
+
'illustrator': {//{{{
|
1728
|
+
'svg': self.adaptor.theme_dir + 'symbols/callmanipulate_sensor.svg'
|
1729
|
+
}//}}}
|
1674
1730
|
}; /*}}}*/
|
1675
1731
|
this.elements.loop_head = { /*{{{*/
|
1676
1732
|
'parent': 'loop',
|
@@ -63,11 +63,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
63
63
|
//{{{ Render the details from rng (right hand side of graph tab)
|
64
64
|
this.update_details = function(svgid){
|
65
65
|
var tab = $('#dat_details');
|
66
|
-
var focus_ele = $(':focus',tab);
|
67
|
-
var focus_path = focus_ele.attr('data-relaxngui-path');
|
68
|
-
var focus_pos = focus_ele.prop('selectionStart');
|
69
66
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
70
|
-
tab.empty();
|
71
67
|
if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
|
72
68
|
save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
73
69
|
var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
|
@@ -78,20 +74,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
78
74
|
if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
|
79
75
|
$(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
|
80
76
|
}
|
81
|
-
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
82
77
|
var nn = $X($(node).serializeXML());
|
83
78
|
nn.removeAttr('svg-id');
|
84
79
|
nn.removeAttr('svg-type');
|
85
80
|
nn.removeAttr('svg-subtype');
|
86
81
|
nn.removeAttr('svg-label');
|
82
|
+
|
83
|
+
tab.empty();
|
84
|
+
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
87
85
|
save['details'].content(nn);
|
88
|
-
|
89
|
-
var ele = $('[data-relaxngui-path="' + focus_path + '"]',tab)[0];
|
90
|
-
ele.focus();
|
91
|
-
if (ele.setSelectionRange) {
|
92
|
-
ele.setSelectionRange(focus_pos,focus_pos);
|
93
|
-
}
|
94
|
-
}
|
86
|
+
|
95
87
|
format_visual_forms();
|
96
88
|
}
|
97
89
|
}; //}}}
|
@@ -211,8 +203,17 @@ function WFAdaptorManifestation(adaptor) {
|
|
211
203
|
$(nodes).each(function(key,str) {
|
212
204
|
nodes[key] = $X(str);
|
213
205
|
});
|
206
|
+
let svgids = [];
|
214
207
|
$(nodes).each(function(key,node){
|
215
|
-
|
208
|
+
svgids.push($(node).attr('svg-id'));
|
209
|
+
});
|
210
|
+
svgids.sort((a,b) => {
|
211
|
+
if (a > b) { return -1; }
|
212
|
+
else if (a < b) { return 1; }
|
213
|
+
else { return 0; }
|
214
|
+
});
|
215
|
+
svgids.forEach(svgid => {
|
216
|
+
var target = self.adaptor.description.get_node_by_svg_id(svgid);
|
216
217
|
del_ui_pos(target)
|
217
218
|
self.adaptor.description.remove(null,target);
|
218
219
|
localStorage.removeItem('marked');
|
@@ -403,7 +404,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
403
404
|
let dict = {...dict1,...dict2};
|
404
405
|
ret.push({ column: 'Dataflow', value: dict, type: 'resource' });
|
405
406
|
if (lab != '') {
|
406
|
-
ret.unshift( { column: 'Label', value: lab } );
|
407
|
+
ret.unshift( { type: 'label', column: 'Label', value: lab } );
|
407
408
|
}
|
408
409
|
if (wait != '') {
|
409
410
|
ret.push({ column: 'Wait', value: 'ω = ' + wait });
|
@@ -463,7 +464,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
463
464
|
'label': function(node){
|
464
465
|
var lab = $(node).attr('label');
|
465
466
|
if (lab) {
|
466
|
-
return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') }, { column: 'ID', value: $(node).attr('id') } ];
|
467
|
+
return [ { type: 'label', column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') }, { column: 'ID', value: $(node).attr('id') } ];
|
467
468
|
} else {
|
468
469
|
return [ { column: 'ID', value: $(node).attr('id') } ];
|
469
470
|
}
|
@@ -597,7 +598,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
597
598
|
'closeblock': true,
|
598
599
|
'label': function(node){
|
599
600
|
var avg = $('> _probability_avg',$(node).children('_probability')).text();
|
600
|
-
var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
|
601
|
+
var ret = [ { type: 'label', column: 'Label', value: $(node).attr('condition') } ];
|
601
602
|
if (avg != '') {
|
602
603
|
ret.push({ column: 'Average', value: avg + 'x' });
|
603
604
|
}
|
@@ -649,7 +650,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
649
650
|
this.elements.choose = { /*{{{*/
|
650
651
|
'type': 'complex',
|
651
652
|
'illustrator': {//{{{
|
652
|
-
'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
|
653
|
+
'label': function(node){ return [ { type: 'label', column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
|
653
654
|
'endnodes': 'aggregate',
|
654
655
|
'closeblock': false,
|
655
656
|
'closing_symbol': 'choose_finish',
|
@@ -802,7 +803,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
802
803
|
'illustrator': {//{{{
|
803
804
|
'label': function(node){
|
804
805
|
var avg = $('> _probability_avg',$(node).children('_probability')).text();
|
805
|
-
var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
|
806
|
+
var ret = [ { type: 'label', column: 'Label', value: $(node).attr('condition') } ];
|
806
807
|
if (avg != '') {
|
807
808
|
ret.push({ column: 'Average', value: avg + '%' });
|
808
809
|
}
|
@@ -1298,35 +1299,40 @@ function WFAdaptorManifestation(adaptor) {
|
|
1298
1299
|
'type': 'description',
|
1299
1300
|
'illustrator': {//{{{
|
1300
1301
|
'endnodes': 'passthrough',
|
1301
|
-
'label': function(node){ return [ { column: 'ID' }, { column: 'Dataflow'}, { column: 'Label'}, { column: 'RP' }, { column: 'R#' } ]; },
|
1302
|
+
'label': function(node){ return [ { column: 'ID' }, { column: 'Dataflow', type: 'resource' }, { column: 'Label', type: 'label' }, { column: 'RP' }, { column: 'R#' } ]; },
|
1302
1303
|
'closeblock': false,
|
1303
1304
|
'balance': true,
|
1304
1305
|
'expansion': function(node) {
|
1305
1306
|
return 'vertical';
|
1306
1307
|
},
|
1307
1308
|
'resolve_symbol': function(node) {
|
1309
|
+
let alist = []
|
1308
1310
|
let plist = []
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1311
|
+
|
1312
|
+
var regassi = /data\.([a-zA-Z_]+)\s*(=[^=]|\+\=|\-\=|\*\=|\/\=|<<|>>)/g; // we do not have to check for >/< version of stuff as only conditions are in attributes, and conditions can not contain assignments
|
1313
|
+
var reg_not_assi = /data\.([a-zA-Z_]+)\s*/g;
|
1314
|
+
$ ('call > parameters > arguments > *, call > code > *, loop[condition], alternative[condition]',node).each(function(i,n) {
|
1315
|
+
let item;
|
1316
|
+
if (n.hasAttribute('condition')) {
|
1317
|
+
item = n.getAttribute('condition');
|
1318
|
+
} else {
|
1319
|
+
item = n.textContent;
|
1320
|
+
}
|
1321
|
+
if (n.parentNode.nodeName == 'arguments' && item.charAt(0) != '!' ) { return }
|
1322
|
+
|
1323
|
+
let indices = [];
|
1324
|
+
|
1325
|
+
for (const match of item.matchAll(regassi)) {
|
1326
|
+
indices.push(match.index);
|
1327
|
+
alist.push(match[1]);
|
1328
|
+
}
|
1329
|
+
for (const match of item.matchAll(reg_not_assi)) {
|
1330
|
+
const arg1 = match[1];
|
1331
|
+
if (indices.includes(match.index)) { continue; }
|
1332
|
+
if (!alist.includes(arg1)) { plist.push(arg1); }
|
1327
1333
|
}
|
1328
1334
|
})
|
1329
|
-
if (
|
1335
|
+
if (plist.length > 0) { return 'start_event'; }
|
1330
1336
|
},
|
1331
1337
|
'closing_symbol': 'end',
|
1332
1338
|
'col_shift': function(node) {
|
@@ -1434,7 +1440,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
1434
1440
|
'closeblock': true,
|
1435
1441
|
'label': function(node){
|
1436
1442
|
var avg = $('> _probability_avg',$(node).children('_probability')).text();
|
1437
|
-
var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
|
1443
|
+
var ret = [ { type: 'label', column: 'Label', value: $(node).attr('condition') } ];
|
1438
1444
|
if (avg != '') {
|
1439
1445
|
ret.push({ column: 'Average', value: avg + 'x' });
|
1440
1446
|
}
|
@@ -63,11 +63,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
63
63
|
//{{{ Render the details from rng (right hand side of graph tab)
|
64
64
|
this.update_details = function(svgid){
|
65
65
|
var tab = $('#dat_details');
|
66
|
-
var focus_ele = $(':focus',tab);
|
67
|
-
var focus_path = focus_ele.attr('data-relaxngui-path');
|
68
|
-
var focus_pos = focus_ele.prop('selectionStart');
|
69
66
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
70
|
-
tab.empty();
|
71
67
|
if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
|
72
68
|
save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
73
69
|
var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
|
@@ -78,21 +74,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
78
74
|
if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
|
79
75
|
$(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
|
80
76
|
}
|
81
|
-
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
82
77
|
var nn = $X($(node).serializeXML());
|
83
78
|
nn.removeAttr('svg-id');
|
84
79
|
nn.removeAttr('svg-type');
|
85
80
|
nn.removeAttr('svg-subtype');
|
86
81
|
nn.removeAttr('svg-label');
|
82
|
+
|
83
|
+
tab.empty();
|
84
|
+
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
87
85
|
save['details'].content(nn);
|
88
|
-
|
89
|
-
if (focus_ele.length > 0) {
|
90
|
-
var ele = $('[data-relaxngui-path="' + focus_path + '"]',tab)[0];
|
91
|
-
ele.focus();
|
92
|
-
if (ele.setSelectionRange) {
|
93
|
-
ele.setSelectionRange(focus_pos,focus_pos);
|
94
|
-
}
|
95
|
-
}
|
86
|
+
|
96
87
|
format_visual_forms();
|
97
88
|
}
|
98
89
|
}; //}}}
|
@@ -212,8 +203,17 @@ function WFAdaptorManifestation(adaptor) {
|
|
212
203
|
$(nodes).each(function(key,str) {
|
213
204
|
nodes[key] = $X(str);
|
214
205
|
});
|
206
|
+
let svgids = [];
|
215
207
|
$(nodes).each(function(key,node){
|
216
|
-
|
208
|
+
svgids.push($(node).attr('svg-id'));
|
209
|
+
});
|
210
|
+
svgids.sort((a,b) => {
|
211
|
+
if (a > b) { return -1; }
|
212
|
+
else if (a < b) { return 1; }
|
213
|
+
else { return 0; }
|
214
|
+
});
|
215
|
+
svgids.forEach(svgid => {
|
216
|
+
var target = self.adaptor.description.get_node_by_svg_id(svgid);
|
217
217
|
del_ui_pos(target)
|
218
218
|
self.adaptor.description.remove(null,target);
|
219
219
|
localStorage.removeItem('marked');
|
@@ -1235,28 +1235,33 @@ function WFAdaptorManifestation(adaptor) {
|
|
1235
1235
|
return 'vertical';
|
1236
1236
|
},
|
1237
1237
|
'resolve_symbol': function(node) {
|
1238
|
+
let alist = []
|
1238
1239
|
let plist = []
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1240
|
+
|
1241
|
+
var regassi = /data\.([a-zA-Z_]+)\s*(=[^=]|\+\=|\-\=|\*\=|\/\=|<<|>>)/g; // we do not have to check for >/< version of stuff as only conditions are in attributes, and conditions can not contain assignments
|
1242
|
+
var reg_not_assi = /data\.([a-zA-Z_]+)\s*/g;
|
1243
|
+
$ ('call > parameters > arguments > *, call > code > *, loop[condition], alternative[condition]',node).each(function(i,n) {
|
1244
|
+
let item;
|
1245
|
+
if (n.hasAttribute('condition')) {
|
1246
|
+
item = n.getAttribute('condition');
|
1247
|
+
} else {
|
1248
|
+
item = n.textContent;
|
1249
|
+
}
|
1250
|
+
if (n.parentNode.nodeName == 'arguments' && item.charAt(0) != '!' ) { return }
|
1251
|
+
|
1252
|
+
let indices = [];
|
1253
|
+
|
1254
|
+
for (const match of item.matchAll(regassi)) {
|
1255
|
+
indices.push(match.index);
|
1256
|
+
alist.push(match[1]);
|
1257
|
+
}
|
1258
|
+
for (const match of item.matchAll(reg_not_assi)) {
|
1259
|
+
const arg1 = match[1];
|
1260
|
+
if (indices.includes(match.index)) { continue; }
|
1261
|
+
if (!alist.includes(arg1)) { plist.push(arg1); }
|
1257
1262
|
}
|
1258
1263
|
})
|
1259
|
-
if (
|
1264
|
+
if (plist.length > 0) { return 'start_event'; }
|
1260
1265
|
},
|
1261
1266
|
'closing_symbol': 'end',
|
1262
1267
|
'col_shift': function(node) {
|
@@ -63,11 +63,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
63
63
|
//{{{ Render the details from rng (right hand side of graph tab)
|
64
64
|
this.update_details = function(svgid){
|
65
65
|
var tab = $('#dat_details');
|
66
|
-
var focus_ele = $(':focus',tab);
|
67
|
-
var focus_path = focus_ele.attr('data-relaxngui-path');
|
68
|
-
var focus_pos = focus_ele.prop('selectionStart');
|
69
66
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
70
|
-
tab.empty();
|
71
67
|
if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
|
72
68
|
save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
73
69
|
var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
|
@@ -78,21 +74,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
78
74
|
if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
|
79
75
|
$(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
|
80
76
|
}
|
81
|
-
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
82
77
|
var nn = $X($(node).serializeXML());
|
83
78
|
nn.removeAttr('svg-id');
|
84
79
|
nn.removeAttr('svg-type');
|
85
80
|
nn.removeAttr('svg-subtype');
|
86
81
|
nn.removeAttr('svg-label');
|
82
|
+
|
83
|
+
tab.empty();
|
84
|
+
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
|
87
85
|
save['details'].content(nn);
|
88
|
-
|
89
|
-
if (focus_ele.length > 0) {
|
90
|
-
var ele = $('[data-relaxngui-path="' + focus_path + '"]',tab)[0];
|
91
|
-
ele.focus();
|
92
|
-
if (ele.setSelectionRange) {
|
93
|
-
ele.setSelectionRange(focus_pos,focus_pos);
|
94
|
-
}
|
95
|
-
}
|
86
|
+
|
96
87
|
format_visual_forms();
|
97
88
|
}
|
98
89
|
}; //}}}
|
@@ -212,8 +203,17 @@ function WFAdaptorManifestation(adaptor) {
|
|
212
203
|
$(nodes).each(function(key,str) {
|
213
204
|
nodes[key] = $X(str);
|
214
205
|
});
|
206
|
+
let svgids = [];
|
215
207
|
$(nodes).each(function(key,node){
|
216
|
-
|
208
|
+
svgids.push($(node).attr('svg-id'));
|
209
|
+
});
|
210
|
+
svgids.sort((a,b) => {
|
211
|
+
if (a > b) { return -1; }
|
212
|
+
else if (a < b) { return 1; }
|
213
|
+
else { return 0; }
|
214
|
+
});
|
215
|
+
svgids.forEach(svgid => {
|
216
|
+
var target = self.adaptor.description.get_node_by_svg_id(svgid);
|
217
217
|
del_ui_pos(target)
|
218
218
|
self.adaptor.description.remove(null,target);
|
219
219
|
localStorage.removeItem('marked');
|
@@ -1269,28 +1269,33 @@ function WFAdaptorManifestation(adaptor) {
|
|
1269
1269
|
return 'vertical';
|
1270
1270
|
},
|
1271
1271
|
'resolve_symbol': function(node) {
|
1272
|
+
let alist = []
|
1272
1273
|
let plist = []
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1274
|
+
|
1275
|
+
var regassi = /data\.([a-zA-Z_]+)\s*(=[^=]|\+\=|\-\=|\*\=|\/\=|<<|>>)/g; // we do not have to check for >/< version of stuff as only conditions are in attributes, and conditions can not contain assignments
|
1276
|
+
var reg_not_assi = /data\.([a-zA-Z_]+)\s*/g;
|
1277
|
+
$ ('call > parameters > arguments > *, call > code > *, loop[condition], alternative[condition]',node).each(function(i,n) {
|
1278
|
+
let item;
|
1279
|
+
if (n.hasAttribute('condition')) {
|
1280
|
+
item = n.getAttribute('condition');
|
1281
|
+
} else {
|
1282
|
+
item = n.textContent;
|
1283
|
+
}
|
1284
|
+
if (n.parentNode.nodeName == 'arguments' && item.charAt(0) != '!' ) { return }
|
1285
|
+
|
1286
|
+
let indices = [];
|
1287
|
+
|
1288
|
+
for (const match of item.matchAll(regassi)) {
|
1289
|
+
indices.push(match.index);
|
1290
|
+
alist.push(match[1]);
|
1291
|
+
}
|
1292
|
+
for (const match of item.matchAll(reg_not_assi)) {
|
1293
|
+
const arg1 = match[1];
|
1294
|
+
if (indices.includes(match.index)) { continue; }
|
1295
|
+
if (!alist.includes(arg1)) { plist.push(arg1); }
|
1291
1296
|
}
|
1292
1297
|
})
|
1293
|
-
if (
|
1298
|
+
if (plist.length > 0) { return 'start_event'; }
|
1294
1299
|
},
|
1295
1300
|
'closing_symbol': 'end',
|
1296
1301
|
'col_shift': function(node) {
|