fix: Freitext-Zeilen im Modal klickbar machen
Lines-Array wird jetzt gecacht für Click-Handler. Freitext-Zeilen zeigen '(Freitext)' statt Lagerbestand. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
5f9c522db2
commit
707d7f50a0
3 changed files with 11 additions and 5 deletions
|
|
@ -76,7 +76,7 @@ class modHandyBarcodeScanner extends DolibarrModules
|
||||||
$this->editor_squarred_logo = ''; // Must be image filename into the module/img directory followed with @modulename. Example: 'myimage.png@handybarcodescanner'
|
$this->editor_squarred_logo = ''; // Must be image filename into the module/img directory followed with @modulename. Example: 'myimage.png@handybarcodescanner'
|
||||||
|
|
||||||
// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated', 'experimental_deprecated' or a version string like 'x.y.z'
|
// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated', 'experimental_deprecated' or a version string like 'x.y.z'
|
||||||
$this->version = '5.3';
|
$this->version = '5.4';
|
||||||
// Url to the file with your last numberversion of this module
|
// Url to the file with your last numberversion of this module
|
||||||
//$this->url_last_version = 'http://www.example.com/versionmodule.txt';
|
//$this->url_last_version = 'http://www.example.com/versionmodule.txt';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1169,10 +1169,16 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cache für aktuelle Bestellzeilen (Modal)
|
||||||
|
let currentModalLines = [];
|
||||||
|
|
||||||
function renderOrderLinesInModal(lines, order, orderId) {
|
function renderOrderLinesInModal(lines, order, orderId) {
|
||||||
const content = document.getElementById('orders-modal-detail-content');
|
const content = document.getElementById('orders-modal-detail-content');
|
||||||
if (!content) return;
|
if (!content) return;
|
||||||
|
|
||||||
|
// Lines cachen für Click-Handler
|
||||||
|
currentModalLines = lines;
|
||||||
|
|
||||||
if (lines.length === 0) {
|
if (lines.length === 0) {
|
||||||
content.innerHTML = '<div class="no-orders">Keine Positionen</div>';
|
content.innerHTML = '<div class="no-orders">Keine Positionen</div>';
|
||||||
return;
|
return;
|
||||||
|
|
@ -1181,10 +1187,10 @@
|
||||||
const canEdit = order.status === 0;
|
const canEdit = order.status === 0;
|
||||||
|
|
||||||
content.innerHTML = lines.map(line => `
|
content.innerHTML = lines.map(line => `
|
||||||
<div class="order-line ${canEdit ? 'editable' : ''}" data-line-id="${line.id}" data-order-id="${orderId}">
|
<div class="order-line ${canEdit ? 'editable' : ''}" data-line-id="${line.id}" data-order-id="${orderId}" data-is-freetext="${line.is_freetext ? '1' : '0'}">
|
||||||
<div class="order-line-info">
|
<div class="order-line-info">
|
||||||
<div class="order-line-label">${escapeHtml(line.product_label)}</div>
|
<div class="order-line-label">${escapeHtml(line.product_label)}</div>
|
||||||
<div class="order-line-ref">${line.product_ref ? 'Ref: ' + escapeHtml(line.product_ref) : ''} ${line.stock > 0 ? '| Lager: ' + line.stock : ''}</div>
|
<div class="order-line-ref">${line.product_ref ? 'Ref: ' + escapeHtml(line.product_ref) : ''} ${line.is_freetext ? '(Freitext)' : (line.stock > 0 ? '| Lager: ' + line.stock : '')}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="order-line-qty">${line.qty}x</div>
|
<div class="order-line-qty">${line.qty}x</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -1195,7 +1201,7 @@
|
||||||
lineEl.addEventListener('click', function() {
|
lineEl.addEventListener('click', function() {
|
||||||
const lineId = parseInt(this.dataset.lineId);
|
const lineId = parseInt(this.dataset.lineId);
|
||||||
const oId = parseInt(this.dataset.orderId);
|
const oId = parseInt(this.dataset.orderId);
|
||||||
const line = lines.find(l => l.id === lineId);
|
const line = currentModalLines.find(l => l.id === lineId);
|
||||||
if (line) {
|
if (line) {
|
||||||
showLineEditDialogInModal(line, oId);
|
showLineEditDialogInModal(line, oId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
sw.js
2
sw.js
|
|
@ -1,5 +1,5 @@
|
||||||
// Service Worker for HandyBarcodeScanner PWA
|
// Service Worker for HandyBarcodeScanner PWA
|
||||||
const CACHE_NAME = 'scanner-v5.4';
|
const CACHE_NAME = 'scanner-v5.5';
|
||||||
const ASSETS = [
|
const ASSETS = [
|
||||||
'pwa.php',
|
'pwa.php',
|
||||||
'css/scanner.css',
|
'css/scanner.css',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue