From: Imre Farkas <ifarkas(a)redhat.com>
---
src/app/helpers/application_helper.rb | 6 ++-
src/app/helpers/provider_accounts_helper.rb | 31 ++++++++-------
src/app/views/layouts/_filter_table.html.haml | 40 ++++++--------------
src/app/views/layouts/_filter_table_form.html.haml | 25 ++++++++++++
.../_add_provider_accounts_form.html.haml | 2 +-
.../pool_families/_provider_accounts.html.haml | 2 +-
6 files changed, 57 insertions(+), 49 deletions(-)
create mode 100644 src/app/views/layouts/_filter_table_form.html.haml
diff --git a/src/app/helpers/application_helper.rb
b/src/app/helpers/application_helper.rb
index 8480508..594bc86 100644
--- a/src/app/helpers/application_helper.rb
+++ b/src/app/helpers/application_helper.rb
@@ -67,10 +67,12 @@ module ApplicationHelper
end
end
- def filter_table(columns, rows, options={}, &block)
+ def filter_table(columns, rows, options = {}, form = nil, &block)
_class = rows.first.try(:class) || Object
- render :partial => 'layouts/filter_table', :locals => {
+ render :partial => 'layouts/filter_table_form', :locals => {
+ :without_form => options[:without_form] || false,
:form_header => options[:form_header] || :form_header,
+ :form => form,
:filter_controls => options[:filter_controls] || :filter_controls,
:form_footer => options[:form_footer] || :form_footer,
:object_count => rows.count,
diff --git a/src/app/helpers/provider_accounts_helper.rb
b/src/app/helpers/provider_accounts_helper.rb
index 49d96ff..5ddf0d3 100644
--- a/src/app/helpers/provider_accounts_helper.rb
+++ b/src/app/helpers/provider_accounts_helper.rb
@@ -14,23 +14,22 @@
# limitations under the License.
#
module ProviderAccountsHelper
- def provider_accounts_header
- [
- { :name => 'checkbox', :sortable => false, :class =>
'checkbox' },
- { :name => '', :sortable => false, :class => 'alert' },
- { :name => t("provider_accounts.index.provider_account_name"),
:sortable => false },
- { :name => t("provider_accounts.index.username"), :sortable =>
false},
- { :name => t("provider_accounts.index.provider_name"), :sortable =>
false },
- { :name => t("provider_accounts.index.provider_type"), :sortable =>
false },
- { :name => t("provider_accounts.index.priority"), :sortable =>
false, :class => 'center' },
- { :name => t("quota_used"), :sortable => false, :class =>
'center' },
- { :name => t("provider_accounts.index.quota_limit"), :sortable =>
false, :class => 'center' }
- ]
- end
+ def provider_accounts_header(options = {})
+ columns = []
+
+ if !options[:without_checkbox] &&
(!options.has_key?(:with_checkbox_placeholder) || !options[:with_checkbox_placeholder])
+ columns << { :name => 'checkbox', :sortable => false, :class
=> 'checkbox' }
+ end
+
+ if options[:with_checkbox_placeholder]
+ columns << { :sortable => false }
+ end
+
+ unless options[:without_alert]
+ columns << { :name => '', :sortable => false, :class =>
'alert' }
+ end
- def no_alerts_provider_accounts_header
- [
- { :name => 'checkbox', :sortable => false, :class =>
'checkbox' },
+ columns += [
{ :name => t("provider_accounts.index.provider_account_name"),
:sortable => false },
{ :name => t("provider_accounts.index.username"), :sortable =>
false},
{ :name => t("provider_accounts.index.provider_name"), :sortable =>
false },
diff --git a/src/app/views/layouts/_filter_table.html.haml
b/src/app/views/layouts/_filter_table.html.haml
index 453266c..71ae254 100644
--- a/src/app/views/layouts/_filter_table.html.haml
+++ b/src/app/views/layouts/_filter_table.html.haml
@@ -1,30 +1,12 @@
-= form_tag({}, :class => 'filterable-data') do
-
- - if content_for? filter_controls or content_for? form_header
- %div.controls
- %ul.filter-controls
- = yield filter_controls if content_for? filter_controls
-
- - if content_for? form_header
- %ul.actions
- = yield form_header
-
- %table.flat.checkbox_table{ 'data-none_selected' =>
t("default_none_selected_message"), 'data-confirm' =>
t("default_confirm_message") }
- %thead
+%table.flat.checkbox_table{ 'data-none_selected' =>
t("default_none_selected_message"), 'data-confirm' =>
t("default_confirm_message") }
+ %thead
+ %tr
+ - columns.each do |column|
+ - if column[:name] == 'checkbox'
+ %th{:class => column[:class]}= check_box_tag :select_all, true, false,
:class => 'select_all'
+ -else
+ %th{:class => column[:class]}= column[:name]
+ - if !rows.any?
%tr
- - columns.each do |column|
- - if column[:name] == 'checkbox'
- %th{:class => column[:class]}= check_box_tag :select_all, true, false,
:class => 'select_all'
- -else
- %th{:class => column[:class]}= column[:name]
- - if !rows.any?
- %tr
- %td{:colspan => columns.size}= t('search.no_results')
- = rows.collect {|row| capture_haml(row, &block)}.join.html_safe
-
- - if content_for? form_footer
- %fieldset.options
- = yield form_footer
-
-- if rows.is_a?(WillPaginate::Collection)
- = render_pagination(rows)
+ %td{:colspan => columns.size}= t('search.no_results')
+ = rows.collect {|row| capture_haml(row, &block)}.join.html_safe
\ No newline at end of file
diff --git a/src/app/views/layouts/_filter_table_form.html.haml
b/src/app/views/layouts/_filter_table_form.html.haml
new file mode 100644
index 0000000..1d010a2
--- /dev/null
+++ b/src/app/views/layouts/_filter_table_form.html.haml
@@ -0,0 +1,25 @@
+- if form.present? || without_form
+ = render :partial => 'layouts/filter_table', :locals => { :columns =>
columns, :rows => rows, :block => block }
+
+ - if rows.is_a?(WillPaginate::Collection)
+ = render_pagination(rows)
+- else
+ = form_tag({}, :class => 'filterable-data') do
+
+ - if content_for? filter_controls or content_for? form_header
+ %div.controls
+ %ul.filter-controls
+ = yield filter_controls if content_for? filter_controls
+
+ - if content_for? form_header
+ %ul.actions
+ = yield form_header
+
+ = render :partial => 'layouts/filter_table', :locals => { :columns
=> columns, :rows => rows, :block => block }
+
+ - if content_for? form_footer
+ %fieldset.options
+ = yield form_footer
+
+ - if rows.is_a?(WillPaginate::Collection)
+ = render_pagination(rows)
diff --git a/src/app/views/pool_families/_add_provider_accounts_form.html.haml
b/src/app/views/pool_families/_add_provider_accounts_form.html.haml
index bdb4680..e596960 100644
--- a/src/app/views/pool_families/_add_provider_accounts_form.html.haml
+++ b/src/app/views/pool_families/_add_provider_accounts_form.html.haml
@@ -1,7 +1,7 @@
- content_for :form_footer do
= link_to t('cancel'), pool_family_path(@pool_family, :details_tab =>
'provider_accounts'), :class => 'button danger'
= restful_submit_tag t('provider_accounts.add_provider_account'),
"create", add_provider_accounts_pool_family_path(@pool_family), 'POST',
:id => 'save_button', :class => 'button'
-= filter_table(no_alerts_provider_accounts_header, @provider_accounts) do |account|
+= filter_table(provider_accounts_header(:without_alert => true), @provider_accounts)
do |account|
%tr{:class => cycle('nostripe','stripe')}
%td{:class => 'checkbox'}
- if check_privilege(Privilege::MODIFY)
diff --git a/src/app/views/pool_families/_provider_accounts.html.haml
b/src/app/views/pool_families/_provider_accounts.html.haml
index b892a79..cfda880 100644
--- a/src/app/views/pool_families/_provider_accounts.html.haml
+++ b/src/app/views/pool_families/_provider_accounts.html.haml
@@ -3,7 +3,7 @@
%li= link_to t('provider_accounts.add_provider_account'),
add_provider_accounts_pool_family_path(@pool_family), { :class => 'button
primary', :id => 'add_provider_accounts_button'}
%li= restful_submit_tag t('provider_accounts.remove_provider_accounts'),
"destroy", remove_provider_accounts_pool_family_path(@pool_family),
'POST', :id => 'remove_button', :class => 'button danger'
-= filter_table(no_alerts_provider_accounts_header, @pool_family.provider_accounts) do
|account|
+= filter_table(provider_accounts_header(:without_alert => true),
@pool_family.provider_accounts) do |account|
%tr{:class => cycle('nostripe','stripe')}
%td{:class => 'checkbox'}
- if check_privilege(Privilege::MODIFY)
--
1.7.10.4