Browse Source

add buttons and translatations

qchat-updates
AlphaX-Projects 2 years ago
parent
commit
84b97836e1
  1. 15
      qortal-ui-core/language/de.json
  2. 13
      qortal-ui-core/language/es.json
  3. 13
      qortal-ui-core/language/fr.json
  4. 13
      qortal-ui-core/language/hindi.json
  5. 13
      qortal-ui-core/language/hr.json
  6. 13
      qortal-ui-core/language/hu.json
  7. 13
      qortal-ui-core/language/it.json
  8. 13
      qortal-ui-core/language/ko.json
  9. 13
      qortal-ui-core/language/no.json
  10. 13
      qortal-ui-core/language/pl.json
  11. 13
      qortal-ui-core/language/pt.json
  12. 13
      qortal-ui-core/language/ro.json
  13. 13
      qortal-ui-core/language/rs.json
  14. 13
      qortal-ui-core/language/ru.json
  15. 15
      qortal-ui-core/language/us.json
  16. 15
      qortal-ui-core/language/zhc.json
  17. 13
      qortal-ui-core/language/zht.json
  18. 31
      qortal-ui-plugins/plugins/core/become-minter/become-minter-css.src.js
  19. 37
      qortal-ui-plugins/plugins/core/become-minter/become-minter.src.js
  20. 105
      qortal-ui-plugins/plugins/core/sponsorship-list/sponsorship-list-css.src.js
  21. 480
      qortal-ui-plugins/plugins/core/sponsorship-list/sponsorship-list.src.js

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

@ -646,10 +646,21 @@
"schange2":"Kontoadresse",
"schange3":"Aktive Patenschaften insgesamt",
"schange4":"Nächste Patenschaft endet in",
"schange5":"Sponsor New Minter",
"schange5":"Sponsor einen neuen Minter",
"schange6":"Abgeschlossene Patenschaften",
"schange7":"Abgeschlossen",
"schange8":"Adressen",
"schange9":"Sie haben derzeit keine aktiven Patenschaften"
"schange9":"Sie haben derzeit keine aktiven Patenschaften",
"schange10":"Suche nach öffentlichen Schlüsseln",
"schange11":"Kopieren",
"schange12":"Konverter von Adresse zu öffentlichem Schlüssel",
"schange13":"Adresse eingeben",
"schange14":"Im Gange",
"schange15":"Beenden",
"schange16":"Kopieren Sie den unten stehenden Schlüssel und teilen Sie ihn mit Ihrer gesponserten Person.",
"schange17":"In die Zwischenablage kopiert",
"schange18":"Warnung: Verlassen Sie dieses Plugin nicht und schließen Sie die Qortal-Benutzeroberfläche nicht, bis es fertig ist!",
"schange19":"Sponsoring-Schlüssel kopieren",
"schange20":"Beziehung schaffen"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Patrocinios Finalizados",
"schange7":"Terminado",
"schange8":"direcciones",
"schange9":"Actualmente no tienes patrocinios activos"
"schange9":"Actualmente no tienes patrocinios activos",
"schange10":"Búsqueda de clave pública",
"schange11":"Copiar",
"schange12":"Convertidor de dirección a clave pública",
"schange13":"Ingresa la direccion",
"schange14":"En progreso",
"schange15":"Terminando",
"schange16":"Copie la clave a continuación y compártala con su persona patrocinada.",
"schange17":"Copiado al portapapeles",
"schange18":"Advertencia: ¡no deje este complemento ni cierre la interfaz de usuario de Qortal hasta que finalice!",
"schange19":"Copiar clave de patrocinio",
"schange20":"Creando relación"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Parrainages terminés",
"schange7":"Complété",
"schange8":"adresses",
"schange9":"Vous n'avez actuellement aucun parrainage actif"
"schange9":"Vous n'avez actuellement aucun parrainage actif",
"schange10":"Recherche de clé publique",
"schange11":"Copie",
"schange12":"Convertisseur d'adresse en clé publique",
"schange13":"Entrer l'adresse",
"schange14":"En cours",
"schange15":"Finir",
"schange16":"Copiez la clé ci-dessous et partagez-la avec votre filleul.",
"schange17":"Copié dans le presse-papier",
"schange18":"Attention : ne quittez pas ce plugin ou ne fermez pas l'interface utilisateur de Qortal jusqu'à ce qu'il soit terminé !",
"schange19":"Copier la clé de parrainage",
"schange20":"Créer une relation"
}
}

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

@ -651,6 +651,17 @@
"schange6":"समत पजन",
"schange7":"पआ",
"schange8":"पत",
"schange9":"वरतमन म आपकस कई सकिय पजन नह"
"schange9":"वरतमन म आपकस कई सकिय पजन नह",
"schange10":"सवजनिक ककअप",
"schange11":"परतििि",
"schange12":"सवजनिक क परिवरतक क पत",
"schange13":"पतििए",
"schange14":"च",
"schange15":"
"schange16":"न गई क कर और इस अपनित वयकिथ स कर।",
"schange17":"किपबड पर नकल",
"schange18":"चवन: इस पलगइन क न छ तक Qortal UI कद न कर!",
"schange19":"कजन क",
"schange20":"सध बन"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Završena sponzorstva",
"schange7":"Završeno",
"schange8":"Adrese",
"schange9":"Trenutno nemate aktivnih sponzorstava"
"schange9":"Trenutno nemate aktivnih sponzorstava",
"schange10":"Pregled javnog ključa",
"schange11":"Kopirati",
"schange12":"Pretvarač adrese u javni ključ",
"schange13":"Unesite adresu",
"schange14":"U nastajanju",
"schange15":"Završavam",
"schange16":"Kopirajte ključ ispod i podijelite ga sa svojom sponzoriranom osobom.",
"schange17":"Kopirano u međuspremnik",
"schange18":"Upozorenje: nemojte napuštati ovaj dodatak niti zatvarati Qortal UI do završetka!",
"schange19":"Kopiraj ključ sponzorstva",
"schange20":"Stvaranje odnosa"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Befejezett szponzorálás",
"schange7":"kész",
"schange8":"Címek",
"schange9":"Jelenleg nincs aktív szponzorálásod"
"schange9":"Jelenleg nincs aktív szponzorálásod",
"schange10":"Nyilvános kulcs keresése",
"schange11":"Másolat",
"schange12":"Cím a nyilvános kulcs konverterhez",
"schange13":"Adja meg a címet",
"schange14":"Folyamatban",
"schange15":"Befejezés",
"schange16":"Másolja ki az alábbi kulcsot, és ossza meg szponzorált személlyel.",
"schange17":"Vágólapra másolva",
"schange18":"Figyelmeztetés: ne hagyja el ezt a beépülő modult, és ne zárja be a Qortal felhasználói felületet a befejezésig!",
"schange19":"Szponzori kulcs másolása",
"schange20":"Kapcsolatteremtés"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Sponsorizzazioni terminate",
"schange7":"Completato",
"schange8":"Indirizzi",
"schange9":"Al momento non hai sponsorizzazioni attive"
"schange9":"Al momento non hai sponsorizzazioni attive",
"schange10":"Ricerca chiave pubblica",
"schange11":"copia",
"schange12":"Convertitore da indirizzo a chiave pubblica",
"schange13":"Inserisci indirizzo",
"schange14":"In corso",
"schange15":"Finendo",
"schange16":"Copia la chiave qui sotto e condividila con la persona sponsorizzata.",
"schange17":"Copiato negli appunti",
"schange18":"Attenzione: non abbandonare questo plugin o chiudere l'interfaccia utente di Qortal fino al completamento!",
"schange19":"Copia la chiave di sponsorizzazione",
"schange20":"Creare relazione"
}
}

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

@ -650,6 +650,17 @@
"schange6":"후원완료",
"schange7":"완전한",
"schange8":"구애",
"schange9":"현재 활성 스폰서십이 없습니다."
"schange9":"현재 활성 스폰서십이 없습니다.",
"schange10":"공개 키 조회",
"schange11":"복사",
"schange12":"공개 키 변환기 주소",
"schange13":"주소 입력",
"schange14":"진행 중",
"schange15":"마무리",
"schange16":"아래 키를 복사하여 후원자와 공유하세요.",
"schange17":"클립보드에 복사됨",
"schange18":"경고: 완료될 때까지 이 플러그인을 종료하거나 Qortal UI를 닫지 마십시오!",
"schange19":"후원 키 복사",
"schange20":"관계 만들기"
}
}

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

@ -645,6 +645,17 @@
"schange6":"Ferdige sponsorater",
"schange7":"Fullført",
"schange8":"Adresser",
"schange9":"Du har for øyeblikket ingen aktive sponsorater"
"schange9":"Du har for øyeblikket ingen aktive sponsorater",
"schange10":"Offentlig nøkkeloppslag",
"schange11":"Kopiere",
"schange12":"Adresse til Public Key Converter",
"schange13":"Skriv inn adresse",
"schange14":"I prosess",
"schange15":"Etterbehandling",
"schange16":"Kopier nøkkelen nedenfor og del den med din sponsede person.",
"schange17":"Kopiert til utklippstavlen",
"schange18":"Advarsel: ikke forlat denne plugin-en eller lukk Qortal-grensesnittet før det er fullført!",
"schange19":"Kopier sponsornøkkel",
"schange20":"Skaper forhold"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Zakończone sponsoringi",
"schange7":"Zakończony",
"schange8":"Adresy",
"schange9":"Obecnie nie masz aktywnych sponsorów"
"schange9":"Obecnie nie masz aktywnych sponsorów",
"schange10":"Wyszukiwanie klucza publicznego",
"schange11":"Kopiuj",
"schange12":"Adres do konwertera kluczy publicznych",
"schange13":"Podaj adres",
"schange14":"W trakcie",
"schange15":"Kończąc",
"schange16":"Skopiuj poniższy klucz i udostępnij go swojej sponsorowanej osobie.",
"schange17":"Skopiowane do schowka",
"schange18":"Ostrzeżenie: nie opuszczaj tej wtyczki ani nie zamykaj interfejsu użytkownika Qortal do czasu zakończenia!",
"schange19":"Kopiuj klucz sponsorski",
"schange20":"Tworzenie relacji"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Patrocínios Concluídos",
"schange7":"Concluído",
"schange8":"Endereços",
"schange9":"No momento, você não tem patrocínios ativos"
"schange9":"No momento, você não tem patrocínios ativos",
"schange10":"Pesquisa de chave pública",
"schange11":"cópia de",
"schange12":"Conversor de endereço para chave pública",
"schange13":"Insira o endereço",
"schange14":"Em andamento",
"schange15":"Terminando",
"schange16":"Copie a chave abaixo e compartilhe com seu patrocinador.",
"schange17":"Copiado para a área de transferência",
"schange18":"Aviso: não saia deste plugin ou feche a interface do usuário do Qortal até a conclusão!",
"schange19":"Copiar chave de patrocínio",
"schange20":"Criando relacionamento"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Sponsorizari terminate",
"schange7":"Efectuat",
"schange8":"Adrese",
"schange9":"In prezent, nu aveti sponsorizari active"
"schange9":"In prezent, nu aveti sponsorizari active",
"schange10":"Cautare cheie publica",
"schange11":"Copie",
"schange12":"Adresa catre convertorul de chei publice",
"schange13":"Introdu adresa",
"schange14":"În curs",
"schange15":"Terminand",
"schange16":"Copiati cheia de mai jos si împartasiti-o persoanei dvs. sponsorizate.",
"schange17":"Copiat în clipboard",
"schange18":"Atentie: nu lasati acest plugin si nu închideti interfata Qortal pâna la finalizare!",
"schange19":"Copiati cheia de sponsorizare",
"schange20":"Crearea unei relatii"
}
}

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

@ -650,6 +650,17 @@
"schange6":"Završena sponzorstva",
"schange7":"Završeno",
"schange8":"Adrese",
"schange9":"Trenutno nemate aktivna sponzorstva"
"schange9":"Trenutno nemate aktivna sponzorstva",
"schange10":"Traženje javnog ključa",
"schange11":"Kopiraj",
"schange12":"Address to Public Kei Converter",
"schange13":"Unesite adresu",
"schange14":"U toku",
"schange15":"Zavrsavam",
"schange16":"Kopirajte ključ ispod i podelite ga sa sponzoriranom osobom.",
"schange17":"Kopirano u međuspremnik",
"schange18":"Upozorenje: ne napuštajte ovaj dodatak ili zatvarajte Kortal UI dok se ne završi!",
"schange19":"Kopiraj sponzorski ključ",
"schange20":"Stvaranje odnosa"
}
}

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

@ -645,6 +645,17 @@
"schange6":"Завершенные спонсорские услуги",
"schange7":"Завершенный",
"schange8":"Адреса",
"schange9":"В настоящее время у вас нет активных спонсоров"
"schange9":"В настоящее время у вас нет активных спонсоров",
"schange10":"Поиск открытого ключа",
"schange11":"Копировать",
"schange12":"Преобразователь адреса в открытый ключ",
"schange13":"Введите адрес",
"schange14":"В ходе выполнения",
"schange15":"Заканчивать",
"schange16":"Скопируйте приведенный ниже ключ и поделитесь им со своим спонсируемым лицом.",
"schange17":"Скопировано в буфер обмена",
"schange18":"Предупреждение: не покидайте этот плагин и не закрывайте пользовательский интерфейс Qortal до завершения!",
"schange19":"Копировать спонсорский ключ",
"schange20":"Создание отношений"
}
}

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

@ -651,9 +651,16 @@
"schange7":"Completed",
"schange8":"Addresses",
"schange9":"You currently have no active sponsorships",
"schange10" : "Public Key Lookup",
"schange11" : "Copy",
"schange12": "Address to Public Key Converter",
"schange13" : "Enter address"
"schange10":"Public Key Lookup",
"schange11":"Copy",
"schange12":"Address to Public Key Converter",
"schange13":"Enter address",
"schange14":"In progress",
"schange15":"Finishing up",
"schange16":"Copy the key below and share it with your sponsored person.",
"schange17":"Copied to clipboard",
"schange18":"Warning: do not leave this plugin or close the Qortal UI until completion!",
"schange19":"Copy Sponsorship Key",
"schange20":"Creating relationship"
}
}

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

@ -642,7 +642,7 @@
"rewarddialog6":"点击确认后,铸币密钥将被移除並失效。"
},
"sponsorshipspage":{
"schange1":"目前有效的赞助记录",
"schange1":"目前有效的赞助记录",
"schange2":"被赞助账号",
"schange3":"总赞助数目",
"schange4":"距离下一轮可赞助新人还剩下区块数:",
@ -650,6 +650,17 @@
"schange6":"已完成赞助",
"schange7":"已完成",
"schange8":"钱包地址",
"schange9":"您目前没有有效的赞助记录"
"schange9":"您目前没有有效的赞助记录",
"schange10":"公钥查找",
"schange11":"复制",
"schange12":"地址到公钥转换器",
"schange13":"输入地址",
"schange14":"进行中",
"schange15":"整理起来",
"schange16":"复制下面的密钥并与您的赞助人分享。",
"schange17":"已复制到剪贴板",
"schange18":"警告:在完成之前不要离开这个插件或关闭 Qortal UI!",
"schange19":"复制赞助密钥",
"schange20":"建立关系"
}
}

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

@ -650,6 +650,17 @@
"schange6":"已完成贊助",
"schange7":"已完成",
"schange8":"錢包地址",
"schange9":"您目前沒有有效的贊助記錄"
"schange9":"您目前沒有有效的贊助記錄",
"schange10":"公鑰查找",
"schange11":"複製",
"schange12":"地址到公鑰轉換器",
"schange13":"輸入地址",
"schange14":"進行中",
"schange15":"整理起來",
"schange16":"複製下面的密鑰並與您的讚助人分享。",
"schange17":"已復製到剪貼板",
"schange18":"警告:在完成之前不要離開這個插件或關閉 Qortal UI!",
"schange19":"複製贊助密鑰",
"schange20":"建立關係"
}
}

31
qortal-ui-plugins/plugins/core/become-minter/become-minter-css.src.js

@ -2,8 +2,19 @@ import { css } from 'lit';
export const pageStyles = css`
* {
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
box-sizing: border-box;
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
--lumo-primary-text-color: rgb(0, 167, 245);
--lumo-primary-color-50pct: rgba(0, 167, 245, 0.5);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white);
--lumo-body-text-color: var(--black);
--_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2);
}
.header-title {
@ -12,14 +23,17 @@ export const pageStyles = css`
font-weight: 400;
text-align: center;
}
.divider {
color: #eee;
border-radius: 80%;
margin-bottom: 2rem;
}
.fullWidth {
width: 100%;
}
.page-container {
display: flex;
align-items: center;
@ -27,6 +41,7 @@ export const pageStyles = css`
margin-bottom: 75px;
width: 100%;
}
.inner-container {
display: flex;
align-items: center;
@ -78,9 +93,11 @@ export const pageStyles = css`
.column-center {
align-items: center;
}
.no-margin {
margin: 0;
}
.no-wrap {
flex-wrap: nowrap !important;
}
@ -89,6 +106,7 @@ export const pageStyles = css`
justify-content: center;
flex-wrap: wrap;
}
.form-item {
display: flex;
height: 100%;
@ -122,9 +140,11 @@ export const pageStyles = css`
margin-bottom: 5px;
flex-basis: 250px;
}
.gap {
gap: 10px;
}
.level-black {
font-size: 32px;
color: var(--black);
@ -133,6 +153,7 @@ export const pageStyles = css`
margin-top: 2rem;
text-align: center;
}
.title {
font-weight: 600;
font-size: 20px;
@ -152,9 +173,11 @@ export const pageStyles = css`
line-height: 28px;
color: var(--black);
}
mwc-textfield {
width: 100%;
}
vaadin-button {
height: 100%;
margin: 0;
@ -162,12 +185,14 @@ export const pageStyles = css`
outline: 1px var(--black) solid;
min-width: 80px;
}
.loader,
.loader:after {
border-radius: 50%;
width: 10em;
height: 10em;
}
.loadingContainer {
position: fixed;
top: 50%;
@ -197,7 +222,7 @@ export const pageStyles = css`
border-width: 0.6em;
border-style: solid;
border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2)
rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
font-size: 10px;
position: relative;
text-indent: -9999em;

37
qortal-ui-plugins/plugins/core/become-minter/become-minter.src.js

@ -154,8 +154,6 @@ class BecomeMinter extends LitElement {
?.address
);
const isAlreadySponsored =
this.addressInfo?.error !== 124 &&
this.addressInfo?.level === 0 &&
@ -164,17 +162,18 @@ class BecomeMinter extends LitElement {
return html`
${this.isPageLoading
? html`
<div class="loadingContainer">
<div class="loading"></div>
</div>
<div class="backdrop"></div>
`
: ''}
<div class="loadingContainer">
<div class="loading"></div>
</div>
<div class="backdrop"></div>
`
: ''}
<div class="page-container">
<h1 class="header-title">
${translate('mintingpage.mchange32')}
</h1>
<div class="fullWidth">
<hr class="divider" />
</div>
@ -182,20 +181,22 @@ class BecomeMinter extends LitElement {
${isAlreadySponsored
? ''
: html`
<not-sponsored
.atMount="${() => this.atMount()}"
></not-sponsored>
`}
<not-sponsored
.atMount="${() => this.atMount()}"
>
</not-sponsored>
`}
${!isAlreadySponsored
? ''
: html`
<yes-sponsored
.rewardSharePublicKey=${this
<yes-sponsored
.rewardSharePublicKey=${this
.rewardSharePublicKey}
.addressInfo=${this.addressInfo}
.isMinting=${!!findMintingAccount}
></yes-sponsored>
`}
.addressInfo=${this.addressInfo}
.isMinting=${!!findMintingAccount}
>
</yes-sponsored>
`}
</div>
`;
}

105
qortal-ui-plugins/plugins/core/sponsorship-list/sponsorship-list-css.src.js

@ -2,9 +2,19 @@ import { css } from "lit"
export const pageStyles = css`
* {
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
box-sizing: border-box;
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
--lumo-primary-text-color: rgb(0, 167, 245);
--lumo-primary-color-50pct: rgba(0, 167, 245, 0.5);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white);
--lumo-body-text-color: var(--black);
--_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2);
}
.header-title {
@ -13,27 +23,31 @@ export const pageStyles = css`
font-weight: 400;
text-align: center;
}
.avatar-img {
border-radius: 50%;
height: 20px;
width: 20px;
margin-right: 10px;
height: 20px;
width: 20px;
margin-right: 10px;
}
.divider {
color: #eee;
border-radius: 80%;
margin-bottom: 2rem;
}
.fullWidth {
width: 100%;
}
.page-container {
display: flex;
align-items: center;
flex-direction: column;
margin-bottom: 75px;
}
.inner-container {
display: flex;
align-items: center;
@ -42,14 +56,10 @@ export const pageStyles = css`
max-width: 1100px;
}
.message-error {
color: var(--error);
}
.form-wrapper {
display: flex;
align-items: center;
@ -61,9 +71,9 @@ export const pageStyles = css`
.sponsor-minter-text {
color: var(--black);
font-weight: bold;
margin-right: 15px;
font-size: 18px;
font-weight: bold;
margin-right: 15px;
font-size: 18px;
}
.row {
@ -79,6 +89,7 @@ export const pageStyles = css`
.inactiveText {
opacity: .60
}
.column {
display: flex;
flex-direction: column;
@ -88,9 +99,11 @@ export const pageStyles = css`
.column-center {
align-items: center;
}
.no-margin {
margin: 0;
}
.no-wrap {
flex-wrap: nowrap !important;
}
@ -99,6 +112,7 @@ export const pageStyles = css`
justify-content: center;
flex-wrap: wrap;
}
.form-item {
display: flex;
height: 100%;
@ -114,9 +128,6 @@ export const pageStyles = css`
min-width: 275px;
}
.gap {
gap: 10px;
}
@ -140,29 +151,32 @@ export const pageStyles = css`
line-height: 28px;
color: var(--black);
}
mwc-textfield {
width: 100%;
}
vaadin-button {
height: 100%;
margin: 0;
cursor: pointer;
outline: 1px var(--black) solid;
min-width: 80px;
}
mwc-icon-button {
height: 100%;
margin: 0;
cursor: pointer;
outline: 1px var(--black) solid;
min-width: 80px;
}
.loader,
.loader:after {
border-radius: 50%;
width: 10em;
height: 10em;
}
.loadingContainer {
position: fixed;
top: 50%;
@ -179,12 +193,15 @@ export const pageStyles = css`
z-index: 9;
position: fixed;
}
.marginLoader {
margin-left: 10px;
}
.marginRight {
margin-right: 10px;
}
.smallLoading,
.smallLoading:after {
border-radius: 50%;
@ -271,7 +288,6 @@ export const pageStyles = css`
word-break: break-word ;
}
.grid-item {
text-align: center;
color: var(--black);
@ -293,12 +309,12 @@ export const pageStyles = css`
.text {
color: var(--black)
}
.text--bold {
font-weight: bold;
}
.summary-box {
display: flex;
margin-top: 25px;
width: 100%;
@ -328,32 +344,32 @@ export const pageStyles = css`
margin: 0;
padding: 0;
}
.red {
--mdc-theme-primary: #f44336;
border-radius: 2px;
}
.btn--sponsorshipfinished {
.btn--sponsorshipfinished {
background-color: var(--menuactive);
transition: all .2s;
animation: onOff 2s infinite;
--mdc-theme-primary: var(--black);
}
.word-break {
word-break:break-all;
}
.dialog-container {
width: 300px;
width: 400px;
min-height: 300px;
max-height: 75vh;
padding: 5px;
display: flex;
align-items: flex-start;
flex-direction: column;
flex-direction: column;
}
.dialog-paragraph {
@ -361,16 +377,16 @@ export const pageStyles = css`
color: var(--black)
}
.dialog-header h1 {
font-size: 18px;
text-align: center;
}
@keyframes onOff {
from {opacity: 1}
to {opacity: .5}
}
from {opacity: 1}
to {opacity: .5}
}
.grid-item-text {
display: none;
}
@ -391,16 +407,17 @@ export const pageStyles = css`
}
.form-item--input {
flex-grow: 1;
margin-right: 25px;
min-width: unset;
}
flex-grow: 1;
margin-right: 25px;
min-width: unset;
}
}
@media (max-width: 710px) {
.table-header {
display: none;
}
.grid-item-text {
display: inline;
color: var(--black);
@ -416,6 +433,7 @@ export const pageStyles = css`
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.name-container {
justify-content: flex-start
}
@ -440,6 +458,7 @@ export const pageStyles = css`
.between {
justify-content: space-between;
}
.no-width {
width: auto
}
@ -458,16 +477,16 @@ export const pageStyles = css`
align-items: flex-start;
flex-direction: column;
overflow-x: hidden;
}
}
.warning{
display: flex;
flex-grow: 1
}
.warning{
display: flex;
flex-grow: 1
}
#showDialogRewardShareCreationStatus li {
margin-bottom: 15px;
}
#showDialogRewardShareCreationStatus li {
margin-bottom: 15px;
}
`

480
qortal-ui-plugins/plugins/core/sponsorship-list/sponsorship-list.src.js

@ -4,7 +4,6 @@ import "../components/ButtonIconCopy.js"
import { use, get, translate, registerTranslateConfig } from "lit-translate"
import { blocksNeed } from "../../utils/blocks-needed.js"
import "../components/ButtonIconCopy.js"
import '@material/mwc-icon-button'
registerTranslateConfig({
loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()),
@ -12,6 +11,8 @@ registerTranslateConfig({
import "@polymer/paper-spinner/paper-spinner-lite.js"
import "@material/mwc-button"
import '@material/mwc-icon'
import '@material/mwc-icon-button'
import "@material/mwc-textfield"
import "@vaadin/button"
import "@polymer/paper-spinner/paper-spinner-lite.js"
@ -23,17 +24,14 @@ import { pageStyles } from "./sponsorship-list-css.src.js"
const parentEpml = new Epml({ type: "WINDOW", source: window.parent })
async function* countDown(count, callback) {
while (count > 0) {
yield count--;
await new Promise((r) => setTimeout(r, 1000));
if(count === 0){
callback()
}
yield count--;
await new Promise((r) => setTimeout(r, 1000));
if(count === 0) {
callback()
}
}
}
}
class SponsorshipList extends LitElement {
static get properties() {
@ -65,9 +63,7 @@ class SponsorshipList extends LitElement {
constructor() {
super()
this.theme = localStorage.getItem("qortalTheme")
? localStorage.getItem("qortalTheme")
: "light"
this.theme = localStorage.getItem("qortalTheme") ? localStorage.getItem("qortalTheme") : "light"
this.isPageLoading = true
this.nodeInfo = {}
this.addressInfo = {}
@ -75,7 +71,6 @@ class SponsorshipList extends LitElement {
this.mintingAccountData = null
this.sponsorships = []
this.removeRewardShareLoading = false
this.errorMessage = ""
this.isLoadingCreateSponsorship = false
this.publicKeyValue = ""
@ -89,16 +84,19 @@ class SponsorshipList extends LitElement {
this.errorLookup = ""
}
renderCopyMsg() {
let copystring = get("sponsorshipspage.schange17")
return `${copystring}`
}
inputHandler(e) {
this.publicKeyValue = e.target.value
}
lookupPublicAddressInputHandler(e) {
this.lookupAddressValue = e.target.value
}
changeLanguage() {
const checkLanguage = localStorage.getItem("qortalLanguage")
@ -147,21 +145,20 @@ class SponsorshipList extends LitElement {
await navigator.clipboard.writeText(toBeCopied)
parentEpml.request('showSnackBar', text)
} catch (err) {
console.error('Copy to clipboard error:', err)
}
}
changeStatus(value){
this.status = value
this.saveToClipboard(this.privateRewardShareKey, 'Copied to clipboard')
let copystring1 = get("sponsorshipspage.schange17")
this.saveToClipboard(this.privateRewardShareKey, `${copystring1}`)
}
getApiKey() {
const apiNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
let apiKey = apiNode.apiKey;
return apiKey;
}
}
async atMount() {
@ -449,8 +446,6 @@ class SponsorshipList extends LitElement {
}
async confirmRelationship(recipientPublicKey, isCopy){
this.status = 2
let interval = null
@ -507,18 +502,17 @@ class SponsorshipList extends LitElement {
}
}
render() {
return html`
${
this.isPageLoading
? html`
<div class="loadingContainer">
<div class="loading"></div>
</div>
<div class="backdrop"></div>
`
: ""
<div class="loadingContainer">
<div class="loading"></div>
</div>
<div class="backdrop"></div>
`
: ""
}
<div class="page-container">
@ -554,219 +548,193 @@ class SponsorshipList extends LitElement {
</div>
</div>
${this.sponsorships.map(
(sponsorship) => html`
<ul class="tableGrid">
<li class="grid-item">
${this.sponsorships.map(
(sponsorship) => html`
<ul class="tableGrid">
<li class="grid-item">
<p class="grid-item-text">
Account
</p>
<div class="name-container">
${sponsorship?.name ? html`
${translate("settings.account")}
</p>
<div class="name-container">
${sponsorship?.name ? html`
<img src=${sponsorship.url}
class="avatar-img"
onerror="this.src='/img/incognito.png'"
/>
` : ''}
class="avatar-img"
onerror="this.src='/img/incognito.png'"
/>
` : ''}
${sponsorship?.name || sponsorship.address}
</div>
</li>
<li class="grid-item">
</div>
</li>
<li class="grid-item">
<p class="grid-item-text">
Blocks Minted
</p>
${+sponsorship.blocksMinted +
+sponsorship.blocksMintedAdjustment}
</li>
<li class="grid-item">
${translate("walletprofile.blocksminted")}
</p>
${+sponsorship.blocksMinted +
+sponsorship.blocksMintedAdjustment}
</li>
<li class="grid-item">
<p class="grid-item-text">
Copy Sponsorship Key
</p>
<mwc-button @click=${()=> {
this.createRewardShare(sponsorship?.publicKey, true)
} }>copy</mwc-button>
</li>
<li class="grid-item grid-item-button">
<mwc-button
class=${`red ${sponsorship.blocksRemaining <= 0 && 'btn--sponsorshipfinished'}`}
?disabled=${this
.removeRewardShareLoading}
@click=${() =>
this.removeRewardShare(
sponsorship
)}
><mwc-icon>create</mwc-icon
>${translate(
"rewardsharepage.rchange17"
)}</mwc-button>
</li>
</ul>
`
)}
<div class="summary-box">
<p class="text text--bold">
${translate("sponsorshipspage.schange3")} =
<span class="text text--normal">
${this.sponsorships.length}
</span>
</p>
<p class="text text--bold">
${translate("sponsorshipspage.schange4")} =
<span class="text text--normal">
${this.nextSponsorshipEnding
?.blocksRemaining}
${translate("mintingpage.mchange26")}
</span>
</p>
</div>
${translate("sponsorshipspage.schange19")}
</p>
<mwc-button
@click=${()=> {this.createRewardShare(sponsorship?.publicKey, true)}}
>
<mwc-icon>content_copy</mwc-icon>&nbsp;${translate("sponsorshipspage.schange11")}
</mwc-button>
</li>
<li class="grid-item grid-item-button">
<mwc-button
class=${`red ${sponsorship.blocksRemaining <= 0 && 'btn--sponsorshipfinished'}`}
?disabled=${this.removeRewardShareLoading}
@click=${() => this.removeRewardShare(sponsorship)}
>
<mwc-icon>delete_forever</mwc-icon>&nbsp;${translate("rewardsharepage.rchange17")}
</mwc-button>
</li>
</ul>
`
: ''}
<p class="message-error">${this.errorMessage}</p>
<div class="form-wrapper">
<div class="sponsor-minter-wrapper">
<p class="sponsor-minter-text">${translate("sponsorshipspage.schange5")}</p>
</div>
<div class="form-item form-item--input">
<mwc-textfield
?disabled="${this.isLoadingCreateSponsorship}"
label="${translate("rewardsharepage.rchange10")}"
id="addPublicKey"
@input="${this.inputHandler}"
.value="${this.publicKeyValue || ""}"
fullWidth
>
</mwc-textfield>
</div>
)}
<div class="summary-box">
<p class="text text--bold">
${translate("sponsorshipspage.schange3")} =
<span class="text text--normal">
${this.sponsorships.length}
</span>
</p>
<p class="text text--bold">
${translate("sponsorshipspage.schange4")} =
<span class="text text--normal">
${this.nextSponsorshipEnding
?.blocksRemaining}
${translate("mintingpage.mchange26")}
</span>
</p>
</div>
`
: ''}
<p class="message-error">${this.errorMessage}</p>
<div class="form-wrapper">
<div class="sponsor-minter-wrapper">
<p class="sponsor-minter-text">${translate("sponsorshipspage.schange5")}</p>
</div>
<div class="form-item form-item--input">
<mwc-textfield
?disabled="${this.isLoadingCreateSponsorship}"
label="${translate("rewardsharepage.rchange10")}"
id="addPublicKey"
@input="${this.inputHandler}"
.value="${this.publicKeyValue || ""}"
fullWidth
>
</mwc-textfield>
</div>
<div class="form-item form-item--button">
<vaadin-button
theme="primary"
?disabled="${this.isLoadingCreateSponsorship || !this.publicKeyValue}"
@click="${()=> this.createRewardShare(this.publicKeyValue)}"
>
${translate(
"puzzlepage.pchange15"
)}
${translate("puzzlepage.pchange15")}
</vaadin-button>
</div>
<div class="publicKeyLookupBtn">
<vaadin-button
@click="${()=> {
this.isOpenDialogPublicKeyLookup = true
} }"
theme="primary"
@click="${()=> {this.isOpenDialogPublicKeyLookup = true}}"
>
${translate("sponsorshipspage.schange10")}
</vaadin-button>
</div>
</div>
</div>
<mwc-dialog id="showDialog">
<div class="dialog-header" >
<h1>${translate("sponsorshipspage.schange6")}</h1>
<hr />
</div>
<div class="dialog-container">
<p class="dialog-paragraph" style="text-align:center; width:100%">${this.sponsorships.filter(s=> s.blocksRemaining <= 0).length} ${translate("sponsorshipspage.schange7")}!</p>
<p class="dialog-paragraph" style="margin:0px; padding:0px;text-decoration:underline"> ${translate("sponsorshipspage.schange8")}</p>
<mwc-dialog id="showDialog">
<div class="dialog-header" >
<h1>${translate("sponsorshipspage.schange6")}</h1>
<hr />
</div>
<div class="dialog-container">
<p class="dialog-paragraph" style="text-align:center; width:100%">${this.sponsorships.filter(s=> s.blocksRemaining <= 0).length} ${translate("sponsorshipspage.schange7")}!</p>
<p class="dialog-paragraph" style="margin:0px; padding:0px;text-decoration:underline"> ${translate("sponsorshipspage.schange8")}</p>
${this.sponsorships.filter(s=> s.blocksRemaining <= 0).map((ms)=> html`
<p class="dialog-paragraph">${ms.address}</p>
`)}
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog escapeKeyAction="" scrimClickAction="" id="showDialogRewardShareCreationStatus" ?hideActions=${this.errorMessage ? false : this.status < 4 ? true : false} ?open=${this.openDialogRewardShare}>
<div class="dialog-header" >
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog escapeKeyAction="" scrimClickAction="" id="showDialogRewardShareCreationStatus" ?hideActions=${this.errorMessage ? false : this.status < 4 ? true : false} ?open=${this.openDialogRewardShare}>
<div class="dialog-header" >
<div class="row">
<h1>In progress </h1> <div class=${`smallLoading marginLoader ${this.status > 3 && 'hide'}`}></div>
<h1>${translate("sponsorshipspage.schange14")}</h1>
<div class=${`smallLoading marginLoader ${this.status > 3 && 'hide'}`}></div>
</div>
<hr />
</div>
<hr />
</div>
<div class="dialog-container">
<ul>
<li class="row between">1. Creating relationship <div class=${`smallLoading marginLoader ${this.status !== 1 && 'hide'}`}></div></li>
<li class=${`row between ${this.status < 2 && 'inactiveText' }`}>
<p>
2. Awaiting confirmation on blockchain
</p>
<div class=${`smallLoading marginLoader ${this.status !== 2 && 'hide'}`}></div>
</li>
<li class=${`row between ${this.status < 3 && 'inactiveText' }`}>
<p>
3. Finishing up
</p>
<div class="row no-width">
<div class=${`smallLoading marginLoader marginRight ${this.status !== 3 && 'hide'}`} ></div> ${asyncReplace(this.timer)}
<ul>
<li class="row between">
<p>
1. ${translate("sponsorshipspage.schange20")}
</p>
<div class=${`smallLoading marginLoader ${this.status !== 1 && 'hide'}`}></div>
</li>
<li class=${`row between ${this.status < 2 && 'inactiveText' }`}>
<p>
2. ${translate("startminting.smchange6")}
</p>
<div class=${`smallLoading marginLoader ${this.status !== 2 && 'hide'}`}></div>
</li>
<li class=${`row between ${this.status < 3 && 'inactiveText' }`}>
<p>
3. ${translate("sponsorshipspage.schange15")}
</p>
<div class="row no-width">
<div class=${`smallLoading marginLoader marginRight ${this.status !== 3 && 'hide'}`} ></div> ${asyncReplace(this.timer)}
</div>
</li>
<li class=${`row between ${this.status < 4 && 'inactiveText' }`}>
<p>
4. ${translate("startminting.smchange9")}
</p>
</li>
${this.privateRewardShareKey && this.status === 4 ? html`
<li class=${`column word-break ${this.status < 4 && 'inactiveText' }`}>
<p style="work-break: break-word">
${translate("sponsorshipspage.schange16")}
</p>
<div style="background: #eee; padding: 8px; margin: 8px 0; border-radius: 5px;">
<span style="color: #000;">${this.privateRewardShareKey}</span>
</div>
<mwc-button
raised
icon="content_copy"
@click=${()=> {this.saveToClipboard(this.privateRewardShareKey, this.renderCopyMsg())}}
>
${translate("sponsorshipspage.schange11")}
</mwc-button>
</li>
` : ''}
</ul>
${this.status === 4 ? '' : html`
<div class="warning column">
<p>
${translate("sponsorshipspage.schange18")}
</p>
<p class="message-error">${this.errorMessage}</p>
</div>
</li>
<li class=${`row between ${this.status < 4 && 'inactiveText' }`}>
<p>
4. Complete
</p>
</li>
${this.privateRewardShareKey && this.status === 4 ? html`
<li class=${`column word-break ${this.status < 4 && 'inactiveText' }`}>
<p style="work-break: break-word">Copy the key below and share it with your sponsored person.</p>
<div style="background: #eee; padding: 8px; margin: 8px 0; border-radius: 5px;">
<span style="color: #000;">${this.privateRewardShareKey}</span>
</div>
<mwc-button @click=${()=> {
this.saveToClipboard(this.privateRewardShareKey, 'Copied to clipboard')
} }>copy
</mwc-button>
</li>
` : ''}
</ul>
${this.status === 4 ? '' : html`
<div class="warning column">
<p>
Warning: do not leave this plugin or close the Qortal UI until completion!
</p>
<p class="message-error">${this.errorMessage}</p>
</div>
`}
`}
</div>
<mwc-button
slot="primaryAction"
slot="primaryAction"
@click=${()=>{
this.openDialogRewardShare = false
this.errorMessage = ''
@ -774,32 +742,23 @@ class SponsorshipList extends LitElement {
this.privateRewardShareKey = ""
this.atMount()
}}
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="showDialogPublicKey" escapeKeyAction="" scrimClickAction="" ?open=${this.isOpenDialogPublicKeyLookup}>
<div class="dialog-header" >
<h1>${translate("sponsorshipspage.schange10")}</h1>
<hr />
</div>
<div class="dialog-header" >
<h1>${translate("sponsorshipspage.schange10")}</h1>
<hr />
</div>
<div class="dialog-container">
<p class="dialog-paragraph" style="text-align:center; width:100%">
${translate("sponsorshipspage.schange12")}
</p>
<div class="form-wrapper">
<p class="dialog-paragraph" style="text-align:center; width:100%">
${translate("sponsorshipspage.schange12")}
</p>
<div class="form-wrapper">
<mwc-textfield
label=${translate("sponsorshipspage.schange13")}
@input="${this.lookupPublicAddressInputHandler}"
.value="${this.lookupAddressValue || ""}"
@ -810,39 +769,35 @@ class SponsorshipList extends LitElement {
<p class="message-error">${this.errorLookup}</p>
<div class="row" style="margin-top: 20px; justify-content: center">
<vaadin-button
?disabled="${!this.lookupAddressValue}"
theme="primary"
?disabled="${!this.lookupAddressValue}"
@click="${()=> {
this.lookupPublicAddressValue = ""
this.lookUpPublicAddressFunc()
} }"
}}"
>
${translate("sponsorshipspage.schange10")}
</vaadin-button>
</div>
${this.lookupPublicAddressValue ? html`
<div class="word-break" style="background: #eee; padding: 8px; margin: 8px 0; border-radius: 5px;">
<span style="color: #000;">${this.lookupPublicAddressValue}</span>
</div>
<div class="row" style="margin-top: 20px; justify-content: center">
<mwc-button
raised
icon="content_copy"
@click=${()=> {this.saveToClipboard(this.lookupPublicAddressValue, this.renderCopyMsg())}}
>
${translate("sponsorshipspage.schange11")}
</mwc-button>
</div>
${this.lookupPublicAddressValue ? html`
<div class="word-break" style="background: #eee; padding: 8px; margin: 8px 0; border-radius: 5px;">
<span style="color: #000;">${this.lookupPublicAddressValue}</span>
</div>
<div class="row" style="margin-top: 20px; justify-content: center">
<mwc-button @click=${()=> {
this.saveToClipboard(this.lookupPublicAddressValue, 'Copied to clipboard')
} }>${translate("sponsorshipspage.schange11")}
</mwc-button>
</div>
` : ''}
` : ''}
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
@click=${()=>{
this.lookupAddressValue = ""
this.lookupPublicAddressValue = ""
@ -850,11 +805,10 @@ class SponsorshipList extends LitElement {
this.errorLookup = ""
}}
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
</div>
`
}

Loading…
Cancel
Save