From 6665a9936413c73b11b48497ebce8c47cb6612cd Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Sun, 19 Nov 2023 09:19:04 +0100
Subject: [PATCH 01/10] Update electron
---
package-lock.json | 174 +++++++++++++++++++++++-----------------------
package.json | 10 +--
2 files changed, 92 insertions(+), 92 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 85a16421..eeb3bdec 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -99,13 +99,13 @@
"@vaadin/icons": "24.2.3",
"@vaadin/password-field": "24.2.3",
"@vaadin/tooltip": "24.2.3",
- "@zip.js/zip.js": "2.7.30",
- "axios": "1.6.1",
- "electron": "27.0.4",
+ "@zip.js/zip.js": "2.7.31",
+ "axios": "1.6.2",
+ "electron": "27.1.0",
"electron-builder": "24.6.4",
"electron-packager": "17.1.2",
"epml": "0.3.3",
- "eslint": "8.53.0",
+ "eslint": "8.54.0",
"eslint-plugin-lit": "1.10.1",
"eslint-plugin-wc": "2.0.4",
"file-saver": "2.0.5",
@@ -118,7 +118,7 @@
"pwa-helpers": "0.9.1",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
- "rollup": "4.4.0",
+ "rollup": "4.5.0",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",
@@ -838,9 +838,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
- "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz",
+ "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3006,9 +3006,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.0.tgz",
- "integrity": "sha512-AD30wtT58hZZsXIeiksytR6Gm2gofUxn5KqrDBdyzekgxXB9bXN9dqWIEcPfYo9lA9MVRm0lC42LuYGsscRxiA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz",
+ "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==",
"cpu": [
"arm"
],
@@ -3019,9 +3019,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.0.tgz",
- "integrity": "sha512-PlqvhzFxy5FRTB3wLSsGgPhiakv9jrgfu8tjSojLJFP0CdhfZSRDOFvQ2emWLUEBOSCnjpL63XSuFVMwg59ZtA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz",
+ "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==",
"cpu": [
"arm64"
],
@@ -3032,9 +3032,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.0.tgz",
- "integrity": "sha512-BYmhn1Hebmkmdyn5mBFy7HptowyjtMALyTpywNSNZYigWwyv4L8WQVr0XvOQE7eE6WoKrupSVxtIcGZW8MgZUA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz",
+ "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==",
"cpu": [
"arm64"
],
@@ -3045,9 +3045,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.0.tgz",
- "integrity": "sha512-7GXsMiX/giTDBMs/gL3rePLBRC6gV7DT7JQ0lNqoNDe5hm+Gm4NEWky9fwEmer64fIUbOsTiLUsyQ5fDXUbXPA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz",
+ "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==",
"cpu": [
"x64"
],
@@ -3058,9 +3058,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.0.tgz",
- "integrity": "sha512-kavnkaV50Gu6vESlOAwUad92wYY9mUrcaPmhzOQZKlNFnzWAUYyD/uhHmWvY7Z2chtwhWlng0LvCRBF5QiPO7w==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz",
+ "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==",
"cpu": [
"arm"
],
@@ -3071,9 +3071,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.0.tgz",
- "integrity": "sha512-2hBHEtCjnBTeuLvDAlHRCqsuFQSyAhTQs9vbZEVBTV8ap35pDI1ukPbIVFFCWNvL/KE7xRor5YZFvfyGCfvLnA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz",
+ "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==",
"cpu": [
"arm64"
],
@@ -3084,9 +3084,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.0.tgz",
- "integrity": "sha512-u7zy0Ygzl7O5Gvr9TSNSQj+DBzvMJC7rXfyQNgZ13KwkhgJ8z0z+gt2AO4RPd01rZioMQ2/TA24XGGg4xqhd0Q==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz",
+ "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==",
"cpu": [
"arm64"
],
@@ -3097,9 +3097,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.0.tgz",
- "integrity": "sha512-VvpAdh5SgewmWo8sa5QPYG8aSKH9hU2Kr5+3of0GzBI/8n8PBqhLyvF0DbO+zDW8j5IM8NDebv82MpHrZaD0Cw==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz",
+ "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==",
"cpu": [
"x64"
],
@@ -3110,9 +3110,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.0.tgz",
- "integrity": "sha512-3g6jaXxXVFaDnFoMn2+E3ludGcXFfEr6lDn+S1lh9Qe0JcL9sPt1wGh0g2cKIlb6OakNOFopZqJ5Yub9F7gQlA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz",
+ "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==",
"cpu": [
"x64"
],
@@ -3123,9 +3123,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.0.tgz",
- "integrity": "sha512-jnoDRkg5Ve6Y1qx2m1+ehouOLQ4ddc15/iQSfFjcDUL6bqLdJJ5c4CKfUy/C6W1oCU4la+hMkveE9GG7ECN7dg==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz",
+ "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==",
"cpu": [
"arm64"
],
@@ -3136,9 +3136,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.0.tgz",
- "integrity": "sha512-SoLQmJanozFow8o50ul2a3R+J7nk4pEhrp83PzTSXs5OzOmIZbPSp5kihtQ3f6ypo4MCbmh0V8Ev0bJIEp4Azw==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz",
+ "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==",
"cpu": [
"ia32"
],
@@ -3149,9 +3149,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.0.tgz",
- "integrity": "sha512-Zaz6itfQ5sQF5Cia49YDW1ZTr+YfIKzTSb9npLyvQn346n7ulRDOv2J7GnL0zcOJ3cqW7HzG/ZisyO6fH43J9g==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz",
+ "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==",
"cpu": [
"x64"
],
@@ -3612,9 +3612,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "18.18.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz",
- "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==",
+ "version": "18.18.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.10.tgz",
+ "integrity": "sha512-luANqZxPmjTll8bduz4ACs/lNTCLuWssCyjqTY9yLdsv1xnViQp3ISKwsEWOIecO13JWUqjVdig/Vjjc09o8uA==",
"devOptional": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -4002,9 +4002,9 @@
}
},
"node_modules/@zip.js/zip.js": {
- "version": "2.7.30",
- "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.30.tgz",
- "integrity": "sha512-nhMvQCj+TF1ATBqYzFds7v+yxPBhdDYHh8J341KtC1D2UrVBUIYcYK4Jy1/GiTsxOXEiKOXSUxvPG/XR+7jMqw==",
+ "version": "2.7.31",
+ "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.31.tgz",
+ "integrity": "sha512-Q4XWZO0IXLEzHB580LUgca/KpwX9/KdtDTvfhqKqiirYL5hHvOmWjD+gyqRhv+Muk7I+LpVZvx9E+WsPv5G4Sw==",
"dev": true,
"engines": {
"bun": ">=0.7.0",
@@ -4336,9 +4336,9 @@
}
},
"node_modules/axios": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz",
- "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.15.0",
@@ -4714,9 +4714,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001561",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz",
- "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==",
+ "version": "1.0.30001563",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz",
+ "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==",
"dev": true,
"funding": [
{
@@ -5466,9 +5466,9 @@
}
},
"node_modules/electron": {
- "version": "27.0.4",
- "resolved": "https://registry.npmjs.org/electron/-/electron-27.0.4.tgz",
- "integrity": "sha512-ob29rN1mtiyAXzF8HsHd5jh8bYKd9OQDakfdOExi0F7epU97gXPHaj6JPjbBJ/vpki5d32SyKVePW4vxeNZk1A==",
+ "version": "27.1.0",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-27.1.0.tgz",
+ "integrity": "sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -5904,9 +5904,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.581",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz",
- "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==",
+ "version": "1.4.588",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz",
+ "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==",
"dev": true
},
"node_modules/electron-updater": {
@@ -6090,15 +6090,15 @@
}
},
"node_modules/eslint": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
- "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
+ "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.3",
- "@eslint/js": "8.53.0",
+ "@eslint/js": "8.54.0",
"@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -7263,9 +7263,9 @@
]
},
"node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -8760,9 +8760,9 @@
}
},
"node_modules/prosemirror-inputrules": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.2.1.tgz",
- "integrity": "sha512-3LrWJX1+ULRh5SZvbIQlwZafOXqp1XuV21MGBu/i5xsztd+9VD15x6OtN6mdqSFI7/8Y77gYUbQ6vwwJ4mr6QQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz",
+ "integrity": "sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA==",
"dependencies": {
"prosemirror-state": "^1.0.0",
"prosemirror-transform": "^1.0.0"
@@ -9305,9 +9305,9 @@
}
},
"node_modules/rollup": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.0.tgz",
- "integrity": "sha512-3L67ubCc1Qm49wUodsQ72FM6JmJ9M37d63rGPjxbcKrzNJrwFipl+lDNHeWd6BId09S6Tb9KiBgYKbWhIuqVyg==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz",
+ "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@@ -9317,18 +9317,18 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.4.0",
- "@rollup/rollup-android-arm64": "4.4.0",
- "@rollup/rollup-darwin-arm64": "4.4.0",
- "@rollup/rollup-darwin-x64": "4.4.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.4.0",
- "@rollup/rollup-linux-arm64-gnu": "4.4.0",
- "@rollup/rollup-linux-arm64-musl": "4.4.0",
- "@rollup/rollup-linux-x64-gnu": "4.4.0",
- "@rollup/rollup-linux-x64-musl": "4.4.0",
- "@rollup/rollup-win32-arm64-msvc": "4.4.0",
- "@rollup/rollup-win32-ia32-msvc": "4.4.0",
- "@rollup/rollup-win32-x64-msvc": "4.4.0",
+ "@rollup/rollup-android-arm-eabi": "4.5.0",
+ "@rollup/rollup-android-arm64": "4.5.0",
+ "@rollup/rollup-darwin-arm64": "4.5.0",
+ "@rollup/rollup-darwin-x64": "4.5.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.5.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.5.0",
+ "@rollup/rollup-linux-arm64-musl": "4.5.0",
+ "@rollup/rollup-linux-x64-gnu": "4.5.0",
+ "@rollup/rollup-linux-x64-musl": "4.5.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.5.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.5.0",
+ "@rollup/rollup-win32-x64-msvc": "4.5.0",
"fsevents": "~2.3.2"
}
},
diff --git a/package.json b/package.json
index 60cfeef0..d80bd3e4 100644
--- a/package.json
+++ b/package.json
@@ -121,13 +121,13 @@
"@vaadin/icons": "24.2.3",
"@vaadin/password-field": "24.2.3",
"@vaadin/tooltip": "24.2.3",
- "@zip.js/zip.js": "2.7.30",
- "axios": "1.6.1",
- "electron": "27.0.4",
+ "@zip.js/zip.js": "2.7.31",
+ "axios": "1.6.2",
+ "electron": "27.1.0",
"electron-builder": "24.6.4",
"electron-packager": "17.1.2",
"epml": "0.3.3",
- "eslint": "8.53.0",
+ "eslint": "8.54.0",
"eslint-plugin-lit": "1.10.1",
"eslint-plugin-wc": "2.0.4",
"file-saver": "2.0.5",
@@ -140,7 +140,7 @@
"pwa-helpers": "0.9.1",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
- "rollup": "4.4.0",
+ "rollup": "4.5.0",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",
From 89735ac9b060559081d294d9535df7801f8e805d Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Sun, 19 Nov 2023 17:18:12 +0100
Subject: [PATCH 02/10] Fix syncstatus
---
.../friends-view/core-sync-status.js | 38 ++++++++++++++++---
1 file changed, 33 insertions(+), 5 deletions(-)
diff --git a/core/src/components/friends-view/core-sync-status.js b/core/src/components/friends-view/core-sync-status.js
index 7fe7d3df..534f3a9c 100644
--- a/core/src/components/friends-view/core-sync-status.js
+++ b/core/src/components/friends-view/core-sync-status.js
@@ -93,6 +93,7 @@ class CoreSyncStatus extends connect(store)(LitElement) {
}, 60000)
}
+
async getCoreInfos() {
const corInfo = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const coreInfoUrl = corInfo.protocol + '://' + corInfo.domain + ':' + corInfo.port
@@ -101,12 +102,11 @@ class CoreSyncStatus extends connect(store)(LitElement) {
return response.json()
}).then(data => {
this.coreInfos = data
- }).catch(err => {
})
}
renderSyncStatusIcon() {
- if (this.nodeStatus.isSynchronizing === true) {
+ if (this.nodeStatus.isSynchronizing === true && this.nodeStatus.syncPercent === 99) {
return html`
`
- } else if (this.nodeStatus.isSynchronizing === false && this.nodeStatus.isMintingPossible === false) {
+ } else if (this.nodeStatus.isSynchronizing === true && this.nodeStatus.isMintingPossible === false && this.nodeStatus.syncPercent === 100) {
return html`
`
- } else if (this.nodeStatus.isSynchronizing === false && this.nodeStatus.isMintingPossible === true) {
+ } else if (this.nodeStatus.isSynchronizing === false && this.nodeStatus.isMintingPossible === false && this.nodeStatus.syncPercent === 100) {
+ return html`
+
+ `
+ } else if (this.nodeStatus.isSynchronizing === true && this.nodeStatus.isMintingPossible === true && this.nodeStatus.syncPercent === 100) {
+ return html`
+
+ `
+ } else if (this.nodeStatus.isSynchronizing === false && this.nodeStatus.isMintingPossible === true && this.nodeStatus.syncPercent === 100) {
return html`
![](/img/synced_minting.png)
@@ -157,4 +185,4 @@ class CoreSyncStatus extends connect(store)(LitElement) {
}
-customElements.define('core-sync-status', CoreSyncStatus)
+customElements.define('core-sync-status', CoreSyncStatus)
\ No newline at end of file
From 57ae6fc1fb27f281d5e4fd5e6471413b346a3421 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Sun, 19 Nov 2023 17:50:01 +0100
Subject: [PATCH 03/10] New Q-App menu
---
plugins/plugins/core/q-app/q-apps.src.js | 1631 ++++++++++++----------
1 file changed, 915 insertions(+), 716 deletions(-)
diff --git a/plugins/plugins/core/q-app/q-apps.src.js b/plugins/plugins/core/q-app/q-apps.src.js
index c3136d2c..7bf724e1 100644
--- a/plugins/plugins/core/q-app/q-apps.src.js
+++ b/plugins/plugins/core/q-app/q-apps.src.js
@@ -4,16 +4,12 @@ import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import isElectron from 'is-electron'
import '@polymer/paper-spinner/paper-spinner-lite.js'
-import '@material/mwc-dialog'
+import '@polymer/paper-dialog/paper-dialog.js'
+import '@polymer/paper-icon-button/paper-icon-button.js'
+import '@polymer/iron-icons/iron-icons.js'
import '@material/mwc-icon'
import '@material/mwc-button'
import '@material/mwc-tab-bar'
-import '@material/mwc-textfield'
-import '@polymer/paper-dialog/paper-dialog.js'
-import '@vaadin/button'
-import '@vaadin/grid'
-import '@vaadin/icon'
-import '@vaadin/icons'
import '@vaadin/text-field'
registerTranslateConfig({
@@ -25,25 +21,29 @@ const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
class QApps extends LitElement {
static get properties() {
return {
- service: { type: String },
- identifier: { type: String },
- loading: { type: Boolean },
- resources: { type: Array },
- pageRes: { type: Array },
+ selectedAddress: { type: Object },
+ appsArray: { type: Array },
followedNames: { type: Array },
blockedNames: { type: Array },
- relayMode: { type: Boolean },
- btnDisabled: { type: Boolean },
- selectedAddress: { type: Object },
- searchName: { type: String },
searchResources: { type: Array },
followedResources: { type: Array },
blockedResources: { type: Array },
+ isLoading: {type: Boolean},
+ relayMode: { type: Boolean },
+ service: { type: String },
+ identifier: { type: String },
+ searchName: { type: String },
textStatus: { type: String },
textProgress: { type: String },
- theme: { type: String, reflect: true },
- hasInitiallyFetched: {type:Boolean},
- isLoading: {type: Boolean}
+ appIconUrl: { type: String },
+ appTitle: { type: String },
+ appPublisher: { type: String },
+ appDescription: { type: String },
+ appTags: { type: String },
+ appStatus: { type: String },
+ appFollow: { type: String },
+ appBlock: { type: String },
+ theme: { type: String, reflect: true }
}
}
@@ -53,15 +53,6 @@ class QApps extends LitElement {
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-button-disabled-fill-color: rgba(3, 169, 244, 0.5);
--mdc-theme-surface: var(--white);
- --mdc-text-field-outlined-idle-border-color: var(--txtfieldborder);
- --mdc-text-field-outlined-hover-border-color: var(--txtfieldhoverborder);
- --mdc-text-field-label-ink-color: var(--black);
- --mdc-text-field-ink-color: var(--black);
- --mdc-dialog-content-ink-color: var(--black);
- --mdc-dialog-shape-radius: 25px;
- --mdc-dialog-min-width: 300px;
- --mdc-dialog-max-width: auto;
- --mdc-dialog-max-height: 700px;
--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);
@@ -75,13 +66,58 @@ class QApps extends LitElement {
--_lumo-grid-secondary-border-color: var(--border2);
}
+ [hidden] {
+ display: hidden !important;
+ visibility: none !important;
+ }
+
+ h2 {
+ margin: 0;
+ }
+
+ h3 {
+ margin: 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ }
+
+ h5 {
+ margin: 5px 0;
+ font-size: 14px;
+ }
+
+ h6 {
+ margin: 5px 0;
+ text-transform: uppercase;
+ color: var(--black);
+ font-weight: 600;
+ }
+
+ h2, h3, h4, h5 {
+ color: var(--black);
+ font-weight: 400;
+ }
+
+ p {
+ font-size: 14px;
+ line-height: 21px;
+ color: var(--black);
+ }
+
+ span {
+ font-size: 14px;
+ word-break: break-all;
+ }
+
#tabs-1 {
- --mdc-tab-height: 50px;
+ --mdc-tab-height: 50px;
}
#tabs-1-content {
- height: 100%;
- padding-bottom: 10px;
+ height: 100%;
+ padding-bottom: 10px;
}
mwc-tab-bar {
@@ -90,59 +126,32 @@ class QApps extends LitElement {
--mdc-tab-text-label-color-default: var(--black);
}
- #pages {
- display: flex;
- flex-wrap: wrap;
- padding: 10px 5px 5px 5px;
- margin: 0px 20px 20px 20px;
- }
-
- #pages > button {
- user-select: none;
- padding: 5px;
- margin: 0 5px;
- border-radius: 10%;
- border: 0;
- background: transparent;
- font: inherit;
- outline: none;
- cursor: pointer;
- color: var(--black);
- }
-
- #pages > button:not([disabled]):hover,
- #pages > button:focus {
- color: #ccc;
- background-color: #eee;
- }
-
- #pages > button[selected] {
- font-weight: bold;
- color: var(--white);
- background-color: #ccc;
- }
-
- #pages > button[disabled] {
- opacity: 0.5;
- cursor: default;
- }
-
#apps-list-page {
background: var(--white);
padding: 12px 24px;
}
- #search {
- display: flex;
+ .search {
+ display: inline;
width: 50%;
align-items: center;
}
- .divCard {
- border: 1px solid var(--border);
- padding: 1em;
- box-shadow: 0 .3px 1px 0 rgba(0,0,0,0.14), 0 1px 1px -1px rgba(0,0,0,0.12), 0 1px 2px 0 rgba(0,0,0,0.20);
- margin-bottom: 2em;
+ paper-spinner-lite {
+ height: 30px;
+ width: 30px;
+ --paper-spinner-color: var(--mdc-theme-primary);
+ --paper-spinner-stroke-width: 3px;
+ }
+
+ .spinner {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
}
paper-dialog.progress {
@@ -160,98 +169,42 @@ class QApps extends LitElement {
overflow-y: auto;
}
- h2 {
- margin:0;
- }
-
- h2, h3, h4, h5 {
+ paper-dialog.search {
+ min-width: 550px;
+ max-width: 550px;
+ min-height: auto;
+ max-height: 700px;
+ background-color: var(--white);
color: var(--black);
- font-weight: 400;
+ line-height: 1.6;
+ overflow: auto;
+ border: 1px solid var(--black);
+ border-radius: 10px;
+ padding: 15px;
+ box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.1);
}
- a.visitSite {
- color: var(--black);
- text-decoration: none;
- }
-
- [hidden] {
- display: hidden !important;
- visibility: none !important;
- }
-
- .details {
- display: flex;
- font-size: 18px;
- }
-
- span {
- font-size: 14px;
- word-break: break-all;
- }
-
- select {
- padding: 13px 20px;
- width: 100%;
- font-size: 14px;
- color: #555;
- font-weight: 400;
- }
-
- .title {
- font-weight:600;
- font-size:12px;
- line-height: 32px;
- opacity: 0.66;
- }
-
- .resourceTitle {
- font-size:15px;
- line-height: 32px;
- }
-
- .resourceDescription {
- font-size:11px;
- padding-bottom: 5px;
- }
-
- .resourceCategoryTags {
- font-size:11px;
- padding-bottom: 10px;
- }
-
- .resourceRegisteredName {
- font-size:15px;
- line-height: 32px;
- }
-
- .resourceStatus, .resourceStatus span {
- font-size:11px;
- }
-
- .itemList {
- padding:0;
+ paper-dialog.appinfo {
+ width: auto;
+ max-width: 450px;
+ height: auto;
+ background-color: var(--white);
+ border: 1px solid var(--black);
+ border-radius: 15px;
+ padding: 5px;
+ overflow-y: auto;
}
.relay-mode-notice {
- margin:auto;
- text-align:center;
- word-break:normal;
- font-size:14px;
- line-height:20px;
+ margin: auto;
+ margin-top: 20px;
+ text-align: center;
+ word-break: normal;
+ font-size: 14px;
+ line-height: 20px;
color: var(--relaynodetxt);
}
- img {
- border-radius: 25%;
- max-width: 65px;
- height: 100%;
- max-height: 65px;
- }
-
- .green {
- --mdc-theme-primary: #198754;
- }
-
.lds-roller {
display: inline-block;
position: relative;
@@ -356,28 +309,261 @@ class QApps extends LitElement {
}
}
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ gap: 10px;
+ }
+
+ .grid-container-search {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 10px;
+ }
+
+ .container {
+ height: 84px;
+ width: 84px;
+ overflow: hidden;
+ margin: 10px auto;
+ border-radius: 25%;
+ border: 1px solid var(--black);
+ transition: all 0.3s ease-in-out;
+ box-shadow: 0px 1px 5px 0px rgba(0,0,0,0.3);
+ background: linear-gradient(315deg, #045de9 0%, #09c6f9 74%);
+ }
+
+ img {
+ cursor: pointer;
+ position: relative;
+ border-radius: 25%;
+ display: block;
+ height: 64px;
+ width: 64px;
+ object-fit: cover;
+ margin: 10px auto;
+ transition: all 0.3s ease;
+ }
+
+ .round-icon {
+ margin-top: -87px;
+ margin-left: 69px;
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ border: 1px solid #64dd17;
+ background-color: #76ff03;
+ }
+
+ .myapptitle {
+ display: flex;
+ justify-content: center;
+ max-height: 32px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ color: var(--black);
+ font-size: 17px;
+ font-weight: 500;
+ padding: 10px;
+ line-height: 20px;
+ margin-top: -10px;
+ text-align: center;
+ }
+
+ @media (min-width: 400px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 640px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 767px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 1024px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 1280px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 1600px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(7, 1fr);
+ gap: 10px;
+ }
+ }
+
+ @media (min-width: 1920px) {
+ .grid-container {
+ display: grid;
+ grid-template-columns: repeat(8, 1fr);
+ gap: 10px;
+ }
+ }
+
+ .card-container {
+ background-color: var(--white);
+ color: var(--black);
+ position: relative;
+ width: 350px;
+ max-width: 100%;
+ text-align: center;
+ }
+
+ .card-container .block {
+ color: rgb(3, 169, 244);
+ background-color: transparent;
+ border-radius: 3px;
+ border: 1px solid rgb(3, 169, 244);
+ font-size: 14px;
+ font-weight: bold;
+ padding: 3px 7px;
+ position: absolute;
+ top: 30px;
+ left: 30px;
+ }
+
+ .card-container .block:hover {
+ color: #FFF;
+ background-color: rgb(3, 169, 244);
+ cursor: pointer;
+ }
+
+ .card-container .close {
+ color: #df3636;
+ background-color: transparent;
+ border-radius: 3px;
+ border: 1px solid #df3636;
+ font-size: 14px;
+ font-weight: bold;
+ padding: 3px 7px;
+ position: absolute;
+ top: 30px;
+ right: 30px;
+ }
+
+ .card-container .close:hover {
+ color: #FFF;
+ background-color: #df3636;
+ cursor: pointer;
+ }
+
+ .card-container img {
+ height: 96px;
+ width: 96px;
+ }
+
+ .buttons {
+ display: flex;
+ justify-content: space-between;
+ margin: 10px;
+ }
+
+ button.primary {
+ background-color: transparent;
+ border: 1px solid rgb(3, 169, 244);
+ border-radius: 3px;
+ color: rgb(3, 169, 244);
+ font-family: Montserrat, sans-serif;
+ font-weight: 500;
+ padding: 10px 25px;
+ }
+
+ button.primary:hover {
+ background-color: rgb(3, 169, 244);
+ color: #FFF;
+ cursor: pointer;
+ }
+
+ button.secondary {
+ background-color: transparent;
+ border: 1px solid #198754;
+ border-radius: 3px;
+ color: #198754;
+ font-family: Montserrat, sans-serif;
+ font-weight: 500;
+ padding: 10px 25px;
+ }
+
+ button.secondary:hover {
+ background-color: #198754;
+ color: #FFF;
+ cursor: pointer;
+ }
+
+ .tags {
+ background-color: var(--white);
+ text-align: left;
+ padding: 10px;
+ margin-top: 10px;
+ }
+
+ .tags ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+
+ .tags ul li {
+ border: 1px solid rgb(3, 169, 244);
+ border-radius: 3px;
+ display: inline-block;
+ font-size: 12px;
+ margin: 0 7px 7px 0;
+ padding: 7px;
+ }
`
}
constructor() {
super()
- this.service = "APP"
- this.identifier = null
this.selectedAddress = {}
- this.resources = []
- this.pageRes = []
+ this.appsArray = []
this.followedNames = []
this.blockedNames = []
- this.relayMode = null
- this.isLoading = false
- this.hasInitiallyFetched = false
- this.btnDisabled = false
- this.searchName = ''
this.searchResources = []
this.followedResources = []
this.blockedResources = []
+ this.isLoading = false
+ this.relayMode = false
+ this.service = "APP"
+ this.identifier = ''
+ this.searchName = ''
this.textStatus = ''
this.textProgress = ''
+ this.appIconUrl = ''
+ this.appTitle = ''
+ this.appPublisher = ''
+ this.appDescription = ''
+ this.appTags = ''
+ this.appStatus = ''
+ this.appFollow = ''
+ this.appBlock = ''
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
}
@@ -391,172 +577,123 @@ class QApps extends LitElement {
-
-
${translate("appspage.schange1")}
- ${this.renderSearchButton()}
- ${this.renderPublishButton()}
-
-
- {
- render(html`${this.renderAvatar(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderInfo(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderPublishedBy(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderDownload(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderFollowUnfollowButton(data.item)}`, root);
- }}>
-
- {
- render(html`${this.renderBlockUnblockButton(data.item)}`, root);
- }}>
-
-
-
- ${this.isLoading ? html`
-
- ` : ''}
- ${this.isEmptyArray(this.pageRes) && this.hasInitiallyFetched ? html`
-
${translate("appspage.schange10")}
- ` : ''}
- ${this.renderRelayModeText()}
-
-
+
+
${translate("appspage.schange1")}
+ ${this.renderSearchButton()}
+ ${this.renderPublishButton()}
+
+
+ ${this.isLoading ? html`
+
+ ` : ''}
+ ${this.renderRelayModeText()}
+
-
-
${translate("appspage.schange11")}
- ${this.renderSearchButton()}
- ${this.renderPublishButton()}
-
-
${translate("appspage.schange12")}
-
- {
- render(html`${this.renderAvatar(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderInfo(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderPublishedBy(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderDownload(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderFollowUnfollowButtonTab(data.item)}`, root);
- }}>
-
-
- ${this.followedResources == null ? html`
- Loading...
- ` : ''}
- ${this.isEmptyArray(this.followedResources) ? html`
-
${translate("appspage.schange13")}
- ` : ''}
- ${this.renderRelayModeText()}
-
+
+
${translate("appspage.schange11")}
+ ${this.renderSearchButton()}
+ ${this.renderPublishButton()}
+
+
+ ${this.isLoading ? html`
+
+ ` : ''}
+ ${this.isEmptyArray(this.followedResources) ? html`
${translate("appspage.schange13")}
` : ''}
+ ${this.renderRelayModeText()}
+
-
-
${translate("appspage.schange14")}
- ${this.renderSearchButton()}
- ${this.renderPublishButton()}
-
-
${translate("appspage.schange15")}
-
- {
- render(html`${this.renderAvatar(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderInfo(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderPublishedBy(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderBlockUnblockButtonTab(data.item)}`, root);
- }}>
-
-
- ${this.blockedResources == null ? html`
- Loading...
- ` : ''}
- ${this.isEmptyArray(this.blockedResources) ? html`
-
${translate("appspage.schange16")}
- ` : ''}
- ${this.renderRelayModeText()}
-
-
-
-
- ${translate("appspage.schange4")}
-
-
-
-
- this.doSearch(e)}">
-
- ${translate("appspage.schange35")}
-
-
-
- {
- render(html`${this.renderAvatar(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderPublishedBy(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderDownload(data.item)}`, root)
- }}>
-
- {
- render(html`${this.renderFollowUnfollowButton(data.item)}`, root);
- }}>
-
- {
- render(html`${this.renderBlockUnblockButton(data.item)}`, root);
- }}>
-
-
-
-
-
- ${translate("appspage.schange41")}
- ${this.textProgress}
-
+
+
${translate("appspage.schange14")}
+ ${this.renderSearchButton()}
+ ${this.renderPublishButton()}
+
+
+ ${this.isLoading ? html`
+
+ ` : ''}
+ ${this.isEmptyArray(this.blockedResources) ? html`${translate("appspage.schange16")}
` : ''}
+ ${this.renderRelayModeText()}
+
+
+
+
+
+
+
+
+
this.doSearch(e)}" title="${translate("appspage.schange35")}">
+
this.closeSearchDialog()}" title="${translate("general.close")}">
+
+
+
+
+
+
+ ${translate("appspage.schange41")}
+ ${this.textProgress}
+
+
+
+ ${this.appBlock}
+
this.closeAppInfoDialog()}>${translate("general.close")}
+
![](${this.appIconUrl})
+
${this.appTitle}
+
${translate("appspage.schange7")}: ${this.appPublisher}
+
${this.appDescription}
+
+
+ ${this.appStatus}
+ ${this.appFollow}
+
+
+
+
+
+ ${this.appBlock}
+
this.closeBlockedInfoDialog()}>${translate("general.close")}
+
![](${this.appIconUrl})
+
${this.appTitle}
+
${translate("appspage.schange7")}: ${this.appPublisher}
+
${this.appDescription}
+
+
+
`
}
firstUpdated() {
this.changeTheme()
this.changeLanguage()
- this.showapps()
setTimeout(() => {
this.displayTabContent('browse')
}, 0)
const getFollowedNames = async () => {
- let followedNames = await parentEpml.request('apiCall', {
+ const followedNames = await parentEpml.request('apiCall', {
url: `/lists/followedNames?apiKey=${this.getApiKey()}`
})
@@ -565,7 +702,7 @@ class QApps extends LitElement {
}
const getBlockedNames = async () => {
- let blockedNames = await parentEpml.request('apiCall', {
+ const blockedNames = await parentEpml.request('apiCall', {
url: `/lists/blockedNames?apiKey=${this.getApiKey()}`
})
this.blockedNames = blockedNames
@@ -573,7 +710,7 @@ class QApps extends LitElement {
}
const getRelayMode = async () => {
- let relayMode = await parentEpml.request('apiCall', {
+ const relayMode = await parentEpml.request('apiCall', {
url: `/arbitrary/relaymode?apiKey=${this.getApiKey()}`
})
@@ -617,9 +754,6 @@ class QApps extends LitElement {
setTimeout(getFollowedNames, 1)
setTimeout(getBlockedNames, 1)
setTimeout(getRelayMode, 1)
- setTimeout(this.getFollowedNamesResource, 1)
- setTimeout(this.getBlockedNamesResource, 1)
- setInterval(this.getArbitraryResources, 600000)
configLoaded = true
}
this.config = JSON.parse(c)
@@ -630,6 +764,9 @@ class QApps extends LitElement {
setInterval(() => {
this.clearConsole()
}, 60000)
+ setInterval(() => {
+ this.getAppsArrayData()
+ }, 600000)
}
clearConsole() {
@@ -661,233 +798,475 @@ class QApps extends LitElement {
}
}
- renderCatText() {
- return html`${translate("appspage.schange26")}`
- }
-
- displayTabContent(tab) {
+ async displayTabContent(tab) {
const tabBrowseContent = this.shadowRoot.getElementById('tab-browse-content')
const tabFollowedContent = this.shadowRoot.getElementById('tab-followed-content')
const tabBlockedContent = this.shadowRoot.getElementById('tab-blocked-content')
if (tab === 'browse') {
- this.refreshapps()
tabBrowseContent.style.display = 'block'
tabFollowedContent.style.display = 'none'
tabBlockedContent.style.display = 'none'
+ await this.getAppsArrayData()
} else if (tab === 'followed') {
- this.getFollowedNamesRefresh()
- this.getFollowedNamesResource()
tabBrowseContent.style.display = 'none'
tabFollowedContent.style.display = 'block'
tabBlockedContent.style.display = 'none'
+ await this.getFollowedNamesRefresh()
+ await this.getFollowedNamesResource()
} else if (tab === 'blocked') {
- this.getBlockedNamesRefresh()
- this.getBlockedNamesResource()
tabBrowseContent.style.display = 'none'
tabFollowedContent.style.display = 'none'
tabBlockedContent.style.display = 'block'
- } else {
+ await this.getBlockedNamesRefresh()
+ await this.getBlockedNamesResource()
}
}
+ getAppsArrayData = async () => {
+ this.isLoading = true
+ this.appsArray = []
+ const appsArrayRes = await parentEpml.request('apiCall', {
+ url: `/arbitrary/resources?service=APP&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&excludeblocked=true`
+ })
+ this.appsArray = appsArrayRes
+ this.isLoading = false
+ this.renderAppGrid()
+ }
+
+ renderAppGrid() {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
+ const gridContainer = this.shadowRoot.getElementById('apps-container')
+ this.shadowRoot.getElementById('apps-container').innerHTML = ''
+
+ this.appsArray.forEach(item => {
+ const name = item.name
+ const title = item.metadata.title
+ const description = item.metadata.description
+ const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
+ let tags = 'No Tags'
+ if (item.metadata.tags != null && item.metadata.tags.length > 0) {
+ tags = item.metadata.tags.join(", ")
+ }
+ const status1 = item.status.description
+ const status2 = item.status.status
+
+ const openDialog = () => {this.openAppInfoDialog(url, title, name, description, tags, status1, status2)}
+
+ let clickTimeout
+ let isDoubleClick = false
+
+ const widgetElement = document.createElement('div')
+
+ const myImage = document.createElement('img')
+ myImage.src = `${url}`
+ myImage.onerror = function() {
+ myImage.src = '/img/incognito.png'
+ }
+ myImage.addEventListener('click', function() {
+ clickTimeout = setTimeout(function() {
+ if (!isDoubleClick) {
+ openDialog()
+ }
+ isDoubleClick = false
+ }, 250)
+ })
+ myImage.addEventListener('dblclick', function() {
+ clearTimeout(clickTimeout)
+ isDoubleClick = true
+ window.location.href = `../qdn/browser/index.html?name=${item.name}&service=APP`
+ })
+
+ const myStatus = document.createElement('div')
+ myStatus.classList.add('round-icon')
+
+ const myContainer = document.createElement('div')
+ myContainer.classList.add('container')
+ myContainer.appendChild(myImage)
+ if (item.status.description === "Published but not yet downloaded" || item.status.status === "MISSING_DATA") {
+ } else if (item.status.description === "Ready" || item.status.status === "DOWNLOADED") {
+ myContainer.appendChild(myStatus)
+ }
+
+ const myAppTitle = document.createElement('div')
+ myAppTitle.classList.add('myapptitle')
+ myAppTitle.textContent = item.metadata.title
+
+ widgetElement.appendChild(myContainer)
+ widgetElement.appendChild(myAppTitle)
+
+ gridContainer.appendChild(widgetElement)
+ })
+ }
+
+ getFollowedNamesRefresh = async () => {
+ this.isLoading = true
+ const followedNamesRes = await parentEpml.request('apiCall', {
+ url: `/lists/followedNames?apiKey=${this.getApiKey()}`
+ })
+ this.followedNames = followedNamesRes
+ this.isLoading = false
+ }
+
+ getFollowedNamesResource = async () => {
+ this.isLoading = true
+ const followedResourcesRes = await parentEpml.request('apiCall', {
+ url: `/arbitrary/resources?service=${this.service}&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&namefilter=followedNames`
+ })
+ this.followedResources = followedResourcesRes
+ this.isLoading = false
+ this.renderFollowedAppsGrid()
+ }
+
+ renderFollowedAppsGrid() {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
+ const gridContainer = this.shadowRoot.getElementById('followed-container')
+ this.shadowRoot.getElementById('followed-container').innerHTML = ''
+
+ this.followedResources.forEach(item => {
+ const name = item.name
+ const title = item.metadata.title
+ const description = item.metadata.description
+ const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
+ let tags = 'No Tags'
+ if (item.metadata.tags != null && item.metadata.tags.length > 0) {
+ tags = item.metadata.tags.join(", ")
+ }
+ const status1 = item.status.description
+ const status2 = item.status.status
+
+ const openDialog = () => {this.openAppInfoDialog(url, title, name, description, tags, status1, status2)}
+
+ let clickTimeout
+ let isDoubleClick = false
+
+ const widgetElement = document.createElement('div')
+
+ const myImage = document.createElement('img')
+ myImage.src = `${url}`
+ myImage.onerror = function() {
+ myImage.src = '/img/incognito.png'
+ }
+ myImage.addEventListener('click', function() {
+ clickTimeout = setTimeout(function() {
+ if (!isDoubleClick) {
+ openDialog()
+ }
+ isDoubleClick = false
+ }, 250)
+ })
+ myImage.addEventListener('dblclick', function() {
+ clearTimeout(clickTimeout)
+ isDoubleClick = true
+ window.location.href = `../qdn/browser/index.html?name=${item.name}&service=APP`
+ })
+
+ const myStatus = document.createElement('div')
+ myStatus.classList.add('round-icon')
+
+ const myContainer = document.createElement('div')
+ myContainer.classList.add('container')
+ myContainer.appendChild(myImage)
+ if (item.status.description === "Published but not yet downloaded" || item.status.status === "MISSING_DATA") {
+ } else if (item.status.description === "Ready" || item.status.status === "DOWNLOADED") {
+ myContainer.appendChild(myStatus)
+ }
+
+ const myAppTitle = document.createElement('div')
+ myAppTitle.classList.add('myapptitle')
+ myAppTitle.textContent = item.metadata.title
+
+ widgetElement.appendChild(myContainer)
+ widgetElement.appendChild(myAppTitle)
+
+ gridContainer.appendChild(widgetElement)
+ })
+ }
+
+ getBlockedNamesRefresh = async () => {
+ this.isLoading = true
+ const blockedNamesRes = await parentEpml.request('apiCall', {
+ url: `/lists/blockedNames?apiKey=${this.getApiKey()}`
+ })
+ this.blockedNames = blockedNamesRes
+ this.isLoading = false
+ }
+
+ getBlockedNamesResource = async () => {
+ this.isLoading = true
+ this.blockedResources = []
+ const blockedResourcesRes = await parentEpml.request('apiCall', {
+ url: `/arbitrary/resources?service=${this.service}&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&namefilter=blockedNames`
+ })
+ this.blockedResources = blockedResourcesRes
+ this.isLoading = false
+ this.renderBlockedAppsGrid()
+ }
+
+ renderBlockedAppsGrid() {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
+ const gridContainer = this.shadowRoot.getElementById('blocked-container')
+ this.shadowRoot.getElementById('blocked-container').innerHTML = ''
+
+ this.blockedResources.forEach(item => {
+ const name = item.name
+ const title = item.metadata.title
+ const description = item.metadata.description
+ const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
+ let tags = 'No Tags'
+ if (item.metadata.tags != null && item.metadata.tags.length > 0) {
+ tags = item.metadata.tags.join(", ")
+ }
+ const status1 = item.status.description
+ const status2 = item.status.status
+
+ const openDialog = () => {this.openBlockedInfoDialog(url, title, name, description, tags, status1, status2)}
+
+ let clickTimeout
+ let isDoubleClick = false
+
+ const widgetElement = document.createElement('div')
+
+ const myImage = document.createElement('img')
+ myImage.src = `${url}`
+ myImage.onerror = function() {
+ myImage.src = '/img/incognito.png'
+ }
+ myImage.addEventListener('click', function() {
+ clickTimeout = setTimeout(function() {
+ if (!isDoubleClick) {
+ openDialog()
+ }
+ isDoubleClick = false
+ }, 250)
+ })
+ myImage.addEventListener('dblclick', function() {
+ clearTimeout(clickTimeout)
+ isDoubleClick = true
+ })
+
+ const myStatus = document.createElement('div')
+ myStatus.classList.add('round-icon')
+
+ const myContainer = document.createElement('div')
+ myContainer.classList.add('container')
+ myContainer.appendChild(myImage)
+ if (item.status.description === "Published but not yet downloaded" || item.status.status === "MISSING_DATA") {
+ } else if (item.status.description === "Ready" || item.status.status === "DOWNLOADED") {
+ myContainer.appendChild(myStatus)
+ }
+
+ const myAppTitle = document.createElement('div')
+ myAppTitle.classList.add('myapptitle')
+ myAppTitle.textContent = item.metadata.title
+
+ widgetElement.appendChild(myContainer)
+ widgetElement.appendChild(myAppTitle)
+
+ gridContainer.appendChild(widgetElement)
+ })
+ }
+
+ openAppInfoDialog(url, title, name, description, tags, status1, status2) {
+ this.appIconUrl = ''
+ this.appTitle = ''
+ this.appPublisher = ''
+ this.appDescription = ''
+ this.appTags = ''
+ this.appStatus = ''
+ this.appFollow = ''
+ this.appBlock = ''
+ this.appIconUrl = url
+ this.appTitle = title
+ this.appPublisher = name
+ this.appDescription = description
+ this.appTags = tags
+ if (status1 === "Published but not yet downloaded" || status2 === "MISSING_DATA") {
+ this.appStatus = html``
+ } else if (status1 === "Ready" || status2 === "DOWNLOADED") {
+ this.appStatus = html``
+ }
+ if (this.followedNames.indexOf(name) === -1) {
+ this.appFollow = html``
+ } else {
+ this.appFollow = html``
+ }
+ if (this.blockedNames.indexOf(name) === -1) {
+ this.appBlock = html` this.blockName(name)}>${translate("appspage.schange31")}`
+ } else {
+ this.appBlock = html` this.unblockName(name)}>${translate("appspage.schange32")}`
+ }
+ this.shadowRoot.getElementById('appInfoDialog').open()
+ }
+
+ closeAppInfoDialog() {
+ this.shadowRoot.getElementById('appInfoDialog').close()
+ this.appIconUrl = ''
+ this.appTitle = ''
+ this.appPublisher = ''
+ this.appDescription = ''
+ this.appTags = ''
+ this.appStatus = ''
+ this.appFollow = ''
+ this.appBlock = ''
+ }
+
+ openBlockedInfoDialog(url, title, name, description, tags, status1, status2) {
+ this.appIconUrl = ''
+ this.appTitle = ''
+ this.appPublisher = ''
+ this.appDescription = ''
+ this.appTags = ''
+ this.appStatus = ''
+ this.appFollow = ''
+ this.appBlock = ''
+ this.appIconUrl = url
+ this.appTitle = title
+ this.appPublisher = name
+ this.appDescription = description
+ this.appTags = tags
+ if (this.blockedNames.indexOf(name) === -1) {
+ this.appBlock = html` this.blockName(name)}>${translate("appspage.schange31")}`
+ } else {
+ this.appBlock = html` this.unblockName(name)}>${translate("appspage.schange32")}`
+ }
+ this.shadowRoot.getElementById('blockedInfodDialog').open()
+ }
+
+ closeBlockedInfoDialog() {
+ this.shadowRoot.getElementById('blockedInfodDialog').close()
+ this.appIconUrl = ''
+ this.appTitle = ''
+ this.appPublisher = ''
+ this.appDescription = ''
+ this.appTags = ''
+ this.appStatus = ''
+ this.appFollow = ''
+ this.appBlock = ''
+ }
+
+ renderSearchButton() {
+ return html` this.openSearchDialog()}>search${translate("appspage.schange4")}`
+ }
+
+ async doSearch(e) {
+ await this.searchResult()
+ }
+
searchListener(e) {
if (e.key === 'Enter') {
this.doSearch(e)
}
}
- async getResourcesGrid() {
- this.resourcesGrid = this.shadowRoot.querySelector(`#resourcesGrid`)
- this.pagesControl = this.shadowRoot.querySelector('#pages')
- this.pages = undefined
- }
-
- getArbitraryResources = async () => {
- const resources = await parentEpml.request('apiCall', {
- url: `/arbitrary/resources?service=${this.service}&default=true&limit=0&reverse=false&includestatus=false&includemetadata=false&excludeblocked=true`
- })
- this.resources = resources
- }
-
- getFollowedNamesResource = async () => {
- const followedRes = await parentEpml.request('apiCall', {
- url: `/arbitrary/resources?service=${this.service}&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&namefilter=followedNames`
- })
- this.followedResources = followedRes
- }
-
- getFollowedNamesRefresh = async () => {
- let followedNames = await parentEpml.request('apiCall', {
- url: `/lists/followedNames?apiKey=${this.getApiKey()}`
- })
- this.followedNames = followedNames
- }
-
- getBlockedNamesResource = async () => {
- const blockedRes = await parentEpml.request('apiCall', {
- url: `/arbitrary/resources?service=${this.service}&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&namefilter=blockedNames`
- })
- this.blockedResources = blockedRes
- }
-
- getBlockedNamesRefresh = async () => {
- let blockedNames = await parentEpml.request('apiCall', {
- url: `/lists/blockedNames?apiKey=${this.getApiKey()}`
- })
- this.blockedNames = blockedNames
- }
-
- async getData(offset) {
- const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
- const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
- let jsonOffsetUrl = `${nodeUrl}/arbitrary/resources?service=APP&default=true&limit=20&offset=${offset}&reverse=false&includestatus=true&includemetadata=true&excludeblocked=true`
- this.isLoading = true
-
- const jsonOffsetRes = await fetch(jsonOffsetUrl)
- const jsonOffsetData = await jsonOffsetRes.json()
-
- this.pageRes = jsonOffsetData
- if(!this.hasInitiallyFetched){
- this.hasInitiallyFetched = true
- }
- this.isLoading = false
- }
-
- async updateItemsFromPage(page) {
- if (page === undefined) {
- return
- }
-
- if (!this.pages) {
- this.pages = Array.apply(null, { length: Math.ceil(this.resources.length / 20) }).map((item, index) => {
- return index + 1
- })
-
- let offset = 0
-
- const prevBtn = document.createElement('button')
- prevBtn.textContent = '<'
- prevBtn.addEventListener('click', () => {
- if (parseInt(this.pagesControl.querySelector('[selected]').textContent) > 1) {
- offset = (parseInt(this.pagesControl.querySelector('[selected]').textContent) - 2) * 20
- } else {
- offset = 0
- }
- this.getData(offset)
- const selectedPage = parseInt(this.pagesControl.querySelector('[selected]').textContent)
- this.updateItemsFromPage(selectedPage - 1)
- })
- this.pagesControl.appendChild(prevBtn)
-
- this.pages.forEach((pageNumber) => {
- const pageBtn = document.createElement('button')
- pageBtn.textContent = pageNumber
- let offset = 0
- pageBtn.addEventListener('click', (e) => {
- if (parseInt(e.target.textContent) > 1) {
- offset = (parseInt(e.target.textContent) - 1) * 20
- } else {
- offset = 0
- }
- this.getData(offset)
- this.updateItemsFromPage(parseInt(e.target.textContent))
- })
- if (pageNumber === page) {
- pageBtn.setAttribute('selected', true)
- }
- this.pagesControl.appendChild(pageBtn)
- })
-
- const nextBtn = window.document.createElement('button')
- nextBtn.textContent = '>'
- nextBtn.addEventListener('click', () => {
- if (parseInt(this.pagesControl.querySelector('[selected]').textContent) >= 1) {
- offset = ((parseInt(this.pagesControl.querySelector('[selected]').textContent) + 1) * 20) - 20
- } else {
- offset = 0
- }
- this.getData(offset)
- const selectedPage = parseInt(this.pagesControl.querySelector('[selected]').textContent)
- this.updateItemsFromPage(selectedPage + 1)
- })
- this.pagesControl.appendChild(nextBtn)
- }
-
- const buttons = Array.from(this.pagesControl.children)
- buttons.forEach((btn, index) => {
- if (parseInt(btn.textContent) === page) {
- btn.setAttribute('selected', true)
- } else {
- btn.removeAttribute('selected')
- }
- if (index === 0) {
- if (page === 1) {
- btn.setAttribute('disabled', '')
- } else {
- btn.removeAttribute('disabled')
- }
- }
- if (index === buttons.length - 1) {
- if (page === this.pages.length) {
- btn.setAttribute('disabled', '')
- } else {
- btn.removeAttribute('disabled')
- }
- }
- })
- }
-
- async showapps() {
- await this.getData(0)
- await this.getArbitraryResources()
- await this.getResourcesGrid()
- await this.updateItemsFromPage(1, true)
- }
-
- async refreshapps() {
- await this.getData(0)
- await this.getArbitraryResources()
- await this.updateItemsFromPage(1, true)
- }
-
- doSearch(e) {
- this.searchResult()
- }
-
async searchResult() {
let searchName = this.shadowRoot.getElementById('searchName').value
if (searchName.length === 0) {
let err1string = get("appspage.schange34")
parentEpml.request('showSnackBar', `${err1string}`)
} else {
- let searchResources = await parentEpml.request('apiCall', {
- url: `/arbitrary/resources/search?service=${this.service}&query=${searchName}&default=true&limit=5&reverse=false&includestatus=true&includemetadata=true`
+ const searchResourcesRes = await parentEpml.request('apiCall', {
+ url: `/arbitrary/resources/search?service=${this.service}&query=${searchName}&default=true&limit=0&reverse=false&includestatus=true&includemetadata=true&excludeblocked=true`
})
- if (this.isEmptyArray(searchResources)) {
+ if (this.isEmptyArray(searchResourcesRes)) {
let err2string = get("appspage.schange17")
parentEpml.request('showSnackBar', `${err2string}`)
} else {
- this.searchResources = searchResources
+ this.searchResources = searchResourcesRes
+ this.renderSearchAppsGrid()
}
}
}
- renderAvatar(appObj) {
- let name = appObj.name
+ renderSearchAppsGrid() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
- const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
- return html`
`
+ const gridContainer = this.shadowRoot.getElementById('search-container')
+ this.shadowRoot.getElementById('search-container').innerHTML = ''
+
+ this.searchResources.forEach(item => {
+ const name = item.name
+ const title = item.metadata.title
+ const description = item.metadata.description
+ const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
+ let tags = 'No Tags'
+ if (item.metadata.tags != null && item.metadata.tags.length > 0) {
+ tags = item.metadata.tags.join(", ")
+ }
+ const status1 = item.status.description
+ const status2 = item.status.status
+
+ const openDialog = () => {this.openAppInfoDialog(url, title, name, description, tags, status1, status2)}
+
+ let clickTimeout
+ let isDoubleClick = false
+
+ const widgetElement = document.createElement('div')
+
+ const myImage = document.createElement('img')
+ myImage.src = `${url}`
+ myImage.onerror = function() {
+ myImage.src = '/img/incognito.png'
+ }
+ myImage.addEventListener('click', function() {
+ clickTimeout = setTimeout(function() {
+ if (!isDoubleClick) {
+ openDialog()
+ }
+ isDoubleClick = false
+ }, 250)
+ })
+ myImage.addEventListener('dblclick', function() {
+ clearTimeout(clickTimeout)
+ isDoubleClick = true
+ window.location.href = `../qdn/browser/index.html?name=${item.name}&service=APP`
+ })
+
+ const myStatus = document.createElement('div')
+ myStatus.classList.add('round-icon')
+
+ const myContainer = document.createElement('div')
+ myContainer.classList.add('container')
+ myContainer.appendChild(myImage)
+ if (item.status.description === "Published but not yet downloaded" || item.status.status === "MISSING_DATA") {
+ } else if (item.status.description === "Ready" || item.status.status === "DOWNLOADED") {
+ myContainer.appendChild(myStatus)
+ }
+
+ const myAppTitle = document.createElement('div')
+ myAppTitle.classList.add('myapptitle')
+ myAppTitle.textContent = item.metadata.title
+
+ widgetElement.appendChild(myContainer)
+ widgetElement.appendChild(myAppTitle)
+
+ gridContainer.appendChild(widgetElement)
+ })
+ this.shadowRoot.getElementById('searchAppDialog').notifyResize()
+ }
+
+ openSearchDialog() {
+ this.searchResources = []
+ this.shadowRoot.getElementById('searchName').value = ''
+ this.shadowRoot.getElementById('search-container').innerHTML = ''
+ this.shadowRoot.getElementById('searchAppDialog').open()
+ }
+
+ closeSearchDialog() {
+ this.searchResources = []
+ this.shadowRoot.getElementById('searchName').value = ''
+ this.shadowRoot.getElementById('search-container').innerHTML = ''
+ this.shadowRoot.getElementById('searchAppDialog').close()
}
renderRelayModeText() {
if (this.relayMode === true) {
return html`${translate("appspage.schange18")} "relayModeEnabled": false ${translate("appspage.schange19")} settings.json
`
- }
- else if (this.relayMode === false) {
+ } else if (this.relayMode === false) {
return html`${translate("appspage.schange20")} "relayModeEnabled": true ${translate("appspage.schange19")} settings.json
`
}
- return html``
}
renderPublishButton() {
@@ -897,37 +1276,21 @@ class QApps extends LitElement {
return html` this.publishApp()}>add${translate("appspage.schange21")}`
}
- renderSearchButton() {
- return html` this.openSearchDialog()}>search${translate("appspage.schange4")}`
+ publishApp() {
+ window.location.href = `../qdn/publish/index.html?service=${this.service}&identifier=${this.identifier}&uploadType=zip&category=app&showName=true&showService=false&showIdentifier=false&showMetadata=true`
}
- openSearchDialog() {
- this.searchResources = []
- this.shadowRoot.getElementById('searchName').value = ''
- this.shadowRoot.getElementById('searchAppDialog').show()
- }
-
- renderDownload(downObj) {
- if (downObj.status.description === "Published but not yet downloaded" || downObj.status.status === "MISSING_DATA") {
- return html` this.downloadApp(downObj)}>`
- } else if (downObj.status.description === "Ready" || downObj.status.status === "DOWNLOADED") {
- return html``
- } else {
- return html``
- }
- }
-
- async downloadApp(downObj) {
- this.showChunks(downObj)
+ async downloadApp(appname) {
+ this.showChunks(appname)
await parentEpml.request('apiCall', {
- url: `/arbitrary/resource/status/APP/${downObj.name}?build=true&apiKey=${this.getApiKey()}`
+ url: `/arbitrary/resource/status/APP/${appname}?build=true&apiKey=${this.getApiKey()}`
})
}
- showChunks(downObj) {
+ showChunks(appname) {
const checkStatus = async () => {
const service = this.service
- const name = downObj.name
+ const name = appname
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
@@ -951,58 +1314,50 @@ class QApps extends LitElement {
const status = await response.json()
if (status.id === "UNSUPPORTED") {
- this.btnDisabled = false
this.textProgress = ''
clearTimeout(timerDownload)
this.textStatus = status.description
} else if (status.id === "BLOCKED") {
- this.btnDisabled = false
this.textProgress = ''
this.textStatus = name + " is blocked so content cannot be served"
clearTimeout(timerDownload)
timerDownload = setTimeout(checkStatus, 5000)
} else if (status.id === "READY") {
- this.btnDisabled = false
clearTimeout(timerDownload)
this.textStatus = ''
this.textProgress = ''
this.shadowRoot.getElementById('downloadProgressDialog').close()
- this.getData(0)
+ this.closeAppInfoDialog()
+ this.getAppsArrayData()
this.getFollowedNamesRefresh()
this.getFollowedNamesResource()
this.updateComplete.then(() => this.requestUpdate())
} else if (status.id === "BUILDING") {
- this.btnDisabled = true
this.textProgress = ''
this.textStatus = status.description
clearTimeout(timerDownload)
timerDownload = setTimeout(checkStatus, 1000)
} else if (status.id === "BUILD_FAILED") {
- this.btnDisabled = false
this.textProgress = ''
clearTimeout(timerDownload)
this.textStatus = status.description
} else if (status.id === "NOT_STARTED") {
- this.btnDisabled = false
this.textProgress = ''
this.textStatus = status.description
clearTimeout(timerDownload)
timerDownload = setTimeout(checkStatus, 1000)
} else if (status.id === "DOWNLOADING") {
- this.btnDisabled = true
this.textStatus = status.description
let progressString = get("appspage.schange42")
this.textProgress = progressString + ": " + status.localChunkCount + " / " + status.totalChunkCount
clearTimeout(timerDownload)
timerDownload = setTimeout(checkStatus, 1000)
} else if (status.id === "MISSING_DATA") {
- this.btnDisabled = true
this.textProgress = ''
this.textStatus = status.description
clearTimeout(timerDownload)
timerDownload = setTimeout(checkStatus, 5000)
} else if (status.id === "DOWNLOADED") {
- this.btnDisabled = true
this.textProgress = ''
this.textStatus = status.description
clearTimeout(timerDownload)
@@ -1012,12 +1367,8 @@ class QApps extends LitElement {
checkStatus()
}
- publishApp() {
- window.location.href = `../qdn/publish/index.html?service=${this.service}&identifier=${this.identifier}&uploadType=zip&category=app&showName=true&showService=false&showIdentifier=false&showMetadata=true`
- }
-
- async followName(appObj) {
- let name = appObj.name
+ async followName(appName) {
+ let name = appName
let items = [
name
]
@@ -1035,6 +1386,7 @@ class QApps extends LitElement {
if (ret === true) {
this.followedNames = this.followedNames.filter(item => item != name)
this.followedNames.push(name)
+ this.closeAppInfoDialog()
this.getFollowedNamesRefresh()
this.getFollowedNamesResource()
} else {
@@ -1044,8 +1396,8 @@ class QApps extends LitElement {
return ret
}
- async unfollowName(appObj) {
- let name = appObj.name
+ async unfollowName(appName) {
+ let name = appName
let items = [
name
]
@@ -1062,6 +1414,9 @@ class QApps extends LitElement {
if (ret === true) {
this.followedNames = this.followedNames.filter(item => item != name)
+ this.closeAppInfoDialog()
+ this.getFollowedNamesRefresh()
+ this.getFollowedNamesResource()
} else {
let err4string = get("appspage.schange23")
parentEpml.request('showSnackBar', `${err4string}`)
@@ -1069,35 +1424,8 @@ class QApps extends LitElement {
return ret
}
- async unfollowNameTab(appObj) {
- let name = appObj.name
- let items = [
- name
- ]
- let namesJsonString = JSON.stringify({ "items": items })
-
- let ret = await parentEpml.request('apiCall', {
- url: `/lists/followedNames?apiKey=${this.getApiKey()}`,
- method: 'DELETE',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: `${namesJsonString}`
- })
-
- if (ret === true) {
- this.followedNames = this.followedNames.filter(item => item != name)
- this.getFollowedNamesRefresh()
- this.getFollowedNamesResource()
- } else {
- let err4string = get("websitespage.schange23")
- parentEpml.request('showSnackBar', `${err4string}`)
- }
- return ret
- }
-
- async blockName(appObj) {
- let name = appObj.name
+ async blockName(appName) {
+ let name = appName
let items = [
name
]
@@ -1115,6 +1443,10 @@ class QApps extends LitElement {
if (ret === true) {
this.blockedNames = this.blockedNames.filter(item => item != name)
this.blockedNames.push(name)
+ this.closeAppInfoDialog()
+ this.getAppsArrayData()
+ this.getBlockedNamesRefresh()
+ this.getBlockedNamesResource()
} else {
let err5string = get("appspage.schange24")
parentEpml.request('showSnackBar', `${err5string}`)
@@ -1122,8 +1454,8 @@ class QApps extends LitElement {
return ret
}
- async unblockName(appObj) {
- let name = appObj.name
+ async unblockName(appName) {
+ let name = appName
let items = [
name
]
@@ -1140,6 +1472,9 @@ class QApps extends LitElement {
if (ret === true) {
this.blockedNames = this.blockedNames.filter(item => item != name)
+ this.closeBlockedInfoDialog()
+ this.getBlockedNamesRefresh()
+ this.getBlockedNamesResource()
} else {
let err6string = get("appspage.schange25")
parentEpml.request('showSnackBar', `${err6string}`)
@@ -1147,150 +1482,14 @@ class QApps extends LitElement {
return ret
}
- async unblockNameTab(appObj) {
- let name = appObj.name
- let items = [
- name
- ]
- let namesJsonString = JSON.stringify({ "items": items })
-
- let ret = await parentEpml.request('apiCall', {
- url: `/lists/blockedNames?apiKey=${this.getApiKey()}`,
- method: 'DELETE',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: `${namesJsonString}`
- })
-
- if (ret === true) {
- this.blockedNames = this.blockedNames.filter(item => item != name)
- this.getBlockedNamesRefresh()
- this.getBlockedNamesResource()
- } else {
- let err6string = get("websitespage.schange25")
- parentEpml.request('showSnackBar', `${err6string}`)
- }
- return ret
- }
-
- renderInfo(appObj) {
- let name = appObj.name
- let title = name
- let description = ""
- let categoryName = this.renderCatText()
- let tags = ""
- let sizeReadable = ""
-
- if (appObj.metadata != null) {
- title = appObj.metadata.title
- description = appObj.metadata.description
- categoryName = appObj.metadata.categoryName
- if (appObj.metadata.tags != null && appObj.metadata.tags.length > 0) {
- tags = "Tags: " + appObj.metadata.tags.join(", ")
- }
- }
-
- if (appObj.size != null) {
- sizeReadable = this.bytesToSize(appObj.size)
- }
-
- return html`
- ${title}
- ${description}
-
- ${categoryName}
- ${tags.length > 0 ? " | " : ""}
- ${tags}
- ${sizeReadable.length > 0 ? " | " : ""}
- ${translate("appspage.schange27")}: ${sizeReadable}
-
- `
- }
-
- renderPublishedBy(appObj) {
- if (appObj.status != null) {
- return html`
- ${appObj.name}
- ${translate("appspage.schange28")}: ${appObj.status.title}
- `
- } else {
- return html`
- ${appObj.name}
- ${translate("appspage.schange28")}: Published
- `
- }
- }
-
- renderSize(appObj) {
- if (appObj.size === null) {
+ renderSize(size) {
+ if (size === null) {
return html``
}
- let sizeReadable = this.bytesToSize(appObj.size)
+ let sizeReadable = this.bytesToSize(size)
return html`${sizeReadable}`
}
- renderFollowUnfollowButton(appObj) {
- let name = appObj.name
-
- if (this.followedNames == null || !Array.isArray(this.followedNames)) {
- return html``
- }
-
- if (this.followedNames.indexOf(name) === -1) {
- return html` this.followName(appObj)}>add_to_queue ${translate("appspage.schange29")}`
- } else {
- return html` this.unfollowName(appObj)}>remove_from_queue ${translate("appspage.schange30")}`
- }
- }
-
- renderFollowUnfollowButtonTab(appObj) {
- let name = appObj.name
-
- if (this.followedNames == null || !Array.isArray(this.followedNames)) {
- return html``
- }
-
- if (this.followedNames.indexOf(name) === -1) {
- return html` this.followNameTab(appObj)}>add_to_queue ${translate("appspage.schange29")}`
- }
- else {
- return html` this.unfollowNameTab(appObj)}>remove_from_queue ${translate("appspage.schange30")}`
- }
- }
-
- renderBlockUnblockButton(appObj) {
- let name = appObj.name
-
- if (this.blockedNames == null || !Array.isArray(this.blockedNames)) {
- return html``
- }
-
- if (this.blockedNames.indexOf(name) === -1) {
- return html` this.blockName(appObj)}>block ${translate("appspage.schange31")}`
- } else {
- return html` this.unblockName(appObj)}>radio_button_unchecked ${translate("appspage.schange32")}`
- }
- }
-
- renderBlockUnblockButtonTab(appObj) {
- let name = appObj.name
-
- // Only show the block/unblock button if we have permission to modify the list on this node
- if (this.blockedNames == null || !Array.isArray(this.blockedNames)) {
- return html``
- }
-
- if (this.blockedNames.indexOf(name) === -1) {
- // render block button
- return html` this.blockNameTab(appObj)}>block ${translate("appspage.schange31")}`
- }
- else {
- // render unblock button
- return html` this.unblockNameTab(appObj)}>radio_button_unchecked ${translate("appspage.schange32")}`
- }
- }
-
bytesToSize(bytes) {
var sizes = ['bytes', 'KB', 'MB', 'GB', 'TB']
if (bytes == 0) return '0 bytes'
@@ -1310,4 +1509,4 @@ class QApps extends LitElement {
}
}
-window.customElements.define('q-apps', QApps)
+window.customElements.define('q-apps', QApps)
\ No newline at end of file
From bf64ab88c5acc969f1c583ef247d18f0e24ce994 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Sun, 19 Nov 2023 18:09:33 +0100
Subject: [PATCH 04/10] Fix 2 syncstatus
---
.../components/friends-view/core-sync-status.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/core/src/components/friends-view/core-sync-status.js b/core/src/components/friends-view/core-sync-status.js
index 534f3a9c..f8f2190b 100644
--- a/core/src/components/friends-view/core-sync-status.js
+++ b/core/src/components/friends-view/core-sync-status.js
@@ -176,6 +176,20 @@ class CoreSyncStatus extends connect(store)(LitElement) {
`
+ } else {
+ return html`
+
+ `
}
}
From bc3cc642704d2acb86f7aaabe8995eb1f280dc79 Mon Sep 17 00:00:00 2001
From: QuickMythril
Date: Sun, 19 Nov 2023 22:20:06 -0500
Subject: [PATCH 05/10] Fix voting on option index "zero"
---
plugins/plugins/core/qdn/browser/browser.src.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js
index 6af9ba31..f3c24b9e 100644
--- a/plugins/plugins/core/qdn/browser/browser.src.js
+++ b/plugins/plugins/core/qdn/browser/browser.src.js
@@ -1515,7 +1515,7 @@ class WebBrowser extends LitElement {
const missingFields = []
requiredFields.forEach((field) => {
- if (!data[field]) {
+ if (!data[field] && data[field] !== 0) {
missingFields.push(field)
}
})
From e33beb5e8a9482414479068f79f295e8723c2fee Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Mon, 20 Nov 2023 15:25:41 +0100
Subject: [PATCH 06/10] Update translations
---
core/language/de.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/es.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/et.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/fr.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/hindi.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/hr.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/hu.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/it.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/jp.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/ko.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/nl.json | 3 ++-
core/language/no.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/pl.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/pt.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/ro.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/rs.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/ru.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/us.json | 4 ++--
core/language/zhc.json | 46 ++++++++++++++++++++++++++++++++++++----
core/language/zht.json | 46 ++++++++++++++++++++++++++++++++++++----
20 files changed, 760 insertions(+), 75 deletions(-)
diff --git a/core/language/de.json b/core/language/de.json
index de9060c8..4ac4bbd1 100644
--- a/core/language/de.json
+++ b/core/language/de.json
@@ -209,7 +209,11 @@
"exp4": "Bitte wählen Sie eine Brieftasche aus, um den privaten Hauptschlüssel zu sichern.",
"core": "Core-Einstellungen starten",
"qappNotification1": "Q-App Benachrichtigungen",
- "selectnode": "Bitte wählen Sie eine Option"
+ "selectnode": "Bitte wählen Sie eine Option",
+ "arrr1": "ARRR-Wallet nicht initialisiert!",
+ "arrr2": "Bitte gehen Sie zur Registerkarte „Wallet“ und initialisieren Sie zuerst Ihre arrr-Wallet.",
+ "arrr3": "Core-Update erforderlich!",
+ "arrr4": "Um den privaten Schlüssel Ihrer arrr-Wallet zu speichern, benötigen Sie zuerst ein Core-Update!"
},
"appinfo": {
"blockheight": "Blockhöhe",
@@ -605,7 +609,8 @@
"schange39": "Öffnen",
"schange40": "Vorschau",
"schange41": "Wird heruntergeladen, bitte warten...",
- "schange42": "Heruntergeladene Dateien"
+ "schange42": "Heruntergeladene Dateien",
+ "schange43": "Alle versuchten Downloads werden im Hintergrund fortgesetzt. Bitte versuchen Sie es nach einer Weile erneut."
},
"tubespage": {
"schange1": "Q-Tubes durchsuchen",
@@ -729,7 +734,12 @@
"bchange46": "Geben Sie dieser Anwendung die Erlaubnis, die folgende Datei zu speichern?",
"bchange47": "Sofortige Veröffentlichung – erforderlich",
"bchange48": "Erteilen Sie dieser Anwendung die Berechtigung, Ihnen Benachrichtigungen zu senden?",
- "bchange49": "Erteilen Sie dieser Anwendung die Erlaubnis, Ihr Wallet-Informationen abzurufen?"
+ "bchange49": "Erteilen Sie dieser Anwendung die Erlaubnis, Ihr Wallet-Informationen abzurufen?",
+ "bchange50": "Diese App hat eine Änderung Ihres öffentlichen Profils angefordert. Eigenschaft:",
+ "bchange51": "Um die Änderungen zu übermitteln, vergessen Sie nicht, auf ‚Profil aktualisieren‘ zu klicken",
+ "bchange52": "Erteilen Sie dieser Anwendung die Berechtigung, Ihre Wallet-Informationen abzurufen?",
+ "bchange53": "Erlaube immer, dass deine Freundesliste automatisch von allen Apps abgerufen wird",
+ "bchange54": "Erteilen Sie dieser Anwendung die Berechtigung, auf Ihre Freundesliste zuzugreifen?"
},
"datapage": {
"dchange1": "Datenmanagement",
@@ -1214,5 +1224,33 @@
"saving2": "Nichts zu speichern",
"saving3": "Speichern Sie nicht gespeicherte Änderungen",
"saving4": "Veränderungen rückgängig machen"
+ },
+ "profile": {
+ "profile1": "Sie haben keinen Namen",
+ "profile2": "Gehe zur Namensregistrierung",
+ "profile3": "Profil aktualisieren",
+ "profile4": "Slogan",
+ "profile5": "Bio",
+ "profile6": "Wallet-Adressen",
+ "profile7": "Von der Benutzeroberfläche ausfüllen",
+ "profile8": "Benutzerdefinierte Eigenschaft hinzufügen",
+ "profile9": "Eigenschaftsname",
+ "profile10": "Felder",
+ "profile11": "Feld hinzufügen",
+ "profile12": "Feldname",
+ "profile13": "Feldwert",
+ "profile14": "Aktivität",
+ "profile15": "Kein Wert",
+ "profile16": "Dieser Name hat kein Profil",
+ "profile17": "Profil konnte nicht abgerufen werden",
+ "profile18": "Profil öffnen",
+ "profile19": "Profil kann nicht abgerufen werden",
+ "profile20": "Name registrieren",
+ "profile21": "Adresse aus der Benutzeroberfläche einfügen",
+ "profile22": "Erfolg",
+ "profile23": "verschlüsselt",
+ "profile24": "Sie müssen sowohl den Feldnamen als auch den Feldwert ausfüllen, um eine benutzerdefinierte Eigenschaft hinzuzufügen",
+ "profile25": "Ist dein Freund",
+ "profile26": "Als Freund hinzufügen"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/es.json b/core/language/es.json
index 3d1aff4f..74b9df22 100644
--- a/core/language/es.json
+++ b/core/language/es.json
@@ -209,7 +209,11 @@
"exp4": "Elija una billetera para hacer una copia de seguridad de la clave maestra privada.",
"core": "Iniciar configuración básica",
"qappNotification1": "Notificaciones de Q-App",
- "selectnode": "Por favor seleccione una opción"
+ "selectnode": "Por favor seleccione una opción",
+ "arrr1": "¡Cartera ARRR no inicializada!",
+ "arrr2": "Por favor, vaya a la pestaña de billetera e inicialice su billetera arrr primero.",
+ "arrr3": "¡Necesita actualización principal!",
+ "arrr4": "¡Para guardar la clave privada de tu billetera arrr, primero necesitas una actualización básica!"
},
"appinfo": {
"blockheight": "Altura del Bloque",
@@ -605,7 +609,8 @@
"schange39": "Abrir",
"schange40": "Vista previa",
"schange41": "Descargando por favor espere...",
- "schange42": "Archivos descargados"
+ "schange42": "Archivos descargados",
+ "schange43": "Cualquier intento de descarga continuará en segundo plano; inténtelo de nuevo después de un tiempo."
},
"tubespage": {
"schange1": "Explorar Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "¿Le das permiso a esta aplicación para guardar el siguiente archivo?",
"bchange47": "Publicación instantánea - requiere",
"bchange48": "¿Le das permiso a esta aplicación para enviarte notificaciones?",
- "bchange49": "¿Le das permiso a esta aplicación para obtener la información de tu billetera?"
+ "bchange49": "¿Le das permiso a esta aplicación para obtener la información de tu billetera?",
+ "bchange50": "Esta aplicación ha solicitado un cambio en tu perfil público. Propiedad: ",
+ "bchange51": "Para enviar los cambios no olvides hacer clic en 'Actualizar perfil'",
+ "bchange52": "¿Le das permiso a esta aplicación para obtener la información de tu billetera?",
+ "bchange53": "Permitir siempre que todas las aplicaciones recuperen automáticamente tu lista de amigos",
+ "bchange54": "¿Le das permiso a esta aplicación para acceder a tu lista de amigos?"
},
"datapage": {
"dchange1": "Gestión de datos",
@@ -1214,5 +1224,33 @@
"saving2": "Nada que salvar",
"saving3": "Guardar cambios no guardados",
"saving4": "Deshacer cambios"
+ },
+ "profile": {
+ "profile1": "No tienes nombre",
+ "profile2": "Ir al registro de nombre",
+ "profile3": "Actualizar perfil",
+ "profile4": "Lema",
+ "perfil5": "Biografía",
+ "profile6": "Direcciones de billetera",
+ "profile7": "Rellenar desde la interfaz de usuario",
+ "profile8": "Agregar propiedad personalizada",
+ "profile9": "Nombre de propiedad",
+ "profile10": "Campos",
+ "profile11": "Agregar campo",
+ "profile12": "Nombre de campo",
+ "profile13": "Valor de campo",
+ "profile14": "Actividad",
+ "profile15": "Sin valor",
+ "profile16": "Este nombre no tiene perfil",
+ "profile17": "No se puede recuperar el perfil",
+ "profile18": "Abrir perfil",
+ "profile19": "No se puede recuperar el perfil",
+ "profile20": "Nombre del registro",
+ "profile21": "Insertar dirección desde la UI",
+ "profile22": "Éxito",
+ "profile23": "cifrado",
+ "profile24": "Debes completar tanto el nombre del campo como el valor del campo para agregar una propiedad personalizada",
+ "profile25": "Es tu amigo",
+ "profile26": "Agregar como amigo"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/et.json b/core/language/et.json
index e087ce20..7d70c6ef 100644
--- a/core/language/et.json
+++ b/core/language/et.json
@@ -209,7 +209,11 @@
"exp4": "Palun vali rahakott privaatse üldvõtme varundamiseks.",
"core": "Tuuma käivitamise seaded",
"qappNotification1": "Q-App märguanded",
- "selectnode": "Palun tehke valik"
+ "selectnode": "Palun tehke valik",
+ "arrr1": "ARRR rahakott pole initsialiseeritud!",
+ "arrr2": "Minge rahakoti vahekaardile ja lähtestage esmalt oma arrr rahakott.",
+ "arrr3": "Vaja põhivärskendust!",
+ "arrr4": "Oma arrr rahakoti privaatvõtme salvestamiseks vajate esmalt põhivärskendust!"
},
"appinfo": {
"blockheight": "Ploki kõrgus",
@@ -605,7 +609,8 @@
"schange39": "Ava",
"schange40": "Kuva",
"schange41": "Allalaadimine, palun oodake...",
- "schange42": "Alla laetud failid"
+ "schange42": "Alla laetud failid",
+ "schange43": "Kõik allalaadimiskatsed jätkuvad taustal, proovige mõne aja pärast uuesti."
},
"tubespage": {
"schange1": "Sirvi Q-Tube",
@@ -729,7 +734,12 @@
"bchange46": "Kas annad sellele rakendusele loa salvestada järgnev fail",
"bchange47": "Kiire avaldamine - nõuab",
"bchange48": "Kas annate sellele rakendusele loa teile teateid saata",
- "bchange49": "Kas annad sellele rakendusele loa näha oma rahakoti teabe?"
+ "bchange49": "Kas annad sellele rakendusele loa näha oma rahakoti teabe?",
+ "bchange50": "See rakendus taotles teie avaliku profiili muutmist. Atribuut: ",
+ "bchange51": "Muudatuste esitamiseks ärge unustage klõpsata Uuenda profiili",
+ "bchange52": "Kas annate sellele rakendusele loa oma rahakoti teabe hankimiseks?",
+ "bchange53": "Luba alati oma sõprade loendit kõikidel rakendustel automaatselt laadida",
+ "bchange54": "Kas annate sellele rakendusele loa juurdepääsuks oma sõbraloendile?"
},
"datapage": {
"dchange1": "Andmete haldamine",
@@ -1214,5 +1224,33 @@
"saving2": "Pole midagi päästa",
"saving3": "Salvestage salvestamata muudatused",
"saving4": "Võta muudatused tagasi"
+ },
+ "profile": {
+ "profile1": "Teil pole nime",
+ "profile2": "Ava nime registreerimine",
+ "profile3": "Värskenda profiili",
+ "profile4": "Tutvustustekst",
+ "profile5": "Bio",
+ "profile6": "Rahakoti aadressid",
+ "profile7": "Täida kasutajaliidesest",
+ "profile8": "Lisa kohandatud atribuut",
+ "profile9": "Atribuudi nimi",
+ "profile10": "Väljad",
+ "profile11": "Lisa väli",
+ "profile12": "Välja nimi",
+ "profile13": "Välja väärtus",
+ "profile14": "Tegevus",
+ "profile15": "Väärtust pole",
+ "profile16": "Sellel nimel pole profiili",
+ "profile17": "Profiili ei saa tuua",
+ "profile18": "Ava profiil",
+ "profile19": "Profiili ei saa tuua",
+ "profile20": "Registreeri nimi",
+ "profile21": "Sisesta kasutajaliidese aadress",
+ "profile22": "Edu",
+ "profile23": "krüpteeritud",
+ "profile24": "Kohandatud atribuudi lisamiseks peate täitma nii välja nime kui ka väärtuse",
+ "profile25": "Kas su sõber",
+ "profile26": "Lisa sõbraks"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/fr.json b/core/language/fr.json
index cdd83cb8..b81d4972 100644
--- a/core/language/fr.json
+++ b/core/language/fr.json
@@ -209,7 +209,11 @@
"exp4": "Veuillez choisir un portefeuille pour sauvegarder la clé principale privée.",
"core": "Démarrer les paramètres du noyau",
"qappNotification1": "Notifications Q-App",
- "selectnode": "Veuillez sélectionner une option"
+ "selectnode": "Veuillez sélectionner une option",
+ "arrr1": "Portefeuille ARRR non initialisé !",
+ "arrr2": "Veuillez aller dans l'onglet Portefeuille et initialiser d'abord votre portefeuille arrr.",
+ "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 !"
},
"appinfo": {
"blockheight": "Hauteur de bloc",
@@ -605,7 +609,8 @@
"schange39": "Ouvrir",
"schange40": "Aperçu",
"schange41": "Téléchargement, veuillez patienter...",
- "schange42": "Fichiers téléchargés"
+ "schange42": "Fichiers téléchargés",
+ "schange43": "Toutes les tentatives de téléchargement continueront en arrière-plan, veuillez réessayer après un certain temps."
},
"tubespage": {
"schange1": "Parcourir Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Autorisez-vous cette application à enregistrer le fichier suivant",
"bchange47": "Publication instantanée - nécessite",
"bchange48": "Autorisez-vous cette application à vous envoyer des notifications",
- "bchange49": "Autorisez-vous cette application à récupérer les informations de votre portefeuille ?"
+ "bchange49": "Autorisez-vous cette application à récupérer les informations de votre portefeuille ?",
+ "bchange50": "Cette application a demandé une modification de votre profil public. Propriété : ",
+ "bchange51": "Pour soumettre les modifications n'oubliez pas de cliquer sur 'Mettre à jour le profil'",
+ "bchange52": "Autorisez-vous cette application à obtenir les informations de votre portefeuille ?",
+ "bchange53": "Toujours autoriser la récupération automatique de votre liste d'amis par toutes les applications",
+ "bchange54": "Autorisez-vous cette application à accéder à votre liste d'amis ?"
},
"datapage": {
"dchange1": "Gestion de données",
@@ -1214,5 +1224,33 @@
"saving2": "Rien à sauver",
"saving3": "Enregistrer les modifications non enregistrées",
"saving4": "Annuler les changements"
+ },
+ "profile": {
+ "profile1": "Vous n'avez pas de nom",
+ "profile2": "Aller à l'enregistrement du nom",
+ "profile3": "Mettre à jour le profil",
+ "profile4": "Slogan",
+ "profile5": "Biographie",
+ "profile6": "Adresses du portefeuille",
+ "profile7": "Remplir depuis l'interface utilisateur",
+ "profile8": "Ajouter une propriété personnalisée",
+ "profile9": "Nom de la propriété",
+ "profile10": "Champs",
+ "profile11": "Ajouter un champ",
+ "profile12": "Nom du champ",
+ "profile13": "Valeur du champ",
+ "profile14": "Activité",
+ "profile15": "Aucune valeur",
+ "profile16": "Ce nom n'a pas de profil",
+ "profile17": "Impossible de récupérer le profil",
+ "profile18": "Ouvrir le profil",
+ "profile19": "Impossible de récupérer le profil",
+ "profile20": "Nom du registre",
+ "profile21": "Insérer l'adresse depuis l'interface utilisateur",
+ "profile22": "Succès",
+ "profile23": "crypté",
+ "profile24": "Vous devez remplir à la fois le nom et la valeur du champ pour ajouter une propriété personnalisée",
+ "profile25": "Est-ce que ton ami",
+ "profile26": "Ajouter comme ami"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/hindi.json b/core/language/hindi.json
index f2834588..9cf5e99f 100644
--- a/core/language/hindi.json
+++ b/core/language/hindi.json
@@ -209,7 +209,11 @@
"exp4": "निजी मास्टर कुंजी का बैकअप लेने के लिए कृपया एक वॉलेट चुनें।",
"core": "कोर सेटिंग प्रारंभ करें",
"qappNotification1": "क्यू-ऐप अधिसूचनाएँ",
- "selectnode": "कृपया एक विकल्प चुनें"
+ "selectnode": "कृपया एक विकल्प चुनें",
+ "arrr1": "ARRR वॉलेट प्रारंभ नहीं हुआ!",
+ "arrr2": "कृपया वॉलेट टैब पर जाएं और पहले अपना Arrr वॉलेट प्रारंभ करें।",
+ "arrr3": "मुख्य अद्यतन की आवश्यकता है!",
+ "arrr4": "अपने Arrr वॉलेट की निजी कुंजी को सहेजने के लिए आपको पहले एक कोर अपडेट की आवश्यकता है!"
},
"appinfo": {
"blockheight": "ब्लॉक ऊँचाई",
@@ -605,7 +609,8 @@
"schange39": "खोलें",
"schange40": "पूर्वावलोकन",
"schange41": "डाउनलोड हो रहा है कृपया प्रतीक्षा करें...",
- "schange42": "फ़ाइलें डाउनलोड की गईं"
+ "schange42": "फ़ाइलें डाउनलोड की गईं",
+ "schange43": "कोई भी डाउनलोड करने का प्रयास पृष्ठभूमि में जारी रहेगा, कृपया थोड़ी देर बाद पुनः प्रयास करें।"
},
"tubespage": {
"schange1": "क्यू-ट्यूब ब्राउज़ करें",
@@ -729,7 +734,12 @@
"bchange46": "क्या आप इस एप्लिकेशन को निम्न फ़ाइल सहेजने की अनुमति देते हैं",
"bchange47": "तत्काल प्रकाशन - आवश्यक है",
"bchange48": "क्या आप इस एप्लिकेशन को आपको सूचनाएं भेजने की अनुमति देते हैं",
- "bchange49": "क्या आप इस एप्लिकेशन को अपने वॉलेट की जानकारी प्राप्त करने की अनुमति देते हैं?"
+ "bchange49": "क्या आप इस एप्लिकेशन को अपने वॉलेट की जानकारी प्राप्त करने की अनुमति देते हैं?",
+ "bchange50": "इस ऐप ने आपकी सार्वजनिक प्रोफ़ाइल में बदलाव का अनुरोध किया है। संपत्ति: ",
+ "bchange51": "परिवर्तन सबमिट करने के लिए 'अपडेट प्रोफ़ाइल' पर क्लिक करना न भूलें",
+ "bchange52": "क्या आप इस एप्लिकेशन को अपने वॉलेट की जानकारी प्राप्त करने की अनुमति देते हैं?",
+ "bchange53": "हमेशा अपनी मित्र सूची को सभी ऐप्स द्वारा स्वचालित रूप से पुनर्प्राप्त करने की अनुमति दें",
+ "bchange54": "क्या आप इस एप्लिकेशन को अपनी मित्र सूची तक पहुंचने की अनुमति देते हैं?"
},
"datapage": {
"dchange1": "डाटा प्रबंधन",
@@ -1214,5 +1224,33 @@
"saving2": "बचाने के लिए कुछ भी नहीं",
"saving3": "सहेजे न गए परिवर्तन सहेजें",
"saving4": "परिवर्तन पूर्ववत करें"
+ },
+ "profile": {
+ "profile1": "आपका कोई नाम नहीं है",
+ "profile2": "नाम पंजीकरण पर जाएँ",
+ "profile3": "प्रोफ़ाइल अपडेट करें",
+ "profile4": "टैगलाइन",
+ "profile5": "जैव",
+ "profile6": "वॉलेट पते",
+ "profile7": "यूआई से भरें",
+ "profile8": "कस्टम प्रॉपर्टी जोड़ें",
+ "profile9": "संपत्ति का नाम",
+ "profile10": "फ़ील्ड्स",
+ "profile11": "फ़ील्ड जोड़ें",
+ "profile12": "फ़ील्ड का नाम",
+ "profile13": "फ़ील्ड मान",
+ "profile14": "गतिविधि",
+ "profile15": "कोई मूल्य नहीं",
+ "profile16": "इस नाम की कोई प्रोफ़ाइल नहीं है",
+ "profile17": "प्रोफ़ाइल लाने में असमर्थ",
+ "profile18": "प्रोफ़ाइल खोलें",
+ "profile19": "प्रोफ़ाइल नहीं लाया जा सकता",
+ "profile20": "नाम पंजीकृत करें",
+ "profile21": "यूआई से पता डालें",
+ "profile22": "सफलता",
+ "profile23": "एन्क्रिप्टेड",
+ "profile24": "कस्टम प्रॉपर्टी जोड़ने के लिए आपको फ़ील्ड नाम और फ़ील्ड मान दोनों भरने होंगे",
+ "profile25": "क्या आपका मित्र है",
+ "profile26": "मित्र के रूप में जोड़ें"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/hr.json b/core/language/hr.json
index f11aaf4c..0d99fc94 100644
--- a/core/language/hr.json
+++ b/core/language/hr.json
@@ -209,7 +209,11 @@
"exp4": "Odaberite novčanik za sigurnosnu kopiju privatnog glavnog ključa.",
"core": "Pokreni osnovne postavke",
"qappNotification1": "Obavijesti Q-App",
- "selectnode": "Molimo odaberite opciju"
+ "selectnode": "Molimo odaberite opciju",
+ "arrr1": "Novčanik ARRR nije inicijaliziran!",
+ "arrr2": "Idite na karticu novčanika i prvo inicijalizirajte svoj arrr novčanik.",
+ "arrr3": "Potrebno je ažuriranje jezgre!",
+ "arrr4": "Da biste spremili privatni ključ vašeg arrr novčanika, prvo trebate ažurirati jezgru!"
},
"appinfo": {
"blockheight": "Visina bloka",
@@ -605,7 +609,8 @@
"schange39": "Otvori",
"schange40": "Pregled",
"schange41": "Preuzimanje, molimo pričekajte...",
- "schange42": "Preuzete datoteke"
+ "schange42": "Preuzete datoteke",
+ "schange43": "Svaka pokušaja preuzimanja nastavit će se u pozadini, pokušajte ponovno nakon nekog vremena."
},
"tubespage": {
"schange1": "Pregledaj Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Dajete li ovoj aplikaciji dopuštenje za spremanje sljedeće datoteke",
"bchange47": "Trenutno objavljivanje - zahtijeva",
"bchange48": "Dajete li ovoj aplikaciji dopuštenje da vam šalje obavijesti",
- "bchange49": "Dajete li ovoj aplikaciji dopuštenje da dobije podatke o vašem novčaniku?"
+ "bchange49": "Dajete li ovoj aplikaciji dopuštenje da dobije podatke o vašem novčaniku?",
+ "bchange50": "Ova aplikacija je zatražila promjenu vašeg javnog profila. Svojstvo: ",
+ "bchange51": "Za slanje promjena ne zaboravite kliknuti 'Ažuriraj profil'",
+ "bchange52": "Dajete li ovoj aplikaciji dopuštenje da dobije podatke o vašem novčaniku?",
+ "bchange53": "Uvijek dopusti da sve aplikacije automatski dohvate tvoj popis prijatelja",
+ "bchange54": "Dajete li ovoj aplikaciji dopuštenje za pristup vašem popisu prijatelja?"
},
"datapage": {
"dchange1": "Upravljanje podacima",
@@ -1214,5 +1224,33 @@
"saving2": "Ništa za spasiti",
"saving3": "Spremi nespremljene promjene",
"saving4": "Poništi promjene"
+ },
+ "profile": {
+ "profile1": "Nemate ime",
+ "profile2": "Idi na registraciju imena",
+ "profile3": "Ažuriraj profil",
+ "profile4": "Slogan",
+ "profile5": "Bio",
+ "profile6": "Adrese novčanika",
+ "profile7": "Ispunite iz korisničkog sučelja",
+ "profile8": "Dodaj prilagođeno svojstvo",
+ "profile9": "Naziv svojstva",
+ "profile10": "Polja",
+ "profile11": "Dodaj polje",
+ "profile12": "Naziv polja",
+ "profile13": "Vrijednost polja",
+ "profile14": "Aktivnost",
+ "profile15": "Nema vrijednosti",
+ "profile16": "Ovo ime nema profil",
+ "profile17": "Nije moguće dohvatiti profil",
+ "profile18": "Otvori profil",
+ "profile19": "Ne mogu dohvatiti profil",
+ "profile20": "Registriraj ime",
+ "profile21": "Umetni adresu iz korisničkog sučelja",
+ "profile22": "Uspjeh",
+ "profile23": "šifrirano",
+ "profile24": "Morate ispuniti i naziv polja i vrijednost polja da biste dodali prilagođeno svojstvo",
+ "profile25": "Je li vaš prijatelj",
+ "profile26": "Dodaj kao prijatelja"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/hu.json b/core/language/hu.json
index a6c465dd..00123278 100644
--- a/core/language/hu.json
+++ b/core/language/hu.json
@@ -209,7 +209,11 @@
"exp4": "Kérjük, válasszon egy tárcát a privát főkulcs biztonsági mentéséhez.",
"core": "Alapbeállítások indítása",
"qappNotification1": "Q-App értesítések",
- "selectnode": "Kérjük, válasszon egy lehetőséget"
+ "selectnode": "Kérjük, válasszon egy lehetőséget",
+ "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.",
+ "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!"
},
"appinfo": {
"blockheight": "Blokk Magassága",
@@ -605,7 +609,8 @@
"schange39": "Nyitva",
"schange40": "Előnézet",
"schange41": "Letöltés, kérem várjon...",
- "schange42": "Fájlok letöltve"
+ "schange42": "Fájlok letöltve",
+ "schange43": "Minden letöltési kísérlet a háttérben folytatódik. Kérjük, próbálja újra egy idő után."
},
"tubespage": {
"schange1": "Tallózás a Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Engedélyezi ennek az alkalmazásnak a következő fájl mentését",
"bchange47": "Azonnali közzététel – szükséges",
"bchange48": "Engedélyezi ennek az alkalmazásnak, hogy értesítéseket küldjön Önnek",
- "bchange49": "Engedélyt ad ennek az alkalmazásnak, hogy megszerezze a pénztárca adatait?"
+ "bchange49": "Engedélyt ad ennek az alkalmazásnak, hogy megszerezze a pénztárca adatait?",
+ "bchange50": "Ez az alkalmazás módosítást kért nyilvános profiljában. Tulajdonság: ",
+ "bchange51": "A módosítások elküldéséhez ne felejtsen el a 'Profil frissítése' gombra kattintani",
+ "bchange52": "Engedélyt ad ennek az alkalmazásnak a pénztárca adatainak lekérésére?",
+ "bchange53": "Mindig engedélyezze, hogy az összes alkalmazás automatikusan lekérje a barátlistáját",
+ "bchange54": "Engedélyt ad ennek az alkalmazásnak, hogy hozzáférjen a barátlistájához?"
},
"datapage": {
"dchange1": "Adatkezelés",
@@ -1214,5 +1224,33 @@
"saving2": "Nincs mit menteni",
"saving3": "Mentse a nem mentett változtatásokat",
"saving4": "Változtatások visszavonása"
+ },
+ "profile": {
+ "profile1": "Nincs neved",
+ "profile2": "Ugrás a névregisztrációhoz",
+ "profile3": "Profil frissítése",
+ "profile4": "Tagline",
+ "profile5": "Életrajz",
+ "profile6": "pénztárca címei",
+ "profile7": "Kitöltés a felhasználói felületről",
+ "profile8": "Egyéni tulajdonság hozzáadása",
+ "profile9": "Tulajdon neve",
+ "profile10": "Mezők",
+ "profile11": "Mező hozzáadása",
+ "profile12": "Mező neve",
+ "profile13": "Mező értéke",
+ "profile14": "Tevékenység",
+ "profile15": "Nincs érték",
+ "profile16": "Ennek a névnek nincs profilja",
+ "profile17": "Nem sikerült lekérni a profilt",
+ "profile18": "Profil megnyitása",
+ "profile19": "Nem sikerült lekérni a profilt",
+ "profile20": "Regisztrációs név",
+ "profile21": "Cím beszúrása a felhasználói felületről",
+ "profile22": "Siker",
+ "profile23": "titkosított",
+ "profile24": "Egyéni tulajdonság hozzáadásához ki kell töltenie a mező nevét és értékét egyaránt",
+ "profile25": "A barátod",
+ "profile26": "Hozzáadás ismerősként"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/it.json b/core/language/it.json
index c10fe199..111f5732 100644
--- a/core/language/it.json
+++ b/core/language/it.json
@@ -209,7 +209,11 @@
"exp4": "Scegli un portafoglio per il backup della chiave master privata.",
"core": "Avvia impostazioni principali",
"qappNotification1": "Notifiche Q-App",
- "selectnode": "Seleziona un'opzione"
+ "selectnode": "Seleziona un'opzione",
+ "arrr1": "Portafoglio ARRR non inizializzato!",
+ "arrr2": "Vai alla scheda Portafoglio e inizializza prima il tuo portafoglio arrr.",
+ "arrr3": "È necessario l'aggiornamento del core!",
+ "arrr4": "Per salvare la chiave privata del tuo portafoglio arrr devi prima aggiornare il core!"
},
"appinfo": {
"blockheight": "Altezza blocco",
@@ -605,7 +609,8 @@
"schange39": "Apri",
"schange40": "Anteprima",
"schange41": "Download in corso, attendere...",
- "schange42": "File scaricati"
+ "schange42": "File scaricati",
+ "schange43": "Qualsiasi tentativo di download continuerà in background, riprova dopo un po."
},
"tubespage": {
"schange1": "Sfoglia Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Concedi a questa applicazione il permesso di salvare il seguente file",
"bchange47": "Pubblicazione istantanea - richiede",
"bchange48": "Concedi a questa applicazione il permesso di inviarti notifiche",
- "bchange49": "Concedi a questa applicazione il permesso di ottenere informazioni sul tuo portafoglio?"
+ "bchange49": "Concedi a questa applicazione il permesso di ottenere informazioni sul tuo portafoglio?",
+ "bchange50": "Questa app ha richiesto una modifica al tuo profilo pubblico. Proprietà: ",
+ "bchange51": "Per inviare le modifiche non dimenticare di fare clic su 'Aggiorna profilo'",
+ "bchange52": "Concedi a questa applicazione il permesso di ottenere informazioni sul tuo portafoglio?",
+ "bchange53": "Consenti sempre che la tua lista amici venga recuperata automaticamente da tutte le app",
+ "bchange54": "Concedi a questa applicazione il permesso di accedere alla tua lista di amici?"
},
"datapage": {
"dchange1": "Gestione dati",
@@ -1214,5 +1224,33 @@
"saving2": "Niente da salvare",
"saving3": "Salva le modifiche non salvate",
"saving4": "Cancella i cambiamenti"
+ },
+ "profile": {
+ "profile1": "Non hai un nome",
+ "profile2": "Vai alla registrazione del nome",
+ "profile3": "Aggiorna profilo",
+ "profile4": "Slogan",
+ "profile5": "Biografia",
+ "profile6": "Indirizzi del portafoglio",
+ "profile7": "Compila dall'interfaccia utente",
+ "profile8": "Aggiungi proprietà personalizzata",
+ "profile9": "Nome della struttura",
+ "profile10": "Campi",
+ "profile11": "Aggiungi campo",
+ "profile12": "Nome campo",
+ "profile13": "Valore del campo",
+ "profile14": "Attività",
+ "profile15": "Nessun valore",
+ "profile16": "Questo nome non ha profilo",
+ "profile17": "Impossibile recuperare il profilo",
+ "profile18": "Apri profilo",
+ "profile19": "Impossibile recuperare il profilo",
+ "profile20": "Nome registrato",
+ "profile21": "Inserisci indirizzo dall'interfaccia utente",
+ "profile22": "Successo",
+ "profile23": "crittografato",
+ "profile24": "Devi compilare sia il nome del campo che il valore del campo per aggiungere una proprietà personalizzata",
+ "profile25": "È tuo amico",
+ "profile26": "Aggiungi come amico"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/jp.json b/core/language/jp.json
index beb6ebcd..069efd6c 100644
--- a/core/language/jp.json
+++ b/core/language/jp.json
@@ -209,7 +209,11 @@
"exp4": "秘密マスターキーをバックアップするウォレットを選択してください。",
"core": "Core設定を開始",
"qappNotification1": "Q-App 通知",
- "selectnode": "オプションを選択してください"
+ "selectnode": "オプションを選択してください",
+ "arrr1": "ARRR ウォレットが初期化されていません!",
+ "arrr2": "ウォレットタブに移動して、まずarrrウォレットを初期化してください。",
+ "arrr3": "コアのアップデートが必要です!",
+ "arrr4": "arrr ウォレットの秘密キーを保存するには、まずコアのアップデートが必要です!"
},
"appinfo": {
"blockheight": "ブロック高",
@@ -605,7 +609,8 @@
"schange39": "開く",
"schange40": "プレビュー",
"schange41": "ダウンロード中です。しばらくお待ちください...",
- "schange42": "ダウンロードしたファイル"
+ "schange42": "ダウンロードしたファイル",
+ "schange43": "ダウンロードの試行はバックグラウンドで続行されます。しばらくしてからもう一度お試しください。"
},
"tubespage": {
"schange1": "Q-Tubeを閲覧",
@@ -729,7 +734,12 @@
"bchange46": "このアプリケーションに次のファイルを保存する事を許可しますか?",
"bchange47": "インスタント公開 - が必要です",
"bchange48": "このアプリケーションに通知を送信する権限を与えますか?",
- "bchange49": "ウォレット情報を取得する許可をこのアプリケーションに与えますか?"
+ "bchange49": "ウォレット情報を取得する許可をこのアプリケーションに与えますか?",
+ "bchange50": "このアプリはあなたの公開プロフィールの変更をリクエストしました。プロパティ: ",
+ "bchange51": "変更を送信するには、[プロフィールを更新] をクリックすることを忘れないでください。",
+ "bchange52": "ウォレット情報を取得する許可をこのアプリケーションに与えますか?",
+ "bchange53": "すべてのアプリによる友達リストの自動取得を常に許可します",
+ "bchange54": "このアプリケーションに友達リストへのアクセスを許可しますか?"
},
"datapage": {
"dchange1": "データ管理",
@@ -1214,5 +1224,33 @@
"saving2": "保存するものは何もありません",
"saving3": "未保存の変更を保存する",
"saving4": "変更を元に戻します"
+ },
+ "profile": {
+ "profile1": "名前がありません",
+ "profile2": "名前の登録へ",
+ "profile3": "プロファイルを更新",
+ "profile4": "キャッチフレーズ",
+ "profile5": "略歴",
+ "profile6": "ウォレットアドレス",
+ "profile7": "UI から入力",
+ "profile8": "カスタム プロパティを追加",
+ "profile9": "プロパティ名",
+ "profile10": "フィールド",
+ "profile11": "フィールドを追加",
+ "profile12": "フィールド名",
+ "profile13": "フィールド値",
+ "profile14": "アクティビティ",
+ "profile15": "値なし",
+ "profile16": "この名前にはプロフィールがありません",
+ "profile17": "プロファイルを取得できません",
+ "profile18": "プロファイルを開く",
+ "profile19": "プロファイルを取得できません",
+ "profile20": "登録名",
+ "profile21": "UI からアドレスを挿入",
+ "profile22": "成功",
+ "profile23": "暗号化",
+ "profile24": "カスタム プロパティを追加するには、フィールド名とフィールド値の両方を入力する必要があります",
+ "profile25": "あなたの友人です",
+ "profile26": "友達として追加"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/ko.json b/core/language/ko.json
index 14d005a3..76c8a105 100644
--- a/core/language/ko.json
+++ b/core/language/ko.json
@@ -209,7 +209,11 @@
"exp4": "개인 마스터 키를 백업할 지갑을 선택하세요.",
"core": "코어 설정 시작",
"qappNotification1": "Q-App 알림",
- "selectnode": "옵션을 선택하세요"
+ "selectnode": "옵션을 선택하세요",
+ "arrr1": "ARRR 지갑이 초기화되지 않았습니다!",
+ "arrr2": "지갑 탭으로 이동하여 먼저 arrr 지갑을 초기화하세요.",
+ "arrr3": "핵심 업데이트가 필요합니다!",
+ "arrr4": "arrr 지갑의 개인 키를 저장하려면 먼저 핵심 업데이트가 필요합니다!"
},
"appinfo": {
"blockheight": "블록 높이",
@@ -605,7 +609,8 @@
"schange39": "열기",
"schange40": "미리보기",
"schange41": "다운로드 중입니다...",
- "schange42": "다운로드된 파일"
+ "schange42": "다운로드된 파일",
+ "schange43": "모든 다운로드 시도는 백그라운드에서 계속됩니다. 잠시 후에 다시 시도하십시오."
},
"tubespage": {
"schange1": "Q-Tubes 둘러보기",
@@ -729,7 +734,12 @@
"bchange46": "이 응용 프로그램에 다음 파일을 저장할 권한을 부여하시겠습니까?",
"bchange47": "즉시 게시 - 필요",
"bchange48": "이 애플리케이션에 알림을 보낼 수 있는 권한을 부여하시겠습니까?",
- "bchange49": "이 애플리케이션에 지갑 정보를 얻을 수 있는 권한을 부여하시겠습니까?"
+ "bchange49": "이 애플리케이션에 지갑 정보를 얻을 수 있는 권한을 부여하시겠습니까?",
+ "bchange50": "이 앱이 당신의 공개 프로필 변경을 요청했습니다. 속성: ",
+ "bchange51": "변경 사항을 제출하려면 '프로필 업데이트'를 클릭하는 것을 잊지 마세요.",
+ "bchange52": "이 애플리케이션에 지갑 정보를 얻을 수 있는 권한을 부여하시겠습니까?",
+ "bchange53": "항상 모든 앱에서 친구 목록을 자동으로 검색하도록 허용",
+ "bchange54": "이 애플리케이션에 친구 목록에 접근할 수 있는 권한을 부여하시겠습니까?"
},
"datapage": {
"dchange1": "데이터 관리",
@@ -1214,5 +1224,33 @@
"saving2": "저장할 항목이 없습니다.",
"saving3": "저장되지 않은 변경사항 저장",
"saving4": "변경사항 취소"
+ },
+ "profile": {
+ "profile1": "당신은 이름이 없습니다",
+ "profile2": "이름 등록으로 이동",
+ "profile3": "프로필 업데이트",
+ "profile4": "태그라인",
+ "profile5": "소개",
+ "profile6": "지갑 주소",
+ "profile7": "UI에서 채우기",
+ "profile8": "사용자 정의 속성 추가",
+ "profile9": "속성 이름",
+ "profile10": "필드",
+ "profile11": "필드 추가",
+ "profile12": "필드 이름",
+ "profile13": "필드 값",
+ "profile14": "활동",
+ "profile15": "값 없음",
+ "profile16": "이 이름에는 프로필이 없습니다",
+ "profile17": "프로필을 가져올 수 없습니다",
+ "profile18": "프로필 열기",
+ "profile19": "프로필을 가져올 수 없습니다",
+ "profile20": "등록 이름",
+ "profile21": "UI에서 주소를 삽입하세요",
+ "profile22": "성공",
+ "profile23": "암호화됨",
+ "profile24": "사용자 정의 속성을 추가하려면 필드 이름과 필드 값을 모두 입력해야 합니다",
+ "profile25": "당신의 친구입니까?",
+ "profile26": "친구로 추가"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/nl.json b/core/language/nl.json
index 9fc69fd9..a46952fb 100644
--- a/core/language/nl.json
+++ b/core/language/nl.json
@@ -609,7 +609,8 @@
"schange39": "Openen",
"schange40": "Voorbeeld",
"schange41": "Download bezig; Even geduld...",
- "schange42": "Bestanden die werden gedownload"
+ "schange42": "Bestanden die werden gedownload",
+ "schange43": "Elke downloadpoging gaat door op de achtergrond, probeer het na een tijdje opnieuw."
},
"tubespage": {
"schange1": "Overzicht Q-Tubes",
diff --git a/core/language/no.json b/core/language/no.json
index 75945672..c658e7b7 100644
--- a/core/language/no.json
+++ b/core/language/no.json
@@ -209,7 +209,11 @@
"exp4": "Velg en lommebok for å sikkerhetskopiere den private hovednøkkelen.",
"core": "Start kjerneinnstillinger",
"qappNotification1": "Q-App varsler",
- "selectnode": "Vennligst velg et alternativ"
+ "selectnode": "Vennligst velg et alternativ",
+ "arrr1": "ARRR-lommebok ikke initialisert !",
+ "arrr2": "Vennligst gå til lommebok-fanen og initialiser arrr-lommeboken først.",
+ "arrr3": "Trenger kjerneoppdatering!",
+ "arrr4": "For å lagre den private nøkkelen til arrr-lommeboken din trenger du en kjerneoppdatering først!"
},
"appinfo": {
"blockheight": "Blokkhøyde",
@@ -605,7 +609,8 @@
"schange39": "Åpne",
"schange40": "Forhåndsvisning",
"schange41": "Laster ned, vennligst vent...",
- "schange42": "Filer lastet ned"
+ "schange42": "Filer lastet ned",
+ "schange43": "Alle forsøk på nedlasting vil fortsette i bakgrunnen, prøv igjen etter en stund."
},
"tubespage": {
"schange1": "Bla gjennom Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Gir du dette programmet tillatelse til å lagre følgende fil",
"bchange47": "Øyeblikkelig publisering - krever",
"bchange48": "Gir du denne applikasjonen tillatelse til å sende deg varsler",
- "bchange49": "Gir du dette programmet tillatelse til å få lommebokinformasjonen din?"
+ "bchange49": "Gir du dette programmet tillatelse til å få lommebokinformasjonen din?",
+ "bchange50": "Denne appen har bedt om en endring av din offentlige profil. Eiendom: ",
+ "bchange51": "For å sende inn endringene, ikke glem å klikke på 'Oppdater profil'",
+ "bchange52": "Gir du dette programmet tillatelse til å få lommebokinformasjon?",
+ "bchange53": "La alltid vennelisten din hentes automatisk av alle apper",
+ "bchange54": "Gir du dette programmet tillatelse til å få tilgang til vennelisten din?"
},
"datapage": {
"dchange1": "Data-administrasjon",
@@ -1214,5 +1224,33 @@
"saving2": "Ingenting å spare",
"saving3": "Lagre ulagrede endringer",
"saving4": "Angre endringer"
+ },
+ "profile": {
+ "profile1": "Du har ikke noe navn",
+ "profile2": "Gå til navneregistrering",
+ "profile3": "Oppdater profil",
+ "profile4": "Tagline",
+ "profile5": "Bio",
+ "profile6": "Lommebokadresser",
+ "profile7": "Fyll fra brukergrensesnitt",
+ "profile8": "Legg til egendefinert egenskap",
+ "profile9": "Eiendomsnavn",
+ "profile10": "Felter",
+ "profile11": "Legg til felt",
+ "profile12": "Feltnavn",
+ "profile13": "Feltverdi",
+ "profile14": "Aktivitet",
+ "profile15": "Ingen verdi",
+ "profile16": "Dette navnet har ingen profil",
+ "profile17": "Kan ikke hente profil",
+ "profile18": "Åpne profil",
+ "profile19": "Kan ikke hente profil",
+ "profile20": "Registrer navn",
+ "profile21": "Sett inn adresse fra brukergrensesnittet",
+ "profile22": "Suksess",
+ "profile23": "kryptert",
+ "profile24": "Du må fylle ut både feltnavn og feltverdi for å legge til en egendefinert egenskap",
+ "profile25": "Er din venn",
+ "profile26": "Legg til som venn"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/pl.json b/core/language/pl.json
index 1adebbca..307e1435 100644
--- a/core/language/pl.json
+++ b/core/language/pl.json
@@ -209,7 +209,11 @@
"exp4": "Wybierz portfel do wykonania kopii zapasowej prywatnego klucza głównego.",
"core": "Uruchom podstawowe ustawienia",
"qappNotification1": "Powiadomienia Q-App",
- "selectnode": "Proszę wybrać opcję"
+ "selectnode": "Proszę wybrać opcję",
+ "arrr1": "Portfel ARRR nie został zainicjowany!",
+ "arrr2": "Przejdź do zakładki portfela i najpierw zainicjalizuj swój portfel arrr.",
+ "arrr3": "Potrzebujesz aktualizacji rdzenia!",
+ "arrr4": "Aby zapisać klucz prywatny swojego portfela arrr, potrzebujesz najpierw aktualizacji rdzenia!"
},
"appinfo": {
"blockheight": "Wysokość bloku",
@@ -605,7 +609,8 @@
"schange39": "Otwórz",
"schange40": "Podgląd",
"schange41": "Pobieranie, proszę czekać...",
- "schange42": "Pliki pobrane"
+ "schange42": "Pliki pobrane",
+ "schange43": "Wszelkie próby pobierania będą kontynuowane w tle. Spróbuj ponownie za chwilę."
},
"tubespage": {
"schange1": "Przeglądaj Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Czy zezwalasz tej aplikacji na zapisanie następującego pliku",
"bchange47": "Błyskawiczna publikacja - wymaga",
"bchange48": "Czy dajesz tej aplikacji pozwolenie na wysyłanie Ci powiadomień",
- "bchange49": "Czy dajesz tej aplikacji pozwolenie na uzyskanie informacji o Twoim portfelu?"
+ "bchange49": "Czy dajesz tej aplikacji pozwolenie na uzyskanie informacji o Twoim portfelu?",
+ "bchange50": "Ta aplikacja zażądała zmiany w Twoim profilu publicznym. Właściwość: ",
+ "bchange51": "Aby przesłać zmiany, nie zapomnij kliknąć 'Aktualizuj profil'",
+ "bchange52": "Czy dajesz tej aplikacji pozwolenie na uzyskanie informacji o Twoim portfelu?",
+ "bchange53": "Zawsze zezwalaj na automatyczne pobieranie listy znajomych przez wszystkie aplikacje",
+ "bchange54": "Czy dajesz tej aplikacji uprawnienia dostępu do listy znajomych?"
},
"datapage": {
"dchange1": "Zarządzanie danymi",
@@ -1214,5 +1224,33 @@
"saving2": "Nic do uratowania",
"saving3": "Zapisz niezapisane zmiany",
"saving4": "Cofnij zmiany"
+ },
+ "profile": {
+ "profile1": "Nie masz imienia",
+ "profile2": "Przejdź do rejestracji nazwy",
+ "profile3": "Aktualizuj profil",
+ "profile4": "Slogan",
+ "profil5": "Bio",
+ "profile6": "Adresy portfeli",
+ "profile7": "Wypełnij z interfejsu użytkownika",
+ "profile8": "Dodaj niestandardową właściwość",
+ "profile9": "Nazwa właściwości",
+ "profile10": "Pola",
+ "profile11": "Dodaj pole",
+ "profile12": "Nazwa pola",
+ "profile13": "Wartość pola",
+ "profile14": "Aktywność",
+ "profile15": "Brak wartości",
+ "profile16": "Ta nazwa nie ma profilu",
+ "profile17": "Nie można pobrać profilu",
+ "profile18": "Otwórz profil",
+ "profile19": "Nie można pobrać profilu",
+ "profile20": "Zarejestruj nazwę",
+ "profile21": "Wstaw adres z interfejsu użytkownika",
+ "profile22": "Sukces",
+ "profile23": "zaszyfrowane",
+ "profile24": "Musisz wypełnić zarówno nazwę pola, jak i wartość pola, aby dodać niestandardową właściwość",
+ "profile25": "Jest Twoim przyjacielem",
+ "profile26": "Dodaj jako znajomego"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/pt.json b/core/language/pt.json
index f96947cb..4d893599 100644
--- a/core/language/pt.json
+++ b/core/language/pt.json
@@ -209,7 +209,11 @@
"exp4": "Por favor, escolha uma carteira para fazer backup da chave mestra privada.",
"core": "Iniciar configurações do núcleo",
"qappNotification1": "Notificações de Q-App",
- "selectnode": "Por favor selecione uma opção"
+ "selectnode": "Por favor selecione uma opção",
+ "arrr1": "Carteira ARRR não inicializada!",
+ "arrr2": "Por favor, vá para a aba carteira e inicialize sua carteira arrr primeiro.",
+ "arrr3": "Precisa de atualização principal!",
+ "arrr4": "Para salvar a chave privada da sua carteira arrr você precisa primeiro de uma atualização principal!"
},
"appinfo": {
"blockheight": "Altura do Bloco",
@@ -605,7 +609,8 @@
"schange39": "Abrir",
"schange40": "Pré-visualização",
"schange41": "Baixando, por favor, aguarde...",
- "schange42": "Arquivos baixados"
+ "schange42": "Arquivos baixados",
+ "schange43": "Qualquer tentativa de download continuará em segundo plano, tente novamente depois de um tempo."
},
"tubespage": {
"schange1": "Navegar Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Você concede permissão a este aplicativo para salvar o seguinte arquivo",
"bchange47": "Publicação instantânea - requer",
"bchange48": "Você dá permissão a este aplicativo para enviar notificações para você?",
- "bchange49": "Você dá permissão a este aplicativo para obter informações da sua carteira?"
+ "bchange49": "Você dá permissão a este aplicativo para obter informações da sua carteira?",
+ "bchange50": "Este aplicativo solicitou uma alteração em seu perfil público. Propriedade: ",
+ "bchange51": "Para enviar as alterações não esqueça de clicar em 'Atualizar perfil'",
+ "bchange52": "Você dá permissão a este aplicativo para obter informações da sua carteira?",
+ "bchange53": "Sempre permita que sua lista de amigos seja recuperada automaticamente por todos os aplicativos",
+ "bchange54": "Você dá permissão a este aplicativo para acessar sua lista de amigos?"
},
"datapage": {
"dchange1": "Gerenciamento de Dados",
@@ -1214,5 +1224,33 @@
"saving2": "Nada para salvar",
"saving3": "Salvar alterações não salvas",
"saving4": "Desfazer mudanças"
+ },
+ "profile": {
+ "profile1": "Você não tem nome",
+ "profile2": "Ir para registro de nome",
+ "profile3": "Atualizar perfil",
+ "profile4": "Slogan",
+ "perfile5": "Bio",
+ "profile6": "Endereços da carteira",
+ "profile7": "Preencher a partir da UI",
+ "profile8": "Adicionar propriedade personalizada",
+ "profile9": "Nome da propriedade",
+ "perfile10": "Campos",
+ "profile11": "Adicionar campo",
+ "profile12": "Nome do campo",
+ "profile13": "Valor do campo",
+ "profile14": "Atividade",
+ "profile15": "Sem valor",
+ "profile16": "Este nome não tem perfil",
+ "profile17": "Não foi possível buscar o perfil",
+ "profile18": "Abrir perfil",
+ "profile19": "Não foi possível buscar o perfil",
+ "profile20": "Registrar nome",
+ "profile21": "Inserir endereço da UI",
+ "profile22": "Sucesso",
+ "profile23": "criptografado",
+ "profile24": "Você deve preencher o nome e o valor do campo para adicionar uma propriedade personalizada",
+ "profile25": "É seu amigo",
+ "profile26": "Adicionar como amigo"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/ro.json b/core/language/ro.json
index b06f6abd..d71277b5 100644
--- a/core/language/ro.json
+++ b/core/language/ro.json
@@ -209,7 +209,11 @@
"exp4": "Vă rugăm să alegeți un portofel pentru a face backup cheii master private.",
"core": "Porniți setările de bază",
"qappNotification1": "Notificări Q-App",
- "selectnode": "Vă rugăm să selectați o opțiune"
+ "selectnode": "Vă rugăm să selectați o opțiune",
+ "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.",
+ "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ă !"
},
"appinfo": {
"blockheight": "Dimensiunea blocului",
@@ -605,7 +609,8 @@
"schange39": "Deschide",
"schange40": "Previzualizare",
"schange41": "Se descarcă, așteptați...",
- "schange42": "Fișiere descărcate"
+ "schange42": "Fișiere descărcate",
+ "schange43": "Orice încercare de descărcare va continua în fundal, vă rugăm să încercați din nou după un timp."
},
"tubespage": {
"schange1": "Răsfoiți Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Dați această aplicație permisiunea de a salva următorul fișier",
"bchange47": "Publicare instantanee - necesită",
"bchange48": "Acordați acestei aplicații permisiunea de a vă trimite notificări",
- "bchange49": "Oferiți acestei aplicații permisiunea de a obține informațiile despre portofel?"
+ "bchange49": "Oferiți acestei aplicații permisiunea de a obține informațiile despre portofel?",
+ "bchange50": "Această aplicație a solicitat o modificare a profilului dvs. public. Proprietate: ",
+ "bchange51": "Pentru a trimite modificările nu uitați să faceți clic pe Actualizați profilul",
+ "bchange52": "Dați această aplicație permisiunea de a obține informațiile despre portofel?",
+ "bchange53": "Permiteți întotdeauna ca lista de prieteni să fie preluată automat de toate aplicațiile",
+ "bchange54": "Acordați acestei aplicații permisiunea de a vă accesa lista de prieteni?"
},
"datapage": {
"dchange1": "Gestionare date",
@@ -1214,5 +1224,33 @@
"saving2": "Nimic de salvat",
"saving3": "Salvați modificările nesalvate",
"saving4": "Anulează modificările"
+ },
+ "profile": {
+ "profile1": "Nu aveți un nume",
+ "profile2": "Mergeți la înregistrarea numelui",
+ "profile3": "Actualizează profilul",
+ "profile4": "Slogan",
+ "profile5": "Biografie",
+ "profile6": "Adrese portofel",
+ "profile7": "Umpleți din UI",
+ "profile8": "Adăugați o proprietate personalizată",
+ "profile9": "Numele proprietății",
+ "profile10": "Câmpuri",
+ "profile11": "Adăugați câmp",
+ "profile12": "Numele câmpului",
+ "profile13": "Valoarea câmpului",
+ "profile14": "Activitate",
+ "profile15": "Fără valoare",
+ "profile16": "Acest nume nu are profil",
+ "profile17": "Nu se poate prelua profilul",
+ "profile18": "Deschide profilul",
+ "profile19": "Nu se poate prelua profilul",
+ "profile20": "Înregistrați numele",
+ "profile21": "Inserați adresa din interfața de utilizare",
+ "profile22": "Succes",
+ "profile23": "criptat",
+ "profile24": "Trebuie să completați atât numele câmpului, cât și valoarea câmpului pentru a adăuga o proprietate personalizată",
+ "profile25": "Este prietenul tău",
+ "profile26": "Adaugă ca prieten"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/rs.json b/core/language/rs.json
index 47577810..88852b30 100644
--- a/core/language/rs.json
+++ b/core/language/rs.json
@@ -209,7 +209,11 @@
"exp4": "Molimo izaberite novčanik za rezervnu kopiju privatnog glavnog ključa.",
"core": "Pokreni podešavanja jezgra",
"qappNotification1": "Obaveštenja o Q-App",
- "selectnode": "Izaberite opciju"
+ "selectnode": "Izaberite opciju",
+ "arrr1": "ARRR novčanik nije inicijalizovan!",
+ "arrr2": "Molim vas idite na karticu Novčanik i prvo inicijalizujte svoj arrr novčanik.",
+ "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!"
},
"appinfo": {
"blockheight": "Visina Bloka",
@@ -605,7 +609,8 @@
"schange39": "Otvori",
"schange40": "Pregled",
"schange41": "Preuzimanje molim sačekajte...",
- "schange42": "Preuzete datoteke"
+ "schange42": "Preuzete datoteke",
+ "schange43": "Svaki pokušaj preuzimanja će se nastaviti u pozadini, pokušajte ponovo nakon nekog vremena."
},
"tubespage": {
"schange1": "Pregledaj Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Da li ovoj aplikaciji dajete dozvolu da sačuva sledeću datoteku",
"bchange47": "Trenutno objavljivanje - zahteva",
"bchange48": "Da li ovoj aplikaciji dajete dozvolu da vam šalje obaveštenja",
- "bchange49": "Da li ovoj aplikaciji dajete dozvolu da dobije informacije o vašem novčaniku?"
+ "bchange49": "Da li ovoj aplikaciji dajete dozvolu da dobije informacije o vašem novčaniku?",
+ "bchange50": "Ova aplikacija je zahtevala promenu vašeg javnog profila. Svojstvo: ",
+ "bchange51": "Da biste podneli promene, ne zaboravite da kliknete na 'Ažuriraj profil'",
+ "bchange52": "Da li ovoj aplikaciji dajete dozvolu da dobije informacije o vašem novčaniku?",
+ "bchange53": "Uvek dozvoli da sve aplikacije automatski preuzimaju listu prijatelja",
+ "bchange54": "Da li ovoj aplikaciji dajete dozvolu da pristupi vašoj listi prijatelja?"
},
"datapage": {
"dchange1": "Upravljanje podacima",
@@ -1214,5 +1224,33 @@
"saving2": "Nema šta da se spase",
"saving3": "Sačuvajte nesačuvane promene",
"saving4": "Poništi promene"
+ },
+ "profile": {
+ "profile1": "Nemate ime",
+ "profile2": "Idi na registraciju imena",
+ "profile3": "Ažuriraj profil",
+ "profile4": "Tagline",
+ "profile5": "Bio",
+ "profile6": "Adrese novčanika",
+ "profile7": "Popuni iz korisničkog interfejsa",
+ "profile8": "Dodaj prilagođeno svojstvo",
+ "profile9": "Naziv svojstva",
+ "profile10": "Polja",
+ "profile11": "Dodaj polje",
+ "profile12": "Naziv polja",
+ "profile13": "Vrednost polja",
+ "profile14": "Aktivnost",
+ "profile15": "Nema vrednosti",
+ "profile16": "Ovo ime nema profil",
+ "profile17": "Nije moguće preuzeti profil",
+ "profile18": "Otvori profil",
+ "profile19": "Ne mogu da preuzmem profil",
+ "profile20": "Ime registra",
+ "profile21": "Ubaci adresu iz korisničkog interfejsa",
+ "profile22": "Uspeh",
+ "profile23": "šifrovano",
+ "profile24": "Morate da popunite i ime polja i vrednost polja da biste dodali prilagođeno svojstvo",
+ "profile25": "Da li je tvoj prijatelj",
+ "profile26": "Dodaj kao prijatelja"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/ru.json b/core/language/ru.json
index 0a461651..86bfd8df 100644
--- a/core/language/ru.json
+++ b/core/language/ru.json
@@ -209,7 +209,11 @@
"exp4": "Пожалуйста, выберите кошелек для резервного копирования приватного главного ключа.",
"core": "Начать основные настройки",
"qappNotification1": "Уведомления Q-App",
- "selectnode": "Пожалуйста, выберите вариант"
+ "selectnode": "Пожалуйста, выберите вариант",
+ "arrr1": "Кошелек ARRR не инициализирован!",
+ "arrr2": "Пожалуйста, перейдите на вкладку кошелька и сначала инициализируйте свой кошелек arrr.",
+ "arrr3": "Требуется обновление ядра!",
+ "arrr4": "Чтобы сохранить закрытый ключ вашего кошелька arrr, вам сначала необходимо обновить ядро!"
},
"appinfo": {
"blockheight": "Высота блока",
@@ -605,7 +609,8 @@
"schange39": "Открыть",
"schange40": "Предварительный просмотр",
"schange41": "Идет загрузка, подождите...",
- "schange42": "Файлы загружены"
+ "schange42": "Файлы загружены",
+ "schange43": "Любые попытки загрузки будут продолжаться в фоновом режиме, повторите попытку через некоторое время."
},
"tubespage": {
"schange1": "Просмотреть Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "Даете ли вы этому приложению разрешение на сохранение следующего файла?",
"bchange47": "Мгновенная публикация - требуется",
"bchange48": "Разрешаете ли вы этому приложению отправлять вам уведомления?",
- "bchange49": "Разрешаете ли вы этому приложению получать информацию о вашем кошельке?"
+ "bchange49": "Разрешаете ли вы этому приложению получать информацию о вашем кошельке?",
+ "bchange50": "Это приложение запросило изменение вашего общедоступного профиля. Свойство: ",
+ "bchange51": "Чтобы отправить изменения, не забудьте нажать Обновить профиль",
+ "bchange52": "Разрешаете ли вы этому приложению получать информацию о вашем кошельке?",
+ "bchange53": "Всегда разрешайте всем приложениям автоматически получать список друзей",
+ "bchange54": "Разрешаете ли вы этому приложению доступ к вашему списку друзей?"
},
"datapage": {
"dchange1": "Управление данными",
@@ -1214,5 +1224,33 @@
"saving2": "Нечего сохранять",
"saving3": "Сохранить несохраненные изменения",
"saving4": "Отменить изменения"
+ },
+ "profile": {
+ "profile1": "У вас нет имени",
+ "profile2": "Перейти к регистрации имени",
+ "profile3": "Обновить профиль",
+ "profile4": "Слоган",
+ "profile5": "Биография",
+ "profile6": "Адреса кошелька",
+ "profile7": "Заполнить из пользовательского интерфейса",
+ "profile8": "Добавить пользовательское свойство",
+ "profile9": "Имя свойства",
+ "profile10": "Поля",
+ "profile11": "Добавить поле",
+ "profile12": "Имя поля",
+ "profile13": "Значение поля",
+ "profile14": "Активность",
+ "profile15": "Нет значения",
+ "profile16": "У этого имени нет профиля",
+ "profile17": "Невозможно получить профиль",
+ "profile18": "Открыть профиль",
+ "profile19": "Невозможно получить профиль",
+ "profile20": "Зарегистрировать имя",
+ "profile21": "Вставить адрес из пользовательского интерфейса",
+ "profile22": "Успех",
+ "profile23": "зашифровано",
+ "profile24": "Чтобы добавить пользовательское свойство, вам необходимо заполнить имя и значение поля",
+ "profile25": "Твой друг",
+ "profile26": "Добавить в друзья"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/us.json b/core/language/us.json
index 6e22363d..f1f5c7d3 100644
--- a/core/language/us.json
+++ b/core/language/us.json
@@ -609,7 +609,8 @@
"schange39": "Open",
"schange40": "Preview",
"schange41": "Downloading please wait...",
- "schange42": "Files downloaded"
+ "schange42": "Files downloaded",
+ "schange43": "Any attempted downloads will continue in the background, please try again after a while."
},
"tubespage": {
"schange1": "Browse Q-Tubes",
@@ -739,7 +740,6 @@
"bchange52": "Do you give this application permission to get your wallet information?",
"bchange53": "Always allow your friends list to be retrieved automatically by all apps",
"bchange54": "Do you give this application permission to access your friends list?"
-
},
"datapage": {
"dchange1": "Data Management",
diff --git a/core/language/zhc.json b/core/language/zhc.json
index e512029a..4066d91e 100644
--- a/core/language/zhc.json
+++ b/core/language/zhc.json
@@ -209,7 +209,11 @@
"exp4": "请选择一个钱包来备份私钥。",
"core": "开始核心设置",
"qappNotification1": "Q-App 通知",
- "selectnode": "请选择一个选项"
+ "selectnode": "请选择一个选项",
+ "arrr1": "ARRR 钱包未初始化!",
+ "arrr2": "请先进入钱包选项卡并初始化您的arrr钱包。",
+ "arrr3": "需要核心更新!",
+ "arrr4": "要保存你的 arr 钱包的私钥,你需要先进行核心更新!"
},
"appinfo": {
"blockheight": "区块高度",
@@ -605,7 +609,8 @@
"schange39": "打开",
"schange40": "预览",
"schange41": "下载中请稍候...",
- "schange42": "文件已下载"
+ "schange42": "文件已下载",
+ "schange43": "任何尝试的下载都将在后台继续,请稍后重试。"
},
"tubespage": {
"schange1": "浏览 Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "您是否授予此应用程序保存以下文件的权限",
"bchange47": "即时发布 - 需要",
"bchange48": "您是否授予此应用程序向您发送通知的权限",
- "bchange49": "您是否授予此应用程序获取您的钱包信息的权限?"
+ "bchange49": "您是否授予此应用程序获取您的钱包信息的权限?",
+ "bchange50": "此应用已请求更改您的公开个人资料。属性:",
+ "bchange51": "要提交更改,请不要忘记单击“更新个人资料”",
+ "bchange52": "您是否授予此应用程序获取您的钱包信息的权限?",
+ "bchange53": "始终允许所有应用自动检索您的好友列表",
+ "bchange54": "您是否授予此应用程序访问您的好友列表的权限?"
},
"datapage": {
"dchange1": "资料管理",
@@ -1214,5 +1224,33 @@
"saving2": "没有什么可保存的",
"saving3": "保存未保存的更改",
"saving4": "取消更改"
+ },
+ "profile": {
+ "profile1": "你没有名字",
+ "profile2": "前往姓名注册",
+ "profile3": "更新个人资料",
+ "profile4": "标语",
+ "profile5": "个人简介",
+ "profile6": "钱包地址",
+ "profile7": "从用户界面填写",
+ "profile8": "添加自定义属性",
+ "profile9": "属性名称",
+ "profile10": "字段",
+ "profile11": "添加字段",
+ "profile12": "字段名称",
+ "profile13": "字段值",
+ "profile14": "活动",
+ "profile15": "无值",
+ "profile16": "该名字没有个人资料",
+ "profile17": "无法获取个人资料",
+ "profile18": "打开个人资料",
+ "profile19": "无法获取个人资料",
+ "profile20": "注册名称",
+ "profile21": "从 UI 插入地址",
+ "profile22": "成功",
+ "profile23": "加密",
+ "profile24": "您必须填写字段名称和字段值才能添加自定义属性",
+ "profile25": "是你的朋友",
+ "profile26": "添加为好友"
}
-}
\ No newline at end of file
+}
diff --git a/core/language/zht.json b/core/language/zht.json
index f4853ee5..8370f7f2 100644
--- a/core/language/zht.json
+++ b/core/language/zht.json
@@ -209,7 +209,11 @@
"exp4": "請選擇一個錢包來備份私鑰。",
"core": "開始核心設置",
"qappNotification1": "Q-App 通知",
- "selectnode": "請選擇一個選項"
+ "selectnode": "請選擇一個選項",
+ "arrr1": "ARRR 錢包未初始化!",
+ "arrr2": "請先進入錢包標籤並初始化您的arrr錢包。",
+ "arrr3": "需要核心更新!",
+ "arrr4": "要儲存你的 arr 錢包的私鑰,你需要先進行核心更新!"
},
"appinfo": {
"blockheight": "區塊高度",
@@ -605,7 +609,8 @@
"schange39": "打開",
"schange40": "預覽",
"schange41": "下載中請稍候...",
- "schange42": "文件已下載"
+ "schange42": "文件已下載",
+ "schange43": "任何嘗試的下載都會在背景繼續,請稍後重試。"
},
"tubespage": {
"schange1": "瀏覽 Q-Tubes",
@@ -729,7 +734,12 @@
"bchange46": "您是否授予此應用程序保存以下文件的權限",
"bchange47": "即時發布 - 需要",
"bchange48": "您是否授予此應用程式向您發送通知的權限",
- "bchange49": "您是否授予此應用程式以取得您的錢包資訊的權限?"
+ "bchange49": "您是否授予此應用程式以取得您的錢包資訊的權限?",
+ "bchange50": "此應用程式已要求更改您的公開個人資料。屬性:",
+ "bchange51": "要提交更改,請不要忘記點擊「更新個人資料」",
+ "bchange52": "您是否授予此應用程式取得您的錢包資訊的權限?",
+ "bchange53": "始終允許所有應用程式自動檢索您的好友清單",
+ "bchange54": "您是否授予此應用程式存取您的好友清單的權限?"
},
"datapage": {
"dchange1": "資料管理",
@@ -1214,5 +1224,33 @@
"saving2": "沒有什麼可保存的",
"saving3": "儲存未儲存的更改",
"saving4": "取消更改"
+ },
+ "profile": {
+ "profile1": "你沒有名字",
+ "profile2": "前往姓名註冊",
+ "profile3": "更新個人資料",
+ "profile4": "標語",
+ "profile5": "個人簡介",
+ "profile6": "錢包位址",
+ "profile7": "從使用者介面填寫",
+ "profile8": "新增自訂屬性",
+ "profile9": "屬性名稱",
+ "profile10": "字段",
+ "profile11": "新增欄位",
+ "profile12": "欄位名稱",
+ "profile13": "字段值",
+ "profile14": "活動",
+ "profile15": "無值",
+ "profile16": "該名字沒有個人資料",
+ "profile17": "無法取得個人資料",
+ "profile18": "開啟個人資料",
+ "profile19": "無法取得個人資料",
+ "profile20": "註冊名稱",
+ "profile21": "從 UI 插入位址",
+ "profile22": "成功",
+ "profile23": "加密",
+ "profile24": "您必須填入欄位名稱和欄位值才能新增自訂屬性",
+ "profile25": "是你的朋友",
+ "profile26": "新增為好友"
}
-}
\ No newline at end of file
+}
From 2cbaa7f0a3d2887029a6a759d8476e777dd44d28 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Mon, 20 Nov 2023 17:49:29 +0100
Subject: [PATCH 07/10] Fix post websites on q-chat
---
.../plugins/core/components/ChatScroller.js | 33 +++++++++----------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/plugins/plugins/core/components/ChatScroller.js b/plugins/plugins/core/components/ChatScroller.js
index 1c2a249a..299339fc 100644
--- a/plugins/plugins/core/components/ChatScroller.js
+++ b/plugins/plugins/core/components/ChatScroller.js
@@ -50,19 +50,20 @@ const extractComponents = async (url) => {
}
url = url.replace(/^(qortal:\/\/)/, '');
+
if (url.startsWith('use-')) {
- // Handle the new 'use' format
- let parts = url.split('/');
- const type = parts[0].split('-')[1]; // e.g., 'group' from 'use-group'
- parts.shift();
- const action = parts.length > 0 ? parts[0].split('-')[1] : null; // e.g., 'invite' from 'action-invite'
- parts.shift();
- const idPrefix = parts.length > 0 ? parts[0].split('-')[0] : null; // e.g., 'groupid' from 'groupid-321'
- const id = parts.length > 0 ? parts[0].split('-')[1] : null; // e.g., '321' from 'groupid-321'
- return {
- type: type,
- action: action,
- [idPrefix]: id
+ // Handle the new 'use' format
+ let parts = url.split('/');
+ const type = parts[0].split('-')[1]; // e.g., 'group' from 'use-group'
+ parts.shift();
+ const action = parts.length > 0 ? parts[0].split('-')[1] : null; // e.g., 'invite' from 'action-invite'
+ parts.shift();
+ const idPrefix = parts.length > 0 ? parts[0].split('-')[0] : null; // e.g., 'groupid' from 'groupid-321'
+ const id = parts.length > 0 ? parts[0].split('-')[1] : null; // e.g., '321' from 'groupid-321'
+ return {
+ type: type,
+ action: action,
+ [idPrefix]: id
}
} else if (url.includes('/')) {
let parts = url.split('/');
@@ -101,15 +102,13 @@ const extractComponents = async (url) => {
};
function processText(input) {
- const linkRegex = /(qortal:\/\/\S+)/g;
+ const linkRegex = /(qortal:\/\/S+)/g;
function processNode(node) {
if (node.nodeType === Node.TEXT_NODE) {
const parts = node.textContent.split(linkRegex);
-
- if (parts.length > 1) {
+ if (parts.length > 0) {
const fragment = document.createDocumentFragment();
-
parts.forEach((part) => {
if (part.startsWith('qortal://')) {
const link = document.createElement('span');
@@ -2536,4 +2535,4 @@ class ChatMenu extends LitElement {
}
}
-window.customElements.define('chat-menu', ChatMenu);
+window.customElements.define('chat-menu', ChatMenu);
\ No newline at end of file
From 734ed80cab88aef302363db8a36efdd7cdf45a93 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Mon, 20 Nov 2023 17:54:27 +0100
Subject: [PATCH 08/10] Add close downloader button
---
plugins/plugins/core/q-app/q-apps.src.js | 49 ++++++++++++++++++++++--
1 file changed, 46 insertions(+), 3 deletions(-)
diff --git a/plugins/plugins/core/q-app/q-apps.src.js b/plugins/plugins/core/q-app/q-apps.src.js
index 7bf724e1..5e184ecf 100644
--- a/plugins/plugins/core/q-app/q-apps.src.js
+++ b/plugins/plugins/core/q-app/q-apps.src.js
@@ -166,7 +166,23 @@ class QApps extends LitElement {
text-align:center;
padding: 15px;
line-height: 1.6;
- overflow-y: auto;
+ overflow: hidden;
+ }
+
+ paper-dialog.close-progress {
+ min-width: 550px;
+ max-width: 550px;
+ height: auto;
+ background-color: var(--white);
+ color: var(--black);
+ border: 1px solid var(--black);
+ border-radius: 15px;
+ text-align:center;
+ padding: 15px;
+ font-size: 17px;
+ font-weight: 500;
+ line-height: 20px;
+ overflow: hidden;
}
paper-dialog.search {
@@ -537,6 +553,19 @@ class QApps extends LitElement {
margin: 0 7px 7px 0;
padding: 7px;
}
+
+ .close-download {
+ color: var(--black);
+ font-size: 14px;
+ font-weight: bold;
+ position: absolute;
+ top: -15px;
+ right: -15px;
+ }
+
+ .close-download:hover {
+ color: #df3636;
+ }
`
}
@@ -641,10 +670,14 @@ class QApps extends LitElement {
+ this.closeDownloadProgressDialog()}" title="${translate("general.close")}">
${translate("appspage.schange41")}
${this.textProgress}
+
+ ${translate("appspage.schange43")}
+
${this.appBlock}
@@ -1087,6 +1120,8 @@ class QApps extends LitElement {
this.appStatus = html``
} else if (status1 === "Ready" || status2 === "DOWNLOADED") {
this.appStatus = html``
+ } else {
+ this.appStatus = html``
}
if (this.followedNames.indexOf(name) === -1) {
this.appFollow = html``
@@ -1288,6 +1323,7 @@ class QApps extends LitElement {
}
showChunks(appname) {
+ this.shadowRoot.getElementById('downloadProgressDialog').open()
const checkStatus = async () => {
const service = this.service
const name = appname
@@ -1300,8 +1336,6 @@ class QApps extends LitElement {
this.btnDisabled = true
- this.shadowRoot.getElementById('downloadProgressDialog').open()
-
let timerDownload
const response = await fetch(url, {
@@ -1367,6 +1401,15 @@ class QApps extends LitElement {
checkStatus()
}
+ async closeDownloadProgressDialog() {
+ const closeDelay = ms => new Promise(res => setTimeout(res, ms))
+ this.shadowRoot.getElementById('downloadProgressDialog').close()
+ this.shadowRoot.getElementById('closeProgressDialog').open()
+ await closeDelay(3000)
+ this.shadowRoot.getElementById('closeProgressDialog').close()
+ this.closeAppInfoDialog()
+ }
+
async followName(appName) {
let name = appName
let items = [
From c9e70ce7cd396cd07516eabf9c54588e3ebd7702 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Mon, 20 Nov 2023 18:23:26 +0100
Subject: [PATCH 09/10] Bump version 4.4.2
---
package-lock.json | 4 ++--
package.json | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index eeb3bdec..6408f735 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "qortal-ui",
- "version": "4.4.1",
+ "version": "4.4.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "qortal-ui",
- "version": "4.4.1",
+ "version": "4.4.2",
"license": "GPL-3.0",
"dependencies": {
"@hapi/hapi": "21.3.2",
diff --git a/package.json b/package.json
index d80bd3e4..88ce0093 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "qortal-ui",
- "version": "4.4.1",
+ "version": "4.4.2",
"description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet",
"keywords": [
"QORT",
From 6aad0b6e37d6e11ca24c6959845c3e540bb15d87 Mon Sep 17 00:00:00 2001
From: Justin Ferrari
Date: Tue, 21 Nov 2023 13:03:47 -0500
Subject: [PATCH 10/10] Added ARRR to GET_WALLET_ADDRESS
---
.../plugins/core/qdn/browser/browser.src.js | 22 +++++++++++++------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js
index f3c24b9e..62eaa924 100644
--- a/plugins/plugins/core/qdn/browser/browser.src.js
+++ b/plugins/plugins/core/qdn/browser/browser.src.js
@@ -271,7 +271,7 @@ class WebBrowser extends LitElement {
const name = parts[0]
parts.shift()
let identifier
-
+ let path
if (parts.length > 0) {
identifier = parts[0] // Do not shift yet
// Check if a resource exists with this service, name and identifier combination
@@ -2314,12 +2314,19 @@ class WebBrowser extends LitElement {
}
const res3 = await showModalAndWait(
actions.GET_USER_WALLET
- );
-
- if (res3.action === 'accept') {
- let coin = data.coin;
- let userWallet = {};
-
+ );
+
+ if (res3.action === 'accept') {
+ let coin = data.coin;
+ let userWallet = {};
+ let arrrAddress = "";
+ if (coin === "ARRR") {
+ arrrAddress = await parentEpml.request('apiCall', {
+ url: `/crosschain/arrr/walletaddress?apiKey=${this.getApiKey()}`,
+ method: 'POST',
+ body: `${window.parent.reduxStore.getState().app.selectedAddress.arrrWallet.seed58}`
+ })
+ }
switch (coin) {
case 'QORT':
userWallet['address'] = window.parent.reduxStore.getState().app.selectedAddress.address
@@ -2346,6 +2353,7 @@ class WebBrowser extends LitElement {
userWallet['publickey'] = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet.derivedMasterPublicKey
break
case 'ARRR':
+ userWallet['address'] = arrrAddress
break
default:
break