Skip to content

Commit c56c454

Browse files
committed
change design of profile page, add logic of adding goals for array
1 parent 71d8e28 commit c56c454

11 files changed

Lines changed: 398 additions & 325 deletions

File tree

projects/social_platform/src/app/office/features/detail/detail.component.html

Lines changed: 95 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
</section>
77

88
<div class="detail__body">
9-
@if (info) {
9+
@if (info()) {
1010
<div class="info detail__section detail__info">
1111
<div class="info__cover" [class.info__cover--program]="listType === 'program'">
1212
<img
1313
class="info__cover"
1414
[class.info__cover--program]="listType === 'program'"
1515
[src]="
16-
info.coverImageAddress
17-
? info.coverImageAddress
16+
info().coverImageAddress
17+
? info().coverImageAddress
1818
: '/assets/images/office/profile/detail/cover.png'
1919
"
2020
alt="cover"
@@ -26,19 +26,25 @@
2626
>
2727
@if (chatService.userOnlineStatusCache | async; as cache) {
2828
<app-avatar
29-
[url]="listType === 'profile' ? info.avatar : info.imageAddress"
29+
[url]="listType === 'profile' ? info().avatar : info().imageAddress"
3030
[hasBorder]="true"
3131
[borderColor]="listType === 'project' ? 'white' : 'dark-grey'"
32-
[progress]="info.progress"
32+
[progress]="info().progress"
3333
[onlineBadgeSize]="15"
3434
[onlineBadgeBorder]="0"
3535
[onlineBadgeOffset]="8"
3636
[size]="listType === 'project' || listType === 'profile' ? 110 : 123"
37-
[isOnline]="cache[info.id] !== undefined ? cache[info.id] : info.isOnline"
37+
[isOnline]="cache[info().id] !== undefined ? cache[info().id] : info().isOnline"
3838
></app-avatar>
3939
@if (listType === 'project' || listType === 'profile') {
4040
<h1 class="info__title text-body-12">
41-
{{ listType === "project" ? info.name : info.firstName + " " + info.lastName }}
41+
{{
42+
listType === "project"
43+
? info().name
44+
: listType === "profile"
45+
? info().firstName + " " + info().lastName
46+
: ""
47+
}}
4248
</h1>
4349
} }
4450
</div>
@@ -55,14 +61,14 @@ <h1 class="info__title text-body-12">
5561

5662
<ng-template #programTpl>
5763
@if (!isUserMember && !isUserManager && !registerDateExpired) { @if
58-
(info.name.includes("Кейс-чемпионат MIR")) {
64+
(info().name.includes("Кейс-чемпионат MIR")) {
5965
<a href="https://case-champ.ru/corporate#rec1176757836">
6066
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12">
6167
зарегистрироваться
6268
</app-button>
6369
</a>
6470
} @else {
65-
<a [routerLink]="['/office/program', info.id, 'register']">
71+
<a [routerLink]="['/office/program', info().id, 'register']">
6672
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12">
6773
зарегистрироваться
6874
</app-button>
@@ -77,7 +83,7 @@ <h1 class="info__title text-body-12">
7783
<i appIcon icon="plus" appSquare="10"></i>
7884
</app-button>
7985
} @else if (isUserManager) {
80-
<a [routerLink]="'/office/program/' + info.id + '/projects-rating'">
86+
<a [routerLink]="'/office/program/' + info().id + '/projects-rating'">
8187
<app-button
8288
[appearance]="isProjectsRatingPage ? 'inline' : 'outline'"
8389
size="medium"
@@ -90,7 +96,7 @@ <h1 class="info__title text-body-12">
9096

9197
<a
9298
class="info__presentation"
93-
[href]="info.presentationAddress"
99+
[href]="info().presentationAddress"
94100
download=""
95101
target="_blank"
96102
>
@@ -102,7 +108,7 @@ <h1 class="info__title text-body-12">
102108
customTypographyClass="text-body-12"
103109
>
104110
<span>{{
105-
info.name.includes("Технолидеры Будущего")
111+
info().name.includes("Технолидеры Будущего")
106112
? "Каталог лучших стартапов 2022/23"
107113
: isUserManager
108114
? "аналитика"
@@ -138,7 +144,7 @@ <h1 class="info__title text-body-12">
138144
</app-button>
139145
</a>
140146
} @else {
141-
<a [routerLink]="'/office/program/' + info.id + '/projects'">
147+
<a [routerLink]="'/office/program/' + info().id + '/projects'">
142148
<app-button
143149
[appearance]="isProjectsPage ? 'inline' : 'outline'"
144150
size="medium"
@@ -159,7 +165,7 @@ <h1 class="info__title text-body-12">
159165
</app-button>
160166
</a>
161167
} @else {
162-
<a [routerLink]="'/office/program/' + info.id + '/members'">
168+
<a [routerLink]="'/office/program/' + info().id + '/members'">
163169
<app-button
164170
[appearance]="isMembersPage ? 'inline' : 'outline'"
165171
size="medium"
@@ -246,8 +252,8 @@ <h1 class="info__title text-body-12">
246252
</ng-template>
247253

248254
<ng-template #projectTpl>
249-
@if (!isInProject && profile?.userType !== 1) { @if (info.presentationAddress) {
250-
<a class="info__presentation" [href]="info.presentationAddress" target="_blank">
255+
@if (!isInProject && profile?.userType !== 1) { @if (info().presentationAddress) {
256+
<a class="info__presentation" [href]="info().presentationAddress" target="_blank">
251257
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12">
252258
<span>презентация</span>
253259
<i appIcon icon="arrow-down" appSquare="6"></i>
@@ -270,7 +276,7 @@ <h1 class="info__title text-body-12">
270276
} @else {
271277
<app-button
272278
[appearance]="isProjectChatPage ? 'inline' : 'outline'"
273-
[routerLink]="'/office/projects/' + info.id + '/chat'"
279+
[routerLink]="'/office/projects/' + info().id + '/chat'"
274280
appearance="outline"
275281
size="medium"
276282
customTypographyClass="text-body-12"
@@ -282,19 +288,21 @@ <h1 class="info__title text-body-12">
282288
<div class="info__divider"></div>
283289

284290
<app-button
285-
[routerLink]="'/office/projects/' + info.id + '/team'"
291+
[routerLink]="'/office/projects/' + info().id + '/team'"
286292
[appearance]="isTeamPage ? 'inline' : 'outline'"
287293
size="medium"
288294
customTypographyClass="text-body-12"
289295
>
290296
команда
291297
</app-button>
292298

293-
@if (isInProject) { @if (profile) { @if (profile.id === info.leader) {
299+
@if (isInProject) { @if (profile) { @if (profile.id === info().leader) {
294300
<a
295301
class="info__edit"
296302
[routerLink]="
297-
isEditDisable ? ['/office/projects', info.id] : ['/office/projects', info.id, 'edit']
303+
isEditDisable
304+
? ['/office/projects', info().id]
305+
: ['/office/projects', info().id, 'edit']
298306
"
299307
[queryParams]="isEditDisable ? {} : { editingStep: 'main' }"
300308
>
@@ -347,7 +355,7 @@ <h3>Выход из проекта</h3>
347355
</app-modal>
348356
} @else {
349357
<app-button
350-
[routerLink]="'/office/projects/' + info.id + '/vacancies'"
358+
[routerLink]="'/office/projects/' + info().id + '/vacancies'"
351359
[appearance]="isVacanciesPage ? 'inline' : 'outline'"
352360
size="medium"
353361
customTypographyClass="text-body-12"
@@ -359,8 +367,7 @@ <h3>Выход из проекта</h3>
359367

360368
<ng-template #profileTpl>
361369
@if (profile) {
362-
<div class="profile__btns">
363-
<a class="profile__cv">
370+
<!-- <a class="profile__cv">
364371
@if(isSubscriptionActive()){
365372
<app-button
366373
(click)="sendCVEmail()"
@@ -370,47 +377,74 @@ <h3>Выход из проекта</h3>
370377
Скачать CV
371378
</app-button>
372379
}
373-
</a>
380+
</a> -->
374381

375-
@if (+profile.id !== +info.id) {
376-
<a
377-
class="info__send-message"
378-
[routerLink]="['/office/chats', profile.id + '_' + info.id]"
382+
<app-button
383+
style="opacity: 0.5"
384+
size="medium"
385+
appearance="outline"
386+
[disabled]="true"
387+
customTypographyClass="text-body-12"
388+
>подтвердить навыки</app-button
389+
>
390+
391+
<app-button
392+
style="opacity: 0.5"
393+
size="medium"
394+
appearance="outline"
395+
[disabled]="true"
396+
customTypographyClass="text-body-12"
397+
>поделится профилем</app-button
398+
>
399+
400+
<div class="info__divider"></div>
401+
402+
<app-button
403+
style="opacity: 0.5"
404+
size="medium"
405+
appearance="outline"
406+
[disabled]="true"
407+
customTypographyClass="text-body-12"
408+
>пригласить</app-button
409+
>
410+
411+
@if (+profile.id !== +info().id) {
412+
<a
413+
class="info__send-message"
414+
[routerLink]="['/office/chats', profile.id + '_' + info().id]"
415+
>
416+
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12"
417+
>написать</app-button
379418
>
380-
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12"
381-
>написать</app-button
419+
</a>
420+
} @else {
421+
<a
422+
class="profile__edit"
423+
routerLink="/office/profile/edit"
424+
[queryParams]="{ editingStep: 'main' }"
425+
>
426+
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12">
427+
{{
428+
info().progress! === 100 ? "редактировать профиль" : "закончить заполнение резюме"
429+
}}
430+
@if (info().progress !== 100) {
431+
<i
432+
appIcon
433+
icon="accent-error"
434+
appSquare="16"
435+
(mouseenter)="showTooltip()"
436+
(mouseleave)="hideTooltip()"
437+
style="color: var(--accent); margin-left: 5px"
438+
></i>
439+
<span
440+
class="profile__tooltip text-body-12"
441+
[class.profile__tooltip--visible]="isTooltipVisible"
442+
>{{ tooltipText }}</span
382443
>
383-
</a>
384-
} @else {
385-
<a
386-
class="profile__edit"
387-
routerLink="/office/profile/edit"
388-
[queryParams]="{ editingStep: 'main' }"
389-
>
390-
<app-button appearance="outline" size="medium" customTypographyClass="text-body-12">
391-
{{
392-
info.progress! === 100 ? "редактировать профиль" : "закончить заполнение резюме"
393-
}}
394-
@if (info.progress !== 100) {
395-
<i
396-
appIcon
397-
icon="accent-error"
398-
appSquare="16"
399-
(mouseenter)="showTooltip()"
400-
(mouseleave)="hideTooltip()"
401-
style="color: var(--accent); margin-left: 5px"
402-
></i>
403-
<span
404-
class="profile__tooltip text-body-12"
405-
[class.profile__tooltip--visible]="isTooltipVisible"
406-
>{{ tooltipText }}</span
407-
>
408-
}
409-
</app-button>
410-
</a>
411-
}
412-
</div>
413-
} @if (profile) { @if (profile.id === info.id) {
444+
}
445+
</app-button>
446+
</a>
447+
} } @if (profile) { @if (profile.id === info().id) {
414448
<app-modal [open]="isProfileFill" (openChange)="isProfileFill = !isProfileFill">
415449
<div class="cancel">
416450
<img

0 commit comments

Comments
 (0)