From: Jan Provaznik <[email protected]>

---
 src/app/controllers/templates_controller.rb     |   10 +++---
 src/app/views/templates/_content_selection.haml |   41 ++++++++++++----------
 src/app/views/templates/new.haml                |   13 +++++++-
 3 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/src/app/controllers/templates_controller.rb 
b/src/app/controllers/templates_controller.rb
index 8d97c05..9f2dded 100644
--- a/src/app/controllers/templates_controller.rb
+++ b/src/app/controllers/templates_controller.rb
@@ -42,7 +42,7 @@ class TemplatesController < ApplicationController
     # can't use @template variable - is used by compass (or something other)
     @tpl = Template.find_or_create(params[:id])
     @repository_manager = RepositoryManager.new
-    @groups = @repository_manager.all_groups(params[:repository])
+    @groups = @repository_manager.all_groups
   end
 
   def create
@@ -71,7 +71,7 @@ class TemplatesController < ApplicationController
 
     if params[:add_software_form]
       @repository_manager = RepositoryManager.new
-      @groups = 
@repository_manager.all_groups_with_tagged_selected_packages(@tpl.xml.packages, 
params[:repository])
+      @groups = 
@repository_manager.all_groups_with_tagged_selected_packages(@tpl.xml.packages, 
params[:tpl] ? params[:tpl][:platform] : nil)
       render :action => 'add_software_form'
       return
     end
@@ -82,7 +82,7 @@ class TemplatesController < ApplicationController
       redirect_to :action => 'index'
     else
       @repository_manager = RepositoryManager.new
-      @groups = @repository_manager.all_groups(params[:repository])
+      @groups = @repository_manager.all_groups
       render :action => 'new'
     end
   end
@@ -90,7 +90,7 @@ class TemplatesController < ApplicationController
   def add_software
     @tpl = params[:template_id].to_s.empty? ? Template.new : 
Template.find(params[:template_id])
     @repository_manager = RepositoryManager.new
-    @groups = @repository_manager.all_groups(params[:repository])
+    @groups = @repository_manager.all_groups
     if params[:add_selected]
       params[:groups].to_a.each { |group| @tpl.xml.add_group(group) }
       params[:packages].to_a.each { |pkg| @tpl.xml.add_package(pkg) }
@@ -164,7 +164,7 @@ class TemplatesController < ApplicationController
 
   def update_group_or_package(method, *args)
     @repository_manager = RepositoryManager.new
-    @groups = @repository_manager.all_groups(params[:repository])
+    @groups = @repository_manager.all_groups
     @tpl.xml.send(method, *args)
     # we save template w/o validation (we can add package before name,... is
     # set)
diff --git a/src/app/views/templates/_content_selection.haml 
b/src/app/views/templates/_content_selection.haml
index 2372a4a..2ec9502 100644
--- a/src/app/views/templates/_content_selection.haml
+++ b/src/app/views/templates/_content_selection.haml
@@ -27,26 +27,29 @@
     -#%fieldset.clearfix
     -#  = submit_tag "Add Selected", :name => "add_selected", :class => 
"grid_2 alpha", :id => "do_add_software"
     -#  = submit_tag "Cancel", :name => "cancel", :class => "grid_2", :id => 
"cancel_add_software"
-    %ul.softwaregroups
-      - groups = @groups.keys.sort
-      - unsorted = groups.delete('unsorted')
-      - groups.push('unsorted') if params[:show_unsorted] and unsorted
-      - groups.each do |group|
-        - group_sel = @groups[group][:selected]
-        - group_id = group.gsub(/\s/, '_')
-        %li
-          = check_box_tag 'groups[]', group, group_sel, :disabled => 
group_sel, :id => "group_#{group_id}"
-          = label_tag "group_#{group_id}", group
-          %ul{:class => "packages group_#{group_id}"}
-            - pkgs = @groups[group][:packages]
-            - pkgs.keys.sort.each do |pkg|
-              - pkg_sel = pkgs[pkg][:selected] ? true : false
-              - pkg_id = pkg.gsub(/\s/, '_')
-              %li
-                = check_box_tag 'packages[]', pkg, pkg_sel, :disabled => 
pkg_sel, :id => "package_#{pkg_id}"
-                = label_tag "package_#{pkg_id}", pkg
+    - if @groups.empty?
+      No Packages Found
+    -else
+      %ul.softwaregroups
+        - groups = @groups.keys.sort
+        - unsorted = groups.delete('unsorted')
+        - groups.push('unsorted') if params[:show_unsorted] and unsorted
+        - groups.each do |group|
+          - group_sel = @groups[group][:selected]
+          - group_id = group.gsub(/\s/, '_')
+          %li
+            = check_box_tag 'groups[]', group, group_sel, :disabled => 
group_sel, :id => "group_#{group_id}"
+            = label_tag "group_#{group_id}", group
+            %ul{:class => "packages group_#{group_id}"}
+              - pkgs = @groups[group][:packages]
+              - pkgs.keys.sort.each do |pkg|
+                - pkg_sel = pkgs[pkg][:selected] ? true : false
+                - pkg_id = pkg.gsub(/\s/, '_')
+                %li
+                  = check_box_tag 'packages[]', pkg, pkg_sel, :disabled => 
pkg_sel, :id => "package_#{pkg_id}"
+                  = label_tag "package_#{pkg_id}", pkg
 
-      = link_to "Show unsorted packages", {:action => 'create', 
:add_software_form => true, :show_unsorted => true, 'tpl[id]' => @tpl.id}, {:id 
=> 'switch_all_link'} unless params[:show_unsorted]
+        = link_to "Show unsorted packages", {:action => 'create', 
:add_software_form => true, :show_unsorted => true, 'tpl[id]' => @tpl.id}, {:id 
=> 'switch_all_link'} unless params[:show_unsorted]
     %fieldset.clearfix
       = submit_tag "Add Selected", :name => "add_selected", :class => "grid_2 
alpha", :id => "do_add_software"
       = submit_tag "Cancel", :name => "cancel", :class => "grid_2", :id => 
"cancel_add_software"
diff --git a/src/app/views/templates/new.haml b/src/app/views/templates/new.haml
index 42fc85d..065d2c4 100644
--- a/src/app/views/templates/new.haml
+++ b/src/app/views/templates/new.haml
@@ -5,7 +5,11 @@
     $submit.click(function(e, show_all) {
       var list_url = '#{url_for :action => 'create', :add_software_form => 
true}';
       var list_all_url = '#{url_for :action => 'create', :add_software_form => 
true, :show_unsorted => true}';
-      var list_data = {'tpl[id]': $("input[name='tpl[id]']").val() || '', 
ajax: true};
+      var list_data = {
+        'tpl[id]': $("input[name='tpl[id]']").val() || '',
+        ajax: true,
+        'tpl[platform]': $("select[name='tpl[platform]']").val() || ''
+      };
       e.preventDefault();
       $(this).hide();
       $container.empty().show().addClass('loading');
@@ -43,6 +47,13 @@
         });
       });
     });
+
+    // select correct package repo when we change platform
+    $("select[name='tpl[platform]']").change(function() {
+      if ($submit.is(':hidden')) {
+        $submit.trigger('click');
+      }
+    });
   });
 
 .grid_16
-- 
1.7.2.3

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to