Class: AdminModule::Pages::WorkflowDetailPage
- Inherits:
-
Object
- Object
- AdminModule::Pages::WorkflowDetailPage
show all
- Includes:
- SelectListSyncable, PageObject
- Defined in:
- lib/admin_module/pages/workflow_detail_page.rb
Defined Under Namespace
Classes: WorkflowEvent
Instance Method Summary
collapse
#sync_available_and_selected_lists
Instance Method Details
#capture_events ⇒ Object
212
213
214
215
216
217
218
219
220
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 212
def capture_events
captured_events = {}
workflow_events.each do |ev|
captured_events[ev.event] = ev.guideline
end
captured_events
end
|
#get_dynamic_url ⇒ Object
page_url(:get_dynamic_url)
#get_stage_data ⇒ Object
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 148
def get_stage_data
stage_data = {}
self.details_tab
stage_data[:name] = self.name
self.transition_to_states_tab
stage_data[:transition_to] = get_selected_state_options
self.groups_tab
stage_data[:groups] = get_selected_group_options
stage_data[:tasks] = get_tasks
self.workflow_events_tab
stage_data[:events] = capture_events
self.data_clearing_definitions_tab
stage_data[:dc] = Hash.new
stage_data[:dc][:definition] = self.data_clearing_definition
stage_data[:dc][:days] = self.data_clearing_days
stage_data[:dc][:days_type] = self.data_clearing_days_type
stage_data
end
|
#get_tasks ⇒ Object
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 267
def get_tasks
self.tasks_tab
tasks = Array.new
selected_tasks_options.each do |task_name|
tasks << { name: task_name }
end
self.additional_details_button
addtl_page = WorkflowDetailTaskAddlDetailPage.new(@browser, false)
addl_data = addtl_page.get_data
addtl_page.cancel
tasks.collect! do |task|
task[:sequence] = addl_data[task[:name]][:sequence]
task[:predecessors] = addl_data[task[:name]][:predecessors]
task[:regenerate] = addl_data[task[:name]][:regenerate]
task
end
self.screen_mappings_button
mappings_page = WorkflowDetailTaskMappingsPage.new(@browser, false)
mapping_data = mappings_page.get_data
mappings_page.back
tasks.collect! do |task|
task[:mapped_screens] = mapping_data[task[:name]][:mapped_screens]
task
end
tasks
end
|
#save ⇒ Object
242
243
244
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 242
def save
self.save_button
end
|
#set_data_clearing(dc) ⇒ Object
380
381
382
383
384
385
386
387
388
389
390
391
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 380
def set_data_clearing dc
self.data_clearing_definitions_tab
return if dc[:definition].empty? && self.data_clearing_definition.empty?
self.data_clearing_definition_element.select dc[:definition]
self.data_clearing_days = dc[:days]
self.data_clearing_days_type_element.select dc[:days_type]
self.version_dc_button
end
|
#set_events(events) ⇒ Object
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 352
def set_events events
self.workflow_events_tab
current_events = {}
workflow_events.each do |ev|
current_events[ev.event] = ev
end
events.each do |event, gdl|
current_event = current_events[event]
unless current_event.nil?
id = current_event.id
current_gdl = current_event.guideline
if gdl != current_gdl
sel = select_list_elements(id: id)[0]
unless sel.nil?
sel.select gdl
end
end
end
end
self
end
|
#set_groups(groups) ⇒ Object
260
261
262
263
264
265
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 260
def set_groups groups
self.groups_tab
set_group_data groups
self
end
|
#set_name(name) ⇒ Object
246
247
248
249
250
251
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 246
def set_name name
self.details_tab
self.name = name
self
end
|
#set_stage_data(data) ⇒ Object
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 222
def set_stage_data data
set_tasks data[:tasks] if data.key?(:tasks)
set_data_clearing data[:dc] if data.key?(:dc)
set_name data[:name] if data.key?(:name)
set_transitions data[:transition_to] if data.key?(:transition_to)
set_groups data[:groups] if data.key?(:groups)
set_events data[:events] if data.key?(:events)
self
end
|
#set_tasks(tasks) ⇒ Object
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 306
def set_tasks tasks
self.tasks_tab
has_existing_tasks = (selected_tasks_options.count > 0)
if has_existing_tasks
self.additional_details_button
addtl_page = WorkflowDetailTaskAddlDetailPage.new(@browser, false)
addtl_page.clear_data
addtl_page.save
self.version_button
end
self.remove_all_tasks_button
tasks.each do |task|
available_tasks_element.select(task[:name])
end
if tasks.count > 0
self.add_task_button
self.version_button
self.additional_details_button
addtl_page = WorkflowDetailTaskAddlDetailPage.new(@browser, false)
addtl_page.set_data tasks
addtl_page.save
self.screen_mappings_button
mappings_page = WorkflowDetailTaskMappingsPage.new(@browser, false)
mappings_page.set_data tasks
mappings_page.back
self.version_button
end
end
|
#set_transitions(trans) ⇒ Object
253
254
255
256
257
258
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 253
def set_transitions trans
self.transition_to_states_tab
set_transition_states trans
self
end
|
#workflow_events ⇒ Object
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
# File 'lib/admin_module/pages/workflow_detail_page.rb', line 196
def workflow_events
events = []
Nokogiri::HTML(@browser.html).css("table#ctl00_cntPlh_DatagridEvents").each do |tbl|
rows = tbl.css('tr')
rows.each do |r|
next if r.attribute('class').value == 'GridHeader'
cells = r.css('td')
events << WorkflowEvent.new(cells)
end end
events
end
|