mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-13 17:40:40 +00:00
Update corpus page
This commit is contained in:
@ -39,7 +39,6 @@
|
||||
output='gen/ResourceLists.%(version)s.js',
|
||||
'js/ResourceLists/ResourceList.js',
|
||||
'js/ResourceLists/CorpusFileList.js',
|
||||
'js/ResourceLists/PublicCorpusFileList.js',
|
||||
'js/ResourceLists/CorpusList.js',
|
||||
'js/ResourceLists/FollowedCorpusList.js',
|
||||
'js/ResourceLists/PublicCorpusList.js',
|
||||
|
36
app/templates/corpora/_corpus/action_buttons.html.j2
Normal file
36
app/templates/corpora/_corpus/action_buttons.html.j2
Normal file
@ -0,0 +1,36 @@
|
||||
{% set owner_admin %}
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
<a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
<a class="action-button btn disabled waves-effect waves-light" data-action="analyze" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
|
||||
<a class="btn waves-effect waves-light modal-trigger" href="#publishing-modal" style="width: 100%;"><i class="material-icons left">publish</i>Publishing</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
|
||||
<a class="btn red waves-effect waves-light modal-trigger" href="#delete-modal" style="width: 100%;"><i class="material-icons left">delete</i>Delete</a>
|
||||
</div>
|
||||
{% endset %}
|
||||
|
||||
{% set follower %}
|
||||
{% if cfr.has_permission('MANAGE_FILES') %}
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
{% if corpus.status.name in ['UNPREPARED'] %}
|
||||
<a class="action-button btn waves-effect waves-light" id="build-button" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
|
||||
{% else %}
|
||||
<a class="action-button btn waves-effect waves-light disabled" id="build-button" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if corpus.status.name in ['BUILT', 'STARTING_ANALYSIS_SESSION', 'RUNNING_ANALYSIS_SESSION', 'CANCELING_ANALYSIS_SESSION'] %}
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
<a class="btn waves-effect waves-light" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if current_user.is_following_corpus(corpus) %}
|
||||
<div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
|
||||
<a class="action-button btn red waves-effect waves-light" data-action="unfollow-request" style="width: 100%;"><i class="material-icons left outlined">close</i>Unfollow Corpus</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endset %}
|
@ -0,0 +1,72 @@
|
||||
{% set name = 'Corpus Information' %}
|
||||
|
||||
{% set owner %}
|
||||
<div class="col s12 l7">
|
||||
<div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
|
||||
<div class="card-content">
|
||||
<span class="chip corpus-status corpus-status-color corpus-status-text white-text"></span>
|
||||
<div class="active preloader-wrapper small corpus-status-spinner">
|
||||
<div class="spinner-layer spinner-blue-only">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<div class="input-field">
|
||||
<input class="corpus-description" disabled id="corpus-description" type="text">
|
||||
<label for="corpus-description">Description</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m6">
|
||||
<div class="input-field">
|
||||
<input class="corpus-creation-date validate" disabled id="corpus-creation-date" type="text">
|
||||
<label for="corpus-creation-date">Creation date</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m6">
|
||||
<div class="input-field">
|
||||
<input class="corpus-token-ratio validate" disabled id="corpus-token-ratio" type="text">
|
||||
<label for="corpus-token-ratio">Nr. of tokens used <sup><i class="material-icons tooltipped tiny" data-position="bottom" data-tooltip="Current number of tokens in this corpus. Updates after every analyze session.">help</i></sup></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endset %}
|
||||
|
||||
{% set public %}
|
||||
<div class="col s12 l7">
|
||||
<div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<p><b>Status:</b> <span class="chip corpus-status-text corpus-status-color white-text" data-status="{{ corpus.status.name }}"></span></p>
|
||||
<br>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<p><b>Description:</b> {{ corpus.description }}</p>
|
||||
<br>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<p><b>Creation date:</b> {{ corpus.creation_date }}</p>
|
||||
<br>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<p><b>Number of tokens used:</b> {{ corpus.num_tokens }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endset %}
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html.j2" %}
|
||||
{% import "materialize/wtf.html.j2" as wtf %}
|
||||
{% import 'corpora/analysis_extensions/concordance.html.j2' as concordance_extension %}
|
||||
{% import 'corpora/analysis_extensions/reader.html.j2' as reader_extension %}
|
||||
{% import 'corpora/_analysis/concordance.html.j2' as concordance_extension %}
|
||||
{% import 'corpora/_analysis/reader.html.j2' as reader_extension %}
|
||||
|
||||
{% set extensions = [concordance_extension, reader_extension] %}
|
||||
{% block main_attribs %} class="service-scheme" data-service="corpus-analysis" id="corpus-analysis-app-container"{% endblock main_attribs %}
|
||||
|
@ -1,5 +1,7 @@
|
||||
{% extends "base.html.j2" %}
|
||||
{% import "materialize/wtf.html.j2" as wtf %}
|
||||
{% import "corpora/_corpus/corpus_information_card.html.j2" as corpus_information_card with context %}
|
||||
{% import "corpora/_corpus/action_buttons.html.j2" as action_buttons with context %}
|
||||
|
||||
{% block main_attribs %} class="service-scheme" data-service="corpus-analysis"{% endblock main_attribs %}
|
||||
|
||||
@ -7,69 +9,28 @@
|
||||
<div class="container">
|
||||
<div class="row" data-corpus-id="{{ corpus.hashid }}" data-user-id="{{ corpus.user.hashid }}" id="corpus-display">
|
||||
<div class="col s12">
|
||||
<h1 id="title"><span class="corpus-title"></span></h1>
|
||||
</div>
|
||||
<div class="col s12 l7">
|
||||
<div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
|
||||
<div class="card-content">
|
||||
<span class="chip corpus-status corpus-status-color corpus-status-text white-text"></span>
|
||||
<div class="active preloader-wrapper small corpus-status-spinner">
|
||||
<div class="spinner-layer spinner-blue-only">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<div class="input-field">
|
||||
<input class="corpus-description" disabled id="corpus-description" type="text">
|
||||
<label for="corpus-description">Description</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m6">
|
||||
<div class="input-field">
|
||||
<input class="corpus-creation-date validate" disabled id="corpus-creation-date" type="text">
|
||||
<label for="corpus-creation-date">Creation date</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m6">
|
||||
<div class="input-field">
|
||||
<input class="corpus-token-ratio validate" disabled id="corpus-token-ratio" type="text">
|
||||
<label for="corpus-token-ratio">Nr. of tokens used <sup><i class="material-icons tooltipped tiny" data-position="bottom" data-tooltip="Current number of tokens in this corpus. Updates after every analyze session.">help</i></sup></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h1>{{ corpus.title }}</h1>
|
||||
</div>
|
||||
|
||||
{% if current_user == corpus.user or current_user.is_administrator() %}
|
||||
{{ corpus_information_card.owner }}
|
||||
{% else %}
|
||||
{{ corpus_information_card.public }}
|
||||
{% endif %}
|
||||
|
||||
{% if cfr.has_permission('VIEW') %}
|
||||
<div class="col s12 l5">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Actions</span>
|
||||
<div class="row">
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
<a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
<a class="action-button btn disabled waves-effect waves-light" data-action="analyze" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
|
||||
<a class="btn waves-effect waves-light modal-trigger" href="#publishing-modal" style="width: 100%;"><i class="material-icons left">publish</i>Publishing</a>
|
||||
</div>
|
||||
<div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
|
||||
<a class="btn red waves-effect waves-light modal-trigger" href="#delete-modal" style="width: 100%;"><i class="material-icons left">delete</i>Delete</a>
|
||||
</div>
|
||||
{% if current_user == corpus.user or current_user.is_administrator() %}
|
||||
{{ action_buttons.owner_admin }}
|
||||
{% else %}
|
||||
{{ action_buttons.follower }}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if cfr.has_permission('MANAGE_FOLLOWERS') %}
|
||||
<span class="card-title">Social</span>
|
||||
<div class="row">
|
||||
<div class="col s12 l6" style="padding: 0 2.5px;">
|
||||
@ -79,24 +40,66 @@
|
||||
<a class="btn waves-effect waves-light modal-trigger" href="#share-link-modal" style="width: 100%;"><i class="material-icons left">link</i>Share link</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user != corpus.user %}
|
||||
<div class="col s12">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="files">Corpus Owner</span>
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width:10%; margin-top:25px;">
|
||||
<img src="{{ url_for('users.user_avatar', user_id=corpus.user.id) }}" alt="user-image" class="circle responsive-img">
|
||||
</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<ul>
|
||||
<li><b>{{ corpus.user.username }}</b></li>
|
||||
{% if corpus.user.full_name %}
|
||||
<li>{{ corpus.user.full_name }}</li>
|
||||
{% endif %}
|
||||
{% if corpus.user.show_email %}
|
||||
<li></li><a href="mailto:{{ corpus.user.email }}">{{ corpus.user.email }}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<p></p>
|
||||
{% if not current_user.is_following_corpus(corpus) %}
|
||||
<a class="waves-effect waves-light btn-small">Request Corpus</a>
|
||||
{% endif %}
|
||||
<a class="waves-effect waves-light btn-small" href="{{ url_for('users.user', user_id=corpus.user.id) }}">View profile</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="col s12">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="files">Corpus files</span>
|
||||
<div class="corpus-file-list" data-user-id="{{ corpus.user.hashid }}" data-corpus-id="{{ corpus.hashid }}"></div>
|
||||
<div class="corpus-file-list" id="corpus-file-list" data-has-permission-view="{{ cfr.has_permission('VIEW')|tojson }}" data-has-permission-manage-files="{{ cfr.has_permission('MANAGE_FILES')|tojson }}" data-corpus-id="{{ corpus.hashid }}"></div>
|
||||
</div>
|
||||
{% if cfr.has_permission('MANAGE_FILES') %}
|
||||
<div class="card-action right-align">
|
||||
<a href="{{ url_for('corpora.create_corpus_file', corpus_id=corpus.id) }}" class="btn waves-effect waves-light"><i class="material-icons left">add</i>Add corpus file</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12"></div>
|
||||
|
||||
{% if cfr.has_permission('MANAGE_FOLLOWERS') %}
|
||||
<div class="col s12">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
@ -105,12 +108,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock page_content %}
|
||||
|
||||
{% block modals %}
|
||||
{{ super() }}
|
||||
|
||||
{% if cfr.has_permission('MANAGE_FOLLOWERS') %}
|
||||
<div class="modal" id="publishing-modal">
|
||||
<div class="modal-content">
|
||||
<h4>Change your Corpus publishing status</h4>
|
||||
@ -129,7 +136,9 @@
|
||||
<a class="modal-close waves-effect waves-green btn-flat">Close</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user == corpus.user or current_user.is_administrator() %}
|
||||
<div class="modal" id="delete-modal">
|
||||
<div class="modal-content">
|
||||
<h4>Confirm Corpus deletion</h4>
|
||||
@ -140,7 +149,9 @@
|
||||
<a class="btn modal-close red waves-effect waves-light" id="delete-modal-delete-button">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if cfr.has_permission('MANAGE_FOLLOWERS') %}
|
||||
<div class="modal no-autoinit" id="invite-user-modal">
|
||||
<div class="modal-content">
|
||||
<h4>Invite a nopaque user by username</h4>
|
||||
@ -174,27 +185,27 @@
|
||||
You can set different roles via the link, you can also edit them later in the menu below.
|
||||
It is recommended not to set the expiration date of the link too far.
|
||||
</p>
|
||||
<h5>HIER RECHTLICHEN HINWEIS EINFÜGEN</h5>
|
||||
<h5>Please make sure that the invited users are legally allowed to view the included corpus files.</h5>
|
||||
<div class="row">
|
||||
<div class="col s12 l2">
|
||||
<div class="col s12 l3">
|
||||
<div class="input-field">
|
||||
<i class="material-icons prefix">badge</i>
|
||||
<select id="share-link-modal-corpus-follower-role-select">
|
||||
{% for corpus_follower_role in corpus_follower_roles %}
|
||||
<option value="{{ corpus_follower_role.name }}">{{ corpus_follower_role.name }}</option>
|
||||
{% for cfr in cfrs %}
|
||||
<option value="{{ cfr.name }}">{{ cfr.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label>Role</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 l2">
|
||||
<div class="col s12 l3">
|
||||
<div class="input-field">
|
||||
<i class="material-icons prefix">calendar_month</i>
|
||||
<input type="text" class="datepicker no-autoinit" id="share-link-modal-expiration-date-datepicker">
|
||||
<label for="expiration-date">Expiration date</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 l2">
|
||||
<div class="col s12 l3">
|
||||
<br class="hide-on-med-and-down">
|
||||
<a class="btn waves-effect waves-light" id="share-link-modal-create-button">Create<i class="material-icons right">send</i></a>
|
||||
</div>
|
||||
@ -218,13 +229,44 @@
|
||||
<a class="modal-close waves-effect waves-green btn-flat">Close</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endblock modals %}
|
||||
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<script>
|
||||
{% if current_user == corpus.user or current_user.is_administrator() %}
|
||||
let corpusDisplay = new CorpusDisplay(document.querySelector('#corpus-display'));
|
||||
{% endif %}
|
||||
|
||||
let corpusFileList = new CorpusFileList(document.querySelector('#corpus-file-list'));
|
||||
corpusFileList.add(
|
||||
[
|
||||
{% for corpus_file in corpus.files %}
|
||||
{{ corpus_file.to_json_serializeable()|tojson }},
|
||||
{% endfor %}
|
||||
]
|
||||
);
|
||||
|
||||
{% if current_user.is_following_corpus(corpus) %}
|
||||
{% if cfr.has_permission('MANAGE_FILES') %}
|
||||
let buildButton = document.querySelector('#build-button');
|
||||
buildButton.addEventListener('click', () => {
|
||||
Requests.corpora.entity.build({{ corpus.hashid|tojson }})
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
let unfollowRequestElement = document.querySelector('.action-button[data-action="unfollow-request"]');
|
||||
unfollowRequestElement.addEventListener('click', () => {
|
||||
Requests.corpora.entity.followers.entity.delete({{ corpus.hashid|tojson }}, {{ current_user.hashid|tojson }})
|
||||
.then((response) => {
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
{% if current_user == corpus.user or current_user.is_administrator() %}
|
||||
// #region Publishing
|
||||
let publishingModalIsPublicSwitchElement = document.querySelector('#publishing-modal-is-public-switch');
|
||||
publishingModalIsPublicSwitchElement.addEventListener('change', (event) => {
|
||||
@ -245,8 +287,10 @@ deleteModalDeleteButtonElement.addEventListener('click', (event) => {
|
||||
});
|
||||
});
|
||||
// #endregion Delete
|
||||
{% endif %}
|
||||
|
||||
// #region Invite users
|
||||
{% if cfr.has_permission('MANAGE_FOLLOWERS') %}
|
||||
// #region Invite user
|
||||
let inviteUserModalElement = document.querySelector('#invite-user-modal');
|
||||
let inviteUserModalSearchElement = document.querySelector('#invite-user-modal-search');
|
||||
let inviteUserModalInviteButtonElement = document.querySelector('#invite-user-modal-invite-button');
|
||||
@ -289,7 +333,7 @@ inviteUserModalInviteButtonElement.addEventListener('click', (event) => {
|
||||
let usernames = inviteUserModalSearch.chipsData.map((chipData) => chipData.tag);
|
||||
Requests.corpora.entity.followers.add({{ corpus.hashid|tojson }}, usernames);
|
||||
});
|
||||
// #endregion Invite users
|
||||
// #endregion Invite user
|
||||
|
||||
// #region Share link
|
||||
let shareLinkModalElement = document.querySelector('#share-link-modal');
|
||||
@ -351,5 +395,8 @@ shareLinkModalOutputCopyButtonElement.addEventListener('click', (event) => {
|
||||
|
||||
});
|
||||
// #endregion Share link
|
||||
{% endif %}
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock scripts %}
|
||||
|
@ -1,122 +0,0 @@
|
||||
{% extends "base.html.j2" %}
|
||||
{% import "materialize/wtf.html.j2" as wtf %}
|
||||
|
||||
{% block main_attribs %} class="service-scheme" data-service="corpus-analysis"{% endblock main_attribs %}
|
||||
|
||||
{% block page_content %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<h1>{{ corpus.title }} </h1>
|
||||
<div class="row">
|
||||
<div class="col s8 m9 l10">
|
||||
{% if current_user.is_following_corpus(corpus) %}
|
||||
<a class="action-button btn waves-effect waves-light" data-action="unfollow-request"><i class="material-icons left outlined">close</i>Unfollow Corpus</a>
|
||||
{% endif %}
|
||||
{% if corpus.status.name in ['BUILT', 'STARTING_ANALYSIS_SESSION', 'RUNNING_ANALYSIS_SESSION', 'CANCELING_ANALYSIS_SESSION'] and current_user.is_following_corpus(corpus) %}
|
||||
<a class="btn waves-effect waves-light" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}">Analyze</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<p><b>Status:</b> <span class="chip corpus-status-text corpus-status-color white-text" data-status="{{ corpus.status.name }}"></span></p>
|
||||
<p></p>
|
||||
<br>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<p><b>Description:</b> {{ corpus.description }}</p>
|
||||
<br>
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="col s6">
|
||||
<p><b>Creation date:</b> {{ corpus.creation_date }}</p>
|
||||
</div>
|
||||
<div class="col s6">
|
||||
<p><b>Number of tokens used:</b> {{ corpus.num_tokens }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="files">Corpus Owner</span>
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width:10%; margin-top:25px;">
|
||||
<img src="{{ url_for('users.user_avatar', user_id=corpus.user.id) }}" alt="user-image" class="circle responsive-img">
|
||||
</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<ul>
|
||||
<li><b>{{ corpus.user.username }}</b></li>
|
||||
{% if corpus.user.full_name %}
|
||||
<li>{{ corpus.user.full_name }}</li>
|
||||
{% endif %}
|
||||
{% if corpus.user.show_email %}
|
||||
<li></li><a href="mailto:{{ corpus.user.email }}">{{ corpus.user.email }}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<p></p>
|
||||
{% if not current_user.is_following_corpus(corpus) %}
|
||||
<a class="waves-effect waves-light btn-small">Request Corpus</a>
|
||||
{% endif %}
|
||||
<a class="waves-effect waves-light btn-small" href="{{ url_for('users.user', user_id=corpus.user.id) }}">View profile</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if cfa.role.has_permission('VIEW') %}
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="corpus-files">Corpus files</span>
|
||||
<div class="corpus-file-list no-autoinit" id="corpus-file-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if cfa.role.has_permission('UPDATE_FOLLOWER') %}
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="corpus-followers">Corpus followers</span>
|
||||
<div class="corpus-follower-list no-autoinit"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock page_content %}
|
||||
|
||||
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<script>
|
||||
let publicCorpusFileList = new PublicCorpusFileList(document.querySelector('#corpus-file-list'));
|
||||
publicCorpusFileList.add(
|
||||
[
|
||||
{% for corpus_file in corpus.files %}
|
||||
{{ corpus_file.to_json_serializeable()|tojson }},
|
||||
{% endfor %}
|
||||
]
|
||||
);
|
||||
|
||||
let unfollowRequestElement = document.querySelector('.action-button[data-action="unfollow-request"]');
|
||||
unfollowRequestElement.addEventListener('click', () => {
|
||||
Requests.corpora.entity.followers.entity.delete({{ corpus.hashid|tojson }}, {{ corpus.user.hashid|tojson }})
|
||||
.then((response) => {
|
||||
window.location.href = {{ url_for('main.dashboard')|tojson }};
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock scripts %}
|
Reference in New Issue
Block a user