+
-
-
-
-
-
-
-
-
+
+ 현재접속자&쪽지전송
-
-
-
-
+
-
- 0; else noCurrentUser"
- >
-
-
-
-
번호
-
상부
-
- 아이디
-
- 닉네임
-
-
- 등급
-
- 레벨
-
-
현재위치
-
보유금
-
- 게임중머니
-
- 콤프
-
-
사이트
-
카지노->캐쉬
-
쪽지보내기
-
배팅내역
-
로그아웃
-
-
-
-
-
-
{{ currentUser.idx }}
-
{{ currentUser.highRank }}
-
-
- {{ currentUser.signinId }}
-
-
- {{ currentUser.nickname }}
-
- {{ currentUser.currentLocation }}
-
-
- {{ currentUser.rank }}
-
- {{ currentUser.level }}
-
-
{{ currentUser.currentLocation }}
-
- {{ currentUser.ownCash }}
-
- {{ currentUser.ownComp }}
-
-
- {{ currentUser.gameMoney }}
-
- {{ currentUser.ownComp }}
-
-
- {{ currentUser.siteAddress }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 번호 |
+
+ {{ info.idx }}
+ |
-
-
- There are no data!
-
-
-
+
+
+ 상위 |
+
+ {{ info.highRank }} |
+
+
+
+
+ 아이디
+
+ 닉네임
+ |
+
+ {{ info.signinId }}
+
+ {{ info.nickname }}
+ |
+
+
+
+
+
+ 등급
+
+ 레벨
+
+ 현재위치
+ |
+
+ {{ info.rank }}
+
+ {{ info.level }}
+
+ {{ info.currentLocation }}
+ |
+
+
+
+
+ 캐쉬 |
+ {{ info.ownCash }} |
+
+
+
+
+
+ 게임중머니
+
+ 콤프
+ |
+
+ {{ info.gameMoney }}
+
+ {{ info.ownComp }}
+ |
+
+
+
+
+ 사이트 |
+ {{ info.siteAddress }} |
+
+
+
+
+ 카지노->캐쉬 |
+
+
+
+
+ |
+
+
+
+
+
+ 쪽지보내기
+
+ 배팅내역
+
+ 로그아웃
+ |
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
=
+ new MatTableDataSource();
+
currentUsers$!: Observable
;
users$!: Observable;
@@ -79,6 +82,18 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy {
pagination?: CurrentUserPagination;
targetForm!: FormGroup;
+ currentUserTableColumns: string[] = [
+ 'idx',
+ 'highRank',
+ 'signinId',
+ 'level',
+ 'ownCash',
+ 'comp',
+ 'site',
+ 'casino',
+ 'etcBtn',
+ ];
+
private _unsubscribeAll: Subject = new Subject();
/**
@@ -122,6 +137,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy {
if (!curUsers) {
return;
}
+ this.currentUserDataSource.data = curUsers;
this.targetForm.patchValue(curUsers[0]);
// Mark for check
diff --git a/src/app/modules/admin/member/unconnected/components/list.component.html b/src/app/modules/admin/member/unconnected/components/list.component.html
index 3945024..80dfbcb 100644
--- a/src/app/modules/admin/member/unconnected/components/list.component.html
+++ b/src/app/modules/admin/member/unconnected/components/list.component.html
@@ -254,6 +254,32 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/src/app/modules/admin/member/user/components/list.component.html b/src/app/modules/admin/member/user/components/list.component.html
index c00ca7a..140ef60 100644
--- a/src/app/modules/admin/member/user/components/list.component.html
+++ b/src/app/modules/admin/member/user/components/list.component.html
@@ -204,8 +204,40 @@
-
관리
-
요율
+
+
+ 관리
+
+
+
+
+
+
+
+
+
+
+
+
요율
{{ user.highRank }}
diff --git a/src/app/modules/admin/member/user/components/list.component.ts b/src/app/modules/admin/member/user/components/list.component.ts
index 8146510..adf8393 100644
--- a/src/app/modules/admin/member/user/components/list.component.ts
+++ b/src/app/modules/admin/member/user/components/list.component.ts
@@ -20,6 +20,13 @@ import { UserPagination } from '../models/user-pagination';
import { UserService } from '../services/user.service';
import { Router } from '@angular/router';
import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { MatDialog } from '@angular/material/dialog';
+import { CashComposeComponent } from '../compose/cash-compose.component';
+import { CommissionComposeComponent } from '../compose/commission-compose.component';
+import { CompComposeComponent } from '../compose/comp-compose.component';
+import { CouponComposeComponent } from '../compose/coupon-compose.component';
+import { MessageComposeComponent } from '../compose/message-compose.component';
+import { SignoutComposeComponent } from '../compose/signout-compose.component';
@Component({
selector: 'user-list',
@@ -46,6 +53,10 @@ import { IdentityService } from 'app/modules/polyglot/identity/services/identity
grid-template-columns: 20px 40px 40px 100px auto 40px 140px 140px 140px 140px 140px 140px;
}
}
+
+ .mat-tooltip {
+ white-space: pre-line;
+ }
`,
],
encapsulation: ViewEncapsulation.None,
@@ -75,7 +86,8 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy {
private _formBuilder: FormBuilder,
private _userService: UserService,
private _identityService: IdentityService,
- private router: Router
+ private router: Router,
+ private _matDialog: MatDialog
) {}
// -----------------------------------------------------------------------------------------------------
@@ -194,4 +206,66 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy {
__trackByFn(index: number, item: any): any {
return item.id || index;
}
+
+ __onClickCash(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(CashComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __onClickCommission(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(CommissionComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __onClickComp(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(CompComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __onClickCoupon(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(CouponComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __onClickMessage(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(MessageComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __onClickSignout(event: MouseEvent): void {
+ const dialogRef = this._matDialog.open(SignoutComposeComponent, {
+ data: { price: '', memo: '' },
+ });
+
+ dialogRef.afterClosed().subscribe((result) => {
+ console.log('Compose dialog was closed!');
+ });
+ }
+ __getRateTooltop(): string {
+ const tempRate = 0;
+ const resultTooltip = `
+ 요율확인 \n 카지노-바카라: ${tempRate}% \n 카지노-룰렛: ${tempRate}% \n 카지노-드레곤타이거: ${tempRate}% \n 카지노-그외:${tempRate}% \n 슬롯:${tempRate}% \n 카지노루징: ${tempRate}% \n 슬롯루징: ${tempRate}%
+ `;
+ return resultTooltip;
+ }
}
diff --git a/src/app/modules/admin/member/user/compose/cash-compose.component.html b/src/app/modules/admin/member/user/compose/cash-compose.component.html
new file mode 100644
index 0000000..603d2bb
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/cash-compose.component.html
@@ -0,0 +1,88 @@
+
diff --git a/src/app/modules/admin/member/user/compose/cash-compose.component.ts b/src/app/modules/admin/member/user/compose/cash-compose.component.ts
new file mode 100644
index 0000000..21b0dda
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/cash-compose.component.ts
@@ -0,0 +1,94 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface CashComposeData {
+ price: string;
+ memo: string;
+}
+export interface CashComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-cash-compose',
+ templateUrl: './cash-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class CashComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef
,
+ @Inject(MAT_DIALOG_DATA) public data: CashComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ price: ['', [Validators.required]],
+ memo: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/compose/commission-compose.component.html b/src/app/modules/admin/member/user/compose/commission-compose.component.html
new file mode 100644
index 0000000..3c40fc8
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/commission-compose.component.html
@@ -0,0 +1,96 @@
+
diff --git a/src/app/modules/admin/member/user/compose/commission-compose.component.ts b/src/app/modules/admin/member/user/compose/commission-compose.component.ts
new file mode 100644
index 0000000..f40d22b
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/commission-compose.component.ts
@@ -0,0 +1,99 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface CommissionComposeData {
+ price: string;
+ memo: string;
+}
+export interface CommissionComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-commission-compose',
+ templateUrl: './commission-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class CommissionComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: CommissionComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ bacaraRate: ['', [Validators.required]],
+ rouletteRate: ['', [Validators.required]],
+ dragonTigerRate: ['', [Validators.required]],
+ otherGameRate: ['', [Validators.required]],
+ slotRate: ['', [Validators.required]],
+ casinoLoosing: ['', [Validators.required]],
+ slotLoosing: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/compose/comp-compose.component.html b/src/app/modules/admin/member/user/compose/comp-compose.component.html
new file mode 100644
index 0000000..e871fda
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/comp-compose.component.html
@@ -0,0 +1,88 @@
+
diff --git a/src/app/modules/admin/member/user/compose/comp-compose.component.ts b/src/app/modules/admin/member/user/compose/comp-compose.component.ts
new file mode 100644
index 0000000..a09d7c6
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/comp-compose.component.ts
@@ -0,0 +1,94 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface CompComposeData {
+ price: string;
+ memo: string;
+}
+export interface CompComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-comp-compose',
+ templateUrl: './comp-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class CompComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: CompComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ price: ['', [Validators.required]],
+ memo: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/compose/coupon-compose.component.html b/src/app/modules/admin/member/user/compose/coupon-compose.component.html
new file mode 100644
index 0000000..edd8fa0
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/coupon-compose.component.html
@@ -0,0 +1,88 @@
+
diff --git a/src/app/modules/admin/member/user/compose/coupon-compose.component.ts b/src/app/modules/admin/member/user/compose/coupon-compose.component.ts
new file mode 100644
index 0000000..7a64bc9
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/coupon-compose.component.ts
@@ -0,0 +1,94 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface CouponComposeData {
+ price: string;
+ memo: string;
+}
+export interface CouponComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-coupon-compose',
+ templateUrl: './coupon-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class CouponComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: CouponComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ price: ['', [Validators.required]],
+ memo: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/compose/index.ts b/src/app/modules/admin/member/user/compose/index.ts
new file mode 100644
index 0000000..c742e24
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/index.ts
@@ -0,0 +1,15 @@
+import { CashComposeComponent } from './cash-compose.component';
+import { CommissionComposeComponent } from './commission-compose.component';
+import { CompComposeComponent } from './comp-compose.component';
+import { CouponComposeComponent } from './coupon-compose.component';
+import { MessageComposeComponent } from './message-compose.component';
+import { SignoutComposeComponent } from './signout-compose.component';
+
+export const COMPOSE = [
+ CashComposeComponent,
+ CommissionComposeComponent,
+ CompComposeComponent,
+ CouponComposeComponent,
+ MessageComposeComponent,
+ SignoutComposeComponent,
+];
diff --git a/src/app/modules/admin/member/user/compose/message-compose.component.html b/src/app/modules/admin/member/user/compose/message-compose.component.html
new file mode 100644
index 0000000..1d55301
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/message-compose.component.html
@@ -0,0 +1,89 @@
+
diff --git a/src/app/modules/admin/member/user/compose/message-compose.component.ts b/src/app/modules/admin/member/user/compose/message-compose.component.ts
new file mode 100644
index 0000000..6a4639e
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/message-compose.component.ts
@@ -0,0 +1,94 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface MessageComposeData {
+ price: string;
+ memo: string;
+}
+export interface MessageComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-message-compose',
+ templateUrl: './message-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class MessageComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: MessageComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ price: ['', [Validators.required]],
+ memo: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/compose/signout-compose.component.html b/src/app/modules/admin/member/user/compose/signout-compose.component.html
new file mode 100644
index 0000000..0b93ad4
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/signout-compose.component.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/src/app/modules/admin/member/user/compose/signout-compose.component.ts b/src/app/modules/admin/member/user/compose/signout-compose.component.ts
new file mode 100644
index 0000000..84d5533
--- /dev/null
+++ b/src/app/modules/admin/member/user/compose/signout-compose.component.ts
@@ -0,0 +1,94 @@
+import {
+ ChangeDetectorRef,
+ Component,
+ Inject,
+ OnInit,
+ ViewEncapsulation,
+} from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { SiteService } from 'app/modules/polyglot/site/services/site.service';
+import { IdentityService } from 'app/modules/polyglot/identity/services/identity.service';
+import { Site } from 'app/modules/proto/models/site_pb';
+
+export interface SignoutComposeData {
+ price: string;
+ memo: string;
+}
+export interface SignoutComposeResult {
+ price: string;
+ memo: string;
+}
+
+@Component({
+ selector: 'app-signout-compose',
+ templateUrl: './signout-compose.component.html',
+ encapsulation: ViewEncapsulation.None,
+})
+export class SignoutComposeComponent implements OnInit {
+ composeForm!: FormGroup;
+ sites: any[] = [];
+ // quillModules: any = {
+ // toolbar: [
+ // ['bold', 'italic', 'underline'],
+ // [{ align: [] }, { list: 'ordered' }, { list: 'bullet' }],
+ // ['clean'],
+ // ],
+ // };
+
+ /**
+ * Constructor
+ */
+ constructor(
+ public matDialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: SignoutComposeData,
+ private _formBuilder: FormBuilder,
+ private _identityService: IdentityService,
+ private _changeDetectorRef: ChangeDetectorRef
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Lifecycle hooks
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * On init
+ */
+ ngOnInit(): void {
+ // Create the form
+ this.composeForm = this._formBuilder.group({
+ price: ['', [Validators.required]],
+ memo: ['', [Validators.required]],
+ });
+ }
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Save and close
+ */
+ saveAndClose(): void {
+ // Save the message as a draft
+ this.saveAsDraft();
+
+ // Close the dialog
+ this.matDialogRef.close();
+ }
+
+ /**
+ * Discard the message
+ */
+ discard(): void {}
+
+ /**
+ * Save the message as a draft
+ */
+ saveAsDraft(): void {}
+
+ /**
+ * Send the message
+ */
+ send(): void {}
+}
diff --git a/src/app/modules/admin/member/user/user.module.ts b/src/app/modules/admin/member/user/user.module.ts
index 656f6e7..312ef04 100644
--- a/src/app/modules/admin/member/user/user.module.ts
+++ b/src/app/modules/admin/member/user/user.module.ts
@@ -16,6 +16,9 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatRadioModule } from '@angular/material/radio';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
+import { MatMenuModule } from '@angular/material/menu';
+import { MatDividerModule } from '@angular/material/divider';
+import { MatDialogModule } from '@angular/material/dialog';
import { FuseCardModule } from '@fuse/components/card';
@@ -24,11 +27,12 @@ import { TranslocoModule } from '@ngneat/transloco';
import { SharedModule } from 'app/shared/shared.module';
import { COMPONENTS } from './components';
+import { COMPOSE } from './compose';
import { userRoutes } from 'app/modules/admin/member/user/user.routing';
@NgModule({
- declarations: [COMPONENTS],
+ declarations: [COMPONENTS, COMPOSE],
imports: [
TranslocoModule,
SharedModule,
@@ -49,6 +53,9 @@ import { userRoutes } from 'app/modules/admin/member/user/user.routing';
MatRadioModule,
MatCheckboxModule,
MatChipsModule,
+ MatMenuModule,
+ MatDividerModule,
+ MatDialogModule,
FuseCardModule,
],