From b1a3ee89279b87451c96e899327979cbf0d46b2d Mon Sep 17 00:00:00 2001 From: Kyle Knight Date: Thu, 19 Jan 2017 17:12:37 -0600 Subject: [PATCH] Add "No Hosts" message for All Hosts label (#1045) --- assets/fonts/kolidecons/kolidecons.woff | Bin 10664 -> 10776 bytes assets/fonts/kolidecons/kolidecons.woff2 | Bin 8460 -> 8548 bytes assets/images/laptop-plus.svg | 1 + assets/images/swoop-arrow.svg | 16 ++ .../hosts/LonelyHost/LonelyHost.jsx | 34 +++ .../components/hosts/LonelyHost/_styles.scss | 74 +++++++ frontend/components/hosts/LonelyHost/index.js | 1 + .../hosts/ManageHostsPage/ManageHostsPage.jsx | 7 +- .../ManageHostsPage/ManageHostsPage.tests.jsx | 12 ++ frontend/styles/global/_icons.scss | 196 +++++++++--------- 10 files changed, 244 insertions(+), 97 deletions(-) create mode 100644 assets/images/laptop-plus.svg create mode 100644 assets/images/swoop-arrow.svg create mode 100644 frontend/components/hosts/LonelyHost/LonelyHost.jsx create mode 100644 frontend/components/hosts/LonelyHost/_styles.scss create mode 100644 frontend/components/hosts/LonelyHost/index.js diff --git a/assets/fonts/kolidecons/kolidecons.woff b/assets/fonts/kolidecons/kolidecons.woff index 9b256430a42e5a56452e4ddd5d67563b756eb553..c1e936d2a51479ab6ccf14b8a1ee48aabd06976b 100755 GIT binary patch delta 10157 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 delta 10089 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 Val?+vrnfYNi2)jJ2+{z+{{W~W38Vl3 diff --git a/assets/fonts/kolidecons/kolidecons.woff2 b/assets/fonts/kolidecons/kolidecons.woff2 index 0f7b2bdc61f7eb0b2123043929facde0ba6a48ce..68e8675260602f55adb4e83ff072751335330ef9 100755 GIT binary patch literal 8548 zcmV-qA)DTJPew8T0RR9103l=m4FCWD06)wC03i$j0RR9100000000000000000000 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 literal 8460 zcmV+nA@kmMPew8T0RR9103i$j4FCWD06#1M03fsg0RR9100000000000000000000 z0000#Mn+Uk90p(jgF*-d5eN$DbkZsdfgk_@HUcCAf+hqY1%o^Xh7cRyF|!dBY#aaq zx0eu6CE8sS6^nfKUnS5(r1pd-#AJ~u4Z7R5Eg((X*%lJs03r#-5UFK&)FddVrE*^%u0xng+!6D8Y>C;#E4lUloPbl>QSWwbuF!qbfODg%j(*?bdMV= z9h19kzt)?)J(x+}!hLoHcCs@I1*E-a5}VkA68o|;=xbyLb6QEwp|s0}!Y&t5K3X7_ ztO3e4%jl0i^Rs4tlHKw_z)qUxsDK#;+d5!)I!$KgEWaRMQB!9Br?YG|+H;7oXj0TE z+EiO~f4*dAzUJm4Yf;+U_q5)C;YdNRkJz~YVTBdzSU!~Y?%lJ44sw-_p}aC&r)pC+ z+?44C7^pyzCS#@-2oxoCMB-ZU`iZ<6`tY5G*lbQpn(ooTP}q4uzwJV78?xBg_0n}xN*c*9pyX0@ z^XVm$Ae%GY=awm)7;A;K{x`C-UE3{t&R(z=?Y_Ok-eZsL4SUX>cQ_DWHuDbOWsmG5 z>@)2{Kg)aQtK;ozBaJXHR2=g9zc^X^TKrP{Sp0i_oF9Z-8yYFOK17OBq~VW@BIriq zT}jo)HCQ|z~UtNFIPU8#0hraf=xg|X}f*$ndq$M$^}znbf^s#(rj z9vi11$Onf?F&sw0?CpP znen<`8Z|5*YA<6|>^hZ^z6rMs)d&fiz}VuW?70_c-lqBI$n!bth3D78R$Bhsvawg; zP%Egg5Da9bh!X;ab?b5(5fHX+XCV@D>v|3|G7QSk0KomnwtXp|$mTyG0+CfRVRoT1 z_0gxbf+`EaNFqG(svS*q`Vcq^$J$%vdolYW!ycF$%8dhuMPhD%tYY>CJc&Jmc>XCd z)lQ7aQrIHf3p1^Ey>nq8C|HXhV0IAX$WY>gh*v9RrcILIRaYMiu%5UHeZ#Uwmr!Me zQ2VG!o(yBOVkyj2F;-W2;z|E^-~5bzKec~KVeDJie$BlmO_9YCNxlr^>aTo0`5*!E zi=DrM^=9`d1v)a%C<>HaSIjp&A8k;tYxoWavY>_pS~E>&HSmBR1q!g;TmYc4J0XaB znt_ib?tLH5b?P3`3Ki*R$$(fwmu3Lpw;G1)8_>mW4wjp_D?Hj6Ee$4usWQ7J{-VTC(vR%{4rM z7HZoaZm17o?`WEuz$o zgX<}@b2W@v)=jDV?WG}PWM~&wB-bo;zVJ+`

>QF(-)&Y18!R?M1i5oEjb$)TW`h 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 diff --git a/assets/images/laptop-plus.svg b/assets/images/laptop-plus.svg new file mode 100644 index 0000000000..db1a850975 --- /dev/null +++ b/assets/images/laptop-plus.svg @@ -0,0 +1 @@ +Asset 1 \ No newline at end of file diff --git a/assets/images/swoop-arrow.svg b/assets/images/swoop-arrow.svg new file mode 100644 index 0000000000..ea56b8fd35 --- /dev/null +++ b/assets/images/swoop-arrow.svg @@ -0,0 +1,16 @@ + + + + Combined Shape + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/components/hosts/LonelyHost/LonelyHost.jsx b/frontend/components/hosts/LonelyHost/LonelyHost.jsx new file mode 100644 index 0000000000..1fb326ac7f --- /dev/null +++ b/frontend/components/hosts/LonelyHost/LonelyHost.jsx @@ -0,0 +1,34 @@ +import React, { PropTypes } from 'react'; +import { noop } from 'lodash'; + +import Button from 'components/buttons/Button'; +import laptop from '../../../../assets/images/laptop-plus.svg'; +import swoop from '../../../../assets/images/swoop-arrow.svg'; + +const baseClass = 'lonely-host'; + +const LonelyHost = ({ onAddHostClick = noop }) => { + return ( +

+ + +
+

It's Kinda Lonely In Here...

+

Get started adding hosts to Kolide.

+

This can be done individually or across your entire fleet.

+ +
+
+ ); +}; + +LonelyHost.propTypes = { + onAddHostClick: PropTypes.func, +}; + +export default LonelyHost; diff --git a/frontend/components/hosts/LonelyHost/_styles.scss b/frontend/components/hosts/LonelyHost/_styles.scss new file mode 100644 index 0000000000..131d6e259e --- /dev/null +++ b/frontend/components/hosts/LonelyHost/_styles.scss @@ -0,0 +1,74 @@ +.lonely-host { + @include display(flex); + padding: 16px 8px; + + &__add-host-btn { + width: 244px; + height: 286px; + border-radius: 2px; + background-color: $white; + box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.07); + border: solid 1px rgba(73, 143, 226, 0.22); + padding: 15px; + + &::before { + @include position(absolute, 0 null null -1px); + content: ''; + background-color: $link; + height: 6px; + width: calc(100% + 2px); + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } + } + + &__title { + font-size: 16px; + font-weight: $bold; + letter-spacing: 1px; + text-align: center; + color: $link; + border-bottom: solid 1px #eaeefb; + padding-bottom: 15px; + margin-bottom: 15px; + display: block; + } + + &__icon { + display: block; + background-color: $bg-medium; + } + + &__laptop { + width: 82px; + margin: 60px 0; + fill: $alert; + } + + &__content { + margin-left: 30px; + + h1 { + font-size: 28px; + font-weight: $normal; + color: #48c586; + padding-left: 5px; + } + + h2 { + font-size: 16px; + font-weight: $bold; + line-height: 1.5; + letter-spacing: -0.5px; + color: rgba(32, 37, 50, 0.66); + padding-left: 5px; + } + + p { + font-size: 15px; + line-height: 1.6; + color: rgba(32, 37, 50, 0.66); + padding-left: 5px; + } + } +} diff --git a/frontend/components/hosts/LonelyHost/index.js b/frontend/components/hosts/LonelyHost/index.js new file mode 100644 index 0000000000..7d7d44686c --- /dev/null +++ b/frontend/components/hosts/LonelyHost/index.js @@ -0,0 +1 @@ +export default from './LonelyHost'; diff --git a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.jsx b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.jsx index 3e77b46920..6167e8dd52 100644 --- a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.jsx +++ b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.jsx @@ -15,6 +15,7 @@ import HostDetails from 'components/hosts/HostDetails'; import hostInterface from 'interfaces/host'; import HostSidePanel from 'components/side_panels/HostSidePanel'; import HostsTable from 'components/hosts/HostsTable'; +import LonelyHost from 'components/hosts/LonelyHost'; import Icon from 'components/icons/Icon'; import PlatformIcon from 'components/icons/PlatformIcon'; import osqueryTableInterface from 'interfaces/osquery_table'; @@ -326,7 +327,7 @@ export class ManageHostsPage extends Component { } renderHosts = () => { - const { display, isAddLabel } = this.props; + const { display, isAddLabel, selectedLabel } = this.props; const { onHostDetailActionClick, filterHosts, sortHosts, renderNoHosts } = this; if (isAddLabel) { @@ -337,6 +338,10 @@ export class ManageHostsPage extends Component { const sortedHosts = sortHosts(filteredHosts); if (sortedHosts.length === 0) { + if (selectedLabel && selectedLabel.type === 'all') { + return ; + } + return renderNoHosts(); } diff --git a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tests.jsx b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tests.jsx index 664223b642..f8b159d159 100644 --- a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tests.jsx +++ b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tests.jsx @@ -91,6 +91,18 @@ describe('ManageHostsPage - component', () => { }); describe('host rendering', () => { + it('render LonelyHost if no hosts available', () => { + const page = mount(); + + expect(page.find('LonelyHost').length).toEqual(1); + }); + + it('renders message if no hosts available and not on All Hosts', () => { + const page = mount(); + + expect(page.find('.manage-hosts__no-hosts').length).toEqual(1); + }); + it('renders hosts as HostDetails by default', () => { const page = mount(); diff --git a/frontend/styles/global/_icons.scss b/frontend/styles/global/_icons.scss index 4fad7e2544..47fe3b2c6a 100644 --- a/frontend/styles/global/_icons.scss +++ b/frontend/styles/global/_icons.scss @@ -14,342 +14,346 @@ } .kolidecon-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; } .kolidecon-2x { - font-size: 2em; + font-size: 2em; } .kolidecon-3x { - font-size: 3em; + font-size: 3em; } .kolidecon-4x { - font-size: 4em; + font-size: 4em; } .kolidecon-5x { - font-size: 5em; + font-size: 5em; } .kolidecon-fw { - width: 1.28571429em; - text-align: center; + width: 1.28571429em; + text-align: center; } .kolidecon-kolide-logo-flat:before { - content: '\f000'; + content: '\f000'; } .kolidecon-chevrondown:before { - content: '\f004'; + content: '\f004'; } .kolidecon-chevronleft:before { - content: '\f006'; + content: '\f006'; } .kolidecon-chevronright:before { - content: '\f008'; + content: '\f008'; } .kolidecon-chevronup:before { - content: '\f00a'; + content: '\f00a'; } .kolidecon-cpu:before { - content: '\f00c'; + content: '\f00c'; } .kolidecon-downcarat:before { - content: '\f00d'; + content: '\f00d'; } .kolidecon-filter:before { - content: '\f00f'; + content: '\f00f'; } .kolidecon-mac:before { - content: '\f012'; + content: '\f012'; } .kolidecon-memory:before { - content: '\f013'; + content: '\f013'; } .kolidecon-storage:before { - content: '\f019'; + content: '\f019'; } .kolidecon-upcarat:before { - content: '\f01b'; + content: '\f01b'; } .kolidecon-uptime:before { - content: '\f01c'; + content: '\f01c'; } .kolidecon-world:before { - content: '\f01d'; + content: '\f01d'; } .kolidecon-osquery:before { - content: '\f021'; + content: '\f021'; } .kolidecon-join:before { - content: '\f022'; + content: '\f022'; } .kolidecon-add-button:before { - content: '\f029'; + content: '\f029'; } .kolidecon-packs:before { - content: '\f02f'; + content: '\f02f'; } .kolidecon-help:before { - content: '\f030'; + content: '\f030'; } .kolidecon-admin:before { - content: '\f031'; + content: '\f031'; } .kolidecon-config:before { - content: '\f032'; + content: '\f032'; } .kolidecon-mia:before { - content: '\f034'; + content: '\f034'; } .kolidecon-success-check:before { - content: '\f035'; + content: '\f035'; } .kolidecon-offline:before { - content: '\f036'; + content: '\f036'; } .kolidecon-windows:before { - content: '\f037'; + content: '\f037'; } .kolidecon-centos:before { - content: '\f038'; + content: '\f038'; } .kolidecon-ubuntu:before { - content: '\f039'; + content: '\f039'; } .kolidecon-apple:before { - content: '\f03a'; + content: '\f03a'; } .kolidecon-search:before { - content: '\f03b'; + content: '\f03b'; } .kolidecon-all-hosts:before { - content: '\f03c'; + content: '\f03c'; } .kolidecon-alerts:before { - content: '\f03e'; + content: '\f03e'; } .kolidecon-logout:before { - content: '\f03f'; + content: '\f03f'; } .kolidecon-user-settings:before { - content: '\f040'; + content: '\f040'; } .kolidecon-clipboard:before { - content: '\f043'; + content: '\f043'; } .kolidecon-list-select:before { - content: '\f044'; + content: '\f044'; } .kolidecon-grid-select:before { - content: '\f045'; + content: '\f045'; } .kolidecon-label:before { - content: '\f033'; + content: '\f033'; } .kolidecon-docker:before { - content: '\f046'; + content: '\f046'; } .kolidecon-cloud:before { - content: '\f047'; + content: '\f047'; } .kolidecon-self-hosted:before { - content: '\f048'; + content: '\f048'; } .kolidecon-help-solid:before { - content: '\f049'; + content: '\f049'; } .kolidecon-help-stroke:before { - content: '\f04a'; + content: '\f04a'; } .kolidecon-warning-filled:before { - content: '\f04b'; + content: '\f04b'; } .kolidecon-delete-cloud:before { - content: '\f04c'; + content: '\f04c'; } .kolidecon-pdf:before { - content: '\f04d'; + content: '\f04d'; } .kolidecon-credit-card-small:before { - content: '\f04e'; + content: '\f04e'; } .kolidecon-billing-card:before { - content: '\f04f'; + content: '\f04f'; } .kolidecon-lock-big:before { - content: '\f050'; + content: '\f050'; } .kolidecon-link-big:before { - content: '\f051'; + content: '\f051'; } .kolidecon-briefcase:before { - content: '\f052'; + content: '\f052'; } .kolidecon-name-card:before { - content: '\f053'; + content: '\f053'; } .kolidecon-kolide-logo:before { - content: '\f054'; + content: '\f054'; } .kolidecon-business:before { - content: '\f055'; + content: '\f055'; } .kolidecon-clock:before { - content: '\f056'; + content: '\f056'; } .kolidecon-host-large:before { - content: '\f057'; + content: '\f057'; } .kolidecon-single-host:before { - content: '\f03d'; + content: '\f03d'; } .kolidecon-username:before { - content: '\f02a'; + content: '\f02a'; } .kolidecon-password:before { - content: '\f02b'; + content: '\f02b'; } .kolidecon-email:before { - content: '\f02c'; + content: '\f02c'; } .kolidecon-hosts:before { - content: '\f02e'; + content: '\f02e'; } .kolidecon-query:before { - content: '\f02d'; + content: '\f02d'; } .kolidecon-import:before { - content: '\f058'; + content: '\f058'; } .kolidecon-pencil:before { - content: '\f059'; + content: '\f059'; } .kolidecon-add-plus:before { - content: '\f05a'; + content: '\f05a'; } .kolidecon-x:before { - content: '\f05b'; + content: '\f05b'; } .kolidecon-kill-kolide:before { - content: '\f05c'; + content: '\f05c'; } .kolidecon-right-arrow:before { - content: '\f05d'; + content: '\f05d'; } .kolidecon-camera:before { - content: '\f05e'; + content: '\f05e'; } .kolidecon-plus-minus:before { - content: '\f05f'; + content: '\f05f'; } .kolidecon-bold-plus:before { - content: '\f060'; + content: '\f060'; } .kolidecon-linux:before { - content: '\f061'; + content: '\f061'; } .kolidecon-clock2:before { - content: '\f063'; + content: '\f063'; } .kolidecon-trash:before { - content: '\f064'; + content: '\f064'; +} + +.kolidecon-laptop-plus:before { + content: '\f065'; } .sr-only { -position: absolute; -width: 1px; -height: 1px; -padding: 0; -margin: -1px; -overflow: hidden; -clip: rect(0, 0, 0, 0); -border: 0 + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0 } .sr-only-focusable:active, .sr-only-focusable:focus { -position: static; -width: auto; -height: auto; -margin: 0; -overflow: visible; -clip: auto + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto }