[PATCH conductor] BZ798574: Separating matching_provider_hardware_profiles action from create

ifarkas at redhat.com ifarkas at redhat.com
Fri Mar 2 16:31:18 UTC 2012


From: Imre Farkas <ifarkas at redhat.com>

https://bugzilla.redhat.com/show_bug.cgi?id=798574
---
 .../controllers/hardware_profiles_controller.rb    |   32 ++++++++++---------
 src/app/views/hardware_profiles/_form.html.haml    |    3 +-
 src/app/views/hardware_profiles/new.html.haml      |    2 +-
 src/config/routes.rb                               |    1 +
 4 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/src/app/controllers/hardware_profiles_controller.rb b/src/app/controllers/hardware_profiles_controller.rb
index db94433..f845654 100644
--- a/src/app/controllers/hardware_profiles_controller.rb
+++ b/src/app/controllers/hardware_profiles_controller.rb
@@ -19,7 +19,7 @@ class HardwareProfilesController < ApplicationController
   before_filter :load_hardware_profiles, :only => [:index, :show]
   before_filter :load_hardware_profile, :only => [:show]
   before_filter :setup_new_hardware_profile, :only => [:new]
-  before_filter :setup_hardware_profile, :only => [:new, :create, :edit, :update]
+  before_filter :setup_hardware_profile, :only => [:new, :create, :matching_provider_hardware_profiles, :edit, :update]
 
   def index
     @title = t('hardware_profiles.hardware_profiles')
@@ -32,7 +32,7 @@ class HardwareProfilesController < ApplicationController
       format.js do
         if params[:hardware_profile]
           build_hardware_profile(params[:hardware_profile])
-          matching_provider_hardware_profiles
+          find_matching_provider_hardware_profiles
           render :partial => 'matching_provider_hardware_profiles'
         else
           render :partial => 'list'
@@ -53,7 +53,7 @@ class HardwareProfilesController < ApplicationController
     @tab_captions = [t('hardware_profiles.tab_captions.properties'), t('hardware_profiles.tab_captions.history'), t('hardware_profiles.tab_captions.matching_provider_hwp')]
     @details_tab = params[:details_tab].blank? ? 'properties' : params[:details_tab]
     properties
-    matching_provider_hardware_profiles
+    find_matching_provider_hardware_profiles
     save_breadcrumb(hardware_profile_path(@hardware_profile), @hardware_profile.name)
 
     respond_to do |format|
@@ -81,19 +81,21 @@ class HardwareProfilesController < ApplicationController
     require_privilege(Privilege::CREATE, HardwareProfile)
 
     build_hardware_profile(params[:hardware_profile])
-    if params[:commit] == 'Save'
-      if @hardware_profile.save
-        redirect_to hardware_profiles_path
-      else
-        params.delete :commit
-        render :action => 'new'
-      end
+    if @hardware_profile.save
+      redirect_to hardware_profiles_path
     else
-      matching_provider_hardware_profiles
       render :action => 'new'
     end
   end
 
+  def matching_provider_hardware_profiles
+    require_privilege(Privilege::CREATE, HardwareProfile)
+
+    build_hardware_profile(params[:hardware_profile])
+    find_matching_provider_hardware_profiles
+    render :action => 'new'
+  end
+
   def destroy
     hardware_profile = HardwareProfile.find(params[:id])
     require_privilege(Privilege::MODIFY, hardware_profile)
@@ -121,7 +123,7 @@ class HardwareProfilesController < ApplicationController
       redirect_to hardware_profile_path(@hardware_profile)
       return
     end
-    matching_provider_hardware_profiles
+    find_matching_provider_hardware_profiles
   end
 
   def update
@@ -133,7 +135,7 @@ class HardwareProfilesController < ApplicationController
 
     if params[:commit] == "Check Matches"
       require_privilege(Privilege::VIEW, HardwareProfile)
-      matching_provider_hardware_profiles
+      find_matching_provider_hardware_profiles
       render :edit and return
     end
 
@@ -183,7 +185,7 @@ class HardwareProfilesController < ApplicationController
                                               :storage => HardwareProfileProperty.new(:name => "storage", :unit => "GB"),
                                               :architecture => HardwareProfileProperty.new(:name => "architecture", :unit => "label"))
     end
-    matching_provider_hardware_profiles
+    find_matching_provider_hardware_profiles
   end
 
   def properties
@@ -195,7 +197,7 @@ class HardwareProfilesController < ApplicationController
   end
 
   #TODO Update this method when moving to new HWP Model
-  def matching_provider_hardware_profiles
+  def find_matching_provider_hardware_profiles
     @provider_hwps_header  = [
       { :name => t('hardware_profiles.provider_hwp_headers.provider_name'), :sort_attr => "provider.name" },
       { :name => t('hardware_profiles.provider_hwp_headers.hwp_name'), :sort_attr => :name },
diff --git a/src/app/views/hardware_profiles/_form.html.haml b/src/app/views/hardware_profiles/_form.html.haml
index 0a0fed8..5b1815c 100644
--- a/src/app/views/hardware_profiles/_form.html.haml
+++ b/src/app/views/hardware_profiles/_form.html.haml
@@ -18,5 +18,6 @@
             = hwpp_form.select("value", ["i386", "x86_64"], {})
           -else
             = hwpp_form.text_field(:value)
-= hwp_form.submit t('hardware_profiles.form.check_matches'), :class => "submit button", :id => 'check_matches'
+
+= restful_submit_tag t('hardware_profiles.form.check_matches'), 'matching_provider_hardware_profiles', matching_provider_hardware_profiles_hardware_profiles_path, 'GET', :class => 'button danger', :id => 'check_matches', 'data-none_selected' => t('deployments.flash.error.none_selected')
 = hwp_form.submit t('save'), :class => 'submit button', :id => 'save_button'
diff --git a/src/app/views/hardware_profiles/new.html.haml b/src/app/views/hardware_profiles/new.html.haml
index cdb732c..c5b2db8 100644
--- a/src/app/views/hardware_profiles/new.html.haml
+++ b/src/app/views/hardware_profiles/new.html.haml
@@ -12,4 +12,4 @@
   = form_for @hardware_profile, :url => hardware_profiles_path, :html => { :multipart => true } do |hwp_form|
     = render :partial => "form", :locals => { :hwp_form => hwp_form }
 
-  = render :partial => 'matching_provider_hardware_profiles' if params[:commit] == 'Check Matches'
+  = render :partial => 'matching_provider_hardware_profiles' if @matching_hwps.present? && @matching_hwps.any?
diff --git a/src/config/routes.rb b/src/config/routes.rb
index d24f039..e7dd434 100644
--- a/src/config/routes.rb
+++ b/src/config/routes.rb
@@ -137,6 +137,7 @@ Conductor::Application.routes.draw do
   resources :hardware_profiles do
     delete 'multi_destroy', :on => :collection
     post :filter, :on => :collection
+    get :matching_provider_hardware_profiles, :on => :collection
   end
 
   resources :providers do
-- 
1.7.6.5




More information about the aeolus-devel mailing list