mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-19 01:07:35 +02:00
refactor: use new if/each syntax
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
<div class="alert alert-danger">
|
||||
<strong>[[global:400.title]]</strong>
|
||||
<!-- IF error -->
|
||||
<p>{error}</p>
|
||||
<!-- ELSE -->
|
||||
<p>[[global:400.message, {config.relative_path}]]</p>
|
||||
<!-- ENDIF error -->
|
||||
|
||||
<!-- IF returnLink -->
|
||||
<p>{{{ if error }}}{error}{{{ else }}}[[global:400.message, {config.relative_path}]]{{{ end }}}</p>
|
||||
|
||||
{{{ if returnLink }}}
|
||||
<p>[[error:goback]]</p>
|
||||
<!-- ENDIF returnLink -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
<div class="alert alert-danger">
|
||||
<strong>[[global:403.title]]</strong>
|
||||
<!-- IF error -->
|
||||
<p>{error}</p>
|
||||
<!-- ELSE -->
|
||||
<p>[[global:403.message]]</p>
|
||||
<!-- ENDIF error -->
|
||||
|
||||
<!-- IF returnLink -->
|
||||
<p>{{{ if error }}}{error}{{{ else }}}[[global:403.message]]{{{ end }}}</p>
|
||||
|
||||
{{{ if returnLink }}}
|
||||
<p>[[error:goback]]</p>
|
||||
<!-- ENDIF returnLink -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF !loggedIn -->
|
||||
{{{ if !loggedIn }}}
|
||||
<p>[[global:403.login, {config.relative_path}]]</p>
|
||||
<!-- ENDIF !loggedIn -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
@@ -1,8 +1,4 @@
|
||||
<div class="alert alert-danger">
|
||||
<strong>{path} [[global:404.title]]</strong>
|
||||
<!-- IF error -->
|
||||
<p>{error}</p>
|
||||
<!-- ELSE -->
|
||||
<p>[[global:404.message, {config.relative_path}]]</p>
|
||||
<!-- ENDIF error -->
|
||||
<p>{{{ if error }}}{error}{{{ else }}}[[global:404.message, {config.relative_path}]]{{{ end }}}</p>
|
||||
</div>
|
||||
@@ -2,9 +2,9 @@
|
||||
<strong>[[global:500.title]]</strong>
|
||||
<p>[[global:500.message]]</p>
|
||||
<p>{path}</p>
|
||||
<!-- IF error --><p>{error}</p><!-- ENDIF error -->
|
||||
{{{ if error }}}<p>{error}</p>{{{ end }}}
|
||||
|
||||
<!-- IF returnLink -->
|
||||
{{{ if returnLink }}}
|
||||
<p>[[error:goback]]</p>
|
||||
<!-- ENDIF returnLink -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h1 class="text-center">[[pages:maintenance.text, {site_title}]]</h1>
|
||||
<h2 class="text-center"><i class="fa fa-wrench fa-3x"></i></h2>
|
||||
<!-- IF message -->
|
||||
{{{ if message }}}
|
||||
<div class="row maintenance">
|
||||
<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">
|
||||
<p class="lead text-center">[[pages:maintenance.messageIntro]]</p>
|
||||
@@ -9,4 +9,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ENDIF message -->
|
||||
{{{ end }}}
|
||||
@@ -22,9 +22,9 @@
|
||||
<span>[[admin/advanced/database:mongo.data-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.dataSize}]]</span><br/>
|
||||
<span>[[admin/advanced/database:mongo.storage-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.storageSize}]]</span><br/>
|
||||
<span>[[admin/advanced/database:mongo.index-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.indexSize}]]</span><br/>
|
||||
<!-- IF mongo.fileSize -->
|
||||
{{{ if mongo.fileSize }}}
|
||||
<span>[[admin/advanced/database:mongo.file-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.fileSize}]]</span><br/>
|
||||
<!-- ENDIF mongo.fileSize -->
|
||||
{{{ end }}}
|
||||
<hr/>
|
||||
<span>[[admin/advanced/database:mongo.resident-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.mem.resident}]]</span><br/>
|
||||
<span>[[admin/advanced/database:mongo.virtual-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.mem.virtual}]]</span><br/>
|
||||
|
||||
@@ -55,13 +55,13 @@
|
||||
<th>[[admin/advanced/errors:count]]</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN not-found -->
|
||||
{{{ each not-found }}}
|
||||
<tr>
|
||||
<td>{../value}</td>
|
||||
<td>{../score}</td>
|
||||
<td>{./value}</td>
|
||||
<td>{./score}</td>
|
||||
</tr>
|
||||
<!-- END not-found -->
|
||||
<!-- IF !not-found.length -->
|
||||
{{{ end }}}
|
||||
{{{ if !not-found.length }}}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="alert alert-success">
|
||||
@@ -69,7 +69,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF !not-found.length -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<span class="badge bg-primary">#{events.eid}</span>
|
||||
<span class="badge bg-info">{events.type}</span>
|
||||
<span class="badge bg-info">uid {events.uid}</span>
|
||||
<!-- IF events.ip --><span class="badge bg-info">{events.ip}</span><!-- END -->
|
||||
{{{ if events.ip }}}<span class="badge bg-info">{events.ip}</span>{{{ end }}}
|
||||
<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{buildAvatar(events.user, "24px", true)}</a>
|
||||
<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{events.user.username}</a>
|
||||
<span class="float-end delete-event ms-2 pointer"><i class="fa fa-trash-o"></i></span>
|
||||
@@ -35,9 +35,9 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="type">[[admin/advanced/events:filter-type]]</label>
|
||||
<select id="type" name="type" class="form-select">
|
||||
<!-- BEGIN types -->
|
||||
<option value="{types.value}" <!-- IF types.selected -->selected<!-- ENDIF types.selected -->>{types.name} - ({types.count}) </option>
|
||||
<!-- END types -->
|
||||
{{{ each types }}}
|
||||
<option value="{./value}" {{{ if ./selected }}}selected{{{ end }}}>{./name} - ({./count}) </option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
|
||||
@@ -70,21 +70,21 @@
|
||||
<div class="card-header">[[admin/dashboard:control-panel]]</div>
|
||||
<div class="card-body text-center">
|
||||
<div class="d-grid gap-2 mb-2">
|
||||
<button class="btn btn-block btn-warning restart"<!-- IF !canRestart --> disabled<!-- END -->>[[admin/dashboard:restart]]</button>
|
||||
<button class="btn btn-block btn-danger rebuild-and-restart"<!-- IF !canRestart --> disabled<!-- END -->>[[admin/dashboard:rebuild-and-restart]]</button>
|
||||
<button class="btn btn-block btn-warning restart"{{{ if !canRestart }}} disabled{{{ end }}}>[[admin/dashboard:restart]]</button>
|
||||
<button class="btn btn-block btn-danger rebuild-and-restart"{{{ if !canRestart }}} disabled{{{ end }}}>[[admin/dashboard:rebuild-and-restart]]</button>
|
||||
</div>
|
||||
<!-- IF lastrestart -->
|
||||
{{{ if lastrestart }}}
|
||||
<p>
|
||||
[[admin/dashboard:last-restarted-by]]<br />
|
||||
<a href="{config.relative_path}/uid/{lastrestart.uid}"><span class="badge bg-info">{lastrestart.user.username}</span></a> <span class="timeago" title="{lastrestart.timestampISO}"></span>
|
||||
</p>
|
||||
<!-- ENDIF lastrestart -->
|
||||
<p class="<!-- IF canRestart -->form-text<!-- ELSE -->alert alert-warning<!-- END -->">
|
||||
<!-- IF canRestart -->
|
||||
{{{ end }}}
|
||||
<p class="{{{ if canRestart }}}form-text{{{ else }}}alert alert-warning{{{ end }}}">
|
||||
{{{ if canRestart }}}
|
||||
[[admin/dashboard:restart-warning]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[admin/dashboard:restart-disabled]]
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</p>
|
||||
<p>
|
||||
<a href="{config.relative_path}/admin/settings/advanced" class="btn btn-info btn-block" data-bs-placement="bottom" data-bs-toggle="tooltip" title="[[admin/dashboard:maintenance-mode-title]]">[[admin/dashboard:maintenance-mode]]</a>
|
||||
@@ -106,26 +106,26 @@
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">[[admin/dashboard:updates]]</div>
|
||||
<div class="card-body">
|
||||
<div class="alert <!-- IF lookupFailed -->alert-danger<!-- ELSE --><!-- IF upgradeAvailable -->alert-warning<!-- ELSE --><!-- IF currentPrerelease -->alert-info<!-- ELSE -->alert-success<!-- END --><!-- END --><!-- END --> version-check">
|
||||
<div class="alert {{{ if lookupFailed }}}alert-danger{{{ else }}}{{{ if upgradeAvailable }}}alert-warning{{{ else }}}{{{ if currentPrerelease }}}alert-info{{{ else }}}alert-success{{{ end }}}{{{ end }}}{{{ end }}} version-check">
|
||||
<p>[[admin/dashboard:running-version, {version}]]</p>
|
||||
<p>
|
||||
<!-- IF lookupFailed -->
|
||||
{{{ if lookupFailed }}}
|
||||
[[admin/dashboard:latest-lookup-failed]]
|
||||
<!-- ELSE -->
|
||||
<!-- IF upgradeAvailable -->
|
||||
<!-- IF currentPrerelease -->
|
||||
{{{ else }}}
|
||||
{{{ if upgradeAvailable }}}
|
||||
{{{ if currentPrerelease }}}
|
||||
[[admin/dashboard:prerelease-upgrade-available, {latestVersion}]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[admin/dashboard:upgrade-available, {latestVersion}]]
|
||||
<!-- END -->
|
||||
<!-- ELSE -->
|
||||
<!-- IF currentPrerelease -->
|
||||
{{{ end }}}
|
||||
{{{ else }}}
|
||||
{{{ if currentPrerelease }}}
|
||||
[[admin/dashboard:prerelease-warning]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[admin/dashboard:up-to-date]]
|
||||
<!-- END -->
|
||||
<!-- END -->
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
@@ -137,17 +137,17 @@
|
||||
<div class="card">
|
||||
<div class="card-header">[[admin/dashboard:notices]]</div>
|
||||
<div class="card-body">
|
||||
<!-- BEGIN notices -->
|
||||
{{{ each notices}}}
|
||||
<div>
|
||||
<!-- IF notices.done -->
|
||||
<i class="fa fa-fw fa-check text-success"></i> {notices.doneText}
|
||||
<!-- ELSE -->
|
||||
<!-- IF notices.link --><a href="{config.relative_path}{notices.link}" data-bs-toggle="tooltip" title="{notices.tooltip}"><!-- ENDIF notices.link -->
|
||||
<i class="fa fa-fw fa-times text-danger"></i> {notices.notDoneText}
|
||||
<!-- IF notices.link --></a><!-- ENDIF notices.link -->
|
||||
<!-- ENDIF notices.done -->
|
||||
{{{ if ./done }}}
|
||||
<i class="fa fa-fw fa-check text-success"></i> {./doneText}
|
||||
{{{ else }}}
|
||||
{{{ if ./link }}}<a href="{config.relative_path}{./link}" data-bs-toggle="tooltip" title="{./tooltip}">{{{ end }}}
|
||||
<i class="fa fa-fw fa-times text-danger"></i> {./notDoneText}
|
||||
{{{ if ./link }}}</a>{{{ end }}}
|
||||
{{{ end }}}
|
||||
</div>
|
||||
<!-- END notices -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN info -->
|
||||
{{{ each info }}}
|
||||
<tr>
|
||||
<td>{info.os.hostname}:{info.process.port}</td>
|
||||
<td class="text-center">
|
||||
@@ -50,7 +50,7 @@
|
||||
<td>{info.os.load}</td>
|
||||
<td>{info.process.uptimeHumanReadable}</td>
|
||||
</tr>
|
||||
<!-- END info -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -51,9 +51,9 @@
|
||||
<div class="tab-pane fade show active" id="installed">
|
||||
<!-- IMPORT admin/partials/plugins/no-plugins.tpl -->
|
||||
<ul class="installed">
|
||||
<!-- BEGIN installed -->
|
||||
{{{ each installed }}}
|
||||
<!-- IMPORT admin/partials/installed_plugin_item.tpl -->
|
||||
<!-- END installed -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="active">
|
||||
@@ -71,9 +71,9 @@
|
||||
<div class="tab-pane fade" id="download">
|
||||
<!-- IMPORT admin/partials/plugins/no-plugins.tpl -->
|
||||
<ul class="download">
|
||||
<!-- BEGIN download -->
|
||||
{{{ each download }}}
|
||||
<!-- IMPORT admin/partials/download_plugin_item.tpl -->
|
||||
<!-- END download -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -90,7 +90,7 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="form-check">
|
||||
<input id="plugin-submit-usage" class="form-check-input" type="checkbox" data-field="submitPluginUsage" <!-- IF submitPluginUsage -->checked<!-- ENDIF submitPluginUsage -->/>
|
||||
<input id="plugin-submit-usage" class="form-check-input" type="checkbox" data-field="submitPluginUsage" {{{ if submitPluginUsage }}}checked{{{ end }}}/>
|
||||
<label for="plugin-submit-usage" class="form-check-label">[[admin/extend/plugins:submit-anonymous-usage]]</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
<div class="card card-body d-inline-block then-block">
|
||||
<label class="form-label" for="condition-then">[[admin/extend/rewards:condition-then]]</label>
|
||||
<select id="condition-then" class="form-select" name="rid" data-selected="{active.rid}">
|
||||
<!-- BEGIN ../../rewards -->
|
||||
{{{ each ../../rewards }}}
|
||||
<option value="{rewards.rid}">{rewards.name}</option>
|
||||
<!-- END ../../rewards -->
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
@@ -58,11 +58,11 @@
|
||||
<div class="float-end">
|
||||
<div class="card-body d-inline-block">
|
||||
<button class="btn btn-danger delete">[[admin/extend/rewards:delete]]</button>
|
||||
<!-- IF active.disabled -->
|
||||
{{{ if active.disabled }}}
|
||||
<button class="btn btn-success toggle">[[admin/extend/rewards:enable]]</button>
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<button class="btn btn-warning toggle">[[admin/extend/rewards:disable]]</button>
|
||||
<!-- ENDIF active.disabled -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{{{ each templates }}}
|
||||
<li><a class="dropdown-item" href="#" data-template="{../template}" data-toggle="pill">{../template}</a></li>
|
||||
<li><a class="dropdown-item" href="#" data-template="{./template}" data-toggle="pill">{./template}</a></li>
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -15,10 +15,10 @@
|
||||
<div class="col-12">
|
||||
<div class="tab-content">
|
||||
{{{ each templates }}}
|
||||
<div class="tab-pane <!-- IF @first -->active<!-- ENDIF @first -->" data-template="{../template}">
|
||||
<div class="tab-pane {{{ if @first }}}active{{{ end }}}" data-template="{./template}">
|
||||
{{{ each templates.areas }}}
|
||||
<div class="area" data-template="{templates.template}" data-location="{../location}">
|
||||
<h4>{../name} <small>{templates.template} / {../location}</small></h4>
|
||||
<div class="area" data-template="{templates.template}" data-location="{./location}">
|
||||
<h4>{./name} <small>{templates.template} / {./location}</small></h4>
|
||||
<div class="card card-body text-bg-light widget-area">
|
||||
|
||||
</div>
|
||||
@@ -37,32 +37,32 @@
|
||||
<div class="card-body">
|
||||
<div class="available-widgets">
|
||||
<p>[[admin/extend/widgets:explanation]]</p>
|
||||
<!-- IF !availableWidgets.length -->
|
||||
{{{ if !availableWidgets.length }}}
|
||||
<div class="alert alert-info">[[admin/extend/widgets:none-installed, {config.relative_path}/admin/extend/plugins]]</div>
|
||||
<!-- ENDIF !availableWidgets.length -->
|
||||
{{{ end }}}
|
||||
<p>
|
||||
<select id="widget-selector" class="form-control">
|
||||
<!-- BEGIN availableWidgets -->
|
||||
<option value="{availableWidgets.widget}">{availableWidgets.name}</option>
|
||||
<!-- END availableWidgets -->
|
||||
{{{ each availableWidgets }}}
|
||||
<option value="{./widget}">{./name}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</p>
|
||||
<div class="row">
|
||||
<!-- BEGIN availableWidgets -->
|
||||
{{{ each availableWidgets }}}
|
||||
<div class="col-12">
|
||||
<div data-widget="{availableWidgets.widget}" class="card widget-panel pointer hide">
|
||||
<div data-widget="{./widget}" class="card widget-panel pointer hide">
|
||||
<div class="card-header">
|
||||
<strong>{availableWidgets.name}</strong>
|
||||
<small><br />{availableWidgets.description}</small>
|
||||
<strong>{./name}</strong>
|
||||
<small><br />{./description}</small>
|
||||
</div>
|
||||
<div class="card-body hidden">
|
||||
<form>
|
||||
{availableWidgets.content}
|
||||
{./content}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END availableWidgets -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
<div class="btn-group" component="clone">
|
||||
@@ -71,11 +71,11 @@
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<!-- BEGIN templates -->
|
||||
<!-- IF !@first -->
|
||||
<li><a class="dropdown-item" href="#">{templates.template}</a></li>
|
||||
<!-- END -->
|
||||
<!-- END templates -->
|
||||
{{{ each templates }}}
|
||||
{{{ if !@first }}}
|
||||
<li><a class="dropdown-item" href="#">{./template}</a></li>
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
<script type="text/javascript" src="{relative_path}/assets/admin.min.js?{cache-buster}"></script>
|
||||
|
||||
<!-- BEGIN scripts -->
|
||||
<script type="text/javascript" src="{scripts.src}"></script>
|
||||
<!-- END scripts -->
|
||||
{{{ each scripts }}}
|
||||
<script type="text/javascript" src="{./src}"></script>
|
||||
{{{ end }}}
|
||||
</head>
|
||||
|
||||
<body class="admin {bodyClass}">
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
<div class="admins-mods">
|
||||
<div class="mb-5">
|
||||
<h4><!-- IF admins.icon --><i class="fa {admins.icon}"></i> <!-- ENDIF admins.icon -->[[admin/manage/admins-mods:administrators]]</h4>
|
||||
<h4>{{{ if admins.icon }}}<i class="fa {admins.icon}"></i> {{{ end }}}[[admin/manage/admins-mods:administrators]]</h4>
|
||||
<div class="administrator-area">
|
||||
<!-- BEGIN admins.members -->
|
||||
{{{ each admins.members }}}
|
||||
<div class="badge text-bg-light m-1 p-1 float-start" data-uid="{admins.members.uid}">
|
||||
{buildAvatar(admins.members, "24px", true)}
|
||||
<a href="{config.relative_path}/user/{admins.members.userslug}">{admins.members.username}</a>
|
||||
<i class="mx-1 remove-user-icon fa fa-times" role="button"></i>
|
||||
</div>
|
||||
<!-- END admins.members -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
<input id="admin-search" class="form-control" placeholder="[[admin/manage/admins-mods:add-administrator]]" />
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<h4><!-- IF globalMods.icon --><i class="fa {globalMods.icon}"></i> <!-- ENDIF globalMods.icon -->[[admin/manage/admins-mods:global-moderators]]</h4>
|
||||
<h4>{{{ if globalMods.icon }}}<i class="fa {globalMods.icon}"></i> {{{ end }}}[[admin/manage/admins-mods:global-moderators]]</h4>
|
||||
<div class="global-moderator-area">
|
||||
<!-- BEGIN globalMods.members -->
|
||||
{{{ each globalMods.members }}}
|
||||
<div class="badge text-bg-light m-1 p-1 float-start" data-uid="{globalMods.members.uid}">
|
||||
{buildAvatar(globalMods.members, "24px", true)}
|
||||
<a href="{config.relative_path}/user/{globalMods.members.userslug}">{globalMods.members.username}</a>
|
||||
<i class="mx-1 remove-user-icon fa fa-times" role="button"></i>
|
||||
</div>
|
||||
<!-- END globalMods.members -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
<div id="no-global-mods-warning" class="alert alert-info {{{ if globalMods.members.length }}}hidden{{{ end }}}">[[admin/manage/admins-mods:no-global-moderators]]</div>
|
||||
|
||||
@@ -61,11 +61,11 @@
|
||||
<label class="form-label" for="cid-{category.cid}-class">
|
||||
[[admin/manage/categories:custom-class]]
|
||||
</label>
|
||||
<input list="customClasses" id="cid-{category.cid}-class" type="text" class="form-control" placeholder="<!-- IF customClasses.length --><!-- BEGIN customClasses --><!-- IF @first -->{@value}<!-- ENDIF --><!-- END --><!-- ELSE -->col-md-6 col-6<!-- ENDIF -->" data-name="class" value="{category.class}" />
|
||||
<input list="customClasses" id="cid-{category.cid}-class" type="text" class="form-control" placeholder="{{{ if customClasses.length }}}{{{ each customClasses }}}{{{ if @first }}}{@value}{{{ end }}}{{{ end }}}{{{ else }}}col-md-6 col-6{{{ end }}}" data-name="class" value="{category.class}" />
|
||||
<datalist id="customClasses">
|
||||
<!-- BEGIN customClasses -->
|
||||
{{{ each customClasses }}}
|
||||
<option>{@value}</option>
|
||||
<!-- END customClasses -->
|
||||
{{{ end }}}
|
||||
</datalist>
|
||||
</div>
|
||||
</div>
|
||||
@@ -125,7 +125,7 @@
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input type="checkbox" class="form-check-input" id="cid-{category.cid}-isSection" data-name="isSection" <!-- IF category.isSection -->checked<!-- ENDIF category.isSection --> />
|
||||
<input type="checkbox" class="form-check-input" id="cid-{category.cid}-isSection" data-name="isSection" {{{ if category.isSection }}}checked{{{ end }}} />
|
||||
<label class="form-check-label">[[admin/manage/categories:is-section]]</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -148,9 +148,9 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="category-preview" style="
|
||||
<!-- IF category.backgroundImage -->background-image: url({category.backgroundImage});<!-- ENDIF category.backgroundImage -->
|
||||
<!-- IF category.bgColor -->background-color: {category.bgColor};<!-- ENDIF category.bgColor -->
|
||||
<!-- IF category.imageClass -->background-size: {category.imageClass};<!-- ENDIF category.imageClass -->
|
||||
{{{ if category.backgroundImage }}}background-image: url({category.backgroundImage});{{{ end }}}
|
||||
{{{ if category.bgColor }}}background-color: {category.bgColor};{{{ end }}}
|
||||
{{{ if category.imageClass }}}background-size: {category.imageClass};{{{ end }}}
|
||||
color: {category.color};
|
||||
">
|
||||
<div class="icon">
|
||||
@@ -164,14 +164,14 @@
|
||||
[[admin/manage/categories:upload-image]]
|
||||
</button>
|
||||
</div>
|
||||
<!-- IF category.backgroundImage -->
|
||||
{{{ if category.backgroundImage }}}
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-warning delete-image">
|
||||
<i data-name="icon" value="fa-times" class="fa fa-times"></i>
|
||||
[[admin/manage/categories:delete-image]]
|
||||
</button>
|
||||
</div>
|
||||
<!-- ENDIF category.backgroundImage -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -185,11 +185,11 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="cid-{category.cid}-parentCid">[[admin/manage/categories:parent-category]]</label>
|
||||
<div class="d-grid">
|
||||
<div class="btn-group <!-- IF !category.parent.name -->hide<!-- ENDIF !category.parent.name -->">
|
||||
<div class="btn-group {{{ if !category.parent.name }}}hide{{{ end }}}">
|
||||
<button type="button" class="btn btn-outline-secondary" data-action="changeParent" data-parentCid="{category.parent.cid}"><i class="fa {category.parent.icon}"></i> {category.parent.name}</button>
|
||||
<button type="button" class="btn btn-warning" data-action="removeParent" data-parentCid="{category.parent.cid}"><i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
<button type="button" class="btn btn-outline-secondary btn-block <!-- IF category.parent.name -->hide<!-- ENDIF category.parent.name -->" data-action="setParent">
|
||||
<button type="button" class="btn btn-outline-secondary btn-block {{{ if category.parent.name }}}hide{{{ end }}}" data-action="setParent">
|
||||
<i class="fa fa-sitemap"></i>
|
||||
[[admin/manage/categories:parent-category-none]]
|
||||
</button>
|
||||
@@ -210,12 +210,12 @@
|
||||
</div>
|
||||
<hr />
|
||||
<div class="d-grid gap-2">
|
||||
<button data-action="toggle" data-disabled="{category.disabled}" class="btn btn-sm btn-block <!-- IF category.disabled -->btn-primary<!-- ELSE -->btn-danger<!-- ENDIF category.disabled -->">
|
||||
<!-- IF category.disabled -->
|
||||
<button data-action="toggle" data-disabled="{category.disabled}" class="btn btn-sm btn-block {{{ if category.disabled }}}btn-primary{{{ else }}}btn-danger{{{ end }}}">
|
||||
{{{ if category.disabled }}}
|
||||
[[admin/manage/categories:enable]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[admin/manage/categories:disable]]
|
||||
<!-- ENDIF category.disabled -->
|
||||
{{{ end }}}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-danger btn-block purge">
|
||||
<i class="fa fa-eraser"></i> [[admin/manage/categories:purge]]
|
||||
|
||||
@@ -13,15 +13,15 @@
|
||||
<th></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN delivery -->
|
||||
{{{ each delivery }}}
|
||||
<tr>
|
||||
<td>{buildAvatar(delivery, "24px", true)} <a href="{config.relative_path}/uid/{../uid}">{../username}</a></td>
|
||||
<td>{{{if ../setting}}}{../setting}{{{else}}}<em>[[admin/manage/digest:default]]</em>{{{end}}}</td>
|
||||
<td>{../lastDelivery}</td>
|
||||
<td><button class="btn btn-sm btn-outline-secondary" data-action="resend" data-uid="{../uid}">[[admin/manage/digest:resend]]</button></td>
|
||||
<td>{buildAvatar(delivery, "24px", true)} <a href="{config.relative_path}/uid/{./uid}">{./username}</a></td>
|
||||
<td>{{{if ./setting}}}{./setting}{{{else}}}<em>[[admin/manage/digest:default]]</em>{{{end}}}</td>
|
||||
<td>{./lastDelivery}</td>
|
||||
<td><button class="btn btn-sm btn-outline-secondary" data-action="resend" data-uid="{./uid}">[[admin/manage/digest:resend]]</button></td>
|
||||
</tr>
|
||||
<!-- END delivery -->
|
||||
<!-- IF !delivery.length -->
|
||||
{{{ end }}}
|
||||
{{{ if !delivery.length }}}
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<div class="alert alert-success">
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF !delivery.length -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="group-settings-form">
|
||||
<fieldset class="mb-3">
|
||||
<label class="form-label" for="change-group-name">[[admin/manage/groups:edit.name]]</label>
|
||||
<input type="text" class="form-control" id="change-group-name" placeholder="Group Name" value="{group.displayName}" maxlength="{maximumGroupNameLength}" data-property <!-- IF group.system -->readonly<!-- ENDIF group.system -->/><br />
|
||||
<input type="text" class="form-control" id="change-group-name" placeholder="Group Name" value="{group.displayName}" maxlength="{maximumGroupNameLength}" data-property {{{ if group.system }}}readonly{{{ end }}}/><br />
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="mb-3">
|
||||
@@ -16,14 +16,14 @@
|
||||
<div class="col-md-4">
|
||||
<fieldset>
|
||||
<label class="form-label" for="change-group-user-title">[[admin/manage/groups:edit.user-title]]</label>
|
||||
<span id="group-label-preview" class="badge" style="color:<!-- IF group.textColor -->{group.textColor}<!-- ELSE -->#ffffff<!-- ENDIF group.textColor -->; background:<!-- IF group.labelColor -->{group.labelColor}<!-- ELSE -->#000000<!-- ENDIF group.labelColor -->;"><i id="group-icon-preview" class="fa {group.icon} <!-- IF !group.icon -->hidden<!-- ENDIF -->"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
|
||||
<span id="group-label-preview" class="badge" style="color:{{{ if group.textColor }}}{group.textColor}{{{ else }}}#ffffff{{{ end }}}; background:{{{ if group.labelColor }}}{group.labelColor}{{{ else }}}#000000{{{ end }}};"><i id="group-icon-preview" class="fa {group.icon} {{{ if !group.icon }}}hidden{{{ end }}}"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
|
||||
<input type="text" class="form-control" id="change-group-user-title" placeholder="The title of users if they are a member of this group" value="{group.userTitleEscaped}" maxlength="{maximumGroupTitleLength}" data-property /><br />
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<fieldset>
|
||||
<label class="form-label" id="group-icon-label" for="change-group-icon">[[admin/manage/groups:edit.icon]]</label><br/>
|
||||
<i id="group-icon" class="fa fa-2x <!-- IF group.icon -->{group.icon}<!-- ENDIF group.icon -->" value="{group.icon}"></i><br />
|
||||
<i id="group-icon" class="fa fa-2x {{{ if group.icon }}}{group.icon}{{{ end }}}" value="{group.icon}"></i><br />
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@@ -44,7 +44,7 @@
|
||||
<fieldset class="mb-3">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="group-userTitleEnabled" name="userTitleEnabled" data-property type="checkbox"<!-- IF group.userTitleEnabled --> checked<!-- ENDIF group.userTitleEnabled -->> <strong>[[admin/manage/groups:edit.show-badge]]</strong>
|
||||
<input id="group-userTitleEnabled" name="userTitleEnabled" data-property type="checkbox"{{{ if group.userTitleEnabled }}} checked{{{ end }}}> <strong>[[admin/manage/groups:edit.show-badge]]</strong>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -52,16 +52,16 @@
|
||||
<fieldset class="mb-3">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="group-private" name="private" data-property type="checkbox"<!-- IF group.private --> checked<!-- ENDIF group.private -->>
|
||||
<input id="group-private" name="private" data-property type="checkbox"{{{ if group.private }}} checked{{{ end }}}>
|
||||
<strong>[[groups:details.private]]</strong>
|
||||
<p class="form-text">
|
||||
[[admin/manage/groups:edit.private-details]]
|
||||
</p>
|
||||
<!-- IF !allowPrivateGroups -->
|
||||
{{{ if !allowPrivateGroups }}}
|
||||
<p class="form-text">
|
||||
[[admin/manage/groups:edit.private-override]]
|
||||
</p>
|
||||
<!-- ENDIF !allowPrivateGroups -->
|
||||
{{{ end }}}
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -69,7 +69,7 @@
|
||||
<fieldset class="mb-3">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="group-disableJoinRequests" name="disableJoinRequests" data-property type="checkbox"<!-- IF group.disableJoinRequests --> checked<!-- ENDIF group.disableJoinRequests -->>
|
||||
<input id="group-disableJoinRequests" name="disableJoinRequests" data-property type="checkbox"{{{ if group.disableJoinRequests }}} checked{{{ end }}}>
|
||||
<strong>[[admin/manage/groups:edit.disable-join]]</strong>
|
||||
</label>
|
||||
</div>
|
||||
@@ -87,7 +87,7 @@
|
||||
<fieldset class="mb-3">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="group-hidden" name="hidden" data-property type="checkbox"<!-- IF group.hidden --> checked<!-- ENDIF group.hidden -->>
|
||||
<input id="group-hidden" name="hidden" data-property type="checkbox"{{{ if group.hidden }}} checked{{{ end }}}>
|
||||
<strong>[[admin/manage/groups:edit.hidden]]</strong>
|
||||
<p class="form-text">
|
||||
[[admin/manage/groups:edit.hidden-details]]
|
||||
@@ -136,11 +136,11 @@
|
||||
<li component="group-no-matches" role="presentation" class="group hidden">
|
||||
<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
|
||||
</li>
|
||||
<!-- BEGIN groupNames -->
|
||||
{{{ each groupNames }}}
|
||||
<li role="presentation" class="group" data-name="{groupNames.displayName}">
|
||||
<a class="dropdown-item" href="{config.relative_path}/admin/manage/groups/{groupNames.encodedName}" role="menuitem">{groupNames.displayName}</a>
|
||||
</li>
|
||||
<!-- END groupNames -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
@@ -18,25 +18,25 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN groups -->
|
||||
<tr data-groupname="{groups.displayName}" data-name-encoded="{groups.nameEncoded}">
|
||||
{{{ each groups }}}
|
||||
<tr data-groupname="{./displayName}" data-name-encoded="{./nameEncoded}">
|
||||
<td>
|
||||
<a href="{config.relative_path}/admin/manage/groups/{groups.slug}">{groups.displayName}</a> ({groups.memberCount})
|
||||
<p class="description">{groups.description}</p>
|
||||
<a href="{config.relative_path}/admin/manage/groups/{./slug}">{./displayName}</a> ({./memberCount})
|
||||
<p class="description">{./description}</p>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge" style="color:{groups.textColor}; background-color: {groups.labelColor};"><!-- IF groups.icon --><i class="fa {groups.icon}"></i> <!-- ENDIF groups.icon -->{groups.userTitle}</span>
|
||||
<span class="badge" style="color:{./textColor}; background-color: {./labelColor};">{{{ if ./icon }}}<i class="fa {./icon}"></i> {{{ end }}}{./userTitle}</span>
|
||||
</td>
|
||||
<td>
|
||||
<!-- IF groups.system -->
|
||||
{{{ if ./system }}}
|
||||
<span class="badge bg-danger">[[admin/manage/groups:system]]</span>
|
||||
<!-- ENDIF groups.system -->
|
||||
<!-- IF groups.private -->
|
||||
{{{ end }}}
|
||||
{{{ if ./private }}}
|
||||
<span class="badge bg-primary">[[admin/manage/groups:private]]</span>
|
||||
<!-- ENDIF groups.private -->
|
||||
<!-- IF groups.hidden -->
|
||||
{{{ end }}}
|
||||
{{{ if ./hidden }}}
|
||||
<span class="badge bg-default">[[admin/manage/groups:hidden]]</span>
|
||||
<!-- ENDIF groups.hidden -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
|
||||
<td class="text-end">
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END groups -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<div class="card-header text-bg-primary">
|
||||
[[admin/manage/registration:queue]]
|
||||
</div>
|
||||
<!-- IF !users.length -->
|
||||
{{{ if !users.length }}}
|
||||
<p class="card-body">
|
||||
[[admin/manage/registration:description, {config.relative_path}/admin/settings/user#user-registration]]
|
||||
</p>
|
||||
<!-- ENDIF !users.length -->
|
||||
{{{ end }}}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped users-list">
|
||||
<thead>
|
||||
@@ -17,65 +17,65 @@
|
||||
<th>[[admin/manage/registration:list.email]]</th>
|
||||
<th class="hidden-xs">[[admin/manage/registration:list.ip]]</th>
|
||||
<th class="hidden-xs">[[admin/manage/registration:list.time]]</th>
|
||||
<!-- BEGIN customHeaders -->
|
||||
<th class="hidden-xs">{customHeaders.label}</th>
|
||||
<!-- END customHeaders -->
|
||||
{{{ each customHeaders }}}
|
||||
<th class="hidden-xs">{./label}</th>
|
||||
{{{ end }}}
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{{ each users }}}
|
||||
<tr data-username="{users.usernameEscaped}">
|
||||
<tr data-username="{./usernameEscaped}">
|
||||
<td>
|
||||
<!-- IF users.usernameSpam -->
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.username-spam, {users.spamData.username.frequency}, {users.spamData.username.appears}, {users.spamData.username.confidence}]]"></i>
|
||||
<!-- ELSE -->
|
||||
<!-- IF users.spamChecked -->
|
||||
{{{ if ./usernameSpam }}}
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.username-spam, {./spamData.username.frequency}, {./spamData.username.appears}, {./spamData.username.confidence}]]"></i>
|
||||
{{{ else }}}
|
||||
{{{ if ./spamChecked }}}
|
||||
<i class="fa fa-check text-success"></i>
|
||||
<!-- ENDIF users.spamChecked -->
|
||||
<!-- ENDIF users.usernameSpam -->
|
||||
{users.username}
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{./username}
|
||||
</td>
|
||||
<td>
|
||||
<!-- IF users.emailSpam -->
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.email-spam, {users.spamData.email.frequency}, {users.spamData.email.appears}]]"></i>
|
||||
<!-- ELSE -->
|
||||
<!-- IF users.spamChecked -->
|
||||
{{{ if ./emailSpam }}}
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.email-spam, {./spamData.email.frequency}, {./spamData.email.appears}]]"></i>
|
||||
{{{ else }}}
|
||||
{{{ if ./spamChecked }}}
|
||||
<i class="fa fa-check text-success"></i>
|
||||
<!-- ENDIF users.spamChecked -->
|
||||
<!-- ENDIF users.emailSpam -->
|
||||
{users.email}
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{./email}
|
||||
</td>
|
||||
<td class="hidden-xs">
|
||||
<!-- IF users.ipSpam -->
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.ip-spam, {users.spamData.ip.frequency}, {users.spamData.ip.appears}]]"></i>
|
||||
<!-- ELSE -->
|
||||
<!-- IF users.spamChecked -->
|
||||
{{{ if ./ipSpam }}}
|
||||
<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.ip-spam, {./spamData.ip.frequency}, {./spamData.ip.appears}]]"></i>
|
||||
{{{ else }}}
|
||||
{{{ if ./spamChecked }}}
|
||||
<i class="fa fa-check text-success"></i>
|
||||
<!-- ENDIF users.spamChecked -->
|
||||
<!-- ENDIF users.ipSpam -->
|
||||
{users.ip}
|
||||
{{{ each users.ipMatch }}}
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{./ip}
|
||||
{{{ each ./ipMatch }}}
|
||||
<br>
|
||||
{buildAvatar(users.ipMatch, "24px", true)}
|
||||
<a href="{config.relative_path}/uid/{users.ipMatch.uid}">{users.ipMatch.username}</a>
|
||||
{buildAvatar(@value, "24px", true)}
|
||||
<a href="{config.relative_path}/uid/{./uid}">{./username}</a>
|
||||
{{{ end }}}
|
||||
</td>
|
||||
<td class="hidden-xs">
|
||||
<span class="timeago" title="{users.timestampISO}"></span>
|
||||
<span class="timeago" title="{./timestampISO}"></span>
|
||||
</td>
|
||||
|
||||
{{{ each users.customRows }}}
|
||||
<td class="hidden-xs">{users.customRows.value}</td>
|
||||
{{{ each ./customRows }}}
|
||||
<td class="hidden-xs">{./value}</td>
|
||||
{{{ end }}}
|
||||
|
||||
<td>
|
||||
<div class="btn-group float-end">
|
||||
<button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-check"></i></button>
|
||||
<button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-times"></i></button>
|
||||
{{{ each users.customActions }}}
|
||||
<button id="{users.customActions.id}" title="{users.customActions.title}" class="btn btn-sm {users.customActions.class}">
|
||||
<i class="fa {users.customActions.icon}"></i>
|
||||
{{{ each ./customActions }}}
|
||||
<button id="{./id}" title="{./title}" class="btn btn-sm {./class}">
|
||||
<i class="fa {./icon}"></i>
|
||||
</button>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
@@ -110,7 +110,7 @@
|
||||
{{{ each invites.invitations }}}
|
||||
<tr data-invitation-mail="{invites.invitations.email}"
|
||||
data-invited-by="{invites.username}">
|
||||
<td class ="invited-by"><!-- IF @first -->{invites.username}<!-- ENDIF @first --></td>
|
||||
<td class ="invited-by">{{{ if @first }}}{invites.username}{{{ end }}}</td>
|
||||
<td>{invites.invitations.email}</td>
|
||||
<td>{invites.invitations.username}
|
||||
<div class="btn-group float-end">
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<p>[[admin/manage/tags:description]]</p>
|
||||
</div>
|
||||
|
||||
<!-- IF !tags.length -->
|
||||
{{{ if !tags.length }}}
|
||||
[[admin/manage/tags:none]]
|
||||
<!-- ENDIF !tags.length -->
|
||||
{{{ end }}}
|
||||
|
||||
<div class="tag-list">
|
||||
<!-- BEGIN tags -->
|
||||
{{{ each tags }}}
|
||||
<div class="tag-row" data-tag="{tags.valueEscaped}">
|
||||
<div>
|
||||
<button disabled class="rounded-3 btn btn-light">
|
||||
@@ -20,7 +20,7 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END tags -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,42 +15,42 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[[admin/manage/uploads:filename]]</th>
|
||||
<!-- IF showPids --><th class="text-end">[[admin/manage/uploads:usage]]</th><!-- END -->
|
||||
{{{ if showPids }}}<th class="text-end">[[admin/manage/uploads:usage]]</th>{{{ end }}}
|
||||
<th class="text-end">[[admin/manage/uploads:size/filecount]]</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN files -->
|
||||
{{{ each files }}}
|
||||
<tr data-path="{files.path}">
|
||||
<!-- IF files.isDirectory -->
|
||||
{{{ if files.isDirectory }}}
|
||||
<td class="col-md-6" role="button">
|
||||
<i class="fa fa-fw fa-folder-o"></i> <a href="{config.relative_path}/admin/manage/uploads?dir={files.path}">{files.name}</a>
|
||||
</td>
|
||||
<!-- ENDIF files.isDirectory -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF files.isFile -->
|
||||
{{{ if files.isFile }}}
|
||||
<td class="col-md-6">
|
||||
<i class="fa fa-fw fa-file-text-o"></i> <a href="{config.relative_path}{files.url}" target="_blank">{files.name}</a>
|
||||
</td>
|
||||
<!-- ENDIF files.isFile -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF showPids -->
|
||||
{{{ if showPids }}}
|
||||
<td class="col-md-3 text-end">
|
||||
{{{ each ../inPids }}}
|
||||
{{{ each ./inPids }}}
|
||||
<a target="_blank" href="{config.relative_path}/post/{@value}"><span class="label label-default">{@value}</span></a>
|
||||
{{{ end }}}
|
||||
<!-- IF !../inPids.length -->
|
||||
{{{ if !./inPids.length }}}
|
||||
<span class="label label-danger">[[admin/manage/uploads:orphaned]]</span>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
|
||||
<td class="col-md-2 text-end"><!-- IF files.isFile -->{files.sizeHumanReadable}<!-- ELSE -->[[admin/manage/uploads:filecount, {files.fileCount}]]<!-- ENDIF files.isFile --></td>
|
||||
<td class="col-md-2 text-end">{{{ if files.isFile }}}{files.sizeHumanReadable}{{{ else }}}[[admin/manage/uploads:filecount, {files.fileCount}]]{{{ end }}}</td>
|
||||
|
||||
<td role="button" class="col-md-1 text-end"><i class="delete fa fa-fw fa-trash-o <!-- IF !files.isFile --> hidden<!-- ENDIF !files.isFile -->"></i></td>
|
||||
<td role="button" class="col-md-1 text-end"><i class="delete fa fa-fw fa-trash-o {{{ if !files.isFile }}} hidden{{{ end }}}"></i></td>
|
||||
</tr>
|
||||
<!-- END files -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -85,12 +85,6 @@
|
||||
<div id="user-notfound-notify" class="label label-danger {{{if !query}}}hidden{{{end}}} {{{if matchCount}}}hidden{{{end}}}">[[admin/manage/users:search.not-found]]</div>
|
||||
</div>
|
||||
|
||||
<!-- IF inactive -->
|
||||
<a href="{config.relative_path}/admin/manage/users/inactive?months=3&resultsPerPage={resultsPerPage}" class="btn btn-outline-secondary">[[admin/manage/users:inactive.3-months]]</a>
|
||||
<a href="{config.relative_path}/admin/manage/users/inactive?months=6&resultsPerPage={resultsPerPage}" class="btn btn-outline-secondary">[[admin/manage/users:inactive.6-months]]</a>
|
||||
<a href="{config.relative_path}/admin/manage/users/inactive?months=12&resultsPerPage={resultsPerPage}" class="btn btn-outline-secondary">[[admin/manage/users:inactive.12-months]]</a>
|
||||
<!-- ENDIF inactive -->
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped users-table">
|
||||
<thead>
|
||||
@@ -108,19 +102,19 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN users -->
|
||||
{{{ each users }}}
|
||||
<tr class="user-row">
|
||||
<th><input component="user/select/single" data-uid="{users.uid}" type="checkbox"/></th>
|
||||
<td class="text-end">{users.uid}</td>
|
||||
<td>
|
||||
<i title="[[admin/manage/users:users.banned]]" class="ban fa fa-gavel text-danger<!-- IF !users.banned --> hidden<!-- ENDIF !users.banned -->"></i>
|
||||
<i class="administrator fa fa-shield text-success<!-- IF !users.administrator --> hidden<!-- ENDIF !users.administrator -->"></i>
|
||||
<i title="[[admin/manage/users:users.banned]]" class="ban fa fa-gavel text-danger{{{ if !users.banned }}} hidden{{{ end }}}"></i>
|
||||
<i class="administrator fa fa-shield text-success{{{ if !users.administrator }}} hidden{{{ end }}}"></i>
|
||||
<a href="{config.relative_path}/user/{users.userslug}"> {users.username}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{{ if ../email }}}
|
||||
<i class="validated fa fa-check text-success<!-- IF !users.email:confirmed --> hidden<!-- ENDIF !users.email:confirmed -->" title="validated"></i>
|
||||
<i class="notvalidated fa fa-check text-muted<!-- IF users.email:confirmed --> hidden<!-- ENDIF users.email:confirmed -->" title="not validated"></i>
|
||||
<i class="validated fa fa-check text-success{{{ if !users.email:confirmed }}} hidden{{{ end }}}" title="validated"></i>
|
||||
<i class="notvalidated fa fa-check text-muted{{{ if users.email:confirmed }}} hidden{{{ end }}}" title="not validated"></i>
|
||||
{../email}
|
||||
{{{ else }}}
|
||||
<i class="notvalidated fa fa-check text-muted" title="not validated"></i>
|
||||
@@ -130,11 +124,11 @@
|
||||
<td>{users.ip}</td>
|
||||
<td class="text-end">{users.postcount}</td>
|
||||
<td class="text-end">{users.reputation}</td>
|
||||
<td class="text-end"><!-- IF users.flags -->{users.flags}<!-- ELSE -->0<!-- ENDIF users.flags --></td>
|
||||
<td class="text-end">{{{ if users.flags }}}{users.flags}{{{ else }}}0{{{ end }}}</td>
|
||||
<td><span class="timeago" title="{users.joindateISO}"></span></td>
|
||||
<td><span class="timeago" title="{users.lastonlineISO}"></span></td>
|
||||
</tr>
|
||||
<!-- END users -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
[[ip-blacklist:validate.x-valid, {valid.length}, {numRules}]]
|
||||
</p>
|
||||
|
||||
<!-- IF invalid.length -->
|
||||
{{{ if invalid.length }}}
|
||||
<p>
|
||||
[[ip-blacklist:validate.x-invalid, {invalid.length}]]
|
||||
</p>
|
||||
<ul>
|
||||
<!-- BEGIN invalid -->
|
||||
{{{ each invalid }}}
|
||||
<li><code>{@value}</code></li>
|
||||
<!-- END invalid -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
<!-- ENDIF invalid.length -->
|
||||
{{{ end }}}
|
||||
@@ -1,6 +1,6 @@
|
||||
<ul data-cid="{cid}">
|
||||
{{{ each categories }}}
|
||||
<li data-cid="{categories.cid}" data-parent-cid="{categories.parentCid}" data-name="{categories.name}" <!-- IF categories.disabled -->class="disabled"<!-- ENDIF categories.disabled -->>
|
||||
<li data-cid="{categories.cid}" data-parent-cid="{categories.parentCid}" data-name="{categories.name}" {{{ if categories.disabled }}}class="disabled"{{{ end }}}>
|
||||
<div class="row category-row">
|
||||
<div class="col-md-9">
|
||||
<div class="clearfix">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<li component="category/no-matches" role="presentation" class="category hidden">
|
||||
<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
|
||||
</li>
|
||||
<!-- BEGIN categories -->
|
||||
{{{ each categories }}}
|
||||
<li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}" data-cid="{categories.cid}" data-name="{categories.name}">
|
||||
<a class="dropdown-item" role="menuitem">{categories.level}
|
||||
<span component="category-markup">
|
||||
@@ -22,7 +22,7 @@
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- END categories -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,32 +16,32 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN stats -->
|
||||
{{{ each stats }}}
|
||||
<tr>
|
||||
<td>
|
||||
<strong>
|
||||
{{{ if ../href }}}
|
||||
<a href="{../href}">{../name}</a>
|
||||
{{{ if ./href }}}
|
||||
<a href="{./href}">{./name}</a>
|
||||
{{{ else }}}
|
||||
{../name}
|
||||
{./name}
|
||||
{{{ end }}}
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-end formatted-number">{stats.yesterday}</td>
|
||||
<td class="text-end formatted-number">{stats.today}</td>
|
||||
<td class="{stats.dayTextClass}"><small>{stats.dayIncrease}%</small></td>
|
||||
<td class="text-end formatted-number">{./yesterday}</td>
|
||||
<td class="text-end formatted-number">{./today}</td>
|
||||
<td class="{./dayTextClass}"><small>{./dayIncrease}%</small></td>
|
||||
|
||||
<td class="text-end formatted-number">{stats.lastweek}</td>
|
||||
<td class="text-end formatted-number">{stats.thisweek}</td>
|
||||
<td class="{stats.weekTextClass}"><small>{stats.weekIncrease}%</small></td>
|
||||
<td class="text-end formatted-number">{./lastweek}</td>
|
||||
<td class="text-end formatted-number">{./thisweek}</td>
|
||||
<td class="{./weekTextClass}"><small>{./weekIncrease}%</small></td>
|
||||
|
||||
<td class="text-end formatted-number">{stats.lastmonth}</td>
|
||||
<td class="text-end formatted-number">{stats.thismonth}</td>
|
||||
<td class="{stats.monthTextClass}"><small>{stats.monthIncrease}%</small></td>
|
||||
<td class="text-end formatted-number">{./lastmonth}</td>
|
||||
<td class="text-end formatted-number">{./thismonth}</td>
|
||||
<td class="{./monthTextClass}"><small>{./monthIncrease}%</small></td>
|
||||
|
||||
<td class="text-end formatted-number">{stats.alltime}</td>
|
||||
<td class="text-end formatted-number">{./alltime}</td>
|
||||
</tr>
|
||||
<!-- END stats -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -1,25 +1,25 @@
|
||||
<li id="{../id}" data-plugin-id="{../id}" class="clearfix">
|
||||
<li id="{./id}" data-plugin-id="{./id}" class="clearfix">
|
||||
<div class="float-end">
|
||||
<button data-action="toggleActive" class="btn btn-success hidden"><i class="fa fa-power-off"></i> [[admin/extend/plugins:plugin-item.activate]]</button>
|
||||
<button data-action="toggleInstall" data-installed="0" class="btn btn-success"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.install]]</button>
|
||||
</div>
|
||||
|
||||
<h2><strong>{../name}</strong></h2>
|
||||
<h2><strong>{./name}</strong></h2>
|
||||
|
||||
<!-- IF ../description -->
|
||||
<p>{../description}</p>
|
||||
<!-- ENDIF ../description -->
|
||||
{{{ if ./description }}}
|
||||
<p>{./description}</p>
|
||||
{{{ end }}}
|
||||
|
||||
<small>[[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{../latest}</strong></small>
|
||||
<small>[[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{./latest}</strong></small>
|
||||
<p>
|
||||
<!-- IF ../isCompatible -->
|
||||
{{{ if ./isCompatible }}}
|
||||
<i class="fa fa-check text-success"></i> [[admin/extend/plugins:plugin-item.compatible, {version}]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<i class="fa fa-question text-warning"></i> [[admin/extend/plugins:plugin-item.not-compatible]]
|
||||
<!-- ENDIF -->
|
||||
{{{ end }}}
|
||||
</p>
|
||||
|
||||
<!-- IF ../url -->
|
||||
<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{../url}">{../url}</a></p>
|
||||
<!-- ENDIF ../url -->
|
||||
{{{ if ./url }}}
|
||||
<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{./url}">{./url}</a></p>
|
||||
{{{ end }}}
|
||||
</li>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<div class="row mb-2">
|
||||
<!-- IF group.isOwner -->
|
||||
{{{ if group.isOwner }}}
|
||||
<div class="col-lg-1">
|
||||
<button component="groups/members/add" type="button" class="btn btn-primary" title="[[groups:details.add-member]]"><i class="fa fa-user-plus"></i></button>
|
||||
</div>
|
||||
<!-- ENDIF group.isOwner -->
|
||||
<div class="<!-- IF group.isOwner -->col-lg-11<!-- ELSE -->col-lg-12<!-- ENDIF group.isOwner -->">
|
||||
{{{ end }}}
|
||||
<div class="{{{ if group.isOwner }}}col-lg-11{{{ else }}}col-lg-12{{{ end }}}">
|
||||
<div class="input-group">
|
||||
<input class="form-control" type="text" component="groups/members/search" placeholder="[[global:search]]"/>
|
||||
<span class="input-group-text search-button px-2"><i class="fa fa-search"></i></span>
|
||||
@@ -14,15 +14,16 @@
|
||||
|
||||
<table component="groups/members" class="table table-striped table-hover" data-nextstart="{group.membersNextStart}">
|
||||
<tbody>
|
||||
<!-- BEGIN group.members -->
|
||||
{{{ each group.members }}}
|
||||
<tr data-uid="{group.members.uid}">
|
||||
<td>
|
||||
<a href="{config.relative_path}/user/{group.members.userslug}">{buildAvatar(group.members, "24px", true)}</a>
|
||||
</td>
|
||||
<td class="member-name">
|
||||
<a href="{config.relative_path}/user/{group.members.userslug}">{group.members.username}</a> <i title="[[groups:owner]]" class="user-owner-icon fa fa-star text-warning <!-- IF !group.members.isOwner -->invisible<!-- ENDIF !group.members.isOwner -->"></i>
|
||||
<a href="{config.relative_path}/user/{group.members.userslug}">{group.members.username}</a> <i title="[[groups:owner]]" class="user-owner-icon fa fa-star text-warning
|
||||
{{{ if !group.members.isOwner }}}invisible{{{ end }}}"></i>
|
||||
|
||||
<!-- IF group.isOwner -->
|
||||
{{{ if group.isOwner }}}
|
||||
<div class="owner-controls btn-group float-end">
|
||||
<a class="btn btn-sm" href="#" data-ajaxify="false" data-action="toggleOwnership" title="[[groups:details.grant]]">
|
||||
<i class="fa fa-star"></i>
|
||||
@@ -32,9 +33,9 @@
|
||||
<i class="fa fa-ban"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ENDIF group.isOwner -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END group.members -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -10,7 +10,7 @@
|
||||
<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
|
||||
</li>
|
||||
{{{each categories}}}
|
||||
<li role="presentation" class="category <!-- IF categories.disabledClass -->disabled<!-- ENDIF categories.disabledClass -->" data-cid="{categories.cid}" data-name="{categories.name}" data-parent-cid="{categories.parentCid}">
|
||||
<li role="presentation" class="category {{{ if categories.disabledClass }}}disabled{{{ end }}}" data-cid="{categories.cid}" data-name="{categories.name}" data-parent-cid="{categories.parentCid}">
|
||||
<a class="dropdown-item" role="menuitem">{categories.level}
|
||||
<span component="category-markup">
|
||||
<div class="category-item d-inline-block">
|
||||
|
||||
@@ -1,60 +1,60 @@
|
||||
<!-- IF !../error -->
|
||||
<li id="{../id}" data-plugin-index="{@index}" data-plugin-id="{../id}" data-version="{../version}" class="clearfix <!-- IF ../active -->active<!-- ENDIF ../active -->">
|
||||
{{{ if !./error }}}
|
||||
<li id="{./id}" data-plugin-index="{@index}" data-plugin-id="{./id}" data-version="{./version}" class="clearfix {{{ if ./active }}}active{{{ end }}}">
|
||||
<div class="float-end controls">
|
||||
{{{ if ../installed }}}
|
||||
<!-- IF ../isTheme -->
|
||||
{{{ if ./installed }}}
|
||||
{{{ if ./isTheme }}}
|
||||
<a href="{config.relative_path}/admin/appearance/themes" class="btn btn-info">[[admin/extend/plugins:plugin-item.themes]]</a>
|
||||
<!-- ELSE -->
|
||||
<button data-action="toggleActive" class="btn <!-- IF ../active --> btn-warning<!-- ELSE --> btn-success<!-- ENDIF ../active --> <!-- IF !canChangeState -->disabled<!-- ENDIF -->">
|
||||
<i class="fa fa-power-off"></i> <!-- IF ../active -->[[admin/extend/plugins:plugin-item.deactivate]]<!-- ELSE -->[[admin/extend/plugins:plugin-item.activate]]<!-- ENDIF ../active --></button>
|
||||
<!-- ENDIF ../isTheme -->
|
||||
{{{ else }}}
|
||||
<button data-action="toggleActive" class="btn {{{ if ./active }}} btn-warning{{{ else }}} btn-success{{{ end }}} {{{ if !canChangeState }}}disabled{{{ end }}}">
|
||||
<i class="fa fa-power-off"></i> {{{ if ./active }}}[[admin/extend/plugins:plugin-item.deactivate]]{{{ else }}}[[admin/extend/plugins:plugin-item.activate]]{{{ end }}}</button>
|
||||
{{{ end }}}
|
||||
|
||||
<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> [[admin/extend/plugins:plugin-item.uninstall]]</button>
|
||||
|
||||
<!-- IF ../active -->
|
||||
<!-- IF ../settingsRoute -->
|
||||
<a href="{config.relative_path}{../settingsRoute}" class="btn btn-primary"><i class="fa fa-wrench"></i> [[admin/extend/plugins:plugin-item.settings]]</a>
|
||||
<!-- ENDIF ../settingsRoute -->
|
||||
<!-- ENDIF ../active -->
|
||||
{{{ if ./active }}}
|
||||
{{{ if ./settingsRoute }}}
|
||||
<a href="{config.relative_path}{./settingsRoute}" class="btn btn-primary"><i class="fa fa-wrench"></i> [[admin/extend/plugins:plugin-item.settings]]</a>
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{{{ else }}}
|
||||
<button data-action="toggleInstall" data-installed="0" class="btn btn-success"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.install]]</button>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
<h2><strong>{../name}</strong></h2>
|
||||
<h2><strong>{./name}</strong></h2>
|
||||
|
||||
<!-- IF ../description -->
|
||||
<p>{../description}</p>
|
||||
<!-- ENDIF ../description -->
|
||||
<!-- IF ../outdated --><i class="fa fa-exclamation-triangle text-danger"></i> <!-- ENDIF ../outdated -->
|
||||
<small>[[admin/extend/plugins:plugin-item.installed]] <strong class="currentVersion">{../version}</strong> | [[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{../latest}</strong></small>
|
||||
{{{ if ./description }}}
|
||||
<p>{./description}</p>
|
||||
{{{ end }}}
|
||||
{{{ if ./outdated }}}<i class="fa fa-exclamation-triangle text-danger"></i> {{{ end }}}
|
||||
<small>[[admin/extend/plugins:plugin-item.installed]] <strong class="currentVersion">{./version}</strong> | [[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{./latest}</strong></small>
|
||||
|
||||
<!-- IF ../outdated -->
|
||||
{{{ if ./outdated }}}
|
||||
<button data-action="upgrade" class="btn btn-success btn-sm"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.upgrade]]</button>
|
||||
<p>
|
||||
<!-- IF ../isCompatible -->
|
||||
{{{ if ./isCompatible }}}
|
||||
<i class="fa fa-check text-success"></i> [[admin/extend/plugins:plugin-item.compatible, {version}]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<i class="fa fa-question text-warning"></i> [[admin/extend/plugins:plugin-item.not-compatible]]
|
||||
<!-- ENDIF -->
|
||||
{{{ end }}}
|
||||
</p>
|
||||
<!-- ENDIF ../outdated -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF ../url -->
|
||||
<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{../url}">{../url}</a></p>
|
||||
<!-- ENDIF ../url -->
|
||||
{{{ if ./url }}}
|
||||
<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{./url}">{./url}</a></p>
|
||||
{{{ end }}}
|
||||
</li>
|
||||
<!-- ENDIF !../error -->
|
||||
<!-- IF ../error -->
|
||||
<li data-plugin-id="{../id}" class="clearfix">
|
||||
{{{ end }}}
|
||||
{{{ if ./error }}}
|
||||
<li data-plugin-id="{./id}" class="clearfix">
|
||||
<div class="float-end">
|
||||
<button class="btn btn-outline-secondary disabled"><i class="fa fa-exclamation-triangle"></i> [[admin/extend/plugins:plugin-item.unknown]]</button>
|
||||
<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> [[admin/extend/plugins:plugin-item.uninstall]]</button>
|
||||
</div>
|
||||
|
||||
<h2><strong>{../id}</strong></h2>
|
||||
<h2><strong>{./id}</strong></h2>
|
||||
<p>
|
||||
[[admin/extend/plugins:plugin-item.unknown-explanation]]
|
||||
</p>
|
||||
</li>
|
||||
<!-- ENDIF ../error -->
|
||||
{{{ end }}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="group-area">
|
||||
{{{ each users.groups }}}
|
||||
<div class="group-card float-start m-1" data-group-name="{users.groups.nameEscaped}">
|
||||
<a href="{config.relative_path}/admin/manage/groups/{users.groups.nameEncoded}"><span class="badge p-2" style="color:{users.groups.textColor}; background-color: {users.groups.labelColor};"><!-- IF users.groups.icon --><i class="fa {users.groups.icon}"></i> <!-- ENDIF users.groups.icon -->{users.groups.displayName} <i class="ms-2 remove-group-icon fa fa-times" role="button"></i></span></a>
|
||||
<a href="{config.relative_path}/admin/manage/groups/{users.groups.nameEncoded}"><span class="badge p-2" style="color:{users.groups.textColor}; background-color: {users.groups.labelColor};">{{{ if users.groups.icon }}}<i class="fa {users.groups.icon}"></i> {{{ end }}}{users.groups.displayName} <i class="ms-2 remove-group-icon fa fa-times" role="button"></i></span></a>
|
||||
</div>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
|
||||
@@ -77,31 +77,31 @@
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- IF plugins.length -->
|
||||
{{{ if plugins.length }}}
|
||||
<section class="menu-section">
|
||||
<h3 class="menu-section-title">[[admin/menu:section-plugins]]</h3>
|
||||
<ul class="menu-section-list">
|
||||
<!-- BEGIN plugins -->
|
||||
{{{ each plugins }}}
|
||||
<li>
|
||||
<a href="{relative_path}/admin{plugins.route}">{plugins.name}</a>
|
||||
<a href="{relative_path}/admin{./route}">{./name}</a>
|
||||
</li>
|
||||
<!-- END plugins -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</section>
|
||||
<!-- ENDIF plugins.length -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF authentication.length -->
|
||||
{{{ if authentication.length }}}
|
||||
<section class="menu-section">
|
||||
<h3 class="menu-section-title">[[admin/menu:section-social-auth]]</h3>
|
||||
<ul class="menu-section-list">
|
||||
<!-- BEGIN authentication -->
|
||||
{{{ each authentication }}}
|
||||
<li>
|
||||
<a href="{relative_path}/admin{authentication.route}">{authentication.name}</a>
|
||||
<a href="{relative_path}/admin{./route}">{./name}</a>
|
||||
</li>
|
||||
<!-- END authentication -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</section>
|
||||
<!-- ENDIF authentication.length -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
|
||||
{{{ if user.privileges.superadmin }}}
|
||||
@@ -114,9 +114,9 @@
|
||||
<li><a href="{relative_path}/admin/advanced/cache">[[admin/menu:advanced/cache]]</a></li>
|
||||
<li><a href="{relative_path}/admin/advanced/errors">[[admin/menu:advanced/errors]]</a></li>
|
||||
<li><a href="{relative_path}/admin/advanced/logs">[[admin/menu:advanced/logs]]</a></li>
|
||||
<!-- IF env -->
|
||||
{{{ if env }}}
|
||||
<li><a href="{relative_path}/admin/development/logger">[[admin/menu:development/logger]]</a></li>
|
||||
<!-- ENDIF env -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</section>
|
||||
{{{ end }}}
|
||||
@@ -253,34 +253,32 @@
|
||||
<li><a class="dropdown-item" href="{relative_path}/admin/extend/rewards">[[admin/menu:extend/rewards]]</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- IF plugins.length -->
|
||||
{{{ if plugins.length }}}
|
||||
<li class="dropdown menu-item">
|
||||
<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-plugins]]</a>
|
||||
<ul class="dropdown-menu plugins-menu" role="menu">
|
||||
<li class="dropdown-header">[[admin/menu:section-plugins]]</li>
|
||||
<!-- BEGIN plugins -->
|
||||
{{{ each plugins }}}
|
||||
<li>
|
||||
<a class="dropdown-item" href="{relative_path}/admin{plugins.route}">{plugins.name}</a>
|
||||
<a class="dropdown-item" href="{relative_path}/admin{./route}">{./name}</a>
|
||||
</li>
|
||||
<!-- END plugins -->
|
||||
<!-- IF authentication.length -->
|
||||
{{{ end }}}
|
||||
{{{ if authentication.length }}}
|
||||
<li class="dropdown-divider"></li>
|
||||
{{{if authentication.length}}}
|
||||
<li class="dropdown-header">[[admin/menu:section-social-auth]]</li>
|
||||
{{{each authentication}}}
|
||||
{{{ each authentication }}}
|
||||
<li>
|
||||
<a class="dropdown-item" href="{relative_path}/admin{authentication.route}">{authentication.name}</a>
|
||||
<a class="dropdown-item" href="{relative_path}/admin{./route}">{./name}</a>
|
||||
</li>
|
||||
{{{end}}}
|
||||
{{{end}}}
|
||||
<!-- ENDIF authentication.length -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
<li class="dropdown-divider"></li>
|
||||
<li data-link="1">
|
||||
<a class="dropdown-item" href="{relative_path}/admin/extend/plugins#download">[[admin/menu:extend/plugins.install]]</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- ENDIF plugins.length -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
|
||||
{{{ if user.privileges.superadmin }}}
|
||||
@@ -293,9 +291,9 @@
|
||||
<li><a class="dropdown-item" href="{relative_path}/admin/advanced/cache">[[admin/menu:advanced/cache]]</a></li>
|
||||
<li><a class="dropdown-item" href="{relative_path}/admin/advanced/errors">[[admin/menu:advanced/errors]]</a></li>
|
||||
<li><a class="dropdown-item" href="{relative_path}/admin/advanced/logs">[[admin/menu:advanced/logs]]</a></li>
|
||||
<!-- IF env -->
|
||||
{{{ if env }}}
|
||||
<li><a class="dropdown-item" href="{relative_path}/admin/development/logger">[[admin/menu:development/logger]]</a></li>
|
||||
<!-- ENDIF env -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</li>
|
||||
{{{ end }}}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<button type="button" data-filter="3,5" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
|
||||
<button type="button" data-filter="6,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
|
||||
<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
|
||||
<!-- IF privileges.columnCountGroupOther -->
|
||||
{{{ if privileges.columnCountGroupOther }}}
|
||||
<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</th>
|
||||
</tr><tr><!-- zebrastripe reset --></tr>
|
||||
@@ -22,8 +22,8 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN privileges.groups -->
|
||||
<tr data-group-name="{privileges.groups.nameEscaped}" data-private="<!-- IF privileges.groups.isPrivate -->1<!-- ELSE -->0<!-- ENDIF privileges.groups.isPrivate -->">
|
||||
{{{ each privileges.groups }}}
|
||||
<tr data-group-name="{privileges.groups.nameEscaped}" data-private="{{{ if privileges.groups.isPrivate }}}1{{{ else }}}0{{{ end }}}">
|
||||
<td>
|
||||
{{{ if privileges.groups.isPrivate }}}
|
||||
{{{ if (privileges.groups.name == "banned-users") }}}
|
||||
@@ -55,7 +55,7 @@
|
||||
</td>
|
||||
{function.spawnPrivilegeStates, privileges.groups.name, ../privileges}
|
||||
</tr>
|
||||
<!-- END privileges.groups -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
@@ -96,9 +96,9 @@
|
||||
<button type="button" data-filter="3,5" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
|
||||
<button type="button" data-filter="6,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
|
||||
<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
|
||||
<!-- IF privileges.columnCountUserOther -->
|
||||
{{{ if privileges.columnCountUserOther }}}
|
||||
<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</th>
|
||||
</tr><tr><!-- zebrastripe reset --></tr>
|
||||
@@ -111,14 +111,14 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN privileges.users -->
|
||||
{{{ each privileges.users }}}
|
||||
<tr data-uid="{privileges.users.uid}"{{{ if privileges.users.banned }}} data-banned{{{ end }}}>
|
||||
<td>
|
||||
<!-- IF ../picture -->
|
||||
{{{ if ./picture }}}
|
||||
<img class="avatar avatar-sm" src="{privileges.users.picture}" title="{privileges.users.username}" alt="" />
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<div class="avatar avatar-sm" style="background-color: {../icon:bgColor};">{../icon:text}</div>
|
||||
<!-- ENDIF ../picture -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
<td>
|
||||
{{{ if privileges.users.banned }}}
|
||||
@@ -129,7 +129,7 @@
|
||||
<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
|
||||
{function.spawnPrivilegeStates, privileges.users.username, ../privileges}
|
||||
</tr>
|
||||
<!-- END privileges.users -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
<button type="button" data-filter="9,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
|
||||
<button type="button" data-filter="3,8" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
|
||||
<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
|
||||
<!-- IF privileges.columnCountGroupOther -->
|
||||
{{{ if privileges.columnCountGroupOther }}}
|
||||
<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</th>
|
||||
</tr><tr><!-- zebrastripe reset --></tr>
|
||||
@@ -24,8 +24,8 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN privileges.groups -->
|
||||
<tr data-group-name="{privileges.groups.nameEscaped}" data-private="<!-- IF privileges.groups.isPrivate -->1<!-- ELSE -->0<!-- ENDIF privileges.groups.isPrivate -->">
|
||||
{{{ each privileges.groups }}}
|
||||
<tr data-group-name="{privileges.groups.nameEscaped}" data-private="{{{ if privileges.groups.isPrivate }}}1{{{ else }}}0{{{ end }}}">
|
||||
<td>
|
||||
{{{ if privileges.groups.isPrivate }}}
|
||||
{{{ if (privileges.groups.name == "banned-users") }}}
|
||||
@@ -42,7 +42,7 @@
|
||||
<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
|
||||
{function.spawnPrivilegeStates, privileges.groups.name, ../privileges}
|
||||
</tr>
|
||||
<!-- END privileges.groups -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
@@ -72,9 +72,9 @@
|
||||
<button type="button" data-filter="9,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
|
||||
<button type="button" data-filter="3,8" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
|
||||
<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
|
||||
<!-- IF privileges.columnCountUserOther -->
|
||||
{{{ if privileges.columnCountUserOther }}}
|
||||
<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
</th>
|
||||
</tr><tr><!-- zebrastripe reset --></tr>
|
||||
@@ -88,14 +88,14 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN privileges.users -->
|
||||
{{{ each privileges.users }}}
|
||||
<tr data-uid="{privileges.users.uid}"{{{ if privileges.users.banned }}} data-banned{{{ end }}}>
|
||||
<td>
|
||||
<!-- IF ../picture -->
|
||||
{{{ if ./picture }}}
|
||||
<img class="avatar avatar-sm" src="{privileges.users.picture}" title="{privileges.users.username}" alt="" />
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<div class="avatar avatar-sm" style="background-color: {../icon:bgColor};">{../icon:text}</div>
|
||||
<!-- ENDIF ../picture -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
<td>
|
||||
{{{ if privileges.users.banned }}}
|
||||
@@ -106,7 +106,7 @@
|
||||
<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
|
||||
{function.spawnPrivilegeStates, privileges.users.username, ../privileges}
|
||||
</tr>
|
||||
<!-- END privileges.users -->
|
||||
{{{ end }}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<div class="alert <!-- IF upgradeAvailable -->alert-warning<!-- ELSE -->alert-info<!-- END --> well-sm">
|
||||
<div class="alert {{{ if upgradeAvailable }}}alert-warning{{{ else }}}alert-info{{{ end }}}">
|
||||
<span>[[admin/menu:alerts.version, {version}]]</span>
|
||||
<!-- IF upgradeAvailable -->
|
||||
{{{ if upgradeAvailable }}}
|
||||
<span style="margin-left: 10px">
|
||||
<a href="https://docs.nodebb.org/configuring/upgrade/" target="_blank">
|
||||
<u>[[admin/menu:alerts.upgrade, {latestVersion}]]</u>
|
||||
</a>
|
||||
</span>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
@@ -1,24 +1,24 @@
|
||||
<!-- BEGIN themes -->
|
||||
<div class="col-lg-4 col-md-6 col-12 mb-4" data-type="{themes.type}" data-theme="{themes.id}"{{{ if themes.css }}} data-css="{themes.css}" {{{ end }}}>
|
||||
{{{ each themes }}}
|
||||
<div class="col-lg-4 col-md-6 col-12 mb-4" data-type="{./type}" data-theme="{./id}"{{{ if ./css }}} data-css="{./css}" {{{ end }}}>
|
||||
<div class="card h-100">
|
||||
<img src="{themes.screenshot_url}" class="card-img-top">
|
||||
<img src="{./screenshot_url}" class="card-img-top">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{themes.name}</h5>
|
||||
<h5 class="card-title">{./name}</h5>
|
||||
<p class="card-text">
|
||||
{themes.description}
|
||||
{./description}
|
||||
</p>
|
||||
|
||||
{{{ if themes.url }}}
|
||||
{{{ if ./url }}}
|
||||
<p>
|
||||
<a href="{themes.url}" target="_blank">[[admin/appearance/themes:homepage]]</a>
|
||||
<a href="{./url}" target="_blank">[[admin/appearance/themes:homepage]]</a>
|
||||
</p>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<a class="btn btn-primary" data-action="use">
|
||||
{{{ if themes.skin }}}[[admin/appearance/skins:select-skin]]{{{ else }}}[[admin/appearance/themes:select-theme]]{{{ end }}}
|
||||
{{{ if ./skin }}}[[admin/appearance/skins:select-skin]]{{{ else }}}[[admin/appearance/themes:select-theme]]{{{ end }}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END themes -->
|
||||
{{{ end }}}
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
<div class="col-lg-6">
|
||||
<label>[[admin/extend/widgets:show-to-groups]]</label>
|
||||
<select name="groups" class="form-select" multiple size="10">
|
||||
<!-- BEGIN groups -->
|
||||
<option value="{groups.displayName}">{groups.displayName}</option>
|
||||
<!-- END groups -->
|
||||
{{{ each groups }}}
|
||||
<option value="{./displayName}">{./displayName}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>[[admin/extend/widgets:hide-from-groups]]</label>
|
||||
<select name="groupsHideFrom" class="form-select" multiple size="10">
|
||||
<!-- BEGIN groups -->
|
||||
<option value="{groups.displayName}">{groups.displayName}</option>
|
||||
<!-- END groups -->
|
||||
{{{ each groups }}}
|
||||
<option value="{./displayName}">{./displayName}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -175,9 +175,9 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email-editor-selector">[[admin/settings/email:template.select]]</label>
|
||||
<select id="email-editor-selector" class="form-select">
|
||||
<!-- BEGIN emails -->
|
||||
<option value="{emails.path}">{emails.path}</option>
|
||||
<!-- END emails -->
|
||||
{{{ each emails }}}
|
||||
<option value="{./path}">{./path}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
@@ -195,9 +195,9 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="test-email">[[admin/settings/email:testing.select]]</label>
|
||||
<select id="test-email" class="form-select">
|
||||
<!-- BEGIN sendable -->
|
||||
{{{ each sendable }}}
|
||||
<option value="{@value}">{@value}</option>
|
||||
<!-- END sendable -->
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
<button class="btn btn-primary" type="button" data-action="email.test">[[admin/settings/email:testing.send]]</button>
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="homePageRoute">[[admin/settings/homepage:home-page-route]]</label>
|
||||
<select id="homePageRoute" class="form-select" data-field="homePageRoute">
|
||||
<!-- BEGIN routes -->
|
||||
<option value="{routes.route}">{routes.name}</option>
|
||||
<!-- END routes -->
|
||||
{{{ each routes }}}
|
||||
<option value="{./route}">{./name}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
<div id="homePageCustom" class="mb-3" style="display: none;">
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
<div class="form-group col-sm-6">
|
||||
<label class="form-label" for="language">[[admin/settings/languages:default-language]]</label>
|
||||
<select id="language" data-field="defaultLang" class="form-select">
|
||||
<!-- BEGIN languages -->
|
||||
<option value="{languages.code}" <!-- IF languages.selected -->selected<!-- ENDIF languages.selected -->>{languages.name} ({languages.code})</option>
|
||||
<!-- END languages -->
|
||||
{{{ each languages }}}
|
||||
<option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
@@ -21,7 +21,7 @@
|
||||
<form class="row">
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="formcheck">
|
||||
<input class="form-check-input" type="checkbox" data-field="autoDetectLang" <!-- IF autoDetectLang -->checked<!-- ENDIF autoDetectLang -->/>
|
||||
<input class="form-check-input" type="checkbox" data-field="autoDetectLang" {{{ if autoDetectLang }}}checked{{{ end }}}/>
|
||||
<label class="form-check-label">[[admin/settings/languages:auto-detect]]</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<div class="col-lg-9">
|
||||
<div class="clearfix">
|
||||
<ul id="active-navigation" class="nav">
|
||||
<!-- BEGIN navigation -->
|
||||
{{{ each navigation }}}
|
||||
<li data-index="{navigation.index}" class="float-start nav-item {navigation.class} {{{ if navigation.selected }}} active {{{ end }}}">
|
||||
<a href="#" title="{navigation.route}" id="{navigation.id}" class="nav-link p-3 {{{ if !navigation.enabled }}}text-muted{{{ end }}}">
|
||||
<i class="nav-icon fa fa-fw {{{ if navigation.iconClass }}}{navigation.iconClass}{{{ end }}}"></i><i class="dropdown-icon fa fa-caret-down{{{ if !navigation.dropdown }}} hidden{{{ end }}}"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- END navigation -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<ul id="enabled">
|
||||
{{{ each enabled }}}
|
||||
<li data-index="{enabled.index}" class="card card-body text-bg-light border-0 <!-- IF !enabled.selected -->hidden<!-- ENDIF !enabled.selected -->">
|
||||
<li data-index="{enabled.index}" class="card card-body text-bg-light border-0 {{{ if !enabled.selected }}}hidden{{{ end }}}">
|
||||
<form>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 text-end mb-3">
|
||||
@@ -33,7 +33,7 @@
|
||||
<div class="col-sm-1">
|
||||
<label class="form-label">[[admin/settings/navigation:icon]]</label>
|
||||
<span class="iconPicker"><i class="fa fa-2x {enabled.iconClass}"></i>
|
||||
<a class="change-icon-link <!-- IF enabled.iconClass -->hidden<!-- ENDIF enabled.iconClass -->" href="#">[[admin/settings/navigation:change-icon]]</a>
|
||||
<a class="change-icon-link {{{ if enabled.iconClass }}}hidden{{{ end }}}" href="#">[[admin/settings/navigation:change-icon]]</a>
|
||||
<input class="form-control" type="hidden" name="iconClass" value="{enabled.iconClass}" />
|
||||
</span>
|
||||
</div>
|
||||
@@ -77,14 +77,14 @@
|
||||
|
||||
<select name="groups" class="form-select" size="10" multiple>
|
||||
{{{ each enabled.groups }}}
|
||||
<option value="{enabled.groups.displayName}"<!-- IF enabled.groups.selected --> selected<!-- ENDIF enabled.groups.selected -->>{enabled.groups.displayName}</option>
|
||||
<option value="{enabled.groups.displayName}"{{{ if enabled.groups.selected }}} selected{{{ end }}}>{enabled.groups.displayName}</option>
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input" type="checkbox" name="targetBlank" <!-- IF enabled.targetBlank -->checked<!-- ENDIF enabled.targetBlank -->/>
|
||||
<input class="form-check-input" type="checkbox" name="targetBlank" {{{ if enabled.targetBlank }}}checked{{{ end }}}/>
|
||||
<label class="form-check-label">[[admin/settings/navigation:open-new-window]]</label>
|
||||
</div>
|
||||
|
||||
@@ -119,12 +119,12 @@
|
||||
</li>
|
||||
{{{ each available }}}
|
||||
<li data-id="{@index}" class="clearfix">
|
||||
<div data-id="{@index}" class="drag-item alert <!-- IF available.core -->alert-warning<!-- ELSE -->alert-info<!-- ENDIF available.core --> float-start">
|
||||
<i class="fa fa-fw <!-- IF available.iconClass -->{available.iconClass}<!-- ELSE -->fa-navicon<!-- ENDIF available.iconClass -->"></i>
|
||||
<div data-id="{@index}" class="drag-item alert {{{ if available.core }}}alert-warning{{{ else }}}alert-info{{{ end }}} float-start">
|
||||
<i class="fa fa-fw {{{ if available.iconClass }}}{available.iconClass}{{{ else }}}fa-navicon{{{ end }}}"></i>
|
||||
</div>
|
||||
<p>
|
||||
<strong>{available.text}</strong> {available.route} <br/>
|
||||
<!-- IF available.core --> [[admin/settings/navigation:core]] <!-- ELSE --> [[admin/settings/navigation:plugin]] <!-- ENDIF available.core -->
|
||||
{{{ if available.core }}} [[admin/settings/navigation:core]] {{{ else }}} [[admin/settings/navigation:plugin]] {{{ end }}}
|
||||
</p>
|
||||
</li>
|
||||
{{{ end }}}
|
||||
|
||||
@@ -140,9 +140,9 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="groupsExemptFromPostQueue">[[admin/settings/post:restrictions.groups-exempt-from-post-queue]]</label>
|
||||
<select id="groupsExemptFromPostQueue" class="form-select" multiple data-field="groupsExemptFromPostQueue">
|
||||
<!-- BEGIN groupsExemptFromPostQueue -->
|
||||
{{{ each groupsExemptFromPostQueue }}}
|
||||
<option value="{groupsExemptFromPostQueue.displayName}">{groupsExemptFromPostQueue.displayName}</option>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
<div class="col-sm-2 col-12 settings-header">[[admin/settings/social:post-sharing]]</div>
|
||||
<div class="col-sm-10 col-12">
|
||||
<div class="form-group" id="postSharingNetworks">
|
||||
<!-- BEGIN posts -->
|
||||
{{{ each posts }}}
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input type="checkbox" class="form-check-input" id="{posts.id}" data-field="{posts.id}" name="{posts.id}" <!-- IF posts.activated -->checked<!-- ENDIF posts.activated --> />
|
||||
<input type="checkbox" class="form-check-input" id="{posts.id}" data-field="{posts.id}" name="{posts.id}" {{{ if posts.activated }}}checked{{{ end }}} />
|
||||
<label for="{posts.id}" class="form-check-label">
|
||||
<i class="fa {posts.class}"></i> {posts.name}
|
||||
</label>
|
||||
</div>
|
||||
<!-- END posts -->
|
||||
{{{ end }}}
|
||||
<p class="form-text">[[admin/settings/social:info-plugins-additional]]</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -313,13 +313,13 @@
|
||||
|
||||
<label class="form-label">[[admin/settings/user:default-notification-settings]]</label>
|
||||
|
||||
<!-- BEGIN notificationSettings -->
|
||||
{{{ each notificationSettings }}}
|
||||
<div class="row">
|
||||
<div class="mb-3 col-7">
|
||||
<label class="form-label">{notificationSettings.label}</label>
|
||||
<label class="form-label">{./label}</label>
|
||||
</div>
|
||||
<div class="mb-3 col-5">
|
||||
<select class="form-select" data-field="{notificationSettings.name}">
|
||||
<select class="form-select" data-field="{./name}">
|
||||
<option value="none">[[notifications:none]]</option>
|
||||
<option value="notification">[[notifications:notification_only]]</option>
|
||||
<option value="email">[[notifications:email_only]]</option>
|
||||
@@ -327,8 +327,7 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END notificationSettings -->
|
||||
|
||||
{{{ end }}}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<h1 style="margin: 0 0 10px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:banned.text1, {username}, {site_title}]]</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- IF reason -->
|
||||
{{{ if reason }}}
|
||||
<tr>
|
||||
<td style="padding: 20px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<p style="margin: 0;">
|
||||
@@ -27,8 +27,8 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF reason -->
|
||||
<!-- IF until -->
|
||||
{{{ end }}}
|
||||
{{{ if until }}}
|
||||
<tr>
|
||||
<td style="padding: 20px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<p style="margin: 0;">
|
||||
@@ -36,7 +36,7 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF until -->
|
||||
{{{ end }}}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -17,20 +17,20 @@
|
||||
<h1 style="margin: 0 0 10px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.title.{interval}]]</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- IF notifications.length -->
|
||||
{{{ if notifications.length }}}
|
||||
<tr>
|
||||
<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<ul style="margin: 0; padding: 0;">
|
||||
<!-- BEGIN notifications -->
|
||||
{{{ each notifications }}}
|
||||
<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="padding: 16px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; width: 32px;">
|
||||
<!-- IF notifications.image -->
|
||||
{{{ if notifications.image }}}
|
||||
<img style="vertical-align: middle; width: 32px; height: 32px; border-radius: 50%" src="{notifications.image}" alt="" />
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
<div style="vertical-align: middle; width: 32px; height: 32px; line-height: 32px; font-size: 16px; background-color: {notifications.user.icon:bgColor}; color: white; text-align: center; display: inline-block; border-radius: 50%">{notifications.user.icon:text}</div>
|
||||
<!-- ENDIF notifications.image -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
<td style="padding: 16px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; line-height: 16px; color: #333333;">
|
||||
<p style="margin: 0;"><a style="text-decoration:none !important; text-decoration:none; color: #333333;" href="{notifications.notification_url}">{notifications.bodyShort}</a></p>
|
||||
@@ -38,17 +38,17 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<!-- END notifications -->
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF notifications.length -->
|
||||
<!-- IF topTopics.length -->
|
||||
{{{ end }}}
|
||||
{{{ if topTopics.length }}}
|
||||
<tr>
|
||||
<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.top-topics, {site_title}]]</h1>
|
||||
<ul style="margin: 0; padding: 0;">
|
||||
<!-- BEGIN topTopics -->
|
||||
{{{ each topTopics }}}
|
||||
<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
@@ -70,20 +70,20 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<!-- IF !@last -->
|
||||
{{{ if !@last }}}
|
||||
<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
|
||||
<!-- END -->
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END -->
|
||||
<!-- IF popularTopics.length -->
|
||||
{{{ end }}}
|
||||
{{{ if popularTopics.length }}}
|
||||
<tr>
|
||||
<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.popular-topics, {site_title}]]</h1>
|
||||
<ul style="margin: 0; padding: 0;">
|
||||
<!-- BEGIN popularTopics -->
|
||||
{{{ each popularTopics }}}
|
||||
<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
@@ -105,20 +105,20 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<!-- IF !@last -->
|
||||
{{{ if !@last }}}
|
||||
<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
|
||||
<!-- END -->
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END -->
|
||||
<!-- IF recent.length -->
|
||||
{{{ end }}}
|
||||
{{{ if recent.length }}}
|
||||
<tr>
|
||||
<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.latest_topics, {site_title}]]</h1>
|
||||
<ul style="margin: 0; padding: 0;">
|
||||
<!-- BEGIN recent -->
|
||||
{{{ each recent }}}
|
||||
<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
@@ -140,14 +140,14 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<!-- IF !@last -->
|
||||
{{{ if !@last }}}
|
||||
<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
|
||||
<!-- END -->
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
<tr>
|
||||
<td style="padding: 32px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
|
||||
<!-- Button : BEGIN -->
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<tr>
|
||||
<td style="border-radius: 3px; background: #222222; text-align: center;" class="button-td">
|
||||
<a href="{notification_url}" style="background: #222222; border: 15px solid #222222; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 13px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 3px; font-weight: bold;" class="button-a">
|
||||
<span style="color:#ffffff;" class="button-link">[[email:notif.cta<!-- IF notification.cta-type -->-{notification.cta-type}<!-- END -->]] →</span>
|
||||
<span style="color:#ffffff;" class="button-link">[[email:notif.cta{{{ if notification.cta-type }}}-{notification.cta-type}{{{ end }}}]] →</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<tr>
|
||||
<td style="padding: 40px 10px;width: 100%;font-size: 12px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; line-height:18px; text-align: center; color: #888888;">
|
||||
<br><br>
|
||||
<!-- IF showUnsubscribe -->
|
||||
{{{ if showUnsubscribe }}}
|
||||
[[email:notif.post.unsub.info]] <a href="{url}/uid/{uid}/settings">[[email:unsub.cta]]</a>.
|
||||
<br />[[email:notif.post.unsub.one-click]] <a href="{unsubUrl}">[[email:unsubscribe]]</a>.
|
||||
<!-- ENDIF showUnsubscribe -->
|
||||
{{{ end }}}
|
||||
<br><br>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
1. max-width for all clients except Desktop Windows Outlook, allowing the email to squish on narrow but never go wider than 600px.
|
||||
2. MSO tags for Desktop Windows Outlook enforce a 600px width.
|
||||
-->
|
||||
<div style="max-width: 600px; margin: auto;<!-- IF rtl --> text-align: right; direction: rtl;<!-- END -->" class="email-container">
|
||||
<div style="max-width: 600px; margin: auto;{{{ if rtl }}} text-align: right; direction: rtl;{{{ end }}}" class="email-container">
|
||||
<!--[if mso]>
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" align="center">
|
||||
<tr>
|
||||
@@ -176,11 +176,11 @@
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" width="100%" style="max-width: 600px;">
|
||||
<tr>
|
||||
<td style="padding: 20px 0; text-align: center">
|
||||
<!-- IF logo.src -->
|
||||
{{{ if logo.src }}}
|
||||
<img src="{logo.src}" height="{logo.height}" width="{logo.width}" alt="{site_title}" border="0" style="height: {logo.height}px; width: {logo.width}px; background: #f6f6f6; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #333333;">
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
|
||||
<!-- ENDIF logo.src -->
|
||||
{{{ end }}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-outline-secondary" data-bs-dismiss="modal" aria-hidden="true">Close</button>
|
||||
<button class="btn btn-primary upload-btn <!-- IF !allowSkippingCrop -->hidden<!-- ENDIF !allowSkippingCrop -->">[[user:upload_picture]]</button>
|
||||
<button class="btn btn-primary upload-btn {{{ if !allowSkippingCrop }}}hidden{{{ end }}}">[[user:upload_picture]]</button>
|
||||
<button class="btn btn-primary crop-btn">[[user:upload_cropped_picture]]</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<div class="">
|
||||
<label class="form-label" for="invite-modal-groups">[[users:groups-to-join]]</label>
|
||||
<select id="invite-modal-groups" class="form-control" multiple size="5">
|
||||
<!-- BEGIN groups -->
|
||||
{{{ each groups }}}
|
||||
<option value="{@value}">{@value}</option>
|
||||
<!-- END groups -->
|
||||
{{{ end }}}
|
||||
</select>
|
||||
</div>
|
||||
@@ -1,21 +1,21 @@
|
||||
<p class="number-of-diffs">
|
||||
<!-- IF numDiffs -->
|
||||
{{{ if numDiffs }}}
|
||||
[[topic:diffs.description, {numDiffs}]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[topic:diffs.no-revisions-description, {numDiffs}]]
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</p>
|
||||
<!-- IF numDiffs -->
|
||||
{{{ if numDiffs }}}
|
||||
<div class="mb-3">
|
||||
<select class="form-control">
|
||||
{{{each diffs}}}
|
||||
{{{ each diffs }}}
|
||||
<option value="{../timestamp}">
|
||||
{../pretty}
|
||||
{{{ if ../username }}}[{../username}]{{{ end }}}
|
||||
<!-- IF @first -->([[topic:diffs.current-revision]])<!-- END -->
|
||||
<!-- IF @last -->([[topic:diffs.original-revision]])<!-- END -->
|
||||
{./pretty}
|
||||
{{{ if ./username }}}[{./username}]{{{ end }}}
|
||||
{{{ if @first }}}([[topic:diffs.current-revision]]){{{ end }}}
|
||||
{{{ if @last }}}([[topic:diffs.original-revision]]){{{ end }}}
|
||||
</option>
|
||||
{{{end}}}
|
||||
{{{ end }}}
|
||||
</select>
|
||||
|
||||
<hr />
|
||||
@@ -33,4 +33,4 @@
|
||||
{{{ end }}}
|
||||
|
||||
</div>
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
|
||||
@@ -8,19 +8,19 @@
|
||||
<div class="modal-body">
|
||||
<form id="uploadForm" action="" method="post" enctype="multipart/form-data">
|
||||
<div class="form-group">
|
||||
<!-- IF description -->
|
||||
{{{ if description }}}
|
||||
<label for="fileInput">{description}</label>
|
||||
<!-- ENDIF description -->
|
||||
<input type="file" id="fileInput" name="files[]" <!-- IF accept -->accept="{accept}"<!-- ENDIF accept -->>
|
||||
<!-- IF showHelp -->
|
||||
{{{ end }}}
|
||||
<input type="file" id="fileInput" name="files[]" {{{ if accept }}}accept="{accept}"{{{ end }}}>
|
||||
{{{ if showHelp }}}
|
||||
<p class="form-text">
|
||||
<!-- IF accept -->
|
||||
{{{ if accept }}}
|
||||
[[global:allowed-file-types, {accept}]]
|
||||
<!-- ENDIF accept -->
|
||||
{{{ end }}}
|
||||
|
||||
<!-- IF fileSize --><span id="file-size-block">([[uploads:maximum-file-size, {fileSize}]])</span><!-- ENDIF fileSize -->
|
||||
{{{ if fileSize }}}<span id="file-size-block">([[uploads:maximum-file-size, {fileSize}]])</span>{{{ end }}}
|
||||
</p>
|
||||
<!-- ENDIF showHelp -->
|
||||
{{{ end }}}
|
||||
</div>
|
||||
<input type="hidden" id="params" name="params" />
|
||||
</form>
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
<h3>[[global:upvoters]] <small>({upvoteCount})</small></h3>
|
||||
{{{each upvoters}}}
|
||||
<a href="{config.relative_path}/user/{upvoters.userslug}">{buildAvatar(upvoters, "24px", true)}</a>
|
||||
{{{end}}}
|
||||
<!-- IF showDownvotes -->
|
||||
<h3>[[global:downvoters]] <small>({downvoteCount})</small></h3>
|
||||
{{{each downvoters}}}
|
||||
<a href="{config.relative_path}/user/{downvoters.userslug}">{buildAvatar(downvoters, "24px", true)}</a>
|
||||
{{{end}}}
|
||||
<!-- ENDIF showDownvotes -->
|
||||
<div class="mb-3">
|
||||
<h4>[[global:upvoters]] <small>({upvoteCount})</small></h4>
|
||||
{{{ each upvoters }}}
|
||||
<a class="text-decoration-none" href="{config.relative_path}/user/{./userslug}">{buildAvatar(@value, "24px", true)}</a>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
{{{ if showDownvotes }}}
|
||||
<div>
|
||||
<h4>[[global:downvoters]] <small>({downvoteCount})</small></h4>
|
||||
{{{ each downvoters }}}
|
||||
<a class="text-decoration-none" href="{config.relative_path}/user/{./userslug}">{buildAvatar(@value, "24px", true)}</a>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
{{{ end }}}
|
||||
@@ -12,9 +12,9 @@
|
||||
}
|
||||
|
||||
function prepareFooter() {
|
||||
<!-- IF useCustomJS -->
|
||||
{{{ if useCustomJS }}}
|
||||
{{customJS}}
|
||||
<!-- ENDIF useCustomJS -->
|
||||
{{{ end }}}
|
||||
|
||||
$(document).ready(function () {
|
||||
app.coldLoad();
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
</div>
|
||||
<p>
|
||||
[[user:consent.email_intro]]
|
||||
<!-- IF digestEnabled -->
|
||||
{{{ if digestEnabled }}}
|
||||
[[user:consent.digest_frequency, {digestFrequency}]]
|
||||
<!-- ELSE -->
|
||||
{{{ else }}}
|
||||
[[user:consent.digest_off]]
|
||||
<!-- END -->
|
||||
{{{ end }}}
|
||||
</p>
|
||||
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="gdpr_agree_email" id="gdpr_agree_email"> <strong>[[register:gdpr_agree_email]]</strong>
|
||||
|
||||
Reference in New Issue
Block a user