Browse Source

Merge branch 'master' of https://github.com/Qortal/qortal-ui

qortal-ui-dev
AlphaX-Projects 1 year ago
parent
commit
b4fbb4970f
  1. 22
      qortal-ui-core/language/us.json
  2. 9
      qortal-ui-core/src/components/login-view/login-view.js
  3. 58
      qortal-ui-core/src/components/wallet-profile.js
  4. 20
      qortal-ui-plugins/plugins/core/group-management/group-management.src.js
  5. 2
      qortal-ui-plugins/plugins/core/names-market/names-market.src.js

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

@ -525,7 +525,27 @@
"bchange13": "Error occurred when trying to block this registered name. Please try again!",
"bchange14": "Error occurred when trying to unblock this registered name. Please try again!",
"bchange15": "Can't delete data from followed names. Please unfollow first.",
"bchange16": "Error occurred when trying to delete this resource. Please try again!"
"bchange16": "Error occurred when trying to delete this resource. Please try again!",
"bchange17": "User declined to share account details",
"bchange18": "has requested authentication. Would you like to authenticate?",
"bchange19": "Do you give this application permission to publish to QDN?",
"bchange20": "Do you give this application permission to get your wallet balance?",
"bchange21": "Fetch Wallet Failed. Please try again!",
"bchange22": "Do you give this application permission to send a chat message?",
"bchange23": "Message Sent!",
"bchange24": "This shares your QORT address and allows your account to interact with the",
"bchange25": "No sensitive data is shared.",
"bchange26": "Always authenticate automatically",
"bchange27": "Reject",
"bchange28": "Accept",
"bchange29": "Instant publish (requires 0.001 QORT fee)",
"bchange30": "Service",
"bchange31": "Name",
"bchange32": "Identifier",
"bchange33": "Instant publish",
"bchange34": "Filename",
"bchange35": "Do you give this application permission to send coins?",
"bchange36": "Do you want to publish instant to QDN without computing proof-of-work?"
},
"datapage": {
"dchange1": "Data Management",

9
qortal-ui-core/src/components/login-view/login-view.js

@ -2,6 +2,7 @@ import { LitElement, html, css } from 'lit'
import { connect } from 'pwa-helpers'
import { store } from '../../store.js'
import { stateAwait } from '../../stateAwait.js'
import { translate, translateUnsafeHTML } from 'lit-translate'
import '@material/mwc-button'
import '@material/mwc-icon'
@ -36,6 +37,7 @@ class LoginView extends connect(store)(LitElement) {
config: { type: Object },
rippleLoadingMessage: { type: String },
selectedPageElement: {},
nodeConfig: { type: Object },
theme: { type: String, reflect: true }
}
}
@ -132,10 +134,8 @@ class LoginView extends connect(store)(LitElement) {
max-height:var(--window-height);
margin-right: auto;
margin-left: auto;
width: calc(100vw);
}
.qortal-logo {
margin-left: auto;
margin-right: auto;
@ -202,7 +202,6 @@ class LoginView extends connect(store)(LitElement) {
border-radius: 4px;
}
#loginContainerPages [page="welcome"] {
}
}
@media only screen and (max-width: ${getComputedStyle(document.body).getPropertyValue('--layout-breakpoint-tablet')}) {
@ -222,7 +221,6 @@ class LoginView extends connect(store)(LitElement) {
padding-left:12px;
}
}
@keyframes fade {
from {
opacity: 0;
@ -258,7 +256,6 @@ class LoginView extends connect(store)(LitElement) {
display: none;
}
</style>
<div class="login-page" ?hidden=${this.loggedIn}>
<mwc-fab icon="settings" style="position:fixed; right:24px; bottom:24px;" @click=${() => settings.show()}></mwc-fab>
<span style="position:fixed; left:24px; bottom:24px;"><qort-theme-toggle></qort-theme-toggle></span>
@ -266,6 +263,7 @@ class LoginView extends connect(store)(LitElement) {
<div class="login-card-center-container">
<div class="login-card" id="login-card">
<img class="qortal-logo" src="${this.config.coin.logo}">
<h5 style="color:var(--mdc-theme-primary)" ?hidden="${this.selectedPage != "welcome"}">${translate("appinfo.uiversion")}: ${this.nodeConfig.version ? this.nodeConfig.version : ''}</h5>
<iron-pages selected="${this.selectedPage}" attr-for-selected="page" id="loginContainerPages">
<welcome-page @next=${e => this.selectedPageElement.next(e)} page="welcome"></welcome-page>
<create-account-section @next=${e => this.selectedPageElement.next(e)} page="create-account"></create-account-section>
@ -294,6 +292,7 @@ class LoginView extends connect(store)(LitElement) {
if (this.loggedIn && !state.app.loggedIn) this.cleanup()
this.loggedIn = state.app.loggedIn
this.config = state.config
this.nodeConfig = state.app.nodeConfig
}
cleanup() {

58
qortal-ui-core/src/components/wallet-profile.js

@ -12,6 +12,7 @@ class WalletProfile extends connect(store)(LitElement) {
wallet: { type: Object },
nodeConfig: { type: Object },
accountInfo: { type: Object },
imageUrl: { type: String },
theme: { type: String, reflect: true }
}
}
@ -30,6 +31,7 @@ class WalletProfile extends connect(store)(LitElement) {
names: [],
addressInfo: {}
}
this.imageUrl = ''
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
}
@ -42,32 +44,27 @@ class WalletProfile extends connect(store)(LitElement) {
background: var(--sidetopbar);
color: var(--black);
}
#profileInMenu:hover {
}
#accountIcon {
font-size:48px;
color: var(--mdc-theme-primary);
display: inline-block;
}
#accountName {
margin: 0;
font-size: 18px;
font-weight:500;
display: inline-block;
width:100%;
padding-bottom:8px;
display: flex;
}
#blocksMinted {
margin:0;
margin-top: 0;
font-size: 11px;
font-size: 12px;
color: #03a9f4;
}
#address {
white-space: nowrap;
overflow: hidden;
@ -76,16 +73,32 @@ class WalletProfile extends connect(store)(LitElement) {
margin-top:8px;
font-size:11px;
}
.round-fullinfo {
position: relative;
width: 68px;
height: 68px;
border-radius: 50%;
}
.full-info-logo {
width: 68px;
height: 68px;
border-radius: 50%;
}
.inline-block-child {
flex: 1;
}
</style>
<div id="profileInMenu">
<div style="padding: 8px 0;">
<span id="accountName">
${this.accountInfo.names.length !== 0 ? this.accountInfo.names[0].name : ''}
</span>
${this.accountInfo.addressInfo ? html`<span style="margin-bottom: 8px; display: inline-block; font-size: 14px;">${translate("walletprofile.minterlevel")} - <span style="color: #03a9f4;">${this.accountInfo.addressInfo.level} ${this.accountInfo.addressInfo.flags === 1 ? html`<strong>(F)</strong>` : ''}</span>` : ''}
<p id="blocksMinted">${translate("walletprofile.blocksminted")} - ${this.accountInfo.addressInfo.blocksMinted + this.accountInfo.addressInfo.blocksMintedAdjustment}</p>
<div id="accountName">
<div id="child inline-block-child" class="full-info-logo">${this.getAvatar()}</div>
&nbsp;&nbsp;&nbsp;
<div id="inline-block-child">
<div>${this.accountInfo.names.length !== 0 ? this.accountInfo.names[0].name : ''}</div>
<div>${this.accountInfo.addressInfo ? html`<span style="margin-bottom: 8px; display: inline-block; font-size: 14px;">${translate("walletprofile.minterlevel")} - <span style="color: #03a9f4;">${this.accountInfo.addressInfo.level} ${this.accountInfo.addressInfo.flags === 1 ? html`<strong>(F)</strong>` : ''}</span>` : ''}</div>
<p id="blocksMinted">${translate("walletprofile.blocksminted")} - ${this.accountInfo.addressInfo.blocksMinted + this.accountInfo.addressInfo.blocksMintedAdjustment}</p>
</div>
</div>
<p id="address">${this.wallet.addresses[0].address}</p>
</div>
</div>
@ -106,6 +119,23 @@ class WalletProfile extends connect(store)(LitElement) {
this.toast = container.appendChild(toast)
}
async getAllWithAddress(myAddress) {
await this.getAddressUserAvatar(myAddress)
}
getAvatar() {
const avatarNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const avatarUrl = avatarNode.protocol + '://' + avatarNode.domain + ':' + avatarNode.port
const url = `${avatarUrl}/arbitrary/THUMBNAIL/${this.accountInfo.names[0].name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
return html`<img class="round-fullinfo" src="${url}" onerror="this.src='/img/incognito.png';" />`
}
getApiKey() {
const apiNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node];
let apiKey = apiNode.apiKey;
return apiKey;
}
stateChanged(state) {
this.wallet = state.app.wallet
this.nodeConfig = state.app.nodeConfig

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

@ -1320,9 +1320,9 @@ class GroupManagement extends LitElement {
<div class="divCard">
<h3 style="margin: 0; margin-bottom: 1em; text-align: center;">${translate("grouppage.gchange3")}</h3>
<vaadin-grid theme="large" id="joinedGroupsGrid" ?hidden="${this.isEmptyArray(this.joinedGroups)}" .items="${this.joinedGroups}" aria-label="Joined Groups" all-rows-visible>
<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("grouppage.gchange5")}" path="description"></vaadin-grid-column>
<vaadin-grid-sort-column width="8rem" flex-grow="0" header="${translate("grouppage.gchange54")}" path="memberCount"></vaadin-grid-sort-column>
<vaadin-grid-sort-column header="${translate("grouppage.gchange4")}" path="groupName"></vaadin-grid-sort-column>
<vaadin-grid-sort-column header="${translate("grouppage.gchange5")}" path="description"></vaadin-grid-sort-column>
<vaadin-grid-column width="11rem" flex-grow="0" header="${translate("grouppage.gchange6")}" .renderer=${(root, column, data) => {
render(html`${this.renderRole(data.item)}`, root)
}}></vaadin-grid-column>
@ -1382,9 +1382,9 @@ class GroupManagement extends LitElement {
</vaadin-text-field><br>
<vaadin-grid theme="large" id="publicGroupsGrid" .items="${this.filteredItems}" aria-label="Public Open Groups" all-rows-visible>
<vaadin-grid-sort-column width="8rem" flex-grow="0" header="${translate("grouppage.gchange54")}" path="memberCount"></vaadin-grid-sort-column>
<vaadin-grid-column header="${translate("grouppage.gchange4")}" path="groupName"></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-sort-column header="${translate("grouppage.gchange4")}" path="groupName"></vaadin-grid-sort-column>
<vaadin-grid-sort-column header="${translate("grouppage.gchange5")}" path="description"></vaadin-grid-sort-column>
<vaadin-grid-sort-column header="${translate("grouppage.gchange10")}" path="owner"></vaadin-grid-sort-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>
@ -1979,7 +1979,7 @@ class GroupManagement extends LitElement {
}
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="red" @click=${() => this.openCreateBanMemberDialog(groupObj)}><mwc-icon>hardware</mwc-icon>&nbsp;${translate("managegroup.mg6")}</mwc-button>`
}
openCreateBanMemberDialog(groupObj) {
@ -2029,7 +2029,7 @@ class GroupManagement extends LitElement {
}
renderKickGroupMemberButton(groupObj) {
return html`<mwc-button class="red" title="${translate("managegroup.mg31")}" @click=${() => this.openKickGroupMemberDialog(groupObj)}><mwc-icon>exit_to_app</mwc-icon>&nbsp;${translate("managegroup.mg7")}</mwc-button>`
return html`<mwc-button class="warning" title="${translate("managegroup.mg31")}" @click=${() => this.openKickGroupMemberDialog(groupObj)}><mwc-icon>exit_to_app</mwc-icon>&nbsp;${translate("managegroup.mg7")}</mwc-button>`
}
openKickGroupMemberDialog(groupObj) {
@ -2674,9 +2674,9 @@ class GroupManagement extends LitElement {
renderManageButton(groupObj) {
if (groupObj.owner === this.selectedAddress.address) {
return html`<mwc-button @click=${() => this.manageGroupOwner(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("grouppage.gchange40")}</mwc-button>`
return html`<mwc-button class="warning" @click=${() => this.manageGroupOwner(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("grouppage.gchange40")}</mwc-button>`
} else if (groupObj.isAdmin === true) {
return html`<mwc-button @click=${() => this.manageGroupAdmin(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("grouppage.gchange40")}</mwc-button>`
return html`<mwc-button class="warning" @click=${() => this.manageGroupAdmin(groupObj)}><mwc-icon>create</mwc-icon>&nbsp;${translate("grouppage.gchange40")}</mwc-button>`
} else {
return html`<mwc-button @click=${() => this.leaveGroup(groupObj)}><mwc-icon>exit_to_app</mwc-icon>&nbsp;${translate("grouppage.gchange50")}</mwc-button>`
}

2
qortal-ui-plugins/plugins/core/names-market/names-market.src.js

@ -679,7 +679,7 @@ class NamesMarket extends LitElement {
async updatePageSoldSize() {
this.filteredSoldItems = []
this.marketSoldNames.sort((a, b) => parseFloat(a.amount) - parseFloat(b.amount))
this.marketSoldNames.sort((b, a) => parseFloat(a.amount) - parseFloat(b.amount))
this.filteredSoldItems = this.marketSoldNames
await this.setSoldPages()
await this.updateItemsSoldFromPage(1, true)

Loading…
Cancel
Save