@@ -12,23 +12,24 @@ def wait_for_task
12
12
raise Forbidden , _ ( 'Invalid input for "wait_for_task".' ) unless params [ :task_id ]
13
13
14
14
session [ :async ] ||= { }
15
- session [ :async ] [ :interval ] ||= 1000 # Default interval to 1 second
15
+ async_interval = params [ :async_interval ] || 1000 # Default interval to 1 second
16
16
session [ :async ] [ :params ] ||= { }
17
17
18
18
if MiqTask . find ( params [ :task_id ] . to_i ) . state != "Finished" # Task not done --> retry
19
- browser_refresh_task ( params [ :task_id ] )
19
+ browser_refresh_task ( params [ :task_id ] , async_interval )
20
20
else # Task done
21
21
session [ :async ] [ :params ] . each { |k , v | @_params [ k ] = v } # Merge in the original params and
22
22
send ( session . fetch_path ( :async , :params , :action ) ) # call the orig. method
23
23
end
24
24
end
25
25
26
- def browser_refresh_task ( task_id , should_flash : false )
27
- session [ :async ] [ :interval ] += 250 if session [ :async ] [ :interval ] < 5000 # Slowly move up to 5 second retries
26
+ def browser_refresh_task ( task_id , async_interval , should_flash : false )
27
+ async_interval = 1000 if async_interval . to_i < 1000 # if it is not an integer, assign to 1 second
28
+ async_interval += 250 if async_interval < 5000 # Slowly move up to 5 second retries
28
29
render :update do |page |
29
30
page << javascript_prologue
30
- ajax_call = remote_function ( :url => { :action => 'wait_for_task' , :task_id => task_id } )
31
- page << "setTimeout(\" #{ ajax_call } \" , #{ session [ :async ] [ :interval ] } );"
31
+ ajax_call = remote_function ( :url => { :action => 'wait_for_task' , :task_id => task_id , :async_interval => async_interval } )
32
+ page << "setTimeout(\" #{ ajax_call } \" , #{ async_interval } );"
32
33
page . replace ( "flash_msg_div" , :partial => "layouts/flash_msg" ) if should_flash
33
34
page << "miqScrollTop();" if @flash_array . present?
34
35
end
@@ -44,7 +45,7 @@ def browser_refresh_task(task_id, should_flash: false)
44
45
def initiate_wait_for_task ( options = { } )
45
46
task_id = options [ :task_id ]
46
47
session [ :async ] ||= { }
47
- session [ :async ] [ :interval ] || = 1000 # Default interval to 1 second
48
+ async_interval = 1000 # Default interval to 1 second
48
49
session [ :async ] [ :params ] ||= { }
49
50
50
51
# save the incoming parms + extra_params
@@ -61,7 +62,7 @@ def initiate_wait_for_task(options = {})
61
62
session [ :async ] [ :params ] [ :rx_action ] = options [ :rx_action ]
62
63
end
63
64
64
- browser_refresh_task ( task_id , :should_flash => !!options [ :flash ] )
65
+ browser_refresh_task ( task_id , async_interval , :should_flash => !!options [ :flash ] )
65
66
end
66
67
private :initiate_wait_for_task
67
68
0 commit comments