Auto hide sidebar, update explorer, set smaller layout breakpoint

This commit is contained in:
AlphaX-Projects 2022-11-29 14:27:23 +01:00
parent dd30495ee4
commit 56dfa3150e
26 changed files with 2046 additions and 98 deletions

View File

@ -36,7 +36,7 @@
"electron-updater": "5.3.0"
},
"devDependencies": {
"electron": "21.3.0",
"electron": "21.3.1",
"electron-builder": "23.6.0",
"electron-packager": "17.1.1",
"@electron/notarize": "1.2.3",
@ -45,4 +45,4 @@
"engines": {
"node": ">=16.15.0"
}
}
}

View File

@ -69,10 +69,6 @@ const elementComponents = {
file: 'components/show-plugin.js',
className: 'ShowPlugin'
},
'sidenav-menu': {
file: 'components/sidenav-menu.js',
className: 'SidenavMenu'
},
'wallet-profile': {
file: 'components/wallet-profile.js',
className: 'WalletProfile'

View File

@ -701,6 +701,19 @@
"exp4":"Adresse oder Name nicht gefunden !",
"exp5":"Beachten Sie, dass bei registrierten Namen zwischen Groß- und Kleinschreibung unterschieden wird.",
"exp6":"Gründer",
"exp7":"Info"
"exp7":"Info",
"exp8":"Alle Kaufgeschäfte anzeigen",
"exp9":"Alle Verkaufsgeschäfte anzeigen",
"exp10":"KAUFGESCHICHTE",
"exp11":"VERKAUFSGESCHICHTE",
"exp12":"Noch keine Kauftransaktionen getätigt.",
"exp13":"Noch keine Verkaufsgeschäfte getätigt.",
"exp14":"Vollständige Informationen anzeigen",
"exp15":"Prägung seit",
"exp16":"Nicht am prägen",
"exp17":"ALLE ZAHLUNGEN",
"exp18":"Zahlungen",
"exp19":"Gesendet",
"exp20":"Empfangen"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"No se encontró la dirección o el nombre!",
"exp5":"Tenga en cuenta que los nombres registrados distinguen entre mayúsculas y minúsculas.",
"exp6":"Fundador",
"exp7":"Información"
"exp7":"Información",
"exp8":"Mostrar todas las operaciones de compra",
"exp9":"Mostrar todas las operaciones de venta",
"exp10":"HISTORIAL DE COMPRAS",
"exp11":"HISTORIAL DE VENTAS",
"exp12":"Aún no se han realizado operaciones de compra.",
"exp13":"Aún no se han realizado operaciones de venta.",
"exp14":"Mostrar información completa",
"exp15":"Acuñando desde",
"exp16":"No acuña",
"exp17":"TODOS LOS PAGOS",
"exp18":"Pagos",
"exp19":"Enviado",
"exp20":"Recibido"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Adresse ou nom introuvable !",
"exp5":"Notez que les noms enregistrés sont sensibles à la casse.",
"exp6":"Fondateur",
"exp7":"Info"
"exp7":"Info",
"exp8":"Afficher toutes les transactions d'achat",
"exp9":"Afficher toutes les transactions de vente",
"exp10":"ACHETER L'HISTORIQUE",
"exp11":"HISTORIQUE DE VENTE",
"exp12":"Aucune transaction d'achat n'a encore été effectuée.",
"exp13":"Aucune transaction de vente n'a encore été effectuée.",
"exp14":"Afficher les informations complètes",
"exp15":"Fabrication depuis",
"exp16":"Pas de frappe",
"exp17":"TOUS LES PAIEMENTS",
"exp18":"Paiements",
"exp19":"Envoyé",
"exp20":"Reçu"
}
}

View File

@ -702,6 +702,19 @@
"exp4":"पता या नाम नहीं मिला !",
"exp5":"ध्यान दें कि पंजीकृत नाम केस-संवेदी होते हैं।",
"exp6":"संस्थापक",
"exp7":"जानकारी"
"exp7":"जानकारी",
"exp8":"सभी खरीदें ट्रेड दिखाएं",
"exp9":"सभी विक्रय ट्रेड दिखाएं",
"exp10":"इतिहास खरीदें",
"exp11":"इतिहास बेचें",
"exp12":"अभी तक कोई खरीदारी नहीं की गई है।",
"exp13":"अभी तक कोई बिक्री सौदे नहीं हुए हैं।",
"exp14":"पूरी जानकारी दिखाएं",
"exp15":"तब से मिंटिंग",
"exp16":"मिंटिंग नहीं",
"exp17":"सभी भुगतान",
"exp18":"भुगतान",
"exp19":"भेजा गया",
"exp20":"प्राप्त"
}
}

View File

@ -702,6 +702,19 @@
"exp4":"Adresa ili ime nisu pronađeni!",
"exp5":"Imajte na umu da su registrirana imena osjetljiva na velika i mala slova.",
"exp6":"Osnivač",
"exp7":"Info"
"exp7":"Info",
"exp8":"Prikaži sve kupovine",
"exp9":"Prikaži sve prodajne trgovine",
"exp10":"POVIJEST KUPNJE",
"exp11":"POVIJEST PRODAJE",
"exp12":"Još nema transakcija kupnje.",
"exp13":"Još nema prodajnih transakcija.",
"exp14":"Prikaži potpune informacije",
"exp15":"Kovanje od",
"exp16":"Nije kovano",
"exp17":"SVA PLAĆANJA",
"exp18":"Plaćanja",
"exp19":"Poslano",
"exp20":"Primljeno"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Cím vagy név nem található!",
"exp5":"Vegye figyelembe, hogy a regisztrált nevek megkülönböztetik a kis- és nagybetűket.",
"exp6":"Alapító",
"exp7":"Info"
"exp7":"Info",
"exp8":"Minden vételi ügylet megjelenítése",
"exp9":"Minden eladási ügylet megjelenítése",
"exp10":"VÁSÁRLÁSI ELŐZMÉNYEK",
"exp11":"ELADÁSI ELŐZMÉNYEK",
"exp12":"Még nem történt vásárlási ügylet."
"exp13":"Még nem történt eladási ügylet."",
"exp14":"Teljes információ megjelenítése",
"exp15":"A pénzverés óta",
"exp16":"Nem pénzverés",
"exp17":"MINDEN FIZETÉS",
"exp18":"Kifizetések",
"exp19":"Elküldve",
"exp20":"Fogadott"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Indirizzo o nome non trovato!",
"exp5":"Si noti che i nomi registrati fanno distinzione tra maiuscole e minuscole.",
"exp6":"Fondatore",
"exp7":"Informazioni"
"exp7":"Informazioni",
"exp8":"Mostra tutte le compravendite",
"exp9":"Mostra tutte le operazioni di vendita",
"exp10":"ACQUISTA CRONOLOGIA",
"exp11":"VENDI STORIA",
"exp12":"Nessuna operazione di acquisto ancora effettuata.",
"exp13":"Nessuna operazione di vendita ancora effettuata.",
"exp14":"Mostra informazioni complete",
"exp15":"Conio da",
"exp16":"Non conio",
"exp17":"TUTTI I PAGAMENTI",
"exp18":"Pagamenti",
"exp19":"Inviato",
"exp20":"Ricevuto"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"주소 또는 이름을 찾을 수 없습니다!",
"exp5":"등록된 이름은 대소문자를 구분합니다.",
"exp6":"설립자",
"exp7":"정보"
"exp7":"정보",
"exp8":"모든 구매 거래 보기",
"exp9":"매도 거래 모두 보기",
"exp10":"내역 구매",
"exp11":"판매 내역",
"exp12":"아직 구매 거래가 이루어지지 않았습니다.",
"exp13":"아직 판매 거래가 이루어지지 않았습니다.",
"exp14":"완전한 정보 표시",
"exp15":"조폐 이후",
"exp16":"조폐되지 않음",
"exp17":"모든 결제",
"exp18":"결제",
"exp19":"보냈습니다",
"exp20":"수신됨"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Finner ikke adresse eller navn!",
"exp5":"Merk at registrerte navn skiller mellom store og små bokstaver.",
"exp6":"Grunnlegger",
"exp7":"Info"
"exp7":"Info",
"exp8":"Vis alle kjøpshandler",
"exp9":"Vis alle salgshandler",
"exp10":"KJØPHISTORIE",
"exp11":"SELGSHISTORIE",
"exp12":"Ingen kjøpshandler gjort ennå.",
"exp13":"Ingen salgshandler gjort ennå.",
"exp14":"Vis fullstendig informasjon",
"exp15":"Preging siden",
"exp16":"Ikke preging",
"exp17":"ALLE BETALINGER",
"exp18":"Betalinger",
"exp19":"Sendt",
"exp20":"Motta"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Nie znaleziono adresu lub nazwy!",
"exp5":"Należy pamiętać, że w zarejestrowanych nazwach rozróżniana jest wielkość liter.",
"exp6":"Założyciel",
"exp7":"Informacje"
"exp7":"Informacje",
"exp8":"Pokaż wszystkie transakcje kupna",
"exp9":"Pokaż wszystkie transakcje sprzedaży",
"exp10":"KUP HISTORIĘ",
"exp11":"HISTORIA SPRZEDAŻY",
"exp12":"Nie dokonano jeszcze żadnych transakcji kupna.",
"exp13":"Nie dokonano jeszcze żadnych transakcji sprzedaży.",
"exp14":"Pokaż pełne informacje",
"exp15":"Bicie od",
"exp16":"Bez bicia",
"exp17":"WSZYSTKIE PŁATNOŚCI",
"exp18":"Płatności",
"exp19":"Wysłane",
"exp20":"Otrzymano"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Endereço ou nome não encontrado!",
"exp5":"Observe que os nomes registrados diferenciam maiúsculas de minúsculas.",
"exp6":"Fundador",
"exp7":"Informações"
"exp7":"Informações",
"exp8":"Mostrar todas as negociações de compra",
"exp9":"Mostrar todas as negociações de venda",
"exp10":"COMPRAR HISTÓRICO",
"exp11":"HISTÓRICO DE VENDAS",
"exp12":"Nenhuma negociação de compra feita ainda.",
"exp13":"Nenhuma negociação de venda feita ainda.",
"exp14":"Mostrar informações completas",
"exp15":"Criando desde",
"exp16":"Não está cunhando",
"exp17":"TODOS OS PAGAMENTOS",
"exp18":"Pagamentos",
"exp19":"Enviado",
"exp20":"Recebido"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Adresa sau Numele nu a fost găsit!",
"exp5":"Retineti că numele înregistrate sunt sensibile la majuscule.",
"exp6":"Fondator",
"exp7":"Info"
"exp7":"Info",
"exp8":"Afișati toate tranzactiile de cumpărare",
"exp9":"Afișati toate tranzactiile de vânzare",
"exp10":"ISTORICUL CUMPĂRĂRII",
"exp11":"ISTORICUL VÂNZĂRILOR",
"exp12":"Nu s-a efectuat încă tranzactii de cumpărare.",
"exp13":"Încă nu au fost efectuate tranzactii de vânzare.",
"exp14":"Afișati informatiile complete",
"exp15":"Battering de la",
"exp16":"Nu se bate",
"exp17":"TOATE PLĂTILE",
"exp18":"Plăti",
"exp19":"Trimis",
"exp20":"Primit"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Adresa ili ime nisu pronađeni!",
"exp5":"Imajte na umu da registrovana imena razlikuju velika i mala slova.",
"exp6":"Osnivač",
"exp7":"Info"
"exp7":"Info",
"exp8":"Prikaži sve kupovne trgovine",
"exp9":"Prikaži sve poslove prodaje",
"exp10":"KUPITE ISTORIJU",
"exp11":"ISTORIJA PRODAJE",
"exp12":"Još nije napravljena kupovina.",
"exp13":"Još nije izvršena nijedna trgovina.",
"exp14":"Prikaži kompletne informacije",
"exp15":"Kovanje od",
"exp16":"Ne kuje",
"exp17": "SVA PLAĆANJA",
"exp18":"Plaćanja",
"exp19":"Poslato",
"exp20":"Primljeno"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Адрес или имя не найдено!",
"exp5":"Обратите внимание, что зарегистрированные имена вводятся с учетом регистра.",
"exp6":"Основатель",
"exp7":"Информация"
"exp7":"Информация",
"exp8":"Показать все сделки на покупку",
"exp9":"Показать все сделки на продажу",
"exp10":"ИСТОРИЯ ПОКУПОК",
"exp11":"ИСТОРИЯ ПРОДАЖ",
"exp12":"Сделок на покупку еще не было.",
"exp13":"Сделок на продажу еще не было.",
"exp14":"Показать полную информацию",
"exp15":"Чеканка с",
"exp16":"Не чеканка",
"exp17":"ВСЕ ПЛАТЕЖИ",
"exp18":"Платежи",
"exp19":"Отправлено",
"exp20":"Получено"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"Address or Name not found !",
"exp5":"Note that registered names are case-sensitive.",
"exp6":"Founder",
"exp7":"Info"
"exp7":"Info",
"exp8":"Show all buy trades",
"exp9":"Show all sell trades",
"exp10":"BUY HISTORY",
"exp11":"SELL HISTORY",
"exp12":"No buy trades made yet.",
"exp13":"No sell trades made yet.",
"exp14":"Show complete info",
"exp15":"Minting Since",
"exp16":"Not Minting",
"exp17":"ALL PAYMENTS",
"exp18":"Payments",
"exp19":"Sent",
"exp20":"Received"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"找不到地址或姓名!",
"exp5":"请注意,注册名称区分大小写。",
"exp6":"创始人",
"exp7":"信息"
"exp7":"信息",
"exp8":"显示所有买入交易",
"exp9":"显示所有卖出交易",
"exp10":"购买历史",
"exp11":"卖出历史",
"exp12":"还没有买入交易。",
"exp13":"还没有卖出交易。",
"exp14":"显示完整信息",
"exp15":"铸造时间",
"exp16":"不铸造",
"exp17":"所有付款",
"exp18":"付款",
"exp19":"已发送",
"exp20":"收到"
}
}

View File

@ -701,6 +701,19 @@
"exp4":"找不到地址或姓名!",
"exp5":"請注意,註冊名稱區分大小寫。",
"exp6":"創始人",
"exp7":"信息"
"exp7":"信息",
"exp8":"顯示所有買入交易",
"exp9":"顯示所有賣出交易",
"exp10":"購買歷史",
"exp11":"賣出歷史",
"exp12":"還沒有買入交易。",
"exp13":"還沒有賣出交易。",
"exp14":"顯示完整信息",
"exp15":"鑄造時間",
"exp16":"不鑄造",
"exp17":"所有付款",
"exp18":"付款",
"exp19":"已發送",
"exp20":"收到"
}
}

View File

@ -22,7 +22,7 @@
"sass": "1.56.1"
},
"devDependencies": {
"@babel/core": "7.20.2",
"@babel/core": "7.20.5",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
"@material/mwc-dialog": "0.27.0",
@ -54,13 +54,13 @@
"@polymer/paper-toast": "3.0.1",
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "4.0.2",
"@rollup/plugin-babel": "6.0.2",
"@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-babel": "6.0.3",
"@rollup/plugin-commonjs": "23.0.3",
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.1",
"@vaadin/grid": "23.2.9",
"@vaadin/icons": "23.2.9",
"@vaadin/password-field": "23.2.9",
"@vaadin/grid": "23.2.10",
"@vaadin/icons": "23.2.10",
"@vaadin/password-field": "23.2.10",
"asmcrypto.js": "2.3.2",
"bcryptjs": "2.4.3",
"epml": "0.3.3",

View File

@ -15,13 +15,15 @@ import '@vaadin/text-field'
import './wallet-profile.js'
import './app-info.js'
import './sidenav-menu.js'
import './show-plugin.js'
import './qort-theme-toggle.js'
import './language-selector.js'
import './settings-view/user-settings.js'
import './logout-view/logout-view.js'
import './user-info-view/user-info-view.js'
import '../functional-components/side-menu.js'
import '../functional-components/side-menu-item.js'
import './start-minting.js'
const parentEpml = new Epml({type: 'WINDOW', source: window.parent})
@ -29,7 +31,10 @@ class AppView extends connect(store)(LitElement) {
static get properties() {
return {
config: { type: Object },
urls: { type: Object },
nodeType: { type: String, reflect: true },
theme: { type: String, reflect: true },
addressInfo: { type: Object },
searchContentString: { type: String },
botQortWallet: { type: String },
botBtcWallet: { type: String },
@ -113,19 +118,28 @@ class AppView extends connect(store)(LitElement) {
--lumo-body-text-color: var(--black);
--lumo-secondary-text-color: var(--sectxt);
--lumo-contrast-60pct: var(--vdicon);
--item-selected-color: var(--nav-selected-color);
--item-selected-color-text: var(--nav-selected-color-text);
--item-color-active: var(--nav-color-active);
--item-color-hover: var(--nav-color-hover);
--item-text-color: var(--nav-text-color);
--item-icon-color: var(--nav-icon-color);
--item-border-color: var(--nav-border-color);
--item-border-selected-color: var(--nav-border-selected-color);
}
:host {
--app-drawer-width: 260px;
}
app-drawer-layout:not([narrow]) [drawer-toggle]:not(sidenav-menu) {
app-drawer-layout:not([narrow]) [drawer-toggle]:not(side-menu-item) {
display: none;
}
app-drawer {
box-shadow: var(--shadow-2);
background: var(--sidetopbar);
--app-drawer-scrim-background: rgba(0,0,0,0);
}
app-header {
@ -138,6 +152,16 @@ class AppView extends connect(store)(LitElement) {
border-top: var(--border);
}
.s-menu {
list-style: none;
padding: 0px 0px;
background: var(--sidetopbar);
border-radius: 2px;
width: 100%;
border-top: 1px solid var(--border);
outline: none;
}
.search {
display: inline;
width: 50%;
@ -298,6 +322,9 @@ class AppView extends connect(store)(LitElement) {
constructor() {
super()
this.searchContentString = ''
this.urls = [];
this.nodeType = ''
this.addressInfo = {}
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.botQortWallet = ''
this.botBtcWallet = ''
@ -371,13 +398,17 @@ class AppView extends connect(store)(LitElement) {
render() {
return html`
<app-drawer-layout responsive-width='${getComputedStyle(document.body).getPropertyValue('--layout-breakpoint-desktop')}' fullbleed >
<app-drawer-layout responsive-width='${getComputedStyle(document.body).getPropertyValue('--layout-breakpoint-laptop')}' fullbleed>
<app-drawer swipe-open slot="drawer" id="appdrawer">
<app-header-layout>
<div id="sideBar">
<wallet-profile></wallet-profile>
<div class="sideBarMenu">
<sidenav-menu></sidenav-menu>
<div class="s-menu">
<side-menu>
${this.renderNodeTypeMenu()}
</side-menu>
</div>
</div>
<div id="balanceheader">
<span class="balanceheadertext">${translate("general.balances")}</span>
@ -396,19 +427,22 @@ class AppView extends connect(store)(LitElement) {
<img src="${this.config.coin.logo}" style="height:32px; padding-left:12px;">
</span>
</div>
<div class="search">
<vaadin-text-field
style="width: 375px"
theme="medium"
id="searchContent"
placeholder="${translate("explorerpage.exp1")}"
value="${this.searchContentString}"
@keydown="${this.searchKeyListener}"
clear-button-visible
<div style="display: inline;">
<div class="search">
<vaadin-text-field
style="width: 350px"
theme="medium"
id="searchContent"
placeholder="${translate("explorerpage.exp1")}"
value="${this.searchContentString}"
@keydown="${this.searchKeyListener}"
clear-button-visible
>
</vaadin-text-field>
<paper-icon-button icon="icons:search" @click="${() => this.openUserInfo()}"></paper-icon-button>
</vaadin-text-field>
<paper-icon-button icon="icons:search" @click="${() => this.openUserInfo()}"></paper-icon-button>
</div>
</div>
<div>&nbsp;&nbsp;&nbsp;</div>
<div style="display: inline;">
<span>
<img src="/img/${translate("selectmenu.languageflag")}-flag-round-icon-32.png" style="width: 32px; height: 32px; padding-top: 4px;">
@ -443,6 +477,8 @@ class AppView extends connect(store)(LitElement) {
addTradeBotRoutes(parentEpml)
parentEpml.imReady()
this.getNodeType()
const myAppNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeAppUrl = myAppNode.protocol + '://' + myAppNode.domain + ':' + myAppNode.port
const appDelay = ms => new Promise(res => setTimeout(res, ms))
@ -1342,6 +1378,130 @@ class AppView extends connect(store)(LitElement) {
await getOpenTradesARRR()
}
async getNodeType() {
const myAppNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeAppUrl = myAppNode.protocol + '://' + myAppNode.domain + ':' + myAppNode.port
const url = `${nodeAppUrl}/admin/info`
await fetch(url).then((response) => {
return response.json()
}).then((data) => {
this.nodeType = data.type
})
}
renderNodeTypeMenu() {
const addressInfo = this.addressInfo
const isMinter = addressInfo?.error !== 124 && +addressInfo?.level > 0
const isSponsor = +addressInfo?.level >= 5
if (this.nodeType === 'lite') {
return html`
<side-menu-item drawer-toggle label="${translate('sidemenu.wallets')}" href="/app/wallet" selected>
<vaadin-icon icon="vaadin:wallet" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.nameregistration')}" href="/app/name-registration">
<vaadin-icon icon="vaadin:user-check" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.datamanagement')}" href="/app/data-management">
<vaadin-icon icon="vaadin:database" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.qchat')}" href="/app/q-chat">
<vaadin-icon icon="vaadin:chat" slot="icon"></vaadin-icon>
</side-menu-item>
${this.renderNodeManagement()}
`
} else {
return html`
<side-menu-item label="${translate('sidemenu.minting')}" expanded>
<vaadin-icon icon="vaadin:info-circle" slot="icon"></vaadin-icon>
<side-menu-item drawer-toggle label="${translate('sidemenu.mintingdetails')}" href="/app/minting" ?hide=${!isMinter}>
<vaadin-icon icon="vaadin:info-circle" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.becomeAMinter')}" href="/app/become-minter" ?hide=${isMinter}>
<vaadin-icon icon="vaadin:thumbs-up" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('mintingpage.mchange35')}" href="/app/sponsorship-list" ?hide=${!isSponsor}>
<vaadin-icon icon="vaadin:list-ol" slot="icon"></vaadin-icon>
</side-menu-item>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.wallets')}" href="/app/wallet" selected>
<vaadin-icon icon="vaadin:wallet" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item label="${translate('sidemenu.trading')}" expanded>
<vaadin-icon icon="vaadin:cash" slot="icon"></vaadin-icon>
<side-menu-item drawer-toggle label="${translate('sidemenu.tradeportal')}" href="/app/trade-portal">
<vaadin-icon icon="vaadin:bullets" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('tradepage.tchange46')}" href="/app/trade-bot-portal">
<vaadin-icon icon="vaadin:calc-book" slot="icon"></vaadin-icon>
</side-menu-item>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.rewardshare')}" href="/app/reward-share">
<vaadin-icon icon="vaadin:share-square" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.qchat')}" href="/app/q-chat">
<vaadin-icon icon="vaadin:chat" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.nameregistration')}" href="/app/name-registration">
<vaadin-icon icon="vaadin:user-check" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.websites')}" href="/app/websites">
<vaadin-icon icon="vaadin:desktop" slot="icon" ></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.groups')}" href="/app/group-management">
<vaadin-icon icon="vaadin:group" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item drawer-toggle label="${translate('sidemenu.puzzles')}" href="/app/puzzles">
<vaadin-icon icon="vaadin:puzzle-piece" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item label="${translate('sidemenu.management')}" expanded>
<vaadin-icon icon="vaadin:cogs" slot="icon"></vaadin-icon>
<side-menu-item drawer-toggle label="${translate('sidemenu.datamanagement')}" href="/app/data-management">
<vaadin-icon icon="vaadin:database" slot="icon"></vaadin-icon>
</side-menu-item>
${this.renderNodeManagement()}
</side-menu-item>
<div>
<start-minting></start-minting>
</div>
`
}
}
renderNodeManagement() {
const checkNodeManagement = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
if ((checkNodeManagement.enableManagement = true)) {
return html`
<side-menu-item drawer-toggle label="${translate('sidemenu.nodemanagement')}" href="/app/node-management">
<vaadin-icon icon="vaadin:cloud" slot="icon"></vaadin-icon>
</side-menu-item>
`
} else {
return html``
}
}
async renderBalances() {
const tickerTime = ms => new Promise(res => setTimeout(res, ms))
clearTimeout(this.updateBalancesTimeout)
@ -1923,6 +2083,8 @@ class AppView extends connect(store)(LitElement) {
stateChanged(state) {
this.config = state.config
this.urls = state.app.registeredUrls
this.addressInfo = state.app.accountInfo.addressInfo
}
searchKeyListener(e) {

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@ $mdc-layout-grid-breakpoints: (
:root, html, body{
--layout-breakpoint-desktop: #{map-get($mdc-layout-grid-breakpoints, desktop)};
--layout-breakpoint-laptop: #{map-get($mdc-layout-grid-breakpoints, laptop)};
--layout-breakpoint-tablet: #{map-get($mdc-layout-grid-breakpoints, tablet)};
--layout-breakpoint-mobile: #{map-get($mdc-layout-grid-breakpoints, phone)};
}

View File

@ -22,7 +22,7 @@
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js"
},
"devDependencies": {
"@babel/core": "7.20.2",
"@babel/core": "7.20.5",
"@github/time-elements": "3.1.2",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
@ -42,13 +42,13 @@
"@polymer/paper-spinner": "3.0.2",
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "4.0.2",
"@rollup/plugin-babel": "6.0.2",
"@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-babel": "6.0.3",
"@rollup/plugin-commonjs": "23.0.3",
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.1",
"@vaadin/button": "23.2.9",
"@vaadin/grid": "23.2.9",
"@vaadin/icons": "23.2.9",
"@vaadin/button": "23.2.10",
"@vaadin/grid": "23.2.10",
"@vaadin/icons": "23.2.10",
"epml": "0.3.3",
"file-saver": "2.0.5",
"html-escaper": "3.0.3",

View File

@ -24,7 +24,8 @@ class MintingInfo extends LitElement {
sampleBlock: { type: Array },
addressInfo: { type: Array },
addressLevel: { type: Array },
theme: { type: String, reflect: true }
theme: { type: String, reflect: true },
tier4Online: { type: Number }
}
}
@ -198,12 +199,13 @@ class MintingInfo extends LitElement {
constructor() {
super()
this.selectedAddress = window.parent.reduxStore.getState().app.selectedAddress.address
this.adminInfo = [];
this.nodeInfo = [];
this.sampleBlock = [];
this.addressInfo = [];
this.addressLevel = [];
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light';
this.adminInfo = []
this.nodeInfo = []
this.sampleBlock = []
this.addressInfo = []
this.addressLevel = []
this.tier4Online = 0
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
}
render() {
@ -343,12 +345,12 @@ class MintingInfo extends LitElement {
`}
}
firstUpdated() {
async firstUpdated() {
this.changeTheme()
this.changeLanguage()
this.levelsCount()
await this.getAddressLevel()
const getAdminInfo = () => {
parentEpml.request("apiCall", { url: `/admin/info` }).then((res) => {
@ -423,26 +425,14 @@ class MintingInfo extends LitElement {
parentEpml.imReady()
}
async levelsCount() {
await this.getAddressLevel()
this.countForTier4()
}
getAddressLevel = async () => {
async getAddressLevel() {
const callLevels = await parentEpml.request('apiCall', {
url: `/addresses/online/levels`
})
this.addressLevel = callLevels
this.tier4Online = parseFloat(this.addressLevel[7].count) + parseFloat(this.addressLevel[8].count)
}
countForTier4() {
const minterOnline = (this.addressLevel[7].count + this.addressLevel[8].count)
if (minterOnline < 30) {
return "false"
} else {
return "true"
}
}
changeTheme() {
const checkTheme = localStorage.getItem('qortalTheme')
if (checkTheme === 'dark') {
@ -616,25 +606,25 @@ class MintingInfo extends LitElement {
} else if (this.addressInfo.level === 4) {
return "13"
} else if (this.addressInfo.level === 5) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
return "45"
} else {
return "19"
}
} else if (this.addressInfo.level === 6) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
return "45"
} else {
return "19"
}
} else if (this.addressInfo.level === 7) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
return "45"
} else {
return "26"
}
} else if (this.addressInfo.level === 8) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
return "45"
} else {
return "26"
@ -693,7 +683,7 @@ class MintingInfo extends LitElement {
let countTier21 = (this.addressLevel[3].count + this.addressLevel[4].count).toString()
return "" + countTier21
} else if (this.addressInfo.level === 5) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countTier30 = (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count).toString()
return "" + countTier30
} else {
@ -701,7 +691,7 @@ class MintingInfo extends LitElement {
return "" + countTier30
}
} else if (this.addressInfo.level === 6) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countTier31 = (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count).toString()
return "" + countTier31
} else {
@ -709,7 +699,7 @@ class MintingInfo extends LitElement {
return "" + countTier31
}
} else if (this.addressInfo.level === 7) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countTier40 = (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count).toString()
return "" + countTier40
} else {
@ -717,7 +707,7 @@ class MintingInfo extends LitElement {
return "" + countTier40
}
} else if (this.addressInfo.level === 8) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countTier40 = (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count).toString()
return "" + countTier40
} else {
@ -753,7 +743,7 @@ class MintingInfo extends LitElement {
let countReward41 = (countReward40).toString();
return "" + countReward41;
} else if (this.addressInfo.level === 5) {
if (this.countForTier4() === "false") {
if (this.tier4Online< 30) {
let countReward50 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count)).toFixed(8)
let countReward51 = (countReward50).toString();
return "" + countReward51;
@ -763,7 +753,7 @@ class MintingInfo extends LitElement {
return "" + countReward51;
}
} else if (this.addressInfo.level === 6) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countReward60 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count)).toFixed(8)
let countReward61 = (countReward60).toString()
return "" + countReward61
@ -773,7 +763,7 @@ class MintingInfo extends LitElement {
return "" + countReward61
}
} else if (this.addressInfo.level === 7) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countReward70 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count)).toFixed(8)
let countReward71 = (countReward70).toString()
return "" + countReward71
@ -783,7 +773,7 @@ class MintingInfo extends LitElement {
return "" + countReward71
}
} else if (this.addressInfo.level === 8) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countReward80 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count)).toFixed(8)
let countReward81 = (countReward80).toString()
return "" + countReward81
@ -823,7 +813,7 @@ class MintingInfo extends LitElement {
let countRewardDay41 = (countRewardDay40).toString()
return "" + countRewardDay41
} else if (this.addressInfo.level === 5) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countRewardDay50 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count) * this._timeCalc()).toFixed(8)
let countRewardDay51 = (countRewardDay50).toString()
return "" + countRewardDay51
@ -833,7 +823,7 @@ class MintingInfo extends LitElement {
return "" + countRewardDay51
}
} else if (this.addressInfo.level === 6) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countRewardDay60 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count) * this._timeCalc()).toFixed(8)
let countRewardDay61 = (countRewardDay60).toString()
return "" + countRewardDay61
@ -843,7 +833,7 @@ class MintingInfo extends LitElement {
return "" + countRewardDay61
}
} else if (this.addressInfo.level === 7) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countRewardDay70 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count) * this._timeCalc()).toFixed(8)
let countRewardDay71 = (countRewardDay70).toString()
return "" + countRewardDay71
@ -853,7 +843,7 @@ class MintingInfo extends LitElement {
return "" + countRewardDay71
}
} else if (this.addressInfo.level === 8) {
if (this.countForTier4() === "false") {
if (this.tier4Online < 30) {
let countRewardDay80 = ((this._blockReward() / 100 * this._tierPercent()) / (this.addressLevel[5].count + this.addressLevel[6].count + this.addressLevel[7].count + this.addressLevel[8].count) * this._timeCalc()).toFixed(8)
let countRewardDay81 = (countRewardDay80).toString()
return "" + countRewardDay81

View File

@ -755,7 +755,7 @@ class TradeBotPortal extends LitElement {
handleStuckTradesConnectedWorker: null
})
this.selectedCoin = "BITCOIN"
this.selectedCoin = "LITECOIN"
this.selectedAddress = {}
this.config = {}
this.sellBtnDisable = false
@ -1437,8 +1437,8 @@ class TradeBotPortal extends LitElement {
<div style="min-height: 50px; display: flex; padding-bottom: 10px; padding-top: 10px; margin: auto;">
<h2 style="margin: 0 0 15px 0; line-height: 50px; display: inline;">${translate("tradepage.tchange39")} - &nbsp;</h2>
<mwc-select outlined id="coinSelectionMenu" label="${translate("tradepage.tchange2")}">
<mwc-list-item value="BITCOIN" selected><span class="coinName btc" style="color: var(--black);">BTC / QORT</span></mwc-list-item>
<mwc-list-item value="LITECOIN"><span class="coinName ltc" style="color: var(--black);">LTC / QORT</span></mwc-list-item>
<mwc-list-item value="BITCOIN"><span class="coinName btc" style="color: var(--black);">BTC / QORT</span></mwc-list-item>
<mwc-list-item value="LITECOIN" selected><span class="coinName ltc" style="color: var(--black);">LTC / QORT</span></mwc-list-item>
<mwc-list-item value="DOGECOIN"><span class="coinName doge" style="color: var(--black);">DOGE / QORT</span></mwc-list-item>
<mwc-list-item value="DIGIBYTE"><span class="coinName dgb" style="color: var(--black);">DGB / QORT</span></mwc-list-item>
<mwc-list-item value="RAVENCOIN"><span class="coinName rvn" style="color: var(--black);">RVN / QORT</span></mwc-list-item>