Compare commits

...

122 Commits

Author SHA1 Message Date
Amir Raminfar 6ad98503ac Release 2.1.2 2020-07-17 09:57:44 -07:00
Bart Meuris 58fad3d105 Added ${config.base} when calling /api/logs?id=... (#582)
Co-authored-by: Bart Meuris <bart@mebasys.com>
2020-07-17 09:02:14 -07:00
dependabot-preview[bot] 9ae8b08725 Merge pull request #580 from amir20/dependabot/npm_and_yarn/integration/puppeteer-5.2.0 2020-07-17 12:43:24 +00:00
dependabot-preview[bot] 3d91d6e53d Bump puppeteer from 5.1.0 to 5.2.0 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.1.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 12:38:06 +00:00
dependabot-preview[bot] fa1067ff42 Merge pull request #579 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001102 2020-07-17 06:24:58 +00:00
dependabot-preview[bot] 78587dff85 Bump caniuse-lite from 1.0.30001101 to 1.0.30001102
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001101 to 1.0.30001102.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001101...v1.0.30001102)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 06:18:25 +00:00
dependabot-preview[bot] c19315176a Merge pull request #578 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001101 2020-07-17 02:43:12 +00:00
dependabot-preview[bot] 1237b08e91 Bump caniuse-lite from 1.0.30001100 to 1.0.30001101
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001100 to 1.0.30001101.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001100...v1.0.30001101)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 02:37:54 +00:00
dependabot-preview[bot] 742ad32e7c Merge pull request #577 from amir20/dependabot/npm_and_yarn/integration/lodash-4.17.19 2020-07-16 13:29:35 +00:00
dependabot-preview[bot] bea8c71297 [Security] Bump lodash from 4.17.15 to 4.17.19 in /integration
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-16 13:23:28 +00:00
dependabot-preview[bot] 3b38395ddb Merge pull request #576 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001100 2020-07-15 02:47:51 +00:00
dependabot-preview[bot] e3f2edc02b Bump caniuse-lite from 1.0.30001099 to 1.0.30001100
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001099 to 1.0.30001100.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001099...v1.0.30001100)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-15 02:41:15 +00:00
dependabot-preview[bot] fe698ca641 Merge pull request #575 from amir20/dependabot/npm_and_yarn/babel/core-7.10.5 2020-07-14 18:53:17 +00:00
dependabot-preview[bot] eaefd38269 Bump @babel/core from 7.10.4 to 7.10.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 18:47:02 +00:00
dependabot-preview[bot] 8aff4146bb Merge pull request #574 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.5 2020-07-14 18:45:07 +00:00
dependabot-preview[bot] 1637c15f76 Bump @babel/plugin-transform-runtime from 7.10.4 to 7.10.5
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 18:39:37 +00:00
Amir Raminfar 7c6677ceaa Adds border color to settings 2020-07-13 12:18:06 -07:00
dependabot-preview[bot] c04e9a1b9f Merge pull request #573 from amir20/dependabot/npm_and_yarn/integration/puppeteer-5.1.0 2020-07-13 10:04:56 +00:00
dependabot-preview[bot] 0bdd84de13 Bump puppeteer from 5.0.0 to 5.1.0 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 09:57:18 +00:00
dependabot-preview[bot] b1ee9d230d Merge pull request #572 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001099 2020-07-11 20:00:02 +00:00
dependabot-preview[bot] 3ca87a0d9c Bump caniuse-lite from 1.0.30001097 to 1.0.30001099
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001097 to 1.0.30001099.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001097...v1.0.30001099)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-11 19:53:50 +00:00
Amir Raminfar 595f69dfe7 Implements enter 2020-07-11 10:21:02 -07:00
Amir Raminfar b1ba21a78b Release 2.1.1 2020-07-10 14:50:19 -07:00
Amir Raminfar 9017b8c27a Updates tests and uses distance time (#571) 2020-07-10 14:50:01 -07:00
Amir Raminfar bc848a8baf Only shows running and all 2020-07-10 14:33:31 -07:00
Amir Raminfar 3d61f6db05 Release 2.1.0 2020-07-10 11:22:09 -07:00
Amir Raminfar b25de1d921 Adds a new dashboard for default page (#569) 2020-07-10 11:06:28 -07:00
dependabot-preview[bot] 0d63b72cf6 Merge pull request #570 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001097 2020-07-10 03:43:23 +00:00
dependabot-preview[bot] 9936aeec6c Bump caniuse-lite from 1.0.30001096 to 1.0.30001097
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001096 to 1.0.30001097.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001096...v1.0.30001097)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-10 03:37:15 +00:00
Amir Raminfar 8885764e72 Exposes port 8080. Fixes #23 2020-07-09 19:02:01 -07:00
Amir Raminfar 46db2b035e Fixes tests 2020-07-09 13:03:56 -07:00
Amir Raminfar 74273b8bf7 Updates index page to a dashboard 2020-07-09 13:03:56 -07:00
Amir Raminfar dcd7ccc099 Adds better colors 2020-07-09 13:03:55 -07:00
dependabot-preview[bot] 5bfd62b57a Merge pull request #568 from amir20/dependabot/npm_and_yarn/release-it-13.6.5 2020-07-09 18:40:46 +00:00
dependabot-preview[bot] dc9739c1f3 Bump release-it from 13.6.4 to 13.6.5
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.4 to 13.6.5.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.4...13.6.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-09 18:34:28 +00:00
dependabot-preview[bot] 2a0d0194a7 Merge pull request #566 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001096 2020-07-08 11:51:13 +00:00
dependabot-preview[bot] 920c10c318 Bump caniuse-lite from 1.0.30001094 to 1.0.30001096
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001094 to 1.0.30001096.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001094...v1.0.30001096)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-08 11:44:56 +00:00
dependabot-preview[bot] fee69db8a3 Merge pull request #565 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.2 2020-07-07 20:02:12 +00:00
dependabot-preview[bot] ea663368e7 Bump sass-loader from 9.0.1 to 9.0.2
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.1 to 9.0.2.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.1...v9.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 19:56:18 +00:00
dependabot-preview[bot] 334d6feffd Merge pull request #563 from amir20/dependabot/npm_and_yarn/sass-1.26.10 2020-07-07 04:03:15 +00:00
dependabot-preview[bot] b8ebc2e2c0 Bump sass from 1.26.9 to 1.26.10
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.9 to 1.26.10.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.9...1.26.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 03:55:56 +00:00
Amir Raminfar 2e6b35354d Updates int tests 2020-07-06 12:10:24 -07:00
Amir Raminfar 42d2b57814 Adds not found pages 2020-07-06 12:05:41 -07:00
Amir Raminfar e88b535127 Updates to fullheight to half 2020-07-06 11:33:38 -07:00
dependabot-preview[bot] 0bb8d8e2e6 Merge pull request #562 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001094 2020-07-05 05:56:11 +00:00
dependabot-preview[bot] 5678b3192d Bump caniuse-lite from 1.0.30001093 to 1.0.30001094
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001093 to 1.0.30001094.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001093...v1.0.30001094)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-05 05:50:20 +00:00
Amir Raminfar 117530f1d6 Moves tests around 2020-07-04 15:29:24 -07:00
Amir Raminfar ee5973b9f3 Use volumes (#560) 2020-07-04 11:33:45 -07:00
Amir Raminfar fc99b7320f Fixes exit code 2020-07-03 18:27:15 -07:00
Amir Raminfar a8536a101e Removes unused snapshots 2020-07-03 15:18:36 -07:00
Amir Raminfar 5302ace413 Adds more tests for light mode 2020-07-03 15:16:01 -07:00
Amir Raminfar 2e255ace60 Cleans up tests (#559) 2020-07-03 11:23:57 -07:00
dependabot-preview[bot] b7515fb32a Merge pull request #558 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.1 2020-07-03 17:33:12 +00:00
dependabot-preview[bot] 396a6bb3e9 Bump sass-loader from 9.0.0 to 9.0.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.0...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 17:26:38 +00:00
dependabot-preview[bot] 79fcbdcd62 Merge pull request #557 from amir20/dependabot/npm_and_yarn/vue-jest-3.0.6 2020-07-03 12:58:13 +00:00
dependabot-preview[bot] e2348f5b38 Bump vue-jest from 3.0.5 to 3.0.6
Bumps [vue-jest](https://github.com/vuejs/vue-jest) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/commits/v3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 12:52:55 +00:00
Amir Raminfar d345998052 Update README.md 2020-07-02 11:51:30 -07:00
Amir Raminfar 08cc04379d Adds hot reload for development (#553) 2020-07-02 11:32:37 -07:00
dependabot-preview[bot] 027af5a853 Merge pull request #556 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.0 2020-07-02 18:18:25 +00:00
dependabot-preview[bot] abc27165a2 Bump sass-loader from 8.0.2 to 9.0.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 8.0.2 to 9.0.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v8.0.2...v9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 18:13:18 +00:00
Amir Raminfar 3aa420a589 Adds more int tests for custom base 2020-07-02 11:01:11 -07:00
dependabot-preview[bot] 045ff730bc Bump puppeteer from 4.0.1 to 5.0.0 in /integration (#555)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 4.0.1 to 5.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v4.0.1...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-02 07:26:53 -07:00
dependabot-preview[bot] 075f17ee36 Merge pull request #554 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001093 2020-07-02 02:14:15 +00:00
dependabot-preview[bot] cb3177fa06 Bump caniuse-lite from 1.0.30001091 to 1.0.30001093
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001091 to 1.0.30001093.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001091...v1.0.30001093)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 02:08:38 +00:00
dependabot-preview[bot] d3e00adf4e Merge pull request #552 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001091 2020-07-01 00:19:10 +00:00
dependabot-preview[bot] 9100958e22 Bump caniuse-lite from 1.0.30001090 to 1.0.30001091
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001090 to 1.0.30001091.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001090...v1.0.30001091)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-01 00:14:00 +00:00
Amir Raminfar eed1c0c568 Release 2.0.5 2020-06-30 12:15:57 -07:00
Amir Raminfar f692bee5cd Adds console.....oops 2020-06-30 12:14:45 -07:00
Amir Raminfar 86cfaaee6d Adds min-height to fix #547 2020-06-30 11:31:50 -07:00
Amir Raminfar e8b5fd0523 Release 2.0.4 2020-06-30 11:28:33 -07:00
Amir Raminfar 2fadf6e680 Fixes #551. Auto scroll not working in Firefox 2020-06-30 11:21:37 -07:00
Amir Raminfar 835549d503 Release 2.0.3 2020-06-30 10:59:54 -07:00
Amir Raminfar 0540ceaf43 Fixes broken close button on header 2020-06-30 10:59:42 -07:00
dependabot-preview[bot] 6812d1ac62 Merge pull request #549 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.4 2020-06-30 16:59:13 +00:00
dependabot-preview[bot] 1375a59105 Bump @babel/plugin-transform-runtime from 7.10.3 to 7.10.4
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 16:52:00 +00:00
dependabot-preview[bot] ec5ece7975 Merge pull request #550 from amir20/dependabot/npm_and_yarn/babel/core-7.10.4 2020-06-30 16:50:05 +00:00
dependabot-preview[bot] 2efcc07706 Bump @babel/core from 7.10.3 to 7.10.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 16:44:55 +00:00
dependabot-preview[bot] 9cef13ae74 Merge pull request #546 from amir20/dependabot/npm_and_yarn/vuex-3.5.1 2020-06-29 15:51:35 +00:00
dependabot-preview[bot] 3466ce0004 Bump vuex from 3.4.0 to 3.5.1
Bumps [vuex](https://github.com/vuejs/vuex) from 3.4.0 to 3.5.1.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Changelog](https://github.com/vuejs/vuex/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuex/compare/v3.4.0...v3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-29 15:45:49 +00:00
Amir Raminfar 605094aa10 Release 2.0.2 2020-06-28 18:40:12 -07:00
Amir Raminfar 19ad9a7dac Fixes tests 2020-06-28 18:39:26 -07:00
Amir Raminfar f870dff905 Release 2.0.1 2020-06-28 16:30:07 -07:00
Amir Raminfar 200f997239 Adds black to logo 2020-06-28 16:29:53 -07:00
dependabot-preview[bot] 63d8ec3e13 Merge pull request #545 from amir20/dependabot/npm_and_yarn/release-it-13.6.4 2020-06-28 20:15:14 +00:00
dependabot-preview[bot] ae22e622eb Bump release-it from 13.6.3 to 13.6.4
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.3 to 13.6.4.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.3...13.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-28 20:09:29 +00:00
Amir Raminfar 66edc3d99f Updates logo to standard svg and cleans up styles a little (#544)
* Adds SVG logo

* Fixes int tests

* Updates js tests
2020-06-28 11:56:26 -07:00
Amir Raminfar c15458cd10 Release 2.0.0 2020-06-27 18:02:56 -07:00
Amir Raminfar 8fa672edd1 Updates themes to use vars (#541)
* Adds vars for themeing

* Uses correct color vars

* Adds more vars

* Adds other variables

* Use data attribute only

* Adds animation and unifies color

* Fixes tests

* Fixes search

* Adds docker ignore

* Fixes search text

* Fixes int tests

* Fixes int tests again
2020-06-27 14:32:34 -07:00
dependabot-preview[bot] 3d68a8ddb0 Merge pull request #543 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001090 2020-06-27 20:03:53 +00:00
dependabot-preview[bot] c8ded47fce Bump caniuse-lite from 1.0.30001089 to 1.0.30001090
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001089 to 1.0.30001090.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001089...v1.0.30001090)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-27 19:58:10 +00:00
dependabot-preview[bot] f9e7274c55 Merge pull request #542 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001089 2020-06-27 07:03:54 +00:00
dependabot-preview[bot] a86b57e326 Bump caniuse-lite from 1.0.30001088 to 1.0.30001089
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001088 to 1.0.30001089.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001088...v1.0.30001089)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-27 06:58:17 +00:00
dependabot-preview[bot] b312df68cf Merge pull request #540 from amir20/dependabot/npm_and_yarn/dompurify-2.0.12 2020-06-24 23:50:08 +00:00
dependabot-preview[bot] 590bc364f3 Bump dompurify from 2.0.11 to 2.0.12
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.0.11 to 2.0.12.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.0.11...2.0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 23:42:46 +00:00
Amir Raminfar 5fc4314462 Adds is-hidden-mobile for progress 2020-06-24 11:03:38 -07:00
Amir Raminfar a2ed4aa847 Adds px to stroke 2020-06-24 10:15:22 -07:00
dependabot-preview[bot] 9ffd00006d Merge pull request #539 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001088 2020-06-24 16:35:59 +00:00
dependabot-preview[bot] 748ae21788 Bump caniuse-lite from 1.0.30001087 to 1.0.30001088
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001087 to 1.0.30001088.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001087...v1.0.30001088)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:31:06 +00:00
dependabot-preview[bot] 2b3ad7e7c4 Merge pull request #538 from amir20/dependabot/npm_and_yarn/integration/puppeteer-4.0.1 2020-06-24 13:39:16 +00:00
dependabot-preview[bot] d07bb785cf Bump puppeteer from 4.0.0 to 4.0.1 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v4.0.0...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 13:33:51 +00:00
dependabot-preview[bot] 37fed1c94c Merge pull request #537 from amir20/dependabot/npm_and_yarn/babel-jest-26.1.0 2020-06-24 00:27:37 +00:00
dependabot-preview[bot] 601d725ff8 Bump babel-jest from 26.0.1 to 26.1.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.1.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 00:22:34 +00:00
dependabot-preview[bot] 4914517330 Merge pull request #536 from amir20/dependabot/npm_and_yarn/jest-26.1.0 2020-06-24 00:20:43 +00:00
dependabot-preview[bot] bbaff67dbd Bump jest from 26.0.1 to 26.1.0
Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 00:16:06 +00:00
dependabot-preview[bot] d228cc6dee Merge pull request #535 from amir20/dependabot/npm_and_yarn/vue-loader-15.9.3 2020-06-23 20:58:46 +00:00
Amir Raminfar 1810764092 Adds progress notification bar (#526) 2020-06-23 13:55:45 -07:00
dependabot-preview[bot] aaec84a2ae Bump vue-loader from 15.9.2 to 15.9.3
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.2 to 15.9.3.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.9.2...v15.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 20:53:52 +00:00
Amir Raminfar 6f40303aa3 Release 1.29.0 2020-06-23 12:16:45 -07:00
Amir Raminfar 5c4922538a Updates snapshots 2020-06-23 12:05:13 -07:00
catalinmunteanu 156c6abffc added support for toggling between new light theme and dark theme. (#527)
* added support for toggling between new light theme and dark theme.

* improved light theme colors

* light-theme styles are now scoped and applied in each component/page

Co-authored-by: Catalin MUNTEANU <cmunteanu@bitdefender.com>
2020-06-23 11:28:04 -07:00
dependabot-preview[bot] deaa66117a Merge pull request #534 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001087 2020-06-23 18:12:05 +00:00
dependabot-preview[bot] bb63e17fbc Bump caniuse-lite from 1.0.30001085 to 1.0.30001087
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001085 to 1.0.30001087.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001085...v1.0.30001087)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 18:07:02 +00:00
dependabot-preview[bot] 7806ba76ab Merge pull request #533 from amir20/dependabot/npm_and_yarn/integration/jest-26.1.0 2020-06-23 15:26:31 +00:00
dependabot-preview[bot] 3d2c892973 Bump jest from 26.0.1 to 26.1.0 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 15:21:17 +00:00
dependabot-preview[bot] d2226836a1 Merge pull request #531 from amir20/dependabot/npm_and_yarn/sass-1.26.9 2020-06-23 02:12:09 +00:00
dependabot-preview[bot] f510fef4ce Bump sass from 1.26.8 to 1.26.9
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.8 to 1.26.9.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.8...1.26.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 02:06:36 +00:00
dependabot-preview[bot] cb7f2aafda Merge pull request #530 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001085 2020-06-22 20:28:54 +00:00
dependabot-preview[bot] c02401e94a Bump caniuse-lite from 1.0.30001084 to 1.0.30001085
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001084 to 1.0.30001085.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001084...v1.0.30001085)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 20:23:19 +00:00
dependabot-preview[bot] aec4df9260 Merge pull request #529 from amir20/dependabot/npm_and_yarn/babel/core-7.10.3 2020-06-22 19:08:39 +00:00
dependabot-preview[bot] 8928e191cc Bump @babel/core from 7.10.2 to 7.10.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.2 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 19:02:58 +00:00
dependabot-preview[bot] 45ba37fa5a Merge pull request #528 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.3 2020-06-22 18:37:04 +00:00
dependabot-preview[bot] f20d5f88c5 Bump @babel/plugin-transform-runtime from 7.10.1 to 7.10.3
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.1 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 18:31:41 +00:00
50 changed files with 2630 additions and 1065 deletions
+1 -1
View File
@@ -1 +1 @@
-r '\.go$' -R '^node_modules/' -R '^static/' -R '^.cache/' -G '*_test.go' -s -- go run main.go routes.go --level debug
-r '\.go$' -R 'node_modules' -R '^static/' -R '^.cache/' -G '*_test.go' -s -- go run main.go routes.go --level debug
+2
View File
@@ -54,4 +54,6 @@ ENV PATH=/bin
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /dozzle/dozzle /dozzle
EXPOSE 8080
ENTRYPOINT ["/dozzle"]
+2 -2
View File
@@ -138,6 +138,6 @@ To Build and test locally:
2. Install Go.
3. Globally install [packr utility](https://github.com/gobuffalo/packr) with `go get -u github.com/gobuffalo/packr/packr` outside of dozzle directory.
4. Install [reflex](https://github.com/cespare/reflex) with `get -u github.com/cespare/reflex` outside of dozzle.
5. Install node modules with `npm install`.
6. Do `npm start`
5. Install node modules with `yarn`.
6. Do `yarn dev`
+22 -3
View File
@@ -8,7 +8,7 @@
</pane>
<pane min-size="10">
<splitpanes>
<pane class="has-min-height">
<pane class="has-min-height router-view">
<search></search>
<router-view></router-view>
</pane>
@@ -82,6 +82,9 @@ export default {
if (this.hasSmallerScrollbars) {
document.documentElement.classList.add("has-custom-scrollbars");
}
if (this.hasLightTheme) {
document.documentElement.setAttribute("data-theme", "light");
}
this.menuWidth = this.settings.menuWidth;
},
watch: {
@@ -92,6 +95,13 @@ export default {
document.documentElement.classList.remove("has-custom-scrollbars");
}
},
hasLightTheme(newValue, oldValue) {
if (newValue) {
document.documentElement.setAttribute("data-theme", "light");
} else {
document.documentElement.removeAttribute("data-theme");
}
},
},
computed: {
...mapState(["activeContainers", "isMobile", "settings"]),
@@ -99,6 +109,9 @@ export default {
hasSmallerScrollbars() {
return this.settings.smallerScrollbars;
},
hasLightTheme() {
return this.settings.lightTheme;
},
},
methods: {
...mapActions({
@@ -119,9 +132,15 @@ export default {
<style scoped lang="scss">
::v-deep .splitpanes--vertical > .splitpanes__splitter {
min-width: 3px;
background: #666;
background: var(--border-color);
&:hover {
background: rgb(255, 221, 87);
background: var(--border-hover-color);
}
}
@media screen and (max-width: 768px) {
.router-view {
padding-top: 75px;
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ exports[`<App /> renders correctly 1`] = `
pushotherpanes="true"
>
<pane-stub
class="has-min-height"
class="has-min-height router-view"
maxsize="100"
minsize="0"
>
+13
View File
@@ -26,5 +26,18 @@ export default {
background: rgba(0, 0, 0, 0.1);
font-weight: bold;
font-family: monospace;
button.delete {
background-color: var(--scheme-main-ter);
opacity: 0.6;
&:after,
&:before {
background-color: var(--text-color);
}
&:hover {
opacity: 1;
}
}
}
</style>
+1 -1
View File
@@ -62,7 +62,7 @@ export default {
const delta = to - last;
const from = new Date(to.getTime() + delta);
const logs = await (
await fetch(`/api/logs?id=${this.id}&from=${from.toISOString()}&to=${to.toISOString()}`)
await fetch(`${config.base}/api/logs?id=${this.id}&from=${from.toISOString()}&to=${to.toISOString()}`)
).text();
if (logs) {
const newMessages = logs
+9 -2
View File
@@ -91,6 +91,13 @@ export default {
.date {
background-color: #262626;
color: #258ccd;
[data-theme="light"] & {
background-color: #f0f0f0;
color: #009900;
padding-left: 5px;
padding-right: 5px;
}
}
.text {
@@ -103,8 +110,8 @@ li.event {
::v-deep mark {
border-radius: 2px;
background-color: #ffdd57;
animation: pops 0.2s ease-out;
background-color: var(--secondary-color);
animation: pops 200ms ease-out;
display: inline-block;
}
+17 -5
View File
@@ -2,13 +2,15 @@
<aside>
<a
role="button"
class="navbar-burger burger is-white is-hidden-tablet is-pulled-right"
class="navbar-burger burger is-hidden-tablet is-pulled-right"
@click="showNav = !showNav"
:class="{ 'is-active': showNav }"
>
<span></span> <span></span> <span></span>
</a>
<h1 class="title has-text-warning is-marginless">Dozzle</h1>
<svg class="logo">
<use href="#logo"></use>
</svg>
<p class="menu-label is-hidden-mobile" :class="{ 'is-active': showNav }">Containers</p>
<ul class="menu-list is-hidden-mobile" :class="{ 'is-active': showNav }">
<li v-for="item in visibleContainers" :key="item.id">
@@ -54,7 +56,7 @@ aside {
top: 0;
left: 0;
right: 0;
background: #222;
background: var(--scheme-main-ter);
z-index: 2;
max-height: 100vh;
overflow: auto;
@@ -68,8 +70,12 @@ aside {
overflow: hidden;
}
.burger.is-white {
color: #fff;
.title {
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);
}
.burger {
color: var(--body-color);
}
.is-hidden-mobile.is-active {
@@ -79,5 +85,11 @@ aside {
.navbar-burger {
height: 2.35rem;
}
.logo {
width: 82px;
height: 36px;
fill: var(--logo-color);
}
}
</style>
+39
View File
@@ -0,0 +1,39 @@
<template>
<time :datetime="date.toISOString()">{{ text }}</time>
</template>
<script>
import formatDistance from "date-fns/formatDistance";
export default {
props: {
date: {
required: true,
type: Date,
},
},
data() {
return {
text: "",
interval: null,
};
},
name: "PastTime",
mounted() {
this.updateFromNow();
this.interval = setInterval(() => this.updateFromNow(), 30000);
},
destroyed() {
clearInterval(this.interval);
},
methods: {
updateFromNow() {
this.text = formatDistance(this.date, new Date(), {
addSuffix: true,
});
},
},
};
</script>
<style scoped lang="scss"></style>
+88
View File
@@ -0,0 +1,88 @@
<template>
<div class="scroll-progress">
<svg width="100" height="100" viewBox="0 0 100 100">
<circle r="44" cx="50" cy="50" :style="{ '--progress': scrollProgress }" />
</svg>
<div class="is-overlay columns is-vcentered is-centered has-text-weight-light">
<span class="column is-narrow is-paddingless is-size-2">
{{ Math.ceil(scrollProgress * 100) }}
</span>
<span class="column is-narrow is-paddingless">
%
</span>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import throttle from "lodash.throttle";
export default {
name: "ScrollProgress",
data() {
return {
scrollProgress: 0,
animation: { cancel: () => {} },
parentElement: document,
};
},
created() {
this.onScrollThrottled = throttle(this.onScroll, 150);
},
mounted() {
this.attachEvents();
this.$once("hook:beforeDestroy", this.detachEvents);
},
watch: {
activeContainers() {
this.detachEvents();
this.attachEvents();
},
},
computed: {
...mapState(["activeContainers"]),
},
methods: {
attachEvents() {
this.parentElement = this.$el.closest("[data-scrolling]") || document;
this.parentElement.addEventListener("scroll", this.onScrollThrottled);
},
detachEvents() {
this.parentElement.removeEventListener("scroll", this.onScrollThrottled);
},
onScroll() {
const p = this.parentElement == document ? document.documentElement : this.parentElement;
this.scrollProgress = p.scrollTop / (p.scrollHeight - p.clientHeight);
this.animation.cancel();
this.animation = this.$el.animate(
{ opacity: [1, 0] },
{
duration: 500,
delay: 2000,
fill: "both",
easing: "ease-out",
}
);
},
},
};
</script>
<style scoped lang="scss">
.scroll-progress {
display: inline-block;
position: relative;
circle {
fill: var(--scheme-main-ter);
fill-opacity: 0.8;
transition: stroke-dashoffset 250ms ease-out;
transform: rotate(-90deg);
transform-origin: 50% 50%;
stroke: var(--primary-color);
stroke-dashoffset: calc(276.32px - var(--progress) * 276.32px);
stroke-dasharray: 276.32px 276.32px;
stroke-width: 3;
will-change: stroke-dashoffset;
}
}
</style>
+53 -9
View File
@@ -4,17 +4,16 @@
<slot name="header"></slot>
</header>
<main ref="content" :data-scrolling="scrollable">
<div class="is-scrollbar-progress is-hidden-mobile">
<scroll-progress v-show="paused"></scroll-progress>
</div>
<slot></slot>
<div ref="scrollObserver"></div>
<div ref="scrollObserver" class="is-scroll-observer"></div>
</main>
<div class="scroll-bar-notification">
<div class="is-scrollbar-notification">
<transition name="fade">
<button
class="button"
:class="hasMore ? 'is-warning' : 'is-primary'"
@click="scrollToBottom('instant')"
v-show="paused"
>
<button class="button" :class="hasMore ? 'has-more' : ''" @click="scrollToBottom('instant')" v-show="paused">
<icon name="download"></icon>
</button>
</transition>
@@ -24,6 +23,7 @@
<script>
import Icon from "./Icon";
import ScrollProgress from "./ScrollProgress";
export default {
props: {
@@ -34,6 +34,7 @@ export default {
},
components: {
Icon,
ScrollProgress,
},
name: "ScrollableView",
data() {
@@ -77,6 +78,7 @@ section {
&.is-full-height-scrollable {
height: 100vh;
min-height: 0;
}
main {
@@ -85,12 +87,54 @@ section {
scroll-snap-type: y proximity;
}
.scroll-bar-notification {
.is-scrollbar-progress {
text-align: right;
margin-right: 110px;
.scroll-progress {
position: fixed;
top: 60px;
z-index: 2;
}
}
.is-scroll-observer {
height: 1px;
}
.is-scrollbar-notification {
text-align: right;
margin-right: 65px;
button {
position: fixed;
bottom: 30px;
background-color: var(--secondary-color);
transition: background-color 1s ease-out;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
border: none !important;
&.has-more {
background-color: var(--primary-color);
animation-name: bounce;
animation-duration: 1000ms;
animation-fill-mode: both;
color: #fff;
}
}
}
@keyframes bounce {
0%,
20%,
50%,
80%,
100% {
transform: translateY(0);
}
40% {
transform: translateY(-30px);
}
60% {
transform: translateY(-15px);
}
}
+26 -7
View File
@@ -75,17 +75,36 @@ export default {
width: 350px;
position: fixed;
padding: 10px;
background: rgba(50, 50, 50, 0.9);
background: var(--scheme-main-ter);
top: 0;
right: 0;
border-radius: 0 0 0 5px;
z-index: 10;
}
.delete {
margin-left: 1em;
}
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
.icon {
padding: 10px 3px;
button.delete {
margin-left: 1em;
background-color: var(--scheme-main-ter);
opacity: 0.6;
&:after,
&:before {
background-color: var(--text-color);
}
&:hover {
opacity: 1;
}
}
.icon {
padding: 10px 3px;
}
.input {
color: var(--body-color);
&::placeholder {
color: var(--border-color);
}
}
}
</style>
+14 -8
View File
@@ -1,10 +1,14 @@
<template>
<aside>
<div class="columns is-marginless">
<div class="column">
<h1 class="title has-text-warning is-marginless">Dozzle</h1>
<div class="column is-paddingless">
<router-link :to="{ name: 'default' }">
<svg class="logo">
<use href="#logo"></use>
</svg>
</router-link>
</div>
<div class="column is-narrow has-text-right is-hidden-mobile">
<div class="column is-narrow has-text-right x">
<router-link
:to="{ name: 'settings' }"
active-class="is-active"
@@ -79,10 +83,6 @@ aside {
overflow: hidden;
}
.burger.is-white {
color: #fff;
}
.is-hidden-mobile.is-active {
display: block !important;
}
@@ -92,11 +92,17 @@ li.exited a {
color: #777;
}
.logo {
width: 122px;
height: 54px;
fill: var(--logo-color);
}
.will-append-container.icon {
transition: transform 0.2s ease-out;
&.is-active {
pointer-events: none;
color: #00d1b2;
color: var(--primary-color);
}
.router-link-exact-active & {
visibility: hidden;
+9 -1
View File
File diff suppressed because one or more lines are too long
+11 -4
View File
@@ -6,10 +6,7 @@ import Switch from "buefy/dist/esm/switch";
import store from "./store";
import config from "./store/config";
import App from "./App.vue";
import Container from "./pages/Container.vue";
import Settings from "./pages/Settings.vue";
import Index from "./pages/Index.vue";
import Show from "./pages/Show.vue";
import { Container, Settings, Index, Show, ContainerNotFound, PageNotFound } from "./pages";
Vue.use(VueRouter);
Vue.use(Meta);
@@ -28,6 +25,11 @@ const routes = [
name: "container",
props: true,
},
{
path: "/container/*",
component: ContainerNotFound,
name: "container-not-found",
},
{
path: "/settings",
component: Settings,
@@ -38,6 +40,11 @@ const routes = [
component: Show,
name: "show",
},
{
path: "/*",
component: PageNotFound,
name: "page-not-found",
},
];
const router = new VueRouter({
+1
View File
@@ -13,6 +13,7 @@ import { mapActions, mapGetters, mapState } from "vuex";
import LogViewerWithSource from "../components/LogViewerWithSource";
import ScrollableView from "../components/ScrollableView";
import ContainerTitle from "../components/ContainerTitle";
import store from "../store";
export default {
props: ["id", "name"],
+18
View File
@@ -0,0 +1,18 @@
<template>
<div class="hero is-halfheight">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">
Container not found.
<small class="subtitle">It may have been removed.</small>
</h1>
</div>
</div>
</div>
</template>
<script>
export default {
name: "ContainerNotFound",
};
</script>
-9
View File
@@ -1,9 +0,0 @@
import { shallowMount } from "@vue/test-utils";
import Index from "./Index";
describe("<Index />", () => {
test("renders correctly", () => {
const wrapper = shallowMount(Index);
expect(wrapper.element).toMatchSnapshot();
});
});
+142 -11
View File
@@ -1,22 +1,153 @@
<template>
<div class="hero is-fullheight is-dark">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">Please choose a container from the list to view the logs</h1>
<div>
<section class="hero is-small mt-4">
<div class="hero-body">
<div class="container">
<h1 class="title">
Hello, there!
</h1>
</div>
</div>
</div>
</section>
<section class="level section">
<div class="level-item has-text-centered">
<div>
<p class="title">{{ containers.length }}</p>
<p class="heading">Total Containers</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="title">{{ runningContainers.length }}</p>
<p class="heading">Running</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="title">{{ version }}</p>
<p class="heading">Dozzle Version</p>
</div>
</div>
</section>
<section class="columns is-centered">
<div class="column is-4">
<div class="panel">
<p class="panel-heading">
Containers
</p>
<div class="panel-block">
<p class="control has-icons-left">
<input
class="input"
type="text"
placeholder="Search Containers"
v-model="search"
@keyup.esc="search = null"
@keyup.enter="onEnter()"
/>
<span class="icon is-left">
<icon name="search"></icon>
</span>
</p>
</div>
<p class="panel-tabs">
<a :class="{ 'is-active': sort === 'running' }" @click="sort = 'running'">Running</a>
<a :class="{ 'is-active': sort === 'all' }" @click="sort = 'all'">All</a>
</p>
<router-link
:to="{ name: 'container', params: { id: item.id, name: item.name } }"
v-for="item in results.slice(0, 10)"
:key="item.id"
class="panel-block"
>
<span class="name">{{ item.name }}</span>
<div class="subtitle is-7 status">
<past-time :date="new Date(item.created * 1000)"></past-time>
</div>
</router-link>
</div>
</div>
</section>
</div>
</template>
<script>
import { mapActions, mapGetters, mapState } from "vuex";
import Icon from "../components/Icon";
import PastTime from "../components/PastTime";
import config from "../store/config";
export default {
props: [],
name: "Default",
name: "Index",
components: { Icon, PastTime },
data() {
return {
version: config.version,
search: null,
sort: "running",
};
},
methods: {
onEnter() {
if (this.results.length == 1) {
const [item] = this.results;
this.$router.push({ name: "container", params: { id: item.id, name: item.name } });
}
},
},
computed: {
...mapState(["containers"]),
mostRecentContainers() {
return [...this.containers].sort((a, b) => b.created - a.created);
},
runningContainers() {
return this.mostRecentContainers.filter((c) => c.state === "running");
},
allContainers() {
return this.containers;
},
results() {
if (this.search) {
const term = this.search.toLowerCase();
return this.allContainers.filter((c) => c.name.toLowerCase().includes(term));
}
switch (this.sort) {
case "all":
return this.mostRecentContainers;
case "running":
return this.runningContainers;
default:
throw `Invalid sort order: ${this.sort}`;
}
},
},
};
</script>
<style scoped>
.hero.is-dark {
color: #ddd;
background-color: #111;
<style lang="scss" scoped>
.panel {
border: 1px solid var(--border-color);
.panel-block,
.panel-tabs {
border-color: var(--border-color);
.is-active {
border-color: var(--border-hover-color);
}
.name {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.status {
margin-left: auto;
white-space: nowrap;
}
}
}
.icon {
padding: 10px 3px;
}
</style>
+18
View File
@@ -0,0 +1,18 @@
<template>
<div class="hero is-halfheight">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">
Oops,
<small class="subtitle">this page doesn't exist</small>
</h1>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PageNotFound",
};
</script>
+22 -15
View File
@@ -45,6 +45,12 @@
</b-switch>
</div>
<div class="item">
<b-switch v-model="lightTheme">
Use light theme
</b-switch>
</div>
<div class="item">
<h2 class="title is-6 is-marginless">Font size</h2>
Modify the font size when viewing logs.
@@ -112,29 +118,30 @@ export default {
},
computed: {
...mapState(["settings"]),
...["search", "size", "smallerScrollbars", "showTimestamp", "showAllContainers"].reduce((map, name) => {
map[name] = {
get() {
return this.settings[name];
},
set(value) {
this.updateSetting({ [name]: value });
},
};
return map;
}, {}),
...["search", "size", "smallerScrollbars", "showTimestamp", "showAllContainers", "lightTheme"].reduce(
(map, name) => {
map[name] = {
get() {
return this.settings[name];
},
set(value) {
this.updateSetting({ [name]: value });
},
};
return map;
},
{}
),
},
};
</script>
<style lang="scss" scoped>
.title {
color: #eee;
color: var(--title-color);
}
a.next-release {
text-decoration: underline;
color: #00d1b2;
&:hover {
text-decoration: none;
}
@@ -145,7 +152,7 @@ a.next-release {
}
.has-underline {
border-bottom: 1px solid #fff;
border-bottom: 1px solid var(--border-color);
padding: 1em 0px;
margin-bottom: 1em;
}
@@ -1,21 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Index /> renders correctly 1`] = `
<div
class="hero is-fullheight is-dark"
>
<div
class="hero-body"
>
<div
class="container has-text-centered"
>
<h1
class="title"
>
Please choose a container from the list to view the logs
</h1>
</div>
</div>
</div>
`;
+6
View File
@@ -0,0 +1,6 @@
export { default as Index } from "./Index.vue";
export { default as ContainerNotFound } from "./ContainerNotFound.vue";
export { default as Show } from "./Show.vue";
export { default as Container } from "./Container.vue";
export { default as Settings } from "./Settings.vue";
export { default as PageNotFound } from "./PageNotFound.vue";
+4
View File
@@ -1,2 +1,6 @@
const config = JSON.parse(document.querySelector("script#config__json").textContent);
if (config.version == "{{ .Version }}") {
config.version = "dev";
config.base = "";
}
export default config;
+1
View File
@@ -6,4 +6,5 @@ export const DEFAULT_SETTINGS = {
smallerScrollbars: false,
showTimestamp: true,
showAllContainers: false,
lightTheme: false
};
+77 -13
View File
@@ -1,7 +1,29 @@
@charset "utf-8";
@import "~bulma/sass/utilities/initial-variables.sass";
$menu-item-active-background-color: hsl(171, 100%, 41%);
$menu-item-color: hsl(0, 6%, 87%);
$body-family: "Roboto", sans-serif;
$body-background-color: var(--body-background-color);
$scheme-main: var(--scheme-main);
$scheme-main-bis: var(--scheme-main-bis);
$scheme-main-ter: var(--scheme-main-ter);
$border: var(--border-color);
$border-hover: var(--border-hover-color);
$menu-item-active-background-color: var(--menu-item-active-background-color);
$menu-item-color: var(--menu-item-color);
$menu-item-hover-background-color: var(--menu-item-hover-background-color);
$menu-item-hover-color: var(--menu-item-hover-color);
$text-strong: var(--text-strong-color);
$text: var(--text-color);
$panel-heading-background-color: var(--panel-heading-background-color);
$panel-heading-color: var(--panel-heading-color);
$link: $turquoise;
$link-active: $grey-dark;
@import "~bulma";
@import "../node_modules/splitpanes/dist/splitpanes.css";
@@ -9,20 +31,62 @@ $menu-item-color: hsl(0, 6%, 87%);
@import "~buefy/src/scss/components/_dropdown";
@import "~buefy/src/scss/components/_switch";
html {
--scheme-main: #{$black};
--scheme-main-bis: #{$black-bis};
--scheme-main-ter: #{$black-ter};
--border-color: #{$grey-darker};
--border-hover-color: var(--secondary-color);
--logo-color: var(--secondary-color);
--primary-color: #{$turquoise};
--secondary-color: #{$yellow};
--body-background-color: #{$black-bis};
--menu-item-active-background-color: var(--primary-color);
--menu-item-color: hsl(0, 6%, 87%);
--menu-item-hover-background-color: #{$white-ter};
--menu-item-hover-color: #{$black-ter};
--panel-heading-background-color: var(--secondary-color);
--panel-heading-color: var(--scheme-main-bis);
--text-strong-color: #{$grey-lightest};
--text-color: #{$grey-lighter};
}
[data-theme="light"] {
--scheme-main: #{$white};
--scheme-main-bis: #{$white-bis};
--scheme-main-ter: #{$white-ter};
--border-color: #{$grey-lighter};
--border-hover-color: var(--secondary-color);
--logo-color: #{$grey-darker};
--primary-color: #{$turquoise};
--secondary-color: #d8f0ca;
--body-background-color: #{$white-bis};
--body-color: #{$grey-darker};
--menu-item-color: #{$grey-dark};
--menu-item-hover-background-color: #eee8e7;
--menu-item-hover-color: #{black-ter};
--panel-heading-background-color: var(--secondary-color);
--panel-heading-color: var(--text-strong-color);
--text-strong-color: #{$grey-dark};
--text-color: #{$grey-darker};
}
html {
overflow-x: unset;
overflow-y: unset;
scroll-snap-type: y proximity;
background-color: #111;
}
body {
font-family: "Roboto", sans-serif;
color: #ddd;
}
h1.title {
font-family: "Gafata", sans-serif;
}
html.has-custom-scrollbars {
@@ -60,7 +124,7 @@ html.has-custom-scrollbars {
color: #fff;
border-color: transparent;
&:hover {
border-color: rgb(255, 221, 87) !important;
border-color: var(--border-hover-color) !important;
background: rgba(0, 0, 0, 0.8) !important;
color: #fff !important;
}
+1 -6
View File
@@ -95,9 +95,8 @@ func (d *dockerClient) ListContainers() ([]Container, error) {
return nil, err
}
var containers []Container
var containers = make([]Container, 0, len(list))
for _, c := range list {
container := Container{
ID: c.ID[:12],
Names: c.Names,
@@ -116,10 +115,6 @@ func (d *dockerClient) ListContainers() ([]Container, error) {
return strings.ToLower(containers[i].Name) < strings.ToLower(containers[j].Name)
})
if containers == nil {
containers = []Container{}
}
return containers, nil
}
+1
View File
@@ -0,0 +1 @@
node_modules
+5 -5
View File
@@ -1,8 +1,8 @@
FROM amir20/docker-alpine-puppeteer:edge
FROM amir20/docker-alpine-puppeteer:v1
COPY --chown=pptruser:pptruser package*.json yarn.lock /app/
RUN yarn
COPY package*.json yarn.lock /app/
RUN yarn
COPY --chown=pptruser:pptruser . /app/
COPY . /app/
CMD [ "yarn", "test"]
CMD ["yarn", "test"]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

+22
View File
@@ -0,0 +1,22 @@
const { removeTimes } = require("../utils");
const { CUSTOM_URL: URL } = process.env;
describe("Dozzle with custom base", () => {
beforeEach(async () => {
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
it("and shows one container with correct title", async () => {
await removeTimes(page);
const menuTitle = await page.$eval("aside ul.menu-list li a", (e) => e.title);
expect(menuTitle).toEqual("custom_base");
});
});
@@ -1,15 +1,17 @@
const puppeteer = require("puppeteer");
const { removeTimes } = require("../utils");
const iPhoneX = puppeteer.devices["iPhone X"];
const iPadLandscape = puppeteer.devices["iPad landscape"];
const { BASE } = process.env;
const { DEFAULT_URL: URL } = process.env;
describe("home page", () => {
beforeEach(async () => {
await page.goto(BASE, { waitUntil: "networkidle2" });
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
@@ -17,6 +19,7 @@ describe("home page", () => {
it("renders ipad viewport", async () => {
await page.emulate(iPadLandscape);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
@@ -24,6 +27,7 @@ describe("home page", () => {
it("renders iphone viewport", async () => {
await page.emulate(iPhoneX);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
@@ -43,7 +47,7 @@ describe("home page", () => {
});
beforeEach(async () => {
await page.goto(BASE, { waitUntil: "networkidle2" });
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("and shows one container with correct title", async () => {
+41
View File
@@ -0,0 +1,41 @@
const puppeteer = require("puppeteer");
const { removeTimes } = require("../utils");
const iPhoneX = puppeteer.devices["iPhone X"];
const iPadLandscape = puppeteer.devices["iPad landscape"];
const { DEFAULT_URL: URL } = process.env;
describe("Dozzle with light mode", () => {
beforeAll(async () => {
await page.goto(URL + "/settings", { waitUntil: "networkidle2" });
await page.$$eval("label.switch", (elements) => {
elements.filter((e) => e.textContent.trim() === "Use light theme")[0].click();
});
});
beforeEach(async () => {
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
it("renders ipad viewport", async () => {
await page.emulate(iPadLandscape);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
});
it("renders iphone viewport", async () => {
await page.emulate(iPhoneX);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
});
});
+14 -1
View File
@@ -1,5 +1,14 @@
version: "3.4"
services:
custom_base:
container_name: custom_base
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DOZZLE_FILTER=name=custom_base
- DOZZLE_BASE=/foobarbase
build:
context: ..
dozzle:
container_name: dozzle
volumes:
@@ -12,7 +21,11 @@ services:
build:
context: .
command: yarn test
volumes:
- ./__tests__:/app/__tests__
environment:
- BASE=http://dozzle:8080/
- DEFAULT_URL=http://dozzle:8080/
- CUSTOM_URL=http://custom_base:8080/foobarbase
depends_on:
- dozzle
- custom_base
+1 -1
View File
@@ -10,7 +10,7 @@
"dependencies": {
"jest": "^26.0.1",
"jest-image-snapshot": "^4.0.0",
"puppeteer": "^4.0.0"
"puppeteer": "^5.0.0"
},
"jest": {
"preset": "jest-puppeteer",
+8
View File
@@ -0,0 +1,8 @@
async function removeTimes(page) {
await page.waitForSelector("time");
await page.evaluate(() => {
(document.querySelectorAll("time") || []).forEach((el) => el.remove());
});
}
module.exports = { removeTimes };
+353 -330
View File
File diff suppressed because it is too large Load Diff
+19 -15
View File
@@ -1,18 +1,20 @@
{
"name": "dozzle",
"version": "1.28.0",
"version": "2.1.2",
"description": "Realtime log viewer for docker containers. ",
"scripts": {
"prestart": "yarn clean",
"start": "npm-run-all -p watch:*",
"watch": "npm-run-all -p watch:*",
"watch:assets": "webpack --mode=development --watch",
"watch:server": "reflex -c .reflex",
"dev": "npm-run-all -p dev-server watch:server",
"dev-server": "webpack-dev-server --open",
"prebuild": "yarn clean",
"build": "yarn webpack --mode=production",
"clean": "rm -rf static/ a_main-packr.go",
"release": "release-it",
"test": "TZ=UTC jest",
"integration": "docker-compose -f integration/docker-compose.test.yml up --build --force-recreate integration"
"integration": "docker-compose -f integration/docker-compose.test.yml up --build --force-recreate --exit-code-from integration"
},
"repository": {
"type": "git",
@@ -29,31 +31,32 @@
"buefy": "^0.8.20",
"bulma": "^0.9.0",
"date-fns": "^2.14.0",
"dompurify": "^2.0.11",
"dompurify": "^2.0.12",
"hotkeys-js": "^3.8.1",
"lodash.debounce": "^4.0.8",
"lodash.throttle": "^4.1.1",
"semver": "^7.3.2",
"splitpanes": "^2.2.1",
"store": "^2.0.12",
"vue": "^2.6.11",
"vue-meta": "^2.4.0",
"vue-router": "^3.3.4",
"vuex": "^3.4.0"
"vuex": "^3.5.1"
},
"devDependencies": {
"@babel/core": "^7.10.2",
"@babel/plugin-transform-runtime": "^7.10.1",
"@babel/core": "^7.10.5",
"@babel/plugin-transform-runtime": "^7.10.5",
"@vue/component-compiler-utils": "^3.1.2",
"@vue/test-utils": "^1.0.3",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^26.0.1",
"babel-jest": "^26.1.0",
"babel-preset-env": "^1.7.0",
"caniuse-lite": "^1.0.30001084",
"caniuse-lite": "^1.0.30001102",
"css-loader": "^3.6.0",
"eventsourcemock": "^2.0.0",
"html-webpack-plugin": "^4.3.0",
"husky": "^4.2.5",
"jest": "^26.0.1",
"jest": "^26.1.0",
"jest-serializer-vue": "^2.0.2",
"lint-staged": "^10.2.11",
"mini-css-extract-plugin": "^0.9.0",
@@ -62,16 +65,17 @@
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
"prettier": "^2.0.5",
"release-it": "^13.6.3",
"sass": "^1.26.8",
"sass-loader": "^8.0.2",
"release-it": "^13.6.5",
"sass": "^1.26.10",
"sass-loader": "^9.0.2",
"vue-hot-reload-api": "^2.3.4",
"vue-jest": "^3.0.5",
"vue-loader": "^15.9.2",
"vue-jest": "^3.0.6",
"vue-loader": "^15.9.3",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0",
"webpack-pwa-manifest": "^4.2.0"
},
"husky": {
+17 -7
View File
@@ -10,12 +10,12 @@ module.exports = (env, argv) => ({
maxAssetSize: 350000,
maxEntrypointSize: 600000,
},
devtool: argv.mode === "development" ? "inline-cheap-source-map" : false,
devtool: argv.mode !== "production" ? "inline-cheap-source-map" : false,
entry: ["./assets/main.js", "./assets/styles.scss"],
output: {
path: path.resolve(__dirname, "./static"),
filename: "[name].js",
publicPath: "{{ .Base }}",
publicPath: process.env.WEBPACK_DEV_SERVER ? "/" : "{{ .Base }}",
},
module: {
rules: [
@@ -26,19 +26,18 @@ module.exports = (env, argv) => ({
{
test: /\.(sass|scss|css)$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
query: {
importLoaders: 1,
loader: MiniCssExtractPlugin.loader,
options: {
hmr: argv.mode !== "production",
},
},
"css-loader",
{
loader: "postcss-loader",
options: {
ident: "postcss",
plugins: (loader) => [
require("postcss-import")(),
require("postcss-cssnext")({
features: {
customProperties: { warnings: false },
@@ -75,4 +74,15 @@ module.exports = (env, argv) => ({
},
extensions: ["*", ".js", ".vue", ".json"],
},
devServer: {
port: 8081,
inline: true,
hot: true,
historyApiFallback: true,
proxy: {
"/api": {
target: "http://localhost:8080",
},
},
},
});
+1544 -584
View File
File diff suppressed because it is too large Load Diff