Initial
This commit is contained in:
145
resources/app/templates/sheets/active-effect-config.html
Normal file
145
resources/app/templates/sheets/active-effect-config.html
Normal file
@@ -0,0 +1,145 @@
|
||||
<form autocomplete="off">
|
||||
|
||||
<!-- Effect Header -->
|
||||
<header class="sheet-header">
|
||||
<img class="effect-img" src="{{ data.img }}" data-edit="img">
|
||||
<h1 class="effect-title">
|
||||
<input name="name" type="text" value="{{data.name}}" placeholder="{{ localize 'Name' }}"/>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<!-- Effect Configuration Tabs -->
|
||||
<nav class="sheet-tabs tabs" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
|
||||
<a class="item" data-tab="details"><i class="fas fa-book"></i> {{localize "EFFECT.TabDetails"}}</a>
|
||||
<a class="item" data-tab="duration"><i class="fas fa-clock"></i> {{localize "EFFECT.TabDuration"}}</a>
|
||||
<a class="item" data-tab="effects"><i class="fas fa-cogs"></i> {{localize "EFFECT.TabEffects"}}</a>
|
||||
</nav>
|
||||
|
||||
<!-- Details Tab -->
|
||||
<section class="tab" data-tab="details">
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.Tint" }}</label>
|
||||
<div class="form-fields">
|
||||
<color-picker name="tint" value="{{data.tint}}" placeholder="#ffffff"></color-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group stacked">
|
||||
<label>{{ localize "EFFECT.Description" }}</label>
|
||||
{{editor descriptionHTML target="description" button=false editable=editable engine="prosemirror" collaborate=false}}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.Disabled" }}</label>
|
||||
<input type="checkbox" name="disabled" {{ checked data.disabled }}/>
|
||||
</div>
|
||||
|
||||
{{#if isActorEffect}}
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.Origin" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="origin" value="{{ data.origin }}" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if isItemEffect}}
|
||||
<div class="form-group">
|
||||
<label>{{ labels.transfer.name }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="transfer" {{checked data.transfer}}/>
|
||||
</div>
|
||||
<p class="hint">{{ labels.transfer.hint }}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="form-group">
|
||||
<label>Status Conditions</label>
|
||||
<div class="form-fields">
|
||||
<multi-select name="statuses">
|
||||
{{#each statuses as |status|}}
|
||||
<option value="{{status.id}}" {{status.selected}}>{{status.label}}</option>
|
||||
{{/each}}
|
||||
</multi-select>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Duration Tab -->
|
||||
<section class="tab" data-tab="duration">
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.DurationSecs" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="number" name="duration.seconds" value="{{ data.duration.seconds }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.StartTime" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="number" name="duration.startTime" value="{{ data.duration.startTime }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.DurationTurns" }}</label>
|
||||
<div class="form-fields">
|
||||
<label>{{ localize "COMBAT.Rounds" }}</label>
|
||||
<input type="number" name="duration.rounds" value="{{ data.duration.rounds }}"/>
|
||||
<label>{{ localize "COMBAT.Turns" }}</label>
|
||||
<input type="number" name="duration.turns" value="{{ data.duration.turns }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.Combat" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="duration.combat" value="{{ data.duration.combat }}" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "EFFECT.StartTurns" }}</label>
|
||||
<div class="form-fields">
|
||||
<label>{{ localize "COMBAT.Round" }}</label>
|
||||
<input type="number" name="duration.startRound" value="{{ data.duration.startRound }}"/>
|
||||
<label>{{ localize "COMBAT.Turn" }}</label>
|
||||
<input type="number" name="duration.startTurn" value="{{ data.duration.startTurn }}"/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Effects Tab -->
|
||||
<section class="tab" data-tab="effects">
|
||||
<header class="effect-change effects-header flexrow">
|
||||
<div class="key">{{ localize "EFFECT.ChangeKey" }}</div>
|
||||
<div class="mode">{{ localize "EFFECT.ChangeMode" }}</div>
|
||||
<div class="value">{{ localize "EFFECT.ChangeValue" }}</div>
|
||||
<div class="effect-controls">
|
||||
<a class="effect-control" data-action="add"><i class="far fa-plus-square"></i></a>
|
||||
</div>
|
||||
</header>
|
||||
<ol class="changes-list">
|
||||
{{#each data.changes as |change i|}}
|
||||
<li class="effect-change flexrow" data-index="{{i}}">
|
||||
<div class="key">
|
||||
<input type="text" name="changes.{{i}}.key" value="{{change.key}}"/>
|
||||
</div>
|
||||
<div class="mode">
|
||||
<select name="changes.{{i}}.mode" data-dtype="Number">
|
||||
{{selectOptions ../modes selected=change.mode}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="value">
|
||||
<input type="text" name="changes.{{i}}.value" value="{{change.value}}"/>
|
||||
</div>
|
||||
<div class="effect-controls">
|
||||
<a class="effect-control" data-action="delete"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<footer class="sheet-footer">
|
||||
<button type="submit"><i class="fas fa-save"></i> {{localize submitText}}</button>
|
||||
</footer>
|
||||
</form>
|
||||
25
resources/app/templates/sheets/actor-sheet.html
Normal file
25
resources/app/templates/sheets/actor-sheet.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<form class="actor-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="64" width="64"/>
|
||||
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="{{ localize 'Name' }}"/></h1>
|
||||
</header>
|
||||
|
||||
<section class="items">
|
||||
<h3 class="noborder">Owned Items</h3>
|
||||
<ol class="actor-items">
|
||||
{{#each actor.items as |item id|}}
|
||||
<li class="actor-item" data-item-id="{{id}}">
|
||||
<div class="item-name">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24"/>
|
||||
<h4>{{item.name}}</h4>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</section>
|
||||
</form>
|
||||
|
||||
17
resources/app/templates/sheets/base-sheet.html
Normal file
17
resources/app/templates/sheets/base-sheet.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
{{#if hasName}}
|
||||
<header>
|
||||
<input type="text" name="name" value="{{data.name}}">
|
||||
</header>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasImage}}
|
||||
<figure>
|
||||
<img src="{{data.img}}" data-edit="img">
|
||||
</figure>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasDescription}}
|
||||
{{editor descriptionHTML target="description" editable=editable engine="prosemirror" collaborate=false}}
|
||||
{{/if}}
|
||||
</form>
|
||||
30
resources/app/templates/sheets/combat-config.html
Normal file
30
resources/app/templates/sheets/combat-config.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<form autocomplete="off">
|
||||
{{#if canConfigure}}
|
||||
<div class="form-group">
|
||||
<label>{{localize 'COMBAT.Resource'}}</label>
|
||||
<select name="resource">
|
||||
{{selectOptions attributeChoices selected=settings.resource blank=(localize "None")}}
|
||||
</select>
|
||||
<p class="notes">{{localize 'COMBAT.ResourceHint'}}</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize 'COMBAT.SkipDefeated'}}</label>
|
||||
<input type="checkbox" name="skipDefeated" {{checked settings.skipDefeated}} data-dtype="Boolean"/>
|
||||
<p class="notes">{{localize 'COMBAT.SkipDefeatedHint'}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="form-group" data-setting-id="core.combatTheme">
|
||||
<label>{{ localize combatTheme.name }}</label>
|
||||
<div class="form-fields">
|
||||
{{formInput combatTheme.type value=selectedTheme localize=true}}
|
||||
<i data-tooltip="{{localize 'Preview'}}" class="fas fa-play audio-preview"></i>
|
||||
</div>
|
||||
<p class="notes">{{ localize combatTheme.hint }}</p>
|
||||
</div>
|
||||
|
||||
<button type="submit">
|
||||
<i class="fas fa-save"></i> {{localize 'COMBAT.SettingsSave'}}
|
||||
</button>
|
||||
</form>
|
||||
56
resources/app/templates/sheets/combatant-config.html
Normal file
56
resources/app/templates/sheets/combatant-config.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<form>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "COMBAT.CombatantActor" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="actorName" value="{{ document.actor.name }}" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "COMBAT.CombatantToken" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="tokenName" value="{{ document.token.name }}" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "COMBAT.CombatantName" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="name" value="{{ data.name }}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "COMBAT.CombatantImage" }}</label>
|
||||
<div class="form-fields">
|
||||
<file-picker name="img" type="image" value="{{data.img}}"></file-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "COMBAT.CombatantInitiative" }}</label>
|
||||
<div class="form-fields">
|
||||
<input type="number" name="initiative" value="{{ data.initiative }}" step="any"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "COMBAT.CombatantStatus"}}</label>
|
||||
<div class="form-fields">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="hidden" {{ checked data.hidden }}/>
|
||||
{{ localize "COMBAT.CombatantHidden" }}
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="defeated" {{ checked data.defeated }}/>
|
||||
{{ localize "COMBAT.CombatantDefeated" }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<button type="submit" title="{{ title }}">
|
||||
<i class="fas fa-save"></i> {{ title }}
|
||||
</button>
|
||||
</footer>
|
||||
</form>
|
||||
6
resources/app/templates/sheets/item-sheet.html
Normal file
6
resources/app/templates/sheets/item-sheet.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
|
||||
</header>
|
||||
</form>
|
||||
30
resources/app/templates/sheets/macro-config.html
Normal file
30
resources/app/templates/sheets/macro-config.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<form class="{{cssClass}} flexcol" spellcheck="false" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img src="{{data.img}}" data-edit="img" title="{{data.name}}" height="64" width="64"/>
|
||||
<h1><input name="name" type="text" value="{{data.name}}" placeholder="{{ localize 'Name' }}"/></h1>
|
||||
</header>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "Scope" }}</label>
|
||||
<select name="scope" disabled>
|
||||
{{selectOptions macroScopes selected=data.scope}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "Type" }}</label>
|
||||
<select name="type">
|
||||
{{selectOptions macroTypes selected=data.type}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group stacked command">
|
||||
<label>{{ localize "Command" }}</label>
|
||||
<textarea name="command">{{data.command}}</textarea>
|
||||
</div>
|
||||
|
||||
<footer class="sheet-footer flexrow">
|
||||
<button type="submit"><i class="fas fa-save"></i> {{ localize "MACRO.Save" }}</button>
|
||||
<button class="execute" type="button"><i class="fas fa-dice-d20"></i> {{ localize "MACRO.Execute" }}</button>
|
||||
</footer>
|
||||
</form>
|
||||
136
resources/app/templates/sheets/roll-table-config.html
Normal file
136
resources/app/templates/sheets/roll-table-config.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header flexrow">
|
||||
<img src="{{data.img}}" data-edit="img" title="{{data.name}}" height="64" width="64"/>
|
||||
<h1 class="name">
|
||||
<input type="text" name="name" value="{{data.name}}" placeholder="{{localize 'Name'}}"/>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<div class="form-group stacked">
|
||||
<label>{{ localize "TABLE.Description" }}</label>
|
||||
{{editor descriptionHTML target="description" button=false editable=editable engine="prosemirror" collaborate=false}}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "TABLE.Formula" }}</label>
|
||||
<input type="text" name="formula" value="{{data.formula}}" placeholder="{{localize 'Roll Formula'}}"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "TABLE.Replacement" }}</label>
|
||||
<input type="checkbox" name="replacement" {{checked data.replacement}}/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{ localize "TABLE.DisplayRoll" }}</label>
|
||||
<input type="checkbox" name="displayRoll" {{checked data.displayRoll}}/>
|
||||
</div>
|
||||
|
||||
<!-- Roll Table Results Loop -->
|
||||
<section class="results">
|
||||
<table class="table-results">
|
||||
<thead>
|
||||
<tr class="table-result table-header flexrow">
|
||||
<th class="result-image">
|
||||
<a class="create-result" title="{{ localize "TABLE.ResultCreate" }}">
|
||||
<i class="fas fa-plus"></i>
|
||||
</a>
|
||||
</th>
|
||||
|
||||
<th class="result-type">
|
||||
<label>{{ localize "TABLE.ResultType" }}</label>
|
||||
</th>
|
||||
|
||||
<th class="result-details">
|
||||
<label>{{ localize "TABLE.ResultDetails" }}</label>
|
||||
</th>
|
||||
|
||||
<th class="result-weight">
|
||||
<label>{{ localize "TABLE.ResultWeight" }}</label>
|
||||
</th>
|
||||
|
||||
<th class="result-range">
|
||||
<label>{{ localize "TABLE.ResultRange" }}</label>
|
||||
</th>
|
||||
|
||||
{{#if owner}}
|
||||
<th class="result-controls">
|
||||
<a class="normalize-results" title="{{ localize "TABLE.Normalize" }}">
|
||||
<i class="fas fa-balance-scale"></i>
|
||||
</a>
|
||||
</th>
|
||||
{{/if}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each results as |result i|}}
|
||||
<tr class="table-result flexrow {{#if result.drawn}}drawn{{/if}}" data-result-id="{{result._id}}">
|
||||
<input type="hidden" name="results.{{i}}._id" value="{{result._id}}"/>
|
||||
|
||||
<td class="result-image">
|
||||
<img src="{{result.img}}" {{#if result.isText}}data-edit="results.{{i}}.img"{{/if}} width="32" height="32"/>
|
||||
</td>
|
||||
|
||||
<td class="result-type">
|
||||
<select name="results.{{i}}.type">
|
||||
{{selectOptions ../resultTypes selected=result.type}}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td class="result-details">
|
||||
<input type="hidden" name="results.{{i}}.documentId" value="{{result.documentId}}"/>
|
||||
|
||||
{{#if result.isText}}
|
||||
<input type="text" name="results.{{i}}.text" value="{{result.text}}" placeholder="{{localize 'TABLE.ResultDescription'}}"/>
|
||||
|
||||
{{else if result.isDocument}}
|
||||
<select name="results.{{i}}.documentCollection">
|
||||
{{selectOptions ../documentTypes selected=result.documentCollection sort=true}}
|
||||
</select>
|
||||
<input class="result-target" name="results.{{i}}.text" type="text" value="{{result.text}}"/>
|
||||
|
||||
{{else if result.isCompendium}}
|
||||
<select name="results.{{i}}.documentCollection">
|
||||
{{selectOptions ../compendiumPacks selected=result.documentCollection sort=true}}
|
||||
</select>
|
||||
<input class="result-target" name="results.{{i}}.text" type="text" value="{{result.text}}"/>
|
||||
{{/if}}
|
||||
</td>
|
||||
|
||||
<td class="result-weight">
|
||||
<input type="text" name="results.{{i}}.weight" value="{{result.weight}}" placeholder="1" data-dtype="Number"/>
|
||||
</td>
|
||||
|
||||
<td class="result-range">
|
||||
<input type="text" name="results.{{i}}.rangeL" value="{{result.range.[0]}}" placeholder="L" data-dtype="Number"/>
|
||||
<span> - </span>
|
||||
<input type="text" name="results.{{i}}.rangeH" value="{{result.range.[1]}}" placeholder="H" data-dtype="Number"/>
|
||||
</td>
|
||||
|
||||
{{#if ../owner}}
|
||||
<td class="result-controls">
|
||||
<a class="lock-result" title="{{ localize "TABLE.ToggleDrawn" }}">
|
||||
<i class="fas {{#if result.drawn}}fa-lock{{else}}fa-unlock{{/if}} fa-fw"></i>
|
||||
</a>
|
||||
<input type="hidden" name="results.{{i}}.drawn" value="{{result.drawn}}" data-dtype="Boolean"/>
|
||||
<a class="delete-result" title="{{ localize "TABLE.ResultDelete" }}">
|
||||
<i class="fas fa-trash fa-fw"></i>
|
||||
</a>
|
||||
</td>
|
||||
{{/if}}
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- Roll Table Footer -->
|
||||
<footer class="sheet-footer flexrow">
|
||||
{{#if owner}}
|
||||
<button class="submit" type="submit"><i class="fas fa-save"></i> {{ localize "TABLE.Update" }}</button>
|
||||
<button class="reset" type="button"><i class="fas fa-undo"></i> {{ localize "TABLE.Reset" }}</button>
|
||||
{{/if}}
|
||||
<button class="roll" type="button"><i class="fas fa-dice-d20"></i> {{ localize "TABLE.Roll" }}</button>
|
||||
</footer>
|
||||
</form>
|
||||
|
||||
21
resources/app/templates/sheets/sheet-config.html
Normal file
21
resources/app/templates/sheets/sheet-config.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<form autocomplete="off">
|
||||
<div class="form-group">
|
||||
<label>{{localize "SHEETS.ThisSheet"}}</label>
|
||||
<select name="sheetClass">
|
||||
{{selectOptions sheetClasses selected=sheetClass blank=blankLabel}}
|
||||
</select>
|
||||
<p class="notes">{{localize "SHEETS.DocumentSheetHint"}}</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "Default"}} <strong>{{type}}</strong> {{localize "Sheet"}}</label>
|
||||
<select name="defaultClass" {{#unless isGM}}disabled{{/unless}}>
|
||||
{{selectOptions defaultClasses selected=defaultClass}}
|
||||
</select>
|
||||
<p class="notes">{{localize "SHEETS.TypeSheetHint"}}</p>
|
||||
</div>
|
||||
|
||||
<button type="submit">
|
||||
<i class="fas fa-save"></i> {{localize "SHEETS.Save"}}
|
||||
</button>
|
||||
</form>
|
||||
21
resources/app/templates/sheets/user-config.hbs
Normal file
21
resources/app/templates/sheets/user-config.hbs
Normal file
@@ -0,0 +1,21 @@
|
||||
<div class="standard-form">
|
||||
<fieldset>
|
||||
<legend>{{localize "USER.SHEET.HEADERS.INFO"}}</legend>
|
||||
{{formField fields.name value=source.name rootId=partId disabled=true}}
|
||||
{{formField fields.avatar value=source.avatar rootId=partId}}
|
||||
{{formField fields.color value=source.color rootId=partId}}
|
||||
{{formField fields.pronouns value=source.pronouns rootId=partId}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "USER.SHEET.HEADERS.CHAR"}}</legend>
|
||||
{{formField fields.character value=source.character rootId=partId widget=characterWidget}}
|
||||
</fieldset>
|
||||
|
||||
<footer class="form-footer">
|
||||
<button type="submit">
|
||||
<i class="fas fa-save"></i>
|
||||
<label>{{localize "USER.SHEET.BUTTONS.SAVE"}}</label>
|
||||
</button>
|
||||
</footer>
|
||||
</div>
|
||||
Reference in New Issue
Block a user