diff --git a/projects/social_platform/src/app/domain/program/program-management.model.ts b/projects/social_platform/src/app/domain/program/program-management.model.ts index 9029e71be..913dd1d5a 100644 --- a/projects/social_platform/src/app/domain/program/program-management.model.ts +++ b/projects/social_platform/src/app/domain/program/program-management.model.ts @@ -132,7 +132,8 @@ export interface ManagementQuery { caseName?: string; regionScope?: "all" | "selected" | "without_region"; region?: string; - activity?: "all" | "period" | "never"; + activity?: "all" | "period" | "active" | "inactive" | "never"; + order?: "registration" | "activity_asc" | "activity_desc"; activityFrom?: string; activityTo?: string; } diff --git a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts index 43d322403..6639e0e2e 100644 --- a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts +++ b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts @@ -59,6 +59,7 @@ describe("Контракт HTTP панели организатора", () => { regionScope: "selected" as const, region: "Москва", activity: "period" as const, + order: "activity_desc" as const, activityFrom: "2026-10-01", activityTo: "2026-10-19", }; @@ -70,9 +71,30 @@ describe("Контракт HTTP панели организатора", () => { expect(file.request.params.toString()).toBe(list.request.params.toString()); expect(file.request.params.get("activity_from")).toBe("2026-10-01"); expect(file.request.params.get("region")).toBe("Москва"); + expect(file.request.params.get("order")).toBe("activity_desc"); expect(file.request.responseType).toBe("blob"); file.flush(new Blob(["xlsx"])); }); + it("одни параметры наличия активности и сортировки передаются списку и выбору всех", () => { + const query = { + search: "", + offset: 20, + limit: 20, + submission: "all" as const, + caseScope: "all" as const, + activity: "inactive" as const, + order: "activity_asc" as const, + }; + adapter.participants(4, query).subscribe(); + const list = http.expectOne(r => r.url.endsWith("/participants/")); + list.flush({ count: 0, results: [] }); + adapter.selection(4, "participants", query).subscribe(); + const selection = http.expectOne(r => r.url.endsWith("/participants/selection/")); + expect(selection.request.params.toString()).toBe(list.request.params.toString()); + expect(selection.request.params.get("activity")).toBe("inactive"); + expect(selection.request.params.get("order")).toBe("activity_asc"); + selection.flush({ ids: [] }); + }); it("версия PATCH не теряет точность при преобразовании JSON", () => { const version = "2026-10-17T12:34:56.123456Z"; adapter diff --git a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts index 913c528f4..ab7aeaba7 100644 --- a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts +++ b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts @@ -93,7 +93,8 @@ export class ProgramManagementHttpAdapter implements ProgramManagementRepository private participantParams(q: ManagementQuery): HttpParams { let params = this.params(q) .set("region_scope", q.regionScope ?? "all") - .set("activity", q.activity ?? "all"); + .set("activity", q.activity ?? "all") + .set("order", q.order ?? "registration"); if (q.regionScope === "selected" && q.region) params = params.set("region", q.region); if (q.activity === "period") { if (q.activityFrom) params = params.set("activity_from", q.activityFrom); diff --git a/projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scss b/projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scss index bcce0f586..1b44ee690 100644 --- a/projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scss +++ b/projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scss @@ -1,6 +1,7 @@ /** @format */ @use "styles/responsive"; +@use "styles/ui-foundation"; @use "styles/program-management-controls"; .modal__body.analytics-drilldown-body.analytics-drilldown-body--case { @@ -288,7 +289,7 @@ } &__action:hover { - text-decoration: underline; + color: var(--accent-dark); } &__action:disabled { @@ -311,16 +312,11 @@ align-items: center; input { - box-sizing: border-box; + @include ui-foundation.control; + flex: 1 1 220px; width: 100%; - min-width: 0; - padding: 10px 12px; - font: inherit; - color: var(--black); - background: var(--white); - border: 1px solid var(--medium-grey-for-outline); - border-radius: 8px; + font-size: 12px; } } diff --git a/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.html b/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.html index 255585ee1..dceda0e13 100644 --- a/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.html +++ b/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.html @@ -60,29 +60,34 @@
Загружаем экспертов…
} -| - + | Эксперт | Кейсы | @@ -260,28 +265,33 @@
|---|
| - + | Проект | Кейс | diff --git a/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.scss b/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.scss index c208f5a1a..b2dd4ae4e 100644 --- a/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.scss +++ b/projects/social_platform/src/app/ui/pages/program/management/experts/experts.component.scss @@ -835,8 +835,8 @@ } } -.experts__select-all { - min-height: 32px; +.experts__mobile-tools { + display: none; } .experts__bulk { @@ -848,6 +848,17 @@ } @media (max-width: 999px) { + .experts__mobile-tools { + display: block; + } + + .experts .experts__mobile-tools .experts__pick-target { + display: flex; + gap: 8px; + justify-content: start; + min-height: 44px; + } + .experts__table--people tr { position: relative; } diff --git a/projects/social_platform/src/app/ui/pages/program/management/management.component.html b/projects/social_platform/src/app/ui/pages/program/management/management.component.html index 70fb20283..90b9d56c5 100644 --- a/projects/social_platform/src/app/ui/pages/program/management/management.component.html +++ b/projects/social_platform/src/app/ui/pages/program/management/management.component.html @@ -11,8 +11,8 @@ >
|---|