advancements now with tabs
This commit is contained in:
@@ -263,6 +263,7 @@
|
|||||||
"title": "Advancements",
|
"title": "Advancements",
|
||||||
"title_new": "New advancement",
|
"title_new": "New advancement",
|
||||||
"school_rank": "School rank",
|
"school_rank": "School rank",
|
||||||
|
"school_rank_0": "Bg",
|
||||||
"total": "Total",
|
"total": "Total",
|
||||||
"cost": "Cost",
|
"cost": "Cost",
|
||||||
"spent": "Used",
|
"spent": "Used",
|
||||||
|
|||||||
@@ -263,6 +263,7 @@
|
|||||||
"title": "Advancements",
|
"title": "Advancements",
|
||||||
"title_new": "New advancement",
|
"title_new": "New advancement",
|
||||||
"school_rank": "School rank",
|
"school_rank": "School rank",
|
||||||
|
"school_rank_0": "Bg",
|
||||||
"total": "Total",
|
"total": "Total",
|
||||||
"cost": "Cost",
|
"cost": "Cost",
|
||||||
"spent": "Usada",
|
"spent": "Usada",
|
||||||
|
|||||||
@@ -263,6 +263,7 @@
|
|||||||
"title": "Progressions",
|
"title": "Progressions",
|
||||||
"title_new": "Nouvelle progression",
|
"title_new": "Nouvelle progression",
|
||||||
"school_rank": "Rang d'école",
|
"school_rank": "Rang d'école",
|
||||||
|
"school_rank_0": "Bg",
|
||||||
"total": "Totale",
|
"total": "Totale",
|
||||||
"cost": "Coût",
|
"cost": "Coût",
|
||||||
"spent": "Dépensée",
|
"spent": "Dépensée",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
// template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
|
// template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
|
||||||
width: 600,
|
width: 600,
|
||||||
height: 800,
|
height: 800,
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
|
||||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -162,7 +162,7 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
tgt.hasClass("toggle-active") ? tgt.removeClass("toggle-active") : tgt.addClass("toggle-active");
|
tgt.hasClass("toggle-active") ? tgt.removeClass("toggle-active") : tgt.addClass("toggle-active");
|
||||||
});
|
});
|
||||||
|
|
||||||
// *** Items : add, edit, delete, curriculum ***
|
// *** Items : add, edit, delete ***
|
||||||
html.find(".item-add").on("click", (event) => {
|
html.find(".item-add").on("click", (event) => {
|
||||||
this._addSubItem(event);
|
this._addSubItem(event);
|
||||||
});
|
});
|
||||||
@@ -172,21 +172,6 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
html.find(`.item-delete`).on("click", (event) => {
|
html.find(`.item-delete`).on("click", (event) => {
|
||||||
this._deleteSubItem(event);
|
this._deleteSubItem(event);
|
||||||
});
|
});
|
||||||
html.find(`.item-curriculum`).on("click", (event) => {
|
|
||||||
this._switchSubItemCurriculum(event);
|
|
||||||
});
|
|
||||||
html.find(`button[name=validate-curriculum]`).on("click", (event) => {
|
|
||||||
this.actor.data.data.identity.school_rank = this.actor.data.data.identity.school_rank + 1;
|
|
||||||
// Update actor
|
|
||||||
this.actor.update({
|
|
||||||
data: {
|
|
||||||
identity: {
|
|
||||||
school_rank: this.actor.data.data.identity.school_rank,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
this.render(false);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
|
|||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
classes: ["l5r5e", "sheet", "actor"],
|
classes: ["l5r5e", "sheet", "actor"],
|
||||||
template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
|
template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
|
||||||
|
tabs: [
|
||||||
|
{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" },
|
||||||
|
{ navSelector: ".advancements-tabs", contentSelector: ".advancements-body", initial: "last" },
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,6 +61,42 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
|
|||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Subscribe to events from the sheet.
|
||||||
|
* @param html HTML content of the sheet.
|
||||||
|
*/
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
// *** Everything below here is only needed if the sheet is editable ***
|
||||||
|
if (!this.options.editable) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** Items : curriculum management ***
|
||||||
|
html.find(`.item-curriculum`).on("click", (event) => {
|
||||||
|
this._switchSubItemCurriculum(event);
|
||||||
|
});
|
||||||
|
html.find(`button[name=validate-curriculum]`).on("click", (event) => {
|
||||||
|
this.actor.data.data.identity.school_rank = this.actor.data.data.identity.school_rank + 1;
|
||||||
|
// Update actor
|
||||||
|
this.actor.update({
|
||||||
|
data: {
|
||||||
|
identity: {
|
||||||
|
school_rank: this.actor.data.data.identity.school_rank,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.render(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Advancements Tab to current rank onload
|
||||||
|
// TODO class "Active" Bug on load, dunno why :/
|
||||||
|
this._tabs
|
||||||
|
.find((e) => e._navSelector === ".advancements-tabs")
|
||||||
|
.activate("advancement_rank_" + (this.actor.data.data.identity.school_rank || 0));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the total xp spent and the current total xp spent for this rank
|
* Return the total xp spent and the current total xp spent for this rank
|
||||||
*/
|
*/
|
||||||
@@ -77,10 +117,6 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const rank = Math.max(0, item.data.bought_at_rank);
|
const rank = Math.max(0, item.data.bought_at_rank);
|
||||||
if (rank < 1) {
|
|
||||||
// Ignore starting comp/items
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!adv[rank]) {
|
if (!adv[rank]) {
|
||||||
adv[rank] = {
|
adv[rank] = {
|
||||||
rank: rank,
|
rank: rank,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,7 @@
|
|||||||
// -- Nav
|
// -- Nav
|
||||||
nav {
|
nav {
|
||||||
&.sheet-tabs {
|
&.sheet-tabs,
|
||||||
|
&.advancements-tabs {
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
line-height: 3rem;
|
line-height: 3rem;
|
||||||
font-family: $font-tertiary;
|
font-family: $font-tertiary;
|
||||||
|
|||||||
@@ -39,6 +39,9 @@
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.advancements-tab {
|
||||||
|
min-width: 60px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
&.item,
|
&.item,
|
||||||
.technique,
|
.technique,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<tr class="flexrow row advancement">
|
<tr data-group="advancements" data-tab="advancement_rank_{{rank}}" class="flexrow row advancement tab">
|
||||||
<td class="curriculum" name="curriculum">{{#if advancement.data.in_curriculum}}<i class="fas fa-graduation-cap"></i> {{/if}}</td>
|
<td class="curriculum" name="curriculum">{{#if advancement.data.in_curriculum}}<i class="fas fa-graduation-cap"></i> {{/if}}</td>
|
||||||
<td class="name" name="advancement.name"><img src="{{ advancement.img }}" title="{{ advancement.name }}"> {{ advancement.name }}</td>
|
<td class="name" name="advancement.name"><img src="{{ advancement.img }}" title="{{ advancement.name }}"> {{ advancement.name }}</td>
|
||||||
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>
|
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>
|
||||||
|
|||||||
@@ -13,8 +13,16 @@
|
|||||||
<input class="centered-input select-on-focus" type="number" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" min="0" placeholder="0" disabled/>
|
<input class="centered-input select-on-focus" type="number" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" min="0" placeholder="0" disabled/>
|
||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="advancement">
|
<fieldset class="advancement advancements-body">
|
||||||
<legend class="tools">{{ localize 'l5r5e.advancements.title'}} <a data-item-type="advancement" class="advancement-control item-add" title="{{ localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a></legend>
|
<legend class="tools">{{ localize 'l5r5e.advancements.title'}} <a data-item-type="advancement" class="advancement-control item-add" title="{{ localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a></legend>
|
||||||
|
<nav class="advancements-tabs tabs" data-group="advancements">
|
||||||
|
<a class="item advancements-tab" data-tab="advancement_rank_0">{{localize 'l5r5e.advancements.school_rank_0'}}</a>
|
||||||
|
{{#each advancementsListByRank as |rankObject|}}
|
||||||
|
{{#ifCond rank '>' 0}}
|
||||||
|
<a class="item advancements-tab" data-tab="advancement_rank_{{rank}}" title="{{localize 'l5r5e.advancements.school_rank'}} {{rankObject.rank}}">{{rankObject.rank}}</a>
|
||||||
|
{{/ifCond}}
|
||||||
|
{{/each}}
|
||||||
|
</nav>
|
||||||
<table>
|
<table>
|
||||||
<thead class="flex">
|
<thead class="flex">
|
||||||
<tr class="flexrow row">
|
<tr class="flexrow row">
|
||||||
@@ -29,19 +37,19 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody class="flex">
|
<tbody class="flex">
|
||||||
{{#each advancementsListByRank as |rankObject|}}
|
{{#each advancementsListByRank as |rankObject|}}
|
||||||
<tr class="flexrow row">
|
|
||||||
<th>{{localize 'l5r5e.advancements.school_rank'}} {{rankObject.rank}}</th>
|
|
||||||
</tr>
|
|
||||||
{{#each rankObject.list as |advancement advancementId|}}
|
{{#each rankObject.list as |advancement advancementId|}}
|
||||||
{{> 'systems/l5r5e/templates/actors/character/advancement.html' advancement=advancement editable=../../editable }}
|
{{> 'systems/l5r5e/templates/actors/character/advancement.html' advancement=advancement rank=rankObject.rank editable=../../editable }}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<tr class="flexrow row">
|
{{#ifCond rankObject.rank '>' 0}}
|
||||||
|
<tr data-group="advancements" data-tab="advancement_rank_{{rankObject.rank}}" class="flexrow row tab">
|
||||||
<th class="">
|
<th class="">
|
||||||
|
{{#ifCond ../data.identity.school_rank '<' 6}}
|
||||||
{{#ifCond (ifCond ../data.identity.school_rank '==' rankObject.rank) '&&' (ifCond rankObject.spent '>=' rankObject.goal)}}
|
{{#ifCond (ifCond ../data.identity.school_rank '==' rankObject.rank) '&&' (ifCond rankObject.spent '>=' rankObject.goal)}}
|
||||||
<button type="button" name="validate-curriculum">
|
<button type="button" name="validate-curriculum">
|
||||||
<i class='fas fa-check-square'></i> {{ localize 'l5r5e.advancements.curriculum_validate' }}
|
<i class='fas fa-check-square'></i> {{ localize 'l5r5e.advancements.curriculum_validate' }}
|
||||||
</button>
|
</button>
|
||||||
{{/ifCond}}
|
{{/ifCond}}
|
||||||
|
{{/ifCond}}
|
||||||
</th>
|
</th>
|
||||||
<th class="">
|
<th class="">
|
||||||
{{ localize 'l5r5e.advancements.total_xp_rank' }} :
|
{{ localize 'l5r5e.advancements.total_xp_rank' }} :
|
||||||
@@ -49,6 +57,7 @@
|
|||||||
{{#if rankObject.goal}}/{{rankObject.goal}}{{/if}}
|
{{#if rankObject.goal}}/{{rankObject.goal}}{{/if}}
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Reference in New Issue
Block a user