Lists support (draft)

This commit is contained in:
Thomas Sileo
2019-07-22 20:32:35 +02:00
parent cbd7fc6446
commit fe4ea02cb0
4 changed files with 195 additions and 1 deletions

View File

@@ -11,12 +11,40 @@
{% for (follow_id, follow) in following_data %}
{% if session.logged_in %}
<div style="margin-left:90px;padding-bottom:5px;margin-bottom:15px;display:inline-block;">
<form action="/api/undo" class="action-form" method="POST">
<form action="/api/undo" class="action-form" method="post">
<input type="hidden" name="redirect" value="{{ request.path }}"/>
<input type="hidden" name="id" value="{{ follow_id }}"/>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
<button type="submit" class="bar-item">unfollow</button>
</form>
<form action="/api/add_to_list" class="action-form" method="post">
<input type="hidden" name="redirect" value="{{ request.path }}"/>
<input type="hidden" name="actor_id" value="{{ follow.id }}"/>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
<select name="list_name" style="float:left;">
<option></option>
{% for l in lists %}
{% if follow.id not in l.members %}
<option value="{{l.name}}">{{l.name}}</option>
{% endif %}
{% endfor %}
</select>
<button type="submit" class="bar-item">add to list</button>
</form>
{% for l in lists %}
{% if follow.id in l.members %}
<form action="/api/remove_from_list" class="action-form" method="post">
<input type="hidden" name="redirect" value="{{ request.path }}"/>
<input type="hidden" name="actor_id" value="{{ follow.id }}"/>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
<button type="submit" class="bar-item">remove from {{ l.name }}</button>
</form>
{% endif %}
{% endfor %}
</div>
{% endif %}

View File

@@ -28,6 +28,7 @@
<li class="left"><a href="/admin/new"{% if request.path == "/admin/new" %} class="selected" {% endif %}>New</a></li>
<li class="left"><a href="/admin/stream"{% if request.path == "/admin/stream" %} class="selected" {% endif %}>Stream</a></li>
<li class="left"><a href="/admin/notifications"{% if request.path == "/admin/notifications" %} class="selected" {% endif %}>Notifications</a></li>
<li class="left"><a href="/admin/lists"{% if request.path == url_for('admin_lists') %} class="selected" {% endif %}>Lists</a></li>
<li class="left"><a href="/admin/bookmarks"{% if request.path == "/admin/bookmarks" %} class="selected" {% endif %}>Bookmarks</a></li>
<li class="left"><a href="/admin/lookup"{% if request.path == "/admin/lookup" %} class="selected" {% endif %}>Lookup</a></li>
<li class="left"><a href="/admin/logout">Logout</a></li>

61
templates/lists.html Normal file
View File

@@ -0,0 +1,61 @@
{% extends "layout.html" %}
{% import 'utils.html' as utils %}
{% block title %}Lists - {{ config.NAME }}{% endblock %}
{% block headers %}
{% endblock %}
{% block content %}
<div id="container">
{% include "header.html" %}
<div id="following">
<h2>New List</h2>
<form action="/api/new_list" method="POST">
<input type="hidden" name="redirect" value="{{ url_for('admin_lists') }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<input type="text" name="name" placeholder="My list">
<input type="submit" value="Create">
</form>
<h2>Lists</h2>
<p>Manage list members in the <a href="{{ url_for('following') }}">Following section</a></p>
<ul>
{% for l in lists %}
<li><a href="{{url_for('admin_list', name=l.name)}}">{{ l.name }}</a></li>
{% endfor %}
</ul>
<h2>Manage lists</h2>
{% for l in lists %}
<h3><a href="{{url_for("admin_list", name=l.name)}}">{{ l.name }}</a> <small style="font-weight:normal">{{ l.members | length }} members</small></h3>
<form action="/api/delete_list" method="post">
<input type="hidden" name="redirect" value="{{ request.path }}"/>
<input type="hidden" name="name" value="{{ l.name }}"/>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
<button type="submit" class="bar-item">delete list</button>
</form>
<div style="clear:both;padding-top:30px;">
{% for member in l.members %}
<div style="margin-left:90px;padding-bottom:5px;margin-bottom:15px;display:inline-block;">
<form action="/api/remove_from_list" class="action-form" method="post">
<input type="hidden" name="redirect" value="{{ request.path }}"/>
<input type="hidden" name="actor_id" value="{{ member }}"/>
<input type="hidden" name="list_name" value="{{ l.name }}"/>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
<button type="submit" class="bar-item">remove from {{ l.name }}</button>
</form>
</div>
<div style="height: 100px;">
{{ utils.display_actor_inline(member | get_actor, size=80) }}
</div>
{% endfor %}
{% endfor %}
</div>
</div>
</div>
{% endblock %}