mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 17:05:18 +00:00
7974bdfa80
* create pages, add routes, update policies * add new pages to importer * sandbox page * login -> sandbox-login * Update login.less * psuedo-code/code comments * remove sandbox page * Revert "remove sandbox page" This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a. * view action drafts * delete forgot-password page * two new actions + draft code * change action name * Draft view actions and page scripts * Update signup.js * update comments * update signup & sandbox-login page script * update helper comments * update helper usage in comments * view-sandbox » view-sandbox-or-redirect * Update helpers, actions, and routes * login » sandbox-login * update attributes on user model * update signup action * update page scripts and importer * Update view-register.js * html + css * update signup and view-sandbox-or-redirect * Password reset Update user's sandbox password when they have a sandbox instance * add new-sandbox, update sandbox page - `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance, - `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state - updated policies & routes * layout and importer updates * update sandbox-login links & page script * update signup action * change logout redirect location to homepage * lint fixes * lint fixes * Update sandbox & sandbox-expired * Comment updates * update password requirements for existing pages * remove /get-started route * lint fixes * replace env variable with url * remove `required: false` from organization attribute on user model * send redirectToSandbox from view instead of routes * changes sandbox page name * add 10 second timeout to /healthz check, add authorization header to cloud provisioner request * update environment variable name * update authorization header * remove /new-sandbox * update unauthorized response to redirect to correct login screen * update comments * update layout * replace new-sandbox redirects with consistency violation errors * Provision Fleet sandbox for users logging in * Revert "Provision Fleet sandbox for users logging in" This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d. * Revert "Revert "Provision Fleet sandbox for users logging in"" This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9. * Revert "Revert "Revert "Provision Fleet sandbox for users logging in""" This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00. * update sandbox-login mobile styles * update sandbox-expired page to match latest wireframes * remove required: false and planned changes comments, update signup errors and behavior * update error * lint fix on updated error * Update error's indentation * remove added forgot-password flow, add redirect for sandbox users changing their password * Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow * update bootstrap to give admin user an expired sandbox * Update signup.js * remove unused exits, revert password recovery email changes * required:false is implied if unspecified, so can be omitted * Remove defaultsTo: '', since it is not needed This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495 It also makes two other trivial changes. * Eliminate another unnecessary require:false I think this one is actually baked into the sails-generate template. * remove custom password validation * update page name (sandbox-teleporter) and view action name * revert minor changes to existing files * update sandbox login friendlyName * Update unauthorized response to redirect to /login * Delete new-sandbox.less * update layouts and importer * add /fleetctl-preview route for old get-started page, update sandbox route * update signup action with changes from review, add retry() to cloud provisioner request * Update routes.js * add missing comma to route * update layout, fix typo in signup * Update sandbox-expired.ejs * lint fixes * Update download-sitemap.js * small whitespace changes, regenerate cloud-sdk * remove placeholder text in password inputs * add loading spinner to sandbox teleporter * add logout button to header nav * hide header on sandbox-teleporter * update errors, check if a user already exists before cloud provisioner request * Update sandbox-teleporter.page.js * Update sandbox-teleporter.page.js * Update signup.js * resize loading spinner, history.pushState() » history.replaceState() * send users who reset their password back to the fleetdm.com homepage * Add Zapier webhook request for sandbox signups * rebuild-scloud-sdk after resolving merge conflict * update zapier request error * Add comment w/ context about how Zapier responds with a 2xx even if there was a problem * Update links to /get-started to go to /try-fleet/register, change /get-started redirect * Revert changes to links * add /test-fleet-sandbox redirect, revert /try-fleet redirect * send logged out users to the sandbox login page when they go to /try-fleet/sandbox Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
314 lines
56 KiB
Plaintext
Vendored
314 lines
56 KiB
Plaintext
Vendored
<%
|
|
// In case we're displaying the 404 or 500 page and relevant code in the "custom" hook was not able to run,
|
|
// we make sure certain view locals exist that are commonly used in this layout.ejs file. This ensures we
|
|
// don't have to do `typeof` checks below.
|
|
var me;
|
|
var isHomepage;
|
|
%><!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title><%= typeof pageTitleForMeta !== 'undefined' ? pageTitleForMeta : 'Fleet for osquery | Open source device management' %></title>
|
|
<meta name="description" content="<%= typeof pageDescriptionForMeta !== 'undefined' ? pageDescriptionForMeta : 'Open source software, built on osquery. With Fleet you can ask important questions about your devices. Whatever operating system, wherever they live.' %>" />
|
|
|
|
<% /* Viewport tag for sensible mobile support */ %>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<meta name="twitter:card" content="summary" />
|
|
<meta name="twitter:site" content="https://fleetdm.com" />
|
|
<meta name="twitter:title" content="<%= typeof pageTitleForMeta !== 'undefined' ? pageTitleForMeta : 'Open source device management' %>" />
|
|
<meta name="twitter:description" content="<%= typeof pageDescriptionForMeta !== 'undefined' ? pageDescriptionForMeta : 'Open source software, built on osquery. With Fleet you can ask important questions about your devices. Whatever operating system, wherever they live.' %>" />
|
|
<meta name="twitter:image" content="https://fleetdm.com/images/fleet-logo-square@2x.png" />
|
|
<% /* Script tags should normally be included further down the page- but any
|
|
scripts that load fonts (e.g. Fontawesome ≥v5) are special exceptions to the
|
|
rule. (Include them up here along with any hard-coded «link» tags for Typekit,
|
|
Google Fonts, etc. - above the «body» to prevent the page flickering when fonts
|
|
load.) */ %>
|
|
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,900&display=swap" rel="stylesheet">
|
|
<% /* Certain scripts, normally analytics tools like Google Tag Manager and
|
|
Google Analytics, should only be included in production: */
|
|
if (sails.config.environment === 'production') { %>
|
|
<% /* Rollbar */%>
|
|
<script>
|
|
var _rollbarConfig = {
|
|
accessToken: "20a8dbf5d8884b5480e58d99748ec127",
|
|
captureUncaught: true,
|
|
captureUnhandledRejections: true,
|
|
payload: {
|
|
environment: "production"
|
|
}
|
|
};
|
|
// Rollbar Snippet
|
|
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(5);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.22.0/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,e,o){"use strict";var n=o(2),t=o(3);function a(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}var l=0;function i(r,e){this.options=r,this._rollbarOldOnError=null;var o=l++;this.shimId=function(){return o},"undefined"!=typeof window&&window._rollbarShims&&(window._rollbarShims[o]={handler:e,messages:[]})}var s=o(4),d=function(r,e){return new i(r,e)},c=function(r){return new s(d,r)};function u(r){return a((function(){var e=this,o=Array.prototype.slice.call(arguments,0),n={shim:e,method:r,args:o,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)}))}i.prototype.loadFull=function(r,e,o,n,t){var l=!1,i=e.createElement("script"),s=e.getElementsByTagName("script")[0],d=s.parentNode;i.crossOrigin="",i.src=n.rollbarJsUrl,o||(i.async=!0),i.onload=i.onreadystatechange=a((function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){i.onload=i.onreadystatechange=null;try{d.removeChild(i)}catch(r){}l=!0,function(){var e;if(void 0===r._rollbarDidLoad){e=new Error("rollbar.js did not load");for(var o,n,a,l,i=0;o=r._rollbarShims[i++];)for(o=o.messages||[];n=o.shift();)for(a=n.args||[],i=0;i<a.length;++i)if("function"==typeof(l=a[i])){l(e);break}}"function"==typeof t&&t(e)}()}})),d.insertBefore(i,s)},i.prototype.wrap=function(r,e,o){try{var n;if(n="function"==typeof e?e:function(){return e||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){o&&"function"==typeof o&&o.apply(this,arguments);try{return r.apply(this,arguments)}catch(o){var e=o;throw e&&("string"==typeof e&&(e=new String(e)),e._rollbarContext=n()||{},e._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=e),e}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(e){return r}};for(var p="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),f=0;f<p.length;++f)i.prototype[p[f]]=u(p[f]);r.exports={setupShim:function(r,e){if(r){var o=e.globalAlias||"Rollbar";if("object"==typeof r[o])return r[o];r._rollbarShims={},r._rollbarWrappedError=null;var l=new c(e);return a((function(){e.captureUncaught&&(l._rollbarOldOnError=r.onerror,n.captureUncaughtExceptions(r,l,!0),e.wrapGlobalEventHandlers&&t(r,l,!0)),e.captureUnhandledRejections&&n.captureUnhandledRejections(r,l,!0);var a=e.autoInstrument;return!1!==e.enabled&&(void 0===a||!0===a||"object"==typeof a&&a.network)&&r.addEventListener&&(r.addEventListener("load",l.captureLoad.bind(l)),r.addEventListener("DOMContentLoaded",l.captureDomContentLoaded.bind(l))),r[o]=l,l}))()}},Rollbar:c}},function(r,e,o){"use strict";function n(r,e,o,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null);var t=e.handleUncaughtException.apply(e,n);o&&o.apply(r,n),"anonymous"===t&&(e.anonymousErrorsPending+=1)}r.exports={captureUncaughtExceptions:function(r,e,o){if(r){var t;if("function"==typeof e._rollbarOldOnError)t=e._rollbarOldOnError;else if(r.onerror){for(t=r.onerror;t._rollbarOldOnError;)t=t._rollbarOldOnError;e._rollbarOldOnError=t}e.handleAnonymousErrors();var a=function(){var o=Array.prototype.slice.call(arguments,0);n(r,e,t,o)};o&&(a._rollbarOldOnError=t),r.onerror=a}},captureUnhandledRejections:function(r,e,o){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var o,n,t;try{o=r.reason}catch(r){o=void 0}try{n=r.promise}catch(r){n="[unhandledrejection] error getting `promise` from event"}try{t=r.detail,!o&&t&&(o=t.reason,n=t.promise)}catch(r){}o||(o="[unhandledrejection] error getting `reason` from event"),e&&e.handleUnhandledRejection&&e.handleUnhandledRejection(o,n)};n.belongsToShim=o,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}}}},function(r,e,o){"use strict";function n(r,e,o){if(e.hasOwnProperty&&e.hasOwnProperty("addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(e,o,t){n.call(this,e,r.wrap(o),t)};t._rollbarOldAdd=n,t.belongsToShim=o,e.addEventListener=t;for(var a=e.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,e,o){a.call(this,r,e&&e._rollbar_wrapped||e,o)};l._rollbarOldRemove=a,l.belongsToShim=o,e.removeEventListener=l}}r.exports=function(r,e,o){if(r){var t,a,l="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(t=0;t<l.length;++t)r[a=l[t]]&&r[a].prototype&&n(e,r[a].prototype,o)}}},function(r,e,o){"use strict";function n(r,e){this.impl=r(e,this),this.options=e,function(r){for(var e=function(r){return function(){var e=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,e)}},o="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<o.length;n++)r[o[n]]=e(o[n])}(n.prototype)}n.prototype._swapAndProcessMessages=function(r,e){var o,n,t;for(this.impl=r(this.options);o=e.shift();)n=o.method,t=o.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],o.ts]):this[n].apply(this,t));return this},r.exports=n},function(r,e,o){"use strict";r.exports=function(r){return function(e){if(!e&&!window._rollbarInitialized){for(var o,n,t=(r=r||{}).globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;o=window._rollbarShims[i++];)n||(n=o.handler),o.handler._swapAndProcessMessages(l,o.messages);window[t]=n,window._rollbarInitialized=!0}}}}]);
|
|
// End Rollbar Snippet
|
|
</script>
|
|
<% /* Google Analytics, Google Tag Manager, etc. */ %>
|
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-JC3DRNY1GV"></script>
|
|
<script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-JC3DRNY1GV');</script>
|
|
<%/* Meta pixel code */%>
|
|
<script>
|
|
!function(f,b,e,v,n,t,s)
|
|
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
'https://connect.facebook.net/en_US/fbevents.js');
|
|
fbq('init', '673041690615149');
|
|
fbq('track', 'PageView');
|
|
</script>
|
|
<noscript>
|
|
<img alt="Meta pixel" height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=673041690615149&ev=PageView&noscript=1"/>
|
|
</noscript>
|
|
<%/* Snitcher analytics code */%>
|
|
<script>
|
|
!function(s,n,i,t,c,h){s.SnitchObject=i;s[i]||(s[i]=function(){
|
|
(s[i].q=s[i].q||[]).push(arguments)});s[i].l=+new Date;c=n.createElement(t);
|
|
h=n.getElementsByTagName(t)[0];c.src='//snid.snitcher.com/8416878.js';
|
|
h.parentNode.insertBefore(c,h)}(window,document,'snid','script');
|
|
|
|
snid('verify', '8416878');
|
|
</script>
|
|
<% }
|
|
/* Otherwise, any such scripts are excluded, and we instead inject a
|
|
robots/noindex meta tag to help prevent any unwanted visits from search engines. */
|
|
else { %>
|
|
<meta name="robots" content="noindex">
|
|
<% } %>
|
|
<% /*
|
|
Stylesheets
|
|
========================
|
|
|
|
Stylesheets can be hard-coded as «link» tags, automatically injected
|
|
by the asset pipeline between "STYLES" and "STYLES END", or both.
|
|
(https://sailsjs.com/docs/concepts/assets/task-automation)
|
|
*/ %>
|
|
|
|
<% /* Auto-injected «link» tags: */ %>
|
|
<!--STYLES-->
|
|
<link rel="stylesheet" href="/dependencies/bootstrap-4/bootstrap-4.css">
|
|
<link rel="stylesheet" href="/dependencies/fontawesome.css">
|
|
<link rel="stylesheet" href="/dependencies/nunito-webfonts.css">
|
|
<link rel="stylesheet" href="/styles/importer.css">
|
|
<!--STYLES END-->
|
|
</head>
|
|
<body>
|
|
<div style="padding-bottom: 60px; background-color: #F9FAFC;" purpose="page-wrap">
|
|
|
|
<div style="background-color: #FFFFFF;" class="header" purpose="page-header">
|
|
<div style="max-width: 1248px; height: 94px;" class="container-fluid d-flex align-items-center justify-content-between pt-3 pb-3 px-3 px-md-4">
|
|
<a href="/" style="max-width: 118px;">
|
|
<img alt="Fleet logo" src="/images/logo-blue-162x92@2x.png" style="height: 92px; width: 162px;"/>
|
|
</a>
|
|
<div purpose="header-nav">
|
|
<a href="/logout" class="justify-content-end px-3 py-2 text-decoration-none <%= _.has(me, 'id') ? 'd-flex' : 'd-none' %>" style="text-decoration: none; line-height: 23px;">Log out</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<%- body %>
|
|
|
|
<div purpose="footer" style="position: absolute; bottom: 0px; width: 100%; height: 60px; color: #515774;">
|
|
<div style="max-width: 500px;" class="container-fluid">
|
|
<div style="font-size: 11px; line-height: 18px;" class="d-sm-flex d-block flex-sm-row justify-content-center mr-4 mr-md-auto">
|
|
<img alt="Creative Commons Licence CC BY-SA 4.0" src="/images/logo-creative-commons-160x30@2x.png" style="width: 80px; height: 15px;" class="mr-2 mb-2 mb-sm-0"/>
|
|
<div class="d-flex">
|
|
© 2022 Fleet Device Management Inc.
|
|
<a style="font-size: 12px; font-weight: 700; text-underline-offset: 5px; text-decoration: underline; color: #515774" class="ml-2" href="/legal/privacy">Privacy</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<% /*
|
|
Client-side JavaScript
|
|
========================
|
|
|
|
Scripts can be hard-coded as «script» tags, automatically injected
|
|
by the asset pipeline between "SCRIPTS" and "SCRIPTS END", or both.
|
|
(https://sailsjs.com/docs/concepts/assets/task-automation)
|
|
*/ %>
|
|
<% /* Cookie consent banner */ %>
|
|
<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/71bcdd51b166ceeb18bd0d28/script.js"></script>
|
|
<% /* Chat (Papercups) */ %>
|
|
<script>window.Papercups = { config: { accountId: '5b59eeac-1578-4fdb-b946-e17c1dca0c51', primaryColor:'#6A67FE', requireEmailUpfront: true } };</script>
|
|
<script type="text/javascript" async defer src="https://app.papercups.io/widget.js"></script>
|
|
|
|
<%/* Stripe.js */%>
|
|
<script src="https://js.stripe.com/v3/"></script>
|
|
|
|
<%/* Linkedin Ads Insight tag */%>
|
|
<script type="text/javascript">
|
|
_linkedin_partner_id = "4365817";
|
|
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
|
|
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
|
|
</script><script type="text/javascript">
|
|
(function(l) {
|
|
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
|
|
window.lintrk.q=[]}
|
|
var s = document.getElementsByTagName("script")[0];
|
|
var b = document.createElement("script");
|
|
b.type = "text/javascript";b.async = true;
|
|
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
|
|
s.parentNode.insertBefore(b, s);})(window.lintrk);
|
|
</script>
|
|
<noscript>
|
|
<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=4365817&fmt=gif" />
|
|
</noscript>
|
|
|
|
<% /* Delete the global `self` to help avoid client-side bugs.
|
|
(see https://developer.mozilla.org/en-US/docs/Web/API/Window/self) */ %>
|
|
<script>delete window.self;</script>
|
|
|
|
<%/* bowser.js (for browser detection) -- included inline to avoid issues with minification that could affect the unsupported browser overlay */%>
|
|
<script>!function(e,i,s){if("undefined"!=typeof module&&module.exports)module.exports=s();else if("function"==typeof define&&define.amd)define(i,s);else e[i]=s()}(this,"bowser",function(){var e=true;function i(i){function s(e){var s=i.match(e);return s&&s.length>1&&s[1]||""}function o(e){var s=i.match(e);return s&&s.length>1&&s[2]||""}var r=s(/(ipod|iphone|ipad)/i).toLowerCase(),n=/like android/i.test(i),t=!n&&/android/i.test(i),a=/nexus\s*[0-6]\s*/i.test(i),d=!a&&/nexus\s*[0-9]+/i.test(i),l=/CrOS/.test(i),f=/silk/i.test(i),m=/sailfish/i.test(i),v=/tizen/i.test(i),p=/(web|hpw)os/i.test(i),c=/windows phone/i.test(i),u=/SamsungBrowser/i.test(i),h=!c&&/windows/i.test(i),w=!r&&!f&&/macintosh/i.test(i),b=!t&&!m&&!v&&!p&&/linux/i.test(i),g=o(/edg([ea]|ios)\/(\d+(\.\d+)?)/i),k=s(/version\/(\d+(\.\d+)?)/i),x=/tablet/i.test(i)&&!/tablet pc/i.test(i),y=!x&&/[^-]mobi/i.test(i),S=/xbox/i.test(i),B;if(/opera/i.test(i))B={name:"Opera",opera:e,version:k||s(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)};else if(/opr\/|opios/i.test(i))B={name:"Opera",opera:e,version:s(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||k};else if(/SamsungBrowser/i.test(i))B={name:"Samsung Internet for Android",samsungBrowser:e,version:k||s(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)};else if(/coast/i.test(i))B={name:"Opera Coast",coast:e,version:k||s(/(?:coast)[\s\/](\d+(\.\d+)?)/i)};else if(/yabrowser/i.test(i))B={name:"Yandex Browser",yandexbrowser:e,version:k||s(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)};else if(/ucbrowser/i.test(i))B={name:"UC Browser",ucbrowser:e,version:s(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)};else if(/mxios/i.test(i))B={name:"Maxthon",maxthon:e,version:s(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)};else if(/epiphany/i.test(i))B={name:"Epiphany",epiphany:e,version:s(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)};else if(/puffin/i.test(i))B={name:"Puffin",puffin:e,version:s(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)};else if(/sleipnir/i.test(i))B={name:"Sleipnir",sleipnir:e,version:s(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)};else if(/k-meleon/i.test(i))B={name:"K-Meleon",kMeleon:e,version:s(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)};else if(c){B={name:"Windows Phone",osname:"Windows Phone",windowsphone:e};if(g){B.msedge=e;B.version=g}else{B.msie=e;B.version=s(/iemobile\/(\d+(\.\d+)?)/i)}}else if(/msie|trident/i.test(i))B={name:"Internet Explorer",msie:e,version:s(/(?:msie |rv:)(\d+(\.\d+)?)/i)};else if(l)B={name:"Chrome",osname:"Chrome OS",chromeos:e,chromeBook:e,chrome:e,version:s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)};else if(/edg([ea]|ios)/i.test(i))B={name:"Microsoft Edge",msedge:e,version:g};else if(/vivaldi/i.test(i))B={name:"Vivaldi",vivaldi:e,version:s(/vivaldi\/(\d+(\.\d+)?)/i)||k};else if(m)B={name:"Sailfish",osname:"Sailfish OS",sailfish:e,version:s(/sailfish\s?browser\/(\d+(\.\d+)?)/i)};else if(/seamonkey\//i.test(i))B={name:"SeaMonkey",seamonkey:e,version:s(/seamonkey\/(\d+(\.\d+)?)/i)};else if(/firefox|iceweasel|fxios/i.test(i)){B={name:"Firefox",firefox:e,version:s(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)};if(/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(i)){B.firefoxos=e;B.osname="Firefox OS"}}else if(f)B={name:"Amazon Silk",silk:e,version:s(/silk\/(\d+(\.\d+)?)/i)};else if(/phantom/i.test(i))B={name:"PhantomJS",phantom:e,version:s(/phantomjs\/(\d+(\.\d+)?)/i)};else if(/slimerjs/i.test(i))B={name:"SlimerJS",slimer:e,version:s(/slimerjs\/(\d+(\.\d+)?)/i)};else if(/blackberry|\bbb\d+/i.test(i)||/rim\stablet/i.test(i))B={name:"BlackBerry",osname:"BlackBerry OS",blackberry:e,version:k||s(/blackberry[\d]+\/(\d+(\.\d+)?)/i)};else if(p){B={name:"WebOS",osname:"WebOS",webos:e,version:k||s(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)};/touchpad\//i.test(i)&&(B.touchpad=e)}else if(/bada/i.test(i))B={name:"Bada",osname:"Bada",bada:e,version:s(/dolfin\/(\d+(\.\d+)?)/i)};else if(v)B={name:"Tizen",osname:"Tizen",tizen:e,version:s(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||k};else if(/qupzilla/i.test(i))B={name:"QupZilla",qupzilla:e,version:s(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||k};else if(/chromium/i.test(i))B={name:"Chromium",chromium:e,version:s(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||k};else if(/chrome|crios|crmo/i.test(i))B={name:"Chrome",chrome:e,version:s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)};else if(t)B={name:"Android",version:k};else if(/safari|applewebkit/i.test(i)){B={name:"Safari",safari:e};if(k)B.version=k}else if(r){B={name:"iphone"==r?"iPhone":"ipad"==r?"iPad":"iPod"};if(k)B.version=k}else if(/googlebot/i.test(i))B={name:"Googlebot",googlebot:e,version:s(/googlebot\/(\d+(\.\d+))/i)||k};else B={name:s(/^(.*)\/(.*) /),version:o(/^(.*)\/(.*) /)};if(!B.msedge&&/(apple)?webkit/i.test(i)){if(/(apple)?webkit\/537\.36/i.test(i)){B.name=B.name||"Blink";B.blink=e}else{B.name=B.name||"Webkit";B.webkit=e}if(!B.version&&k)B.version=k}else if(!B.opera&&/gecko\//i.test(i)){B.name=B.name||"Gecko";B.gecko=e;B.version=B.version||s(/gecko\/(\d+(\.\d+)?)/i)}if(!B.windowsphone&&(t||B.silk)){B.android=e;B.osname="Android"}else if(!B.windowsphone&&r){B[r]=e;B.ios=e;B.osname="iOS"}else if(w){B.mac=e;B.osname="macOS"}else if(S){B.xbox=e;B.osname="Xbox"}else if(h){B.windows=e;B.osname="Windows"}else if(b){B.linux=e;B.osname="Linux"}function O(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return undefined}}var T="";if(B.windows)T=O(s(/Windows ((NT|XP)( \d\d?.\d)?)/i));else if(B.windowsphone)T=s(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i);else if(B.mac){T=s(/Mac OS X (\d+([_\.\s]\d+)*)/i);T=T.replace(/[_\s]/g,".")}else if(r){T=s(/os (\d+([_\s]\d+)*) like mac os x/i);T=T.replace(/[_\s]/g,".")}else if(t)T=s(/android[ \/-](\d+(\.\d+)*)/i);else if(B.webos)T=s(/(?:web|hpw)os\/(\d+(\.\d+)*)/i);else if(B.blackberry)T=s(/rim\stablet\sos\s(\d+(\.\d+)*)/i);else if(B.bada)T=s(/bada\/(\d+(\.\d+)*)/i);else if(B.tizen)T=s(/tizen[\/\s](\d+(\.\d+)*)/i);if(T)B.osversion=T;var P=!B.windows&&T.split(".")[0];if(x||d||"ipad"==r||t&&(3==P||P>=4&&!y)||B.silk)B.tablet=e;else if(y||"iphone"==r||"ipod"==r||t||a||B.blackberry||B.webos||B.bada)B.mobile=e;if(B.msedge||B.msie&&B.version>=10||B.yandexbrowser&&B.version>=15||B.vivaldi&&B.version>=1||B.chrome&&B.version>=20||B.samsungBrowser&&B.version>=4||B.firefox&&B.version>=20||B.safari&&B.version>=6||B.opera&&B.version>=10||B.ios&&B.osversion&&B.osversion.split(".")[0]>=6||B.blackberry&&B.version>=10.1||B.chromium&&B.version>=20)B.a=e;else if(B.msie&&B.version<10||B.chrome&&B.version<20||B.firefox&&B.version<20||B.safari&&B.version<6||B.opera&&B.version<10||B.ios&&B.osversion&&B.osversion.split(".")[0]<6||B.chromium&&B.version<20)B.c=e;else B.x=e;return B}var s=i("undefined"!==typeof navigator?navigator.userAgent||"":"");s.test=function(e){for(var i=0;i<e.length;++i){var o=e[i];if("string"===typeof o)if(o in s)return true}return false};function o(e){return e.split(".").length}function r(e,i){var s=[],o;if(Array.prototype.map)return Array.prototype.map.call(e,i);for(o=0;o<e.length;o++)s.push(i(e[o]));return s}function n(e){var i=Math.max(o(e[0]),o(e[1]));var s=r(e,function(e){var s=i-o(e);e+=new Array(s+1).join(".0");return r(e.split("."),function(e){return new Array(20-e.length).join("0")+e}).reverse()});while(--i>=0)if(s[0][i]>s[1][i])return 1;else if(s[0][i]===s[1][i]){if(0===i)return 0}else return-1}function t(e,o,r){var t=s;if("string"===typeof o){r=o;o=void 0}if(void 0===o)o=false;if(r)t=i(r);var a=""+t.version;for(var d in e)if(e.hasOwnProperty(d))if(t[d]){if("string"!==typeof e[d])throw new Error("Browser version in the minVersion map should be a string: "+d+": "+String(e));return n([a,e[d]])<0}return o}function a(e,i,s){return!t(e,i,s)}s.isUnsupportedBrowser=t;s.compareVersions=n;s.check=a;s._detect=i;s.detect=i;return s});</script>
|
|
|
|
<% /* Auto-injected «script» tags: */ %>
|
|
<!--SCRIPTS-->
|
|
<script src="/dependencies/sails.io.js"></script>
|
|
<script src="/dependencies/lodash.js"></script>
|
|
<script src="/dependencies/jquery.min.js"></script>
|
|
<script src="/dependencies/vue.js"></script>
|
|
<script src="/dependencies/vue-router.js"></script>
|
|
<script src="/dependencies/bootstrap-4/bootstrap-4.bundle.js"></script>
|
|
<script src="/dependencies/chart.min.js"></script>
|
|
<script src="/dependencies/cloud.js"></script>
|
|
<script src="/dependencies/docsearch.min.js"></script>
|
|
<script src="/dependencies/highlight.min.js"></script>
|
|
<script src="/dependencies/mermaid.min.js"></script>
|
|
<script src="/dependencies/moment.js"></script>
|
|
<script src="/dependencies/parasails.js"></script>
|
|
<script src="/js/cloud.setup.js"></script>
|
|
<script src="/js/components/ajax-button.component.js"></script>
|
|
<script src="/js/components/ajax-form.component.js"></script>
|
|
<script src="/js/components/bar-chart.component.js"></script>
|
|
<script src="/js/components/call-to-action.component.js"></script>
|
|
<script src="/js/components/cloud-error.component.js"></script>
|
|
<script src="/js/components/js-timestamp.component.js"></script>
|
|
<script src="/js/components/modal.component.js"></script>
|
|
<script src="/js/components/stripe-card-element.component.js"></script>
|
|
<script src="/js/utilities/open-stripe-checkout.js"></script>
|
|
<script src="/js/pages/account/account-overview.page.js"></script>
|
|
<script src="/js/pages/account/edit-password.page.js"></script>
|
|
<script src="/js/pages/account/edit-profile.page.js"></script>
|
|
<script src="/js/pages/articles/articles.page.js"></script>
|
|
<script src="/js/pages/articles/basic-article.page.js"></script>
|
|
<script src="/js/pages/contact.page.js"></script>
|
|
<script src="/js/pages/customers/dashboard.page.js"></script>
|
|
<script src="/js/pages/customers/new-license.page.js"></script>
|
|
<script src="/js/pages/dashboard/welcome.page.js"></script>
|
|
<script src="/js/pages/docs/basic-documentation.page.js"></script>
|
|
<script src="/js/pages/entrance/confirmed-email.page.js"></script>
|
|
<script src="/js/pages/entrance/forgot-password.page.js"></script>
|
|
<script src="/js/pages/entrance/login.page.js"></script>
|
|
<script src="/js/pages/entrance/new-password.page.js"></script>
|
|
<script src="/js/pages/entrance/signup.page.js"></script>
|
|
<script src="/js/pages/faq.page.js"></script>
|
|
<script src="/js/pages/get-started.page.js"></script>
|
|
<script src="/js/pages/handbook/basic-handbook.page.js"></script>
|
|
<script src="/js/pages/homepage.page.js"></script>
|
|
<script src="/js/pages/landing.page.js"></script>
|
|
<script src="/js/pages/legal/privacy.page.js"></script>
|
|
<script src="/js/pages/legal/terms.page.js"></script>
|
|
<script src="/js/pages/platform.page.js"></script>
|
|
<script src="/js/pages/press-kit.page.js"></script>
|
|
<script src="/js/pages/pricing.page.js"></script>
|
|
<script src="/js/pages/query-detail.page.js"></script>
|
|
<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/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>
|
|
<script src="/js/pages/try-fleet/sandbox-login.page.js"></script>
|
|
<script src="/js/pages/try-fleet/sandbox-teleporter.page.js"></script>
|
|
<!--SCRIPTS END-->
|
|
|
|
<% /* Display an overlay if the current browser is not supported.
|
|
(Relies on `bowser`, which is loaded inline above.) */ %>
|
|
<script>
|
|
(function(){
|
|
if (typeof bowser !== 'undefined') {
|
|
// --------------------------------------------------------------------
|
|
// Additional compatibility tips:
|
|
//
|
|
// • The browser/OS compatibility below is determined by the needs of Vue.js and Bootstrap.js.
|
|
// • All browsers on Windows XP are probably unsupported (because of compatibility issues with modern SSL certs)
|
|
// • See https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/
|
|
// • See also https://github.com/vuejs/vue/tree/0e5306658ad7b83c553a6a3eeedb15f9066ab063#browser-compatibility
|
|
// • For more info, see:
|
|
// - https://github.com/lancedikson/bowser/blob/1fb99ced0e8834fd9662604bad7e0f0c3eba2786/test/test.js#L110-L123
|
|
// - https://github.com/lancedikson/bowser/tree/1fb99ced0e8834fd9662604bad7e0f0c3eba2786#rendering-engine-flags
|
|
// --------------------------------------------------------------------
|
|
var LATEST_SUPPORTED_VERSION_BY_OS = {
|
|
iOS: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect
|
|
Android: '6'
|
|
};
|
|
var LATEST_SUPPORTED_VERSION_BY_USER_AGENT = {
|
|
msedge: '16',
|
|
// msie: '11',
|
|
safari: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect
|
|
firefox: '54',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
chrome: '51',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
opera: '38',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
};
|
|
var LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME = {
|
|
'microsoft edge': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msedge,
|
|
// 'internet explorer': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msie,
|
|
'safari': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.safari,
|
|
'firefox': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.firefox,
|
|
'chrome': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.chrome,
|
|
'opera': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.opera
|
|
};
|
|
var isUnsupportedBrowser = (
|
|
bowser.isUnsupportedBrowser(LATEST_SUPPORTED_VERSION_BY_USER_AGENT, window.navigator.userAgent) || bowser.msie
|
|
);
|
|
var isUnsupportedOS = (
|
|
LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname] &&
|
|
bowser.compareVersions([bowser.osversion, LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname]]) < 0
|
|
);
|
|
if (isUnsupportedBrowser || isUnsupportedOS) {
|
|
document.body.innerHTML =
|
|
'<div class="container browser-warning-message text-center">'+
|
|
' <a href="https://sailsjs.com/support">'+
|
|
'<img style="display: block; height: 75px; width: auto; margin: 0 auto 15px;" alt="Logo" src="data:image/png;base64,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"/>'+
|
|
'</a>'+
|
|
' <h5 class="card-title">This '+(isUnsupportedBrowser ? 'browser' : 'operating system')+' is not supported.</h5>'+
|
|
' <p style="max-width: 500px; margin-left: auto; margin-right: auto;">'+
|
|
' This app does not currently support '+(
|
|
isUnsupportedBrowser?
|
|
(bowser.msie?
|
|
'<strong>'+bowser.name+'</strong><br>'+ 'To continue, please use a supported browser, or download the <a href="https://www.google.com/chrome">latest version of Google Chrome</a>.'+
|
|
' </p>'+
|
|
' <a class="btn btn-primary" style="padding: 5px 10px" href="https://www.google.com/chrome">Download Chrome</a>'
|
|
:
|
|
'<strong>'+bowser.name+'</strong> for versions lower than <strong>v'+ LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME[bowser.name.toLowerCase()]+'</strong>. '+
|
|
'To continue, please upgrade your browser to the newest version, or download the <a href="https://www.google.com/chrome">latest version of Google Chrome</a>.'+
|
|
' </p>'+
|
|
' <a class="btn btn-primary" style="padding: 5px 10px" href="https://www.google.com/chrome">Download Chrome</a>'
|
|
)
|
|
:
|
|
'<strong>'+bowser.osname+'</strong> for versions lower than <strong>v'+ LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname]+'</strong>. '+
|
|
'To continue, please use a different device, or <a href="'+(bowser.osname === 'iOS' ? 'https://support.apple.com/en-us/HT204204' : 'https://support.google.com/android/?hl=en#topic=7313011')+'">upgrade this device\'s software</a> to the latest compatible version.'+
|
|
' </p>'+
|
|
' <a class="btn btn-primary" style="padding: 5px 10px" href="/contact">Need help?</a>'
|
|
)+
|
|
'</div>';
|
|
document.body.style.padding = '75px 0';
|
|
}
|
|
}
|
|
})();
|
|
</script>
|
|
|
|
<% /* Keep footer hidden until the document is ready (prevents flicker that is especially unattractive on mobile) */ %>
|
|
<script>
|
|
$(function() {
|
|
$('[data-hide-until-rendered]').removeClass('invisible'); // Note: invisible is a bootstrap 4 class
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|