From 9574cb4c956652372789d0c81d2cb7d35e36369c Mon Sep 17 00:00:00 2001 From: "Austin S. Hemmelgarn" Date: Fri, 14 May 2021 11:41:16 -0400 Subject: Bundle the react dashboard code into the agent repo directly. (#11139) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove code for bundling the dashoard on install. * Bundle the dashboard code directly into the agent repo. This diffstat looks huge, but it’s actually relatively simple. The only _actual_ changes are in the Makefiles, `configure.ac`, and the addition of `generate_dashboard_makefile.py`. Everything else consists of removing files that are included in the dashboard tarball, and extracting the contents of the tarball into `web/gui/dashboard`. * CI cleanup. * Automate bundling of the dashboard code. This replaces the makefile generator script with one that handles bundling of the dashboard code in it’s entirety, and updates the GHA workflow used for generating dashboard PRs to use that instead of the existing shell commands. It also removes the packaging/dashboard.* files, as they are no longer needed. --- .eslintignore | 1 + .github/workflows/checks.yml | 22 - .github/workflows/dashboard-pr.yml | 9 +- .gitignore | 1 + Makefile.am | 3 - configure.ac | 1 + contrib/debian/rules | 1 - netdata-installer.sh | 34 - netdata.spec.in | 1 - packaging/bundle-dashboard.sh | 14 - packaging/dashboard.checksums | 1 - packaging/dashboard.version | 1 - web/gui/.dashboard-notice.md | 7 + web/gui/Makefile.am | 99 +- web/gui/bundle_dashboard.py | 105 + web/gui/console.html | 72 - web/gui/css/bootstrap-3.3.7.css | 6758 ------------ web/gui/css/bootstrap-slate-flat-3.3.7.css | 7101 ------------- web/gui/css/bootstrap-slider-10.0.0.min.css | 22 - web/gui/css/bootstrap-theme-3.3.7.min.css | 7 - web/gui/css/bootstrap-toggle-2.2.2.min.css | 29 - web/gui/dashboard.css | 757 -- web/gui/dashboard.html | 699 -- web/gui/dashboard.js | 10377 ------------------- web/gui/dashboard.slate.css | 775 -- web/gui/dashboard/Makefile.am | 198 + web/gui/dashboard/README.md | 1 + web/gui/dashboard/asset-manifest.json | 47 + web/gui/dashboard/console.html | 72 + web/gui/dashboard/css/bootstrap-3.3.7.css | 6760 ++++++++++++ .../dashboard/css/bootstrap-slate-flat-3.3.7.css | 7101 +++++++++++++ .../dashboard/css/bootstrap-slider-10.0.0.min.css | 22 + .../dashboard/css/bootstrap-theme-3.3.7.min.css | 7 + .../dashboard/css/bootstrap-toggle-2.2.2.min.css | 29 + web/gui/dashboard/css/dashboard.css | 785 ++ web/gui/dashboard/css/dashboard.slate.css | 803 ++ web/gui/dashboard/dash-example.html | 1020 ++ web/gui/dashboard/dashboard-react.js | 675 ++ web/gui/dashboard/dashboard.css | 785 ++ web/gui/dashboard/dashboard.html | 699 ++ web/gui/dashboard/dashboard.js | 10340 ++++++++++++++++++ web/gui/dashboard/dashboard.slate.css | 803 ++ web/gui/dashboard/demo.html | 51 + web/gui/dashboard/demo2.html | 143 + web/gui/dashboard/demosites.html | 1469 +++ web/gui/dashboard/demosites2.html | 1112 ++ web/gui/dashboard/favicon.ico | Bin 0 -> 1150 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 289 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes web/gui/dashboard/goto-host-from-alarm.html | 250 + web/gui/dashboard/images/alert-128-orange.png | Bin 0 -> 3477 bytes web/gui/dashboard/images/alert-128-red.png | Bin 0 -> 3743 bytes .../dashboard/images/alert-multi-size-orange.ico | Bin 0 -> 112374 bytes web/gui/dashboard/images/alert-multi-size-red.ico | Bin 0 -> 112458 bytes web/gui/dashboard/images/android-icon-144x144.png | Bin 0 -> 2721 bytes web/gui/dashboard/images/android-icon-192x192.png | Bin 0 -> 3923 bytes web/gui/dashboard/images/android-icon-36x36.png | Bin 0 -> 539 bytes web/gui/dashboard/images/android-icon-48x48.png | Bin 0 -> 762 bytes web/gui/dashboard/images/android-icon-72x72.png | Bin 0 -> 1153 bytes web/gui/dashboard/images/android-icon-96x96.png | Bin 0 -> 1747 bytes web/gui/dashboard/images/animated.gif | Bin 0 -> 389597 bytes web/gui/dashboard/images/apple-icon-114x114.png | Bin 0 -> 3651 bytes web/gui/dashboard/images/apple-icon-120x120.png | Bin 0 -> 2315 bytes web/gui/dashboard/images/apple-icon-144x144.png | Bin 0 -> 4001 bytes web/gui/dashboard/images/apple-icon-152x152.png | Bin 0 -> 5026 bytes web/gui/dashboard/images/apple-icon-180x180.png | Bin 0 -> 3645 bytes web/gui/dashboard/images/apple-icon-57x57.png | Bin 0 -> 1250 bytes web/gui/dashboard/images/apple-icon-60x60.png | Bin 0 -> 1052 bytes web/gui/dashboard/images/apple-icon-72x72.png | Bin 0 -> 1427 bytes web/gui/dashboard/images/apple-icon-76x76.png | Bin 0 -> 1711 bytes .../dashboard/images/apple-icon-precomposed.png | Bin 0 -> 3926 bytes web/gui/dashboard/images/apple-icon.png | Bin 0 -> 3926 bytes web/gui/dashboard/images/banner-icon-144x144.png | Bin 0 -> 2724 bytes .../dashboard/images/check-mark-2-128-green.png | Bin 0 -> 3771 bytes .../images/check-mark-2-multi-size-green.ico | Bin 0 -> 111893 bytes web/gui/dashboard/images/favicon-128.png | Bin 0 -> 2436 bytes web/gui/dashboard/images/favicon-16x16.png | Bin 0 -> 285 bytes web/gui/dashboard/images/favicon-196x196.png | Bin 0 -> 10025 bytes web/gui/dashboard/images/favicon-32x32.png | Bin 0 -> 454 bytes web/gui/dashboard/images/favicon-96x96.png | Bin 0 -> 1925 bytes web/gui/dashboard/images/favicon.ico | Bin 0 -> 1150 bytes web/gui/dashboard/images/ms-icon-144x144.png | Bin 0 -> 4001 bytes web/gui/dashboard/images/ms-icon-150x150.png | Bin 0 -> 2867 bytes web/gui/dashboard/images/ms-icon-310x150.png | Bin 0 -> 3632 bytes web/gui/dashboard/images/ms-icon-310x310.png | Bin 0 -> 7215 bytes web/gui/dashboard/images/ms-icon-36x36.png | Bin 0 -> 536 bytes web/gui/dashboard/images/ms-icon-70x70.png | Bin 0 -> 2436 bytes web/gui/dashboard/images/netdata-logomark.svg | 8 + web/gui/dashboard/images/netdata.svg | 18 + web/gui/dashboard/images/packaging-beta-tag.svg | 42 + web/gui/dashboard/images/post.png | Bin 0 -> 9043 bytes web/gui/dashboard/images/seo-performance-128.png | Bin 0 -> 1828 bytes web/gui/dashboard/index-node-view.html | 30 + web/gui/dashboard/index.html | 16 + web/gui/dashboard/infographic.html | 171 + web/gui/dashboard/lib/bootstrap-3.3.7.min.js | 8 + .../dashboard/lib/bootstrap-slider-10.0.0.min.js | 6 + .../dashboard/lib/bootstrap-table-1.11.0.min.js | 9 + .../lib/bootstrap-table-export-1.11.0.min.js | 8 + .../dashboard/lib/bootstrap-toggle-2.2.2.min.js | 10 + .../dashboard/lib/clipboard-polyfill-be05dad.js | 9 + web/gui/dashboard/lib/d3-4.12.2.min.js | 3 + web/gui/dashboard/lib/d3pie-0.2.1-netdata-3.js | 2124 ++++ web/gui/dashboard/lib/dygraph-c91c859.min.js | 7 + .../lib/dygraph-smooth-plotter-c91c859.js | 141 + web/gui/dashboard/lib/fontawesome-all-5.0.1.min.js | 6 + web/gui/dashboard/lib/gauge-1.3.2.min.js | 2 + web/gui/dashboard/lib/jquery-2.2.4.min.js | 5 + .../lib/jquery.easypiechart-97b5824.min.js | 10 + web/gui/dashboard/lib/jquery.peity-3.2.0.min.js | 14 + .../dashboard/lib/jquery.sparkline-2.1.2.min.js | 6 + web/gui/dashboard/lib/lz-string-1.4.4.min.js | 2 + web/gui/dashboard/lib/pako-1.0.6.min.js | 2 + .../dashboard/lib/perfect-scrollbar-0.6.15.min.js | 3 + web/gui/dashboard/lib/tableExport-1.6.0.min.js | 55 + web/gui/dashboard/manifest.json | 41 + ...he-manifest.1a96c027aec7f2d07341fa69aa6b82fa.js | 190 + web/gui/dashboard/refresh-badges.js | 98 + web/gui/dashboard/robots.txt | 7 + web/gui/dashboard/service-worker.js | 39 + web/gui/dashboard/sitemap.xml | 9 + web/gui/dashboard/static/css/2.6b842ba1.chunk.css | 15 + .../dashboard/static/css/2.6b842ba1.chunk.css.map | 1 + web/gui/dashboard/static/css/4.a36e3b73.chunk.css | 42 + .../dashboard/static/css/4.a36e3b73.chunk.css.map | 1 + .../dashboard/static/css/main.d931154a.chunk.css | 2 + .../static/css/main.d931154a.chunk.css.map | 1 + web/gui/dashboard/static/js/10.db7e8e19.chunk.js | 2 + .../dashboard/static/js/10.db7e8e19.chunk.js.map | 1 + web/gui/dashboard/static/js/2.252b3a57.chunk.js | 3 + .../static/js/2.252b3a57.chunk.js.LICENSE | 236 + .../dashboard/static/js/2.252b3a57.chunk.js.map | 1 + web/gui/dashboard/static/js/3.99238dcb.chunk.js | 2 + .../dashboard/static/js/3.99238dcb.chunk.js.map | 1 + web/gui/dashboard/static/js/4.6ef9bdcb.chunk.js | 2 + .../dashboard/static/js/4.6ef9bdcb.chunk.js.map | 1 + web/gui/dashboard/static/js/5.96a698ab.chunk.js | 3 + .../static/js/5.96a698ab.chunk.js.LICENSE | 3 + .../dashboard/static/js/5.96a698ab.chunk.js.map | 1 + web/gui/dashboard/static/js/6.d9713eb9.chunk.js | 2 + .../dashboard/static/js/6.d9713eb9.chunk.js.map | 1 + web/gui/dashboard/static/js/7.12e939e5.chunk.js | 2 + .../dashboard/static/js/7.12e939e5.chunk.js.map | 1 + web/gui/dashboard/static/js/8.91852cf4.chunk.js | 2 + .../dashboard/static/js/8.91852cf4.chunk.js.map | 1 + web/gui/dashboard/static/js/9.e3a9ce26.chunk.js | 2 + .../dashboard/static/js/9.e3a9ce26.chunk.js.map | 1 + web/gui/dashboard/static/js/main.8aa70c75.chunk.js | 3 + .../static/js/main.8aa70c75.chunk.js.LICENSE | 8 + .../dashboard/static/js/main.8aa70c75.chunk.js.map | 1 + .../dashboard/static/js/runtime-main.6c7b39cd.js | 2 + .../static/js/runtime-main.6c7b39cd.js.map | 1 + .../media/ibm-plex-sans-latin-100.245539db.woff2 | Bin 0 -> 18212 bytes .../media/ibm-plex-sans-latin-100.9a582f3a.woff | Bin 0 -> 23296 bytes .../ibm-plex-sans-latin-100italic.1ea7c5d2.woff | Bin 0 -> 25732 bytes .../ibm-plex-sans-latin-100italic.3c34cf08.woff2 | Bin 0 -> 20052 bytes .../media/ibm-plex-sans-latin-200.67524c36.woff | Bin 0 -> 24468 bytes .../media/ibm-plex-sans-latin-200.bf72c841.woff2 | Bin 0 -> 19240 bytes .../ibm-plex-sans-latin-200italic.52df2560.woff | Bin 0 -> 26196 bytes .../ibm-plex-sans-latin-200italic.bbc2d552.woff2 | Bin 0 -> 20536 bytes .../media/ibm-plex-sans-latin-300.10bb6a0a.woff | Bin 0 -> 24220 bytes .../media/ibm-plex-sans-latin-300.9e1c48af.woff2 | Bin 0 -> 19124 bytes .../ibm-plex-sans-latin-300italic.c76f2ab5.woff2 | Bin 0 -> 20468 bytes .../ibm-plex-sans-latin-300italic.d3566d5b.woff | Bin 0 -> 25876 bytes .../media/ibm-plex-sans-latin-400.263d6267.woff2 | Bin 0 -> 17784 bytes .../media/ibm-plex-sans-latin-400.a2c56f94.woff | Bin 0 -> 22620 bytes .../ibm-plex-sans-latin-400italic.272f8611.woff | Bin 0 -> 24664 bytes .../ibm-plex-sans-latin-400italic.89a93a1b.woff2 | Bin 0 -> 19364 bytes .../media/ibm-plex-sans-latin-500.0866c244.woff2 | Bin 0 -> 18640 bytes .../media/ibm-plex-sans-latin-500.f6d5c5d5.woff | Bin 0 -> 23792 bytes .../ibm-plex-sans-latin-500italic.ccd41bd1.woff | Bin 0 -> 25852 bytes .../ibm-plex-sans-latin-500italic.ffd12d59.woff2 | Bin 0 -> 20380 bytes .../media/ibm-plex-sans-latin-600.337b1651.woff | Bin 0 -> 24104 bytes .../media/ibm-plex-sans-latin-600.7852d4dc.woff2 | Bin 0 -> 18912 bytes .../ibm-plex-sans-latin-600italic.17e5379f.woff2 | Bin 0 -> 19940 bytes .../ibm-plex-sans-latin-600italic.6f4ba6aa.woff | Bin 0 -> 25428 bytes .../media/ibm-plex-sans-latin-700.b8809d61.woff | Bin 0 -> 22904 bytes .../media/ibm-plex-sans-latin-700.c9983d3d.woff2 | Bin 0 -> 17976 bytes .../ibm-plex-sans-latin-700italic.02954bee.woff2 | Bin 0 -> 19360 bytes .../ibm-plex-sans-latin-700italic.72e9af40.woff | Bin 0 -> 24584 bytes .../static/media/material-icons.0509ab09.woff2 | Bin 0 -> 60840 bytes web/gui/dashboard/tv-react.html | 287 + web/gui/dashboard/tv.html | 279 + web/gui/demo.html | 51 - web/gui/demo2.html | 143 - web/gui/demosites.html | 1469 --- web/gui/demosites2.html | 1112 -- web/gui/favicon.ico | Bin 1150 -> 0 bytes web/gui/fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes web/gui/fonts/glyphicons-halflings-regular.svg | 289 - web/gui/fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes web/gui/fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes web/gui/fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes web/gui/goto-host-from-alarm.html | 251 - web/gui/images/alert-128-orange.png | Bin 3477 -> 0 bytes web/gui/images/alert-128-red.png | Bin 3743 -> 0 bytes web/gui/images/alert-multi-size-orange.ico | Bin 112374 -> 0 bytes web/gui/images/alert-multi-size-red.ico | Bin 112458 -> 0 bytes web/gui/images/android-icon-144x144.png | Bin 2721 -> 0 bytes web/gui/images/android-icon-192x192.png | Bin 3923 -> 0 bytes web/gui/images/android-icon-36x36.png | Bin 539 -> 0 bytes web/gui/images/android-icon-48x48.png | Bin 762 -> 0 bytes web/gui/images/android-icon-72x72.png | Bin 1153 -> 0 bytes web/gui/images/android-icon-96x96.png | Bin 1747 -> 0 bytes web/gui/images/animated.gif | Bin 389597 -> 0 bytes web/gui/images/apple-icon-114x114.png | Bin 3651 -> 0 bytes web/gui/images/apple-icon-120x120.png | Bin 2315 -> 0 bytes web/gui/images/apple-icon-144x144.png | Bin 4001 -> 0 bytes web/gui/images/apple-icon-152x152.png | Bin 5026 -> 0 bytes web/gui/images/apple-icon-180x180.png | Bin 3645 -> 0 bytes web/gui/images/apple-icon-57x57.png | Bin 1250 -> 0 bytes web/gui/images/apple-icon-60x60.png | Bin 1052 -> 0 bytes web/gui/images/apple-icon-72x72.png | Bin 1427 -> 0 bytes web/gui/images/apple-icon-76x76.png | Bin 1711 -> 0 bytes web/gui/images/apple-icon-precomposed.png | Bin 3926 -> 0 bytes web/gui/images/apple-icon.png | Bin 3926 -> 0 bytes web/gui/images/banner-icon-144x144.png | Bin 2724 -> 0 bytes web/gui/images/check-mark-2-128-green.png | Bin 3771 -> 0 bytes web/gui/images/check-mark-2-multi-size-green.ico | Bin 111893 -> 0 bytes web/gui/images/favicon-128.png | Bin 2436 -> 0 bytes web/gui/images/favicon-16x16.png | Bin 285 -> 0 bytes web/gui/images/favicon-196x196.png | Bin 10025 -> 0 bytes web/gui/images/favicon-32x32.png | Bin 454 -> 0 bytes web/gui/images/favicon-96x96.png | Bin 1925 -> 0 bytes web/gui/images/favicon.ico | Bin 1150 -> 0 bytes web/gui/images/ms-icon-144x144.png | Bin 4001 -> 0 bytes web/gui/images/ms-icon-150x150.png | Bin 2867 -> 0 bytes web/gui/images/ms-icon-310x150.png | Bin 3632 -> 0 bytes web/gui/images/ms-icon-310x310.png | Bin 7215 -> 0 bytes web/gui/images/ms-icon-36x36.png | Bin 536 -> 0 bytes web/gui/images/ms-icon-70x70.png | Bin 2436 -> 0 bytes web/gui/images/netdata-logomark.svg | 8 - web/gui/images/netdata.svg | 18 - web/gui/images/packaging-beta-tag.svg | 42 - web/gui/images/post.png | Bin 9043 -> 0 bytes web/gui/images/seo-performance-128.png | Bin 1828 -> 0 bytes web/gui/index.html | 1322 --- web/gui/infographic.html | 171 - web/gui/lib/bootstrap-3.3.7.min.js | 8 - web/gui/lib/bootstrap-slider-10.0.0.min.js | 6 - web/gui/lib/bootstrap-table-1.11.0.min.js | 9 - web/gui/lib/bootstrap-table-export-1.11.0.min.js | 8 - web/gui/lib/bootstrap-toggle-2.2.2.min.js | 10 - web/gui/lib/clipboard-polyfill-be05dad.js | 9 - web/gui/lib/d3-4.12.2.min.js | 3 - web/gui/lib/d3pie-0.2.1-netdata-3.js | 2124 ---- web/gui/lib/dygraph-c91c859.min.js | 7 - web/gui/lib/dygraph-smooth-plotter-c91c859.js | 141 - web/gui/lib/fontawesome-all-5.0.1.min.js | 6 - web/gui/lib/gauge-1.3.2.min.js | 2 - web/gui/lib/jquery-2.2.4.min.js | 5 - web/gui/lib/jquery.easypiechart-97b5824.min.js | 10 - web/gui/lib/jquery.peity-3.2.0.min.js | 14 - web/gui/lib/jquery.sparkline-2.1.2.min.js | 6 - web/gui/lib/lz-string-1.4.4.min.js | 2 - web/gui/lib/pako-1.0.6.min.js | 2 - web/gui/lib/perfect-scrollbar-0.6.15.min.js | 3 - web/gui/lib/tableExport-1.6.0.min.js | 55 - web/gui/manifest.json | 41 - web/gui/refresh-badges.js | 98 - web/gui/robots.txt | 7 - web/gui/sitemap.xml | 9 - web/gui/tv.html | 279 - 266 files changed, 37594 insertions(+), 34514 deletions(-) delete mode 100755 packaging/bundle-dashboard.sh delete mode 100644 packaging/dashboard.checksums delete mode 100644 packaging/dashboard.version create mode 100644 web/gui/.dashboard-notice.md create mode 100755 web/gui/bundle_dashboard.py delete mode 100644 web/gui/console.html delete mode 100644 web/gui/css/bootstrap-3.3.7.css delete mode 100644 web/gui/css/bootstrap-slate-flat-3.3.7.css delete mode 100644 web/gui/css/bootstrap-slider-10.0.0.min.css delete mode 100644 web/gui/css/bootstrap-theme-3.3.7.min.css delete mode 100644 web/gui/css/bootstrap-toggle-2.2.2.min.css delete mode 100644 web/gui/dashboard.css delete mode 100644 web/gui/dashboard.html delete mode 100644 web/gui/dashboard.js delete mode 100644 web/gui/dashboard.slate.css create mode 100644 web/gui/dashboard/Makefile.am create mode 120000 web/gui/dashboard/README.md create mode 100644 web/gui/dashboard/asset-manifest.json create mode 100644 web/gui/dashboard/console.html create mode 100644 web/gui/dashboard/css/bootstrap-3.3.7.css create mode 100644 web/gui/dashboard/css/bootstrap-slate-flat-3.3.7.css create mode 100644 web/gui/dashboard/css/bootstrap-slider-10.0.0.min.css create mode 100644 web/gui/dashboard/css/bootstrap-theme-3.3.7.min.css create mode 100644 web/gui/dashboard/css/bootstrap-toggle-2.2.2.min.css create mode 100644 web/gui/dashboard/css/dashboard.css create mode 100644 web/gui/dashboard/css/dashboard.slate.css create mode 100644 web/gui/dashboard/dash-example.html create mode 100644 web/gui/dashboard/dashboard-react.js create mode 100644 web/gui/dashboard/dashboard.css create mode 100644 web/gui/dashboard/dashboard.html create mode 100644 web/gui/dashboard/dashboard.js create mode 100644 web/gui/dashboard/dashboard.slate.css create mode 100644 web/gui/dashboard/demo.html create mode 100644 web/gui/dashboard/demo2.html create mode 100644 web/gui/dashboard/demosites.html create mode 100644 web/gui/dashboard/demosites2.html create mode 100644 web/gui/dashboard/favicon.ico create mode 100644 web/gui/dashboard/fonts/glyphicons-halflings-regular.eot create mode 100644 web/gui/dashboard/fonts/glyphicons-halflings-regular.svg create mode 100644 web/gui/dashboard/fonts/glyphicons-halflings-regular.ttf create mode 100644 web/gui/dashboard/fonts/glyphicons-halflings-regular.woff create mode 100644 web/gui/dashboard/fonts/glyphicons-halflings-regular.woff2 create mode 100644 web/gui/dashboard/goto-host-from-alarm.html create mode 100644 web/gui/dashboard/images/alert-128-orange.png create mode 100644 web/gui/dashboard/images/alert-128-red.png create mode 100644 web/gui/dashboard/images/alert-multi-size-orange.ico create mode 100644 web/gui/dashboard/images/alert-multi-size-red.ico create mode 100644 web/gui/dashboard/images/android-icon-144x144.png create mode 100644 web/gui/dashboard/images/android-icon-192x192.png create mode 100644 web/gui/dashboard/images/android-icon-36x36.png create mode 100644 web/gui/dashboard/images/android-icon-48x48.png create mode 100644 web/gui/dashboard/images/android-icon-72x72.png create mode 100644 web/gui/dashboard/images/android-icon-96x96.png create mode 100644 web/gui/dashboard/images/animated.gif create mode 100644 web/gui/dashboard/images/apple-icon-114x114.png create mode 100644 web/gui/dashboard/images/apple-icon-120x120.png create mode 100644 web/gui/dashboard/images/apple-icon-144x144.png create mode 100644 web/gui/dashboard/images/apple-icon-152x152.png create mode 100644 web/gui/dashboard/images/apple-icon-180x180.png create mode 100644 web/gui/dashboard/images/apple-icon-57x57.png create mode 100644 web/gui/dashboard/images/apple-icon-60x60.png create mode 100644 web/gui/dashboard/images/apple-icon-72x72.png create mode 100644 web/gui/dashboard/images/apple-icon-76x76.png create mode 100644 web/gui/dashboard/images/apple-icon-precomposed.png create mode 100644 web/gui/dashboard/images/apple-icon.png create mode 100644 web/gui/dashboard/images/banner-icon-144x144.png create mode 100644 web/gui/dashboard/images/check-mark-2-128-green.png create mode 100644 web/gui/dashboard/images/check-mark-2-multi-size-green.ico create mode 100644 web/gui/dashboard/images/favicon-128.png create mode 100644 web/gui/dashboard/images/favicon-16x16.png create mode 100644 web/gui/dashboard/images/favicon-196x196.png create mode 100644 web/gui/dashboard/images/favicon-32x32.png create mode 100644 web/gui/dashboard/images/favicon-96x96.png create mode 100644 web/gui/dashboard/images/favicon.ico create mode 100644 web/gui/dashboard/images/ms-icon-144x144.png create mode 100644 web/gui/dashboard/images/ms-icon-150x150.png create mode 100644 web/gui/dashboard/images/ms-icon-310x150.png create mode 100644 web/gui/dashboard/images/ms-icon-310x310.png create mode 100644 web/gui/dashboard/images/ms-icon-36x36.png create mode 100644 web/gui/dashboard/images/ms-icon-70x70.png create mode 100644 web/gui/dashboard/images/netdata-logomark.svg create mode 100644 web/gui/dashboard/images/netdata.svg create mode 100644 web/gui/dashboard/images/packaging-beta-tag.svg create mode 100644 web/gui/dashboard/images/post.png create mode 100644 web/gui/dashboard/images/seo-performance-128.png create mode 100644 web/gui/dashboard/index-node-view.html create mode 100644 web/gui/dashboard/index.html create mode 100644 web/gui/dashboard/infographic.html create mode 100644 web/gui/dashboard/lib/bootstrap-3.3.7.min.js create mode 100644 web/gui/dashboard/lib/bootstrap-slider-10.0.0.min.js create mode 100644 web/gui/dashboard/lib/bootstrap-table-1.11.0.min.js create mode 100644 web/gui/dashboard/lib/bootstrap-table-export-1.11.0.min.js create mode 100644 web/gui/dashboard/lib/bootstrap-toggle-2.2.2.min.js create mode 100644 web/gui/dashboard/lib/clipboard-polyfill-be05dad.js create mode 100644 web/gui/dashboard/lib/d3-4.12.2.min.js create mode 100644 web/gui/dashboard/lib/d3pie-0.2.1-netdata-3.js create mode 100644 web/gui/dashboard/lib/dygraph-c91c859.min.js create mode 100644 web/gui/dashboard/lib/dygraph-smooth-plotter-c91c859.js create mode 100644 web/gui/dashboard/lib/fontawesome-all-5.0.1.min.js create mode 100644 web/gui/dashboard/lib/gauge-1.3.2.min.js create mode 100644 web/gui/dashboard/lib/jquery-2.2.4.min.js create mode 100644 web/gui/dashboard/lib/jquery.easypiechart-97b5824.min.js create mode 100644 web/gui/dashboard/lib/jquery.peity-3.2.0.min.js create mode 100644 web/gui/dashboard/lib/jquery.sparkline-2.1.2.min.js create mode 100644 web/gui/dashboard/lib/lz-string-1.4.4.min.js create mode 100644 web/gui/dashboard/lib/pako-1.0.6.min.js create mode 100644 web/gui/dashboard/lib/perfect-scrollbar-0.6.15.min.js create mode 100644 web/gui/dashboard/lib/tableExport-1.6.0.min.js create mode 100644 web/gui/dashboard/manifest.json create mode 100644 web/gui/dashboard/precache-manifest.1a96c027aec7f2d07341fa69aa6b82fa.js create mode 100644 web/gui/dashboard/refresh-badges.js create mode 100644 web/gui/dashboard/robots.txt create mode 100644 web/gui/dashboard/service-worker.js create mode 100644 web/gui/dashboard/sitemap.xml create mode 100644 web/gui/dashboard/static/css/2.6b842ba1.chunk.css create mode 100644 web/gui/dashboard/static/css/2.6b842ba1.chunk.css.map create mode 100644 web/gui/dashboard/static/css/4.a36e3b73.chunk.css create mode 100644 web/gui/dashboard/static/css/4.a36e3b73.chunk.css.map create mode 100644 web/gui/dashboard/static/css/main.d931154a.chunk.css create mode 100644 web/gui/dashboard/static/css/main.d931154a.chunk.css.map create mode 100644 web/gui/dashboard/static/js/10.db7e8e19.chunk.js create mode 100644 web/gui/dashboard/static/js/10.db7e8e19.chunk.js.map create mode 100644 web/gui/dashboard/static/js/2.252b3a57.chunk.js create mode 100644 web/gui/dashboard/static/js/2.252b3a57.chunk.js.LICENSE create mode 100644 web/gui/dashboard/static/js/2.252b3a57.chunk.js.map create mode 100644 web/gui/dashboard/static/js/3.99238dcb.chunk.js create mode 100644 web/gui/dashboard/static/js/3.99238dcb.chunk.js.map create mode 100644 web/gui/dashboard/static/js/4.6ef9bdcb.chunk.js create mode 100644 web/gui/dashboard/static/js/4.6ef9bdcb.chunk.js.map create mode 100644 web/gui/dashboard/static/js/5.96a698ab.chunk.js create mode 100644 web/gui/dashboard/static/js/5.96a698ab.chunk.js.LICENSE create mode 100644 web/gui/dashboard/static/js/5.96a698ab.chunk.js.map create mode 100644 web/gui/dashboard/static/js/6.d9713eb9.chunk.js create mode 100644 web/gui/dashboard/static/js/6.d9713eb9.chunk.js.map create mode 100644 web/gui/dashboard/static/js/7.12e939e5.chunk.js create mode 100644 web/gui/dashboard/static/js/7.12e939e5.chunk.js.map create mode 100644 web/gui/dashboard/static/js/8.91852cf4.chunk.js create mode 100644 web/gui/dashboard/static/js/8.91852cf4.chunk.js.map create mode 100644 web/gui/dashboard/static/js/9.e3a9ce26.chunk.js create mode 100644 web/gui/dashboard/static/js/9.e3a9ce26.chunk.js.map create mode 100644 web/gui/dashboard/static/js/main.8aa70c75.chunk.js create mode 100644 web/gui/dashboard/static/js/main.8aa70c75.chunk.js.LICENSE create mode 100644 web/gui/dashboard/static/js/main.8aa70c75.chunk.js.map create mode 100644 web/gui/dashboard/static/js/runtime-main.6c7b39cd.js create mode 100644 web/gui/dashboard/static/js/runtime-main.6c7b39cd.js.map create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-100.245539db.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-100.9a582f3a.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-200.67524c36.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-200.bf72c841.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-200italic.52df2560.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-400.263d6267.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-400.a2c56f94.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-400italic.272f8611.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-500.0866c244.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-600.337b1651.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-700.b8809d61.woff create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2 create mode 100644 web/gui/dashboard/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff create mode 100644 web/gui/dashboard/static/media/material-icons.0509ab09.woff2 create mode 100644 web/gui/dashboard/tv-react.html create mode 100644 web/gui/dashboard/tv.html delete mode 100644 web/gui/demo.html delete mode 100644 web/gui/demo2.html delete mode 100644 web/gui/demosites.html delete mode 100644 web/gui/demosites2.html delete mode 100644 web/gui/favicon.ico delete mode 100644 web/gui/fonts/glyphicons-halflings-regular.eot delete mode 100644 web/gui/fonts/glyphicons-halflings-regular.svg delete mode 100644 web/gui/fonts/glyphicons-halflings-regular.ttf delete mode 100644 web/gui/fonts/glyphicons-halflings-regular.woff delete mode 100644 web/gui/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 web/gui/goto-host-from-alarm.html delete mode 100644 web/gui/images/alert-128-orange.png delete mode 100644 web/gui/images/alert-128-red.png delete mode 100644 web/gui/images/alert-multi-size-orange.ico delete mode 100644 web/gui/images/alert-multi-size-red.ico delete mode 100644 web/gui/images/android-icon-144x144.png delete mode 100644 web/gui/images/android-icon-192x192.png delete mode 100644 web/gui/images/android-icon-36x36.png delete mode 100644 web/gui/images/android-icon-48x48.png delete mode 100644 web/gui/images/android-icon-72x72.png delete mode 100644 web/gui/images/android-icon-96x96.png delete mode 100644 web/gui/images/animated.gif delete mode 100644 web/gui/images/apple-icon-114x114.png delete mode 100644 web/gui/images/apple-icon-120x120.png delete mode 100644 web/gui/images/apple-icon-144x144.png delete mode 100644 web/gui/images/apple-icon-152x152.png delete mode 100644 web/gui/images/apple-icon-180x180.png delete mode 100644 web/gui/images/apple-icon-57x57.png delete mode 100644 web/gui/images/apple-icon-60x60.png delete mode 100644 web/gui/images/apple-icon-72x72.png delete mode 100644 web/gui/images/apple-icon-76x76.png delete mode 100644 web/gui/images/apple-icon-precomposed.png delete mode 100644 web/gui/images/apple-icon.png delete mode 100644 web/gui/images/banner-icon-144x144.png delete mode 100644 web/gui/images/check-mark-2-128-green.png delete mode 100644 web/gui/images/check-mark-2-multi-size-green.ico delete mode 100644 web/gui/images/favicon-128.png delete mode 100644 web/gui/images/favicon-16x16.png delete mode 100644 web/gui/images/favicon-196x196.png delete mode 100644 web/gui/images/favicon-32x32.png delete mode 100644 web/gui/images/favicon-96x96.png delete mode 100644 web/gui/images/favicon.ico delete mode 100644 web/gui/images/ms-icon-144x144.png delete mode 100644 web/gui/images/ms-icon-150x150.png delete mode 100644 web/gui/images/ms-icon-310x150.png delete mode 100644 web/gui/images/ms-icon-310x310.png delete mode 100644 web/gui/images/ms-icon-36x36.png delete mode 100644 web/gui/images/ms-icon-70x70.png delete mode 100644 web/gui/images/netdata-logomark.svg delete mode 100644 web/gui/images/netdata.svg delete mode 100644 web/gui/images/packaging-beta-tag.svg delete mode 100644 web/gui/images/post.png delete mode 100644 web/gui/images/seo-performance-128.png delete mode 100644 web/gui/index.html delete mode 100644 web/gui/infographic.html delete mode 100644 web/gui/lib/bootstrap-3.3.7.min.js delete mode 100644 web/gui/lib/bootstrap-slider-10.0.0.min.js delete mode 100644 web/gui/lib/bootstrap-table-1.11.0.min.js delete mode 100644 web/gui/lib/bootstrap-table-export-1.11.0.min.js delete mode 100644 web/gui/lib/bootstrap-toggle-2.2.2.min.js delete mode 100644 web/gui/lib/clipboard-polyfill-be05dad.js delete mode 100644 web/gui/lib/d3-4.12.2.min.js delete mode 100644 web/gui/lib/d3pie-0.2.1-netdata-3.js delete mode 100644 web/gui/lib/dygraph-c91c859.min.js delete mode 100644 web/gui/lib/dygraph-smooth-plotter-c91c859.js delete mode 100644 web/gui/lib/fontawesome-all-5.0.1.min.js delete mode 100644 web/gui/lib/gauge-1.3.2.min.js delete mode 100644 web/gui/lib/jquery-2.2.4.min.js delete mode 100644 web/gui/lib/jquery.easypiechart-97b5824.min.js delete mode 100644 web/gui/lib/jquery.peity-3.2.0.min.js delete mode 100644 web/gui/lib/jquery.sparkline-2.1.2.min.js delete mode 100644 web/gui/lib/lz-string-1.4.4.min.js delete mode 100644 web/gui/lib/pako-1.0.6.min.js delete mode 100644 web/gui/lib/perfect-scrollbar-0.6.15.min.js delete mode 100644 web/gui/lib/tableExport-1.6.0.min.js delete mode 100644 web/gui/manifest.json delete mode 100644 web/gui/refresh-badges.js delete mode 100644 web/gui/robots.txt delete mode 100644 web/gui/sitemap.xml delete mode 100644 web/gui/tv.html diff --git a/.eslintignore b/.eslintignore index 96212a3593..8cefe0eaed 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,2 @@ **/*{.,-}min.js +web/gui/dashboard/* diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index efe61c35f3..e4025dd207 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -19,28 +19,6 @@ jobs: LOCAL_ONLY: "true" run: | ./tests/installer/checksums.sh - dashboard-checks: - name: Dashboard - runs-on: ubuntu-latest - steps: - - name: Git clone repository - uses: actions/checkout@v2 - with: - submodules: recursive - - name: Install required packages - run: | - ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive netdata - - name: Backup dashboard.js - run: | - cp web/gui/dashboard.js /tmp/dashboard.js - - name: Regenerate dashboard.js - run: | - autoreconf -ivf - ./configure --enable-maintainer-mode - make dist - - name: Compare generated Dashboard vs. Backed up Dashboard - run: | - diff -sNrdu /tmp/dashboard.js web/gui/dashboard.js libressl-checks: name: LibreSSL runs-on: ubuntu-latest diff --git a/.github/workflows/dashboard-pr.yml b/.github/workflows/dashboard-pr.yml index e1ce4705d8..8f5a40f2be 100644 --- a/.github/workflows/dashboard-pr.yml +++ b/.github/workflows/dashboard-pr.yml @@ -27,14 +27,11 @@ jobs: git push -u origin dashboard-${{ github.event.inputs.dashboard_version }} - name: Update Files run: | - curl -o dashboard.tar.gz https://github.com/netdata/dashboard/releases/download/${{ github.event.inputs.dashboard_version }}/dashboard.tar.gz - echo ${{ github.event.inputs.dashboard_version }} > packaging/dashboard.version - sha256sum dashboard.tar.gz > packaging/dashboard.checksums - rm dashboard.tar.gz + web/gui/bundle_dashboard.py ${{ github.event.inputs.dashboard_version }} - name: Commit Changes uses: swinton/commit@v2.x env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.NETDATABOT_GITHUB_TOKEN }} with: files: | packaging/dashboard.version @@ -47,4 +44,4 @@ jobs: source_branch: dashboard-${{ github.event.inputs.dashboard_version }} pr_title: 'Update dashboard to version ${{ github.event.inputs.dashboard_version }}.' pr_body: 'See https://github.com/netdata/dashboard/releases/tag/${{ github.event.inputs.dashboard_version }} for changes.' - github_token: ${{ secrets.GITHUB_TOKEN }} + github_token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 2049bf467c..46371060cf 100644 --- a/.gitignore +++ b/.gitignore @@ -98,6 +98,7 @@ TODO.txt web/gui/chart-info/ web/gui/control.html +web/gui/dashboard.js web/gui/datasource.css web/gui/gadget.xml web/gui/index_new.html diff --git a/Makefile.am b/Makefile.am index ba2ce1d05b..43780959b2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -57,15 +57,12 @@ dist_noinst_DATA = \ netdata.cppcheck \ netdata.spec \ package.json \ - packaging/bundle-dashboard.sh \ packaging/bundle-ebpf.sh \ packaging/bundle-judy.sh \ packaging/bundle-libbpf.sh \ packaging/bundle-lws.sh \ packaging/bundle-mosquitto.sh \ packaging/check-kernel-config.sh \ - packaging/dashboard.checksums \ - packaging/dashboard.version \ packaging/ebpf.checksums \ packaging/ebpf.version \ packaging/go.d.checksums \ diff --git a/configure.ac b/configure.ac index 7bf0a9c7ba..2f3cac5d48 100644 --- a/configure.ac +++ b/configure.ac @@ -1667,6 +1667,7 @@ AC_CONFIG_FILES([ web/api/queries/sum/Makefile web/api/health/Makefile web/gui/Makefile + web/gui/dashboard/Makefile web/server/Makefile web/server/static/Makefile claim/Makefile diff --git a/contrib/debian/rules b/contrib/debian/rules index 533c2ecfbb..eb50fffb47 100755 --- a/contrib/debian/rules +++ b/contrib/debian/rules @@ -70,7 +70,6 @@ override_dh_install: # Move files that local user shouldn't be editing to /usr/share/netdata # - packaging/bundle-dashboard.sh . ${TOP}/var/lib/netdata/www mkdir -p "$(TOP)/usr/share/netdata/www" for D in $$(find "$(TOP)/var/lib/netdata/www/" -maxdepth 1 -type d -printf '%f '); do \ echo Relocating $$D; \ diff --git a/netdata-installer.sh b/netdata-installer.sh index 86fcefe413..ea4aadb04d 100755 --- a/netdata-installer.sh +++ b/netdata-installer.sh @@ -1362,40 +1362,6 @@ fi # ----------------------------------------------------------------------------- -copy_react_dashboard() { - run cp -a $(find ${1} -mindepth 1 -maxdepth 1) "${NETDATA_WEB_DIR}" - run chown -R "${NETDATA_WEB_USER}:${NETDATA_WEB_GROUP}" "${NETDATA_WEB_DIR}" -} - -install_react_dashboard() { - progress "Fetching and installing dashboard" - - DASHBOARD_PACKAGE_VERSION="$(cat packaging/dashboard.version)" - - tmp="$(mktemp -d -t netdata-dashboard-XXXXXX)" - DASHBOARD_PACKAGE_BASENAME="dashboard.tar.gz" - - if fetch_and_verify "dashboard" \ - "https://github.com/netdata/dashboard/releases/download/${DASHBOARD_PACKAGE_VERSION}/${DASHBOARD_PACKAGE_BASENAME}" \ - "${DASHBOARD_PACKAGE_BASENAME}" \ - "${tmp}" \ - "${NETDATA_LOCAL_TARBALL_OVERRIDE_DASHBOARD}"; then - if run tar -xf "${tmp}/${DASHBOARD_PACKAGE_BASENAME}" -C "${tmp}" && - copy_react_dashboard "${tmp}/build" && - rm -rf "${tmp}"; then - run_ok "React dashboard installed." - else - run_failed "Failed to install React dashboard. The install process will continue, but you will not be able to use the new dashboard." - fi - else - run_failed "Unable to fetch React dashboard. The install process will continue, but you will not be able to use the new dashboard." - fi -} - -install_react_dashboard - -# ----------------------------------------------------------------------------- - # govercomp compares go.d.plugin versions. Exit codes: # 0 - version1 == version2 # 1 - version1 > version2 diff --git a/netdata.spec.in b/netdata.spec.in index 9d6b714663..48e9289295 100644 --- a/netdata.spec.in +++ b/netdata.spec.in @@ -411,7 +411,6 @@ install_go() { install_go install -m 0640 -p go.d.plugin "${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.d/go.d.plugin" -${RPM_BUILD_DIR}/%{name}-%{version}/packaging/bundle-dashboard.sh ${RPM_BUILD_DIR}/%{name}-%{version} ${RPM_BUILD_ROOT}%{_datadir}/%{name}/web %if 0%{?have_bpf} ${RPM_BUILD_DIR}/%{name}-%{version}/packaging/bundle-ebpf.sh ${RPM_BUILD_DIR}/%{name}-%{version} ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.d %endif diff --git a/packaging/bundle-dashboard.sh b/packaging/bundle-dashboard.sh deleted file mode 100755 index 9cab084ed2..0000000000 --- a/packaging/bundle-dashboard.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -SRCDIR="${1}" -WEBDIR="${2}" - -DASHBOARD_TARBALL="dashboard.tar.gz" -DASHBOARD_VERSION="$(cat "${SRCDIR}/packaging/dashboard.version")" - -mkdir -p "${SRCDIR}/tmp/dashboard" -curl -sSL --connect-timeout 10 --retry 3 "https://github.com/netdata/dashboard/releases/download/${DASHBOARD_VERSION}/${DASHBOARD_TARBALL}" > "${DASHBOARD_TARBALL}" || exit 1 -sha256sum -c "${SRCDIR}/packaging/dashboard.checksums" || exit 1 -tar -xzf "${DASHBOARD_TARBALL}" -C "${SRCDIR}/tmp/dashboard" || exit 1 -# shellcheck disable=SC2046 -cp -a $(find "${SRCDIR}/tmp/dashboard/build" -mindepth 1 -maxdepth 1) "${WEBDIR}" diff --git a/packaging/dashboard.checksums b/packaging/dashboard.checksums deleted file mode 100644 index 8d23daaefa..0000000000 --- a/packaging/dashboard.checksums +++ /dev/null @@ -1 +0,0 @@ -34155f1eb3c8bb84b9ad0d8603a835f3865c3c477b2202b18eba59db73a5fbdd dashboard.tar.gz diff --git a/packaging/dashboard.version b/packaging/dashboard.version deleted file mode 100644 index c0436dea50..0000000000 --- a/packaging/dashboard.version +++ /dev/null @@ -1 +0,0 @@ -v2.17.0 diff --git a/web/gui/.dashboard-notice.md b/web/gui/.dashboard-notice.md new file mode 100644 index 0000000000..ea403bc647 --- /dev/null +++ b/web/gui/.dashboard-notice.md @@ -0,0 +1,7 @@ +# Do not edit any files in this directory! + +If you spot any errors or bugs in these files and wish to fix them, please submit your changes at +https://github.com/netdata/dashboard instead. + +These files are copied from the most recent release of that repository, and any changes you make here will be +overwritten the next time there’s a new release there. diff --git a/web/gui/Makefile.am b/web/gui/Makefile.am index 7901884e2f..938d568360 100644 --- a/web/gui/Makefile.am +++ b/web/gui/Makefile.am @@ -2,11 +2,16 @@ # Copyright (C) 2015 Alon Bar-Lev # SPDX-License-Identifier: GPL-3.0-or-later # +AUTOMAKE_OPTIONS = subdir-objects MAINTAINERCLEANFILES = $(srcdir)/Makefile.in CLEANFILES = \ version.txt \ $(NULL) +SUBDIRS = \ + dashboard \ + $(NULL) + DASHBOARD_JS_FILES = \ src/dashboard.js/prologue.js.inc \ src/dashboard.js/utils.js \ @@ -46,27 +51,11 @@ dist_noinst_DATA = \ $(NULL) dist_web_DATA = \ - demo.html \ - demo2.html \ - demosites.html \ - demosites2.html \ - dashboard.html \ dashboard.js \ dashboard_info.js \ dashboard_info_custom_example.js \ - dashboard.css \ - dashboard.slate.css \ - favicon.ico \ - goto-host-from-alarm.html \ - index.html \ main.css \ main.js \ - console.html \ - infographic.html \ - robots.txt \ - refresh-badges.js \ - sitemap.xml \ - tv.html \ version.txt \ $(NULL) @@ -80,90 +69,12 @@ dist_webstatic_DATA = \ static/img/netdata-logomark.svg \ $(NULL) -weblibdir=$(webdir)/lib -dist_weblib_DATA = \ - lib/bootstrap-3.3.7.min.js \ - lib/bootstrap-slider-10.0.0.min.js \ - lib/bootstrap-table-1.11.0.min.js \ - lib/bootstrap-table-export-1.11.0.min.js \ - lib/bootstrap-toggle-2.2.2.min.js \ - lib/clipboard-polyfill-be05dad.js \ - lib/d3-4.12.2.min.js \ - lib/d3pie-0.2.1-netdata-3.js \ - lib/dygraph-c91c859.min.js \ - lib/dygraph-smooth-plotter-c91c859.js \ - lib/fontawesome-all-5.0.1.min.js \ - lib/gauge-1.3.2.min.js \ - lib/jquery-2.2.4.min.js \ - lib/jquery.easypiechart-97b5824.min.js \ - lib/jquery.peity-3.2.0.min.js \ - lib/jquery.sparkline-2.1.2.min.js \ - lib/lz-string-1.4.4.min.js \ - lib/pako-1.0.6.min.js \ - lib/perfect-scrollbar-0.6.15.min.js \ - lib/tableExport-1.6.0.min.js \ - $(NULL) - webcssdir=$(webdir)/css dist_webcss_DATA = \ css/morris-0.5.1.css \ - css/bootstrap-3.3.7.css \ - css/bootstrap-theme-3.3.7.min.css \ - css/bootstrap-slate-flat-3.3.7.css \ - css/bootstrap-slider-10.0.0.min.css \ - css/bootstrap-toggle-2.2.2.min.css \ css/c3-0.4.18.min.css \ $(NULL) -webfontsdir=$(webdir)/fonts -dist_webfonts_DATA = \ - fonts/glyphicons-halflings-regular.eot \ - fonts/glyphicons-halflings-regular.svg \ - fonts/glyphicons-halflings-regular.ttf \ - fonts/glyphicons-halflings-regular.woff \ - fonts/glyphicons-halflings-regular.woff2 \ - $(NULL) - -webimagesdir=$(webdir)/images -dist_webimages_DATA = \ - images/netdata-logomark.svg \ - images/alert-128-orange.png \ - images/alert-128-red.png \ - images/alert-multi-size-orange.ico \ - images/alert-multi-size-red.ico \ - images/animated.gif \ - images/check-mark-2-128-green.png \ - images/check-mark-2-multi-size-green.ico \ - images/netdata.svg \ - images/post.png \ - images/android-icon-36x36.png \ - images/android-icon-48x48.png \ - images/android-icon-72x72.png \ - images/android-icon-96x96.png \ - images/android-icon-144x144.png \ - images/android-icon-192x192.png \ - images/apple-icon-57x57.png \ - images/apple-icon-60x60.png \ - images/apple-icon-72x72.png \ - images/apple-icon-76x76.png \ - images/apple-icon-114x114.png \ - images/apple-icon-120x120.png \ - images/apple-icon-144x144.png \ - images/apple-icon-152x152.png \ - images/apple-icon-180x180.png \ - images/apple-icon-precomposed.png \ - images/apple-icon.png \ - images/favicon-16x16.png \ - images/favicon-32x32.png \ - images/favicon-96x96.png \ - images/favicon.ico \ - images/ms-icon-70x70.png \ - images/ms-icon-144x144.png \ - images/ms-icon-150x150.png \ - images/ms-icon-310x310.png \ - images/banner-icon-144x144.png \ - $(NULL) - dashboard.js: $(DASHBOARD_JS_FILES) if test -f $@; then rm -f $@; fi cat $(DASHBOARD_JS_FILES) > $@.tmp && mv $@.tmp $@ diff --git a/web/gui/bundle_dashboard.py b/web/gui/bundle_dashboard.py new file mode 100755 index 0000000000..4cde01af3c --- /dev/null +++ b/web/gui/bundle_dashboard.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# +# Copyright: © 2021 Netdata Inc. +# SPDX-License-Identifier: GPL-3.0-or-later +'''Bundle the dashboard code into the agent repo.''' + +import os +import shutil +import subprocess +import sys + +from pathlib import Path + +os.chdir(Path(__file__).parent.absolute()) + +BASEPATH = Path('dashboard') + +URLTEMPLATE = 'https://github.com/netdata/dashboard/releases/download/{0}/dashboard.tar.gz' + +MAKEFILETEMPLATE = ''' +# Auto-generated by generate-dashboard-makefile.py +# Copyright: © 2021 Netdata Inc. +# SPDX-License-Identifier: GPL-3.0-or-later +MAINTAINERCLEANFILES = $(srcdir)/Makefile.in + +dist_noinst_DATA = \\ + README.md + +dist_web_DATA = \\ + {0} \\ + $(NULL) + +webcssdir=$(webdir)/css +dist_webcss_DATA = \\ + {1} \\ + $(NULL) + +webfontsdir=$(webdir)/fonts +dist_webfonts_DATA = \\ + {2} \\ + $(NULL) + +webimagesdir=$(webdir)/images +dist_webimages_DATA = \\ + {3} \\ + $(NULL) + +weblibdir=$(webdir)/lib +dist_weblib_DATA = \\ + {4} \\ + $(NULL) + +webstaticcssdir=$(webdir)/static/css +dist_webstaticcss_DATA = \\ + {5} \\ + $(NULL) + +webstaticjsdir=$(webdir)/static/js +dist_webstaticjs_DATA = \\ + {6} \\ + $(NULL) + +webstaticmediadir=$(webdir)/static/media +dist_webstaticmedia_DATA = \\ + {7} \\ + $(NULL) +''' + + +def copy_dashboard(tag): + '''Fetch and bundle the dashboard code.''' + shutil.rmtree(BASEPATH) + BASEPATH.mkdir() + subprocess.check_call('curl -L -o dashboard.tar.gz ' + URLTEMPLATE.format(tag), shell=True) + subprocess.check_call('tar -xvzf dashboard.tar.gz -C ' + str(BASEPATH) + ' --strip-components=1', shell=True) + BASEPATH.joinpath('README.md').symlink_to('../.dashboard-notice.md') +# BASEPATH.joinpath('..', 'dashboard.tar.gz').unlink() + + +def genfilelist(path): + '''Generate a list of files for the Makefile.''' + files = [f for f in path.iterdir() if f.is_file() and f.name != 'README.md'] + files = [Path(*f.parts[1:]) for f in files] + files.sort() + return ' \\\n '.join([str(f) for f in files]) + + +def write_makefile(): + '''Write out the makefile for the dashboard code.''' + MAKEFILEDATA = MAKEFILETEMPLATE.format( + genfilelist(BASEPATH), + genfilelist(BASEPATH.joinpath('css')), + genfilelist(BASEPATH.joinpath('fonts')), + genfilelist(BASEPATH.joinpath('images')), + genfilelist(BASEPATH.joinpath('lib')), + genfilelist(BASEPATH.joinpath('static', 'css')), + genfilelist(BASEPATH.joinpath('static', 'js')), + genfilelist(BASEPATH.joinpath('static', 'media')), + ) + + BASEPATH.joinpath('Makefile.am').write_text(MAKEFILEDATA) + + +copy_dashboard(sys.argv[1]) +write_makefile() diff --git a/web/gui/console.html b/web/gui/console.html deleted file mode 100644 index b85b4ffbd2..0000000000 --- a/web/gui/console.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - Netdata Console - - - - - - - - - - - - - - - - - - - -
- - - - - - \ No newline at end of file diff --git a/web/gui/css/bootstrap-3.3.7.css b/web/gui/css/bootstrap-3.3.7.css deleted file mode 100644 index 8c4db1f336..0000000000 --- a/web/gui/css/bootstrap-3.3.7.css +++ /dev/null @@ -1,6758 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * SPDX-License-Identifier: MIT - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -.5em; -} -sub { - bottom: -.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\002a"; -} -.glyphicon-plus:before { - content: "\002b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content