From: Kenneth Keiter kkeiter@redhat.com
--- src/app/stylesheets/layout.scss | 20 +++++++++++++++++++- src/public/images/header_icon_deployables.png | Bin 0 -> 626 bytes .../images/header_icon_hardware-profiles.png | Bin 0 -> 324 bytes src/public/images/header_icon_pool-families.png | Bin 0 -> 851 bytes src/public/images/header_icon_realms.png | Bin 0 -> 626 bytes 5 files changed, 19 insertions(+), 1 deletions(-) create mode 100644 src/public/images/header_icon_deployables.png create mode 100644 src/public/images/header_icon_hardware-profiles.png create mode 100644 src/public/images/header_icon_pool-families.png create mode 100644 src/public/images/header_icon_realms.png
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index 0f10cf3..285f714 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -1,6 +1,6 @@ /* ########################################################################### Generated SCSS for Aeolus UI [aeolus_ui] -Compiled on 2011-06-06 21:29:07 -0700 +Compiled on 2011-06-16 16:13:58 -0700 ########################################################################### */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1449,6 +1449,24 @@ div#content .page-header{ padding: 6px 7px 7px 60px; }
+ h1.hardware_profiles{ + background: transparent url('../../images/header_icon_hardware-profiles.png') no-repeat 8px center; + padding: 6px 7px 7px 46px; + } + + h1.realms{ + background: transparent url('../../images/header_icon_realms.png') no-repeat 8px center; + } + + h1.pool_families{ + background: transparent url('../../images/header_icon_pool-families.png') no-repeat 8px center; + padding: 6px 7px 7px 54px; + } + + h1.suggested_deployables{ + background: transparent url('../../images/header_icon_deployables.png') no-repeat 8px center; + } + h1.settings{ background: transparent url('../../images/header_icon_settings.png') no-repeat 8px center; } diff --git a/src/public/images/header_icon_deployables.png b/src/public/images/header_icon_deployables.png new file mode 100644 index 0000000000000000000000000000000000000000..36fa110f0408ae42f12c33064b286799c15e17c1 GIT binary patch literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq001HY000{Z1^@s688Tg`00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4ZXi@?ZDjy9FEKVR zF)<9NV9Nji0338hSaefwW^{L9a%BKPWN%_+AVz6&Wp{6KYjYq&Q#En5<2C>Q0n155 zK~zYIy_V5YgFq05KOEn&1F-^A0?8Jj9VAvDRuHVfbP&=(EMRA12PuJ6pj2=^aAZ#8 z0>=#b-+;Z{kALqLphv2jsOnu`+*lc7Fvf5*AT|NAsX!VH0RhOSbR`5NW@1-{g22SC zgn&%yN(cx{=*n$ieB(;)3$UOw=hjg~ethv!6k&`ZQq>elFBDIJrE^^YNjtgClL1d1 zIlh2gL=IgAj4?z`l64P|t9KE}9f%F^I$+&SL{?r9C*e?_vn#5a0UrY(yfFVJtB4## zWDd-M!-Zt-3EBrh04!B?)xH^Z1fJF7kn743cnp9!iAd61^nPnv4i&A(t}E?leY#gw z_hj|Y5mikr&<pU;Dw?TkLU?-so(F^2nNX-|sj4dxDO*4>^|360&p?pWz65Y#k67yt zwpgQ+EnL``gnAFXQNQ6f5T*js#bR;n1hGz(EeKbCfSfhofglac%-5Ry0tCQ4ux(lf zU?=Tv1V{|zK1WJhY^YAud!{73Jph&OqZb0v#ILDs9-}z)H=sA+*o8ij)7XR~Rrx@Q zYf=DvAIOIB{SH+H<eeb)D5h6{X$D&9-K-*Vr2aeGO#oEcyfa&eUu`A4BOeIP0RR91 M07*qoM6N<$f<@T$^Z)<=
literal 0 HcmV?d00001
diff --git a/src/public/images/header_icon_hardware-profiles.png b/src/public/images/header_icon_hardware-profiles.png new file mode 100644 index 0000000000000000000000000000000000000000..7cfd23be3ea7eaf7f895400d51027041c3ec8e70 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W1!3HF`9ol{aDVAa<&kznEsNqQI0P;BtJR*yM zvO*xtc<FB4AE2OUiEBiOb5UwyNoIbYLP%zADubE6ArKkztVlQwR3HOV5S*V@Ql40p z%HWuipOmWLmRXcqo?nz*tl%7MTDbMG8BpC^PZ!4!kItt-hFlE>0^Up47kt&-cT4{V zU%2~miyO_0;#R)ZT*R39p|5QTqvr&chPWU9HqYAm;j^HL)12bH+fq!kw;Z+puwq94 zTDKY%%h}zn#Y`Jm?p=*rCHdjhK2|<9yO;@AF6^?g%ufrG6U@%mJ1M4Y$q?;xsCa_l z$Ab>JU;UM@@%-8Hi!tq~XV=te?uTC|`8*6dax_U*uzve5?MFII>*Om18-NaF@O1Ta JS?83{1OPSGb?yKF
literal 0 HcmV?d00001
diff --git a/src/public/images/header_icon_pool-families.png b/src/public/images/header_icon_pool-families.png new file mode 100644 index 0000000000000000000000000000000000000000..222d0bf95df6bf74962d444ebb0f7e9c836fb6cf GIT binary patch literal 851 zcmV-Z1FZasP)<h;3K|Lk000e1NJLTq001Qb001Be1^@s6l~b{>00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4ZXi@?ZDjy9FEKVR zF)<9NV9Nji0338hSaefwW^{L9a%BKPWN%_+AVz6&Wp{6KYjYq&Q#En5<2C>Q0<1|y zK~z|U&6dAT+fWpTKmUpCItjRnhXy*K3MSM_JOFgOV_za3`v?th(2im1BXkQ3YO;fb z#D-LfDXEwu0x5~>xI^Q}c5vd<HtKKky}sw1@7m{{b0y#RNu!gKlla1}<2XmDjF+g@ zYIT6a@SMDceG}+}#y44kp77HFnyH~2$2kVN3C^-8?5EpkG>+8_&W>8GR^*pDjw5C8 zH&+&@OW;!;5OJxer>EiF4ulXd(->-+#{T|(<jb6$oeh28uLNVuvfi)qb9HrPO(v5l z6mSH50p0>X(f|RJ%jI{#$MD?d=4O1^_Y{7*3s6FcZoAzc%*Mal?RGQt{zeG#^(kkM zkB_geude~9)oRpgwN>#`E1pv-(VAi97HJK|q3(qcEAs%rFpQr&J3D&?Fh!wcS+>s4 z&l5|0uh*mB?*~waN$YZj0$vOTgCHn|VI&%Qp2u)FjLcQ5)k2^q<#HJSSzcc3N23w9 zx3`hGgM))YpuAG4l*+JLt+KaQNJ=e0DX#0z2a+VAs#%KuzbO*Y_x*WJ0hCH5EbIBJ zLIg^Zq<h=8QyC72LoO~Z0I1jNY;A271GSEHU1wus1At1UvSRgmibH7+4-bDIG>v6R zuW1_fdOcT|K=E_0xUP%qx_F*fNWe6Tf2m(-6MHlo5j5mLySux&K&^8}e>Nqy830vP z6O-69&0J61GAK{ewE19Ft0_tgz0WkwREFV(tm``A&EyR=Z!@wiqbN$EVYnd|T0FyT z#xzZW8^coy=ajDNxdAOet<z={Mak{{6xaV>5~kCseRp@)Nm@J}k6#0C0Q&v@{A!$0 z;cN9E4Aq&v+#Zj|+ey}jVIa#g)9Ex1n79VOH<<lCAw(1S9FQhSRaI=;&h_}ubP0TD dG#WPme*m8L#Nv_`Eu{be002ovPDHLkV1kDxd?o+@
literal 0 HcmV?d00001
diff --git a/src/public/images/header_icon_realms.png b/src/public/images/header_icon_realms.png new file mode 100644 index 0000000000000000000000000000000000000000..331f8d773b69e3befa67b57ea524e6cbca650600 GIT binary patch literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq001Na001Tk1^@s6tjIZ&00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4ZXi@?ZDjy9FEKVR zF)<9NV9Nji0338hSaefwW^{L9a%BKPWN%_+AVz6&Wp{6KYjYq&Q#En5<2C>Q0n155 zK~z|U&6iDX!Y~kpzeMawPf%_^7T!129HiW&aD!ffgP68^BlQSy17HObkS?$VqWQt8 zY5g_~V^8!vGkN1AWm)2b*=$x9FcFb4fYy2pyn3z!kb1HC14KtC30Sfqh%Q6X5$bh_ znb_X}@Dhl}6j(rq9!in~0IhWayayumEFvEeVaa|&s0c;k@>$Vks5hU_e>9O&DgiLY zly&~?cFS(J3r?tWh7N~ANFIeVDqnkJ%!iLZB<ghNsm<>z7cIz~k#Z8cN&Vhx1TNXo z8HqEl8@LVY^*SUWL?nTZO?^BbgOUNzS`WYyGR74DO^DNMj87OHp@C1(e!maT#A;C| zLia>WCClJUsPKsltU(Sr#FZi7OekyIb%npk(6C|S4+NfL4t=nr!)I)iWyxl<xd$PD zhn_Je_lfW**Bbb;c8<+J3-T1t{<#rTU?3ueh!mW3ZhA{#&zH~*8Tu5F(WOH~R=~&( z(7L-8*bFt5Y{~h)w1k@)`mN&{K-To-`l*yEF8+`06}IVwaPAx5HGnLoUZuxXzP6Hy z$fC=dMc$;;Ri|k?;jfWWGwGF5t191}RN5g=fk&T+JE^ooKf2-i4Z6^yL>k#g{r~^~ M07*qoM6N<$f*u41J^%m!
literal 0 HcmV?d00001
From: Kenneth Keiter kkeiter@redhat.com
--- src/app/views/layouts/_admin_header.haml | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/app/views/layouts/_admin_header.haml b/src/app/views/layouts/_admin_header.haml index 67a1486..ebae58c 100644 --- a/src/app/views/layouts/_admin_header.haml +++ b/src/app/views/layouts/_admin_header.haml @@ -5,8 +5,8 @@
-# TODO: Actually design nav for the Administer section. -# Ugly hack to avoid moving files around for the moment.. Abs position the nav :/ -#tab_actions{:style => "margin-bottom: 5px;"} - %span.label.small Control Panels +#tab_actions{:style => "position: absolute; top: -32px; right: 0px;"} + %label.label.small{:for => 'admin-section-select'} Control Panels %select#admin-section-select %option{:value => users_path} Choose section... %option{:value => users_path} Users
From: Kenneth Keiter kkeiter@redhat.com
--- src/app/stylesheets/layout.scss | 66 +++++++++++++++++---- src/app/views/layouts/_pretty_filter_toggle.haml | 7 ++- src/app/views/pools/_header_index.haml | 8 +++ src/app/views/pools/index.haml | 9 +--- src/features/deployment.feature | 4 +- src/features/instance.feature | 2 +- src/features/pool.feature | 20 +++--- src/features/step_definitions/web_steps.rb | 4 + src/public/images/button-viewtoggle.png | Bin 0 -> 3555 bytes src/public/javascripts/application.js | 6 ++ 10 files changed, 90 insertions(+), 36 deletions(-) create mode 100644 src/public/images/button-viewtoggle.png
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index 285f714..44d37dc 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -1,6 +1,6 @@ /* ########################################################################### Generated SCSS for Aeolus UI [aeolus_ui] -Compiled on 2011-06-16 16:13:58 -0700 +Compiled on 2011-06-16 17:12:35 -0700 ########################################################################### */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -701,7 +701,7 @@ http://github.com/necolas/css3-github-buttons ------------------------------------------ */
-/* ------------------------------------------------------------------------------------------------------------- BUTTON */ +/* ----------------------------------------------------------------- BUTTON */
.button { position: relative; @@ -767,7 +767,7 @@ http://github.com/necolas/css3-github-buttons border: 0; }
-/* ............................................................................................................. Icons */ +/* ------------------------------------------------------------------ Icons */
.button.icon:before { content: ""; @@ -936,15 +936,15 @@ http://github.com/necolas/css3-github-buttons .button.user.icon:active:before { background-position: -12px -360px; }
-/* ------------------------------------------------------------------------------------------------------------- BUTTON EXTENSIONS */ +/* ------------------------------------------------------ BUTTON EXTENSIONS */
-/* ............................................................................................................. Primary */ +/* ---------------------------------------------------------------- Primary */
.button.primary { font-weight: bold; }
-/* ............................................................................................................. Danger */ +/* ----------------------------------------------------------------- Danger */
.button.danger { color: #900; @@ -974,7 +974,7 @@ http://github.com/necolas/css3-github-buttons background-image: linear-gradient(#b33630, #dc5f59); }
-/* ............................................................................................................. Pill */ +/* ------------------------------------------------------------------- Pill */
.button.pill { -webkit-border-radius: 50em; @@ -982,13 +982,13 @@ http://github.com/necolas/css3-github-buttons border-radius: 50em; }
-/* ............................................................................................................. Disable */ +/* ---------------------------------------------------------------- Disable */
.button.disable { opacity: 0.5; }
-/* ............................................................................................................. Big */ +/* -------------------------------------------------------------------- Big */
.button.big { font-size: 14px; @@ -997,9 +997,9 @@ http://github.com/necolas/css3-github-buttons .button.big.icon:before { top: 0; }
-/* ------------------------------------------------------------------------------------------------------------- BUTTON GROUPS */ +/* ---------------------------------------------------------- BUTTON GROUPS */
-/* ............................................................................................................. Standard */ +/* --------------------------------------------------------------- Standard */
.button-group { display: inline-block; @@ -1057,7 +1057,7 @@ http://github.com/necolas/css3-github-buttons border-bottom-left-radius: 0; }
-/* ............................................................................................................. Minor */ +/* ------------------------------------------------------------------ Minor */
.button-group.minor-group .button { border: 1px solid #d4d4d4; @@ -1081,13 +1081,53 @@ http://github.com/necolas/css3-github-buttons opacity: 0.8; }
-/* ------------------------------------------------------------------------------------------------------------- BUTTON CONTAINER */ +/* ------------------------------------------------------- BUTTON CONTAINER */ /* For mixing buttons and button groups, e.g., in a navigation bar */
.button-container .button, .button-container .button-group { vertical-align: top; } +/* --------------------------------------------------------- CUSTOM BUTTONS */ + +span.view-toggle{ + display: inline-block; +} + +a.view-toggle{ + background: url('../../images/button-viewtoggle.png') no-repeat top left; + display: block; + float:left; + width: 38px; + height: 27px; +} + +a.view-toggle span{ + position: absolute; + top: -999em; +} + +a.view-toggle.pretty{ + &:active{ + background-position: -75px 0px; + } +} + +a.view-toggle.filter{ + width: 36px; + background-position: -39px 0px; + &:active{ + background-position: -114px 0px; + } +} + +a.view-toggle.pretty.active{ + background-position: -75px 0px; +} + +a.view-toggle.filter.active{ + background-position: -114px 0px; +}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Application Input Controls -- v.0.0.1 [input] (input.scss) diff --git a/src/app/views/layouts/_pretty_filter_toggle.haml b/src/app/views/layouts/_pretty_filter_toggle.haml index c985915..3ccb45b 100644 --- a/src/app/views/layouts/_pretty_filter_toggle.haml +++ b/src/app/views/layouts/_pretty_filter_toggle.haml @@ -1,2 +1,5 @@ -= link_to "Pretty View", pretty_link, :id => 'pretty_view', :class => (filter_view? ? '' : 'active') -= link_to "Filter View", filter_link, :id => 'filter_view', :class => (filter_view? ? 'active' : '') \ No newline at end of file +%span.view-toggle + %a.view-toggle.pretty#pretty_view{:href => pretty_link, :class => (filter_view? ? '' : 'active')} + %span Graphic View + %a.view-toggle.filter#filter_view{:href => filter_link, :class => (filter_view? ? 'active' : '')} + %span Filter View diff --git a/src/app/views/pools/_header_index.haml b/src/app/views/pools/_header_index.haml index e69de29..fe2895d 100644 --- a/src/app/views/pools/_header_index.haml +++ b/src/app/views/pools/_header_index.haml @@ -0,0 +1,8 @@ +%header.page-header + %h1.section-index Overview + #obj_actions.button-container + = pretty_filter_toggle(pools_path(:view => 'pretty'), pools_path(:view => 'filter')) + = link_to "New Pool", new_pool_path, { :class => 'button primary' } + .corner + += render :partial => 'scoreboard_index' \ No newline at end of file diff --git a/src/app/views/pools/index.haml b/src/app/views/pools/index.haml index 1eb7fc5..e54f4da 100644 --- a/src/app/views/pools/index.haml +++ b/src/app/views/pools/index.haml @@ -1,11 +1,4 @@ -%header.page-header - %h1.section-index Overview - #obj_actions.button-container - = pretty_filter_toggle(pools_path(:view => 'pretty'), pools_path(:view => 'filter')) - = link_to "New Pool", new_pool_path, { :class => 'button primary' } - .corner - -= render :partial => 'scoreboard_index' += render :partial => 'header_index' = render :partial => 'alerts_index' %section.content-section.toggle-view.pools = render :partial => @view diff --git a/src/features/deployment.feature b/src/features/deployment.feature index de5b4cf..b8a07dd 100644 --- a/src/features/deployment.feature +++ b/src/features/deployment.feature @@ -10,7 +10,7 @@ Feature: Manage Deployments Scenario: List deployments Given there is a deployment named "MySQL Cluster" belonging to "Databases" owned by "bob" And I am on the pools page - When I follow "Filter View" + When I follow link with ID "filter_view" And I follow "Deployments" within "#details-view" Then I should see "MySQL Cluster" And I should see "bob" @@ -19,7 +19,7 @@ Feature: Manage Deployments Given there is a deployment named "MySQL Cluster" belonging to "Databases" owned by "bob" And I am on the pools page And I request XHR - When I follow "Filter View" + When I follow link with ID "filter_view" And I follow "Deployments" Then I should see "MySQL Cluster" And I should see "bob" diff --git a/src/features/instance.feature b/src/features/instance.feature index c110c8d..ce9e9ea 100644 --- a/src/features/instance.feature +++ b/src/features/instance.feature @@ -38,7 +38,7 @@ Feature: Manage Instances And I am on the home page When I follow "Monitor" Then I should be on the pools page - When I follow "Filter View" + When I follow link with ID "filter_view" And I follow "Instances" Then I should be on the pools page And I should see "mock1" diff --git a/src/features/pool.feature b/src/features/pool.feature index 189bd6a..a314fab 100644 --- a/src/features/pool.feature +++ b/src/features/pool.feature @@ -55,7 +55,7 @@ Feature: Manage Pools And a pool "Amazon Startrek Pool" exists And a pool "Redhat Voyager Pool" exists When I go to the pools page - And I follow "Filter View" + And I follow link with ID "filter_view" Then there should be 3 pools When I check "Redhat Voyager Pool" pool And I check "Amazon Startrek Pool" pool @@ -70,7 +70,7 @@ Feature: Manage Pools Given I am on the pools page And there is not a pool named "mockpool" And there is not a pool named "foopool" - When I follow "Filter View" + When I follow link with ID "filter_view" And I follow "New Pool" Then I should be on the new pool page And I should see "Create New Pool" @@ -82,7 +82,7 @@ Feature: Manage Pools And I should see "mockpool" And I should have a pool named "mockpool" When I go to the pools page - And I follow "Filter View" + And I follow link with ID "filter_view" And I follow "New Pool" Then I should be on the new pool page And I should see "Create New Pool" @@ -96,7 +96,7 @@ Feature: Manage Pools
Scenario: Cannot delete default_pool Given I am on the pools page - When I follow "Filter View" + When I follow link with ID "filter_view" And I check "default_pool" pool And I press "Destroy" Then I should see "The default pool cannot be deleted" @@ -105,7 +105,7 @@ Feature: Manage Pools Scenario: Cannot delete default_pool by renaming it Given I renamed default_pool to pool_default And I am on the pools page - When I follow "Filter View" + When I follow link with ID "filter_view" And I check "pool_default" pool And I press "Destroy" Then I should see "The default pool cannot be deleted" @@ -158,16 +158,16 @@ Feature: Manage Pools Scenario: Switch pretty view to filtred view on pools index Given I am on the pools page And I see "Overview" - When I follow "Filter View" + And I follow link with ID "filter_view" Then I should see "Pools" within "#details-view" And I should see "Instances" within "#details-view" And I should see "Deployments" within "#details-view"
Scenario: Switch from filtred view to pretty view on pools index Given I am on the pools page - And I follow "Filter View" + And I follow link with ID "filter_view" And I should see "Pools" within "#details-view" - When I follow "Pretty View" + When I follow link with ID "pretty_view" Then I should see "Your Pools" within "section.pools"
Scenario: Display alerts @@ -179,11 +179,11 @@ Feature: Manage Pools Scenario: Pools#show pretty view Given a pool "mockpool" exists with deployment "mockdeployment" When I am viewing the pool "mockpool" - And I follow "Pretty View" + And I follow link with ID "pretty_view" Then I should see "0 Instances" within "#content .content-section.toggle-view"
Scenario: Pools#show filter view Given a pool "mockpool" exists with deployment "mockdeployment" When I am viewing the pool "mockpool" - And I follow "Filter View" + And I follow link with ID "filter_view" Then I should not see "0 Instances" within "#content .content-section.toggle-view" diff --git a/src/features/step_definitions/web_steps.rb b/src/features/step_definitions/web_steps.rb index e6d6808..3671f23 100644 --- a/src/features/step_definitions/web_steps.rb +++ b/src/features/step_definitions/web_steps.rb @@ -34,6 +34,10 @@ When /^(?:|I )follow "([^"]*)"$/ do |link| click_link(link) end
+When /^(?:|I )follow link with ID "([^"]*)"$/ do |link_id| + find("//a[@id='#{link_id}']").click +end + When /^(?:|I )follow "([^"]*)" within "([^"]*)"$/ do |link, parent| click_link_within(parent, link) end diff --git a/src/public/images/button-viewtoggle.png b/src/public/images/button-viewtoggle.png new file mode 100644 index 0000000000000000000000000000000000000000..d96bb9ed110e331d4d3e015a9d1617c0e4602714 GIT binary patch literal 3555 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 M8z<{#E5BR+17H%?dH?_b
literal 0 HcmV?d00001
diff --git a/src/public/javascripts/application.js b/src/public/javascripts/application.js index b4dfd6e..5c9458f 100644 --- a/src/public/javascripts/application.js +++ b/src/public/javascripts/application.js @@ -94,15 +94,21 @@ var Conductor = {
bind_pretty_toggle: function() { Conductor.nicelyHookAjaxClick($("#pretty_view"), function() { + var link_element = this; $.get($(this).attr("href"), $(this).serialize(), function(result) { $('#content .toggle-view').html(result); + $(link_element).addClass('active'); + $("#filter_view").removeClass('active'); }); }); Conductor.nicelyHookAjaxClick($("#filter_view"), function() { + var link_element = this; $.get($(this).attr("href"), $(this).serialize(), function(result) { $('#content .toggle-view').html(result); $('#details-selected').hide(); $('#details-view').tabs(); + $(link_element).addClass('active'); + $("#pretty_view").removeClass('active'); }); }); },
From: Kenneth Keiter kkeiter@redhat.com
--- src/app/stylesheets/layout.scss | 459 ++++++++++++-------- src/app/views/pools/_deployments.haml | 20 +- src/app/views/pools/_new.haml | 9 - src/app/views/pools/_pretty_list.haml | 7 +- src/app/views/pools/_scoreboard_index.haml | 8 +- src/app/views/pools/new.haml | 10 +- src/features/step_definitions/web_steps.rb | 2 +- src/public/images/deployment_small_alert_bg.png | Bin 0 -> 1146 bytes src/public/images/deployment_small_failure_bg.png | Bin 0 -> 937 bytes .../images/deployment_small_icon_instances.png | Bin 0 -> 332 bytes src/public/images/deployment_small_icon_uptime.png | Bin 0 -> 471 bytes src/public/images/deployment_small_pending_bg.png | Bin 0 -> 959 bytes 12 files changed, 315 insertions(+), 200 deletions(-) delete mode 100644 src/app/views/pools/_new.haml create mode 100644 src/public/images/deployment_small_alert_bg.png create mode 100644 src/public/images/deployment_small_failure_bg.png create mode 100644 src/public/images/deployment_small_icon_instances.png create mode 100644 src/public/images/deployment_small_icon_uptime.png create mode 100644 src/public/images/deployment_small_pending_bg.png
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index 44d37dc..18fff1c 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -1,6 +1,6 @@ /* ########################################################################### Generated SCSS for Aeolus UI [aeolus_ui] -Compiled on 2011-06-16 17:12:35 -0700 +Compiled on 2011-06-16 22:42:20 -0700 ########################################################################### */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1718,180 +1718,6 @@ section.content-section{ margin-top: 0px; }
- /* Deployment Array */ - - ul.deployable-cards{ - margin-top: 16px; - list-style: none; - } - - ul.deployable-cards > li{ - display: inline-block; - } - - ul.deployable-cards > li + li{ - margin-left: 26px; - } - - div.deployable{ - background-color: #e5e5e5; - -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; - border: 1px solid #ccc; - width: 154px; - height: 154px; - font-family: $font-family-primary; - - h3{ - font-size: 13px; - font-weight: 200; - color: #333; - padding: 6px; - display: block; - } - - hr{ - background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left; - display: block; - height: 2px; - } - - span.alert{ - display: block; - margin: 10px; - font-size: 13px; - font-weight: 200; - color: #fff; - } - - span.alert.warn{ - padding-left: 24px; - background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px; - } - - ul.statistics{ - list-style: none; - margin: 8px; - li{ - display: block; - - span.uptime{ - display: inline-block; - font-size: 14px; - height: 16px; - padding: 2px; - padding-left: 24px; - color: #fff; - background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px; - } - - span.instance{ - display: inline-block; - height: 16px; - padding: 2px; - padding-left: 24px; - font-size: 14px; - color: #fff; - background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px; - } - - } - li + li{ - margin-top: 6px; - } - } - - span.provider{ - display: block; - margin: 10px; - font-size: 13px; - font-weight: 200; - color: #fff; - padding-left: 34px; - background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px; - } - } - - div.deployable.alert{ - background-image: -moz-linear-gradient(top, rgba(174,4,4,1), rgba(136,0,0, 1)); - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(174,4,4,1)), to(rgba(136,0,0, 1))); - -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; - border: 1px solid #990000; - width: 154px; - height: 154px; - font-family: $font-family-primary; - - h3{ - font-size: 13px; - font-weight: 200; - color: #fff; - padding: 6px; - display: block; - background-color: #A10303; - } - - hr{ - background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left; - display: block; - height: 2px; - } - - span.alert{ - display: block; - margin: 10px; - font-size: 13px; - font-weight: 200; - color: #fff; - } - - span.alert.warn{ - padding-left: 24px; - background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px; - } - - ul.statistics{ - list-style: none; - margin: 8px; - li{ - display: block; - - span.uptime{ - display: inline-block; - font-size: 14px; - height: 16px; - padding: 2px; - padding-left: 24px; - color: #fff; - background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px; - } - - span.instance{ - display: inline-block; - height: 16px; - padding: 2px; - padding-left: 24px; - font-size: 14px; - color: #fff; - background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px; - } - - } - li + li{ - margin-top: 6px; - } - } - - span.provider{ - display: block; - margin: 10px; - font-size: 13px; - font-weight: 200; - color: #fff; - padding-left: 34px; - background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px; - } - - } - }
header.page-header + section.content-section{ @@ -2222,6 +2048,289 @@ header + div.pool.overview{ }
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Deployment Components -- v.0.0.1 [deployment] (deployment.scss) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +$font-family-base: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +$font-family-em: "Lucida Sans", "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +$font-family-primary: Helvetica, Arial, "Lucida Grande", sans-serif; + +/* Deployment Array */ + +ul.deployable-cards{ + margin-top: 16px; + list-style: none; + + li{ + display: inline-block; + } + + li + li{ + margin-left: 26px; + } + + div.deployable{ + background-color: #e5e5e5; + -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; + border: 1px solid #ccc; + width: 154px; + height: 154px; + font-family: $font-family-primary; + + h3{ + font-size: 13px; + font-weight: 200; + color: #333; + padding: 6px; + display: block; + } + + hr{ + background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left; + display: block; + height: 2px; + } + + span.alert{ + display: block; + margin: 10px; + font-size: 13px; + font-weight: 200; + color: #fff; + } + + span.alert.warn{ + padding-left: 24px; + background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px; + } + + ul.statistics{ + list-style: none; + margin: 8px; + li{ + display: block; + + span.uptime{ + display: inline-block; + font-size: 14px; + height: 16px; + padding: 2px; + padding-left: 24px; + color: #fff; + background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px; + } + + span.instance{ + display: inline-block; + height: 16px; + padding: 2px; + padding-left: 24px; + font-size: 14px; + color: #fff; + background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px; + } + + } + li + li{ + margin-top: 6px; + } + } + + span.provider{ + display: block; + margin: 10px; + font-size: 13px; + font-weight: 200; + color: #fff; + padding-left: 34px; + background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px; + } + } + + div.deployable.alert{ + background-image: -moz-linear-gradient(top, rgba(174,4,4,1), rgba(136,0,0, 1)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(174,4,4,1)), to(rgba(136,0,0, 1))); + -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; + border: 1px solid #990000; + width: 154px; + height: 154px; + font-family: $font-family-primary; + + h3{ + font-size: 13px; + font-weight: 200; + color: #fff; + padding: 6px; + display: block; + background-color: #A10303; + } + + hr{ + background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left; + display: block; + height: 2px; + } + + span.alert{ + display: block; + margin: 10px; + font-size: 13px; + font-weight: 200; + color: #fff; + } + + span.alert.warn{ + padding-left: 24px; + background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px; + } + + ul.statistics{ + list-style: none; + margin: 8px; + li{ + display: block; + + span.uptime{ + display: inline-block; + font-size: 14px; + height: 16px; + padding: 2px; + padding-left: 24px; + color: #fff; + background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px; + } + + span.instance{ + display: inline-block; + height: 16px; + padding: 2px; + padding-left: 24px; + font-size: 14px; + color: #fff; + background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px; + } + + } + li + li{ + margin-top: 6px; + } + } + + span.provider{ + display: block; + margin: 10px; + font-size: 13px; + font-weight: 200; + color: #fff; + padding-left: 34px; + background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px; + } + + } + +} + +/********************************************* Small Deployable Card Arrays */ + +$deployment-small-height: 84px; +$deployment-small-width: 174px; +$deployment-small-padding: 8px; + +ul.deployment-array.small{ + + margin-top: 10px; + list-style: none; + display: table; + + li.deployment{ + display: table-cell; + float: left; + border: 1px solid #ccc; + background-color: #efefef; + -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; + padding: $deployment-small-padding; + width: $deployment-small-width - ($deployment-small-padding * 2); + height: $deployment-small-height - ($deployment-small-padding * 2); + overflow: hidden; + + h3.name{ + font-family: $font-family-base; + font-weight: normal; + font-size: 13px; + margin-bottom: 14px; + } + + dl.statistics{ + ul{list-style: none;} + li{display: inline-block;} + li.left{text-align: left;} + li.right{text-align: right; float: right;} + dt{font-size: 9px; text-transform: uppercase; padding: 4px; color: #999; display: block; margin-bottom: 4px;} + dt.uptime{ + padding-left: 20px; + background: url('../../images/deployment_small_icon_uptime.png') no-repeat top left; + } + dt.count.instances{ + padding-right: 20px; + background: url('../../images/deployment_small_icon_instances.png') no-repeat top right; + } + dd{ + font-family: $font-family-primary; + font-size: 13px; + color: #666; + } + } + + } + + li.deployment + li.deployment{ + margin-left: 14px; + } + + li.deployment.pending, li.deployment.alert, li.deployment.failure{ + h3.name{margin: 0; margin-bottom: 8px; color: #fff;} + } + + /* pending */ + li.deployment.pending{ + background: #efefef url('../../images/deployment_small_pending_bg.png') no-repeat bottom right; + h3.name{color: #333;} + span.status{ + font-family: $font-family-primary; + font-size: 13px; + color: #333; + } + } + + /* alert */ + li.deployment.alert{ + background: url('../../images/deployment_small_alert_bg.png') no-repeat bottom right; + span.alert-type{display: block; font-size: 13px; color: #fff; font-weight: normal;} + span.occurred-at{ + font-family: $font-family-primary; + font-size: 11px; + color: #fff; + } + } + + /* failure */ + li.deployment.failure{ + background: url('../../images/deployment_small_failure_bg.png') no-repeat bottom right; + span.failure-type{display: block; font-size: 13px; color: #fff; font-weight: normal;} + span.occurred-at{ + font-family: $font-family-primary; + font-size: 11px; + color: #fff; + } + } + +} + +ul.deployment-array.small + ul.deployment-array.small{ + margin-top: 10px; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Page Footer -- v.0.0.1 [footer] (footer.scss) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
diff --git a/src/app/views/pools/_deployments.haml b/src/app/views/pools/_deployments.haml index df14c64..ea2ddb3 100644 --- a/src/app/views/pools/_deployments.haml +++ b/src/app/views/pools/_deployments.haml @@ -1,6 +1,14 @@ -%ul.deployments_list - - deployments.each do |deployment| - %li - =deployment.name - =count_uptime(deployment.created_at) - =deployment.instances.count if deployment.instances +- deployments.in_groups_of(5, false) do |group| + %ul.deployment-array.small + - group.each do |deployment| + %li.deployment + %h3.name + = link_to deployment.name, deployment_path(deployment) + %dl.statistics + %ul + %li.left + %dt.uptime Uptime + %dd= count_uptime(deployment.created_at || Time.now) + %li.right + %dt.instances.count Instances + %dd= deployment.instances.count || 0 \ No newline at end of file diff --git a/src/app/views/pools/_new.haml b/src/app/views/pools/_new.haml deleted file mode 100644 index d5c3a24..0000000 --- a/src/app/views/pools/_new.haml +++ /dev/null @@ -1,9 +0,0 @@ -= render :partial => 'layouts/admin_header' -= render :partial => 'section_header' - -%section.content-section.pools - %header - %h2 Create New Pool - - .content - = render :partial => 'form' diff --git a/src/app/views/pools/_pretty_list.haml b/src/app/views/pools/_pretty_list.haml index f7512db..dd6785b 100644 --- a/src/app/views/pools/_pretty_list.haml +++ b/src/app/views/pools/_pretty_list.haml @@ -4,7 +4,7 @@
.content - @pools.each do |pool| - %div.pool.overview{:id => ['pool', pool.id]} + %div.pool.overview{:id => ['pool', pool.id], :class => ('collapsed' unless pool.deployments.count > 0)} %header %h3.name %a{:href => pool_path(pool)}= pool.name @@ -20,10 +20,10 @@ %dd.count.instance.failure= pool.instances.select {|i| i.state == Instance::STATE_ERROR }.length %li %dt Quota Used - %dd.percentage.quota= pool.quota ? pool.quota.percentage_used.to_s + "%" : 'unlimited' + %dd.percentage.quota= pool.quota ? pool.quota.percentage_used.to_s + "%" : '∞' %a.control{:href => '#'} %span Expand/Collapse - %div.content.deployment-array + %div.content = render :partial => 'deployments', :locals => {:deployments => pool.deployments} %ul.content.actions %li @@ -35,7 +35,6 @@ $(document).ready(function() { $('div.pool').each(function(){ var this_pool = this; - $(this).addClass('collapsed'); $(this).find('header a.control').click(function(){ $(this_pool).toggleClass('collapsed'); return false; diff --git a/src/app/views/pools/_scoreboard_index.haml b/src/app/views/pools/_scoreboard_index.haml index 22aceb6..57578d9 100644 --- a/src/app/views/pools/_scoreboard_index.haml +++ b/src/app/views/pools/_scoreboard_index.haml @@ -17,14 +17,14 @@ %ul.subgroup %li %dt= t("alerts") - %dd.count.alert 3 + %dd.count.alert= @statistics[:instances_failed] %li %dt= t("updates") %dd.count.update 0 %li %dt= t("pools.index.quota_used") - %dd.percentage.quota 86% + %dd.percentage.quota 0% %dd.fraction.instance - %span.part 21 + %span.part 0 %span.divider.label.small.caps of - %span.total 25 + %span.total 0 diff --git a/src/app/views/pools/new.haml b/src/app/views/pools/new.haml index 949343a..d5c3a24 100644 --- a/src/app/views/pools/new.haml +++ b/src/app/views/pools/new.haml @@ -1 +1,9 @@ -= render :partial => 'new' \ No newline at end of file += render :partial => 'layouts/admin_header' += render :partial => 'section_header' + +%section.content-section.pools + %header + %h2 Create New Pool + + .content + = render :partial => 'form' diff --git a/src/features/step_definitions/web_steps.rb b/src/features/step_definitions/web_steps.rb index 3671f23..ee01547 100644 --- a/src/features/step_definitions/web_steps.rb +++ b/src/features/step_definitions/web_steps.rb @@ -35,7 +35,7 @@ When /^(?:|I )follow "([^"]*)"$/ do |link| end
When /^(?:|I )follow link with ID "([^"]*)"$/ do |link_id| - find("//a[@id='#{link_id}']").click + click_link(link_id) end
When /^(?:|I )follow "([^"]*)" within "([^"]*)"$/ do |link, parent| diff --git a/src/public/images/deployment_small_alert_bg.png b/src/public/images/deployment_small_alert_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..69dc6914deb0989a8ee4ab2caaa4c0308a97893a GIT binary patch literal 1146 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGgAGU?ZmZ`8QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`%Uj)5S5QV$Rz;-ubs2MA{za%QWwt z8nSBFyZ`sU_?O;Y7I^uNN9`_y6&eQ)mY)xKube74ML^81(zc@D$E@dS4C$%C`xz9{ zcsL#;I54m?Gg(Lo95~p(z{kc?V4%>@%*ZH1l+=!7<_8Oa>YEt&xR@+7I8Zq!QhPWG zI9VBG);NOgusF&jBf?S;AaKADC;${k=YXsZ)`7|XyrR$W!Z~l*A|26h_h&DO<+znP zbC*j)lR{<prYmpmx*u;|vUBFAO;?iJ6%%=zmYhB7*Y-FfZQ0ep$XTa)XPYSm&RkL% z8Ta4P`0VMR^9z5@2oO+NZLm7FZD-`_=DDUElcspSTY1&8b*7wjSWA<Fr)&4pgJ*my z58q#`;Nh3Itn&2M;>2aK&0Rok=@%dNE{(|w5#(xG@+58U`n>gLO5!&wiLiJ^ek+Jn znw&L%QJ{dz;uj0$*u9PSwiSHkvSxKO`nBS?<Fcx3Nj4Twji|U6pLMcgGM<QVU*ujD z-+x`;i~Ij;lJ^)`LY*JQ+NA8ZUbKBpWPiKBm!gsl&lNMOQx`wF<a1u}#ic$yuBH{T z|4zq$mN;}W?a16E_Z2gWpMDQd`&GJ7X^o@6*3`4Sox8dFuirfQdat#cqrh6}tMS!0 z{;ghH8u=={>=rjyQ^s1Uob>lu%RcXJ*5p`JviMo`x?OUovyJcWwN_oM&~d4%$$!_m z600d9EEi|a-nz<N{`jX`KK|~a3l%!fiF~!#5xDi6<%y%d(gG8I{#!kDUf<K+ne#$K zJA-vxmgd_2vN}3xRrh3VW80PknqrSOhO}3G$yuBA*U?d+H#^$NrdG^lmDZ=k2H7JH z+TNkuPiE-2Itn!UT&;h-uFYbaCWqQ~v+i|r>>@0aPlf1q?0!|vTjbzqu+sMlcOqBQ z$tSOt%e6nRvin?d@ndDOT-=}M+ib5TXD_?C`?!&(ytUpxpaB!TqrU#AnYrYAT2;VT z%|kI)FO=+k$z+~;KxG^A8^$v#xz%-fTum2suiU?toUz8yVAt)IvI)TgJy{Fiz1Nxh zSu1wW_N$8yf8NA)a7Ejy<FOp+_n%E&qA&YTZFz*mS+~3YX8Sh=>-40Z*vcO5J7G)j zC7b!n6(nNh!?&!LT%~Yl3uE){s~le?URW$skhqi9vfuDZ`psY)U6-U|7ANd@zw8lV z+3~=4Pd97K7jF?3<%)|2x4qlGD81aR!Qob5|CKxAf$t@L&->r*|7YFTB7C=HM*Tuy PF~H#I>gTe~DWM4fj1%P>
literal 0 HcmV?d00001
diff --git a/src/public/images/deployment_small_failure_bg.png b/src/public/images/deployment_small_failure_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8489e1d8472381fa59dba4bfbbc94838b97c1e GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGgAGU?ZmZ`8QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`)Gp>EaktG3V`_yFs_ZL|7lFW?8d2 zrB6EPdjCJ;uejE2;=Vyn1+`U;S2LGqY?oXpZ+yQz`GB$et_w+Xb6a-Fo6i<|5Gn3G zpJC0+1_wun1quoQ0s<Nw93m_%Tue-?jEzkMgg+c%)5s9Oj&d%!u(SasXE=h)-Eg$2 ziLDVQYH&Cx#?2+gf<UvE`ZN4H{jcIo*`joHo3hw_F+BN8%+5MXM{GQOO^w@q((<kS z$M2Ni-TZ#GW5n8(hcDjVHtlrd;~9<-OLrauai;xQ?P<cXy7*>P8F$X#^7AI0Y>A=k z#JJqo+kbn%T<xO5nq!w9zIYpT`szy?pt^#+lM254D!!<ola~t;zO0~=z4qaYOaZat zyHWSnSjcon`$n7)dHCa2X{AN&UQf3FKfdecY@BiTHs_(j`=#}@CbL!IC)=p~tb0-j z6uv6*&_eA$hx_}DuRj?S^k4nI)N#hyvo6NR7rr*y@=9L$`Za|!NvjG}P9{zYou46~ zW}a$M6})zx<BTi5**Dk!S$wC9EitILWpU~b$76D_%?^&uAGBsTCNR#P^O1qoGbrw` z^7{N}opbXPWyKabR*3Sv+`zzl=%#V=0VflV^n7t+4xU?SKb-bS?cB!p@J+1B&kIrS zcIh48|MyRA_RqX0x8!aeSiQmblXLdZNz3aG?)7nNSH7sQM@d|A|I(^F--HHWR7tjM z{%(2ldE@clG25rT7R=5TICoF+<lh6;`EKiSf%2dz>-Mbm`c(EPc}L{L&0mYJKfQcO z-LQ!*v8X(D`WCay$v&mB)fvp2cUbTB6P#2#shs)x$GRuCq*`v?dG^x$?^*8kyU+hn z;4y4ASiM_Ce!5*}{sPAtci+DJx^(uFrLv10BTnRAyRRa@*fHXQ|MKgmW+$B|#Xm}O o72CFLg3P2p)1F+v{Jow@PWAa8X?b}@V6I{CboFyt=akR{0H2kQV*mgE
literal 0 HcmV?d00001
diff --git a/src/public/images/deployment_small_icon_instances.png b/src/public/images/deployment_small_icon_instances.png new file mode 100644 index 0000000000000000000000000000000000000000..947d21cc4d5932a19d0bdf76b0515199416bb5d0 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DVAa<&kznEsNqQI0P;BtJR*x3 z7`TN%nDNrxx<5cc(Gu5)66d1S#FEVXJcW?V+*AfLeM577L&Gg1?CXFEWIzgn^V3So z6N^$A98>a>QWe}Xi&D$;i?WLqoP$jZw>~xls$1&m;uxYaaqc8TzC#8)uJaeaD{$Fm zVQijQDz?MZ(y5<Gor7Cbv2^O8=}JfA|DT+cd(x75LXZ`s_=5x6+(P#<ww!w7$Z-9W zq}FDK^n|hnEA^U$XWU=-bmgnPyu51}1(K)i3cDJ5?DY>-<J0r*vxbJ+?C0*{P|DuM zotG(|k#_vr=VewiZ~Ds~mpwbZ$J+46nuT{WcfQ@<uAKI5LH(Vz^B4>C7cc(9be31M UB$?U51L$A|Pgg&ebxsLQ0CCcFKL7v#
literal 0 HcmV?d00001
diff --git a/src/public/images/deployment_small_icon_uptime.png b/src/public/images/deployment_small_icon_uptime.png new file mode 100644 index 0000000000000000000000000000000000000000..423dd5708f7249bd0987775e59949f99af0f827d GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!3HFmxV|j}QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`$tW>Eak-(OWzDZ0#Wfo}>TIF`Z?5 z%cd(l#m~Wt@u5=eW!@VLVvctD1k6~_<6zDq-NO0epwa#-Dz)N~ljg^NnRtNZ%$r%~ zR!Lp@S+%!SbJ+=p**C3wCY{aU`!cisaM|v)j81M@4W=IqK0P~Htbaf#gIj%SS{aL7 z>__Gqm1~W^SD)9voPF?Qbpqp-RZ;#|Gt#Wp=es`9oDs=d!^j@Gc9YfqM)OcxzDJ%f z_A*HI`)j3ne1FAMQF_&GcSxETgW$_X<_#W;t$H;~X39Qd`LBOcb91>y$LG~<Mb-~q zn7OmY99r<VewS72L6KWcJ4_j>jkTA1_~|t6-Tm4r)H=a6=A_>J$37cBS8EHtJfslG zEbaeK;Pu<i#j}{tANgmZw5j>G{NqlGSzHw|OV0h<DJ}Ri=z}=Fe1QR*$44Vz7&Caf L`njxgN@xNARTQ^Q
literal 0 HcmV?d00001
diff --git a/src/public/images/deployment_small_pending_bg.png b/src/public/images/deployment_small_pending_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6150ba0715aef08901b31f4b8548dc25bc9ebc GIT binary patch literal 959 zcmV;w13>(VP)<h;3K|Lk000e1NJLTq001-q001=z1^@s64kXA<00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4ZXi@?ZDjy9FEKYS zF)_3h2d)4B0338hSaefwW^{L9a%BKPWN%_+AVz6&Wp{6KYjYq&Q#En5<2C>Q0~kp} zK~!jg-I~jB;y@6FKdXFSXJC$VTO7f9BfuL0at4Ip5XfLf1jZ2<XMk^ggbZ*7dzi+s zvXFWnAnpEDDpyJK=#L(C&$N8Sg(M<3z&$Y5zc;}5j&AS34p;$eVC9_KwRN~kw6j$r zG6qUKK$r1Wz2gBZ=iIvfFguWXqSPxF#3{W46&`K}8G#gJrq{Pz;~Mn=%z=3pAQ5?@ zACS5}l7K|y9`Ewo9M<Ge5!+Ej=D;fhf`N#4NJK`!lJmdtQ3?XmFubDwcjctaKxcq? z12%erPoUrvF2G2yA0dO9fHJ{s@k@2-oLhx-)Zp`=SL-|536ue50nD4SdW_Vb88B^n z-U_4vU`-s%3ovueZ6f-1N^P41ljHkcKx@LI*%l~6msPClx$tBj(mWFivjE1If&tLE z#yWSihm`s?aO_9tT$Ny3vP7i(0;HSFHDNn|-eLA?T5>b~Q5dK#IrYv4dsOQkMnoO} zoO4U~>Y*p>FpB}eRKPRvtP%O(p+N6!@zJdHe1A?UOg*{&JoZqD-8<y~VE}f=Kr`cb zFPF?Sb+y1$&bjrqHX37(Y*z67xJw=Tg+$MGz&yesD3r!A7lC`T6^9>cg5P^Z$pQlh zpa<i)p$668$*CF^Br6O+p}SVga@$560hSH-f}lcRz<X$%U|g%5bHDIA;kryvp)hb} zAOM}XYIxKN6$1kv=-z19%F^yc-yo=181O(hZ4Fd!hBmFTLZ!d}Tw^=LZ47NX<(zvI z5%`)Wrg|R|V8C8E-5A?-s?Ad*!azbPI7KZ`bp^qI9Vq)o)BqI>13h_YuNJ5%7_b9b zB4LyoprT=*XAkYA0C&J$3JmzLZP6%Y5{q(`iVOUQ*Dj56Om+zs*dkcaCyhQ;;16M) z(rW79Rp6_n7FiF0z3Tr1(i*|m(Dqh~9)s3C4_Oay=88{W+5=U__EW7v3|0kvCN;~l zgM?DlC3L*?u^KuVatJ>Ls__5SWKpHX{lV!INK3SpvEMBNU3yL5hpb+jib$E&nhg32 hNWB#D%l{r4)E^ZALx+KpJIw$9002ovPDHLkV1nfyo;Uyi
literal 0 HcmV?d00001
ACK and pushed with one minor change: this patch drops pool/_new.haml (moves content to pool/new.haml), I removed it from the patch because _new partial is required for rendering js reply.
Jan
On 06/17/2011 10:19 AM, kenkeiter@redhat.com wrote:
From: Kenneth Keiterkkeiter@redhat.com
src/app/stylesheets/layout.scss | 459 ++++++++++++-------- src/app/views/pools/_deployments.haml | 20 +- src/app/views/pools/_new.haml | 9 - src/app/views/pools/_pretty_list.haml | 7 +- src/app/views/pools/_scoreboard_index.haml | 8 +- src/app/views/pools/new.haml | 10 +- src/features/step_definitions/web_steps.rb | 2 +- src/public/images/deployment_small_alert_bg.png | Bin 0 -> 1146 bytes src/public/images/deployment_small_failure_bg.png | Bin 0 -> 937 bytes .../images/deployment_small_icon_instances.png | Bin 0 -> 332 bytes src/public/images/deployment_small_icon_uptime.png | Bin 0 -> 471 bytes src/public/images/deployment_small_pending_bg.png | Bin 0 -> 959 bytes 12 files changed, 315 insertions(+), 200 deletions(-) delete mode 100644 src/app/views/pools/_new.haml create mode 100644 src/public/images/deployment_small_alert_bg.png create mode 100644 src/public/images/deployment_small_failure_bg.png create mode 100644 src/public/images/deployment_small_icon_instances.png create mode 100644 src/public/images/deployment_small_icon_uptime.png create mode 100644 src/public/images/deployment_small_pending_bg.png
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index 44d37dc..18fff1c 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -1,6 +1,6 @@ /* ########################################################################### Generated SCSS for Aeolus UI [aeolus_ui] -Compiled on 2011-06-16 17:12:35 -0700 +Compiled on 2011-06-16 22:42:20 -0700 ########################################################################### */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1718,180 +1718,6 @@ section.content-section{ margin-top: 0px; }
/* Deployment Array */
ul.deployable-cards{
margin-top: 16px;
list-style: none;
}
ul.deployable-cards> li{
display: inline-block;
}
ul.deployable-cards> li + li{
margin-left: 26px;
}
div.deployable{
background-color: #e5e5e5;
-webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px;
border: 1px solid #ccc;
width: 154px;
height: 154px;
font-family: $font-family-primary;
h3{
font-size: 13px;
font-weight: 200;
color: #333;
padding: 6px;
display: block;
}
hr{
background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left;
display: block;
height: 2px;
}
span.alert{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
}
span.alert.warn{
padding-left: 24px;
background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px;
}
ul.statistics{
list-style: none;
margin: 8px;
li{
display: block;
span.uptime{
display: inline-block;
font-size: 14px;
height: 16px;
padding: 2px;
padding-left: 24px;
color: #fff;
background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px;
}
span.instance{
display: inline-block;
height: 16px;
padding: 2px;
padding-left: 24px;
font-size: 14px;
color: #fff;
background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px;
}
}
li + li{
margin-top: 6px;
}
}
span.provider{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
padding-left: 34px;
background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px;
}
}
div.deployable.alert{
background-image: -moz-linear-gradient(top, rgba(174,4,4,1), rgba(136,0,0, 1));
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(174,4,4,1)), to(rgba(136,0,0, 1)));
-webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px;
border: 1px solid #990000;
width: 154px;
height: 154px;
font-family: $font-family-primary;
h3{
font-size: 13px;
font-weight: 200;
color: #fff;
padding: 6px;
display: block;
background-color: #A10303;
}
hr{
background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left;
display: block;
height: 2px;
}
span.alert{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
}
span.alert.warn{
padding-left: 24px;
background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px;
}
ul.statistics{
list-style: none;
margin: 8px;
li{
display: block;
span.uptime{
display: inline-block;
font-size: 14px;
height: 16px;
padding: 2px;
padding-left: 24px;
color: #fff;
background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px;
}
span.instance{
display: inline-block;
height: 16px;
padding: 2px;
padding-left: 24px;
font-size: 14px;
color: #fff;
background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px;
}
}
li + li{
margin-top: 6px;
}
}
span.provider{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
padding-left: 34px;
background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px;
}
}
}
header.page-header + section.content-section{
@@ -2222,6 +2048,289 @@ header + div.pool.overview{ }
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Deployment Components -- v.0.0.1 [deployment] (deployment.scss) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+$font-family-base: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +$font-family-em: "Lucida Sans", "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +$font-family-primary: Helvetica, Arial, "Lucida Grande", sans-serif;
+/* Deployment Array */
+ul.deployable-cards{
- margin-top: 16px;
- list-style: none;
- li{
- display: inline-block;
- }
- li + li{
- margin-left: 26px;
- }
- div.deployable{
- background-color: #e5e5e5;
- -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px;
- border: 1px solid #ccc;
- width: 154px;
- height: 154px;
- font-family: $font-family-primary;
- h3{
font-size: 13px;
font-weight: 200;
color: #333;
padding: 6px;
display: block;
- }
- hr{
background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left;
display: block;
height: 2px;
- }
- span.alert{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
- }
- span.alert.warn{
padding-left: 24px;
background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px;
- }
- ul.statistics{
list-style: none;
margin: 8px;
li{
display: block;
span.uptime{
display: inline-block;
font-size: 14px;
height: 16px;
padding: 2px;
padding-left: 24px;
color: #fff;
background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px;
}
span.instance{
display: inline-block;
height: 16px;
padding: 2px;
padding-left: 24px;
font-size: 14px;
color: #fff;
background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px;
}
}
li + li{
margin-top: 6px;
}
- }
- span.provider{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
padding-left: 34px;
background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px;
- }
- }
- div.deployable.alert{
- background-image: -moz-linear-gradient(top, rgba(174,4,4,1), rgba(136,0,0, 1));
- background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(174,4,4,1)), to(rgba(136,0,0, 1)));
- -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px;
- border: 1px solid #990000;
- width: 154px;
- height: 154px;
- font-family: $font-family-primary;
- h3{
font-size: 13px;
font-weight: 200;
color: #fff;
padding: 6px;
display: block;
background-color: #A10303;
- }
- hr{
background-image: url('../../images/deploy_separator_dark.png') repeat-x bottom left;
display: block;
height: 2px;
- }
- span.alert{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
- }
- span.alert.warn{
padding-left: 24px;
background: transparent url('../../images/alert_icon_warn_white.png') no-repeat 6px 0px;
- }
- ul.statistics{
list-style: none;
margin: 8px;
li{
display: block;
span.uptime{
display: inline-block;
font-size: 14px;
height: 16px;
padding: 2px;
padding-left: 24px;
color: #fff;
background: transparent url('../../images/deploy_icon_uptime.png') no-repeat 6px 0px;
}
span.instance{
display: inline-block;
height: 16px;
padding: 2px;
padding-left: 24px;
font-size: 14px;
color: #fff;
background: transparent url('../../images/deploy_icon_instance.png') no-repeat 6px 0px;
}
}
li + li{
margin-top: 6px;
}
- }
- span.provider{
display: block;
margin: 10px;
font-size: 13px;
font-weight: 200;
color: #fff;
padding-left: 34px;
background: transparent url('../../images/deploy_icon_provider.png') no-repeat 6px 0px;
- }
- }
+}
+/********************************************* Small Deployable Card Arrays */
+$deployment-small-height: 84px; +$deployment-small-width: 174px; +$deployment-small-padding: 8px;
+ul.deployment-array.small{
- margin-top: 10px;
- list-style: none;
- display: table;
- li.deployment{
- display: table-cell;
- float: left;
- border: 1px solid #ccc;
- background-color: #efefef;
- -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;
- padding: $deployment-small-padding;
- width: $deployment-small-width - ($deployment-small-padding * 2);
- height: $deployment-small-height - ($deployment-small-padding * 2);
- overflow: hidden;
- h3.name{
font-family: $font-family-base;
font-weight: normal;
font-size: 13px;
margin-bottom: 14px;
- }
- dl.statistics{
ul{list-style: none;}
li{display: inline-block;}
li.left{text-align: left;}
li.right{text-align: right; float: right;}
dt{font-size: 9px; text-transform: uppercase; padding: 4px; color: #999; display: block; margin-bottom: 4px;}
dt.uptime{
padding-left: 20px;
background: url('../../images/deployment_small_icon_uptime.png') no-repeat top left;
}
dt.count.instances{
padding-right: 20px;
background: url('../../images/deployment_small_icon_instances.png') no-repeat top right;
}
dd{
font-family: $font-family-primary;
font-size: 13px;
color: #666;
}
- }
- }
- li.deployment + li.deployment{
- margin-left: 14px;
- }
- li.deployment.pending, li.deployment.alert, li.deployment.failure{
- h3.name{margin: 0; margin-bottom: 8px; color: #fff;}
- }
- /* pending */
- li.deployment.pending{
- background: #efefef url('../../images/deployment_small_pending_bg.png') no-repeat bottom right;
- h3.name{color: #333;}
- span.status{
font-family: $font-family-primary;
font-size: 13px;
color: #333;
- }
- }
- /* alert */
- li.deployment.alert{
- background: url('../../images/deployment_small_alert_bg.png') no-repeat bottom right;
- span.alert-type{display: block; font-size: 13px; color: #fff; font-weight: normal;}
- span.occurred-at{
font-family: $font-family-primary;
font-size: 11px;
color: #fff;
- }
- }
- /* failure */
- li.deployment.failure{
- background: url('../../images/deployment_small_failure_bg.png') no-repeat bottom right;
- span.failure-type{display: block; font-size: 13px; color: #fff; font-weight: normal;}
- span.occurred-at{
font-family: $font-family-primary;
font-size: 11px;
color: #fff;
- }
- }
+}
+ul.deployment-array.small + ul.deployment-array.small{
- margin-top: 10px;
+}
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Page Footer -- v.0.0.1 [footer] (footer.scss)
diff --git a/src/app/views/pools/_deployments.haml b/src/app/views/pools/_deployments.haml index df14c64..ea2ddb3 100644 --- a/src/app/views/pools/_deployments.haml +++ b/src/app/views/pools/_deployments.haml @@ -1,6 +1,14 @@ -%ul.deployments_list - - deployments.each do |deployment| - %li - =deployment.name - =count_uptime(deployment.created_at) - =deployment.instances.count if deployment.instances +- deployments.in_groups_of(5, false) do |group| + %ul.deployment-array.small + - group.each do |deployment| + %li.deployment + %h3.name + = link_to deployment.name, deployment_path(deployment) + %dl.statistics + %ul + %li.left + %dt.uptime Uptime + %dd= count_uptime(deployment.created_at || Time.now) + %li.right + %dt.instances.count Instances + %dd= deployment.instances.count || 0 \ No newline at end of file diff --git a/src/app/views/pools/_new.haml b/src/app/views/pools/_new.haml deleted file mode 100644 index d5c3a24..0000000 --- a/src/app/views/pools/_new.haml +++ /dev/null @@ -1,9 +0,0 @@ -= render :partial => 'layouts/admin_header' -= render :partial => 'section_header' - -%section.content-section.pools - %header - %h2 Create New Pool - - .content - = render :partial => 'form' diff --git a/src/app/views/pools/_pretty_list.haml b/src/app/views/pools/_pretty_list.haml index f7512db..dd6785b 100644 --- a/src/app/views/pools/_pretty_list.haml +++ b/src/app/views/pools/_pretty_list.haml @@ -4,7 +4,7 @@ .content - @pools.each do |pool| - %div.pool.overview{:id => ['pool', pool.id]} + %div.pool.overview{:id => ['pool', pool.id], :class => ('collapsed' unless pool.deployments.count> 0)} %header %h3.name %a{:href => pool_path(pool)}= pool.name @@ -20,10 +20,10 @@ %dd.count.instance.failure= pool.instances.select {|i| i.state == Instance::STATE_ERROR }.length %li %dt Quota Used - %dd.percentage.quota= pool.quota ? pool.quota.percentage_used.to_s + "%" : 'unlimited' + %dd.percentage.quota= pool.quota ? pool.quota.percentage_used.to_s + "%" : '∞' %a.control{:href => '#'} %span Expand/Collapse - %div.content.deployment-array + %div.content = render :partial => 'deployments', :locals => {:deployments => pool.deployments} %ul.content.actions %li @@ -35,7 +35,6 @@ $(document).ready(function() { $('div.pool').each(function(){ var this_pool = this; - $(this).addClass('collapsed'); $(this).find('header a.control').click(function(){ $(this_pool).toggleClass('collapsed'); return false; diff --git a/src/app/views/pools/_scoreboard_index.haml b/src/app/views/pools/_scoreboard_index.haml index 22aceb6..57578d9 100644 --- a/src/app/views/pools/_scoreboard_index.haml +++ b/src/app/views/pools/_scoreboard_index.haml @@ -17,14 +17,14 @@ %ul.subgroup %li %dt= t("alerts") - %dd.count.alert 3 + %dd.count.alert= @statistics[:instances_failed] %li %dt= t("updates") %dd.count.update 0 %li %dt= t("pools.index.quota_used") - %dd.percentage.quota 86% + %dd.percentage.quota 0% %dd.fraction.instance - %span.part 21 + %span.part 0 %span.divider.label.small.caps of - %span.total 25 + %span.total 0 diff --git a/src/app/views/pools/new.haml b/src/app/views/pools/new.haml index 949343a..d5c3a24 100644 --- a/src/app/views/pools/new.haml +++ b/src/app/views/pools/new.haml @@ -1 +1,9 @@ -= render :partial => 'new' \ No newline at end of file += render :partial => 'layouts/admin_header' += render :partial => 'section_header' + +%section.content-section.pools + %header + %h2 Create New Pool + + .content + = render :partial => 'form' diff --git a/src/features/step_definitions/web_steps.rb b/src/features/step_definitions/web_steps.rb index 3671f23..ee01547 100644 --- a/src/features/step_definitions/web_steps.rb +++ b/src/features/step_definitions/web_steps.rb @@ -35,7 +35,7 @@ When /^(?:|I )follow "([^"]*)"$/ do |link| end When /^(?:|I )follow link with ID "([^"]*)"$/ do |link_id| - find("//a[@id='#{link_id}']").click + click_link(link_id) end When /^(?:|I )follow "([^"]*)" within "([^"]*)"$/ do |link, parent| diff --git a/src/public/images/deployment_small_alert_bg.png b/src/public/images/deployment_small_alert_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..69dc6914deb0989a8ee4ab2caaa4c0308a97893a GIT binary patch literal 1146 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGgAGU?ZmZ`8QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`%Uj)5S5QV$Rz;-ubs2MA{za%QWwt z8nSBFyZ`sU_?O;Y7I^uNN9`_y6&eQ)mY)xKube74ML^81(zc@D$E@dS4C$%C`xz9{ zcsL#;I54m?Gg(Lo95~p(z{kc?V4%>@%*ZH1l+=!7<_8Oa>YEt&xR@+7I8Zq!QhPWG zI9VBG);NOgusF&jBf?S;AaKADC;${k=YXsZ)`7|XyrR$W!Z~l*A|26h_h&DO<+znP zbC*j)lR{<prYmpmx*u;|vUBFAO;?iJ6%%=zmYhB7*Y-FfZQ0ep$XTa)XPYSm&RkL% z8Ta4P`0VMR^9z5@2oO+NZLm7FZD-`_=DDUElcspSTY1&8b*7wjSWA<Fr)&4pgJ*my z58q#`;Nh3Itn&2M;>2aK&0Rok=@%dNE{(|w5#(xG@+58U`n>gLO5!&wiLiJ^ek+Jn znw&L%QJ{dz;uj0$*u9PSwiSHkvSxKO`nBS?<Fcx3Nj4Twji|U6pLMcgGM<QVU*ujD z-+x`;i~Ij;lJ^)`LY*JQ+NA8ZUbKBpWPiKBm!gsl&lNMOQx`wF<a1u}#ic$yuBH{T z|4zq$mN;}W?a16E_Z2gWpMDQd`&GJ7X^o@6*3`4Sox8dFuirfQdat#cqrh6}tMS!0 z{;ghH8u=={>=rjyQ^s1Uob>lu%RcXJ*5p`JviMo`x?OUovyJcWwN_oM&~d4%$$!_m z600d9EEi|a-nz<N{`jX`KK|~a3l%!fiF~!#5xDi6<%y%d(gG8I{#!kDUf<K+ne#$K zJA-vxmgd_2vN}3xRrh3VW80PknqrSOhO}3G$yuBA*U?d+H#^$NrdG^lmDZ=k2H7JH z+TNkuPiE-2Itn!UT&;h-uFYbaCWqQ~v+i|r>>@0aPlf1q?0!|vTjbzqu+sMlcOqBQ z$tSOt%e6nRvin?d@ndDOT-=}M+ib5TXD_?C`?!&(ytUpxpaB!TqrU#AnYrYAT2;VT z%|kI)FO=+k$z+~;KxG^A8^$v#xz%-fTum2suiU?toUz8yVAt)IvI)TgJy{Fiz1Nxh zSu1wW_N$8yf8NA)a7Ejy<FOp+_n%E&qA&YTZFz*mS+~3YX8Sh=>-40Z*vcO5J7G)j zC7b!n6(nNh!?&!LT%~Yl3uE){s~le?URW$skhqi9vfuDZ`psY)U6-U|7ANd@zw8lV z+3~=4Pd97K7jF?3<%)|2x4qlGD81aR!Qob5|CKxAf$t@L&->r*|7YFTB7C=HM*Tuy PF~H#I>gTe~DWM4fj1%P> literal 0 HcmV?d00001 diff --git a/src/public/images/deployment_small_failure_bg.png b/src/public/images/deployment_small_failure_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8489e1d8472381fa59dba4bfbbc94838b97c1e GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGgAGU?ZmZ`8QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`)Gp>EaktG3V`_yFs_ZL|7lFW?8d2 zrB6EPdjCJ;uejE2;=Vyn1+`U;S2LGqY?oXpZ+yQz`GB$et_w+Xb6a-Fo6i<|5Gn3G zpJC0+1_wun1quoQ0s<Nw93m_%Tue-?jEzkMgg+c%)5s9Oj&d%!u(SasXE=h)-Eg$2 ziLDVQYH&Cx#?2+gf<UvE`ZN4H{jcIo*`joHo3hw_F+BN8%+5MXM{GQOO^w@q((<kS z$M2Ni-TZ#GW5n8(hcDjVHtlrd;~9<-OLrauai;xQ?P<cXy7*>P8F$X#^7AI0Y>A=k z#JJqo+kbn%T<xO5nq!w9zIYpT`szy?pt^#+lM254D!!<ola~t;zO0~=z4qaYOaZat zyHWSnSjcon`$n7)dHCa2X{AN&UQf3FKfdecY@BiTHs_(j`=#}@CbL!IC)=p~tb0-j z6uv6*&_eA$hx_}DuRj?S^k4nI)N#hyvo6NR7rr*y@=9L$`Za|!NvjG}P9{zYou46~ zW}a$M6})zx<BTi5**Dk!S$wC9EitILWpU~b$76D_%?^&uAGBsTCNR#P^O1qoGbrw` z^7{N}opbXPWyKabR*3Sv+`zzl=%#V=0VflV^n7t+4xU?SKb-bS?cB!p@J+1B&kIrS zcIh48|MyRA_RqX0x8!aeSiQmblXLdZNz3aG?)7nNSH7sQM@d|A|I(^F--HHWR7tjM z{%(2ldE@clG25rT7R=5TICoF+<lh6;`EKiSf%2dz>-Mbm`c(EPc}L{L&0mYJKfQcO z-LQ!*v8X(D`WCay$v&mB)fvp2cUbTB6P#2#shs)x$GRuCq*`v?dG^x$?^*8kyU+hn z;4y4ASiM_Ce!5*}{sPAtci+DJx^(uFrLv10BTnRAyRRa@*fHXQ|MKgmW+$B|#Xm}O o72CFLg3P2p)1F+v{Jow@PWAa8X?b}@V6I{CboFyt=akR{0H2kQV*mgE literal 0 HcmV?d00001 diff --git a/src/public/images/deployment_small_icon_instances.png b/src/public/images/deployment_small_icon_instances.png new file mode 100644 index 0000000000000000000000000000000000000000..947d21cc4d5932a19d0bdf76b0515199416bb5d0 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DVAa<&kznEsNqQI0P;BtJR*x3 z7`TN%nDNrxx<5cc(Gu5)66d1S#FEVXJcW?V+*AfLeM577L&Gg1?CXFEWIzgn^V3So z6N^$A98>a>QWe}Xi&D$;i?WLqoP$jZw>~xls$1&m;uxYaaqc8TzC#8)uJaeaD{$Fm zVQijQDz?MZ(y5<Gor7Cbv2^O8=}JfA|DT+cd(x75LXZ`s_=5x6+(P#<ww!w7$Z-9W zq}FDK^n|hnEA^U$XWU=-bmgnPyu51}1(K)i3cDJ5?DY>-<J0r*vxbJ+?C0*{P|DuM zotG(|k#_vr=VewiZ~Ds~mpwbZ$J+46nuT{WcfQ@<uAKI5LH(Vz^B4>C7cc(9be31M UB$?U51L$A|Pgg&ebxsLQ0CCcFKL7v# literal 0 HcmV?d00001 diff --git a/src/public/images/deployment_small_icon_uptime.png b/src/public/images/deployment_small_icon_uptime.png new file mode 100644 index 0000000000000000000000000000000000000000..423dd5708f7249bd0987775e59949f99af0f827d GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!3HFmxV|j}QY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@q9v{oCC){ui6xo&c?uz!xv30h`iAEEhK5^2*w+CS$bb|C=ckpF zCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdUVz`$tW>Eak-(OWzDZ0#Wfo}>TIF`Z?5 z%cd(l#m~Wt@u5=eW!@VLVvctD1k6~_<6zDq-NO0epwa#-Dz)N~ljg^NnRtNZ%$r%~ zR!Lp@S+%!SbJ+=p**C3wCY{aU`!cisaM|v)j81M@4W=IqK0P~Htbaf#gIj%SS{aL7 z>__Gqm1~W^SD)9voPF?Qbpqp-RZ;#|Gt#Wp=es`9oDs=d!^j@Gc9YfqM)OcxzDJ%f z_A*HI`)j3ne1FAMQF_&GcSxETgW$_X<_#W;t$H;~X39Qd`LBOcb91>y$LG~<Mb-~q zn7OmY99r<VewS72L6KWcJ4_j>jkTA1_~|t6-Tm4r)H=a6=A_>J$37cBS8EHtJfslG zEbaeK;Pu<i#j}{tANgmZw5j>G{NqlGSzHw|OV0h<DJ}Ri=z}=Fe1QR*$44Vz7&Caf L`njxgN@xNARTQ^Q literal 0 HcmV?d00001 diff --git a/src/public/images/deployment_small_pending_bg.png b/src/public/images/deployment_small_pending_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6150ba0715aef08901b31f4b8548dc25bc9ebc GIT binary patch literal 959 zcmV;w13>(VP)<h;3K|Lk000e1NJLTq001-q001=z1^@s64kXA<00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4ZXi@?ZDjy9FEKYS zF)_3h2d)4B0338hSaefwW^{L9a%BKPWN%_+AVz6&Wp{6KYjYq&Q#En5<2C>Q0~kp} zK~!jg-I~jB;y@6FKdXFSXJC$VTO7f9BfuL0at4Ip5XfLf1jZ2<XMk^ggbZ*7dzi+s zvXFWnAnpEDDpyJK=#L(C&$N8Sg(M<3z&$Y5zc;}5j&AS34p;$eVC9_KwRN~kw6j$r zG6qUKK$r1Wz2gBZ=iIvfFguWXqSPxF#3{W46&`K}8G#gJrq{Pz;~Mn=%z=3pAQ5?@ zACS5}l7K|y9`Ewo9M<Ge5!+Ej=D;fhf`N#4NJK`!lJmdtQ3?XmFubDwcjctaKxcq? z12%erPoUrvF2G2yA0dO9fHJ{s@k@2-oLhx-)Zp`=SL-|536ue50nD4SdW_Vb88B^n z-U_4vU`-s%3ovueZ6f-1N^P41ljHkcKx@LI*%l~6msPClx$tBj(mWFivjE1If&tLE z#yWSihm`s?aO_9tT$Ny3vP7i(0;HSFHDNn|-eLA?T5>b~Q5dK#IrYv4dsOQkMnoO} zoO4U~>Y*p>FpB}eRKPRvtP%O(p+N6!@zJdHe1A?UOg*{&JoZqD-8<y~VE}f=Kr`cb zFPF?Sb+y1$&bjrqHX37(Y*z67xJw=Tg+$MGz&yesD3r!A7lC`T6^9>cg5P^Z$pQlh zpa<i)p$668$*CF^Br6O+p}SVga@$560hSH-f}lcRz<X$%U|g%5bHDIA;kryvp)hb} zAOM}XYIxKN6$1kv=-z19%F^yc-yo=181O(hZ4Fd!hBmFTLZ!d}Tw^=LZ47NX<(zvI z5%`)Wrg|R|V8C8E-5A?-s?Ad*!azbPI7KZ`bp^qI9Vq)o)BqI>13h_YuNJ5%7_b9b zB4LyoprT=*XAkYA0C&J$3JmzLZP6%Y5{q(`iVOUQ*Dj56Om+zs*dkcaCyhQ;;16M) z(rW79Rp6_n7FiF0z3Tr1(i*|m(Dqh~9)s3C4_Oay=88{W+5=U__EW7v3|0kvCN;~l zgM?DlC3L*?u^KuVatJ>Ls__5SWKpHX{lV!INK3SpvEMBNU3yL5hpb+jib$E&nhg32 hNWB#D%l{r4)E^ZALx+KpJIw$9002ovPDHLkV1nfyo;Uyi literal 0 HcmV?d00001
aeolus-devel@lists.fedorahosted.org