130 lines
4.1 KiB
JavaScript
130 lines
4.1 KiB
JavaScript
|
const backend_api = {
|
||
|
'prod': '/zetikettes/srv/',
|
||
|
'dev': '/zetikettes.dev/srv/',
|
||
|
}[config];
|
||
|
|
||
|
const params = [
|
||
|
['dluo', 'DLUO', true],
|
||
|
['lot', 'Nº de lot', true],
|
||
|
['qty', 'Poids net (g)', true],
|
||
|
['teneur', 'Teneur en fruits (%)', false],
|
||
|
['fruit', 'Quantité de fruits pour 100g (g)', false],
|
||
|
]
|
||
|
|
||
|
function post() {
|
||
|
const lemot = $('input[type=password]').val();
|
||
|
const formdata = new FormData($('form')[0]);
|
||
|
formdata.append('lemotdepasse', lemot);
|
||
|
$.ajax({
|
||
|
url: backend_api + `newtikette`,
|
||
|
type: 'POST',
|
||
|
data: formdata,
|
||
|
|
||
|
contentType: false,
|
||
|
processData: false,
|
||
|
|
||
|
xhr: function () {
|
||
|
var myXhr = $.ajaxSettings.xhr();
|
||
|
if (myXhr.upload) {
|
||
|
// For handling the progress of the upload
|
||
|
myXhr.upload.addEventListener('progress', function (e) {
|
||
|
if (e.lengthComputable) {
|
||
|
$('progress').attr({
|
||
|
value: e.loaded,
|
||
|
max: e.total,
|
||
|
});
|
||
|
}
|
||
|
}, false);
|
||
|
}
|
||
|
return myXhr;
|
||
|
}
|
||
|
})
|
||
|
.then(data => {
|
||
|
console.log(data);
|
||
|
})
|
||
|
.catch(err => {
|
||
|
console.log(err);
|
||
|
if (err.status == 403) {
|
||
|
M.toast({html: 'access denied'});
|
||
|
} else if (err.status == 500) {
|
||
|
M.toast({html: 'server error'});
|
||
|
}
|
||
|
})
|
||
|
.always(() => {
|
||
|
$('.progress').hide();
|
||
|
$('.btn').removeClass('disabled');
|
||
|
});
|
||
|
}
|
||
|
|
||
|
$(document).ready(async () => {
|
||
|
const appbody = $("#appbody");
|
||
|
const block = $('<form class="section">');
|
||
|
block.append($(`<div class="input-field"><label class="active">Title</label>
|
||
|
<input type="text" name="title" value="Gelée de brandade aux cêpes biou">`));
|
||
|
block.append($(`<div class="input-field"><label class="active">
|
||
|
<input type="checkbox" name="landscape"><span>landscape</span></label>`));
|
||
|
const subst = $('<div class="section"><label class="active">Substitutions</label><p></p>');
|
||
|
for (let param of params) {
|
||
|
subst.append($(`<div><label class="active"><input type="checkbox" name="${param}" ${param[2] ? 'checked': ''}>
|
||
|
<span>\${${param[0]}}: ${param[1]}</span></label>`));
|
||
|
}
|
||
|
block.append(subst);
|
||
|
|
||
|
block.append(`<div class="file-field input-field">
|
||
|
<div class="btn">
|
||
|
<span>File</span>
|
||
|
<input type="file" name="sticker" accept=".svg">
|
||
|
</div>
|
||
|
<div class="file-path-wrapper">
|
||
|
<input class="file-path validate" type="text" placeholder="Template .svg file">
|
||
|
</div>
|
||
|
`)
|
||
|
|
||
|
const loader = $('<div class="progress"><div class="determinate"></div></div>')
|
||
|
.hide();
|
||
|
|
||
|
let setup = false;
|
||
|
|
||
|
const action = $('<div class="section">')
|
||
|
.append($('<a class="btn">add newtikette<a>')
|
||
|
.click(() => {
|
||
|
if (!setup) {
|
||
|
setup = true;
|
||
|
$('input[type=password]').on('keydown', e => {
|
||
|
if (e.keyCode == 13 && !e.repeat) {
|
||
|
$('.modal').modal('close');
|
||
|
post();
|
||
|
}
|
||
|
});
|
||
|
$("#pushgo").click(() => { post(); });
|
||
|
}
|
||
|
|
||
|
$('.modal').modal('open');
|
||
|
$('input[type=password]').focus();
|
||
|
|
||
|
loader.show();
|
||
|
$('.btn').addClass("disabled");
|
||
|
$('.modal-close').removeClass("disabled");
|
||
|
|
||
|
})
|
||
|
.append(loader));
|
||
|
|
||
|
const lemotdepasse = $(`
|
||
|
<div id="modal1" class="modal">
|
||
|
<div class="modal-content">
|
||
|
<h4>A lemotdepasse is needed</h4>
|
||
|
<div class="input-field"><label class="active">lemotdepasse</label>
|
||
|
<input type="password">
|
||
|
</div>
|
||
|
<div class="modal-footer">
|
||
|
<a class="btn modal-close" id="pushgo">go</a>
|
||
|
</div>
|
||
|
`);
|
||
|
|
||
|
appbody
|
||
|
.append(lemotdepasse)
|
||
|
.append(block)
|
||
|
.append(action);
|
||
|
|
||
|
$(".modal").modal();
|
||
|
});
|