From fba20229be4dc1fe4a25bdde136828d250545381 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Wed, 4 Jan 2023 13:52:47 +0100 Subject: [PATCH] Add search private group --- qortal-ui-core/language/de.json | 6 +- qortal-ui-core/language/es.json | 6 +- qortal-ui-core/language/fr.json | 6 +- qortal-ui-core/language/hindi.json | 6 +- qortal-ui-core/language/hr.json | 6 +- qortal-ui-core/language/hu.json | 6 +- qortal-ui-core/language/it.json | 6 +- qortal-ui-core/language/ko.json | 6 +- qortal-ui-core/language/no.json | 6 +- qortal-ui-core/language/pl.json | 6 +- qortal-ui-core/language/pt.json | 6 +- qortal-ui-core/language/ro.json | 6 +- qortal-ui-core/language/rs.json | 6 +- qortal-ui-core/language/ru.json | 6 +- qortal-ui-core/language/us.json | 6 +- qortal-ui-core/language/zhc.json | 6 +- qortal-ui-core/language/zht.json | 6 +- .../group-management/group-management.src.js | 121 +++++++++++++++++- 18 files changed, 202 insertions(+), 21 deletions(-) diff --git a/qortal-ui-core/language/de.json b/qortal-ui-core/language/de.json index 449987b0..25f0843f 100644 --- a/qortal-ui-core/language/de.json +++ b/qortal-ui-core/language/de.json @@ -606,7 +606,11 @@ "gchange51":"Beitreten", "gchange52":"Administrator", "gchange53":"Mitglied", - "gchange54":"Mitglieder" + "gchange54":"Mitglieder", + "gchange55":"Private Gruppe suchen", + "gchange56":"Zu suchender Gruppenname", + "gchange57":"Privater Gruppenname nicht gefunden", + "gchange58":"Beachten Sie, dass der Gruppenname genau übereinstimmen muss." }, "puzzlepage":{ "pchange1":"Rätsel", diff --git a/qortal-ui-core/language/es.json b/qortal-ui-core/language/es.json index 19e7c00f..a36e4009 100644 --- a/qortal-ui-core/language/es.json +++ b/qortal-ui-core/language/es.json @@ -606,7 +606,11 @@ "gchange51":"Unirse", "gchange52":"Aministrador", "gchange53":"Miembro", - "gchange54":"Miembros" + "gchange54":"Miembros", + "gchange55":"Buscar grupo privado", + "gchange56":"Nombre del grupo a buscar", + "gchange57":"Nombre de grupo privado no encontrado", + "gchange58":"Tenga en cuenta que el nombre del grupo debe coincidir exactamente." }, "puzzlepage":{ "pchange1":"Rompecabezas", diff --git a/qortal-ui-core/language/fr.json b/qortal-ui-core/language/fr.json index 9cc2d17c..80239121 100644 --- a/qortal-ui-core/language/fr.json +++ b/qortal-ui-core/language/fr.json @@ -606,7 +606,11 @@ "gchange51":"Rejoindre", "gchange52":"Admin", "gchange53":"Membre", - "gchange54":"Membres" + "gchange54":"Membres", + "gchange55":"Rechercher un groupe privé", + "gchange56":"Nom du groupe à rechercher", + "gchange57":"Nom de groupe privé introuvable", + "gchange58":"Notez que le nom du groupe doit correspondre exactement." }, "puzzlepage":{ "pchange1":"Puzzles", diff --git a/qortal-ui-core/language/hindi.json b/qortal-ui-core/language/hindi.json index 77e0de5a..8ffa0cbf 100644 --- a/qortal-ui-core/language/hindi.json +++ b/qortal-ui-core/language/hindi.json @@ -607,7 +607,11 @@ "gchange51":"शामिल हों", "gchange52":"व्यवस्थापक", "gchange53":"सदस्य", - "gchange54":"सदस्यों" + "gchange54":"सदस्यों", + "gchange55":"निजी समूह खोजें", + "gchange56":"खोजने के लिए समूह का नाम", + "gchange57":"निजी समूह का नाम नहीं मिला", + "gchange58":"ध्यान दें कि समूह का नाम सटीक मेल खाना चाहिए।" }, "puzzlepage":{ "pchange1":"पहेलि", diff --git a/qortal-ui-core/language/hr.json b/qortal-ui-core/language/hr.json index 0c3013c1..3ab42894 100644 --- a/qortal-ui-core/language/hr.json +++ b/qortal-ui-core/language/hr.json @@ -606,7 +606,11 @@ "gchange51":"Pridruži", "gchange52":"Admin", "gchange53":"Član", - "gchange54":"Članovi" + "gchange54":"Članovi", + "gchange55":"Traži privatnu grupu", + "gchange56":"Naziv grupe za pretraživanje", + "gchange57":"Ime privatne grupe nije pronađeno", + "gchange58":"Imajte na umu da se naziv grupe mora točno podudarati." }, "puzzlepage":{ "pchange1":"Zagonetke", diff --git a/qortal-ui-core/language/hu.json b/qortal-ui-core/language/hu.json index 5bebf438..259da25b 100644 --- a/qortal-ui-core/language/hu.json +++ b/qortal-ui-core/language/hu.json @@ -606,7 +606,11 @@ "gchange51":"Csatlakoz", "gchange52":"Kormányozo", "gchange53":"Tag", - "gchange54":"Tagok" + "gchange54":"Tagok", + "gchange55":"Keresés privát csoportban", + "gchange56":"A keresendő csoport neve", + "gchange57":"A privát csoport neve nem található", + "gchange58":"Ne feledje, hogy a csoport nevének pontosan meg kell egyeznie." }, "puzzlepage":{ "pchange1":"Rejtvények", diff --git a/qortal-ui-core/language/it.json b/qortal-ui-core/language/it.json index 1592451a..b68f67ec 100644 --- a/qortal-ui-core/language/it.json +++ b/qortal-ui-core/language/it.json @@ -606,7 +606,11 @@ "gchange51":"Unisciti", "gchange52":"Amministratore", "gchange53":"Membro", - "gchange54":"Membri" + "gchange54":"Membri", + "gchange55":"Cerca gruppo privato", + "gchange56":"Nome gruppo da cercare", + "gchange57":"Nome gruppo privato non trovato", + "gchange58":"Nota che il nome del gruppo deve corrispondere esattamente." }, "puzzlepage":{ "pchange1":"Puzzle", diff --git a/qortal-ui-core/language/ko.json b/qortal-ui-core/language/ko.json index c36bd93b..687b8123 100644 --- a/qortal-ui-core/language/ko.json +++ b/qortal-ui-core/language/ko.json @@ -606,7 +606,11 @@ "gchange51":"가입", "gchange52":"관리자", "gchange53":"회원", - "gchange54":"회원들" + "gchange54":"회원들", + "gchange55":"비공개 그룹 검색", + "gchange56":"검색할 그룹 이름", + "gchange57":"비공개 그룹 이름을 찾을 수 없음", + "gchange58":"그룹 이름이 정확히 일치해야 합니다." }, "puzzlepage":{ "pchange1":"퍼즐", diff --git a/qortal-ui-core/language/no.json b/qortal-ui-core/language/no.json index 9a16ace5..f84ae9cf 100644 --- a/qortal-ui-core/language/no.json +++ b/qortal-ui-core/language/no.json @@ -606,7 +606,11 @@ "gchange51":"Bli med", "gchange52":"Admin", "gchange53":"Medlem", - "gchange54":"Medlemmer" + "gchange54":"Medlemmer", + "gchange55":"Søk i privat gruppe", + "gchange56":"Gruppenavn å søke", + "gchange57":"Privat gruppenavn ikke funnet", + "gchange58":"Merk at gruppenavnet må samsvare nøyaktig." }, "puzzlepage":{ "pchange1":"Puzzles", diff --git a/qortal-ui-core/language/pl.json b/qortal-ui-core/language/pl.json index e57f725a..9d807000 100644 --- a/qortal-ui-core/language/pl.json +++ b/qortal-ui-core/language/pl.json @@ -606,7 +606,11 @@ "gchange51":"Dołącz", "gchange52":"Administrator", "gchange53":"Członek", - "gchange54":"Członkowie" + "gchange54":"Członkowie", + "gchange55":"Wyszukaj grupę prywatną", + "gchange56":"Nazwa grupy do wyszukania", + "gchange57":"Nie znaleziono nazwy grupy prywatnej", + "gchange58":"Zauważ, że nazwa grupy musi dokładnie pasować." }, "puzzlepage":{ "pchange1":"Zagadki", diff --git a/qortal-ui-core/language/pt.json b/qortal-ui-core/language/pt.json index 5f56fe4c..0bd11bef 100644 --- a/qortal-ui-core/language/pt.json +++ b/qortal-ui-core/language/pt.json @@ -606,7 +606,11 @@ "gchange51":"Entrar", "gchange52":"Administrador", "gchange53":"Membro", - "gchange54":"Membros" + "gchange54":"Membros", + "gchange55":"Pesquisar Grupo Privado", + "gchange56":"Nome do grupo para pesquisar", + "gchange57":"Nome do grupo privado não encontrado", + "gchange58":"Observe que o nome do grupo deve corresponder exatamente." }, "puzzlepage":{ "pchange1":"Enigmas", diff --git a/qortal-ui-core/language/ro.json b/qortal-ui-core/language/ro.json index d65da8f2..17463ce7 100644 --- a/qortal-ui-core/language/ro.json +++ b/qortal-ui-core/language/ro.json @@ -606,7 +606,11 @@ "gchange51":"Inscriere", "gchange52":"Admin", "gchange53":"Membru", - "gchange54":"Membrii" + "gchange54":"Membrii", + "gchange55":"Căutați grup privat", + "gchange56":"Numele grupului de căutat", + "gchange57":"Numele grupului privat nu a fost găsit", + "gchange58":"Rețineți că numele grupului trebuie să se potrivească exact." }, "puzzlepage":{ "pchange1":"Puzzle-uri", diff --git a/qortal-ui-core/language/rs.json b/qortal-ui-core/language/rs.json index 1cad90c9..bd076946 100644 --- a/qortal-ui-core/language/rs.json +++ b/qortal-ui-core/language/rs.json @@ -606,7 +606,11 @@ "gchange51":"Uđite", "gchange52":"Administrator", "gchange53":"Član", - "gchange54":"Članovi" + "gchange54":"Članovi", + "gchange55":"Pretraži privatnu grupu", + "gchange56":"Ime grupe za pretragu", + "gchange57":"Ime privatne grupe nije pronađeno", + "gchange58":"Imajte na umu da ime grupe mora potpuno da se podudara." }, "puzzlepage":{ "pchange1":"Slagalice", diff --git a/qortal-ui-core/language/ru.json b/qortal-ui-core/language/ru.json index 1865f095..12623f6e 100644 --- a/qortal-ui-core/language/ru.json +++ b/qortal-ui-core/language/ru.json @@ -606,7 +606,11 @@ "gchange51":"Присоединиться", "gchange52":"Администратор", "gchange53":"Член", - "gchange54":"Члены" + "gchange54":"Члены", + "gchange55":"Поиск в закрытой группе", + "gchange56":"Имя группы для поиска", + "gchange57":"Имя частной группы не найдено", + "gchange58":"Обратите внимание, что название группы должно точно совпадать." }, "puzzlepage":{ "pchange1":"Головоломки", diff --git a/qortal-ui-core/language/us.json b/qortal-ui-core/language/us.json index a0bddb50..1a918ae4 100644 --- a/qortal-ui-core/language/us.json +++ b/qortal-ui-core/language/us.json @@ -606,7 +606,11 @@ "gchange51":"Join", "gchange52":"Admin", "gchange53":"Member", - "gchange54":"Members" + "gchange54":"Members", + "gchange55":"Search Private Group", + "gchange56":"Group Name To Search", + "gchange57":"Private Group Name Not Found", + "gchange58":"Note that group name must exact match." }, "puzzlepage":{ "pchange1":"Puzzles", diff --git a/qortal-ui-core/language/zhc.json b/qortal-ui-core/language/zhc.json index b8052dfd..8b474d34 100644 --- a/qortal-ui-core/language/zhc.json +++ b/qortal-ui-core/language/zhc.json @@ -606,7 +606,11 @@ "gchange51":"加入", "gchange52":"管理员", "gchange53":"成员", - "gchange54":"成员数量" + "gchange54":"成员数量", + "gchange55":"搜索私人群组", + "gchange56":"要搜索的组名", + "gchange57":"未找到私人组名", + "gchange58":"注意组名必须完全匹配。" }, "puzzlepage":{ "pchange1":"益智游戏", diff --git a/qortal-ui-core/language/zht.json b/qortal-ui-core/language/zht.json index 113b8b14..374ea797 100644 --- a/qortal-ui-core/language/zht.json +++ b/qortal-ui-core/language/zht.json @@ -606,7 +606,11 @@ "gchange51":"加入", "gchange52":"管理員", "gchange53":"成員", - "gchange54":"成員數量" + "gchange54":"成員數量", + "gchange55":"搜索私人群組", + "gchange56":"要搜索的組名", + "gchange57":"未找到私人組名", + "gchange58":"注意組名必須完全匹配。" }, "puzzlepage":{ "pchange1":"益智游戲", diff --git a/qortal-ui-plugins/plugins/core/group-management/group-management.src.js b/qortal-ui-plugins/plugins/core/group-management/group-management.src.js index 0221abe2..db52b313 100644 --- a/qortal-ui-plugins/plugins/core/group-management/group-management.src.js +++ b/qortal-ui-plugins/plugins/core/group-management/group-management.src.js @@ -30,8 +30,10 @@ class GroupManagement extends LitElement { return { loading: { type: Boolean }, publicGroups: { type: Array }, + privateGroups: { type: Array }, joinedGroups: { type: Array }, groupInvites: { type: Array }, + privateGroupSearch: { type: Array }, newMembersList: { type: Array }, newAdminsList: { type: Array }, newBannedList: { type: Array }, @@ -77,6 +79,7 @@ class GroupManagement extends LitElement { toInviteMemberToGroup: { type: String }, toCancelInviteMemberName: { type: String }, toCancelInviteMemberAddress: { type: String }, + searchGroupName: { type: String }, errorMessage: { type: String }, successMessage: { type: String } } @@ -410,6 +413,13 @@ class GroupManagement extends LitElement { background: var(--white); color: var(--black); } + + #search { + width: 100%; + display: flex; + margin: auto; + align-items: center; + } ` } @@ -418,8 +428,10 @@ class GroupManagement extends LitElement { this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' this.selectedAddress = {} this.publicGroups = [] + this.privateGroups = [] this.joinedGroups = [] this.groupInvites = [] + this.privateGroupSearch = [] this.newMembersList = [] this.newAdminsList = [] this.newBannedList = [] @@ -458,6 +470,7 @@ class GroupManagement extends LitElement { this.toInviteMemberToGroup = '' this.toCancelInviteMemberName = '' this.toCancelInviteMemberAddress = '' + this.searchGroupName = '' this.errorMessage = '' this.successMessage = '' this.selectedView = { id: 'group-members', name: 'Group Members' } @@ -1136,6 +1149,45 @@ class GroupManagement extends LitElement { this.shadowRoot.querySelector('#createGroupDialog').show()}>add${translate("grouppage.gchange2")} +
+

${translate("grouppage.gchange55")}

+
+ + + + { + if (data.item.isOpen === true) { + render(html`${translate("managegroup.mg44")}`, root) + } else { + render(html`${translate("managegroup.mg45")}`, root) + } + }}> + + + { + render(html` this.joinGroup(data.item)}>queue ${translate("grouppage.gchange51")}`, root) + }}> + +
+

${translate("grouppage.gchange3")}

@@ -1150,7 +1202,9 @@ class GroupManagement extends LitElement { }}> ${this.isEmptyArray(this.joinedGroups) ? html` - ${translate("grouppage.gchange8")} +
+ ${translate("grouppage.gchange8")} +
`: ''}
@@ -1175,7 +1229,9 @@ class GroupManagement extends LitElement { }}> ${this.isEmptyArray(this.groupInvites) ? html` - ${translate("managegroup.mg35")} +
+ ${translate("managegroup.mg35")} +
`: ''} @@ -1477,6 +1533,22 @@ class GroupManagement extends LitElement { ${translate("general.close")} + + +
+ warning +

${translate("grouppage.gchange57")}

+

${translate("grouppage.gchange58")}

+
+ + this.closePrivateGroupErrorDialog()} + class="red" + > + ${translate("general.close")} + +
` } @@ -1504,6 +1576,14 @@ class GroupManagement extends LitElement { return myGs } + const getPrivateGroups = async () => { + let privateG = await parentEpml.request('apiCall', { + url: `/groups?limit=0&reverse=true` + }) + let myPgs = privateG.filter(myP => myP.isOpen === false) + return myPgs + } + const getJoinedGroups = async () => { let joinedG = await parentEpml.request('apiCall', { url: `/groups/member/${this.selectedAddress.address}` @@ -1563,13 +1643,15 @@ class GroupManagement extends LitElement { const getOpen_JoinedGroups = async () => { let _joinedGroups = await getJoinedGroups() let _publicGroups = await getOpenPublicGroups() + let _privateGroups = await getPrivateGroups() let results = _publicGroups.filter(myOpenGroup => { let value = _joinedGroups.some(myJoinedGroup => myOpenGroup.groupId === myJoinedGroup.groupId) return !value }); this.publicGroups = results + this.privateGroups = _privateGroups this.joinedGroups = _joinedGroups - setTimeout(getOpen_JoinedGroups, 30000) + setTimeout(getOpen_JoinedGroups, 60000) } window.addEventListener("contextmenu", (event) => { @@ -1722,6 +1804,36 @@ class GroupManagement extends LitElement { } } + searchGroupListener(e) { + if (e.key === 'Enter') { + this.doGroupSearch(e) + } + } + + doGroupSearch(e) { + this.renderSearchResult() + } + + renderSearchResult() { + this.privateGroupSearch = [] + let searchGroupName = this.shadowRoot.getElementById('searchGroupName').value + if (searchGroupName.length === 0) { + let err1string = get("websitespage.schange34") + parentEpml.request('showSnackBar', `${err1string}`) + } else { + this.privateGroupSearch = this.privateGroups.filter(myS => myS.groupName === searchGroupName) + if (this.privateGroupSearch.length === 0) { + this.shadowRoot.querySelector('#privateGroupErrorDialog').show() + } + } + } + + closePrivateGroupErrorDialog() { + this.shadowRoot.querySelector('#privateGroupErrorDialog').close() + this.shadowRoot.getElementById('searchGroupName').value = '' + this.privateGroupSearch = [] + } + renderBanButton(groupObj) { return html` this.openCreateBanMemberDialog(groupObj)}>create ${translate("managegroup.mg6")}` } @@ -1939,6 +2051,7 @@ class GroupManagement extends LitElement { closeFieldErrorDialog() { this.shadowRoot.querySelector('#fieldErrorDialog').close() } + async unitCreateFee() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node] const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port @@ -3178,4 +3291,4 @@ class GroupManagement extends LitElement { } } -window.customElements.define('group-management', GroupManagement) +window.customElements.define('group-management', GroupManagement) \ No newline at end of file