Commit ae05a203 authored by hasan khaddour's avatar hasan khaddour

تعديل

parent ea758d92
......@@ -29,7 +29,7 @@
<div class="d-flex align-items-center">
<div class="text-center">
<div class="circle circle-md bg-secondary">
<span class="fe fe-users fe-16 text-white"></span>
<span class="fe fe-paperclip fe-16 text-white"></span>
</div>
</div>
......@@ -66,11 +66,15 @@
</div>
<div class="col-md-6 col-lg-4" (click)="onChangeManger()">
<div class="col-md-6 col-lg-4"
(click)="onChangeManger()"
*ngIf="canSee()"
>
<div class="card shadow mb-4">
<div class="card-body file-list">
<div class="d-flex align-items-center">
<div class="circle circle-md bg-secondary">
<div class="circle circle-md bg-danger">
<span class="fe fe-map fe-16 text-white"></span>
</div>
<div class="flex-fill ml-4 fname">
......@@ -81,11 +85,14 @@
</div> <!-- .card -->
</div>
<div class="col-md-6 col-lg-4" (click)="onChangeLeader()">
<div class="col-md-6 col-lg-4"
*ngIf="canSee()"
(click)="onChangeLeader()">
<div class="card shadow mb-4">
<div class="card-body file-list">
<div class="d-flex align-items-center">
<div class="circle circle-md bg-secondary">
<div class="circle circle-md bg-danger ">
<span class="fe fe-map fe-16 text-white"></span>
</div>
<div class="flex-fill ml-4 fname">
......
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { Project } from '../../../models/responses/project';
import { UserService } from '../../../../core/services/authentication/user.service';
import { ROLES } from '../../../../core/constants/roles';
@Component({
selector: 'info-controll',
......@@ -7,10 +9,14 @@ import { Project } from '../../../models/responses/project';
styleUrl: './info-controll.component.css'
})
export class InfoControllComponent {
@Input() project : Project
@Output() changeLeader = new EventEmitter<void>()
@Output() changeManager = new EventEmitter<void>()
constructor(
private userService : UserService
){}
onChangeManger(){
this.changeManager.emit();
......@@ -18,5 +24,9 @@ export class InfoControllComponent {
onChangeLeader(){
this.changeLeader.emit();
}
canSee(): boolean {
return this.userService.hasRole(ROLES.SCIENTIFIC_DEPUTY)
}
}
......@@ -3,7 +3,7 @@
<ul class="d-flex align-items-center">
<li class="nav-item d-block d-lg-none">
<a class="nav-link nav-icon search-bar-toggle " href="#">
<a class="nav-link nav-icon search-bar-toggle ">
<i class="fe fe-search"></i>
</a>
</li><!-- End Search Icon-->
......@@ -61,7 +61,7 @@
<a href="index.html" class="logo d-flex align-items-center justify-content-evenly pl-10">
<span class="d-none d-lg-block">نظام إدارة حالة المشاريع</span>
<span class="d-none d-lg-block">{{appName}}</span>
<img src="assets/images/logo/logo.ico" alt="">
</a>
......
......@@ -5,6 +5,7 @@ import { Router, RouterLink } from '@angular/router';
import { UserService } from '../../../core/services/authentication/user.service';
import { ToastrService } from 'ngx-toastr';
import { AuthenticationService } from '../../../core/services/authentication/authentication.service';
import { ConfigurationService } from '../../../core/services/configuration/configuration.service';
@Component({
selector: 'app-header',
......@@ -16,6 +17,7 @@ export class HeaderComponent implements OnInit {
@Input() isToggled :Boolean;
appName =ConfigurationService.AppName
fullName :string
email : string
constructor(
......
......@@ -57,7 +57,7 @@
<li class="nav-item" *ngIf="hasRole(alroles.SCIENTIFIC_DEPUTY)">
<a [routerLink]="['/projects/create']" class="nav-link collapsed">
<i class="bi fe-plus"></i><span>طرح مشروع</span>
<i class="fe fe-plus"></i><span>طرح مشروع</span>
</a>
</li>
<li class="nav-item" *ngIf="hasRole(alroles.SCIENTIFIC_DEPUTY)">
......@@ -66,7 +66,7 @@
[queryParams]="{ listType: 'all' }"
class="nav-link collapsed"
>
<i class="bi bi-circle"></i><span>استعراض المشاريع</span>
<i class="fe fe-clipboard"></i><span>استعراض المشاريع</span>
</a>
</li>
<li class="nav-item">
......@@ -75,7 +75,7 @@
[queryParams]="{ listType: 'managed' }"
class="nav-link collapsed"
>
<i class="bi bi-circle"></i><span>المشاريع التي أديرها</span>
<i class="fe fe-briefcase"></i><span>المشاريع التي أديرها</span>
</a>
</li>
<li class="nav-item">
......@@ -84,7 +84,7 @@
[queryParams]="{ listType: 'leaded' }"
class="nav-link collapsed"
>
<i class="bi bi-circle"></i><span>المشاريع التي أرأسها</span>
<i class=" fe fe-briefcase"></i><span>المشاريع التي أرأسها</span>
</a>
</li>
......@@ -92,30 +92,30 @@
<li [routerLink]="['/employees/participates', id]" class="nav-item">
<a class="nav-link collapsed">
<i class="bi bi-layout-text-window-reverse"></i
><span>استعراض مساهماتي</span><i class="bi bi-chevron-down ms-auto"></i>
<i class="fe fe-folder"></i
><span>استعراض مساهماتي</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link collapsed" [routerLink]="['/employees/profile']">
<i class="bi bi-layout-text-window-reverse"></i><span>ملفي الشخصي</span
><i class="bi bi-chevron-down ms-auto"></i>
<i class="fe fe-compass"></i><span>ملفي الشخصي</span
>
</a>
</li>
<li class="nav-heading">متفرقات</li>
<li class="nav-item">
<a [routerLink]="['/Project-FAQ']" class="nav-link collapsed">
<i class="bi bi-layout-text-window-reverse"></i
><span>ملامح المشروع</span><i class="bi bi-chevron-down ms-auto"></i>
<i class="fe fe-target"></i
><span>ملامح المشروع</span>
</a>
</li>
<li class="nav-item">
<a [routerLink]="['/Help']" class="nav-link collapsed">
<i class="bi bi-layout-text-window-reverse"></i><span>مساعدة</span
><i class="bi bi-chevron-down ms-auto"></i>
<i class="fe fe-codepen"></i><span>مساعدة</span
>
</a>
</li>
</ul>
......
<div class="modal modal-md fade" id="addEmployeeTrackModal" tabindex="-1" aria-labelledby="addEmployeeTrackModalLable" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addEmployeeTrackModalLable">إضافة متابعة مشارك</h5>
<button type="button" class="mr-4 ml-4 btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<button type="button" class="mr-4 ml-4 btn-close" (click)="closeModal()"></button>
</div>
<div class="modal-body">
<form [formGroup]="stepTrackForm" (ngSubmit)="onSubmit()">
......@@ -21,12 +18,6 @@
</div>
<input type="number" hidden id="id" formControlName="id" class="form-control" >
<div class="mb-3 col-6">
<label for="notes" class="form-label">الملاحظات</label>
<input type="text" id="notes" formControlName="notes" class="form-control">
</div>
</div>
<div class="row">
<div class="mb-3 col-4">
<label for="assignedWork" class="form-label">العمل المسند</label>
......@@ -38,6 +29,15 @@
<input id="performedWork" formControlName="performedWork" class="form-control" >
</div>
</div>
<div class="row">
<div class="mb-3 col-8">
<label for="notes" class="form-label">الملاحظات</label>
<textarea
cols="4"
type="text" id="notes" formControlName="notes" class="form-control">
</textarea>
</div>
<div class="mb-3 col-4">
<label for="assignedWorkEnd" class="form-label">تاريخ تنفيذ العمل المسند</label>
<input type="date" id="assignedWorkEnd" formControlName="assignedWorkEnd" class="form-control" >
......@@ -61,11 +61,8 @@
</div>
<button type="submit" class="btn mr-4 ml-4 btn-primary" [disabled]="!stepTrackForm.valid">إضافة</button>
<div data-bs-dismiss="modal" aria-label="Close" class=" mr-4 ml-4 btn btn-primary" >إلغاء</div>
<div (click)="closeModal()" class=" mr-4 ml-4 btn btn-primary" >إلغاء</div>
</form>
</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -11,7 +11,8 @@ import { ProjectService } from '../../../../projects/services/project.service';
import { EmployeeParticipate } from '../../../../employees/models/responses/employeeParticipate';
import { EmployeeTrack } from '../../../models/responses/employeeTrack';
import { FullnamePipe } from '../../../../shared/pipes/fullName/fullname.pipe';
import { NgbTypeaheadSelectItemEvent } from '@ng-bootstrap/ng-bootstrap';
import { NgbActiveModal, NgbTypeaheadSelectItemEvent } from '@ng-bootstrap/ng-bootstrap';
import { TrackService } from '../../../services/track.service';
@Component({
selector: 'add-employee-track-modal',
......@@ -19,7 +20,7 @@ import { NgbTypeaheadSelectItemEvent } from '@ng-bootstrap/ng-bootstrap';
styleUrl: './add-employee-track-modal.component.css'
})
export class AddEmployeeTrackModalComponent {
@Input() isVisible = false;
participants: EmployeeParticipate[] = []; // All steps available for the project
@Input() trackedParticipants: EmployeeTrack[] = []; // Steps that are already tracked
@Input() projectId :number
......@@ -30,8 +31,11 @@ export class AddEmployeeTrackModalComponent {
filteredParticipants: Employee[] = [];
constructor(private fb: FormBuilder,
private projectService : ProjectService
constructor(
private fb: FormBuilder,
private projectService : ProjectService ,
private activeModal : NgbActiveModal,
private trackService :TrackService
) {
this.stepTrackForm = this.fb.group({
id: [],
......@@ -128,9 +132,21 @@ export class AddEmployeeTrackModalComponent {
};
this
.trackService
.addEmployeeTrack(newEmployeeTrack)
.subscribe({
next:(data)=>{
this.activeModal.close({data:data ,request:newEmployeeTrack})
},
error:(e)=>{
this.activeModal.close();
}
this.closeModal();
this.addEmployeeTrack.emit(newEmployeeTrack);
})
}
......@@ -138,11 +154,8 @@ export class AddEmployeeTrackModalComponent {
}
closeModal(): void {
const modal = document.getElementById('addEmployeeTrackModal');
if (modal) {
const bootstrapModal = new Modal(modal);
bootstrapModal.hide();
}
this.activeModal.close();
}
......
<div class="modal fade" id="addStepTrackModal" tabindex="-1" aria-labelledby="addStepTrackModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<div class="modal-header">
<h5 class="modal-title" id="addStepTrackModalLabel">إضافة متابعة مرحلة</h5>
<button type="button" class=" mr-4 ml-4 btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<button type="button" class=" mr-4 ml-4 btn-close" (click)="closeModal()"></button>
</div>
<div class="modal-body">
<form [formGroup]="stepTrackForm" (ngSubmit)="onSubmit()">
<div class="mb-3">
<label for="stepName" class="form-label">اسم المرحلة</label>
<input type="text" id="stepName" formControlName="stepName" class="form-control" [ngbTypeahead]="search" (selectItem)="onStepSelected($event.item)">
<input type="text" id="stepName" formControlName="stepName" class="form-control"
[ngbTypeahead]="search" (selectItem)="onStepSelected($event.item)">
</div>
<input type="number" hidden id="id" formControlName="id" class="form-control" >
<input type="number" hidden id="iddsfdsf" formControlName="stepName1" class="form-control" >
<div class="mb-3">
<label for="executionState" class="form-label">طبيعية التنفيذ</label>
<input type="text" id="executionState" formControlName="executionState" class="form-control">
......@@ -23,10 +23,8 @@
<input type="number" id="trackExecutionRatio" formControlName="trackExecutionRatio" class="form-control" min="0" max="100">
</div>
<button type="submit" class="btn mr-4 ml-4 btn-primary" [disabled]="!stepTrackForm.valid">إضافة</button>
<button data-bs-dismiss="modal" aria-label="Close" class="btn mr-4 ml-4 btn-primary" >إلغاء</button>
<button (click)="closeModal()" class="btn mr-4 ml-4 btn-primary" >إلغاء</button>
</form>
</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -18,6 +18,7 @@ import { StepService } from '../../../../projects/services/step.service';
styleUrl: './add-step-track-modal.component.css'
})
export class AddStepTrackModalComponent {
@Input() isVisible = false;
steps: Step[] = []; // All steps available for the project
@Input() trackedSteps: Step[] = []; // Steps that are already tracked
......@@ -30,13 +31,16 @@ export class AddStepTrackModalComponent {
constructor(private fb: FormBuilder,
private stepService : StepService ,
private toastr :ToastrService
private trackService : TrackService,
private toastr :ToastrService,
private activeModal :NgbActiveModal
) {}
ngOnInit(): void {
this.stepTrackForm = this.fb.group({
id: [],
stepName: ['', Validators.required],
stepName1: [''],
executionState: ['', Validators.required],
trackExecutionRatio: [0, [Validators.required, Validators.min(0), Validators.max(100)]],
});
......@@ -61,12 +65,14 @@ export class AddStepTrackModalComponent {
search = (text$: Observable<string>) =>
text$.pipe(
map(term => term.length < 2 ? [] :
this.filteredSteps.filter(v => v.stepInfo.stepName.toLowerCase().includes(term.toLowerCase())).slice(0, 10).map( e => e.stepInfo.stepName))
this.filteredSteps.filter(v => v.stepInfo.stepName.toLowerCase().includes(term.toLowerCase())).slice(0, 10).map( e =>{ this.stepTrackForm.patchValue({ id: e.id });return e.stepInfo.stepName +" % "+ e.currentCompletionRatio}))
);
onStepSelected(step: Step): void {
this.stepTrackForm.patchValue({ stepName: step.stepInfo?.stepName });
debugger
// this.stepTrackForm.patchValue({ stepName1: step.stepInfo?.stepName });
//this.stepTrackForm.patchValue({id: step.id});
......@@ -75,8 +81,7 @@ export class AddStepTrackModalComponent {
onSubmit(): void {
if (this.stepTrackForm.valid) {
debugger
const selectedStep = this.filteredSteps.find(step => step.stepInfo.stepName == this.stepTrackForm.value.stepName);
const selectedStep = this.filteredSteps.find(step => step.id == this.stepTrackForm.value.id);
if (selectedStep) {
if(selectedStep.currentCompletionRatio + this.stepTrackForm.value.trackExecutionRatio > 100){
this.toastr.error('نسبة التنفيذ غير صحيحة ')
......@@ -88,11 +93,21 @@ export class AddStepTrackModalComponent {
stepId: selectedStep.id,
trackId: this.trackId,
executionState: this.stepTrackForm.value.executionState,
trackExecutionRatio: this.stepTrackForm.value.trackExecutionRatio,
};
this.closeModal();
this.addStepTrack.emit(newStepTrack);
this
.trackService
.addStepTrack(newStepTrack)
.subscribe({
next:()=>{
this.activeModal.close({data : newStepTrack.stepId,request:newStepTrack})
},
error:(err)=>{
this.toastr.error('لقد حدث خطاء')
this.activeModal.close();
}
})
}
......@@ -100,10 +115,6 @@ export class AddStepTrackModalComponent {
}
closeModal(): void {
const modal = document.getElementById('addStepTrackModal');
if (modal) {
const bootstrapModal = new Modal(modal);
bootstrapModal.hide();
}
this.activeModal.close();
}
}
<p>update-step-track-modal works!</p>
<div class="modal-header">
<h5 class="modal-title" id="addStepTrackModalLabel">إضافة متابعة مرحلة</h5>
<button type="button" class=" mr-4 ml-4 btn-close" (click)="closeModal()"></button>
</div>
<div class="modal-body">
<form [formGroup]="stepTrackForm" (ngSubmit)="onSubmit()">
<div class="mb-3">
<label for="stepName" class="form-label">اسم المرحلة</label>
<input type="text" id="stepName" formControlName="stepName" class="form-control"
[disabled]="true"
>
</div>
<input type="number" hidden id="id" formControlName="id" class="form-control" >
<input type="number" hidden id="iddsfdsf" formControlName="stepName1" class="form-control" >
<div class="mb-3">
<label for="executionState" class="form-label">طبيعية التنفيذ</label>
<input type="text" id="executionState" formControlName="executionState" class="form-control">
</div>
<div class="mb-3">
<label for="trackExecutionRatio" class="form-label">نسبة التنفيذ خلال المتابعة</label>
<input type="number" id="trackExecutionRatio" formControlName="trackExecutionRatio" class="form-control" min="0" max="100">
</div>
<button type="submit" class="btn mr-4 ml-4 btn-primary" [disabled]="!stepTrackForm.valid">تعديل</button>
<button (click)="closeModal()" class="btn mr-4 ml-4 btn-primary" >إلغاء</button>
</form>
</div>
import { Component } from '@angular/core';
import { Component, Input } from '@angular/core';
import { Step } from '../../../../projects/models/responses/Step';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { ToastrService } from 'ngx-toastr';
import { Observable, map } from 'rxjs';
import { StepService } from '../../../../projects/services/step.service';
import { AddStepTrackRequest } from '../../../models/requests/AddStepTrackRequest';
import { TrackService } from '../../../services/track.service';
import { UpdateStepTrack } from '../../../models/requests/UpdateStepTrack';
import { StepTrack } from '../../../models/responses/steptrack';
import { Track } from '../../../models/responses/track';
@Component({
selector: 'update-step-track-modal',
......@@ -6,5 +17,71 @@ import { Component } from '@angular/core';
styleUrl: './update-step-track-modal.component.css'
})
export class UpdateStepTrackModalComponent {
@Input() projectId :number
@Input() trackId :number
@Input() track : Track
@Input() stepTrack : StepTrack
stepTrackForm: FormGroup;
filteredSteps: Step[] = [];
constructor(private fb: FormBuilder,
private stepService : StepService ,
private trackService : TrackService,
private toastr :ToastrService,
private activeModal :NgbActiveModal
) {}
ngOnInit(): void {
this.stepTrackForm = this.fb.group({
id: [this.stepTrack.stepId],
stepName: [this.stepTrack.stepInfo.stepName, Validators.required],
executionState: [this.stepTrack.executionState, Validators.required],
trackExecutionRatio: [this.stepTrack.trackExecutionRatio, [Validators.required, Validators.min(0), Validators.max(100)]],
});
}
onSubmit(): void {
if (this.stepTrackForm.valid) {
debugger
if(this.stepTrack.oldExecutionRatio + this.stepTrackForm.value.trackExecutionRatio > 100){
this.toastr.error('نسبة التنفيذ غير صحيحة ')
return ;
}
const newStepTrack: UpdateStepTrack = {
stepId: this.stepTrack.stepId,
trackId: this.trackId,
trackDate:this.track.trackInfo.trackDate,
stepTrackId:this.stepTrack.id,
executionState: this.stepTrackForm.value.executionState,
trackExecutionRatio: this.stepTrackForm.value.trackExecutionRatio,
};
this
.trackService
.UupdateStepTrack(newStepTrack)
.subscribe({
next:()=>{
this.activeModal.close({data : newStepTrack.stepId,request:newStepTrack})
},
error:(err)=>{
this.toastr.error('لقد حدث خطاء')
this.activeModal.close();
}
})
}
}
closeModal(): void {
this.activeModal.close();
}
}
......@@ -24,7 +24,7 @@
<div class="col-auto">
<button type="button "[routerLink]="['/track/history/step',stepTrack.stepId]" class="btn m-2 btn-sm btn-secondary">تاريخ المتابعة</button>
<button type="button" class="btn m-2 btn-sm btn-secondary">تعديل</button>
<button type="button" (click)="onEdit()" class="btn m-2 btn-sm btn-secondary">تعديل</button>
</div>
</div>
</div>
......
import { Component, Input } from '@angular/core';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { StepTrack } from '../../models/responses/steptrack';
@Component({
......@@ -10,4 +10,10 @@ export class StepTrackComponent {
@Input() projectId : number
@Input() stepTrack :StepTrack
@Output() edit = new EventEmitter<StepTrack>();
onEdit(){
this.edit.emit(this.stepTrack);
}
}
......@@ -2,7 +2,7 @@ export class UpdateStepTrack {
stepTrackId: number;
trackId: number;
stepId: number;
executionState: String;
executionState: string;
trackDate: Date;
trackExecutionRatio: number;
}
......@@ -39,8 +39,8 @@
<!-- Delete Confirmation -->
<div *ngIf="modalMode === 'delete'">
<p>هل أنت متأكد من أنك تريد حذف متابعة {{ selectedItem.projectInfo.name }} التي حدثت بتاريخ {{selectedItem.trackInfo.trackDate | date}}?</p>
<button type="button" class="btn m-4 btn-danger" (click)="deleteTrack()">Delete</button>
<button type="button" class="btn m-4 btn-secondary" data-bs-dismiss="modal">Cancel</button>
<button type="button" class="btn m-4 btn-danger" (click)="deleteTrack()">إزالة</button>
<button type="button" class="btn m-4 btn-secondary" data-bs-dismiss="modal">إلغاء</button>
</div>
</div>
</div>
......
......@@ -54,8 +54,7 @@ export class ProjectTrackHistoryComponent {
next : (data)=>{
this.toastr.success("تم تحميل عمليات المتابعة بنجاح");
this.tracks= data.sort((e1,e2)=> Number(e1.trackInfo.trackDate > e2.trackInfo.trackDate));
this.tracks= data.reverse()
}
,
error:(err)=>{
......@@ -76,7 +75,9 @@ export class ProjectTrackHistoryComponent {
modalRef.result.then((result) => {
if (result) {
this.tracks.push(result);
let t =[result];
t.push(...this.tracks);
this.tracks=t;
this.toastr.success("تمت الإضافة بنجاح")
}
}, (reason) => {
......@@ -127,10 +128,7 @@ export class ProjectTrackHistoryComponent {
}
closeModal(): void {
const modalElement = document.getElementById('trackModal');
if (modalElement) {
new Modal(modalElement).hide(); // Close the modal
}
this.modalService.dismissAll()
}
}
......@@ -69,7 +69,7 @@
<step-track *ngFor="let stepTrack of stepTracks"
[projectId]="track.projectId"
(edit)="openeditStepTrack(stepTrack)"
[stepTrack]="stepTrack" ></step-track>
<div class="offset-2 text-center text-secondary" *ngIf="stepTracks.length ==0 " >
لم تقم بمتابعة اية مراحل
......@@ -106,26 +106,26 @@
</div>
</div>
<button [disabled]="track.trackInfo.isCompleted" type="button" class="btn mr-4 ml-4 btn-primary" data-bs-toggle="modal" data-bs-target="#addStepTrackModal">
<button [disabled]="track.trackInfo.isCompleted" type="button" class="btn mr-4 ml-4 btn-primary" (click)="openAddStepTrack()">
إضافة متابعة مرحلة
</button>
<button [disabled]="track.trackInfo.isCompleted" type="button" class="btn mr-4 ml-4 btn-primary" data-bs-toggle="modal" data-bs-target="#addEmployeeTrackModal">
<button [disabled]="track.trackInfo.isCompleted" type="button" class="btn mr-4 ml-4 btn-primary"(click)="openEmployeeTrack()">
إضافة متابعة مشارك
</button>
<add-step-track-modal
<!-- <add-step-track-modal
[trackId]="trackId"
[projectId]="track.projectId"
[trackedSteps]="trackedSteps"
[]="trackedSteps"
(addStepTrack)="handleAddStepTrack($event)">
</add-step-track-modal>
<add-employee-track-modal
</add-step-track-modal> -->
<!-- <add-employee-track-modal
[trackId]="trackId"
[projectId]="track.projectId"
[trackedParticipants]="employeesTracks"
(addEmployeeTrack)="handleEmployeeTrack($event)">
</add-employee-track-modal>
</add-employee-track-modal> -->
</section>
\ No newline at end of file
......@@ -7,7 +7,7 @@ import { EmployeeTrack } from '../../models/responses/employeeTrack';
import { ActivatedRoute } from '@angular/router';
import { Step } from '../../../projects/models/responses/Step';
import { AddStepTrackRequest } from '../../models/requests/AddStepTrackRequest';
import { error } from 'jquery';
import { data, error } from 'jquery';
import { StepService } from '../../../projects/services/step.service';
import { forkJoin } from 'rxjs';
import { AddEmployeeTrackRequest } from '../../models/requests/AddEmployeeTrackRequest';
......@@ -15,6 +15,11 @@ import { ProjectService } from '../../../projects/services/project.service';
import { EmployeeParticipate } from '../../../employees/models/responses/employeeParticipate';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { CompleteTrackModalComponent } from '../../components/modals/complete-track-modal/complete-track-modal.component';
import { AddStepModalComponent } from '../../../projects/components/modals/add-step-modal/add-step-modal.component';
import { AddStepTrackModalComponent } from '../../components/modals/add-step-track-modal/add-step-track-modal.component';
import { AddEmployeeTrackModalComponent } from '../../components/modals/add-employee-track-modal/add-employee-track-modal.component';
import { UpdateStepTrack } from '../../models/requests/UpdateStepTrack';
import { UpdateStepTrackModalComponent } from '../../components/modals/update-step-track-modal/update-step-track-modal.component';
@Component({
selector: 'track-details',
......@@ -82,6 +87,77 @@ export class TrackDetailsComponent implements OnInit {
});
}
openAddStepTrack(){
const modalRef = this.modalService.open(AddStepTrackModalComponent);
modalRef.componentInstance.trackId=this.trackId
modalRef.componentInstance.projectId=this.track.projectId
modalRef.componentInstance.trackedSteps=this.trackedSteps
modalRef.result.then((result :{data : number ,request : AddStepTrackRequest}) => {
if(result){
this.handleAddStepTrack(result.data,result.request);
}
}, (reason) => {
});
}
openeditStepTrack(st : StepTrack){
const modalRef = this.modalService.open(UpdateStepTrackModalComponent);
modalRef.componentInstance.trackId=this.trackId
modalRef.componentInstance.projectId=this.track.projectId
modalRef.componentInstance.stepTrack=st
modalRef.componentInstance.track=this.track
modalRef.result.then((result :{data : number ,request : UpdateStepTrack}) => {
if(result){
this.stepTracks.forEach((e)=>{
if(e.stepId == result.data){
e.executionState=result.request.executionState
e.trackExecutionRatio=result.request.trackExecutionRatio
}
})
this.stepTracks=[...this.stepTracks]
}
}, (reason) => {
});
}
openEmployeeTrack(){
const modalRef = this.modalService.open(AddEmployeeTrackModalComponent,{size:'lg'});
modalRef.componentInstance.trackedParticipants=this.employeesTracks
modalRef.componentInstance.projectId=this.track.projectId
modalRef.componentInstance.trackId=this.track.id
modalRef.componentInstance.trackedSteps=this.trackedSteps
modalRef.result.then((result : {data : number ,request : AddEmployeeTrackRequest}) => {
if(result){
this.handleEmployeeTrack(result.data,result.request);
}
}, (reason) => {
});
}
openTrackComplete(){
const modalRef = this.modalService.open(CompleteTrackModalComponent);
......@@ -141,23 +217,11 @@ export class TrackDetailsComponent implements OnInit {
this.isAddStepTrackModalVisible = false;
}
handleAddStepTrack(stepTrackRequest: AddStepTrackRequest): void {
this.trackService.addStepTrack(stepTrackRequest).subscribe({
next : (data)=>{
handleAddStepTrack(data :number ,stepTrackRequest: AddStepTrackRequest): void {
this.loadTheNewStep(data,stepTrackRequest);
this.toastr.success('تمت إضافة متالعة المرحلة ')
}
,
error:(err)=>{
this.toastr.error('لقد حدث خطاء ما')
}
});
}
openComplete(){
......@@ -168,7 +232,7 @@ export class TrackDetailsComponent implements OnInit {
modalRef.result.then((result) => {
if (result) {
// Add the new project to the list
this.loadParticipants();
this.loadTrack();
}
}, (reason) => {
......@@ -206,23 +270,13 @@ export class TrackDetailsComponent implements OnInit {
}
handleEmployeeTrack(request: AddEmployeeTrackRequest): void {
handleEmployeeTrack(data :number,request: AddEmployeeTrackRequest): void {
debugger
this.trackService.addEmployeeTrack(request).subscribe({
next : (data)=>{
this.loadTheNewParticipant(data,request);
this.toastr.success('تمت إضافة متالعة المرحلة ')
this._canComplete();
}
,
error:(err)=>{
this.toastr.error('لقد حدث خطاء ما')
}
});
}
loadTheNewParticipant(empTrackId :number,request :AddEmployeeTrackRequest ){
let s = this.participants.find(s => s.employeeId == request.employeeId )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment