JourneyDetails: Difference between revisions
From Dune Awakening DB
mNo edit summary |
mNo edit summary |
||
| Line 1: | Line 1: | ||
<includeonly><!-- Template:JourneyDetails ( | <includeonly><!-- Template:JourneyDetails (cleaned) --> | ||
{{#get_external_data: | {{#get_external_data: | ||
source = externaldb | source = externaldb | ||
|from = | |from = data_journeys | ||
|data = | |data = ID=id,Name=name,Description=description,Tier=tier,Reward=reward_json | ||
|cache = yes | |cache = yes | ||
|where = | |where = id={{{id|{{{1|}}}}}} | ||
| | |limit = 1 | ||
}} | |||
{{#for_external_table:| | |||
{{#vardefine:j_name |{{{Name}}}}} | |||
{{#vardefine:j_desc |{{{Description}}}}} | |||
{{#vardefine:j_tier |{{{Tier}}}}} | |||
{{#vardefine:j_reward|{{{Reward|}}}}} | |||
}} | }} | ||
{{# | {{#vardefine:xp_amount|100}} | ||
{{#if:{{#var:j_reward}}| | |||
{{#vardefine:reward_data|{{#var:j_reward}}}} | |||
{{#ifeq:{{#pos:{{#var:reward_data}}|"xp":}}|| | |||
| <!-- nothing found – keep default 100 --> | |||
|{{#vardefine:xp_amount|{{#explode:{{#explode:{{#var:reward_data}}|"xp":|1}}|}|0}}}} | |||
}} | }} | ||
<div class="journey-details-header"> | |||
<div class="journey-tier-badge"><span class="tier-number">{{#var:j_tier}}</span></div> | |||
<h2 class="journey-title">{{uc:{{#var:j_name}}}}</h2> | |||
<span class="completion-status">0% COMPLETE</span> | |||
</div> | |||
<div class="journey-description">{{#var:j_desc}}</div> | |||
<div class="journey-rewards"> | |||
<div class="rewards-header">REWARD</div> | |||
<div class="rewards-content"><span class="xp-icon">XP</span><span class="xp-amount">{{#var:xp_amount}}</span></div> | |||
</div> | |||
<div class="journey-objectives"> | |||
<div class="objectives-header">OBJECTIVES</div> | |||
<div class="objectives-list"> | |||
{{#get_external_data: | |||
source = externaldb | |||
|from = data_journey_objectives | |||
|data = ObjID=id,Title=title,Seq=seq | |||
|cache = yes | |||
|where = journey_id={{{id|{{{1|}}}}}} | |||
|order by = seq | |||
}} | |||
{{#vardefine:obj_count|0}} | |||
{{#for_external_table:| | |||
{{#vardefine:obj_count|{{#expr:{{#var:obj_count}}+1}}}} | |||
<div class="objective-item{{#ifexpr:{{#var:obj_count}}>1| collapsed|}}"> | |||
<!-- objective header --> | |||
<div class="objective-header" data-objective-id="{{{ObjID}}}"> | |||
<div class="objective-icon">{{{Seq}}}</div> | |||
<div class="objective-title">{{{Title}}}</div> | |||
<div class="objective-progress" data-objective-id="{{{ObjID}}}">0/0</div> | |||
</div> | |||
<!-- tasks --> | |||
<div class="objective-tasks"> | |||
{{#get_external_data: | |||
source = externaldb | |||
|from = data_journey_tasks | |||
|data = TaskID=id,Description=description,Qty=qty_needed | |||
|cache = yes | |||
|where = objective_id={{{ObjID}}} | |||
|order by = seq | |||
}} | |||
{{#for_external_table:| | |||
{{#if:{{{Description|}}}| <!-- guard against blanks --> | |||
<div class="task-item" data-task-id="{{{TaskID}}}" data-objective-id="{{{ObjID}}}"> | |||
<div class="task-checkbox"></div> | |||
<div class="task-description">{{#invoke:DataTableParserV2|iconize|{{{Description}}}}}</div> | |||
{{#if:{{{Qty|}}}|<div class="task-qty">{{{Qty}}} pcs</div>|}} | |||
</div> | |||
}} | |||
}} | |||
</div><!-- /.objective-tasks --> | |||
</div><!-- /.objective-item --> | |||
}} | |||
</div><!-- /.objectives-list --> | |||
</div><!-- /.journey-objectives --> | |||
<!-- Journey actions (once per panel) --> | |||
<div class="journey-actions"> | <div class="journey-actions"> | ||
<span class="action-button view-items">[[#|<span class="button-icon">📋</span> | <span class="action-button view-items">[[#|<span class="button-icon">📋</span> View Item Prep List]]</span> | ||
<span class="action-button view-guide">[[#|<span class="button-icon">▶️</span> | <span class="action-button view-guide">[[#|<span class="button-icon">▶️</span> View Guide]]</span> | ||
</div> | </div> | ||
</includeonly> | |||
<noinclude>{{Documentation}}</noinclude> | |||
{{Documentation}} | |||
</noinclude> | |||
