OpenXE/classes/Modules/EanGenerator/www/js/eangenerator-number-fetcher.js
2021-05-21 08:49:41 +02:00

79 lines
2.4 KiB
JavaScript

/**
* Script erweitert das "Artikel bearbeiten"-Formular um einen "EAN laden"-Button
*
* - "EAN laden"-Button wird neben dem EAN-Nummer-Eingabefeld platziert
* - Beim Klick auf den Button wird die nächste frei EAN-Nummer aus dem EAN-Pool abgerufen und in
* das EAN-Nummer-Feld übernommen.
* - Beim Abrufen der EAN-Nummer wird diese automatisch als "vergeben" markiert.
* - Sollte das Abrufen der EAN-Nummer fehlschlagen wird eine Alert-Box angezeigt.
*/
var EangeneratorNumberFetcher = (function ($) {
'use strict';
var me = {
storage: {
$table: null,
dataTable: null,
$editDialog: null
},
/**
* @return void
*/
init: function () {
var $eanInput = $('input#ean');
if ($eanInput.length !== 1) {
return;
}
// "EAN laden" Button an EAN-Eingabefeld hängen
var $eanWrapper = $eanInput.first().parent();
var $eanButton = me.createEanFetcherButton();
$eanButton.appendTo($eanWrapper);
},
/**
* @return {jQuery}
*/
createEanFetcherButton: function () {
var $eanButton = $('<button type="button">EAN laden</button>');
$eanButton.on('click', function (e) {
e.preventDefault();
var $eanInput = $('input#ean');
$.ajax({
url: 'index.php?module=eangenerator&action=edit&cmd=fetch-ean-number',
data: {},
method: 'post',
dataType: 'json',
success: function (data) {
if (data.success === true) {
$eanInput.val(data.data.ean_number);
var msg =
'Die EAN-Nummer "' + data.data.ean_number + '" wurde aus dem EAN-Pool gezogen '+
'und als vergeben markiert. Bitte speichern Sie den Artikel noch.';
alert(msg);
}
if (data.success === false) {
alert('Fehler: ' + data.error);
}
}
});
});
return $eanButton;
}
};
return {
init: me.init
};
})(jQuery);
$(document).ready(function () {
EangeneratorNumberFetcher.init();
});