refactoring of cmaps, widgets, etc.

This commit is contained in:
2026-09-02 16:06:26 +02:00
parent 38f255c1a4
commit f0562a06cc
52 changed files with 3626 additions and 2642 deletions
+62 -10
View File
@@ -15,8 +15,9 @@
web-server/http
web-server/servlet-env
"private/auth.rkt"
"private/cmap-appearance.rkt"
"private/cmap-settings.rkt"
"private/cmap-storage.rkt"
"private/cmap-styles.rkt"
"private/config.rkt"
(only-in "private/database.rkt" call-with-wiki-database)
"private/http-util.rkt"
@@ -837,20 +838,63 @@ CSS
(json-response
(hash 'conceptMaps (list-archived-concept-maps config))))))
(define (cmap-styles-handler config req)
(define (cmap-appearance-handler config req)
(if (string-ci=? (bytes->string/latin-1 (request-method req)) "GET")
(require-role
config req 'reader
(λ (_session)
(json-response (hash 'styles (or (read-cmap-styles config) 'null)))))
(json-response (read-cmap-appearance config))))
(require-write-role
config req 'editor
(λ (_session)
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
(define body (request-json req))
(json-response
(hash 'styles
(save-cmap-styles! config (hash-ref body 'styles '())))))))))
(json-response (save-cmap-appearance! config body)))))))
(define (cmap-settings-handler config req)
(require-role
config req 'reader
(λ (session)
(json-response
(read-cmap-settings config (wiki-user-id (wiki-session-user session)))))))
(define (cmap-start-setting-handler config req)
(require-write-role
config req 'editor
(λ (_session)
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
(define body (request-json req))
(json-response
(hash 'startCmapSlug
(save-start-cmap! config (hash-ref body 'startCmapSlug ""))))))))
(define (cmap-page-guides-setting-handler config req)
(require-write-role
config req 'reader
(λ (session)
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
(define body (request-json req))
(json-response
(hash 'pageGuidesVisible
(save-cmap-page-guides!
config
(wiki-user-id (wiki-session-user session))
(hash-ref body 'pageGuidesVisible 'missing))))))))
(define (cmap-zoom-setting-handler config req)
(require-write-role
config req 'reader
(λ (session)
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
(define body (request-json req))
(json-response
(hash 'zoomPercent
(save-cmap-zoom!
config
(wiki-user-id (wiki-session-user session))
(hash-ref body 'cmapSlug "")
(hash-ref body 'contextKey "")
(hash-ref body 'zoomPercent #f))))))))
(define (admin-restore-concept-map-handler config req slug)
(require-write-role
@@ -1104,10 +1148,18 @@ CSS
(λ (req) (concept-map-list-handler config req))]
[("api" "cmaps") #:method "post"
(λ (req) (concept-map-create-handler config req))]
[("api" "cmap-styles") #:method "get"
(λ (req) (cmap-styles-handler config req))]
[("api" "cmap-styles") #:method "put"
(λ (req) (cmap-styles-handler config req))]
[("api" "cmap-appearance") #:method "get"
(λ (req) (cmap-appearance-handler config req))]
[("api" "cmap-appearance") #:method "put"
(λ (req) (cmap-appearance-handler config req))]
[("api" "cmap-settings") #:method "get"
(λ (req) (cmap-settings-handler config req))]
[("api" "cmap-settings" "start") #:method "put"
(λ (req) (cmap-start-setting-handler config req))]
[("api" "cmap-settings" "page-guides") #:method "put"
(λ (req) (cmap-page-guides-setting-handler config req))]
[("api" "cmap-settings" "zoom") #:method "put"
(λ (req) (cmap-zoom-setting-handler config req))]
[("api" "cmaps" "concept-usage") #:method "get"
(λ (req) (concept-usage-handler config req))]
[("api" "people") #:method "get"