From b3f2ff08e30dfe4ec0701a0928845b59a7d1aad8 Mon Sep 17 00:00:00 2001 From: Luigi D'Acunto Date: Wed, 17 Jun 2026 17:50:01 +0200 Subject: [PATCH] feat: aggiungi pulsante copia hostname in clipboard su view.py Accanto al pulsante Service Discovery, aggiunge un secondo pulsante con icona clipboard che copia il nome host negli appunti al click. Feedback visivo verde per 900ms al click confermato. bump version to 2.9.3 --- user_script/checkmk_swissknife.user.js | 37 ++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/user_script/checkmk_swissknife.user.js b/user_script/checkmk_swissknife.user.js index bb57390..1b41ffe 100644 --- a/user_script/checkmk_swissknife.user.js +++ b/user_script/checkmk_swissknife.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Checkmk SwissKnife // @namespace https://luigidacunto.com/ -// @version 2.9.2 +// @version 2.9.3 // @description Raccolta di miglioramenti all'interfaccia di Checkmk WATO. Ogni fix o enhancement viene aggiunto qui come feature indipendente. // @author Luigi D'Acunto // @homepageURL https://git.luigidacunto.com/tools/checkmk-swissknife @@ -837,7 +837,26 @@ flex-shrink: 0; } .cmk-sk-inv-btn:hover { opacity: 1; background: rgba(229,165,0,0.18) !important; } - .cmk-sk-inv-btn svg { display: block; } + .cmk-sk-copy-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + background: transparent; + color: #999 !important; + border: 1px solid #666; + border-radius: 3px; + margin-right: 5px; + vertical-align: middle; + cursor: pointer; + opacity: 0.7; + flex-shrink: 0; + padding: 0; + } + .cmk-sk-copy-btn:hover { opacity: 1; border-color: #aaa; color: #ccc !important; } + .cmk-sk-copy-btn.copied { border-color: #4caf50 !important; color: #4caf50 !important; opacity: 1; } + .cmk-sk-inv-btn svg, .cmk-sk-copy-btn svg { display: block; } `); hostCells.forEach(td => { @@ -854,6 +873,20 @@ btn.rel = 'noopener'; btn.title = `Service Discovery: ${hostname}`; btn.innerHTML = ''; + + const copyBtn = doc.createElement('button'); + copyBtn.className = 'cmk-sk-copy-btn'; + copyBtn.type = 'button'; + copyBtn.title = `Copia hostname: ${hostname}`; + copyBtn.innerHTML = ''; + copyBtn.addEventListener('click', () => { + navigator.clipboard.writeText(hostname).then(() => { + copyBtn.classList.add('copied'); + setTimeout(() => copyBtn.classList.remove('copied'), 900); + }); + }); + + td.prepend(copyBtn); td.prepend(btn); });