Browse Source

Update success message to include the filename when generating a file from URL

node10
Onja 11 months ago
parent
commit
56eaced508
  1. 14
      src/assets/js/main.js
  2. 2
      src/models/file.js
  3. 5
      src/routes/index.js
  4. 6
      src/services/file.js

14
src/assets/js/main.js

@ -36,7 +36,7 @@ const sendRequest = (url, data) => {
type: 'POST', type: 'POST',
data: data, data: data,
success: function(data, textStatus, jqXHR) { success: function(data, textStatus, jqXHR) {
resolve({ message: 'Fichier généré' }); resolve(data);
}, },
error: function(jqXHR, textStatus, errorThrown) { error: function(jqXHR, textStatus, errorThrown) {
reject( new Error('Erreur lors de la requête Ajax : ' + jqXHR.responseText) ); reject( new Error('Erreur lors de la requête Ajax : ' + jqXHR.responseText) );
@ -98,6 +98,11 @@ const initSubmitForm = () => {
toastr.success(response.message); toastr.success(response.message);
$submitBtn.prop('disabled', false); $submitBtn.prop('disabled', false);
$spinner.addClass('d-none'); $spinner.addClass('d-none');
if ( response.generated ) {
$form__result.removeClass('d-none');
$form__result.find('a').attr('href', `/csv/${response.generated}`)
$form__result.find('a').html(response.generated);
}
}) })
.catch((error) => { .catch((error) => {
toastr.error(error.message); toastr.error(error.message);
@ -138,13 +143,6 @@ const initSocket = () => {
return; return;
} }
if (eventName === 'parse.end' && data.generated) {
const $form__result = $('#form__result');
$form__result.removeClass('d-none');
$form__result.find('a').attr('href', `/csv/${data.generated}`)
$form__result.find('a').html(data.generated);
}
toastr.info(data.message); toastr.info(data.message);
}); });
} }

2
src/models/file.js

@ -215,7 +215,7 @@ class File {
.on('end', () => { .on('end', () => {
// Emit a parse.end event with the url and filepath // Emit a parse.end event with the url and filepath
fileStream.close(); fileStream.close();
resolve(this.generatedpath); resolve(path.basename(this.generatedpath));
emitter.emit('parse.end', { url: this.url, filepath: this.filepath, count: count - 1, generated: path.basename(this.generatedpath) }); emitter.emit('parse.end', { url: this.url, filepath: this.filepath, count: count - 1, generated: path.basename(this.generatedpath) });
}); });
}); });

5
src/routes/index.js

@ -121,9 +121,10 @@ router.post('/', function(req, res, next) {
} }
fileService.parseFromUrl(url, columns) fileService.parseFromUrl(url, columns)
.then((filepath) => { .then((filename) => {
res.send({ res.send({
success: true generated: filename,
message: 'Fichier généré avec success'
}) })
}) })
.catch(err => { .catch(err => {

6
src/services/file.js

@ -30,9 +30,9 @@ class FileService {
const filepath = await file.download(); const filepath = await file.download();
return file.parse(columns) return file.parse(columns)
.then((filepath) => { .then((filename) => {
emitter.emit('parseFromUrl.end', { url, columns, filepath }); emitter.emit('parseFromUrl.end', { url, columns, filename });
return filepath; return filename;
}) })
.catch((err) => { .catch((err) => {
emitter.emit('parseFromUrl.error', { url, columns, error: err.message }); emitter.emit('parseFromUrl.error', { url, columns, error: err.message });

Loading…
Cancel
Save