2020-04-05 16:54:45 +02:00
|
|
|
{% extends 'layouts/app.twig' %}
|
|
|
|
{% import 'macros/base.twig' as m %}
|
2023-11-05 16:29:07 +01:00
|
|
|
{% import 'macros/form.twig' as f %}
|
2020-04-05 16:54:45 +02:00
|
|
|
|
2020-05-12 00:12:49 +02:00
|
|
|
{% set only_meetings = only_meetings|default(false) %}
|
|
|
|
{% block title %}{{ not only_meetings ? __('news.title') : __('news.title.meetings') }}{% endblock %}
|
2020-04-05 16:54:45 +02:00
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
<div class="container">
|
|
|
|
<h1>
|
2023-12-07 15:11:05 +01:00
|
|
|
{% if not is_overview|default(false) %}
|
2023-12-21 13:08:29 +01:00
|
|
|
{{ m.button(m.icon('chevron-left'), url('/news'), null, 'sm', __('general.back')) }}
|
2023-12-07 15:11:05 +01:00
|
|
|
{% endif %}
|
2020-04-05 16:54:45 +02:00
|
|
|
{{ block('title') }}
|
2024-04-18 14:29:56 +02:00
|
|
|
{%- if can('admin_news') and is_overview|default(false) -%}
|
2023-11-13 16:56:52 +01:00
|
|
|
{{ m.button(m.icon('plus-lg'), url('/admin/news', only_meetings ? {'meeting': 1} : {}), 'secondary') }}
|
2020-04-05 16:54:45 +02:00
|
|
|
{%- endif %}
|
|
|
|
</h1>
|
|
|
|
|
|
|
|
{% include 'layouts/parts/messages.twig' %}
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-12">
|
|
|
|
{% block news %}
|
|
|
|
{% for news in news %}
|
|
|
|
{{ _self.news(news, true, is_overview) }}
|
|
|
|
{% endfor %}
|
|
|
|
{% endblock %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{% block comments %}
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block pagination %}
|
|
|
|
{% if pages|default(0) > 1 %}
|
2021-12-26 17:40:13 +01:00
|
|
|
<div class="col-md-12">
|
|
|
|
<ul class="pagination justify-content-center">
|
2020-04-05 16:54:45 +02:00
|
|
|
{% for p in range(1, pages) %}
|
2021-12-26 17:40:13 +01:00
|
|
|
<li class="page-item{% if p == page %} active{% endif %}">
|
2023-08-14 16:02:11 +02:00
|
|
|
<a class="page-link" href="{{ url( only_meetings ? 'meetings' : 'news', p == 1 ? {} : {'page': p}) }}">{{ p }}</a>
|
2020-04-05 16:54:45 +02:00
|
|
|
</li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block write_comment %}
|
|
|
|
{% endblock %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% macro news(news, show_comments_link, is_overview) %}
|
2023-12-06 21:15:54 +01:00
|
|
|
<div class="card {% if news.is_highlighted %}bg-warning{% elseif news.is_meeting %}bg-info{% else %}{{ m.type_bg_class() }}{% endif %} mb-4">
|
2020-04-05 16:54:45 +02:00
|
|
|
{% if is_overview|default(false) %}
|
2021-07-24 12:38:23 +02:00
|
|
|
<div class="card-header {% if news.is_meeting and theme.type == 'dark' %}text-white{% endif %}">
|
2023-11-13 16:56:52 +01:00
|
|
|
<a href="{{ url('/news/' ~ news.id) }}" class="text-inherit">
|
2021-07-24 12:38:23 +02:00
|
|
|
{% if news.is_pinned %}{{ m.icon('pin-angle') }}{% endif %}
|
|
|
|
{% if news.is_meeting %}{{ __('news.is_meeting') }}{% endif %}
|
|
|
|
{{ news.title }}
|
|
|
|
</a>
|
2020-04-05 16:54:45 +02:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
2021-08-05 01:00:12 +02:00
|
|
|
<div class="card-body bg-body">
|
2021-12-30 19:18:54 +01:00
|
|
|
{{ news.text(not is_overview)|markdown }}
|
2021-12-10 22:24:18 +01:00
|
|
|
{% if is_overview and news.text != news.text(false) %}
|
2023-11-13 16:56:52 +01:00
|
|
|
{{ m.button(__('news.read_more'), url('/news/' ~ news.id), null, 'sm', null, null, 'chevron-double-right') }}
|
2021-12-10 22:24:18 +01:00
|
|
|
{% endif %}
|
2020-04-05 16:54:45 +02:00
|
|
|
</div>
|
|
|
|
|
2023-12-06 21:15:54 +01:00
|
|
|
<div class="card-footer text-nowrap {{ m.type_bg_class() }} text-muted">
|
2023-08-15 21:59:41 +02:00
|
|
|
<div class="d-flex flex-column flex-md-row align-items-md-center gap-3">
|
|
|
|
{% if news.updated_at != news.created_at and not is_overview %}
|
|
|
|
<div>
|
2023-11-23 14:30:46 +01:00
|
|
|
{{ m.icon('clock') }} {{ news.updated_at.format(__('general.datetime')) }}
|
2023-08-15 21:59:41 +02:00
|
|
|
{{ __('news.updated') }}
|
2021-07-24 12:38:23 +02:00
|
|
|
</div>
|
2023-08-15 21:59:41 +02:00
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<div>
|
2023-11-23 14:30:46 +01:00
|
|
|
{{ m.icon('clock') }} {{ news.created_at.format(__('general.datetime')) }}
|
2021-07-24 12:38:23 +02:00
|
|
|
</div>
|
2020-04-05 16:54:45 +02:00
|
|
|
|
2023-08-15 21:59:41 +02:00
|
|
|
<div class="text-truncate">
|
2021-07-24 12:38:23 +02:00
|
|
|
{{ m.user(news.user) }}
|
|
|
|
</div>
|
2020-04-05 16:54:45 +02:00
|
|
|
|
2021-07-24 12:38:23 +02:00
|
|
|
{% if show_comments_link|default(false) %}
|
2023-08-15 21:59:41 +02:00
|
|
|
<div>
|
2023-11-13 16:56:52 +01:00
|
|
|
<a href="{{ url('/news/' ~ news.id) }}" class="me-1">
|
2023-08-15 21:59:41 +02:00
|
|
|
{{ m.icon('chat-left-text') }} {{ __('news.comments') }}
|
|
|
|
</a>
|
|
|
|
<span class="badge bg-primary">{{ news.comments.count() }}</span>
|
|
|
|
{{ m.icon('chevron-double-right', 'primary') }}
|
|
|
|
</div>
|
2021-07-24 12:38:23 +02:00
|
|
|
{% endif %}
|
2020-04-05 16:54:45 +02:00
|
|
|
|
2024-04-18 14:29:56 +02:00
|
|
|
{% if can('admin_news') %}
|
2023-11-05 16:29:07 +01:00
|
|
|
<div class="d-flex ms-auto">
|
2023-12-21 13:08:29 +01:00
|
|
|
{{ m.button(m.icon('pencil'), url('/admin/news/' ~ news.id), 'secondary', 'sm', __('form.edit')) }}
|
2023-11-05 16:29:07 +01:00
|
|
|
|
|
|
|
<form class="ps-1"
|
|
|
|
action="{{ url('/admin/news/' ~ news.id) }}" enctype="multipart/form-data"
|
|
|
|
method="post">
|
|
|
|
{{ csrf() }}
|
|
|
|
{{ f.delete(null, {
|
|
|
|
'size': 'sm',
|
2023-11-10 16:20:01 +01:00
|
|
|
'confirm_title': __('news.delete.title', [news.title[:40]|e]),
|
2023-11-05 16:29:07 +01:00
|
|
|
'confirm_button_text': __('form.delete')
|
|
|
|
}) }}
|
|
|
|
</form>
|
2021-07-24 12:38:23 +02:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
2020-04-05 16:54:45 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endmacro %}
|