Skip to content
Snippets Groups Projects
Commit 611bb6ef authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Change RessourceList

parent a2872699
No related branches found
No related tags found
No related merge requests found
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 { ...@@ -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,32 +69,53 @@ RessourceList.dataMapper = { ...@@ -67,32 +69,53 @@ RessourceList.dataMapper = {
title: job.title}) title: job.title})
}; };
RessourceList.options = { RessourceList.options = {
item: `<tr> common: {page: 4, pagination: {innerWindow: 8, outerWindow: 1}},
<td> corpus: {item: `<tr>
<a class="btn-floating disabled"> <td>
<i class="material-icons service"></i> <a class="btn-floating disabled">
</a> <i class="material-icons service">book</i>
</td> </a>
<td> </td>
<b class="title"></b><br> <td>
<i class="description"></i> <b class="title"></b><br>
</td> <i class="description"></i>
<td> </td>
<span class="badge new status" data-badge-caption=""></span> <td>
</td> <span class="badge new status" data-badge-caption=""></span>
<td class="right-align"> </td>
<a class="btn-small link waves-effect waves-light">View<i class="material-icons right">send</i> <td class="right-align">
</td> <a class="btn-small edit-link waves-effect waves-light"><i class="material-icons">edit</i></a>
</tr>`, <a class="btn-small analyse-link waves-effect waves-light">Analyse<i class="material-icons right">search</i></a>
page: 4, </td>
pagination: {innerWindow: 8, outerWindow: 1}, </tr>`,
valueNames: ["creation_date", valueNames: ["creation_date", "description", "title",
"description", {data: ["id"]},
"title", {name: "analyse-link", attr: "href"},
{data: ["id"]}, {name: "edit-link", attr: "href"},
{name: "link", attr: "href"}, {name: "status", attr: "data-status"}]},
{name: "service", attr: "data-service"}, job: {item: `<tr>
{name: "status", attr: "data-status"}]}; <td>
<a class="btn-floating disabled">
<i class="material-icons service"></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 link waves-effect waves-light">View<i class="material-icons right">send</i></a>
</td>
</tr>`,
valueNames: ["creation_date", "description", "title",
{data: ["id"]},
{name: "link", attr: "href"},
{name: "service", attr: "data-service"},
{name: "status", attr: "data-status"}]}
};
class ResultList extends List { class ResultList extends List {
......
...@@ -103,8 +103,9 @@ ...@@ -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,85 +73,50 @@ ...@@ -73,85 +73,50 @@
<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">
<h4>Input and result files</h4>
</div>
<div class="col s12 m7">
<div class="card">
<div class="card-content">
<span class="card-title">Filewise</span>
<table class="highlight responsive-table">
<thead>
<tr>
<th>Filename</th>
<th>Download</th>
</tr>
</thead>
<tbody id="inputs">
{% 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>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<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"> <ul class="collapsible popout">
<div class="card"> <li>
<div class="card-content"> <div class="collapsible-header"><i class="material-icons">done</i>Result files</div>
<span class="card-title">Files</span> <div class="collapsible-body">
<table class="highlight responsive-table"> <table class="highlight responsive-table">
<thead> <thead>
<tr> <tr>
<th>Filename</th> <th>Bundlename</th>
<th>Download</th> <th>Download</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody id="results"></tbody>
{% for input in job.inputs %} </table>
<tr> </div>
<td id="input-{{ input.id }}-filename">{{ input.filename }}</td> </li>
<td id="input-{{ input.id }}-download"> <li>
<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) }}"> <div class="collapsible-header">
<i class="material-icons">file_download</i> <i class="material-icons">input</i>Input files
</a> </div>
</td> <div class="collapsible-body">
<td id="input-{{ input.id }}-results"></td> <table class="highlight responsive-table">
</tr> <thead>
{% endfor %} <tr>
</tbody> <th>Filename</th>
</table> <th>Download</th>
</div> </tr>
</div> </thead>
<tbody id="inputs">
{% 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>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</li>
</ul>
</div> </div>
......
...@@ -89,7 +89,8 @@ ...@@ -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 @@ ...@@ -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 %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment