diff --git a/css/dashboard.css b/css/dashboard.css
index 91ba618..8f12c4c 100644
--- a/css/dashboard.css
+++ b/css/dashboard.css
@@ -419,6 +419,7 @@ input[type=range]::-moz-range-thumb {
.icon.air_filter:before { content: "\F0D43"; }
.icon.air_purifier:before { content: "\F0D44"; }
.icon.alarm_snooze:before { content: "\F068E"; }
+.icon.alert:before { content: "\F0026"; }
.icon.alpha_b:before { content: "\F0AEF"; }
.icon.alpha_b_box:before { content: "\F0B09"; }
.icon.arrow_down:before { content: "\F0045"; }
diff --git a/js/beestat/platform.js b/js/beestat/platform.js
new file mode 100644
index 0000000..42eec92
--- /dev/null
+++ b/js/beestat/platform.js
@@ -0,0 +1,4 @@
+beestat.platform = function() {
+ const url_parameters = new URLSearchParams(window.location.search);
+ return url_parameters.get('platform');
+};
diff --git a/js/component/header.js b/js/component/header.js
index e5fbf81..2baa458 100644
--- a/js/component/header.js
+++ b/js/component/header.js
@@ -192,9 +192,7 @@ beestat.component.header.prototype.decorate_ = function(parent) {
(new beestat.layer.settings()).render();
}));
- const url_parameters = new URLSearchParams(window.location.search);
- const platform = url_parameters.get('platform');
- if (platform === 'ios' || platform === 'android') {
+ if (beestat.platform() === 'ios' || beestat.platform() === 'android') {
menu.add_menu_item(new beestat.component.menu_item()
.set_text('Open Ecobee App')
.set_icon('open_in_app')
diff --git a/js/component/modal/download_data.js b/js/component/modal/download_data.js
index a045479..5fd08e4 100644
--- a/js/component/modal/download_data.js
+++ b/js/component/modal/download_data.js
@@ -20,6 +20,7 @@ beestat.component.modal.download_data.prototype.decorate_contents_ = function(pa
parent.appendChild($.createElement('p').innerHTML('Beestat stores, at a minimum, the past year of raw thermostat logs. Select a date range to download.'));
this.decorate_range_(parent);
this.decorate_presets_(parent);
+ this.decorate_android_ios_disabled_(parent);
this.decorate_error_(parent);
// Fire off this event once to get everything updated.
@@ -201,6 +202,25 @@ beestat.component.modal.download_data.prototype.decorate_presets_ = function(par
tile_group.render(column);
};
+/**
+ * Decorate the disabled notice for Android and iOS.
+ *
+ * @param {rocket.Elements} parent
+ */
+beestat.component.modal.download_data.prototype.decorate_android_ios_disabled_ = function(parent) {
+ if (beestat.platform() === 'ios' || beestat.platform() === 'android') {
+ new beestat.component.tile()
+ .set_icon('alert')
+ .set_size('large')
+ .set_display('block')
+ .set_shadow(false)
+ .set_background_color(beestat.style.color.red.base)
+ .set_text('Download Data is only available when using beestat directly in your browser. Sorry! :(')
+ .set_text_color('#fff')
+ .render(parent);
+ }
+};
+
/**
* Decorate the error area.
*
@@ -253,32 +273,39 @@ beestat.component.modal.download_data.prototype.get_buttons_ = function() {
});
var save = new beestat.component.tile()
- .set_background_color(beestat.style.color.green.base)
- .set_background_hover_color(beestat.style.color.green.light)
.set_text_color('#fff')
- .set_text('Download')
- .addEventListener('click', function() {
- var range_begin;
- var range_end;
- if (self.state_.range_end.isBefore(self.state_.range_begin) === true) {
- range_begin = self.state_.range_end;
- range_end = self.state_.range_begin;
- } else {
- range_begin = self.state_.range_begin;
- range_end = self.state_.range_end;
- }
+ .set_text('Download');
- var download_arguments = {
- 'thermostat_id': beestat.setting('thermostat_id'),
- 'download_begin': range_begin.format(),
- 'download_end': range_end.hour(23).minute(55)
- .format()
- };
+ if (beestat.platform() === 'ios' || beestat.platform() === 'android') {
+ save
+ .set_background_color(beestat.style.color.gray.light);
+ } else {
+ save
+ .set_background_color(beestat.style.color.green.base)
+ .set_background_hover_color(beestat.style.color.green.light)
+ .addEventListener('click', function() {
+ var range_begin;
+ var range_end;
+ if (self.state_.range_end.isBefore(self.state_.range_begin) === true) {
+ range_begin = self.state_.range_end;
+ range_end = self.state_.range_begin;
+ } else {
+ range_begin = self.state_.range_begin;
+ range_end = self.state_.range_end;
+ }
- window.location.href = '/api/?resource=runtime&method=download&arguments=' + encodeURIComponent(JSON.stringify(download_arguments)) + '&api_key=' + window.beestat_api_key_local;
+ var download_arguments = {
+ 'thermostat_id': beestat.setting('thermostat_id'),
+ 'download_begin': range_begin.format(),
+ 'download_end': range_end.hour(23).minute(55)
+ .format()
+ };
- self.dispose();
- });
+ window.location.href = '/api/?resource=runtime&method=download&arguments=' + encodeURIComponent(JSON.stringify(download_arguments)) + '&api_key=' + window.beestat_api_key_local;
+
+ self.dispose();
+ });
+ }
return [
cancel,
diff --git a/js/js.php b/js/js.php
index 89a6e51..4407c01 100755
--- a/js/js.php
+++ b/js/js.php
@@ -49,6 +49,7 @@ if($setting->get('environment') === 'dev' || $setting->get('environment') === 'd
echo '' . PHP_EOL;
echo '' . PHP_EOL;
echo '' . PHP_EOL;
+ echo '' . PHP_EOL;
// Layer
echo '' . PHP_EOL;