mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-25 19:04:18 +00:00
Check if corpus is exportable before exporting it
This commit is contained in:
parent
a52db602d9
commit
4bf456d8ef
@ -28,7 +28,15 @@ corpus_analysis_clients = {}
|
|||||||
@socketio_login_required
|
@socketio_login_required
|
||||||
def export_corpus(corpus_id):
|
def export_corpus(corpus_id):
|
||||||
# TODO: This should not be get_or_404 here - Socket.IO != HTTP request
|
# TODO: This should not be get_or_404 here - Socket.IO != HTTP request
|
||||||
corpus = Corpus.query.get_or_404(corpus_id)
|
corpus = Corpus.query.get(corpus_id)
|
||||||
|
if corpus is None:
|
||||||
|
response = {'code': 404, 'msg': 'Not found'}
|
||||||
|
socketio.emit('export_corpus', response, room=request.sid)
|
||||||
|
return
|
||||||
|
if corpus.status not in ['prepared', 'start analysis', 'stop analysis']:
|
||||||
|
response = {'code': 412, 'msg': 'Precondition Failed'}
|
||||||
|
socketio.emit('export_corpus', response, room=request.sid)
|
||||||
|
return
|
||||||
# delete old corpus archive if it exists/has been build before
|
# delete old corpus archive if it exists/has been build before
|
||||||
if corpus.archive_file is not None and os.path.isfile(corpus.archive_file):
|
if corpus.archive_file is not None and os.path.isfile(corpus.archive_file):
|
||||||
os.remove(corpus.archive_file)
|
os.remove(corpus.archive_file)
|
||||||
|
@ -79,6 +79,9 @@ class CorpusDisplay extends RessourceDisplay {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let element of this.displayElement.querySelectorAll('.corpus-status')) {this.setElement(element, status);}
|
for (let element of this.displayElement.querySelectorAll('.corpus-status')) {this.setElement(element, status);}
|
||||||
|
for (let exportCorpusTriggerElement of this.displayElement.querySelectorAll('.export-corpus-trigger')) {
|
||||||
|
exportCorpusTriggerElement.classList.toggle('disabled', !['prepared', 'start analysis', 'stop analysis'].includes(status));
|
||||||
|
}
|
||||||
for (let element of this.displayElement.querySelectorAll('.status')) {element.dataset.status = status;}
|
for (let element of this.displayElement.querySelectorAll('.status')) {element.dataset.status = status;}
|
||||||
for (let element of this.displayElement.querySelectorAll('.status-spinner')) {
|
for (let element of this.displayElement.querySelectorAll('.status-spinner')) {
|
||||||
if (['submitted', 'queued', 'running', 'canceling', 'start analysis', 'stop analysis'].includes(status)) {
|
if (['submitted', 'queued', 'running', 'canceling', 'start analysis', 'stop analysis'].includes(status)) {
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
<div class="card-action right-align">
|
<div class="card-action right-align">
|
||||||
<a class="analyse-corpus-trigger btn disabled waves-effect waves-light" href="{{ url_for('corpora.analyse_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">search</i>Analyze</a>
|
<a class="analyse-corpus-trigger btn disabled waves-effect waves-light" href="{{ url_for('corpora.analyse_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">search</i>Analyze</a>
|
||||||
<a class="btn build-corpus-trigger disabled waves-effect waves-light" href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">build</i>Build</a>
|
<a class="btn build-corpus-trigger disabled waves-effect waves-light" href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">build</i>Build</a>
|
||||||
<a class="btn export-corpus-trigger waves-effect waves-light"><i class="material-icons left">import_export</i>Export</a>
|
<a class="btn disabled export-corpus-trigger waves-effect waves-light"><i class="material-icons left">import_export</i>Export</a>
|
||||||
<a class="btn modal-trigger red waves-effect waves-light" data-target="delete-corpus-modal"><i class="material-icons left">delete</i>Delete</a>
|
<a class="btn modal-trigger red waves-effect waves-light" data-target="delete-corpus-modal"><i class="material-icons left">delete</i>Delete</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user