Browse Source

Merge remote-tracking branch 'upstream/master' into feature/group-features

pull/127/head
Phillip Lang Martinez 2 years ago
parent
commit
53f2aa93f7
  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. 117
      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. 121
      qortal-ui-plugins/plugins/core/group-management/group-management.src.js
  21. 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", "continue":"Fortsetzen",
"save":"Speichern", "save":"Speichern",
"balance":"Guthaben", "balance":"Guthaben",
"balances":"IHR WALLET-GUTHABEN" "balances":"IHR WALLET-GUTHABEN",
"update":"AKTUALISIERE WALLET-GUTHABEN"
}, },
"startminting":{ "startminting":{
"smchange1":"Prägekonten können nicht abgerufen werden", "smchange1":"Prägekonten können nicht abgerufen werden",
@ -606,7 +607,11 @@
"gchange51":"Beitreten", "gchange51":"Beitreten",
"gchange52":"Administrator", "gchange52":"Administrator",
"gchange53":"Mitglied", "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":{ "puzzlepage":{
"pchange1":"Rätsel", "pchange1":"Rätsel",

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -155,7 +155,8 @@
"continue":"Fortsett", "continue":"Fortsett",
"save":"Lagre", "save":"Lagre",
"balance":"Saldo", "balance":"Saldo",
"balances":"DIN WALLET-SALDO" "balances":"DIN WALLET-SALDO",
"update":"OPPDATERT WALLET-SALDOER"
}, },
"startminting":{ "startminting":{
"smchange1":"Kan ikke hente myntingkontoer", "smchange1":"Kan ikke hente myntingkontoer",
@ -606,7 +607,11 @@
"gchange51":"Bli med", "gchange51":"Bli med",
"gchange52":"Admin", "gchange52":"Admin",
"gchange53":"Medlem", "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":{ "puzzlepage":{
"pchange1":"Puzzles", "pchange1":"Puzzles",

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

@ -155,7 +155,8 @@
"continue":"Kontynuuj", "continue":"Kontynuuj",
"save":"Zapisz", "save":"Zapisz",
"balance":"Saldo", "balance":"Saldo",
"balances":"SALDO TWOJEGO PORTFELA" "balances":"SALDO TWOJEGO PORTFELA",
"update":"AKTUALIZUJ SALDA W PORTFELU"
}, },
"startminting":{ "startminting":{
"smchange1":"Nie można pobrać kont menniczych", "smchange1":"Nie można pobrać kont menniczych",
@ -606,7 +607,11 @@
"gchange51":"Dołącz", "gchange51":"Dołącz",
"gchange52":"Administrator", "gchange52":"Administrator",
"gchange53":"Członek", "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":{ "puzzlepage":{
"pchange1":"Zagadki", "pchange1":"Zagadki",

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

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

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

@ -155,7 +155,8 @@
"continue":"Continua", "continue":"Continua",
"save":"Salveza", "save":"Salveza",
"balance":"Credit", "balance":"Credit",
"balances":"SOLDELE PORTOTELULUI DVS" "balances":"SOLDELE PORTOTELULUI DVS",
"update":"ACTUALIZAȚI SOLDELE PORTOTELULUI"
}, },
"startminting":{ "startminting":{
"smchange1":"Nu se pot prelua conturile de batere", "smchange1":"Nu se pot prelua conturile de batere",
@ -606,7 +607,11 @@
"gchange51":"Inscriere", "gchange51":"Inscriere",
"gchange52":"Admin", "gchange52":"Admin",
"gchange53":"Membru", "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":{ "puzzlepage":{
"pchange1":"Puzzle-uri", "pchange1":"Puzzle-uri",

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

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

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

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

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

@ -155,7 +155,8 @@
"continue":"Continue", "continue":"Continue",
"save":"Save", "save":"Save",
"balance":"Balance", "balance":"Balance",
"balances":"YOUR WALLET BALANCES" "balances":"YOUR WALLET BALANCES",
"update":"UPDATE WALLET BALANCES"
}, },
"startminting": { "startminting": {
"smchange1": "Cannot fetch minting accounts", "smchange1": "Cannot fetch minting accounts",
@ -575,61 +576,65 @@
"bcchange16": "Choose Recipient or Search for One Below", "bcchange16": "Choose Recipient or Search for One Below",
"bcchange17": "FORWARDED" "bcchange17": "FORWARDED"
}, },
"grouppage": { "grouppage":{
"gchange1": "Qortal Groups", "gchange1":"Qortal Groups",
"gchange2": "Create Group", "gchange2":"Create Group",
"gchange3": "Your Joined Groups", "gchange3":"Your Joined Groups",
"gchange4": "Group Name", "gchange4":"Group Name",
"gchange5": "Description", "gchange5":"Description",
"gchange6": "Role", "gchange6":"Role",
"gchange7": "Action", "gchange7":"Action",
"gchange8": "Not a member of any group!", "gchange8":"Not a member of any group!",
"gchange9": "Public Groups", "gchange9":"Public Groups",
"gchange10": "Owner", "gchange10":"Owner",
"gchange11": "No Open Public Groups available!", "gchange11":"No Open Public Groups available!",
"gchange12": "Create a New Group", "gchange12":"Create a New Group",
"gchange13": "Group Type", "gchange13":"Group Type",
"gchange14": "This Field is Required", "gchange14":"This Field is Required",
"gchange15": "Select an option", "gchange15":"Select an option",
"gchange16": "Public", "gchange16":"Public",
"gchange17": "Private", "gchange17":"Private",
"gchange18": "Group Approval Threshold (number / percentage of Admins that must approve a transaction):", "gchange18":"Group Approval Threshold (number / percentage of Admins that must approve a transaction):",
"gchange19": "NONE", "gchange19":"NONE",
"gchange20": "ONE", "gchange20":"ONE",
"gchange21": "Minimum Block delay for Group Transaction Approvals:", "gchange21":"Minimum Block delay for Group Transaction Approvals:",
"gchange22": "minutes", "gchange22":"minutes",
"gchange23": "hour", "gchange23":"hour",
"gchange24": "hours", "gchange24":"hours",
"gchange25": "day", "gchange25":"day",
"gchange26": "days", "gchange26":"days",
"gchange27": "Maximum Block delay for Group Transaction Approvals:", "gchange27":"Maximum Block delay for Group Transaction Approvals:",
"gchange28": "Creating Group", "gchange28":"Creating Group",
"gchange29": "Create Group", "gchange29":"Create Group",
"gchange30": "Join Group Request", "gchange30":"Join Group Request",
"gchange31": "Date Created", "gchange31":"Date Created",
"gchange32": "Date Updated", "gchange32":"Date Updated",
"gchange33": "Joining", "gchange33":"Joining",
"gchange34": "Join Group", "gchange34":"Join Group",
"gchange35": "Leave Group Request", "gchange35":"Leave Group Request",
"gchange36": "Leaving", "gchange36":"Leaving",
"gchange37": "Leave Group", "gchange37":"Leave Group",
"gchange38": "Manage Group Owner:", "gchange38":"Manage Group Owner:",
"gchange39": "Manage Group Admin:", "gchange39":"Manage Group Admin:",
"gchange40": "Manage Group", "gchange40":"Manage Group",
"gchange41": "Group Creation Successful!", "gchange41":"Group Creation Successful!",
"gchange42": "Invalid Group Name", "gchange42":"Invalid Group Name",
"gchange43": "Invalid Group Description", "gchange43":"Invalid Group Description",
"gchange44": "Select a Group Typ", "gchange44":"Select a Group Typ",
"gchange45": "Select a Group Approval Threshold", "gchange45":"Select a Group Approval Threshold",
"gchange46": "Select a Minimum Block delay for Group Transaction Approvals", "gchange46":"Select a Minimum Block delay for Group Transaction Approvals",
"gchange47": "Select a Maximum Block delay for Group Transaction Approvals", "gchange47":"Select a Maximum Block delay for Group Transaction Approvals",
"gchange48": "Join Group Request Sent Successfully!", "gchange48":"Join Group Request Sent Successfully!",
"gchange49": "Leave Group Request Sent Successfully!", "gchange49":"Leave Group Request Sent Successfully!",
"gchange50": "Leave", "gchange50":"Leave",
"gchange51": "Join", "gchange51":"Join",
"gchange52": "Admin", "gchange52":"Admin",
"gchange53": "Member", "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": { "puzzlepage": {
"pchange1": "Puzzles", "pchange1": "Puzzles",

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

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

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

@ -155,7 +155,8 @@
"continue":"繼續", "continue":"繼續",
"save":"保存", "save":"保存",
"balance":"信用", "balance":"信用",
"balances":"您的錢包餘額" "balances":"您的錢包餘額",
"update":"更新錢包餘額"
}, },
"startminting":{ "startminting":{
"smchange1":"無法獲取鑄幣帳戶", "smchange1":"無法獲取鑄幣帳戶",
@ -606,7 +607,11 @@
"gchange51":"加入", "gchange51":"加入",
"gchange52":"管理員", "gchange52":"管理員",
"gchange53":"成員", "gchange53":"成員",
"gchange54":"成員數量" "gchange54":"成員數量",
"gchange55":"搜索私人群組",
"gchange56":"要搜索的組名",
"gchange57":"未找到私人組名",
"gchange58":"注意組名必須完全匹配。"
}, },
"puzzlepage":{ "puzzlepage":{
"pchange1":"益智游戲", "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 { get, translate, translateUnsafeHTML } from 'lit-translate'
import '@polymer/paper-icon-button/paper-icon-button.js' 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/iron-icons/iron-icons.js'
import '@polymer/app-layout/app-layout.js' import '@polymer/app-layout/app-layout.js'
import '@polymer/paper-ripple' import '@polymer/paper-ripple'
@ -38,6 +39,7 @@ class AppView extends connect(store)(LitElement) {
theme: { type: String, reflect: true }, theme: { type: String, reflect: true },
addressInfo: { type: Object }, addressInfo: { type: Object },
searchContentString: { type: String }, searchContentString: { type: String },
getAllBalancesLoading: { type: Boolean },
botQortWallet: { type: String }, botQortWallet: { type: String },
botBtcWallet: { type: String }, botBtcWallet: { type: String },
botLtcWallet: { type: String }, botLtcWallet: { type: String },
@ -156,6 +158,10 @@ class AppView extends connect(store)(LitElement) {
padding: 3px; padding: 3px;
} }
paper-progress {
--paper-progress-active-color: var(--mdc-theme-primary);
}
.s-menu { .s-menu {
list-style: none; list-style: none;
padding: 0px 0px; padding: 0px 0px;
@ -209,7 +215,7 @@ class AppView extends connect(store)(LitElement) {
.balanceheadertext { .balanceheadertext {
position: absolute; position: absolute;
margin: auto; margin: auto;
font-size: 16px; font-size: 14px;
font-weight: 400; font-weight: 400;
width: 250px; width: 250px;
display: inline; display: inline;
@ -325,11 +331,12 @@ class AppView extends connect(store)(LitElement) {
constructor() { constructor() {
super() super()
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.searchContentString = '' this.searchContentString = ''
this.urls = []; this.urls = [];
this.nodeType = '' this.nodeType = ''
this.addressInfo = {} this.addressInfo = {}
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' this.getAllBalancesLoading = false
this.botQortWallet = '' this.botQortWallet = ''
this.botBtcWallet = '' this.botBtcWallet = ''
this.botLtcWallet = '' this.botLtcWallet = ''
@ -416,13 +423,18 @@ class AppView extends connect(store)(LitElement) {
</div> </div>
<div id="balanceheader"> <div id="balanceheader">
<span class="balanceheadertext"> <span class="balanceheadertext">
${translate("general.balances")} ${this.getAllBalancesLoading ? html`
<vaadin-button theme="icon" id="reload" @click="${() => this.getAllBalances()}"> ${translate("general.update")}
<vaadin-icon icon="vaadin:refresh"></vaadin-icon> ` : html`
</vaadin-button> ${translate("general.balances")}
<vaadin-tooltip text="Reload Balances" for="reload" position="top"></vaadin-tooltip> <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> </span>
</div> </div>
${this.getAllBalancesLoading ? html`<paper-progress indeterminate style="width: 100%; margin: 4px;"></paper-progress>` : ''}
${this.balanceTicker} ${this.balanceTicker}
<app-info></app-info> <app-info></app-info>
</div> </div>
@ -1507,6 +1519,7 @@ class AppView extends connect(store)(LitElement) {
} }
async getAllBalances() { async getAllBalances() {
this.getAllBalancesLoading = true
await this.updateQortWalletBalance() await this.updateQortWalletBalance()
await this.updateBtcWalletBalance() await this.updateBtcWalletBalance()
await this.updateLtcWalletBalance() await this.updateLtcWalletBalance()
@ -1515,6 +1528,7 @@ class AppView extends connect(store)(LitElement) {
await this.updateRvnWalletBalance() await this.updateRvnWalletBalance()
await this.fetchArrrWalletAddress() await this.fetchArrrWalletAddress()
await this.updateArrrWalletBalance() await this.updateArrrWalletBalance()
this.getAllBalancesLoading = false
} }
async renderBalances() { async renderBalances() {
@ -2134,4 +2148,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 { get, translate, translateUnsafeHTML } from 'lit-translate'
import '@polymer/paper-dialog/paper-dialog.js' 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-button'
import '@material/mwc-icon' import '@material/mwc-icon'
import '@vaadin/grid' import '@vaadin/grid'
@ -1173,7 +1171,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div> </div>
</paper-dialog> </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 class="card-explorer-container">
<div id="first-explorer-section"> <div id="first-explorer-section">
${this.boughtBTCTemplate()} ${this.boughtBTCTemplate()}
@ -1193,7 +1191,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div> </div>
</paper-dialog> </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 class="card-explorer-container">
<div id="first-explorer-section"> <div id="first-explorer-section">
${this.soldBTCTemplate()} ${this.soldBTCTemplate()}
@ -1213,7 +1211,7 @@ class UserInfoView extends connect(store)(LitElement) {
</div> </div>
</paper-dialog> </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);"> <div style="text-align: center; color: var(--black);">
<h1>${translate("walletpage.wchange5")}</h1> <h1>${translate("walletpage.wchange5")}</h1>
<hr /> <hr />
@ -1773,7 +1771,7 @@ class UserInfoView extends connect(store)(LitElement) {
openTrades() { openTrades() {
this.shadowRoot.getElementById('userTrades').open() this.shadowRoot.getElementById('userTrades').open()
this.shadowRoot.getElementById('userInfoDialog').close() this.shadowRoot.getElementById('userFullInfoDialog').close()
} }
async openUserBoughtDialog() { async openUserBoughtDialog() {

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

@ -30,8 +30,10 @@ class GroupManagement extends LitElement {
return { return {
loading: { type: Boolean }, loading: { type: Boolean },
publicGroups: { type: Array }, publicGroups: { type: Array },
privateGroups: { type: Array },
joinedGroups: { type: Array }, joinedGroups: { type: Array },
groupInvites: { type: Array }, groupInvites: { type: Array },
privateGroupSearch: { type: Array },
newMembersList: { type: Array }, newMembersList: { type: Array },
newAdminsList: { type: Array }, newAdminsList: { type: Array },
newBannedList: { type: Array }, newBannedList: { type: Array },
@ -77,6 +79,7 @@ class GroupManagement extends LitElement {
toInviteMemberToGroup: { type: String }, toInviteMemberToGroup: { type: String },
toCancelInviteMemberName: { type: String }, toCancelInviteMemberName: { type: String },
toCancelInviteMemberAddress: { type: String }, toCancelInviteMemberAddress: { type: String },
searchGroupName: { type: String },
errorMessage: { type: String }, errorMessage: { type: String },
successMessage: { type: String } successMessage: { type: String }
} }
@ -410,6 +413,13 @@ class GroupManagement extends LitElement {
background: var(--white); background: var(--white);
color: var(--black); 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.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.selectedAddress = {} this.selectedAddress = {}
this.publicGroups = [] this.publicGroups = []
this.privateGroups = []
this.joinedGroups = [] this.joinedGroups = []
this.groupInvites = [] this.groupInvites = []
this.privateGroupSearch = []
this.newMembersList = [] this.newMembersList = []
this.newAdminsList = [] this.newAdminsList = []
this.newBannedList = [] this.newBannedList = []
@ -458,6 +470,7 @@ class GroupManagement extends LitElement {
this.toInviteMemberToGroup = '' this.toInviteMemberToGroup = ''
this.toCancelInviteMemberName = '' this.toCancelInviteMemberName = ''
this.toCancelInviteMemberAddress = '' this.toCancelInviteMemberAddress = ''
this.searchGroupName = ''
this.errorMessage = '' this.errorMessage = ''
this.successMessage = '' this.successMessage = ''
this.selectedView = { id: 'group-members', name: 'Group Members' } 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> <mwc-button style="float:right;" @click=${() => this.shadowRoot.querySelector('#createGroupDialog').show()}><mwc-icon>add</mwc-icon>${translate("grouppage.gchange2")}</mwc-button>
</div> </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"> <div class="divCard">
<h3 style="margin: 0; margin-bottom: 1em; text-align: center;">${translate("grouppage.gchange3")}</h3> <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> <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-column>
</vaadin-grid> </vaadin-grid>
${this.isEmptyArray(this.joinedGroups) ? html` ${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> </div>
@ -1175,7 +1229,9 @@ class GroupManagement extends LitElement {
}}></vaadin-grid-column> }}></vaadin-grid-column>
</vaadin-grid> </vaadin-grid>
${this.isEmptyArray(this.groupInvites) ? html` ${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> </div>
@ -1477,6 +1533,22 @@ class GroupManagement extends LitElement {
${translate("general.close")} ${translate("general.close")}
</mwc-button> </mwc-button>
</mwc-dialog> </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> </div>
` `
} }
@ -1504,6 +1576,14 @@ class GroupManagement extends LitElement {
return myGs 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 () => { const getJoinedGroups = async () => {
let joinedG = await parentEpml.request('apiCall', { let joinedG = await parentEpml.request('apiCall', {
url: `/groups/member/${this.selectedAddress.address}` url: `/groups/member/${this.selectedAddress.address}`
@ -1563,13 +1643,15 @@ class GroupManagement extends LitElement {
const getOpen_JoinedGroups = async () => { const getOpen_JoinedGroups = async () => {
let _joinedGroups = await getJoinedGroups() let _joinedGroups = await getJoinedGroups()
let _publicGroups = await getOpenPublicGroups() let _publicGroups = await getOpenPublicGroups()
let _privateGroups = await getPrivateGroups()
let results = _publicGroups.filter(myOpenGroup => { let results = _publicGroups.filter(myOpenGroup => {
let value = _joinedGroups.some(myJoinedGroup => myOpenGroup.groupId === myJoinedGroup.groupId) let value = _joinedGroups.some(myJoinedGroup => myOpenGroup.groupId === myJoinedGroup.groupId)
return !value return !value
}); });
this.publicGroups = results this.publicGroups = results
this.privateGroups = _privateGroups
this.joinedGroups = _joinedGroups this.joinedGroups = _joinedGroups
setTimeout(getOpen_JoinedGroups, 30000) setTimeout(getOpen_JoinedGroups, 60000)
} }
window.addEventListener("contextmenu", (event) => { 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) { renderBanButton(groupObj) {
return html`<mwc-button class="warning" @click=${() => this.openCreateBanMemberDialog(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("managegroup.mg6")}</mwc-button>` 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() { closeFieldErrorDialog() {
this.shadowRoot.querySelector('#fieldErrorDialog').close() this.shadowRoot.querySelector('#fieldErrorDialog').close()
} }
async unitCreateFee() { async unitCreateFee() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node] const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port 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)

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

@ -280,7 +280,7 @@ class NameRegistration extends LitElement {
} }
async uploadAvatar(nameObj) { 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` 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