mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +00:00
Rework notification system
This commit is contained in:
parent
b30382e605
commit
c67c033aec
@ -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('<i class="left material-icons">book</i>'
|
||||
'[<a href="{}">{}</a>] added'.format(corpus_url,
|
||||
corpus.title))
|
||||
url = url_for('corpora.corpus', corpus_id=corpus.id)
|
||||
flash('[<a href="{}">{}</a>] 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))
|
||||
|
@ -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'))
|
||||
|
||||
|
||||
|
@ -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('<i class="left material-icons">work</i>'
|
||||
'[<a href="{}">{}</a>] added'.format(job_url, job.title))
|
||||
url = url_for('jobs.job', job_id=job.id)
|
||||
flash('[<a href="{}">{}</a>] 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),
|
||||
|
@ -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 = `<p class="red-text">`+
|
||||
`<i class="material-icons tiny">error</i> ${errorText}</p>`;
|
||||
|
@ -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(`<i class="left material-icons">work</i>[<a href="/jobs/${pathArray[0]}">${nopaque.jobs[pathArray[0]].title}</a>] New status: ${operation.value}`);
|
||||
nopaque.flash(`[<a href="/jobs/${pathArray[0]}">${nopaque.jobs[pathArray[0]].title}</a>] 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 = `<i class="left material-icons">book</i>${message}`;
|
||||
break;
|
||||
case "error":
|
||||
classes = "red";
|
||||
message = `<i class="left material-icons red-text">error</i>${message}`;
|
||||
break;
|
||||
case "job":
|
||||
message = `<i class="left material-icons">work</i>${message}`;
|
||||
break;
|
||||
default:
|
||||
classes = "";
|
||||
message = `<i class="left material-icons">notifications</i>${message}`;
|
||||
}
|
||||
|
||||
toast = M.toast({classes: classes,
|
||||
html: `<span>${message}</span>
|
||||
toast = M.toast({html: `<span>${message}</span>
|
||||
<button data-action="close" class="btn-flat toast-action white-text">
|
||||
<i class="material-icons">close</i>
|
||||
</button>`});
|
||||
@ -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) {
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user