issue-25 #27
@ -4,12 +4,7 @@
 | 
				
			|||||||
    <option name="autoReloadType" value="SELECTIVE" />
 | 
					    <option name="autoReloadType" value="SELECTIVE" />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="ChangeListManager">
 | 
					  <component name="ChangeListManager">
 | 
				
			||||||
    <list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Removed unused TaskgroupShortInfo.java">
 | 
					    <list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Fix Foreign Key Constraint Fail when deleting Taskgroups" />
 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/repositories/timemanager/BasicTaskScheduleRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/repositories/timemanager/BasicTaskScheduleRepository.java" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/services/TaskScheduleService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/services/TaskScheduleService.java" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/services/TaskService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/services/TaskService.java" afterDir="false" />
 | 
					 | 
				
			||||||
    </list>
 | 
					 | 
				
			||||||
    <option name="SHOW_DIALOG" value="false" />
 | 
					    <option name="SHOW_DIALOG" value="false" />
 | 
				
			||||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
					    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
				
			||||||
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
					    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
				
			||||||
@ -99,7 +94,7 @@
 | 
				
			|||||||
      <workItem from="1698067098771" duration="4770000" />
 | 
					      <workItem from="1698067098771" duration="4770000" />
 | 
				
			||||||
      <workItem from="1698127431684" duration="2039000" />
 | 
					      <workItem from="1698127431684" duration="2039000" />
 | 
				
			||||||
      <workItem from="1698164397550" duration="2329000" />
 | 
					      <workItem from="1698164397550" duration="2329000" />
 | 
				
			||||||
      <workItem from="1698246651541" duration="766000" />
 | 
					      <workItem from="1698246651541" duration="1537000" />
 | 
				
			||||||
    </task>
 | 
					    </task>
 | 
				
			||||||
    <task id="LOCAL-00001" summary="Structure Taskgroups in Hierarchies">
 | 
					    <task id="LOCAL-00001" summary="Structure Taskgroups in Hierarchies">
 | 
				
			||||||
      <option name="closed" value="true" />
 | 
					      <option name="closed" value="true" />
 | 
				
			||||||
@ -165,7 +160,15 @@
 | 
				
			|||||||
      <option name="project" value="LOCAL" />
 | 
					      <option name="project" value="LOCAL" />
 | 
				
			||||||
      <updated>1698168406655</updated>
 | 
					      <updated>1698168406655</updated>
 | 
				
			||||||
    </task>
 | 
					    </task>
 | 
				
			||||||
    <option name="localTasksCounter" value="9" />
 | 
					    <task id="LOCAL-00009" summary="Fix Foreign Key Constraint Fail when deleting Taskgroups">
 | 
				
			||||||
 | 
					      <option name="closed" value="true" />
 | 
				
			||||||
 | 
					      <created>1698247531000</created>
 | 
				
			||||||
 | 
					      <option name="number" value="00009" />
 | 
				
			||||||
 | 
					      <option name="presentableId" value="LOCAL-00009" />
 | 
				
			||||||
 | 
					      <option name="project" value="LOCAL" />
 | 
				
			||||||
 | 
					      <updated>1698247531000</updated>
 | 
				
			||||||
 | 
					    </task>
 | 
				
			||||||
 | 
					    <option name="localTasksCounter" value="10" />
 | 
				
			||||||
    <servers />
 | 
					    <servers />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="TypeScriptGeneratedFilesManager">
 | 
					  <component name="TypeScriptGeneratedFilesManager">
 | 
				
			||||||
@ -182,7 +185,8 @@
 | 
				
			|||||||
    <MESSAGE value="Delete Schedules" />
 | 
					    <MESSAGE value="Delete Schedules" />
 | 
				
			||||||
    <MESSAGE value="Deliver Schedule Path Info when fetching Schedules" />
 | 
					    <MESSAGE value="Deliver Schedule Path Info when fetching Schedules" />
 | 
				
			||||||
    <MESSAGE value="Removed unused TaskgroupShortInfo.java" />
 | 
					    <MESSAGE value="Removed unused TaskgroupShortInfo.java" />
 | 
				
			||||||
    <option name="LAST_COMMIT_MESSAGE" value="Removed unused TaskgroupShortInfo.java" />
 | 
					    <MESSAGE value="Fix Foreign Key Constraint Fail when deleting Taskgroups" />
 | 
				
			||||||
 | 
					    <option name="LAST_COMMIT_MESSAGE" value="Fix Foreign Key Constraint Fail when deleting Taskgroups" />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="XDebuggerManager">
 | 
					  <component name="XDebuggerManager">
 | 
				
			||||||
    <breakpoint-manager>
 | 
					    <breakpoint-manager>
 | 
				
			||||||
 | 
				
			|||||||
@ -62,6 +62,7 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
 | 
				
			|||||||
import {MatSelectModule} from "@angular/material/select";
 | 
					import {MatSelectModule} from "@angular/material/select";
 | 
				
			||||||
import { BasicSchedulerComponent } from './schedules/basic-scheduler/basic-scheduler.component';
 | 
					import { BasicSchedulerComponent } from './schedules/basic-scheduler/basic-scheduler.component';
 | 
				
			||||||
import { ScheduleDashboardComponent } from './schedules/schedule-dashboard/schedule-dashboard.component';
 | 
					import { ScheduleDashboardComponent } from './schedules/schedule-dashboard/schedule-dashboard.component';
 | 
				
			||||||
 | 
					import { DashboardComponent } from './dashboard/dashboard.component';
 | 
				
			||||||
@NgModule({
 | 
					@NgModule({
 | 
				
			||||||
  declarations: [
 | 
					  declarations: [
 | 
				
			||||||
    AppComponent,
 | 
					    AppComponent,
 | 
				
			||||||
@ -88,7 +89,8 @@ import { ScheduleDashboardComponent } from './schedules/schedule-dashboard/sched
 | 
				
			|||||||
    TaskDetailOverviewComponent,
 | 
					    TaskDetailOverviewComponent,
 | 
				
			||||||
    SchedulerComponent,
 | 
					    SchedulerComponent,
 | 
				
			||||||
    BasicSchedulerComponent,
 | 
					    BasicSchedulerComponent,
 | 
				
			||||||
    ScheduleDashboardComponent
 | 
					    ScheduleDashboardComponent,
 | 
				
			||||||
 | 
					    DashboardComponent
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  imports: [
 | 
					  imports: [
 | 
				
			||||||
    BrowserModule,
 | 
					    BrowserModule,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										94
									
								
								frontend/src/app/dashboard/dashboard.component.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								frontend/src/app/dashboard/dashboard.component.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,94 @@
 | 
				
			|||||||
 | 
					.container {
 | 
				
			||||||
 | 
					  margin: 20px auto;
 | 
				
			||||||
 | 
					  width: 70%;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.spacer {
 | 
				
			||||||
 | 
					  margin-bottom: 2.5%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@media screen and (max-width: 600px) {
 | 
				
			||||||
 | 
					  .container {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    margin: 20px 10px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.today-worked-info {
 | 
				
			||||||
 | 
					  margin-left: 20px;
 | 
				
			||||||
 | 
					  background-color: #e1e1e1;
 | 
				
			||||||
 | 
					  padding-right: 5px;
 | 
				
			||||||
 | 
					  padding-left: 5px;
 | 
				
			||||||
 | 
					  border-radius: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.red-card {
 | 
				
			||||||
 | 
					  background-color: #e54c3c;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.green-card {
 | 
				
			||||||
 | 
					  background-color: #00bc8c;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.main-container {
 | 
				
			||||||
 | 
					  width: 45%;
 | 
				
			||||||
 | 
					  margin-right: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.btn-link {
 | 
				
			||||||
 | 
					  text-decoration: underline;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  margin-left: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.dashboard-heading {
 | 
				
			||||||
 | 
					  margin-top: 20px;
 | 
				
			||||||
 | 
					  font-size: 2.5em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.today-worked-info {
 | 
				
			||||||
 | 
					  font-size: .8em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.lightBlueBtn {
 | 
				
			||||||
 | 
					  background-color: #3498db;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.grayBtn {
 | 
				
			||||||
 | 
					  background-color: #444444;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  border-radius: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::ng-deep .mat-mdc-list-base {
 | 
				
			||||||
 | 
					  --mdc-list-list-item-label-text-color: white
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::ng-deep .mat-mdc-list-base .taskgroup-btn, ::ng-deep .mat-mdc-list-base .taskgroup-last-btn  {
 | 
				
			||||||
 | 
					  --mdc-list-list-item-label-text-color: black
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.taskgroup-overview {
 | 
				
			||||||
 | 
					  width: 25%;
 | 
				
			||||||
 | 
					  float: right;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.spacer {
 | 
				
			||||||
 | 
					  flex: 1 1 auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.taskgroup-btn {
 | 
				
			||||||
 | 
					  background-color: #f3f3f3;
 | 
				
			||||||
 | 
					  border: 0 solid #000000;
 | 
				
			||||||
 | 
					  border-bottom-width: 1px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.taskgroup-last-btn {
 | 
				
			||||||
 | 
					  background-color: #f3f3f3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										34
									
								
								frontend/src/app/dashboard/dashboard.component.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								frontend/src/app/dashboard/dashboard.component.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					<div class="container">
 | 
				
			||||||
 | 
					  <div class="main-container">
 | 
				
			||||||
 | 
					    <mat-card *ngIf="missedSchedules" class="red-card">
 | 
				
			||||||
 | 
					      <mat-card-content>
 | 
				
			||||||
 | 
					        <p>There are missed schedules. Please reschedule them.</p>
 | 
				
			||||||
 | 
					        <a class="btn-link" routerLink="/">Reschedule</a>
 | 
				
			||||||
 | 
					      </mat-card-content>
 | 
				
			||||||
 | 
					    </mat-card>
 | 
				
			||||||
 | 
					    <h1 class="dashboard-heading">Now<b class="today-worked-info">Today: 0 min</b></h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <mat-card class="green-card" *ngIf="!taskRunning">
 | 
				
			||||||
 | 
					      <mat-card-content>
 | 
				
			||||||
 | 
					        <p>Currently there is no task in progress.</p>
 | 
				
			||||||
 | 
					        <a class="btn-link" routerLink="/">Did you forget to start an activity?</a>
 | 
				
			||||||
 | 
					      </mat-card-content>
 | 
				
			||||||
 | 
					    </mat-card>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <h1 class="dashboard-heading">Scheduled for today</h1>
 | 
				
			||||||
 | 
					    <mat-card class="green-card" *ngIf="schedules.length == 0">
 | 
				
			||||||
 | 
					      <mat-card-content>
 | 
				
			||||||
 | 
					        <p>There is no scheduled Task for today</p>
 | 
				
			||||||
 | 
					      </mat-card-content>
 | 
				
			||||||
 | 
					    </mat-card>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <span class="spacer"></span>
 | 
				
			||||||
 | 
					  <div class="taskgroup-overview">
 | 
				
			||||||
 | 
					      <mat-action-list>
 | 
				
			||||||
 | 
					        <button mat-list-item class="lightBlueBtn">Manage Taskgroups</button>
 | 
				
			||||||
 | 
					        <button mat-list-item class="taskgroup-btn">Algorithmen II</button>
 | 
				
			||||||
 | 
					        <button mat-list-item class="taskgroup-last-btn">Computer Grafik</button>
 | 
				
			||||||
 | 
					      </mat-action-list>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										21
									
								
								frontend/src/app/dashboard/dashboard.component.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								frontend/src/app/dashboard/dashboard.component.spec.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					import { ComponentFixture, TestBed } from '@angular/core/testing';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { DashboardComponent } from './dashboard.component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('DashboardComponent', () => {
 | 
				
			||||||
 | 
					  let component: DashboardComponent;
 | 
				
			||||||
 | 
					  let fixture: ComponentFixture<DashboardComponent>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    TestBed.configureTestingModule({
 | 
				
			||||||
 | 
					      declarations: [DashboardComponent]
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    fixture = TestBed.createComponent(DashboardComponent);
 | 
				
			||||||
 | 
					    component = fixture.componentInstance;
 | 
				
			||||||
 | 
					    fixture.detectChanges();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should create', () => {
 | 
				
			||||||
 | 
					    expect(component).toBeTruthy();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										14
									
								
								frontend/src/app/dashboard/dashboard.component.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								frontend/src/app/dashboard/dashboard.component.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					import { Component } from '@angular/core';
 | 
				
			||||||
 | 
					import {ScheduleInfo} from "../../api";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Component({
 | 
				
			||||||
 | 
					  selector: 'app-dashboard',
 | 
				
			||||||
 | 
					  templateUrl: './dashboard.component.html',
 | 
				
			||||||
 | 
					  styleUrls: ['./dashboard.component.css']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					export class DashboardComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  missedSchedules: boolean = true
 | 
				
			||||||
 | 
					  taskRunning: boolean = false
 | 
				
			||||||
 | 
					  schedules: ScheduleInfo[] = []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					<app-dashboard></app-dashboard>
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user