Actor sheet
This commit is contained in:
parent
f5e03886d5
commit
bc7910a50d
@ -37,9 +37,11 @@
|
|||||||
"WH.ui.weapons": "Weapons",
|
"WH.ui.weapons": "Weapons",
|
||||||
"WH.ui.armors": "Armors",
|
"WH.ui.armors": "Armors",
|
||||||
"WH.ui.shields": "Shields",
|
"WH.ui.shields": "Shields",
|
||||||
|
"WH.ui.weapon": "Weapon",
|
||||||
|
|
||||||
"WH.ui.Strength": "Strength",
|
"WH.ui.Strength": "Strength",
|
||||||
"WH.ui.Instinct": "Instinct",
|
"WH.ui.Instinct": "Instinct",
|
||||||
|
"WH.ui.Dexterity": "Dexterity",
|
||||||
"WH.ui.Mind": "Mind",
|
"WH.ui.Mind": "Mind",
|
||||||
"WH.ui.Type": "Type",
|
"WH.ui.Type": "Type",
|
||||||
"WH.ui.HitPoints": "Hit Points",
|
"WH.ui.HitPoints": "Hit Points",
|
||||||
@ -48,6 +50,7 @@
|
|||||||
"WH.ui.Mana": "Mana",
|
"WH.ui.Mana": "Mana",
|
||||||
"WH.ui.Initiative": "Initiative",
|
"WH.ui.Initiative": "Initiative",
|
||||||
"WH.ui.Movement": "Movement",
|
"WH.ui.Movement": "Movement",
|
||||||
|
"WH.ui.power": "Power",
|
||||||
|
|
||||||
"WH.ui.Qty": "Qty",
|
"WH.ui.Qty": "Qty",
|
||||||
"WH.ui.maxslots": "Max slots",
|
"WH.ui.maxslots": "Max slots",
|
||||||
|
@ -137,11 +137,20 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
this.actor.rollFromType(rollType, statKey)
|
this.actor.rollFromType(rollType, statKey)
|
||||||
});
|
});
|
||||||
html.find('.roll-weapon').click((event) => {
|
html.find('.roll-weapon').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item")
|
||||||
const skillId = li.data("item-id")
|
const weaponId = li.data("item-id")
|
||||||
this.actor.rollWeapon(skillId)
|
this.actor.rollWeapon(weaponId)
|
||||||
|
});
|
||||||
|
html.find('.power-roll').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
const powerId = li.data("item-id")
|
||||||
|
this.actor.rollPower(powerId)
|
||||||
|
});
|
||||||
|
html.find('.roll-damage').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
const weaponId = li.data("item-id")
|
||||||
|
this.actor.rollDamage(weaponId)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
html.find('.lock-unlock-sheet').click((event) => {
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
this.options.editScore = !this.options.editScore;
|
this.options.editScore = !this.options.editScore;
|
||||||
|
@ -183,8 +183,22 @@ export class WarheroActor extends Actor {
|
|||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
prepareWeapon(weapon) {
|
||||||
|
let formula = weapon.system.damage
|
||||||
|
if (weapon.system.weapontype == "long") {
|
||||||
|
formula += "+" + this.system.statistics.str.value
|
||||||
|
}
|
||||||
|
if (weapon.system.weapontype == "twohanded") {
|
||||||
|
formula += "+" + Math.floor(this.system.statistics.str.value*1.5)
|
||||||
|
}
|
||||||
|
weapon.damageFormula = formula
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
getWeapons() {
|
getWeapons() {
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
|
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
|
||||||
|
for (let weapon of comp) {
|
||||||
|
this.prepareWeapon(weapon)
|
||||||
|
}
|
||||||
WarheroUtility.sortArrayObjectsByName(comp)
|
WarheroUtility.sortArrayObjectsByName(comp)
|
||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
@ -521,6 +535,15 @@ export class WarheroActor extends Actor {
|
|||||||
return this.items.find(cond => cond.type == "condition" && cond.system.targetadvantage)
|
return this.items.find(cond => cond.type == "condition" && cond.system.targetadvantage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
spentMana( mana) {
|
||||||
|
if ( Number(mana) > this.system.attributes.mana.value) {
|
||||||
|
ui.notifications.warn("Not enough Mana points !")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.update({'system.attributes.mana.value': this.system.attributes.mana.value-mana})
|
||||||
|
return true
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCommonRollData() {
|
getCommonRollData() {
|
||||||
let rollData = WarheroUtility.getBasicRollData()
|
let rollData = WarheroUtility.getBasicRollData()
|
||||||
@ -547,30 +570,40 @@ export class WarheroActor extends Actor {
|
|||||||
let weapon = this.items.get(weaponId)
|
let weapon = this.items.get(weaponId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
weapon = duplicate(weapon)
|
weapon = duplicate(weapon)
|
||||||
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
|
let rollData = this.getCommonRollData()
|
||||||
if (skill) {
|
rollData.mode = "weapon"
|
||||||
skill = duplicate(skill)
|
rollData.stat = duplicate(this.system.statistics.dex)
|
||||||
WarheroUtility.updateSkill(skill)
|
rollData.weapon = weapon
|
||||||
let abilityKey = skill.system.ability
|
rollData.img = weapon.img
|
||||||
let rollData = this.getCommonRollData(abilityKey)
|
this.startRoll(rollData)
|
||||||
rollData.mode = "weapon"
|
}
|
||||||
rollData.skill = skill
|
}
|
||||||
rollData.weapon = weapon
|
/* -------------------------------------------- */
|
||||||
rollData.img = weapon.img
|
rollDamage(weaponId) {
|
||||||
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
|
let weapon = this.items.get(weaponId)
|
||||||
rollData.forceDisadvantage = this.isAttackDisadvantage()
|
if (weapon) {
|
||||||
}
|
weapon = duplicate(weapon)
|
||||||
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > WarheroUtility.getWeaponMaxRange(rollData.weapon) ) {
|
this.prepareWeapon(weapon)
|
||||||
ui.notifications.warn(`Your target is out of range of your weapon (max: ${WarheroUtility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
|
let rollData = this.getCommonRollData()
|
||||||
return
|
rollData.mode = "damage"
|
||||||
}*/
|
rollData.weapon = weapon
|
||||||
this.startRoll(rollData)
|
rollData.img = weapon.img
|
||||||
} else {
|
this.startRoll(rollData)
|
||||||
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
|
}
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollPower(powerId) {
|
||||||
|
let power = this.items.get(powerId)
|
||||||
|
if (power) {
|
||||||
|
power = duplicate(power)
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.mode = "power"
|
||||||
|
rollData.power = power
|
||||||
|
rollData.img = power.img
|
||||||
|
rollData.hasBM = false
|
||||||
|
this.startRoll(rollData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async startRoll(rollData) {
|
async startRoll(rollData) {
|
||||||
|
@ -58,23 +58,8 @@ export class WarheroRollDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
$(function () { onLoad(); });
|
$(function () { onLoad(); });
|
||||||
|
|
||||||
html.find('#advantage').change((event) => {
|
html.find('#powerLevel').change((event) => {
|
||||||
this.rollData.advantage = event.currentTarget.value
|
this.rollData.powerLevel = event.currentTarget.value
|
||||||
})
|
|
||||||
html.find('#disadvantage').change((event) => {
|
|
||||||
this.rollData.disadvantage = event.currentTarget.value
|
|
||||||
})
|
|
||||||
html.find('#rollAdvantage').change((event) => {
|
|
||||||
this.rollData.rollAdvantage = event.currentTarget.value
|
|
||||||
})
|
|
||||||
html.find('#useshield').change((event) => {
|
|
||||||
this.rollData.useshield = event.currentTarget.checked
|
|
||||||
})
|
|
||||||
html.find('#hasCover').change((event) => {
|
|
||||||
this.rollData.hasCover = event.currentTarget.value
|
|
||||||
})
|
|
||||||
html.find('#situational').change((event) => {
|
|
||||||
this.rollData.situational = event.currentTarget.value
|
|
||||||
})
|
})
|
||||||
html.find('#bonusMalus').change((event) => {
|
html.find('#bonusMalus').change((event) => {
|
||||||
this.rollData.bonusMalus = Number(event.currentTarget.value)
|
this.rollData.bonusMalus = Number(event.currentTarget.value)
|
||||||
|
@ -540,6 +540,30 @@ export class WarheroUtility {
|
|||||||
|
|
||||||
let actor = game.actors.get(rollData.actorId)
|
let actor = game.actors.get(rollData.actorId)
|
||||||
|
|
||||||
|
if ( rollData.mode == "power") {
|
||||||
|
let manaCost = Array.from(rollData.powerLevel)[0]
|
||||||
|
if( actor.spentMana(manaCost)) {
|
||||||
|
let powerKey = "level"+rollData.powerLevel
|
||||||
|
rollData.powerText = rollData.power.system[powerKey]
|
||||||
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
|
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
|
||||||
|
})
|
||||||
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ( rollData.mode == "damage") {
|
||||||
|
let myRoll = new Roll(rollData.weapon.damageFormula + "+" + rollData.bonusMalus).roll({ async: false })
|
||||||
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
|
rollData.roll = myRoll
|
||||||
|
|
||||||
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
|
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
|
||||||
|
})
|
||||||
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// ability/save/size => 0
|
// ability/save/size => 0
|
||||||
let diceFormula = "1d20"
|
let diceFormula = "1d20"
|
||||||
if ( rollData.stat) {
|
if ( rollData.stat) {
|
||||||
@ -667,7 +691,9 @@ export class WarheroUtility {
|
|||||||
rollId: randomID(16),
|
rollId: randomID(16),
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
advantage: "none",
|
advantage: "none",
|
||||||
bonusMalus: 0
|
bonusMalus: 0,
|
||||||
|
powerLevel: "1",
|
||||||
|
hasBM: true
|
||||||
}
|
}
|
||||||
WarheroUtility.updateWithTarget(rollData)
|
WarheroUtility.updateWithTarget(rollData)
|
||||||
return rollData
|
return rollData
|
||||||
|
@ -100,7 +100,7 @@
|
|||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/simple.css"
|
||||||
],
|
],
|
||||||
"version": "10.0.6",
|
"version": "10.0.7",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "10",
|
"verified": "10",
|
||||||
@ -108,7 +108,7 @@
|
|||||||
},
|
},
|
||||||
"title": "Warhero RPG",
|
"title": "Warhero RPG",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
|
||||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.6.zip",
|
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.7.zip",
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
|
||||||
"background": "images/ui/warhero_welcome_page.webp",
|
"background": "images/ui/warhero_welcome_page.webp",
|
||||||
"id": "fvtt-warhero"
|
"id": "fvtt-warhero"
|
||||||
|
@ -28,9 +28,9 @@
|
|||||||
"style": "dropdown",
|
"style": "dropdown",
|
||||||
"value": 0
|
"value": 0
|
||||||
},
|
},
|
||||||
"ist": {
|
"dex": {
|
||||||
"label": "WH.ui.Instinct",
|
"label": "WH.ui.Dexterity",
|
||||||
"abbrev": "ist",
|
"abbrev": "dex",
|
||||||
"style": "dropdown",
|
"style": "dropdown",
|
||||||
"value": 0
|
"value": 0
|
||||||
},
|
},
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
<span class="item-name-label-header-long">
|
<span class="item-name-label-header-long">
|
||||||
<h3><label class="items-title-text">Weapons</label></h3>
|
<h3><label class="items-title-text">Weapons</label></h3>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-medium">
|
||||||
<label class="short-label">{{localize "WH.ui.Type"}}</label>
|
<label class="short-label">{{localize "WH.ui.Type"}}</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-medium">
|
||||||
@ -93,11 +93,11 @@
|
|||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{weapon.img}}" /></a>
|
src="{{weapon.img}}" /></a>
|
||||||
<span class="item-name-label-long"><a class ="roll-weapon">{{weapon.name}}</a></span>
|
<span class="item-name-label-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
|
||||||
|
|
||||||
<span class="item-field-label-short">{{weapon.system.weapontype}}</span>
|
<span class="item-field-label-medium">{{weapon.system.weapontype}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-medium">{{perk.system.damage}}</span>
|
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
@ -125,7 +125,7 @@
|
|||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{shield.img}}" /></a>
|
src="{{shield.img}}" /></a>
|
||||||
<span class="item-name-label-long"><a class ="roll-weapon">{{shield.name}}</a></span>
|
<span class="item-name-label-long">{{shield.name}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
|
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
|
||||||
|
|
||||||
@ -157,7 +157,7 @@
|
|||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{armor._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{armor._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{armor.img}}" /></a>
|
src="{{armor.img}}" /></a>
|
||||||
<span class="item-name-label-long"><a class ="roll-weapon">{{armor.name}}</a></span>
|
<span class="item-name-label-long">{{armor.name}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-short">{{armor.system.armortype}}</span>
|
<span class="item-field-label-short">{{armor.system.armortype}}</span>
|
||||||
|
|
||||||
@ -193,7 +193,7 @@
|
|||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{power.img}}" /></a>
|
src="{{power.img}}" /></a>
|
||||||
<span class="item-name-label">
|
<span class="item-name-label">
|
||||||
<a class="power-roll">{{power.name}}</a>
|
<a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a>
|
||||||
</span>
|
</span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
|
@ -13,19 +13,26 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexcol">
|
<div>
|
||||||
</div>
|
<ul>
|
||||||
|
{{#if stat}}
|
||||||
|
<li>{{localize stat.label}} : {{stat.value}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if weapon}}
|
||||||
|
<li>{{localize "WH.ui.weapon"}} : {{weapon.name}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if hasBM}}
|
||||||
|
<li>Bonus/Malus : {{bonusMalus}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div>
|
{{#if power}}
|
||||||
<ul>
|
<li>{{localize "WH.ui.power"}} : {{power.name}}</li>
|
||||||
{{#if stat}}
|
<li>{{{powerText}}}</li>
|
||||||
<li>{{localize stat.label}} : {{stat.value}}</li>
|
{{else}}
|
||||||
{{/if}}
|
<li><strong>Result : {{roll.total}} </strong></li>
|
||||||
<li>Bonus/Malus : {{bonusMalus}}</li>
|
{{/if}}
|
||||||
|
|
||||||
<li><strong>Result : {{roll.total}} </strong></li>
|
</ul>
|
||||||
|
</div>
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<span class="item-field-label-medium" name="{{key}}">
|
<span class="item-field-label-medium" name="{{key}}">
|
||||||
<h4 class="item-field-label-medium">
|
<h4 class="item-field-label-medium">
|
||||||
{{#if roll}}
|
{{#if roll}}
|
||||||
<a class="roll-this stat-margin" data-type="{{path}}" data-key="{{key}}">{{localize stat.label}}</a>
|
<i class="fa-solid fa-dice-d20"></i><a class="roll-this stat-margin" data-type="{{path}}" data-key="{{key}}">{{localize stat.label}}</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{localize stat.label}}
|
{{localize stat.label}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -17,8 +17,14 @@
|
|||||||
|
|
||||||
{{#if weapon}}
|
{{#if weapon}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Weapon : </span>
|
<span class="item-field-label-medium">Weapon : </span>
|
||||||
<span class="roll-dialog-label">{{weapon.name}}</span>
|
<span class="item-field-label-medium">{{weapon.name}}</span>
|
||||||
|
{{#if (eq mode "damage")}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-medium">Damage : </span>
|
||||||
|
<span class="item-field-label-medium">{{weapon.damageFormula}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
@ -33,6 +39,26 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if power}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-medium">Power : </span>
|
||||||
|
<span class="item-field-label-medium">{{power.name}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-medium">Power Level : </span>
|
||||||
|
<select class="item-field-label-medium" type="text" id="powerLevel" value="{{powerLevel}}">
|
||||||
|
{{#select powerLevel}}
|
||||||
|
<option value="1">1</option>
|
||||||
|
<option value="2">2</option>
|
||||||
|
<option value="3">3</option>
|
||||||
|
<option value="4_1">4 - 1</option>
|
||||||
|
<option value="4_2">4 - 2</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if hasBM}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Bonus/Malus : </span>
|
<span class="item-field-label-medium">Bonus/Malus : </span>
|
||||||
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}">
|
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}">
|
||||||
@ -53,6 +79,8 @@
|
|||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{{/if}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
Reference in New Issue
Block a user