Commit 739935a3 authored by hasan khaddour's avatar hasan khaddour

add static pages

parent f15b49b8
......@@ -8,6 +8,7 @@ import { CustomerListComponent } from './customers/pages/customer-list/customer-
import { PageNotfoundComponent } from './pages/page-notfound/page-notfound.component';
import { ProjectFAQComponent } from './pages/project-faq/project-faq.component';
import { PsmStartComponent } from './pages/psm-start/psm-start.component';
import { AccessDeniedComponent } from './pages/access-denied/access-denied.component';
export const routes: Routes = [
......@@ -33,6 +34,11 @@ export const routes: Routes = [
path: 'Help',
component: PsmStartComponent,
},
{
path: 'forbiden',
component: AccessDeniedComponent,
},
{
path: '',
......@@ -64,14 +70,14 @@ export const routes: Routes = [
, {
path: 'types',
loadChildren: () => import('./projects-types/projects-types.module').then(m => m.ProjectsTypesModule)
} ,
{
path: '**',
component:PageNotfoundComponent
}
]
}
,
{
path: '**',
component:PageNotfoundComponent
}
];
......
......@@ -31,6 +31,7 @@ import { ProjectRoutingModule } from './projects/routing/project-routing.module'
import { ProjectFAQComponent } from './pages/project-faq/project-faq.component';
import { PsmStartComponent } from './pages/psm-start/psm-start.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { AccessDeniedComponent } from './pages/access-denied/access-denied.component';
@NgModule({
declarations: [
......@@ -40,6 +41,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
PageNotfoundComponent,
ProjectFAQComponent,
PsmStartComponent,
AccessDeniedComponent,
],
imports: [
......
export const ROLES = {
ADMIN: 'Admin',
PROJECTS_PLANNER: 'Planner',
CUSTOMERS_PLANER:'Planner',
SCIENTIFIC_DEPUTY: 'Employee',
EMPLOYEE :'Employee',
PROJECTS_PLANNER: "Projects-Planner",
CUSTOMERS_PLANER: "Customer-Planner",
SCIENTIFIC_DEPUTY: 'Scientific-Deputy',
EMPLOYEE :"Employee",
USER: 'User',
} as const;
\ No newline at end of file
<div class="container">
<section class="section error-404 min-vh-90 d-flex flex-column align-items-center justify-content-center">
<h2>عذراً، ليس لديك صلاحيات اللولوج إلى هذه الصفحة</h2>
<a class="btn" [routerLink]="['/']">العودة إلى الصفحة الرئيسية</a>
<img src="assets/images/not-found.svg" class="img-fluid" alt="Page Not Found">
</section>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'access-denied',
templateUrl: './access-denied.component.html',
styleUrl: './access-denied.component.css'
})
export class AccessDeniedComponent {
}
<div class="container">
<section class="section error-404 min-vh-100 d-flex flex-column align-items-center justify-content-center">
<h1>404</h1>
<h2>The page you are looking for doesn't exist.</h2>
<a class="btn" href="index.html">Back to home</a>
<img src="assets/images/not-found.svg" class="img-fluid py-5" alt="Page Not Found">
<section class="section error-404 max-vh-80 d-flex flex-column align-items-center justify-content-center">
<h2>عذراً، إن الصفحة المطلوبة غير موجودة</h2>
<a class="btn" [routerLink]="['/']">العودة إلى الصفحة الرئيسية</a>
<img src="assets/images/not-found.svg" class="img-fluid" alt="Page Not Found">
</section>
</div>
.accordion-button::after{
margin-left:0!important;
padding: 2px;
}
\ No newline at end of file
<div class="pagetitle">
<h1>ملامح المشروع</h1>
<p> أسئلة يجب أن تطلع عليها قبل البدء بتخطيط مشروع </p>
<p ><strong> أسئلة يجب أن تطلع عليها </strong></p>
</div><!-- End Page Title -->
......@@ -10,11 +10,11 @@
<div class="card basic">
<div class="card-body">
<h5 class="card-title">أسئلة تعريفية</h5>
<h5 class="card-title"><strong>أسئلة تعريفية</strong></h5>
<div>
<h6> ما هو الهدف من المشروع ؟ </h6>
<p>ضع صورة واضحة في ذهنك عن هدف المشروع فهي أساسيةلإنجاح المشروع </p>
<p>ضع صورة واضحة في ذهنك عن هدف المشروع فهي أساسية لإنجاح المشروع </p>
</div>
<div class="pt-2">
......@@ -31,12 +31,47 @@
</div>
<div class="card basic">
<div class="card-body">
<h5 class="card-title"><strong>أسئلة عامة</strong></h5>
<div>
<h6> ما هو المخرج النهائي للمشروع ؟ </h6>
</div>
<div class="pt-2">
<h6>ماهي المراجع الأدبية والفنية الأكثر أهمية بالنسبة للمشروع ؟ </h6>
</div>
<div class="pt-2">
<h6>ما هي الكلمات المفتاحية للمشروع ؟</h6>
</div>
<div class="pt-2">
<h6>ما هي المواد اللازمة للمشروع، مامدى توافرها وأين ؟</h6>
</div>
<div class="pt-2">
<h6>ما هي التجهيزات اللازمة للمشروع ؟</h6>
</div>
<div class="pt-2">
<h6>ما هي الاحتياجات الفنية للمشروع ؟</h6>
</div>
<div class="pt-2">
<h6>ما هي احتياجات المشروع من موارد بشرية ؟</h6>
</div>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">ماذا يجب أن تفعل اثناء تخطيط المشروع</h5>
<h5 class="card-title"><strong>ماذا يجب أن تفعل اثناء تخطيط المشروع</strong></h5>
<div class="accordion accordion-flush" id="faq-group-1">
......@@ -48,7 +83,7 @@
</h2>
<div id="faqsOne-1" class="accordion-collapse collapse" data-bs-parent="#faq-group-1">
<div class="accordion-body">
Ut quasi odit odio totam accusamus vero eius. Nostrum asperiores voluptatem eos nulla ab dolores est asperiores iure. Quo est quis praesentium aut maiores. Corrupti sed aut expedita fugit vero dolorem. Nemo rerum sapiente. A quaerat dignissimos.
حدد مستلزمات المشروع من موارد وأجور ونفقات، أضفها إلى خطة إنفاق المشروع
</div>
</div>
</div>
......@@ -56,12 +91,11 @@
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsOne-2" type="button" data-bs-toggle="collapse">
دراسة الجدوى الاقتصادية</button>
أضف المرفقات التي تريدها</button>
</h2>
<div id="faqsOne-2" class="accordion-collapse collapse" data-bs-parent="#faq-group-1">
<div class="accordion-body">
In minus quia impedit est quas deserunt deserunt et. Nulla non quo dolores minima fugiat aut saepe aut inventore. Qui nesciunt odio officia beatae iusto sed voluptatem possimus quas. Officia vitae sit voluptatem nostrum a.
</div>
تستطيع إضافة المرفقات التي تريدها من دراسة جدوى اقتصادية ومعلومات توضيحية ووثاق مطلوبة </div>
</div>
</div>
......@@ -73,8 +107,7 @@
</h2>
<div id="faqsOne-3" class="accordion-collapse collapse" data-bs-parent="#faq-group-1">
<div class="accordion-body">
Voluptates magni amet enim perspiciatis atque excepturi itaque est. Sit beatae animi incidunt eum repellat sequi ea saepe inventore. Id et vel et et. Nesciunt itaque corrupti quia ducimus. Consequatur maiores voluptatum fuga quod ut non fuga.
</div>
ابحث عن المشارك الذي تريده، حدد نسبة تفرغه، أضفه </div>
</div>
</div>
......@@ -86,8 +119,7 @@
</h2>
<div id="faqsOne-4" class="accordion-collapse collapse" data-bs-parent="#faq-group-1">
<div class="accordion-body">
Numquam ut reiciendis aliquid. Quia veritatis quasi ipsam sed quo ut eligendi et non. Doloremque sed voluptatem at in voluptas aliquid dolorum.
</div>
ارسم ملامح تنفيذ مشروعك من خلال خطة واضحة, عرف المراحل وضع توصيفا لها حدد عدد العمال المطلوب ومدة تنفيذها </div>
</div>
</div>
......@@ -99,8 +131,7 @@
</h2>
<div id="faqsOne-5" class="accordion-collapse collapse" data-bs-parent="#faq-group-1">
<div class="accordion-body">
Aut necessitatibus maxime quis dolor et. Nihil laboriosam molestiae qui molestias placeat corrupti non quo accusamus. Nemo qui quis harum enim sed. Aliquam molestias pariatur delectus voluptas quidem qui rerum id quisquam. Perspiciatis voluptatem voluptatem eos. Vel aut minus labore at rerum eos.
</div>
اختر النوع من المشاريع الذي يتنمي له مشروعك </div>
</div>
</div>
......@@ -114,72 +145,51 @@
<!-- F.A.Q Group 3 -->
<div class="card">
<div class="card-body">
<h5 class="card-title">Dolore occaecati ducimus quam</h5>
<h5 class="card-title"><strong>ماذا يجب أن تفعل أثناء تنفيذ المشروع</strong></h5>
<div class="accordion accordion-flush" id="faq-group-3">
<div class="accordion accordion-flush" id="faq-group-4">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsThree-1" type="button" data-bs-toggle="collapse">
Assumenda doloribus est fugiat sint incidunt animi totam nisi?
</button>
<button class="accordion-button strong collapsed" data-bs-target="#faqsThree-1" type="button" data-bs-toggle="collapse">
أنشئ عملية متابعة </button>
</h2>
<div id="faqsThree-1" class="accordion-collapse collapse" data-bs-parent="#faq-group-3">
<div class="accordion-body">
Ut quasi odit odio totam accusamus vero eius. Nostrum asperiores voluptatem eos nulla ab dolores est asperiores iure. Quo est quis praesentium aut maiores. Corrupti sed aut expedita fugit vero dolorem. Nemo rerum sapiente. A quaerat dignissimos.
</div>
إبداء عملية متابعة، عرف الوضع الحالي للمشروع، أبدي ملاحظاتك وابداء المتابعة</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsThree-2" type="button" data-bs-toggle="collapse">
Consequatur saepe explicabo odio atque nisi?
</button>
تابع المراحل</button>
</h2>
<div id="faqsThree-2" class="accordion-collapse collapse" data-bs-parent="#faq-group-3">
<div class="accordion-body">
In minus quia impedit est quas deserunt deserunt et. Nulla non quo dolores minima fugiat aut saepe aut inventore. Qui nesciunt odio officia beatae iusto sed voluptatem possimus quas. Officia vitae sit voluptatem nostrum a.
</div>
اختر مرحلة، أضف نسبة الانجاز فيها، ضع ملاحظاتك </div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsThree-3" type="button" data-bs-toggle="collapse">
Voluptates vel est fugiat molestiae rem sit eos sint?
</button>
أضف مساهمة مشارك </button>
</h2>
<div id="faqsThree-3" class="accordion-collapse collapse" data-bs-parent="#faq-group-3">
<div class="accordion-body">
Voluptates magni amet enim perspiciatis atque excepturi itaque est. Sit beatae animi incidunt eum repellat sequi ea saepe inventore. Id et vel et et. Nesciunt itaque corrupti quia ducimus. Consequatur maiores voluptatum fuga quod ut non fuga.
</div>
اختر المشارك،أضف نسبة مساهمة وساعات عمله،ملاحظاتك والعمل المسند له</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsThree-4" type="button" data-bs-toggle="collapse">
Ab ipsa cum autem voluptas doloremque velit?
</button>
اتمم عملية المتابعة </button>
</h2>
<div id="faqsThree-4" class="accordion-collapse collapse" data-bs-parent="#faq-group-3">
<div class="accordion-body">
Numquam ut reiciendis aliquid. Quia veritatis quasi ipsam sed quo ut eligendi et non. Doloremque sed voluptatem at in voluptas aliquid dolorum.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#faqsThree-5" type="button" data-bs-toggle="collapse">
Aliquam magni ducimus facilis numquam dolorum harum eveniet iusto?
</button>
</h2>
<div id="faqsThree-5" class="accordion-collapse collapse" data-bs-parent="#faq-group-3">
<div class="accordion-body">
Aut necessitatibus maxime quis dolor et. Nihil laboriosam molestiae qui molestias placeat corrupti non quo accusamus. Nemo qui quis harum enim sed. Aliquam molestias pariatur delectus voluptas quidem qui rerum id quisquam. Perspiciatis voluptatem voluptatem eos. Vel aut minus labore at rerum eos.
</div>
بعد الانهاء من إضافة المراحل والمشاركات أنهي العملية </div>
</div>
</div>
......
......@@ -7,27 +7,27 @@
<div class="card p-4">
<form #form="ngForm" class="php-email-form">
<div class="row text-center">
<p>
إصافة نوع مشروع
</p>
<h4 class="text-center text-primary ">
إصافة نوع مشروع جديد
</h4>
</div>
<div class="row gy-4">
<div class="col-12">
<div class="col-6">
<input type="text" [(ngModel)]="request.typeName"
name="typeName" class="form-control" placeholder="اسم المشروع" required>
</div>
<div class="col-6 ">
<div class="col-6">
<input type="number" [(ngModel)]="request.expectedEffort"
class="form-control" name="expectedNumberOfWorker" placeholder="ساعات العمل اللازمة" required min="0" >
</div>
<div class="col-12 ">
<textarea type="tex" [(ngModel)]="request.description" [cols]="4" name="description"
class="form-control" name="requestdescription" placeholder="الوصف" minlength="15" required>
</textarea>
</div>
<div class="col-6">
<input type="number" [(ngModel)]="request.expectedEffort"
class="form-control" name="expectedNumberOfWorker" placeholder="ساعات العمل اللازمة" required min="0" >
</div>
<div class="col-6">
<input type="number" [(ngModel)]="request.expectedNumberOfWorker"
class="form-control" name="expectedNumberOfWorker" placeholder="عدد العمال المتوقع" required min="0" >
......@@ -36,7 +36,8 @@
<div class="col-md-12 text-center">
<button class="btn btn-primary" [disabled]="form.invalid" (click)="submit(request)">إضافة</button>
<button class="btn m-4 btn-success" [disabled]="form.invalid" (click)="submit(request)">إضافة</button>
<button class="btn m-4 btn-secondary" [routerLink]="['/types']">قائمة أنواع المشاريع</button>
</div>
</div>
......
......@@ -51,13 +51,12 @@
<!-- Delete Confirmation -->
<div *ngIf="modalMode === 'delete'">
<p>هل أنت متأكد من أنك تريد حذف النوع {{ selectedtype.typeName }} ؟</p>
<button type="button" class="btn m-4 btn-danger" (click)="delete()">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)="delete()">إزالة</button>
<button type="button" class="btn m-4 btn-secondary" data-bs-dismiss="modal">إلغاء</button>
</div>
</div>
</div>
</div>
</div>
</div> <!-- .row -->
</div>
......@@ -31,8 +31,9 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<h5 class="modal-title" id="modalLabel">{{ modalTitle }}</h5>
</div>
<div class="modal-body">
<!-- Edit Form -->
......@@ -44,10 +45,10 @@
></edit-type-modal>
</div>
<!-- Delete Confirmation -->
<div *ngIf="modalMode === 'delete'">
<div *ngIf="modalMode === 'delete'" class="row ">
<p>هل أنت متأكد من أنك تريد حذف عنصر {{ selectedItem.typeName }}?</p>
<button type="button" class="btn m-4 btn-danger" (click)="delete()">Delete</button>
<button type="button" class="btn m-4 btn-secondary" data-bs-dismiss="modal">Cancel</button>
<button type="button" class="col-4 m-4 btn btn-danger" (click)="delete()">إزالة</button>
<button type="button" class="btn col-4 my-4 btn-secondary" data-bs-dismiss="modal">إلغاء</button>
</div>
</div>
</div>
......
......@@ -47,7 +47,7 @@ export class ProjectsTypesService {
return this
.http
.delete<void>
(this.config.getServerUrl()+ "/ProjectsTypes"+typeId);
(this.config.getServerUrl()+ "/ProjectsTypes/"+typeId);
}
......
......@@ -68,7 +68,8 @@
<hr>
<plan-controll
[project]="project"
*ngIf="project.currentState.toLocaleLowerCase()=='inplan'"
[project]="project"
(toProgress)="openMoveToProgressModal()"
>
......@@ -77,7 +78,8 @@
<hr>
<track-controll
[project]="project"
*ngIf="project.currentState.toLocaleLowerCase()=='inprogress'"
[project]="project"
(complete)="openProjectComplete()"
(replan)="openReplan()"
>
......@@ -91,7 +93,6 @@
[project]="project"
(changeLeader)="openChangeTeamLeader()"
(changeManager)="openChangeProjectManager()"
>
</info-controll>
......
......@@ -11,6 +11,8 @@ import { ProjectCompleteModalComponent } from '../../components/projectModals/pr
import { ProjectReplanModalComponent } from '../../components/projectModals/project-replan-modal/project-replan-modal.component';
import { ChangeManagerModalComponent } from '../../components/projectModals/change-manager-modal/change-manager-modal.component';
import { ChangeLeaderModalComponent } from '../../components/projectModals/change-leader-modal/change-leader-modal.component';
import { UserService } from '../../../core/services/authentication/user.service';
import { ROLES } from '../../../core/constants/roles';
@Component({
......@@ -28,6 +30,7 @@ export class ProjectDetailsComponent implements OnInit {
private projectService: ProjectService,
private toastr: ToastrService,
private modalService :NgbModal ,
private userService :UserService,
private pdfDownloader : PdfDownloaderService
) {}
......@@ -137,8 +140,21 @@ export class ProjectDetailsComponent implements OnInit {
.getProjectById(this.projectId)
.subscribe({
next :(data) => {
this.project = data;
if(
data.projectManager.id == this.userService.getEmployeeId()
||data.teamLeader.id== this.userService.getEmployeeId()
||this.userService.hasRole(ROLES.SCIENTIFIC_DEPUTY) ){
this.project = data;
}else{
this.toastr.error('ليس مخولا لك الولوج إلى هذه الصفحة')
this.router.navigate(['/forbiden'])
}
},
error : (err)=>{
......
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