[FIX] Widget Segnalazioni: cap descrizione 1900 char + contatore, evita errore 'Data too long operative_summary' (ticket #430)

La colonna operative_summary lato ticket-ms e' VARCHAR(2000): descrizioni
lunghe causavano l'errore SQL grezzo a video. Aggiunto maxlength + contatore
live + guard al submit nel widget locale public/js/bug-reporter.js.
Cache-buster: bug-reporter.js?v=20260624 in common.js + common.js?v=20260624
su tutte le pagine. Causa radice (dimensione colonna) inoltrata ad AgileHub.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-24 03:11:19 +02:00
co-authored by Claude Opus 4.8
parent 08d4ac0cc4
commit e5f7a7d3a6
42 changed files with 66 additions and 43 deletions
+1 -1
View File
@@ -71,7 +71,7 @@
<!-- Stessa logica della app: api.js + common.js (helper) + common-bi.js (override BI) --> <!-- Stessa logica della app: api.js + common.js (helper) + common-bi.js (override BI) -->
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script src="js/common-bi.js?v=20260631"></script> <script src="js/common-bi.js?v=20260631"></script>
<script> <script>
// Renderizza la sidebar BI (loadSidebar è stato ridefinito da common-bi.js) // Renderizza la sidebar BI (loadSidebar è stato ridefinito da common-bi.js)
+1 -1
View File
@@ -318,7 +318,7 @@
</div> </div>
<script src="/js/api.js?v=20260620"></script> <script src="/js/api.js?v=20260620"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -148,7 +148,7 @@
</div> </div>
<script src="../js/api.js?v=20260620"></script> <script src="../js/api.js?v=20260620"></script>
<script src="../js/common.js?v=20260623h"></script> <script src="../js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -170,7 +170,7 @@
</div> </div>
<script src="../js/api.js?v=20260620"></script> <script src="../js/api.js?v=20260620"></script>
<script src="../js/common.js?v=20260623h"></script> <script src="../js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -1091,7 +1091,7 @@
</div> </div>
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="js/i18n.js?v=20260631"></script> <script src="js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -155,7 +155,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -362,7 +362,7 @@
</div> </div>
<script src="/js/api.js?v=20260623g"></script> <script src="/js/api.js?v=20260623g"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -152,7 +152,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -350,7 +350,7 @@
</div> </div>
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle + override sidebar BI (common-bi.js dopo common.js: ridefinisce solo loadSidebar) --> <!-- Bootstrap Italia bundle + override sidebar BI (common-bi.js dopo common.js: ridefinisce solo loadSidebar) -->
<script src="vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script>if (window.bootstrap && bootstrap.loadFonts) { bootstrap.loadFonts('vendor/bootstrap-italia/dist/fonts'); }</script> <script>if (window.bootstrap && bootstrap.loadFonts) { bootstrap.loadFonts('vendor/bootstrap-italia/dist/fonts'); }</script>
+1 -1
View File
@@ -184,7 +184,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -137,7 +137,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -383,7 +383,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -144,7 +144,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -1143,7 +1143,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (accordion) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (accordion) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI. --> common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI. -->
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
+1 -1
View File
@@ -352,7 +352,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -912,7 +912,7 @@ curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
</main> </main>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script src="js/i18n.js?v=20260631"></script> <script src="js/i18n.js?v=20260631"></script>
<script> <script>
function showTab(id) { function showTab(id) {
+1 -1
View File
@@ -140,7 +140,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -185,7 +185,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+25 -2
View File
@@ -27,6 +27,10 @@
const script = document.currentScript || document.querySelector('script[data-product]'); const script = document.currentScript || document.querySelector('script[data-product]');
const WIDGET_VERSION = '1.4.15'; const WIDGET_VERSION = '1.4.15';
const WIDGET_BUILD = '20260415d'; const WIDGET_BUILD = '20260415d';
// Limite descrizione: la colonna operative_summary lato ticket-ms e' VARCHAR(2000);
// alla descrizione viene aggiunto il tag versione (~30 char) prima dell'invio,
// quindi cappiamo a 1900 per evitare l'errore "Data too long for column 'operative_summary'".
const NX_DESC_MAX = 1900;
const CFG = { const CFG = {
apiUrl: (script && script.dataset.apiUrl) || 'http://localhost', apiUrl: (script && script.dataset.apiUrl) || 'http://localhost',
apiKey: (script && script.dataset.apiKey) || '', apiKey: (script && script.dataset.apiKey) || '',
@@ -471,7 +475,8 @@
<option value="URGENT">Urgente</option> <option value="URGENT">Urgente</option>
</select> </select>
</div> </div>
<textarea class="nx-textarea" id="nx-desc" placeholder="Descrivi il problema... (puoi incollare screenshot con Ctrl+V)"></textarea> <textarea class="nx-textarea" id="nx-desc" maxlength="${NX_DESC_MAX}" placeholder="Descrivi il problema... (puoi incollare screenshot con Ctrl+V)"></textarea>
<div id="nx-desc-counter" aria-live="polite" style="font-size:11px;color:#6b7280;text-align:right;margin-top:-2px;margin-bottom:4px">0 / ${NX_DESC_MAX}</div>
<div class="nx-att-list" id="nx-att-list"></div> <div class="nx-att-list" id="nx-att-list"></div>
<div class="nx-row"> <div class="nx-row">
<button class="nx-btn" id="nx-voice-btn" onclick="window._nxVoice()">🎤 Parla</button> <button class="nx-btn" id="nx-voice-btn" onclick="window._nxVoice()">🎤 Parla</button>
@@ -487,6 +492,16 @@
// Paste handler // Paste handler
const desc = document.getElementById('nx-desc'); const desc = document.getElementById('nx-desc');
// Contatore caratteri live (limite colonna operative_summary)
const counter = document.getElementById('nx-desc-counter');
const updateCounter = () => {
if (!counter) return;
const n = desc.value.length;
counter.textContent = n + ' / ' + NX_DESC_MAX;
counter.style.color = n >= NX_DESC_MAX ? '#dc2626' : '#6b7280';
};
desc.addEventListener('input', updateCounter);
updateCounter();
desc.addEventListener('paste', handlePaste); desc.addEventListener('paste', handlePaste);
// Drag & drop // Drag & drop
desc.addEventListener('dragover', (e) => { e.preventDefault(); desc.classList.add('drag-over'); }); desc.addEventListener('dragover', (e) => { e.preventDefault(); desc.classList.add('drag-over'); });
@@ -613,7 +628,8 @@
btn.style.background = '#fee2e2'; btn.style.background = '#fee2e2';
recognition.onresult = (e) => { recognition.onresult = (e) => {
const desc = document.getElementById('nx-desc'); const desc = document.getElementById('nx-desc');
desc.value += (desc.value ? '\n' : '') + e.results[0][0].transcript; desc.value = (desc.value + (desc.value ? '\n' : '') + e.results[0][0].transcript).slice(0, NX_DESC_MAX);
desc.dispatchEvent(new Event('input'));
btn.textContent = '🎤 Parla'; btn.style.background = ''; btn.textContent = '🎤 Parla'; btn.style.background = '';
}; };
recognition.onerror = recognition.onend = () => { btn.textContent = '🎤 Parla'; btn.style.background = ''; }; recognition.onerror = recognition.onend = () => { btn.textContent = '🎤 Parla'; btn.style.background = ''; };
@@ -629,6 +645,13 @@
const result = document.getElementById('nx-result'); const result = document.getElementById('nx-result');
if (!desc && _attachments.length === 0) { alert('Descrivi il problema o allega uno screenshot'); return; } if (!desc && _attachments.length === 0) { alert('Descrivi il problema o allega uno screenshot'); return; }
if (desc && desc.length > NX_DESC_MAX) {
const result0 = document.getElementById('nx-result');
result0.className = 'nx-result err';
result0.style.display = 'block';
result0.textContent = `❌ Descrizione troppo lunga: massimo ${NX_DESC_MAX} caratteri (ne hai ${desc.length}). Accorcia il testo o allega un file.`;
return;
}
submitBtn.disabled = true; submitBtn.disabled = true;
submitBtn.textContent = 'Invio in corso...'; submitBtn.textContent = 'Invio in corso...';
+1 -1
View File
@@ -957,7 +957,7 @@ function switchLang(lang) {
// ticket con richiedente vuoto → invisibili in "Le mie segnalazioni". Fallback safe = prec. // ticket con richiedente vuoto → invisibili in "Le mie segnalazioni". Fallback safe = prec.
var _injectBugReporter = function (email, name) { var _injectBugReporter = function (email, name) {
var s = document.createElement('script'); var s = document.createElement('script');
s.src = 'js/bug-reporter.js?v=20260623'; s.src = 'js/bug-reporter.js?v=20260624';
s.async = true; s.async = true;
s.dataset.product = 'NIS2'; s.dataset.product = 'NIS2';
s.dataset.tenantId = '7'; s.dataset.tenantId = '7';
+1 -1
View File
@@ -151,7 +151,7 @@
</div> </div>
<!-- Stessa logica JS della pagina live (parita' funzionale assoluta, zero backend). --> <!-- Stessa logica JS della pagina live (parita' funzionale assoluta, zero backend). -->
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI. --> common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI. -->
+1 -1
View File
@@ -95,7 +95,7 @@
<!-- Stessa logica della login attuale: ZERO modifiche backend --> <!-- Stessa logica della login attuale: ZERO modifiche backend -->
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script> <script>
if (api.isAuthenticated()) { window.location.href = 'dashboard.html'; } if (api.isAuthenticated()) { window.location.href = 'dashboard.html'; }
+1 -1
View File
@@ -127,7 +127,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -168,7 +168,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -426,6 +426,6 @@ curl https://nis2.agile.software/api/services/status</pre>
</div> </div>
</div> </div>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -113,7 +113,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -495,7 +495,7 @@
<!-- Stessa logica della onboarding.html: ZERO modifiche backend --> <!-- Stessa logica della onboarding.html: ZERO modifiche backend -->
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script> <script>
// ── Auth check ────────────────────────────────────────────────── // ── Auth check ──────────────────────────────────────────────────
if (!checkAuth()) throw new Error('Not authenticated'); if (!checkAuth()) throw new Error('Not authenticated');
+1 -1
View File
@@ -139,7 +139,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -334,7 +334,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -132,7 +132,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -269,7 +269,7 @@
<!-- Stessa logica della register.html: ZERO modifiche backend --> <!-- Stessa logica della register.html: ZERO modifiche backend -->
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script> <script>
if (api.isAuthenticated()) { window.location.href = 'dashboard.html'; } if (api.isAuthenticated()) { window.location.href = 'dashboard.html'; }
+1 -1
View File
@@ -444,7 +444,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -142,7 +142,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -495,7 +495,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -689,7 +689,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -195,7 +195,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -192,7 +192,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="/js/i18n.js?v=20260631"></script> <script src="/js/i18n.js?v=20260631"></script>
+1 -1
View File
@@ -478,7 +478,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -293,7 +293,7 @@
</div> </div>
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -1 +1 @@
{"version": "1.24.11", "build": "2026-06-24-v1.24.11", "date": "2026-06-24", "changelog": "Assistente ARIA — Quando chiedi spiegazioni sulle tendine della «Valuta Rilevanza NIS2» (Inventario), ARIA ora conosce la griglia ESATTA della finestra (i 6 criteri, le opzioni e i relativi punteggi) e risponde in modo corrispondente a cio' che vedi, senza piu' descrizioni generiche o non pertinenti. Risolto ticket #429."} {"version": "1.24.12", "build": "2026-06-24-v1.24.12", "date": "2026-06-24", "changelog": "Widget Segnalazioni — Risolto l'errore \"Data too long for column 'operative_summary'\" quando la descrizione era troppo lunga: ora la casella ha un limite di 1900 caratteri con contatore live e un messaggio chiaro se si supera (al posto dell'errore tecnico). Causa radice (dimensione colonna lato ticket-ms) inoltrata ad AgileHub. Risolto ticket #430."}
+1 -1
View File
@@ -208,7 +208,7 @@
<!-- Report Detail Modal handled by common.js showModal --> <!-- Report Detail Modal handled by common.js showModal -->
<script src="/js/api.js?v=20260631"></script> <script src="/js/api.js?v=20260631"></script>
<script src="/js/common.js?v=20260623h"></script> <script src="/js/common.js?v=20260624"></script>
<!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js). <!-- Bootstrap Italia bundle (componenti) + override sidebar BI (common-bi.js).
common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI, common-bi.js va DOPO common.js: ridefinisce solo loadSidebar() con markup BI,
riusando tutti gli helper di common.js (zero backend). --> riusando tutti gli helper di common.js (zero backend). -->
+1 -1
View File
@@ -322,7 +322,7 @@
</div> </div>
<script src="js/api.js?v=20260631"></script> <script src="js/api.js?v=20260631"></script>
<script src="js/common.js?v=20260623h"></script> <script src="js/common.js?v=20260624"></script>
<script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script> <script src="/vendor/bootstrap-italia/dist/js/bootstrap-italia.bundle.min.js"></script>
<script src="/js/common-bi.js?v=20260631"></script> <script src="/js/common-bi.js?v=20260631"></script>
<script src="js/i18n.js?v=20260631"></script> <script src="js/i18n.js?v=20260631"></script>