blob: 50e4b2fa29c968ad86a4216a97eda07812287aad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
{% extends "_layouts/base.html" %}
{% load static %}
{% load i18n %}
{% block head %}
<link type="text/css" rel="stylesheet" href="{% static 'css/journals/journals.css' %}" />
<link type="text/css" rel="stylesheet" href="{% static 'css/journals/modes.css' %}" />
{% endblock head %}
{% block content %}
<div class="journals-page">
{% include "journals/_partials/journal_header.html" with journal=journal tab=tab %}
<div class="tab-content">
{% if messages %}
<div class="form-messages">
{% for message in messages %}
<div class="form-message {{ message.tags }}">
<span class="message-icon">{% if message.tags == 'error' %}⚠️{% else %}✓{% endif %}</span>
<span class="message-text">{{ message }}</span>
</div>
{% endfor %}
</div>
{% endif %}
<div class="section-header">
<h2 class="section-title">{% trans "Table of Contents" %}</h2>
<a href="{% url 'services:journals:journal' journal.slug %}?tab=new&from=toc" class="create-btn">
<span class="btn-icon">+</span>
<span class="btn-text">{% trans "New" %} {{ journal.entry_label }}</span>
</a>
</div>
{% if toc_volumes %}
<div class="toc-container">
{% for volume in toc_volumes %}
<div class="toc-volume">
<div class="toc-volume-header">
<span class="toc-volume-order">{% trans "Vol." %} {{ volume.order }}</span>
<h3 class="toc-volume-title">{{ volume.title }}</h3>
<span class="toc-volume-count">{{ volume.entries_count }} {% if volume.entries_count == 1 %}{{ journal.entry_label|lower }}{% else %}{{ journal.entry_label_plural|lower }}{% endif %}</span>
<a href="{% url 'services:journals:journal' journal.slug %}?tab=new&volume={{ volume.id }}&from=toc" class="toc-add-btn" title="{% trans 'Add' %} {{ journal.entry_label|lower }}">+</a>
</div>
{% if volume.description %}
<p class="toc-volume-description">{{ volume.description }}</p>
{% endif %}
{% if volume.entries.all %}
<div class="toc-chapters">
{% for entry in volume.entries.all %}
<a href="{% url 'services:journals:journal' journal.slug %}?tab=edit&entry={{ entry.slug }}" class="toc-chapter">
<span class="toc-chapter-order">{{ forloop.counter }}</span>
<span class="toc-chapter-title">{{ entry.title }}</span>
{% if entry.is_draft %}
<span class="toc-draft-badge">{% trans "Draft" %}</span>
{% endif %}
{% if entry.word_count %}
<span class="toc-word-count">{{ entry.word_count }} {% trans "words" %}</span>
{% endif %}
</a>
{% endfor %}
</div>
{% endif %}
</div>
{% endfor %}
</div>
{% endif %}
{% if toc_unassigned %}
<div class="toc-unassigned">
<div class="toc-volume-header">
<h3 class="toc-volume-title">{% if toc_volumes %}{% trans "Unassigned" %}{% else %}{% trans "All" %} {{ journal.entry_label_plural }}{% endif %}</h3>
<span class="toc-volume-count">{{ toc_unassigned|length }} {% if toc_unassigned|length == 1 %}{{ journal.entry_label|lower }}{% else %}{{ journal.entry_label_plural|lower }}{% endif %}</span>
</div>
<div class="toc-chapters">
{% for entry in toc_unassigned %}
<a href="{% url 'services:journals:journal' journal.slug %}?tab=edit&entry={{ entry.slug }}" class="toc-chapter">
<span class="toc-chapter-order">{{ forloop.counter }}</span>
<span class="toc-chapter-title">{{ entry.title }}</span>
{% if entry.is_draft %}
<span class="toc-draft-badge">{% trans "Draft" %}</span>
{% endif %}
{% if entry.word_count %}
<span class="toc-word-count">{{ entry.word_count }} {% trans "words" %}</span>
{% endif %}
</a>
{% endfor %}
</div>
</div>
{% endif %}
{% if not toc_volumes and not toc_unassigned %}
<div class="empty-state">
<h3>{% trans "No" %} {{ journal.entry_label_plural }} {% trans "Yet" %}</h3>
<p>{% trans "Start writing and organize them into volumes." %}</p>
<a href="{% url 'services:journals:journal' journal.slug %}?tab=new&from=toc" class="empty-action-btn">
{% trans "Create Your First" %} {{ journal.entry_label }}
</a>
</div>
{% endif %}
</div>
</div>
{% endblock content %}
{% block scripts %}
<script src="{% static 'js/journals/common.js' %}"></script>
{% endblock scripts %}
|