Files
marketplaces/src/app/features/admin/settings/pages/admin-settings-page.component.html
sdarbinyan 4510eb769a
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
feat: client-side currency conversion with admin-configurable rates
- 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>
2026-08-15 01:45:12 +04:00

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>