--- src/app/stylesheets/layout.scss | 87 +++++++++++++++++++++++++++++++- src/app/views/pool_families/index.haml | 45 ++++++++++++++++- src/app/views/pool_families/show.haml | 2 +- src/features/pool_family.feature | 10 ++-- 4 files changed, 136 insertions(+), 8 deletions(-)
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index b2724b9..589d9c9 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -1244,7 +1244,6 @@ header.admin-page-header{ border: none; }
- ul#provider_select{ display: inline-block; list-style-type: none; @@ -2388,6 +2387,92 @@ table.flat, form.filterable-data table{ }
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Pool Families Table +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +table.pool_families{ + border-collapse: separate; + width: 100%; + color: white; + margin-bottom: 20px; + border: 1px solid #343434; + border-top: none; + border-bottom: none; + + -webkit-border-radius: 0px 0px 7px 7px; + -moz-border-radius: 0px 0px 7px 7px; + border-radius: 0px 0px 7px 7px; + + caption{ + width: 100%; + background: #686868; + border: 1px solid #343434; + border-bottom: none; + -webkit-border-radius: 7px 7px 0px 0px; + -moz-border-radius: 7px 7px 0px 0px; + border-radius: 7px 7px 0px 0px; + + .caption_content{padding: 8px;} + } + + th{ + background: #686868; + padding: 2px 8px; + font-size: 10px; + font-weight: bold; + border-bottom: 1px solid #343434; + } + + td{ + padding: 8px; + border-top: 1px solid #909090; + border-bottom: 1px solid #343434; + vertical-align: middle; + + background: #666666; /* Old browsers */ + background: -moz-linear-gradient(top, #666666 0%, #535353 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#666666), color-stop(100%,#535353)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #666666 0%,#535353 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #666666 0%,#535353 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #666666 0%,#535353 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#666666', endColorstr='#535353',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, #666666 0%,#535353 100%); /* W3C */ + } + + tr:last-child{ + td:first-child{ + -webkit-border-radius: 0px 0px 0px 7px; + -moz-border-radius: 0px 0px 0px 7px; + border-radius: 0px 0px 0px 7px; + } + td:last-child{ + -webkit-border-radius: 0px 0px 7px 0px; + -moz-border-radius: 0px 0px 7px 0px; + border-radius: 0px 0px 7px 0px; + } + } + + .rounded-link{ + background: #535353; /* Old browsers */ + background: -moz-linear-gradient(top, #535353 0%, #666666 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#535353), color-stop(100%,#666666)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #535353 0%,#666666 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #535353 0%,#666666 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #535353 0%,#666666 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#535353', endColorstr='#666666',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, #535353 0%,#666666 100%); /* W3C */ + color: white; + text-decoration: none; + padding: 3px 6px; + -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; + border: 1px solid #343434; + + &:hover{ + border: 1px solid #909090; + } + } +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Form Components -- v.0.0.1 [form] (form.scss) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
diff --git a/src/app/views/pool_families/index.haml b/src/app/views/pool_families/index.haml index 0a79dc6..b370cb8 100644 --- a/src/app/views/pool_families/index.haml +++ b/src/app/views/pool_families/index.haml @@ -1,2 +1,45 @@ = render :partial => 'layouts/admin_nav' -= render :partial => 'list' += #render :partial => 'list' +%section.admin-content-section.pool_families + %header + %h2.pools Pool Families + .section-controls + #obj_actions + = link_to "New Pool Family", new_pool_family_path, :class => 'button pill', :id => 'new_pool_family_button' + + .content + - @pool_families.each do |pool_family| + %table.pool_families + %caption + .caption_content + %header + %h2 + = link_to pool_family.name, pool_family + .section-controls + #obj_actions + = link_to "Edit", edit_pool_family_path(pool_family), :class => 'rounded-link' + = link_to "New Pool", new_pool_path, :class => 'rounded-link' + - unless pool_family.pools.blank? + %tr + %th Pool Name + %th Deployments + %th Total Inst. + %th Pending Inst. + %th Failed Inst. + %th Quota Used + %th Active Inst. + %th Available Inst. + %th Catalog + %th + - pool_family.pools.each do |pool| + %tr + %td= link_to pool.name, pool + %td= pool.deployments.count + %td= pool.statistics[:total_instances] + %td= pool.statistics[:instances_pending] + %td= pool.statistics[:instances_failed] + %td= pool.statistics[:quota_percent] + %td + %td + %td= link_to pool.catalogs.first.name, catalog_path(pool.catalogs.first) if pool.catalogs.any? + %td= link_to 'Edit', edit_pool_path(pool), :class => 'rounded-link' diff --git a/src/app/views/pool_families/show.haml b/src/app/views/pool_families/show.haml index 70ad82d..103964b 100644 --- a/src/app/views/pool_families/show.haml +++ b/src/app/views/pool_families/show.haml @@ -4,7 +4,7 @@ #obj_actions.button-container .button-group = link_to 'Edit', edit_pool_family_path(@pool_family), :class => 'button pill' - = link_to 'Delete', pool_family_path(@pool_family), :method => :delete, :confirm => "Are you sure you want to delete?", :class => "button pill danger", :id => 'delete_pool_family_button' + = button_to 'Delete', pool_family_path(@pool_family), :method => :delete, :confirm => "Are you sure you want to delete?", :class => "button pill danger", :id => 'delete_pool_family_button'
%section.admin-content-section.pool_family .content diff --git a/src/features/pool_family.feature b/src/features/pool_family.feature index a517db9..b047bcd 100644 --- a/src/features/pool_family.feature +++ b/src/features/pool_family.feature @@ -42,16 +42,16 @@ Feature: Pool Families Given I am on the homepage And there is a pool family named "poolfamily1" When I go to the pool families page - And I check "poolfamily1" pool family - And I press "delete_button" + And I follow "poolfamily1" + And I press "delete_pool_family_button" Then there should not exist a pool family named "poolfamily1"
Scenario: Disallow deletion of default pool family Given I am on the pool families page Then I should see "default" - When I check "default" pool family - And I press "delete_button" - Then I should see "Could not delete the following Pool Families: default." + When I follow "default" + And I press "delete_pool_family_button" + Then I should see "Pool Family cannot be deleted!" And I should see "default"
# Scenario: Search for pool families