From 9c2f6e591d0a646c1871835a1bbe946330aae85f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 21 Jan 2018 00:39:56 -0800 Subject: [PATCH] Run Hass.io panel in an iframe (#678) * Run Hass.io in an iframe * Update hass.io build script * Lint * Lint * Fix build script * Lint --- .gitignore | 1 + gulp/tasks/hassio-panel.js | 57 +++++++++------ .../addon-store/hassio-addon-repository.html | 10 +-- .../hassio-addon-store-overview.html | 12 +-- .../addon-store/hassio-addon-store-view.html | 14 ++-- .../addon-store/hassio-addon-store.html | 14 ++-- .../hassio-repositories-editor.html | 8 +- .../addon-view/hassio-addon-info.html | 22 +++--- .../addon-view/hassio-addon-logs.html | 6 +- .../addon-view/hassio-addon-network.html | 10 +-- .../addon-view/hassio-addon-options.html | 12 +-- .../addon-view/hassio-addon-view.html | 12 +-- .../advanced/hassio-advanced.html | 14 ++-- .../advanced/hassio-hass-info.html | 8 +- .../advanced/hassio-host-info.html | 6 +- .../advanced/hassio-supervisor-info.html | 8 +- .../dashboard/hassio-addons.html | 10 +-- .../dashboard/hassio-dashboard.html | 24 +++--- .../dashboard/hassio-hass-update.html | 8 +- hassio/hassio-app.html | 52 +++++++++++++ {panels/hassio => hassio}/hassio-data.html | 2 +- {panels/hassio => hassio}/hassio-main.html | 13 ++-- hassio/index.html | 37 ++++++++++ .../snapshot/hassio-snapshot.html | 22 +++--- .../supervisor/hassio-supervisor.html | 12 +-- package.json | 3 +- panels/hassio/ha-panel-hassio.html | 73 +++++++++++++------ panels/map/ha-panel-map.html | 2 +- yarn.lock | 17 +++++ 29 files changed, 318 insertions(+), 171 deletions(-) rename {panels/hassio => hassio}/addon-store/hassio-addon-repository.html (83%) rename {panels/hassio => hassio}/addon-store/hassio-addon-store-overview.html (83%) rename {panels/hassio => hassio}/addon-store/hassio-addon-store-view.html (85%) rename {panels/hassio => hassio}/addon-store/hassio-addon-store.html (82%) rename {panels/hassio => hassio}/addon-store/hassio-repositories-editor.html (82%) rename {panels/hassio => hassio}/addon-view/hassio-addon-info.html (87%) rename {panels/hassio => hassio}/addon-view/hassio-addon-logs.html (82%) rename {panels/hassio => hassio}/addon-view/hassio-addon-network.html (88%) rename {panels/hassio => hassio}/addon-view/hassio-addon-options.html (82%) rename {panels/hassio => hassio}/addon-view/hassio-addon-view.html (86%) rename {panels/hassio => hassio}/advanced/hassio-advanced.html (76%) rename {panels/hassio => hassio}/advanced/hassio-hass-info.html (86%) rename {panels/hassio => hassio}/advanced/hassio-host-info.html (92%) rename {panels/hassio => hassio}/advanced/hassio-supervisor-info.html (89%) rename {panels/hassio => hassio}/dashboard/hassio-addons.html (81%) rename {panels/hassio => hassio}/dashboard/hassio-dashboard.html (75%) rename {panels/hassio => hassio}/dashboard/hassio-hass-update.html (83%) create mode 100644 hassio/hassio-app.html rename {panels/hassio => hassio}/hassio-data.html (93%) rename {panels/hassio => hassio}/hassio-main.html (90%) create mode 100644 hassio/index.html rename {panels/hassio => hassio}/snapshot/hassio-snapshot.html (82%) rename {panels/hassio => hassio}/supervisor/hassio-supervisor.html (74%) diff --git a/.gitignore b/.gitignore index 975bff0f78..8f5f200290 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ build-temp/* build-es5/* build-temp-es5/* build-translations/* +build-hassio/* node_modules/* bower_components/* npm-debug.log diff --git a/gulp/tasks/hassio-panel.js b/gulp/tasks/hassio-panel.js index 2a5517a105..803a4b67be 100755 --- a/gulp/tasks/hassio-panel.js +++ b/gulp/tasks/hassio-panel.js @@ -1,5 +1,9 @@ +const del = require('del'); const gulp = require('gulp'); const rename = require('gulp-rename'); +const gzip = require('gulp-gzip'); +const path = require('path'); +const runSequence = require('run-sequence'); const { stripImportsStrategy, @@ -7,39 +11,44 @@ const { const minifyStream = require('../common/transform').minifyStream; const { bundledStreamFromHTML, - findDependencies } = require('../common/html'); -const { polymer_dir } = require('../config'); +const OUTPUT_DIR = 'build-hassio/'; const DEPS_TO_STRIP = [ 'bower_components/font-roboto/roboto.html', 'bower_components/paper-styles/color.html', - 'bower_components/iron-meta/iron-meta.html', -]; -const DEPS_TO_STRIP_RECURSIVELY = [ - 'bower_components/polymer/polymer.html', ]; -async function buildHassioPanel(es6) { - const toStrip = [...DEPS_TO_STRIP]; - - for (const dep of DEPS_TO_STRIP_RECURSIVELY) { - toStrip.push(dep); - const deps = await findDependencies(polymer_dir, dep); - for (const importUrl of deps) { - toStrip.push(importUrl); - } - } - - const stream = await bundledStreamFromHTML('panels/hassio/hassio-main.html', { - strategy: stripImportsStrategy(toStrip) +async function buildHassioPanel() { + const stream = await bundledStreamFromHTML('hassio/hassio-app.html', { + strategy: stripImportsStrategy(DEPS_TO_STRIP) }); - return minifyStream(stream, es6) - .pipe(rename('hassio-main.html')) - .pipe(gulp.dest(es6 ? 'build-temp' : 'build-temp-es5')); + return minifyStream(stream, /* es6= */ false) + .pipe(rename('hassio-app.html')) + .pipe(gulp.dest(OUTPUT_DIR)); } -gulp.task('hassio-panel-es5', buildHassioPanel.bind(null, /* es6= */ false)); -gulp.task('hassio-panel', buildHassioPanel.bind(null, /* es6= */ true)); +function copyHassioIndex() { + return gulp.src('hassio/index.html') + .pipe(gulp.dest(OUTPUT_DIR)); +} + +function gzipOutput() { + return gulp.src(path.resolve(OUTPUT_DIR, '*.html')) + .pipe(gzip({ skipGrowingFiles: true })) + .pipe(gulp.dest(OUTPUT_DIR)); +} + +gulp.task('hassio-clean', () => del([OUTPUT_DIR])); +gulp.task('hassio-panel-es5', buildHassioPanel); +gulp.task('hassio-index-es5', copyHassioIndex); +gulp.task('hassio-gzip-es5', gzipOutput); + +gulp.task('hassio-es5', () => runSequence.use(gulp)( + 'hassio-clean', + 'hassio-panel-es5', + 'hassio-index-es5', + 'hassio-gzip-es5', +)); diff --git a/panels/hassio/addon-store/hassio-addon-repository.html b/hassio/addon-store/hassio-addon-repository.html similarity index 83% rename from panels/hassio/addon-store/hassio-addon-repository.html rename to hassio/addon-store/hassio-addon-repository.html index 4b28d83e6b..4006a2a953 100644 --- a/panels/hassio/addon-store/hassio-addon-repository.html +++ b/hassio/addon-store/hassio-addon-repository.html @@ -1,9 +1,9 @@ - - - - + + + + - +