cpee-worklist 1.0.11 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|