Wave changes
This commit is contained in:
0
home/backlog.org
Executable file → Normal file
0
home/backlog.org
Executable file → Normal file
5
home/categories.org
Executable file → Normal file
5
home/categories.org
Executable file → Normal file
@@ -7,9 +7,10 @@
|
||||
- [[file:../tags/insights.org][@@html:<span class="post-tag">insights</span>@@]] (4)
|
||||
- [[file:../tags/introduction.org][@@html:<span class="post-tag">introduction</span>@@]] (3)
|
||||
- [[file:../tags/learning.org][@@html:<span class="post-tag">learning</span>@@]] (16)
|
||||
- [[file:../tags/life.org][@@html:<span class="post-tag">life</span>@@]] (8)
|
||||
- [[file:../tags/life.org][@@html:<span class="post-tag">life</span>@@]] (13)
|
||||
- [[file:../tags/maths.org][@@html:<span class="post-tag">maths</span>@@]] (1)
|
||||
- [[file:../tags/notes.org][@@html:<span class="post-tag">notes</span>@@]] (17)
|
||||
- [[file:../tags/reading.org][@@html:<span class="post-tag">reading</span>@@]] (1)
|
||||
- [[file:../tags/review.org][@@html:<span class="post-tag">review</span>@@]] (22)
|
||||
- [[file:../tags/review.org][@@html:<span class="post-tag">review</span>@@]] (23)
|
||||
- [[file:../tags/update.org][@@html:<span class="post-tag">update</span>@@]] (2)
|
||||
- [[file:../tags/website.org][@@html:<span class="post-tag">website</span>@@]] (2)
|
||||
0
home/contact.org
Executable file → Normal file
0
home/contact.org
Executable file → Normal file
0
home/countdown.org
Executable file → Normal file
0
home/countdown.org
Executable file → Normal file
0
home/guide/setup.org
Executable file → Normal file
0
home/guide/setup.org
Executable file → Normal file
0
home/notes.org
Executable file → Normal file
0
home/notes.org
Executable file → Normal file
@@ -1,30 +0,0 @@
|
||||
#+TITLE: Recently Updated
|
||||
#+OPTIONS: toc:nil num:nil
|
||||
|
||||
* Recently Updated (top 26 files)
|
||||
- [[file:home/wird-tracker.org][Wird Tracker]] @@html:<span class="post-date">2026-03-21 17:34</span>@@
|
||||
- [[file:blogs/2026/03-march/setting-a-wird-tracker-19-03.org][Setting a Wird Tracker]] @@html:<span class="post-date">2026-03-19 13:15</span>@@
|
||||
- [[file:home/guide/wird-tracker-guide.org][Wird Tracker — Technical Guide]] @@html:<span class="post-date">2026-03-19 12:43</span>@@
|
||||
- [[file:blogs/2026/03-march/fixing-the-dag-18-03.org][DAG fixes]] @@html:<span class="post-date">2026-03-18 15:01</span>@@
|
||||
- [[file:blogs/2026/03-march/feeling-sleepy.org][Feeling extremely sleepy]] @@html:<span class="post-date">2026-03-16 16:18</span>@@
|
||||
- [[file:blogs/2026/03-march/oversleeping-16-03.org][Oversleeping and missing a meeting...]] @@html:<span class="post-date">2026-03-16 11:21</span>@@
|
||||
- [[file:blogs/2026/03-march/15-03-week-review.org][[15-03-2026] - Weekly Review]] @@html:<span class="post-date">2026-03-15 12:00</span>@@
|
||||
- [[file:posts/career/ha-dr.org][High Availability, Disaster Recovery and Business Continuity]] @@html:<span class="post-date">2026-03-11 17:18</span>@@
|
||||
- [[file:posts/career/javascript.org][Understands the Javascript language]] @@html:<span class="post-date">2026-03-11 16:52</span>@@
|
||||
- [[file:home/status.org][Competency Status Board]] @@html:<span class="post-date">2026-03-08 16:28</span>@@
|
||||
- [[file:blogs/2026/03-march/08-03-week-review.org][[08-03-2026] - Weekly Review]] @@html:<span class="post-date">2026-03-08 12:00</span>@@
|
||||
- [[file:blogs/2026/03-march/01-03-week-review.org][[01-03-2026] - Weekly Review]] @@html:<span class="post-date">2026-03-01 12:00</span>@@
|
||||
- [[file:blogs/2026/02-february/27-02-26.org][Journeys rambles again...]] @@html:<span class="post-date">2026-02-27 17:12</span>@@
|
||||
- [[file:blogs/2026/02-february/26-02-26.org][Starting the Journeys Upgrade]] @@html:<span class="post-date">2026-02-26 17:32</span>@@
|
||||
- [[file:blogs/2026/02-february/24-02-26.org][Integration tests failing (sob)]] @@html:<span class="post-date">2026-02-24 16:55</span>@@
|
||||
- [[file:blogs/2026/02-february/22-02-week-review.org][[22-02-2026] - Weekly Review]] @@html:<span class="post-date">2026-02-22 12:00</span>@@
|
||||
- [[file:posts/career/restful-api.org][Restful API]] @@html:<span class="post-date">2026-02-15 23:00</span>@@
|
||||
- [[file:blogs/2026/02-february/15-02-week-review.org][[15-02-2026] - Weekly Review]] @@html:<span class="post-date">2026-02-15 12:00</span>@@
|
||||
- [[file:home/services.org][Service]] @@html:<span class="post-date">2026-02-11 13:26</span>@@
|
||||
- [[file:blogs/2026/02-february/08-02-week-review.org][[08-02-2026] - Weekly Review]] @@html:<span class="post-date">2026-02-08 12:00</span>@@
|
||||
- [[file:blogs/2026/02-february/third-meeting.org][Third Meeting with lima :)]] @@html:<span class="post-date">2026-02-01 12:00</span>@@
|
||||
- [[file:blogs/2026/02-february/01-02-week-review.org][[01-02-2026] - Weekly Review]] @@html:<span class="post-date">2026-02-01 12:00</span>@@
|
||||
- [[file:blogs/2026/01-january/25-01-week-review.org][[25-01-2026] - Weekly Review]] @@html:<span class="post-date">2026-01-25 12:00</span>@@
|
||||
- [[file:posts/career/pipelines.org][Pipelines and how they work (as well as CI/CD)]] @@html:<span class="post-date">2026-01-18 23:00</span>@@
|
||||
- [[file:posts/career/monitoring-and-logging.org][Monitoring and Logging]] @@html:<span class="post-date">2026-01-18 23:00</span>@@
|
||||
- [[file:posts/career/database-permissions.org][Database Permissions, Roles, and Accounts]] @@html:<span class="post-date">2026-01-18 23:00</span>@@
|
||||
0
home/services.org
Executable file → Normal file
0
home/services.org
Executable file → Normal file
0
home/status.org
Executable file → Normal file
0
home/status.org
Executable file → Normal file
@@ -281,7 +281,61 @@ This page tracks my daily awrād and spiritual practices.
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<dialog id="export-modal" aria-labelledby="export-modal-title">
|
||||
<form id="export-form" method="dialog">
|
||||
<h3 id="export-modal-title">Export Wird Report</h3>
|
||||
<div class="modal-body">
|
||||
|
||||
<p class="export-modal-desc">
|
||||
Choose a date range to include in the PDF report.
|
||||
The report will show all logged wirds, targets, and notes.
|
||||
</p>
|
||||
|
||||
<div class="export-date-row">
|
||||
<div class="field-group">
|
||||
<label for="export-from">From</label>
|
||||
<input type="date" id="export-from" required>
|
||||
</div>
|
||||
<div class="export-date-sep" aria-hidden="true">→</div>
|
||||
<div class="field-group">
|
||||
<label for="export-to">To</label>
|
||||
<input type="date" id="export-to" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="export-presets" role="group" aria-label="Quick date range presets">
|
||||
<button type="button" class="export-preset" data-preset="7">Last 7 days</button>
|
||||
<button type="button" class="export-preset" data-preset="30">Last 30 days</button>
|
||||
<button type="button" class="export-preset" data-preset="90">Last 90 days</button>
|
||||
<button type="button" class="export-preset" data-preset="365">This year</button>
|
||||
</div>
|
||||
|
||||
<div class="export-options">
|
||||
<label class="export-option-row">
|
||||
<input type="checkbox" id="export-include-nafl" checked>
|
||||
<span>Include nafl prayers</span>
|
||||
</label>
|
||||
<label class="export-option-row">
|
||||
<input type="checkbox" id="export-include-khatm" checked>
|
||||
<span>Include khatm completions</span>
|
||||
</label>
|
||||
<label class="export-option-row">
|
||||
<input type="checkbox" id="export-include-motalah" checked>
|
||||
<span>Include mutālaʿah sessions</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="export-modal-actions">
|
||||
<button type="button" id="export-cancel">Cancel</button>
|
||||
<button type="submit" id="export-submit" class="btn-primary">
|
||||
<span id="export-btn-label">Download PDF</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
|
||||
<!-- Heatmap -->
|
||||
<section id="heatmap-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
@@ -359,10 +413,18 @@ This page tracks my daily awrād and spiritual practices.
|
||||
<tr><td colspan="5" class="loading-cell">Loading…</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<button id="export-pdf-btn" class="btn-export" aria-label="Export wird history to PDF">
|
||||
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" aria-hidden="true" focusable="false">
|
||||
<path d="M6.5 1v7M3.5 5.5l3 3 3-3M1.5 10h10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
Export PDF
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
||||
#+END_EXPORT
|
||||
<script src="https://cdn.jsdelivr.net/npm/jspdf@2.5.1/dist/jspdf.umd.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jspdf-autotable@3.8.2/dist/jspdf.plugin.autotable.min.js"></script>
|
||||
#+END_EXPORT
|
||||
|
||||
368
home/wird-tracker.sync-conflict-20260325-231828-NE5VEIB.org
Normal file
368
home/wird-tracker.sync-conflict-20260325-231828-NE5VEIB.org
Normal file
@@ -0,0 +1,368 @@
|
||||
#+TITLE: Wird Tracker
|
||||
#+OPTIONS: toc:nil num:nil
|
||||
#+NO_SIDENOTES: t
|
||||
#+COMMENTS: nil
|
||||
#+SLUG: wird-tracker
|
||||
|
||||
This page tracks my daily awrād and spiritual practices.
|
||||
|
||||
#+BEGIN_EXPORT html
|
||||
|
||||
<div id="wird-app">
|
||||
|
||||
<!-- Today Panel -->
|
||||
<section id="today-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2 id="today-date">—</h2>
|
||||
<div id="today-progress-wrap">
|
||||
<div id="today-progress-bar"><div id="today-progress-fill"></div></div>
|
||||
<span id="today-progress-label">0 / 5 complete</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="wird-cards"></div>
|
||||
</section>
|
||||
|
||||
<!-- Nafl Prayers Panel -->
|
||||
<section id="nafl-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Nafl Prayers</h2>
|
||||
</div>
|
||||
<div id="nafl-cards">
|
||||
|
||||
<div class="nafl-card" id="nafl-salatul_tawbah">
|
||||
<div class="nafl-icon">🤲</div>
|
||||
<div class="nafl-name">Ṣalāt al-Tawbah</div>
|
||||
<div class="nafl-sub">2 rakʿāt · repentance</div>
|
||||
<button class="nafl-toggle" data-type="salatul_tawbah">Mark as prayed</button>
|
||||
</div>
|
||||
|
||||
<div class="nafl-card" id="nafl-salatul_hajaat">
|
||||
<div class="nafl-icon">🌙</div>
|
||||
<div class="nafl-name">Ṣalāt al-Ḥājah</div>
|
||||
<div class="nafl-sub">2 rakʿāt · need & supplication</div>
|
||||
<button class="nafl-toggle" data-type="salatul_hajaat">Mark as prayed</button>
|
||||
</div>
|
||||
|
||||
<div class="nafl-card" id="nafl-tahajjud">
|
||||
<div class="nafl-icon">⭐</div>
|
||||
<div class="nafl-name">Tahajjud</div>
|
||||
<div class="nafl-sub">night vigil prayer</div>
|
||||
<button class="nafl-toggle" data-type="tahajjud">Mark as prayed</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="nafl-completion-bar-wrap">
|
||||
<div id="nafl-bar-track">
|
||||
<div id="nafl-completion-bar"></div>
|
||||
</div>
|
||||
<span id="nafl-completion-label">0 / 3 today</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Shaykh Meeting Panel -->
|
||||
<section id="meeting-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Meeting with the Shaykh</h2>
|
||||
<button id="log-meeting-btn" class="btn-primary">+ Log Meeting</button>
|
||||
</div>
|
||||
<div id="meeting-panel-body">
|
||||
<p style="color:var(--muted);font-style:italic">Loading…</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Khatm Tracker -->
|
||||
<section id="khatm-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Khatm — Qurʾān Completions</h2>
|
||||
<button id="log-khatm-btn" class="btn-primary">+ Log Khatm</button>
|
||||
</div>
|
||||
<div id="khatm-stats-row">
|
||||
<div class="stat-chip">
|
||||
<span class="stat-val" id="khatm-total">—</span>
|
||||
<span class="stat-lbl">total khatms</span>
|
||||
</div>
|
||||
<div class="stat-chip">
|
||||
<span class="stat-val" id="khatm-this-year">—</span>
|
||||
<span class="stat-lbl">this year</span>
|
||||
</div>
|
||||
<div class="stat-chip">
|
||||
<span class="stat-val" id="khatm-avg-days">—</span>
|
||||
<span class="stat-lbl">avg days between</span>
|
||||
</div>
|
||||
<div class="stat-chip">
|
||||
<span class="stat-val" id="khatm-last">—</span>
|
||||
<span class="stat-lbl">last completed</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="khatm-list">
|
||||
<p style="color:var(--muted);font-style:italic">Loading…</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Khatm Modal -->
|
||||
<dialog id="khatm-modal">
|
||||
<form id="khatm-form" method="dialog">
|
||||
<h3>Log Khatm</h3>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="field-group">
|
||||
<label for="khatm-date">Date completed</label>
|
||||
<input type="date" id="khatm-date" required>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="khatm-recitation">Recitation type <span class="optional">(optional)</span></label>
|
||||
<select id="khatm-recitation">
|
||||
<option value="">— select —</option>
|
||||
<option value="tilawah">Tilāwah (reading)</option>
|
||||
<option value="hifz">Ḥifẓ (memorisation)</option>
|
||||
<option value="tadabbur">Tadabbur (reflection)</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="khatm-notes">Notes <span class="optional">(optional)</span></label>
|
||||
<textarea id="khatm-notes" rows="3" placeholder="Any reflections…"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="khatm-modal-actions">
|
||||
<button type="button" id="khatm-cancel">Cancel</button>
|
||||
<button type="submit" class="btn-primary">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<!-- Log Entry Modal -->
|
||||
<dialog id="log-modal">
|
||||
<form id="log-form" method="dialog">
|
||||
<h3 id="modal-title">Log Entry</h3>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="field-group">
|
||||
<label for="log-date">Date</label>
|
||||
<input type="date" id="log-date" required>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="log-type">Wird</label>
|
||||
<select id="log-type" required>
|
||||
<option value="durood">Durood</option>
|
||||
<option value="istighfar">Istighfar</option>
|
||||
<option value="quran">Qurʾān (juz)</option>
|
||||
<option value="muraqabah">Murāqabah (min)</option>
|
||||
<option value="wuqoof_qalbi">Wuqūf Qalbī</option>
|
||||
<option value="shaykh_meeting" style="display:none">Meeting with Shaykh</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Numeric amount — count/juz/min wirds -->
|
||||
<div class="field-group" id="value-group">
|
||||
<label for="log-value">Amount</label>
|
||||
<input type="number" id="log-value" min="0" step="0.5" placeholder="0">
|
||||
</div>
|
||||
|
||||
<!-- Rating picker — wuqoof qalbi only -->
|
||||
<div class="field-group" id="rating-group" style="display:none">
|
||||
<label>Quality of presence</label>
|
||||
<div class="modal-pips" id="modal-pips">
|
||||
<button type="button" class="modal-pip" data-val="1">
|
||||
<span class="pip-dot"></span>
|
||||
<span class="pip-lbl">distracted</span>
|
||||
</button>
|
||||
<button type="button" class="modal-pip" data-val="2">
|
||||
<span class="pip-dot"></span>
|
||||
<span class="pip-lbl">scattered</span>
|
||||
</button>
|
||||
<button type="button" class="modal-pip" data-val="3">
|
||||
<span class="pip-dot"></span>
|
||||
<span class="pip-lbl">present</span>
|
||||
</button>
|
||||
<button type="button" class="modal-pip" data-val="4">
|
||||
<span class="pip-dot"></span>
|
||||
<span class="pip-lbl">attentive</span>
|
||||
</button>
|
||||
<button type="button" class="modal-pip" data-val="5">
|
||||
<span class="pip-dot"></span>
|
||||
<span class="pip-lbl">absorbed</span>
|
||||
</button>
|
||||
</div>
|
||||
<input type="hidden" id="log-rating-value">
|
||||
</div>
|
||||
|
||||
<!-- Shaykh meeting note -->
|
||||
<div class="field-group" id="shaykh-group" style="display:none">
|
||||
<p style="font-size:.85rem;color:var(--muted);margin:0">Set the date above to when the meeting took place.</p>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="log-notes">Notes <span class="optional">(optional)</span></label>
|
||||
<textarea id="log-notes" rows="3" placeholder="Any reflections…"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="modal-actions">
|
||||
<button type="button" id="modal-cancel">Cancel</button>
|
||||
<button type="submit" id="modal-save" class="btn-primary">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<!-- Mutāla'ah (Study) Panel -->
|
||||
<section id="motalah-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Mutālaʿah — Study</h2>
|
||||
<button id="log-motalah-btn" class="btn-primary">+ Log Session</button>
|
||||
</div>
|
||||
|
||||
<!-- Today summary -->
|
||||
<div id="motalah-today-row">
|
||||
<div class="motalah-today-stat">
|
||||
<span class="motalah-today-val" id="motalah-today-mins">—</span>
|
||||
<span class="motalah-today-lbl">min today</span>
|
||||
</div>
|
||||
<div class="motalah-today-stat">
|
||||
<span class="motalah-today-val" id="motalah-streak">—</span>
|
||||
<span class="motalah-today-lbl">day streak</span>
|
||||
</div>
|
||||
<div class="motalah-today-stat">
|
||||
<span class="motalah-today-val" id="motalah-total-hrs">—</span>
|
||||
<span class="motalah-today-lbl">hrs this month</span>
|
||||
</div>
|
||||
<div class="motalah-today-stat">
|
||||
<span class="motalah-today-val" id="motalah-books-count">—</span>
|
||||
<span class="motalah-today-lbl">books touched</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Recent sessions -->
|
||||
<div id="motalah-sessions-wrap">
|
||||
<p style="color:var(--muted);font-style:italic">Loading…</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Mutāla'ah Log Modal -->
|
||||
<dialog id="motalah-modal">
|
||||
<form id="motalah-form" method="dialog">
|
||||
<h3>Log Study Session</h3>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="field-group">
|
||||
<label for="motalah-date">Date</label>
|
||||
<input type="date" id="motalah-date" required>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="motalah-duration">Duration (minutes)</label>
|
||||
<input type="number" id="motalah-duration" min="1" step="1" placeholder="e.g. 45" required>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label>Books covered <span class="optional">(optional)</span></label>
|
||||
<div class="book-search-wrap">
|
||||
<span class="book-search-icon">🔍</span>
|
||||
<input type="text" id="motalah-book-search" placeholder="Search your library…" autocomplete="off">
|
||||
<div id="book-search-results"></div>
|
||||
</div>
|
||||
<div id="selected-books-chips"></div>
|
||||
<!-- Hidden to carry selected IDs for JS -->
|
||||
<select id="motalah-books" multiple style="display:none"></select>
|
||||
</div>
|
||||
|
||||
<div class="field-group">
|
||||
<label for="motalah-notes">Notes <span class="optional">(optional)</span></label>
|
||||
<textarea id="motalah-notes" rows="3" placeholder="What did you cover?"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="motalah-modal-actions">
|
||||
<button type="button" id="motalah-cancel">Cancel</button>
|
||||
<button type="submit" id="motalah-save" class="btn-primary">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<!-- Heatmap -->
|
||||
<section id="heatmap-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Consistency</h2>
|
||||
<select id="heatmap-type">
|
||||
<option value="__all__">All wirds</option>
|
||||
<option value="durood">Durood</option>
|
||||
<option value="istighfar">Istighfar</option>
|
||||
<option value="quran">Qurʾān</option>
|
||||
<option value="muraqabah">Murāqabah</option>
|
||||
<option value="wuqoof_qalbi">Wuqūf Qalbī</option>
|
||||
<option value="nafl">Nafl prayers</option>
|
||||
<option value="khatm">Khatm</option>
|
||||
<option value="motalah">Mutālaʿah</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="heatmap-wrap">
|
||||
<div id="heatmap-month-labels"></div>
|
||||
<div id="heatmap-grid"></div>
|
||||
<div id="heatmap-legend">
|
||||
<span class="hm-legend-lbl">less</span>
|
||||
<span class="hm-swatch" data-level="0"></span>
|
||||
<span class="hm-swatch" data-level="1"></span>
|
||||
<span class="hm-swatch" data-level="2"></span>
|
||||
<span class="hm-swatch" data-level="3"></span>
|
||||
<span class="hm-swatch" data-level="4"></span>
|
||||
<span class="hm-legend-lbl">more</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="heatmap-stats"></div>
|
||||
</section>
|
||||
|
||||
<!-- Trends -->
|
||||
<section id="trends-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>Trends</h2>
|
||||
<div id="trend-controls">
|
||||
<select id="trend-type">
|
||||
<option value="durood">Durood</option>
|
||||
<option value="istighfar">Istighfar</option>
|
||||
<option value="quran">Qurʾān</option>
|
||||
<option value="muraqabah">Murāqabah</option>
|
||||
<option value="wuqoof_qalbi">Wuqūf Qalbī</option>
|
||||
<option value="motalah">Mutālaʿah</option>
|
||||
</select>
|
||||
<select id="trend-range">
|
||||
<option value="14">14 days</option>
|
||||
<option value="30" selected>30 days</option>
|
||||
<option value="90">90 days</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<canvas id="trend-chart"></canvas>
|
||||
<div id="trend-stats"></div>
|
||||
</section>
|
||||
|
||||
<!-- History -->
|
||||
<section id="history-panel" class="wird-panel">
|
||||
<div class="wird-panel-header">
|
||||
<h2>History</h2>
|
||||
<button id="open-log-btn" class="btn-primary">+ Log Entry</button>
|
||||
</div>
|
||||
<div id="history-table-wrap">
|
||||
<table id="history-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Wird</th>
|
||||
<th>Amount</th>
|
||||
<th>vs Target</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="history-body">
|
||||
<tr><td colspan="5" class="loading-cell">Loading…</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
||||
#+END_EXPORT
|
||||
Reference in New Issue
Block a user