Browse Source

Add join requests actions

q-apps
AlphaX-Projects 2 years ago
parent
commit
811957d900
  1. 11
      qortal-ui-core/language/de.json
  2. 11
      qortal-ui-core/language/es.json
  3. 11
      qortal-ui-core/language/fr.json
  4. 13
      qortal-ui-core/language/hindi.json
  5. 13
      qortal-ui-core/language/hr.json
  6. 11
      qortal-ui-core/language/hu.json
  7. 11
      qortal-ui-core/language/it.json
  8. 11
      qortal-ui-core/language/ko.json
  9. 11
      qortal-ui-core/language/no.json
  10. 13
      qortal-ui-core/language/pl.json
  11. 11
      qortal-ui-core/language/pt.json
  12. 11
      qortal-ui-core/language/ro.json
  13. 11
      qortal-ui-core/language/rs.json
  14. 11
      qortal-ui-core/language/ru.json
  15. 11
      qortal-ui-core/language/us.json
  16. 11
      qortal-ui-core/language/zhc.json
  17. 11
      qortal-ui-core/language/zht.json
  18. 348
      qortal-ui-plugins/plugins/core/group-management/group-management.src.js

11
qortal-ui-core/language/de.json

@ -799,6 +799,15 @@
"mg49":"Beim Drücken auf Bestätigen wird die Anfrage zum Abbrechen der Einladung gesendet!",
"mg50":"Kommt bald...",
"mg51":"Minimum 3 Zeichen / Maximum 32 Zeichen",
"mg52":"Maximal 128 Zeichen"
"mg52":"Maximal 128 Zeichen",
"mg53":"Ihre offenen Beitrittsanfragen",
"mg54":"Keine offenen Beitrittsanfragen",
"mg55":"Sind Sie sicher, dass Sie die Beitrittsanfrage von diesem Mitglied annehmen werden?",
"mg56":"Beim Drücken von Bestätigen wird die Beitrittsanfrage gesendet!",
"mg57":"Beitrittsanfrage erfolgreich angenommen",
"mg58":"ETWAS GING FALSCH",
"mg59":"Beitrittsanfrage abbrechen erfolgreich akzeptiert",
"mg60":"Sind Sie sicher, dass Sie die Beitrittsanfrage dieses Mitglieds abbrechen möchten?",
"mg61":"Beim Drücken auf Bestätigen wird die Anfrage zum Abbrechen des Beitritts gesendet!"
}
}

11
qortal-ui-core/language/es.json

@ -799,6 +799,15 @@
"mg49":"¡Al presionar confirmar, se enviará la solicitud de cancelación de invitación!",
"mg50":"Próximamente...",
"mg51":"Mínimo 3 Caracteres / Máximo 32 Caracteres",
"mg52":"Máximo de 128 caracteres"
"mg52":"Máximo de 128 caracteres",
"mg53":"Tus solicitudes abiertas de unión",
"mg54":"Sin solicitudes de unión abiertas",
"mg55":"¿Está seguro de aceptar la solicitud de ingreso de este miembro?",
"mg56":"¡Al presionar confirmar, se enviará la solicitud de aceptación de ingreso!",
"mg57":"Solicitud de ingreso aceptada con éxito",
"mg58":"ALGO SALIO MAL",
"mg59":"Solicitud de cancelación de unión aceptada con éxito",
"mg60":"¿Está seguro de cancelar la solicitud de ingreso de este miembro?",
"mg61":"¡Al presionar confirmar, se enviará la solicitud de cancelación de unión!"
}
}

11
qortal-ui-core/language/fr.json

@ -799,6 +799,15 @@
"mg49":"En appuyant sur confirmer, la demande d'annulation d'invitation sera envoyée !",
"mg50":"Bientôt disponible...",
"mg51":"Minimum 3 caractères / Maximum 32 caractères",
"mg52":"Maximum 128 caractères"
"mg52":"Maximum 128 caractères",
"mg53":"Vos demandes d'ouverture de jointure",
"mg54":"Aucune demande de jointure ouverte",
"mg55":"Êtes-vous sûr d'accepter la demande d'adhésion de ce membre ?",
"mg56":"En appuyant sur confirmer, la demande d'adhésion acceptée sera envoyée !",
"mg57":"Demande d'adhésion acceptée avec succès",
"mg58":"QUELQUE CHOSE S'EST TROMPÉ",
"mg59":"Annuler la demande d'adhésion acceptée avec succès",
"mg60":"Êtes-vous sûr d'annuler la demande d'adhésion de ce membre ?",
"mg61":"En appuyant sur confirmer, la demande d'annulation de l'adhésion sera envoyée !"
}
}

13
qortal-ui-core/language/hindi.json

@ -799,7 +799,16 @@
"mg48":"क आप वकई इस सदसय किए आमरण रदद करनहत?",
"mg49":"पि कर दब पर, रदद आमरण अनध भएग!",
"mg50":"जलद ह आ रह ...",
"mg51": "ननतम 3 वरण / अधिकतम 32 वरण",
"mg52": "अधिकतम 128 वरण"
"mg51":"ननतम 3 वरण / अधिकतम 32 वरण",
"mg52":"अधिकतम 128 वरण",
"mg53":"आपकिल ह अनध",
"mg54":"न ओपन जइन रिट",
"mg55":"क आप निित रप स इस सदसय किल ह अनध कर करनहत?",
"mg56":"पि कर दब पर, सर करन अनध भएग!",
"mg57":"ज अनध सफलतवक सर कि गय",
"mg58":"कछ गलत ह गय",
"mg59":"रदद करिल ह अनध सफलतवक सर कि गय",
"mg60":"क आप निित रप स इस सदसय किल ह अनध क रदद करनहत?",
"mg61":"पि कर दब पर, रदद करन अनध भएग!"
}
}

13
qortal-ui-core/language/hr.json

@ -798,7 +798,16 @@
"mg48":"Jeste li sigurni da želite otkazati poziv za ovog člana?",
"mg49":"Pritiskom na potvrdu, zahtjev za pozivnicu za otkazivanje bit će poslan!",
"mg50":"Uskoro...",
"mg51": "Minimalno 3 znaka / Maksimalno 32 znaka",
"mg52": "Maksimalno 128 znakova"
"mg51":"Minimalno 3 znaka / Maksimalno 32 znaka",
"mg52":"Maksimalno 128 znakova",
"mg53":"Vaši otvoreni zahtjevi za pridruživanje",
"mg54":"Nema otvorenih zahtjeva za pridruživanje",
"mg55":"Jeste li sigurni da prihvaćate zahtjev za pridruživanje ovog člana?",
"mg56":"Pritiskom na potvrdu, zahtjev za prihvaćanje pridruživanja bit će poslan!",
"mg57":"Zahtjev za pridruživanje uspješno prihvaćen",
"mg58":"NEŠTO JE POŠLO PO ZLOU",
"mg59":"Poništi zahtjev za pridruživanje uspješno prihvaćen",
"mg60":"Jeste li sigurni da želite otkazati zahtjev za pridruživanje ovog člana?",
"mg61":"Pritiskom na potvrdu, bit će poslan zahtjev za otkazivanje pridruživanja!"
}
}

11
qortal-ui-core/language/hu.json

@ -799,6 +799,15 @@
"mg49":"A megerősítés megnyomására a rendszer elküldi a meghívó visszavonási kérelmét!",
"mg50":"Hamarosan...",
"mg51":"Minimum 3 karakter / legfeljebb 32 karakter",
"mg52":"Legfeljebb 128 karakter"
"mg52":"Legfeljebb 128 karakter",
"mg53":"Az Ön nyitott csatlakozási kérelmei",
"mg54":"Nincsenek nyitott csatlakozási kérelmek",
"mg55":"Biztosan elfogadja ennek a tagnak a csatlakozási kérelmét?",
"mg56":"A megerősítés megnyomására a rendszer elküldi az elfogadási csatlakozási kérelmet!",
"mg57":"Csatlakozási kérelem sikeresen elfogadva",
"mg58":"VALAMI RÁMADT",
"mg59":"Csatlakozási kérelem visszavonása sikeresen elfogadva",
"mg60":"Biztosan visszavonja ennek a tagnak a csatlakozási kérelmét?",
"mg61":"A megerősítés megnyomására a csatlakozás megszakítási kérelme elküldésre kerül!"
}
}

11
qortal-ui-core/language/it.json

@ -799,6 +799,15 @@
"mg49":"Premendo conferma, verrà inviata la richiesta di annullamento dell'invito!",
"mg50":"Prossimamente...",
"mg51":"Minimo 3 caratteri / Massimo 32 caratteri",
"mg52":"Massimo 128 caratteri"
"mg52":"Massimo 128 caratteri",
"mg53":"Le tue richieste di partecipazione aperte",
"mg54":"Nessuna richiesta di partecipazione aperta",
"mg55":"Sei sicuro di accettare la richiesta di adesione di questo membro ?",
"mg56":"Premendo conferma, verrà inviata la richiesta di partecipazione accettata!",
"mg57":"Richiesta di partecipazione accettata con successo",
"mg58":"QUALCOSA È ANDATO storto",
"mg59":"Annulla richiesta di partecipazione accettata con successo",
"mg60":"Sei sicuro di voler annullare la richiesta di adesione di questo membro ?",
"mg61":"Premendo conferma, verrà inviata la richiesta di annullamento partecipazione!"
}
}

11
qortal-ui-core/language/ko.json

@ -799,6 +799,15 @@
"mg49":"확인을 누르면 초대 취소 요청이 전송됩니다!",
"mg50":"출시 예정...",
"mg51":"최소 3자 / 최대 32자",
"mg52":"최대 128자"
"mg52":"최대 128자",
"mg53":"귀하의 오픈 조인 요청",
"mg54":"오픈 조인 요청 없음",
"mg55":"이 회원의 가입 요청을 수락하시겠습니까?",
"mg56":"확인을 누르면 가입 수락 요청이 전송됩니다!",
"mg57":"가입 요청이 성공적으로 수락됨",
"mg58":"뭔가 잘못되었습니다",
"mg59":"가입 요청 취소 성공",
"mg60":"이 회원의 가입 요청을 취소하시겠습니까?",
"mg61":"확인을 누르면 가입 취소 요청이 전송됩니다!"
}
}

11
qortal-ui-core/language/no.json

@ -799,6 +799,15 @@
"mg49":"Når du trykker på bekreftelse, vil forespørselen om kansellering av invitasjon bli sendt!",
"mg50":"Kommer snart...",
"mg51":"Minimum 3 tegn / maksimum 32 tegn",
"mg52": "Maksimalt 128 tegn"
"mg52":"Maksimalt 128 tegn",
"mg53":"Dine åpne forespørsler om bli med",
"mg54":"Ingen åpne forespørsler om medlemskap",
"mg55":"Er du sikker på å godta forespørselen fra dette medlemmet?",
"mg56":"Når du trykker på bekreft, vil forespørselen om å godta bli sendt bli sendt!",
"mg57":"Bli med forespørsel ble godtatt",
"mg58":"NOE GIKK FEIL",
"mg59":"Avbryt deltakelsesforespørsel ble godtatt",
"mg60":"Er du sikker på å avbryte forespørselen om å bli medlem fra dette medlemmet?",
"mg61":"Når du trykker på bekreft, vil forespørselen om kansellering bli sendt!"
}
}

13
qortal-ui-core/language/pl.json

@ -798,7 +798,16 @@
"mg48":"Czy na pewno chcesz anulować zaproszenie dla tego członka?",
"mg49":"Po naciśnięciu potwierdzenia zostanie wysłana prośba o anulowanie zaproszenia!",
"mg50":"Już wkrótce...",
"mg51": "Minimum 3 znaki / Maksymalnie 32 znaki",
"mg52": "Maksymalnie 128 znaków"
"mg51":"Minimum 3 znaki / Maksymalnie 32 znaki",
"mg52":"Maksymalnie 128 znaków",
"mg53":"Twoje otwarte prośby o dołączenie",
"mg54":"Brak otwartych próśb o dołączenie",
"mg55":"Czy na pewno akceptujesz prośbę o dołączenie od tego członka?",
"mg56":"Po naciśnięciu potwierdzenia zostanie wysłana prośba o zaakceptowanie dołączenia!",
"mg57":"Prośba o dołączenie pomyślnie zaakceptowana",
"mg58":"COŚ POszło nie tak",
"mg59":"Anuluj prośbę o dołączenie pomyślnie zaakceptowaną",
"mg60":"Czy na pewno chcesz anulować prośbę o dołączenie od tego członka?",
"mg61":"Po naciśnięciu potwierdzenia, zostanie wysłana prośba o anulowanie dołączenia!"
}
}

11
qortal-ui-core/language/pt.json

@ -799,6 +799,15 @@
"mg49":"Ao pressionar confirmar, a solicitação de cancelamento do convite será enviada!",
"mg50":"Em Breve...",
"mg51":"Mínimo de 3 caracteres / Máximo de 32 caracteres",
"mg52":"Máximo de 128 caracteres"
"mg52":"Máximo de 128 caracteres",
"mg53":"Suas solicitações de entrada abertas",
"mg54":"Nenhuma solicitação de entrada aberta",
"mg55":"Tem certeza que aceita a solicitação de entrada deste membro?",
"mg56":"Ao pressionar confirmar, o pedido de aceitação de entrada será enviado!",
"mg57":"Solicitação de entrada aceita com sucesso",
"mg58":"ALGO DEU ERRADO",
"mg59":"Cancelar pedido de entrada aceito com sucesso",
"mg60":"Tem certeza que deseja cancelar a solicitação de ingresso deste membro ?",
"mg61":"Ao pressionar confirmar, o pedido de cancelamento de adesão será enviado!"
}
}

11
qortal-ui-core/language/ro.json

@ -799,6 +799,15 @@
"mg49":"La apăsarea confirmării, cererea de anulare a invitației va fi trimisă!",
"mg50":"În curând...",
"mg51":"Minim 3 caractere / Maxim 32 de caractere",
"mg52":"Maximum 128 de caractere"
"mg52":"Maximum 128 de caractere",
"mg53":"Solicitările dvs. de înscriere deschise",
"mg54":"Fără solicitări de aderare deschise",
"mg55":"Sunteți sigur că acceptați solicitarea de alăturare de la acest membru?",
"mg56":"La apăsarea confirmării, va fi trimisă cererea de acceptare a înscrierii!",
"mg57":"Solicitarea de înscriere a fost acceptată cu succes",
"mg58":"CEVA A MERAT GREUT",
"mg59":"Anularea cererii de aderare a fost acceptată cu succes",
"mg60":"Sigur anulați solicitarea de alăturare de la acest membru?",
"mg61":"La apăsarea confirmării, cererea de anulare a aderării va fi trimisă!"
}
}

11
qortal-ui-core/language/rs.json

@ -799,6 +799,15 @@
"mg49":"Pritiskom na potvrdi, zahtev za otkazivanje pozivnice će biti poslat!",
"mg50":"Uskoro...",
"mg51":"Najmanje 3 znaka / maksimalno 32 znaka",
"mg52":"Maksimalno 128 znakova"
"mg52":"Maksimalno 128 znakova",
"mg53":"Vaši zahtevi za otvoreno pridruživanje",
"mg54":"Nema otvorenih zahteva za pridruživanje",
"mg55":"Da li ste sigurni da prihvatate zahtev za pridruživanje ovog člana?",
"mg56":"Pritiskom na potvrdi, biće poslat zahtev za prihvatanje pridruživanja!",
"mg57":"Zahtev za pridruživanje je uspešno prihvaćen",
"mg58":"NEŠTO JE POŠLO NA ZLO",
"mg59":"Zahtev za otkazivanje pridruživanja je uspešno prihvaćen",
"mg60":"Da li ste sigurni da otkažete zahtev za pridruživanje ovog člana?",
"mg61":"Pritiskom na potvrdu, zahtev za otkazivanje pridruživanja će biti poslat!"
}
}

11
qortal-ui-core/language/ru.json

@ -799,6 +799,15 @@
"mg49":"При нажатии подтверждения будет отправлен запрос на отмену приглашения!",
"mg50":"Скоро...",
"mg51":"Минимум 3 символа / максимум 32 символа",
"mg52":"Максимум 128 символов"
"mg52":"Максимум 128 символов",
"mg53":"Ваши открытые запросы на вступление",
"mg54":"Открытых запросов на присоединение нет",
"mg55":"Вы уверены, что принимаете запрос на вступление от этого участника?",
"mg56":"При нажатии подтверждения будет отправлен запрос на присоединение!",
"mg57":"Запрос на присоединение успешно принят",
"mg58":"ЧТО-ТО ПОШЛО НЕ ТАК",
"mg59":"Запрос на отмену присоединения успешно принят",
"mg60":"Вы уверены, что отмените запрос на вступление от этого участника?",
"mg61":"При нажатии кнопки подтверждения будет отправлен запрос на отмену присоединения!"
}
}

11
qortal-ui-core/language/us.json

@ -799,6 +799,15 @@
"mg49":"On pressing confirm, the cancel invite request will be sent!",
"mg50":"Coming Soon...",
"mg51":"Minimum 3 Characters / Maximum 32 Characters",
"mg52":"Maximum 128 Characters"
"mg52":"Maximum 128 Characters",
"mg53":"Your Open Join Requests",
"mg54":"No Open Join Requests",
"mg55":"Are you sure to accept the join request from this member ?",
"mg56":"On pressing confirm, the accept join request will be sent!",
"mg57":"Join Request Successfully Accepted",
"mg58":"SOMETHING WENT WRONG",
"mg59":"Cancel Join Request Successfully Accepted",
"mg60":"Are you sure to cancel the join request from this member ?",
"mg61":"On pressing confirm, the cancel join request will be sent!"
}
}

11
qortal-ui-core/language/zhc.json

@ -799,6 +799,15 @@
"mg49":"按下确认后,将发送取消邀请请求!",
"mg50":"即将推出……",
"mg51":"最少 3 个字符 / 最多 32 个字符",
"mg52":"最多 128 个字符"
"mg52":"最多 128 个字符",
"mg53":"您的公开加入请求",
"mg54":"没有开放的加入请求",
"mg55":"您确定接受该会员的加入请求吗?",
"mg56":"按下确认后,将发送接受加入请求!",
"mg57":"成功接受加入请求",
"mg58":"出了点问题",
"mg59":"取消加入请求已成功接受",
"mg60":"您确定要取消该会员的加入请求吗?",
"mg61":"按下确认后,将发送取消加入请求!"
}
}

11
qortal-ui-core/language/zht.json

@ -799,6 +799,15 @@
"mg49":"按下確認後,將發送取消邀請請求!",
"mg50":"即將推出……",
"mg51":"最少 3 個字符 / 最多 32 個字符",
"mg52":"最多 128 個字符"
"mg52":"最多 128 個字符",
"mg53":"您的公開加入請求",
"mg54":"沒有開放的加入請求",
"mg55":"您確定接受該會員的加入請求嗎?",
"mg56":"按下確認後,將發送接受加入請求!",
"mg57":"成功接受加入請求",
"mg58":"出了點問題",
"mg59":"取消加入請求已成功接受",
"mg60":"您確定要取消該會員的加入請求嗎?",
"mg61":"按下確認後,將發送取消加入請求!"
}
}

348
qortal-ui-plugins/plugins/core/group-management/group-management.src.js

@ -38,6 +38,7 @@ class GroupManagement extends LitElement {
newAdminsList: { type: Array },
newBannedList: { type: Array },
newGroupInvitesList: { type: Array },
newGroupJoinsList: { type: Array },
recipientPublicKey: { type: String },
selectedAddress: { type: Object },
manageGroupObj: { type: Object },
@ -155,6 +156,11 @@ class GroupManagement extends LitElement {
color: red;
}
.success-icon {
font-size: 48px;
color: #198754;
}
.close-icon {
font-size: 36px;
}
@ -436,6 +442,7 @@ class GroupManagement extends LitElement {
this.newAdminsList = []
this.newBannedList = []
this.newGroupInvitesList = []
this.newGroupJoinsList = []
this.manageGroupObj = {}
this.joinGroupObj = {}
this.leaveGroupObj = {}
@ -836,6 +843,7 @@ class GroupManagement extends LitElement {
groupInviteTemplate() {
return html`
<h3 style="margin: 0; margin-bottom: 1em; text-align: center;">${translate("managegroup.mg36")}</h3>
<vaadin-grid theme="large" id="groupInvitesGrid" ?hidden="${this.isEmptyArray(this.newGroupInvitesList)}" .items="${this.newGroupInvitesList}" aria-label="Group Invites" all-rows-visible>
<vaadin-grid-column
width="6rem"
@ -880,6 +888,54 @@ class GroupManagement extends LitElement {
${this.isEmptyArray(this.newGroupInvitesList) ? html`
<span style="color: var(--black);">${translate("managegroup.mg35")}</span>
` : html``}
<br><hr><br>
<h3 style="margin: 0; margin-bottom: 1em; text-align: center;">${translate("managegroup.mg53")}</h3>
<vaadin-grid theme="large" id="groupJoinsGrid" ?hidden="${this.isEmptyArray(this.newGroupJoinsList)}" .items="${this.newGroupJoinsList}" aria-label="Group Join Requests" all-rows-visible>
<vaadin-grid-column
width="6rem"
flex-grow="0"
header="${translate("websitespage.schange5")}"
.renderer=${(root, column, data) => {
render(html`${this.renderAvatar(data.item)}`, root)
}}
></vaadin-grid-column>
<vaadin-grid-column
auto-width
resizable
header="${translate("puzzlepage.pchange4")}"
.renderer=${(root, column, data) => {
render(html`${data.item.name}`, root)
}}
></vaadin-grid-column>
<vaadin-grid-column
auto-width
resizable
header="${translate("login.address")}"
.renderer=${(root, column, data) => {
render(html`${data.item.owner}`, root)
}}
></vaadin-grid-column>
<vaadin-grid-column
width="12rem"
flex-grow="0"
header="${translate("websitespage.schange8")}"
.renderer=${(root, column, data) => {
render(html`${this.renderConfirmRequestButton(data.item)}`, root)
}}
></vaadin-grid-column>
<vaadin-grid-column
width="12rem"
flex-grow="0"
.renderer=${(root, column, data) => {
render(html`${this.renderDeclineRequestButton(data.item)}`, root)
}}
></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.newGroupJoinsList) ? html`
<span style="color: var(--black);">${translate("managegroup.mg54")}</span>
` : html``}
<br>
<hr>
<div style="padding-top: 20px;">
<vaadin-button theme="primary medium" @click=${() => this.openInviteMemberToGroupDialog()}>
${translate("managegroup.mg2")}
@ -1033,6 +1089,72 @@ class GroupManagement extends LitElement {
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="successJoinDialog" scrimClickAction="" escapeKeyAction="">
<div class="card-container">
<mwc-icon class="success-icon">group_add</mwc-icon>
<h2>${translate("managegroup.mg57")}</h2>
<h4>${translate("walletpage.wchange43")}</h4>
</div>
<mwc-button
slot="primaryAction"
@click=${() => this.closeSuccessJoinDialog()}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="errorJoinDialog" scrimClickAction="" escapeKeyAction="">
<div class="card-container">
<mwc-icon class="error-icon">warning</mwc-icon>
<h2>${translate("managegroup.mg58")}</h2>
<h4>${this.errorMessage}</h4>
<h4>${translate("walletpage.wchange44")}</h4>
</div>
<mwc-button
slot="primaryAction"
@click=${() => this.closeErrorJoinDialog()}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="cancelSuccessJoinDialog" scrimClickAction="" escapeKeyAction="">
<div class="card-container">
<mwc-icon class="success-icon">person_remove</mwc-icon>
<h2>${translate("managegroup.mg59")}</h2>
<h4>${translate("walletpage.wchange43")}</h4>
</div>
<mwc-button
slot="primaryAction"
@click=${() => this.closeCancelSuccessJoinDialog()}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="cancelErrorJoinDialog" scrimClickAction="" escapeKeyAction="">
<div class="card-container">
<mwc-icon class="error-icon">warning</mwc-icon>
<h2>${translate("managegroup.mg58")}</h2>
<h4>${this.errorMessage}</h4>
<h4>${translate("walletpage.wchange44")}</h4>
</div>
<mwc-button
slot="primaryAction"
@click=${() => this.closeCancelErrorJoinDialog()}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
`
}
@ -1986,6 +2108,38 @@ class GroupManagement extends LitElement {
this.errorMessage = ''
}
renderConfirmRequestButton(joinObj) {
return html`<mwc-button class="green" @click=${() => this.createAcceptJoinGroupMember(joinObj)}><mwc-icon>add_task</mwc-icon>&nbsp;${translate("transpage.tchange3")}</mwc-button>`
}
renderDeclineRequestButton(joinObj) {
return html`<mwc-button class="red" @click=${() => this.kickJoinGroupMember(joinObj)}><mwc-icon>cancel</mwc-icon>&nbsp;${translate("transpage.tchange2")}</mwc-button>`
}
closeSuccessJoinDialog() {
this.shadowRoot.querySelector('#successJoinDialog').close()
this.successMessage = ''
this.errorMessage = ''
}
closeErrorJoinDialog() {
this.shadowRoot.querySelector('#errorJoinDialog').close()
this.successMessage = ''
this.errorMessage = ''
}
closeCancelSuccessJoinDialog() {
this.shadowRoot.querySelector('#cancelSuccessJoinDialog').close()
this.successMessage = ''
this.errorMessage = ''
}
closeCancelErrorJoinDialog() {
this.shadowRoot.querySelector('#cancelErrorJoinDialog').close()
this.successMessage = ''
this.errorMessage = ''
}
openMemberInfo(inviteGroupId) {
const _inviteMemberInfo = this.shadowRoot.getElementById('toInviteMemberToGroup').value
const _nviteMemberTime = this.shadowRoot.getElementById("inviteMemberTime").value
@ -2361,6 +2515,57 @@ class GroupManagement extends LitElement {
}
}
async getNewGroupJoinList(theGroup) {
let callGroupID = theGroup
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
let joinObj = []
this.groupJoinMembers = []
await parentEpml.request('apiCall', {
url: `/groups/joinrequests/${callGroupID}`
}).then(res => {
this.groupJoinMembers = res
})
if (this.groupJoinMembers.length === 0) {
return
} else {
this.groupJoinMembers.map(a => {
let callTheJoinMember = a.joiner
let callSingleJoinMemberUrl = `${nodeUrl}/names/address/${callTheJoinMember}`
fetch(callSingleJoinMemberUrl).then(res => {
return res.json()
}).then(jsonRes => {
if (jsonRes.length) {
jsonRes.map(b => {
const joinObjToAdd = {
groupId: a.groupId,
name: b.name,
owner: b.owner,
time: '86400',
reason: 'NotAllowed'
}
joinObj.push(joinObjToAdd)
})
} else {
const noName = 'No registered name'
const noNameObj = {
groupId: a.groupId,
name: noName,
owner: a.joiner,
time: '86400',
reason: 'NotAllowed'
}
joinObj.push(noNameObj)
}
this.newGroupJoinsList = joinObj
})
})
}
}
closeManageGroupOwnerDialog() {
this.resetDefaultSettings()
this.shadowRoot.getElementById('manageGroupOwnerDialog').close()
@ -2389,6 +2594,7 @@ class GroupManagement extends LitElement {
await this.getNewMemberList(groupObj.groupId)
await this.getNewBannedList(groupObj.groupId)
await this.getNewGroupInvitesList(groupObj.groupId)
await this.getNewGroupJoinList(groupObj.groupId)
await manageGroupDelay(1000)
this.shadowRoot.getElementById('manageGroupOwnerDialog').open()
}
@ -3057,6 +3263,148 @@ class GroupManagement extends LitElement {
validateReceiver()
}
async createAcceptJoinGroupMember(joinObj) {
const member = joinObj.owner
const inviteTime = joinObj.time
const inviteGroupMemberFeeInput = this.inviteGroupMemberFee
const theGroupId = joinObj.groupId
this.isLoading = true
this.btnDisable = true
const getLastRef = async () => {
let myRef = await parentEpml.request('apiCall', {
type: 'api',
url: `/addresses/lastreference/${this.selectedAddress.address}`
})
return myRef
}
const validateReceiver = async () => {
let lastRef = await getLastRef()
let myTransaction = await makeTransactionRequest(lastRef)
getTxnRequestResponse(myTransaction)
}
const makeTransactionRequest = async (lastRef) => {
const myMember = member
const myLastRef = lastRef
const myGroupId = theGroupId
const myFee = inviteGroupMemberFeeInput
const myInviteTime = inviteTime
const myInviteMemberDialog1 = get("managegroup.mg55")
const myInviteMemberDialog2 = get("managegroup.mg56")
let myTxnrequest = await parentEpml.request('transaction', {
type: 29,
nonce: this.selectedAddress.nonce,
params: {
fee: myFee,
recipient: myMember,
rGroupId: myGroupId,
rInviteTime: myInviteTime,
lastReference: myLastRef,
inviteMemberDialog1: myInviteMemberDialog1,
inviteMemberDialog2: myInviteMemberDialog2
}
})
return myTxnrequest
}
const getTxnRequestResponse = (txnResponse) => {
if (txnResponse.success === false && txnResponse.message) {
this.errorMessage = txnResponse.message
this.shadowRoot.querySelector('#errorJoinDialog').show()
this.isLoading = false
this.btnDisable = false
throw new Error(txnResponse)
} else if (txnResponse.success === true && !txnResponse.data.error) {
this.shadowRoot.querySelector('#successJoinDialog').show()
this.errorMessage = ''
this.successMessage = this.renderSuccessText()
this.isLoading = false
this.btnDisable = false
} else {
this.errorMessage = txnResponse.data.message
this.shadowRoot.querySelector('#errorJoinDialog').show()
this.isLoading = false
this.btnDisable = false
throw new Error(txnResponse)
}
}
validateReceiver()
}
async kickJoinGroupMember(joinObj) {
const member = joinObj.owner
const reason = joinObj.reason
const kickGroupMemberFeeInput = this.kickGroupMemberFee
const theGroupId = joinObj.groupId
this.isLoading = true
this.btnDisable = true
const getLastRef = async () => {
let myRef = await parentEpml.request('apiCall', {
type: 'api',
url: `/addresses/lastreference/${this.selectedAddress.address}`
})
return myRef
}
const validateReceiver = async () => {
let lastRef = await getLastRef()
let myTransaction = await makeTransactionRequest(lastRef)
getTxnRequestResponse(myTransaction)
}
const makeTransactionRequest = async (lastRef) => {
const myMember = member
const myLastRef = lastRef
const myGroupId = theGroupId
const myFee = kickGroupMemberFeeInput
const myReason = reason
const myKickMemberDialog1 = get("managegroup.mg60")
const myKickMemberDialog2 = get("managegroup.mg61")
let myTxnrequest = await parentEpml.request('transaction', {
type: 28,
nonce: this.selectedAddress.nonce,
params: {
fee: myFee,
recipient: myMember,
rGroupId: myGroupId,
rBanReason: myReason,
lastReference: myLastRef,
kickMemberDialog1: myKickMemberDialog1,
kickMemberDialog2: myKickMemberDialog2
}
})
return myTxnrequest
}
const getTxnRequestResponse = (txnResponse) => {
if (txnResponse.success === false && txnResponse.message) {
this.errorMessage = txnResponse.message
this.shadowRoot.querySelector('#cancelErrorJoinDialog').show()
this.isLoading = false
this.btnDisable = false
throw new Error(txnResponse)
} else if (txnResponse.success === true && !txnResponse.data.error) {
this.shadowRoot.querySelector('#cancelSuccessJoinDialog').show()
this.errorMessage = ''
this.successMessage = this.renderSuccessText()
this.isLoading = false
this.btnDisable = false
} else {
this.errorMessage = txnResponse.data.message
this.shadowRoot.querySelector('#cancelErrorJoinDialog').show()
this.isLoading = false
this.btnDisable = false
throw new Error(txnResponse)
}
}
validateReceiver()
}
async addGroupAdmin(groupId) {
const member = this.shadowRoot.getElementById('memberToAdmin').value
const addGroupAdminFeeInput = this.addGroupAdminFee

Loading…
Cancel
Save