ref: b4148bc258fc901a6f3d00ca7326d10c2d9ad2cc
parent: add7d8d0bdf124a07da832eb718b72309f1b27fb
author: uriel <uriel@engel.se.cat-v.org>
date: Tue Mar 3 22:12:54 EST 2009
Implement file creation for dirdir.
--- a/apps/dirdir/app.rc
+++ b/apps/dirdir/app.rc
@@ -5,27 +5,47 @@
}
fn dirdir_init {
- if(! ~ $#enable_wiki 0 && check_user $wiki_editors_groups && test -f $local_path.md) {
+ if(! ~ $#enable_wiki 0 && check_user $wiki_editors_groups) {
dirdir_file=$local_path.md
dirdir_dir=$dirdir_file^'_werc/dirdir/'
- if(~ $#post_arg_dirdir_save 1 && ! ~ $"post_arg_edit_text '') {
+ if(test -f $local_path.md) {
+ if(~ $#post_arg_dirdir_save 1 && ! ~ $"post_arg_edit_text '')
+ save_page
- dirdir_verdir=$dirdir_dir/^`{date -n}^/
- mkdir -p $dirdir_verdir
+ if not if(~ 1 $#post_arg_dirdir_edit $#post_arg_dirdir_preview)
+ handler_body_main=(tpl_handler \
+ `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl})
- # XXX Use a tmp file and mv(1) to ensure updates are atomic?
- echo $logged_user > $dirdir_verdir/author
- echo $post_arg_edit_text > $dirdir_verdir/data
- echo $post_arg_edit_text > $dirdir_file
+ if not if(! ~ $REQUEST_METHOD POST)
+ ll_add handlers_bar_left tpl_handler \
+ apps/dirdir/sidebar_controls.tpl
+ }
- post_redirect $base_url^$req_path
- #notify_notes='Saved <a href="'$"req_path'">'$"req_path'</a>!'
+ if not if(~ 1 $#post_arg_dirdir_edit)
+ handler_body_main=(tpl_handler \
+ `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl})
+
+ if not if(~ 1 $#post_arg_dirdir_save) {
+ mkdir -p `{basename -d $local_path}
+ save_page
}
- if not if(~ $#post_arg_dirdir_edit 1 || ~ $#post_arg_dirdir_preview 1)
- handler_body_main=(tpl_handler `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl} )
- if not if(! ~ $REQUEST_METHOD POST)
- ll_add handlers_bar_left tpl_handler apps/dirdir/sidebar_controls.tpl
+ if not
+ ll_add handlers_bar_left tpl_handler \
+ apps/dirdir/sidebar_controls.tpl
}
+}
+
+fn save_page {
+ dirdir_verdir=$dirdir_dir/^`{date -n}^/
+ mkdir -p $dirdir_verdir
+
+ # XXX Use a tmp file and mv(1) to ensure updates are atomic?
+ echo $logged_user > $dirdir_verdir/author
+ echo $post_arg_edit_text > $dirdir_verdir/data
+ echo $post_arg_edit_text > $dirdir_file
+
+ post_redirect $base_url^$req_path
+ #notify_notes='Saved <a href="'$"req_path'">'$"req_path'</a>!'
}