diff --git a/app/corpora/views.py b/app/corpora/views.py index 07872c8f..6d78c8b4 100644 --- a/app/corpora/views.py +++ b/app/corpora/views.py @@ -26,13 +26,12 @@ def add_corpus(): try: os.makedirs(dir) except OSError: - flash('[ERROR]: Could not add corpus!') + flash('[ERROR]: Could not add corpus!', 'corpus') corpus.delete() else: - corpus_url = url_for('corpora.corpus', corpus_id=corpus.id) - flash('book' - '[{}] added'.format(corpus_url, - corpus.title)) + url = url_for('corpora.corpus', corpus_id=corpus.id) + flash('[{}] added'.format(url, corpus.title), + 'corpus') return redirect(url_for('corpora.corpus', corpus_id=corpus.id)) return render_template('corpora/add_corpus.html.j2', add_corpus_form=add_corpus_form, @@ -82,7 +81,7 @@ def delete_corpus(corpus_id): if not (corpus.creator == current_user or current_user.is_administrator()): abort(403) tasks.delete_corpus(corpus_id) - flash('Corpus deleted!') + flash('Corpus deleted!', 'corpus') return redirect(url_for('main.dashboard')) @@ -121,7 +120,7 @@ def add_corpus_file(corpus_id): db.session.add(corpus_file) corpus.status = 'unprepared' db.session.commit() - flash('Corpus file added!') + flash('Corpus file added!', 'corpus') return make_response( {'redirect_url': url_for('corpora.corpus', corpus_id=corpus.id)}, 201) @@ -141,7 +140,7 @@ def delete_corpus_file(corpus_id, corpus_file_id): or current_user.is_administrator()): abort(403) tasks.delete_corpus_file(corpus_file_id) - flash('Corpus file deleted!') + flash('Corpus file deleted!', 'corpus') return redirect(url_for('corpora.corpus', corpus_id=corpus_id)) @@ -188,7 +187,7 @@ def edit_corpus_file(corpus_id, corpus_file_id): corpus_file.title = edit_corpus_file_form.title.data corpus.status = 'unprepared' db.session.commit() - flash('Corpus file edited!') + flash('Corpus file edited!', 'corpus') return redirect(url_for('corpora.corpus', corpus_id=corpus_id)) # If no form is submitted or valid, fill out fields with current values edit_corpus_file_form.address.data = corpus_file.address @@ -217,7 +216,7 @@ def prepare_corpus(corpus_id): abort(403) if corpus.files.all(): tasks.build_corpus(corpus_id) - flash('Corpus gets build now.') + flash('Corpus gets build now.', 'corpus') else: - flash('Can not build corpus, please add corpus file(s).') + flash('Can not build corpus, please add corpus file(s).', 'corpus') return redirect(url_for('corpora.corpus', corpus_id=corpus_id)) diff --git a/app/jobs/views.py b/app/jobs/views.py index fe5ac9b2..1708f1c7 100644 --- a/app/jobs/views.py +++ b/app/jobs/views.py @@ -23,7 +23,7 @@ def delete_job(job_id): if not (job.creator == current_user or current_user.is_administrator()): abort(403) tasks.delete_job(job_id) - flash('Job has been deleted!') + flash('Job has been deleted!', 'job') return redirect(url_for('main.dashboard')) diff --git a/app/services/views.py b/app/services/views.py index 688254d3..3c8d0b08 100644 --- a/app/services/views.py +++ b/app/services/views.py @@ -61,7 +61,7 @@ def service(service): os.makedirs(absolut_dir) except OSError: job.delete() - flash('Internal Server Error') + flash('Internal Server Error', 'job') return make_response({'redirect_url': url_for('services.service', service=service)}, 500) @@ -74,9 +74,8 @@ def service(service): db.session.add(job_input) job.status = 'submitted' db.session.commit() - job_url = url_for('jobs.job', job_id=job.id) - flash('work' - '[{}] added'.format(job_url, job.title)) + url = url_for('jobs.job', job_id=job.id) + flash('[{}] added'.format(url, job.title), 'job') return make_response( {'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) return render_template('services/{}.html.j2'.format(service), diff --git a/app/static/js/nopaque.CorpusAnalysisClient.js b/app/static/js/nopaque.CorpusAnalysisClient.js index 268ba048..f5e701a7 100644 --- a/app/static/js/nopaque.CorpusAnalysisClient.js +++ b/app/static/js/nopaque.CorpusAnalysisClient.js @@ -44,7 +44,7 @@ class CorpusAnalysisClient { } } else { errorText = `Error ${response.payload.code} - ${response.payload.msg}`; - nopaque.flash("error", errorText); + nopaque.flash(errorText, "error"); if (this.displays.query.errorContainer != undefined) { this.displays.query.errorContainer.innerHTML = `
`+ `error ${errorText}
`; diff --git a/app/static/js/nopaque.js b/app/static/js/nopaque.js index d2c6ddbf..2a689a75 100644 --- a/app/static/js/nopaque.js +++ b/app/static/js/nopaque.js @@ -58,7 +58,7 @@ nopaque.socket.init = function() { pathArray = operation.path.split("/").slice(1); if (operation.op === "replace" && pathArray[1] === "status") { if (nopaque.user.settings.jobStatusSiteNotifications === "end" && !["complete", "failed"].includes(operation.value)) {continue;} - nopaque.flash(`work[${nopaque.jobs[pathArray[0]].title}] New status: ${operation.value}`); + nopaque.flash(`[${nopaque.jobs[pathArray[0]].title}] New status: ${operation.value}`, "job"); } } } @@ -184,23 +184,28 @@ nopaque.flash = function() { message = arguments[0]; break; case 2: - category = arguments[0]; - message = arguments[1]; + message = arguments[0]; + category = arguments[1]; break; default: - console.error("Usage: nopaque.flash(message) or nopaque.flash(category, message)") + console.error("Usage: nopaque.flash(message) or nopaque.flash(message, category)") } switch (category) { + case "corpus": + message = `book${message}`; + break; case "error": - classes = "red"; + message = `error${message}`; + break; + case "job": + message = `work${message}`; break; default: - classes = ""; + message = `notifications${message}`; } - toast = M.toast({classes: classes, - html: `${message} + toast = M.toast({html: `${message} `}); @@ -225,7 +230,8 @@ document.addEventListener("DOMContentLoaded", function() { nopaque.Forms.init(); nopaque.Navigation.init(); while (nopaque.flashedMessages.length) { - nopaque.flash(...nopaque.flashedMessages.shift()); + flashedMessage = nopaque.flashedMessages.shift(); + nopaque.flash(flashedMessage[1], flashedMessage[0]); } if (nopaque.user.isAuthenticated) { if (nopaque.user.settings.darkMode) { diff --git a/app/static/js/nopaque.lists.js b/app/static/js/nopaque.lists.js index d62a11d3..c569c76d 100644 --- a/app/static/js/nopaque.lists.js +++ b/app/static/js/nopaque.lists.js @@ -378,7 +378,7 @@ class ResultsList extends List { if (expertModeSwitchElement.checked) { this.expertModeOn("query-display"); // page holds new result rows, so add new tooltips } - nopaque.flash("Updated matches per page.") + nopaque.flash("Updated matches per page.", "corpus") } catch (e) { // console.log(e); // console.log("resultsList has no results right now."); @@ -394,7 +394,7 @@ class ResultsList extends List { let rc; try { if (event.type === "change") { - nopaque.flash("Updated context per match!"); + nopaque.flash("Updated context per match!", "corpus"); } } catch (e) { } finally {