Layout Design

main
manueltauber 2023-08-07 14:44:07 +02:00
parent b94d9f79a7
commit 7a92c03f3a
5 changed files with 102 additions and 39 deletions

View File

@ -1,40 +1,42 @@
import { NgModule } from '@angular/core'; import {NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser'; import {BrowserModule } from '@angular/platform-browser';
import { MatButtonModule } from '@angular/material/button'; import {MatButtonModule } from '@angular/material/button';
import { AppRoutingModule } from './app-routing.module'; import {AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component'; import {AppComponent } from './app.component';
import { GanttModule, EditService, ToolbarService, SelectionService } from '@syncfusion/ej2-angular-gantt'; import {GanttModule, EditService, ToolbarService, SelectionService } from '@syncfusion/ej2-angular-gantt';
import {MatPaginatorModule} from '@angular/material/paginator'; import {MatPaginatorModule} from '@angular/material/paginator';
import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
import { VirtualScrollService } from '@syncfusion/ej2-angular-gantt'; import {VirtualScrollService } from '@syncfusion/ej2-angular-gantt';
import { SortService } from '@syncfusion/ej2-angular-gantt'; import {SortService } from '@syncfusion/ej2-angular-gantt';
import { FilterService } from '@syncfusion/ej2-angular-gantt'; import {FilterService } from '@syncfusion/ej2-angular-gantt';
import {MatFormFieldModule} from '@angular/material/form-field'; import {MatFormFieldModule} from '@angular/material/form-field';
import {MatSelectModule} from '@angular/material/select'; import {MatSelectModule} from '@angular/material/select';
import { NttGanttComponent } from './ntt-gantt/ntt-gantt.component'; import {NttGanttComponent } from './ntt-gantt/ntt-gantt.component';
import {MatDatepickerModule} from '@angular/material/datepicker'; import {MatDatepickerModule} from '@angular/material/datepicker';
import { FormsModule, ReactiveFormsModule } from '@angular/forms' import {FormsModule, ReactiveFormsModule } from '@angular/forms'
import { MatNativeDateModule } from '@angular/material/core'; import {MatNativeDateModule } from '@angular/material/core';
import {HttpClientModule} from '@angular/common/http'; import {HttpClientModule} from '@angular/common/http';
import { StateDialogComponent } from './state-dialog/state-dialog.component' import {StateDialogComponent } from './state-dialog/state-dialog.component'
import { MatDialogModule } from '@angular/material/dialog'; import {MatDialogModule } from '@angular/material/dialog';
import {MatProgressBarModule} from '@angular/material/progress-bar'; import {MatProgressBarModule} from '@angular/material/progress-bar';
import {MatRadioModule} from '@angular/material/radio'; import {MatRadioModule} from '@angular/material/radio';
import {MatSnackBarModule} from '@angular/material/snack-bar'; import {MatSnackBarModule} from '@angular/material/snack-bar';
import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {MatSlideToggleModule} from '@angular/material/slide-toggle';
import { ImplementerDialogComponent } from './implementer-dialog/implementer-dialog.component'; import {ImplementerDialogComponent } from './implementer-dialog/implementer-dialog.component';
import {MatExpansionModule} from '@angular/material/expansion'; import {MatExpansionModule} from '@angular/material/expansion';
import {MatInputModule} from '@angular/material/input'; import {MatInputModule} from '@angular/material/input';
import {MatCheckboxModule} from '@angular/material/checkbox'; import {MatCheckboxModule} from '@angular/material/checkbox';
import {MatButtonToggleModule} from '@angular/material/button-toggle';
import {MatAutocompleteModule} from '@angular/material/autocomplete'; import {MatAutocompleteModule} from '@angular/material/autocomplete';
import { MultiselectAutocompleteComponent } from './multiselect-autocomplete/multiselect-autocomplete.component';
import { MultiselectAutocompleteComponent} from './multiselect-autocomplete/multiselect-autocomplete.component';
import {MatChipsModule} from '@angular/material/chips'; import {MatChipsModule} from '@angular/material/chips';
import {MatIconModule} from '@angular/material/icon'; import {MatIconModule} from '@angular/material/icon';
import { FilterDialogComponent } from './filter-dialog/filter-dialog.component'; import {FilterDialogComponent} from './filter-dialog/filter-dialog.component';
import {ScrollingModule} from '@angular/cdk/scrolling'; import {ScrollingModule} from '@angular/cdk/scrolling';
import { MomentDateModule } from '@angular/material-moment-adapter'; import {MomentDateModule} from '@angular/material-moment-adapter';
import { PlanTimeBarComponent } from './plan-time-bar/plan-time-bar.component'; import {PlanTimeBarComponent} from './plan-time-bar/plan-time-bar.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -72,7 +74,8 @@ import { PlanTimeBarComponent } from './plan-time-bar/plan-time-bar.component';
MatChipsModule, MatChipsModule,
MatIconModule, MatIconModule,
ScrollingModule, ScrollingModule,
MomentDateModule MomentDateModule,
MatButtonToggleModule
], ],

View File

@ -41,6 +41,8 @@ export class LanguageService {
this.enMap.set('language', 'Language'); this.enMap.set('language', 'Language');
this.deMap.set('clearFilter', 'Filter Löschen'); this.deMap.set('clearFilter', 'Filter Löschen');
this.enMap.set('clearFilter', 'Clear Filter'); this.enMap.set('clearFilter', 'Clear Filter');
this.deMap.set('nttGanttFilterButton', 'Filtern');
this.enMap.set('nttGanttFilterButton', 'Filter');
this.deMap.set('tooltipSummary', 'Name'); this.deMap.set('tooltipSummary', 'Name');
this.enMap.set('tooltipSummary', 'Name'); this.enMap.set('tooltipSummary', 'Name');

View File

@ -12,8 +12,9 @@
#topbar { #topbar {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin: 15px 0; margin: 0px 0;
align-items: flex-start; align-items: flex-start;
height: 5%;
} }
@ -37,3 +38,46 @@
.checkbox{ .checkbox{
margin: 0 0.5%; margin: 0 0.5%;
} }
.scalarContainer{
margin-left: 0.5%;
margin-right: 0.5%;
}
.filterButton{
margin-right: 0.5%;
}
::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
background-color: #d56100;
}
::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
background-color: #d56100;
}
/* .mat-button-toggle{
background-color: #306cee;
color: #ffffff;
}
.mat-button-toggle:hover {
background-color: transparent;
color: #1100ff !important;
} */
.mat-button-toggle-checked {
background-color: #d56100;
}
::ng-deep .mat-calendar{
background: white;
}
::ng-deep .mat-calendar-body-label{
/* color: white; */
}
::ng-deep .mat-calendar-cell-content{
color: #d56100;
}

View File

@ -1,5 +1,5 @@
<div id="topbar"> <div id="topbar">
<mat-form-field appearance="fill"> <mat-form-field class="datePicker" appearance="fill">
<mat-label>{{languageService.lMap.get('dateRangeLabel')}}</mat-label> <mat-label>{{languageService.lMap.get('dateRangeLabel')}}</mat-label>
<mat-date-range-input [formGroup]="range" [rangePicker]="picker"> <mat-date-range-input [formGroup]="range" [rangePicker]="picker">
<input matStartDate formControlName="start" placeholder="Start date" (dateChange)="startDateChanged($event)"> <input matStartDate formControlName="start" placeholder="Start date" (dateChange)="startDateChanged($event)">
@ -14,7 +14,7 @@
</mat-form-field> </mat-form-field>
<mat-radio-group <!-- <mat-radio-group
(change)="changeScalar()" (change)="changeScalar()"
aria-labelledby="example-radio-group-label" aria-labelledby="example-radio-group-label"
class="example-radio-group" class="example-radio-group"
@ -22,16 +22,26 @@
<mat-radio-button color="primary" class="example-radio-button" *ngFor="let scalar of scalars" [value]="scalar" > <mat-radio-button color="primary" class="example-radio-button" *ngFor="let scalar of scalars" [value]="scalar" >
{{scalar}} {{scalar}}
</mat-radio-button> </mat-radio-button>
</mat-radio-group> </mat-radio-group> -->
<!-- <p>Selected range: {{range.value | json}}</p> --> <div class="scalarContainer">
<div class="toggleContainer"> <mat-button-toggle-group (change)="changeScalar()" name="fontStyle" aria-label="Font Style" [(ngModel)]="selectedScalar">
<mat-button-toggle value="bold"*ngFor="let scalar of scalars" [value]="scalar">
{{scalar}}
</mat-button-toggle>
</mat-button-toggle-group>
<br>
<mat-slide-toggle color="primary" [(ngModel)]="showDetails" [checked]="showDetails" (change)="refreshData()">{{languageService.lMap.get('detailButton')}}</mat-slide-toggle> <mat-slide-toggle color="primary" [(ngModel)]="showDetails" [checked]="showDetails" (change)="refreshData()">{{languageService.lMap.get('detailButton')}}</mat-slide-toggle>
<br>
</div>
<!-- <p>Selected range: {{range.value | json}}</p> -->
<!-- <div class="toggleContainer">
<mat-slide-toggle [disabled]="filters == null" (change)="refreshData()" color="primary" [(ngModel)]="filterEnabled" [checked]="filterEnabled" (change)="applyFilter()">{{languageService.lMap.get('filterButton')}}</mat-slide-toggle> <mat-slide-toggle [disabled]="filters == null" (change)="refreshData()" color="primary" [(ngModel)]="filterEnabled" [checked]="filterEnabled" (change)="applyFilter()">{{languageService.lMap.get('filterButton')}}</mat-slide-toggle>
<mat-slide-toggle color="primary" [(ngModel)]="sortEnabled" [checked]="sortEnabled" >{{languageService.lMap.get('sortButton')}}</mat-slide-toggle> <mat-slide-toggle color="primary" [(ngModel)]="sortEnabled" [checked]="sortEnabled" >{{languageService.lMap.get('sortButton')}}</mat-slide-toggle>
<button mat-icon-button aria-label="clear Filters and Sort" (click)="clearFilter()">
{{languageService.lMap.get('clearFilter')}}<mat-icon>clear_all</mat-icon> </div> -->
</button>
</div>
@ -43,14 +53,18 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div>
<button style="justify-content: flex-end;" mat-icon-button aria-label="Filtern" (click)="openFilterDialog()"> <br>
<mat-icon>filter_list</mat-icon> <div>
<button mat-raised-button class="filterButton" aria-label="Filtern" (click)="openFilterDialog()">
{{languageService.lMap.get('nttGanttFilterButton')}} <mat-icon>filter_list</mat-icon>
</button>
<button [disabled]="filterEnabled" mat-icon-button aria-label="clear Filters and Sort" (click)="clearFilter()">
{{languageService.lMap.get('clearFilter')}} <mat-icon>close</mat-icon>
</button> </button>
</div> </div>
<div <div
*ngIf="!this.showNoResultsError" id="showSpin" data-bind="visible: spin" *ngIf="!this.showNoResultsError" id="showSpin" data-bind="visible: spin"
style=" position: absolute; top: auto; left: 45%;"> style=" position: absolute; top: auto; left: 45%;">

View File

@ -335,12 +335,12 @@ export class NttGanttComponent implements OnInit {
initLanguge(initial: boolean = false){ initLanguge(initial: boolean = false){
if(this.languageService.language == 'DE'){ if(this.languageService.language == 'DE'){
this.scalars = ['Woche-Tag', 'Monat-Woche', 'Jahr-Monat']; this.scalars = ['Woche', 'Monat', 'Jahr'];
this.selectedScalar = 'Monat-Woche'; this.selectedScalar = 'Monat';
} }
else{ else{
this.scalars = ['Week-Day', 'Month-Week', 'Year-Month']; this.scalars = ['Week', 'Month', 'Year'];
this.selectedScalar = 'Month-Week'; this.selectedScalar = 'Month';
} }
this.columns = this.languageService.getColumns(); this.columns = this.languageService.getColumns();