From 7bfec387dc2398363e708d829b8e18650650fce6 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Mon, 16 Feb 2026 10:43:27 +0100 Subject: [PATCH] feat(hexojs): Add tabs to KISS sidebar navigation - Add HexoJS tabs (Overview, Posts, Editor, Media, Deploy, Sync, Theme, Settings) to kiss-theme.js nav config - Remove duplicate inline tabs from overview.js - Tabs now appear in sidebar when HexoJS is selected Co-Authored-By: Claude Opus 4.5 --- .../luci-static/resources/view/hexojs/overview.js | 5 ++--- .../luci-static/resources/secubox/kiss-theme.js | 11 ++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/package/secubox/luci-app-hexojs/htdocs/luci-static/resources/view/hexojs/overview.js b/package/secubox/luci-app-hexojs/htdocs/luci-static/resources/view/hexojs/overview.js index fd8aead7..257ba98d 100644 --- a/package/secubox/luci-app-hexojs/htdocs/luci-static/resources/view/hexojs/overview.js +++ b/package/secubox/luci-app-hexojs/htdocs/luci-static/resources/view/hexojs/overview.js @@ -4,12 +4,10 @@ 'require rpc'; 'require hexojs/api as api'; -var K = null; // KissTheme reference - return view.extend({ load: function() { return Promise.all([ - L.require('secubox/kiss-theme').then(function(m) { K = new m(); }), + L.require('secubox/kiss-theme'), api.listInstances(), api.getStatus(), api.getSiteStats(), @@ -21,6 +19,7 @@ return view.extend({ render: function(d) { var self = this; + var K = window.KissTheme; K.apply(); return K.wrap([ diff --git a/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox/kiss-theme.js b/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox/kiss-theme.js index 257f2093..5a0a8922 100644 --- a/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox/kiss-theme.js +++ b/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox/kiss-theme.js @@ -99,7 +99,16 @@ var KissThemeClass = baseclass.extend({ { icon: '☁️', name: 'Nextcloud', path: 'admin/secubox/services/nextcloud' }, { icon: '🎬', name: 'Media Flow', path: 'admin/services/media-flow' }, { icon: '🪞', name: 'MagicMirror', path: 'admin/services/magicmirror2' }, - { icon: '📰', name: 'HexoJS', path: 'admin/services/hexojs' }, + { icon: '📰', name: 'HexoJS', path: 'admin/services/hexojs', tabs: [ + { name: 'Overview', path: 'admin/services/hexojs/overview' }, + { name: 'Posts', path: 'admin/services/hexojs/posts' }, + { name: 'Editor', path: 'admin/services/hexojs/editor' }, + { name: 'Media', path: 'admin/services/hexojs/media' }, + { name: 'Deploy', path: 'admin/services/hexojs/deploy' }, + { name: 'Sync', path: 'admin/services/hexojs/sync' }, + { name: 'Theme', path: 'admin/services/hexojs/theme' }, + { name: 'Settings', path: 'admin/services/hexojs/settings' } + ]}, { icon: '📺', name: 'Netdata', path: 'admin/services/netdata-dashboard' }, { icon: '🏠', name: 'Vhost Manager', path: 'admin/services/vhost-manager' }, { icon: '📦', name: 'App Store', path: 'admin/secubox/apps' }