docs: add CONTRIBUTING.md, CHANGELOG.md, and JSDoc to entire codebase
CI / Build & Test (push) Successful in 2m54s
CI / Build & Test (push) Successful in 2m54s
Add docs/CONTRIBUTING.md covering the build system, dev workflow, all npm scripts, how to add new native host message types, code style, and debugging guidance. Add CHANGELOG.md at the project root documenting all features and fixes across the 1.0.0 release. Add JSDoc (@param, @returns) to all previously undocumented exported functions across 35 JS files: - native-host/holesail-manager/ (index, virtual-hosts, service-tunnels, servers, port-allocator) - native-host top-level managers (startup, connect-proxy, https-proxy, certificate-authority, ssh-manager, rdp-manager) - extension/background/ (logs, native-messaging, proxy, message-router) - extension/dashboard/core/ (utils, navigation, init) - extension/dashboard/ui/ (modal, toast, state-tag) - extension/dashboard/pages/ (all 10 page files) - extension/dashboard/refresh.js, events.js - extension/dashboard/data/hostname-validator.js - scripts/ (build-host, run-install)
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
// Depends on: core/utils.js ($, escapeHtml, truncate), ui/state-tag.js (stateTag),
|
||||
// ui/toast.js (showToast, copyToClipboard), ui/modal.js (openModal, closeModal, showModalError)
|
||||
/**
|
||||
* Service Tunnels page — renders the service tunnels table, manages bulk selection,
|
||||
* and wires up add/edit/remove modal events.
|
||||
* Depends on: core/utils.js ($, escapeHtml, truncate), ui/state-tag.js (stateTag),
|
||||
* ui/toast.js (showToast, copyToClipboard), ui/modal.js (openModal, closeModal, showModalError)
|
||||
*/
|
||||
|
||||
function _updateSvcBulkBar() {
|
||||
const checked = document.querySelectorAll('#serviceTunnelsTable input[type="checkbox"]:checked');
|
||||
@@ -14,6 +18,10 @@ function _updateSvcBulkBar() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-render the service tunnels table with the latest state.
|
||||
* @param {object} state - Full extension state from `fetchState()`.
|
||||
*/
|
||||
function updateServiceTunnelsTable(state) {
|
||||
const tbody = $('serviceTunnelsTable');
|
||||
if (!tbody) return;
|
||||
@@ -149,6 +157,10 @@ function updateServiceTunnelsTable(state) {
|
||||
_updateSvcBulkBar();
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach all event listeners for the Service Tunnels page.
|
||||
* Called once during dashboard initialisation.
|
||||
*/
|
||||
function setupServiceTunnelEvents() {
|
||||
$('svcSelectAll')?.addEventListener('change', (e) => {
|
||||
document.querySelectorAll('#serviceTunnelsTable .svc-row-cb').forEach(cb => { cb.checked = e.target.checked; });
|
||||
|
||||
Reference in New Issue
Block a user