Merge pull request #4274 from MaximilianKrambach/smallchanges
various small fixes
This commit is contained in:
commit
ab557486cb
@ -156,7 +156,10 @@ export class HistoryListComponent extends ListViewBaseComponent<ViewHistory> imp
|
||||
*/
|
||||
private setFilters(): void {
|
||||
this.dataSource.filterPredicate = (data, filter) => {
|
||||
filter = filter.toLowerCase();
|
||||
if (!data || !data.information) {
|
||||
return false;
|
||||
}
|
||||
filter = filter ? filter.toLowerCase() : '';
|
||||
if (
|
||||
this.getElementInfo(data)
|
||||
.toLowerCase()
|
||||
@ -164,7 +167,7 @@ export class HistoryListComponent extends ListViewBaseComponent<ViewHistory> imp
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
if (data.user.full_name.toLowerCase().indexOf(filter) >= 0) {
|
||||
if (data.user && data.user.full_name.toLowerCase().indexOf(filter) >= 0) {
|
||||
return true;
|
||||
}
|
||||
return (
|
||||
|
@ -1,38 +1,48 @@
|
||||
<os-meta-text-block *ngFor="let section of sections" [showActionRow]="canEditSection(section)" icon="comment">
|
||||
<ng-container class="meta-text-block-title">
|
||||
<span>{{ section.getTitle() }}</span>
|
||||
</ng-container>
|
||||
|
||||
<ng-container class="meta-text-block-content">
|
||||
<ng-container *ngIf="!isCommentEdited(section)">
|
||||
<div *ngIf="comments[section.id]" [innerHTML]="comments[section.id].comment"></div>
|
||||
<div class="no-content" *ngIf="!comments[section.id] || !comments[section.id].comment" translate>
|
||||
No comment
|
||||
</div>
|
||||
<div class="text-warning" *ngFor="let section of sections">
|
||||
<os-meta-text-block *ngIf="sectionVisible(section)" [showActionRow]="canEditSection(section)" icon="comment">
|
||||
<ng-container class="meta-text-block-title">
|
||||
<span>{{ section.getTitle() }}</span>
|
||||
</ng-container>
|
||||
<form [formGroup]="commentForms[section.id]" *ngIf="isCommentEdited(section)">
|
||||
<!-- The HTML Editor -->
|
||||
<h4 translate>Comment</h4>
|
||||
<editor
|
||||
formControlName='comment'
|
||||
[init]="tinyMceSettings"
|
||||
></editor>
|
||||
</form>
|
||||
</ng-container>
|
||||
|
||||
<ng-container class="meta-text-block-action-row">
|
||||
<button mat-icon-button *ngIf="!isCommentEdited(section)" (click)="editComment(section)"
|
||||
matTooltip="{{ 'Edit' | translate }}">
|
||||
<mat-icon>edit</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button *ngIf="isCommentEdited(section)" (click)="saveComment(section)"
|
||||
matTooltip="{{ 'Save' | translate }}">
|
||||
<mat-icon>save</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button *ngIf="isCommentEdited(section)" (click)="cancelEditing(section)"
|
||||
matTooltip="{{ 'Cancel edit' | translate }}">
|
||||
<mat-icon>close</mat-icon>
|
||||
</button>
|
||||
</ng-container>
|
||||
</os-meta-text-block>
|
||||
<ng-container class="meta-text-block-content">
|
||||
<ng-container *ngIf="!isCommentEdited(section)">
|
||||
<div *ngIf="comments[section.id]" [innerHTML]="comments[section.id].comment"></div>
|
||||
<div class="no-content" *ngIf="!comments[section.id] || !comments[section.id].comment" translate>
|
||||
No comment
|
||||
</div>
|
||||
</ng-container>
|
||||
<form [formGroup]="commentForms[section.id]" *ngIf="isCommentEdited(section)">
|
||||
<!-- The HTML Editor -->
|
||||
<h4 translate>Comment</h4>
|
||||
<editor formControlName="comment" [init]="tinyMceSettings"></editor>
|
||||
</form>
|
||||
</ng-container>
|
||||
|
||||
<ng-container class="meta-text-block-action-row">
|
||||
<button
|
||||
mat-icon-button
|
||||
*ngIf="!isCommentEdited(section)"
|
||||
(click)="editComment(section)"
|
||||
matTooltip="{{ 'Edit' | translate }}"
|
||||
>
|
||||
<mat-icon>edit</mat-icon>
|
||||
</button>
|
||||
<button
|
||||
mat-icon-button
|
||||
*ngIf="isCommentEdited(section)"
|
||||
(click)="saveComment(section)"
|
||||
matTooltip="{{ 'Save' | translate }}"
|
||||
>
|
||||
<mat-icon>save</mat-icon>
|
||||
</button>
|
||||
<button
|
||||
mat-icon-button
|
||||
*ngIf="isCommentEdited(section)"
|
||||
(click)="cancelEditing(section)"
|
||||
matTooltip="{{ 'Cancel edit' | translate }}"
|
||||
>
|
||||
<mat-icon>close</mat-icon>
|
||||
</button>
|
||||
</ng-container>
|
||||
</os-meta-text-block>
|
||||
</div>
|
||||
|
@ -155,6 +155,19 @@ export class MotionCommentsComponent extends BaseViewComponent {
|
||||
delete this.commentForms[section.id];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a section is visible at all
|
||||
*
|
||||
* @param section
|
||||
* @returns true if there is any content or the user is allowed to edit
|
||||
*/
|
||||
public sectionVisible(section: ViewMotionCommentSection): boolean {
|
||||
if (!this.canEditSection(section) && (!this.comments[section.id] || !this.comments[section.id].comment)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true, if the comment is edited.
|
||||
*
|
||||
|
@ -62,7 +62,7 @@
|
||||
<mat-icon>attach_file</mat-icon>
|
||||
</span>
|
||||
<!-- title -->
|
||||
<span class="motion-list-title" matTooltip="{{ motion.title }}">
|
||||
<span class="motion-list-title">
|
||||
{{ motion.title }}
|
||||
</span>
|
||||
<!-- favorite icon -->
|
||||
|
@ -120,7 +120,7 @@ export class MotionMultiselectService {
|
||||
id: motion.id,
|
||||
recommendation: selectedChoice.action ? 0 : (selectedChoice.items as number)
|
||||
}));
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_recommendation', {
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_recommendation/', {
|
||||
motions: requestData
|
||||
});
|
||||
}
|
||||
@ -171,7 +171,7 @@ export class MotionMultiselectService {
|
||||
submitters: submitterIds
|
||||
};
|
||||
});
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_submitters', { motions: requestData });
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_submitters/', { motions: requestData });
|
||||
} else if (selectedChoice && selectedChoice.action === choices[1]) {
|
||||
const requestData = motions.map(motion => {
|
||||
const submitterIdsToRemove = selectedChoice.items as number[];
|
||||
@ -181,7 +181,7 @@ export class MotionMultiselectService {
|
||||
submitters: submitterIds
|
||||
};
|
||||
});
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_submitters', { motions: requestData });
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_submitters/', { motions: requestData });
|
||||
}
|
||||
}
|
||||
|
||||
@ -203,7 +203,7 @@ export class MotionMultiselectService {
|
||||
tags: tagIds
|
||||
};
|
||||
});
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags', { motions: requestData });
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags/', { motions: requestData });
|
||||
} else if (selectedChoice && selectedChoice.action === choices[1]) {
|
||||
const requestData = motions.map(motion => {
|
||||
const tagIdsToRemove = selectedChoice.items as number[];
|
||||
@ -213,7 +213,7 @@ export class MotionMultiselectService {
|
||||
tags: tagIds
|
||||
};
|
||||
});
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags', { motions: requestData });
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags/', { motions: requestData });
|
||||
} else if (selectedChoice && selectedChoice.action === choices[2]) {
|
||||
const requestData = motions.map(motion => {
|
||||
return {
|
||||
@ -221,7 +221,7 @@ export class MotionMultiselectService {
|
||||
tags: []
|
||||
};
|
||||
});
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags', { motions: requestData });
|
||||
await this.httpService.post('/rest/motions/motion/manage_multiple_tags/', { motions: requestData });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -258,8 +258,13 @@ export class UserListComponent extends ListViewBaseComponent<ViewUser> implement
|
||||
* Handler for bulk sending e-mail invitations. Uses selectedRows defined via
|
||||
* multiSelect mode.
|
||||
*/
|
||||
public sendInvitationEmailSelected(): void {
|
||||
this.repo.sendInvitationEmail(this.selectedRows).then(this.raiseError, this.raiseError);
|
||||
public async sendInvitationEmailSelected(): Promise<void> {
|
||||
const content =
|
||||
this.translate.instant('Send invitation e-Mails to the selected users?') +
|
||||
` (${this.selectedRows.length} E-Mails)`;
|
||||
if (await this.promptService.open('Are you sure?', content)) {
|
||||
this.repo.sendInvitationEmail(this.selectedRows).then(this.raiseError, this.raiseError);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user