4
1
mirror of https://github.com/Qortal/qortal-ui.git synced 2025-02-11 17:55:51 +00:00

Minor fixes

- Removed start minting button from sidebar
- Added disable sync indicator popup under settings
- Fixed colors
- Added translations
This commit is contained in:
AlphaX-Projects 2024-03-14 10:30:58 +01:00
parent 046c3832ad
commit 7669b1caf0
34 changed files with 316 additions and 225 deletions

View File

@ -70,7 +70,7 @@ html {
--login-border-50pct: rgba(0, 167, 245, 0.5); --login-border-50pct: rgba(0, 167, 245, 0.5);
--login-border-10pct: rgba(0, 167, 245, 0.1); --login-border-10pct: rgba(0, 167, 245, 0.1);
--login-button: rgb(3, 169, 244); --login-button: rgb(3, 169, 244);
--accent-color: #03a9f4; --general-color-blue: #03a9f4;
--qchat-name: #03a9f4; --qchat-name: #03a9f4;
--qchat-my-name: #05be0e; --qchat-my-name: #05be0e;
} }
@ -147,7 +147,7 @@ html[theme="dark"] {
--login-border-50pct: rgba(0, 167, 245, 0.5); --login-border-50pct: rgba(0, 167, 245, 0.5);
--login-border-10pct: rgba(0, 167, 245, 0.1); --login-border-10pct: rgba(0, 167, 245, 0.1);
--login-button: rgb(3, 169, 244); --login-button: rgb(3, 169, 244);
--accent-color: #03a9f4; --general-color-blue: #03a9f4;
--qchat-name: #03a9f4; --qchat-name: #03a9f4;
--qchat-my-name: #05be0e; --qchat-my-name: #05be0e;
} }

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR-Wallet nicht initialisiert!", "arrr1": "ARRR-Wallet nicht initialisiert!",
"arrr2": "Bitte gehen Sie zur Registerkarte „Wallet“ und initialisieren Sie zuerst Ihre arrr-Wallet.", "arrr2": "Bitte gehen Sie zur Registerkarte „Wallet“ und initialisieren Sie zuerst Ihre arrr-Wallet.",
"arrr3": "Core-Update erforderlich!", "arrr3": "Core-Update erforderlich!",
"arrr4": "Um den privaten Schlüssel Ihrer arrr-Wallet zu speichern, benötigen Sie zuerst ein Core-Update!" "arrr4": "Um den privaten Schlüssel Ihrer arrr-Wallet zu speichern, benötigen Sie zuerst ein Core-Update!",
"sync_indicator": "Synchronisierungsanzeige-Popup deaktivieren"
}, },
"appinfo": { "appinfo": {
"blockheight": "Blockhöhe", "blockheight": "Blockhöhe",

View File

@ -213,7 +213,8 @@
"arrr1": "¡Cartera ARRR no inicializada!", "arrr1": "¡Cartera ARRR no inicializada!",
"arrr2": "Por favor, vaya a la pestaña de billetera e inicialice su billetera arrr primero.", "arrr2": "Por favor, vaya a la pestaña de billetera e inicialice su billetera arrr primero.",
"arrr3": "¡Necesita actualización principal!", "arrr3": "¡Necesita actualización principal!",
"arrr4": "¡Para guardar la clave privada de tu billetera arrr, primero necesitas una actualización básica!" "arrr4": "¡Para guardar la clave privada de tu billetera arrr, primero necesitas una actualización básica!",
"sync_indicator": "Desactivar la ventana emergente del indicador de sincronización"
}, },
"appinfo": { "appinfo": {
"blockheight": "Altura del Bloque", "blockheight": "Altura del Bloque",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR rahakott pole initsialiseeritud!", "arrr1": "ARRR rahakott pole initsialiseeritud!",
"arrr2": "Minge rahakoti vahekaardile ja lähtestage esmalt oma arrr rahakott.", "arrr2": "Minge rahakoti vahekaardile ja lähtestage esmalt oma arrr rahakott.",
"arrr3": "Vaja põhivärskendust!", "arrr3": "Vaja põhivärskendust!",
"arrr4": "Oma arrr rahakoti privaatvõtme salvestamiseks vajate esmalt põhivärskendust!" "arrr4": "Oma arrr rahakoti privaatvõtme salvestamiseks vajate esmalt põhivärskendust!",
"sync_indicator": "Keela sünkroonimisindikaatori hüpikaken"
}, },
"appinfo": { "appinfo": {
"blockheight": "Ploki kõrgus", "blockheight": "Ploki kõrgus",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR-lompakkoa ei ole alustettu!", "arrr1": "ARRR-lompakkoa ei ole alustettu!",
"arrr2": "Siirry lompakko-välilehdelle ja nollaa ensin ARRR-lompakkosi.", "arrr2": "Siirry lompakko-välilehdelle ja nollaa ensin ARRR-lompakkosi.",
"arrr3": "Tarvitaan iso päivitys!", "arrr3": "Tarvitaan iso päivitys!",
"arrr4": "Jotta voit tallentaa ARRR-lompakkosi yksityisen avaimesi, tarvitset ensin pääpäivityksen!" "arrr4": "Jotta voit tallentaa ARRR-lompakkosi yksityisen avaimesi, tarvitset ensin pääpäivityksen!",
"sync_indicator": "Poista synkronoinnin ilmaisimen ponnahdusikkuna"
}, },
"appinfo": { "appinfo": {
"blockheight": "Lohkon korkeus", "blockheight": "Lohkon korkeus",

View File

@ -213,7 +213,8 @@
"arrr1": "Portefeuille ARRR non initialisé !", "arrr1": "Portefeuille ARRR non initialisé !",
"arrr2": "Veuillez aller dans l'onglet Portefeuille et initialiser d'abord votre portefeuille arrr.", "arrr2": "Veuillez aller dans l'onglet Portefeuille et initialiser d'abord votre portefeuille arrr.",
"arrr3": "Besoin d'une mise à jour principale !", "arrr3": "Besoin d'une mise à jour principale !",
"arrr4": "Pour sauvegarder la clé privée de votre portefeuille arrr, vous avez d'abord besoin d'une mise à jour principale !" "arrr4": "Pour sauvegarder la clé privée de votre portefeuille arrr, vous avez d'abord besoin d'une mise à jour principale !",
"sync_indicator": "Désactiver la fenêtre contextuelle de l'indicateur de synchronisation"
}, },
"appinfo": { "appinfo": {
"blockheight": "Hauteur de bloc", "blockheight": "Hauteur de bloc",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR वॉलेट प्रारंभ नहीं हुआ!", "arrr1": "ARRR वॉलेट प्रारंभ नहीं हुआ!",
"arrr2": "कृपया वॉलेट टैब पर जाएं और पहले अपना Arrr वॉलेट प्रारंभ करें।", "arrr2": "कृपया वॉलेट टैब पर जाएं और पहले अपना Arrr वॉलेट प्रारंभ करें।",
"arrr3": "मुख्य अद्यतन की आवश्यकता है!", "arrr3": "मुख्य अद्यतन की आवश्यकता है!",
"arrr4": "अपने Arrr वॉलेट की निजी कुंजी को सहेजने के लिए आपको पहले एक कोर अपडेट की आवश्यकता है!" "arrr4": "अपने Arrr वॉलेट की निजी कुंजी को सहेजने के लिए आपको पहले एक कोर अपडेट की आवश्यकता है!",
"sync_indicator": "सिंक संकेतक पॉपअप अक्षम करें"
}, },
"appinfo": { "appinfo": {
"blockheight": "ब्लॉक ऊँचाई", "blockheight": "ब्लॉक ऊँचाई",

View File

@ -213,7 +213,8 @@
"arrr1": "Novčanik ARRR nije inicijaliziran!", "arrr1": "Novčanik ARRR nije inicijaliziran!",
"arrr2": "Idite na karticu novčanika i prvo inicijalizirajte svoj arrr novčanik.", "arrr2": "Idite na karticu novčanika i prvo inicijalizirajte svoj arrr novčanik.",
"arrr3": "Potrebno je ažuriranje jezgre!", "arrr3": "Potrebno je ažuriranje jezgre!",
"arrr4": "Da biste spremili privatni ključ vašeg arrr novčanika, prvo trebate ažurirati jezgru!" "arrr4": "Da biste spremili privatni ključ vašeg arrr novčanika, prvo trebate ažurirati jezgru!",
"sync_indicator": "Onemogući skočni prozor indikatora sinkronizacije"
}, },
"appinfo": { "appinfo": {
"blockheight": "Visina bloka", "blockheight": "Visina bloka",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR Wallet nincs inicializálva!", "arrr1": "ARRR Wallet nincs inicializálva!",
"arrr2": "Kérjük, lépjen a Wallet fülre, és először inicializálja arrr pénztárcáját.", "arrr2": "Kérjük, lépjen a Wallet fülre, és először inicializálja arrr pénztárcáját.",
"arrr3": "Alapfrissítésre van szükség!", "arrr3": "Alapfrissítésre van szükség!",
"arrr4": "Az arrr pénztárca privát kulcsának mentéséhez először egy alapvető frissítésre van szükség!" "arrr4": "Az arrr pénztárca privát kulcsának mentéséhez először egy alapvető frissítésre van szükség!",
"sync_indicator": "Szinkronizálásjelző előugró ablak letiltása"
}, },
"appinfo": { "appinfo": {
"blockheight": "Blokk Magassága", "blockheight": "Blokk Magassága",

View File

@ -213,7 +213,8 @@
"arrr1": "Portafoglio ARRR non inizializzato!", "arrr1": "Portafoglio ARRR non inizializzato!",
"arrr2": "Vai alla scheda Portafoglio e inizializza prima il tuo portafoglio arrr.", "arrr2": "Vai alla scheda Portafoglio e inizializza prima il tuo portafoglio arrr.",
"arrr3": "È necessario l'aggiornamento del core!", "arrr3": "È necessario l'aggiornamento del core!",
"arrr4": "Per salvare la chiave privata del tuo portafoglio arrr devi prima aggiornare il core!" "arrr4": "Per salvare la chiave privata del tuo portafoglio arrr devi prima aggiornare il core!",
"sync_indicator": "Disabilita il popup dell'indicatore di sincronizzazione"
}, },
"appinfo": { "appinfo": {
"blockheight": "Altezza blocco", "blockheight": "Altezza blocco",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR ウォレットが初期化されていません!", "arrr1": "ARRR ウォレットが初期化されていません!",
"arrr2": "ウォレットタブに移動して、まずarrrウォレットを初期化してください。", "arrr2": "ウォレットタブに移動して、まずarrrウォレットを初期化してください。",
"arrr3": "コアのアップデートが必要です!", "arrr3": "コアのアップデートが必要です!",
"arrr4": "arrr ウォレットの秘密キーを保存するには、まずコアのアップデートが必要です!" "arrr4": "arrr ウォレットの秘密キーを保存するには、まずコアのアップデートが必要です!",
"sync_indicator": "同期インジケーターのポップアップを無効にする"
}, },
"appinfo": { "appinfo": {
"blockheight": "ブロック高", "blockheight": "ブロック高",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR 지갑이 초기화되지 않았습니다!", "arrr1": "ARRR 지갑이 초기화되지 않았습니다!",
"arrr2": "지갑 탭으로 이동하여 먼저 arrr 지갑을 초기화하세요.", "arrr2": "지갑 탭으로 이동하여 먼저 arrr 지갑을 초기화하세요.",
"arrr3": "핵심 업데이트가 필요합니다!", "arrr3": "핵심 업데이트가 필요합니다!",
"arrr4": "arrr 지갑의 개인 키를 저장하려면 먼저 핵심 업데이트가 필요합니다!" "arrr4": "arrr 지갑의 개인 키를 저장하려면 먼저 핵심 업데이트가 필요합니다!",
"sync_indicator": "동기화 표시 팝업 비활성화"
}, },
"appinfo": { "appinfo": {
"blockheight": "블록 높이", "blockheight": "블록 높이",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR portefeuille is niet geïnitialiseerd!", "arrr1": "ARRR portefeuille is niet geïnitialiseerd!",
"arrr2": "Ga naar de portefeuille-tab en initialiseer eerst jouw ARRR portefeuille.", "arrr2": "Ga naar de portefeuille-tab en initialiseer eerst jouw ARRR portefeuille.",
"arrr3": "De 'core' heeft een update nodig!", "arrr3": "De 'core' heeft een update nodig!",
"arrr4": "Om de privé-sleutel van jouw ARRR portefeuille te kunnen bewaren, moet je voor de 'core' eerst een update installeren!" "arrr4": "Om de privé-sleutel van jouw ARRR portefeuille te kunnen bewaren, moet je voor de 'core' eerst een update installeren!",
"sync_indicator": "Synchronisatie-indicator pop-up uitschakelen"
}, },
"appinfo": { "appinfo": {
"blockheight": "Blokhoogte", "blockheight": "Blokhoogte",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR-lommebok ikke initialisert !", "arrr1": "ARRR-lommebok ikke initialisert !",
"arrr2": "Vennligst gå til lommebok-fanen og initialiser arrr-lommeboken først.", "arrr2": "Vennligst gå til lommebok-fanen og initialiser arrr-lommeboken først.",
"arrr3": "Trenger kjerneoppdatering!", "arrr3": "Trenger kjerneoppdatering!",
"arrr4": "For å lagre den private nøkkelen til arrr-lommeboken din trenger du en kjerneoppdatering først!" "arrr4": "For å lagre den private nøkkelen til arrr-lommeboken din trenger du en kjerneoppdatering først!",
"sync_indicator": "Deaktiver popup for synkroniseringsindikator"
}, },
"appinfo": { "appinfo": {
"blockheight": "Blokkhøyde", "blockheight": "Blokkhøyde",

View File

@ -213,7 +213,8 @@
"arrr1": "Portfel ARRR nie został zainicjowany!", "arrr1": "Portfel ARRR nie został zainicjowany!",
"arrr2": "Przejdź do zakładki portfela i najpierw zainicjalizuj swój portfel arrr.", "arrr2": "Przejdź do zakładki portfela i najpierw zainicjalizuj swój portfel arrr.",
"arrr3": "Potrzebujesz aktualizacji rdzenia!", "arrr3": "Potrzebujesz aktualizacji rdzenia!",
"arrr4": "Aby zapisać klucz prywatny swojego portfela arrr, potrzebujesz najpierw aktualizacji rdzenia!" "arrr4": "Aby zapisać klucz prywatny swojego portfela arrr, potrzebujesz najpierw aktualizacji rdzenia!",
"sync_indicator": "Wyłącz wyskakujące okienko wskaźnika synchronizacji"
}, },
"appinfo": { "appinfo": {
"blockheight": "Wysokość bloku", "blockheight": "Wysokość bloku",

View File

@ -213,7 +213,8 @@
"arrr1": "Carteira ARRR não inicializada!", "arrr1": "Carteira ARRR não inicializada!",
"arrr2": "Por favor, vá para a aba carteira e inicialize sua carteira arrr primeiro.", "arrr2": "Por favor, vá para a aba carteira e inicialize sua carteira arrr primeiro.",
"arrr3": "Precisa de atualização principal!", "arrr3": "Precisa de atualização principal!",
"arrr4": "Para salvar a chave privada da sua carteira arrr você precisa primeiro de uma atualização principal!" "arrr4": "Para salvar a chave privada da sua carteira arrr você precisa primeiro de uma atualização principal!",
"sync_indicator": "Desativar pop-up do indicador de sincronização"
}, },
"appinfo": { "appinfo": {
"blockheight": "Altura do Bloco", "blockheight": "Altura do Bloco",

View File

@ -213,7 +213,8 @@
"arrr1": "Portoletul ARRR nu este inițializat !", "arrr1": "Portoletul ARRR nu este inițializat !",
"arrr2": "Vă rugăm să accesați fila Portofel și să inițializați mai întâi portofelul arrr.", "arrr2": "Vă rugăm să accesați fila Portofel și să inițializați mai întâi portofelul arrr.",
"arrr3": "Am nevoie de actualizare de bază !", "arrr3": "Am nevoie de actualizare de bază !",
"arrr4": "Pentru a salva cheia privată a portofelului dvs. arrr, aveți nevoie mai întâi de o actualizare de bază !" "arrr4": "Pentru a salva cheia privată a portofelului dvs. arrr, aveți nevoie mai întâi de o actualizare de bază !",
"sync_indicator": "Dezactivați fereastra pop-up indicator de sincronizare"
}, },
"appinfo": { "appinfo": {
"blockheight": "Dimensiunea blocului", "blockheight": "Dimensiunea blocului",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR novčanik nije inicijalizovan!", "arrr1": "ARRR novčanik nije inicijalizovan!",
"arrr2": "Molim vas idite na karticu Novčanik i prvo inicijalizujte svoj arrr novčanik.", "arrr2": "Molim vas idite na karticu Novčanik i prvo inicijalizujte svoj arrr novčanik.",
"arrr3": "Potrebno je ažuriranje jezgra!", "arrr3": "Potrebno je ažuriranje jezgra!",
"arrr4": "Da biste sačuvali privatni ključ vašeg arrr novčanika, prvo vam je potrebno ažuriranje jezgra!" "arrr4": "Da biste sačuvali privatni ključ vašeg arrr novčanika, prvo vam je potrebno ažuriranje jezgra!",
"sync_indicator": "Onemogući iskačući prozor indikatora sinhronizacije"
}, },
"appinfo": { "appinfo": {
"blockheight": "Visina Bloka", "blockheight": "Visina Bloka",

View File

@ -213,7 +213,8 @@
"arrr1": "Кошелек ARRR не инициализирован!", "arrr1": "Кошелек ARRR не инициализирован!",
"arrr2": "Пожалуйста, перейдите на вкладку кошелька и сначала инициализируйте свой кошелек arrr.", "arrr2": "Пожалуйста, перейдите на вкладку кошелька и сначала инициализируйте свой кошелек arrr.",
"arrr3": "Требуется обновление ядра!", "arrr3": "Требуется обновление ядра!",
"arrr4": "Чтобы сохранить закрытый ключ вашего кошелька arrr, вам сначала необходимо обновить ядро!" "arrr4": "Чтобы сохранить закрытый ключ вашего кошелька arrr, вам сначала необходимо обновить ядро!",
"sync_indicator": "Отключить всплывающее окно индикатора синхронизации"
}, },
"appinfo": { "appinfo": {
"blockheight": "Высота блока", "blockheight": "Высота блока",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR Wallet Not Initialized !", "arrr1": "ARRR Wallet Not Initialized !",
"arrr2": "Please go to wallet tab and initialize your arrr wallet first.", "arrr2": "Please go to wallet tab and initialize your arrr wallet first.",
"arrr3": "Need Core Update !", "arrr3": "Need Core Update !",
"arrr4": "To save the private key of your arrr wallet you need a core update first !" "arrr4": "To save the private key of your arrr wallet you need a core update first !",
"sync_indicator": "Disable sync indicator popup"
}, },
"appinfo": { "appinfo": {
"blockheight": "Block Height", "blockheight": "Block Height",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR 钱包未初始化!", "arrr1": "ARRR 钱包未初始化!",
"arrr2": "请先进入钱包选项卡并初始化您的arrr钱包。", "arrr2": "请先进入钱包选项卡并初始化您的arrr钱包。",
"arrr3": "需要核心更新!", "arrr3": "需要核心更新!",
"arrr4": "要保存你的 arr 钱包的私钥,你需要先进行核心更新!" "arrr4": "要保存你的 arr 钱包的私钥,你需要先进行核心更新!",
"sync_indicator": "禁用同步指示器弹出窗口"
}, },
"appinfo": { "appinfo": {
"blockheight": "区块高度", "blockheight": "区块高度",

View File

@ -213,7 +213,8 @@
"arrr1": "ARRR 錢包未初始化!", "arrr1": "ARRR 錢包未初始化!",
"arrr2": "請先進入錢包標籤並初始化您的arrr錢包。", "arrr2": "請先進入錢包標籤並初始化您的arrr錢包。",
"arrr3": "需要核心更新!", "arrr3": "需要核心更新!",
"arrr4": "要儲存你的 arr 錢包的私鑰,你需要先進行核心更新!" "arrr4": "要儲存你的 arr 錢包的私鑰,你需要先進行核心更新!",
"sync_indicator": "停用同步指示器彈出視窗"
}, },
"appinfo": { "appinfo": {
"blockheight": "區塊高度", "blockheight": "區塊高度",

View File

@ -35,7 +35,6 @@ import './search-modal.js'
import './user-info-view/user-info-view.js' import './user-info-view/user-info-view.js'
import '../functional-components/side-menu.js' import '../functional-components/side-menu.js'
import '../functional-components/side-menu-item.js' import '../functional-components/side-menu-item.js'
import './start-minting.js'
import './notification-view/notification-bell.js' import './notification-view/notification-bell.js'
import './notification-view/notification-bell-general.js' import './notification-view/notification-bell-general.js'
import './friends-view/friends-side-panel-parent.js' import './friends-view/friends-side-panel-parent.js'
@ -147,7 +146,8 @@ class AppView extends connect(store)(LitElement) {
lockSet: { type: String }, lockSet: { type: String },
myLockScreenPass: { type: String }, myLockScreenPass: { type: String },
myLockScreenSet: { type: String }, myLockScreenSet: { type: String },
helperMessage: { type: String } helperMessage: { type: String },
showSyncMessages: { type: Boolean }
} }
} }
@ -548,7 +548,6 @@ class AppView extends connect(store)(LitElement) {
getTourElements(){ getTourElements(){
let els = {} let els = {}
console.log('this.shadowRoot.querySelector("core-sync-status")', this.shadowRoot.querySelector("core-sync-status"))
const el1 = this.shadowRoot.querySelector("core-sync-status").shadowRoot.getElementById("core-sync-status-id") const el1 = this.shadowRoot.querySelector("core-sync-status").shadowRoot.getElementById("core-sync-status-id")
const el2 = this.shadowRoot.querySelector("show-plugin").shadowRoot.getElementById("showPluginId") const el2 = this.shadowRoot.querySelector("show-plugin").shadowRoot.getElementById("showPluginId")
const el3 = this.shadowRoot.querySelector("beginner-checklist").shadowRoot.getElementById("popover-notification") const el3 = this.shadowRoot.querySelector("beginner-checklist").shadowRoot.getElementById("popover-notification")
@ -625,7 +624,7 @@ class AppView extends connect(store)(LitElement) {
</app-header> </app-header>
<show-plugin></show-plugin> <show-plugin></show-plugin>
<tour-component .getElements=${this.getTourElements}></tour-component> <tour-component .getElements=${this.getTourElements}></tour-component>
<sync-indicator ></sync-indicator> ${!this.showSyncMessages ? html`<sync-indicator></sync-indicator>` : html``}
</app-header-layout> </app-header-layout>
</app-drawer-layout> </app-drawer-layout>
<user-info-view></user-info-view> <user-info-view></user-info-view>
@ -698,6 +697,8 @@ class AppView extends connect(store)(LitElement) {
this.helperMessage = this.renderHelperPass() this.helperMessage = this.renderHelperPass()
this.showSyncMessages = store.getState().app.showSyncIndicator
this.salt = '' this.salt = ''
this.salt = Base58.encode(store.getState().app.wallet._addresses[0].keyPair.privateKey) this.salt = Base58.encode(store.getState().app.wallet._addresses[0].keyPair.privateKey)
@ -2117,10 +2118,6 @@ class AppView extends connect(store)(LitElement) {
${this.renderNodeManagement()} ${this.renderNodeManagement()}
</side-menu-item> </side-menu-item>
<div>
<start-minting></start-minting>
</div>
` `
} }
} }
@ -2806,6 +2803,7 @@ class AppView extends connect(store)(LitElement) {
this.config = state.config this.config = state.config
this.urls = state.app.registeredUrls this.urls = state.app.registeredUrls
this.addressInfo = state.app.accountInfo.addressInfo this.addressInfo = state.app.accountInfo.addressInfo
this.showSyncMessages = state.app.showSyncIndicator
if (sideurl === "minting") { if (sideurl === "minting") {
this.shadowRoot.getElementById('qminter').setAttribute('selected', 'selected') this.shadowRoot.getElementById('qminter').setAttribute('selected', 'selected')

View File

@ -1,9 +1,10 @@
import { LitElement, html, css } from 'lit'; import { LitElement, html, css } from 'lit'
import { store } from '../../store'; import { store } from '../../store'
import { connect } from 'pwa-helpers'; import { connect } from 'pwa-helpers'
import '@material/mwc-icon'; import { translate } from '../../../translate'
import { translate } from '../../../translate'; import { parentEpml } from '../show-plugin'
import { parentEpml } from '../show-plugin';
import '@material/mwc-icon'
class SyncIndicator extends connect(store)(LitElement) { class SyncIndicator extends connect(store)(LitElement) {
static get properties() { static get properties() {
@ -11,20 +12,20 @@ class SyncIndicator extends connect(store)(LitElement) {
isBehind: { type: Boolean }, isBehind: { type: Boolean },
blocksBehind: { type: Number }, blocksBehind: { type: Number },
isSynchronizing: { type: Boolean }, isSynchronizing: { type: Boolean },
hasCoreRunning: { type: Boolean }, hasCoreRunning: { type: Boolean }
}; }
} }
constructor() { constructor() {
super(); super()
this.isBehind = null; this.isBehind = null
this.blocksBehind = 0; this.blocksBehind = 0
this.nodeUrl = this.getNodeUrl(); this.nodeUrl = this.getNodeUrl()
this.myNode = this.getMyNode(); this.myNode = this.getMyNode()
this.interval = null; this.interval = null
this.hasCoreRunning = true; this.hasCoreRunning = true
this.seenWelcomeSync = false; this.seenWelcomeSync = false
this.numberOfTries = 0; this.numberOfTries = 0
this.hasOpened = false this.hasOpened = false
} }
@ -34,13 +35,15 @@ class SyncIndicator extends connect(store)(LitElement) {
--mdc-theme-text-primary-on-background: var(--black); --mdc-theme-text-primary-on-background: var(--black);
box-sizing: border-box; box-sizing: border-box;
} }
:host { :host {
box-sizing: border-box; box-sizing: border-box;
position: fixed; position: fixed;
bottom: 25px; bottom: 50px;
right: 25px; right: 25px;
z-index: 50000; z-index: 50000;
} }
.parent { .parent {
width: 360px; width: 360px;
padding: 10px; padding: 10px;
@ -52,11 +55,13 @@ class SyncIndicator extends connect(store)(LitElement) {
user-select: none; user-select: none;
background: var(--white); background: var(--white);
} }
.row { .row {
display: flex; display: flex;
gap: 10px; gap: 10px;
width: 100%; width: 100%;
} }
.column { .column {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -78,34 +83,36 @@ class SyncIndicator extends connect(store)(LitElement) {
cursor: pointer; cursor: pointer;
background-color: #03a8f475; background-color: #03a8f475;
} }
`; `
} }
async firstUpdated() { async firstUpdated() {
this.address = store.getState().app.selectedAddress.address this.address = store.getState().app.selectedAddress.address
const seenWelcomeSync = JSON.parse( const seenWelcomeSync = JSON.parse(
localStorage.getItem(`welcome-sync-${this.address}`) || 'false' localStorage.getItem(`welcome-sync-${this.address}`) || 'false'
); )
this.seenWelcomeSync = seenWelcomeSync;
this.seenWelcomeSync = seenWelcomeSync
} }
getNodeUrl() { getNodeUrl() {
const myNode = const myNode =
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[ window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
window.parent.reduxStore.getState().app.nodeConfig.node window.parent.reduxStore.getState().app.nodeConfig.node
]; ]
const nodeUrl = const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
myNode.protocol + '://' + myNode.domain + ':' + myNode.port; return nodeUrl
return nodeUrl;
} }
getMyNode() { getMyNode() {
const myNode = const myNode =
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[ window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
window.parent.reduxStore.getState().app.nodeConfig.node window.parent.reduxStore.getState().app.nodeConfig.node
]; ]
return myNode; return myNode
} }
async getDaySummary() { async getDaySummary() {
@ -113,25 +120,25 @@ class SyncIndicator extends connect(store)(LitElement) {
this.fetchingSummary = true this.fetchingSummary = true
const endpointLastBlock = `${this.nodeUrl}/blocks/last`; const endpointLastBlock = `${this.nodeUrl}/blocks/last`
const resLastBlock = await fetch(endpointLastBlock); const resLastBlock = await fetch(endpointLastBlock)
const dataLastBlock = await resLastBlock.json(); const dataLastBlock = await resLastBlock.json()
const timestampNow = Date.now(); const timestampNow = Date.now()
const currentBlockTimestamp = dataLastBlock.timestamp; const currentBlockTimestamp = dataLastBlock.timestamp
if (currentBlockTimestamp < timestampNow) { if (currentBlockTimestamp < timestampNow) {
const diff = timestampNow - currentBlockTimestamp; const diff = timestampNow - currentBlockTimestamp
const inSeconds = diff / 1000; // millisecs to secs const inSeconds = diff / 1000 // millisecs to secs
const inBlocks = inSeconds / 70; const inBlocks = inSeconds / 70
this.blocksBehind = parseInt(inBlocks); this.blocksBehind = parseInt(inBlocks)
if (inBlocks >= 100) { if (inBlocks >= 100) {
this.isBehind = true; this.isBehind = true
} else { } else {
this.isBehind = false; this.isBehind = false
this.blocksBehind = 0; this.blocksBehind = 0
} }
} else { } else {
this.blocksBehind = 0; this.blocksBehind = 0
this.isBehind = false; this.isBehind = false
} }
} catch (error) {} finally { } catch (error) {} finally {
this.fetchingSummary = false this.fetchingSummary = false
@ -144,11 +151,11 @@ class SyncIndicator extends connect(store)(LitElement) {
this.interval = setInterval(() => { this.interval = setInterval(() => {
if(this.fetchingSummary) return if(this.fetchingSummary) return
if (this.isBehind === false) { if (this.isBehind === false) {
this.isBehind = null; this.isBehind = null
clearInterval(this.interval); clearInterval(this.interval)
} }
this.getDaySummary(); this.getDaySummary()
}, 20000); }, 20000)
} catch (error) {} } catch (error) {}
} }
@ -161,30 +168,30 @@ class SyncIndicator extends connect(store)(LitElement) {
bubbles: true, bubbles: true,
composed: true, composed: true,
}) })
); )
} }
if ( if (
state.app.nodeStatus && state.app.nodeStatus &&
Object.keys(state.app.nodeStatus).length === 0 Object.keys(state.app.nodeStatus).length === 0
) { ) {
if (this.numberOfTries > 5) { if (this.numberOfTries > 5) {
this.hasCoreRunning = false; this.hasCoreRunning = false
} else { } else {
this.numberOfTries = this.numberOfTries + 1; this.numberOfTries = this.numberOfTries + 1
} }
} else if(state.app.nodeStatus && state.app.nodeStatus.syncPercent === 100 && state.app.nodeStatus.syncPercent !== this.syncPercentage){ } else if(state.app.nodeStatus && state.app.nodeStatus.syncPercent === 100 && state.app.nodeStatus.syncPercent !== this.syncPercentage){
this.syncPercentage = state.app.nodeStatus.syncPercent; this.syncPercentage = state.app.nodeStatus.syncPercent
this.isSynchronizing = false; this.isSynchronizing = false
} else if ( } else if (
state.app.nodeStatus state.app.nodeStatus
) { ) {
this.hasCoreRunning = true this.hasCoreRunning = true
this.numberOfTries = 0 this.numberOfTries = 0
this.syncPercentage = state.app.nodeStatus.syncPercent; this.syncPercentage = state.app.nodeStatus.syncPercent
if (state.app.nodeStatus.syncPercent !== 100) { if (state.app.nodeStatus.syncPercent !== 100) {
this.isSynchronizing = true; this.isSynchronizing = true
} }
if ( if (
@ -193,20 +200,20 @@ class SyncIndicator extends connect(store)(LitElement) {
state.app.nodeStatus.isSynchronizing && state.app.nodeStatus.isSynchronizing &&
state.app.nodeStatus.syncPercent !== 100 state.app.nodeStatus.syncPercent !== 100
) { ) {
this.checkHowManyBlocksBehind(); this.checkHowManyBlocksBehind()
} }
} else { } else {
this.hasCoreRunning = true; this.hasCoreRunning = true
} }
} }
async bootstrap(){ async bootstrap(){
try { try {
const endpoint = `${this.nodeUrl}/admin/bootstrap/?apiKey=${this.myNode.apiKey}`; const endpoint = `${this.nodeUrl}/admin/bootstrap/?apiKey=${this.myNode.apiKey}`
const res = await fetch(endpoint); const res = await fetch(endpoint)
const data = await res.json(); const data = await res.json()
if(data === true){ if (data === true) {
parentEpml.request('showSnackBar', get('tour.tour22')); parentEpml.request('showSnackBar', get('tour.tour22'))
} }
} catch (error) { } catch (error) {
@ -274,7 +281,8 @@ class SyncIndicator extends connect(store)(LitElement) {
</div> </div>
` `
: "" } : "" }
`; `
} }
} }
customElements.define('sync-indicator', SyncIndicator);
customElements.define('sync-indicator', SyncIndicator)

View File

@ -22,10 +22,12 @@ import {
allowQAPPAutoAuth, allowQAPPAutoAuth,
allowQAPPAutoFriendsList, allowQAPPAutoFriendsList,
allowQAPPAutoLists, allowQAPPAutoLists,
allowShowSyncIndicator,
removeAutoLoadImageChat, removeAutoLoadImageChat,
removeQAPPAutoAuth, removeQAPPAutoAuth,
removeQAPPAutoFriendsList, removeQAPPAutoFriendsList,
removeQAPPAutoLists, removeQAPPAutoLists,
removeShowSyncIndicator,
setNewNotification, setNewNotification,
setNewTab, setNewTab,
setSideEffectAction, setSideEffectAction,
@ -47,7 +49,9 @@ window.reduxAction = {
setNewNotification: setNewNotification, setNewNotification: setNewNotification,
setSideEffectAction: setSideEffectAction, setSideEffectAction: setSideEffectAction,
allowQAPPAutoFriendsList: allowQAPPAutoFriendsList, allowQAPPAutoFriendsList: allowQAPPAutoFriendsList,
removeQAPPAutoFriendsList: removeQAPPAutoFriendsList removeQAPPAutoFriendsList: removeQAPPAutoFriendsList,
allowShowSyncIndicator: allowShowSyncIndicator,
removeShowSyncIndicator: removeShowSyncIndicator
} }
const animationDuration = 0.7 // Seconds const animationDuration = 0.7 // Seconds

View File

@ -13,68 +13,56 @@ class WelcomePage extends LitElement {
backDisabled: { type: Boolean, notify: true }, backDisabled: { type: Boolean, notify: true },
backText: { type: String, notify: true }, backText: { type: String, notify: true },
hideNav: { type: Boolean, notify: true }, hideNav: { type: Boolean, notify: true },
welcomeMessage: { type: String },
theme: { type: String, reflect: true } theme: { type: String, reflect: true }
} }
} }
static get styles() { static get styles() {
return [ return css`
css` * {
* { --mdc-theme-primary: var(--login-button);
--mdc-theme-primary: var(--login-button); --mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-secondary: var(--mdc-theme-primary); --mdc-button-outline-color: var(--general-color-blue);
--mdc-button-outline-color: var(--accent-color); }
}
mwc-button { .button-outline {
margin: 6px; margin: 6px;
width: 90%; width: 90%;
max-width:90vw; max-width:90vw;
margin: 4px; border-top: 0;
} border-bottom: 0;
}
.welcome-page { .welcome-page {
padding: 12px 0; padding: 12px 0;
} overflow: hidden;
` }
] `
} }
constructor() { constructor() {
super() super()
this.hideNav = true this.hideNav = true
this.nextText = '' this.nextText = ''
const welcomeMessage = 'Welcome to Qortal'; this.welcomeMessage = 'Welcome to Qortal'
this.welcomeMessage = welcomeMessage
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
} }
firstUpdated() { firstUpdated() {}
// ...
}
render() { render() {
return html` return html`
<style> <div class="welcome-page">
#mobile-logo {} <mwc-button class="button-outline" @click=${() => this.navigate('login')} outlined>${translate("login.login")}</mwc-button>
@media only screen and (min-width: ${getComputedStyle(document.body).getPropertyValue('--layout-breakpoint-tablet')}) { <mwc-button class="button-outline" @click=${() => this.navigate('create-account')} outlined>${translate("login.createaccount")}</mwc-button>
#mobile-logo {
display:hidden;
visibility:none;
}
}
</style>
<div class='welcome-page' style="overflow:hidden;">
<div id="mobile-logo"></div>
<mwc-button @click=${() => this.navigate('login')} outlined style="border-top:0; border-bottom:0;">${translate("login.login")}</mwc-button>
<mwc-button @click=${() => this.navigate('create-account')} outlined style="border-top:0; border-bottom:0;">${translate("login.createaccount")}</mwc-button>
</div> </div>
` `
} }
back() { } back() {}
next() { } next() {}
navigate(page) { navigate(page) {
this.dispatchEvent(new CustomEvent('navigate', { this.dispatchEvent(new CustomEvent('navigate', {

View File

@ -1,20 +1,20 @@
import {css, html, LitElement} from 'lit' import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers' import {connect} from 'pwa-helpers'
import {store} from '../../store.js' import {store} from '../../store.js'
import {allowShowSyncIndicator, removeShowSyncIndicator} from '../../redux/app/app-actions.js'
import {doSetQChatNotificationConfig} from '../../redux/user/user-actions.js' import {doSetQChatNotificationConfig} from '../../redux/user/user-actions.js'
import {translate} from '../../../translate/index.js' import {translate} from '../../../translate/index.js'
import isElectron from 'is-electron' import isElectron from 'is-electron'
import '@material/mwc-checkbox' import '@material/mwc-checkbox'
class NotificationsView extends connect(store)(LitElement) { class NotificationsView extends connect(store)(LitElement) {
static get properties() { static get properties() {
return { return {
notificationConfig: { type: Object }, notificationConfig: { type: Object },
q_chatConfig: { type: Object }, q_chatConfig: { type: Object },
theme: { type: String, reflect: true }, theme: { type: String, reflect: true },
appNotificationList: {type: Array} appNotificationList: { type: Array }
} }
} }
@ -26,8 +26,8 @@ class NotificationsView extends connect(store)(LitElement) {
this.appNotificationList = [] // Fetch the list of apps from local storage this.appNotificationList = [] // Fetch the list of apps from local storage
} }
firstUpdated(){ firstUpdated() {
this.appNotificationList = this.getAppsFromStorage(); this.appNotificationList = this.getAppsFromStorage()
} }
static get styles() { static get styles() {
@ -54,6 +54,16 @@ class NotificationsView extends connect(store)(LitElement) {
} }
} }
.checkbox-row {
position: relative;
display: flex;
align-items: center;
align-content: center;
font-family: Montserrat, sans-serif;
font-weight: 600;
color: var(--black);
}
.content-box { .content-box {
border: 1px solid #a1a1a1; border: 1px solid #a1a1a1;
padding: 10px 25px; padding: 10px 25px;
@ -112,82 +122,91 @@ class NotificationsView extends connect(store)(LitElement) {
} }
.remove-button { .remove-button {
font-family: Roboto, sans-serif; font-family: Roboto, sans-serif;
font-size: 16px; font-size: 16px;
color: var(--mdc-theme-primary); color: var(--mdc-theme-primary);
background-color: transparent; background-color: transparent;
padding: 8px 10px; padding: 8px 10px;
border-radius: 5px; border-radius: 5px;
border: none; border: none;
transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out;
cursor: pointer; cursor: pointer;
} }
` `
} }
render() { render() {
return html` return html`
<div class="sub-main"> <div class="sub-main">
<div class="notification-box"> <div class="notification-box">
<div class="content-box"> <div class="content-box">
<h4> Q-Chat ${translate("settings.notifications")} </h4> <h4> Q-Chat ${translate("settings.notifications")} </h4>
<div style="line-height: 3rem;"> <div style="line-height: 3rem;">
<mwc-checkbox id="qChatPlaySound" @click=${e => this.setQChatNotificationConfig({ type: 'PLAY_SOUND', value: e.target.checked })} ?checked=${this.q_chatConfig.playSound}></mwc-checkbox> <mwc-checkbox id="qChatPlaySound" @click=${e => this.setQChatNotificationConfig({ type: 'PLAY_SOUND', value: e.target.checked })} ?checked=${this.q_chatConfig.playSound}></mwc-checkbox>
<label <label
for="qChatPlaySound" for="qChatPlaySound"
@click=${() => this.shadowRoot.getElementById('qChatPlaySound').click()} @click=${() => this.shadowRoot.getElementById('qChatPlaySound').click()}
>${translate("settings.playsound")}</label> >
</div> ${translate("settings.playsound")}
</label>
</div>
<div style="line-height: 3rem;"> <div style="line-height: 3rem;">
<mwc-checkbox id="qChatShowNotification" @click=${e => this.setQChatNotificationConfig({ type: 'SHOW_NOTIFICATION', value: e.target.checked })} ?checked=${this.q_chatConfig.showNotification}></mwc-checkbox> <mwc-checkbox id="qChatShowNotification" @click=${e => this.setQChatNotificationConfig({ type: 'SHOW_NOTIFICATION', value: e.target.checked })} ?checked=${this.q_chatConfig.showNotification}></mwc-checkbox>
<label <label
for="qChatShowNotification" for="qChatShowNotification"
@click=${() => this.shadowRoot.getElementById('qChatShowNotification').click()} @click=${() => this.shadowRoot.getElementById('qChatShowNotification').click()}
>${translate("settings.shownotifications")}</label> >
</div> ${translate("settings.shownotifications")}
</label>
</div> </div>
<div class="content-box">
<h4>${translate("settings.qappNotification1")}</h4>
${this.appNotificationList.map((app)=> html`
<div style="display: flex; justify-content: space-between; margin-top: 10px;">
${app}
<button class="remove-button" @click=${() => this.removeApp(app)}>Remove</button>
</div>
`)}
</div>
</div> </div>
${this.renderSetCoreButton()} <div class="content-box">
<h4>${translate("settings.qappNotification1")}</h4>
${this.appNotificationList.map((app) => html`
<div style="display: flex; justify-content: space-between; margin-top: 10px;">
${app}
<button class="remove-button" @click=${() => this.removeApp(app)}>Remove</button>
</div>
`)}
</div>
</div> </div>
<div class="checkbox-row">
<label for="syncIndicator" id="syncIndicatorLabel" style="color: var(--black);">
${translate("settings.sync_indicator")}
</label>
<mwc-checkbox style="margin-right: -15px;" id="syncIndicator" @click=${(e) => this.checkForSyncMessages(e)} ?checked=${store.getState().app.showSyncIndicator}></mwc-checkbox>
</div>
${this.renderSetCoreButton()}
</div>
` `
} }
getAppsFromStorage() { getAppsFromStorage() {
// Your method to fetch the list of apps from local storage // Your method to fetch the list of apps from local storage
// Example: // Example:
const address= store.getState().app.selectedAddress.address const address = store.getState().app.selectedAddress.address
const id = `appNotificationList-${address}`; const id = `appNotificationList-${address}`
const data = localStorage.getItem(id); const data = localStorage.getItem(id)
return data ? Object.keys(JSON.parse(data)) : []; return data ? Object.keys(JSON.parse(data)) : []
} }
removeApp(appName) { removeApp(appName) {
// Remove the app from local storage // Remove the app from local storage
this.removeAppFromStorage(appName); this.removeAppFromStorage(appName);
// Update the apps list in the component // Update the apps list in the component
this.appNotificationList = this.appNotificationList.filter(app => app !== appName); this.appNotificationList = this.appNotificationList.filter(app => app !== appName);
} }
removeAppFromStorage(appName) { removeAppFromStorage(appName) {
// Your method to remove the app from local storage // Your method to remove the app from local storage
const address= store.getState().app.selectedAddress.address const address= store.getState().app.selectedAddress.address
const id = `appNotificationList-${address}`; const id = `appNotificationList-${address}`;
const data = JSON.parse(localStorage.getItem(id) || '{}'); const data = JSON.parse(localStorage.getItem(id) || '{}');
delete data[appName]; delete data[appName];
localStorage.setItem(id, JSON.stringify(data)); localStorage.setItem(id, JSON.stringify(data));
} }
renderSetCoreButton() { renderSetCoreButton() {
if (!isElectron()) { if (!isElectron()) {
@ -205,6 +224,14 @@ class NotificationsView extends connect(store)(LitElement) {
window.electronAPI.setStartCore() window.electronAPI.setStartCore()
} }
checkForSyncMessages(e) {
if (e.target.checked) {
store.dispatch(removeShowSyncIndicator(false))
} else {
store.dispatch(allowShowSyncIndicator(true))
}
}
stateChanged(state) { stateChanged(state) {
this.notificationConfig = state.user.notifications this.notificationConfig = state.user.notifications
this.q_chatConfig = this.notificationConfig.q_chat this.q_chatConfig = this.notificationConfig.q_chat
@ -226,8 +253,6 @@ class NotificationsView extends connect(store)(LitElement) {
store.dispatch(doSetQChatNotificationConfig(data)) store.dispatch(doSetQChatNotificationConfig(data))
} }
} }
} }
window.customElements.define('notifications-view', NotificationsView) window.customElements.define('notifications-view', NotificationsView)

View File

@ -145,11 +145,11 @@ class SecurityView extends connect(store)(LitElement) {
</div> </div>
</div> </div>
<hr style="margin-top: 20px;"> <hr style="margin-top: 20px;">
<div class="checkbox-row"> <div class="checkbox-row">
<label for="authButton" id="authButtonLabel" style="color: var(--black);"> <label for="authButton" id="authButtonLabel" style="color: var(--black);">
${get('browserpage.bchange26')} ${get('browserpage.bchange26')}
</label> </label>
<mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForAuth(e)} ?checked=${store.getState().app.qAPPAutoAuth}></mwc-checkbox> <mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForAuth(e)} ?checked=${store.getState().app.qAPPAutoAuth}></mwc-checkbox>
</div> </div>
<div class="checkbox-row"> <div class="checkbox-row">
<label for="authButton" id="authButtonLabel" style="color: var(--black);"> <label for="authButton" id="authButtonLabel" style="color: var(--black);">
@ -158,19 +158,20 @@ class SecurityView extends connect(store)(LitElement) {
<mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForLists(e)} ?checked=${store.getState().app.qAPPAutoLists}></mwc-checkbox> <mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForLists(e)} ?checked=${store.getState().app.qAPPAutoLists}></mwc-checkbox>
</div> </div>
<div class="checkbox-row"> <div class="checkbox-row">
<label for="authButton" id="authButtonLabel" style="color: var(--black);"> <label for="authButton" id="authButtonLabel" style="color: var(--black);">
${get('browserpage.bchange53')} ${get('browserpage.bchange53')}
</label> </label>
<mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForFriends(e)} ?checked=${store.getState().app.qAPPFriendsList}></mwc-checkbox> <mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForFriends(e)} ?checked=${store.getState().app.qAPPFriendsList}></mwc-checkbox>
</div> </div>
<div class="checkbox-row"> <div class="checkbox-row">
<button <button
class="add-dev-button" class="add-dev-button"
title="${translate('tabmenu.tm18')}" title="${translate('tabmenu.tm18')}"
@click=${this.openDevDialog} @click=${this.openDevDialog}
>${translate('tabmenu.tm38')}</button> >
${translate('tabmenu.tm38')}
</button>
</div> </div>
</div> </div>
` `
} }

View File

@ -25,7 +25,6 @@ registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json()) loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
}) })
export const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) export const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
class ShowPlugin extends connect(store)(LitElement) { class ShowPlugin extends connect(store)(LitElement) {
@ -43,7 +42,7 @@ class ShowPlugin extends connect(store)(LitElement) {
chatLastSeen: { type: Array }, chatLastSeen: { type: Array },
chatHeads: { type: Array }, chatHeads: { type: Array },
proxyPort: { type: Number }, proxyPort: { type: Number },
isOpenDevDialog: {type: Boolean} isOpenDevDialog: { type: Boolean }
} }
} }
@ -211,7 +210,7 @@ class ShowPlugin extends connect(store)(LitElement) {
font-weight: bold; font-weight: bold;
background: none; background: none;
border: none; border: none;
color: var(--accent-color); color: var(--general-color-blue);
font-size: 2em; font-size: 2em;
cursor: pointer; cursor: pointer;
transition: color 0.3s; transition: color 0.3s;
@ -229,7 +228,7 @@ class ShowPlugin extends connect(store)(LitElement) {
max-height: 28px; max-height: 28px;
padding: 5px 5px; padding: 5px 5px;
font-size: 14px; font-size: 14px;
background-color: var(--accent-color); background-color: var(--general-color-blue);
color: white; color: white;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 3px; border-radius: 3px;
@ -248,7 +247,7 @@ class ShowPlugin extends connect(store)(LitElement) {
.iconActive { .iconActive {
position: absolute; position: absolute;
top: 5px; top: 5px;
color: var(--accent-color); color: var(--general-color-blue);
--mdc-icon-size: 24px; --mdc-icon-size: 24px;
} }
@ -260,7 +259,7 @@ class ShowPlugin extends connect(store)(LitElement) {
} }
.tab:hover .iconInactive { .tab:hover .iconInactive {
color: var(--accent-color); color: var(--general-color-blue);
} }
.count { .count {
@ -1078,7 +1077,7 @@ class NavBar extends connect(store)(LitElement) {
} }
.resetIcon:hover { .resetIcon:hover {
color: var(--accent-color); color: var(--general-color-blue);
font-weight: bold; font-weight: bold;
} }
@ -1092,7 +1091,7 @@ class NavBar extends connect(store)(LitElement) {
} }
.searchIcon:hover { .searchIcon:hover {
color: var(--accent-color); color: var(--general-color-blue);
font-weight: bold; font-weight: bold;
} }
@ -1106,7 +1105,7 @@ class NavBar extends connect(store)(LitElement) {
} }
.importIcon:hover { .importIcon:hover {
color: var(--accent-color); color: var(--general-color-blue);
font-weight: bold; font-weight: bold;
} }
@ -1120,7 +1119,7 @@ class NavBar extends connect(store)(LitElement) {
} }
.exportIcon:hover { .exportIcon:hover {
color: var(--accent-color); color: var(--general-color-blue);
font-weight: bold; font-weight: bold;
} }
@ -1141,7 +1140,7 @@ class NavBar extends connect(store)(LitElement) {
paper-dialog button { paper-dialog button {
padding: 5px 10px; padding: 5px 10px;
font-size: 18px; font-size: 18px;
background-color: var(--accent-color); background-color: var(--general-color-blue);
color: white; color: white;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 5px; border-radius: 5px;
@ -1175,7 +1174,7 @@ class NavBar extends connect(store)(LitElement) {
} }
vaadin-text-field[focused]::part(input-field) { vaadin-text-field[focused]::part(input-field) {
border-color: var(--accent-color); border-color: var(--general-color-blue);
} }
` `

View File

@ -70,7 +70,7 @@ class SettingsPage extends connect(store)(LitElement) {
display: inline-block; display: inline-block;
width: 150px; width: 150px;
font-weight: 600; font-weight: 600;
color: var(--accent-color); color: var(--general-color-blue);
border: 1px solid transparent; border: 1px solid transparent;
} }
@ -87,7 +87,7 @@ class SettingsPage extends connect(store)(LitElement) {
} }
.buttonBlue { .buttonBlue {
color: var(--accent-color); color: var(--general-color-blue);
} }
.floatleft { .floatleft {

View File

@ -20,9 +20,11 @@ import {
UPDATE_BLOCK_INFO, UPDATE_BLOCK_INFO,
UPDATE_NODE_INFO, UPDATE_NODE_INFO,
UPDATE_NODE_STATUS, UPDATE_NODE_STATUS,
SET_PROFILE_DATA, SET_PROFILE_DATA,
ALLOW_QAPP_FRIENDS_LIST, ALLOW_QAPP_FRIENDS_LIST,
REMOVE_QAPP_FRIENDS_LIST REMOVE_QAPP_FRIENDS_LIST,
ALLOW_SHOW_SYNC_INDICATOR,
REMOVE_SHOW_SYNC_INDICATOR
} from '../app-action-types.js' } from '../app-action-types.js'
export const doUpdateBlockInfo = (blockObj) => { export const doUpdateBlockInfo = (blockObj) => {
@ -164,18 +166,21 @@ export const setNewTab = (payload) => {
payload payload
} }
} }
export const setNewNotification = (payload) => { export const setNewNotification = (payload) => {
return { return {
type: SET_NEW_NOTIFICATION, type: SET_NEW_NOTIFICATION,
payload payload
} }
} }
export const setIsOpenDevDialog = (payload)=> {
export const setIsOpenDevDialog = (payload) => {
return { return {
type: IS_OPEN_DEV_DIALOG, type: IS_OPEN_DEV_DIALOG,
payload payload
} }
} }
export const addTabInfo = (payload) => { export const addTabInfo = (payload) => {
return { return {
type: ADD_TAB_INFO, type: ADD_TAB_INFO,
@ -196,16 +201,31 @@ export const setSideEffectAction = (payload)=> {
payload payload
} }
} }
export const setProfileData = (payload)=> {
export const setProfileData = (payload) => {
return { return {
type: SET_PROFILE_DATA, type: SET_PROFILE_DATA,
payload payload
} }
} }
export const setCoinBalances = (payload)=> { export const setCoinBalances = (payload) => {
return { return {
type: SET_COIN_BALANCES, type: SET_COIN_BALANCES,
payload payload
} }
} }
export const allowShowSyncIndicator = (payload) => {
return {
type: ALLOW_SHOW_SYNC_INDICATOR,
payload
}
}
export const removeShowSyncIndicator = (payload) => {
return {
type: REMOVE_SHOW_SYNC_INDICATOR,
payload
}
}

View File

@ -34,6 +34,8 @@ export const IS_OPEN_DEV_DIALOG = 'IS_OPEN_DEV_DIALOG'
export const SET_NEW_NOTIFICATION = 'SET_NEW_NOTIFICATION' export const SET_NEW_NOTIFICATION = 'SET_NEW_NOTIFICATION'
export const SET_SIDE_EFFECT= 'SET_SIDE_EFFECT' export const SET_SIDE_EFFECT= 'SET_SIDE_EFFECT'
export const SET_PROFILE_DATA = 'SET_PROFILE_DATA' export const SET_PROFILE_DATA = 'SET_PROFILE_DATA'
export const SET_COIN_BALANCES= 'SET_COIN_BALANCES' export const SET_COIN_BALANCES = 'SET_COIN_BALANCES'
export const ALLOW_QAPP_FRIENDS_LIST= 'ALLOW_QAPP_FRIENDS_LIST' export const ALLOW_QAPP_FRIENDS_LIST = 'ALLOW_QAPP_FRIENDS_LIST'
export const REMOVE_QAPP_FRIENDS_LIST= 'REMOVE_QAPP_FRIENDS_LIST' export const REMOVE_QAPP_FRIENDS_LIST = 'REMOVE_QAPP_FRIENDS_LIST'
export const ALLOW_SHOW_SYNC_INDICATOR = 'ALLOW_SHOW_SYNC_INDICATOR'
export const REMOVE_SHOW_SYNC_INDICATOR = 'REMOVE_SHOW_SYNC_INDICATOR'

View File

@ -36,9 +36,11 @@ import {
UPDATE_BLOCK_INFO, UPDATE_BLOCK_INFO,
UPDATE_NODE_INFO, UPDATE_NODE_INFO,
UPDATE_NODE_STATUS, UPDATE_NODE_STATUS,
SET_PROFILE_DATA, SET_PROFILE_DATA,
ALLOW_QAPP_FRIENDS_LIST, ALLOW_QAPP_FRIENDS_LIST,
REMOVE_QAPP_FRIENDS_LIST REMOVE_QAPP_FRIENDS_LIST,
ALLOW_SHOW_SYNC_INDICATOR,
REMOVE_SHOW_SYNC_INDICATOR
} from './app-action-types.js' } from './app-action-types.js'
import {initWorkersReducer} from './reducers/init-workers.js' import {initWorkersReducer} from './reducers/init-workers.js'
import {loginReducer} from './reducers/login-reducer.js' import {loginReducer} from './reducers/login-reducer.js'
@ -49,8 +51,6 @@ const chatLastSeen = localForage.createInstance({
name: "chat-last-seen", name: "chat-last-seen",
}); });
const INITIAL_STATE = { const INITIAL_STATE = {
loggedIn: false, loggedIn: false,
drawerOpen: false, drawerOpen: false,
@ -88,6 +88,7 @@ const INITIAL_STATE = {
qAPPAutoAuth: loadStateFromLocalStorage('qAPPAutoAuth') || false, qAPPAutoAuth: loadStateFromLocalStorage('qAPPAutoAuth') || false,
qAPPAutoLists: loadStateFromLocalStorage('qAPPAutoLists') || false, qAPPAutoLists: loadStateFromLocalStorage('qAPPAutoLists') || false,
qAPPFriendsList: loadStateFromLocalStorage('qAPPFriendsList') || false, qAPPFriendsList: loadStateFromLocalStorage('qAPPFriendsList') || false,
showSyncIndicator: loadStateFromLocalStorage('showSyncIndicator') || false,
chatLastSeen: [], chatLastSeen: [],
newTab: null, newTab: null,
tabInfo: {}, tabInfo: {},
@ -228,6 +229,7 @@ export default (state = INITIAL_STATE, action) => {
qAPPAutoAuth: action.payload qAPPAutoAuth: action.payload
} }
} }
case ALLOW_QAPP_AUTO_LISTS: { case ALLOW_QAPP_AUTO_LISTS: {
saveStateToLocalStorage("qAPPAutoLists", true) saveStateToLocalStorage("qAPPAutoLists", true)
return { return {
@ -266,6 +268,7 @@ export default (state = INITIAL_STATE, action) => {
chatLastSeen: action.payload chatLastSeen: action.payload
} }
} }
case ADD_CHAT_LAST_SEEN: { case ADD_CHAT_LAST_SEEN: {
const chatId = action.payload.key const chatId = action.payload.key
const timestamp = action.payload.timestamp const timestamp = action.payload.timestamp
@ -299,12 +302,14 @@ export default (state = INITIAL_STATE, action) => {
newTab: action.payload newTab: action.payload
} }
} }
case IS_OPEN_DEV_DIALOG: { case IS_OPEN_DEV_DIALOG: {
return { return {
...state, ...state,
isOpenDevDialog: action.payload isOpenDevDialog: action.payload
} }
} }
case ADD_TAB_INFO: { case ADD_TAB_INFO: {
const newTabInfo = action.payload const newTabInfo = action.payload
if (state.tabInfo[newTabInfo.id] && state.tabInfo[newTabInfo.id].name && newTabInfo.name === state.tabInfo[newTabInfo.id].name) break if (state.tabInfo[newTabInfo.id] && state.tabInfo[newTabInfo.id].name && newTabInfo.name === state.tabInfo[newTabInfo.id].name) break
@ -319,6 +324,7 @@ export default (state = INITIAL_STATE, action) => {
} }
} }
} }
case SET_TAB_NOTIFICATIONS: { case SET_TAB_NOTIFICATIONS: {
const count = action.payload.count const count = action.payload.count
const name = action.payload.name const name = action.payload.name
@ -346,18 +352,21 @@ export default (state = INITIAL_STATE, action) => {
newNotification: action.payload newNotification: action.payload
} }
} }
case SET_SIDE_EFFECT: { case SET_SIDE_EFFECT: {
return { return {
...state, ...state,
sideEffectAction: action.payload sideEffectAction: action.payload
} }
} }
case SET_PROFILE_DATA: { case SET_PROFILE_DATA: {
return { return {
...state, ...state,
profileData: action.payload profileData: action.payload
} }
} }
case SET_COIN_BALANCES: { case SET_COIN_BALANCES: {
const copyBalances = {...state.coinBalances} const copyBalances = {...state.coinBalances}
copyBalances[action.payload.type] = { copyBalances[action.payload.type] = {
@ -370,6 +379,22 @@ export default (state = INITIAL_STATE, action) => {
} }
} }
case ALLOW_SHOW_SYNC_INDICATOR: {
saveStateToLocalStorage("showSyncIndicator", true)
return {
...state,
showSyncIndicator: action.payload
}
}
case REMOVE_SHOW_SYNC_INDICATOR: {
saveStateToLocalStorage("showSyncIndicator", false)
return {
...state,
showSyncIndicator: action.payload
}
}
default: default:
return state return state
} }

View File

@ -69,7 +69,7 @@ export const chatStyles = css`
.forwarded-text { .forwarded-text {
user-select: none; user-select: none;
color: var(--accent-color); color: var(--general-color-blue);
margin-bottom: 5px; margin-bottom: 5px;
} }