cpee-worklist 1.0.11 → 1.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 803b1b014fedfd15a18792b7d8bd8ae44b8ca3f0f9c9e73ee3bce147c079fe66
4
- data.tar.gz: 0a5faa9d0a7a044a450b17dcf2d30b98774800b5e3cf5d5c1e4e8dc535512d9f
3
+ metadata.gz: b72225ecc2d91fbb34ad5b7d9200629253f98fb5491d12530616a8df09274212
4
+ data.tar.gz: ef302a65ff231f1a1fb76ccdddb7b75fc7ec0d115423ff5f57b8c76eb3d16d6f
5
5
  SHA512:
6
- metadata.gz: 5cd26a575083104789de654796f57ef5f403e7ee03fc4c0f79b16c0f0ee7225ef904c992eb71760e571c2d536e29bbcec46336baae02375c2e1ff4adf315212f
7
- data.tar.gz: 60353fd3d43a1419b4633c26dd17aa5da78b350e907a684f3a64618df3055d177ae32cc0a63fc97a6fe8b20db67ac251a04df345e6248d5be82d4642907ca28c
6
+ metadata.gz: 8dee9ecaf43bced78032731890e5469b80e193af2fefb8a5a397101ad5d902a5fa7e972f165b4a08bdaa5f11c9c706b21fdb5003a0bac0a7096946cf50d0b0ea
7
+ data.tar.gz: ffe193949bb0c140d2e5eef84c2b3a09dee2385b73ca92898bbab7f54902c41a67ec19cf4a63aec6488c3f7bb8b9d3e57f9eb43509763aa340a202b43ff83dbd
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee-worklist"
3
- s.version = "1.0.11"
3
+ s.version = "1.0.13"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0-or-later"
6
6
  s.summary = "Worklist for the cloud process execution engine (cpee.org)"
@@ -86,6 +86,14 @@ module CPEE
86
86
  activity['restrictions'] = []
87
87
  rests = JSON::parse(@p.shift.value) rescue nil
88
88
  activity['restrictions'] << rests unless rests.nil?
89
+ if @p.first.name == 'prioritization'
90
+ val = @p.shift.value
91
+ activity['prioritization'] = (JSON::parse(val) rescue val.gsub(/[\[\]()<>"']/,'').split(/\s*[,;]\s*/))
92
+ else
93
+ activity['prioritization'] = []
94
+ end
95
+ activity['label_extension'] = @p.first.name == 'label' ? @p.shift.value.to_s : nil
96
+ activity['label_extension_details'] = @p.first.name == 'label_details' ? @p.shift.value.to_s : nil
89
97
  activity['parameters'] = JSON::parse(@p.shift.value) rescue {}
90
98
  status, content, headers = Riddl::Client.new(activity['orgmodel']).get
91
99
  if status == 200
@@ -236,6 +244,9 @@ module CPEE
236
244
  tasks["#{activity['id']}"] = { :all => activity.has_key?('collect') && !activity['collect'].nil?, :uid => @r[-2], :priority => activity['priority'], :label => activity['process'] + ': ' + activity['label'] }
237
245
  tasks["#{activity['id']}"][:own] = activity['user'].include?(@r[-2])
238
246
  tasks["#{activity['id']}"][:deadline] = activity['deadline'] if activity['deadline']
247
+ tasks["#{activity['id']}"][:prioritization] = activity['prioritization']&.join(', ') || ''
248
+ tasks["#{activity['id']}"][:label_extension] = activity['label_extension'] if activity['label_extension']
249
+ tasks["#{activity['id']}"][:label_extension_details] = activity['label_extension_details'] if activity['label_extension_details']
239
250
  end
240
251
  end
241
252
  end
@@ -254,7 +265,7 @@ module CPEE
254
265
  index = @a[0].activities.index{ |c| c["id"] == @r.last }
255
266
  if index
256
267
  activity = @a[0].activities[index]
257
- activity['user'].push @r[-3]if CPEE::Worklist::User::ok?(@a[0].opts,activity,@r[-3])
268
+ activity['user'].push @r[-3]if CPEE::Worklist::User::ok?(@a[0].opts,activity,@r[-3]) && !activity['user'].include?(@r[-3])
258
269
  info = CPEE::Worklist::User::info(@a[0].opts,activity,@r[-3])
259
270
  @a[0].activities.serialize
260
271
  @a[0].notify('user/take', :user => @r[-3], :callback_id => activity['id'], :cpee_callback => activity['url'], :cpee_instance => activity['cpee_instance'],:instance_uuid => activity['uuid'], :cpee_base => activity['cpee_base'], :cpee_label => activity['label'], :cpee_activity => activity['cpee_activity_id'], :orgmodel => activity['orgmodel'], :organisation => info)
@@ -311,7 +322,7 @@ module CPEE
311
322
  end
312
323
  end #}}}
313
324
 
314
- class AssignTask < Riddl::Implementation #{{{
325
+ class AssignTask < Riddl::Implementation #{{{
315
326
  def response
316
327
  index = @a[0].activities.index{ |c| c["id"] == @r.last }
317
328
  if index
@@ -0,0 +1 @@
1
+ 551411
@@ -0,0 +1 @@
1
+ 551417
@@ -0,0 +1 @@
1
+ 551423
@@ -0,0 +1 @@
1
+ 551429
@@ -38,6 +38,15 @@
38
38
  <parameter name="deadline" type="string"/>
39
39
  </optional>
40
40
  <parameter name="restrictions" type="string"/>
41
+ <optional>
42
+ <parameter name="prioritization" type="string"/>
43
+ </optional>
44
+ <optional>
45
+ <parameter name="label" type="string"/>
46
+ </optional>
47
+ <optional>
48
+ <parameter name="label_details" type="string"/>
49
+ </optional>
41
50
  <parameter name="data" type="string"/>
42
51
  </message> <!--}}}-->
43
52
 
data/ui/container.html CHANGED
@@ -1,16 +1,16 @@
1
1
  <!--
2
- This file is part of CPEE.
2
+ This file is part of CPEE-WORKLIST.
3
3
 
4
- CPEE is free software: you can redistribute it and/or modify it under the terms
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it under the terms
5
5
  of the GNU General Public License as published by the Free Software Foundation,
6
6
  either version 3 of the License, or (at your option) any later version.
7
7
 
8
- CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
8
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
9
9
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
10
  PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
11
 
12
12
  You should have received a copy of the GNU General Public License along with
13
- CPEE (file COPYING in the main directory). If not, see
13
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
14
14
  <http://www.gnu.org/licenses/>.
15
15
  -->
16
16
 
@@ -34,7 +34,8 @@
34
34
  <script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
35
35
  <script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
36
36
  <script type="text/javascript" src="/js_libs/marked.min.js"></script>
37
+
38
+ <link rel="stylesheet" href="css/container.css" type="text/css"/>
37
39
  </head>
38
- <body>
39
- </body>
40
+ <body is='x-ui-'></body>
40
41
  </html>
@@ -0,0 +1,76 @@
1
+ /*
2
+ This file is part of CPEE-WORKLIST.
3
+
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it
5
+ under the terms of the GNU General Public License as published by the Free
6
+ Software Foundation, either version 3 of the License, or (at your option) any
7
+ later version.
8
+
9
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+
13
+ You should have received a copy of the GNU General Public License along with
14
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
15
+ <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ :root {
19
+ --x-ui-border-color: #a1a1a1;
20
+ --x-ui-outside-color: #ffffff;
21
+ --x-ui-background-color: #ffffff;
22
+ --x-ui-light-text-color: #333;
23
+ --x-ui-light-back-color: #e8e8e8;
24
+ --x-ui-link-color: #425d73;
25
+ --x-ui-content-border-color: #ffed00;
26
+ --x-ui-content-light-background: #f0f0f0;
27
+ --x-ui-content-hover-background: #99cce660;
28
+ }
29
+
30
+ body {
31
+ -webkit-user-select: none;
32
+ -moz-user-select: -moz-none;
33
+ -ms-user-select: none;
34
+ user-select: none;
35
+ font-family: sans-serif;
36
+ font-size: 1em;
37
+ margin: 1em;
38
+ }
39
+
40
+ input { font-family: sans-serif; font-size: 1em; }
41
+
42
+ textarea, input, select, button {
43
+ font-family: Verdana, Helvetica, sans-serif;
44
+ font-size: 1em;
45
+ resize: none;
46
+ }
47
+
48
+ button, select {
49
+ padding: .1em .2em;
50
+ border: 1pt solid var(--x-ui-border-color);
51
+ border-radius: 0.2em;
52
+ margin: 0;
53
+ font-size: 0.9em;
54
+ background: var(--x-ui-light-back-color);
55
+ background: -webkit-gradient(linear, left top, left bottom, from(white), to(var(--x-ui-light-back-color)));
56
+ background: -moz-linear-gradient(top, white, var(--x-ui-light-back-color));
57
+ cursor: pointer;
58
+ }
59
+ button::-moz-focus-inner {
60
+ border: 0 none;
61
+ padding: 0;
62
+ margin: 0;
63
+ }
64
+ button.highlight {
65
+ background: -webkit-gradient(linear, left top, left bottom, from(white), to(Highlight));
66
+ background: -moz-linear-gradient(top, white, Highlight);
67
+ }
68
+
69
+ input { font-family: sans-serif; font-size: 1em; }
70
+ input::-webkit-input-placeholder { color: red; }
71
+ input:-moz-placeholder { color: red; }
72
+
73
+ a:link { color:var(--x-ui-link-color); text-decoration:none; }
74
+ a:visited { color:var(--x-ui-link-color); text-decoration:none; }
75
+ a:hover { color:var(--x-ui-light-text-color); text-decoration:underline; }
76
+ a:active { color:var(--x-ui-light-text-color); text-decoration:underline; }
data/ui/css/ui.css CHANGED
@@ -1,3 +1,20 @@
1
+ /*
2
+ This file is part of CPEE-WORKLIST.
3
+
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it
5
+ under the terms of the GNU General Public License as published by the Free
6
+ Software Foundation, either version 3 of the License, or (at your option) any
7
+ later version.
8
+
9
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+
13
+ You should have received a copy of the GNU General Public License along with
14
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
15
+ <http://www.gnu.org/licenses/>.
16
+ */
17
+
1
18
  body {
2
19
  -webkit-user-select: none;
3
20
  -moz-user-select: -moz-none;
@@ -93,6 +110,19 @@ button.highlight { background-color: #cc0000; }
93
110
  #dat_tasks tr:nth-child(odd) { background-color: ButtonFace; color: ButtonText; }
94
111
  #dat_tasks tr:nth-child(odd) input { background-color: ButtonFace; }
95
112
 
113
+ #areatasklist .dat_heading {
114
+ border: 1em solid white;
115
+ border-left: 0;
116
+ border-bottom: 0;
117
+ white-space: nowrap;
118
+ }
119
+ #areatasklist .dat_heading span {
120
+ font-weight: bold;
121
+ font-size: 1.2em;
122
+ }
123
+
124
+ .permahidden { display: none; }
125
+
96
126
  span.active {
97
127
  font-weight: bold;
98
128
  color: #cc0000;
@@ -146,19 +176,41 @@ ui-area > form {
146
176
  display: block;
147
177
  }
148
178
 
149
- #dat_tasks tr.priority_1:nth-child(even) { background-color: #dc8add30; color: ButtonText; }
150
- #dat_tasks tr.priority_1:nth-child(even) input { background-color: #dc8add30; }
151
- #dat_tasks tr.priority_1:nth-child(odd) { background-color: #dc8add80; color: ButtonText; }
152
- #dat_tasks tr.priority_1:nth-child(odd) input { background-color: #dc8add80; }
179
+ .dat_outer_table { margin-left: 1em; margin-top: 1em; margin-right: 1em; }
153
180
 
154
- #dat_tasks tr.priority_1 td:first-child::before {
155
- content: !
156
- }
181
+ .dat_table { margin-left: 1em; margin-top: 1em; margin-right: 1em; }
182
+ .dat_table:last-child { margin-bottom: 1em; }
183
+ .dat_table tr { white-space: nowrap; }
184
+
185
+ thead td { margin: 0; padding: 0; }
186
+ tbody.dat_table.dat_tasks_priority_high tr td:first-child { border-left: 0em solid transparent; }
187
+ tbody.dat_table tr td:first-child { border-left: 1em solid transparent; }
188
+
189
+ .dat_indent_table { margin-left: 1.5em; margin-top: 0; }
190
+
191
+ .dat_table tr:nth-child(even) { background-color: #dedddaff; color: ButtonText; }
192
+ .dat_table tr:nth-child(even) input { background-color: #dedddaff; }
193
+ .dat_table tr:nth-child(odd) { background-color: #f6f5f4ff; color: ButtonText; }
194
+ .dat_table tr:nth-child(odd) input { background-color: #f6f5f4ff; }
157
195
 
158
- #dat_tasks tr.priority_42:nth-child(even) { background-color: #99c1f130; color: ButtonText; }
159
- #dat_tasks tr.priority_42:nth-child(even) input { background-color: #99c1f130; }
160
- #dat_tasks tr.priority_42:nth-child(odd) { background-color: #99c1f180; color: ButtonText; }
161
- #dat_tasks tr.priority_42:nth-child(odd) input { background-color: #99c1f180; }
196
+ .dat_table tr.priority_1:nth-child(even) { background-color: #dc8add30; color: ButtonText; }
197
+ .dat_table tr.priority_1:nth-child(even) input { background-color: #dc8add30; }
198
+ .dat_table tr.priority_1:nth-child(odd) { background-color: #dc8add80; color: ButtonText; }
199
+ .dat_table tr.priority_1:nth-child(odd) input { background-color: #dc8add80; }
200
+
201
+ .dat_table tr.priority_42:nth-child(even) { background-color: #99c1f130; color: ButtonText; }
202
+ .dat_table tr.priority_42:nth-child(even) input { background-color: #99c1f130; }
203
+ .dat_table tr.priority_42:nth-child(odd) { background-color: #99c1f180; color: ButtonText; }
204
+ .dat_table tr.priority_42:nth-child(odd) input { background-color: #99c1f180; }
205
+
206
+ .dat_table tr td.buttons {
207
+ padding-left: 0.5em;
208
+ padding-right: 0.5em;
209
+ }
210
+ .dat_table tr td.name {
211
+ padding-left: 0.5em;
212
+ padding-right: 0.5em;
213
+ }
162
214
 
163
215
  .pulseit{
164
216
  animation: pulse linear 2s 3;
@@ -171,4 +223,37 @@ ui-area > form {
171
223
  100% { background-color: #ebdef0; }
172
224
  }
173
225
 
226
+ ui-resizehandle {
227
+ border-left: 1px solid var(--x-ui-border-color);
228
+ }
229
+ #detailcolumn {
230
+ min-width: 2.5em;
231
+ }
232
+ #detailcolumn iframe {
233
+ width: 100%;
234
+ height: 100%;
235
+ border: 0 none;
236
+ border-left: 1em solid white;
237
+ margin: 0;
238
+ padding: 0;
239
+ box-sizing: border-box;
240
+ display: block;
241
+ }
242
+
243
+ body.drag-in-progress #detailcolumn iframe {
244
+ pointer-events: none;
245
+ }
246
+
247
+ .extension.clickable {
248
+ cursor: pointer;
249
+ color:var(--x-ui-link-color);
250
+ text-decoration:none;
251
+ }
252
+ .extension.clickable:hover {
253
+ color:var(--x-ui-light-text-color);
254
+ text-decoration:underline;
255
+ }
174
256
 
257
+ .filler {
258
+ width: 100%;
259
+ }
data/ui/direct.html CHANGED
@@ -1,16 +1,17 @@
1
+ <td class='filler'></td>
1
2
  <!--
2
- This file is part of CPEE.
3
+ This file is part of CPEE-WORKLIST.
3
4
 
4
- CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it under the terms
5
6
  of the GNU General Public License as published by the Free Software Foundation,
6
7
  either version 3 of the License, or (at your option) any later version.
7
8
 
8
- CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
9
10
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
11
  PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
12
 
12
13
  You should have received a copy of the GNU General Public License along with
13
- CPEE (file COPYING in the main directory). If not, see
14
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
14
15
  <http://www.gnu.org/licenses/>.
15
16
  -->
16
17
 
@@ -33,6 +34,7 @@
33
34
  <script type="text/javascript" src="/js_libs/underscore.min.js"></script>
34
35
  <script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
35
36
  <script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
37
+ <script type="text/javascript" src="/js_libs/marked.min.js"></script>
36
38
 
37
39
  <script type="text/javascript" src="/js_libs/relaxngui.js"></script>
38
40
 
@@ -46,32 +48,29 @@
46
48
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
47
49
 
48
50
  <!-- Flos Stuff -->
49
- <script type="text/javascript" src="js/worklist.js"></script>
51
+ <script type="text/javascript" src="js/structured.js"></script>
50
52
  </head>
51
- <body data-defaultport="9398" is='x-ui-'>
53
+ <body data-defaultconfig='index.json' is='x-ui-'>
52
54
  <!-- The following are templates that get used during ui generation, change them carefully -->
53
- <template id="dat_template_tasks_single">
54
- <tr class="task"> <!--{{{-->
55
+ <template id="dat_template_tasks_single"><!--{{{-->
56
+ <tr class="task">
55
57
  <td class='name'></td>
56
- <td class='sep'>⇒</td>
57
- <td class='deadline'><em>No deadline.</em></td>
58
58
  <td class='buttons'>
59
- <button class='task_take' value=''>Take</button>
60
- <button class='task_giveback' value=''>Give Back</button>
59
+ <button class='task_continue' value=''>Continue ...</button>
61
60
  <button class='task_do' value=''>Do it!</button>
61
+ <button class='task_giveback' value=''>Others should do it!</button>
62
62
  </td>
63
+ <td class='filler'></td>
63
64
  </tr>
64
65
  </template> <!--}}}-->
65
66
  <template id="dat_template_tasks_multi"> <!--{{{-->
66
67
  <tr class="task">
67
68
  <td class='name'></td>
68
- <td class='sep'>⇒</td>
69
- <td class='deadline'><em>No Deadline.</em></td>
70
69
  <td class='buttons'>
71
- <button class='task_take' value='' style="visibility: hidden">Take</button>
72
- <button class='task_giveback' value='' style="visibility: hidden">Give Back</button>
70
+ <button class='task_continue' value=''>Continue ...</button>
73
71
  <button class='task_do' value=''>Do it!</button>
74
72
  </td>
73
+ <td class='deadline filler'><em>(until <span></span></em>)</td>
75
74
  </tr>
76
75
  </template> <!--}}}-->
77
76
  <template id="dat_template_orgmodels"> <!--{{{-->
@@ -132,8 +131,7 @@
132
131
  </ui-tabbar>
133
132
  <ui-content>
134
133
  <ui-area data-belongs-to-tab="task" id="areatasklist"> <!--{{{-->
135
- <div id="dat_message" style="display: none;">Currently no tasks available.</div>
136
- <table id="dat_tasks" class="layout"></table>
134
+ <table class="dat_tasks_priority_high dat_tasks_own dat_tasks_priority dat_tasks_others dat_tasks_others_work dat_table"></table>
137
135
  </ui-area> <!--}}}-->
138
136
  </ui-content>
139
137
  </ui-rest>
data/ui/index.html CHANGED
@@ -1,16 +1,16 @@
1
1
  <!--
2
- This file is part of CPEE.
2
+ This file is part of CPEE-WORKLIST.
3
3
 
4
- CPEE is free software: you can redistribute it and/or modify it under the terms
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it under the terms
5
5
  of the GNU General Public License as published by the Free Software Foundation,
6
6
  either version 3 of the License, or (at your option) any later version.
7
7
 
8
- CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
8
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
9
9
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
10
  PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
11
 
12
12
  You should have received a copy of the GNU General Public License along with
13
- CPEE (file COPYING in the main directory). If not, see
13
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
14
14
  <http://www.gnu.org/licenses/>.
15
15
  -->
16
16
 
@@ -47,32 +47,29 @@
47
47
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
48
48
 
49
49
  <!-- Flos Stuff -->
50
- <script type="text/javascript" src="js/worklist.js"></script>
50
+ <script type="text/javascript" src="js/structured.js"></script>
51
51
  </head>
52
- <body data-defaultport="9398" is='x-ui-'>
52
+ <body data-defaultconfig='index.json' is='x-ui-'>
53
53
  <!-- The following are templates that get used during ui generation, change them carefully -->
54
- <template id="dat_template_tasks_single">
55
- <tr class="task"> <!--{{{-->
54
+ <template id="dat_template_tasks_single"><!--{{{-->
55
+ <tr class="task">
56
56
  <td class='name'></td>
57
- <td class='sep'>⇒</td>
58
- <td class='deadline'><em>No deadline.</em></td>
59
57
  <td class='buttons'>
60
- <button class='task_take' value=''>Take</button>
61
- <button class='task_giveback' value=''>Give Back</button>
58
+ <button class='task_continue' value=''>Continue ...</button>
62
59
  <button class='task_do' value=''>Do it!</button>
60
+ <button class='task_giveback' value=''>Others should do it!</button>
63
61
  </td>
62
+ <td class='filler'></td>
64
63
  </tr>
65
64
  </template> <!--}}}-->
66
65
  <template id="dat_template_tasks_multi"> <!--{{{-->
67
66
  <tr class="task">
68
67
  <td class='name'></td>
69
- <td class='sep'>⇒</td>
70
- <td class='deadline'><em>No Deadline.</em></td>
71
68
  <td class='buttons'>
72
- <button class='task_take' value='' style="visibility: hidden">Take</button>
73
- <button class='task_giveback' value='' style="visibility: hidden">Give Back</button>
69
+ <button class='task_continue' value=''>Continue ...</button>
74
70
  <button class='task_do' value=''>Do it!</button>
75
71
  </td>
72
+ <td class='deadline filler'><em>(until <span></span></em>)</td>
76
73
  </tr>
77
74
  </template> <!--}}}-->
78
75
  <template id="dat_template_orgmodels"> <!--{{{-->
@@ -127,14 +124,13 @@
127
124
 
128
125
  <ui-rest class="hidden" id='main'>
129
126
  <ui-tabbar>
130
- <ui-before ></ui-before>
131
- <ui-tab class="default" data-tab="task" id="tabtask">Tasks</ui-tab>
132
- <ui-behind ></ui-behind>
127
+ <ui-before ></ui-before>
128
+ <ui-tab class="default" data-tab="task" id="tabtask">Tasks</ui-tab>
129
+ <ui-behind ></ui-behind>
133
130
  </ui-tabbar>
134
131
  <ui-content>
135
132
  <ui-area data-belongs-to-tab="task" id="areatasklist"> <!--{{{-->
136
- <div id="dat_message" style="display: none;">Currently no tasks available.</div>
137
- <table id="dat_tasks" class="layout"></table>
133
+ <table class="dat_tasks_priority_high dat_tasks_own dat_tasks_priority dat_tasks_others dat_tasks_others_work dat_table"></table>
138
134
  </ui-area> <!--}}}-->
139
135
  </ui-content>
140
136
  </ui-rest>
data/ui/index.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "names": 3
3
+ }
@@ -1,3 +1,20 @@
1
+ /*
2
+ This file is part of CPEE-WORKLIST.
3
+
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it
5
+ under the terms of the GNU General Public License as published by the Free
6
+ Software Foundation, either version 3 of the License, or (at your option) any
7
+ later version.
8
+
9
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+
13
+ You should have received a copy of the GNU General Public License along with
14
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
15
+ <http://www.gnu.org/licenses/>.
16
+ */
17
+
1
18
  function toggle_message(message=undefined) { //{{{
2
19
  var url =$("input[name=base-url]").val()+'/'+$("input[name=user-name]").val()+'/';
3
20
  if ($("#dat_tasks tr").length == 0) {
@@ -19,21 +36,49 @@ function toggle_message(message=undefined) { //{{{
19
36
  }
20
37
  } //}}}
21
38
 
39
+ function config_defaults() { //{{{
40
+ var default_values = {};
41
+ if (location.protocol.match(/^file/)) {
42
+ default_values['base-url'] = 'http://localhost:9298/';
43
+ } else {
44
+ default_values['base-url'] = location.protocol + "//" + location.hostname + '/worklist/server';
45
+ }
46
+ default_values['names'] = 2;
47
+ return default_values;
48
+ } //}}}
49
+
22
50
  $(document).ready(function() {// {{{
23
- $("input[name=base-url]").val(location.protocol + "//" + location.host + '/worklist/server');
51
+ var q = $.parseQuerySimple();
52
+ $.ajax({
53
+ url: $('body').attr('data-defaultconfig'),
54
+ success: function(res){
55
+ var res_def = config_defaults();
56
+ if (res['base-url']) { res_def['base-url'] = res['base-url']; }
57
+ if (res['names']) { res_def['names'] = res['names']; }
58
+
59
+ $('body').attr('data-names', res_def['names']);
60
+ $('input[name=base-url]').val(res_def['base-url']);
61
+
62
+ if (q.user) {
63
+ $("input[name=user-name]").val(q.user);
64
+ uidash_toggle_vis_tab($("#worklist .switch"));
65
+ get_worklist();
66
+ subscribe_worklist();
67
+ }
68
+ },
69
+ error: function(){
70
+ var res = config_defaults();
71
+ $('body').attr('data-names', res_def['names']);
72
+ $('input[name=base-url]').val(res_def['base-url']);
73
+ }
74
+ });
75
+
24
76
  $("#arealogin > form").submit(function(event){
25
77
  get_worklist();
26
78
  subscribe_worklist();
27
79
  uidash_toggle_vis_tab($("#worklist .switch"));
28
80
  event.preventDefault();
29
81
  });
30
- var q = $.parseQuerySimple();
31
- if (q.user) {
32
- $("input[name=user-name]").val(q.user);
33
- uidash_toggle_vis_tab($("#worklist .switch"));
34
- get_worklist();
35
- subscribe_worklist();
36
- }
37
82
  $(document).on('click','.orgmodeltab',function(event){
38
83
  var id = $(this).attr('data-tab');
39
84
  uidash_empty_tab_contents(id);
@@ -51,23 +96,66 @@ $(document).ready(function() {// {{{
51
96
  var url =$("input[name=user-url]").val()+'/tasks';
52
97
  var taskid = $(this).parents('tr').attr('data-id');
53
98
  var taskidurl = url + '/' + taskid;
54
- take_work(taskidurl,$('.task_take',$(this).parent()),$('.task_giveback',$(this).parent()),1);
99
+ take_work(taskidurl,$(this).parents('tr'),1);
100
+ do_work(taskid,taskidurl);
101
+ });
102
+ $(document).on('click','.task_continue',function(){
103
+ var url =$("input[name=user-url]").val()+'/tasks';
104
+ var taskid = $(this).parents('tr').attr('data-id');
105
+ var taskidurl = url + '/' + taskid;
55
106
  do_work(taskid,taskidurl);
56
107
  });
57
108
  $(document).on('click','.task_take',function(){
58
109
  var url =$("input[name=user-url]").val()+'/tasks';
59
110
  var taskid = $(this).parents('tr').attr('data-id');
60
111
  var taskidurl = url + '/' + taskid;
61
- take_work(taskidurl,$('.task_take',$(this).parent()),$('.task_giveback',$(this).parent()),1);
112
+ take_work(taskidurl,$(this).parents('tr'),1);
62
113
  });
63
114
  $(document).on('click','.task_giveback',function(){
64
115
  var url =$("input[name=user-url]").val()+'/tasks';
65
116
  var taskid = $(this).parents('tr').attr('data-id');
66
117
  var taskidurl = url + '/' + taskid;
67
- take_work(taskidurl,$('.task_giveback',$(this).parent()),$('.task_take',$(this).parent()),0);
118
+ take_work(taskidurl,$(this).parents('tr'),0);
68
119
  });
69
120
 
70
121
  });// }}}
122
+ function place_worklist_item(node,own) {
123
+ let prio = node.attr('data-priority');
124
+ let prioz = node.attr('data-prioritization');
125
+
126
+ if (own == 'true') {
127
+ $('.task_do',node).addClass('hidden');
128
+ $('.task_continue',node).removeClass('hidden');
129
+ $('.task_giveback',node).removeClass('hidden');
130
+ } else {
131
+ $('.task_do',node).removeClass('hidden');
132
+ $('.task_continue',node).addClass('hidden');
133
+ $('.task_giveback',node).addClass('hidden');
134
+ }
135
+
136
+ let ctv;
137
+ if (prio == 1) {
138
+ ctv = $(".dat_tasks_priority_high");
139
+ } else {
140
+ if (own == 'true') {
141
+ ctv = $(".dat_tasks_own");
142
+ } else {
143
+ if (prioz == '' || prioz.match($("input[name=user-name]").val())) {
144
+ ctv = $(".dat_tasks_priority");
145
+ } else {
146
+ ctv = $(".dat_tasks_others");
147
+ }
148
+ }
149
+ }
150
+ if (!ctv.is(node.parent())) {
151
+ ctv.append(node);
152
+ }
153
+ if (!$('.dat_tasks_priority_high').is(':empty')) { $('.dat_tasks_priority_high_head').removeClass('hidden'); } else { $('.dat_tasks_priority_high_head').addClass('hidden'); }
154
+ if (!$('.dat_tasks_priority').is(':empty')) { $('.dat_tasks_priority_head').removeClass('hidden'); } else { $('.dat_tasks_priority_head').addClass('hidden'); }
155
+ if (!$('.dat_tasks_own').is(':empty')) { $('.dat_tasks_own_head').removeClass('hidden'); } else { $('.dat_tasks_own_head').addClass('hidden'); }
156
+ if (!$('.dat_tasks_others').is(':empty')) { $('.dat_tasks_others_head').removeClass('hidden'); } else { $('.dat_tasks_others_head').addClass('hidden'); }
157
+ if (!$('.dat_tasks_others_work').is(':empty')) { $('.dat_tasks_others_work_head').removeClass('hidden'); } else { $('.dat_tasks_others_work_head').addClass('hidden'); }
158
+ }
71
159
 
72
160
  function get_worklist() {// {{{
73
161
  $("input[name=user-url]").val($("input[name=base-url]").val()+'/'+$("input[name=user-name]").val());
@@ -76,6 +164,10 @@ function get_worklist() {// {{{
76
164
  // Set url (no more cookie nonsense!)
77
165
  history.replaceState({}, '', '?user='+encodeURIComponent($("input[name=user-name]").val()));
78
166
 
167
+ $('#detailcolumn').addClass('hidden');
168
+ $('#detailcolumnresizer').addClass('hidden');
169
+ $('#detailcolumn iframe').attr('src','');
170
+
79
171
  $.ajax({
80
172
  type: "GET",
81
173
  url: url,
@@ -101,27 +193,62 @@ function get_worklist() {// {{{
101
193
  }
102
194
  });
103
195
  $("#main").removeClass("hidden");
104
- var ctv = $("#dat_tasks");
105
- ctv.empty();
196
+
197
+ $('.dat_tasks_priority_high').empty();
198
+ $('.dat_tasks_priority').empty();
199
+ $('.dat_tasks_own').empty();
200
+ $('.dat_tasks_others').empty();
201
+ $('.dat_tasks_others_work').empty();
202
+
203
+ $('.dat_tasks_priority_high_head').addClass('hidden');
204
+ $('.dat_tasks_priority_head').addClass('hidden');
205
+ $('.dat_tasks_own_head').addClass('hidden');
206
+ $('.dat_tasks_others_head').addClass('hidden');
207
+ $('.dat_tasks_others_work_head').addClass('hidden');
208
+
106
209
  $(res).find('task').each(function(){
107
210
  if ($(this).attr('all') == "true") {
108
211
  var node = $($("#dat_template_tasks_multi")[0].content.cloneNode(true));
109
- $('.deadline',node).text($(this).attr('deadline'));
212
+ $('.deadline span',node).text($(this).attr('deadline'));
110
213
  } else {
111
214
  var node = $($("#dat_template_tasks_single")[0].content.cloneNode(true));
112
215
  }
113
- var taskidurl = $(this).attr('id');
114
- var tasklabel = $(this).attr('label');
115
- node.find('tr').attr('data-id',taskidurl);
116
- node.find('tr').attr('data-label',tasklabel);
117
- node.find('tr').addClass('priority_' + $(this).attr('priority'));
118
- $('.name',node).text(tasklabel);
119
- if ($(this).attr('own')=='true') {
120
- $('.task_take',node).prop('disabled', true);
121
- } else {
122
- $('.task_giveback',node).prop('disabled', true);
216
+ let nam = $('.name',node)[0];
217
+ for (let i = 0; i < $('body').attr('data-names') - 1; i++) {
218
+ let n = nam.cloneNode(true);
219
+ $(nam).after(n);
123
220
  }
124
- ctv.append(node);
221
+ node.find('tr').attr('data-id',$(this).attr('id'));
222
+ node.find('tr').attr('data-label',$(this).attr('label'));
223
+ node.find('tr').attr('data-priority',$(this).attr('priority'));
224
+ node.find('tr').attr('data-prioritization',$(this).attr('prioritization'));
225
+ node.find('tr').addClass('priority_' + $(this).attr('priority'));
226
+
227
+ let i = 1;
228
+ $(this).attr('label').split(':').forEach( e => {
229
+ $('.name:nth-child(' + i + ')',node).text(e);
230
+ i++;
231
+ });
232
+ let lex = $('.name:nth-child(' + i + ')',node);
233
+ lex.text($(this).attr('label_extension'));
234
+ lex.addClass('extension');
235
+ if ($(this).attr('label_extension_details')) {
236
+ lex.addClass('clickable');
237
+ lex.click((ele)=>{
238
+ let hl = $(this).attr('label_extension_details').match(/highlight=(a\d+,)+([a-z0-9]{6,8})$/);
239
+ if (hl && hl.length >= 3) {
240
+ $('.highlight_active').removeAttr('style');
241
+ $('.highlight_active').removeClass('highlight_active');
242
+ $(ele.target).parent().css('background-color', '#' + hl.slice(-1)[0]);
243
+ $(ele.target).parent().addClass('highlight_active');
244
+ }
245
+ $('#detailcolumn').removeClass('hidden');
246
+ $('#detailcolumnresizer').removeClass('hidden');
247
+ $('#detailcolumn iframe').attr('src','');
248
+ $('#detailcolumn iframe').attr('src',$(this).attr('label_extension_details'));
249
+ });
250
+ }
251
+ place_worklist_item(node.find('tr'),$(this).attr('own'));
125
252
  });
126
253
  toggle_message();
127
254
  },
@@ -131,16 +258,18 @@ function get_worklist() {// {{{
131
258
  });
132
259
  }// }}}
133
260
 
134
- function take_work(url,butt,butt2,give_or_take){ //{{{
261
+ function take_work(url,node,give_or_take){ //{{{
135
262
  var op = give_or_take == 1 ? "take" : "giveback";
136
263
  $.ajax({
137
264
  type: "PUT",
138
265
  url: url,
139
266
  data:"operation="+op ,
140
267
  success: function(){
141
- $(butt).prop('disabled','true');
142
- $(butt2).prop('disabled','false');
143
- $(butt2).removeAttr('disabled');
268
+ if (op == "take") {
269
+ place_worklist_item(node,'true');
270
+ } else if (op == "giveback") {
271
+ place_worklist_item(node,'false');
272
+ }
144
273
  },
145
274
  error: function(a,b,c){
146
275
  alert("Put didn't work");
@@ -203,7 +332,7 @@ function do_work(taskid,taskidurl) { //{{{
203
332
  }
204
333
  }
205
334
 
206
- let worklist_form = $("<form id='worklist-form'></form></div>");
335
+ let worklist_form = $("<form id='worklist-form'></form>");
207
336
 
208
337
  let data;
209
338
  try { data = res.parameters; } catch (e) { data = {}; }
@@ -212,9 +341,13 @@ function do_work(taskid,taskidurl) { //{{{
212
341
  iframe.onload = () => {
213
342
  $(iframe.contentDocument.body).append(worklist_form);
214
343
  $(iframe.contentDocument.body).append(iform);
344
+
215
345
  iframe.contentWindow.data = data;
216
346
  iframe.contentWindow.form = $(iframe.contentDocument.body);
217
- iframe.contentWindow.eval(evaltext); // investigate indirect eval and strict
347
+
348
+ // investigate indirect eval and strict
349
+ iframe.contentWindow.eval(evaltext),
350
+
218
351
  $("#worklist-form",iframe.contentWindow.form).on('submit',function(e){
219
352
 
220
353
  let scount = 0;
@@ -0,0 +1,174 @@
1
+ <!--
2
+ This file is part of CPEE-WORKLIST.
3
+
4
+ CPEE-WORKLIST is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE-WORKLIST is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE-WORKLIST (file LICENSE in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ -->
16
+
17
+ <!DOCTYPE html>
18
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
19
+ <head>
20
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
21
+ <title>Worklist</title>
22
+
23
+ <!-- libs, do not modify. When local than load local libs. -->
24
+ <script type="text/javascript" src="/js_libs/jquery.min.js"></script>
25
+ <script type="text/javascript" src="/js_libs/jquery.browser.js"></script>
26
+ <script type="text/javascript" src="/js_libs/jquery.svg.min.js"></script>
27
+ <script type="text/javascript" src="/js_libs/jquery.svgdom.min.js"></script>
28
+ <script type="text/javascript" src="/js_libs/vkbeautify.js"></script>
29
+ <script type="text/javascript" src="/js_libs/util.js"></script>
30
+ <script type="text/javascript" src="/js_libs/printf.js"></script>
31
+ <script type="text/javascript" src="/js_libs/strftime.min.js"></script>
32
+ <script type="text/javascript" src="/js_libs/parsequery.js"></script>
33
+ <script type="text/javascript" src="/js_libs/underscore.min.js"></script>
34
+ <script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
35
+ <script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
36
+ <script type="text/javascript" src="/js_libs/marked.min.js"></script>
37
+
38
+ <script type="text/javascript" src="/js_libs/relaxngui.js"></script>
39
+
40
+ <script type="text/javascript" src="/js_libs/uidash.js"></script>
41
+ <link rel="stylesheet" href="/js_libs/uidash.css" type="text/css"/>
42
+
43
+ <link rel="stylesheet" href="/js_libs/relaxngui.css" type="text/css"/>
44
+
45
+ <!-- custom stuff, play arround -->
46
+ <link rel="stylesheet" href="css/ui.css" type="text/css"/>
47
+ <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
48
+
49
+ <!-- Flos Stuff -->
50
+ <script type="text/javascript" src="js/structured.js"></script>
51
+ </head>
52
+ <body data-defaultconfig='structured.json' is='x-ui-'>
53
+ <!-- The following are templates that get used during ui generation, change them carefully -->
54
+ <template id="dat_template_tasks_single"><!--{{{-->
55
+ <tr class="task">
56
+ <td class='name'></td>
57
+ <td class='buttons'>
58
+ <button class='task_continue' value=''>Continue ...</button>
59
+ <button class='task_do' value=''>Do it!</button>
60
+ <button class='task_giveback' value=''>Others should do it!</button>
61
+ </td>
62
+ <td class='filler'></td>
63
+ </tr>
64
+ </template> <!--}}}-->
65
+ <template id="dat_template_tasks_multi"> <!--{{{-->
66
+ <tr class="task">
67
+ <td class='name'></td>
68
+ <td class='buttons'>
69
+ <button class='task_continue' value=''>Continue ...</button>
70
+ <button class='task_do' value=''>Do it!</button>
71
+ </td>
72
+ <td class='deadline filler'><em>(until <span></span></em>)</td>
73
+ </tr>
74
+ </template> <!--}}}-->
75
+ <template id="dat_template_orgmodels"> <!--{{{-->
76
+ <li class="orgmodel"><a class='link' href=""></a> ⇒ [<a class='model' href="">View Model</a>]</li>
77
+ </template> <!--}}}-->
78
+
79
+ <ui-tabbed id="worklist">
80
+ <ui-tabbar>
81
+ <ui-tab class="switch" ></ui-tab>
82
+ <ui-tab class="" data-tab="login" id="tablogin" >Login</ui-tab>
83
+ <ui-tab class="inactive hidden" data-tab="organisation" id="taborganisation">Organisation</ui-tab>
84
+ <ui-tab class="inactive " data-tab="configure" id="tabconfigure" >Configure</ui-tab>
85
+ <ui-behind><input name="current-instance" type="text" value="" readonly='readonly' style='display:none'/><a id='current-instance'></a></ui-behind>
86
+ <ui-last><a class="logo" href=".."></a></ui-last>
87
+ </ui-tabbar>
88
+ <ui-content>
89
+ <ui-area data-belongs-to-tab="login" id="arealogin"> <!--{ {{-->
90
+ <form>
91
+ <table class='layout'>
92
+ <tr>
93
+ <td>User Name:</td>
94
+ <td><input name="user-name" type="text" value=""/></td>
95
+ </tr>
96
+ <tr>
97
+ <td>Password:</td>
98
+ <td><input name="pass" disabled="disabled" type="text" value="Not necessary in this demo."/></td>
99
+ <td><input name="getListBt" type="submit" value="get Worklist"/></td>
100
+ </tr>
101
+ </table>
102
+ </form>
103
+ </ui-area> <!--}}}-->
104
+
105
+ <ui-area data-belongs-to-tab="organisation" id="areaorganisation" class="inactive"> <!--{{{-->
106
+ <ul id="orgmodels">
107
+ </ul>
108
+ </ui-area> <!--}}}-->
109
+
110
+ <ui-area data-belongs-to-tab="configure" id="areaconfigure" class="inactive"> <!--{{{-->
111
+ <table class='layout'>
112
+ <tr>
113
+ <td>Base URL:</td>
114
+ <td><input name="base-url" type="text" value=""/></td>
115
+ </tr>
116
+ <tr>
117
+ <td>User URL:</td>
118
+ <td><input name="user-url" type="text" value="" readonly='readonly'/></td>
119
+ </tr>
120
+ </table>
121
+ </ui-area> <!--}}}-->
122
+ </ui-content>
123
+ </ui-tabbed>
124
+
125
+ <ui-rest class="hidden" id='main'>
126
+ <ui-tabbar>
127
+ <ui-before ></ui-before>
128
+ <ui-tab class="default" data-tab="task" id="tabtask">Tasks</ui-tab>
129
+ <ui-behind ></ui-behind>
130
+ </ui-tabbar>
131
+ <ui-content>
132
+ <ui-area data-belongs-to-tab="task" id="areatasklist"> <!--{{{-->
133
+ <table class="dat_outer_table">
134
+ <thead>
135
+ <tr><td colspan="42">
136
+ <div class="dat_tasks_priority_high_head dat_heading permahidden"></div>
137
+ </td></tr>
138
+ </thead>
139
+ <tbody class="dat_tasks_priority_high dat_table dat_indent_table"></tbody>
140
+ <thead>
141
+ <tr><td colspan="42">
142
+ <div class="dat_tasks_own_head dat_heading hidden"><span>Tasks I currently work on ...</span></div>
143
+ </td></tr>
144
+ </thead>
145
+ <tbody class="dat_tasks_own dat_table dat_indent_table"></tbody>
146
+ <thead>
147
+ <tr><td colspan="42">
148
+ <div class="dat_tasks_priority_head dat_heading hidden"><span>Tasks initiated by me ...</span></div>
149
+ </td></tr>
150
+ </thead>
151
+ <tbody class="dat_tasks_priority dat_table dat_indent_table"></tbody>
152
+ <thead>
153
+ <tr><td colspan="42">
154
+ <div class="dat_tasks_others_head dat_heading hidden"><span>Tasks initiated by others ... (but I can do them as well)</span></div>
155
+ </td></tr>
156
+ </thead>
157
+ <tbody class="dat_tasks_others dat_table dat_indent_table"></tbody>
158
+ <thead>
159
+ <tr><td colspan="42">
160
+ <div class="dat_tasks_others_work_head dat_heading hidden"><span>Tasks others currently work on ...</span></div>
161
+ </td></tr>
162
+ </thead>
163
+ <tbody class="dat_tasks_others_work dat_table dat_indent_table"></tbody>
164
+ </table>
165
+ </ui-area> <!--}}}-->
166
+ <ui-resizehandle data-belongs-to-tab="task" id="detailcolumnresizer" data-label="drag to resize" class="hidden"></ui-resizehandle>
167
+ <ui-area data-belongs-to-tab="task" id="detailcolumn" class="hidden">
168
+ <iframe src=""></iframe>
169
+ </ui-area>
170
+ </ui-content>
171
+ </ui-rest>
172
+
173
+ </body>
174
+ </html>
@@ -0,0 +1,3 @@
1
+ {
2
+ "names": 4
3
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cpee-worklist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.13
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: 2024-07-15 00:00:00.000000000 Z
13
+ date: 2024-11-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl
@@ -98,9 +98,13 @@ files:
98
98
  - lib/cpee-worklist/implementation.rb
99
99
  - lib/cpee-worklist/implementation.xml
100
100
  - lib/cpee-worklist/organisation.rng
101
+ - lib/cpee-worklist/routing/end.pid
101
102
  - lib/cpee-worklist/routing/end.rb
103
+ - lib/cpee-worklist/routing/forward-events.pid
102
104
  - lib/cpee-worklist/routing/forward-events.rb
105
+ - lib/cpee-worklist/routing/forward-votes.pid
103
106
  - lib/cpee-worklist/routing/forward-votes.rb
107
+ - lib/cpee-worklist/routing/persist.pid
104
108
  - lib/cpee-worklist/routing/persist.rb
105
109
  - lib/cpee-worklist/topics.xml
106
110
  - lib/cpee-worklist/user.rb
@@ -110,10 +114,14 @@ files:
110
114
  - server/worklist.conf
111
115
  - tools/cpee-worklist
112
116
  - ui/container.html
117
+ - ui/css/container.css
113
118
  - ui/css/ui.css
114
119
  - ui/direct.html
115
120
  - ui/index.html
116
- - ui/js/worklist.js
121
+ - ui/index.json
122
+ - ui/js/structured.js
123
+ - ui/structured.html
124
+ - ui/structured.json
117
125
  homepage: http://cpee.org/
118
126
  licenses:
119
127
  - LGPL-3.0-or-later
@@ -133,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
141
  - !ruby/object:Gem::Version
134
142
  version: '0'
135
143
  requirements: []
136
- rubygems_version: 3.5.9
144
+ rubygems_version: 3.5.16
137
145
  signing_key:
138
146
  specification_version: 4
139
147
  summary: Worklist for the cloud process execution engine (cpee.org)