Improve LinkedIn UI and scheduling robustness

- When LinkedIn is connected, replace the Connect button with a pencil
  (test post to first personal profile) and a reconnect arrow icon
- Add Process Now button to the Schedule tab that shells out to the cron
  script on demand and shows its output inline
- Add flock() to the cron script to prevent overlapping runs
- Fix cron install path comment to match deployed location

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bashy 2026-06-03 15:17:26 +03:00
parent 30b21b6214
commit 45b9e15152
5 changed files with 66 additions and 7 deletions

View file

@ -53,9 +53,17 @@
<div class="small fw-semibold" id="liConnectionLabel">Checking…</div>
<div class="text-muted small" id="liTokenExpiry"></div>
</div>
<button class="btn btn-sm btn-outline-primary ms-auto" id="liConnectBtn">
<i class="bi bi-box-arrow-in-right me-1"></i>Connect LinkedIn
</button>
<div class="ms-auto d-flex gap-2 align-items-center">
<button class="btn btn-sm btn-outline-primary" id="liConnectBtn">
<i class="bi bi-box-arrow-in-right me-1"></i>Connect LinkedIn
</button>
<button class="btn btn-sm btn-outline-secondary d-none" id="liTestPostBtn" title="Test post to LinkedIn">
<i class="bi bi-pencil-square"></i>
</button>
<button class="btn btn-sm btn-outline-secondary d-none" id="liReconnectBtn" title="Reconnect OAuth">
<i class="bi bi-arrow-clockwise"></i>
</button>
</div>
</div>
</div>

View file

@ -74,7 +74,15 @@
</div>
<!-- Post list -->
<h6 class="mb-3">Scheduled &amp; Recent Posts</h6>
<div class="d-flex align-items-center gap-2 mb-3">
<h6 class="mb-0">Scheduled &amp; Recent Posts</h6>
<button class="btn btn-sm btn-outline-secondary ms-auto" id="schedRunNowBtn" title="Process all due posts now">
<i class="bi bi-play-circle me-1"></i>Process Now
</button>
</div>
<div id="schedRunNowOutput" class="d-none mb-2">
<pre class="bg-body-secondary border rounded p-2 small mb-0" id="schedRunNowPre" style="max-height:160px;overflow:auto"></pre>
</div>
<div id="schedPostsList"><div class="text-muted small">Loading…</div></div>
</div>