---
.../controllers/provider_accounts_controller.rb | 18 +-------
src/app/controllers/providers_controller.rb | 48 ++++++++++----------
src/app/views/provider_accounts/_list.haml | 33 ++++++--------
src/app/views/providers/_edit.haml | 5 ++
src/app/views/providers/edit.haml | 27 +++++++----
5 files changed, 63 insertions(+), 68 deletions(-)
create mode 100644 src/app/views/providers/_edit.haml
diff --git a/src/app/controllers/provider_accounts_controller.rb
b/src/app/controllers/provider_accounts_controller.rb
index b1d7f0a..0111235 100644
--- a/src/app/controllers/provider_accounts_controller.rb
+++ b/src/app/controllers/provider_accounts_controller.rb
@@ -1,7 +1,6 @@
class ProviderAccountsController < ApplicationController
before_filter :require_user
before_filter :load_accounts, :only => [:index,:show]
- before_filter :set_view_vars, :only => [:index,:show]
def index
clear_breadcrumbs
@@ -10,7 +9,7 @@ class ProviderAccountsController < ApplicationController
respond_to do |format|
format.html
- format.xml { render :text => ProviderAccount.xml_export(@accounts) }
+ format.xml { render :text => ProviderAccount.xml_export(@provider_accounts) }
end
end
@@ -177,20 +176,7 @@ class ProviderAccountsController < ApplicationController
flash.now[:error] = "Test Connection Failed: Could not connect to
provider"
end
- def set_view_vars
- #FIXME need to include atributes from credentials, credential_definitions and
provider_type in load_accounts query to make it work
- @header = [
- { :name => '', :sortable => false },
- { :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.quota_used"), :sortable =>
false },
- { :name => t("provider_accounts.index.quota_limit"), :sortable =>
false },
- ]
- end
-
def load_accounts
- @accounts = ProviderAccount.list_for_user(current_user, Privilege::VIEW)
+ @provider_accounts = ProviderAccount.list_for_user(current_user, Privilege::VIEW)
end
end
diff --git a/src/app/controllers/providers_controller.rb
b/src/app/controllers/providers_controller.rb
index fd6b111..64fe052 100644
--- a/src/app/controllers/providers_controller.rb
+++ b/src/app/controllers/providers_controller.rb
@@ -32,6 +32,30 @@ class ProvidersController < ApplicationController
if params.delete :test_provider
test_connection(@provider)
end
+
+ @view = filter_view? ? 'provider_accounts/list' : 'edit' unless
params[:details_tab]
+ if params[:details_tab] == 'connections'
+ @view = filter_view? ? 'provider_accounts/list' : 'edit'
+ #elsif params[:details_tab] == 'realms'
+ # @realms = @provider.realms
+ # @view = filter_view? ? 'realms/list' : 'realms/list'
+ end
+ #TODO add links to real data for history,properties,permissions
+ @tabs = [{:name => 'Connections', :view => @view, :id =>
'connections', :count => @provider.provider_accounts.count},
+ # {:name => 'Realms', :view => @view, :id =>
'realms', :count => @provider.realms.count},
+ # {:name => 'Hardware', :view => @view, :id =>
'hardware_profiles', :count => @provider.hardware_profiles.count},
+ # {:name => 'Roles & Permissions', :view => @view, :id
=> 'roles', :count => @provider.roles.count},
+ ]
+ details_tab_name = params[:details_tab].blank? ? 'connections' :
params[:details_tab]
+ @details_tab = @tabs.find {|t| t[:id] == details_tab_name} ||
@tabs.first[:name].downcase
+ @provider_accounts = @provider.provider_accounts if @details_tab[:id] ==
'connections'
+ @view = @details_tab[:view]
+ respond_to do |format|
+ format.html { render :action => :edit}
+ format.js { render :partial => @view }
+ format.json { render :json => @provider }
+ end
+
end
def show
@@ -47,8 +71,6 @@ class ProvidersController < ApplicationController
test_connection(@provider)
end
- save_breadcrumb(provider_path(@provider), @provider.name)
-
respond_to do |format|
format.html { render :action => 'show' }
format.js do
@@ -101,28 +123,6 @@ class ProvidersController < ApplicationController
end
end
- def multi_destroy
- deleted = []
- not_deleted = []
- Provider.find(params[:provider_selected]).each do |provider|
- check_privilege(Privilege::MODIFY, provider)
- if provider.destroy
- deleted << provider.name
- else
- not_deleted << provider.name
- end
- end
-
- unless deleted.empty?
- flash[:notice] = "These Realms were deleted: #{deleted.join(',
')}"
- end
- unless not_deleted.empty?
- flash[:error] = "Could not deleted these Realms: #{not_deleted.join(',
')}"
- end
-
- redirect_to providers_url
- end
-
def destroy
provider = Provider.find(params[:id])
require_privilege(Privilege::MODIFY, provider)
diff --git a/src/app/views/provider_accounts/_list.haml
b/src/app/views/provider_accounts/_list.haml
index 718b5c4..cda508d 100644
--- a/src/app/views/provider_accounts/_list.haml
+++ b/src/app/views/provider_accounts/_list.haml
@@ -1,20 +1,15 @@
-%section.content-section.provider_accounts
- %header
- %h2 Provider Accounts
- %span.label.badge.dark.count= @accounts.length
+.content
+ - content_for :form_header do
+ %li= restful_submit_tag "Delete", "destroy",
multi_destroy_provider_accounts_path, 'DELETE', :id => 'delete_button',
:class => 'button danger'
- .content
- - content_for :form_header do
- %li= restful_submit_tag "Delete", "destroy",
multi_destroy_provider_accounts_path, 'DELETE', :id => 'delete_button',
:class => 'button danger'
-
- = filter_table(@header, @accounts) do |account|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "accounts_selected[]", account.id, selected, :id
=> "account_checkbox_#{account.id}"
- %td= link_to account.name, provider_account_path(account)
- %td= account.credentials_hash['username']
- %td= account.provider.name
- %td= account.provider.provider_type.name
- %td= number_to_percentage account.quota.percentage_used, :precision => 0
- %td= account.quota.maximum_running_instances or 'unlimited'
+ = filter_table([{ :name => '', :sortable => false }, { :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.quota_used"), :sortable => false
}, { :name => t("provider_accounts.index.quota_limit"), :sortable => false
}], @provider_accounts) do |account|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "accounts_selected[]", account.id, selected, :id =>
"account_checkbox_#{account.id}"
+ %td= link_to account.name, provider_account_path(account)
+ %td= account.credentials_hash['username']
+ %td= account.provider.name
+ %td= account.provider.provider_type.name
+ %td= number_to_percentage account.quota.percentage_used, :precision => 0
+ %td= account.quota.maximum_running_instances or 'unlimited'
diff --git a/src/app/views/providers/_edit.haml b/src/app/views/providers/_edit.haml
new file mode 100644
index 0000000..bc4c9b1
--- /dev/null
+++ b/src/app/views/providers/_edit.haml
@@ -0,0 +1,5 @@
+.content
+ = form_for @provider, :url => provider_path(@provider), :html => { :method =>
:put, :class => 'generic' } do |f|
+ = render :partial => 'form', :locals => { :form => f }
+ = link_to "Test Connection", edit_provider_path(@provider, :test_provider
=> true), :class => 'button'
+ = button_to 'Delete Provider', provider_path(@provider), :method => :delete,
:confirm => t('providers.confirm_delete'), :class => "button
danger", :id => "delete"
diff --git a/src/app/views/providers/edit.haml b/src/app/views/providers/edit.haml
index b56e48d..1b84e04 100644
--- a/src/app/views/providers/edit.haml
+++ b/src/app/views/providers/edit.haml
@@ -13,12 +13,21 @@
Activity
.content
unimplemented
-%section.admin-content-section.provider
- %header
- %h2
- Settings
- .content
- = form_for @provider, :url => provider_path(@provider), :html => { :method
=> :put, :class => 'generic' } do |f|
- = render :partial => 'form', :locals => { :form => f }
- = link_to "Test Connection", edit_provider_path(@provider, :test_provider
=> true), :class => 'button'
- = button_to 'Delete Provider', provider_path(@provider), :method =>
:delete, :confirm => t('providers.confirm_delete'), :class => "button
danger", :id => "delete"
+%section.admin-content-section
+ %header#tab-container-1
+ %h2 Settings
+ %nav.faceted
+ %ul#tab-container-1-nav
+ - @tabs.each do |tab|
+ %li
+ %a{ :href => url_for(:details_tab => tab[:id], :only_tab => true),
:id => "details_#{tab[:id]}", :class => "#{'active' if
@details_tab[:id] == tab[:id]} show"}
+ = tab[:name]
+ -if tab[:count]
+ %span.label.badge.count.dark=tab[:count]
+ .section-controls
+ #obj_actions.button-container
+ .button-group
+ = pretty_filter_toggle(edit_provider_path(@provider, :view =>
'pretty', :details_tab => @details_tab[:id]), edit_provider_path(@provider,
:view => 'filter', :details_tab => @details_tab[:id]))
+ .content.collapsible.toggle-view.pools#tab
+ %ul.deployable-cards
+ = render :partial => @view
--
1.7.6