Add filter-posts (unfinished) + UI/UX improvements
parent
ee5eb1af0e
commit
961808d59c
@ -0,0 +1,191 @@
|
||||
<h3>Filters being applied: <button id="btncollapse-filters-all">hide</button></h3>
|
||||
<div id="filters-all"></div>
|
||||
<span id="filters-all-item">
|
||||
<a href="javascript:window.set_hash_argument('filter_id','{id}')">
|
||||
<div class="btn mid card inline" style="margin-right: .5em; margin-bottom: .5em">
|
||||
<i class="fa fa-filter fa-fw"></i>{name}
|
||||
<button class="btn small red"
|
||||
onclick="{view.js}.delete_filter('{id}');event.preventDefault()">
|
||||
<i class="fa fa-close fa-fw"></i>
|
||||
</button>
|
||||
</div>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<h3>
|
||||
<span id="filter-current-name">*New filter</span>:
|
||||
<button id="btncollapse-filters-current">hide</button>
|
||||
<button class="btn mid green center"
|
||||
onclick="window.del_hash_argument('filter_id');
|
||||
{view.js}.set_current_filter({})"
|
||||
><i class="fa fa-plus fa-fw"></i>
|
||||
New</button>
|
||||
</h3>
|
||||
<div id="filters-current">
|
||||
<div class="card">
|
||||
<div class="input">
|
||||
<input type="hidden" name="preset_id" value="-1"/>
|
||||
<label for="preset_name">Preset name:</label>
|
||||
<input type="text" name="preset_name" placeholder="Preset name" value="Undefined"/>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label for="profile">Post content:</label>
|
||||
<input type="radio" id="post-search-type-simple"
|
||||
name="post_search_type" value="simple" checked
|
||||
/><label for="post-search-type-simple">simple</label>
|
||||
<input type="radio" id="post-search-type-expr"
|
||||
name="post_search_type" value="expr"
|
||||
/><label for="post-search-type-expr">expr</label>
|
||||
<br class="sep"/>
|
||||
<textarea name="profile" placeholder="Input your text here"
|
||||
style="width: 100%; min-width: 24em; min-height: 6em"></textarea>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label for="instances">Instances:</label>
|
||||
<br class="sep"/>
|
||||
<textarea name="instances" placeholder="instance1.org, server2.com, !not-this-one.com"
|
||||
style="width: 100%; min-width: 24em; min-height: 4em"></textarea>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label for="languages">Languages:</label>
|
||||
<br class="sep"/>
|
||||
<textarea name="languages" placeholder="es, en, de"
|
||||
style="width: 100%; min-width: 24em; min-height: 4em"></textarea>
|
||||
</div>
|
||||
<br>
|
||||
<div class="input flex">
|
||||
<button class="btn center"
|
||||
onclick="{view.js}.toggle_filter('{id}')"
|
||||
><i class="fa fa-search fa-fw"></i>
|
||||
{enableOrDisable}</button>
|
||||
<div style="width:1em"></div>
|
||||
<button class="btn center"
|
||||
onclick="{view.js}.save_filter()"
|
||||
><i class="fa fa-save fa-fw"></i>
|
||||
Save filter</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="filter-instance-action"></div>
|
||||
<div id="filter-instance-action-item">
|
||||
<div class="card">
|
||||
<div class="flex">
|
||||
<span class="center"><i class="fa fa-info-circle fa-fw"></i>
|
||||
Action for users matching this filter on <b>{instance}</b>
|
||||
</span>
|
||||
</div>
|
||||
<hr><br>
|
||||
<div class="input">
|
||||
<label for="instance_action_name">What to do:</label>
|
||||
<br class="sep"/>
|
||||
<select name="instance_action_name">
|
||||
<option value="none">None (do nothing)</option>
|
||||
<option value="report">Report</option>
|
||||
<option value="silence">Silence</option>
|
||||
<option value="sensible">Sensible</option>
|
||||
<option value="suspend">Suspend</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label for="instance_action_explain">Generic explanation to users:</label>
|
||||
<br class="sep"/>
|
||||
<textarea type="text" name="instance_action_explain" style="min-height: 6em" class="w100"
|
||||
placeholder="Generic explanation that will be sent to users when an action is taken..."></textarea>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label for="instance_action_interval">Job interval (in seconds):</label>
|
||||
<input type="number" name="instance_action_interval" placeholder="60"/>
|
||||
</div>
|
||||
<br>
|
||||
<div class="input flex">
|
||||
<button class="btn center" onclick="
|
||||
{view.js}.save_filter_action('{id}')"
|
||||
><i class="fa fa-save fa-fw"></i> Save filter action</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Timeline:
|
||||
<button id="btncollapse-results-box">hide</button>
|
||||
<button onclick="{view.js}.execute()" class="btn mid center">
|
||||
<i class="fa fa-search fa-fw"></i></button>
|
||||
</h3>
|
||||
<div id="results-box">
|
||||
<div id="paging"></div>
|
||||
<div id="paging-item">
|
||||
<button class="btn mid" onclick="
|
||||
{view.js}.execute({prev_page},{items_per_page})"
|
||||
><i class="fa fa-chevron-left fa-fw"></i></button>
|
||||
<button class="btn mid" onclick="
|
||||
{view.js}.execute({next_page},{items_per_page})"
|
||||
><i class="fa fa-chevron-right fa-fw"></i></button>
|
||||
<span>{current_page} / {total_pages} ({total_users} users)</span>
|
||||
</div>
|
||||
<div id="users-all"></div>
|
||||
<div id="users-all-item" data-id="{id}">
|
||||
<div class="card software {software} {silencedClass}">
|
||||
<div class="flex disable-able">
|
||||
<img data-src="{avatar}"/>
|
||||
<div class="w100" style="padding:0 1em">
|
||||
<b style="font-size: 1.1em">{name}</b>
|
||||
<br>
|
||||
<span class="gray">@{acct}</span>
|
||||
<div class="props flex">
|
||||
<span>{statuses}<br><span class="gray">statuses</span></span>
|
||||
<span>{following}<br><span class="gray">following</span></span>
|
||||
<span>{followers}<br><span class="gray">followers</span></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="only mastodon">{mastodon:fields}</div>
|
||||
<div class="note">{note}</div>
|
||||
<div style="margin-top: 1em; text-align: right;">
|
||||
|
||||
<div style="float:left">
|
||||
|
||||
<button onclick="if ({do.js}.users.trust_user('{acct}'))
|
||||
E.element('.item[data-id="{id}"]').remove()"
|
||||
title="Add this user to the trusted_users list"
|
||||
class="btn mid green"><i class="fa fa-thumbs-up fa-fw"></i>
|
||||
Trust</button>
|
||||
|
||||
<a href="{accountAdminLink}" target="_blank" rel="noreferrer noopener">
|
||||
<button class="btn mid"
|
||||
title="Open this account in the AP application manager"
|
||||
><i class="fa fa-id-card fa-fw"></i>
|
||||
Manage</button>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<button onclick="if ({do.js}.users.hide_on_filters('{acct}', 86400))
|
||||
E.element('.item[data-id="{id}"]').remove()"
|
||||
title="Hide the selected account for 1 day (24 hours)"
|
||||
class="btn mid"><i class="fa fa-clock-o fa-fw"></i>
|
||||
Hide 1d</button>
|
||||
|
||||
<button onclick="
|
||||
if ('' === '{disabledClass}') {
|
||||
if ({do.js}.users.silence('{id}')) {
|
||||
E.element('.item[data-id="{id}"]').classList.add('silenced');
|
||||
this.querySelector('span').innerText = 'Silenced';
|
||||
this.setAttribute('disabled', 'true');
|
||||
}
|
||||
}"
|
||||
title="Silence this user on the instance"
|
||||
class="btn mid disable-able" {disabledHTML}>
|
||||
<i class="fa fa-volume-mute fa-fw"></i>
|
||||
<span>{silencedText}</span></button>
|
||||
|
||||
<button onclick="if ({do.js}.users.suspend('{id}')) {
|
||||
E.element('.item[data-id="{id}"]').classList.add('suspended');
|
||||
this.querySelector('span').innerText = 'Suspended'}"
|
||||
title="Suspend this user on the instance"
|
||||
class="btn mid red"><i class="fa fa-ban fa-fw"></i>
|
||||
<span>Suspend</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="paging" class="bottom"></div>
|
||||
</div>
|
||||
<br>
|
Loading…
Reference in New Issue