diff --git a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.html b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.html
index fe4794c5..9261838e 100644
--- a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.html
+++ b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.html
@@ -3,16 +3,21 @@
-
Кол-во анкет
+
+ Кликабельно
+ Кол-во анкет
+
diff --git a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.ts b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.ts
index ca4e025c..76f05090 100644
--- a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.ts
+++ b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-by-grades-chart.component.ts
@@ -1,11 +1,4 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
-import { CompanyTypeSelectItem } from '@shared/select-boxes/company-type-select-item';
-import { DeveloperGradeSelectItem } from '@shared/select-boxes/developer-grade-select-item';
-import { ProfessionSelectItem } from '@shared/select-boxes/profession-select-item';
-import { UserSalary } from '@models/salaries/salary.model';
-import { SalariesChart } from '../salaries-chart/salaries-chart';
-import { Chart, ChartType } from 'chart.js/auto';
-import { RandomRgbColor } from './random-rgb-color';
import { UserProfession } from '@models/salaries/user-profession';
import { SalariesChartJsObject } from './salaries-chart-js-object';
import { SalariesByMoneyBarChart } from '@services/user-salaries.service';
@@ -45,8 +38,9 @@ export class SalariesByGradesChartComponent implements OnInit, OnDestroy {
// ignored
}
- toggleBarDatasetByProfession(profession: UserProfession): void {
- this.chartDataLocal?.toggleDatasetByProfession(profession);
+ toggleBarDatasetByProfession(item: SalariesPerProfession): void {
+ item.toggle();
+ this.chartDataLocal?.toggleDatasetByProfession(item.profession);
}
private initChart(): void {
@@ -55,7 +49,7 @@ export class SalariesByGradesChartComponent implements OnInit, OnDestroy {
}
this.chartDataLocal = new SalariesChartJsObject(this.canvasId, this.chart);
- this.chartDataLocal.hideBarDatasets();
+ this.chartDataLocal.hideProfessionDatasets();
var chartEl = document.getElementById(this.canvasId);
if (chartEl != null && chartEl.parentElement != null) {
diff --git a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-chart-js-object.ts b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-chart-js-object.ts
index de698ec3..00702e26 100644
--- a/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-chart-js-object.ts
+++ b/src/app/modules/salaries/components/salaries-by-grades-chart/salaries-chart-js-object.ts
@@ -24,10 +24,10 @@ export class SalariesChartJsObject extends Chart {
const datasets: Array
= [
{
profession: null,
- type: 'line' as ChartType,
+ type: 'bar' as ChartType,
label: 'Все',
data: chartData.items.map(x => x.count),
- borderWidth: 3,
+ borderWidth: 1,
borderColor: randomColor.toString(1),
backgroundColor: randomColor.toString(0.5),
},
@@ -39,10 +39,10 @@ export class SalariesChartJsObject extends Chart {
profession: x.profession,
label: UserProfession[x.profession].toString(),
data: x.items.map(x => x.count),
- borderWidth: 1,
- borderColor: color.toString(0.6),
- backgroundColor: color.toString(0.3),
- type: 'bar' as ChartType,
+ borderWidth: 2,
+ borderColor: color.toString(1),
+ backgroundColor: color.toString(0.7),
+ type: 'line' as ChartType,
});
});
@@ -90,10 +90,10 @@ export class SalariesChartJsObject extends Chart {
this.datasets = datasets;
}
- hideBarDatasets(): void {
+ hideProfessionDatasets(): void {
for (let index = 0; index < this.datasets.length; index++) {
const dataset = this.datasets[index];
- if (dataset.type == 'bar') {
+ if (dataset.profession != null) {
this.setDatasetVisibility(index, false);
}
}
diff --git a/src/app/modules/salaries/components/salaries-per-profession.ts b/src/app/modules/salaries/components/salaries-per-profession.ts
index ec7a572f..6324e04a 100644
--- a/src/app/modules/salaries/components/salaries-per-profession.ts
+++ b/src/app/modules/salaries/components/salaries-per-profession.ts
@@ -6,12 +6,18 @@ import { SplittedByWhitespacesString } from "@shared/value-objects/splitted-by-w
export class SalariesPerProfession {
readonly professionName: string;
+ turnedOn: boolean = false;
+
constructor(
readonly profession: UserProfession,
readonly items: Array) {
this.professionName = new SplittedByWhitespacesString(UserProfession[profession]).toString();
}
+ toggle(): void {
+ this.turnedOn = !this.turnedOn;
+ }
+
static from(salaries: Array): {
local: Array,
remote: Array
diff --git a/src/app/services/user-salaries.service.ts b/src/app/services/user-salaries.service.ts
index 8ad95cb6..4d6a5e61 100644
--- a/src/app/services/user-salaries.service.ts
+++ b/src/app/services/user-salaries.service.ts
@@ -58,6 +58,11 @@ export interface CreateSalaryRecordResponse {
createdSalary: UserSalary | null;
}
+export interface UpdateSalaryRequest {
+ company: CompanyType;
+ grade: DeveloperGrade | null;
+}
+
@Injectable({
providedIn: 'root'
})
@@ -77,6 +82,10 @@ export class UserSalariesService {
return this.api.post(this.root, data);
}
+ update(id: string, data: UpdateSalaryRequest): Observable {
+ return this.api.post(this.root + id, data);
+ }
+
delete(dataId: string): Observable {
return this.api.delete(this.root + dataId);
}