cpee-frames 1.0.1 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f185881405a4d448a676a5aefbb6a5edd722fd430075b42cb1439c929d511125
4
- data.tar.gz: 93bf3f7767e6e5bd19f3a8d27bbf7769ab7954f512444ea726f00402db32b704
3
+ metadata.gz: f6e3e17dafdfc33eea6a1985ef1195ae366e481783eee9a0521f2e24b376ab89
4
+ data.tar.gz: b1027c8c1e6ddea9122c87ccef384c1e628f8db1fa6369f61e819d235446cb96
5
5
  SHA512:
6
- metadata.gz: 9a863dcefcbb9d3090c7bee148d2c66d37323772c8ed40d7f0e269ab866c84f76b213c1cd7bdb6ec10f51a79b562cf9f60fca9e1c4d815b1cfbaa8b95b0ba04d
7
- data.tar.gz: 03ab2e9889d33eed886334e378c526801925e0eb641baf2eb3b8200c1529b395a2af6451b127db69d487fedbebeceab89cd33391411b41f3743cb4d825919588
6
+ metadata.gz: 182e44f12d97f59918eaea3a2590614c7758f920f2a4ce06ed848623348941fd60bfc493add7228f4f228d32867fb42bf66984d0505a68f95d4c294b49e7c17b
7
+ data.tar.gz: 190580b76dfc5a2100ad0cd1fbee4056f7db53ce9fa9cc7845574b3d87c8ee7923470c8b7da53e0047590696bc563790c3c1f4caaa880227fb5d8d4ff9894d86
data/cpee-frames.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee-frames"
3
- s.version = "1.0.1"
3
+ s.version = "1.0.3"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "GPL-3.0"
6
6
  s.summary = "Dashboard management service with UI and backend for the cpee.org family of workflow management tools"
@@ -29,6 +29,17 @@ module CPEE
29
29
 
30
30
  SERVER = File.expand_path(File.join(__dir__,'frames.xml'))
31
31
 
32
+ def self::overlap?(l1x, l1y, r1x, r1y, l2x, l2y, r2x, r2y)
33
+ if l1x > r2x || l2x > r1x
34
+ return false
35
+ end
36
+ if l1y > r2y || l2y > r1y
37
+ return false
38
+ end
39
+ return true
40
+ end
41
+
42
+
32
43
  # https://coderwall.com/p/atyfyq/ruby-string-to-boolean
33
44
  # showbutton
34
45
  refine String do #{{{
@@ -69,21 +80,22 @@ module CPEE
69
80
 
70
81
  class InitFrame < Riddl::Implementation #{{{
71
82
  def response
72
- Dir.mkdir(File.join('data',@r.last)) rescue nil
83
+ data_dir = @a[1]
84
+ Dir.mkdir(File.join(data_dir,@r.last)) rescue nil
73
85
 
74
86
  if !@p[0].value.to_s.empty?
75
- File.write(File.join('data',@r.last,'style.url'),@p[0].value)
87
+ File.write(File.join(data_dir,@r.last,'style.url'),@p[0].value)
76
88
  end
77
89
 
78
- File.write(File.join('data',@r.last,'frames.json'),JSON.dump(JSON.parse('{"data":[]}')))
90
+ File.write(File.join(data_dir,@r.last,'frames.json'),JSON.dump(JSON.parse('{"data":[]}')))
79
91
 
80
92
  #for handler
81
- File.write(File.join('data',@r.last,'dataelements.json'),JSON.dump(JSON.parse('{"data":[]}')))
93
+ File.write(File.join(data_dir,@r.last,'dataelements.json'),JSON.dump(JSON.parse('{"data":[]}')))
82
94
 
83
- File.write(File.join('data',@r.last,'info.json'),JSON.dump(JSON.parse('{"x_amount":' + @p[2].value + ', "y_amount":' + @p[3].value + ', "lang":"' + @p[4].value + '", "langs":["' + @p[4].value + '"], "document_name": "' + @p[5].value + '"}')))
95
+ File.write(File.join(data_dir,@r.last,'info.json'),JSON.dump(JSON.parse('{"x_amount":' + @p[2].value + ', "y_amount":' + @p[3].value + ', "lang":"' + @p[4].value + '", "langs":["' + @p[4].value + '"], "document_name": "' + @p[5].value + '"}')))
84
96
 
85
- File.write(File.join('data',@r.last,'callback'),@h['CPEE_CALLBACK'])
86
- File.write(File.join('data',@r.last,'cpeeinstance.url'),@h['CPEE_INSTANCE_URL'])
97
+ File.write(File.join(data_dir,@r.last,'callback'),@h['CPEE_CALLBACK'])
98
+ File.write(File.join(data_dir,@r.last,'cpeeinstance.url'),@h['CPEE_INSTANCE_URL'])
87
99
 
88
100
  @a[0].send('new')
89
101
  nil
@@ -92,13 +104,14 @@ module CPEE
92
104
 
93
105
  class NewFrameSet < Riddl::Implementation
94
106
  def response
95
- path = File.join('data',@r.last,'frames.json')
107
+ data_dir = @a[1]
108
+ path = File.join(data_dir,@r.last,'frames.json')
96
109
  file = File.read(path)
97
110
  data_hash = JSON::parse(file)
98
111
 
99
112
  #check if new frame overlaps others if it does, delete overlapped frames
100
113
  data_hash["data"].each do | c |
101
- if doOverlap(c['lx'], c['ly'], c['rx'], c['ry'], @p[1].value.to_i, @p[2].value.to_i, (@p[1].value.to_i + @p[3].value.to_i - 1), (@p[2].value.to_i + @p[4].value.to_i - 1))
114
+ if CPEE::Frames::overlap?(c['lx'], c['ly'], c['rx'], c['ry'], @p[1].value.to_i, @p[2].value.to_i, (@p[1].value.to_i + @p[3].value.to_i - 1), (@p[2].value.to_i + @p[4].value.to_i - 1))
102
115
  data_hash["data"].delete(c)
103
116
  end
104
117
  end
@@ -117,7 +130,7 @@ module CPEE
117
130
  File.write(path, JSON.dump(data_hash))
118
131
 
119
132
  #only send active url to client
120
- infofile = File.join('data',@r.last,'info.json')
133
+ infofile = File.join(data_dir,@r.last,'info.json')
121
134
  infojson = JSON::parse(File.read(infofile))
122
135
  hash["url"] = urls.find{ |h| h['lang'] == infojson["lang"]}['url']
123
136
 
@@ -137,13 +150,14 @@ module CPEE
137
150
 
138
151
  class NewFrameWait < Riddl::Implementation
139
152
  def response
140
- path = File.join('data',@r.last,'frames.json')
153
+ data_dir = @a[1]
154
+ path = File.join(data_dir,@r.last,'frames.json')
141
155
  file = File.read(path)
142
156
  data_hash = JSON::parse(file)
143
157
 
144
158
  #check if new frame overlaps others if it does, delete overlapped frames
145
159
  data_hash["data"].each do | c |
146
- if doOverlap(c['lx'], c['ly'], c['rx'], c['ry'], @p[1].value.to_i, @p[2].value.to_i, (@p[1].value.to_i + @p[3].value.to_i - 1), (@p[2].value.to_i + @p[4].value.to_i - 1))
160
+ if CPEE::Frames::overlap?(c['lx'], c['ly'], c['rx'], c['ry'], @p[1].value.to_i, @p[2].value.to_i, (@p[1].value.to_i + @p[3].value.to_i - 1), (@p[2].value.to_i + @p[4].value.to_i - 1))
147
161
  data_hash["data"].delete(c)
148
162
  end
149
163
  end
@@ -161,11 +175,11 @@ module CPEE
161
175
  File.write(path, JSON.dump(data_hash))
162
176
 
163
177
  #only send active url to client
164
- infofile = File.join('data',@r.last,'info.json')
178
+ infofile = File.join(data_dir,@r.last,'info.json')
165
179
  infojson = JSON::parse(File.read(infofile))
166
180
  hash["url"] = urls.find{ |h| h['lang'] == infojson["lang"]}['url']
167
181
 
168
- File.write(File.join('data',@r.last,'callback'),@h['CPEE_CALLBACK'])
182
+ File.write(File.join(data_dir,@r.last,'callback'),@h['CPEE_CALLBACK'])
169
183
 
170
184
 
171
185
  @a[0].send(JSON.dump(hash))
@@ -173,7 +187,7 @@ module CPEE
173
187
  File.write(path, JSON.dump(data_hash))
174
188
  hash = {lx: @p[1].value.to_i, ly: @p[2].value.to_i, rx: (@p[1].value.to_i + @p[3].value.to_i - 1), ry: (@p[2].value.to_i + @p[4].value.to_i - 1), url: "empty", showbutton: @p[5].value, style: @p[6].value, default: "{}", callback: @h['CPEE_CALLBACK']};
175
189
 
176
- File.write(File.join('data',@r.last,'callback'),@h['CPEE_CALLBACK'])
190
+ File.write(File.join(data_dir,@r.last,'callback'),@h['CPEE_CALLBACK'])
177
191
 
178
192
 
179
193
  @a[0].send(JSON.dump(hash))
@@ -190,12 +204,13 @@ module CPEE
190
204
 
191
205
  class DeleteFrame < Riddl::Implementation
192
206
  def response
193
- path = File.join('data',@r.last,'frames.json')
207
+ data_dir = @a[1]
208
+ path = File.join(data_dir,@r.last,'frames.json')
194
209
  file = File.read(path)
195
210
  data_hash = JSON::parse(file)
196
211
 
197
212
  data_hash["data"].each do | c |
198
- if doOverlap(c['lx'], c['ly'], c['rx'], c['ry'], @p[0].value.to_i, @p[1].value.to_i, (@p[0].value.to_i + 1), (@p[1].value.to_i + 1))
213
+ if CPEE::Frames::overlap?(c['lx'], c['ly'], c['rx'], c['ry'], @p[0].value.to_i, @p[1].value.to_i, (@p[0].value.to_i + 1), (@p[1].value.to_i + 1))
199
214
  data_hash["data"].delete(c)
200
215
  end
201
216
  end
@@ -204,20 +219,11 @@ module CPEE
204
219
  end
205
220
  end
206
221
 
207
- def doOverlap(l1x, l1y, r1x, r1y, l2x, l2y, r2x, r2y)
208
- if l1x > r2x || l2x > r1x
209
- return false;
210
- end
211
- if l1y > r2y || l2y > r1y
212
- return false;
213
- end
214
- return true;
215
- end
216
-
217
222
  class Delete < Riddl::Implementation
218
223
  def response
224
+ data_dir = @a[1]
219
225
  pp "in delete"
220
- if cbu = File.read(File.join('data',@r.last,'callback'))
226
+ if cbu = File.read(File.join(data_dir,@r.last,'callback'))
221
227
  pp "XYZ"
222
228
  send = { 'operation' => @p[0].value }
223
229
  case send['operation']
@@ -229,11 +235,11 @@ module CPEE
229
235
  Typhoeus.put(cbu, body: JSON::generate(send), headers: { 'content-type' => 'application/json'})
230
236
  end
231
237
 
232
- #File.unlink(File.join('data',@r.last,'callback')) rescue nil
233
- #File.unlink(File.join('data',@r.last,'cpeeinstance.url')) rescue nil
234
- #File.unlink(File.join('data',@r.last,'style.url')) rescue nil
235
- #File.unlink(File.join('data',@r.last,'document.xml')) rescue nil
236
- #File.unlink(File.join('data',@r.last,'info.json')) rescue nil
238
+ #File.unlink(File.join(data_dir,@r.last,'callback')) rescue nil
239
+ #File.unlink(File.join(data_dir,@r.last,'cpeeinstance.url')) rescue nil
240
+ #File.unlink(File.join(data_dir,@r.last,'style.url')) rescue nil
241
+ #File.unlink(File.join(data_dir,@r.last,'document.xml')) rescue nil
242
+ #File.unlink(File.join(data_dir,@r.last,'info.json')) rescue nil
237
243
 
238
244
  @a[0].send('reset')
239
245
  nil
@@ -242,10 +248,11 @@ module CPEE
242
248
 
243
249
  class GetFrames < Riddl::Implementation #{{{
244
250
  def response
245
- fname = File.join('data',@r[-2],'frames.json')
251
+ data_dir = @a[0]
252
+ fname = File.join(data_dir,@r[-2],'frames.json')
246
253
  if File.exists? fname
247
254
 
248
- infofile = File.join('data',@r[-2],'info.json')
255
+ infofile = File.join(data_dir,@r[-2],'info.json')
249
256
  infojson = JSON::parse(File.read(infofile))
250
257
 
251
258
  #remove not used languages
@@ -264,8 +271,9 @@ module CPEE
264
271
 
265
272
  class SetDataElements < Riddl::Implementation #{{{
266
273
  def response
274
+ data_dir = @a[0]
267
275
  savejson = @p.map { |o| Hash[o.name, o.value] }.to_json
268
- path = File.join('data',@r[0],'dataelements.json')
276
+ path = File.join(data_dir,@r[0],'dataelements.json')
269
277
  File.write(path, savejson)
270
278
 
271
279
  #puts xyz
@@ -278,7 +286,7 @@ module CPEE
278
286
  #puts @p[0].name
279
287
  #puts @p[0].value
280
288
 
281
- #fname = File.join('data',@r[-2],'dataelements.json')
289
+ #fname = File.join(data_dir,@r[-2],'dataelements.json')
282
290
  #if File.exists? fname
283
291
  # Riddl::Parameter::Complex.new('value','application/json',File.read(fname))
284
292
  #else
@@ -289,7 +297,8 @@ module CPEE
289
297
 
290
298
  class GetDataElements < Riddl::Implementation #{{{
291
299
  def response
292
- fname = File.join('data',@r[-2],'dataelements.json')
300
+ data_dir = @a[0]
301
+ fname = File.join(data_dir,@r[-2],'dataelements.json')
293
302
  if File.exists? fname
294
303
  Riddl::Parameter::Complex.new('value','application/json',File.read(fname))
295
304
  else
@@ -300,7 +309,8 @@ module CPEE
300
309
 
301
310
  class GetInfo < Riddl::Implementation #{{{
302
311
  def response
303
- fname = File.join('data',@r[-2],'info.json')
312
+ data_dir = @a[0]
313
+ fname = File.join(data_dir,@r[-2],'info.json')
304
314
  if File.exists? fname
305
315
  Riddl::Parameter::Complex.new('value','application/json',File.read(fname))
306
316
  else
@@ -311,7 +321,8 @@ module CPEE
311
321
 
312
322
  class GetLangs < Riddl::Implementation #{{{
313
323
  def response
314
- fname = File.join('data',@r[-2],'info.json')
324
+ data_dir = @a[0]
325
+ fname = File.join(data_dir,@r[-2],'info.json')
315
326
  if File.exists? fname
316
327
  infojson = JSON::parse(File.read(fname))
317
328
  Riddl::Parameter::Complex.new('value','application/json',infojson["langs"])
@@ -323,7 +334,8 @@ module CPEE
323
334
 
324
335
  class SetLang < Riddl::Implementation #{{{
325
336
  def response
326
- fname = File.join('data',@r[-2],'info.json')
337
+ data_dir = @a[1]
338
+ fname = File.join(data_dir,@r[-2],'info.json')
327
339
  if File.exists? fname
328
340
  infojson = JSON::parse(File.read(fname))
329
341
  infojson["lang"] = @p[0].value
@@ -348,7 +360,8 @@ module CPEE
348
360
 
349
361
  class GetStyle < Riddl::Implementation #{{{
350
362
  def response
351
- fname = File.join('data',@r[-2],'style.url')
363
+ data_dir = @a[0]
364
+ fname = File.join(data_dir,@r[-2],'style.url')
352
365
  if File.exists? fname
353
366
  Riddl::Parameter::Complex.new('url','text/plain',File.read(fname).strip)
354
367
  else
@@ -359,7 +372,8 @@ module CPEE
359
372
 
360
373
  class GetCpeeInstance < Riddl::Implementation #{{{
361
374
  def response
362
- fname = File.join('data',@r[-2],'cpeeinstance.url')
375
+ data_dir = @a[0]
376
+ fname = File.join(data_dir,@r[-2],'cpeeinstance.url')
363
377
  if File.exists? fname
364
378
  Riddl::Parameter::Complex.new('url','text/plain',File.read(fname).strip)
365
379
  else
@@ -376,6 +390,7 @@ module CPEE
376
390
 
377
391
  class Handler < Riddl::Implementation
378
392
  def response
393
+ data_dir = @a[1]
379
394
  topic = @p[1].value
380
395
  event_name = @p[2].value
381
396
  notification = JSON.parse(@p[3].value.read)
@@ -394,7 +409,7 @@ module CPEE
394
409
  if content['values']&.any?
395
410
  #puts alldata['ausfuehrungen']
396
411
  puts "writing file"
397
- path = File.join('data',@r[0],'dataelements.json')
412
+ path = File.join(data_dir,@r[0],'dataelements.json')
398
413
  File.write(path, JSON.dump(content['values']))
399
414
  end
400
415
 
@@ -486,49 +501,49 @@ module CPEE
486
501
  opts[:signals2]["handler"] ||= Signaling.new
487
502
 
488
503
  run Get, "test" if get
489
- run InitFrame, opts[:signals][idx] if post 'input'
504
+ run InitFrame, opts[:signals][idx], opts[:data_dir] if post 'input'
490
505
 
491
- run NewFrameSet, opts[:signals][idx] if put 'sframe'
492
- run NewFrameWait, opts[:signals][idx] if put 'wframe'
506
+ run NewFrameSet, opts[:signals][idx], opts[:data_dir] if put 'sframe'
507
+ run NewFrameWait, opts[:signals][idx], opts[:data_dir] if put 'wframe'
493
508
 
494
- run DeleteFrame, opts[:signals][idx] if post 'deleteframe'
509
+ run DeleteFrame, opts[:signals][idx], opts[:data_dir] if post 'deleteframe'
495
510
 
496
511
  on resource 'handler' do
497
- run Handler, opts[:signals2]["handler"] if post
512
+ run Handler, opts[:signals2]["handler"], opts[:data_dir] if post
498
513
  on resource 'sse' do
499
514
  run SSE2, opts[:signals2]["handler"] if sse
500
515
  end
501
516
  end
502
517
 
503
- run Delete, opts[:signals][idx] if delete 'opa'
504
- run Delete, opts[:signals][idx] if delete 'opb'
505
- run Delete, opts[:signals][idx] if delete 'opc'
518
+ run Delete, opts[:signals][idx], opts[:data_dir] if delete 'opa'
519
+ run Delete, opts[:signals][idx], opts[:data_dir] if delete 'opb'
520
+ run Delete, opts[:signals][idx], opts[:data_dir] if delete 'opc'
506
521
  on resource 'sse' do
507
522
  run SSE, opts[:signals][idx] if sse
508
523
  end
509
524
  on resource 'languages' do
510
- run GetLangs if get
511
- run SetLang, opts[:signals][idx] if post 'lang'
525
+ run GetLangs, opts[:data_dir] if get
526
+ run SetLang, opts[:signals][idx], opts[:data_dir] if post 'lang'
512
527
  end
513
528
  on resource 'style.url' do
514
- run GetStyle if get
529
+ run GetStyle, opts[:data_dir] if get
515
530
  end
516
531
  on resource 'cpeeinstance.url' do
517
- run GetCpeeInstance if get
532
+ run GetCpeeInstance, opts[:data_dir] if get
518
533
  end
519
534
  on resource 'info.json' do
520
- run GetInfo if get
535
+ run GetInfo, opts[:data_dir] if get
521
536
  end
522
537
  on resource 'frames.json' do
523
- run GetFrames if get
538
+ run GetFrames, opts[:data_dir] if get
524
539
  end
525
540
  on resource 'test' do
526
541
  run OutputTest if put
527
542
  end
528
543
 
529
544
  on resource 'dataelements.json' do
530
- run SetDataElements if post
531
- run GetDataElements if get
545
+ run SetDataElements, opts[:data_dir] if post
546
+ run GetDataElements, opts[:data_dir] if get
532
547
  end
533
548
  end
534
549
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cpee-frames
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuell Gall
8
8
  - Juergen 'eTM' Mangler
9
- autorequire:
9
+ autorequire:
10
10
  bindir: tools
11
11
  cert_chain: []
12
- date: 2023-02-21 00:00:00.000000000 Z
12
+ date: 2023-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: riddl
@@ -75,7 +75,7 @@ homepage: https://github.com/ManuelGall/cpee-frames
75
75
  licenses:
76
76
  - GPL-3.0
77
77
  metadata: {}
78
- post_install_message:
78
+ post_install_message:
79
79
  rdoc_options: []
80
80
  require_paths:
81
81
  - lib
@@ -90,8 +90,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  requirements: []
93
- rubygems_version: 3.1.2
94
- signing_key:
93
+ rubygems_version: 3.3.26
94
+ signing_key:
95
95
  specification_version: 4
96
96
  summary: Dashboard management service with UI and backend for the cpee.org family
97
97
  of workflow management tools