issue-25 #27
@ -5,9 +5,7 @@
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="ChangeListManager">
 | 
			
		||||
    <list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Remove update spamming in console">
 | 
			
		||||
      <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/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/taskgroup/RecursiveTaskgroupInfo.java" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/entities/timemanager/Taskgroup.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/entities/timemanager/Taskgroup.java" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" afterDir="false" />
 | 
			
		||||
    </list>
 | 
			
		||||
    <option name="SHOW_DIALOG" value="false" />
 | 
			
		||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
			
		||||
@ -104,6 +102,7 @@
 | 
			
		||||
      <workItem from="1698298897364" duration="4242000" />
 | 
			
		||||
      <workItem from="1698426430946" duration="665000" />
 | 
			
		||||
      <workItem from="1698474363766" duration="3686000" />
 | 
			
		||||
      <workItem from="1698499063683" duration="646000" />
 | 
			
		||||
    </task>
 | 
			
		||||
    <task id="LOCAL-00001" summary="Structure Taskgroups in Hierarchies">
 | 
			
		||||
      <option name="closed" value="true" />
 | 
			
		||||
 | 
			
		||||
@ -134,7 +134,7 @@ public class ScheduleController {
 | 
			
		||||
        if(scheduleResult.getExitCode() == ServiceExitCode.ENTITY_ALREADY_EXIST) {
 | 
			
		||||
            return ResponseEntity.status(409).body(new SimpleStatusResponse("failed"));
 | 
			
		||||
        } else {
 | 
			
		||||
            return ResponseEntity.ok(new BasicTaskScheduleEntityInfo(scheduleResult.getResult()));
 | 
			
		||||
            return ResponseEntity.ok(new ScheduleInfo(scheduleResult.getResult()));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -532,9 +532,9 @@ export class ScheduleService {
 | 
			
		||||
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
 | 
			
		||||
     * @param reportProgress flag to report request and response progress.
 | 
			
		||||
     */
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<BasicScheduleEntityInfo>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<BasicScheduleEntityInfo>>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<BasicScheduleEntityInfo>>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ScheduleInfo>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ScheduleInfo>>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ScheduleInfo>>;
 | 
			
		||||
    public schedulesTaskIDNowPost(taskID: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {
 | 
			
		||||
        if (taskID === null || taskID === undefined) {
 | 
			
		||||
            throw new Error('Required parameter taskID was null or undefined when calling schedulesTaskIDNowPost.');
 | 
			
		||||
@ -572,7 +572,7 @@ export class ScheduleService {
 | 
			
		||||
            responseType_ = 'text';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return this.httpClient.post<BasicScheduleEntityInfo>(`${this.configuration.basePath}/schedules/${encodeURIComponent(String(taskID))}/now`,
 | 
			
		||||
        return this.httpClient.post<ScheduleInfo>(`${this.configuration.basePath}/schedules/${encodeURIComponent(String(taskID))}/now`,
 | 
			
		||||
            null,
 | 
			
		||||
            {
 | 
			
		||||
                context: localVarHttpContext,
 | 
			
		||||
 | 
			
		||||
@ -39,7 +39,7 @@
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="taskgroup-overview">
 | 
			
		||||
    <app-task-overview [tasks]="tasks"></app-task-overview>
 | 
			
		||||
    <app-task-overview [tasks]="tasks" (onStartNow)="onStartTaskNow($event)"></app-task-overview>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="taskgroup-overview">
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import {Component, OnInit, ViewChild} from '@angular/core';
 | 
			
		||||
import {ScheduleInfo, ScheduleService, TaskOverviewInfo} from "../../api";
 | 
			
		||||
import {BasicScheduleEntityInfo, ScheduleInfo, ScheduleService, TaskOverviewInfo} from "../../api";
 | 
			
		||||
import {ActiveScheduleComponent} from "./active-schedule/active-schedule.component";
 | 
			
		||||
import {StopActiveScheduleInfo} from "./active-schedule/StopActiveScheduleInfo";
 | 
			
		||||
import {TaskOverviewComponent} from "./task-overview/task-overview.component";
 | 
			
		||||
@ -52,4 +52,8 @@ export class DashboardComponent implements OnInit{
 | 
			
		||||
  onSelectTaskgroup(tasks: TaskOverviewInfo[]) {
 | 
			
		||||
    this.tasks = tasks;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onStartTaskNow(schedule: ScheduleInfo) {
 | 
			
		||||
    this.activeScheduleComponent?.activateSchedule(schedule)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@
 | 
			
		||||
    <p class="task-info"><i>Limit: </i>{{task.limit}}</p>
 | 
			
		||||
  </mat-card-content>
 | 
			
		||||
  <mat-card-actions>
 | 
			
		||||
    <button mat-raised-button color="primary" class="btn-without-radius">Start now</button>
 | 
			
		||||
    <button mat-raised-button color="primary" class="btn-without-radius" (click)="startTaskNow(task)">Start now</button>
 | 
			
		||||
    <button mat-raised-button class="yellowBtn btn-without-radius">Schedule</button>
 | 
			
		||||
    <button mat-raised-button class="greenBtn btn-without-radius">Finish</button>
 | 
			
		||||
  </mat-card-actions>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
import {Component, Input} from '@angular/core';
 | 
			
		||||
import {TaskOverviewInfo} from "../../../api";
 | 
			
		||||
import {Component, EventEmitter, Input, Output} from '@angular/core';
 | 
			
		||||
import {BasicScheduleEntityInfo, ScheduleInfo, ScheduleService, TaskOverviewInfo} from "../../../api";
 | 
			
		||||
import {MatSnackBar} from "@angular/material/snack-bar";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-task-overview',
 | 
			
		||||
@ -9,4 +10,32 @@ import {TaskOverviewInfo} from "../../../api";
 | 
			
		||||
export class TaskOverviewComponent {
 | 
			
		||||
 | 
			
		||||
  @Input() tasks: TaskOverviewInfo[] = []
 | 
			
		||||
  @Output('onStartNow') startNowEmitter: EventEmitter<ScheduleInfo> = new EventEmitter<ScheduleInfo>();
 | 
			
		||||
 | 
			
		||||
  constructor(private scheduleService: ScheduleService,
 | 
			
		||||
              private snackbar: MatSnackBar) {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
  startTaskNow(task: TaskOverviewInfo) {
 | 
			
		||||
    this.scheduleService.schedulesTaskIDNowPost(task.taskID).subscribe({
 | 
			
		||||
      next: resp => {
 | 
			
		||||
        this.startNowEmitter.emit(resp);
 | 
			
		||||
      },
 | 
			
		||||
      error: err => {
 | 
			
		||||
        if(err.status == 403) {
 | 
			
		||||
          this.snackbar.open("No permission", "", {duration: 2000});
 | 
			
		||||
        } else if(err.status == 404) {
 | 
			
		||||
          this.snackbar.open("Task not found", "", {duration: 2000});
 | 
			
		||||
        } else if(err.status == 409) {
 | 
			
		||||
          this.snackbar.open("Task is already running", "", {duration: 2000});
 | 
			
		||||
        } else {
 | 
			
		||||
          this.snackbar.open("Unexpected error", "", {duration: 2000});
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  finishTask(task: TaskOverviewInfo) {
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1421,7 +1421,7 @@ paths:
 | 
			
		||||
            application/json:
 | 
			
		||||
              schema:
 | 
			
		||||
                type: object
 | 
			
		||||
                $ref: '#/components/schemas/BasicScheduleEntityInfo'
 | 
			
		||||
                $ref: '#/components/schemas/ScheduleInfo'
 | 
			
		||||
        403:
 | 
			
		||||
          description: No permission
 | 
			
		||||
          content:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user