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;