mirror of
https://github.com/netdata/netdata.git
synced 2025-04-13 01:08:11 +00:00
Un-vendor proprietary dashboard code. (#18437)
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
This commit is contained in:
parent
79807600c5
commit
acf5adced8
326 changed files with 303 additions and 20771 deletions
CMakeLists.txtnetdata.spec.in
packaging
src/web/gui
.dashboard-v2-notice.mdbundle_dashboard_v1.pybundle_dashboard_v2.pyindex.htmlregistry-access.htmlregistry-alert-redirect.htmlregistry-hello.html
static
v1
v2
.well-known
1220.01d6bbaab869c74f4437.chunk.js1396.56f70d7c659ac0b694cd.chunk.js1396.56f70d7c659ac0b694cd.chunk.js.LICENSE.txt1418.16d53ba5cce2c6a8143a.chunk.js1782.d82eb301aa81b380dd0c.chunk.js1839.a4196d2a87ac0fdd9f34.chunk.js185.42bab351ba68de7ca4aa.chunk.js1876.e610906417b961290730.chunk.js195.4cdbea6af54d14a95949.chunk.js2007.b33ce2b4b736228fd681.chunk.js252.40edc9b0f6da1422f40b.chunk.js3104.3b70865e21a81a616af3.chunk.js3350.ae7151980981854dc3d1.chunk.js3455.f9ca876de57244386773.chunk.js3455.f9ca876de57244386773.chunk.js.LICENSE.txt3621.01ee70ee9c311ac163d9.chunk.js3624.bfeb1fdc3057ba82ddac.chunk.js3736.e572adfdf7951f74a741.chunk.js3750.4ad02f036f2a7c520b1c.chunk.js3843.89070793921be1288bb5.css3843.ffbb6f614ba4f7b77570.chunk.js3968.483ca2ad3b300293e655.chunk.js3D_PARTY_LICENSES.txt4034.35199d2809d318eed690.chunk.js4140.46221d08bcda08826c78.chunk.js4140.89070793921be1288bb5.css4414.590ba07d470ba2ce7dd0.chunk.js4631.158982e127e11bdc6a45.chunk.js4680.7d8122d91e9d4582836a.chunk.js4958.5969fedc1ff7dc82775e.chunk.js5246.07c5a1649f0805c140fe.chunk.js5304.cc797fdd343c7e873b2f.chunk.js5426.254557ad3e1f2d14ad29.chunk.js5596.2036706750ff4028cff2.chunk.js5598.07ff43a6b96bd41e8637.chunk.js5700.b7c9908dc7f30a5a57e7.chunk.js5709.c494eb62187917e2f2f6.chunk.js5709.c494eb62187917e2f2f6.chunk.js.LICENSE.txt5794.252ff787d58d64eb4988.chunk.js6008.3d0636fe17f4f6274485.chunk.js6121.f7286809e53e1c6d655a.chunk.js6121.f7286809e53e1c6d655a.chunk.js.LICENSE.txt6323.26d4d949c9b6f8674c2e.chunk.js6331.89070793921be1288bb5.css6331.c91b5d104cdff1be3b80.chunk.js6384.0fad56b0bc902f186c98.chunk.js6469.47926fa38028dc7d0d41.chunk.js6469.89070793921be1288bb5.css6661.72f782bd78fea8c2d836.chunk.js6760.370b9780120c145da28f.chunk.js683.02c173493ef257c210fa.chunk.js683.cc9fa5f3bdc0bf3ab2fc.css6944.ab3e70c9ac0f05013b5f.chunk.js7144.382c341e09540fdebaa6.chunk.js7144.382c341e09540fdebaa6.chunk.js.LICENSE.txt7146.79304e386ac9238b7cf1.chunk.js7170.5d6047bb6ce9d77d53db.chunk.js7208.1d75cf5d007de32e403b.chunk.js7304.ed4690ec296b59fbe7fd.chunk.js7332.3acf93dcfa52c7f1bc18.chunk.js7340.25dce1c5cc66b613700f.chunk.js7436.1ebd371d70e6a87c5499.chunk.js7471.f96c4d04a73fb7551c03.chunk.js7487.89070793921be1288bb5.css7487.db63c95c27d973a07d9b.chunk.js749.e44087ac3a2e3a994318.chunk.js749.e44087ac3a2e3a994318.chunk.js.LICENSE.txt7519.7982a2e0fcdf82ba78dd.chunk.js7529.658d363e12e73df83b60.chunk.js7840.2f2023f2eb1dcc943d94.chunk.js785.d016913841bcc0209d5b.chunk.js7857.813ae058cca579e05462.chunk.js7959.4f20f4b203e2bad8af39.chunk.js8059.4fdc76bb2cac1f74b41b.chunk.js8239.c85fc9f3599f198a9efb.chunk.js8323.437406936b642e8f6cb3.chunk.js8323.437406936b642e8f6cb3.chunk.js.LICENSE.txt8323.e22de33686bb2f34063c.css8505.c330f2104fefd71717da.chunk.js
110
CMakeLists.txt
110
CMakeLists.txt
|
@ -155,6 +155,8 @@ mark_as_advanced(DEFAULT_FEATURE_STATE)
|
|||
# High-level features
|
||||
option(ENABLE_ML "Enable machine learning features" ${DEFAULT_FEATURE_STATE})
|
||||
option(ENABLE_DBENGINE "Enable dbengine metrics storage" True)
|
||||
option(ENABLE_DASHBOARD "Enable local dashboard" True)
|
||||
mark_as_advanced(ENABLE_DASHBOARD)
|
||||
|
||||
# Data collection plugins
|
||||
option(ENABLE_PLUGIN_GO "Enable metric collectors written in Go" ${DEFAULT_FEATURE_STATE})
|
||||
|
@ -3159,68 +3161,70 @@ endif()
|
|||
# dashboard
|
||||
#
|
||||
|
||||
include(src/web/gui/v1/dashboard_v1.cmake)
|
||||
include(src/web/gui/v2/dashboard_v2.cmake)
|
||||
include(src/web/gui/gui.cmake)
|
||||
if(ENABLE_DASHBOARD)
|
||||
include(NetdataDashboard)
|
||||
bundle_dashboard()
|
||||
|
||||
function(cat IN_FILE OUT_FILE)
|
||||
file(READ ${IN_FILE} CONTENTS)
|
||||
file(APPEND ${OUT_FILE} "${CONTENTS}")
|
||||
endfunction()
|
||||
include(src/web/gui/v1/dashboard_v1.cmake)
|
||||
include(src/web/gui/gui.cmake)
|
||||
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/src/web/gui/dashboard.js.in "")
|
||||
foreach(JS_FILE ${DASHBOARD_JS_FILES})
|
||||
cat(${JS_FILE} ${CMAKE_BINARY_DIR}/dashboard.js.in)
|
||||
endforeach()
|
||||
configure_file(${CMAKE_BINARY_DIR}/dashboard.js.in
|
||||
${CMAKE_BINARY_DIR}/dashboard.js COPYONLY)
|
||||
function(cat IN_FILE OUT_FILE)
|
||||
file(READ ${IN_FILE} CONTENTS)
|
||||
file(APPEND ${OUT_FILE} "${CONTENTS}")
|
||||
endfunction()
|
||||
|
||||
install(FILES
|
||||
${CMAKE_BINARY_DIR}/dashboard.js
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST})
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/src/web/gui/dashboard.js.in "")
|
||||
|
||||
install(FILES
|
||||
src/web/gui/dashboard_info_custom_example.js
|
||||
src/web/gui/dashboard_info.js
|
||||
src/web/gui/index.html
|
||||
src/web/gui/main.css
|
||||
src/web/gui/main.js
|
||||
src/web/gui/registry-access.html
|
||||
src/web/gui/registry-alert-redirect.html
|
||||
src/web/gui/registry-hello.html
|
||||
src/web/gui/switch.html
|
||||
src/web/gui/ilove.html
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST})
|
||||
foreach(JS_FILE ${DASHBOARD_JS_FILES})
|
||||
cat(${JS_FILE} ${CMAKE_BINARY_DIR}/dashboard.js.in)
|
||||
endforeach()
|
||||
|
||||
install(FILES
|
||||
src/web/gui/old/index.html
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST}/old)
|
||||
configure_file(${CMAKE_BINARY_DIR}/dashboard.js.in
|
||||
${CMAKE_BINARY_DIR}/dashboard.js COPYONLY)
|
||||
|
||||
install(FILES
|
||||
src/web/gui/static/img/netdata-logomark.svg
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST}/static/img)
|
||||
install(FILES
|
||||
${CMAKE_BINARY_DIR}/dashboard.js
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST})
|
||||
|
||||
install(FILES
|
||||
src/web/gui/css/morris-0.5.1.css
|
||||
src/web/gui/css/c3-0.4.18.min.css
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST}/css)
|
||||
install(FILES
|
||||
src/web/gui/dashboard_info_custom_example.js
|
||||
src/web/gui/dashboard_info.js
|
||||
src/web/gui/main.css
|
||||
src/web/gui/main.js
|
||||
src/web/gui/switch.html
|
||||
src/web/gui/ilove.html
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST})
|
||||
|
||||
install(FILES
|
||||
src/web/gui/.well-known/dnt/cookies
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST}/.well-known/dnt)
|
||||
install(FILES
|
||||
src/web/gui/old/index.html
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST}/old)
|
||||
|
||||
if(NOT OS_WINDOWS)
|
||||
# v0 dashboard
|
||||
install(FILES
|
||||
src/web/gui/v0/index.html
|
||||
COMPONENT netdata
|
||||
DESTINATION ${WEB_DEST}/v0)
|
||||
install(FILES
|
||||
src/web/gui/static/img/netdata-logomark.svg
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST}/static/img)
|
||||
|
||||
install(FILES
|
||||
src/web/gui/css/morris-0.5.1.css
|
||||
src/web/gui/css/c3-0.4.18.min.css
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST}/css)
|
||||
|
||||
install(FILES
|
||||
src/web/gui/.well-known/dnt/cookies
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST}/.well-known/dnt)
|
||||
|
||||
if(NOT OS_WINDOWS)
|
||||
# v0 dashboard
|
||||
install(FILES
|
||||
src/web/gui/v0/index.html
|
||||
COMPONENT dashboard
|
||||
DESTINATION ${WEB_DEST}/v0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(OS_WINDOWS)
|
||||
|
|
|
@ -196,6 +196,7 @@ Requires(pre): /usr/sbin/useradd
|
|||
# to support weak dependencies. Explicitly requiring our default plugins
|
||||
# makes it impossible to properly test the packages prior to upload,
|
||||
# so we just skip depending on them on CentOS 7.
|
||||
Requires: %{name}-dashboard
|
||||
%if 0%{?_have_ebpf}
|
||||
Requires: %{name}-plugin-ebpf = %{version}
|
||||
%endif
|
||||
|
@ -551,11 +552,6 @@ rm -rf "${RPM_BUILD_ROOT}"
|
|||
# ndsudo a helper to run privileged commands
|
||||
%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/ndsudo
|
||||
|
||||
# Enforce 0644 for files and 0755 for directories
|
||||
# for the netdata web directory
|
||||
%defattr(0644,root,root,0755)
|
||||
%{_datadir}/%{name}/web
|
||||
|
||||
# Enforce 0660 for files and 0770 for directories
|
||||
# for the netdata lib, cache and log dirs
|
||||
%defattr(0660,root,netdata,0770)
|
||||
|
@ -565,6 +561,9 @@ rm -rf "${RPM_BUILD_ROOT}"
|
|||
%attr(0770,netdata,netdata) %dir %{_localstatedir}/lib/%{name}/registry
|
||||
%attr(0770,netdata,netdata) %dir %{_localstatedir}/lib/%{name}/cloud.d
|
||||
|
||||
# Dashboard belongs to a different sub-package
|
||||
%exclude %{_datadir}/%{name}/web
|
||||
|
||||
# Free IPMI belongs to a different sub-package
|
||||
%if %{_have_freeipmi}
|
||||
%exclude %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
|
||||
|
@ -987,7 +986,27 @@ fi
|
|||
# CAP_SYS_ADMIN, CAP_SYS_PTRACE and CAP_DAC_READ_SEARCH needed for data collection.
|
||||
%caps(cap_sys_admin,cap_sys_ptrace,cap_dac_read_search=ep) %attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/network-viewer.plugin
|
||||
|
||||
%package dashboard
|
||||
Summary: The local dashboard for the Netdata Agent
|
||||
Group: Applications/System
|
||||
Requires: %{name} >= %{version}
|
||||
Conflicts: %{name} < %{version}
|
||||
|
||||
%description dashboard
|
||||
This allows access to the dashboard on the local node without internet access.
|
||||
|
||||
%pre dashboard
|
||||
if ! getent group %{name} > /dev/null; then
|
||||
groupadd --system %{name}
|
||||
fi
|
||||
|
||||
%files dashboard
|
||||
%defattr(0644,root,root,0755)
|
||||
%{_datadir}/%{name}/web
|
||||
|
||||
%changelog
|
||||
* Thu Aug 29 2024 Austin Hemmelgarn <austin@netdata.cloud>
|
||||
- Split dashboard to it’s own package
|
||||
* Fri Jul 19 2024 Austin Hemmelgarn <austin@netdata.cloud>
|
||||
- Fix dependency issues with old logs-management plugin
|
||||
* Tue Jul 16 2024 Austin Hemmelgarn <austin@netdata.cloud>
|
||||
|
|
|
@ -26,6 +26,7 @@ add_cmake_option() {
|
|||
|
||||
add_cmake_option CMAKE_BUILD_TYPE RelWithDebInfo
|
||||
add_cmake_option CMAKE_INSTALL_PREFIX /
|
||||
add_cmake_option ENABLE_DASHBOARD on
|
||||
add_cmake_option ENABLE_DBENGINE On
|
||||
add_cmake_option ENABLE_H2O On
|
||||
add_cmake_option ENABLE_ML On
|
||||
|
|
85
packaging/cmake/Modules/NetdataDashboard.cmake
Normal file
85
packaging/cmake/Modules/NetdataDashboard.cmake
Normal file
|
@ -0,0 +1,85 @@
|
|||
# CMake module to handle fetching and installing the dashboard code
|
||||
#
|
||||
# Copyright (c) 2024 Netdata Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
include(NetdataUtil)
|
||||
|
||||
function(handle_braindead_versioning_insanity prefix)
|
||||
if(IS_DIRECTORY "${prefix}/v2" AND NOT IS_DIRECTORY "${prefix}/v3")
|
||||
message(STATUS " Fixing incorrectly versioned paths generated by poorly written CI")
|
||||
file(RENAME "${prefix}/v2" "${prefix}/v3")
|
||||
|
||||
if(IS_DIRECTORY "${prefix}/v3" AND NOT IS_DIRECTORY "${prefix}/v2")
|
||||
message(STATUS " Fixing incorrectly versioned paths generated by poorly written CI -- Done")
|
||||
else()
|
||||
message(FATAL_ERROR "Failed to fix incorrectly versioned paths")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Bundle the dashboard code for inclusion during install.
|
||||
#
|
||||
# This is unfortunately complicated due to how we need to handle the
|
||||
# generation of the CMakeLists file for the dashboard code.
|
||||
function(bundle_dashboard)
|
||||
include(ExternalProject)
|
||||
|
||||
set(dashboard_src_dir "${CMAKE_BINARY_DIR}/dashboard-src")
|
||||
set(dashboard_src_prefix "${dashboard_src_dir}/dist/agent")
|
||||
set(dashboard_bin_dir "${CMAKE_BINARY_DIR}/dashboard-bin")
|
||||
set(DASHBOARD_URL "https://app.netdata.cloud/agent.tar.gz" CACHE STRING
|
||||
"URL used to fetch the local agent dashboard code")
|
||||
|
||||
message(STATUS "Preparing local agent dashboard code")
|
||||
|
||||
message(STATUS " Fetching ${DASHBOARD_URL}")
|
||||
file(DOWNLOAD
|
||||
"${DASHBOARD_URL}"
|
||||
"${CMAKE_BINARY_DIR}/dashboard.tar.gz"
|
||||
TIMEOUT 180
|
||||
STATUS fetch_status)
|
||||
|
||||
list(GET fetch_status 0 result)
|
||||
|
||||
if(result)
|
||||
message(FATAL_ERROR "Failed to fetch dashboard code")
|
||||
else()
|
||||
message(STATUS " Fetching ${DASHBOARD_URL} -- Done")
|
||||
endif()
|
||||
|
||||
message(STATUS " Extracting dashboard code")
|
||||
extract_gzipped_tarball(
|
||||
"${CMAKE_BINARY_DIR}/dashboard.tar.gz"
|
||||
"${dashboard_src_dir}"
|
||||
)
|
||||
message(STATUS " Extracting dashboard code -- Done")
|
||||
|
||||
handle_braindead_versioning_insanity("${dashboard_src_prefix}")
|
||||
|
||||
message(STATUS " Generating CMakeLists.txt file for dashboard code")
|
||||
set(rules "")
|
||||
|
||||
subdirlist(dash_dirs "${dashboard_src_prefix}")
|
||||
|
||||
foreach(dir IN LISTS dash_dirs)
|
||||
file(GLOB files
|
||||
LIST_DIRECTORIES FALSE
|
||||
RELATIVE "${dashboard_src_dir}"
|
||||
"${dashboard_src_prefix}/${dir}/*")
|
||||
|
||||
set(rules "${rules}install(FILES ${files} COMPONENT dashboard DESTINATION ${WEB_DEST}/${dir})\n")
|
||||
endforeach()
|
||||
|
||||
file(GLOB files
|
||||
LIST_DIRECTORIES FALSE
|
||||
RELATIVE "${dashboard_src_dir}"
|
||||
"${dashboard_src_prefix}/*")
|
||||
|
||||
set(rules "${rules}install(FILES ${files} COMPONENT dashboard DESTINATION ${WEB_DEST})\n")
|
||||
|
||||
file(WRITE "${dashboard_src_dir}/CMakeLists.txt" "${rules}")
|
||||
message(STATUS " Generating CMakeLists.txt file for dashboard code -- Done")
|
||||
add_subdirectory("${dashboard_src_dir}" "${dashboard_bin_dir}")
|
||||
message(STATUS "Preparing local agent dashboard code -- Done")
|
||||
endfunction()
|
|
@ -144,3 +144,54 @@ function(netdata_identify_libc _libc_name)
|
|||
set(${_libc_name} ${_ND_DETECTED_LIBC} PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Extract a tar archive.
|
||||
#
|
||||
# This will use CMake’s native support if available, but will still
|
||||
# fall back cleanly if CMake is too old.
|
||||
function(extract_gzipped_tarball tarball target)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.18)
|
||||
find_program(TAR NAMES tar bsdtar DOC "TAR archive program")
|
||||
|
||||
if(TAR STREQUAL "TAR-NOTFOUND")
|
||||
message(FATAL_ERROR "Unable to find tar command")
|
||||
endif()
|
||||
|
||||
find_program(GZIP NAMES gzip DOC "GZIP compression program")
|
||||
|
||||
if(GZIP STREQUAL "GZIP-NOTFOUND")
|
||||
message(FATAL_ERROR "Unable to find gzip command")
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY "${target}")
|
||||
execute_process(COMMAND tar -x -z -f "${tarball}" -C "${target}"
|
||||
RESULT_VARIABLE result)
|
||||
|
||||
if(result)
|
||||
message(FATAL_ERROR "Failed to extract ${tarball}")
|
||||
endif()
|
||||
else()
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT "${tarball}"
|
||||
DESTINATION "${target}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Get a recursive list of all sub-directories of the specified directory,
|
||||
# relative to that directory.
|
||||
function(subdirlist result curdir)
|
||||
file(GLOB_RECURSE children
|
||||
LIST_DIRECTORIES TRUE
|
||||
RELATIVE ${curdir}
|
||||
${curdir}/*)
|
||||
|
||||
set(dirlist "")
|
||||
|
||||
foreach(child ${children})
|
||||
if(IS_DIRECTORY ${curdir}/${child})
|
||||
list(APPEND dirlist ${child})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(${result} ${dirlist} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
|
|
@ -63,6 +63,10 @@ netdata-plugin-network-viewer")
|
|||
set(CPACK_DEBIAN_NETDATA_PACKAGE_CONFLICTS
|
||||
"netdata-core, netdata-plugins-bash, netdata-plugins-python, netdata-web")
|
||||
|
||||
if(ENABLE_DASHBOARD)
|
||||
list(APPEND _main_deps "netdata-dashboard")
|
||||
endif()
|
||||
|
||||
if(ENABLE_PLUGIN_CHARTS)
|
||||
list(APPEND _main_deps "netdata-plugin-chartsd")
|
||||
endif()
|
||||
|
@ -109,6 +113,27 @@ set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
|||
|
||||
set(CPACK_DEBIAN_NETDATA_DEBUGINFO_PACKAGE On)
|
||||
|
||||
#
|
||||
# dashboard
|
||||
#
|
||||
|
||||
set(CPACK_COMPONENT_DASHBOARD_DEPENDS "netdata")
|
||||
set(CPACK_COMPONENT_DASHBOARD_DESCRIPTION
|
||||
"The local dashboard for the Netdata Agent.
|
||||
This allows access to the dashboard on the local node without internet access.")
|
||||
|
||||
set(CPACK_DEBIAN_DASHBOARD_PACKAGE_NAME "netdata-dashboard")
|
||||
set(CPACK_DEBIAN_DASHBOARD_PACKAGE_SECTION "net")
|
||||
set(CPACK_DEBIAN_DASHBOARD_PACKAGE_CONFLICTS "netdata (<< ${CPACK_PACKAGE_VERSION})")
|
||||
set(CPACK_DEBIAN_DASHBOARD_PACKAGE_PREDEPENDS "adduser")
|
||||
|
||||
set(CPACK_DEBIAN_DASHBOARD_PACKAGE_CONTROL_EXTRA
|
||||
"${PKG_FILES_PATH}/deb/plugin-apps/preinst"
|
||||
"${PKG_FILES_PATH}/deb/plugin-apps/postinst"
|
||||
"${PKG_FILES_PATH}/deb/plugin-apps/postrm")
|
||||
|
||||
set(CPACK_DEBIAN_DASHBOARD_DEBUGINFO_PACKAGE Off)
|
||||
|
||||
#
|
||||
# apps.plugin
|
||||
#
|
||||
|
@ -439,6 +464,9 @@ set(CPACK_DEBIAN_PLUGIN-XENSTAT_DEBUGINFO_PACKAGE On)
|
|||
#
|
||||
|
||||
list(APPEND CPACK_COMPONENTS_ALL "netdata")
|
||||
if(ENABLE_DASHBOARD)
|
||||
list(APPEND CPACK_COMPONENTS_ALL "dashboard")
|
||||
endif()
|
||||
if(ENABLE_PLUGIN_APPS)
|
||||
list(APPEND CPACK_COMPONENTS_ALL "plugin-apps")
|
||||
endif()
|
||||
|
|
11
packaging/cmake/pkg-files/deb/dashboard/postinst
Executable file
11
packaging/cmake/pkg-files/deb/dashboard/postinst
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure|reconfigure)
|
||||
if ! dpkg-statoverride --list /usr/share/netdata/www > /dev/null 2>&1; then
|
||||
dpkg-statoverride --update --add root netdata 0755 /usr/share/netdata/www
|
||||
fi
|
||||
;;
|
||||
esac
|
17
packaging/cmake/pkg-files/deb/dashboard/postrm
Executable file
17
packaging/cmake/pkg-files/deb/dashboard/postrm
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove) ;;
|
||||
|
||||
purge)
|
||||
if dpkg-statoverride --list | grep -qw /var/lib/netdata/www; then
|
||||
dpkg-statoverride --remove /var/lib/netdata/www
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list | grep -qw /usr/share/netdata/www; then
|
||||
dpkg-statoverride --remove /usr/share/netdata/www
|
||||
fi
|
||||
;;
|
||||
esac
|
11
packaging/cmake/pkg-files/deb/dashboard/preinst
Executable file
11
packaging/cmake/pkg-files/deb/dashboard/preinst
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
install)
|
||||
if ! getent group netdata > /dev/null; then
|
||||
addgroup --quiet --system netdata
|
||||
fi
|
||||
;;
|
||||
esac
|
|
@ -20,10 +20,6 @@ case "$1" in
|
|||
dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata
|
||||
fi
|
||||
|
||||
if ! dpkg-statoverride --list /usr/share/netdata/www > /dev/null 2>&1; then
|
||||
dpkg-statoverride --update --add root netdata 0755 /usr/share/netdata/www
|
||||
fi
|
||||
|
||||
dpkg-statoverride --force --update --add root netdata 0775 /var/lib/netdata/registry > /dev/null 2>&1
|
||||
|
||||
grep /usr/libexec/netdata /var/lib/dpkg/info/netdata.list | xargs -n 30 chown root:netdata
|
||||
|
|
|
@ -10,14 +10,6 @@ case "$1" in
|
|||
dpkg-statoverride --remove /var/cache/netdata
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list | grep -qw /var/lib/netdata/www; then
|
||||
dpkg-statoverride --remove /var/lib/netdata/www
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list | grep -qw /usr/share/netdata/www; then
|
||||
dpkg-statoverride --remove /usr/share/netdata/www
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list | grep -qw /var/lib/netdata/registry; then
|
||||
dpkg-statoverride --remove /var/lib/netdata/registry
|
||||
fi
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
# Do not edit any files in this directory!
|
||||
|
||||
If you spot any errors or bugs in these files please open a bug report
|
||||
at https://github.com/netdata/netdata/issues/new/choose.
|
||||
|
||||
These files are maintained in a seprate private repository and copied
|
||||
here when they are updated there, so any changes made in this directory
|
||||
will eventually be overwritten.
|
|
@ -17,15 +17,15 @@ BASEPATH = Path('v1')
|
|||
URLTEMPLATE = 'https://github.com/netdata/dashboard/releases/download/{0}/dashboard.tar.gz'
|
||||
|
||||
CMAKETEMPLATE = '''
|
||||
install(FILES {0} COMPONENT netdata DESTINATION ${{WEB_DEST}})
|
||||
install(FILES {1} COMPONENT netdata DESTINATION ${{WEB_DEST}}/css)
|
||||
install(FILES {2} COMPONENT netdata DESTINATION ${{WEB_DEST}}/fonts)
|
||||
install(FILES {3} COMPONENT netdata DESTINATION ${{WEB_DEST}}/images)
|
||||
install(FILES {4} COMPONENT netdata DESTINATION ${{WEB_DEST}}/lib)
|
||||
install(FILES {5} COMPONENT netdata DESTINATION ${{WEB_DEST}}/static/css)
|
||||
install(FILES {6} COMPONENT netdata DESTINATION ${{WEB_DEST}}/static/js)
|
||||
install(FILES {7} COMPONENT netdata DESTINATION ${{WEB_DEST}}/static/media)
|
||||
install(FILES web/gui/v1/index.html COMPONENT netdata DESTINATION ${WEB_DEST}/v1)
|
||||
install(FILES {0} COMPONENT dashboard DESTINATION ${{WEB_DEST}})
|
||||
install(FILES {1} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/css)
|
||||
install(FILES {2} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/fonts)
|
||||
install(FILES {3} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/images)
|
||||
install(FILES {4} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/lib)
|
||||
install(FILES {5} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/static/css)
|
||||
install(FILES {6} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/static/js)
|
||||
install(FILES {7} COMPONENT dashboard DESTINATION ${{WEB_DEST}}/static/media)
|
||||
install(FILES web/gui/v1/index.html COMPONENT dashboard DESTINATION ${WEB_DEST}/v1)
|
||||
'''
|
||||
|
||||
def copy_dashboard(tag):
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright: © 2023 Netdata Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
'''Bundle the v2 dashboard code into the agent repo.
|
||||
|
||||
This is designed to be run as part of a GHA workflow, but will work fine outside of one.'''
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
os.chdir(Path(__file__).parent.absolute())
|
||||
|
||||
BASEDIR = 'v2'
|
||||
|
||||
BASEPATH = Path(BASEDIR)
|
||||
|
||||
TMPPATH = Path('tmp')
|
||||
|
||||
URLSRC = 'https://app.netdata.cloud/agent.tar.gz'
|
||||
|
||||
CMAKETEMPLATE = '''
|
||||
install(FILES {0} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2)
|
||||
install(FILES {1} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static)
|
||||
install(FILES {2} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/email/img)
|
||||
install(FILES {3} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/img)
|
||||
install(FILES {4} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/img/logos/os)
|
||||
install(FILES {5} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/img/logos/services)
|
||||
install(FILES {6} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/img/mail)
|
||||
install(FILES {7} COMPONENT netdata DESTINATION ${{WEB_DEST}}/v2/static/site/pages/holding-page-503)
|
||||
'''
|
||||
|
||||
def copy_dashboard():
|
||||
'''Fetch and bundle the dashboard code.'''
|
||||
print('Preparing target directory')
|
||||
shutil.rmtree(BASEPATH)
|
||||
TMPPATH.mkdir()
|
||||
print('::group::Fetching dashboard release tarball')
|
||||
subprocess.check_call(f'curl -L -o agent.tar { URLSRC }', shell=True)
|
||||
print('::endgroup::')
|
||||
print('::group::Extracting dashboard release tarball')
|
||||
subprocess.check_call(f"tar -xvf agent.tar -C { TMPPATH } --strip-components=1 --exclude='*.br' --exclude='*.gz'", shell=True)
|
||||
print('::endgroup::')
|
||||
print('Copying files')
|
||||
(TMPPATH / 'agent' / BASEDIR).rename(BASEPATH)
|
||||
(TMPPATH / 'agent' / 'index.html').rename(Path('./index.html'))
|
||||
(TMPPATH / 'agent' / 'registry-access.html').rename('./registry-access.html')
|
||||
(TMPPATH / 'agent' / 'registry-alert-redirect.html').rename('./registry-alert-redirect.html')
|
||||
(TMPPATH / 'agent' / 'registry-hello.html').rename('./registry-hello.html')
|
||||
shutil.copytree(TMPPATH / 'agent' / 'static', Path('./static'), dirs_exist_ok=True)
|
||||
shutil.rmtree(TMPPATH)
|
||||
print('Copying README.md')
|
||||
BASEPATH.joinpath('README.md').symlink_to('../.dashboard-v2-notice.md')
|
||||
print('Removing dashboard release tarball')
|
||||
BASEPATH.joinpath('..', 'agent.tar').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([("src/web/gui/v2/" + str(f)) for f in files])
|
||||
|
||||
|
||||
def write_cmakefile():
|
||||
'''Write out the makefile for the dashboard code.'''
|
||||
print('Generating cmake file')
|
||||
output = CMAKETEMPLATE.format(
|
||||
genfilelist(BASEPATH),
|
||||
genfilelist(BASEPATH.joinpath('static')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'email', 'img')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'img')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'img', 'logos', 'os')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'img', 'logos', 'services')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'img', 'mail')),
|
||||
genfilelist(BASEPATH.joinpath('static', 'site', 'pages', 'holding-page-503')),
|
||||
)
|
||||
|
||||
BASEPATH.joinpath('dashboard_v2.cmake').write_text(output)
|
||||
|
||||
|
||||
def list_changed_files():
|
||||
'''Create a list of changed files, and set it in an environment variable.'''
|
||||
if 'GITHUB_ENV' in os.environ:
|
||||
print('Generating file list for commit.')
|
||||
subprocess.check_call('echo "COMMIT_FILES<<EOF" >> $GITHUB_ENV', shell=True)
|
||||
subprocess.check_call('git status --porcelain=v1 --no-renames --untracked-files=all | rev | cut -d \' \' -f 1 | rev >> $GITHUB_ENV', shell=True)
|
||||
subprocess.check_call('echo "EOF" >> $GITHUB_ENV', shell=True)
|
||||
|
||||
|
||||
copy_dashboard()
|
||||
write_cmakefile()
|
||||
list_changed_files()
|
|
@ -1,245 +0,0 @@
|
|||
<!doctype html><html><head><title>Netdata Agent Console</title><script>let pathsRegex = /\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud|v2)\/?.*/
|
||||
let getBasename = function() {
|
||||
return window.location.origin + window.location.pathname.replace(pathsRegex, "")
|
||||
}
|
||||
let goToOld = function(path) {
|
||||
let goToUrl = getBasename() + path;
|
||||
if (path === "/v2") {
|
||||
let pathsRegex = /(\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*)/
|
||||
if (pathsRegex.test(window.location.origin + window.location.pathname)) {
|
||||
goToUrl = (window.location.origin + window.location.pathname).replace(pathsRegex, "/v2$1")
|
||||
}
|
||||
}
|
||||
window.location.replace(ensureOneSlash(goToUrl + window.location.search))
|
||||
}
|
||||
let getAssetFile = function(path) {
|
||||
window.location.replace(__webpack_public_path__ + path)
|
||||
}
|
||||
let ensureOneSlash = function(urlStr) {
|
||||
return urlStr.replace(/([^:]\/)\/+/g, "$1")
|
||||
}
|
||||
let searchParams = new URLSearchParams(location.search)
|
||||
window.envSettings = {
|
||||
isAgent: true,
|
||||
apiUrl: "https://app.netdata.cloud",
|
||||
cloudUrl: "https://app.netdata.cloud",
|
||||
demoSlug: "netdata-demo",
|
||||
demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"],"ups":["upsd"]},
|
||||
webpackPublicPath: "https://app.netdata.cloud",
|
||||
agentApiUrl: searchParams.get("agent") || getBasename(),
|
||||
posthogToken: "phc_hnhlqe6D2Q4IcQNrFItaqdXJAxQ8RcHkPAFAp74pubv",
|
||||
version: "6.138.3",
|
||||
tracking: false,
|
||||
cookieDomain: ".netdata.cloud",
|
||||
onprem: false,
|
||||
nodeEnv: "production"
|
||||
}
|
||||
|
||||
window.visitedNodes = []
|
||||
|
||||
function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
|
||||
rel = rel || 'stylesheet'
|
||||
type = type || 'text/css'
|
||||
return new Promise(function(resolve, reject) {
|
||||
let link = document.createElement('link');
|
||||
link.type = type;
|
||||
link.rel = rel;
|
||||
link.href = url;
|
||||
link.media = media || 'all';
|
||||
|
||||
link.onerror = function(err) {
|
||||
reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
|
||||
};
|
||||
|
||||
link.onload = function() {
|
||||
resolve();
|
||||
};
|
||||
|
||||
if (aref) {
|
||||
aref.parentNode.insertBefore(link, aref.nextSibling);
|
||||
return;
|
||||
}
|
||||
|
||||
if (bref) {
|
||||
bref.parentNode.insertBefore(link, bref);
|
||||
return;
|
||||
}
|
||||
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
}
|
||||
|
||||
loadStyle(window.envSettings.agentApiUrl + "/v2/static/splash.css")
|
||||
loadStyle(window.envSettings.agentApiUrl + "/v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="app"><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Welcome to Netdata</h1><div class="loading-message"><p class="subtitle">Loading latest Netdata UI...</p><div class="flex-center">We couldn't load the latest Netdata UI. <a class="button ghost" href="javascript:location.reload();">You can try again <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.364 8.05001L17.657 7.34301C16.318 6.00369 14.5472 5.18285 12.6598 5.02654C10.7724 4.87022 8.89077 5.38856 7.34966 6.48934C5.80855 7.59011 4.70794 9.20193 4.24365 11.038C3.77936 12.8741 3.98151 14.8153 4.81412 16.5164C5.64674 18.2174 7.05583 19.5678 8.79067 20.3275C10.5255 21.0871 12.4736 21.2067 14.2883 20.6648C16.103 20.123 17.6666 18.955 18.701 17.3685C19.7353 15.782 20.1733 13.8801 19.937 12.001M18.364 8.05001L14.121 8.05101M18.364 8.05001V3.80701" stroke="#00ab44" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a></div></div></div></div><div class="flex-center">Or you can load the <a class="button ghost" href="javascript:goToOld('/v1');">old single node dashboard</a> or a <a class="button ghost" href="javascript:goToOld('/v2');">local copy</a> of Netdata UI</div><div class="flex-center terms"><a href="javascript:getAssetFile('/LICENSE.md');">Netdata UI license</a></div></div></div><script>let status = {
|
||||
TIMEOUT: 'timeout',
|
||||
SUCCESS: 'success',
|
||||
SKIPPED: 'skipped'
|
||||
};
|
||||
function loadScript(
|
||||
url,
|
||||
{ async = true, defer = false, insertAfter: aref, insertBefore: bref, timeout = 5000, attrs, skipIf } = {}
|
||||
) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
if (typeof skipIf === 'function' && skipIf()) {
|
||||
resolve(status.SKIPPED);
|
||||
return;
|
||||
}
|
||||
|
||||
let rejectWithTimeout = setTimeout(function() { reject(status.TIMEOUT) }, timeout);
|
||||
|
||||
let script = document.createElement('script');
|
||||
script.type = 'text/javascript';
|
||||
script.src = url;
|
||||
script.async = async;
|
||||
script.defer = defer;
|
||||
|
||||
if (attrs) {
|
||||
for (let attr in attrs) {
|
||||
script.setAttribute(attr, attrs[attr]);
|
||||
}
|
||||
}
|
||||
|
||||
script.onerror = function(err) {
|
||||
reject(new URIError(`loadScript: the script ${err.target.src} is not accessible.`));
|
||||
};
|
||||
|
||||
script.onload = function() {
|
||||
clearTimeout(rejectWithTimeout);
|
||||
resolve(status.SUCCESS);
|
||||
};
|
||||
|
||||
if (aref) {
|
||||
aref.parentNode.insertBefore(script, aref.nextSibling);
|
||||
return;
|
||||
}
|
||||
|
||||
if (bref) {
|
||||
bref.parentNode.insertBefore(script, bref);
|
||||
return;
|
||||
}
|
||||
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
}
|
||||
|
||||
fetch(window.envSettings.agentApiUrl + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(data) {
|
||||
let to = data.cloud_base_url.lastIndexOf('/');
|
||||
to = (to == -1 || to < data.cloud_base_url.length -2) ? data.cloud_base_url.length : to;
|
||||
let cloudUrl = data.cloud_base_url.substring(0, to);
|
||||
window.envSettings.apiUrl = cloudUrl
|
||||
|
||||
cloudUrl = /api\.netdata\.cloud/.test(cloudUrl) ? "https://app.netdata.cloud" : cloudUrl
|
||||
window.envSettings.cloudUrl = cloudUrl
|
||||
window.envSettings.webpackPublicPath = window.envSettings.webpackPublicPath ? cloudUrl : window.envSettings.webpackPublicPath
|
||||
__webpack_public_path__ = ensureOneSlash(window.envSettings.webpackPublicPath ? (window.envSettings.webpackPublicPath + "/") : (window.envSettings.agentApiUrl + "/v2/"))
|
||||
|
||||
window.localNetdataRegistry = {
|
||||
anonymousStatistics: data.anonymous_statistics,
|
||||
registry: data.registry,
|
||||
isNetdataRegistry: data.registry === "https://registry.my-netdata.io",
|
||||
hostname: data.hostname,
|
||||
mg: data.agent.machine_guid,
|
||||
nd: data.agent.node_id,
|
||||
claimId: data.agent.claim_id,
|
||||
cloudStatus: data.cloud_status,
|
||||
xNetdataAuthHeader: data["X-Netdata-Auth"] || false
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ((window.localNetdataRegistry.cloudStatus === "disabled" || window.localNetdataRegistry.cloudStatus === "unavailable") && !/\/v2/.test(location.pathname)) {
|
||||
goToOld("/v2")
|
||||
return
|
||||
}
|
||||
|
||||
fetch(__webpack_public_path__ + "bundlesManifest."+ window.envSettings.version.toString().replace(/(\d+)\..+/, "$1") +".json")
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(data) {
|
||||
Object.keys(data).forEach(function(k) {
|
||||
if (/\.(map|ico|html)$/.test(data[k])) return
|
||||
if (/static\//.test(data[k])) return
|
||||
|
||||
if (/\.css.*$/.test(data[k])) {
|
||||
loadStyle(ensureOneSlash(__webpack_public_path__ + data[k]))
|
||||
return
|
||||
}
|
||||
|
||||
if (/\.js.*$/.test(data[k])) {
|
||||
loadScript(ensureOneSlash(__webpack_public_path__ + data[k]), {
|
||||
async: false,
|
||||
});
|
||||
}
|
||||
let el = document.getElementById('agent-splash-screen');
|
||||
el.classList.remove("loading");
|
||||
})
|
||||
}).catch(function() {
|
||||
let el = document.getElementById('agent-splash-screen');
|
||||
el.classList.remove("loading");
|
||||
el.classList.add("error");
|
||||
});
|
||||
|
||||
envSettings.tracking = window.localNetdataRegistry.anonymousStatistics !== false
|
||||
|
||||
let withoutNodes = btoa(JSON.stringify({
|
||||
registry: data.registry,
|
||||
machine_guid: data.machine_guid,
|
||||
hostname: data.hostname,
|
||||
agent: data.agent,
|
||||
nodes: []
|
||||
}))
|
||||
let iframe = document.createElement('iframe');
|
||||
iframe.src = data.registry + "/registry-access.html?x=" + withoutNodes + "&originUrl=" + window.envSettings.agentApiUrl;
|
||||
iframe.style = { position: "absolute", left: "-99999999px" };
|
||||
iframe.width = 0 ;
|
||||
iframe.height = 0;
|
||||
iframe.tabindex = -1;
|
||||
iframe.title = "empty";
|
||||
iframe.classList.add("hidden");
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
setTimeout(function () {
|
||||
document.title = data.hostname + ': Netdata Agent Console';
|
||||
iframe.contentWindow.postMessage(["netdata-registry", window.envSettings.agentApiUrl, data], "*")
|
||||
}, 300);
|
||||
|
||||
window.addEventListener('message', function(event) {
|
||||
if (event.source !== iframe.contentWindow) return;
|
||||
|
||||
if (event.data.status === "disabled") console.error("Your netdata registry is disabled! Check your configuration.")
|
||||
|
||||
if (event.data) {
|
||||
if (!window.localNetdataRegistry) {
|
||||
window.localNetdataRegistry = {}
|
||||
}
|
||||
|
||||
window.localNetdataRegistry.pg = event.data.person_guid
|
||||
|
||||
if (!window.envSettings) {
|
||||
window.envSettings = {}
|
||||
}
|
||||
|
||||
window.envSettings.visitor = event.data.person_guid
|
||||
|
||||
try {
|
||||
var visitedNodesByName = event.data.urls.reduce(function (vn, visitedUrl) {
|
||||
vn[visitedUrl[4]] = vn[visitedUrl[4]] || {}
|
||||
vn[visitedUrl[4]].id = visitedUrl[0]
|
||||
vn[visitedUrl[4]].name = visitedUrl[4]
|
||||
vn[visitedUrl[4]].lastAccessTime = visitedUrl[2]
|
||||
vn[visitedUrl[4]].urls = vn[visitedUrl[4]].urls || []
|
||||
vn[visitedUrl[4]].urls.push(visitedUrl[1])
|
||||
|
||||
return vn
|
||||
}, {})
|
||||
|
||||
window.visitedNodes = Object.keys(visitedNodesByName).map(function(vn) {
|
||||
return visitedNodesByName[vn]
|
||||
})
|
||||
} catch(e) {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
});
|
||||
}).catch(() => {})</script></body></html>
|
|
@ -1,73 +0,0 @@
|
|||
<!doctype html><html><head><title>Netdata Registry</title><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/></head><body><script>var getBasename = function() {
|
||||
var pathRegex = /\/(v2\/)?registry-access.html?.*/
|
||||
return window.location.origin + window.location.pathname.replace(pathRegex, "")
|
||||
}
|
||||
|
||||
function doRegistryAccess(parentHelloData, originUrl) {
|
||||
const helloPromise = !parentHelloData
|
||||
? fetch(originUrl + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
|
||||
.then(function(response) { return response.json() })
|
||||
: Promise.resolve(parentHelloData)
|
||||
|
||||
helloPromise.then(function(helloData) {
|
||||
var retries = 3
|
||||
var nodes = helloData.nodes || []
|
||||
|
||||
var doAccess = function(mg, nm, token) {
|
||||
fetch(helloData.registry + '/api/v1/registry?action=access&machine=' + (mg || helloData.machine_guid) + '&name=' + encodeURIComponent(nm || helloData.hostname) + '&url=' + encodeURIComponent(originUrl) + '&agent=' + (helloData.agent ? helloData.agent.machine_guid : ""), { cache: "no-cache", credentials: "include", headers: { ["X-Netdata-Auth"]: 'Bearer ' + (token || localStorage.getItem("registry-netdata-token")) } })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(data) {
|
||||
var token = data.person_guid
|
||||
|
||||
if (data.status === "redirect" && retries > 0) {
|
||||
retries = retries - 1
|
||||
doAccess(helloData.machine_guid, helloData.hostname, token)
|
||||
}
|
||||
|
||||
if (data.status === "ok") {
|
||||
localStorage.setItem("registry-netdata-token", token)
|
||||
|
||||
let node = nodes.pop()
|
||||
|
||||
if (!!node) {
|
||||
setTimeout(function () {
|
||||
doAccess(node.machine_guid, node.hostname, token)
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
window.parent.postMessage(data, "*");
|
||||
})
|
||||
}
|
||||
doAccess(helloData.machine_guid, helloData.hostname)
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
try {
|
||||
var searchParams = new URLSearchParams(location.search)
|
||||
urlHelloData = searchParams.get("x")
|
||||
var parentHelloData = JSON.parse(atob(urlHelloData))
|
||||
doRegistryAccess(parentHelloData, searchParams.get("originUrl"))
|
||||
} catch(e) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
function isValidHttpUrl(string) {
|
||||
var url;
|
||||
|
||||
try {
|
||||
return true
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('message', function(event) {
|
||||
var isNetdataMessage = Array.isArray(event.data) ? event.data.length === 3 ? event.data[0] === "netdata-registry" : isValidHttpUrl(event.data[0]) : false
|
||||
|
||||
if (!isNetdataMessage) return
|
||||
|
||||
var originUrl = Array.isArray(event.data) ? event.data.length === 3 ? event.data[1] : event.data[0] : event.data
|
||||
var parentHelloData = Array.isArray(event.data) ? event.data.length === 3 ? event.data[2] : event.data[1] : null
|
||||
|
||||
doRegistryAccess(parentHelloData, originUrl)
|
||||
});</script></body></html>
|
|
@ -1,152 +0,0 @@
|
|||
<!doctype html><html><head><title>Netdata Agent Alert Redirect</title><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><script>function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
|
||||
rel = rel || 'stylesheet'
|
||||
type = type || 'text/css'
|
||||
return new Promise(function(resolve, reject) {
|
||||
let link = document.createElement('link');
|
||||
link.type = type;
|
||||
link.rel = rel;
|
||||
link.href = url;
|
||||
link.media = media || 'all';
|
||||
|
||||
link.onerror = function(err) {
|
||||
reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
|
||||
};
|
||||
|
||||
link.onload = function() {
|
||||
resolve();
|
||||
};
|
||||
|
||||
if (aref) {
|
||||
aref.parentNode.insertBefore(link, aref.nextSibling);
|
||||
return;
|
||||
}
|
||||
|
||||
if (bref) {
|
||||
bref.parentNode.insertBefore(link, bref);
|
||||
return;
|
||||
}
|
||||
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
}
|
||||
|
||||
loadStyle("v2/static/splash.css")
|
||||
loadStyle("v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Netdata Alert Notifications</h1><div class="flex-center flex-column" id="main-message">Trying to find a Netdata Agent for this alert...</div><table id="mynodes"></table></div></div></div><script>let searchParams = new URLSearchParams(location.search)
|
||||
let mg = searchParams.get("agent_machine_guid")
|
||||
let tr_i = searchParams.get("transition_id")
|
||||
let token = location.hash.substring(1)
|
||||
|
||||
function buildIframe(url) {
|
||||
let iframe = document.createElement('iframe');
|
||||
iframe.src = url + "/registry-hello.html" + location.search + "&url=" + url;
|
||||
iframe.style = { position: "absolute", left: "-99999999px" };
|
||||
iframe.width = 0 ;
|
||||
iframe.height = 0;
|
||||
iframe.tabindex = -1;
|
||||
iframe.title = "empty";
|
||||
iframe.classList.add("hidden");
|
||||
document.body.appendChild(iframe);
|
||||
return iframe
|
||||
}
|
||||
|
||||
function urlToId(s) {
|
||||
s = s.trim();
|
||||
s = s.replace(/^https?:\/\//i, '');
|
||||
s = s.replace(/\W/g, '_');
|
||||
return s;
|
||||
}
|
||||
|
||||
fetch("api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(helloData) {
|
||||
if (helloData.anonymous_statistics !== false) {
|
||||
(function (w, d, s, l, i) {
|
||||
w[l] = w[l] || []
|
||||
w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" })
|
||||
var f = d.getElementsByTagName(s)[0],
|
||||
j = d.createElement(s),
|
||||
dl = l != "dataLayer" ? "&l=" + l : ""
|
||||
j.async = true
|
||||
j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl
|
||||
f.parentNode.insertBefore(j, f)
|
||||
})(window, document, "script", "dataLayer", "GTM-N6CBMJD")
|
||||
}
|
||||
fetch("api/v1/registry?action=search&for=" + mg, { cache: "no-cache", credentials: "include", headers: { ["X-Netdata-Auth"]: 'Bearer ' + (token || localStorage.getItem("registry-netdata-token")) } })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(data) {
|
||||
let table = document.getElementById("mynodes");
|
||||
|
||||
if (data.status === "ok") {
|
||||
if (!token) {
|
||||
if (location.protocol === "https:" && data.urls.some(function(u) {
|
||||
return (/http:/).test(u)
|
||||
})) {
|
||||
return location.replace('http://' + location.href.substring(8) + "#" + localStorage.getItem("registry-netdata-token"))
|
||||
}
|
||||
}
|
||||
|
||||
data.urls.sort(function(a, b) {
|
||||
return b[2] - a[2];
|
||||
}).forEach(function(urlData) {
|
||||
let urlMg = urlData[0]
|
||||
let url = urlData[1]
|
||||
let urlHostname = urlData[4]
|
||||
|
||||
let rowIframe = buildIframe(url)
|
||||
|
||||
let row = document.createElement("tr");
|
||||
let cell1 = document.createElement("td");
|
||||
let link = document.createElement("a");
|
||||
|
||||
link.href = (urlHostname ? (url + "/spaces/" + urlHostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search).replace(/\/+/g, "/");
|
||||
link.textContent = url;
|
||||
link.target = "_blank";
|
||||
link.classList.add("button", "ghost");
|
||||
|
||||
cell1.appendChild(link);
|
||||
row.appendChild(cell1);
|
||||
|
||||
let cell2 = document.createElement("td");
|
||||
cell2.id = urlToId("_" + url + urlMg);
|
||||
cell2.textContent = "checking...";
|
||||
row.appendChild(cell2);
|
||||
|
||||
table.appendChild(row);
|
||||
|
||||
window.addEventListener('message', function(event) {
|
||||
if (event.source !== rowIframe.contentWindow) return;
|
||||
if (event.data.url !== url || event.data.mg !== urlMg) return;
|
||||
link.href = event.data.hostname ? (url + "/spaces/" + event.data.hostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search;
|
||||
|
||||
let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
|
||||
if (event.data.isSame) {
|
||||
cell2.textContent = "OK";
|
||||
} else if (event.data.hasError) {
|
||||
cell2.textContent = "can't connect";
|
||||
} else {
|
||||
cell2.textContent = "wrong node";
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
|
||||
document.getElementById('agent-splash-screen').classList.remove("loading");
|
||||
if (cell2.textContent !== "checking...") {
|
||||
return;
|
||||
}
|
||||
cell2.textContent = "can't connect";
|
||||
}, 5000)
|
||||
})
|
||||
let el = document.getElementById('agent-splash-screen');
|
||||
el.classList.add("table");
|
||||
document.getElementById('main-message').textContent = "Select a URL to see details about this alert:"
|
||||
} else {
|
||||
let el = document.getElementById('main-message');
|
||||
el.innerHTML = "<p>Can't find any Netdata Agent for this alert.</p><small>Netdata learns Agent URLs when you view them and associates them with web browsers.<br/>Probably, you have never viewed the dashboard of the Netdata Agent that sent this notification, with the browser you use now.</small>"
|
||||
}
|
||||
}).catch(function(e) {
|
||||
let el = document.getElementById('main-message');
|
||||
el.textContent = "Oops! Something went wrong."
|
||||
})
|
||||
|
||||
})</script></body></html>
|
|
@ -1,94 +0,0 @@
|
|||
<!doctype html><html><head><title>Netdata Registry</title><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/></head><body><script>var getBasename = function() {
|
||||
var pathRegex = /\/(v2\/)?registry-hello.html?.*/
|
||||
return window.location.origin + window.location.pathname.replace(pathRegex, "")
|
||||
}
|
||||
|
||||
function doRegistryAccess(parentHelloData, originUrl) {
|
||||
const helloPromise = !parentHelloData
|
||||
? fetch(originUrl + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
|
||||
.then(function(response) { return response.json() })
|
||||
: Promise.resolve(parentHelloData)
|
||||
|
||||
helloPromise.then(function(data) {
|
||||
var retries = 3
|
||||
var nodes = data.nodes || []
|
||||
|
||||
var doAccess = function(mg, nm, token) {
|
||||
fetch(data.registry + '/api/v1/registry?action=access&machine=' + (mg || data.machine_guid) + '&name=' + encodeURIComponent(nm || data.hostname) + '&url=' + encodeURIComponent(originUrl) + '&agent=' + (data.agent ? data.agent.machine_guid : ""), { cache: "no-cache", credentials: "include", headers: { ["X-Netdata-Auth"]: 'Bearer ' + (token || localStorage.getItem("registry-netdata-token")) } })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(data) {
|
||||
var token = data.person_guid
|
||||
|
||||
if (data.status === "redirect" && retries > 0) {
|
||||
retries = retries - 1
|
||||
doAccess(data.machine_guid, data.hostname, token)
|
||||
}
|
||||
|
||||
if (data.status === "ok") {
|
||||
localStorage.setItem("registry-netdata-token", token)
|
||||
|
||||
let node = nodes.pop()
|
||||
|
||||
if (!!node) {
|
||||
setTimeout(function () {
|
||||
doAccess(node.machine_guid, node.hostname, token)
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
window.parent.postMessage(data, "*");
|
||||
})
|
||||
}
|
||||
doAccess(data.machine_guid, data.hostname)
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
try {
|
||||
var searchParams = new URLSearchParams(location.search)
|
||||
var url = searchParams.get("url")
|
||||
var mg = searchParams.get("agent_machine_guid")
|
||||
var tr_i = searchParams.get("transition_id")
|
||||
|
||||
fetch(url + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
|
||||
.then(function(response) { return response.json() })
|
||||
.then(function(helloData) {
|
||||
window.parent.postMessage({
|
||||
mg: mg,
|
||||
tr_i: tr_i,
|
||||
hostname: helloData.hostname,
|
||||
url: url,
|
||||
isSame: mg === (helloData.agent ? helloData.agent.machine_guid : helloData.machine_guid)
|
||||
}, "*");
|
||||
}).catch(() => {
|
||||
window.parent.postMessage({
|
||||
mg: mg,
|
||||
tr_i: tr_i,
|
||||
url: url,
|
||||
isSame: false,
|
||||
hasError: true
|
||||
}, "*");
|
||||
})
|
||||
doRegistryAccess(parentHelloData, searchParams.get("originUrl"))
|
||||
} catch(e) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
function isValidHttpUrl(string) {
|
||||
var url;
|
||||
|
||||
try {
|
||||
return true
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('message', function(event) {
|
||||
var isNetdataMessage = Array.isArray(event.data) ? event.data.length === 3 ? event.data[0] === "netdata-registry" : isValidHttpUrl(event.data[0]) : true
|
||||
|
||||
if (!isNetdataMessage) return
|
||||
|
||||
var originUrl = Array.isArray(event.data) ? event.data.length === 3 ? event.data[1] : event.data[0] : event.data
|
||||
var parentHelloData = Array.isArray(event.data) ? event.data.length === 3 ? event.data[2] : event.data[1] : null
|
||||
|
||||
doRegistryAccess(parentHelloData, originUrl)
|
||||
});</script></body></html>
|
|
@ -1,171 +0,0 @@
|
|||
:root {
|
||||
--main-bg: #080a0a;
|
||||
--font-color: #b7c2c2;
|
||||
--primary-green: #00ab44;
|
||||
--column-gap: 8px;
|
||||
--logo-color: #f1fff7;
|
||||
--button-text-green: #00cd51;
|
||||
--border-color: #536775;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
|
||||
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
|
||||
sans-serif;
|
||||
background: var(--main-bg);
|
||||
color: var(--font-color);
|
||||
font-weight: 200;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
iframe.hidden {
|
||||
display: none;
|
||||
}
|
||||
#agent-splash-screen a:link,
|
||||
#agent-splash-screen a:visited,
|
||||
#agent-splash-screen a:active {
|
||||
font-size: 12px;
|
||||
color: var(--primary-green);
|
||||
font-weight: normal;
|
||||
}
|
||||
#agent-splash-screen .hero {
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 500px;
|
||||
margin: auto;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
gap: calc(var(--column-gap) * 4);
|
||||
text-align: center;
|
||||
margin: 120px auto 32px;
|
||||
}
|
||||
#agent-splash-screen .logo-container {
|
||||
position: relative;
|
||||
}
|
||||
#agent-splash-screen .logo-blur {
|
||||
position: absolute;
|
||||
width: 315px;
|
||||
height: 315px;
|
||||
left: -100%;
|
||||
top: -100%;
|
||||
filter: blur(30px);
|
||||
pointer-events: none;
|
||||
}
|
||||
#agent-splash-screen .logo {
|
||||
filter: drop-shadow(-6px -2px 20px rgba(255, 255, 255, 0.6)) blur(0.7px);
|
||||
}
|
||||
|
||||
#agent-splash-screen.loading .logo {
|
||||
animation: glow 800ms linear infinite alternate;
|
||||
}
|
||||
#agent-splash-screen .headings {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: calc(var(--column-gap) * 2);
|
||||
height: 104px;
|
||||
}
|
||||
#agent-splash-screen .title {
|
||||
font-size: 22px;
|
||||
line-height: 26px;
|
||||
font-weight: 200;
|
||||
margin: 0;
|
||||
}
|
||||
#agent-splash-screen .subtitle {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
#agent-splash-screen .flex-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 2px;
|
||||
}
|
||||
#agent-splash-screen .flex-column {
|
||||
flex-direction: column;
|
||||
}
|
||||
#agent-splash-screen a.button {
|
||||
appearance: none;
|
||||
border: none;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
}
|
||||
#agent-splash-screen a.button svg {
|
||||
width: 22px;
|
||||
height: 16px;
|
||||
}
|
||||
#agent-splash-screen a.button.ghost {
|
||||
background: transparent;
|
||||
color: var(--button-text-green);
|
||||
padding: 4px 6px;
|
||||
font-size: 14px;
|
||||
font-weight: 200;
|
||||
}
|
||||
#agent-splash-screen a.button.ghost:hover {
|
||||
background: #00441b;
|
||||
}
|
||||
|
||||
#agent-splash-screen a.button.large {
|
||||
background: transparent;
|
||||
border: 1px solid var(--primary-green);
|
||||
font-size: 18px;
|
||||
padding: 12px;
|
||||
color: var(--button-text-green);
|
||||
width: 100%;
|
||||
font-weight: 200;
|
||||
}
|
||||
#agent-splash-screen a.button.large:hover {
|
||||
background: #00441b;
|
||||
}
|
||||
#agent-splash-screen .loading-message .subtitle {
|
||||
display:none;
|
||||
}
|
||||
#agent-splash-screen.loading .loading-message .subtitle {
|
||||
display:block;
|
||||
height: 56px;
|
||||
}
|
||||
#agent-splash-screen .loading-message .flex-center {
|
||||
display: none;
|
||||
}
|
||||
#agent-splash-screen.error .loading-message .flex-center {
|
||||
display: flex;
|
||||
margin: 8px auto;
|
||||
}
|
||||
#agent-splash-screen .loading-message table {
|
||||
display: none;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--font-color);
|
||||
}
|
||||
#agent-splash-screen.table .loading-message table {
|
||||
display: table;
|
||||
margin: 8px auto;
|
||||
}
|
||||
#agent-splash-screen .dashboard-buttons {
|
||||
width: 320px;
|
||||
margin: auto;
|
||||
gap: 24px;
|
||||
}
|
||||
#agent-splash-screen .terms {
|
||||
position: absolute;
|
||||
bottom: 40px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
}
|
||||
.green {
|
||||
color: var(--primary-green);
|
||||
}
|
||||
@keyframes glow {
|
||||
from {
|
||||
filter: drop-shadow(-6px -2px 20px rgba(255, 255, 255, 0.9)) blur(0.9px);
|
||||
}
|
||||
to {
|
||||
filter: drop-shadow(-6px -2px 20px rgba(255, 255, 255, 0.3)) blur(0.4px);
|
||||
}
|
||||
}
|
|
@ -22,19 +22,19 @@ src/web/gui/v1/robots.txt
|
|||
src/web/gui/v1/service-worker.js
|
||||
src/web/gui/v1/sitemap.xml
|
||||
src/web/gui/v1/tv-react.html
|
||||
src/web/gui/v1/tv.html COMPONENT netdata DESTINATION ${WEB_DEST})
|
||||
src/web/gui/v1/tv.html COMPONENT dashboard DESTINATION ${WEB_DEST})
|
||||
install(FILES src/web/gui/v1/css/bootstrap-3.3.7.css
|
||||
src/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css
|
||||
src/web/gui/v1/css/bootstrap-slider-10.0.0.min.css
|
||||
src/web/gui/v1/css/bootstrap-theme-3.3.7.min.css
|
||||
src/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css
|
||||
src/web/gui/v1/css/dashboard.css
|
||||
src/web/gui/v1/css/dashboard.slate.css COMPONENT netdata DESTINATION ${WEB_DEST}/css)
|
||||
src/web/gui/v1/css/dashboard.slate.css COMPONENT dashboard DESTINATION ${WEB_DEST}/css)
|
||||
install(FILES src/web/gui/v1/fonts/glyphicons-halflings-regular.eot
|
||||
src/web/gui/v1/fonts/glyphicons-halflings-regular.svg
|
||||
src/web/gui/v1/fonts/glyphicons-halflings-regular.ttf
|
||||
src/web/gui/v1/fonts/glyphicons-halflings-regular.woff
|
||||
src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2 COMPONENT netdata DESTINATION ${WEB_DEST}/fonts)
|
||||
src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2 COMPONENT dashboard DESTINATION ${WEB_DEST}/fonts)
|
||||
install(FILES src/web/gui/v1/images/alert-128-orange.png
|
||||
src/web/gui/v1/images/alert-128-red.png
|
||||
src/web/gui/v1/images/alert-multi-size-orange.ico
|
||||
|
@ -84,7 +84,7 @@ src/web/gui/v1/images/overview.png
|
|||
src/web/gui/v1/images/packaging-beta-tag.svg
|
||||
src/web/gui/v1/images/post.png
|
||||
src/web/gui/v1/images/pricing.png
|
||||
src/web/gui/v1/images/seo-performance-128.png COMPONENT netdata DESTINATION ${WEB_DEST}/images)
|
||||
src/web/gui/v1/images/seo-performance-128.png COMPONENT dashboard DESTINATION ${WEB_DEST}/images)
|
||||
install(FILES src/web/gui/v1/lib/bootstrap-3.3.7.min.js
|
||||
src/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js
|
||||
src/web/gui/v1/lib/bootstrap-table-1.11.0.min.js
|
||||
|
@ -104,13 +104,13 @@ src/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js
|
|||
src/web/gui/v1/lib/lz-string-1.4.4.min.js
|
||||
src/web/gui/v1/lib/pako-1.0.6.min.js
|
||||
src/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js
|
||||
src/web/gui/v1/lib/tableExport-1.6.0.min.js COMPONENT netdata DESTINATION ${WEB_DEST}/lib)
|
||||
src/web/gui/v1/lib/tableExport-1.6.0.min.js COMPONENT dashboard DESTINATION ${WEB_DEST}/lib)
|
||||
install(FILES src/web/gui/v1/static/css/2.c454aab8.chunk.css
|
||||
src/web/gui/v1/static/css/2.c454aab8.chunk.css.map
|
||||
src/web/gui/v1/static/css/4.a36e3b73.chunk.css
|
||||
src/web/gui/v1/static/css/4.a36e3b73.chunk.css.map
|
||||
src/web/gui/v1/static/css/main.53ba10f1.chunk.css
|
||||
src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map COMPONENT netdata DESTINATION ${WEB_DEST}/static/css)
|
||||
src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map COMPONENT dashboard DESTINATION ${WEB_DEST}/static/css)
|
||||
install(FILES src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js
|
||||
src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map
|
||||
src/web/gui/v1/static/js/2.62d105c5.chunk.js
|
||||
|
@ -135,7 +135,7 @@ src/web/gui/v1/static/js/main.e248095a.chunk.js
|
|||
src/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE
|
||||
src/web/gui/v1/static/js/main.e248095a.chunk.js.map
|
||||
src/web/gui/v1/static/js/runtime-main.08abed8f.js
|
||||
src/web/gui/v1/static/js/runtime-main.08abed8f.js.map COMPONENT netdata DESTINATION ${WEB_DEST}/static/js)
|
||||
src/web/gui/v1/static/js/runtime-main.08abed8f.js.map COMPONENT dashboard DESTINATION ${WEB_DEST}/static/js)
|
||||
install(FILES src/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2
|
||||
src/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff
|
||||
src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff
|
||||
|
@ -164,5 +164,5 @@ src/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff
|
|||
src/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2
|
||||
src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2
|
||||
src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff
|
||||
src/web/gui/v1/static/media/material-icons.0509ab09.woff2 COMPONENT netdata DESTINATION ${WEB_DEST}/static/media)
|
||||
install(FILES src/web/gui/v1/index.html COMPONENT netdata DESTINATION ${WEB_DEST}/v1)
|
||||
src/web/gui/v1/static/media/material-icons.0509ab09.woff2 COMPONENT dashboard DESTINATION ${WEB_DEST}/static/media)
|
||||
install(FILES src/web/gui/v1/index.html COMPONENT dashboard DESTINATION ${WEB_DEST}/v1)
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
[
|
||||
{
|
||||
"relation": ["delegate_permission/common.handle_all_urls"],
|
||||
"target": {
|
||||
"namespace": "android_app",
|
||||
"package_name": "cloud.netdata.android",
|
||||
"sha256_cert_fingerprints":
|
||||
["67:F4:89:2B:8D:A9:2D:CB:91:ED:A1:BD:42:04:90:28:05:4F:3E:81:04:7B:76:B6:0A:20:30:6C:90:38:08:90","1F:B8:9A:45:AD:83:76:DD:7E:A5:9A:07:82:4A:2F:99:3E:0D:EB:64:FA:50:76:59:65:3F:CC:38:7F:32:28:AA"]
|
||||
}
|
||||
}
|
||||
]
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,16 +0,0 @@
|
|||
/** @preserve
|
||||
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
||||
* derived from CryptoJS.mode.CTR
|
||||
* Jan Hruby jhruby.web@gmail.com
|
||||
*/
|
||||
|
||||
/** @preserve
|
||||
(c) 2012 by Cédric Mesnil. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="915cff30-b3e0-4d43-9fb7-29cb723a3367",e._sentryDebugIdIdentifier="sentry-dbid-915cff30-b3e0-4d43-9fb7-29cb723a3367")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1782],{1782:(e,n,t)=>{t.r(n),t.d(n,{default:()=>b});var a=t(96540),o=t(5396),l=t(65566),d=t(83199),r=t(4659),s=t(50876);const c=()=>{const{sendButtonClickedLog:e}=(0,s.A)(),n=(0,a.useCallback)((()=>{window.open("https://www.netdata.cloud/secure-foss-agent/","_blank","noopener,noreferrer"),e({feature:"AgentBannerContactUs"})}),[e]);return a.createElement(d.Flex,{width:"100%",justifyContent:"center",alignItems:"center"},a.createElement(d.Text,null,"Your Agents are open by default. Secure them easily with"," ",a.createElement(r.A,{onClick:n,testId:"agent-banner-contact-link"},"Netdata Enterprise Agent"),"."))};var f=t(75542),i=t(63314),u=t(37618);const b=()=>{const{id:e}=(0,f.A)(),n=(0,a.useCallback)((()=>"dismissed-agent-banner-".concat(e)),[e]),{dismissed:t,onClose:d}=(0,l.A)({getLocalStorageKey:n,logKey:"AgentBannerDismiss"});return u.Ay&&!t?a.createElement(i.Ay,{feature:"AgentBanner"},a.createElement(o.A,{testId:"agent-banner",width:"100%",background:"successSemi",onClose:d,tooltipProps:{align:"top"},zIndex:20},a.createElement(c,null))):null}}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ef034845-b41b-4f78-8c45-36f3bd8c8152",e._sentryDebugIdIdentifier="sentry-dbid-ef034845-b41b-4f78-8c45-36f3bd8c8152")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1839],{41839:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var l=n(96540),a=n(83199),o=n(99904),r=n(47731),d=n(92155),i=n(63314);const c=(0,n(8711).default)(a.ModalContent).attrs((e=>{let{isMobile:t}=e;return{width:t?{base:"95vw"}:{}}})).withConfig({displayName:"styled__StyledModalContent",componentId:"sc-1vfmaif-0"})([""]),s=(0,d.A)(a.Button),u=()=>{const e=(0,r.J)(),{isModalVisible:t,trialEndsAt:n,onClose:d}=(0,o.A)();return t?l.createElement(a.Modal,{backdropProps:{backdropBlur:!0}},l.createElement(i.Ay,{feature:"BumpedWarningModal"},l.createElement(c,{isMobile:e},l.createElement(a.ModalHeader,null,l.createElement(a.Flex,{gap:2,alignItems:"center"},l.createElement(a.Icon,{name:"netdataPress",color:"text"}),l.createElement(a.H4,null,"Welcome to Netdata!"))),l.createElement(a.ModalBody,null,l.createElement(a.Flex,{column:!0,gap:4,width:{max:120},padding:[0,0,4,0]},l.createElement(a.TextBigger,null,"Welcome to your Business trial!"),l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.TextBigger,{lineHeight:1.5},"We are happy to inform you that we upgraded your account to Netdata Business, for free, until ",l.createElement(a.TextBigger,{strong:!0},n),"."),l.createElement(a.TextBigger,{lineHeight:1.5},"Explore all the Business features and keep enjoying the best of Netdata!")))),l.createElement(a.ModalFooter,null,l.createElement(a.Flex,{gap:4,justifyContent:"end",padding:[1,2]},l.createElement(s,{feature:"BumpedWarningModalClose",label:"OK",textTransform:"uppercase",flavour:"hollow",icon:"thumb_up",onClick:d})))))):null}}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d40cbb04-6538-4d72-8288-fa96fe4b50e8",e._sentryDebugIdIdentifier="sentry-dbid-d40cbb04-6538-4d72-8288-fa96fe4b50e8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[185],{51719:(e,n,l)=>{l.d(n,{A:()=>i});var t=l(58168),a=l(96540),r=l(83199),d=l(54856),o=l(3914);const i=e=>{const n=(0,o.dg)();return a.createElement(r.Flex,(0,t.A)({gap:2,alignItems:"center"},e),a.createElement(r.Icon,{size:"small",color:"warning",name:"warning_triangle"}),a.createElement(r.Text,null,"This feature is only available to paid plans"),n?null:a.createElement(d.A,null))}},70185:(e,n,l)=>{l.r(n),l.d(n,{default:()=>u});var t=l(96540),a=l(83199),r=l(8910),d=l(3914),o=l(87860),i=l(37618),f=l(70895),s=l(51719),c=l(63314);const u=()=>{const e=(0,d.vt)(),n=(0,i.ES)(e)?i.gB:"",{hasPermission:l}=(0,f.j)({edit:!0});return(0,o.A)({spaceId:e,id:n,pollingInterval:63e3}),t.createElement(c.Ay,{feature:"SettingsConfigurations"},t.createElement(a.Flex,{height:"100%",column:!0,gap:4},t.createElement(a.Flex,{gap:3,alignItems:"center"},t.createElement(a.H3,null,"Configurations"),l?null:t.createElement(s.A,null)),t.createElement(r.default,null)))}}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},d=(new Error).stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="58cd7e74-4be7-447d-9061-c9c4d9d78755",e._sentryDebugIdIdentifier="sentry-dbid-58cd7e74-4be7-447d-9061-c9c4d9d78755")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1876],{41876:(e,d,n)=>{n.r(d),n.d(d,{default:()=>u});n(9391);var t=n(96540),l=n(11604),o=n(50876),f=n(28738);const u=()=>{const{sendLog:e,isReady:d}=(0,o.A)(),n=(0,l.So)(),u=(0,t.useCallback)((()=>{e({feature:"SignUpThankYou"}).finally((()=>{n()}))}),[n,d]);return(0,t.useEffect)((()=>{let e=!0,n=null;return d?u():n=setTimeout((()=>{e&&u()}),1e3),()=>{e=!1,n&&(clearTimeout(n),n=null)}}),[d]),t.createElement(f.A,{title:"Welcome to Netdata!"})}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5ee71555-9d61-4693-bbdd-297fb8bf64e8",e._sentryDebugIdIdentifier="sentry-dbid-5ee71555-9d61-4693-bbdd-297fb8bf64e8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[2007],{62007:(e,n,l)=>{l.r(n),l.d(n,{default:()=>u});var d=l(96540),t=l(22292),f=(l(62953),l(83199)),o=l(19673);const b=()=>{const{loaded:e,value:n}=(0,o.JN)(),l=[n.class,...n.trialEndsAt?["(Trial)"]:[]].join(" ");return e&&l.length?d.createElement(f.Flex,null,d.createElement(f.Pill,null,l)):null},u=()=>(0,t.uW)("isAnonymous")?null:d.createElement(b,null)}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7da4450f-4e60-469b-a9f3-7fd9037f778a",e._sentryDebugIdIdentifier="sentry-dbid-7da4450f-4e60-469b-a9f3-7fd9037f778a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[252],{11726:(e,n,t)=>{t.r(n),t.d(n,{default:()=>b});t(62953);var o=t(96540),r=t(39225),a=t(45467),l=t(83199),i=t(29217),c=t(8239),s=t(28738),u=t(57605),d=t(70895),f=t(51719);const p=(0,r.A)((()=>Promise.all([t.e(7144),t.e(7857),t.e(1220),t.e(749),t.e(9473),t.e(9292),t.e(8910),t.e(4140)]).then(t.bind(t,8910))),"Configuration"),b=()=>{const[e,n]=(0,c.OD)(),{node:t}=e||{},{openItems:r}=(0,c.IP)(),b=(0,u.A)(),{hasPermission:m}=(0,d.j)({edit:!0});(0,a.A)((()=>{b(!!e)}),[!!e]);const g=(0,o.useCallback)((()=>{n(null)}),[n]),v=(0,o.useCallback)((()=>{r.length||g()}),[r,g]);return e?o.createElement(l.Modal,{backdropProps:{backdropBlur:!0},onEsc:v},o.createElement(l.ModalContent,{width:"90vw",height:"90vh"},o.createElement(l.ModalHeader,{justifyContent:"between",padding:[4],round:!0},o.createElement(l.Flex,{gap:3,alignItems:"center"},o.createElement(l.H4,null,t.name),m?null:o.createElement(f.A,null)),o.createElement(i.A,{align:"bottom",content:"Close window",zIndex:7050},o.createElement(l.Flex,null,o.createElement(l.ModalCloseButton,{onClose:g,testId:"assistant-modal-close-button"})))),o.createElement(l.ModalBody,{height:"calc(100% - 55px)",overflow:{vertical:"auto"}},o.createElement(o.Suspense,{fallback:o.createElement(s.A,{title:"Loading configuration..."})},o.createElement(p,{node:t,inModal:!0}))))):null}},54856:(e,n,t)=>{t.d(n,{A:()=>u});var o=t(58168),r=t(96540),a=t(84976),l=t(83199),i=t(4659),c=t(46741),s=t(27994);const u=function(){let{containerProps:e={},...n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,c.JT)("billing:ReadAll"),{url:u}=(0,s.A)();return u?r.createElement(l.Flex,(0,o.A)({background:"sideBarMini",border:{side:"all",color:"border"},padding:[1,2],round:!0},e),r.createElement(i.A,(0,o.A)({align:"bottom",as:a.N_,boxProps:{as:l.Flex},color:"text",Component:l.TextMicro,content:t?"Upgrade your plan in order to use this feature":"You have no permissions to manage billing",disabled:!t,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:u},n),"Upgrade now!")):null}},51719:(e,n,t)=>{t.d(n,{A:()=>c});var o=t(58168),r=t(96540),a=t(83199),l=t(54856),i=t(3914);const c=e=>{const n=(0,i.dg)();return r.createElement(a.Flex,(0,o.A)({gap:2,alignItems:"center"},e),r.createElement(a.Icon,{size:"small",color:"warning",name:"warning_triangle"}),r.createElement(a.Text,null,"This feature is only available to paid plans"),n?null:r.createElement(l.A,null))}},84428:(e,n,t)=>{var o=t(78227)("iterator"),r=!1;try{var a=0,l={next:function(){return{done:!!a++}},return:function(){r=!0}};l[o]=function(){return this},Array.from(l,(function(){throw 2}))}catch(i){}e.exports=function(e,n){try{if(!n&&!r)return!1}catch(i){return!1}var t=!1;try{var a={};a[o]=function(){return{next:function(){return{done:t=!0}}}},e(a)}catch(i){}return t}},87290:(e,n,t)=>{var o=t(50516),r=t(19088);e.exports=!o&&!r&&"object"==typeof window&&"object"==typeof document},50516:e=>{e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},19088:(e,n,t)=>{var o=t(24475),r=t(44576);e.exports="process"===r(o.process)},10916:(e,n,t)=>{var o=t(24475),r=t(80550),a=t(94901),l=t(92796),i=t(33706),c=t(78227),s=t(87290),u=t(50516),d=t(96395),f=t(77388),p=r&&r.prototype,b=c("species"),m=!1,g=a(o.PromiseRejectionEvent),v=l("Promise",(function(){var e=i(r),n=e!==String(r);if(!n&&66===f)return!0;if(d&&(!p.catch||!p.finally))return!0;if(!f||f<51||!/native code/.test(e)){var t=new r((function(e){e(1)})),o=function(e){e((function(){}),(function(){}))};if((t.constructor={})[b]=o,!(m=t.then((function(){}))instanceof o))return!0}return!n&&(s||u)&&!g}));e.exports={CONSTRUCTOR:v,REJECTION_EVENT:g,SUBCLASSING:m}},90537:(e,n,t)=>{var o=t(80550),r=t(84428),a=t(10916).CONSTRUCTOR;e.exports=a||!r((function(e){o.all(e).then(void 0,(function(){}))}))},96167:(e,n,t)=>{var o=t(46518),r=t(69565),a=t(79306),l=t(36043),i=t(1103),c=t(72652);o({target:"Promise",stat:!0,forced:t(90537)},{allSettled:function(e){var n=this,t=l.f(n),o=t.resolve,s=t.reject,u=i((function(){var t=a(n.resolve),l=[],i=0,s=1;c(e,(function(e){var a=i++,c=!1;s++,r(t,n,e).then((function(e){c||(c=!0,l[a]={status:"fulfilled",value:e},--s||o(l))}),(function(e){c||(c=!0,l[a]={status:"rejected",reason:e},--s||o(l))}))})),--s||o(l)}));return u.error&&s(u.value),t.promise}})}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cba6d6ae-245a-4321-928f-6028dbaba19b",e._sentryDebugIdIdentifier="sentry-dbid-cba6d6ae-245a-4321-928f-6028dbaba19b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3350],{92155:(e,t,a)=>{a.d(t,{A:()=>d});var n=a(58168),l=a(96540),r=a(50876);const o=e=>(0,l.forwardRef)(((t,a)=>{let{callback:o,feature:c,isStart:d,isSuccess:u,isFailure:i,eventReason:s,payload:f={},...b}=t;const{sendLog:g,isReady:m}=(0,r.A)(),y=(0,l.useCallback)((()=>{const e=b[o],t={feature:c,isStart:d,isSuccess:u,isFailure:i,eventReason:s,...f,...b["data-ga"]?{dataGa:b["data-ga"]}:{},...b.dataGa?{dataGa:b.dataGa}:{},...b["data-track"]?{dataTrack:b["data-track"]}:{},...b.label?{label:b.label}:{}};"function"==typeof e&&e(),g(t,!0)}),[o,g,m,f,b]),p=(0,l.useMemo)((()=>({...b,[o]:y})),[b,o,y]);return l.createElement(e,(0,n.A)({ref:a},p))}));var c=a(67276);const d=e=>(0,l.forwardRef)(((t,a)=>{let{payload:r={},...d}=t;const u=o(e);return l.createElement(u,(0,n.A)({},d,{ref:a,callback:"onClick",payload:{...r,action:c.o1.buttonClicked}}))}))},73350:(e,t,a)=>{a.r(t),a.d(t,{Trust:()=>f,default:()=>b});a(9391),a(25440),a(3064),a(98992),a(72577),a(62953);var n=a(96540),l=a(86663),r=a(83199),o=a(11604),c=a(28738),d=a(92155),u=a(50876),i=a(63314);const s=(0,d.A)(r.Button),f=()=>{const[e,t]=(0,n.useMemo)((()=>{const{search:e}=window.location,{redirect_uri:t,agent_uri:a}=l.parse(e);return[t,a]})),[a,d]=(0,n.useState)(),[f,b,g]=(0,o.LC)(),[m,y]=(0,o.Yr)({},[f]),{sendLog:p,isReady:w}=(0,u.A)();return(0,n.useEffect)((()=>{let a=!0,n=null;const l=m.find((e=>e.url===t));return l?p({feature:"TrustUrl",description:"Redirect due to trusted url"}).finally((()=>{location.replace("/api/v1/auth/account/origins/".concat(l.id,"/redirect?redirect_uri=").concat(encodeURIComponent(e),"&agent_uri=").concat(encodeURIComponent(t)))})):n=setTimeout((()=>{a&&d(!0)}),1e3),()=>{a=!1,n&&(clearTimeout(n),n=null)}}),[e,t,m,w]),a?n.createElement(i.Ay,{feature:"TrustUrl"},n.createElement(r.Layer,{full:!0},n.createElement(r.Flex,{"data-testid":"trust",alignItems:"center",justifyContent:"center",column:!0,width:"100%",height:"100%",background:"mainBackground",gap:4},n.createElement(c.m,{animate:g}),n.createElement(r.Text,{textAlign:"center"},"Do you trust ",n.createElement(r.Text,{strong:!0},t),"?"),n.createElement(r.Flex,{column:!0,gap:2,alignItems:"center"},n.createElement(r.TextBig,null,"Authorizing this URL will allow it to request your Netdata data."),n.createElement(r.Flex,{gap:2},n.createElement(s,{flavour:"borderless",onClick:()=>window.location.replace(decodeURIComponent(e)),disabled:y||g,"data-ga":"url-authorization::click-cancel-button",feature:"TrustUrl",payload:{label:"Cancel"}},"Cancel"),n.createElement(s,{onClick:()=>b(t),disabled:y||g,isLoading:y||g,"data-ga":"url-authorization::click-yes-button",feature:"TrustUrl",payload:{label:"Yes"}},"Yes")))))):n.createElement(c.A,null)},b=f}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1,13 +0,0 @@
|
|||
/*!
|
||||
* @kurkle/color v0.3.2
|
||||
* https://github.com/kurkle/color#readme
|
||||
* (c) 2023 Jukka Kurkela
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Chart.js v4.4.2
|
||||
* https://www.chartjs.org
|
||||
* (c) 2024 Chart.js Contributors
|
||||
* Released under the MIT License
|
||||
*/
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7d94b975-3025-4457-8552-31970dc67035",e._sentryDebugIdIdentifier="sentry-dbid-7d94b975-3025-4457-8552-31970dc67035")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3736],{63736:(e,t,o)=>{o.r(t),o.d(t,{default:()=>l});var i=o(8711),n=o(83199);const r=(0,i.css)(['html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:inherit;}body{font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;min-height:100vh;scroll-behavior:smooth;text-rendering:optimizespeed;scrollbar-gutter:stable both-edges;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;}body > iframe:not([src$="statuspage.io/embed/frame"]){display:none;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none;}table{border-collapse:collapse;border-spacing:0;th,tr{vertical-align:middle;}th{font-weight:bold;}}*{box-sizing:inherit;-webkit-font-smoothing:antialiased;font-weight:inherit;text-rendering:optimizelegibility;-webkit-appearance:none;border-width:0px;border-style:initial;border-color:initial;border-image:initial;margin:0px;outline:0px;padding:0px;text-decoration:none;}*,*::before,*::after{box-sizing:border-box;}input[type="button" i],input[type="submit" i],input[type="reset" i],input[type="file" i]::-webkit-file-upload-button,button{border-color:transparent;border-style:none;border-width:0;padding:0;}a{color:',";&:hover{text-decoration:underline;color:",";}&:visited{color:",";}}b{font-weight:bold;}i{font-style:italic;}code{font-family:monospace;}::-webkit-scrollbar{height:8px;width:8px;}",""],(e=>e.theme.colors.link),(e=>e.theme.colors.linkHover),(e=>e.theme.colors.link),(e=>e.isScreenSmall&&"\n ::-webkit-scrollbar {\n width: 0px !important;\n height: 0px !important;\n background: transparent !important; /* make scrollbar transparent */\n }\n ")),l=(0,i.createGlobalStyle)([""," ",""],r,n.webkitVisibleScrollbar)}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=(new Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="bd450e9d-64ed-4ee1-a486-4ee9d95323c9",e._sentryDebugIdIdentifier="sentry-dbid-bd450e9d-64ed-4ee1-a486-4ee9d95323c9")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4034],{24034:(e,r,t)=>{t.r(r),t.d(r,{default:()=>i,dropInFlavour:()=>d});t(74648),t(17333),t(98992),t(23215),t(54520);var n=t(96540),a=t(43375);const o={activationConstraint:{delay:50,tolerance:10}},d={dropArea:"dropArea",dashboard:"dashboard",self:"self"},i=e=>{let{children:r}=e;const t=(0,n.useCallback)((e=>{const{active:r}=e,{isResizer:t,itemId:n,itemContainerId:o,rootId:d,navigationTab:i}=r.data.current;if(i)return(0,a.fp)({...e,droppableContainers:e.droppableContainers.filter((e=>e.data.current.sortable&&e.data.current.navigationTab))});if(t){const t=e.droppableRects.get(n)||e.droppableRects.get("".concat(d,"-").concat(n));return(0,a.Qo)({...e,collisionRect:{...t,...r.rect.current.translated&&{width:t.width+(r.rect.current.translated.right-r.rect.current.initial.right),height:t.height+(r.rect.current.translated.bottom-r.rect.current.initial.bottom)}},droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isContainer)&&e.data.current.itemContainerId===o}))})}let l,s=e.droppableContainers.filter((e=>e.data.current.droppable));if(s.length){if(l=(0,a.TT)({...e,droppableContainers:s}),l.length>0||s.every((e=>e.data.current.onlyPointerWithin)))return l;if(l=(0,a.Qo)({...e,droppableContainers:s.filter((e=>!e.data.current.onlyPointerWithin))}),l.length>0)return l}if(s=e.droppableContainers.filter((e=>e.data.current.dropArea)),l=(0,a.TT)({...e,droppableContainers:s}),l.length>0)return l;const c=(0,a.TT)({...e,droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isResizer||e.id===n)}))});return c.length>0?c:(0,a.fp)({...e,droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isResizer||e.id===n)}))})}),[]),d=(0,a.FR)((0,a.MS)(a.cA,o),(0,a.MS)(a.IG,o));return n.createElement(a.Mp,{sensors:d,collisionDetection:t,measuring:{droppable:{strategy:a.Pf.Always},draggable:{measure:a.Sj}},autoScroll:!1},r)}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
|
||||
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3597fc37-c681-4308-9ec1-86674db668e7",e._sentryDebugIdIdentifier="sentry-dbid-3597fc37-c681-4308-9ec1-86674db668e7")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4414],{74414:(e,n,c)=>{c.r(n),c.d(n,{default:()=>f});var d=c(8711);const o="> .dyncfg-field-content > .dyncfg-object-field-container > .dyncfg-object-field-collapsible > .dyncfg-object-field-content",t=(0,d.css)([".dyncfg-grid ",",.dyncfg-grid ","{display:grid;column-gap:16px;row-gap:6px;}",""],o,"> .dyncfg-object-field-content",(e=>{const n=[];for(let c=1;c<=e;c++){n.push(".dyncfg-grid-col-".concat(c," ").concat(o," {\n grid-template-columns: repeat(").concat(c,", 1fr) !important;\n }"));for(let d=1;d<=e-c+1;d++)n.push(".dyncfg-grid-col-span-".concat(c,"-").concat(d," { grid-column: ").concat(c," / span ").concat(d,"; }"))}return n.join("\n")})(12)),f=(0,d.createGlobalStyle)(["",""],t)}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="53f38cae-4eb5-4b70-b025-7a530152c695",e._sentryDebugIdIdentifier="sentry-dbid-53f38cae-4eb5-4b70-b025-7a530152c695")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5426],{45426:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s});n(62953);var o=n(96540),a=n(83199),r=n(5396),l=n(4659),d=n(87659),c=n(51641);const s=()=>{const e=(0,c.e)(),[t,,n,s]=(0,d.A)();return(0,o.useEffect)((()=>{"Reachable"===e&&n()}),[e]),t?o.createElement(a.Layer,{full:"horizontal",backdropProps:{backdropBlur:"3px"},onClickOutside:s,onEsc:s,position:"top"},o.createElement(r.A,{testId:"agent-not-secure-banner",width:"100%",background:"warningBackground",position:"absolute",top:"0",tooltipProps:{align:"top"},zIndex:20},o.createElement(a.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},o.createElement(a.Text,null,"IMPORTANT: This Netdata is openly accessible from the Internet!"," ",o.createElement(l.A,{"data-testid":"learn",href:"https://learn.netdata.cloud/docs/netdata-agent/securing-netdata-agents/",as:"a",cursor:"pointer",textDecoration:"underline",color:"text",hoverColor:"textFocus"},"Secure your Netdata now"),"!")),o.createElement(a.Box,{"data-testid":"agent-not-secure-banner-close-button",as:a.Icon,color:"text",cursor:"pointer",name:"x",position:"absolute",right:"8px",onClick:s}))):null}}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4efe7547-b8b3-471e-92e3-d577a967e407",e._sentryDebugIdIdentifier="sentry-dbid-4efe7547-b8b3-471e-92e3-d577a967e407")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5700],{95700:(e,n,d)=>{d.r(n),d.d(n,{default:()=>a});d(62953);var t=d(96540),f=d(67602),o=d(55337),l=d(6323);const a=()=>{const[e,,,n]=(0,f.A)("manageInvitations");return t.createElement(o.A,null,e&&t.createElement(l.d,{onClose:n}))}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1,12 +0,0 @@
|
|||
/*!
|
||||
* chartjs-plugin-zoom v2.0.1
|
||||
* undefined
|
||||
* (c) 2016-2023 chartjs-plugin-zoom Contributors
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
/*! Hammer.JS - v2.0.7 - 2016-04-22
|
||||
* http://hammerjs.github.io/
|
||||
*
|
||||
* Copyright (c) 2016 Jorik Tangelder;
|
||||
* Licensed under the MIT license */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +0,0 @@
|
|||
/*!
|
||||
* chartjs-plugin-annotation v2.2.1
|
||||
* https://www.chartjs.org/chartjs-plugin-annotation/index
|
||||
* (c) 2023 chartjs-plugin-annotation Contributors
|
||||
* Released under the MIT License
|
||||
*/
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="598e5ba4-f52e-4f8d-8c4b-05b81a830989",e._sentryDebugIdIdentifier="sentry-dbid-598e5ba4-f52e-4f8d-8c4b-05b81a830989")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6384],{29176:(e,t,n)=>{n.d(t,{m:()=>m});var r=n(35840);function a(e){return(0,r.w)(e,Date.now())}var i=n(25733),o=n(2940),s=n(49858),u=n(43924),c=n(2642),f=n(96519),d=n(82695),l=n(40215);function D(e,t,n){const r=(0,d.q)(),a=n?.locale??r.locale??f.c,D=(0,i.z)(e,t);if(isNaN(D))throw new RangeError("Invalid time value");const m=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:D});let N,g;D>0?(N=(0,c.a)(t),g=(0,c.a)(e)):(N=(0,c.a)(e),g=(0,c.a)(t));const w=(0,u.O)(g,N),b=((0,l.G)(g)-(0,l.G)(N))/1e3,h=Math.round((w-b)/60);let T;if(h<2)return n?.includeSeconds?w<5?a.formatDistance("lessThanXSeconds",5,m):w<10?a.formatDistance("lessThanXSeconds",10,m):w<20?a.formatDistance("lessThanXSeconds",20,m):w<40?a.formatDistance("halfAMinute",0,m):w<60?a.formatDistance("lessThanXMinutes",1,m):a.formatDistance("xMinutes",1,m):0===h?a.formatDistance("lessThanXMinutes",1,m):a.formatDistance("xMinutes",h,m);if(h<45)return a.formatDistance("xMinutes",h,m);if(h<90)return a.formatDistance("aboutXHours",1,m);if(h<o.F6){const e=Math.round(h/60);return a.formatDistance("aboutXHours",e,m)}if(h<2520)return a.formatDistance("xDays",1,m);if(h<o.Nw){const e=Math.round(h/o.F6);return a.formatDistance("xDays",e,m)}if(h<2*o.Nw)return T=Math.round(h/o.Nw),a.formatDistance("aboutXMonths",T,m);if(T=(0,s.W)(g,N),T<12){const e=Math.round(h/o.Nw);return a.formatDistance("xMonths",e,m)}{const e=T%12,t=Math.trunc(T/12);return e<3?a.formatDistance("aboutXYears",t,m):e<9?a.formatDistance("overXYears",t,m):a.formatDistance("almostXYears",t+1,m)}}function m(e,t){return D(e,a(e),t)}},63933:(e,t,n)=>{n.d(t,{R:()=>a});var r=n(2642);function a(e){return+(0,r.a)(e)<Date.now()}},84929:(e,t,n)=>{n.d(t,{H:()=>a});var r=n(2940);function a(e,t){const n=t?.additionalDigits??2,a=function(e){const t={},n=e.split(i.dateTimeDelimiter);let r;if(n.length>2)return t;/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],i.timeZoneDelimiter.test(t.date)&&(t.date=e.split(i.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length)));if(r){const e=i.timezone.exec(r);e?(t.time=r.replace(e[1],""),t.timezone=e[1]):t.time=r}return t}(e);let D;if(a.date){const e=function(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const a=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:null===i?a:100*i,restDateString:e.slice((r[1]||r[2]).length)}}(a.date,n);D=function(e,t){if(null===t)return new Date(NaN);const n=e.match(o);if(!n)return new Date(NaN);const r=!!n[4],a=c(n[1]),i=c(n[2])-1,s=c(n[3]),u=c(n[4]),f=c(n[5])-1;if(r)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,u,f)?function(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const a=r.getUTCDay()||7,i=7*(t-1)+n+1-a;return r.setUTCDate(r.getUTCDate()+i),r}(t,u,f):new Date(NaN);{const e=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(d[t]||(l(e)?29:28))}(t,i,s)&&function(e,t){return t>=1&&t<=(l(e)?366:365)}(t,a)?(e.setUTCFullYear(t,i,Math.max(a,s)),e):new Date(NaN)}}(e.restDateString,e.year)}if(!D||isNaN(D.getTime()))return new Date(NaN);const m=D.getTime();let N,g=0;if(a.time&&(g=function(e){const t=e.match(s);if(!t)return NaN;const n=f(t[1]),a=f(t[2]),i=f(t[3]);if(!function(e,t,n){if(24===e)return 0===t&&0===n;return n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,a,i))return NaN;return n*r.s0+a*r.Cg+1e3*i}(a.time),isNaN(g)))return new Date(NaN);if(!a.timezone){const e=new Date(m+g),t=new Date(0);return t.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),t.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),t}return N=function(e){if("Z"===e)return 0;const t=e.match(u);if(!t)return 0;const n="+"===t[1]?-1:1,a=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,i))return NaN;return n*(a*r.s0+i*r.Cg)}(a.timezone),isNaN(N)?new Date(NaN):new Date(m+g+N)}const i={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},o=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,s=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,u=/^([+-])(\d{2})(?::?(\d{2}))?$/;function c(e){return e?parseInt(e):1}function f(e){return e&&parseFloat(e.replace(",","."))||0}const d=[31,null,31,30,31,30,31,31,30,31,30,31];function l(e){return e%400===0||e%4===0&&e%100!==0}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
|
||||
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},d=(new Error).stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="bea2cd4d-f017-4db5-b9e3-546372542647",e._sentryDebugIdIdentifier="sentry-dbid-bea2cd4d-f017-4db5-b9e3-546372542647")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6661],{46661:(e,d,t)=>{t.r(d),t.d(d,{default:()=>f});var n=t(96540),o=t(47767),a=t(83199),l=t(68938);const r={width:600,height:600},f=e=>{let{email:d}=e;const t=(0,o.Zp)(),f=(0,n.useCallback)((()=>t(window.location.pathname,{replace:!0})),[]);return n.createElement(a.Layer,{backdrop:!0,backdropProps:{backdropBlur:"3px"},"data-track":"typeform-signup-form"},n.createElement(l.Widget,{id:localStorage.getItem("typeformId")||"jC4PHA0q",style:r,medium:"demo-test",onSubmit:f,hidden:{email:d}}))}}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="849965ac-d76d-4654-9eee-fc709635d008",e._sentryDebugIdIdentifier="sentry-dbid-849965ac-d76d-4654-9eee-fc709635d008")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6760],{96760:(e,t,n)=>{n.r(t),n.d(t,{default:()=>I});var l=n(96540),a=n(8711),d=n(63950),o=n.n(d),r=n(81638),c=n(64473),i=n(83199),m=n(84976),s=n(47762);const f=e=>{let{id:t}=e;const n=(0,s.Zl)(t),a=(0,s.xY)(t,"name");return l.createElement(m.N_,{to:n},l.createElement(i.Flex,{alignItems:"center",gap:1},l.createElement(i.Icon,{name:"node_hollow",color:"primary",size:"small"}),l.createElement(i.Flex,{width:{max:40},overflow:"hidden"},l.createElement(i.Text,{color:"primary",whiteSpace:"nowrap"},a)),l.createElement(i.Icon,{name:"goToNode",color:"primary",size:"small"})))};var E=n(25825),u=n(89879),b=n(60072),h=n(80618),p=n(58010),w=n(17240);const g=e=>{let{id:t}=e;const n=(0,s.xY)(t);return n.loaded?l.createElement(i.Flex,{column:!0,gap:1,overflow:{horizontal:"hidden",vertical:"auto"},padding:[2],width:"100%"},l.createElement(E.A,{node:n}),l.createElement(u.A,{id:t,flavour:"sidebar"}),l.createElement(b.A,{node:n}),l.createElement(h.A,{node:n}),l.createElement(p.A,{node:n}),l.createElement(w.A,{node:n})):null};var y=n(20687);const v=(0,a.default)(i.Tabs).withConfig({displayName:"contents__StyledTabs",componentId:"sc-11zjb7h-0"})(["overflow:hidden;height:100%;"]),_=e=>t=>l.createElement(i.Flex,{column:!0,overflow:"hidden",height:"calc(100% - 80px)",position:"relative",gap:3,padding:[1,0]},l.createElement(e,t)),x=_(g),A=_(y.A),I=e=>{let{id:t,onClose:n=o()}=e;return l.createElement(r.Ay,{width:90,isOpen:!0,header:l.createElement(c.A,{title:l.createElement(f,{id:t}),onClick:n})},l.createElement(i.Flex,{"data-testid":"home-sidebar-tabs",column:!0,overflow:"hidden",height:"100%"},l.createElement(v,{selected:0},l.createElement(i.Tab,{label:l.createElement(i.Text,null,"Info"),small:!0},l.createElement(x,{id:t})),l.createElement(i.Tab,{label:l.createElement(i.Text,null,"Alerts"),small:!0},l.createElement(A,{nodeIds:[t]})))))}}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var o="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[e]="ee64041b-8fce-4c14-8c7a-93b3842283aa",o._sentryDebugIdIdentifier="sentry-dbid-ee64041b-8fce-4c14-8c7a-93b3842283aa")}catch(o){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[683],{683:(o,e,t)=>{t.r(e),t.d(e,{Notification:()=>l.Eg,Warning:()=>f,createErrorNotification:()=>l.gi,createNotification:()=>l.UI,default:()=>g,showDashboardCreatedNotification:()=>c.jE,showInvalidDashboardSlugNotification:()=>c.$j,showJoiningSpaceNotification:()=>c.Fw,showNodesNotification:()=>c.AM,showRoomCreationNotification:()=>c.ZM,showRoomsInSpaceNotification:()=>c.mw,showRoomsNotification:()=>c.r0,showSpaceNotification:()=>c.X7,showUsersInRoomNotification:()=>c.R9,showUsersInSpaceNotification:()=>c.sb,toast:()=>d.A});var a=t(58168),n=t(96540),r=t(8711),i=t(83199),s=t(99571),d=t(78217),c=t(24198),l=t(13871);const f=o=>{let{title:e,children:t,...r}=o;return n.createElement(i.Flex,(0,a.A)({column:!0,gap:2,background:"warningBackground",backgroundOpacity:.7,round:!0,padding:[4]},r),e&&n.createElement(i.H3,null,e),t)},g=(0,r.default)((o=>{let{className:e,...t}=o;return n.createElement(i.Box,{className:e},n.createElement(s.N9,(0,a.A)({},t,{closeButton:!1})))})).withConfig({displayName:"notifications__Container",componentId:"sc-8t8ne-0"})([".Toastify__toast-container{position:fixed;width:unset;min-width:400px;max-width:500px;z-index:50;color:",";}.Toastify__toast{padding:0;padding-top:5px;background:",";border:1px solid ",";}.Toastify__toast--error{background:",";border:1px solid ",";}.Toastify__toast--warning{background:",";border:1px solid ",";}.Toastify__toast--success{background:",";border:1px solid ",";}.Toastify__toast-icon{display:none;}.Toastify__toast-body{}.Toastify__progress-bar{bottom:unset;top:0;}.Toastify__progress-bar--success{background-color:",";}.Toastify__progress-bar--error{background-color:",";}"],(0,i.getColor)(["neutral","limedSpruce"]),(0,i.getColor)("elementBackground"),(0,i.getColor)("text"),(0,i.getColor)(["red","lavender"]),(0,i.getColor)("error"),(0,i.getColor)("bright"),(0,i.getColor)("warning"),(0,i.getColor)(["green","frostee"]),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("error"))}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="200506ba-e7da-4c28-9afa-12c010f776fb",e._sentryDebugIdIdentifier="sentry-dbid-200506ba-e7da-4c28-9afa-12c010f776fb")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7146],{57146:(e,n,t)=>{t.r(n),t.d(n,{default:()=>u});t(62953);var a=t(96540),d=t(39225),l=t(86663),o=t(47767),r=t(22292),c=t(28738),f=t(24266);const s=(0,d.A)((()=>Promise.all([t.e(7144),t.e(7857),t.e(8239),t.e(9473),t.e(963),t.e(7487)]).then(t.bind(t,7356))),"AlertWebview"),u=(i=(0,f.Xc)((()=>{const{search:e}=window.location,{space_id:n,room_id:t,node_name:d,node_id:f}=l.parse(e);return(0,r.uW)("isLoaded")?a.createElement(a.Suspense,{fallback:a.createElement(c.A,null)},a.createElement(o.BV,null,a.createElement(o.qh,{path:"alerts/:alertId",element:a.createElement(s,{spaceId:n,roomId:t,nodeName:d,nodeId:f})}))):a.createElement(c.A,null)})),e=>{const{hash:n}=window.location,{token:t}=l.parse(n),[d,o]=(0,a.useState)();return(0,a.useEffect)((()=>{t&&(o(t),localStorage.setItem("netdataJWT",t))}),[]),d?a.createElement(i,e):a.createElement(c.A,null)});var i}}]);
|
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="239c7385-e422-46fd-8336-50004b89c516",e._sentryDebugIdIdentifier="sentry-dbid-239c7385-e422-46fd-8336-50004b89c516")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7170],{17170:(e,n,d)=>{d.d(n,{A:()=>i});d(62953),d(3296),d(27208),d(48408);var o=d(37618);const i=()=>{if(o.Ay)return null;const{origin:e,searchParams:n}=new URL(window.location.href),d=null===n||void 0===n?void 0:n.get("labra_subscription_id"),i=null===n||void 0===n?void 0:n.get("aws_customer_id"),t=null===n||void 0===n?void 0:n.get("aws_product_id");return d&&i&&t?"".concat(e,"/api/v2/billing/labra/spaces?customer_id=").concat(i,"&marketplace=aws&product_id=").concat(t,"&subscription_id=").concat(d):null}}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,11 +0,0 @@
|
|||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fef08628-86a7-43cd-a204-367ad851ff11",e._sentryDebugIdIdentifier="sentry-dbid-fef08628-86a7-43cd-a204-367ad851ff11")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7529],{67529:(e,n,d)=>{d.r(n),d.d(n,{AuthTokenCallback:()=>t,default:()=>a});var f=d(96540),o=d(38819);const t=()=>{const e=(0,o.W6)("redirect_uri"),n=(0,o.W6)("token");return(0,f.useEffect)((()=>{e&&n&&(localStorage.setItem("netdataJWT",n),location.href=decodeURIComponent(e))}),[]),null},a=t}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e64832dc-26ea-4e8b-9ee9-4433adcc06fb",e._sentryDebugIdIdentifier="sentry-dbid-e64832dc-26ea-4e8b-9ee9-4433adcc06fb")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7959],{7959:(e,n,t)=>{t.r(n),t.d(n,{default:()=>g});t(62953);var a=t(96540),o=t(83199),l=t(3914),s=t(87659),r=t(46741),c=t(98496),i=t(39522),d=t(4659),m=t(84976);const u={noRoomPermission:{header:e=>"Your role doesn't give you permission to access any of the troubleshooting information on ".concat(e,".")},noSpacePermission:{header:e=>"Your role doesn't give you permission to access any information on ".concat(e,".")},noRooms:{header:e=>"You currently don't have permission to see any room on ".concat(e,".")}},f=e=>{let{onClick:n,spaceName:t}=e;return a.createElement(a.Fragment,null,a.createElement(o.Text,{margin:[2,0,0]},"You can also leave this Space if you wish. "),a.createElement(o.Button,{flavour:"borderless",icon:"switch_off",label:"Leave ".concat(t),margin:[0,0,0,7],onClick:n,strong:!0}))},g=e=>{let{reason:n}=e;const t=(0,l.ap)(),[g,,b,p]=(0,s.A)(),{header:h}=u[n],y=(0,l.bq)(),E=(0,r.JT)("billing:ReadBasic");return a.createElement(c.A,{title:h(t.name)},a.createElement(a.Fragment,null,"noSpacePermission"===n&&a.createElement(a.Fragment,null,a.createElement(o.Text,null,"Please contact the Space administrators if this is unexpected."),a.createElement(f,{onClick:b,spaceName:t.name})),E&&"noRooms"!==n&&a.createElement(o.Text,null,"To manage Plan & Billing information please"," ",a.createElement(d.A,{as:m.N_,to:"/spaces/".concat(y,"/settings/billing")},"click here.")),"noRooms"===n&&a.createElement(a.Fragment,null,a.createElement(o.Text,null,"Please contact a Space administrator or manager if this is unexpected."),a.createElement(f,{onClick:b,spaceName:t.name})),g&&a.createElement(i.A,{id:t.id,name:t.name,onClose:p})))}},39522:(e,n,t)=>{t.d(n,{A:()=>v});var a=t(58168),o=t(96540),l=t(83199),s=t(47767),r=t(22292),c=t(55463),i=(t(17333),t(98992),t(54520),t(62953),t(47444)),d=t(71835),m=t(54702),u=t(55189),f=t(3914),g=t(48849),b=t(56639),p=t(14994);var h=t(57992);const y="leave-space-dialog",E="leaveSpaceDialog",v=e=>{let{id:n,name:t,onClose:v}=e;const w=(0,s.Zp)(),C=(0,r.uW)("id"),A=(0,c.Gi)(),S=(0,c.i3)(),k=(0,c.pB)(),_=(e=>{const[,n]=(0,d.A)();return(0,i.Zs)((t=>{let{snapshot:a,set:o,reset:l}=t;return async t=>{let{currentUserId:s,onSuccess:r,onError:i}=t;const d=await a.getPromise((0,f.nC)("ids")),h=d.filter((n=>e!==n)),[y]=h;if(!y)return void n({header:"Spaces",text:u.sh.leave});const{slug:E}=y&&await a.getPromise((0,b.Ay)(y));o((0,f.nC)("ids"),h),o(g.A,(n=>n.filter((n=>n!==e))));try{await(0,m.XY)(e,[s]),r&&r(E),(0,c.Z8)(l,e),(0,p.Is)(l,e),l((0,b.Ay)(e))}catch(v){o((0,f.nC)("ids"),d),i&&i()}}}),[e])})(n),L=(0,h.A)(n),P=(0,o.useCallback)((e=>w("/spaces/".concat(e))),[]),Y=1===A.length,I=1===S.length&&k,x=Y?{confirmLabel:"Yes, leave","data-ga":"".concat(y,"-last-member"),"data-testid":"".concat(E,"LastMember"),handleConfirm:()=>L({onSuccess:P}),message:o.createElement(o.Fragment,null,"If you leave, space ",o.createElement("strong",null,t)," will be deleted immediately.",o.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(t," space")}:I?{confirmLabel:"Give rights","data-ga":"".concat(y,"-last-admin"),"data-testid":"".concat(E,"LastAdmin"),handleConfirm:()=>w("users"),isConfirmPositive:!0,message:o.createElement(o.Fragment,null,"You are the last admin of ",o.createElement("strong",null,t)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(t," space")}:{confirmLabel:"Yes, leave","data-ga":y,"data-testid":E,handleConfirm:()=>_({currentUserId:C,onSuccess:P}),message:o.createElement(o.Fragment,null,"You are about to leave ",o.createElement("strong",null,t)," space.",o.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(t," space")};return o.createElement(l.ConfirmationDialog,(0,a.A)({handleDecline:v},x))}}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,5 +0,0 @@
|
|||
/*!
|
||||
Copyright (c) 2018 Jed Watson.
|
||||
Licensed under the MIT License (MIT), see
|
||||
http://jedwatson.github.io/classnames
|
||||
*/
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80647485-8a0e-4651-b370-ef6ea86fc55d",e._sentryDebugIdIdentifier="sentry-dbid-80647485-8a0e-4651-b370-ef6ea86fc55d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"30b1ba65cc8722be7e184f4a401fb43e6b21634d"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8505],{8505:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});n(62953);var a=n(96540),r=n(84929),o=n(16074),l=n(63933),i=n(82526),d=n(29176),s=n(87991),c=n(26655),u=n(47444),f=n(83199),p=n(5396),g=n(4659),b=n(87659);const m=(0,u.gD)({key:"fetchLicense",get:()=>c.A.get("/api/v1/license").then((e=>e.data)).catch((()=>null))}),w=(0,u.eU)({key:"licenseAtom",default:m}),y=()=>{if(!window.envSettings.onprem)return null;const e=(0,u.xf)(w),[t,n]=(0,b.A)(),[c,m]=(0,a.useState)(),[y,E]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{if("hasValue"!==e.state)return;const t=e.contents,a=(0,r.H)(t.exp);if(m(a),!(0,o.f)(a))return;const i=parseInt((a-new Date)/1e3/60/60/24);if(i>30)return;const d=localStorage.getItem("dismissLicenceWarning");d&&(0,o.f)((0,r.H)(d))&&!(0,l.R)((0,r.H)(d))&&i>0||(n(!0),i<0&&E(!0))}),[e]),t?y?a.createElement(f.Layer,{full:!0,backdropProps:{backdropBlur:"3px"}},a.createElement(p.A,{testId:"onprem-banner",width:"100%",background:"errorBackground",position:"absolute",top:"0",tooltipProps:{align:"top"},zIndex:20},a.createElement(f.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},a.createElement(f.Text,null,"Your Netdata Enterprise On-prem License has expired on ",(0,s.GP)(c,"PPPP"),". Please contact your admin /"," ",a.createElement(g.A,{"data-testid":"renew",href:"mailto:billing@netdata.cloud",as:"a",cursor:"pointer",textDecoration:"underline",color:"main"},"billing@netdata.cloud")," ","to renew your license.")))):a.createElement(p.A,{testId:"onprem-banner",width:"100%",background:"warningBackground",position:"absolute",top:"0",onClose:()=>{n(),localStorage.setItem("dismissLicenceWarning",(0,i.W)(new Date,{days:1}).toISOString())},tooltipProps:{align:"top"},zIndex:20},a.createElement(f.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},a.createElement(f.Text,null,"Your Netdata Enterprise On-prem License will expire in ",(0,d.m)(c),". Please contact your admin /"," ",a.createElement(g.A,{"data-testid":"renew",href:"mailto:billing@netdata.cloud",as:"a",cursor:"pointer",textDecoration:"underline",color:"main"},"billing@netdata.cloud")," ","to renew your license."))):null}}}]);
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue