Actions

Template

JourneyDetails: Difference between revisions

From Dune Awakening DB

mNo edit summary
mNo edit summary
Line 1: Line 1:
<includeonly><!-- Template:JourneyDetails (Fixed Version) -->
<includeonly><!-- Template:JourneyDetails (cleaned) -->
{{#get_external_data:source=externaldb|from=data_journeys|data=ID=id,Name=name,Description=description,Tier=tier,Reward=reward_json|cache=yes|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":}}|||{{#vardefine:xp_amount|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|}}">
<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>
<div class="objective-tasks">
{{#get_external_data:
{{#get_external_data:
   source = externaldb
   source = externaldb
   |from  = data_journey_tasks
   |from  = data_journeys
   |data  = TaskID=id,Description=description,Qty=qty_needed
   |data  = ID=id,Name=name,Description=description,Tier=tier,Reward=reward_json
   |cache = yes
   |cache = yes
   |where = objective_id={{{ObjID}}}
   |where = id={{{id|{{{1|}}}}}}
   |order by = seq
   |limit = 1
}}
{{#for_external_table:|
  {{#vardefine:j_name  |{{{Name}}}}}
  {{#vardefine:j_desc  |{{{Description}}}}}
  {{#vardefine:j_tier  |{{{Tier}}}}}
  {{#vardefine:j_reward|{{{Reward|}}}}}
}}
}}


{{#for_external_table:|
{{#vardefine:xp_amount|100}}
  {{#if:{{{Description|}}}|
{{#if:{{#var:j_reward}}|
    <div class="task-item" data-task-id="{{{TaskID}}}" data-objective-id="{{{ObjID}}}">
  {{#vardefine:reward_data|{{#var:j_reward}}}}
      <div class="task-checkbox"></div>
  {{#ifeq:{{#pos:{{#var:reward_data}}|"xp":}}||
      <div class="task-description">{{#invoke:DataTableParserV2|iconize|{{{Description}}}}}</div>
    |                              <!-- nothing found – keep default 100 -->
      {{#if:{{{Qty|}}}|<div class="task-qty">{{{Qty}}} pcs</div>|}}
    |{{#vardefine:xp_amount|{{#explode:{{#explode:{{#var:reward_data}}|"xp":|1}}|}|0}}}}
    </div>
  }}
}}
}}
</div>  <!-- closes .objective-tasks -->


<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> View&nbsp;Item&nbsp;Prep&nbsp;List]]</span>
   <span class="action-button view-items">[[#|<span class="button-icon">📋</span>&nbsp;View&nbsp;Item&nbsp;Prep&nbsp;List]]</span>
   <span class="action-button view-guide">[[#|<span class="button-icon">▶️</span> View&nbsp;Guide]]</span>
   <span class="action-button view-guide">[[#|<span class="button-icon">▶️</span>&nbsp;View&nbsp;Guide]]</span>
</div>
</div>
</includeonly>


</includeonly><noinclude>
<noinclude>{{Documentation}}</noinclude>
{{Documentation}}
</noinclude>

Revision as of 00:28, 28 May 2025