Merge pull request #5317 from tsiegleauq/set_presence_on_userlist
Allow set present on user list if config was set
This commit is contained in:
commit
35ce596706
@ -98,7 +98,7 @@
|
||||
class="checkbox-ripple-padding"
|
||||
(change)="setPresent(user)"
|
||||
[checked]="user.is_present"
|
||||
[disabled]="isMultiSelect || !this.operator.hasPerms('users.can_manage')"
|
||||
[disabled]="isPresentToggleDisabled(user)"
|
||||
>
|
||||
<span>{{ 'Present' | translate }}</span>
|
||||
</mat-checkbox>
|
||||
|
@ -134,6 +134,10 @@ export class UserListComponent extends BaseListViewComponent<ViewUser> implement
|
||||
*/
|
||||
public filterProps = ['full_name', 'groups', 'structure_level', 'number'];
|
||||
|
||||
private selfPresentConfStr = 'users_allow_self_set_present';
|
||||
|
||||
private allowSelfSetPresent: boolean;
|
||||
|
||||
/**
|
||||
* The usual constructor for components
|
||||
* @param titleService Serivce for setting the title
|
||||
@ -176,6 +180,7 @@ export class UserListComponent extends BaseListViewComponent<ViewUser> implement
|
||||
// enable multiSelect for this listView
|
||||
this.canMultiSelect = true;
|
||||
config.get<boolean>('users_enable_presence_view').subscribe(state => (this._presenceViewConfigured = state));
|
||||
config.get<boolean>(this.selfPresentConfStr).subscribe(allowed => (this.allowSelfSetPresent = allowed));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -201,6 +206,16 @@ export class UserListComponent extends BaseListViewComponent<ViewUser> implement
|
||||
this.router.navigate(['./new'], { relativeTo: this.route });
|
||||
}
|
||||
|
||||
public isPresentToggleDisabled(user: ViewUser): boolean {
|
||||
if (this.isMultiSelect) {
|
||||
return true;
|
||||
} else if (this.allowSelfSetPresent && this.operator.viewUser === user) {
|
||||
return false;
|
||||
} else {
|
||||
return !this.operator.hasPerms('users.can_manage');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function opens the dialog,
|
||||
* where the user can quick change the groups,
|
||||
@ -412,6 +427,11 @@ export class UserListComponent extends BaseListViewComponent<ViewUser> implement
|
||||
*/
|
||||
public setPresent(viewUser: ViewUser): void {
|
||||
viewUser.user.is_present = !viewUser.user.is_present;
|
||||
|
||||
if (this.operator.viewUser === viewUser) {
|
||||
this.operator.setPresence(viewUser.user.is_present).catch(this.raiseError);
|
||||
} else {
|
||||
this.repo.update(viewUser.user, viewUser).catch(this.raiseError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user