feat: Update ParenScript users.lisp with API fixes and audio player color
- Fix user management API endpoints to match backend changes
- Add user-id to form data for role updates and activation/deactivation
- Change endpoints from /users/{id}/action to /user/action format
- Handle Radiance API data wrapping properly
- Add confirmation prompt for user activation
- Update audio player background color to match app panels (#1a2332)
Incorporates changes from main branch users.js updates
This commit is contained in:
parent
ed13589202
commit
070e8d8dac
|
|
@ -91,18 +91,21 @@
|
||||||
;; Update user role
|
;; Update user role
|
||||||
(defun update-user-role (user-id new-role)
|
(defun update-user-role (user-id new-role)
|
||||||
(let ((form-data (ps:new (-form-data))))
|
(let ((form-data (ps:new (-form-data))))
|
||||||
|
(ps:chain form-data (append "user-id" user-id))
|
||||||
(ps:chain form-data (append "role" new-role))
|
(ps:chain form-data (append "role" new-role))
|
||||||
|
|
||||||
(ps:chain
|
(ps:chain
|
||||||
(fetch (+ "/api/asteroid/users/" user-id "/role")
|
(fetch "/api/asteroid/user/role"
|
||||||
(ps:create :method "POST" :body form-data))
|
(ps:create :method "POST" :body form-data))
|
||||||
(then (lambda (response) (ps:chain response (json))))
|
(then (lambda (response) (ps:chain response (json))))
|
||||||
(then (lambda (result)
|
(then (lambda (result)
|
||||||
(if (= (ps:@ result status) "success")
|
;; Handle Radiance API data wrapping
|
||||||
(progn
|
(let ((data (or (ps:@ result data) result)))
|
||||||
(load-user-stats)
|
(if (= (ps:@ data status) "success")
|
||||||
(alert "User role updated successfully"))
|
(progn
|
||||||
(alert (+ "Error updating user role: " (ps:@ result message))))))
|
(load-user-stats)
|
||||||
|
(alert (ps:@ data message)))
|
||||||
|
(alert (+ "Error updating user role: " (ps:@ data message)))))))
|
||||||
(catch (lambda (error)
|
(catch (lambda (error)
|
||||||
(ps:chain console (error "Error updating user role:" error))
|
(ps:chain console (error "Error updating user role:" error))
|
||||||
(alert "Error updating user role. Please try again."))))))
|
(alert "Error updating user role. Please try again."))))))
|
||||||
|
|
@ -112,37 +115,52 @@
|
||||||
(when (not (confirm "Are you sure you want to deactivate this user?"))
|
(when (not (confirm "Are you sure you want to deactivate this user?"))
|
||||||
(return))
|
(return))
|
||||||
|
|
||||||
(ps:chain
|
(let ((form-data (ps:new (-form-data))))
|
||||||
(fetch (+ "/api/asteroid/users/" user-id "/deactivate")
|
(ps:chain form-data (append "user-id" user-id))
|
||||||
(ps:create :method "POST"))
|
(ps:chain form-data (append "active" 0))
|
||||||
(then (lambda (response) (ps:chain response (json))))
|
|
||||||
(then (lambda (result)
|
(ps:chain
|
||||||
(if (= (ps:@ result status) "success")
|
(fetch "/api/asteroid/user/activate"
|
||||||
(progn
|
(ps:create :method "POST" :body form-data))
|
||||||
(load-users)
|
(then (lambda (response) (ps:chain response (json))))
|
||||||
(load-user-stats)
|
(then (lambda (result)
|
||||||
(alert "User deactivated successfully"))
|
;; Handle Radiance API data wrapping
|
||||||
(alert (+ "Error deactivating user: " (ps:@ result message))))))
|
(let ((data (or (ps:@ result data) result)))
|
||||||
(catch (lambda (error)
|
(if (= (ps:@ data status) "success")
|
||||||
(ps:chain console (error "Error deactivating user:" error))
|
(progn
|
||||||
(alert "Error deactivating user. Please try again.")))))
|
(load-users)
|
||||||
|
(load-user-stats)
|
||||||
|
(alert (ps:@ data message)))
|
||||||
|
(alert (+ "Error deactivating user: " (ps:@ data message)))))))
|
||||||
|
(catch (lambda (error)
|
||||||
|
(ps:chain console (error "Error deactivating user:" error))
|
||||||
|
(alert "Error deactivating user. Please try again."))))))
|
||||||
|
|
||||||
;; Activate user
|
;; Activate user
|
||||||
(defun activate-user (user-id)
|
(defun activate-user (user-id)
|
||||||
(ps:chain
|
(when (not (confirm "Are you sure you want to activate this user?"))
|
||||||
(fetch (+ "/api/asteroid/users/" user-id "/activate")
|
(return))
|
||||||
(ps:create :method "POST"))
|
|
||||||
(then (lambda (response) (ps:chain response (json))))
|
(let ((form-data (ps:new (-form-data))))
|
||||||
(then (lambda (result)
|
(ps:chain form-data (append "user-id" user-id))
|
||||||
(if (= (ps:@ result status) "success")
|
(ps:chain form-data (append "active" 1))
|
||||||
(progn
|
|
||||||
(load-users)
|
(ps:chain
|
||||||
(load-user-stats)
|
(fetch "/api/asteroid/user/activate"
|
||||||
(alert "User activated successfully"))
|
(ps:create :method "POST" :body form-data))
|
||||||
(alert (+ "Error activating user: " (ps:@ result message))))))
|
(then (lambda (response) (ps:chain response (json))))
|
||||||
(catch (lambda (error)
|
(then (lambda (result)
|
||||||
(ps:chain console (error "Error activating user:" error))
|
;; Handle Radiance API data wrapping
|
||||||
(alert "Error activating user. Please try again.")))))
|
(let ((data (or (ps:@ result data) result)))
|
||||||
|
(if (= (ps:@ data status) "success")
|
||||||
|
(progn
|
||||||
|
(load-users)
|
||||||
|
(load-user-stats)
|
||||||
|
(alert (ps:@ data message)))
|
||||||
|
(alert (+ "Error activating user: " (ps:@ data message)))))))
|
||||||
|
(catch (lambda (error)
|
||||||
|
(ps:chain console (error "Error activating user:" error))
|
||||||
|
(alert "Error activating user. Please try again."))))))
|
||||||
|
|
||||||
;; Toggle create user form
|
;; Toggle create user form
|
||||||
(defun toggle-create-user-form ()
|
(defun toggle-create-user-form ()
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@
|
||||||
:text-align center)
|
:text-align center)
|
||||||
|
|
||||||
((:and audio |::-webkit-media-controls-panel|)
|
((:and audio |::-webkit-media-controls-panel|)
|
||||||
:background-color "#1a1a1a")
|
:background-color "#1a2332")
|
||||||
|
|
||||||
;; ((:and audio (:or |::-webkit-media-controls-mute-button|
|
;; ((:and audio (:or |::-webkit-media-controls-mute-button|
|
||||||
;; |::-webkit-media-controls-play-button|
|
;; |::-webkit-media-controls-play-button|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue