Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb38bfb75a | |||
| 28a708dad3 | |||
| 6b9cf20ab9 | |||
| d40fc7d177 |
@@ -55,3 +55,5 @@ yarn-error.log
|
|||||||
|
|
||||||
# Ignora tutti i log ovunque
|
# Ignora tutti i log ovunque
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
public/userarea/cache/
|
||||||
+522
-269
File diff suppressed because it is too large
Load Diff
@@ -342,8 +342,8 @@ $gridMeta = [
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
<script>
|
<script>
|
||||||
window.gridData = <?= json_encode($gridDataArray, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
|
window.gridData = <?= json_encode($gridDataArray, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
|
||||||
window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
|
window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
@@ -797,7 +797,7 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
background-color: rgba(0, 0, 0, 0.5);
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
#photosModal > .modal-content {
|
#photosModal>.modal-content {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
margin: 5% auto;
|
margin: 5% auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
@@ -892,9 +892,17 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@keyframes new-row-pulse {
|
@keyframes new-row-pulse {
|
||||||
0%, 100% { background-color: transparent; }
|
|
||||||
50% { background-color: #cce5ff; }
|
0%,
|
||||||
|
100% {
|
||||||
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
background-color: #cce5ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.row-just-created {
|
.row-just-created {
|
||||||
animation: new-row-pulse 1s ease-in-out 3;
|
animation: new-row-pulse 1s ease-in-out 3;
|
||||||
}
|
}
|
||||||
@@ -1029,21 +1037,25 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-rows-per-page {
|
.pager-rows-per-page {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-label {
|
.pager-label {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-limit-group {
|
.pager-limit-group {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
border: 1px solid #ced4da;
|
border: 1px solid #ced4da;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-limit-btn {
|
.pager-limit-btn {
|
||||||
padding: 3px 10px;
|
padding: 3px 10px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -1052,24 +1064,41 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
transition: background .15s, color .15s;
|
transition: background .15s, color .15s;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
.pager-limit-btn:last-child { border-right: none; }
|
|
||||||
.pager-limit-btn:hover { background: #e9ecef; text-decoration: none; color: #212529; }
|
.pager-limit-btn:last-child {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pager-limit-btn:hover {
|
||||||
|
background: #e9ecef;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #212529;
|
||||||
|
}
|
||||||
|
|
||||||
.pager-limit-btn.active {
|
.pager-limit-btn.active {
|
||||||
background: #0d6efd;
|
background: #0d6efd;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
.pager-limit-btn.active:hover { background: #0b5ed7; color: #fff; }
|
|
||||||
|
.pager-limit-btn.active:hover {
|
||||||
|
background: #0b5ed7;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.pager-nav {
|
.pager-nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-info {
|
.pager-info {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.pager-btn, .pager-num {
|
|
||||||
|
.pager-btn,
|
||||||
|
.pager-num {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -1083,16 +1112,25 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
transition: background .15s, color .15s, border-color .15s;
|
transition: background .15s, color .15s, border-color .15s;
|
||||||
}
|
}
|
||||||
.pager-btn:hover, .pager-num:hover { background: #e9ecef; text-decoration: none; color: #212529; }
|
|
||||||
|
.pager-btn:hover,
|
||||||
|
.pager-num:hover {
|
||||||
|
background: #e9ecef;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #212529;
|
||||||
|
}
|
||||||
|
|
||||||
.pager-num.active {
|
.pager-num.active {
|
||||||
background: #0d6efd;
|
background: #0d6efd;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border-color: #0d6efd;
|
border-color: #0d6efd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-btn.disabled {
|
.pager-btn.disabled {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
opacity: .4;
|
opacity: .4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pager-dots {
|
.pager-dots {
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
color: #adb5bd;
|
color: #adb5bd;
|
||||||
@@ -1179,9 +1217,9 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
<i class="fas fa-cogs"></i> Actions
|
<i class="fas fa-cogs"></i> Actions
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
<?php if ((Auth::user()->hasRole('Admin'))) : ?>
|
|
||||||
<li><a class="dropdown-item export-all-lims-btn" href="#"><i class="fas fa-upload" style="color: #eb0b0b;"></i>Export All</a></li>
|
<li><a class="dropdown-item export-all-lims-btn" href="#"><i class="fas fa-upload" style="color: #eb0b0b;"></i>Export All</a></li>
|
||||||
<?php endif; ?>
|
|
||||||
<li><a class="dropdown-item save-all-btn" href="#"><i class="fas fa-save" style="color: #28a745;"></i>Save All</a></li>
|
<li><a class="dropdown-item save-all-btn" href="#"><i class="fas fa-save" style="color: #28a745;"></i>Save All</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -1208,6 +1246,7 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div id="partsModalContainer"></div>
|
<div id="partsModalContainer"></div>
|
||||||
|
<div id="analysisModalContainer"></div>
|
||||||
<div id="annotationsModalContainer"></div>
|
<div id="annotationsModalContainer"></div>
|
||||||
<?php include 'photos_functions.php'; ?>
|
<?php include 'photos_functions.php'; ?>
|
||||||
</div>
|
</div>
|
||||||
@@ -1218,7 +1257,12 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
<a href="javaScript:;" class="back-to-top"><i class='bx bxs-up-arrow-alt'></i></a>
|
<a href="javaScript:;" class="back-to-top"><i class='bx bxs-up-arrow-alt'></i></a>
|
||||||
<?php include('include/footer.php'); ?>
|
<?php include('include/footer.php'); ?>
|
||||||
</div>
|
</div>
|
||||||
<style>.btn i { margin-top: 0 !important; margin-bottom: 0 !important; }</style>
|
<style>
|
||||||
|
.btn i {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<?php include('jsinclude.php'); ?>
|
<?php include('jsinclude.php'); ?>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/5.3.1/fabric.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/5.3.1/fabric.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.js"></script>
|
||||||
@@ -1231,6 +1275,7 @@ window.gridMeta = <?= json_encode($gridMeta, JSON_UNESCAPED_UNICODE | JSON_UNESC
|
|||||||
<script src="photos.js"></script>
|
<script src="photos.js"></script>
|
||||||
<script src="annotationsModal.js"></script>
|
<script src="annotationsModal.js"></script>
|
||||||
<script src="partsTable.js"></script>
|
<script src="partsTable.js"></script>
|
||||||
|
<script src="analysisModal.js"></script>
|
||||||
|
|
||||||
<div class="modal fade" id="exportConfirmModal" tabindex="-1" aria-labelledby="exportConfirmModalLabel" aria-hidden="true">
|
<div class="modal fade" id="exportConfirmModal" tabindex="-1" aria-labelledby="exportConfirmModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
|
|||||||
@@ -760,7 +760,7 @@
|
|||||||
{
|
{
|
||||||
"IdSchemaCustomFields": 182,
|
"IdSchemaCustomFields": 182,
|
||||||
"ConteggioClienti": 0,
|
"ConteggioClienti": 0,
|
||||||
"Nome": "Ralph Lauren - All testing V.6",
|
"Nome": "Ralph Lauren - All testing V.10",
|
||||||
"Descrizione": "AGGIORNAMENTO AL 16\/03\/2026 per estrazione fatturazione"
|
"Descrizione": "AGGIORNAMENTO AL 16\/03\/2026 per estrazione fatturazione"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -876,6 +876,12 @@
|
|||||||
"ConteggioClienti": 0,
|
"ConteggioClienti": 0,
|
||||||
"Nome": "ROSSIMODA",
|
"Nome": "ROSSIMODA",
|
||||||
"Descrizione": "Per tutti i campioni di ROSSIMODA\r\n\r\n"
|
"Descrizione": "Per tutti i campioni di ROSSIMODA\r\n\r\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdSchemaCustomFields": 202,
|
||||||
|
"ConteggioClienti": 0,
|
||||||
|
"Nome": "LIMS-CIM - MAX MARA",
|
||||||
|
"Descrizione": "Schema per MAX MARA scambio dati Database"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -2016,6 +2016,51 @@ function resolveFixedValue(string $key, $val, array $fixedLookup): string {
|
|||||||
el.addEventListener('change', () => el.classList.toggle('has-value', el.value.trim() !== ''));
|
el.addEventListener('change', () => el.classList.toggle('has-value', el.value.trim() !== ''));
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
// ── Column resize ──
|
||||||
|
(function() {
|
||||||
|
const resizers = document.querySelectorAll('.resizer');
|
||||||
|
let currentResizer = null, startX = 0, startWidth = 0, columnIndex = null;
|
||||||
|
|
||||||
|
function resize(e) {
|
||||||
|
if (!currentResizer || columnIndex === null) return;
|
||||||
|
const newWidth = Math.max(80, startWidth + (e.pageX - startX));
|
||||||
|
const sel = '[data-index="' + columnIndex + '"]';
|
||||||
|
const header = document.querySelector('.grid-header' + sel);
|
||||||
|
if (header) header.style.flex = '0 0 ' + newWidth + 'px';
|
||||||
|
const topCell = document.querySelector('.grid-top .grid-cell' + sel);
|
||||||
|
if (topCell) topCell.style.flex = '0 0 ' + newWidth + 'px';
|
||||||
|
document.querySelectorAll('.grid-row .grid-cell' + sel).forEach(function(cell) {
|
||||||
|
cell.style.flex = '0 0 ' + newWidth + 'px';
|
||||||
|
});
|
||||||
|
var filterCell = document.querySelector('#gridFilterRow > .grid-cell:nth-child(' + (parseInt(columnIndex, 10) + 1) + ')');
|
||||||
|
if (filterCell) filterCell.style.flex = '0 0 ' + newWidth + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopResize() {
|
||||||
|
if (currentResizer) {
|
||||||
|
document.removeEventListener('mousemove', resize);
|
||||||
|
document.removeEventListener('mouseup', stopResize);
|
||||||
|
currentResizer = null;
|
||||||
|
columnIndex = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resizers.forEach(function(resizer) {
|
||||||
|
resizer.addEventListener('mousedown', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
currentResizer = this;
|
||||||
|
var header = this.closest('.grid-header');
|
||||||
|
if (!header) return;
|
||||||
|
columnIndex = header.getAttribute('data-index');
|
||||||
|
startX = e.pageX;
|
||||||
|
startWidth = header.offsetWidth;
|
||||||
|
document.addEventListener('mousemove', resize);
|
||||||
|
document.addEventListener('mouseup', stopResize);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user