]> git.lizzy.rs Git - cheatdb.git/blobdiff - app/templates/macros/threads.html
Add ability to edit comments
[cheatdb.git] / app / templates / macros / threads.html
index b74edda15a610888f994bf3ca41a61ca79bb8858..21283d794c67c1420fd1208c1ec9f32fca8a2d40 100644 (file)
 {% macro render_thread(thread, current_user) -%}
-       <ul class="comments">
-               {% for r in thread.replies %}
-                       <li>
-                               <div class="info_strip">
+
+<ul class="comments mt-4 mb-0">
+       {% for r in thread.replies %}
+       <li class="row my-2 mx-0">
+               <div class="col-md-1 p-1">
+                       <a href="{{ url_for('users.profile', username=r.author.username) }}">
+                               <img class="img-responsive user-photo img-thumbnail img-thumbnail-1" src="{{ r.author.getProfilePicURL() }}">
+                       </a>
+               </div>
+               <div class="col pr-0">
+                       <div class="card">
+                               <div class="card-header">
                                        <a class="author {{ r.author.rank.name }}"
-                                                       href="{{ url_for('user_profile_page', username=r.author.username) }}">
-                                               {{ r.author.display_name }}</a>
-                                       <span>{{ r.created_at | datetime }}</span>
-                                       <div class="clearboth"></div>
+                                                       href="{{ url_for('users.profile', username=r.author.username) }}">
+                                               {{ r.author.display_name }}
+                                       </a>
+                                       <a name="reply-{{ r.id }}" class="text-muted float-right"
+                                                       href="{{ url_for('threads.view', id=thread.id) }}#reply-{{ r.id }}">
+                                               {{ r.created_at | datetime }}
+                                       </a>
                                </div>
-                               <div class="msg">
-                                       {{ r.comment }}
+
+                               <div class="card-body">
+                                       {% if current_user == thread.author and thread.review and thread.replies[0] == r %}
+                                               <a class="float-right btn btn-primary btn-sm ml-2"
+                                                               href="{{ thread.review.package.getReviewURL() }}">
+                                                       <i class="fas fa-edit"></i>
+                                               </a>
+                                       {% elif r.checkPerm(current_user, "EDIT_REPLY") %}
+                                               <a class="float-right btn btn-primary btn-sm ml-2"
+                                                               href="{{ url_for('threads.edit_reply', id=thread.id, reply=r.id) }}">
+                                                       <i class="fas fa-edit"></i>
+                                               </a>
+                                       {% endif %}
+
+                                       {% if r.checkPerm(current_user, "DELETE_REPLY") %}
+                                               <a class="float-right btn btn-secondary btn-sm ml-2"
+                                                               href="{{ url_for('threads.delete_reply', id=thread.id, reply=r.id) }}">
+                                                       <i class="fas fa-trash"></i>
+                                               </a>
+                                       {% endif %}
+
+                                       {{ r.comment | markdown }}
                                </div>
-                       </li>
-               {% endfor %}
-       </ul>
-
-       {% if current_user.is_authenticated %}
-               <form method="post" action="{{ url_for('thread_page', id=thread.id)}}" class="comment_form">
-                       <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
-                       <textarea required maxlength=500 name="comment"></textarea><br />
-                       <input type="submit" value="Comment" />
-               </form>
-       {% endif %}
+                       </div>
+               </div>
+       </li>
+       {% endfor %}
+</ul>
+
+{% if thread.locked %}
+       <p class="my-0 py-4 text-center">
+               <i class="fas fa-lock mr-3"></i>
+               {{ _("This thread has been locked by a moderator.") }}
+       </p>
+{% endif %}
+
+{% if current_user.is_authenticated %}
+<div class="row mt-0 mb-4 comments mx-0">
+       <div class="col-md-1 p-1">
+               <img class="img-responsive user-photo img-thumbnail img-thumbnail-1" src="{{ current_user.getProfilePicURL() }}">
+       </div>
+       <div class="col">
+               <div class="card">
+                       <div class="card-header {{ current_user.rank.name }}">
+                               {{ current_user.display_name }}
+                               <a name="reply"></a>
+                       </div>
+
+                       {% if not current_user.canCommentRL() %}
+                               <div class="card-body">
+                                       <textarea class="form-control" readonly disabled>{{ _("Please wait before commenting again.") }}</textarea><br />
+                                       <input class="btn btn-primary" type="submit" disabled value="Comment" />
+                               </div>
+                       {% elif not thread.checkPerm(current_user, "COMMENT_THREAD") %}
+                               <div class="card-body">
+                                       {% if thread.locked %}
+                                               <textarea class="form-control" readonly disabled>{{ _("This thread has been locked.") }}</textarea><br />
+                                       {% else %}
+                                               <textarea class="form-control" readonly disabled>{{ _("You don't have permission to post.") }}</textarea><br />
+                                       {% endif %}
+                                       <input class="btn btn-primary" type="submit" disabled value="Comment" />
+                               </div>
+                       {% else %}
+                               <form method="post" action="{{ url_for('threads.view', id=thread.id)}}" class="card-body">
+                                       <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
+                                       <textarea class="form-control markdown" required maxlength=500 name="comment"></textarea><br />
+                                       <input class="btn btn-primary" type="submit" value="Comment" />
+                               </form>
+                       {% endif %}
+               </div>
+       </div>
+</div>
+{% endif %}
 {% endmacro %}
 
-{% macro render_threadlist(threads) -%}
-       <ul>
-               {% for t in threads %}
-                       <li><a href="{{ url_for('thread_page', id=t.id) }}">{{ t.title }}</a> by {{ t.author.display_name }}</li>
-               {% endfor %}
-       </ul>
+{% macro render_threadlist(threads, compact=False) -%}
+       {% for t in threads %}
+               <a class="list-group-item list-group-item-action"
+                               href="{{ url_for('threads.view', id=t.id) }}">
+                       {% if compact %}
+                               {% if t.private %}&#x1f512; {% endif %}
+                               <strong>{{ t.title }}</strong>
+                               by {{ t.author.display_name }}
+                       {% else %}
+                               <div class="row">
+                                       <div class="col-sm">
+                                               <span class="mr-3">
+                                                       {% if not t.review and t.private %}
+                                                               <i class="fas fa-lock" style="color:#ffac33;"></i>
+                                                       {% elif not t.review %}
+                                                               <i class="fas fa-comment-alt" style="color:#666;"></i>
+                                                       {% elif t.review.recommends %}
+                                                               <i class="fas fa-thumbs-up" style="color:#6f6;"></i>
+                                                       {% else %}
+                                                               <i class="fas fa-thumbs-down" style="color:#f66;"></i>
+                                                       {% endif %}
+                                               </span>
+
+                                               <strong>{{ t.title }}</strong>
+                                               by {{ t.author.display_name }}
+                                       </div>
+
+                                       <div class="col-sm">
+                                               {% if t.package %}
+                                                       {{ _("%(title)s by %(author)s",
+                                                                       title="<b>" | safe + t.package.title + "</b>" | safe,
+                                                                       author=t.package.author.display_name) }}
+                                               {% endif %}
+                                       </div>
+
+                                       <div class="col-sm-auto text-muted text-right">
+                                               {{ t.created_at | datetime }}
+                                       </div>
+                               </div>
+                       {% endif %}
+               </a>
+       {% else %}
+               <p class="list-group-item"><i>No threads found</i></p>
+       {% endfor %}
 {% endmacro %}