Browse Source

Merge branch 'feature/group-features' of https://github.com/PhillipLangMartinez/qortal-ui into justin-groups-features

pull/127/head
Justin Ferrari 2 years ago
parent
commit
09950cde54
  1. 9
      qortal-ui-core/language/de.json
  2. 9
      qortal-ui-core/language/es.json
  3. 9
      qortal-ui-core/language/fr.json
  4. 9
      qortal-ui-core/language/hindi.json
  5. 9
      qortal-ui-core/language/hr.json
  6. 9
      qortal-ui-core/language/hu.json
  7. 9
      qortal-ui-core/language/it.json
  8. 9
      qortal-ui-core/language/ko.json
  9. 9
      qortal-ui-core/language/no.json
  10. 9
      qortal-ui-core/language/pl.json
  11. 9
      qortal-ui-core/language/pt.json
  12. 9
      qortal-ui-core/language/ro.json
  13. 9
      qortal-ui-core/language/rs.json
  14. 9
      qortal-ui-core/language/ru.json
  15. 39
      qortal-ui-core/language/us.json
  16. 9
      qortal-ui-core/language/zhc.json
  17. 9
      qortal-ui-core/language/zht.json
  18. 30
      qortal-ui-core/src/components/app-view.js
  19. 10
      qortal-ui-core/src/components/user-info-view/user-info-view.js
  20. 1
      qortal-ui-plugins/plugins/core/components/ChatPage.js
  21. 22
      qortal-ui-plugins/plugins/core/components/TipUser.js
  22. 121
      qortal-ui-plugins/plugins/core/group-management/group-management.src.js
  23. 1
      qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat-css.src.js
  24. 2
      qortal-ui-plugins/plugins/core/name-registration/name-registration.src.js

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

@ -155,7 +155,8 @@
"continue":"Fortsetzen",
"save":"Speichern",
"balance":"Guthaben",
"balances":"IHR WALLET-GUTHABEN"
"balances":"IHR WALLET-GUTHABEN",
"update":"AKTUALISIERE WALLET-GUTHABEN"
},
"startminting":{
"smchange1":"Prägekonten können nicht abgerufen werden",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Continuar",
"save":"Guardar",
"balance":"Saldo",
"balances":"LOS SALDOS DE TU BILLETERA"
"balances":"LOS SALDOS DE TU BILLETERA",
"update":"ACTUALIZAR SALDOS DE CARTERA"
},
"startminting":{
"smchange1":"No se pueden obtener cuentas de acuñación",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Continuer",
"save":"Sauvegarder",
"balance":"Solde",
"balances":"VOS SOLDES DE PORTEFEUILLE"
"balances":"VOS SOLDES DE PORTEFEUILLE",
"update":"METTRE À JOUR LES SOLDES DES PORTEFEUILLES"
},
"startminting":{
"smchange1":"Impossible de récupérer les comptes de frappe",
@ -606,7 +607,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",

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

@ -156,7 +156,8 @@
"continue":"ज रख",
"save":"सह",
"balance":"सलन",
"balances":"आपकट बस"
"balances":"आपकट बस",
"update":"अपडट वट बस"
},
"startminting":{
"smchange1":"खनन ख नहए ज सकत",
@ -607,7 +608,11 @@
"gchange51":"शिल ह",
"gchange52":"वयवसपक",
"gchange53":"सदसय",
"gchange54":"सदस"
"gchange54":"सदस",
"gchange55":"नि समह ख",
"gchange56":"खजनिए समह कम",
"gchange57":"नि समह कम नहि",
"gchange58":"धन दि समह कम सटक मल खिए।"
},
"puzzlepage":{
"pchange1":"पहि",

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

@ -155,7 +155,8 @@
"continue":"Nastavi",
"save":"Spremi",
"balance":"Kreditna",
"balances":"VAŠ NOVČANIK JE NA SALJU"
"balances":"VAŠ NOVČANIK JE NA SALJU",
"update":"AŽURIRAJTE STANJE NOVČANIKA"
},
"startminting":{
"smchange1":"Nije moguće dohvatiti račune za kovanje",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Folytatódik/folytatáshoz",
"save":"Mentéshez",
"balance":"Hitel",
"balances":"A PÉNZTÁRCSA EGYENLEGEK"
"balances":"A PÉNZTÁRCSA EGYENLEGEK",
"update":"FRISSÍTSE A PÉNZTÁRCSA-EGYENLEGEKET"
},
"startminting":{
"smchange1":"Nem lehet lekérni a pénzverési számlákat",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Continua",
"save":"Salva",
"balance":"Saldo",
"balances":"IL TUO SALDO DEL PORTAFOGLIO"
"balances":"I SALDI DEL TUO PORTAFOGLIO",
"update":"AGGIORNA I SALDI DEL PORTAFOGLIO"
},
"startminting":{
"smchange1":"Impossibile recuperare i conti di conio",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"계속하다",
"save":"저장",
"balance":"균형",
"balances":"지갑 잔액"
"balances":"지갑 잔액",
"update":"월렛 잔액 업데이트"
},
"startminting":{
"smchange1":"발행 계정을 가져올 수 없습니다",
@ -606,7 +607,11 @@
"gchange51":"가입",
"gchange52":"관리자",
"gchange53":"회원",
"gchange54":"회원들"
"gchange54":"회원들",
"gchange55":"비공개 그룹 검색",
"gchange56":"검색할 그룹 이름",
"gchange57":"비공개 그룹 이름을 찾을 수 없음",
"gchange58":"그룹 이름이 정확히 일치해야 합니다."
},
"puzzlepage":{
"pchange1":"퍼즐",

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

@ -155,7 +155,8 @@
"continue":"Fortsett",
"save":"Lagre",
"balance":"Saldo",
"balances":"DIN WALLET-SALDO"
"balances":"DIN WALLET-SALDO",
"update":"OPPDATERT WALLET-SALDOER"
},
"startminting":{
"smchange1":"Kan ikke hente myntingkontoer",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Kontynuuj",
"save":"Zapisz",
"balance":"Saldo",
"balances":"SALDO TWOJEGO PORTFELA"
"balances":"SALDO TWOJEGO PORTFELA",
"update":"AKTUALIZUJ SALDA W PORTFELU"
},
"startminting":{
"smchange1":"Nie można pobrać kont menniczych",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Continuar",
"save":"Salvar",
"balance":"Saldo",
"balances":"SEUS SALDOS DE CARTEIRA"
"balances":"SEUS SALDOS DE CARTEIRA",
"update":"ATUALIZAR SALDOS DA CARTEIRA"
},
"startminting":{
"smchange1":"Não é possível buscar contas de cunhagem",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Continua",
"save":"Salveza",
"balance":"Credit",
"balances":"SOLDELE PORTOTELULUI DVS"
"balances":"SOLDELE PORTOTELULUI DVS",
"update":"ACTUALIZAȚI SOLDELE PORTOTELULUI"
},
"startminting":{
"smchange1":"Nu se pot prelua conturile de batere",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Nastavite",
"save":"Sačuvajte",
"balance":"Kredit",
"balances":"VAŠI STANJE U NOVČANIKU"
"balances":"VAŠI STANJE U NOVČANIKU",
"update":"AŽURIRAJTE STANJE NOVČANIKA"
},
"startminting":{
"smchange1":"Nije moguće preuzeti naloge za kovanje",
@ -606,7 +607,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",

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

@ -155,7 +155,8 @@
"continue":"Продолжить",
"save":"Сохранить",
"balance":"кредит",
"balances":"БАЛАНС ВАШЕГО КОШЕЛЬКА"
"balances":"БАЛАНС ВАШЕГО КОШЕЛЬКА",
"update":"ОБНОВИТЬ БАЛАНС КОШЕЛЬКА"
},
"startminting":{
"smchange1":"Не удается получить учетные записи минтинга",
@ -606,7 +607,11 @@
"gchange51":"Присоединиться",
"gchange52":"Администратор",
"gchange53":"Член",
"gchange54":"Члены"
"gchange54":"Члены",
"gchange55":"Поиск в закрытой группе",
"gchange56":"Имя группы для поиска",
"gchange57":"Имя частной группы не найдено",
"gchange58":"Обратите внимание, что название группы должно точно совпадать."
},
"puzzlepage":{
"pchange1":"Головоломки",

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

@ -155,7 +155,8 @@
"continue": "Continue",
"save": "Save",
"balance": "Balance",
"balances": "YOUR WALLET BALANCES"
"balances": "YOUR WALLET BALANCES",
"update": "UPDATE WALLET BALANCES"
},
"startminting": {
"smchange1": "Cannot fetch minting accounts",
@ -542,7 +543,21 @@
"cchange39": "Cannot send an encrypted message to this user since they do not have their publickey on chain.",
"cchange40": "IMAGE (click to view)",
"cchange41": "Your Balance Is Under 4.20 QORT",
"cchange42": "Out of the need to combat spam, accounts with under 4.20 Qort balance will take a long time to SEND messages in Q-Chat. If you wish to immediately increase the send speed for Q-Chat messages, obtain over 4.20 QORT to your address. This can be done with trades in the Trade Portal, or by way of another Qortian giving you the QORT. Once you have over 4.20 QORT in your account, Q-Chat messages will be instant and this dialog will no more show. Thank you for your understanding of this necessary spam prevention method, and we hope you enjoy Qortal!"
"cchange42": "Out of the need to combat spam, accounts with under 4.20 Qort balance will take a long time to SEND messages in Q-Chat. If you wish to immediately increase the send speed for Q-Chat messages, obtain over 4.20 QORT to your address. This can be done with trades in the Trade Portal, or by way of another Qortian giving you the QORT. Once you have over 4.20 QORT in your account, Q-Chat messages will be instant and this dialog will no more show. Thank you for your understanding of this necessary spam prevention method, and we hope you enjoy Qortal!",
"cchange43": "Tip QORT to",
"cchange44": "SEND MESSAGE",
"cchange45": "TIP USER",
"cchange46": "Tip Amount",
"cchange47": "Available Balance",
"cchange48": "Failed to Fetch QORT Balance. Try again!",
"cchange49": "Current static fee",
"cchange50": "Send",
"cchange51": "Insufficient Funds!",
"cchange52": "Invalid Amount!",
"cchange53": "Receiver cannot be empty!",
"cchange54": "Invalid Receiver!",
"cchange55": "Transaction Successful!",
"cchange56": "Transaction Failed!"
},
"welcomepage": {
"wcchange1": "Welcome to Q-Chat",
@ -609,7 +624,7 @@
"gchange32": "Date Updated",
"gchange33": "Joining",
"gchange34": "Join Group",
"gchange35": "User Info",
"gchange35": "Leave Group Request",
"gchange36": "Leaving",
"gchange37": "Leave Group",
"gchange38": "Manage Group Owner:",
@ -629,20 +644,10 @@
"gchange52": "Admin",
"gchange53": "Member",
"gchange54": "Members",
"gchange55": "Tip QORT to",
"gchange56": "SEND MESSAGE",
"gchange57": "TIP USER",
"gchange58": "Tip Amount",
"gchange59": "Available Balance",
"gchange60": "Failed to Fetch QORT Balance. Try again!",
"gchange61": "Current static fee",
"gchange62": "Send",
"gchange63": "Insufficient Funds!",
"gchange64": "Invalid Amount!",
"gchange65": "Receiver cannot be empty!",
"gchange66": "Invalid Receiver!",
"gchange67": "Transaction Successful!",
"gchange68": "Transaction Failed!"
"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",

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

@ -155,7 +155,8 @@
"continue":"继续",
"save":"保存",
"balance":"信用",
"balances":"您的钱包余额"
"balances":"您的钱包余额",
"update":"更新钱包余额"
},
"startminting":{
"smchange1":"无法获取铸币帐户",
@ -606,7 +607,11 @@
"gchange51":"加入",
"gchange52":"管理员",
"gchange53":"成员",
"gchange54":"成员数量"
"gchange54":"成员数量",
"gchange55":"搜索私人群组",
"gchange56":"要搜索的组名",
"gchange57":"未找到私人组名",
"gchange58":"注意组名必须完全匹配。"
},
"puzzlepage":{
"pchange1":"益智游戏",

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

@ -155,7 +155,8 @@
"continue":"繼續",
"save":"保存",
"balance":"信用",
"balances":"您的錢包餘額"
"balances":"您的錢包餘額",
"update":"更新錢包餘額"
},
"startminting":{
"smchange1":"無法獲取鑄幣帳戶",
@ -606,7 +607,11 @@
"gchange51":"加入",
"gchange52":"管理員",
"gchange53":"成員",
"gchange54":"成員數量"
"gchange54":"成員數量",
"gchange55":"搜索私人群組",
"gchange56":"要搜索的組名",
"gchange57":"未找到私人組名",
"gchange58":"注意組名必須完全匹配。"
},
"puzzlepage":{
"pchange1":"益智游戲",

30
qortal-ui-core/src/components/app-view.js

@ -6,6 +6,7 @@ import { addTradeBotRoutes } from '../tradebot/addTradeBotRoutes.js'
import { get, translate, translateUnsafeHTML } from 'lit-translate'
import '@polymer/paper-icon-button/paper-icon-button.js'
import '@polymer/paper-progress/paper-progress.js'
import '@polymer/iron-icons/iron-icons.js'
import '@polymer/app-layout/app-layout.js'
import '@polymer/paper-ripple'
@ -38,6 +39,7 @@ class AppView extends connect(store)(LitElement) {
theme: { type: String, reflect: true },
addressInfo: { type: Object },
searchContentString: { type: String },
getAllBalancesLoading: { type: Boolean },
botQortWallet: { type: String },
botBtcWallet: { type: String },
botLtcWallet: { type: String },
@ -154,6 +156,10 @@ class AppView extends connect(store)(LitElement) {
padding: 3px;
}
paper-progress {
--paper-progress-active-color: var(--mdc-theme-primary);
}
.s-menu {
list-style: none;
padding: 0px 0px;
@ -209,7 +215,7 @@ class AppView extends connect(store)(LitElement) {
.balanceheadertext {
position: absolute;
margin: auto;
font-size: 16px;
font-size: 14px;
font-weight: 400;
width: 250px;
display: inline;
@ -330,11 +336,12 @@ class AppView extends connect(store)(LitElement) {
constructor() {
super()
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.searchContentString = ''
this.urls = [];
this.nodeType = ''
this.addressInfo = {}
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.getAllBalancesLoading = false
this.botQortWallet = ''
this.botBtcWallet = ''
this.botLtcWallet = ''
@ -421,13 +428,18 @@ class AppView extends connect(store)(LitElement) {
</div>
<div id="balanceheader">
<span class="balanceheadertext">
${translate("general.balances")}
<vaadin-button theme="icon" id="reload" @click="${() => this.getAllBalances()}">
<vaadin-icon icon="vaadin:refresh"></vaadin-icon>
</vaadin-button>
<vaadin-tooltip text="Reload Balances" for="reload" position="top"></vaadin-tooltip>
${this.getAllBalancesLoading ? html`
${translate("general.update")}
` : html`
${translate("general.balances")}
<vaadin-button theme="icon" id="reload" @click="${() => this.getAllBalances()}">
<vaadin-icon icon="vaadin:refresh"></vaadin-icon>
</vaadin-button>
<vaadin-tooltip text="${translate("general.update")}" for="reload" position="top"></vaadin-tooltip>
`}
</span>
</div>
${this.getAllBalancesLoading ? html`<paper-progress indeterminate style="width: 100%; margin: 4px;"></paper-progress>` : ''}
${this.balanceTicker}
<app-info></app-info>
</div>
@ -1512,6 +1524,7 @@ class AppView extends connect(store)(LitElement) {
}
async getAllBalances() {
this.getAllBalancesLoading = true
await this.updateQortWalletBalance()
await this.updateBtcWalletBalance()
await this.updateLtcWalletBalance()
@ -1520,6 +1533,7 @@ class AppView extends connect(store)(LitElement) {
await this.updateRvnWalletBalance()
await this.fetchArrrWalletAddress()
await this.updateArrrWalletBalance()
this.getAllBalancesLoading = false
}
async renderBalances() {
@ -2139,4 +2153,4 @@ class AppView extends connect(store)(LitElement) {
}
}
window.customElements.define('app-view', AppView)
window.customElements.define('app-view', AppView)

10
qortal-ui-core/src/components/user-info-view/user-info-view.js

@ -6,8 +6,6 @@ import { doLogout } from '../../redux/app/app-actions.js'
import { get, translate, translateUnsafeHTML } from 'lit-translate'
import '@polymer/paper-dialog/paper-dialog.js'
import '@polymer/neon-animation/animations/scale-up-animation.js';
import '@polymer/neon-animation/animations/fade-out-animation.js';
import '@material/mwc-button'
import '@material/mwc-icon'
import '@vaadin/grid'
@ -1173,7 +1171,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div>
</paper-dialog>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="userBoughtDialog" entry-animation="scale-up-animation" exit-animation="fade-out-animation" with-backdrop>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="userBoughtDialog" modal>
<div class="card-explorer-container">
<div id="first-explorer-section">
${this.boughtBTCTemplate()}
@ -1193,7 +1191,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div>
</paper-dialog>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px; overflow: auto;" id="userSoldDialog" entry-animation="scale-up-animation" exit-animation="fade-out-animation" with-backdrop>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px; overflow: auto;" id="userSoldDialog" modal>
<div class="card-explorer-container">
<div id="first-explorer-section">
${this.soldBTCTemplate()}
@ -1213,7 +1211,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div>
</paper-dialog>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="showTxDetailsDialog" entry-animation="scale-up-animation" exit-animation="fade-out-animation" with-backdrop>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="showTxDetailsDialog" modal>
<div style="text-align: center; color: var(--black);">
<h1>${translate("walletpage.wchange5")}</h1>
<hr />
@ -1773,7 +1771,7 @@ class UserInfoView extends connect(store)(LitElement) {
openTrades() {
this.shadowRoot.getElementById('userTrades').open()
this.shadowRoot.getElementById('userInfoDialog').close()
this.shadowRoot.getElementById('userFullInfoDialog').close()
}
async openUserBoughtDialog() {

1
qortal-ui-plugins/plugins/core/components/ChatPage.js

@ -700,6 +700,7 @@ class ChatPage extends LitElement {
font-family: Roboto, sans-serif;
font-size: 15px;
color: var(--chat-bubble-msg-color);
box-sizing: border-box;
}
.name-input::selection {

22
qortal-ui-plugins/plugins/core/components/TipUser.js

@ -57,11 +57,11 @@ export class TipUser extends LitElement {
}
renderSuccessText() {
return html`${translate("grouppage.gchange67")}`
return html`${translate("chatpage.cchange55")}`
}
renderReceiverText() {
return html`${translate("grouppage.gchange66")}`
return html`${translate("chatpage.cchange54")}`
}
getApiKey() {
@ -76,7 +76,7 @@ export class TipUser extends LitElement {
})
.then((res) => {
if (isNaN(Number(res))) {
let snack4string = get("grouppage.gchange60")
let snack4string = get("chatpage.cchange48")
parentEpml.request('showSnackBar', `${snack4string}`)
} else {
this.walletBalance = Number(res).toFixed(8);
@ -93,7 +93,7 @@ export class TipUser extends LitElement {
if (parseFloat(amount) + parseFloat(0.001) > parseFloat(this.walletBalance)) {
this.sendMoneyLoading = false;
this.btnDisable = false;
let snack1string = get("grouppage.gchange63");
let snack1string = get("chatpage.cchange51");
parentEpml.request('showSnackBar', `${snack1string}`);
return false;
}
@ -101,7 +101,7 @@ export class TipUser extends LitElement {
if (parseFloat(amount) <= 0) {
this.sendMoneyLoading = false;
this.btnDisable = false;
let snack2string = get("grouppage.gchange64");
let snack2string = get("chatpage.cchange52");
parentEpml.request('showSnackBar', `${snack2string}`);
return false;
}
@ -109,7 +109,7 @@ export class TipUser extends LitElement {
if (recipient.length === 0) {
this.sendMoneyLoading = false;
this.btnDisable = false;
let snack3string = get("grouppage.gchange65");
let snack3string = get("chatpage.cchange53");
parentEpml.request('showSnackBar', `${snack3string}`);
return false;
}
@ -239,12 +239,12 @@ export class TipUser extends LitElement {
return html`
<div class="tip-user-header">
<img src="/img/qort.png" width="32" height="32">
<p class="tip-user-header-font">${translate("grouppage.gchange55")} ${this.userName}</p>
<p class="tip-user-header-font">${translate("chatpage.cchange43")} ${this.userName}</p>
</div>
<div class="tip-user-body">
<p class="tip-available">${translate("grouppage.gchange59")}: ${this.walletBalance} QORT</p>
<input id="amountInput" class="tip-input" type="number" placeholder="${translate("grouppage.gchange58")}" />
<p class="tip-available">${translate("grouppage.gchange61")}: 0.001 QORT</p>
<p class="tip-available">${translate("chatpage.cchange47")}: ${this.walletBalance} QORT</p>
<input id="amountInput" class="tip-input" type="number" placeholder="${translate("chatpage.cchange46")}" />
<p class="tip-available">${translate("chatpage.cchange49")}: 0.001 QORT</p>
${this.sendMoneyLoading ?
html`
<paper-progress indeterminate style="width: 100%; margin: 4px;">
@ -257,7 +257,7 @@ export class TipUser extends LitElement {
style="width: 100%; cursor: pointer"
@click=${() => this.sendQort()}>
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
${translate("grouppage.gchange62")} QORT
${translate("chatpage.cchange50")} QORT
</vaadin-button>
</div>
`}

121
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 {
<mwc-button style="float:right;" @click=${() => this.shadowRoot.querySelector('#createGroupDialog').show()}><mwc-icon>add</mwc-icon>${translate("grouppage.gchange2")}</mwc-button>
</div>
<div class="divCard">
<h3 style="margin: 0; margin-bottom: 1em; text-align: left;">${translate("grouppage.gchange55")}</h3>
<div id="search">
<vaadin-text-field
theme="medium"
style="width: 20em"
minlength="3"
maxlength="32"
id="searchGroupName"
placeholder="${translate("grouppage.gchange56")}"
value="${this.searchGroupName}"
@keydown="${this.searchGroupListener}"
clear-button-visible
>
<vaadin-icon slot="prefix" icon="vaadin:user"></vaadin-icon>
</vaadin-text-field>&nbsp;&nbsp;<br>
<vaadin-button theme="medium" @click="${(e) => this.doGroupSearch(e)}">
<vaadin-icon icon="vaadin:search" slot="prefix"></vaadin-icon>
${translate("websitespage.schange35")}
</vaadin-button>
</div><br />
<vaadin-grid theme="large" id="priveGroupSearchGrid" ?hidden="${this.isEmptyArray(this.privateGroupSearch)}" .items="${this.privateGroupSearch}" aria-label="My Search Result" all-rows-visible>
<vaadin-grid-column width="8rem" flex-grow="0" header="${translate("grouppage.gchange54")}" path="memberCount"></vaadin-grid-column>
<vaadin-grid-column header="${translate("grouppage.gchange4")}" path="groupName"></vaadin-grid-column>
<vaadin-grid-column header="${translate("managegroup.mg42")}" .renderer=${(root, column, data) => {
if (data.item.isOpen === true) {
render(html`${translate("managegroup.mg44")}`, root)
} else {
render(html`${translate("managegroup.mg45")}`, root)
}
}}></vaadin-grid-column>
<vaadin-grid-column header="${translate("grouppage.gchange5")}" path="description"></vaadin-grid-column>
<vaadin-grid-column header="${translate("grouppage.gchange10")}" path="owner"></vaadin-grid-column>
<vaadin-grid-column width="11rem" flex-grow="0" header="${translate("grouppage.gchange7")}" .renderer=${(root, column, data) => {
render(html`<mwc-button @click=${() => this.joinGroup(data.item)}><mwc-icon>queue</mwc-icon>&nbsp;${translate("grouppage.gchange51")}</mwc-button>`, root)
}}></vaadin-grid-column>
</vaadin-grid>
</div>
<div class="divCard">
<h3 style="margin: 0; margin-bottom: 1em; text-align: center;">${translate("grouppage.gchange3")}</h3>
<vaadin-grid theme="large" id="joinedGroupsGrid" ?hidden="${this.isEmptyArray(this.joinedGroups)}" .items="${this.joinedGroups}" aria-label="Joined Groups" all-rows-visible>
@ -1150,7 +1202,9 @@ class GroupManagement extends LitElement {
}}></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.joinedGroups) ? html`
<span style="color: var(--black);">${translate("grouppage.gchange8")}</span>
<div style="text-align: center;">
<span style="color: var(--black);">${translate("grouppage.gchange8")}</span>
</div>
`: ''}
</div>
@ -1175,7 +1229,9 @@ class GroupManagement extends LitElement {
}}></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.groupInvites) ? html`
<span style="color: var(--black);">${translate("managegroup.mg35")}</span>
<div style="text-align: center;">
<span style="color: var(--black);">${translate("managegroup.mg35")}</span>
</div>
`: ''}
</div>
@ -1477,6 +1533,22 @@ class GroupManagement extends LitElement {
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="privateGroupErrorDialog" scrimClickAction="" escapeKeyAction="">
<div style="text-align: center;">
<mwc-icon class="error-icon">warning</mwc-icon>
<h2>${translate("grouppage.gchange57")}</h2>
<h4>${translate("grouppage.gchange58")}</h4>
</div>
<mwc-button
slot="primaryAction"
@click=${() => this.closePrivateGroupErrorDialog()}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
</div>
`
}
@ -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) => {
@ -1723,6 +1805,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`<mwc-button class="warning" @click=${() => this.openCreateBanMemberDialog(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("managegroup.mg6")}</mwc-button>`
}
@ -1940,6 +2052,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
@ -3179,4 +3292,4 @@ class GroupManagement extends LitElement {
}
}
window.customElements.define('group-management', GroupManagement)
window.customElements.define('group-management', GroupManagement)

1
qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat-css.src.js

@ -316,6 +316,7 @@ export const qchatStyles = css`
font-family: Roboto, sans-serif;
font-size: 15px;
color: var(--chat-bubble-msg-color);
box-sizing: border-box;
}
.name-input::selection {

2
qortal-ui-plugins/plugins/core/name-registration/name-registration.src.js

@ -280,7 +280,7 @@ class NameRegistration extends LitElement {
}
async uploadAvatar(nameObj) {
let name = nameObj.name
let name = encodeURIComponent(nameObj.name)
window.location.href = `../qdn/publish/index.html?service=THUMBNAIL&identifier=qortal_avatar&name=${name}&uploadType=file&category=Avatar&showName=false&showService=false&showIdentifier=false`
}

Loading…
Cancel
Save