From: Jan Provaznik <[email protected]>
image builder UI now automatically refreshes targets statuses each 10 s
---
src/app/controllers/image_descriptor_controller.rb | 7 +++++-
.../image_descriptor_target_controller.rb | 8 +++++++
src/app/helpers/image_descriptor_helper.rb | 6 ++--
src/app/views/image_descriptor/_summary.haml | 22 +++++--------------
src/app/views/image_descriptor/_targets.haml | 16 ++++++++++++++
src/app/views/image_descriptor/targets.haml | 1 +
6 files changed, 40 insertions(+), 20 deletions(-)
create mode 100644 src/app/controllers/image_descriptor_target_controller.rb
create mode 100644 src/app/views/image_descriptor/_targets.haml
create mode 100644 src/app/views/image_descriptor/targets.haml
diff --git a/src/app/controllers/image_descriptor_controller.rb
b/src/app/controllers/image_descriptor_controller.rb
index 69d3c23..11daa9c 100644
--- a/src/app/controllers/image_descriptor_controller.rb
+++ b/src/app/controllers/image_descriptor_controller.rb
@@ -21,7 +21,7 @@ class ImageDescriptorController < ApplicationController
@tab = 'summary'
if params[:targets]
params[:targets].each do |target|
- ImageDescriptorTarget.new_if_not_exists(:name => target,
:image_descriptor_id => params[:image_descriptor][:id], :status => "waiting")
+ ImageDescriptorTarget.new_if_not_exists(:name => target,
:image_descriptor_id => params[:image_descriptor][:id], :status =>
ImageDescriptorTarget::STATE_WAITING)
end
end
end
@@ -55,6 +55,11 @@ class ImageDescriptorController < ApplicationController
redirect_to :action => 'images', :tab => 'show'
end
+ def targets
+ @image_descriptor = ImageDescriptor.find(params[:id])
+ @all_targets = ImageDescriptorTarget.available_targets
+ end
+
def selected_packages
data = ImageDescriptor.find(params[:id]).xml.packages
end
diff --git a/src/app/controllers/image_descriptor_target_controller.rb
b/src/app/controllers/image_descriptor_target_controller.rb
new file mode 100644
index 0000000..f2318e3
--- /dev/null
+++ b/src/app/controllers/image_descriptor_target_controller.rb
@@ -0,0 +1,8 @@
+class ImageDescriptorTargetController < ApplicationController
+ before_filter :require_user
+
+ def cancel
+ ImageDescriptorTarget.update(params[:id], :status =>
ImageDescriptorTarget::STATE_CANCELED)
+ redirect_to :controller => 'image_descriptor', :action => 'new', :params
=> {'image_descriptor[id]' => params[:descriptor_id], :tab => 'software'}
+ end
+end
diff --git a/src/app/helpers/image_descriptor_helper.rb
b/src/app/helpers/image_descriptor_helper.rb
index 7055ce5..73d2502 100644
--- a/src/app/helpers/image_descriptor_helper.rb
+++ b/src/app/helpers/image_descriptor_helper.rb
@@ -21,10 +21,10 @@ module ImageDescriptorHelper
select_tag("repository", ["<option value='all'
selected='selected'>All</option>"] + repositories.map{|repid, rep| "<option
value=\"#{repid}\">#{rep['name']}</option>"}, {:onchange =>
"get_repository(event)"})
end
- def image_target_actions(target)
- str = ''
+ def image_target_actions(descriptor, target)
+ str = ' '
if ImageDescriptorTarget::ACTIVE_STATES.include?(target.status)
- str = link_to 'Cancel', {:controller => 'image_descriptor_target',
:action => 'cancel', :id => target.id}
+ str = link_to 'Cancel', {:controller => 'image_descriptor_target',
:action => 'cancel', :id => target.id, :descriptor_id => descriptor.id}
end
return str
end
diff --git a/src/app/views/image_descriptor/_summary.haml
b/src/app/views/image_descriptor/_summary.haml
index 670dbce..632669d 100644
--- a/src/app/views/image_descriptor/_summary.haml
+++ b/src/app/views/image_descriptor/_summary.haml
@@ -1,5 +1,10 @@
- content_for :scripts do
:javascript
+ $(document).ready(function() {
+ var refreshId = setInterval(function() {
+ $('#image_target_list').load('#{url_for :controller =>
'image_descriptor', :action => 'targets', :id => @image_descriptor.id, :ajax =>
true}');
+ }, 10000);
+ });
function toggle_build_form_visibility(ev) {
if ($("#image_build_form").css('display') == 'none') {
$("#image_build_form").css('display', 'block');
@@ -45,22 +50,7 @@
%span
= target['name']
= submit_tag "Build"
- .target_list
- - if @image_descriptor.image_descriptor_targets.empty?
- .empty No images have been created yet.
- -else
- %ul
- - @image_descriptor.image_descriptor_targets.each do |target|
- %li
- %span{:class => 'actions'}
- = image_target_actions(target)
- %span{:class => 'status'}
- = target.status
- = @all_targets[target.name]['name']
- %p
- = target.created_at
- //%span{:style => 'float:right'}
- // Cancel
+ = render :partial => 'targets'
.submit
= submit_tag "Cancel"
diff --git a/src/app/views/image_descriptor/_targets.haml
b/src/app/views/image_descriptor/_targets.haml
new file mode 100644
index 0000000..be66513
--- /dev/null
+++ b/src/app/views/image_descriptor/_targets.haml
@@ -0,0 +1,16 @@
+#image_target_list{:class => 'target_list'}
+ - if @image_descriptor.image_descriptor_targets.empty?
+ .empty No images have been created yet.
+ -else
+ %ul
+ - @image_descriptor.image_descriptor_targets.each do |target|
+ %li
+ %span{:class => 'actions'}
+ = image_target_actions(@image_descriptor, target)
+ %span{:class => 'status'}
+ = target.status
+ = @all_targets[target.name]['name']
+ %p
+ = target.created_at
+ //%span{:style => 'float:right'}
+ // Cancel
diff --git a/src/app/views/image_descriptor/targets.haml
b/src/app/views/image_descriptor/targets.haml
new file mode 100644
index 0000000..b4351d5
--- /dev/null
+++ b/src/app/views/image_descriptor/targets.haml
@@ -0,0 +1 @@
+= render :partial => 'targets'
--
1.7.0.1
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel