Merge remote-tracking branch 'origin/develop' into threads-enhancement

main
psychobunny 8 years ago
commit 67f45c6c2e

@ -0,0 +1,15 @@
.page-flags {
[component="flags/list"] {
td {
max-width: 300px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
[component="flags/list/description"] {
font-style: italic;
color: @gray-light;
}
}
}

@ -17,6 +17,7 @@
@import "footer";
@import "posts_list";
@import "register";
@import "flags";
@import "mobile";

@ -7,9 +7,9 @@
<div class="row">
<div class="col-xs-12 hidden-xs">
<!-- IF picture -->
<img id="user-current-picture" class="avatar avatar-lg avatar-rounded" src="{picture}" />
<img id="user-current-picture" class="avatar avatar-xl avatar-rounded" src="{picture}" />
<!-- ELSE -->
<div class="avatar avatar-lg avatar-rounded" style="background-color: {icon:bgColor};">{icon:text}</div>
<div class="avatar avatar-xl avatar-rounded" style="background-color: {icon:bgColor};">{icon:text}</div>
<!-- ENDIF picture -->
</div>
</div>

@ -0,0 +1,201 @@
<div class="row">
<div class="col-sm-4 col-md-3">
<!-- IMPORT partials/flags/filters.tpl -->
</div>
<div class="col-sm-8 col-md-9">
<h2>
<div class="pull-right">
<a class="btn btn-link" href="{config.relative_path}/flags"><i class="fa fa-chevron-left"></i> [[flags:back]]</a>
</div>
{target_readable}
<small><span class="timeago" title="{datetimeISO}"></span></small>
</h2>
<hr />
<!-- IF type_bool.post -->
<div class="media">
<div class="media-left">
<a href="{config.relative_path}/user/{target.user.userslug}">
<!-- IF target.user.picture -->
<img class="media-object avatar avatar-lg" src="{target.user.picture}" alt="{target.user.username}" />
<!-- ELSE -->
<div class="media-object avatar avatar-lg" style="background-color: {target.user.icon:bgColor}">{target.user.icon:text}</div>
<!-- ENDIF target.user.picture -->
</a>
</div>
<div class="media-body">
<h4 class="media-heading"><a href="{config.relative_path}/user/{target.user.userslug}">{target.user.username}</a></h4>
{target.content}
</div>
</div>
<!-- ENDIF type_bool.post -->
<!-- IF type_bool.user -->
<div class="media">
<div class="media-left">
<a href="{config.relative_path}/user/{target.userslug}">
<!-- IF target.picture -->
<img class="media-object avatar avatar-lg" src="{target.picture}" alt="{target.username}" />
<!-- ELSE -->
<div class="media-object avatar avatar-lg" style="background-color: {target.icon:bgColor}">{target.icon:text}</div>
<!-- ENDIF target.picture -->
</a>
</div>
<div class="media-body">
<h4 class="media-heading"><a href="{config.relative_path}/user/{target.userslug}">{target.username}</a></h4>
<p class="lead">
<a href="{config.relative_path}/uid/{target.uid}">[[flags:user-view]]</a> |
<a href="{config.relative_path}/uid/{target.uid}/edit">[[flags:user-edit]]</a>
</p>
</div>
</div>
<!-- ENDIF type_bool.user -->
<!-- IF type_bool.empty -->
<div class="alert alert-warning">[[flags:target-purged]]</div>
<!-- ENDIF type_bool.empty -->
<hr />
<div class="row">
<div class="col-sm-6 col-md-8">
<form role="form" id="attributes">
<div class="form-group row">
<div class="col-sm-6">
<label>[[flags:reporter]]</label>
<div>
<!-- IF reporter.picture -->
<img class="media-object avatar avatar-sm" src="{reporter.picture}" alt="{reporter.username}" />
<!-- ELSE -->
<div class="media-object avatar avatar-sm" style="background-color: {reporter.icon:bgColor}">{reporter.icon:text}</div>
<!-- ENDIF reporter.picture -->
<a href="{config.relative_path}/user/{reporter.userslug}">{reporter.username}</a>
</div>
</div>
<div class="col-sm-6">
<label>[[flags:reported-at]]</label>
<p>
{datetimeISO}
</p>
</div>
</div>
<div class="form-group">
<label>[[flags:description]]</label>
<blockquote>{description}</blockquote>
</div>
<div class="form-group">
<label for="state">[[flags:state]]</label>
<select class="form-control" id="state" name="state" disabled>
<option value="open">[[flags:state-open]]</option>
<option value="wip">[[flags:state-wip]]</option>
<option value="resolved">[[flags:state-resolved]]</option>
<option value="rejected">[[flags:state-rejected]]</option>
</select>
</div>
<div class="form-group">
<label for="assignee">[[flags:assignee]]</label>
<select class="form-control" id="assignee" name="assignee" disabled>
<option value="">[[flags:no-assignee]]</option>
<!-- BEGIN assignees -->
<option value="{../uid}">{../username}</option>
<!-- END assignees -->
</select>
</div>
<button type="button" class="btn btn-block btn-primary" data-action="update">[[flags:update]]</button>
</form>
<hr />
<form role="form">
<div class="form-group">
<label for="note">[[flags:notes]]</label>
<textarea id="note" class="form-control"></textarea>
<button type="button" class="btn btn-block btn-primary" data-action="appendNote">[[flags:add-note]]</button>
</div>
</form>
<div component="flag/notes">
<!-- IF !notes.length -->
<div class="alert alert-success text-center">[[flags:no-notes]]</div>
<!-- ENDIF !notes.length -->
<!-- BEGIN notes -->
<div class="media">
<div class="media-left">
<a href="{config.relative_path}/user/{../user.userslug}">
<!-- IF ../user.picture -->
<img class="media-object avatar avatar-md" src="{../user.picture}" alt="{../user.username}" />
<!-- ELSE -->
<div class="media-object avatar avatar-md" style="background-color: {../user.icon:bgColor}">{../user.icon:text}</div>
<!-- ENDIF ../user.picture -->
</a>
</div>
<div class="media-body">
<h4 class="media-heading">
<a href="{config.relative_path}/user/{../user.userslug}">{../user.username}</a>
<small><span class="timeago" title="{../datetimeISO}"></span></small>
</h4>
{../content}
</div>
</div>
<!-- END notes -->
</div>
</div>
<div class="col-sm-6 col-md-4">
<label>[[flags:quick-links]]</label>
<ul>
<li><a href="{config.relative_path}/{type}/{targetId}">[[flags:go-to-target]]</a></li>
<li>
[[flags:flagged-user]]
<ul>
<li><a href="{config.relative_path}/uid/{target.user.uid}">[[flags:view-profile]]</a></li>
<li><a href="#" data-chat="{target.user.uid}">[[flags:start-new-chat]]</a></li>
</ul>
</li>
<li>
[[flags:reporter]]
<ul>
<li><a href="{config.relative_path}/uid/{reporter.uid}">[[flags:view-profile]]</a></li>
<li><a href="#" data-chat="{reporter.uid}">[[flags:start-new-chat]]</a></li>
</ul>
</li>
</ul>
<hr />
<label>[[flags:history]]</label>
<div component="flag/history">
<!-- IF !history.length -->
<div class="alert alert-success text-center">[[flags:no-history]]</div>
<!-- ENDIF !history.length -->
<!-- BEGIN history -->
<div class="media">
<div class="media-left">
<a href="{config.relative_path}/user/{../user.userslug}">
<!-- IF ../user.picture -->
<img class="media-object avatar avatar-md" src="{../user.picture}" alt="{../user.username}" />
<!-- ELSE -->
<div class="media-object avatar avatar-md" style="background-color: {../user.icon:bgColor}">{../user.icon:text}</div>
<!-- ENDIF ../user.picture -->
</a>
</div>
<div class="media-body">
<h4 class="media-heading">
<a href="{config.relative_path}/user/{../user.userslug}">{../user.username}</a>
<small><span class="timeago" title="{../datetimeISO}"></span></small>
</h4>
<ul>
<!-- BEGIN fields -->
<li>
<span class="label label-primary">@key</span><!-- IF @value --> &rarr; <span class="label label-default">@value</span><!-- ENDIF @value -->
</li>
<!-- END fields -->
</ul>
</div>
</div>
<!-- END history -->
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,67 @@
<div class="row">
<div class="col-sm-4 col-md-3">
<!-- IMPORT partials/flags/filters.tpl -->
</div>
<div class="col-sm-8 col-md-9">
<div class="text-center">
<div class="panel panel-default">
<div class="panel-body">
<div><canvas id="flags:daily" height="250"></canvas></div>
<p>
</p>
</div>
<div class="panel-footer"><small>Daily flags</small></div>
</div>
</div>
<!-- IF hasFilter -->
<div class="alert alert-warning">
<p class="pull-right">
<a href="{config.relative_path}/flags">[[flags:filter-reset]]</a>
</p>
[[flags:filter-active]]
</div>
<!-- ENDIF hasFilter -->
<table class="table table-striped table-hover" component="flags/list">
<thead>
<tr>
<th>[[flags:state]]</th>
<th></th>
<th><span class="hidden-xs">[[flags:reporter]] </span><i class="fa fa-user-plus"></i></th>
<th><span class="hidden-xs">[[flags:reported-at]] </span><i class="fa fa-clock-o"></i></th>
</tr>
</thead>
<tbody>
<!-- IF !flags.length -->
<tr>
<td colspan="4">
<div class="alert alert-success text-center">
[[flags:no-flags]]
</div>
</td>
</tr>
<!-- ENDIF !flags.length -->
<!-- BEGIN flags -->
<tr data-flag-id="{../flagId}">
<td><span class="label label-{../labelClass}">[[flags:state-{../state}]]</span></td>
<td>
<a href="{config.relative_path}/flags/{../flagId}">
<strong>{../target_readable}</strong> &mdash; <span component="flags/list/description">{../description}</span>
</a>
</td>
<td>
<!-- IF ../reporter.picture -->
<img class="avatar avatar-sm" src="{../reporter.picture}" />
<!-- ELSE -->
<div class="avatar avatar-sm" style="background-color: {../reporter.icon:bgColor};">{../reporter.icon:text}</div>
<!-- ENDIF ../reporter.picture -->
{../reporter.username}
</td>
<td><span class="timeago" title="{../datetimeISO}"></span></td>
</tr>
<!-- END flags -->
</tbody>
</table>
</div>
</div>

@ -3,9 +3,9 @@
<div class="cover" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
<div class="avatar-wrapper" data-uid="{uid}">
<!-- IF picture -->
<img src="{picture}" class="avatar avatar-lg avatar-rounded" />
<img src="{picture}" class="avatar avatar-xl avatar-rounded" />
<!-- ELSE -->
<div class="avatar avatar-lg avatar-rounded" style="background-color: {icon:bgColor};" title="{username}">{icon:text}</div>
<div class="avatar avatar-xl avatar-rounded" style="background-color: {icon:bgColor};" title="{username}">{icon:text}</div>
<!-- ENDIF picture -->
<i component="user/status" class="fa fa-circle status {status}" title="[[global:{status}]]"></i>

@ -14,6 +14,9 @@
<li>
<a component="account/new-chat" href="#">[[user:new_chat_with, {username}]]</a>
</li>
<li>
<a component="account/flag" href="#">[[user:flag-profile]]</a>
</li>
<li class="divider"></li>
<!-- ENDIF !banned -->
<!-- ENDIF !config.disableChat -->

@ -0,0 +1,65 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">[[flags:quick-filters]]</h3>
</div>
<div class="panel-body">
<ul>
<li><a href="{config.relative_path}/flags?quick=mine">[[flags:filter-quick-mine]]</a></li>
</ul>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">[[flags:filters]]</h3>
</div>
<div class="panel-body">
<form role="form" component="flags/filters">
<div class="form-group">
<label for="filter-state">[[flags:filter-state]]</label>
<select class="form-control" id="filter-state" name="state">
<option value="">[[flags:state-all]]</option>
<option value="open">[[flags:state-open]]</option>
<option value="wip">[[flags:state-wip]]</option>
<option value="resolved">[[flags:state-resolved]]</option>
<option value="rejected">[[flags:state-rejected]]</option>
</select>
</div>
<div class="form-group">
<label for="filter-type">[[flags:filter-type]]</label>
<select class="form-control" id="filter-type" name="type">
<option value="">[[flags:filter-type-all]]</option>
<option value="post">[[flags:filter-type-post]]</option>
</select>
</div>
<div class="form-group">
<label for="filter-assignee">[[flags:filter-assignee]]</label>
<input type="number" class="form-control" id="filter-assignee" name="assignee" min="0" />
</div>
<div class="form-group">
<label for="filter-cid">[[flags:filter-cid]]</label>
<select class="form-control" id="filter-cid" name="cid" multiple="true">
<option value="">[[flags:filter-cid-all]]</option>
<!-- BEGIN categories -->
<option value="@key">@value</option>
<!-- END categories -->
</select>
</div>
<div class="form-group">
<label for="filter-targetUid">[[flags:filter-targetUid]]</label>
<input type="number" class="form-control" id="filter-targetUid" name="targetUid" min="0" />
</div>
<div class="form-group">
<label for="filter-reporterId">[[flags:filter-reporterId]]</label>
<input type="number" class="form-control" id="filter-reporterId" name="reporterId" min="0" />
</div>
<button type="button" class="btn btn-primary btn-block">[[flags:apply-filters]]</button>
</form>
</div>
</div>

@ -109,8 +109,8 @@
<li role="presentation" class="divider"></li>
<li class="dropdown-header">Moderator Tools</li>
<li>
<a href="{relative_path}/posts/flags">
<i class="fa fa-fw fa-flag"></i> <span>[[pages:flagged-posts]]</span>
<a href="{relative_path}/flags">
<i class="fa fa-fw fa-flag"></i> <span>[[pages:flagged-content]]</span>
</a>
</li>
<!-- IF isAdmin -->

@ -4,25 +4,28 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">
[[topic:flag]]
<a href="{config.relative_path}/post/{pid}">Post #{pid}</a> by
<a href="{config.relative_path}/user/{userslug}">{username}</a>
[[flags:modal-title]]
</h4>
</div>
<div class="modal-body">
<p class="lead">
[[flags:modal-body, {type}, {id}]]
</p>
<div class="form-group">
<button class="btn btn-default form-control flag-reason">[[topic:spam]]</button>
<textarea class="form-control" id="flag-reason-custom" placeholder="[[flags:modal-reason-custom]]"></textarea>
</div>
<div class="form-group">
<button class="btn btn-default form-control flag-reason">[[topic:offensive]]</button>
</div>
<div class="form-group">
<textarea class="form-control" id="flag-reason-custom" placeholder="[[topic:custom-flag-reason]]"></textarea>
<div class="btn-group btn-group-justified">
<div class="btn-group">
<button class="btn btn-default flag-reason">[[flags:modal-reason-spam]]</button>
</div>
<div class="btn-group">
<button class="btn btn-default flag-reason">[[flags:modal-reason-offensive]]</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="flag-post-commit" disabled>[[topic:flag]]</button>
<button type="button" class="btn btn-primary" id="flag-post-commit" disabled>[[flags:modal-submit]]</button>
</div>
</div>
</div>

@ -38,7 +38,7 @@
<!-- IF section_flagged -->
<div title="flag count" class="flag-count">
<i class="fa fa-flag"></i>
<span class="formatted-number"><a href="{config.relative_path}/posts/flags?byUsername={users.username}">{users.flags}</a></span>
<span class="formatted-number"><a href="{config.relative_path}/flags?targetUid={users.uid}">{users.flags}</a></span>
</div>
<!-- ENDIF section_flagged -->
</div>

Loading…
Cancel
Save