mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
Create jamf alternative landing page (#13066)
# Checklist for submitter If some of the following don't apply, delete the relevant line. - [ ] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information. - [ ] Documented any API changes (docs/Using-Fleet/REST-API.md or docs/Contributing/API-for-contributors.md) - [ ] Documented any permissions changes - [ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features. - [ ] Added/updated tests - [ ] Manual QA for all new/changed functionality - For Orbit and Fleet Desktop changes: - [ ] Manual QA must be performed in the three main OSs, macOS, Windows and Linux. - [ ] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)). --------- Co-authored-by: Eric <eashaw@sailsjs.com>
This commit is contained in:
parent
55c5681618
commit
864b8dd44c
10 changed files with 489 additions and 0 deletions
27
website/api/controllers/imagine/view-jamf-alternative.js
vendored
Normal file
27
website/api/controllers/imagine/view-jamf-alternative.js
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
module.exports = {
|
||||
|
||||
|
||||
friendlyName: 'View jamf alternative',
|
||||
|
||||
|
||||
description: 'Display "Jamf alternative" page.',
|
||||
|
||||
|
||||
exits: {
|
||||
|
||||
success: {
|
||||
viewTemplatePath: 'pages/imagine/jamf-alternative'
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
fn: async function () {
|
||||
|
||||
// Respond with view.
|
||||
return {};
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
29
website/assets/js/pages/imagine/jamf-alternative.page.js
vendored
Normal file
29
website/assets/js/pages/imagine/jamf-alternative.page.js
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
parasails.registerPage('jamf-alternative', {
|
||||
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
|
||||
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
|
||||
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
|
||||
data: {
|
||||
//…
|
||||
},
|
||||
|
||||
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
|
||||
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
|
||||
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
|
||||
beforeMount: function() {
|
||||
//…
|
||||
},
|
||||
mounted: async function() {
|
||||
//…
|
||||
},
|
||||
|
||||
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
|
||||
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
|
||||
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
|
||||
methods: {
|
||||
clickOpenChatWidget: function() {
|
||||
if(window.HubSpotConversations && window.HubSpotConversations.widget){
|
||||
window.HubSpotConversations.widget.open();
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
1
website/assets/styles/importer.less
vendored
1
website/assets/styles/importer.less
vendored
|
|
@ -84,3 +84,4 @@
|
|||
@import 'pages/imagine/higher-education.less';
|
||||
@import 'pages/imagine/rapid-7-alternative.less';
|
||||
@import 'pages/imagine/defcon-31.less';
|
||||
@import 'pages/imagine/jamf-alternative.less';
|
||||
|
|
|
|||
347
website/assets/styles/pages/imagine/jamf-alternative.less
vendored
Normal file
347
website/assets/styles/pages/imagine/jamf-alternative.less
vendored
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
#jamf-alternative {
|
||||
|
||||
h1 {
|
||||
font-weight: 800;
|
||||
font-size: 64px;
|
||||
line-height: 76px;
|
||||
}
|
||||
h2 {
|
||||
font-weight: 800;
|
||||
font-size: 32px;
|
||||
line-height: 38px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
h3 {
|
||||
font-weight: 800;
|
||||
font-size: 24px;
|
||||
line-height: 32px;
|
||||
}
|
||||
h4 {
|
||||
font-family: 'Roboto Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
color: @core-fleet-black-75;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
[purpose='hero-background'] {
|
||||
background: linear-gradient(180deg, #E8F1F7 3.37%, #FFFFFF 60%);
|
||||
padding-top: 120px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
[purpose='hero-container'] {
|
||||
max-width: 1200px;
|
||||
}
|
||||
[purpose='hero-text'] {
|
||||
text-align: center;
|
||||
max-width: 940px;
|
||||
padding: 0 40px;
|
||||
h1 {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
p {
|
||||
font-size: 18px;
|
||||
line-height: 27px;
|
||||
max-width: 640px;
|
||||
margin: 0 auto 32px;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='button-row'] {
|
||||
a {
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
[purpose='cta-button'] {
|
||||
cursor: pointer;
|
||||
margin-right: 32px;
|
||||
background: @core-vibrant-red;
|
||||
border-radius: 8px;
|
||||
padding-left: 32px;
|
||||
padding-right: 32px;
|
||||
height: 48px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #FFF;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
}
|
||||
[purpose='cta-button']::before {
|
||||
background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
|
||||
opacity: 1;
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -5px;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
transform: skew(-10deg);
|
||||
transition: left 0.5s ease-in, opacity 0.50s ease-in, width 0.5s ease-in;
|
||||
}
|
||||
[purpose='cta-button']:hover:before {
|
||||
opacity: 0;
|
||||
left: 160px;
|
||||
width: 110%;
|
||||
}
|
||||
|
||||
[purpose='animated-arrow-button-red'] {
|
||||
display: inline;
|
||||
padding-right: 40px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
width: fit-content;
|
||||
min-width: 125px;
|
||||
font-weight: bold;
|
||||
user-select: none;
|
||||
transition: 0.2s ease-in-out;
|
||||
-o-transition: 0.2s ease-in-out;
|
||||
-ms-transition: 0.2s ease-in-out;
|
||||
-moz-transition: 0.2s ease-in-out;
|
||||
-webkit-transition: 0.2s ease-in-out;
|
||||
color: @core-fleet-black;
|
||||
text-decoration: none;
|
||||
&:after {
|
||||
content: url('/images/arrow-right-red-16x16@2x.png');
|
||||
transform: scale(0.5);
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: 80%; // <--- here
|
||||
transition: 0.2s ease-in-out;
|
||||
-o-transition: 0.2s ease-in-out;
|
||||
-ms-transition: 0.2s ease-in-out;
|
||||
-moz-transition: 0.2s ease-in-out;
|
||||
-webkit-transition: 0.2s ease-in-out;
|
||||
/* opacity: 0; */
|
||||
}
|
||||
&:hover:after {
|
||||
left: 82%; // <--- here
|
||||
transition: 0.2s ease-in-out;
|
||||
-o-transition: 0.2s ease-in-out;
|
||||
-ms-transition: 0.2s ease-in-out;
|
||||
-moz-transition: 0.2s ease-in-out;
|
||||
-webkit-transition: 0.2s ease-in-out;
|
||||
/* opacity:1; */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='page-container'] {
|
||||
padding-left: 40px;
|
||||
padding-right: 40px;
|
||||
padding-bottom: 120px;
|
||||
}
|
||||
|
||||
[purpose='feature'] {
|
||||
margin-top: 120px;
|
||||
max-width: 960px;
|
||||
h3 {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
div {
|
||||
max-width: 480px;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='feature-image'] {
|
||||
img {
|
||||
max-height: 300px;
|
||||
}
|
||||
}
|
||||
[purpose='large-feature-image'] {
|
||||
img {
|
||||
max-height: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='checklists'] {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 80px;
|
||||
}
|
||||
[purpose='checklist'] {
|
||||
p {
|
||||
padding-left: 28px;
|
||||
text-indent: -28px;
|
||||
}
|
||||
p::before {
|
||||
content: ' ';
|
||||
background-image: url('/images/icon-checkmark-circle.svg');
|
||||
background-size: 16px 16px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
margin-right: 12px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='tweets-container'] {
|
||||
padding-top: 120px;
|
||||
padding-bottom: 120px;
|
||||
}
|
||||
|
||||
[purpose='bottom-gradient'] {
|
||||
background: linear-gradient(180deg, #FFFFFF 0%, #E9F4F4 100%);
|
||||
}
|
||||
[purpose='bottom-cloud-city-banner'] {
|
||||
background: linear-gradient(180deg, #E9F4F4 0%, #FFFFFF 100%);
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
[purpose='page-container'] {
|
||||
padding-left: 120px;
|
||||
padding-right: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
[purpose='logos'] {
|
||||
height: 58px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
img {
|
||||
margin-top: 23.5px;
|
||||
margin-bottom: 23.5px;
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
}
|
||||
[purpose='snowflake-logo'] {
|
||||
height: 21px;
|
||||
}
|
||||
[purpose='wayfair-logo'] {
|
||||
height: 23px;
|
||||
}
|
||||
[purpose='uber-logo'] {
|
||||
height: 20px;
|
||||
}
|
||||
[purpose='atlassian-logo'] {
|
||||
height: 16px;
|
||||
}
|
||||
[purpose='segment-logo'] {
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
|
||||
[purpose='button-row'] {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
[purpose='hero-background'] {
|
||||
padding-top: 120px;
|
||||
padding-bottom: 80px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
[purpose='logos'] {
|
||||
height: 58px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
img {
|
||||
margin-top: 17.5px;
|
||||
margin-bottom: 17.5px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
|
||||
h1 {
|
||||
font-size: 48px;
|
||||
line-height: 54px;
|
||||
}
|
||||
|
||||
[purpose='page-container'] {
|
||||
padding-left: 40px;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
[purpose='checklists'] {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
[purpose='feature'] {
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
[purpose='feature-image'], [purpose='large-feature-image'] {
|
||||
margin-bottom: 40px;
|
||||
img {
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='hero-background'] {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 60px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
[purpose='hero-text'] {
|
||||
text-align: center;
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
[purpose='tweets-container'] {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 80px;
|
||||
padding-left: 40px;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
[purpose='logos'] {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 575px) {
|
||||
|
||||
[purpose='button-row'] {
|
||||
max-width: 100%;
|
||||
[purpose='cta-button'] {
|
||||
margin-right: 0px;
|
||||
width: 100%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
[purpose='feature'] {
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
[purpose='page-container'] {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
[purpose='tweets-container'] {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
[parasails-component='scrollable-tweets'] [purpose='tweets'] {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
7
website/config/routes.js
vendored
7
website/config/routes.js
vendored
|
|
@ -328,6 +328,13 @@ module.exports.routes = {
|
|||
pageDescriptionForMeta: 'Find Fleet at DefCon and get a custom tee shirt.',
|
||||
}
|
||||
},
|
||||
'GET /imagine/jamf-alternative': {
|
||||
action: 'imagine/view-jamf-alternative',
|
||||
locals: {
|
||||
pageTitleForMeta: 'An open-source alternative to Jamf',
|
||||
pageDescriptionForMeta: 'Simplify vulnerability management with Fleet, an open-source platform with superior visibility.',
|
||||
}
|
||||
},
|
||||
|
||||
// ╦ ╔═╗╔═╗╔═╗╔═╗╦ ╦ ╦═╗╔═╗╔╦╗╦╦═╗╔═╗╔═╗╔╦╗╔═╗
|
||||
// ║ ║╣ ║ ╦╠═╣║ ╚╦╝ ╠╦╝║╣ ║║║╠╦╝║╣ ║ ║ ╚═╗
|
||||
|
|
|
|||
1
website/views/layouts/layout-customer.ejs
vendored
1
website/views/layouts/layout-customer.ejs
vendored
|
|
@ -252,6 +252,7 @@
|
|||
<script src="/js/pages/homepage.page.js"></script>
|
||||
<script src="/js/pages/imagine/defcon-31.page.js"></script>
|
||||
<script src="/js/pages/imagine/higher-education.page.js"></script>
|
||||
<script src="/js/pages/imagine/jamf-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/launch-party.page.js"></script>
|
||||
<script src="/js/pages/imagine/rapid-7-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/unused-software.page.js"></script>
|
||||
|
|
|
|||
1
website/views/layouts/layout-landing.ejs
vendored
1
website/views/layouts/layout-landing.ejs
vendored
|
|
@ -252,6 +252,7 @@
|
|||
<script src="/js/pages/homepage.page.js"></script>
|
||||
<script src="/js/pages/imagine/defcon-31.page.js"></script>
|
||||
<script src="/js/pages/imagine/higher-education.page.js"></script>
|
||||
<script src="/js/pages/imagine/jamf-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/launch-party.page.js"></script>
|
||||
<script src="/js/pages/imagine/rapid-7-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/unused-software.page.js"></script>
|
||||
|
|
|
|||
1
website/views/layouts/layout-sandbox.ejs
vendored
1
website/views/layouts/layout-sandbox.ejs
vendored
|
|
@ -379,6 +379,7 @@
|
|||
<script src="/js/pages/homepage.page.js"></script>
|
||||
<script src="/js/pages/imagine/defcon-31.page.js"></script>
|
||||
<script src="/js/pages/imagine/higher-education.page.js"></script>
|
||||
<script src="/js/pages/imagine/jamf-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/launch-party.page.js"></script>
|
||||
<script src="/js/pages/imagine/rapid-7-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/unused-software.page.js"></script>
|
||||
|
|
|
|||
1
website/views/layouts/layout.ejs
vendored
1
website/views/layouts/layout.ejs
vendored
|
|
@ -452,6 +452,7 @@
|
|||
<script src="/js/pages/homepage.page.js"></script>
|
||||
<script src="/js/pages/imagine/defcon-31.page.js"></script>
|
||||
<script src="/js/pages/imagine/higher-education.page.js"></script>
|
||||
<script src="/js/pages/imagine/jamf-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/launch-party.page.js"></script>
|
||||
<script src="/js/pages/imagine/rapid-7-alternative.page.js"></script>
|
||||
<script src="/js/pages/imagine/unused-software.page.js"></script>
|
||||
|
|
|
|||
74
website/views/pages/imagine/jamf-alternative.ejs
vendored
Normal file
74
website/views/pages/imagine/jamf-alternative.ejs
vendored
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<div id="jamf-alternative" v-cloak>
|
||||
|
||||
<div purpose="hero-background" class="container-lg d-flex justify-content-center">
|
||||
|
||||
<div purpose="hero-container" class="d-flex flex-column align-items-center">
|
||||
<div purpose="hero-text">
|
||||
<h4 class="mb-2">Device management built for IT, security approved</h4>
|
||||
<h1>Fleet brings GitOps to MDM</h1>
|
||||
<p>Bringh-your-own MDM. Enjoy enterprise-ready open-source MDM and leverage the best of DevOps and GitOps inside a full-featured Macbook MDM.</p>
|
||||
<div purpose="button-row" class="d-flex flex-sm-row flex-column justify-content-center align-items-center">
|
||||
<a purpose="cta-button" href="/try-fleet/register?tryitnow">Try Fleet today</a>
|
||||
<a @click="clickOpenChatWidget()" purpose="animated-arrow-button-red">Talk to an expert</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div purpose="page-container" class="container-lg">
|
||||
<div purpose="feature" class="d-flex flex-md-row flex-column-reverse justify-content-between mx-auto align-items-center">
|
||||
<div class="d-flex flex-column">
|
||||
<h3>Finally a transparent and open-source MDM.</h3>
|
||||
<p>Don't waste money buying new Protection plans from your MDM provider.</p>
|
||||
</div>
|
||||
<div purpose="feature-image" class="ml-md-5">
|
||||
<img alt="A Fleet orb scanning a Laptop" src="/images/device-management-realtime-visibility-320x294@2x.png">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div purpose="feature" class="d-flex flex-md-row flex-column justify-content-between mx-auto align-items-center">
|
||||
<div purpose="feature-image" class="mr-md-5">
|
||||
<img alt="A bento box featuring all the tools Fleet can bring together" src="/images/device-management-bento-logos-320x295@2x.png">
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<h3>JAMF and Intune are never perfect out of the box, so why not bring your own MDM?</h3>
|
||||
<p>A transparent and programmable MDM to build the solution that's best for your team.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div purpose="button-row" style="margin-top: 60px;" class="d-flex flex-sm-row flex-column justify-content-center align-items-center mx-auto">
|
||||
<a purpose="cta-button" href="/try-fleet/register?tryitnow">Try Fleet today</a>
|
||||
<a @click="clickOpenChatWidget()" purpose="animated-arrow-button-red">Talk to an expert</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div purpose="bottom-gradient">
|
||||
<div purpose="tweets-container" class="container-fluid px-md-0 pb-0 d-flex flex-column justify-content-center">
|
||||
<div purpose="section-heading" style="max-width: 720px" class="mx-auto text-center">
|
||||
<h4>Don’t know osquery?</h4>
|
||||
<h2>Dedicated support from osquery experts</h2>
|
||||
<p>Osquery is the open-source agent that powers Fleet. And we have the most osquery experts around. We’ll help you realize the potential of this tool for your organization.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<scrollable-tweets></scrollable-tweets>
|
||||
<div purpose="page-container" class="pb-0 container">
|
||||
|
||||
<div purpose="bottom-cta" class="text-center">
|
||||
<h4>Open-source device management</h4>
|
||||
<h1>Lighter than air</h1>
|
||||
<div purpose="button-row" style="margin-top: 60px;" class="d-flex flex-sm-row flex-column justify-content-center align-items-center mx-auto">
|
||||
<a purpose="cta-button" href="/try-fleet/register?tryitnow">Try it out</a>
|
||||
<a @click="clickOpenChatWidget()" purpose="animated-arrow-button-red">Talk to an expert</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-column" purpose="bottom-cloud-city-banner">
|
||||
<img alt="A glass city floating on top of fluffy white clouds" class="d-none d-lg-flex" src="/images/homepage-cloud-city-banner-lg-1600x375@2x.png">
|
||||
<img alt="A glass city floating on top of fluffy white clouds" class="d-none d-md-flex d-lg-none" src="/images/homepage-cloud-city-banner-md-990x375@2x.png">
|
||||
<img alt="A glass city floating on top of fluffy white clouds" class="d-flex d-md-none" src="/images/homepage-cloud-city-banner-sm-375x168@2x.png">
|
||||
</div>
|
||||
</div>
|
||||
<%- /* Expose server-rendered data as window.SAILS_LOCALS :: */ exposeLocalsToBrowser() %>
|
||||
Loading…
Reference in a new issue