added fogloiu di lavoro modals everywhere

This commit is contained in:
Claudio 2026-03-31 11:39:17 +02:00
parent 8cf74608b8
commit ad16d84b2e
7 changed files with 252 additions and 41 deletions

View File

@ -1,4 +1,4 @@
<div id="photoModal" class="modal">
<div id="photoModal" class="custom-modal">
<div class="modal-content final-wide" style="max-width:800px; position:relative;">
<!-- X per chiudere -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

View File

@ -676,7 +676,7 @@ if (!empty($_GET['ajax'])) {
color: #cbd5e1;
}
.modal {
.custom-modal {
display: none;
/* di default invisibile */
position: fixed;
@ -691,11 +691,11 @@ if (!empty($_GET['ajax'])) {
}
/* quando la modale è attiva, la centriamo */
.modal.active {
.custom-modal.active {
display: flex !important;
}
.modal-content {
.custom-modal .modal-content {
background: white;
padding: 2rem;
border-radius: 1.2rem;
@ -795,7 +795,7 @@ if (!empty($_GET['ajax'])) {
/* Modale più grande e ottimizzata */
.modal-content.final-wide {
.custom-modal .modal-content.final-wide {
width: 95%;
max-width: 780px;
}
@ -936,6 +936,180 @@ if (!empty($_GET['ajax'])) {
.show-matrice-files i {
font-size: 1.5rem;
}
.modal-backdrop.show {
z-index: 1050 !important;
}
.modal.show {
z-index: 1055 !important;
}
.modal-worksheet-list {
max-width: 1320px;
width: 97vw;
}
.modal-worksheet-view {
max-width: 1500px;
width: 97vw;
}
.worksheet-badge-fl {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 68px;
padding: 6px 12px;
border-radius: 999px;
background: #e8f7ee;
color: #198754;
font-weight: 800;
font-size: .85rem;
}
.worksheet-badge-rev {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 54px;
padding: 6px 10px;
border-radius: 999px;
background: #e7f1ff;
color: #0d6efd;
font-weight: 700;
font-size: .84rem;
}
.worksheet-badge-status-active {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 88px;
padding: 6px 10px;
border-radius: 999px;
background: #d1e7dd;
color: #0f5132;
font-weight: 700;
font-size: .84rem;
}
.worksheet-badge-status-inactive {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 88px;
padding: 6px 10px;
border-radius: 999px;
background: #f8d7da;
color: #842029;
font-weight: 700;
font-size: .84rem;
}
.worksheet-list-table th {
background: #e7f1ff !important;
color: #0b3d91;
}
.worksheet-chip {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
border-radius: 999px;
background: #e7f1ff;
color: #0d6efd;
font-weight: 700;
font-size: .82rem;
}
.readonly-card {
border: 1px solid #e9ecef;
border-radius: 16px;
background: #fff;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
height: 100%;
}
.readonly-card-header {
background: linear-gradient(135deg, #e7f1ff, #d6e9ff);
color: #0b3d91;
font-weight: 800;
padding: 12px 16px;
border-bottom: 1px solid #cfe2ff;
}
.readonly-card-body {
padding: 16px;
text-align: left;
}
.readonly-grid {
display: grid;
grid-template-columns: 220px 1fr;
gap: 8px 16px;
}
.readonly-label {
font-weight: 700;
color: #495057;
}
.readonly-value {
color: #1f2d3d;
word-break: break-word;
}
.worksheet-open-link {
background: #fff;
border: 1px solid #b6d4fe;
color: #0d6efd;
font-weight: 700;
border-radius: 10px;
padding: 9px 14px;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
}
.worksheet-open-link:hover {
color: #0a58ca;
background: #f4f9ff;
}
.worksheet-title-box {
background: linear-gradient(135deg, #0d6efd, #3b82f6);
color: #fff;
border-radius: 18px;
padding: 18px 20px;
box-shadow: 0 8px 24px rgba(13, 110, 253, 0.2);
}
.worksheet-title-box small {
color: rgba(255, 255, 255, .9);
}
.mix-readonly-table thead th {
background: #dbeafe !important;
color: #0b3d91;
}
.btn-view-worksheet {
background: linear-gradient(135deg, #0d6efd, #3b82f6);
color: #fff;
border: 0;
border-radius: 8px;
padding: 8px 14px;
font-weight: 700;
}
.btn-view-worksheet:hover {
color: #fff;
opacity: .95;
}
</style>
</head>
@ -989,7 +1163,7 @@ if (!empty($_GET['ajax'])) {
<audio id="beepSound" src="beep.wav" preload="auto"></audio>
<!-- Modal di conferma azioni produzione -->
<div id="reasonModal" class="modal">
<div id="reasonModal" class="custom-modal">
<div class="modal-content">
<h3 id="modalTitle">Conferma azione</h3>
<p id="modalQuestion"></p>
@ -1034,7 +1208,7 @@ if (!empty($_GET['ajax'])) {
<!-- Modal dati fine produzione -->
<div id="finalDataModal" class="modal">
<div id="finalDataModal" class="custom-modal">
<div class="modal-content final-wide">
<h3>Dati Fine Produzione</h3>
<p>Confronta i valori teorici e inserisci quelli reali:</p>
@ -1188,7 +1362,8 @@ if (!empty($_GET['ajax'])) {
$("#photoModal").removeClass("active");
});
</script>
<?php include('include/worksheets-linked-modals.php'); ?>
<script src="assets/js/worksheets-linked-modals.js"></script>
<?php include('jsinclude.php'); ?>
<script>
$(function() {
@ -1517,14 +1692,11 @@ if (!empty($_GET['ajax'])) {
// 🔧 Sposta l'icona qualità all'estrema destra della riga
$('.photo-tools-row').each(function() {
const $row = $(this);
const $qc = $row.find('.qc-btn').last(); // assume che il bottone qualità abbia classe .qc-btn
const $qc = $row.find('.qc-btn.quality-btn').first();
if ($qc.length) {
// la stacco dal gruppo foto
$qc.detach();
// la ri-attacco come ultimo elemento della riga
$qc.appendTo($row);
// le do la classe che la spinge a destra
$qc.addClass('qc-right');
}
});
@ -2027,7 +2199,7 @@ if (!empty($_GET['ajax'])) {
</script>
<!-- MODALE PER PREVIEW IMMAGINE -->
<div id="imagePreviewModal" class="modal">
<div id="imagePreviewModal" class="custom-modal">
<div class="modal-content preview-large">
@ -2065,7 +2237,7 @@ if (!empty($_GET['ajax'])) {
<!-- MODALE MESCOLE -->
<div id="mescoleModal" class="modal">
<div id="mescoleModal" class="custom-modal">
<div class="modal-content" style="max-width:400px;">
<h3>Mescole utilizzate</h3>
@ -2097,7 +2269,7 @@ if (!empty($_GET['ajax'])) {
</script>
<!-- MODALE ALLEGATI MATRICE (SOLO LETTURA) -->
<div id="matriceFilesModal" class="modal">
<div id="matriceFilesModal" class="custom-modal">
<div class="modal-content" style="width:95%; max-width:1100px; max-height:88vh; overflow:hidden; padding:0; border-radius:16px;">
<div style="background:#b9ebc7; padding:1rem 1.4rem; display:flex; justify-content:space-between; align-items:center;">
@ -2120,7 +2292,7 @@ if (!empty($_GET['ajax'])) {
</div>
</div>
<!-- MODALE PREVIEW FILE -->
<div id="filePreviewModal" class="modal">
<div id="filePreviewModal" class="custom-modal">
<div class="modal-content" style="background:#fff; max-width:1400px; width:98%; height:92vh; padding:0; overflow:hidden; text-align:left;">
<div style="background:#b9ebc7; padding:0.9rem 1.2rem; display:flex; justify-content:space-between; align-items:center;">
<div id="filePreviewTitle" style="font-weight:700; color:#1f2d3d;">Anteprima file</div>

View File

@ -205,14 +205,27 @@ if ($matricePhoto) {
<?php include __DIR__ . "/components/photo_buttons.php"; ?>
</div>
<!-- 📎 FILE CORRELATI MATRICE -->
<button type="button"
class="qc-btn show-matrice-files"
data-matrice-id="<?= (int)($r['matrice_id'] ?? 0) ?>"
data-matrice-nome="<?= htmlspecialchars($r['matrice'] ?? '', ENT_QUOTES) ?>"
title="File matrice">
<i class="bi bi-paperclip"></i>
</button>
<div class="matrix-side-buttons"
style="margin-left:auto; display:flex; gap:0.45rem; align-items:center;">
<!-- 📋 FOGLI DI LAVORO COLLEGATI -->
<button type="button"
class="qc-btn show-worksheets"
data-id="<?= (int)($r['matrice_id'] ?? 0) ?>"
data-nome="<?= htmlspecialchars($r['matrice'] ?? '', ENT_QUOTES) ?>"
title="Fogli di lavoro collegati">
<i class="bi bi-clipboard2-check"></i>
</button>
<!-- 📎 FILE CORRELATI MATRICE -->
<button type="button"
class="qc-btn show-matrice-files"
data-matrice-id="<?= (int)($r['matrice_id'] ?? 0) ?>"
data-matrice-nome="<?= htmlspecialchars($r['matrice'] ?? '', ENT_QUOTES) ?>"
title="File matrice">
<i class="bi bi-paperclip"></i>
</button>
</div>
<!-- 🎯 UN BADGE PER OGNI STRUMENTO, SUBITO DOPO LE FOTO -->
<?php foreach ($toolsArray as $toolName): ?>
@ -242,24 +255,50 @@ if ($matricePhoto) {
<?php else: ?>
<button class="action-btn start-btn" data-id="<?= $r['id'] ?>">AVVIA PRODUZIONE</button>
<div class="photo-tools-row"
style="margin-top:0.75rem; display:flex; flex-wrap:wrap; gap:0.6rem; align-items:center;">
<?php foreach ($toolsArray as $toolName): ?>
<span class="badge tools-badge"
style="
display:inline-block;
margin-left:0.5rem;
background:#0d6efd;
color:#ffffff;
font-size:0.78rem;
font-weight:600;
border-radius:999px;
padding:0.30rem 0.85rem;
white-space:nowrap;
">
<?= htmlspecialchars($toolName) ?>
</span>
<?php endforeach; ?>
<button class="action-btn start-btn" data-id="<?= $r['id'] ?>" style="flex:0 0 auto; min-width:240px;">
AVVIA PRODUZIONE
</button>
<?php foreach ($toolsArray as $toolName): ?>
<span class="badge tools-badge"
style="
background:#0d6efd;
color:#ffffff;
font-size:0.78rem;
font-weight:600;
border-radius:999px;
padding:0.30rem 0.85rem;
white-space:nowrap;
">
<?= htmlspecialchars($toolName) ?>
</span>
<?php endforeach; ?>
<div class="matrix-side-buttons"
style="margin-left:auto; display:flex; gap:0.45rem; align-items:center;">
<!-- 📋 FOGLI DI LAVORO COLLEGATI -->
<button type="button"
class="qc-btn show-worksheets"
data-id="<?= (int)($r['matrice_id'] ?? 0) ?>"
data-nome="<?= htmlspecialchars($r['matrice'] ?? '', ENT_QUOTES) ?>"
title="Fogli di lavoro collegati">
<i class="bi bi-clipboard2-check"></i>
</button>
<!-- 📎 FILE CORRELATI MATRICE -->
<button type="button"
class="qc-btn show-matrice-files"
data-matrice-id="<?= (int)($r['matrice_id'] ?? 0) ?>"
data-matrice-nome="<?= htmlspecialchars($r['matrice'] ?? '', ENT_QUOTES) ?>"
title="File matrice">
<i class="bi bi-paperclip"></i>
</button>
</div>
</div>
<?php endif; ?>