Module Wiki_data
module Wiki_data : sig..end
This is the wiki component of Ocsimore.
Author(s): Jaap Boender, Piero Furiesi, Vincent Balat
This is the wiki component of Ocsimore.
exception Page_already_exists of Wiki_types.wikibox
Exception raised when a wikipage already exists. The argument is the wikibox for the pre-existing page
exception Css_already_exists
type 'a rights = rights:Wiki_types.wiki_rights -> 'a
val create_wiki :
(title:string ->
descr:string ->
?path:string list ->
?staticdir:string ->
?boxrights:bool ->
admins:User_sql.Types.user list ->
readers:User_sql.Types.user list ->
?container_text:string ->
model:Wiki_types.wiki_model -> unit -> Wiki_types.wiki Lwt.t)
rights
Creates the specified wiki if the user has enough permissions. Raise Permission_denied if it is not the case, and or fails with the same errors as Wiki.create_wiki if the wiki cannot be created. The options are the same as for the this function, except for the field admin, which is used as the author of the container page, and becomes admin of the wiki. By default, no one can read the wiki.
val new_wikitextbox :
?db:Ocsi_sql.db_t ->
?have_rights:bool ->
(content_type:'res Wiki_types.content_type ->
wiki:Wiki_types.wiki ->
author:User_sql.Types.userid ->
comment:string -> content:string -> unit -> Wiki_types.wikibox Lwt.t)
rights
val save_wikitextbox :
old_version:int32 ->
(content_type:'res Wiki_types.content_type ->
wb:Wiki_types.wikibox -> content:string option -> int32 Lwt.t)
rights
The next three functions save a wikibox and returns the new version id of this wikibox. For the css related functions, we check that the argument is indeed a proper css
val save_wikicssbox :
old_version:int32 ->
(wiki:Wiki_types.wiki ->
content:string option -> wb:Wiki_types.wikibox -> int32 Lwt.t)
rights
val save_wikipagecssbox :
old_version:int32 ->
(wiki:Wiki_types.wiki ->
page:string ->
content:string option -> wb:Wiki_types.wikibox -> int32 Lwt.t)
rights
val set_wikibox_special_rights :
(wb:Wiki_types.wikibox -> special_rights:bool -> unit Lwt.t)
rights
val create_wikipage :
(wiki:Wiki_types.wiki -> page:string -> unit Lwt.t) rights
val add_css :
(wiki:Wiki_types.wiki ->
page:string option ->
media:Wiki_types.media_type ->
?wbcss:Wiki_types.wikibox -> unit -> Wiki_types.wikibox Lwt.t)
rights
val delete_css :
(wiki:Wiki_types.wiki ->
page:string option -> wb:Wiki_types.wikibox -> unit Lwt.t)
rights
val update_css :
(wiki:Wiki_types.wiki ->
page:string option ->
oldwb:Wiki_types.wikibox ->
newwb:Wiki_types.wikibox ->
media:Wiki_types.media_type -> rank:int32 -> unit Lwt.t)
rights
exception Unknown_box of Wiki_types.wikibox * int32 option
Raised in case of a non-existing wikibox. The optional int32 argument is the version number
val wikibox_content :
(?version:int32 ->
Wiki_types.wikibox -> 'res Wiki_types.wikibox_content Lwt.t)
rights
Returns the content of the wikibox if the user has enough rights, possibly for the given revision
val wikibox_content' :
(?version:int32 -> Wiki_types.wikibox -> (string option * int32) Lwt.t)
rights
val wikibox_history :
(wb:Wiki_types.wikibox ->
< author : < get : unit; nul : Sql.non_nullable; t : Sql.int32_t >
Sql.t;
comment : < get : unit; nul : Sql.non_nullable; t : Sql.string_t >
Sql.t;
datetime : < get : unit; nul : Sql.non_nullable;
t : Sql.timestamp_t >
Sql.t;
version : < get : unit; nul : Sql.non_nullable; t : Sql.int32_t >
Sql.t >
list Lwt.t)
rights
val wiki_css_boxes_with_content :
(wiki:Wiki_types.wiki ->
(Wiki_types.wikibox * int32) list ->
(Wiki_types.wikibox * string) list Lwt.t)
rights
Returns the css for the specified wiki or the wikipage. The CSS are filtered for the ones the user can read
val wikipage_css_boxes_with_content :
(wiki:Wiki_types.wiki ->
page:string ->
(Wiki_types.wikibox * int32) list ->
(Wiki_types.wikibox * string) list Lwt.t)
rights
Same thing for a wikipage
val update_wiki :
(?container:Wiki_types.wikibox option ->
?staticdir:string option ->
?path:string option ->
?descr:string ->
?boxrights:bool ->
?model:Wiki_types.wiki_model ->
?siteid:string option -> Wiki_types.wiki -> unit Lwt.t)
rights
Same as Wiki_sql.update_wiki, except that this function fails with Permission_denied if the user has not enough rights to edit a wiki
val save_wikipage_properties :
(?title:string ->
?wb:Wiki_types.wikibox option ->
?newpage:string -> Wiki_types.wikipage -> unit Lwt.t)
rights