-
Notifications
You must be signed in to change notification settings - Fork 1
/
gallery.policies.lisp
52 lines (46 loc) · 2.24 KB
/
gallery.policies.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(restas:define-policy render
(:interface-package #:gallery.policy.render)
(:interface-method-template "THEME.~A")
(:internal-package #:gallery.internal.render)
(:internal-function-template "~A-RENDER")
(define-method add-pic (form album album-name)
"Draw a page with form for a picture addendum")
(define-method add-album (form father father-name)
"Draw a page for new album form")
(define-method view-album (add-pic-url add-alb-url rem-pic-url branch album)
"Draw all pictures in the album")
(define-method choose-album (action albums)
"Show the table with checkboxes for user to choose some albums")
(define-method choose-picture (action album)
"Show the current album for user to choose some pictures from it")
(define-method no-such-album (id)
"Show the not found message fro the album named name")
(define-method pics-grid (album chkbox)
"Draw all pictures from the given album, and supply them by
the checkbox if given.")
(define-method preview (content chkbox)
"draw a small preview composition.
The chkbox is the name of checkbox group, if nil - no checkbox")
(define-method draw-time (time)
"draw a given timestamp, or period into an item preview")
(define-method update-item-form (content)
"draw a form for single item update"))
(restas:define-policy pics-collection
(:interface-package #:gallery.policy.pics-collection)
(:interface-method-template "P-COLL.~A")
(:internal-package #:gallery.internal.pics-collection)
(:internal-function-template "~A-PIC-COLL")
(define-method get-item (id)
"Get an item (album or picture) from the database by it's unique id")
(define-method save-pictures (pics father-id)
"Persist a list of pictures pics in album with id father-id.
Returns nil if father is absent, and non-nil otherwise. ")
(define-method save-album (album father-id)
"Persist the album from the album with id father-id.
Return nil if father is not found, and non-nil otherwise.")
(define-method update-item (item)
"Persist all changes, made in the item")
(define-method gen-uniq-id ()
"Generate a new unique id for a next item")
(define-method root-album-id ()
"Get the id of the very first album - the root in the tree of all albums"))