diff --git a/src/app/modules/admin/admin-routing.module.ts b/src/app/modules/admin/admin-routing.module.ts
index 20a64706..fe3ebe19 100644
--- a/src/app/modules/admin/admin-routing.module.ts
+++ b/src/app/modules/admin/admin-routing.module.ts
@@ -5,7 +5,6 @@ import { BackgroundJobsComponent } from "./components/background-jobs/background
import { InterviewTemplatesAdminPageComponent } from "./components/interviews/interview-templates-admin-page/interview-templates-admin-page.component";
import { UsersAdminPageComponent } from "./components/users/users-admin-page/users-admin-page.component";
import { SalariesAdminPageComponent } from "./components/salaries/salaries-admin-page/salaries-admin-page.component";
-import { SalariesAddingChartComponent } from "./components/salaries/salaries-adding-chart/salaries-adding-chart.component";
import { SalariesNotInStatsAdminPageComponent } from "./components/salaries/salaries-not-in-stat-admin-page/salaries-not-in-stat-admin-page.component";
import { SkillsPaginatedTableComponent } from "./components/label-entities/skills-paginated-table/skills-paginated-table.component";
import { WorkIndustriesPaginatedTableComponent } from "./components/label-entities/work-industries-paginated-table/work-indusrties-paginated-table.component";
@@ -29,10 +28,6 @@ const routes: Routes = [
path: "salaries/not-in-stats",
component: SalariesNotInStatsAdminPageComponent,
},
- {
- path: "salaries/salaries-adding-trend-chart",
- component: SalariesAddingChartComponent,
- },
{
path: "salaries/salaries-survey",
component: SalariesSurveyPageComponent,
diff --git a/src/app/modules/admin/admin.module.ts b/src/app/modules/admin/admin.module.ts
index 84c6e22d..e12e954a 100644
--- a/src/app/modules/admin/admin.module.ts
+++ b/src/app/modules/admin/admin.module.ts
@@ -11,7 +11,6 @@ import { InterviewTemplatesAdminPageComponent } from "./components/interviews/in
import { UsersAdminPageComponent } from "./components/users/users-admin-page/users-admin-page.component";
import { AdminStartPageComponent } from "./components/admin-start-page/admin-start-page.component";
import { SalariesAdminPageComponent } from "./components/salaries/salaries-admin-page/salaries-admin-page.component";
-import { SalariesAddingChartComponent } from "./components/salaries/salaries-adding-chart/salaries-adding-chart.component";
import { SalariesAdminPaginatedTableComponent } from "./components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component";
import { SalariesNotInStatsAdminPageComponent } from "./components/salaries/salaries-not-in-stat-admin-page/salaries-not-in-stat-admin-page.component";
import { SkillsPaginatedTableComponent } from "./components/label-entities/skills-paginated-table/skills-paginated-table.component";
@@ -29,7 +28,6 @@ import { SalariesSurveyPageComponent } from "./components/salaries/salaries-surv
UsersAdminPageComponent,
AdminStartPageComponent,
SalariesAdminPageComponent,
- SalariesAddingChartComponent,
SalariesAdminPaginatedTableComponent,
SalariesNotInStatsAdminPageComponent,
SkillsPaginatedTableComponent,
diff --git a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.html b/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.html
deleted file mode 100644
index 9563be06..00000000
--- a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.html
+++ /dev/null
@@ -1,35 +0,0 @@
-График добавления анкет
-
-
-
-
-
-
-
-
- Зарплат на одного пользователя:
- ~{{ salariesPerOneUser | number: "1.0-5" }}
-
-
-
- Пользователи, кто оставил анкету:
- {{ usersWhoLeftSalary }}
-
-
-
- Пользователи, кто не оставил анкет
- {{ allUsersCount - usersWhoLeftSalary }}
-
-
-
- Пользователей всего:
- {{ allUsersCount }}
-
-
-
-
-
diff --git a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.ts b/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.ts
deleted file mode 100644
index 70dd92aa..00000000
--- a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Component, OnDestroy, OnInit } from "@angular/core";
-import { TitleService } from "@services/title.service";
-import {
- SalariesAddingTrendAdminChart,
- UserSalariesService,
-} from "@services/user-salaries.service";
-import { untilDestroyed } from "@shared/subscriptions/until-destroyed";
-import { SalariesAddingChart } from "./salaries-adding-chart";
-
-@Component({
- templateUrl: "./salaries-adding-chart.component.html",
- styleUrl: "./salaries-adding-chart.component.scss",
-})
-export class SalariesAddingChartComponent implements OnInit, OnDestroy {
- get salariesPerOneUser(): number {
- return this.data?.salariesPerUser || 0;
- }
-
- get usersWhoLeftSalary(): number {
- return this.data?.usersWhoLeftSalary || 0;
- }
-
- get allUsersCount(): number {
- return this.data?.allUsersCount || 0;
- }
-
- data: SalariesAddingTrendAdminChart | null = null;
- chart: SalariesAddingChart | null = null;
-
- constructor(
- private readonly service: UserSalariesService,
- private readonly titleService: TitleService
- ) {
- this.titleService.setTitle("График добавления анкет");
- }
-
- ngOnInit(): void {
- this.chart = null;
- this.service
- .addingSalariesaTrendAdminChart()
- .pipe(untilDestroyed(this))
- .subscribe((x) => {
- this.data = x;
- this.chart = new SalariesAddingChart("canvas", this.data);
- });
- }
-
- ngOnDestroy(): void {
- // ignored
- }
-}
diff --git a/src/app/modules/home/components/about-us/about-us.component.html b/src/app/modules/home/components/about-us/about-us.component.html
index 271f10af..f8d55f54 100644
--- a/src/app/modules/home/components/about-us/about-us.component.html
+++ b/src/app/modules/home/components/about-us/about-us.component.html
@@ -17,28 +17,12 @@
Контрибьюторы
-
-
-
diff --git a/src/app/modules/home/components/about-us/about-us.component.ts b/src/app/modules/home/components/about-us/about-us.component.ts
index 07dc79ad..dd5a42eb 100644
--- a/src/app/modules/home/components/about-us/about-us.component.ts
+++ b/src/app/modules/home/components/about-us/about-us.component.ts
@@ -1,12 +1,32 @@
import { Component, OnInit } from "@angular/core";
+interface IContributor {
+ link: string;
+ username: string;
+}
+
@Component({
selector: "app-about-us",
templateUrl: "./about-us.component.html",
styleUrls: ["./about-us.component.scss"],
})
-export class AboutUsComponent implements OnInit {
- constructor() {}
-
- ngOnInit(): void {}
+export class AboutUsComponent {
+ contributors: IContributor[] = [
+ {
+ link: "https://github.com/indicozy",
+ username: "indicozy",
+ },
+ {
+ link: "https://github.com/sanch941",
+ username: "sanch941",
+ },
+ {
+ link: "https://github.com/galym-abitech",
+ username: "galym-abitech",
+ },
+ {
+ link: "https://github.com/maximgorbatyuk",
+ username: "maximgorbatyuk",
+ },
+ ];
}
diff --git a/src/app/modules/salaries/components/cities-doughnut-chart/cities-doughnut-chart-object.ts b/src/app/modules/salaries/components/cities-doughnut-chart/cities-doughnut-chart-object.ts
index ad8c3764..36f395cf 100644
--- a/src/app/modules/salaries/components/cities-doughnut-chart/cities-doughnut-chart-object.ts
+++ b/src/app/modules/salaries/components/cities-doughnut-chart/cities-doughnut-chart-object.ts
@@ -94,7 +94,8 @@ export class CitiesDoughnutChartObject extends Chart {
item.count++;
});
- return uniqueItems;
+ return uniqueItems
+ .sort((x, y) => y.count - x.count);
}
}
diff --git a/src/app/modules/salaries/components/people-by-gender-chart/people-by-gender-chart.component.ts b/src/app/modules/salaries/components/people-by-gender-chart/people-by-gender-chart.component.ts
index c20f54aa..03f2c22b 100644
--- a/src/app/modules/salaries/components/people-by-gender-chart/people-by-gender-chart.component.ts
+++ b/src/app/modules/salaries/components/people-by-gender-chart/people-by-gender-chart.component.ts
@@ -87,6 +87,7 @@ export class PeopleByGenderChartComponent implements OnInit {
const result: Array
= [];
salariesGroupedByGender
.filter((item) => item.gender != null)
+ .sort((x, y) => x.gender! - y.gender!)
.forEach((item) => {
result.push({
value: item.salaries.length,
diff --git a/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.html b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.html
new file mode 100644
index 00000000..c53cd64d
--- /dev/null
+++ b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.html
@@ -0,0 +1,5 @@
+График добавления анкет
+
+
+
+
diff --git a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.scss b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.scss
similarity index 59%
rename from src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.scss
rename to src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.scss
index 162c62f4..56eade44 100644
--- a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.scss
+++ b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.scss
@@ -1,8 +1,8 @@
-#canvas {
+#canvas-adding-trend-chart {
min-height: 400px;
}
-#canvas-container {
+#canvas-addint-trend-chart-container {
position: relative;
width: 100%;
height: 100%;
diff --git a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.spec.ts b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.spec.ts
similarity index 100%
rename from src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.component.spec.ts
rename to src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.spec.ts
diff --git a/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.ts b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.ts
new file mode 100644
index 00000000..68b6ede7
--- /dev/null
+++ b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component.ts
@@ -0,0 +1,45 @@
+import { Component, Input, OnDestroy, OnInit } from "@angular/core";
+import {
+ SalariesAddingTrendChart,
+ UserSalariesService,
+} from "@services/user-salaries.service";
+import { untilDestroyed } from "@shared/subscriptions/until-destroyed";
+import { SalariesAddingChart } from "./salaries-adding-chart";
+import { SalaryChartGlobalFiltersData } from "../salary-chart-global-filters/global-filters-form-group";
+
+@Component({
+ selector: "app-salaries-adding-chart",
+ templateUrl: "./salaries-adding-chart.component.html",
+ styleUrl: "./salaries-adding-chart.component.scss",
+})
+export class SalariesAddingChartComponent implements OnInit, OnDestroy {
+
+ @Input()
+ filter: SalaryChartGlobalFiltersData | null = null;
+
+ data: SalariesAddingTrendChart | null = null;
+ chart: SalariesAddingChart | null = null;
+
+ constructor(
+ private readonly service: UserSalariesService
+ ) {}
+
+ ngOnInit(): void {
+ this.chart = null;
+ this.service
+ .addingSalariesaTrendChart({
+ profsInclude: this.filter?.profsInclude ?? [],
+ grade: this.filter?.grade ?? null,
+ cities: this.filter?.cities ?? [],
+ })
+ .pipe(untilDestroyed(this))
+ .subscribe((x) => {
+ this.data = x;
+ this.chart = new SalariesAddingChart("canvas-adding-trend-chart", this.data);
+ });
+ }
+
+ ngOnDestroy(): void {
+ // ignored
+ }
+}
diff --git a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.ts b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.ts
similarity index 89%
rename from src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.ts
rename to src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.ts
index a407d569..843967d6 100644
--- a/src/app/modules/admin/components/salaries/salaries-adding-chart/salaries-adding-chart.ts
+++ b/src/app/modules/salaries/components/salaries-chart/salaries-adding-chart/salaries-adding-chart.ts
@@ -1,5 +1,5 @@
import { RandomRgbColor } from "@modules/salaries/components/random-rgb-color";
-import { SalariesAddingTrendAdminChart } from "@services/user-salaries.service";
+import { SalariesAddingTrendChart } from "@services/user-salaries.service";
import { Chart, ChartType, PointStyle } from "chart.js/auto";
interface ChartDatasetType {
@@ -14,7 +14,7 @@ interface ChartDatasetType {
export class SalariesAddingChart extends Chart {
private readonly datasets: Array = [];
- constructor(canvasId: string, chartData: SalariesAddingTrendAdminChart) {
+ constructor(canvasId: string, chartData: SalariesAddingTrendChart) {
const randomColor = new RandomRgbColor();
const datasets: Array = [
{
diff --git a/src/app/modules/salaries/components/salaries-chart/salaries-chart.component.html b/src/app/modules/salaries/components/salaries-chart/salaries-chart.component.html
index 288b1837..897e6876 100644
--- a/src/app/modules/salaries/components/salaries-chart/salaries-chart.component.html
+++ b/src/app/modules/salaries/components/salaries-chart/salaries-chart.component.html
@@ -350,6 +350,12 @@
>
+
+
diff --git a/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/global-filters-form-group.ts b/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/global-filters-form-group.ts
index 6e6ca779..d3f8f0e8 100644
--- a/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/global-filters-form-group.ts
+++ b/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/global-filters-form-group.ts
@@ -27,9 +27,17 @@ export class SalaryChartGlobalFiltersData {
return (
this.grade === other.grade &&
this.cities.length === other.cities.length &&
- this.profsInclude.length === other.profsInclude.length
+ this.isEqualArrays(this.profsInclude, other.profsInclude)
);
}
+
+ private isEqualArrays(a: Array, b: Array): boolean {
+ if (a.length !== b.length) {
+ return false;
+ }
+
+ return a.every((x, i) => x === b[i]);
+ }
}
export class GlobalFiltersFormGroup extends FormGroup {
diff --git a/src/app/modules/salaries/salaries.module.ts b/src/app/modules/salaries/salaries.module.ts
index 63653f9a..5ee854c9 100644
--- a/src/app/modules/salaries/salaries.module.ts
+++ b/src/app/modules/salaries/salaries.module.ts
@@ -25,6 +25,7 @@ import { SalariesByGradeBlockComponent } from "./components/salaries-chart/salar
import { SalariesPaginatedTableComponent } from "./components/salaries-paginated-table/salaries-paginated-table.component";
import { SalariesSurveyBlockComponent } from "./components/salaries-survey-block/salaries-survey-block.component";
import { SalariesSurveyPageComponent } from "./components/salaries-survey-page/salaries-survey-page.component";
+import { SalariesAddingChartComponent } from "./components/salaries-chart/salaries-adding-chart/salaries-adding-chart.component";
@NgModule({
declarations: [
@@ -50,6 +51,7 @@ import { SalariesSurveyPageComponent } from "./components/salaries-survey-page/s
SalariesPaginatedTableComponent,
SalariesSurveyBlockComponent,
SalariesSurveyPageComponent,
+ SalariesAddingChartComponent,
],
imports: [
CommonModule,
diff --git a/src/app/services/user-salaries.service.ts b/src/app/services/user-salaries.service.ts
index 45aed416..e7ba3798 100644
--- a/src/app/services/user-salaries.service.ts
+++ b/src/app/services/user-salaries.service.ts
@@ -116,16 +116,18 @@ export interface SalariesChartFilterData {
cities: Array | null;
}
-export interface SalariesAddingTrendAdminChart {
+export interface SalariesAddingTrendChartParams {
+ grade: DeveloperGrade | null;
+ profsInclude: Array | null;
+ cities: Array | null;
+}
+
+export interface SalariesAddingTrendChart {
labels: string[];
items: Array<{
count: number;
startedAt: Date;
}>;
-
- salariesPerUser: number;
- usersWhoLeftSalary: number;
- allUsersCount: number;
}
export enum SalariesAdminOrderingType {
@@ -179,9 +181,12 @@ export class UserSalariesService {
);
}
- addingSalariesaTrendAdminChart(): Observable {
- return this.api.get(
- this.root + "salaries-adding-trend-chart"
+ addingSalariesaTrendChart(
+ params: SalariesAddingTrendChartParams
+ ): Observable {
+ return this.api.get(
+ this.root + "salaries-adding-trend-chart?" +
+ new ConvertObjectToHttpParams(params).get()
);
}