Add bidirectional mode option to replication panel UI
This commit is contained in:
@@ -1065,8 +1065,10 @@
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
|
||||
</svg>
|
||||
<div>
|
||||
<strong>Replication Active</strong> —
|
||||
{% if replication_rule.mode == 'all' %}
|
||||
<strong>Replication Active</strong> —
|
||||
{% if replication_rule.mode == 'bidirectional' %}
|
||||
Bi-directional sync enabled with LWW conflict resolution.
|
||||
{% elif replication_rule.mode == 'all' %}
|
||||
All objects (existing + new) are being replicated.
|
||||
{% else %}
|
||||
New uploads to this bucket are automatically replicated.
|
||||
@@ -1159,7 +1161,7 @@
|
||||
</div>
|
||||
<div class="text-muted small text-uppercase">Mode</div>
|
||||
<div class="fw-semibold small">
|
||||
{% if replication_rule.mode == 'all' %}All Objects{% else %}New Only{% endif %}
|
||||
{% if replication_rule.mode == 'bidirectional' %}Bidirectional{% elif replication_rule.mode == 'all' %}All Objects{% else %}New Only{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1310,7 +1312,9 @@
|
||||
<div>
|
||||
<strong>Replication Paused</strong>
|
||||
<p class="mb-1">Replication is configured but currently paused. New uploads will not be replicated until resumed.</p>
|
||||
{% if replication_rule.mode == 'all' %}
|
||||
{% if replication_rule.mode == 'bidirectional' %}
|
||||
<p class="mb-0 small text-dark"><strong>Tip:</strong> When you resume, bi-directional sync will continue and any missed changes will be reconciled using LWW conflict resolution.</p>
|
||||
{% elif replication_rule.mode == 'all' %}
|
||||
<p class="mb-0 small text-dark"><strong>Tip:</strong> When you resume, any objects uploaded while paused will be automatically synced to the target.</p>
|
||||
{% else %}
|
||||
<p class="mb-0 small text-dark"><strong>Note:</strong> Objects uploaded while paused will not be synced (mode: new_only). Consider switching to "All Objects" mode if you need to sync missed uploads.</p>
|
||||
@@ -1435,17 +1439,26 @@
|
||||
<div class="text-muted small">Only replicate objects uploaded after enabling replication. Existing objects will not be copied.</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check p-3 m-0">
|
||||
<div class="form-check p-3 border-bottom m-0">
|
||||
<input class="form-check-input" type="radio" name="replication_mode" id="mode_all" value="all">
|
||||
<label class="form-check-label w-100" for="mode_all">
|
||||
<span class="fw-medium">All objects (existing + new)</span>
|
||||
<div class="text-muted small">Replicate all existing objects immediately, plus all future uploads. <span class="text-warning">This may take time for large buckets.</span></div>
|
||||
</label>
|
||||
</div>
|
||||
{% if site_sync_enabled %}
|
||||
<div class="form-check p-3 m-0">
|
||||
<input class="form-check-input" type="radio" name="replication_mode" id="mode_bidirectional" value="bidirectional">
|
||||
<label class="form-check-label w-100" for="mode_bidirectional">
|
||||
<span class="fw-medium">Bidirectional sync</span>
|
||||
<div class="text-muted small">Two-way sync with Last-Write-Wins conflict resolution.</div>
|
||||
</label>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" class="me-1" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"/>
|
||||
|
||||
Reference in New Issue
Block a user