Merge pull request #2638 from alphagov/copy-template-from-folders

Allow users to navigate folders when copying
This commit is contained in:
Chris Hill-Scott
2019-01-09 12:26:29 +00:00
committed by GitHub
10 changed files with 545 additions and 81 deletions

View File

@@ -28,6 +28,37 @@
{% endmacro %}
{% macro copy_folder_path(
folder_path,
current_service_id,
from_service
) %}
{% if folder_path %}
<h2 class="heading-medium folder-heading">
{% if folder_path|length == 1 %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id) }}">Services</a>
{{ folder_path_separator() }}
{% endif %}
{% for folder in folder_path %}
{% if loop.last %}
<span class="folder-heading-folder">
{{ folder.name if folder.id else from_service.name }}
</span>
{% else %}
{% if folder.id %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ folder.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
{% elif folder.parent_id == None %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ from_service.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
{% else %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id) }}">{{ from_service.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
{% endif %}
{% endif %}
{% endfor %}
</h2>
{% endif %}
{% endmacro %}
{% macro page_title_folder_path(
folders,
fallback_page_title=None,

View File

@@ -1,4 +1,5 @@
{% from "components/message-count-label.html" import message_count_label %}
{% from "components/folder-path.html" import copy_folder_path, page_title_folder_path %}
{% from "components/live-search.html" import live_search %}
{% extends "withnav_template.html" %}
@@ -8,30 +9,49 @@
{% block maincolumn_content %}
<div class="bottom-gutter-3-2">
<div class="bottom-gutter-1-2">
<h1 class="heading-large">Copy an existing template</h1>
{{ copy_folder_path(template_folder_path, current_service.id, from_service) }}
</div>
<nav>
{% for service in services %}
{% set templates = service.get_templates(current_service.permissions) %}
{% if templates and services|length > 1 %}
<h2 class="">
{{ service.name }}
</h2>
<div class="left-gutter-4-3 bottom-gutter-3-2">
{% endif %}
{% for template in templates %}
<h2 class="message-name">
<a href="{{ url_for('.copy_template', service_id=current_service.id, template_id=template.id, from_service=service.id) }}">{{ template.name }}</a>
</h2>
<p class="message-type">
{{ message_count_label(1, template.template_type, suffix='')|capitalize }} template
</p>
{% endfor %}
{% if templates %}
{% if not services_templates_and_folders.templates_to_show %}
<p class="template-list-empty">
This folder is empty
</p>
{% else %}
{{ live_search(target_selector='#template-list .template-list-item', show=True, form=search_form) }}
<nav id="template-list">
{% for item in services_templates_and_folders %}
<div class="template-list-item {% if item.ancestors %}template-list-item-hidden-by-default{% endif %} {% if not item.ancestors %}template-list-item-without-ancestors{% endif %}">
<h2 class="message-name {% if item.is_folder or (item.ancestors and not item.is_folder) %}template-list-folder{% endif %}">
{% for ancestor in item.ancestors %}
{% if ancestor.is_service %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service.id, from_service=ancestor.service_id) }}">
{% else %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service.id, from_folder=ancestor.id) }}">
{% endif %}
{{ ancestor.name }}
</a> <span class="message-name-separator">/</span>
{% endfor %}
{% if item.is_service %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service.id, from_service=item.service_id) }}">
<span class="live-search-relevant">{{ item.name }}</span>
</a>
{% elif item.is_folder %}
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service.id, from_service=item.service_id, from_folder=item.id) }}">
<span class="live-search-relevant">{{ item.name }}</span>
</a>
{% else %}
<a href="{{ url_for('.copy_template', service_id=current_service.id, template_id=item.id, from_service=item.service_id) }}">
<span class="live-search-relevant">{{ item.name }}</span>
</a>
{% endif %}
</h2>
<p class="message-type">
{{ item.hint }}
</p>
</div>
{% endif %}
{% endfor %}
</nav>
{% endfor %}
</nav>
{% endif %}
{% endblock %}