Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
edecf9d
Improve customize.yaml non-inclusion warning message
scop Oct 13, 2019
5f29b66
Further tweak the message
scop Oct 13, 2019
88567df
Prettier
scop Oct 14, 2019
ce6a97d
Merge pull request #3995 from scop/customize-yaml-message
bramkragten Oct 14, 2019
555b746
Allow device actions to specify extra fields (#4002)
emontnemery Oct 14, 2019
9d3dfad
Update integration-badge.ts (#4001)
bramkragten Oct 14, 2019
59e4cdc
Added integration name to System Options dialog (#3996)
springstan Oct 14, 2019
424d677
Alarm Panel card: number buttons outline and adjusted padding and fon…
mr-awk Oct 14, 2019
49d69f6
add show_state option for picture-glance entities (#3937)
iantrich Oct 15, 2019
a39e47c
Updates alarm more-info dialog button styles to match lovelace card (…
joshmcrty Oct 15, 2019
ea5ee61
filter system users from Person editor (#3958)
iantrich Oct 16, 2019
fb58933
display card errors with yaml config (#4018)
iantrich Oct 16, 2019
df29a5b
Add double tap action (#3879)
iantrich Oct 16, 2019
c9242a5
Custom badges (#3867)
iantrich Oct 16, 2019
8eca956
Uses information-outline icon for entity more info link (#4016)
joshmcrty Oct 16, 2019
4ea483e
Switch theme (#4017)
iantrich Oct 16, 2019
141c3f1
add confirmation option to actions (#4006)
iantrich Oct 16, 2019
f5e3a9a
Convert thermostat to round-slider (#3734)
iantrich Oct 17, 2019
982966c
Translated developer tools events page (#4033)
springstan Oct 17, 2019
035057b
Made thermostat history graph localizable (#4004)
springstan Oct 17, 2019
00f2d36
Migrate ha-form to lit (#4000)
bramkragten Oct 18, 2019
67d8d48
translate view editor and explain panel mode (#4043)
iantrich Oct 18, 2019
e2ac842
Translated developer tools state page (#4039)
springstan Oct 18, 2019
d012512
add feature request template (#4026)
iantrich Oct 18, 2019
880b382
Translated developer tools logs page (#4046)
springstan Oct 18, 2019
0005c75
fix double tap on glance entity (#4051)
iantrich Oct 18, 2019
be4d431
more-info dialog for counter (#4038)
iantrich Oct 18, 2019
5a957c3
Add width property to light card to fix #3964 (#3972)
shbatm Oct 18, 2019
60b3a96
Translated developer tools mqtt page (#4052)
springstan Oct 18, 2019
cc12dbb
Translated developer tools services page (#4049)
springstan Oct 18, 2019
4421711
Translated developer tools template page (#4050)
springstan Oct 18, 2019
c437cd3
Use only decorators (#4058)
balloob Oct 19, 2019
d05dc2e
Bring back babel (#3974)
bramkragten Oct 19, 2019
e3ed0cf
Hide save on card configuration if no card is picked (#4062)
pdong Oct 19, 2019
0a77728
Move Home Assistant and version on info page into h2 (#4061)
pdong Oct 19, 2019
fbee493
add icon option to entities card name (#4024)
iantrich Oct 19, 2019
bbc3e7d
Make updateHass not async (#4060)
balloob Oct 19, 2019
603240c
Translated developer tools info page (#4054)
springstan Oct 19, 2019
4dbf532
Update snapshot actions to be a list (#4045)
pdong Oct 19, 2019
785453a
Clean up mixins (#4076)
balloob Oct 20, 2019
c25f2d3
Move compression from Webpack to Gulp (#4074)
balloob Oct 20, 2019
b96b026
Add hovers (title attrs) to buttons on integrations config entry (#4059)
pdong Oct 20, 2019
96d14b7
Changed outdated "GUI editor" reference to "visual editor" (#4068)
SeanPM5 Oct 20, 2019
6d10a5d
Split data table background color into separate theme variable (#4031)
theaquarium Oct 21, 2019
5e3cb81
Fix `yaml` name collision in card editor (#4079)
bramkragten Oct 21, 2019
540f1d9
Fix for Zone icon visibility on Map panel and Lovelace Map card (#4085)
springstan Oct 21, 2019
0078b48
card level themes (#4057)
iantrich Oct 21, 2019
be678b0
Convert more-info-weather to LitElement (#4073)
iantrich Oct 21, 2019
3c0ba1d
Convert more-info-sun to Lit (#4075)
iantrich Oct 21, 2019
c25a38b
add actions to state-badge element and state-label-badge (default Lov…
iantrich Oct 21, 2019
3973374
Add positive_time_period_dict to ha-form (#4090)
bramkragten Oct 21, 2019
2424376
Change ha-device-picker to combo box + improve name handling + show a…
bramkragten Oct 21, 2019
0621218
Changed button to text (#4067)
drakeloud Oct 21, 2019
70d6c6b
Refactor Webpack build scripts (#4093)
balloob Oct 21, 2019
8ac278b
Remove unused deps
balloob Oct 21, 2019
a8d0a22
revert lovelace selectable text (#4095)
iantrich Oct 21, 2019
fdbe89e
Fix develop build
balloob Oct 21, 2019
b0fce93
Fix issue where long states do not wrap (#4101)
pdong Oct 22, 2019
731bb17
Fix link to translation documentation (#4098)
theaquarium Oct 22, 2019
11c08e9
Added view title to heading of Lovelace Add Card picker (#4083)
springstan Oct 22, 2019
7b52015
added title to view configuation (#4037)
drakeloud Oct 22, 2019
d4d6b7e
Fix delete button styling in hui-edit-view (#4102)
bramkragten Oct 22, 2019
bb73039
Confirmation Dialog (#4053)
timmo001 Oct 22, 2019
49d0f23
add sensor card to first demo (#4035)
iantrich Oct 22, 2019
1e7497a
Revise hassio update card design (#4041)
joshmcrty Oct 22, 2019
06d59b3
Adds a white background to the QR code for MFA (#4107)
joshmcrty Oct 22, 2019
0792278
Fix more integrations message (#4106)
bramkragten Oct 22, 2019
e435b91
Clean up device card (#4108)
bramkragten Oct 22, 2019
39d0522
support actions on rows (#4023)
iantrich Oct 23, 2019
b34b52f
Update translations
bramkragten Oct 23, 2019
73c56a6
Bumped version to 20191023.0
bramkragten Oct 23, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: bug
assignees: ""
---

<!-- READ THIS FIRST:
- If you need additional help with this template please refer to https://www.home-assistant.io/help/reporting_issues/
- Make sure you are running the latest version of Home Assistant before reporting an issue: https://github.com/home-assistant/home-assistant/releases
- Provide as many details as possible. Do not delete any text from this template!
-->

**Checklist:**

- [ ] I updated to the latest version available
- [ ] I cleared the cache of my browser

**Home Assistant release with the issue:**

<!--
- Frontend -> Developer tools -> Info
- Or use this command: hass --version
Expand All @@ -13,22 +27,25 @@
**Last working Home Assistant release (if known):**

**UI (States or Lovelace UI?):**

<!--
- Frontend -> Developer tools -> Info
-->

**Browser and Operating System:**

<!--
Provide details about what browser (and version) you are seeing the issue in. And also which operating system this is on. If possible try to replicate the issue in other browsers and include your findings here.
-->

**Description of problem:**

<!--
Explain what the issue is, and how things should look/behave. If possible provide a screenshot with a description.
-->


**Javascript errors shown in the web inspector (if applicable):**

```

```
Expand Down
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: feature request
assignees: ""
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
7 changes: 4 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,20 @@ install: yarn install
script:
- npm run build
- hassio/script/build_hassio
# Because else eslint fails because hassio has cleaned that build
- ./node_modules/.bin/gulp gen-icons-app
- npm run test
# - xvfb-run wct --module-resolution=node --npm
# - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct --module-resolution=node --npm --plugin sauce; fi'
services:
- docker
before_deploy:
- 'docker pull lokalise/lokalise-cli@sha256:2198814ebddfda56ee041a4b427521757dd57f75415ea9693696a64c550cef21'
- "docker pull lokalise/lokalise-cli@sha256:2198814ebddfda56ee041a4b427521757dd57f75415ea9693696a64c550cef21"
deploy:
provider: script
script: script/travis_deploy
'on':
"on":
branch: master
dist: trusty
addons:
sauce_connect: true

14 changes: 13 additions & 1 deletion build-scripts/babel.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports.babelLoaderConfig = ({ latestBuild }) => {
throw Error("latestBuild not defined for babel loader config");
}
return {
test: /\.m?js$/,
test: /\.m?js$|\.tsx?$/,
use: {
loader: "babel-loader",
options: {
Expand All @@ -12,6 +12,12 @@ module.exports.babelLoaderConfig = ({ latestBuild }) => {
require("@babel/preset-env").default,
{ modules: false },
],
[
require("@babel/preset-typescript").default,
{
jsxPragma: "h",
},
],
].filter(Boolean),
plugins: [
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
Expand All @@ -21,6 +27,12 @@ module.exports.babelLoaderConfig = ({ latestBuild }) => {
],
// Only support the syntax, Webpack will handle it.
"@babel/syntax-dynamic-import",
[
"@babel/transform-react-jsx",
{
pragma: "h",
},
],
[
require("@babel/plugin-proposal-decorators").default,
{ decoratorsBeforeExport: true },
Expand Down
6 changes: 6 additions & 0 deletions build-scripts/env.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
isProdBuild: process.env.NODE_ENV === "production",
isStatsBuild: process.env.STATS === "1",
isTravis: process.env.TRAVIS === "true",
isNetlify: process.env.NETLIFY === "true",
};
15 changes: 8 additions & 7 deletions build-scripts/gulp/app.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
// Run HA develop mode
const gulp = require("gulp");

const envVars = require("../env");

require("./clean.js");
require("./translations.js");
require("./gen-icons.js");
require("./gather-static.js");
require("./compress.js");
require("./webpack.js");
require("./service-worker.js");
require("./entry-html.js");
Expand All @@ -18,7 +21,7 @@ gulp.task(
"clean",
gulp.parallel(
"gen-service-worker-dev",
"gen-icons",
gulp.parallel("gen-icons-app", "gen-icons-mdi"),
"gen-pages-dev",
"gen-index-app-dev",
gulp.series("create-test-translation", "build-translations")
Expand All @@ -35,13 +38,11 @@ gulp.task(
process.env.NODE_ENV = "production";
},
"clean",
gulp.parallel("gen-icons", "build-translations"),
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
"copy-static",
gulp.parallel(
"webpack-prod-app",
// Do not compress static files in CI, it's SLOW.
...(process.env.CI === "true" ? [] : ["compress-static"])
),
"webpack-prod-app",
...// Don't compress running tests
(envVars.isTravis ? [] : ["compress-app"]),
gulp.parallel(
"gen-pages-prod",
"gen-index-app-prod",
Expand Down
10 changes: 7 additions & 3 deletions build-scripts/gulp/cast.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// Run cast develop mode
const gulp = require("gulp");

require("./clean.js");
Expand All @@ -16,7 +15,12 @@ gulp.task(
process.env.NODE_ENV = "development";
},
"clean-cast",
gulp.parallel("gen-icons", "gen-index-cast-dev", "build-translations"),
gulp.parallel(
"gen-icons-app",
"gen-icons-mdi",
"gen-index-cast-dev",
"build-translations"
),
"copy-static-cast",
"webpack-dev-server-cast"
)
Expand All @@ -29,7 +33,7 @@ gulp.task(
process.env.NODE_ENV = "production";
},
"clean-cast",
gulp.parallel("gen-icons", "build-translations"),
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
"copy-static-cast",
"webpack-prod-cast",
"gen-index-cast-prod"
Expand Down
16 changes: 16 additions & 0 deletions build-scripts/gulp/clean.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,31 @@ gulp.task(
return del([config.root, config.build_dir]);
})
);

gulp.task(
"clean-demo",
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
return del([config.demo_root, config.build_dir]);
})
);

gulp.task(
"clean-cast",
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
return del([config.cast_root, config.build_dir]);
})
);

gulp.task(
"clean-hassio",
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
return del([config.hassio_root, config.build_dir]);
})
);

gulp.task(
"clean-gallery",
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
return del([config.gallery_root, config.build_dir]);
})
);
38 changes: 38 additions & 0 deletions build-scripts/gulp/compress.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Tasks to compress

const gulp = require("gulp");
const zopfli = require("gulp-zopfli-green");
const merge = require("merge-stream");
const path = require("path");
const paths = require("../paths");

gulp.task("compress-app", function compressApp() {
const jsLatest = gulp
.src(path.resolve(paths.output, "**/*.js"))
.pipe(zopfli())
.pipe(gulp.dest(paths.output));

const jsEs5 = gulp
.src(path.resolve(paths.output_es5, "**/*.js"))
.pipe(zopfli())
.pipe(gulp.dest(paths.output_es5));

const polyfills = gulp
.src(path.resolve(paths.static, "polyfills/*.js"))
.pipe(zopfli())
.pipe(gulp.dest(path.resolve(paths.static, "polyfills")));

const translations = gulp
.src(path.resolve(paths.static, "translations/*.json"))
.pipe(zopfli())
.pipe(gulp.dest(path.resolve(paths.static, "translations")));

return merge(jsLatest, jsEs5, polyfills, translations);
});

gulp.task("compress-hassio", function compressApp() {
return gulp
.src(path.resolve(paths.hassio_root, "**/*.js"))
.pipe(zopfli())
.pipe(gulp.dest(paths.hassio_root));
});
10 changes: 8 additions & 2 deletions build-scripts/gulp/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ gulp.task(
},
"clean-demo",
gulp.parallel(
"gen-icons",
"gen-icons-app",
"gen-icons-mdi",
"gen-icons-demo",
"gen-index-demo-dev",
"build-translations"
Expand All @@ -34,7 +35,12 @@ gulp.task(
process.env.NODE_ENV = "production";
},
"clean-demo",
gulp.parallel("gen-icons", "gen-icons-demo", "build-translations"),
gulp.parallel(
"gen-icons-app",
"gen-icons-mdi",
"gen-icons-demo",
"build-translations"
),
"copy-static-demo",
"webpack-prod-demo",
"gen-index-demo-prod"
Expand Down
46 changes: 37 additions & 9 deletions build-scripts/gulp/entry-html.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ const config = require("../paths.js");
const templatePath = (tpl) =>
path.resolve(config.polymer_dir, "src/html/", `${tpl}.html.template`);

const demoTemplatePath = (tpl) =>
path.resolve(config.demo_dir, "src/html/", `${tpl}.html.template`);

const castTemplatePath = (tpl) =>
path.resolve(config.cast_dir, "src/html/", `${tpl}.html.template`);

const readFile = (pth) => fs.readFileSync(pth).toString();

const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
Expand All @@ -25,10 +19,19 @@ const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
};

const renderDemoTemplate = (pth, data = {}) =>
renderTemplate(pth, data, demoTemplatePath);
renderTemplate(pth, data, (tpl) =>
path.resolve(config.demo_dir, "src/html/", `${tpl}.html.template`)
);

const renderCastTemplate = (pth, data = {}) =>
renderTemplate(pth, data, castTemplatePath);
renderTemplate(pth, data, (tpl) =>
path.resolve(config.cast_dir, "src/html/", `${tpl}.html.template`)
);

const renderGalleryTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(config.gallery_dir, "src/html/", `${tpl}.html.template`)
);

const minifyHtml = (content) =>
minify(content, {
Expand Down Expand Up @@ -209,8 +212,33 @@ gulp.task("gen-index-demo-prod", (done) => {
es5Compatibility: es5Manifest["compatibility.js"],
es5DemoJS: es5Manifest["main.js"],
});
const minified = minifyHtml(content).replace(/#THEMEC/g, "{{ theme_color }}");
const minified = minifyHtml(content);

fs.outputFileSync(path.resolve(config.demo_root, "index.html"), minified);
done();
});

gulp.task("gen-index-gallery-dev", (done) => {
// In dev mode we don't mangle names, so we hardcode urls. That way we can
// run webpack as last in watch mode, which blocks output.
const content = renderGalleryTemplate("index", {
latestGalleryJS: "./entrypoint.js",
});

fs.outputFileSync(path.resolve(config.gallery_root, "index.html"), content);
done();
});

gulp.task("gen-index-gallery-prod", (done) => {
const latestManifest = require(path.resolve(
config.gallery_output,
"manifest.json"
));
const content = renderGalleryTemplate("index", {
latestGalleryJS: latestManifest["entrypoint.js"],
});
const minified = minifyHtml(content);

fs.outputFileSync(path.resolve(config.gallery_root, "index.html"), minified);
done();
});
Loading