From b41fad0b940598fe13a4d34aa897893f103d8388 Mon Sep 17 00:00:00 2001 From: nachoparker Date: Wed, 13 Oct 2021 16:59:44 -0600 Subject: ncp-web: add NCP logs section Signed-off-by: nachoparker --- build/docker/docker-compose-ncpdev.yml | 6 +-- changelog.md | 20 +++++---- ncp-web/css/ncp.css | 15 +++++++ ncp-web/download_logs.php | 75 ++++++++++++++++++++++++++++++++++ ncp-web/img/logs.svg | 38 +++++++++++++++++ ncp-web/index.php | 16 +++++++- ncp-web/js/ncp.js | 46 ++++++++++++++++++++- ncp-web/ncp-launcher.php | 10 +++++ updates/1.41.0.sh | 60 --------------------------- updates/1.42.0.sh | 60 +++++++++++++++++++++++++++ 10 files changed, 274 insertions(+), 72 deletions(-) create mode 100644 ncp-web/download_logs.php create mode 100644 ncp-web/img/logs.svg delete mode 100644 updates/1.41.0.sh create mode 100644 updates/1.42.0.sh diff --git a/build/docker/docker-compose-ncpdev.yml b/build/docker/docker-compose-ncpdev.yml index e4e5d7db..80b06544 100644 --- a/build/docker/docker-compose-ncpdev.yml +++ b/build/docker/docker-compose-ncpdev.yml @@ -8,9 +8,9 @@ services: - "443:443" - "4443:4443" volumes: - - ./ncp-web:/var/www/ncp-web - - ./etc:/usr/local/etc - - ./changelog.md:/changelog.md + - ../../ncp-web:/var/www/ncp-web + - ../../etc:/usr/local/etc + - ../../changelog.md:/changelog.md - ncdata:/data container_name: nextcloudpi diff --git a/changelog.md b/changelog.md index b6cd0ff5..596534e8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,13 +1,19 @@ -<<<<<<< HEAD -[v1.40.5](https://github.com/nextcloud/nextcloudpi/commit/6c3cb37) (2021-10-11) letsencrypt: keep original cert name +[v1.41.0](https://github.com/nextcloud/nextcloudpi/commit/33d8167) (2021-10-13) ncp-web: add NCP logs section -[v1.40.4 ](https://github.com/nextcloud/nextcloudpi/commit/de104a5) (2021-10-06) Make templating safer and more verbose (#1343) -======= -[v1.40.5](https://github.com/nextcloud/nextcloudpi/commit/f7c393f) (2021-10-11) add architecture and kernel info to ncp-info (#1360) +[v1.40.10](https://github.com/nextcloud/nextcloudpi/commit/8bb5795) (2021-10-12) nc-import-ncp: run activated apps upon import + +[v1.40.9 ](https://github.com/nextcloud/nextcloudpi/commit/a4998cd) (2021-10-12) letsencrypt: favor most recent cert if there are many + +[v1.40.8 ](https://github.com/nextcloud/nextcloudpi/commit/9bddfad) (2021-10-12) fix HPB with dynamic IP + +[v1.40.7 ](https://github.com/nextcloud/nextcloudpi/commit/4e790e4) (2021-10-12) letsencrypt: fix template generation -[v1.40.4](https://github.com/nextcloud/nextcloudpi/commit/de104a5) (2021-10-06) Make templating safer and more verbose (#1343) ->>>>>>> b532589 (add architecture and kernel info to ncp-info (#1360)) +[v1.40.6 ](https://github.com/nextcloud/nextcloudpi/commit/b64859e) (2021-10-11) add architecture and kernel info to ncp-info (#1360) + +[v1.40.5](https://github.com/nextcloud/nextcloudpi/commit/cc3f336) (2021-10-11) letsencrypt: keep original cert name + +[v1.40.4 ](https://github.com/nextcloud/nextcloudpi/commit/de104a5) (2021-10-06) Make templating safer and more verbose (#1343) [v1.40.3 ](https://github.com/nextcloud/nextcloudpi/commit/8a6c1c0) (2021-10-06) ncp-check-nc-version: dont notify the same version more than once diff --git a/ncp-web/css/ncp.css b/ncp-web/css/ncp.css index 56599b8d..fec345df 100644 --- a/ncp-web/css/ncp.css +++ b/ncp-web/css/ncp.css @@ -1153,6 +1153,9 @@ select { .icon-backups { background-image: url('../img/defaults-white.svg'); } +.icon-logs { + background-image: url('../img/logs.svg'); +} .icon-config { background-image: url('../img/settings-white.svg'); } @@ -1238,6 +1241,10 @@ a#versionlink:hover { cursor:pointer; } +#log-download-btn-wrapper { + text-align: center +} + .dialog { display:block; background: white; @@ -1375,6 +1382,14 @@ a#versionlink:hover { overflow: auto; } +#logs-details-box { + background-color: #fbfbfb; + border: solid 1px lightgray; + color: #565656; + overflow: auto; + height: 80vh; +} + #language-selection { border: none; } diff --git a/ncp-web/download_logs.php b/ncp-web/download_logs.php new file mode 100644 index 00000000..5e02469f --- /dev/null +++ b/ncp-web/download_logs.php @@ -0,0 +1,75 @@ + +// GPL licensed (see end of file) * Use at your own risk! +// +// More at https://nextcloudpi.com +/// + +include ('csrf.php'); +session_start(); + +// CSRF check +$token = isset($_REQUEST['token']) ? $_REQUEST['token'] : ''; +if ( empty($token) || !validateCSRFToken($token) ) + exit('Unauthorized download'); + +$file = '/var/log/ncp.log'; + +if (!file_exists($file) + die('File not found'); + +if (!is_readable($file)) + die('NCP does not have read permissions on this file'); + +function filesize_compat($file) +{ + if(PHP_INT_SIZE === 4) # workaround for 32-bit architectures + return trim(shell_exec("stat -c%s " . escapeshellarg($file))); + else + return filesize($file); +} + +$size = filesize_compat($file); + +$mime_type = 'text/plain'; + +ob_start(); +ob_clean(); +header('Content-Description: File Transfer'); +header('Content-Type: ' . $mime_type); +header("Content-Transfer-Encoding: Binary"); +header("Content-disposition: attachment; filename=\"" . basename($file) . "\""); +header('Content-Length: ' . $size); +header('Expires: 0'); +header('Cache-Control: must-revalidate'); +header('Pragma: public'); + +$chunksize = 8 * (1024 * 1024); + +if($size > $chunksize || PHP_INT_SIZE === 4) # always chunk for 32-bit architectures +{ + $handle = fopen($file, 'rb') or die("Error opening file"); + + while (!feof($handle)) + { + $buffer = fread($handle, $chunksize); + echo $buffer; + + ob_flush(); + flush(); + } + + fclose($handle); +} +else + readfile($file); + +ob_flush(); +flush(); + +exit(); + +?> diff --git a/ncp-web/img/logs.svg b/ncp-web/img/logs.svg new file mode 100644 index 00000000..3d44ae87 --- /dev/null +++ b/ncp-web/img/logs.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/ncp-web/index.php b/ncp-web/index.php index b5d99f3c..361f4210 100644 --- a/ncp-web/index.php +++ b/ncp-web/index.php @@ -190,6 +190,11 @@ HTML;
+
"> +
+
+
+
">
@@ -266,8 +271,16 @@ HTML; } echo ''; ?> +
- +
+

__("NextCloudPi logs"); ?>

+
+
', file_get_contents('/var/log/ncp.log')) ?>
+
+
+
+