src/catedit/templates/macros.html
author ymh <ymh.work@gmail.com>
Wed, 14 Aug 2024 22:08:14 +0200
changeset 142 640fb0f13022
parent 131 7684ea24c330
permissions -rw-r--r--
server and docker migration

{% macro category_table(cat_list, current_repository, state_list=["mixed"], redirect_target="categories.workshop", interactive=True, with_colors=True, buttons_id="") -%}
  {% for cat in cat_list %}
    {% if state_list == ["mixed"] or (cat.state in state_list) %}
      <tr
      {% if with_colors %}
        {% if cat.state == "created" %}
          class="success"
        {% elif cat.state == "modified" %}
          class="warning"
        {% elif cat.state == "deleted" %}
          class="danger"
        {% endif %}
      {% endif %}>
        <td class="col-md-2">{{ cat.cat_label }}</td>
        <td class="col-md-7">{{ cat.cat_description}}</td>
        <td class="col-md-1 text-center">
          <a title="Détails catégorie">
            <button class="btn btn-default cat-info-toggle" id="info_button_{% if ((cat.state != 'untouched') and (cat.state != 'original')) %}edited_{% endif %}{{ cat.cat_id }}{% if buttons_id %}-{{ buttons_id }}{% endif %}">
              <span id="info_icon_{% if ((cat.state != 'untouched') and (cat.state != 'original')) %}edited_{% endif %}{{ cat.cat_id }}{% if buttons_id %}-{{ buttons_id }}{% endif %}" class="glyphicon glyphicon-plus-sign"/>
            </button>
          </a>
        </td>
        {% if interactive %}
          {% if (cat.state != "deleted") %}
          <td class="col-md-1 text-center">
            <a href="{{ url_for('categories.editor', cat_id=cat.cat_id, repository=current_repository)}}" title="Editer catégorie" class="btn btn-default {% if readonly %}disabled{% endif %}">
              <span class="glyphicon glyphicon glyphicon-pencil"/>
            </a>
          </td>
          {% endif %}
          {% if (cat.state == "untouched") or (cat.state == "original") %}
          <td class="col-md-1 text-center">
            <a title="Supprimer catégorie">
              <button class="btn btn-default cat-delete-toggle {% if readonly %}disabled{% endif %}" id="delete_button_{{ cat.cat_id }}{% if buttons_id %}-{{ buttons_id }}{% endif %}">
                <span id="delete_icon_{{ cat.cat_id }}" class="glyphicon glyphicon-trash"/>
              </button>
            </a>
          </td>
          {% elif (cat.state == "created" or cat.state == "modified") %}
          <td class="col-md-1 text-center">
            <a title="Supprimer changements">
              <button class="btn btn-default cat-delete-toggle {% if readonly %}disabled{% endif %}" id="delete_button_edited_{{ cat.cat_id }}{% if buttons_id %}-{{ buttons_id }}{% endif %}">
                <span id="delete_icon_edited_{{ cat.cat_id }}"class="glyphicon glyphicon-remove-sign"/>
              </button>
            </a>
          </td>
          {% else %}
          <td colspan="2" class="text-center">
            <form method="POST" action="{{url_for('categories.delete_category', deleted_cat_id=cat.cat_id, repository=current_repository, redirect_to=redirect_target)}}" class="form-inline">
              <input name="csrf_token" value="{{ csrf_token() }}" type="hidden">
              <a title="Restaurer catégorie">
                <button class="btn btn-default" type="submit">Restaurer</button>
              </a>
            </form>
          </td>
          {% endif %}
        {% endif %}
      </tr>
      <tr
        {% if with_colors %}
          {% if cat.state == "created" %}
            class="success"
          {% elif cat.state == "modified" %}
            class="warning"
          {% elif cat.state == "deleted" %}
            class="danger"
          {% endif %}
        {% endif %}>
        <td colspan="5">
          <div class="cat-info-div" id="properties_{% if (cat.state != 'untouched') and (cat.state != 'original') %}edited_{% endif %}{{cat.cat_id}}{% if buttons_id %}-{{ buttons_id }}{% endif %}">
            <dl class="dl-horizontal">
            {% if cat.cat_properties|length == 0 %} <dt></dt><dd>Aucune autre propriété</dd>
            {% else %}
              {% for (predicate, object) in cat.cat_properties %}
                <dt>{{ get_property_list()[current_repository][predicate.toPython()]["descriptive_label_fr"] }}</dt>
                <dd>
                  {% if get_property_list()[current_repository][predicate.toPython()]["object_type"]=="uriref-category" %}
                    {% for cat in cat_list %}
                      {% if object == config["CATEGORY_NAMESPACE"][cat.cat_id] %}
                        {{ cat.cat_label }}
                      {% endif %}
                    {% endfor %}
                  {% elif get_property_list()[current_repository][predicate.toPython()]["object_type"]=="uriref-link" %}
                    <a href="{{ object }}">{{ object }}</a>
                  {% else %}
                    {{ object }}
                  {% endif %}
                </dd>
              {% endfor %}
            {% endif %}
            </dl>
          </div>
          {% if interactive %}
            {% if cat.state != "deleted" %}
            <div class="cat-delete-div" id="delete_confirm_{% if ((cat.state != 'untouched') and (cat.state != 'original')) %}edited_{% endif %}{{cat.cat_id}}{% if buttons_id %}-{{ buttons_id }}{% endif %}">
              <form method="POST" action=
                "{% if cat.state == 'modified' or cat.state == 'created' %}
                  {{url_for('categories.delete_changes', deleted_changes_id=cat.cat_id, repository=current_repository, redirect_to=redirect_target)}}
                 {% else %}
                  {{url_for('categories.delete_category', deleted_cat_id=cat.cat_id, repository=current_repository, redirect_to=redirect_target)}}
                 {% endif %}" class="form-inline">
                <label> Vous allez supprimer {% if (cat.state == "modified") or (cat.state == "created") %} les changements sur {% endif %} la catégorie. </label>
                <input name="csrf_token" value="{{ csrf_token() }}" type="hidden">
                <a title="Supprimer {% if cat.state == 'modified' %}changements{% else %}catégorie{% endif %}">
                  <button class="btn btn-default {% if readonly %}disabled{% endif %}" type="submit">Confirmer suppression</button>
                </a>
              </form>
            </div>
            {% endif %}
          {% endif %}
        </td>
      </tr>
    {% endif %}
  {% endfor %}
{%- endmacro %}

{% macro render_pagination(pagination, per_page, page_arg_name="page", per_page_arg_name="per_page") -%}
  {% if pagination %}
    <ul class="pagination">
    {% if pagination.has_prev %}
      <li><a href="{{ url_for_other_page(pagination.page - 1, page_arg_name)}}" aria-label="Previous">&laquo;</a></li>
    {% endif %}
    {% for page in pagination.iter_pages() %}
      {% if page %}
        {% if page != pagination.page %}
          <li><a href="{{ url_for_other_page(page, page_arg_name) }}">{{ page }}</a></li>
        {% else %}
          <li class="active"><a>{{ page }}</a></li>
        {% endif %}
      {% else %}
        <li><span class=ellipsis></span></li>
      {% endif %}
    {% endfor %}
    {% if pagination.has_next %}
      <li><a href="{{ url_for_other_page(pagination.page + 1, page_arg_name)}}" aria-label="Next">&raquo;</a></li>
    {% endif %}
    </ul>
  {% endif %}
  <form class="form form-inline form-pagination">
    <label class="label-pagination">Par page:</label>
    <select class="form-control" name="comment_count" onchange="window.location.href=this.form.comment_count.options[this.form.comment_count.selectedIndex].value">
      {% for count in [10, 30, 50, 100] %}
        <option value="{{url_for_other_per_page(count, per_page_arg_name, per_page_arg_name)}}" {% if per_page==count %}selected="selected"{% endif %}>{{count}}</option>
      {% endfor %}
    </select>
  </form>
{%- endmacro %}