Skip to content

Commit ccfcc65

Browse files
authored
Website: add /capex-savings page (fleetdm#50272)
Changes: - Added a new landing page: /capex-savings <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a CapEx savings page available at `/capex-savings`. * Added guidance on device refresh cycles, hardware performance, and recommended replacement timing. * Added a savings calculator for device cost, refresh cycle, and fleet size, with estimated annual savings and assumptions. * Added responsive layouts, imagery, calls to action, and mobile-friendly calculator controls. * Added supporting content on refresh recommendations, Fleet hardware performance, and device lifecycle planning. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 3e88417 commit ccfcc65

15 files changed

Lines changed: 734 additions & 0 deletions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module.exports = {
2+
3+
4+
friendlyName: 'View capex savings',
5+
6+
7+
description: 'Display "Capex savings" page.',
8+
9+
10+
exits: {
11+
12+
success: {
13+
viewTemplatePath: 'pages/capex-savings'
14+
}
15+
16+
},
17+
18+
19+
fn: async function () {
20+
21+
// Respond with view.
22+
return {};
23+
24+
}
25+
26+
27+
};
5.93 KB
Loading
666 Bytes
Loading
406 Bytes
Loading
49.7 KB
Loading
54.3 KB
Loading
33.8 KB
Loading
46.5 KB
Loading
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
parasails.registerPage('capex-savings', {
2+
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
3+
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
4+
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
5+
data: {
6+
costPerDevice: 3300,
7+
currentCycleYears: 3,
8+
deviceCount: 2000,
9+
},
10+
11+
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
12+
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
13+
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
14+
beforeMount: function() {
15+
//…
16+
},
17+
mounted: async function() {
18+
//…
19+
},
20+
21+
// ╔═╗╔═╗╔╦╗╔═╗╦ ╦╔╦╗╔═╗╔╦╗
22+
// ║ ║ ║║║║╠═╝║ ║ ║ ║╣ ║║
23+
// ╚═╝╚═╝╩ ╩╩ ╚═╝ ╩ ╚═╝═╩╝
24+
computed: {
25+
// Slider label for the cost input (e.g. "$3,300").
26+
formattedCostPerDevice: function() {
27+
return '$' + Number(this.costPerDevice).toLocaleString('en-US');
28+
},
29+
calculatorResult: function() {
30+
let cost = Number(this.costPerDevice);
31+
let cycleYears = Number(this.currentCycleYears);
32+
let devices = Math.max(1, Number(this.deviceCount) || 0);
33+
// Monthly cost on the current cycle vs. the same cycle + 1 year.
34+
let monthlyCurrent = cost / (cycleYears * 12);
35+
let monthlyExtended = cost / ((cycleYears + 1) * 12);
36+
let savingsPerDeviceMonthly = monthlyCurrent - monthlyExtended;
37+
let fleetSavingsYearly = savingsPerDeviceMonthly * devices * 12;
38+
return '$' + Math.round(fleetSavingsYearly).toLocaleString('en-US');
39+
},
40+
},
41+
42+
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
43+
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
44+
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
45+
methods: {
46+
//…
47+
}
48+
});

website/assets/styles/importer.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,5 @@
117117
@import 'pages/visibility-and-reporting.less';
118118
@import 'pages/security-and-control.less';
119119
@import 'pages/ai-in-it.less';
120+
@import 'pages/capex-savings.less';
120121

0 commit comments

Comments
 (0)