Compare commits

..
Author SHA1 Message Date
Vlad Stan 18ce66e507 chore: make bundle 2026-02-05 12:21:08 +02:00
Vlad Stan acce8d726b feat: configure activation codes 2026-02-05 12:21:08 +02:00
Vlad Stan 164e498476 [feat] Allow no exchange providers (#3763) 2026-02-05 12:21:08 +02:00
Vlad Stan 48e0ca80bd fix: handle validation errors when the response is binary (#3765) 2026-02-05 12:21:08 +02:00
Vlad Stan 0f4930f6c8 fix: settings reset 2026-02-05 12:21:08 +02:00
Vlad Stan e0cade01c9 test: one time code 2026-02-05 12:21:08 +02:00
Vlad Stan dd79dbc90b test: invalid code, reusable code 2026-02-05 12:21:08 +02:00
Vlad Stan 9e1ac86761 test: no code provided 2026-02-05 12:21:08 +02:00
Vlad Stan abfc8ebfb4 fix: handle empty strings better 2026-02-05 12:21:08 +02:00
Vlad Stan 872c24e6ea chore: code clean-up 2026-02-05 12:21:08 +02:00
Vlad Stan 6dcff91bf7 fix: remove nostr message 2026-02-05 12:21:08 +02:00
Vlad Stan ef253de426 feat: better wording 2026-02-05 12:21:08 +02:00
Vlad Stan 0819f51c3a feat: check invitation code 2026-02-05 12:21:08 +02:00
Vlad Stan d1cae5341f feat: update settings 2026-02-05 12:21:08 +02:00
Vlad Stan 3b249fbad2 feat: send invitation code to backend 2026-02-05 12:21:08 +02:00
Vlad Stan 9648587850 feat: add confirmation options UI 2026-02-05 12:21:08 +02:00
Vlad Stan a5523c1bf6 feat: configure ui 2026-02-05 12:21:08 +02:00
Vlad Stan eb84621f23 feat: configure activation codes 2026-02-05 12:21:08 +02:00
Vlad Stan b702229cb1 feat: add some info 2026-02-05 12:21:02 +02:00
Vlad Stan c722776bc0 refactor: reorder fields 2026-02-05 12:21:01 +02:00
Vlad Stan bd7917ab20 feat: add ui config 2026-02-05 12:21:01 +02:00
Vlad Stan db9006ea8b refactor: better query 2026-02-05 12:21:01 +02:00
Vlad Stan 15f2048bcb refactor: code cleanup 2026-02-05 12:21:01 +02:00
Vlad Stan b0079871b0 chore: clean-up 2026-02-05 12:21:01 +02:00
Vlad Stan 2bedcae9f1 refactor: simplify queries 2026-02-05 12:21:01 +02:00
Vlad Stan 341974fb35 refactor: use normal update 2026-02-05 12:21:01 +02:00
Vlad Stan d6bfbb0045 fix: better message 2026-02-05 12:21:01 +02:00
Vlad Stan dc9338b991 feat: add back toggle admin 2026-02-05 12:21:01 +02:00
Vlad Stan 6f6f7d4542 fix: clear cache 2026-02-05 12:21:01 +02:00
Vlad Stan 617f9c14ed feat: clear cache on user deactivation 2026-02-05 12:21:01 +02:00
Vlad Stan 54fdb0948c feat: basic account activate/deactivate 2026-02-05 12:21:01 +02:00
4 changed files with 3 additions and 62 deletions
+1 -1
View File
@@ -318,7 +318,7 @@ class RegisterUser(BaseModel):
username: str = Query(default=..., min_length=2, max_length=20)
password: str = Query(default=..., min_length=8, max_length=50)
password_repeat: str = Query(default=..., min_length=8, max_length=50)
invitation_code: str | None = Query(default=None, max_length=256)
invitation_code: str | None = Query(default=None, min_length=1, max_length=256)
class CreateUser(BaseModel):
+1 -1
View File
File diff suppressed because one or more lines are too long
-53
View File
@@ -295,58 +295,5 @@ window._lnbitsUtils = {
let decoder = new TextDecoder('utf-8')
return decoder.decode(valueb)
})
},
createWebSocket(endpoint, handlers, options = {}) {
const {onMessage, onError, onOpen, onClose} = handlers
const {autoParseJSON = true} = options
try {
const url = new URL(window.location)
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:'
url.pathname = `/api/v1/ws/${endpoint}`
const ws = new WebSocket(url)
ws.onmessage = async event => {
try {
const data = autoParseJSON ? JSON.parse(event.data) : event.data
if (onMessage) {
await onMessage(data, ws)
}
} catch (err) {
console.error('WebSocket message parsing error:', err)
if (onError) {
onError(err, ws)
}
}
}
ws.onerror = error => {
console.warn('WebSocket error:', error)
if (onError) {
onError(error, ws)
}
}
ws.onopen = event => {
if (onOpen) {
onOpen(event, ws)
}
}
ws.onclose = event => {
if (onClose) {
onClose(event, ws)
}
}
return ws
} catch (err) {
console.warn('WebSocket creation error:', err)
if (onError) {
onError(err, null)
}
throw err
}
}
}
@@ -310,13 +310,7 @@
<div class="col-12 col-md-6">
<q-select
filled
:options="[
{label: $t('second'), value: 'second'},
{label: $t('minute'), value: 'minute'},
{label: $t('hour'), value: 'hour'}
]"
emit-value
map-options
:options="[$t('second'), $t('minute'), $t('hour')]"
v-model="formData.lnbits_rate_limit_unit"
:label="$t('time_unit')"
></q-select>