cpee 2.0.23 → 2.0.28

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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/{templates/.CPEE.xml → CPEE.xml} +1 -1
  3. data/cockpit/{templates/.Signavio.xml → Signavio.xml} +1 -1
  4. data/cockpit/css/model.css +2 -0
  5. data/cockpit/css/replay.css +55 -0
  6. data/cockpit/css/ui.css +30 -5
  7. data/cockpit/edit.html +260 -0
  8. data/cockpit/graph.html +3 -3
  9. data/cockpit/index.html +11 -8
  10. data/cockpit/js/details.js +0 -1
  11. data/cockpit/js/edit.js +32 -0
  12. data/cockpit/js/instance.js +46 -48
  13. data/cockpit/js/model.js +6 -36
  14. data/cockpit/js/parameters.js +9 -4
  15. data/cockpit/js/replay.js +40 -0
  16. data/cockpit/js/ui.js +7 -0
  17. data/cockpit/model.html +8 -4
  18. data/cockpit/replay.html +53 -0
  19. data/cockpit/templates/Coopis 2010.xml +1 -1
  20. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +1 -1
  21. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +1 -1
  22. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +1 -1
  23. data/cockpit/templates/Track Test Local.xml +6 -2
  24. data/cockpit/templates/Track Test.xml +5 -1
  25. data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +5 -1
  26. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +8 -4
  27. data/cockpit/templates/UR-VUE 2020 Solution NN.xml +8 -4
  28. data/cockpit/templates/UR-VUE 2020 Solution View.xml +8 -4
  29. data/cockpit/templates/UR-VUE 2020.xml +8 -4
  30. data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
  31. data/cockpit/themes/compact/rngs/call.rng +93 -41
  32. data/cockpit/themes/compact/rngs/callmanipulate.rng +113 -40
  33. data/cockpit/themes/compact/theme.js +57 -25
  34. data/cockpit/themes/{diana → control}/rngs/alternative.rng +0 -0
  35. data/cockpit/themes/control/rngs/call.rng +174 -0
  36. data/cockpit/themes/control/rngs/callmanipulate.rng +218 -0
  37. data/cockpit/themes/{diana → control}/rngs/choose.rng +0 -0
  38. data/cockpit/themes/{diana → control}/rngs/closed_loop.rng +0 -0
  39. data/cockpit/themes/{diana → control}/rngs/closed_loop_cancel.rng +0 -0
  40. data/cockpit/themes/{diana → control}/rngs/closed_loop_control.rng +0 -0
  41. data/cockpit/themes/{diana → control}/rngs/closed_loop_measuring.rng +0 -0
  42. data/cockpit/themes/{diana → control}/rngs/critical.rng +0 -0
  43. data/cockpit/themes/{diana → control}/rngs/escape.rng +0 -0
  44. data/cockpit/themes/{diana → control}/rngs/group.rng +0 -0
  45. data/cockpit/themes/{diana → control}/rngs/loop.rng +0 -0
  46. data/cockpit/themes/{diana → control}/rngs/manipulate.rng +0 -0
  47. data/cockpit/themes/{diana → control}/rngs/otherwise.rng +0 -0
  48. data/cockpit/themes/{diana → control}/rngs/parallel.rng +0 -0
  49. data/cockpit/themes/{diana → control}/rngs/parallel_branch.rng +0 -0
  50. data/cockpit/themes/{diana → control}/rngs/scripts.rng +0 -0
  51. data/cockpit/themes/{diana → control}/rngs/stop.rng +0 -0
  52. data/cockpit/themes/{diana → control}/rngs/terminate.rng +0 -0
  53. data/cockpit/themes/{diana → control}/symbols/alternative.svg +0 -0
  54. data/cockpit/themes/{diana → control}/symbols/arrow.svg +0 -0
  55. data/cockpit/themes/{diana → control}/symbols/call.svg +0 -0
  56. data/cockpit/themes/{diana → control}/symbols/callmanipulate.svg +0 -0
  57. data/cockpit/themes/{diana → control}/symbols/choose.svg +0 -0
  58. data/cockpit/themes/{diana → control}/symbols/choose_exclusive.svg +0 -0
  59. data/cockpit/themes/{diana → control}/symbols/choose_inclusive.svg +0 -0
  60. data/cockpit/themes/{diana → control}/symbols/closed_loop.svg +0 -0
  61. data/cockpit/themes/{diana → control}/symbols/closed_loop_cancel.svg +0 -0
  62. data/cockpit/themes/{diana → control}/symbols/closed_loop_control.svg +0 -0
  63. data/cockpit/themes/{diana → control}/symbols/closed_loop_measuring.svg +0 -0
  64. data/cockpit/themes/{diana → control}/symbols/complex.svg +0 -0
  65. data/cockpit/themes/{diana → control}/symbols/critical.svg +0 -0
  66. data/cockpit/themes/{diana → control}/symbols/end.svg +0 -0
  67. data/cockpit/themes/{diana → control}/symbols/escape.svg +0 -0
  68. data/cockpit/themes/{diana → control}/symbols/event_end.svg +0 -0
  69. data/cockpit/themes/{diana → control}/symbols/loop.svg +0 -0
  70. data/cockpit/themes/{diana → control}/symbols/manipulate.svg +0 -0
  71. data/cockpit/themes/{diana → control}/symbols/otherwise.svg +0 -0
  72. data/cockpit/themes/{diana → control}/symbols/parallel.svg +0 -0
  73. data/cockpit/themes/{diana → control}/symbols/parallel_branch.svg +0 -0
  74. data/cockpit/themes/{diana → control}/symbols/parallel_branch_compact.svg +0 -0
  75. data/cockpit/themes/{diana → control}/symbols/parallel_branch_event.svg +0 -0
  76. data/cockpit/themes/{diana → control}/symbols/parallel_branch_normal.svg +0 -0
  77. data/cockpit/themes/{diana → control}/symbols/scripts.svg +0 -0
  78. data/cockpit/themes/{diana → control}/symbols/start.svg +0 -0
  79. data/cockpit/themes/{diana → control}/symbols/stop.svg +0 -0
  80. data/cockpit/themes/{diana → control}/symbols/terminate.svg +0 -0
  81. data/cockpit/themes/{diana → control}/theme.js +74 -28
  82. data/cockpit/themes/default/rngs/call.rng +93 -41
  83. data/cockpit/themes/default/rngs/callmanipulate.rng +113 -40
  84. data/cockpit/themes/default/theme.js +1318 -0
  85. data/cockpit/themes/extended/rngs/call.rng +93 -41
  86. data/cockpit/themes/extended/rngs/callmanipulate.rng +113 -40
  87. data/cockpit/themes/extended/theme.js +50 -19
  88. data/cockpit/themes/model/rngs/call.rng +21 -20
  89. data/cockpit/themes/model/rngs/callmanipulate.rng +23 -22
  90. data/cockpit/themes/model/theme.js +51 -20
  91. data/cockpit/themes/packed/rngs/call.rng +93 -41
  92. data/cockpit/themes/packed/rngs/callmanipulate.rng +113 -40
  93. data/cockpit/themes/packed/theme.js +50 -19
  94. data/cockpit/themes/preset/rngs/call.rng +93 -41
  95. data/cockpit/themes/preset/rngs/callmanipulate.rng +113 -40
  96. data/cockpit/themes/preset/theme.js +49 -18
  97. data/cockpit/track.html +3 -10
  98. data/cockpit/{templates/.transformations.xml → transformations.xml} +0 -0
  99. data/cpee.gemspec +3 -3
  100. data/lib/callbacks.xml +5 -0
  101. data/lib/cpee/controller.rb +30 -28
  102. data/lib/cpee/implementation_callbacks.rb +60 -0
  103. data/lib/cpee/implementation_notifications.rb +6 -2
  104. data/server/handlerwrappers/default.rb +21 -5
  105. data/server/resources/transformation_dslx.xsl +1 -1
  106. data/server/routing/end.pid +1 -0
  107. data/server/routing/end.rb +1 -0
  108. data/server/routing/forward-events.pid +1 -0
  109. data/server/routing/forward-votes.pid +1 -0
  110. data/server/routing/forward-votes.rb +6 -5
  111. data/server/routing/persist.pid +1 -0
  112. data/server/routing/persist.rb +4 -4
  113. data/server/server.pid +1 -0
  114. metadata +66 -56
  115. data/cockpit/templates/.templates.xml +0 -13
  116. data/cockpit/themes/diana/rngs/call.rng +0 -122
  117. data/cockpit/themes/diana/rngs/callmanipulate.rng +0 -145
data/cockpit/index.html CHANGED
@@ -36,11 +36,11 @@
36
36
 
37
37
  <script type="text/javascript" src="/js_libs/relaxngui.js"></script>
38
38
 
39
- <script type="text/javascript" src="/js_libs/ui.js"></script>
39
+ <script type="text/javascript" src="/js_libs/uidash.js"></script>
40
40
  <script type="text/javascript" src="/js_libs/custommenu.js"></script>
41
41
 
42
42
  <link rel="stylesheet" href="/js_libs/custommenu.css" type="text/css"/>
43
- <link rel="stylesheet" href="/js_libs/ui.css" type="text/css"/>
43
+ <link rel="stylesheet" href="/js_libs/uidash.css" type="text/css"/>
44
44
 
45
45
  <link rel="stylesheet" href="/js_libs/relaxngui.css" type="text/css"/>
46
46
 
@@ -54,12 +54,13 @@
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 */
60
61
  </style>
61
62
  </head>
62
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui">
63
+ <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
63
64
  <div id='disclaimer' class='hidden'> <!--{{{-->
64
65
  <h1>Disclaimer</h1>
65
66
 
@@ -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>
@@ -211,17 +211,20 @@
211
211
  <ui-tab class="" data-tab="dataelements" id="tabdataelements">Data Elements</ui-tab>
212
212
  <ui-tab class="inactive" data-tab="endpoints" id="tabendpoints" >Endpoints</ui-tab>
213
213
  <ui-tab class="inactive" data-tab="attributes" id="tabattributes" >Attributes</ui-tab>
214
- <ui-behind ><button title='add entry'>New</button></ui-behind>
214
+ <ui-behind ></ui-behind>
215
215
  </ui-tabbar>
216
216
  <ui-content>
217
217
  <ui-area data-belongs-to-tab="dataelements" id="areadataelements"> <!--{{{-->
218
+ <button title='add entry'><span>New</span></button>
218
219
  <div id="dat_dataelements"></div>
219
220
  </ui-area> <!--}}}-->
220
221
  <ui-area data-belongs-to-tab="endpoints" id="areaendpoints" class="inactive"> <!--{{{-->
221
- <table id="dat_endpoints"></table>
222
+ <button title='add entry'><span>New</span></button>
223
+ <div id="dat_endpoints"></div>
222
224
  </ui-area> <!--}}}-->
223
225
  <ui-area data-belongs-to-tab="attributes" id="areaattributes" class="inactive"> <!--{{{-->
224
- <table id="dat_attributes"></table>
226
+ <button title='add entry'><span>New</span></button>
227
+ <div id="dat_attributes"></div>
225
228
  </ui-area> <!--}}}-->
226
229
  </ui-content>
227
230
  </ui-tabbed>
@@ -49,7 +49,6 @@ function do_main_work() { //{{{
49
49
  var origtype = orignode.attr('element-type') + '_' + orignode.attr('element-endpoint');
50
50
 
51
51
  var url = $('body').attr('current-instance');
52
- $('#main ui-tabbar ui-behind button').removeClass('highlight');
53
52
  save['details'].set_checkpoint();
54
53
 
55
54
  var nnew = $(save['details'].save().documentElement);
@@ -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
+ });
@@ -82,7 +82,7 @@ var sub_less = 'topic' + '=' + 'activity' + '&' +// {{{
82
82
 
83
83
  function cockpit() { //{{{
84
84
  $("button[name=base]").click(function(){ create_instance($("input[name=base-url]").val(),null,false,false); });
85
- $("button[name=instance]").click(function(){ ui_activate_tab("#tabinstance"); monitor_instance($("input[name=instance-url]").val(),$("input[name=res-url]").val(),false,false); });
85
+ $("button[name=instance]").click(function(){ uidash_activate_tab("#tabinstance"); monitor_instance($("input[name=instance-url]").val(),$("input[name=res-url]").val(),false,false); });
86
86
  $("button[name=loadtestset]").click(function(e){new CustomMenu(e).menu($('#templates'),function(){ load_testset(false) } ); });
87
87
  $("button[name=loadtestsetfile]").click(load_testsetfile);
88
88
  $("button[name=loadmodelfile]").click(load_modelfile);
@@ -91,24 +91,24 @@ 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') + ".templates.xml",
102
- dataType: 'xml',
100
+ url: $('body').attr('current-templates'),
101
+ dataType: 'json',
103
102
  success: function(res){
104
- $('testset',res).each(function(){
105
- var ts = $(this).text();
106
- $('#templates').append($("<div class='menuitem'></div>").text(ts));
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 == "") {
110
- ui_toggle_vis_tab($('#instance'));
111
- ui_toggle_vis_tab($('#parameters'));
110
+ uidash_toggle_vis_tab($('#instance'));
111
+ uidash_toggle_vis_tab($('#parameters'));
112
112
  }
113
113
  if (q.monitor && q.load) {
114
114
  if (q.load.match(/https?:\/\//)) {
@@ -118,7 +118,7 @@ function cockpit() { //{{{
118
118
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
119
119
  });
120
120
  }
121
- ui_activate_tab("#tabexecution");
121
+ uidash_activate_tab("#tabexecution");
122
122
  monitor_instance(q.monitor,$("body").attr('current-resources'),true,false);
123
123
  } else if (q.load) {
124
124
  if (q.load.match(/https?:\/\//)) {
@@ -128,20 +128,20 @@ function cockpit() { //{{{
128
128
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
129
129
  });
130
130
  }
131
- ui_activate_tab("#tabexecution");
131
+ uidash_activate_tab("#tabexecution");
132
132
  create_instance($("body").attr('current-base'),q.load,true,false);
133
133
  } else if (q.instantiate) {
134
134
  if (q.instantiate.match(/https?:\/\//)) {
135
- ui_activate_tab("#tabexecution");
135
+ uidash_activate_tab("#tabexecution");
136
136
  create_instance_from($("body").attr('current-base'),q.instantiate,false);
137
137
  } else {
138
138
  alert('Nope. Url!');
139
139
  }
140
140
  } else if (q.new || q.new == "") {
141
- ui_activate_tab("#tabinstance");
141
+ uidash_activate_tab("#tabinstance");
142
142
  create_instance($("body").attr('current-base'),"Plain Instance",false,false);
143
143
  } else if (q.monitor) {
144
- ui_activate_tab("#tabexecution");
144
+ uidash_activate_tab("#tabinstance");
145
145
  monitor_instance(q.monitor,$("body").attr('current-resources'),false,false);
146
146
  } else if (q.exec) {
147
147
  if (q.exec.match(/https?:\/\//)) {
@@ -151,13 +151,13 @@ function cockpit() { //{{{
151
151
  if ($(v).text() == q.exec) { $(v).attr('data-selected','selected'); }
152
152
  });
153
153
  }
154
- ui_activate_tab("#tabexecution");
154
+ uidash_activate_tab("#tabexecution");
155
155
  create_instance($("body").attr('current-base'),q.exec,true,true);
156
156
  }
157
157
  }
158
158
  });
159
159
  $.ajax({
160
- url: $('body').attr('current-templates') + ".transformations.xml",
160
+ url: "transformations.xml",
161
161
  dataType: 'xml',
162
162
  success: function(res){
163
163
  $('transformation',res).each(function(){
@@ -324,7 +324,7 @@ function monitor_instance(cin,rep,load,exec) {// {{{
324
324
  $("input[name=instance-url]").val($("body").attr('current-instance'));
325
325
  $("input[name=res-url]").val($("body").attr('current-resources'));
326
326
 
327
- $('.tabbehind button').hide();
327
+ $('#parameters ui-content ui-area > button').attr('disabled','disabled');
328
328
  $('#dat_details').empty();
329
329
 
330
330
  url = $("body").attr('current-instance');
@@ -380,7 +380,7 @@ function monitor_instance(cin,rep,load,exec) {// {{{
380
380
  },
381
381
  error: function(a,b,c) {
382
382
  alert("This ain't no CPEE instance");
383
- ui_activate_tab("#tabnew");
383
+ uidash_activate_tab("#tabnew");
384
384
  }
385
385
  });
386
386
  }// }}}
@@ -629,8 +629,6 @@ function monitor_instance_state() {// {{{
629
629
  }// }}}
630
630
  function monitor_instance_transformation() {// {{{
631
631
  var url = $('body').attr('current-instance');
632
- console.log('hallo');
633
- console.log(url);
634
632
  $.ajax({
635
633
  type: "GET",
636
634
  url: url + "/properties/attributes/modeltype/",
@@ -659,17 +657,21 @@ function monitor_instance_pos() {// {{{
659
657
  function monitor_instance_running(content,event) {// {{{
660
658
  if (save['state'] == "stopping") return;
661
659
  if (event == "calling") {
662
- save['activity_states'][content.activity_uuid] = true
663
- format_visual_add(content.activity,"active")
664
- }
665
- if (event == "manipulating") {
666
- if (!save['activity_states'][content.activity_uuid]) {
660
+ if (!save['activity_states'][content['activity-uuid']]) {
661
+ save['activity_states'][content['activity-uuid']] = true
667
662
  format_visual_add(content.activity,"active")
668
663
  }
669
- }
670
- if (event == "done") {
671
- delete save['activity_states'][content.activity_uuid];
672
- format_visual_remove(content.activity,"active")
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
+ }
673
675
  }
674
676
  } // }}}
675
677
  function monitor_instance_state_change(notification) { //{{{
@@ -701,19 +703,16 @@ function monitor_instance_state_change(notification) { //{{{
701
703
  $('#state_extended').show();
702
704
  $("button[name=state_start]").show();
703
705
  $("button[name=state_stop]").hide();
704
- $("button[name=state_replay]").show();
705
706
  $("button[name=state_abandon]").show();
706
707
  } else if (notification == "running") {
707
708
  $('#state_extended').hide();
708
709
  $("button[name=state_start]").hide();
709
710
  $("button[name=state_stop]").show();
710
- $("button[name=state_replay]").hide();
711
711
  $("button[name=state_abandon]").hide();
712
712
  } else {
713
713
  $('#state_extended').hide();
714
714
  $("button[name=state_start]").hide();
715
715
  $("button[name=state_stop]").hide();
716
- $("button[name=state_replay]").hide();
717
716
  $("button[name=state_abandon]").hide();
718
717
  }
719
718
 
@@ -722,13 +721,16 @@ function monitor_instance_state_change(notification) { //{{{
722
721
  // remove all markings with state change
723
722
  if (save['graph_adaptor'] && save['graph_adaptor'].illustrator) {
724
723
  save['graph_adaptor'].illustrator.get_elements().removeClass('marked');
724
+ localStorage.removeItem('marked');
725
+ localStorage.removeItem('marked_from');
725
726
  }
726
727
 
727
728
  if (notification != "ready" && notification != "stopped" && notification != "running") {
728
- $('.tabbehind button').hide();
729
+ console.log('rrr');
730
+ $('#parameters ui-content ui-area > button').attr('disabled','disabled');
729
731
  $('#state_any').hide();
730
732
  } else {
731
- $('#parameters .tabbehind button').show();
733
+ $('#parameters ui-content ui-area > button').removeAttr('disabled');
732
734
  $('#state_any').show();
733
735
  }
734
736
 
@@ -781,15 +783,6 @@ function start_instance() {// {{{
781
783
  error: report_failure
782
784
  });
783
785
  }// }}}
784
- function replay_instance() {// {{{
785
- var url = $('body').attr('current-instance');
786
- $.ajax({
787
- type: "PUT",
788
- url: url + "/properties/state/",
789
- data: ({value: "replaying"}),
790
- error: report_failure
791
- });
792
- }// }}}
793
786
  function aba_instance() {// {{{
794
787
  monitor_instance_state_change('abandoned');
795
788
  var url = $('body').attr('current-instance');
@@ -1017,7 +1010,11 @@ function load_testset(exec) {// {{{
1017
1010
  var name = $("#templates div.menuitem[data-selected=selected]").text();
1018
1011
  var url;
1019
1012
  if (name) {
1020
- url = $('body').attr('current-templates') + name + ".xml";
1013
+ if ($('body').attr('current-templates').match(/\?/)) {
1014
+ url = $('body').attr('current-templates').replace(/\?/,name + '.xml?');
1015
+ } else {
1016
+ url = $('body').attr('current-templates') + name + ".xml";
1017
+ }
1021
1018
  } else {
1022
1019
  if ($('body').attr('load-testset').length > 0) {
1023
1020
  url = $('body').attr('load-testset');
@@ -1030,7 +1027,6 @@ function load_testset(exec) {// {{{
1030
1027
  url: url,
1031
1028
  success: function(res){
1032
1029
  save['dsl'] = null; // reload dsl and position under all circumstances
1033
- $('#main .tabbehind button').hide();
1034
1030
  $('#dat_details').empty();
1035
1031
 
1036
1032
  document.title = "Untitled";
@@ -1051,7 +1047,7 @@ function load_modeltype() {// {{{
1051
1047
  $.ajax({
1052
1048
  cache: false,
1053
1049
  dataType: 'xml',
1054
- url: $('body').attr('current-templates') + "." + name + ".xml",
1050
+ url: name + ".xml",
1055
1051
  success: function(res){
1056
1052
  $.ajax({
1057
1053
  type: "PUT",
@@ -1214,8 +1210,10 @@ function format_visual_vote_clear() {//{{{
1214
1210
 
1215
1211
  function format_instance_pos() { //{{{
1216
1212
  $(save['instance_pos']).each(function(){
1217
- var what = this.nodeName;
1218
- format_visual_add(what,save['state'] == 'running' ? 'active' : 'passive');
1213
+ console.log(this);
1214
+ var taskname = this.nodeName;
1215
+ var taskstate = this.textContent;
1216
+ format_visual_add(taskname,save['state'] == 'running' ? (taskstate == 'at' ? 'active' : 'passive') : 'passive');
1219
1217
  });
1220
1218
  } //}}}
1221
1219
 
data/cockpit/js/model.js CHANGED
@@ -1,41 +1,11 @@
1
- document.addEventListener('graph:changed', function (e) {
2
- $("button[name=save]").prop("disabled",false);
3
- }, false);
4
-
5
1
  $(document).ready(function() {
6
- $('#tabmodel').click(function(event){
7
- $('#model ui-behind button:nth-child(1)').addClass('hidden');
8
- });
9
- $('#tabdataelements').click(function(event){
10
- $('#model ui-behind button:nth-child(1)').removeClass('hidden');
11
- });
12
-
13
- $('#model ui-behind button:nth-child(1)').click(function(event){
14
- var but = $(document).find('#model ui-content ui-area:not(.inactive) button');
2
+ $('#model ui-content ui-area > button').click(function(event){
3
+ var but = $(document).find('#model ui-content ui-area:not(.inactive) > div button');
15
4
  but.click();
16
- var are = $(document).find('#model ui-content ui-area:not(.inactive)');
17
- var tab = $(document).find('#model ui-content ui-area:not(.inactive) .relaxngui_table');
5
+ var inp = $(document).find('#model ui-content ui-area:not(.inactive) > div input');
6
+ $(inp[inp.length-2]).focus();
7
+ var are = $(document).find('#model ui-content ui-area:not(.inactive) > div');
8
+ var tab = $(document).find('#model ui-content ui-area:not(.inactive) > div > div');
18
9
  are.animate({ scrollTop: tab.height() }, "slow");
19
10
  });
20
-
21
- $("button[name=save]").click(function(){
22
- var def = new $.Deferred();
23
- def.done(function(name,testset) {
24
- $.ajax({
25
- url: $('body').attr('current-save') + ($('body').attr('current-save-dir') ? ($('body').attr('current-save-dir') + '/').replace(/\/+/,'/') : '') + name + '.xml',
26
- type: 'PUT',
27
- contentType: 'application/xml',
28
- data: testset.serializePrettyXML(),
29
- headers: { 'Content-ID': 'content' },
30
- success: function() {
31
- $("button[name=save]").prop("disabled",true);
32
- $("#lastsavedline").removeClass('hidden');
33
- var dt = new Date();
34
- var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
35
- $("#lastsaved").text(time);
36
- }
37
- });
38
- });
39
- get_testset(def);
40
- });
41
11
  });
@@ -1,3 +1,5 @@
1
+ var parameters_changed = new Event("parameters:changed", {"bubbles":true, "cancelable":false});
2
+
1
3
  $(document).ready(function() {
2
4
  // hook up dataelements with relaxngui //{{{
3
5
  $.ajax({
@@ -28,11 +30,13 @@ $(document).ready(function() {
28
30
  }); //}}}
29
31
 
30
32
  // new entry //{{{
31
- $('#parameters ui-behind button:nth-child(1)').click(function(event){
32
- var but = $(document).find('#parameters ui-content ui-area:not(.inactive) button');
33
+ $('#parameters ui-content ui-area > button').click(function(event){
34
+ var but = $(document).find('#parameters ui-content ui-area:not(.inactive) > div button');
33
35
  but.click();
34
- var are = $(document).find('#parameters ui-content ui-area:not(.inactive)');
35
- var tab = $(document).find('#parameters ui-content ui-area:not(.inactive) .relaxngui_table');
36
+ var inp = $(document).find('#parameters ui-content ui-area:not(.inactive) > div input');
37
+ $(inp[inp.length-2]).focus();
38
+ var are = $(document).find('#parameters ui-content ui-area:not(.inactive) > div');
39
+ var tab = $(document).find('#parameters ui-content ui-area:not(.inactive) > div > div');
36
40
  are.animate({ scrollTop: tab.height() }, "slow");
37
41
  }); //}}}
38
42
 
@@ -68,6 +72,7 @@ function do_parameters_save(event) { //{{{
68
72
  var url = $('body').attr('current-instance');
69
73
  save[visid].set_checkpoint();
70
74
  var send = save[visid].save_text();
75
+ document.dispatchEvent(parameters_changed);
71
76
  $.ajax({
72
77
  type: "PUT",
73
78
  url: url + "/properties/" + visid + "/",
@@ -0,0 +1,40 @@
1
+ $(document).ready(function() {
2
+ $("#replay button").click(e => {
3
+ $.ajax({
4
+ url: $('#replay input').val(),
5
+ type: 'GET',
6
+ success: function(re) {
7
+ var de;
8
+ var ep;
9
+ var at;
10
+ var desc;
11
+ try {
12
+ jsyaml.loadAll(re,e => {
13
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'dataelements/change') {
14
+ de = e.event.data.data_values;
15
+ }
16
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'endpoints/change') {
17
+ ep = e.event.data.data_values;
18
+ }
19
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'attributes/change') {
20
+ at = e.event.data.data_values;
21
+ }
22
+ if (e.event && e.event['cpee:description']) {
23
+ desc = e.event['cpee:description'];
24
+ }
25
+ if (e.event && e.event['cpee:state'] == 'running') {
26
+ throw BreakException;
27
+ }
28
+ });
29
+ } catch(e) { /* just to break out of the iterator. what a shitty language */ }
30
+ }
31
+ });
32
+
33
+
34
+ // load log with ajax
35
+ // extract process model
36
+ // initialize process model
37
+ // set attributes
38
+ // change start button to do replay
39
+ });
40
+ });