Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
PSManagementUI
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hasan.bahjat
PSManagementUI
Commits
67b886e0
Commit
67b886e0
authored
Aug 22, 2024
by
hasan khaddour
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add employee participation
parent
e007a8a7
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
292 additions
and
100 deletions
+292
-100
angular.json
angular.json
+1
-1
employees-routing.module.ts
src/app/employees/employees-routing.module.ts
+5
-1
employees.module.ts
src/app/employees/employees.module.ts
+2
-0
employee-participate.component.html
.../employee-participate/employee-participate.component.html
+36
-1
employee-participate.component.ts
...es/employee-participate/employee-participate.component.ts
+7
-1
employee-participates.component.html
...mployee-participates/employee-participates.component.html
+8
-1
employee-participates.component.ts
.../employee-participates/employee-participates.component.ts
+35
-2
employee-profile.component.html
...es/pages/employee-profile/employee-profile.component.html
+33
-50
employee-profile.component.ts
...yees/pages/employee-profile/employee-profile.component.ts
+23
-2
employees.service.ts
src/app/employees/services/employees.service.ts
+2
-2
createProjectRequest.ts
.../models/requests/project-requests/createProjectRequest.ts
+5
-5
FinancialFund.ts
src/app/projects/models/valueObjects/FinancialFund.ts
+0
-2
project-attachments.component.css
...ges/project-attachments/project-attachments.component.css
+0
-0
project-attachments.component.html
...es/project-attachments/project-attachments.component.html
+1
-0
project-attachments.component.ts
...ages/project-attachments/project-attachments.component.ts
+10
-0
project-create.component.html
...ojects/pages/project-create/project-create.component.html
+3
-3
project-create.component.ts
...projects/pages/project-create/project-create.component.ts
+6
-2
project-details.component.html
...ects/pages/project-details/project-details.component.html
+112
-26
projects.module.ts
src/app/projects/projects.module.ts
+3
-1
No files found.
angular.json
View file @
67b886e0
...
...
@@ -44,7 +44,7 @@
}
],
"styles"
:
[
"@angular/material/prebuilt-themes/
deeppurple-amber
.css"
,
"@angular/material/prebuilt-themes/
azure-blue
.css"
,
"src/styles.css"
,
"src/assets/css/app-light.css"
,
"./node_modules/@fortawesome/fontawesome-free/css/all.min.css"
,
...
...
src/app/employees/employees-routing.module.ts
View file @
67b886e0
...
...
@@ -6,9 +6,13 @@ import { Observable } from 'rxjs';
import
{
Result
}
from
'../core/models/result'
;
import
{
Employee
}
from
'./models/responses/employee'
;
import
{
EmployeeProfileComponent
}
from
'./pages/employee-profile/employee-profile.component'
;
import
{
EmployeeParticipateComponent
}
from
'./pages/employee-participate/employee-participate.component'
;
import
{
EmployeeParticipatesComponent
}
from
'./pages/employee-participates/employee-participates.component'
;
const
routes
:
Routes
=
[
{
path
:
"profile"
,
component
:
EmployeeProfileComponent
}
{
path
:
"profile"
,
component
:
EmployeeProfileComponent
},
{
path
:
"participates/:id"
,
component
:
EmployeeParticipatesComponent
}
];
@
NgModule
({
...
...
src/app/employees/employees.module.ts
View file @
67b886e0
...
...
@@ -6,6 +6,7 @@ import { EmployeeProfileComponent } from './pages/employee-profile/employee-prof
import
{
EmployeeParticipatesComponent
}
from
'./pages/employee-participates/employee-participates.component'
;
import
{
EmployeeParticipateComponent
}
from
'./pages/employee-participate/employee-participate.component'
;
import
{
ParticipateItemComponent
}
from
'./components/participate-item/participate-item.component'
;
import
{
SharedModule
}
from
'../shared/shared.module'
;
@
NgModule
({
...
...
@@ -17,6 +18,7 @@ import { ParticipateItemComponent } from './components/participate-item/particip
],
imports
:
[
CommonModule
,
SharedModule
,
EmployeesRoutingModule
]
})
...
...
src/app/employees/pages/employee-participate/employee-participate.component.html
View file @
67b886e0
<p>
employee-participate works!
</p>
<div
class=
"card shadow mb-4"
>
<div
class=
"card-header py-3"
>
<div
class=
"row align-items-center"
>
<div
class=
"col-auto"
>
<a
href=
"profile-posts.html"
class=
"avatar avatar-md"
>
<img
src=
"./assets/images/users/4.jpg"
alt=
"..."
class=
"avatar-img rounded-circle"
>
</a>
</div>
<div
class=
"col ml-n2"
>
<strong
class=
"mb-1"
>
{{employeeParticipate.partialTimeRatio}}
</strong><span
class=
"dot dot-lg bg-success ml-1"
></span>
<p
class=
"small text-muted mb-1"
>
Fringilla Ornare Placerat Consulting
</p>
</div>
<div
class=
"col-auto"
>
<span
class=
"m-1"
><i
class=
"fe fe-facebook fe-12 text-muted"
></i></span>
<span
class=
"m-1"
><i
class=
"fe fe-twitter fe-12 text-muted"
></i></span>
</div>
</div>
</div>
<div
class=
"card-body"
>
<div
class=
"row align-items-center"
>
<div
class=
"col"
>
<div
class=
"small mb-2 d-flex"
>
<span
class=
"text-muted flex-fill"
>
Progress
</span>
<span
class=
"text-muted"
>
68
</span>
</div>
<div
class=
"progress"
style=
"height: 2px;"
>
<div
class=
"progress-bar"
role=
"progressbar"
style=
"width: 25%"
aria-valuenow=
"25"
aria-valuemin=
"0"
aria-valuemax=
"100"
></div>
</div>
</div>
<div
class=
"col-auto"
>
<button
type=
"button"
class=
"btn btn-sm btn-primary"
>
Message
</button>
<button
type=
"button"
class=
"btn btn-sm btn-secondary"
>
Profile
</button>
</div>
</div>
</div>
<!-- / .card-body -->
</div>
\ No newline at end of file
src/app/employees/pages/employee-participate/employee-participate.component.ts
View file @
67b886e0
import
{
Component
}
from
'@angular/core'
;
import
{
Component
,
Input
}
from
'@angular/core'
;
import
{
EmployeeParticipate
}
from
'../../models/responses/employeeParticipate'
;
@
Component
({
selector
:
'employee-participate'
,
...
...
@@ -7,4 +8,9 @@ import { Component } from '@angular/core';
})
export
class
EmployeeParticipateComponent
{
@
Input
()
employeeParticipate
:
EmployeeParticipate
constructor
(){}
}
src/app/employees/pages/employee-participates/employee-participates.component.html
View file @
67b886e0
<p>
employee-participates works!
</p>
<section
*
ngIf=
"employeeParticipates"
class=
"row"
>
<employee-participate
class=
"col-8 offset-2"
*
ngFor=
"let participate of employeeParticipates"
[
employeeParticipate
]="
participate
"
></employee-participate>
<div
*
ngIf=
"employeeParticipates.length==0"
>
للأسف أنت لم تشارك حتى الآن بأي مشروع
</div>
</section>
\ No newline at end of file
src/app/employees/pages/employee-participates/employee-participates.component.ts
View file @
67b886e0
import
{
Component
}
from
'@angular/core'
;
import
{
Component
,
Input
,
OnInit
}
from
'@angular/core'
;
import
{
EmployeeParticipate
}
from
'../../models/responses/employeeParticipate'
;
import
{
EmployeesService
}
from
'../../services/employees.service'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
{
ActivatedRoute
}
from
'@angular/router'
;
@
Component
({
selector
:
'employee-participates'
,
templateUrl
:
'./employee-participates.component.html'
,
styleUrl
:
'./employee-participates.component.css'
})
export
class
EmployeeParticipatesComponent
{
export
class
EmployeeParticipatesComponent
implements
OnInit
{
employeeParticipates
:
EmployeeParticipate
[]
employeeId
=
Number
(
this
.
route
.
snapshot
.
paramMap
.
get
(
'id'
));
constructor
(
private
emploeesService
:
EmployeesService
,
private
toastr
:
ToastrService
,
private
route
:
ActivatedRoute
)
{
}
ngOnInit
():
void
{
this
.
loadParticipations
();
}
loadParticipations
():
void
{
this
.
emploeesService
.
getEmployeeParticipations
(
this
.
employeeId
).
subscribe
({
next
:
(
data
)
=>
{
this
.
employeeParticipates
=
data
this
.
toastr
.
success
(
"تم تحميل مساهماتك بنجاح"
);
}
,
error
:(
err
)
=>
{
console
.
log
(
err
)
this
.
toastr
.
error
(
"لقد حدث خطاء ما"
)
}
})
}
}
src/app/employees/pages/employee-profile/employee-profile.component.html
View file @
67b886e0
<section
dir=
"lrt"
class=
"vh-100"
style=
"background-color: #f4f5f7;"
>
<div
class=
"container py-5 h-100"
>
<div
class=
"row d-flex justify-content-center align-items-center h-100"
>
<div
class=
"col col-lg-6 mb-4 mb-lg-0"
>
<div
class=
"card mb-3"
style=
"border-radius: .5rem;"
>
<div
class=
"row g-0"
>
<div
class=
"col-md-4 gradient-custom text-center text-white"
style=
"border-top-left-radius: .5rem; border-bottom-left-radius: .5rem;"
>
<img
src=
"https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-chat/ava1-bg.webp"
alt=
"Avatar"
class=
"img-fluid my-5"
style=
"width: 80px;"
/>
<h5>
Marie Horwitz
</h5>
<p>
Web Designer
</p>
<i
class=
"far fa-edit mb-5"
></i>
</div>
<div
class=
"col-md-8"
>
<div
class=
"card-body p-4"
>
<h6>
Information
</h6>
<hr
class=
"mt-0 mb-4"
>
<div
class=
"row pt-1"
>
<div
class=
"col-6 mb-3"
>
<h6>
Email
</h6>
<p
class=
"text-muted"
>
infoexample.com
</p>
</div>
<div
class=
"col-6 mb-3"
>
<h6>
Phone
</h6>
<p
class=
"text-muted"
>
123 456 789
</p>
</div>
</div>
<h6>
Projects
</h6>
<hr
class=
"mt-0 mb-4"
>
<div
class=
"row pt-1"
>
<div
class=
"col-6 mb-3"
>
<h6>
Recent
</h6>
<p
class=
"text-muted"
>
Lorem ipsum
</p>
</div>
<div
class=
"col-6 mb-3"
>
<h6>
Most Viewed
</h6>
<p
class=
"text-muted"
>
Dolor sit amet
</p>
</div>
</div>
<div
class=
"d-flex justify-content-start"
>
<a
href=
"#!"
><i
class=
"fab fa-facebook-f fa-lg me-3"
></i></a>
<a
href=
"#!"
><i
class=
"fab fa-twitter fa-lg me-3"
></i></a>
<a
href=
"#!"
><i
class=
"fab fa-instagram fa-lg"
></i></a>
</div>
</div>
</div>
</div>
<div
class=
"card profile shadow"
>
<div
class=
"card-body my-4"
>
<div
class=
"row align-items-center"
>
<div
class=
"col-md-3 text-center mb-5"
>
<a
href=
"#!"
class=
"avatar avatar-xl"
>
<img
src=
"./assets/images/users/3.jpg"
alt=
"..."
class=
"avatar-img rounded-circle"
>
</a>
</div>
<div
class=
"col"
>
<div
class=
"row align-items-center"
>
<div
class=
"col-md-7"
>
<h4
class=
"mb-1 text-bold text-black"
>
{{employee.personalInfo| fullname}}
</h4>
<p
class=
"small mb-3"
><span
class=
"text-primary"
>
{{employee.email}}
</span></p>
</div>
<div
class=
"col"
>
</div>
</div>
<div
class=
"row mb-4"
>
<div
class=
"col-md-7"
>
<p
class=
"text-muted"
>
الوظيفة {{employee.workInfo.workJob}} , صفة العمل {{employee.workInfo.workType}}
</p>
</div>
<div
class=
"col"
>
<p
class=
"small mb-0 text-muted"
>
ساعات عملي {{employee.availability.currentWorkingHours}}
</p>
<p
class=
"small mb-0 text-muted"
>
يعمل لدى {{employee.departmentName}}
</p>
</div>
</div>
<div
class=
"row align-items-center"
>
<div
class=
"col mb-2"
>
<button
type=
"button"
[
routerLink
]="['/
employees
/
participates
',
id
]"
class=
"btn m-3 btn-primary"
>
استعراض مساهماتي
</button>
<button
type=
"button"
class=
"btn m-3 btn-secondary"
>
إصدار تقرير بعملي
</button>
</div>
</div>
</div>
</div>
</section>
\ No newline at end of file
</div>
<!-- / .row- -->
</div>
<!-- / .card-body - -->
</div>
\ No newline at end of file
src/app/employees/pages/employee-profile/employee-profile.component.ts
View file @
67b886e0
import
{
Component
}
from
'@angular/core'
;
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
Employee
}
from
'../../models/responses/employee'
;
import
{
EmployeesService
}
from
'../../services/employees.service'
;
import
{
ToastrService
}
from
'ngx-toastr'
;
import
{
UserService
}
from
'../../../core/services/authentication/user.service'
;
@
Component
({
selector
:
'employee-profile'
,
templateUrl
:
'./employee-profile.component.html'
,
styleUrl
:
'./employee-profile.component.css'
})
export
class
EmployeeProfileComponent
{
export
class
EmployeeProfileComponent
implements
OnInit
{
employee
:
Employee
id
:
number
constructor
(
private
employeeSerivce
:
EmployeesService
,
private
userSerivce
:
UserService
,
private
toastr
:
ToastrService
){}
ngOnInit
():
void
{
this
.
id
=
this
.
userSerivce
.
getEmployeeId
()
this
.
employeeSerivce
.
getCurrentEmployee
().
subscribe
({
next
:(
data
)
=>
this
.
employee
=
data
,
error
:(
err
)
=>
this
.
toastr
.
error
(
"لقد حدث خطاء ما"
)
});
}
}
src/app/employees/services/employees.service.ts
View file @
67b886e0
...
...
@@ -42,13 +42,13 @@ export class EmployeesService {
public
getAvailableEmployees
(
):
Observable
<
Employee
[]
>
{
//this api endpoint take a pagination , i'll use i later
//this api endpoint take a pagination , i'll use i
t
later
return
this
.
http
.
get
<
Employee
[]
>
(
this
.
config
.
getServerUrl
()
+
"/Employees/Available"
);
}
public
getEmployeeParticipations
(
id
:
number
):
Observable
<
EmployeeParticipate
[]
>
{
return
this
.
http
.
get
<
EmployeeParticipate
[]
>
(
`
${
this
.
config
.
getServerUrl
}
/Employees/EmployeeParticipations/
employeeId=
${
id
}
`
);
return
this
.
http
.
get
<
EmployeeParticipate
[]
>
(
`
${
this
.
config
.
getServerUrl
()}
/Employees/EmployeeParticipations/?
employeeId=
${
id
}
`
);
}
public
getMyParticipation
(
):
Observable
<
EmployeeParticipate
[]
>
{
...
...
src/app/projects/models/requests/project-requests/createProjectRequest.ts
View file @
67b886e0
import
{
Aggreement
}
from
"../valueObjects/Aggreement"
import
{
FinancialFund
}
from
"../valueObjects/FinancialFund"
import
{
ProjectClassification
}
from
"../valueObjects/ProjectClassification"
import
{
ProjectInfo
}
from
"../valueObjects/ProjectInfo"
import
{
ProposalInfo
}
from
"../valueObjects/proposalInfo"
import
{
Aggreement
}
from
"../
../
valueObjects/Aggreement"
import
{
FinancialFund
}
from
"../
../
valueObjects/FinancialFund"
import
{
ProjectClassification
}
from
"../
../
valueObjects/ProjectClassification"
import
{
ProjectInfo
}
from
"../
../
valueObjects/ProjectInfo"
import
{
ProposalInfo
}
from
"../
../
valueObjects/proposalInfo"
export
class
CreateProjectRequest
{
projectInfo
:
ProjectInfo
...
...
src/app/projects/models/valueObjects/FinancialFund.ts
View file @
67b886e0
export
interface
FinancialFund
{
financialStatus
:
string
;
source
:
string
;
}
...
...
src/app/projects/pages/project-attachments/project-attachments.component.css
0 → 100644
View file @
67b886e0
src/app/projects/pages/project-attachments/project-attachments.component.html
0 → 100644
View file @
67b886e0
<p>
project-attachments works!
</p>
src/app/projects/pages/project-attachments/project-attachments.component.ts
0 → 100644
View file @
67b886e0
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'project-attachments'
,
templateUrl
:
'./project-attachments.component.html'
,
styleUrl
:
'./project-attachments.component.css'
})
export
class
ProjectAttachmentsComponent
{
}
src/app/projects/pages/project-create/project-create.component.html
View file @
67b886e0
...
...
@@ -120,10 +120,10 @@
</div>
<div
class=
"col-4"
formGroupName=
"executerId"
>
<div
class=
"col-4"
>
<mat-form-field>
<mat-label>
الفعالية المنفذة
</mat-label>
<mat-select>
<mat-select
formControlName=
"executerId"
>
<mat-option
value=
"1"
>
قسم المعلوميات
</mat-option>
<mat-option
value=
"2"
>
قسم النظم الاكترونية
</mat-option>
</mat-select>
...
...
@@ -134,7 +134,7 @@
<div
class=
"row mb-4"
formGroupName=
"projectClassification"
>
<mat-form-field
class=
"col-4"
>
<mat-label
for=
"projectStatus"
class=
"form-label"
>
وضع
النشاط
</mat-label>
<mat-label
for=
"projectStatus"
class=
"form-label"
>
حالة
النشاط
</mat-label>
<input
formControlName=
"projectStatus"
class=
"form-control"
id=
"projectStatus"
matInput
/>
</mat-form-field>
...
...
src/app/projects/pages/project-create/project-create.component.ts
View file @
67b886e0
...
...
@@ -7,8 +7,8 @@ import { Result } from '../../../core/models/result';
import
{
Project
}
from
'../../models/responses/project'
;
import
{
Customer
}
from
'../../../customers/models/customer'
;
import
{
CustomerService
}
from
'../../../customers/services/customer.service'
;
import
{
CreateProjectRequest
}
from
'../../models/requests/createProjectRequest'
;
import
{
ProjectService
}
from
'../../services/project.service'
;
import
{
CreateProjectRequest
}
from
'../../models/requests/project-requests/createProjectRequest'
;
@
Component
({
selector
:
'project-create'
,
...
...
@@ -117,8 +117,12 @@ export class ProjectCreateComponent {
onSubmit
(
request
:
CreateProjectRequest
){
console
.
log
(
request
)
console
.
log
(
this
.
projectForm
.
errors
)
if
(
this
.
projectForm
.
valid
){
console
.
log
(
true
)
console
.
log
(
request
);
this
.
projectService
.
createProject
(
request
);
}
...
...
src/app/projects/pages/project-details/project-details.component.html
View file @
67b886e0
...
...
@@ -139,7 +139,7 @@
<p
class=
"mb-4"
>
<strong>
مدير المشروع
</strong>
<br/><small>
{{project.projectManager.personalInfo
.firstN
ame}}
</small>
<br/><small>
{{project.projectManager.personalInfo
| fulln
ame}}
</small>
</p>
...
...
@@ -148,7 +148,7 @@
<p
class=
"mb-4"
>
<strong>
رئيس فريق العمل
</strong>
<br/><small>
{{project.projectManager.personalInfo
.firstName
}}
</small>
<br/><small>
{{project.projectManager.personalInfo
| fullname
}}
</small>
</p>
...
...
@@ -203,32 +203,118 @@
<img
src=
"/assets/images/users/4.jpg"
class=
"navbar-brand-img brand-sm mx-auto my-4"
alt=
"..."
>
</div>
</div>
<!-- /.row -->
<hr>
<div
class=
"row mt-5"
>
<button
class=
"btn btn-primary"
>
لاطلاع على خطة الانفاق
</button>
<button
class=
"btn btn-primary"
>
الاطلاع على المرفقات
</button>
<button
class=
"btn btn-primary"
>
الاطلاع على عمليات المتابعة
</button>
<hr>
<div
class=
"row align-items-center mb-4"
>
<div
class=
"col-auto"
>
<strong>
تخطيط المشروع
</strong>
</div>
<div
class=
"row"
>
<div
class=
"col-md-6 col-lg-4"
>
<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"
>
<span
class=
"fe fe-credit-card fe-16 text-white"
></span>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
إارة خطة الانفاق
</strong><br
/>
</div>
</div>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .col -->
<div
class=
"col-md-6 col-lg-4"
>
<div
class=
"card shadow mb-4"
>
<div
class=
"card-body file-list"
>
<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>
</div>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
إضافة معلومات المشروع
</strong><br
/>
</div>
</div>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .col -->
<div
class=
"col-md-6 col-lg-4"
>
<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"
>
<span
class=
"fe fe-map fe-16 text-white"
></span>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
إدارة الخطة
</strong><br
/>
</div>
</div>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .row -->
</div>
<div
class=
"row mt-5 d-flex align-items-around"
>
<button
class=
" btn btn-primary"
>
إضافة مرفقات
</button>
<button
class=
" btn btn-primary"
>
إضافة دراسة جدوى
</button>
<button
class=
" btn btn-primary"
>
إضافة تصنيف مشروع
</button>
<hr>
<div
class=
"row align-items-center mb-4"
>
<div
class=
"col-auto "
>
<strong>
معلومات المشروع
</strong>
</div>
<div
class=
"row"
>
<div
class=
"col-md-6 col-lg-4"
>
<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"
>
<span
class=
"fe fe-credit-card fe-16 text-white"
></span>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
المراحل
</strong><br
/>
</div>
</div>
<div
class=
"row mt-5"
>
<button
class=
"btn btn-primary"
>
إضافة مرحلة
</button>
<button
class=
"btn btn-primary"
>
إضافة مشارك
</button>
</div>
<div
class=
"row mt-5"
>
<button
class=
"btn btn-primary"
>
إضافة عملية متابعة
</button>
</div>
<hr>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .col -->
<div
class=
"col-md-6 col-lg-4"
>
<div
class=
"card shadow mb-4"
>
<div
class=
"card-body file-list"
>
<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>
</div>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
إضافة المرفقات
</strong><br
/>
</div>
</div>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .col -->
<div
class=
"col-md-6 col-lg-4"
>
<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"
>
<span
class=
"fe fe-map fe-16 text-white"
></span>
</div>
<div
class=
"flex-fill ml-4 fname"
>
<strong>
إدارة المشاركين
</strong><br
/>
</div>
</div>
</div>
<!-- .card-body -->
</div>
<!-- .card -->
</div>
<!-- .row -->
</div>
<hr>
<div
class=
"row mt-5"
>
<div
class=
"col-2 text-center"
>
<img
src=
"/assets/images/users/4.jpg"
class=
"navbar-brand-img brand-sm mx-auto my-4"
alt=
"..."
>
...
...
src/app/projects/projects.module.ts
View file @
67b886e0
...
...
@@ -19,6 +19,7 @@ import { ProjectService } from './services/project.service';
import
{
MatSelectModule
}
from
'@angular/material/select'
;
import
{
MatDatepickerModule
}
from
'@angular/material/datepicker'
;
import
{
provideNativeDateAdapter
}
from
'@angular/material/core'
;
import
{
ProjectAttachmentsComponent
}
from
'./pages/project-attachments/project-attachments.component'
;
@
NgModule
({
declarations
:
[
...
...
@@ -28,7 +29,8 @@ import {provideNativeDateAdapter} from '@angular/material/core';
ProjectDetailsComponent
,
StepRowItemComponent
,
ProjectHeaderComponent
,
ProjectCreateComponent
ProjectCreateComponent
,
ProjectAttachmentsComponent
],
providers
:
[
ProjectService
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment