Support multiple deploy template list URLs with cross-list dedupe
CI / test (push) Successful in 9m55s

Add Settings UI to configure many Portainer-format template catalogs (not just one), merge them on fetch, drop duplicates by image/stack/title, and show source counts on the Deploy view.
This commit is contained in:
2026-07-10 22:19:46 -04:00
parent 60816ed78b
commit 2d8b24ec0e
7 changed files with 603 additions and 25 deletions
+22
View File
@@ -1530,6 +1530,28 @@ services:
</div>
<button type="button" class="btn btn-primary btn-sm mt-3" id="settings-save-btn">Save preferences</button>
</div>
<div class="settings-section">
<h3>Deploy template lists</h3>
<p class="small text-muted mb-2">
Portainer-format JSON catalogs (<code>templates.json</code>). Add as many as you want — peardock merges them and removes duplicates (same image / stack repo / title). Portainer only allows one list.
</p>
<ul id="settings-template-urls" class="list-group list-group-flush mb-2 settings-template-urls"></ul>
<div class="input-group input-group-sm mb-2">
<input type="url" id="settings-template-url-input" class="form-control bg-dark text-white font-monospace" placeholder="https://example.com/templates.json" spellcheck="false" autocomplete="off">
<button type="button" class="btn btn-outline-primary" id="settings-template-url-add" title="Add list URL">
<i class="fas fa-plus me-1"></i>Add
</button>
</div>
<div class="d-flex flex-wrap gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm" id="settings-template-url-reset" title="Restore default catalog">
Restore default
</button>
<button type="button" class="btn btn-outline-info btn-sm" id="settings-template-reload" title="Fetch all lists now">
<i class="fas fa-sync me-1"></i>Reload templates
</button>
</div>
<div id="settings-template-lists-status" class="small text-muted mt-2"></div>
</div>
<div class="settings-section">
<h3>Active peer</h3>
<div id="settings-peer-info" class="small text-muted">Not connected</div>