Website: add /support page (#12457)

Closes: #12183
Changes:
- Added a /support page.
- Updated routes, policies, and importer
- Updated the header navigation to have a link to the support page.
- Updated docs pages to link to the support page.

---------

Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
This commit is contained in:
Eric
2023-06-23 18:06:04 -05:00
committed by GitHub
co-authored by Mike Thomas Mike Thomas
parent 2855bc8f7f
commit 11587ef9e2
18 changed files with 382 additions and 7 deletions
+27
View File
@@ -0,0 +1,27 @@
module.exports = {
friendlyName: 'View support',
description: 'Display "Support" page.',
exits: {
success: {
viewTemplatePath: 'pages/support'
}
},
fn: async function () {
// Respond with view.
return {};
}
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+29
View File
@@ -0,0 +1,29 @@
parasails.registerPage('support', {
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
data: {
//…
},
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
beforeMount: function() {
//…
},
mounted: async function() {
//…
},
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
methods: {
clickOpenChatWidget: function() {
if(window.HubSpotConversations && window.HubSpotConversations.widget){
window.HubSpotConversations.widget.open();
}
},
}
});
+1
View File
@@ -74,6 +74,7 @@
@import 'pages/transparency.less';
@import 'pages/press-kit.less';
@import 'pages/vulnerability-management.less';
@import 'pages/support.less';
// Imagine = landing pages for Marketing
+234
View File
@@ -0,0 +1,234 @@
#support {
background: linear-gradient(180deg, #E8F1F6 0%, #FFF 100%);
p {
font-size: 16px;
line-height: 24px;
}
a {
color: unset;
}
a:hover {
text-decoration: none;
}
h1 {
font-size: 36px;
font-weight: 800;
line-height: 54px;
margin-bottom: 16px;
}
h2 {
font-size: 18px;
line-height: 27px;
}
[purpose='page-container'] {
max-width: 1200px;
padding-top: 60px;
padding-bottom: 60px;
padding-left: 40px;
padding-right: 40px;
}
[purpose='page-title'] {
margin-bottom: 60px;
text-align: center;
max-width: 800px;
}
[purpose='support-card']:hover {
box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.05);
}
[purpose='support-card'] {
cursor: pointer;
img {
height: auto;
width: 48px;
margin-bottom: 16px;
}
h3 {
font-size: 18px;
font-weight: 700;
line-height: 27px;
}
p {
font-size: 14px;
line-height: 21px;
margin-bottom: 0px;
}
height: 318px;
background: #FFFFFF;
border: 1px solid #E2E4EA;
border-radius: 16px;
padding: 40px;
margin-left: 12px;
margin-right: 12px;
margin-bottom: 30px;
box-shadow: none;
}
[purpose='community-cards'] {
[purpose='support-card'] {
width: 100%;
height: 200px;
img {
margin-right: 12px;
}
}
}
[purpose='support-cards'] {
flex-direction: column;
[purpose='support-row'] {
flex-direction: row;
width: 100%;
}
a {
width: 50%;
}
margin-bottom: 30px;
}
@media (min-width: 1201px) {
[purpose='page-container'] {
max-width: 1200px;
padding-top: 80px;
padding-bottom: 80px;
}
[purpose='support-cards'] {
flex-direction: row;
margin-bottom: 50px;
max-width: 1120px;
[purpose='support-row'] {
flex-direction: row;
}
}
[purpose='support-row'] {
[purpose='support-card'] {
width: 282px;
height: 221px;
}
}
[purpose='community-cards'] {
[purpose='support-card'] {
width: 384px;
height: 178px;
}
}
[purpose='page-title'] {
margin-bottom: 80px;
}
}
@media (max-width: 1201px) {
[purpose='page-container'] {
padding-top: 60px;
padding-bottom: 60px;
}
[purpose='community-cards'] {
a {
width: 50%;
}
[purpose='support-card'] {
height: 178px;
}
}
[purpose='support-cards'] {
[purpose='support-card'] {
height: 200px;
}
}
}
@media (max-width: 991px) {
[purpose='support-card'] {
margin-bottom: 30px;
}
[purpose='support-cards'] {
[purpose='support-card'] {
height: 221px;
}
}
}
@media (max-width: 768px) {
[purpose='support-cards'] {
flex-direction: column;
[purpose='support-row'] {
flex-direction: column;
}
a {
width: 100%;
}
}
[purpose='community-cards'] {
a {
width: 100%;
}
}
}
@media (max-width: 576px) {
[purpose='support-cards'] {
[purpose='support-card'] {
text-align: center;
align-items: center;
}
}
[purpose='community-cards'] {
[purpose='support-card'] {
padding: 32px 40px 40px 40px;
}
}
[purpose='page-title'] {
margin-bottom: 40px;
max-width: 380px;
}
[purpose='page-container'] {
padding-top: 40px;
padding-bottom: 40px;
padding-left: 24px;
padding-right: 24px;
}
}
@media (max-width: 375px) {
h1 {
line-height: 43px;
}
[purpose='support-card'] {
margin-bottom: 30px;
margin-right: 0px;
margin-left: 0px;
}
[purpose='community-cards'] {
[purpose='support-card'] {
padding-top: 32px;
margin-bottom: 16px;
}
}
[purpose='support-cards'] {
[purpose='support-card'] {
margin-bottom: 16px;
}
}
}
}
+1
View File
@@ -59,4 +59,5 @@ module.exports.policies = {
'view-osquery-management': true,
'view-vulnerability-management': true,
'deliver-mdm-demo-email': true,
'view-support': true,
};
+2 -1
View File
@@ -281,6 +281,8 @@ module.exports.routes = {
}
},
'GET /support': { action: 'view-support' },
// ╦╔╦╗╔═╗╔═╗╦╔╗╔╔═╗ ┌─┬ ┌─┐┌┐┌┌┬┐┬┌┐┌┌─┐ ┌─┐┌─┐┌─┐┌─┐┌─┐─┐
// ║║║║╠═╣║ ╦║║║║║╣ │ │ ├─┤│││ │││││││ ┬ ├─┘├─┤│ ┬├┤ └─┐ │
@@ -380,7 +382,6 @@ module.exports.routes = {
'GET /install': '/fleetctl-preview',
'GET /company': '/company/about',
'GET /company/about': '/handbook', // FUTURE: brief "about" page explaining the origins of the company
'GET /support': '/company/contact',
'GET /contact': '/company/contact',
'GET /legal': '/legal/terms',
'GET /terms': '/legal/terms',
+1
View File
@@ -265,6 +265,7 @@
<script src="/js/pages/query-library.page.js"></script>
<script src="/js/pages/reports/state-of-device-management.page.js"></script>
<script src="/js/pages/sales-one-pager.page.js"></script>
<script src="/js/pages/support.page.js"></script>
<script src="/js/pages/transparency.page.js"></script>
<script src="/js/pages/try-fleet/register.page.js"></script>
<script src="/js/pages/try-fleet/sandbox-expired.page.js"></script>
+1
View File
@@ -265,6 +265,7 @@
<script src="/js/pages/query-library.page.js"></script>
<script src="/js/pages/reports/state-of-device-management.page.js"></script>
<script src="/js/pages/sales-one-pager.page.js"></script>
<script src="/js/pages/support.page.js"></script>
<script src="/js/pages/transparency.page.js"></script>
<script src="/js/pages/try-fleet/register.page.js"></script>
<script src="/js/pages/try-fleet/sandbox-expired.page.js"></script>
+7 -4
View File
@@ -174,8 +174,9 @@
<div id="mobileNavbarToggleDocumentation" purpose="mobile-dropdown" class="collapse" data-parent="#mobileDropdowns">
<a href="/docs">Docs</a>
<a href="/releases">Releases</a>
<a href="/queries">Query library</a>
<a href="/tables">Schema tables</a>
<a href="/queries">Health checks &amp; queries</a>
<a href="/tables">Explore data</a>
<a href="/support">Support</a>
<span>GUIDES</span>
<a class="pl-3" href="/deploy">Deployment guides</a>
<a class="pl-3" href="/guides">How-to guides</a>
@@ -228,8 +229,9 @@
<div purpose="header-dropdown" class="dropdown-menu">
<a class="dropdown-item mb-1" href="/docs">Docs</a>
<a class="dropdown-item mb-1" href="/releases">Releases</a>
<a class="dropdown-item mb-1" href="/queries">Query library</a>
<a class="dropdown-item mb-1" href="/tables">Schema tables</a>
<a class="dropdown-item mb-1" href="/queries">Health checks &amp; queries</a>
<a class="dropdown-item mb-1" href="/tables">Explore data</a>
<a class="dropdown-item mb-1" href="/support">Support</a>
<div class="dropdown-divider"></div>
<span class="muted dropdown-header">GUIDES</span>
<a class="dropdown-item" href="/deploy">Deployment guides</a>
@@ -390,6 +392,7 @@
<script src="/js/pages/query-library.page.js"></script>
<script src="/js/pages/reports/state-of-device-management.page.js"></script>
<script src="/js/pages/sales-one-pager.page.js"></script>
<script src="/js/pages/support.page.js"></script>
<script src="/js/pages/transparency.page.js"></script>
<script src="/js/pages/try-fleet/register.page.js"></script>
<script src="/js/pages/try-fleet/sandbox-expired.page.js"></script>
+3
View File
@@ -177,6 +177,7 @@
<a href="/releases">Releases</a>
<a href="/queries">Health checks &amp; queries</a>
<a href="/tables">Explore data</a>
<a href="/support">Support</a>
<span>GUIDES</span>
<a class="pl-3" href="/deploy">Deployment guides</a>
<a class="pl-3" href="/guides">How-to guides</a>
@@ -231,6 +232,7 @@
<a class="dropdown-item mb-1" href="/releases">Releases</a>
<a class="dropdown-item mb-1" href="/queries">Health checks &amp; queries</a>
<a class="dropdown-item mb-1" href="/tables">Explore data</a>
<a class="dropdown-item mb-1" href="/support">Support</a>
<div class="dropdown-divider"></div>
<span class="muted dropdown-header">GUIDES</span>
<a class="dropdown-item" href="/deploy">Deployment guides</a>
@@ -463,6 +465,7 @@
<script src="/js/pages/query-library.page.js"></script>
<script src="/js/pages/reports/state-of-device-management.page.js"></script>
<script src="/js/pages/sales-one-pager.page.js"></script>
<script src="/js/pages/support.page.js"></script>
<script src="/js/pages/transparency.page.js"></script>
<script src="/js/pages/try-fleet/register.page.js"></script>
<script src="/js/pages/try-fleet/sandbox-expired.page.js"></script>
+2 -2
View File
@@ -22,7 +22,7 @@
</div>
</div>
</div>
<p purpose="support-link">Can't find what you're looking for? <a href="/slack" target="_blank">Support</a></p>
<p purpose="support-link">Can't find what you're looking for? <a href="/support">Support</a></p>
<div purpose="docs-tree">
@@ -221,7 +221,7 @@
<div class="d-block" purpose="slack-cta">
<h3 class="pt-0" style="font-size: 24px; line-height: 28px;">Need more help?</h3>
<div class="d-sm-flex">
<a href="/slack" target="_blank" class="d-flex btn btn-md btn-outline-secondary justify-content-center align-items-center mt-3 mt-sm-0" purpose="next-steps-button">
<a href="/support" target="_blank" class="d-flex btn btn-md btn-outline-secondary justify-content-center align-items-center mt-3 mt-sm-0" purpose="next-steps-button">
<img class="pr-3" alt="Slack logo" src="/images/logo-slack-24x24@2x.png"/>
Ask the community on Slack
</a>
+74
View File
@@ -0,0 +1,74 @@
<div id="support" v-cloak>
<div purpose="page-container" class="container">
<div purpose="page-title" class="mx-auto">
<h1>Support</h1>
<p>Ask a question, chat with other engineers, or get in touch with the Fleet team.</p>
</div>
<div purpose="support-cards" class="d-flex mx-auto justify-content-center">
<div purpose="support-row" class="d-flex">
<a href="https://github.com/fleetdm/fleet/issues/new?assignees=&labels=bug%2C%3Areproduce&projects=&template=bug-report.md&title=" target="_blank">
<div purpose="support-card" class="card d-flex justify-content-center">
<img alt="Bug report" src="/images/icon-bug-64x64@2x.png">
<h3>Bug report</h3>
<p>Report a bug to help us improve.</p>
</div>
</a>
<a href="https://github.com/fleetdm/fleet/issues/new?assignees=&labels=~customer+request&projects=&template=feature-request.md&title=" target="_blank">
<div purpose="support-card" class="card d-flex justify-content-center">
<img alt="Suggestions" src="/images/icon-suggestion-64x64@2x.png" class="mx-auto mx-sm-0">
<h3>Suggestions</h3>
<p>Propose a new feature or enhancement in Fleet.</p>
</div>
</a>
</div>
<div purpose="support-row" class="d-flex">
<a @click="clickOpenChatWidget">
<div purpose="support-card" class="card d-flex justify-content-center" >
<img alt="Ask us anything" src="/images/icon-ask-anything-64x64@2x.png">
<h3>Ask us anything</h3>
<p>Cant find what youre looking for? Get in touch.</p>
</div>
</a>
<a href="/handbook/customers">
<div purpose="support-card" class="card d-flex justify-content-center">
<img alt="Premium support" src="/images/icon-premium-support-64x64@2x.png">
<h3>Premium support</h3>
<p>Dedicated Slack channel and support from the Fleet team.</p>
</div>
</a>
</div>
</div>
<div purpose="page-title" class="mx-auto">
<h1>Ask the community</h1>
<p>Fleet has an active open-source community of knowledgable and helpful users. If you have a question about something that isn't in the documentation, try one of these places:</p>
</div>
<div purpose="community-cards" class="d-flex justify-content-center flex-sm-row flex-column">
<a href="https://chat.osquery.io/c/fleet" target="_blank" class="d-flex">
<div purpose="support-card" class="card d-flex justify-content-center">
<div class="d-flex flex-row align-items-center">
<img alt="Osquery logo" src="/images/logo-osquery-48x48@2x.png">
<h3>Osquery Slack</h3>
</div>
<p>Chat about using Fleet or osquery to secure servers, laptops, and more.</p>
</div>
</a>
<a href="https://macadmins.org" target="_blank" class="d-flex">
<div purpose="support-card" class="card d-flex justify-content-center" >
<div class="d-flex flex-row align-items-center">
<img alt="Macadmins logo" src="/images/logo-macadmins-48x48@2x.png">
<h3>MacAdmins Slack</h3>
</div>
<p>Chat about using Fleet to manage workstations.</p>
</div>
</a>
</div>
</div>
</div>
<%- /* Expose server-rendered data as window.SAILS_LOCALS :: */ exposeLocalsToBrowser() %>