diff --git a/app/jobs/forms.py b/app/jobs/forms.py index 19958cf77ae0b2f7582a18d8506447b668964439..82e574b662291f93656302f56bc1cefe9028a151 100644 --- a/app/jobs/forms.py +++ b/app/jobs/forms.py @@ -67,7 +67,7 @@ class AddOCRJobForm(FlaskForm): ) -class AddMergeImagesJobForm(FlaskForm): +class AddSetupFilesJobForm(FlaskForm): description = StringField('Description', validators=[DataRequired(), Length(1, 255)]) submit = SubmitField() diff --git a/app/services/views.py b/app/services/views.py index 8541820227fa073693bbd201221ba1da898e170d..aa2cd4856ed5b20183f296d57992ac2d68139b5b 100644 --- a/app/services/views.py +++ b/app/services/views.py @@ -1,5 +1,5 @@ from app import db -from app.jobs.forms import AddNLPJobForm, AddOCRJobForm, AddMergeImagesJobForm +from app.jobs.forms import AddNLPJobForm, AddOCRJobForm, AddSetupFilesJobForm from app.models import Job, JobInput from flask import (abort, current_app, flash, make_response, render_template, url_for) @@ -10,9 +10,10 @@ import json import os -SERVICES = {'merge_images': {'name': 'Convert images', +SERVICES = {'corpus_analysis': {'name': 'Corpus analysis'}, + 'setup_files': {'name': 'Setup files', 'resources': {'mem_mb': 4096, 'n_cores': 4}, - 'add_job_form': AddMergeImagesJobForm}, + 'add_job_form': AddSetupFilesJobForm}, 'nlp': {'name': 'Natural Language Processing', 'resources': {'mem_mb': 4096, 'n_cores': 2}, 'add_job_form': AddNLPJobForm}, @@ -26,6 +27,9 @@ SERVICES = {'merge_images': {'name': 'Convert images', def service(service): if service not in SERVICES: abort(404) + if service == 'corpus_analysis': + return render_template('services/{}.html.j2'.format(service), + title=SERVICES[service]['name']) add_job_form = SERVICES[service]['add_job_form']() if add_job_form.is_submitted(): if not add_job_form.validate(): @@ -70,5 +74,6 @@ def service(service): return make_response( {'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) return render_template('services/{}.html.j2'.format(service), + roadmap=True, title=SERVICES[service]['name'], add_job_form=add_job_form) diff --git a/app/static/images/logo_-_dfg.gif b/app/static/images/logo_-_dfg.gif new file mode 100644 index 0000000000000000000000000000000000000000..68d87e6776e5725330775cbe6c770619d998fb86 Binary files /dev/null and b/app/static/images/logo_-_dfg.gif differ diff --git a/app/static/images/logo_-_sfb_1288.png b/app/static/images/logo_-_sfb_1288.png new file mode 100644 index 0000000000000000000000000000000000000000..debc14211cb33fde67caac611a659fc6535e8697 Binary files /dev/null and b/app/static/images/logo_-_sfb_1288.png differ diff --git a/app/static/images/logo_dfg.png b/app/static/images/logo_dfg.png deleted file mode 100644 index 410208cc34480ef6d0b35e4fb215e62f1fd8f6fd..0000000000000000000000000000000000000000 Binary files a/app/static/images/logo_dfg.png and /dev/null differ diff --git a/app/static/images/logo_sfb_1288.png b/app/static/images/logo_sfb_1288.png deleted file mode 100644 index 7239cc9d43b0260fae95fae7585e28536246cf9e..0000000000000000000000000000000000000000 Binary files a/app/static/images/logo_sfb_1288.png and /dev/null differ diff --git a/app/static/js/nopaque.js b/app/static/js/nopaque.js index af0ab0983bae341e6be5052d9af007924cd8f4b1..15b284c3f46b90008fedd079f1823eef04249ee5 100644 --- a/app/static/js/nopaque.js +++ b/app/static/js/nopaque.js @@ -80,11 +80,23 @@ nopaque.forms.init = function() { nopaque.navigation = {}; nopaque.navigation.init = function() { - for (let entry of document.querySelectorAll("#slide-out a:not(.subheader)")) { + var slideOutElement, tocElement; + + slideOutElement = document.getElementById("slide-out"); + for (let entry of slideOutElement.querySelectorAll("a:not(.subheader)")) { if (entry.href === window.location.href) { entry.parentNode.classList.add("active"); } } + tocElement = document.getElementById("roadmap"); + if (!tocElement) { + return + } + for (let entry of tocElement.querySelectorAll("a")) { + if (entry.href === window.location.href) { + entry.classList.add("active"); + } + } } diff --git a/app/static/js/nopaque.lists.js b/app/static/js/nopaque.lists.js index 41b0fad3c5efd797ff52128aad4ce6f5fe12fb44..5daaa43e7bb1ca91a9b54b92ece7479ee39dbafb 100644 --- a/app/static/js/nopaque.lists.js +++ b/app/static/js/nopaque.lists.js @@ -7,7 +7,8 @@ class RessourceList extends List { _init(ressources) { - this.addRessources(Object.values(ressources)); + this.add(Object.values(ressources)); + this.sort("creation_date", {order: "desc"}); } @@ -20,7 +21,7 @@ class RessourceList extends List { switch(operation.op) { case "add": if (pathArray.includes("results")) {break;} - this.addRessources([operation.value]); + this.add([operation.value]); break; case "remove": this.remove("id", pathArray[0]); @@ -41,27 +42,29 @@ class RessourceList extends List { } - addRessources(ressources) { + add(ressources) { if (this.dataMapper) { - this.add(ressources.map(x => this.dataMapper(x))); + super.add(ressources.map(x => this.dataMapper(x))); } else { - this.add(ressources); + super.add(ressources); } } } RessourceList.dataMapper = { - corpus: corpus => ({description: corpus.description, - id: corpus.id, - link: `/corpora/${corpus.id}`, - service: "corpus", - status: corpus.status, - title: corpus.title}), - job: job => ({description: job.description, - id: job.id, - link: `/jobs/${job.id}`, - service: job.service, - status: job.status, - title: job.title}) + corpus: corpus => ({creation_date: corpus.creation_date, + description: corpus.description, + id: corpus.id, + link: `/corpora/${corpus.id}`, + service: "corpus", + status: corpus.status, + title: corpus.title}), + job: job => ({creation_date: job.creation_date, + description: job.description, + id: job.id, + link: `/jobs/${job.id}`, + service: job.service, + status: job.status, + title: job.title}) }; RessourceList.options = { item: `<tr> @@ -83,7 +86,8 @@ RessourceList.options = { </tr>`, page: 4, pagination: {innerWindow: 8, outerWindow: 1}, - valueNames: ["description", + valueNames: ["creation_date", + "description", "title", {data: ["id"]}, {name: "link", attr: "href"}, diff --git a/app/templates/403.html.j2 b/app/templates/403.html.j2 index 5381a3def7e316e0d9dea29048f9659055b1854b..c70363337952c05ee007438160dbf0cf39d9b7d0 100644 --- a/app/templates/403.html.j2 +++ b/app/templates/403.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="page-header"> diff --git a/app/templates/404.html.j2 b/app/templates/404.html.j2 index 2e9e5e143a111b3dcf497ee683c7c56e1ff91af2..d25a448645c35a26530e9782147948a282fa8a5a 100644 --- a/app/templates/404.html.j2 +++ b/app/templates/404.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="page-header"> diff --git a/app/templates/500.html.j2 b/app/templates/500.html.j2 index d1314384f182c579a6b53e464c8157448df3f639..462492f7a2d72d544638635a03788a8aa3614792 100644 --- a/app/templates/500.html.j2 +++ b/app/templates/500.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="page-header"> diff --git a/app/templates/admin/edit_user.html.j2 b/app/templates/admin/edit_user.html.j2 index 055882a5a89874adc7d6e819a6570d72efc7e935..535b2cee033050112492f7dda37f2623b2358648 100644 --- a/app/templates/admin/edit_user.html.j2 +++ b/app/templates/admin/edit_user.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/admin/index.html.j2 b/app/templates/admin/index.html.j2 index 95b40db62dd5b1ebba01d2955a171b0d4544b3e1..e00720795430a7b9e8585c4324406365c5620103 100644 --- a/app/templates/admin/index.html.j2 +++ b/app/templates/admin/index.html.j2 @@ -1,4 +1,7 @@ -{% extends "full_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = True %} +{% set roadmap = False %} {% block page_content %} <div class="col s12"> diff --git a/app/templates/admin/user.html.j2 b/app/templates/admin/user.html.j2 index a66f830a421d4cf96ce34669fbcbb507615ac9bb..d50bf843e8337203302d7eacceee9c021beca716 100644 --- a/app/templates/admin/user.html.j2 +++ b/app/templates/admin/user.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/auth/login.html.j2 b/app/templates/auth/login.html.j2 index df8dce84732ef9907d82c24a2e12b6b5c21b98bc..73e4aeac81a3d54f380ef6a3f48d52f4d8db74f8 100644 --- a/app/templates/auth/login.html.j2 +++ b/app/templates/auth/login.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/auth/register.html.j2 b/app/templates/auth/register.html.j2 index 0c8ee6647801fa59858daaf19b5f288a033e1b8d..05ee6e0e6863d30ff202011b9701eaee34e15abe 100644 --- a/app/templates/auth/register.html.j2 +++ b/app/templates/auth/register.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/auth/reset_password.html.j2 b/app/templates/auth/reset_password.html.j2 index dd4efb883ea9be469da35ebdeeb1f42a7bf35d88..899ba4b2fdfc124d2bc7e2469bd33d6f1bc2b993 100644 --- a/app/templates/auth/reset_password.html.j2 +++ b/app/templates/auth/reset_password.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/auth/reset_password_request.html.j2 b/app/templates/auth/reset_password_request.html.j2 index 895e4f80d7311670a2ff8acb1512e1630a48e47d..86282d5095a4516eee60d6f14af2c5f312c7bfff 100644 --- a/app/templates/auth/reset_password_request.html.j2 +++ b/app/templates/auth/reset_password_request.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/auth/unconfirmed.html.j2 b/app/templates/auth/unconfirmed.html.j2 index d2ecd62a9d368f72e7ea0d715e37fa38a165fd67..bac1f380e5fc7e2187a2878ec57e31ed6bd75d49 100644 --- a/app/templates/auth/unconfirmed.html.j2 +++ b/app/templates/auth/unconfirmed.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block title %}Opaque - Confirm your account{% endblock %} diff --git a/app/templates/corpora/add_corpus.html.j2 b/app/templates/corpora/add_corpus.html.j2 index 528adbbe0704e1acd3a8f99e48cbf8bfdb062427..587e1efd780964166c59ac010c3d02f3e2e23064 100644 --- a/app/templates/corpora/add_corpus.html.j2 +++ b/app/templates/corpora/add_corpus.html.j2 @@ -1,4 +1,8 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = True %} + {% block page_content %} <div class="col s12 m4"> <h3 id="title">...</h3> diff --git a/app/templates/corpora/add_corpus_file.html.j2 b/app/templates/corpora/add_corpus_file.html.j2 index 6c6c11a42a42b5b28dc324ec869590cfc9e3cee8..82922aeaf42982ab75224d948a1bceff68a8545a 100644 --- a/app/templates/corpora/add_corpus_file.html.j2 +++ b/app/templates/corpora/add_corpus_file.html.j2 @@ -1,4 +1,8 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} + {% block page_content %} <div class="col s12 m4"> <h3 id="title">{{ corpus.title }}</h3> diff --git a/app/templates/corpora/analyse_corpus.html.j2 b/app/templates/corpora/analyse_corpus.html.j2 index 85e0f11a6ecf2f98d4d8cf76e0da94baa593e441..de456782054fde730c604aebc52f242fc5ba4d68 100644 --- a/app/templates/corpora/analyse_corpus.html.j2 +++ b/app/templates/corpora/analyse_corpus.html.j2 @@ -1,7 +1,9 @@ -{% extends "full_width.html.j2" %} +{% extends "nopaque.html.j2" %} -{% block page_content %} +{% set full_width = True %} +{% set roadmap = False %} +{% block page_content %} <!-- Query Form --> <form id="query-form"> <div class="col s12"> diff --git a/app/templates/corpora/corpus.html.j2 b/app/templates/corpora/corpus.html.j2 index b091f63db0e7063d1c4db17fc9da10a2fddce20f..b1156a6c41e249d479ec7f80ccfbf16559c9cb71 100644 --- a/app/templates/corpora/corpus.html.j2 +++ b/app/templates/corpora/corpus.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/corpora/edit_corpus_file.html.j2 b/app/templates/corpora/edit_corpus_file.html.j2 index 41e20e7c62d499eb9a1832bf1707fbdb0c1e7018..4076e280cae4463d2f3aa2045257e97078c2511b 100644 --- a/app/templates/corpora/edit_corpus_file.html.j2 +++ b/app/templates/corpora/edit_corpus_file.html.j2 @@ -1,4 +1,8 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} + {% block page_content %} <div class="col s12 m4"> <h3 id="title">...</h3> diff --git a/app/templates/full_width.html.j2 b/app/templates/full_width.html.j2 deleted file mode 100644 index b4de437f0385eab9824cfda346c17b2e9d369c7e..0000000000000000000000000000000000000000 --- a/app/templates/full_width.html.j2 +++ /dev/null @@ -1,11 +0,0 @@ -{% extends "base.html.j2" %} - -{% block main_block %} -<div class="row"> - <div class="col s12"> - <h2>{% if title %}{{ title }}{% else %}Unnamed page{% endif %}</h2> - </div> - {% block page_content %} - {% endblock %} -</div> -{% endblock %} diff --git a/app/templates/jobs/job.html.j2 b/app/templates/jobs/job.html.j2 index cc35b9385ab505e3d843dd79fd89fdb0fbc2691a..ed01f3eb866cbe2dd5e603da36db99d6bec98668 100644 --- a/app/templates/jobs/job.html.j2 +++ b/app/templates/jobs/job.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/limited_width.html.j2 b/app/templates/limited_width.html.j2 deleted file mode 100644 index 272433203abde05d887bdd2e89116b5a9b4d928c..0000000000000000000000000000000000000000 --- a/app/templates/limited_width.html.j2 +++ /dev/null @@ -1,13 +0,0 @@ -{% extends "base.html.j2" %} - -{% block main_block %} -<div class="container"> - <div class="row"> - <div class="col s12"> - <h2>{% if title %}{{ title }}{% else %}Unnamed page{% endif %}</h2> - </div> - {% block page_content %} - {% endblock %} - </div> -</div> -{% endblock %} diff --git a/app/templates/main/dashboard.html.j2 b/app/templates/main/dashboard.html.j2 index 2373050df240dfd1d5ae5b32de35a2b64352deb2..86715f4139698feccc9c5bb4f1e658905c5ad151 100644 --- a/app/templates/main/dashboard.html.j2 +++ b/app/templates/main/dashboard.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12"> diff --git a/app/templates/main/index.html.j2 b/app/templates/main/index.html.j2 index b303666f43b6459f4b210831d014bb9917b41594..3db4a3cf1e188d2adb0d0151dcff12c9d4926647 100644 --- a/app/templates/main/index.html.j2 +++ b/app/templates/main/index.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/base.html.j2 b/app/templates/nopaque.html.j2 similarity index 66% rename from app/templates/base.html.j2 rename to app/templates/nopaque.html.j2 index 495e89b531c7e422e88c6a999311d2ded7c61e6e..f7610a7a8e27724290bd2efbf6972aaf8f177104 100644 --- a/app/templates/base.html.j2 +++ b/app/templates/nopaque.html.j2 @@ -61,10 +61,11 @@ <li><a href="#"><i class="material-icons">linear_scale</i>Workflow</a></li> <li><a href="{{ url_for('main.dashboard') }}"><i class="material-icons">dashboard</i>Dashboard</a></li> <li><div class="divider"></div></li> - <li><a class="subheader">Services</a></li> - <li><a href="{{ url_for('services.service', service='merge_images') }}"><i class="material-icons">burst_mode</i>Convert images</a></li> + <li><a class="subheader">Processes and Services</a></li> + <li><a href="{{ url_for('services.service', service='corpus_analysis') }}"><i class="material-icons">search</i>Corpus Analysis</a></li> <li><a href="{{ url_for('services.service', service='nlp') }}"><i class="material-icons">format_textdirection_l_to_r</i>NLP</a></li> <li><a href="{{ url_for('services.service', service='ocr') }}"><i class="material-icons">find_in_page</i>OCR</a></li> + <li><a href="{{ url_for('services.service', service='setup_files') }}"><i class="material-icons">burst_mode</i>Setup files</a></li> {% if current_user.is_administrator() %} <li><div class="divider"></div></li> <li><a class="subheader">Administration</a></li> @@ -85,14 +86,61 @@ </header> <main class="grey lighten-5"> - {% block main_block %}{% endblock %} + {% if not full_width %} + <div class="container"> + {% endif %} + <div class="row"> + <div class="col s12"> + <h2>{% if title %}{{ title }}{% else %}Unnamed page{% endif %}</h2> + </div> + <div class="col s12 m9 l10"> + {% block page_content %} + {% endblock %} + </div> + {% if roadmap %} + <div class="col hide-on-small-only m3 l2"> + <ul class="table-of-contents" id="roadmap"> + <li><b>Roadmap</b></li> + <li><a href="{{ url_for('services.service', service='setup_files') }}">Setup files</a></li> + <li><a href="{{ url_for('services.service', service='ocr') }}">Optical Character Recognition</a></li> + <li><a href="{{ url_for('services.service', service='nlp') }}">Natural Language Processing</a></li> + <li><a href="{{ url_for('corpora.add_corpus') }}">Create a corpus</a></li> + <li><a href="{{ url_for('services.service', service='corpus_analysis') }}">Corpus analysis</a></li> + </ul> + </div> + {% endif %} + </div> + {% if not full_width %} + </div> + {% endif %} </main> <footer class="page-footer"> + <div class="container"> + <div class="row"> + <div class="col s12 m3"> + <a href="https://www.dfg.de/"> + <img class="responsive-img" src="{{ url_for('static', filename='images/logo_-_dfg.gif') }}"> + </a> + </div> + <div class="col s12 m3 offset-m1 center-align"> + <a href="https://www.uni-bielefeld.de/sfb1288/"> + <img class="responsive-img" src="{{ url_for('static', filename='images/logo_-_sfb_1288.png') }}"> + </a> + </div> + <div class="col s12 m3 offset-m1"> + <ul> + <h5 class="white-text">Links</h5> + <li style="overflow: hidden;"><a class="grey-text text-lighten-3" href="#!"><i class="material-icons left">feedback</i>Feedback</a></li> + <li style="overflow: hidden;"><a class="grey-text text-lighten-3" href="https://gitlab.ub.uni-bielefeld.de/sfb1288inf/opaque"><i class="material-icons left">code</i>GitLab</a></li> + </ul> + </div> + </div> + </div> <div class="footer-copyright"> <div class="container"> - © 2019 Bielefeld University - <a class="grey-text text-lighten-4 right" href="#!">Impress</a> + © 2019 Bielefeld University + <a class="grey-text text-lighten-4 right" href="#!">Impress</a> </div> </div> </footer> diff --git a/app/templates/profile/index.html.j2 b/app/templates/profile/index.html.j2 index e022e29389fa3d6417143f8f81160ca9f09eeede..6a26317b7832db13ee4184bf74612f6aa104fa5b 100644 --- a/app/templates/profile/index.html.j2 +++ b/app/templates/profile/index.html.j2 @@ -1,4 +1,7 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = False %} {% block page_content %} <div class="col s12 m4"> diff --git a/app/templates/services/corpus_analysis.html.j2 b/app/templates/services/corpus_analysis.html.j2 new file mode 100644 index 0000000000000000000000000000000000000000..0d9a482918a0c383197d4a16b376d6933dfe9217 --- /dev/null +++ b/app/templates/services/corpus_analysis.html.j2 @@ -0,0 +1,42 @@ +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = True %} + +{% block page_content %} +<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore</p> + +<div class="card"> + <div class="card-content" id="corpora"> + <div class="input-field"> + <i class="material-icons prefix">search</i> + <input id="search-corpus" class="search" type="search"></input> + <label for="search-corpus">Search corpus</label> + </div> + <table> + <thead> + <tr> + <th></th> + <th> + <span class="sort" data-sort="title">Title</span> + <span class="sort" data-sort="description">Description</span> + </th> + <th><span class="sort" data-sort="status">Status</span></th> + <th></th> + </tr> + </thead> + <tbody class="list"></tbody> + </table> + <ul class="pagination"></ul> + </div> + <div class="card-action right-align"> + <a class="waves-effect waves-light btn" href="{{ url_for('corpora.add_corpus') }}">New corpus<i class="material-icons right">add</i></a> + </div> +</div> + +<script> + var corpusList = new RessourceList("corpora", nopaque.corporaSubscribers, + RessourceList.dataMapper.corpus, + {page: 10}); +</script> +{% endblock %} diff --git a/app/templates/services/nlp.html.j2 b/app/templates/services/nlp.html.j2 index 7bb263279407c9b5e7f355f8e7e3ec4c7e3a6728..4c4c0b1379fb6eaebd1afdc3520fb4ecb5e6075b 100644 --- a/app/templates/services/nlp.html.j2 +++ b/app/templates/services/nlp.html.j2 @@ -1,8 +1,10 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = True %} {% block page_content %} <div class="col s12 m4"> - <h3>The process...</h3> <p>Mit Hilfe computergestützter linguistischer Datenverarbeitungsmethoden können Textdateien mit weiteren Informationen angereichert werden. Auf dieser Plattform werden derzeit die im folgenden aufgeführten Textverarbeitungsroutinen in automatisierter Form zur Verfügung gestellt.</p> </div> @@ -11,36 +13,21 @@ <div class="card-content"> <div class="row"> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Tokenisierung</span> - <p>Aufteilung eines Textes in Sätze und Wörter. Dies ist zur weiteren Verarbeitung notwendig.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Tokenisierung</span> + <p>Aufteilung eines Textes in Sätze und Wörter. Dies ist zur weiteren Verarbeitung notwendig.</p> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Lemmatisierung</span> - <p>Reduktion der Flexionsformen eines Wortes auf dessen Grundform.<br><br></p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Lemmatisierung</span> + <p>Reduktion der Flexionsformen eines Wortes auf dessen Grundform.<br><br></p> </div> + <div class="col s12"> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Part-of-speech-Tagging</span> - <p>Kontext- und definitionsbezogene Zuordnung von Wörtern und Satzzeichen zu Wortarten.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Part-of-speech-Tagging</span> + <p>Kontext- und definitionsbezogene Zuordnung von Wörtern und Satzzeichen zu Wortarten.</p> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Eigennamenerkennung</span> - <p>Identifikation von Wörtern, die eine Entitätbeschreiben, wie Firmen- und Personennamen.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Eigennamenerkennung</span> + <p>Identifikation von Wörtern, die eine Entitätbeschreiben, wie Firmen- und Personennamen.</p> </div> </div> </div> diff --git a/app/templates/services/ocr.html.j2 b/app/templates/services/ocr.html.j2 index 93cf8f0033102a7209d53d877787e8c0bd2f66a2..c27328339bea6cd7fa7dca6a86f59f79c9a84992 100644 --- a/app/templates/services/ocr.html.j2 +++ b/app/templates/services/ocr.html.j2 @@ -1,8 +1,10 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = True %} {% block page_content %} <div class="col s12 m4"> - <h3>The process...</h3> <p>Der hier zur Verfügung gestellte Dienst basiert auf dem Verfahren der optischen Zeichenerkennung. Dabei werden durch optische Analysemethoden und einen anschließenden Abgleich mit Wörterbüchern aus Bilddaten, wie Fotos oder Scans, Textdaten erzeugt. Erst dieser Vorverarbeitungsschritt ermöglicht eine computergestützte Verarbeitung von Dokumenten.</p> <p>Die Ausgabe dieses Dienstes erfolgt in Form von Textdateien, PDF Dateien mit hinterlegtem Text und <a href="https://tei-c.org/guidelines/p5/" target="_blank">TEI P5</a> konformen XML Dateien.</p> </div> @@ -12,36 +14,21 @@ <div class="card-content"> <div class="row"> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Eingabe von Bilddaten</span> - <p>Über ein Auftragsformular können Bilddaten in Form von PDF-Dateien hochgeladen werden.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Eingabe von Bilddaten</span> + <p>Über ein Auftragsformular können Bilddaten in Form von PDF-Dateien hochgeladen werden.</p> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Optische Zeichenerkennung</span> - <p>Die optische Zeichenerkennung erfolgt in der Recheninfrastruktur der Plattform.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Optische Zeichenerkennung</span> + <p>Die optische Zeichenerkennung erfolgt in der Recheninfrastruktur der Plattform.</p> </div> + <div class="col s12"> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Fehlerkorrektur</span> - <p>Je nach Qualität der Eingabedaten kann es zu Fehlern kommen, die korrigiert werden sollten.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Fehlerkorrektur</span> + <p>Je nach Qualität der Eingabedaten kann es zu Fehlern kommen, die korrigiert werden sollten.</p> </div> <div class="col s12 m6"> - <div class="card z-depth-0"> - <div class="card-content"> - <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Weiterverarbeitung</span> - <p>Die Textdaten können weiterverarbeitet<a class="tooltipped" data-position="top" data-tooltip="Zum Beispiel durch die hier angebotene linguistische Datenverarbeitung."><sup>[*]</sup></a> oder in dieser Form bereits genutzt<a class="tooltipped" data-position="top" data-tooltip="Zum Beispiel mit dem Programm "AntConc"."><sup>[*]</sup></a> werden.</p> - </div> - </div> + <span class="card-title"><i class="material-icons blue-grey-text text-darken-2 left">layers</i>Weiterverarbeitung</span> + <p>Die Textdaten können weiterverarbeitet<a class="tooltipped" data-position="top" data-tooltip="Zum Beispiel durch die hier angebotene linguistische Datenverarbeitung."><sup>[*]</sup></a> oder in dieser Form bereits genutzt<a class="tooltipped" data-position="top" data-tooltip="Zum Beispiel mit dem Programm "AntConc"."><sup>[*]</sup></a> werden.</p> </div> </div> </div> diff --git a/app/templates/services/merge_images.html.j2 b/app/templates/services/setup_files.html.j2 similarity index 98% rename from app/templates/services/merge_images.html.j2 rename to app/templates/services/setup_files.html.j2 index 5bf8acc6e9f3a7cafccb6293a5c1e13cea24e12f..6f54945ae40f9da03b00317abc0dbe754af8704c 100644 --- a/app/templates/services/merge_images.html.j2 +++ b/app/templates/services/setup_files.html.j2 @@ -1,8 +1,10 @@ -{% extends "limited_width.html.j2" %} +{% extends "nopaque.html.j2" %} + +{% set full_width = False %} +{% set roadmap = True %} {% block page_content %} <div class="col s12 m4"> - <h3>Description</h3> <p>To use the <a href="{{ url_for('services.service', service='ocr') }}">OCR</a> service offered here, the input data provided for this purpose must be available either as PDF or multipage TIFF files. However, image files are usually only available as PNG, JPEG or singlepage TIFF files. This service converts the uploaded image files into the correct file format for the <a href="{{ url_for('services.service', service='ocr') }}">OCR</a> service.</p> </div>