set member to admin

This commit is contained in:
Peter Maquiran
2024-08-06 11:24:00 +01:00
parent 7e14f55383
commit 2f214e0025
3889 changed files with 581 additions and 1962886 deletions
@@ -24,9 +24,8 @@
</ion-header>
<ion-content>
<div class="main-content">
<ion-virtual-scroll [items]="members | filter:textSearch: 'name'" approxItemHeight="70px" [headerFn]="separateLetter">
<div class="main-content" *ngIf="roomMembers$ | async as memberList">
<ion-virtual-scroll [items]="memberList | filter:textSearch: 'wxFullName'" approxItemHeight="70px" [headerFn]="separateLetter">
<div class="item-divider" *virtualHeader="let header">
<ion-label>{{header}}</ion-label>
@@ -34,7 +33,7 @@
<div *virtualItem="let user" class="item-checkbox">
<div class="cursor-pointer d-flex width-100" (click)="setRoomOwner(user)" (ionChange)="setRoomOwner(user)">
<p class="flex-1">{{user.name}}</p>
<p class="flex-1">{{user.wxFullName}}</p>
<ion-icon slot="end" class="{{user.status}}" name="ellipse"></ion-icon>
</div>
</div>
@@ -1,9 +1,12 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { ChatSystemService } from 'src/app/services/chat/chat-system.service';
import { TableMemberList } from 'src/app/module/chat/data/data-source/room/rooom-local-data-source.service';
import { RoomRepositoryService } from 'src/app/module/chat/data/repository/room-repository.service';
import { ThemeService } from 'src/app/services/theme.service'
import { ToastService } from 'src/app/services/toast.service';
import { Observable as DexieObservable } from 'Dexie';
import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service';
@Component({
selector: 'app-set-room-owner',
@@ -15,13 +18,15 @@ export class SetRoomOwnerPage implements OnInit {
textSearch:string = "";
roomId:any;
members:any;
roomMembers$: DexieObservable<TableMemberList[] | undefined>
constructor(
private modalController: ModalController,
private navParams: NavParams,
public ThemeService: ThemeService,
private toastService: ToastService,
public ChatSystemService: ChatSystemService,
private roomRepositoryService: RoomRepositoryService,
private chatServiceService: ChatServiceService
) {
this.roomId = this.navParams.get('roomId');
this.members = this.navParams.get('members');
@@ -29,23 +34,24 @@ export class SetRoomOwnerPage implements OnInit {
ngOnInit() {
// this.chatService.refreshtoken();
this.roomMembers$ = this.roomRepositoryService.getRoomMemberNoneAdminByIdLive(this.roomId) as any
}
async close(){
async close() {
this.modalController.dismiss();
}
onChange(event){
onChange(event) {
this.textSearch = event.detail.value;
}
separateLetter(record, recordIndex, records){
separateLetter(record:TableMemberList, recordIndex, records:TableMemberList[]) {
if(recordIndex == 0){
return record.name[0];
return record.wxFullName[0];
}
let first_prev = records[recordIndex - 1].name[0];
let first_current = record.name[0];
let first_prev = records[recordIndex - 1].wxFullName[0];
let first_current = record.wxFullName[0];
if(first_prev != first_current){
return first_current;
@@ -53,46 +59,20 @@ export class SetRoomOwnerPage implements OnInit {
return null;
}
async setRoomOwner(user:any){
async setRoomOwner(user:TableMemberList) {
let res:any;
try {
res = await this.ChatSystemService.addRoomOwner(this.roomId, user._id)
} catch (error) {
console.error(error)
}
if(res.error){
if(res.error.error == 'error-user-already-owner'){
this.toastService._badRequest('Este utilizador já é administrador');
}
else{
this.toastService._badRequest('Não foi possível completar a ação, por favor tente novamente.');
}
}
else{
this.modalController.dismiss('success');
}
/*
let body = {
"roomId": this.roomId,
"userId": user._id
}
this.chatService.addGroupOwner(body).subscribe((res)=>{
this.close();
this.toastService._successMessage('Operação realizada com sucesso');
}, (e) => {
if(e.error.errorType == 'error-user-already-owner'){
this.toastService._badRequest('Este utilizador já é administrador');
}
else{
this.toastService._badRequest('Não foi possível completar a ação, por favor tente novamente.');
}
}); */
const result = await this.chatServiceService.setAdmin({
roomId: user.roomId,
memberId: user.wxUserId.toString()
});
if(result.isOk()) {
this.roomRepositoryService.getRoomById(this.roomId)
// this.modalController.dismiss('success');
} else {
this.toastService._badRequest('Não foi possível completar a ação, por favor tente novamente.');
}
}
}