User detail template fixes
Adds a new template to user detail, to show user information in multiple lines Also adds a new feature to the headbar. Long titles (over title slot) will break using ellipsis
This commit is contained in:
parent
83ff758977
commit
62e3256c54
@ -14,8 +14,18 @@
|
|||||||
.toolbar-left {
|
.toolbar-left {
|
||||||
display: contents;
|
display: contents;
|
||||||
.toolbar-left-text {
|
.toolbar-left-text {
|
||||||
display: initial;
|
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
::ng-deep .title-slot {
|
||||||
|
h2 {
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toolbar-centered {
|
.toolbar-centered {
|
||||||
|
@ -73,7 +73,11 @@
|
|||||||
<span translate>List of speakers</span>
|
<span translate>List of speakers</span>
|
||||||
</button>
|
</button>
|
||||||
<!-- Project -->
|
<!-- Project -->
|
||||||
<os-projector-button [object]="motion" [menuItem]="true" *osPerms="'core.can_manage_projector'"></os-projector-button>
|
<os-projector-button
|
||||||
|
[object]="motion"
|
||||||
|
[menuItem]="true"
|
||||||
|
*osPerms="'core.can_manage_projector'"
|
||||||
|
></os-projector-button>
|
||||||
<!-- New amendment -->
|
<!-- New amendment -->
|
||||||
<button mat-menu-item (click)="createAmendment()" *ngIf="perms.isAllowed('can_create_amendments', motion)">
|
<button mat-menu-item (click)="createAmendment()" *ngIf="perms.isAllowed('can_create_amendments', motion)">
|
||||||
<mat-icon>add</mat-icon>
|
<mat-icon>add</mat-icon>
|
||||||
@ -360,7 +364,9 @@
|
|||||||
<!-- Make the whole container a trigger to prevent unexpected menu behavior -->
|
<!-- Make the whole container a trigger to prevent unexpected menu behavior -->
|
||||||
<div [matMenuTriggerFor]="tagMenu">
|
<div [matMenuTriggerFor]="tagMenu">
|
||||||
<!-- No selected tags -->
|
<!-- No selected tags -->
|
||||||
<mat-basic-chip *ngIf="!motion.hasTags()" class="grey" disabled disableRipple> {{ '–' }} </mat-basic-chip>
|
<mat-basic-chip *ngIf="!motion.hasTags()" class="grey" disabled disableRipple>
|
||||||
|
{{ '–' }}
|
||||||
|
</mat-basic-chip>
|
||||||
|
|
||||||
<!-- Display a chip list of tags -->
|
<!-- Display a chip list of tags -->
|
||||||
<mat-chip-list class="mat-chip-list-stacked">
|
<mat-chip-list class="mat-chip-list-stacked">
|
||||||
@ -374,7 +380,9 @@
|
|||||||
<!-- For non privileged users -->
|
<!-- For non privileged users -->
|
||||||
<div *ngIf="!perms.isAllowed('change_metadata', motion)">
|
<div *ngIf="!perms.isAllowed('change_metadata', motion)">
|
||||||
<mat-chip-list class="mat-chip-list-stacked">
|
<mat-chip-list class="mat-chip-list-stacked">
|
||||||
<mat-basic-chip *ngFor="let tag of motion.tags" class="grey" disableRipple> {{ tag }} </mat-basic-chip>
|
<mat-basic-chip *ngFor="let tag of motion.tags" class="grey" disableRipple>
|
||||||
|
{{ tag }}
|
||||||
|
</mat-basic-chip>
|
||||||
</mat-chip-list>
|
</mat-chip-list>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,12 +42,11 @@
|
|||||||
</os-head-bar>
|
</os-head-bar>
|
||||||
|
|
||||||
<mat-card [ngClass]="editUser ? 'os-form-card' : 'os-card'" *ngIf="isAllowed('seeName')">
|
<mat-card [ngClass]="editUser ? 'os-form-card' : 'os-card'" *ngIf="isAllowed('seeName')">
|
||||||
<form
|
<ng-container *ngIf="editUser; then editView; else showView"></ng-container>
|
||||||
[ngClass]="{ 'mat-form-field-enabled': editUser }"
|
</mat-card>
|
||||||
[formGroup]="personalInfoForm"
|
|
||||||
*ngIf="user"
|
<ng-template #editView>
|
||||||
(keydown)="onKeyDown($event)"
|
<form [formGroup]="personalInfoForm" *ngIf="user" (keydown)="onKeyDown($event)">
|
||||||
>
|
|
||||||
<div *ngIf="isAllowed('seeName')">
|
<div *ngIf="isAllowed('seeName')">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<mat-form-field
|
<mat-form-field
|
||||||
@ -177,7 +176,6 @@
|
|||||||
<!-- The HTML Editor -->
|
<!-- The HTML Editor -->
|
||||||
<h4 translate *ngIf="user.about_me || editUser">About me</h4>
|
<h4 translate *ngIf="user.about_me || editUser">About me</h4>
|
||||||
<editor formControlName="about_me" [init]="tinyMceSettings" *ngIf="editUser"></editor>
|
<editor formControlName="about_me" [init]="tinyMceSettings" *ngIf="editUser"></editor>
|
||||||
<div *ngIf="user.about_me && !editUser" [innerHTML]="sanitizedText(user.about_me)"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="isAllowed('seePersonal')">
|
<div *ngIf="isAllowed('seePersonal')">
|
||||||
@ -239,4 +237,77 @@
|
|||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</mat-card>
|
</ng-template>
|
||||||
|
|
||||||
|
<ng-template #showView>
|
||||||
|
<!-- User name -->
|
||||||
|
<div *ngIf="isAllowed('seeName')">
|
||||||
|
<h4 translate>Name</h4>
|
||||||
|
<span>{{ user.short_name }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="isAllowed('seePersonal')">
|
||||||
|
<!-- Mail -->
|
||||||
|
<div *ngIf="user.email">
|
||||||
|
<h4 translate>Email</h4>
|
||||||
|
<span>{{ user.email }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Gender -->
|
||||||
|
<div *ngIf="user.gender">
|
||||||
|
<h4 translate>Gender</h4>
|
||||||
|
<span>{{ user.gender | translate }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Structure Level -->
|
||||||
|
<div *ngIf="user.structure_level">
|
||||||
|
<h4 translate>Structure level</h4>
|
||||||
|
<span>{{ user.structure_level }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Participant number -->
|
||||||
|
<div *ngIf="user.number">
|
||||||
|
<h4 translate>Participant number</h4>
|
||||||
|
<span>{{ user.number }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Groups -->
|
||||||
|
<div *ngIf="user.groups && user.groups.length > 0">
|
||||||
|
<h4 translate>Groups</h4>
|
||||||
|
<span *ngFor="let group of user.groups; let last = last">
|
||||||
|
{{ group.getTitle() | translate }}
|
||||||
|
<span *ngIf="!last">, </span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="isAllowed('manage')">
|
||||||
|
<!-- Initial Password -->
|
||||||
|
<div *ngIf="user.default_password">
|
||||||
|
<h4 translate>Initial password</h4>
|
||||||
|
<span>{{ user.default_password }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="isAllowed('seePersonal')">
|
||||||
|
<!-- About me -->
|
||||||
|
<div *ngIf="user.about_me">
|
||||||
|
<h4 translate>About me</h4>
|
||||||
|
<div [innerHTML]="sanitizedText(user.about_me)"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Username -->
|
||||||
|
<div *ngIf="user.username">
|
||||||
|
<h4 translate>Username</h4>
|
||||||
|
<span>{{ user.username }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="isAllowed('seeExtra')">
|
||||||
|
<!-- Comment -->
|
||||||
|
<div *ngIf="user.comment">
|
||||||
|
<h4 translate>Comment</h4>
|
||||||
|
<span>{{ user.comment }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
@ -1,65 +1,33 @@
|
|||||||
// hide certain stuff whem editing is disabled
|
.form70 {
|
||||||
.mat-form-field-disabled {
|
|
||||||
::ng-deep {
|
::ng-deep {
|
||||||
.mat-input-element {
|
width: 70%;
|
||||||
color: currentColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-select-value {
|
|
||||||
color: currentColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-form-field-underline {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-hint {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-select-value {
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// angular material does not have this class. This is virtually set using ngClass
|
.form37 {
|
||||||
.mat-form-field-enabled {
|
::ng-deep {
|
||||||
.form70 {
|
width: 37%;
|
||||||
::ng-deep {
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.form37 {
|
.form25 {
|
||||||
::ng-deep {
|
::ng-deep {
|
||||||
width: 37%;
|
width: 25%;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.form25 {
|
.form16 {
|
||||||
::ng-deep {
|
::ng-deep {
|
||||||
width: 25%;
|
width: 16%;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.form16 {
|
.force-min-with {
|
||||||
::ng-deep {
|
min-width: 110px;
|
||||||
width: 16%;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.force-min-with {
|
.distance {
|
||||||
min-width: 110px;
|
padding-right: 5%;
|
||||||
}
|
|
||||||
|
|
||||||
.distance {
|
|
||||||
padding-right: 5%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mat-checkbox {
|
mat-checkbox {
|
||||||
|
Loading…
Reference in New Issue
Block a user