Merge remote-tracking branch 'main/q-apps' into q-apps
This commit is contained in:
commit
d0d7b67a08
@ -596,7 +596,8 @@
|
||||
"pchange22": "Berechnung des Arbeitsnachweises ... dies kann einige Zeit dauern ...",
|
||||
"pchange23": "Transaktion Erfolgreich!",
|
||||
"pchange24": "Transaktion kann nicht signiert und verarbeitet werden",
|
||||
"pchange25": "Datei wählen"
|
||||
"pchange25": "Datei wählen",
|
||||
"pchange26": "Daten werden hochgeladen... dies kann einige Zeit dauern..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Vorwärts",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Immer automatisch authentifizieren",
|
||||
"bchange27": "Ablehnen",
|
||||
"bchange28": "Akzeptieren",
|
||||
"bchange29": "Sofortige Veröffentlichung (erfordert 0,001 QORT-Gebühr)"
|
||||
"bchange29": "Sofortige Veröffentlichung (erfordert 0,001 QORT-Gebühr)",
|
||||
"bchange30": "Dienst",
|
||||
"bchange31": "Name",
|
||||
"bchange32": "Kennung",
|
||||
"bchange33": "Sofortige Veröffentlichung",
|
||||
"bchange34": "Dateiname",
|
||||
"bchange35": "Erteilen Sie dieser Anwendung die Erlaubnis, Coins zu senden?",
|
||||
"bchange36": "Möchten Sie sofort auf QDN veröffentlichen, ohne einen Proof-of-Work zu berechnen?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Datenmanagement",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Computando prueba de trabajo... esto puede tomar un tiempo...",
|
||||
"pchange23": "Transacción realizada con éxito!",
|
||||
"pchange24": "No se pudo firmar y procesar la transacción",
|
||||
"pchange25": "Elegir archivo"
|
||||
"pchange25": "Elegir archivo",
|
||||
"pchange26": "Cargando datos... esto puede llevar algo de tiempo..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Avanzar",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Autenticar siempre automáticamente",
|
||||
"bchange27": "Rechazar",
|
||||
"bchange28": "Aceptar",
|
||||
"bchange29": "Publicación instantánea (requiere una tarifa de 0.001 QORT)"
|
||||
"bchange29": "Publicación instantánea (requiere una tarifa de 0.001 QORT)",
|
||||
"bchange30": "Servicio",
|
||||
"bchange31": "Nombre",
|
||||
"bchange32": "Identificador",
|
||||
"bchange33": "Publicación instantánea",
|
||||
"bchange34": "Nombre de archivo",
|
||||
"bchange35": "¿Le das permiso a esta aplicación para enviar monedas?",
|
||||
"bchange36": "¿Desea publicar instantáneamente en QDN sin calcular la prueba de trabajo?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestión de datos",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Calcul de la preuve de travail... cela peut prendre un certain temps...",
|
||||
"pchange23": "Transaction réussie!",
|
||||
"pchange24": "Impossible de signer et de traiter la transaction",
|
||||
"pchange25": "Choisissez un fichier"
|
||||
"pchange25": "Choisissez un fichier",
|
||||
"pchange26": "Télécharger des données... cela peut prendre un certain temps..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "En avant",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Toujours s'authentifier automatiquement",
|
||||
"bchange27": "Rejeter",
|
||||
"bchange28": "Accepter",
|
||||
"bchange29": "Publication instantanée (nécessite des frais de 0,001 QORT)"
|
||||
"bchange29": "Publication instantanée (nécessite des frais de 0,001 QORT)",
|
||||
"bchange30": "Service",
|
||||
"bchange31": "Nom",
|
||||
"bchange32": "Identifiant",
|
||||
"bchange33": "Publication instantanée",
|
||||
"bchange34": "Nom de fichier",
|
||||
"bchange35": "Autorisez-vous cette application à envoyer des pièces ?",
|
||||
"bchange36": "Voulez-vous publier instantanément sur QDN sans calculer de preuve de travail ?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestion de données",
|
||||
|
@ -597,7 +597,8 @@
|
||||
"pchange22": "काम का सबूत कंप्यूटिंग... इसमें कुछ समय लग सकता है...",
|
||||
"pchange23": "लेनदेन सफल!",
|
||||
"pchange24": "लेन-देन पर हस्ताक्षर करने और संसाधित करने में असमर्थ",
|
||||
"pchange25": "फ़ाइल चुनें"
|
||||
"pchange25": "फ़ाइल चुनें",
|
||||
"pchange26": "डेटा अपलोड हो रहा है... इसमें कुछ समय लग सकता है..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "आगे भेजना",
|
||||
@ -628,7 +629,14 @@
|
||||
"bchange26": "हमेशा स्वचालित रूप से प्रमाणित करें",
|
||||
"bchange27": "अस्वीकार करें",
|
||||
"bchange28": "स्वीकार करें",
|
||||
"bchange29": "तत्काल प्रकाशन (0.001 QORT शुल्क की आवश्यकता है)"
|
||||
"bchange29": "तत्काल प्रकाशन (0.001 QORT शुल्क की आवश्यकता है)",
|
||||
"bchange30": "सेवा",
|
||||
"bchange31": "नाम",
|
||||
"bchange32": "पहचानकर्ता",
|
||||
"bchange33": "तत्काल प्रकाशन",
|
||||
"bchange34": "फ़ाइल का नाम",
|
||||
"bchange35": "क्या आप इस एप्लिकेशन को सिक्के भेजने की अनुमति देते हैं?",
|
||||
"bchange36": "क्या आप कार्य-प्रमाण की गणना किए बिना QDN पर तुरंत प्रकाशित करना चाहते हैं?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "डाटा प्रबंधन",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Računalni dokaz o poslu ... ovo može potrajati neko vrijeme ...",
|
||||
"pchange23": "Transakcija uspješna!",
|
||||
"pchange24": "Nije moguće potpisati i obraditi transakciju",
|
||||
"pchange25": "Odaberite datoteku"
|
||||
"pchange25": "Odaberite datoteku",
|
||||
"pchange26": "Učitavanje podataka... ovo može potrajati..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Naprijed",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Uvijek autentificiraj automatski",
|
||||
"bchange27": "Odbaci",
|
||||
"bchange28": "Prihvati",
|
||||
"bchange29": "Trenutno objavljivanje (zahtijeva naknadu od 0,001 QORT)"
|
||||
"bchange29": "Trenutno objavljivanje (zahtijeva naknadu od 0,001 QORT)",
|
||||
"bchange30": "Usluga",
|
||||
"bchange31": "Ime",
|
||||
"bchange32": "Identifikator",
|
||||
"bchange33": "Trenutno objavljivanje",
|
||||
"bchange34": "Naziv datoteke",
|
||||
"bchange35": "Dajete li ovoj aplikaciji dopuštenje za slanje novčića?",
|
||||
"bchange36": "Želite li objaviti instant na QDN bez izračunavanja dokaza o radu?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Upravljanje podacima",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "A munka igazolásának számítása... Ez eltarthat egy ideig...",
|
||||
"pchange23": "A tranzakció sikeres!",
|
||||
"pchange24": "Nem lehet aláírni és feldolgozni a tranzakciót",
|
||||
"pchange25": "Fájl Kiválasztása"
|
||||
"pchange25": "Fájl Kiválasztása",
|
||||
"pchange26": "Adatok feltöltése... ez eltarthat egy ideig..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Előre",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Mindig automatikus hitelesítés",
|
||||
"bchange27": "Elutasítás",
|
||||
"bchange28": "Elfogadás",
|
||||
"bchange29": "Azonnali közzététel (0,001 QORT díj szükséges)"
|
||||
"bchange29": "Azonnali közzététel (0,001 QORT díj szükséges)",
|
||||
"bchange30": "Szolgáltatás",
|
||||
"bchange31": "Név",
|
||||
"bchange32": "Azonosító",
|
||||
"bchange33": "Azonnali közzététel",
|
||||
"bchange34": "Fájlnév",
|
||||
"bchange35": "Engedélyt ad ennek az alkalmazásnak érmék küldésére?",
|
||||
"bchange36": "Szeretne azonnal közzétenni a QDN-ben a munkaigazolás kiszámítása nélkül?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Adatkezelés",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Prova di calcolo del lavoro... questo può richiedere del tempo...",
|
||||
"pchange23": "Transazione riuscita!",
|
||||
"pchange24": "Impossibile firmare ed elaborare la transazione",
|
||||
"pchange25": "Scegli file"
|
||||
"pchange25": "Scegli file",
|
||||
"pchange26": "Caricamento dei dati... questo può richiedere del tempo..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Avanti",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Autenticati sempre automaticamente",
|
||||
"bchange27": "Rifiuta",
|
||||
"bchange28": "Accetta",
|
||||
"bchange29": "Pubblicazione istantanea (richiede una quota di 0,001 QORT)"
|
||||
"bchange29": "Pubblicazione istantanea (richiede una quota di 0,001 QORT)",
|
||||
"bchange30": "Servizio",
|
||||
"bchange31": "Nome",
|
||||
"bchange32": "Identificativo",
|
||||
"bchange33": "Pubblicazione istantanea",
|
||||
"bchange34": "Nome file",
|
||||
"bchange35": "Concedi a questa applicazione il permesso di inviare monete?",
|
||||
"bchange36": "Vuoi pubblicare istantaneamente su QDN senza calcolare la prova del lavoro?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestione dati",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "작업 증명 계산 중... 시간이 좀 걸릴 수 있어...",
|
||||
"pchange23": "트랜잭션이 성공했습니다!",
|
||||
"pchange24": "트랜잭션 서명 및 처리 불가",
|
||||
"pchange25": "파일 선택"
|
||||
"pchange25": "파일 선택",
|
||||
"pchange26": "데이터 업로드 중... 시간이 좀 걸릴 수 있습니다..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "앞으로",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "항상 자동으로 인증",
|
||||
"bchange27": "거부",
|
||||
"bchange28": "수락",
|
||||
"bchange29": "즉시 게시(0.001QORT 수수료 필요)"
|
||||
"bchange29": "즉시 게시(0.001QORT 수수료 필요)",
|
||||
"bchange30": "서비스",
|
||||
"bchange31": "이름",
|
||||
"bchange32": "식별자",
|
||||
"bchange33": "즉시 게시",
|
||||
"bchange34": "파일 이름",
|
||||
"bchange35": "이 애플리케이션에 코인을 보낼 수 있는 권한을 부여하시겠습니까?",
|
||||
"bchange36": "작업 증명을 계산하지 않고 QDN에 즉시 게시하시겠습니까?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "데이터 관리",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Databehandler proof of work... dette kan ta litt tid...",
|
||||
"pchange23": "Transaksjon vellykket!",
|
||||
"pchange24": "Kan ikke signere og behandle transaksjonen",
|
||||
"pchange25": "Velg fil"
|
||||
"pchange25": "Velg fil",
|
||||
"pchange26": "Laster opp data... dette kan ta litt tid..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Frem",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Autentiser alltid automatisk",
|
||||
"bchange27": "Avvis",
|
||||
"bchange28": "Godta",
|
||||
"bchange29": "Øyeblikkelig publisering (krever 0,001 QORT-avgift)"
|
||||
"bchange29": "Øyeblikkelig publisering (krever 0,001 QORT-avgift)",
|
||||
"bchange30": "Tjeneste",
|
||||
"bchange31": "Navn",
|
||||
"bchange32": "Identifikator",
|
||||
"bchange33": "Øyeblikkelig publisering",
|
||||
"bchange34": "Filnavn",
|
||||
"bchange35": "Gir du denne applikasjonen tillatelse til å sende mynter?",
|
||||
"bchange36": "Vil du publisere øyeblikkelig til QDN uten å regne ut bevis på arbeid?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Data-administrasjon",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Obliczanie dowodu pracy... może to zająć trochę czasu...",
|
||||
"pchange23": "Transakcja powiodła się!",
|
||||
"pchange24": "Nie można podpisać i przetworzyć transakcji",
|
||||
"pchange25": "Wybierz plik"
|
||||
"pchange25": "Wybierz plik",
|
||||
"pchange26": "Ładowanie danych... może to trochę potrwać..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Naprzód",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Zawsze uwierzytelniaj automatycznie",
|
||||
"bchange27": "Odrzuć",
|
||||
"bchange28": "Akceptuj",
|
||||
"bchange29": "Natychmiastowa publikacja (wymagana opłata QORT 0,001)"
|
||||
"bchange29": "Natychmiastowa publikacja (wymagana opłata QORT 0,001)",
|
||||
"bchange30": "Usługa",
|
||||
"bchange31": "Nazwa",
|
||||
"bchange32": "Identyfikator",
|
||||
"bchange33": "Natychmiastowa publikacja",
|
||||
"bchange34": "Nazwa pliku",
|
||||
"bchange35": "Czy zezwalasz tej aplikacji na wysyłanie monet?",
|
||||
"bchange36": "Czy chcesz natychmiast opublikować w QDN bez obliczania dowodu pracy?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Zarządzanie danymi",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Computando prova de trabalho... isso pode levar algum tempo...",
|
||||
"pchange23": "Transação bem sucedida!",
|
||||
"pchange24": "Não foi possível assinar e processar a transação",
|
||||
"pchange25": "Escolha um Arqivo"
|
||||
"pchange25": "Escolha um Arqivo",
|
||||
"pchange26": "Carregando dados... isso pode levar algum tempo..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Encaminhar",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Sempre autenticar automaticamente",
|
||||
"bchange27": "Rejeitar",
|
||||
"bchange28": "Aceitar",
|
||||
"bchange29": "Publicação instantânea (requer taxa QORT de 0,001)"
|
||||
"bchange29": "Publicação instantânea (requer taxa QORT de 0,001)",
|
||||
"bchange30": "Serviço",
|
||||
"bchange31": "Nome",
|
||||
"bchange32": "Identificador",
|
||||
"bchange33": "Publicação instantânea",
|
||||
"bchange34": "Nome do arquivo",
|
||||
"bchange35": "Você dá permissão a este aplicativo para enviar moedas?",
|
||||
"bchange36": "Deseja publicar instantaneamente em QDN sem calcular a prova de trabalho?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gerenciamento de Dados",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Se calculeaza evidenta contributiei in retea... acest lucru poate dura ceva timp...",
|
||||
"pchange23": "Tranzactie reusita!",
|
||||
"pchange24": "Nu s-a putut semna si procesa tranzactia",
|
||||
"pchange25": "Alege fisier"
|
||||
"pchange25": "Alege fisier",
|
||||
"pchange26": "Încărcarea datelor... poate dura ceva timp..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Inainte",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Autentificați-vă întotdeauna automat",
|
||||
"bchange27": "Respinge",
|
||||
"bchange28": "Accept",
|
||||
"bchange29": "Publicare instantanee (necesită o taxă QORT de 0,001)"
|
||||
"bchange29": "Publicare instantanee (necesită o taxă QORT de 0,001)",
|
||||
"bchange30": "Serviciul",
|
||||
"bchange31": "Nume",
|
||||
"bchange32": "Identificator",
|
||||
"bchange33": "Publicare instantanee",
|
||||
"bchange34": "Nume fișier",
|
||||
"bchange35": "Acordați acestei aplicații permisiunea de a trimite monede?",
|
||||
"bchange36": "Doriți să publicați instant în QDN fără a calcula dovada de lucru?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Gestionare date",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Proračunavanje dokaza o radu... ovo može potrajati...",
|
||||
"pchange23": "Transakcija uspešna!",
|
||||
"pchange24": "Nemogućnost potpisa i izvršenja transakcije",
|
||||
"pchange25": "Izaberite Datoteku"
|
||||
"pchange25": "Izaberite Datoteku",
|
||||
"pchange26": "Otpremanje podataka... ovo može potrajati..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Prosledite",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Uvek automatski autentifikovati",
|
||||
"bchange27": "Odbaci",
|
||||
"bchange28": "Prihvatam",
|
||||
"bchange29": "Trenutno objavljivanje (zahteva 0,001 QORT naknade)"
|
||||
"bchange29": "Trenutno objavljivanje (zahteva 0,001 QORT naknade)",
|
||||
"bchange30": "Usluga",
|
||||
"bchange31": "Ime",
|
||||
"bchange32": "Identifikator",
|
||||
"bchange33": "Objavljivanje odmah",
|
||||
"bchange34": "Ime datoteke",
|
||||
"bchange35": "Da li ovoj aplikaciji dajete dozvolu za slanje novčića?",
|
||||
"bchange36": "Da li želite da objavite instant na QDN bez izračunavanja dokaza o radu?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Upravljanje podacima",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "Вычисление доказательства работы... это может занять некоторое время...",
|
||||
"pchange23": "Транзакция прошла успешно!",
|
||||
"pchange24": "Невозможно подписать и обработать транзакцию",
|
||||
"pchange25": "Выбрать файл"
|
||||
"pchange25": "Выбрать файл",
|
||||
"pchange26": "Выгрузка данных... это может занять некоторое время..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Вперед",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "Всегда аутентифицироваться автоматически",
|
||||
"bchange27": "Отклонить",
|
||||
"bchange28": "Принять",
|
||||
"bchange29": "Мгновенная публикация (требуется плата в размере 0,001 QORT)"
|
||||
"bchange29": "Мгновенная публикация (требуется плата в размере 0,001 QORT)",
|
||||
"bchange30": "Сервис",
|
||||
"bchange31": "Имя",
|
||||
"bchange32": "Идентификатор",
|
||||
"bchange33": "Мгновенная публикация",
|
||||
"bchange34": "Имя файла",
|
||||
"bchange35": "Вы разрешаете этому приложению отправлять монеты?",
|
||||
"bchange36": "Вы хотите опубликовать мгновенную публикацию в QDN без вычисления доказательства работы?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "Управление данными",
|
||||
|
@ -597,7 +597,8 @@
|
||||
"pchange22": "Computing proof of work... this can take some time...",
|
||||
"pchange23": "Transaction successful!",
|
||||
"pchange24": "Unable to sign and process transaction",
|
||||
"pchange25": "Choose File"
|
||||
"pchange25": "Choose File",
|
||||
"pchange26": "Uploading data... this can take some time..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "Forward",
|
||||
@ -634,7 +635,8 @@
|
||||
"bchange32": "Identifier",
|
||||
"bchange33": "Instant publish",
|
||||
"bchange34": "Filename",
|
||||
"bchange35": "Do you give this application permission to send coins?"
|
||||
"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",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "计算工作量证明中... 请稍等...",
|
||||
"pchange23": "发布成功!",
|
||||
"pchange24": "发布失败!",
|
||||
"pchange25": "选择文件"
|
||||
"pchange25": "选择文件",
|
||||
"pchange26": "正在上传数据...这可能需要一些时间..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "下一页",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "始终自动验证",
|
||||
"bchange27": "拒绝",
|
||||
"bchange28": "接受",
|
||||
"bchange29": "即时发布(需要 0.001 QORT 费用)"
|
||||
"bchange29": "即时发布(需要 0.001 QORT 费用)",
|
||||
"bchange30": "服务",
|
||||
"bchange31": "姓名",
|
||||
"bchange32": "标识符",
|
||||
"bchange33": "即时发布",
|
||||
"bchange34": "文件名",
|
||||
"bchange35": "你允许这个应用程序发送硬币吗?",
|
||||
"bchange36": "你想在不计算工作证明的情况下即时发布到 QDN 吗?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "资料管理",
|
||||
|
@ -596,7 +596,8 @@
|
||||
"pchange22": "計算工作量證明中... 請稍等...",
|
||||
"pchange23": "發佈成功!",
|
||||
"pchange24": "發佈失敗!",
|
||||
"pchange25": "選擇文件"
|
||||
"pchange25": "選擇文件",
|
||||
"pchange26": "正在上傳數據...這可能需要一些時間..."
|
||||
},
|
||||
"browserpage": {
|
||||
"bchange1": "下一頁",
|
||||
@ -627,7 +628,14 @@
|
||||
"bchange26": "始終自動驗證",
|
||||
"bchange27": "拒絕",
|
||||
"bchange28": "接受",
|
||||
"bchange29": "即時發布(需要 0.001 QORT 費用)"
|
||||
"bchange29": "即時發布(需要 0.001 QORT 費用)",
|
||||
"bchange30": "服務",
|
||||
"bchange31": "姓名",
|
||||
"bchange32": "標識符",
|
||||
"bchange33": "即時發布",
|
||||
"bchange34": "文件名",
|
||||
"bchange35": "你允許這個應用程序發送硬幣嗎?",
|
||||
"bchange36": "你想在不計算工作證明的情況下即時發佈到 QDN 嗎?"
|
||||
},
|
||||
"datapage": {
|
||||
"dchange1": "資料管理",
|
||||
|
@ -1,8 +1,10 @@
|
||||
import { LitElement, html, css } from 'lit'
|
||||
import { connect } from 'pwa-helpers'
|
||||
import { store } from '../../store.js'
|
||||
import { allowQAPPAutoAuth, removeQAPPAutoAuth } from '../../redux/app/app-actions.js'
|
||||
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
|
||||
|
||||
import '@material/mwc-checkbox'
|
||||
import '@material/mwc-textfield'
|
||||
import '@material/mwc-icon'
|
||||
import '@vaadin/password-field/vaadin-password-field.js'
|
||||
@ -27,6 +29,10 @@ class SecurityView extends connect(store)(LitElement) {
|
||||
--lumo-body-text-color: var(--black);
|
||||
--lumo-secondary-text-color: var(--sectxt);
|
||||
--lumo-contrast-60pct: var(--vdicon);
|
||||
--mdc-checkbox-unchecked-color: var(--black);
|
||||
--mdc-theme-on-surface: var(--black);
|
||||
--mdc-checkbox-disabled-color: var(--black);
|
||||
--mdc-checkbox-ink-color: var(--black);
|
||||
}
|
||||
|
||||
.center-box {
|
||||
@ -37,6 +43,16 @@ class SecurityView extends connect(store)(LitElement) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.checkbox-row {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
font-family: Montserrat, sans-serif;
|
||||
font-weight: 600;
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
.q-button {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
@ -92,6 +108,13 @@ class SecurityView extends connect(store)(LitElement) {
|
||||
<div @click=${() => this.checkForDownload()} class="q-button"> ${translate("settings.download")} </div>
|
||||
</div>
|
||||
</div>
|
||||
<hr style="margin-top: 20px;">
|
||||
<div class="checkbox-row">
|
||||
<label for="authButton" id="authButtonLabel" style="color: var(--black);">
|
||||
${get('browserpage.bchange26')}
|
||||
</label>
|
||||
<mwc-checkbox style="margin-right: -15px;" id="authButton" @click=${(e) => this.checkForAuth(e)} ?checked=${store.getState().app.qAPPAutoAuth}></mwc-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
@ -99,6 +122,14 @@ class SecurityView extends connect(store)(LitElement) {
|
||||
stateChanged(state) {
|
||||
}
|
||||
|
||||
checkForAuth(e) {
|
||||
if (e.target.checked) {
|
||||
store.dispatch(removeQAPPAutoAuth(false))
|
||||
} else {
|
||||
store.dispatch(allowQAPPAutoAuth(true))
|
||||
}
|
||||
}
|
||||
|
||||
checkForDownload() {
|
||||
const checkPass = this.shadowRoot.getElementById('downloadBackupPassword').value
|
||||
if (checkPass === '') {
|
||||
|
@ -42,7 +42,8 @@ class WebBrowser extends LitElement {
|
||||
dogeFeePerByte: { type: Number },
|
||||
dgbFeePerByte: { type: Number },
|
||||
rvnFeePerByte: { type: Number },
|
||||
arrrWalletAddress: { type: String }
|
||||
arrrWalletAddress: { type: String },
|
||||
theme: { type: String, reflect: true }
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,6 +57,10 @@ class WebBrowser extends LitElement {
|
||||
--mdc-theme-primary: rgb(3, 169, 244);
|
||||
--mdc-theme-secondary: var(--mdc-theme-primary);
|
||||
--paper-input-container-focus-color: var(--mdc-theme-primary);
|
||||
--mdc-checkbox-unchecked-color: var(--black);
|
||||
--mdc-theme-on-surface: var(--black);
|
||||
--mdc-checkbox-disabled-color: var(--black);
|
||||
--mdc-checkbox-ink-color: var(--black);
|
||||
}
|
||||
|
||||
#websitesWrapper paper-button {
|
||||
@ -136,9 +141,7 @@ class WebBrowser extends LitElement {
|
||||
this.preview = urlParams.get('preview');
|
||||
this.followedNames = [];
|
||||
this.blockedNames = [];
|
||||
this.theme = localStorage.getItem('qortalTheme')
|
||||
? localStorage.getItem('qortalTheme')
|
||||
: 'light';
|
||||
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
|
||||
this.loader = new Loader();
|
||||
// Build initial display URL
|
||||
let displayUrl = 'qortal://' + this.service + '/' + this.name;
|
||||
@ -241,42 +244,81 @@ class WebBrowser extends LitElement {
|
||||
|
||||
render() {
|
||||
return html`
|
||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||
<div class="layout horizontal center">
|
||||
<div class="address-bar">
|
||||
<mwc-button @click=${() => this.goBack()} title="${translate(
|
||||
'general.back'
|
||||
)}" class="address-bar-button"><mwc-icon>arrow_back_ios</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.goForward()} title="${translate(
|
||||
'browserpage.bchange1'
|
||||
)}" class="address-bar-button"><mwc-icon>arrow_forward_ios</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.refresh()} title="${translate(
|
||||
'browserpage.bchange2'
|
||||
)}" class="address-bar-button"><mwc-icon>refresh</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.goBackToList()} title="${translate(
|
||||
'browserpage.bchange3'
|
||||
)}" class="address-bar-button"><mwc-icon>home</mwc-icon></mwc-button>
|
||||
<input disabled style="width: 550px; color: var(--black);" id="address" type="text" value="${this.displayUrl
|
||||
}"></input>
|
||||
<mwc-button @click=${() => this.delete()} title="${translate(
|
||||
'browserpage.bchange4'
|
||||
)} ${this.service} ${this.name} ${translate(
|
||||
'browserpage.bchange5'
|
||||
)}" class="address-bar-button float-right"><mwc-icon>delete</mwc-icon></mwc-button>
|
||||
${this.renderBlockUnblockButton()}
|
||||
${this.renderFollowUnfollowButton()}
|
||||
</div>
|
||||
<div class="iframe-container">
|
||||
<iframe id="browser-iframe" src="${this.url
|
||||
}" sandbox="allow-scripts allow-forms allow-downloads" allow="fullscreen">
|
||||
<span style="color: var(--black);">${translate(
|
||||
'browserpage.bchange6'
|
||||
)}</span>
|
||||
</iframe>
|
||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||
<div class="layout horizontal center">
|
||||
<div class="address-bar">
|
||||
<mwc-button @click=${() => this.goBack()} title="${translate('general.back')}" class="address-bar-button"><mwc-icon>arrow_back_ios</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.goForward()} title="${translate('browserpage.bchange1')}" class="address-bar-button"><mwc-icon>arrow_forward_ios</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.refresh()} title="${translate('browserpage.bchange2')}" class="address-bar-button"><mwc-icon>refresh</mwc-icon></mwc-button>
|
||||
<mwc-button @click=${() => this.goBackToList()} title="${translate('browserpage.bchange3')}" class="address-bar-button"><mwc-icon>home</mwc-icon></mwc-button>
|
||||
<input disabled style="width: 550px; color: var(--black);" id="address" type="text" value="${this.displayUrl}"></input>
|
||||
${this.renderFullScreen()}
|
||||
<mwc-button @click=${() => this.delete()} title="${translate('browserpage.bchange4')} ${this.service} ${this.name} ${translate('browserpage.bchange5')}" class="address-bar-button float-right"><mwc-icon>delete</mwc-icon></mwc-button>
|
||||
${this.renderBlockUnblockButton()}
|
||||
${this.renderFollowUnfollowButton()}
|
||||
</div>
|
||||
<div class="iframe-container">
|
||||
<iframe id="browser-iframe" src="${this.url}" sandbox="allow-scripts allow-forms allow-downloads allow-modals" allow="fullscreen">
|
||||
<span style="color: var(--black);">${translate('browserpage.bchange6')}</span>
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
`;
|
||||
}
|
||||
|
||||
renderFullScreen() {
|
||||
if (window.innerHeight == screen.height) {
|
||||
return html`
|
||||
<mwc-button
|
||||
@click=${() => this.exitFullScreen()}
|
||||
title="${translate('browserpage.bchange9')} ${this.name}"
|
||||
class="address-bar-button float-right"
|
||||
>
|
||||
<mwc-icon>fullscreen_exit</mwc-icon>
|
||||
</mwc-button>
|
||||
`
|
||||
} else {
|
||||
return html`
|
||||
<mwc-button
|
||||
@click=${() => this.goFullScreen()}
|
||||
title="${translate('browserpage.bchange9')} ${this.name}"
|
||||
class="address-bar-button float-right"
|
||||
>
|
||||
<mwc-icon>fullscreen</mwc-icon>
|
||||
</mwc-button>
|
||||
`
|
||||
}
|
||||
}
|
||||
|
||||
goFullScreen() {
|
||||
var elem = this.shadowRoot.getElementById('websitesWrapper')
|
||||
|
||||
if (elem.requestFullscreen) {
|
||||
elem.requestFullscreen()
|
||||
} else if (elem.mozRequestFullScreen) {
|
||||
elem.mozRequestFullScreen()
|
||||
} else if (elem.webkitRequestFullscreen) {
|
||||
elem.webkitRequestFullscreen()
|
||||
} else if (elem.msRequestFullscreen) {
|
||||
elem.msRequestFullscreen()
|
||||
}
|
||||
|
||||
this.renderFullScreen()
|
||||
}
|
||||
|
||||
exitFullScreen() {
|
||||
if(document.exitFullscreen) {
|
||||
document.exitFullscreen()
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen()
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen()
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen()
|
||||
}
|
||||
|
||||
this.renderFullScreen()
|
||||
}
|
||||
|
||||
async unitJoinFee() {
|
||||
@ -2165,9 +2207,11 @@ class WebBrowser extends LitElement {
|
||||
|
||||
goBackToList() {
|
||||
if (this.service == "APP") {
|
||||
this.exitFullScreen()
|
||||
window.location = '../../q-app/index.html';
|
||||
}
|
||||
else { // Default to websites list
|
||||
this.exitFullScreen()
|
||||
window.location = '../index.html';
|
||||
}
|
||||
}
|
||||
@ -2516,7 +2560,7 @@ async function showModalAndWait(type, data) {
|
||||
window.parent.reduxStore.dispatch( window.parent.reduxAction.removeQAPPAutoAuth(false))
|
||||
return
|
||||
}
|
||||
window.parent.reduxStore.dispatch( window.parent.reduxAction.allowQAPPAutoAuth(true))
|
||||
window.parent.reduxStore.dispatch(window.parent.reduxAction.allowQAPPAutoAuth(true))
|
||||
})
|
||||
}
|
||||
});
|
||||
@ -2608,6 +2652,16 @@ async function showErrorAndWait(type, data, data1) {
|
||||
|
||||
// Add the styles for the modal
|
||||
const styles = `
|
||||
* {
|
||||
--mdc-theme-primary: rgb(3, 169, 244);
|
||||
--mdc-theme-secondary: var(--mdc-theme-primary);
|
||||
--paper-input-container-focus-color: var(--mdc-theme-primary);
|
||||
--mdc-checkbox-unchecked-color: var(--black);
|
||||
--mdc-theme-on-surface: var(--black);
|
||||
--mdc-checkbox-disabled-color: var(--black);
|
||||
--mdc-checkbox-ink-color: var(--black);
|
||||
}
|
||||
|
||||
.backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@ -2723,7 +2777,7 @@ const styles = `
|
||||
align-items: center;
|
||||
font-family: Montserrat, sans-serif;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
.modal-buttons {
|
||||
|
@ -10,6 +10,7 @@ registerTranslateConfig({
|
||||
import '@material/mwc-button'
|
||||
import '@material/mwc-textfield'
|
||||
import '@material/mwc-select'
|
||||
import '@material/mwc-dialog'
|
||||
import '@material/mwc-list/mwc-list-item.js'
|
||||
import '@polymer/paper-progress/paper-progress.js'
|
||||
|
||||
@ -55,6 +56,10 @@ class PublishData extends LitElement {
|
||||
* {
|
||||
--mdc-theme-primary: rgb(3, 169, 244);
|
||||
--mdc-theme-secondary: var(--mdc-theme-primary);
|
||||
--mdc-dialog-content-ink-color: var(--black);
|
||||
--mdc-theme-surface: var(--white);
|
||||
--mdc-dialog-min-width: 400px;
|
||||
--mdc-dialog-max-width: 1024px;
|
||||
--paper-input-container-focus-color: var(--mdc-theme-primary);
|
||||
--lumo-primary-text-color: rgb(0, 167, 245);
|
||||
--lumo-primary-color-50pct: rgba(0, 167, 245, 0.5);
|
||||
@ -68,7 +73,6 @@ class PublishData extends LitElement {
|
||||
--_lumo-grid-secondary-border-color: var(--border2);
|
||||
}
|
||||
|
||||
|
||||
input[type=text] {
|
||||
padding: 6px 6px 6px 6px;
|
||||
color: var(--black);
|
||||
@ -94,7 +98,10 @@ class PublishData extends LitElement {
|
||||
}
|
||||
|
||||
#publishWrapper .buttons {
|
||||
width: auto !important;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
max-width:100%;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
mwc-textfield {
|
||||
@ -124,16 +131,24 @@ class PublishData extends LitElement {
|
||||
.address-bar-button mwc-icon {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.red {
|
||||
--mdc-theme-primary: #F44336;
|
||||
}
|
||||
|
||||
.green {
|
||||
--mdc-theme-primary: #198754;
|
||||
}
|
||||
`
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
|
||||
this.showName = false;
|
||||
this.showName = false
|
||||
this.showService = false
|
||||
this.showIdentifier = false
|
||||
this.showMetadata = false
|
||||
this.showMetadata = false
|
||||
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
this.name = urlParams.get('name')
|
||||
@ -182,7 +197,7 @@ class PublishData extends LitElement {
|
||||
setTimeout(() => {
|
||||
this.names = res
|
||||
if (res[0] != null) {
|
||||
this.myRegisteredName = res[0].name;
|
||||
this.myRegisteredName = res[0].name
|
||||
}
|
||||
}, 1)
|
||||
})
|
||||
@ -201,7 +216,7 @@ class PublishData extends LitElement {
|
||||
const fetchPeersSummary = () => {
|
||||
parentEpml.request('apiCall', {url: `/peers/summary`}).then(res => {
|
||||
setTimeout(() => {
|
||||
this.portForwardingEnabled = (res.inboundConnections != null && res.inboundConnections > 0);
|
||||
this.portForwardingEnabled = (res.inboundConnections != null && res.inboundConnections > 0)
|
||||
}, 1)
|
||||
})
|
||||
setTimeout(fetchPeersSummary, this.config.user.nodeSettings.pingInterval)
|
||||
@ -252,7 +267,7 @@ class PublishData extends LitElement {
|
||||
<p style="display: ${this.showName ? 'block' : 'none'}">
|
||||
<mwc-select id="registeredName" label="${translate("publishpage.pchange4")}" @selected=${(e) => this.selectName(e)} style="min-width: 130px; max-width:100%; width:100%;">
|
||||
<mwc-list-item selected value=""></mwc-list-item>
|
||||
<mwc-list-item value="${this.myRegisteredName}">${this.myRegisteredName}</mwc-list-item>
|
||||
<mwc-list-item value="${this.myRegisteredName}" style="color: var(--black);">${this.myRegisteredName}</mwc-list-item>
|
||||
</mwc-select>
|
||||
</p>
|
||||
<div style="display: ${this.showMetadata ? 'block' : 'none'}">
|
||||
@ -269,13 +284,13 @@ class PublishData extends LitElement {
|
||||
`)}
|
||||
</mwc-select>
|
||||
</p>
|
||||
<p>
|
||||
<div style="display: flex; justify-content: space-between; max-width:100%; width:100%;">
|
||||
<mwc-textfield style="width:19.6%;" id="tag1" type="text" value="${this.metadata != null && this.metadata.tags != null && this.metadata.tags[0] != null ? this.metadata.tags[0] : ''}" placeholder="${translate("publishpage.pchange8")} 1" maxLength="20"></mwc-textfield>
|
||||
<mwc-textfield style="width:19.6%;" id="tag2" type="text" value="${this.metadata != null && this.metadata.tags != null && this.metadata.tags[1] != null ? this.metadata.tags[1] : ''}" placeholder="${translate("publishpage.pchange8")} 2" maxLength="20"></mwc-textfield>
|
||||
<mwc-textfield style="width:19.6%;" id="tag3" type="text" value="${this.metadata != null && this.metadata.tags != null && this.metadata.tags[2] != null ? this.metadata.tags[2] : ''}" placeholder="${translate("publishpage.pchange8")} 3" maxLength="20"></mwc-textfield>
|
||||
<mwc-textfield style="width:19.6%;" id="tag4" type="text" value="${this.metadata != null && this.metadata.tags != null && this.metadata.tags[3] != null ? this.metadata.tags[3] : ''}" placeholder="${translate("publishpage.pchange8")} 4" maxLength="20"></mwc-textfield>
|
||||
<mwc-textfield style="width:19.6%;" id="tag5" type="text" value="${this.metadata != null && this.metadata.tags != null && this.metadata.tags[4] != null ? this.metadata.tags[4] : ''}" placeholder="${translate("publishpage.pchange8")} 5" maxLength="20"></mwc-textfield>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
${this.renderUploadField()}
|
||||
<p style="display: ${this.showService ? 'block' : 'none'}">
|
||||
@ -289,14 +304,22 @@ class PublishData extends LitElement {
|
||||
<p style="color: green; word-break: break-word;">${this.successMessage}</p>
|
||||
${this.loading ? html` <paper-progress indeterminate style="width:100%; margin:4px;"></paper-progress> ` : ''}
|
||||
<div class="buttons">
|
||||
<div>
|
||||
<mwc-button ?disabled=${this.btnDisable} style="width:49%;" raised icon="science" @click=${(e) => this.doPublish(e, true)}> ${translate("appspage.schange40")}</mwc-button>
|
||||
<mwc-button ?disabled=${this.btnDisable} style="width:49%;" raised icon="send" @click=${(e) => this.doPublish(e, false)}> ${translate("publishpage.pchange11")}</mwc-button>
|
||||
</div>
|
||||
<mwc-button ?disabled=${this.btnDisable} style="width:49%;" raised icon="science" @click=${(e) => this.doPublish(e, true, false)}> ${translate("appspage.schange40")}</mwc-button>
|
||||
<mwc-button ?disabled=${this.btnDisable} style="width:49%;" raised icon="send" @click=${() => this.shadowRoot.querySelector('#publishWithFeeDialog').show()}> ${translate("publishpage.pchange11")}</mwc-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
<!-- Publish With Fee Dialog -->
|
||||
<mwc-dialog id="publishWithFeeDialog" scrimClickAction="" escapeKeyAction="">
|
||||
<div style="text-align: center;">${translate("browserpage.bchange36")}<br>${translate("browserpage.bchange29")}</div>
|
||||
<mwc-button slot="primaryAction" @click="${(e) => this.feeDialogNo(e, false, false)}" class="red">
|
||||
${translate("general.no")}
|
||||
</mwc-button>
|
||||
<mwc-button slot="secondaryAction" @click="${(e) => this.feeDialogYes(e, false, true)}" class="green">
|
||||
${translate("general.yes")}
|
||||
</mwc-button>
|
||||
</mwc-dialog>
|
||||
`
|
||||
}
|
||||
|
||||
firstUpdated() {
|
||||
@ -337,11 +360,11 @@ class PublishData extends LitElement {
|
||||
changeTheme() {
|
||||
const checkTheme = localStorage.getItem('qortalTheme')
|
||||
if (checkTheme === 'dark') {
|
||||
this.theme = 'dark';
|
||||
this.theme = 'dark'
|
||||
} else {
|
||||
this.theme = 'light';
|
||||
this.theme = 'light'
|
||||
}
|
||||
document.querySelector('html').setAttribute('theme', this.theme);
|
||||
document.querySelector('html').setAttribute('theme', this.theme)
|
||||
}
|
||||
|
||||
changeLanguage() {
|
||||
@ -357,7 +380,7 @@ class PublishData extends LitElement {
|
||||
|
||||
// Navigation
|
||||
goBack() {
|
||||
window.history.back();
|
||||
window.history.back()
|
||||
}
|
||||
|
||||
|
||||
@ -386,8 +409,17 @@ class PublishData extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
feeDialogYes(e, preview, fee) {
|
||||
this.doPublish(e, preview, fee)
|
||||
this.shadowRoot.querySelector('#publishWithFeeDialog').close()
|
||||
}
|
||||
|
||||
doPublish(e, preview) {
|
||||
feeDialogNo(e, preview, fee) {
|
||||
this.doPublish(e, preview, fee)
|
||||
this.shadowRoot.querySelector('#publishWithFeeDialog').close()
|
||||
}
|
||||
|
||||
doPublish(e, preview, fee) {
|
||||
let registeredName = this.shadowRoot.getElementById('registeredName').value
|
||||
let service = this.shadowRoot.getElementById('service').value
|
||||
let identifier = this.shadowRoot.getElementById('identifier').value
|
||||
@ -397,8 +429,8 @@ class PublishData extends LitElement {
|
||||
registeredName = this.name
|
||||
}
|
||||
|
||||
let file;
|
||||
let path;
|
||||
let file
|
||||
let path
|
||||
|
||||
if (this.uploadType === "file" || this.uploadType === "zip") {
|
||||
file = this.shadowRoot.getElementById('file').files[0]
|
||||
@ -433,11 +465,11 @@ class PublishData extends LitElement {
|
||||
parentEpml.request('showSnackBar', `${err5string}`)
|
||||
}
|
||||
else {
|
||||
this.publishData(registeredName, path, file, service, identifier, preview)
|
||||
this.publishData(registeredName, path, file, service, identifier, preview, fee)
|
||||
}
|
||||
}
|
||||
|
||||
async publishData(registeredName, path, file, service, identifier, preview) {
|
||||
async publishData(registeredName, path, file, service, identifier, preview, fee) {
|
||||
this.loading = true
|
||||
this.btnDisable = true
|
||||
|
||||
@ -463,48 +495,55 @@ class PublishData extends LitElement {
|
||||
if (validNameRes.error) {
|
||||
this.errorMessage = "Error: " + validNameRes.message
|
||||
showError(this.errorMessage)
|
||||
throw new Error(this.errorMessage);
|
||||
throw new Error(this.errorMessage)
|
||||
}
|
||||
|
||||
let err6string = get("publishpage.pchange19")
|
||||
this.generalMessage = `${err6string}`
|
||||
let transactionBytes;
|
||||
let previewUrlPath;
|
||||
let transactionBytes
|
||||
let previewUrlPath
|
||||
|
||||
let uploadDataRes = await uploadData(registeredName, path, file, preview, fee)
|
||||
|
||||
let uploadDataRes = await uploadData(registeredName, path, file, preview)
|
||||
if (uploadDataRes.error) {
|
||||
let err7string = get("publishpage.pchange20")
|
||||
this.errorMessage = `${err7string}` + uploadDataRes.message
|
||||
showError(this.errorMessage)
|
||||
throw new Error(this.errorMessage);
|
||||
throw new Error(this.errorMessage)
|
||||
}
|
||||
else if (uploadDataRes.includes("Error 500 Internal Server Error")) {
|
||||
let err8string = get("publishpage.pchange21")
|
||||
this.errorMessage = `${err8string}`
|
||||
showError(this.errorMessage)
|
||||
throw new Error(this.errorMessage);
|
||||
throw new Error(this.errorMessage)
|
||||
}
|
||||
|
||||
if (preview) {
|
||||
// uploadData() returns preview URL path when in preview mode
|
||||
previewUrlPath = uploadDataRes;
|
||||
window.location = `../browser/index.html?service=${this.service}&name=Preview&preview=${previewUrlPath}`;
|
||||
return;
|
||||
previewUrlPath = uploadDataRes
|
||||
window.location = `../browser/index.html?service=${this.service}&name=Preview&preview=${previewUrlPath}`
|
||||
return
|
||||
}
|
||||
else {
|
||||
// uploadData() returns transaction bytes when not in preview mode
|
||||
transactionBytes = uploadDataRes;
|
||||
transactionBytes = uploadDataRes
|
||||
}
|
||||
|
||||
let err9string = get("publishpage.pchange22")
|
||||
this.generalMessage = `${err9string}`
|
||||
if (fee) {
|
||||
let err9string = get("publishpage.pchange26")
|
||||
this.generalMessage = `${err9string}`
|
||||
} else {
|
||||
let err9string = get("publishpage.pchange22")
|
||||
this.generalMessage = `${err9string}`
|
||||
}
|
||||
|
||||
let signAndProcessRes = await signAndProcess(transactionBytes, fee)
|
||||
|
||||
let signAndProcessRes = await signAndProcess(transactionBytes)
|
||||
if (signAndProcessRes.error) {
|
||||
let err10string = get("publishpage.pchange20")
|
||||
this.errorMessage = `${err10string}` + signAndProcessRes.message
|
||||
showError(this.errorMessage)
|
||||
throw new Error(this.errorMessage);
|
||||
throw new Error(this.errorMessage)
|
||||
}
|
||||
|
||||
let err11string = get("publishpage.pchange23")
|
||||
@ -516,7 +555,7 @@ class PublishData extends LitElement {
|
||||
this.successMessage = `${err11string}`
|
||||
}
|
||||
|
||||
const uploadData = async (registeredName, path, file, preview) => {
|
||||
const uploadData = async (registeredName, path, file, preview, fee) => {
|
||||
let postBody = path
|
||||
let urlSuffix = ""
|
||||
if (file != null) {
|
||||
@ -532,24 +571,37 @@ class PublishData extends LitElement {
|
||||
|
||||
// Base64 encode the file to work around compatibility issues between javascript and java byte arrays
|
||||
let fileBuffer = new Uint8Array(await file.arrayBuffer())
|
||||
postBody = Buffer.from(fileBuffer).toString('base64');
|
||||
postBody = Buffer.from(fileBuffer).toString('base64')
|
||||
}
|
||||
|
||||
// Optional metadata
|
||||
let title = encodeURIComponent(this.shadowRoot.getElementById('title').value);
|
||||
let description = encodeURIComponent(this.shadowRoot.getElementById('description').value);
|
||||
let category = encodeURIComponent(this.shadowRoot.getElementById('category').value);
|
||||
let tag1 = encodeURIComponent(this.shadowRoot.getElementById('tag1').value);
|
||||
let tag2 = encodeURIComponent(this.shadowRoot.getElementById('tag2').value);
|
||||
let tag3 = encodeURIComponent(this.shadowRoot.getElementById('tag3').value);
|
||||
let tag4 = encodeURIComponent(this.shadowRoot.getElementById('tag4').value);
|
||||
let tag5 = encodeURIComponent(this.shadowRoot.getElementById('tag5').value);
|
||||
let title = encodeURIComponent(this.shadowRoot.getElementById('title').value)
|
||||
let description = encodeURIComponent(this.shadowRoot.getElementById('description').value)
|
||||
let category = encodeURIComponent(this.shadowRoot.getElementById('category').value)
|
||||
let tag1 = encodeURIComponent(this.shadowRoot.getElementById('tag1').value)
|
||||
let tag2 = encodeURIComponent(this.shadowRoot.getElementById('tag2').value)
|
||||
let tag3 = encodeURIComponent(this.shadowRoot.getElementById('tag3').value)
|
||||
let tag4 = encodeURIComponent(this.shadowRoot.getElementById('tag4').value)
|
||||
let tag5 = encodeURIComponent(this.shadowRoot.getElementById('tag5').value)
|
||||
|
||||
let metadataQueryString = `title=${title}&description=${description}&category=${category}&tags=${tag1}&tags=${tag2}&tags=${tag3}&tags=${tag4}&tags=${tag5}`
|
||||
let uploadDataUrl = ``
|
||||
|
||||
let uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}`
|
||||
if (identifier != null && identifier.trim().length > 0) {
|
||||
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}`
|
||||
if (preview) {
|
||||
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}`
|
||||
if (identifier != null && identifier.trim().length > 0) {
|
||||
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}`
|
||||
}
|
||||
} else if (fee) {
|
||||
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}`
|
||||
if (identifier != null && identifier.trim().length > 0) {
|
||||
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}`
|
||||
}
|
||||
} else {
|
||||
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}`
|
||||
if (identifier != null && identifier.trim().length > 0) {
|
||||
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}`
|
||||
}
|
||||
}
|
||||
|
||||
let uploadDataRes = await parentEpml.request('apiCall', {
|
||||
@ -571,38 +623,47 @@ class PublishData extends LitElement {
|
||||
return convertedBytes
|
||||
}
|
||||
|
||||
const signAndProcess = async (transactionBytesBase58) => {
|
||||
const signAndProcess = async (transactionBytesBase58, fee) => {
|
||||
let convertedBytesBase58 = await convertBytesForSigning(transactionBytesBase58)
|
||||
if (convertedBytesBase58.error) {
|
||||
let err12string = get("publishpage.pchange20")
|
||||
this.errorMessage = `${err12string}` + convertedBytesBase58.message
|
||||
showError(this.errorMessage)
|
||||
throw new Error(this.errorMessage);
|
||||
throw new Error(this.errorMessage)
|
||||
}
|
||||
|
||||
const convertedBytes = window.parent.Base58.decode(convertedBytesBase58);
|
||||
const _convertedBytesArray = Object.keys(convertedBytes).map(function (key) { return convertedBytes[key]; });
|
||||
const convertedBytes = window.parent.Base58.decode(convertedBytesBase58)
|
||||
const _convertedBytesArray = Object.keys(convertedBytes).map(function (key) { return convertedBytes[key] })
|
||||
const convertedBytesArray = new Uint8Array(_convertedBytesArray)
|
||||
const convertedBytesHash = new window.parent.Sha256().process(convertedBytesArray).finish().result
|
||||
|
||||
const hashPtr = window.parent.sbrk(32, window.parent.heap);
|
||||
const hashAry = new Uint8Array(window.parent.memory.buffer, hashPtr, 32);
|
||||
hashAry.set(convertedBytesHash);
|
||||
const hashPtr = window.parent.sbrk(32, window.parent.heap)
|
||||
const hashAry = new Uint8Array(window.parent.memory.buffer, hashPtr, 32)
|
||||
hashAry.set(convertedBytesHash)
|
||||
|
||||
const difficulty = 14;
|
||||
const workBufferLength = 8 * 1024 * 1024;
|
||||
const workBufferPtr = window.parent.sbrk(workBufferLength, window.parent.heap);
|
||||
const difficulty = 14
|
||||
const workBufferLength = 8 * 1024 * 1024
|
||||
const workBufferPtr = window.parent.sbrk(workBufferLength, window.parent.heap)
|
||||
|
||||
this.errorMessage = '';
|
||||
this.successMessage = '';
|
||||
this.errorMessage = ''
|
||||
this.successMessage = ''
|
||||
let nonce = window.parent.computePow(hashPtr, workBufferPtr, workBufferLength, difficulty)
|
||||
let response = false
|
||||
|
||||
let response = await parentEpml.request('sign_arbitrary', {
|
||||
nonce: this.selectedAddress.nonce,
|
||||
arbitraryBytesBase58: transactionBytesBase58,
|
||||
arbitraryBytesForSigningBase58: convertedBytesBase58,
|
||||
arbitraryNonce: nonce
|
||||
})
|
||||
if (fee) {
|
||||
response = await parentEpml.request('sign_arbitrary_with_fee', {
|
||||
nonce: this.selectedAddress.nonce,
|
||||
arbitraryBytesBase58: transactionBytesBase58,
|
||||
arbitraryBytesForSigningBase58: convertedBytesBase58
|
||||
})
|
||||
} else {
|
||||
response = await parentEpml.request('sign_arbitrary', {
|
||||
nonce: this.selectedAddress.nonce,
|
||||
arbitraryBytesBase58: transactionBytesBase58,
|
||||
arbitraryBytesForSigningBase58: convertedBytesBase58,
|
||||
arbitraryNonce: nonce
|
||||
})
|
||||
}
|
||||
|
||||
let myResponse = { error: '' }
|
||||
if (response === false) {
|
||||
@ -641,7 +702,7 @@ class PublishData extends LitElement {
|
||||
|
||||
|
||||
fetchResourceMetadata() {
|
||||
let identifier = this.identifier != null ? this.identifier : "default";
|
||||
let identifier = this.identifier != null ? this.identifier : "default"
|
||||
|
||||
parentEpml.request('apiCall', {
|
||||
url: `/arbitrary/metadata/${this.service}/${this.name}/${identifier}?apiKey=${this.getApiKey()}`
|
||||
@ -650,10 +711,10 @@ class PublishData extends LitElement {
|
||||
setTimeout(() => {
|
||||
this.metadata = res
|
||||
if (this.metadata != null && this.metadata.category != null) {
|
||||
this.shadowRoot.getElementById('category').value = this.metadata.category;
|
||||
this.shadowRoot.getElementById('category').value = this.metadata.category
|
||||
}
|
||||
else {
|
||||
this.shadowRoot.getElementById('category').value = "";
|
||||
this.shadowRoot.getElementById('category').value = ""
|
||||
}
|
||||
}, 1)
|
||||
})
|
||||
@ -666,13 +727,13 @@ class PublishData extends LitElement {
|
||||
if (name.value.length > 0) {
|
||||
this.name = (name.value)
|
||||
}
|
||||
this.fetchResourceMetadata();
|
||||
this.fetchResourceMetadata()
|
||||
}
|
||||
|
||||
getApiKey() {
|
||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||
let apiKey = myNode.apiKey;
|
||||
return apiKey;
|
||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let apiKey = myNode.apiKey
|
||||
return apiKey
|
||||
}
|
||||
|
||||
clearSelection() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user