feat(project-editor): add field descriptions to General and Branding sections (partial)
Some checks failed
Architecture Governance / architecture (push) Has been cancelled

Adds a short plain-language description under each field label (new
.field-desc style, section.shared.scss) so a non-developer admin
understands what each field affects, per i18n (en/ru/hy) convention.

Only General and Branding sections are wired up so far - the *Desc i18n
keys for the remaining sections (theme/header/footer/homepage/widgets/
features/languages/navigation) were prepared in translations.ts/en/ru/hy
but not yet wired into their templates. Follow-up work.
This commit is contained in:
sdarbinyan
2026-07-14 16:05:09 +04:00
parent 76831b8485
commit ac83c4f57f
7 changed files with 422 additions and 0 deletions

View File

@@ -4,18 +4,22 @@
<div class="editor-grid two">
<label>
<span>{{ 'builder.logo' | translate }}</span>
<small class="field-desc">{{ 'builder.logoDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.branding.logoUrl" (ngModelChange)="updateField('logoUrl', $event)" />
</label>
<label>
<span>{{ 'builder.smallLogo' | translate }}</span>
<small class="field-desc">{{ 'builder.smallLogoDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.branding.logoCompactUrl || ''" (ngModelChange)="updateField('logoCompactUrl', $event)" />
</label>
<label>
<span>{{ 'builder.favicon' | translate }}</span>
<small class="field-desc">{{ 'builder.faviconDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.branding.faviconUrl" (ngModelChange)="updateField('faviconUrl', $event)" />
</label>
<label>
<span>{{ 'builder.marketplaceTitle' | translate }}</span>
<small class="field-desc">{{ 'builder.marketplaceTitleDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.seo.default.title" (ngModelChange)="updateMarketplaceTitle($event)" />
</label>
</div>

View File

@@ -4,22 +4,27 @@
<div class="editor-grid two">
<label>
<span>{{ 'builder.marketplaceName' | translate }}</span>
<small class="field-desc">{{ 'builder.marketplaceNameDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.branding.brandName" (ngModelChange)="updateMarketplaceName($event)" />
</label>
<label>
<span>{{ 'builder.domain' | translate }}</span>
<small class="field-desc">{{ 'builder.domainDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.tenant.host" (ngModelChange)="updateDomain($event)" />
</label>
<label class="full">
<span>{{ 'builder.descriptionLabel' | translate }}</span>
<small class="field-desc">{{ 'builder.descriptionFieldDesc' | translate }}</small>
<textarea rows="3" [ngModel]="bootstrap.seo.default.description" (ngModelChange)="updateDescription($event)"></textarea>
</label>
<label>
<span>{{ 'builder.defaultLanguage' | translate }}</span>
<small class="field-desc">{{ 'builder.defaultLanguageDesc' | translate }}</small>
<input type="text" [ngModel]="bootstrap.localization.defaultLocale" (ngModelChange)="updateDefaultLanguage($event)" />
</label>
<label>
<span>{{ 'builder.supportedLanguages' | translate }}</span>
<small class="field-desc">{{ 'builder.supportedLanguagesDesc' | translate }}</small>
<input type="text" [ngModel]="languagesValue()" (ngModelChange)="updateSupportedLanguages($event)" />
</label>
</div>

View File

@@ -43,6 +43,15 @@ label.full {
grid-column: 1 / -1;
}
.field-desc {
display: block;
font-weight: 400;
font-size: 12px;
line-height: 1.4;
color: var(--text-secondary, #5f6e6a);
margin: -2px 0 2px;
}
input,
textarea,
select {