REM-Client 3a548389: QoL round - clan invite / wishlist / places, pilot overview and warnings, trade routes and stock warnings, saved bot routes, mail templates (rem-server 2b86320)

This commit is contained in:
2026-11-10 22:33:04 +01:00
parent 2f9dd32882
commit d83d23da19
6 changed files with 58 additions and 6 deletions
+29 -2
View File
@@ -227,8 +227,28 @@
<!-- ================================================= TRADE LOG (REM) -->
<div class="page col" data-if="blocked == 0 &amp;&amp; page == 12">
<div class="col-h"><h3>Trade log</h3><span class="hint">{{ journal.size }} lines</span><div class="btn" data-action="journal-refresh" style="margin-left: 10dp;">Refresh</div></div>
<div class="hint" style="margin-bottom: 6dp;">{{ journal_note }}</div>
<div class="table grow">
<div class="subtabs">
<div class="tab" data-class-active="journal_sub == 0" data-action="journal-sub" data-arg="0">Log</div>
<div class="tab" data-class-active="journal_sub == 1" data-action="journal-sub" data-arg="1">Routes from here<div class="tip">The best trades from the base you are docked at, within reach, for your hold and credits.</div></div>
</div>
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 0">{{ journal_note }}</div>
<div class="actions" style="margin: 0 0 6dp 0;" data-if="journal_sub == 0">
<div class="btn" data-class-primary="journal_who == 0" data-action="journal-who" data-arg="0">All</div>
<div class="btn" data-class-primary="journal_who == 1" data-action="journal-who" data-arg="1">Mine</div>
<div class="btn" data-class-primary="journal_who == 2" data-action="journal-who" data-arg="2">My pilots</div>
<input class="text search" type="text" data-value="journal_find" maxlength="40" style="width: 200dp; margin-left: 10dp;"/>
<div class="btn" data-action="journal-csv" style="margin-left: 10dp;">Copy CSV<div class="tip">The lines shown (with the filter) into the clipboard - for a spreadsheet.</div></div>
</div>
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 0">{{ journal_sum }}</div>
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 1">{{ route_note }} <span class="btn" data-action="routes-find" style="margin-left: 8dp;">Find routes</span></div>
<div class="table grow" data-if="journal_sub == 1">
<div class="head"><span class="c2" style="flex: 1;">Good</span><span class="c2" style="flex: 2;">To</span><span class="c3" style="width: 150dp; flex: none;">Buy &gt; sell</span><span class="c3" style="width: 100dp; flex: none;">Units</span><span class="c3" style="width: 110dp; flex: none;">Profit</span></div>
<div class="body">
<div class="empty" data-if="routes.size == 0">No routes yet.</div>
<div class="row" data-for="r : routes" data-class-current="r.current"><span class="c2" style="flex: 1;">{{ r.a }}</span><span class="c2" style="flex: 2;">{{ r.b }}</span><span class="c3" style="width: 150dp; flex: none;">{{ r.c }}</span><span class="c3" style="width: 100dp; flex: none;">{{ r.d }}</span><span class="c3" style="width: 110dp; flex: none;">{{ r.e }}</span></div>
</div>
</div>
<div class="table grow" data-if="journal_sub == 0">
<div class="head"><span class="c1" style="width: 130dp; flex: none;">When</span><span class="c2" style="flex: 1;">Deal</span><span class="c2" style="flex: 1;">Base</span><span class="c3" style="width: 150dp; flex: none;">Price (total)</span><span class="c3" style="width: 100dp; flex: none;">Profit</span></div>
<div class="body">
<div class="empty" data-if="journal.size == 0">No trades yet. Buys and sales of commodities show here - yours and your pilots' - a sale with its profit against what was paid.</div>
@@ -915,6 +935,7 @@
<div class="actions">
<div class="btn primary" data-if="mail_can_claim" data-action="mail-claim">Take credits and items<div class="tip">The credits go into your bank, the items into your depot on this base (dock at a base with your depot).</div></div>
<div class="btn" data-action="mail-reply">Reply</div>
<div class="btn" data-action="mail-quote">Reply with quote<div class="tip">The answer with the letter below it, each line marked with "&gt; ".</div></div>
<div class="btn" data-action="mail-delete">Delete</div>
</div>
</div>
@@ -928,6 +949,10 @@
</div>
<div class="namefield"><span class="label">Subject</span><input class="text" type="text" data-value="mail_subj" maxlength="100"/></div>
<div class="label" style="margin-top: 6dp;">Text</div>
<div class="actions" style="margin: 0 0 4dp 0; flex-wrap: wrap;">
<span class="chip" data-for="t : mail_tpls" data-action="mail-tpl" data-attr-data-arg="t.key" style="margin: 0 6dp 4dp 0;">{{ t.a }} <span data-action="mail-tpl-del" data-attr-data-arg="t.key">&#215;</span></span>
<div class="btn" data-action="mail-tpl-save">Save as template<div class="tip">Subject and text for later - a click on the template fills them in again (eight at most; the same subject replaces it).</div></div>
</div>
<textarea class="mail-text" data-value="mail_text" rows="6"></textarea>
<div class="namefield"><span class="label">Credits</span><input class="text" type="text" data-value="mail_credits" maxlength="12"/></div>
<div class="hint" data-if="!mail_docked">Items come from your depot - dock at a base with your depot to attach them.</div>
@@ -967,6 +992,7 @@
<div class="mid">
<div class="line1"><span class="n">{{ d.name }}</span><span data-attr-class="'state ' + d.state_class">{{ d.state }}</span></div>
<div class="s">{{ d.kind }} &#183; {{ d.plan }}</div>
<div class="s" data-if="d.info != ''">{{ d.info }}</div>
<div class="bar"><div data-attr-class="'fill ' + d.hull_class" data-style-width="d.hull + '%'"></div></div>
</div>
</div>
@@ -1064,6 +1090,7 @@
<div class="actions">
<div class="btn" data-action="supply-set">Set</div>
<div class="btn" data-action="supply-remove">Remove</div>
<div class="btn" data-action="supply-copy">Copy to...<div class="tip">Copies all targets and sell rules of this pilot onto another trade pilot.</div></div>
<div class="btn primary" data-if="!haul_job || haul_mode != 3" data-action="supply-on">Start supplying</div>
<div class="btn" data-if="haul_job" data-action="supply-off">End job<div class="tip">The pilot trades on its own again (after it delivered what it carries); the targets are kept.</div></div>
</div>