cpee-worklist 1.0.9 → 1.0.11
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/ui/container.html +40 -0
- data/ui/css/ui.css +10 -2
- data/ui/js/worklist.js +86 -82
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 803b1b014fedfd15a18792b7d8bd8ae44b8ca3f0f9c9e73ee3bce147c079fe66
|
4
|
+
data.tar.gz: 0a5faa9d0a7a044a450b17dcf2d30b98774800b5e3cf5d5c1e4e8dc535512d9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cd26a575083104789de654796f57ef5f403e7ee03fc4c0f79b16c0f0ee7225ef904c992eb71760e571c2d536e29bbcec46336baae02375c2e1ff4adf315212f
|
7
|
+
data.tar.gz: 60353fd3d43a1419b4633c26dd17aa5da78b350e907a684f3a64618df3055d177ae32cc0a63fc97a6fe8b20db67ac251a04df345e6248d5be82d4642907ca28c
|
data/cpee-worklist.gemspec
CHANGED
data/ui/container.html
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
<!--
|
2
|
+
This file is part of CPEE.
|
3
|
+
|
4
|
+
CPEE 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 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 (file COPYING 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>Container</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
|
+
</head>
|
38
|
+
<body>
|
39
|
+
</body>
|
40
|
+
</html>
|
data/ui/css/ui.css
CHANGED
@@ -136,8 +136,14 @@ ui-area > form {
|
|
136
136
|
padding-left: 1em;
|
137
137
|
}
|
138
138
|
|
139
|
-
|
140
|
-
|
139
|
+
.areataskitem iframe {
|
140
|
+
width: 100%;
|
141
|
+
border:0 none;
|
142
|
+
height: 100%;
|
143
|
+
margin: 0;
|
144
|
+
padding: 0;
|
145
|
+
box-sizing: border-box;
|
146
|
+
display: block;
|
141
147
|
}
|
142
148
|
|
143
149
|
#dat_tasks tr.priority_1:nth-child(even) { background-color: #dc8add30; color: ButtonText; }
|
@@ -164,3 +170,5 @@ div.task {
|
|
164
170
|
75% { background-color: red; }
|
165
171
|
100% { background-color: #ebdef0; }
|
166
172
|
}
|
173
|
+
|
174
|
+
|
data/ui/js/worklist.js
CHANGED
@@ -159,19 +159,27 @@ function do_work(taskid,taskidurl) { //{{{
|
|
159
159
|
url: res.form,
|
160
160
|
dataType: 'text',
|
161
161
|
success: async (iform) => {
|
162
|
-
let end = false
|
162
|
+
let end = false;;
|
163
163
|
let evaltext = '';
|
164
|
+
let rel = res.form.match(/.*\//)[0];
|
165
|
+
|
164
166
|
while (!end) {
|
165
167
|
let matches = iform.match(/<worklist-form-load>(.*?)<\/worklist-form-load>/ms);
|
166
168
|
if (matches && matches.length > 0) {
|
167
169
|
evaltext += matches[1];
|
168
170
|
iform = iform.replace(matches[0],'');
|
169
171
|
} else {
|
170
|
-
let includes = iform.match(/<\/?worklist-include\s+href=(("([^"]*)")|('([^']*)'))\s*\/?\s*>/ms);
|
172
|
+
let includes = iform.match(/<\/?worklist-(relative-)?include\s+href=(("([^"]*)")|('([^']*)'))\s*\/?\s*>/ms);
|
171
173
|
if (includes && includes.length > 0) {
|
174
|
+
let inc;
|
175
|
+
if (includes[1]) {
|
176
|
+
inc = rel + includes[4];
|
177
|
+
} else {
|
178
|
+
inc = includes[4];
|
179
|
+
}
|
172
180
|
await $.ajax({
|
173
181
|
type: "GET",
|
174
|
-
url:
|
182
|
+
url: inc,
|
175
183
|
dataType: 'text',
|
176
184
|
success: function(inctext) {
|
177
185
|
iform = iform.replace(includes[0],inctext);
|
@@ -182,105 +190,101 @@ function do_work(taskid,taskidurl) { //{{{
|
|
182
190
|
}
|
183
191
|
}
|
184
192
|
}
|
185
|
-
{
|
186
|
-
let replaces = iform.match(/form="worklist-form"/ms);
|
187
|
-
if (replaces && replaces.length > 0) {
|
188
|
-
iform = iform.replaceAll(replaces[0],'form="form_' + taskid + '"');
|
189
|
-
}
|
190
|
-
}
|
191
|
-
{
|
192
|
-
let replaces = iform.match(/div.task.current/ms);
|
193
|
-
if (replaces && replaces.length > 0) {
|
194
|
-
iform = iform.replaceAll(replaces[0],'div.task.task_' + taskid);
|
195
|
-
}
|
196
|
-
}
|
197
193
|
{
|
198
194
|
let replaces = iform.match(/worklist-item/ms);
|
199
195
|
if (replaces && replaces.length > 0) {
|
200
|
-
iform = iform.replaceAll(replaces[0],'
|
196
|
+
iform = iform.replaceAll(replaces[0],'body');
|
201
197
|
}
|
202
198
|
}
|
203
199
|
{
|
204
200
|
let replaces = evaltext.match(/worklist-item/ms);
|
205
201
|
if (replaces && replaces.length > 0) {
|
206
|
-
evaltext = evaltext.replaceAll(replaces[0],'
|
202
|
+
evaltext = evaltext.replaceAll(replaces[0],'body');
|
207
203
|
}
|
208
204
|
}
|
209
205
|
|
210
|
-
let
|
211
|
-
container.append(iform);
|
206
|
+
let worklist_form = $("<form id='worklist-form'></form></div>");
|
212
207
|
|
213
|
-
let form = $("ui-area[data-belongs-to-tab="+taskid+"]");
|
214
|
-
form.addClass('areataskitem');
|
215
208
|
let data;
|
216
209
|
try { data = res.parameters; } catch (e) { data = {}; }
|
217
|
-
form.append(container);
|
218
210
|
|
219
|
-
|
211
|
+
let iframe= $('<iframe src="container.html"></iframe>')[0];
|
212
|
+
iframe.onload = () => {
|
213
|
+
$(iframe.contentDocument.body).append(worklist_form);
|
214
|
+
$(iframe.contentDocument.body).append(iform);
|
215
|
+
iframe.contentWindow.data = data;
|
216
|
+
iframe.contentWindow.form = $(iframe.contentDocument.body);
|
217
|
+
iframe.contentWindow.eval(evaltext); // investigate indirect eval and strict
|
218
|
+
$("#worklist-form",iframe.contentWindow.form).on('submit',function(e){
|
220
219
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
$(e).focus();
|
228
|
-
$(e).removeClass('pulseit');
|
220
|
+
let scount = 0;
|
221
|
+
$('select[required][form="worklist-form"]',iframe.contentWindow.form).each((_,e) => {
|
222
|
+
if ($(e).val() == null) { scount += 1; }
|
223
|
+
if (scount == 1) {
|
224
|
+
$(e).focus();
|
225
|
+
$(e).removeClass('pulseit');
|
229
226
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
}
|
237
|
-
var form_data = $(this).serializeArray();
|
238
|
-
var send_data = {};
|
239
|
-
var headers = {};
|
240
|
-
if (res.collect) { headers['CPEE-UPDATE'] = 'true'; }
|
241
|
-
send_data['user'] = $("input[name=user-name]").val();
|
242
|
-
send_data['raw'] = form_data;
|
243
|
-
send_data['data'] = {};
|
244
|
-
$.map(send_data['raw'], function(n, i){
|
245
|
-
send_data['data'][n['name']] = n['value'];
|
246
|
-
});
|
247
|
-
$.ajax({
|
248
|
-
type: "PUT",
|
249
|
-
url: res.url,
|
250
|
-
headers: headers,
|
251
|
-
contentType: "application/json",
|
252
|
-
data: JSON.stringify(send_data),
|
253
|
-
success: function(something){
|
254
|
-
$.ajax({
|
255
|
-
type: "DELETE",
|
256
|
-
url: taskidurl,
|
257
|
-
success: function(del){
|
258
|
-
uidash_close_tab('ui-tab[data-tab='+taskid+'] ui-close');
|
259
|
-
get_worklist();
|
260
|
-
},
|
261
|
-
error: function(a,b,c){
|
262
|
-
console.log("Delete failed");
|
263
|
-
}
|
264
|
-
});
|
265
|
-
},
|
266
|
-
error: function(a,b,c){
|
267
|
-
$.ajax({
|
268
|
-
type: "DELETE",
|
269
|
-
url: taskidurl,
|
270
|
-
success: function(del){
|
271
|
-
uidash_close_tab('ui-tab[data-tab='+taskid+'] ui-close');
|
272
|
-
get_worklist();
|
273
|
-
},
|
274
|
-
error: function(a,b,c){
|
275
|
-
console.log("Delete failed");
|
227
|
+
setTimeout(()=>{$(e).addClass('pulseit')},100);;
|
228
|
+
}
|
229
|
+
});
|
230
|
+
if (scount > 0) {
|
231
|
+
e.preventDefault();
|
232
|
+
return false;
|
276
233
|
}
|
234
|
+
var form_data = $(this).serializeArray();
|
235
|
+
var send_data = {};
|
236
|
+
var headers = {};
|
237
|
+
if (res.collect) { headers['CPEE-UPDATE'] = 'true'; }
|
238
|
+
send_data['user'] = $("input[name=user-name]").val();
|
239
|
+
send_data['raw'] = form_data;
|
240
|
+
send_data['data'] = {};
|
241
|
+
$.map(send_data['raw'], function(n, i){
|
242
|
+
send_data['data'][n['name']] = n['value'];
|
243
|
+
});
|
244
|
+
$.ajax({
|
245
|
+
type: "PUT",
|
246
|
+
url: res.url,
|
247
|
+
headers: headers,
|
248
|
+
contentType: "application/json",
|
249
|
+
data: JSON.stringify(send_data),
|
250
|
+
success: function(something){
|
251
|
+
$.ajax({
|
252
|
+
type: "DELETE",
|
253
|
+
url: taskidurl,
|
254
|
+
success: function(del){
|
255
|
+
uidash_close_tab('ui-tab[data-tab='+taskid+'] ui-close');
|
256
|
+
get_worklist();
|
257
|
+
},
|
258
|
+
error: function(a,b,c){
|
259
|
+
console.log("Delete failed");
|
260
|
+
}
|
261
|
+
});
|
262
|
+
},
|
263
|
+
error: function(a,b,c){
|
264
|
+
$.ajax({
|
265
|
+
type: "DELETE",
|
266
|
+
url: taskidurl,
|
267
|
+
success: function(del){
|
268
|
+
uidash_close_tab('ui-tab[data-tab='+taskid+'] ui-close');
|
269
|
+
get_worklist();
|
270
|
+
},
|
271
|
+
error: function(a,b,c){
|
272
|
+
console.log("Delete failed");
|
273
|
+
}
|
274
|
+
});
|
275
|
+
// TODO
|
276
|
+
console.log("Put didnt work");
|
277
|
+
}
|
278
|
+
});
|
279
|
+
e.preventDefault();
|
277
280
|
});
|
278
|
-
// TODO
|
279
|
-
console.log("Put didnt work");
|
280
281
|
}
|
281
|
-
|
282
|
-
|
283
|
-
|
282
|
+
|
283
|
+
let taskitem = $("ui-area[data-belongs-to-tab="+taskid+"]");
|
284
|
+
taskitem.addClass('areataskitem');
|
285
|
+
taskitem.append(iframe);
|
286
|
+
|
287
|
+
uidash_activate_tab($('ui-tabbar ui-tab[data-tab=' + taskid + ']'));
|
284
288
|
},
|
285
289
|
error: function(a,b,c){
|
286
290
|
$.ajax({
|
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.11
|
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-
|
13
|
+
date: 2024-07-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: riddl
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- server/worklist
|
110
110
|
- server/worklist.conf
|
111
111
|
- tools/cpee-worklist
|
112
|
+
- ui/container.html
|
112
113
|
- ui/css/ui.css
|
113
114
|
- ui/direct.html
|
114
115
|
- ui/index.html
|