Skip to content

Commit 024c7e0

Browse files
authored
Merge pull request #495 from sawankshrma/new-feat-Report
Feature: Report Page
2 parents e43d28a + b7c6a1e commit 024c7e0

14 files changed

+1841
-0
lines changed

src/app/app-routing.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { UsageComponent } from './pages/usage/usage.component';
1010
import { TeamsComponent } from './pages/teams/teams.component';
1111
import { RoadmapComponent } from './pages/roadmap/roadmap.component';
1212
import { SettingsComponent } from './pages/settings/settings.component';
13+
import { ReportComponent } from './pages/report/report.component';
1314

1415
const routes: Routes = [
1516
{ path: '', component: CircularHeatmapComponent },
@@ -24,6 +25,7 @@ const routes: Routes = [
2425
{ path: 'userday', component: UserdayComponent },
2526
{ path: 'roadmap', component: RoadmapComponent },
2627
{ path: 'settings', component: SettingsComponent },
28+
{ path: 'report', component: ReportComponent },
2729
];
2830

2931
@NgModule({

src/app/app.module.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
22
import { BrowserModule } from '@angular/platform-browser';
33
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
44
import { MatToolbarModule } from '@angular/material/toolbar';
5+
import { MatMenuModule } from '@angular/material/menu';
56

67
import { AppRoutingModule } from './app-routing.module';
78
import { AppComponent } from './app.component';
@@ -32,6 +33,10 @@ import { KpiComponent } from './component/kpi/kpi.component';
3233
import { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3334
import { TeamsGroupsEditorModule } from './component/teams-groups-editor/teams-groups-editor.module';
3435
import { MatTooltipModule } from '@angular/material/tooltip';
36+
import { ReportComponent } from './pages/report/report.component';
37+
import { ReportConfigModalComponent } from './component/report-config-modal/report-config-modal.component';
38+
import { TeamSelectorComponent } from './component/team-selector/team-selector.component';
39+
import { ColResizeDirective } from './directive/col-resize.directive';
3540

3641
@NgModule({
3742
declarations: [
@@ -56,6 +61,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
5661
ProgressSliderComponent,
5762
KpiComponent,
5863
SettingsComponent,
64+
ReportComponent,
65+
ReportConfigModalComponent,
66+
TeamSelectorComponent,
67+
ColResizeDirective,
5968
],
6069
imports: [
6170
BrowserModule,
@@ -65,6 +74,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
6574
MatDialogModule,
6675
ReactiveFormsModule,
6776
MatToolbarModule,
77+
MatMenuModule,
6878
FormsModule,
6979
HttpClientModule,
7080
TeamsGroupsEditorModule,
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
.config-content {
2+
max-height: 70vh;
3+
overflow-y: auto;
4+
padding: 0 40px;
5+
background-color: var(--background-primary);
6+
}
7+
8+
mat-dialog-title{
9+
font-size:20px;
10+
}
11+
12+
.config-section {
13+
padding: 16px 0;
14+
}
15+
16+
.config-row {
17+
display: flex;
18+
align-items: center;
19+
gap: 12px;
20+
margin-bottom: 12px;
21+
margin-top: 12px;
22+
}
23+
24+
.config-row-label {
25+
font-size: 0.95em;
26+
white-space: nowrap;
27+
}
28+
29+
.slider-row {
30+
flex-direction: column;
31+
align-items: flex-start;
32+
gap: 4px;
33+
}
34+
35+
.word-cap-slider {
36+
width: 100%;
37+
}
38+
39+
.config-section h3 {
40+
margin: 0 0 4px 0;
41+
font-size: 1.1em;
42+
font-weight: 500;
43+
}
44+
45+
.config-hint {
46+
margin: 0 0 12px 0;
47+
font-size: 0.85em;
48+
color: var(--text-secondary);
49+
}
50+
51+
.select-all-actions {
52+
display: flex;
53+
gap: 8px;
54+
margin-bottom: 8px;
55+
}
56+
57+
.config-row-label {
58+
display: flex;
59+
align-items: center;
60+
gap: 4px;
61+
}
62+
63+
.config-row-label mat-icon {
64+
font-size: 16px;
65+
width: 16px;
66+
height: 16px;
67+
cursor: pointer;
68+
color: var(--text-secondary);
69+
}
70+
71+
.checkbox-grid {
72+
display: grid;
73+
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
74+
gap: 8px;
75+
}
76+
77+
.search-field {
78+
width: 80%;
79+
margin-bottom: 8px;
80+
}
81+
82+
.activity-list {
83+
display: flex;
84+
flex-direction: column;
85+
gap: 4px;
86+
max-height: 300px;
87+
overflow-y: auto;
88+
padding: 4px 0;
89+
border: 1px solid var(--text-tertiary);
90+
border-radius: 4px;
91+
padding: 8px;
92+
}
93+
94+
.activity-checkbox-label {
95+
display: flex;
96+
flex-direction: column;
97+
}
98+
99+
.activity-name {
100+
font-weight: 500;
101+
}
102+
103+
.activity-meta {
104+
font-size: 0.8em;
105+
color: var(--text-secondary);
106+
}
107+
108+
.references-section {
109+
margin-top: 12px;
110+
}
111+
112+
.references-subtoggle {
113+
display: flex;
114+
gap: 12px;
115+
margin-top: 6px;
116+
margin-left: 28px;
117+
flex-wrap: wrap;
118+
}
119+
120+
mat-divider {
121+
margin: 4px 0;
122+
}
123+
124+
.column-toggle {
125+
border-radius: 999px;
126+
padding: 2px;
127+
border: 1px solid var(--text-tertiary);
128+
background: var(--background-secondary);
129+
}
130+
131+
/* buttons */
132+
.column-toggle .mat-button-toggle {
133+
border-radius: 999px;
134+
border: none;
135+
padding: 0 16px;
136+
color: var(--text-secondary);
137+
background: transparent;
138+
}
139+
140+
/* selected */
141+
.column-toggle .mat-button-toggle-checked {
142+
background: var(--primary-color);
143+
color: var(--text-on-primary);
144+
box-shadow: 0 2px 6px rgba(0,0,0,0.25);
145+
}

0 commit comments

Comments
 (0)