Some checks failed
Architecture Governance / architecture (push) Has been cancelled
- CurrencyRatesService: RUB-based rates, persisted via localStorage - CurrencyConvertPipe: impure pipe converting item price to selected currency - Admin settings page: editable currency rates form - Applied conversion to product-card, product-information, quick-view-dialog, delivery-information, compare-table, cart totals + payment payload Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
36 lines
1.4 KiB
HTML
36 lines
1.4 KiB
HTML
<section class="admin-settings-page">
|
|
<div class="settings-card">
|
|
<h2>{{ 'adminSettings.density' | translate }}</h2>
|
|
<p class="settings-explain">{{ 'adminSettings.densityExplain' | translate }}</p>
|
|
<label class="toggle-row">
|
|
<app-toggle
|
|
[ngModel]="preferences.density() === 'compact'"
|
|
(ngModelChange)="onCompactToggle($event)"
|
|
[ariaLabel]="'adminSettings.densityCompact' | translate"
|
|
/>
|
|
<span>{{ 'adminSettings.densityCompact' | translate }}</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="settings-card">
|
|
<h2>{{ 'adminSettings.currencyRates' | translate }}</h2>
|
|
<p class="settings-explain">{{ 'adminSettings.currencyRatesExplain' | translate }}</p>
|
|
<div class="rate-row" *ngFor="let currency of languageService.currencies">
|
|
<span class="rate-code">{{ currency.code }}</span>
|
|
<input
|
|
class="rate-input"
|
|
type="number"
|
|
min="0"
|
|
step="0.0001"
|
|
[disabled]="currency.code === currencyRates.baseCurrency"
|
|
[ngModel]="rateDrafts()[currency.code]"
|
|
(ngModelChange)="onRateInput(currency.code, $event)"
|
|
/>
|
|
</div>
|
|
<div class="rate-actions">
|
|
<button type="button" class="save-button" (click)="saveRates()">{{ 'adminSettings.currencyRatesSave' | translate }}</button>
|
|
<span class="saved-message" *ngIf="showSavedMessage()">{{ 'adminSettings.currencyRatesSaved' | translate }}</span>
|
|
</div>
|
|
</div>
|
|
</section>
|