mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-25 02:44:18 +00:00
Change RessourceList
This commit is contained in:
parent
a28726994c
commit
611bb6ef62
@ -1,7 +1,13 @@
|
|||||||
class RessourceList extends List {
|
class RessourceList extends List {
|
||||||
constructor(idOrElement, subscriberList, dataMapper=null, options={}) {
|
constructor(idOrElement, subscriberList, type, options={}) {
|
||||||
super(idOrElement, {...RessourceList.options, ...options});
|
if (!['corpus', 'job'].includes(type)) {
|
||||||
this.dataMapper = dataMapper;
|
console.error("Unknown Type!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super(idOrElement, {...RessourceList.options['common'],
|
||||||
|
...RessourceList.options[type],
|
||||||
|
...options});
|
||||||
|
this.type = type;
|
||||||
subscriberList.push(this);
|
subscriberList.push(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,19 +49,15 @@ class RessourceList extends List {
|
|||||||
|
|
||||||
|
|
||||||
addRessources(ressources) {
|
addRessources(ressources) {
|
||||||
if (this.dataMapper) {
|
this.add(ressources.map(x => RessourceList.dataMapper[this.type](x)));
|
||||||
this.add(ressources.map(x => this.dataMapper(x)));
|
|
||||||
} else {
|
|
||||||
this.add(ressources);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RessourceList.dataMapper = {
|
RessourceList.dataMapper = {
|
||||||
corpus: corpus => ({creation_date: corpus.creation_date,
|
corpus: corpus => ({creation_date: corpus.creation_date,
|
||||||
description: corpus.description,
|
description: corpus.description,
|
||||||
id: corpus.id,
|
id: corpus.id,
|
||||||
link: `/corpora/${corpus.id}`,
|
"analyse-link": `/corpora/${corpus.id}/analyse`,
|
||||||
service: "corpus",
|
"edit-link": `/corpora/${corpus.id}`,
|
||||||
status: corpus.status,
|
status: corpus.status,
|
||||||
title: corpus.title}),
|
title: corpus.title}),
|
||||||
job: job => ({creation_date: job.creation_date,
|
job: job => ({creation_date: job.creation_date,
|
||||||
@ -67,7 +69,31 @@ RessourceList.dataMapper = {
|
|||||||
title: job.title})
|
title: job.title})
|
||||||
};
|
};
|
||||||
RessourceList.options = {
|
RessourceList.options = {
|
||||||
item: `<tr>
|
common: {page: 4, pagination: {innerWindow: 8, outerWindow: 1}},
|
||||||
|
corpus: {item: `<tr>
|
||||||
|
<td>
|
||||||
|
<a class="btn-floating disabled">
|
||||||
|
<i class="material-icons service">book</i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<b class="title"></b><br>
|
||||||
|
<i class="description"></i>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge new status" data-badge-caption=""></span>
|
||||||
|
</td>
|
||||||
|
<td class="right-align">
|
||||||
|
<a class="btn-small edit-link waves-effect waves-light"><i class="material-icons">edit</i></a>
|
||||||
|
<a class="btn-small analyse-link waves-effect waves-light">Analyse<i class="material-icons right">search</i></a>
|
||||||
|
</td>
|
||||||
|
</tr>`,
|
||||||
|
valueNames: ["creation_date", "description", "title",
|
||||||
|
{data: ["id"]},
|
||||||
|
{name: "analyse-link", attr: "href"},
|
||||||
|
{name: "edit-link", attr: "href"},
|
||||||
|
{name: "status", attr: "data-status"}]},
|
||||||
|
job: {item: `<tr>
|
||||||
<td>
|
<td>
|
||||||
<a class="btn-floating disabled">
|
<a class="btn-floating disabled">
|
||||||
<i class="material-icons service"></i>
|
<i class="material-icons service"></i>
|
||||||
@ -81,18 +107,15 @@ RessourceList.options = {
|
|||||||
<span class="badge new status" data-badge-caption=""></span>
|
<span class="badge new status" data-badge-caption=""></span>
|
||||||
</td>
|
</td>
|
||||||
<td class="right-align">
|
<td class="right-align">
|
||||||
<a class="btn-small link waves-effect waves-light">View<i class="material-icons right">send</i>
|
<a class="btn-small link waves-effect waves-light">View<i class="material-icons right">send</i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>`,
|
</tr>`,
|
||||||
page: 4,
|
valueNames: ["creation_date", "description", "title",
|
||||||
pagination: {innerWindow: 8, outerWindow: 1},
|
|
||||||
valueNames: ["creation_date",
|
|
||||||
"description",
|
|
||||||
"title",
|
|
||||||
{data: ["id"]},
|
{data: ["id"]},
|
||||||
{name: "link", attr: "href"},
|
{name: "link", attr: "href"},
|
||||||
{name: "service", attr: "data-service"},
|
{name: "service", attr: "data-service"},
|
||||||
{name: "status", attr: "data-status"}]};
|
{name: "status", attr: "data-status"}]}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class ResultList extends List {
|
class ResultList extends List {
|
||||||
|
@ -103,8 +103,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var corpusList = new RessourceList("corpora", nopaque.foreignCorporaSubscribers, RessourceList.dataMapper.corpus);
|
var corpusList = new RessourceList("corpora", nopaque.foreignCorporaSubscribers, "corpus");
|
||||||
var jobList = new RessourceList("jobs", nopaque.foreignJobsSubscribers, RessourceList.dataMapper.job);
|
var jobList = new RessourceList("jobs", nopaque.foreignJobsSubscribers,
|
||||||
|
"job");
|
||||||
nopaque.socket.emit("foreign_user_ressources_init", {{ user.id }});
|
nopaque.socket.emit("foreign_user_ressources_init", {{ user.id }});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -73,16 +73,27 @@
|
|||||||
<a data-target="delete-job-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete Job</a>
|
<a data-target="delete-job-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete Job</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col s12">
|
<ul class="collapsible popout">
|
||||||
<h4>Input and result files</h4>
|
<li>
|
||||||
|
<div class="collapsible-header"><i class="material-icons">done</i>Result files</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<table class="highlight responsive-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Bundlename</th>
|
||||||
|
<th>Download</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="results"></tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</li>
|
||||||
<div class="col s12 m7">
|
<li>
|
||||||
<div class="card">
|
<div class="collapsible-header">
|
||||||
<div class="card-content">
|
<i class="material-icons">input</i>Input files
|
||||||
<span class="card-title">Filewise</span>
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
<table class="highlight responsive-table">
|
<table class="highlight responsive-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -104,54 +115,8 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
|
|
||||||
<div class="col s12 m5">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="card-title">Bundled</span>
|
|
||||||
<table class="highlight responsive-table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Bundlename</th>
|
|
||||||
<th>Download</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="results"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col s12 hide">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="card-title">Files</span>
|
|
||||||
<table class="highlight responsive-table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Filename</th>
|
|
||||||
<th>Download</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for input in job.inputs %}
|
|
||||||
<tr>
|
|
||||||
<td id="input-{{ input.id }}-filename">{{ input.filename }}</td>
|
|
||||||
<td id="input-{{ input.id }}-download">
|
|
||||||
<a class="waves-effect waves-light btn-small" download href="{{ url_for('jobs.download_job_input', job_id=job.id, job_input_id=input.id) }}">
|
|
||||||
<i class="material-icons">file_download</i>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td id="input-{{ input.id }}-results"></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,7 +89,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var corpusList = new RessourceList("corpora", nopaque.corporaSubscribers, RessourceList.dataMapper.corpus);
|
var corpusList = new RessourceList("corpora", nopaque.corporaSubscribers,
|
||||||
var jobList = new RessourceList("jobs", nopaque.jobsSubscribers, RessourceList.dataMapper.job);
|
"corpus");
|
||||||
|
var jobList = new RessourceList("jobs", nopaque.jobsSubscribers, "job");
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -38,7 +38,6 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var corpusList = new RessourceList("corpora", nopaque.corporaSubscribers,
|
var corpusList = new RessourceList("corpora", nopaque.corporaSubscribers,
|
||||||
RessourceList.dataMapper.corpus,
|
"corpus", {page: 10});
|
||||||
{page: 10});
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user