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 +4 -4
- data/cpee-worklist.gemspec +1 -1
- data/lib/cpee-worklist/implementation.rb +13 -2
- data/lib/cpee-worklist/routing/end.pid +1 -0
- data/lib/cpee-worklist/routing/forward-events.pid +1 -0
- data/lib/cpee-worklist/routing/forward-votes.pid +1 -0
- data/lib/cpee-worklist/routing/persist.pid +1 -0
- data/lib/cpee-worklist/wlengine.xml +9 -0
- data/ui/container.html +7 -6
- data/ui/css/container.css +76 -0
- data/ui/css/ui.css +96 -11
- data/ui/direct.html +16 -18
- data/ui/index.html +17 -21
- data/ui/index.json +3 -0
- data/ui/js/{worklist.js → structured.js} +164 -31
- data/ui/structured.html +174 -0
- data/ui/structured.json +3 -0
- metadata +12 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b72225ecc2d91fbb34ad5b7d9200629253f98fb5491d12530616a8df09274212
|
4
|
+
data.tar.gz: ef302a65ff231f1a1fb76ccdddb7b75fc7ec0d115423ff5f57b8c76eb3d16d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8dee9ecaf43bced78032731890e5469b80e193af2fefb8a5a397101ad5d902a5fa7e972f165b4a08bdaa5f11c9c706b21fdb5003a0bac0a7096946cf50d0b0ea
|
7
|
+
data.tar.gz: ffe193949bb0c140d2e5eef84c2b3a09dee2385b73ca92898bbab7f54902c41a67ec19cf4a63aec6488c3f7bb8b9d3e57f9eb43509763aa340a202b43ff83dbd
|
data/cpee-worklist.gemspec
CHANGED
@@ -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
|
-
|
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
|
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
|
-
|
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
|
-
|
155
|
-
|
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
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
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
|
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/
|
51
|
+
<script type="text/javascript" src="js/structured.js"></script>
|
50
52
|
</head>
|
51
|
-
<body data-
|
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='
|
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='
|
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
|
-
<
|
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
|
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/
|
50
|
+
<script type="text/javascript" src="js/structured.js"></script>
|
51
51
|
</head>
|
52
|
-
<body data-
|
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='
|
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='
|
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
|
-
|
131
|
-
|
132
|
-
|
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
|
-
<
|
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
@@ -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
|
-
|
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,$(
|
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,$(
|
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,$(
|
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
|
-
|
105
|
-
|
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
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
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
|
-
|
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,
|
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
|
-
|
142
|
-
|
143
|
-
|
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
|
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
|
-
|
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;
|
data/ui/structured.html
ADDED
@@ -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>
|
data/ui/structured.json
ADDED
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.
|
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-
|
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/
|
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.
|
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)
|