ref: 17ed43a1fe0ee0cf48772b72b3a3a94f5d77cd56
parent: 05e5899fc564a8ee7829a0cd97dc40bc4e9b0248
author: sl <uriel@engel.se.cat-v.org>
date: Fri Feb 13 18:21:15 EST 2009
Updates to blagh: Allow setting date of new posts, blog-editors default group, provide better error repporting using new notification framework, plus other bug fixes.
--- a/apps/blagh/app.rc
+++ b/apps/blagh/app.rc
@@ -17,8 +17,12 @@
# && test -d / `{echo '-a -d '^$blagh_root^$blagh_dirs}
blagh_url=$base_url^$blagh_uri
blagh_root=$sitedir^$blagh_uri
- if(check_user $blog_editors admin) {
+ if(check_user $blog_editors blog-editors) {
editor_mode=on
+ if(~ $"post_arg_date '')
+ post_date=`{/bin/date +%F|sed 's,-,/,g'}
+ if not
+ post_date=$post_arg_date
ll_add handlers_bar_left echo '<a href="'$blagh_uri'new_post">Make a new post</a>'
}
@@ -35,11 +39,12 @@
blagh_setup_feed_handlers rss20.tpl
case $blagh_uri^new_post
if(! ~ $#editor_mode 0) {
- if(~ $REQUEST_METHOD GET)
- handler_body_main=( tpl_handler `{get_lib_file blagh/new_post.tpl apps/blagh/new_post.tpl} )
- if not if(~ $REQUEST_METHOD POST) {
- mkbpost $post_arg_id $post_arg_title $post_arg_body
- post_redirect $blagh_uri
+ handler_body_main=( tpl_handler `{get_lib_file blagh/new_post.tpl apps/blagh/new_post.tpl} )
+ if(~ $REQUEST_METHOD POST) {
+ if(mkbpost $"post_arg_body $"post_date $"post_arg_title $post_arg_id)
+ post_redirect $blagh_uri
+ if not
+ notify_errors=$status
}
}
}
@@ -73,21 +78,30 @@
}
fn mkbpost {
- if(! ~ 0 $#1 $#2) {
+ bptext=$1
+ bpdate=$2
+ bptitle=$3
+ bpid=$4
+ _status=()
+ if(~ $"bptext '')
+ _status=($_status 'You need to provide a post body.')
+ if(! ~ $"bpdate [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9])
+ _status=($_status 'Invalid date: '''^$"bpdate^'''') # XXX Should make semantic check.
+
+ if(~ $#_status 0) {
umask 002 # Let group write
- bptitle=$1
- bptext=$2
- if(! ~ $#3 0)
- bpid=`{echo -n '-'^$"bpid | sed 's/'$forbidden_uri_chars'+/_/g; 1q'}
- d=`{/bin/date +%F|sed 's,-,/,g'}
+ if(! ~ $"bpid '')
+ bpid=`{echo -n '-'^$bpid | sed 's/'$forbidden_uri_chars'+/_/g; 1q'}
- ddir=$blagh_root^$d^'/'
+ ddir=$blagh_root^$bpdate^'/'
n=`{ls $ddir >[2]/dev/null |wc -l}
mkdir -p $ddir/$"n^$"bpid/
{
- echo $bptitle
- echo '========================================='
+ if(! ~ $"bptitle '') {
+ echo $bptitle
+ echo '========================================='
+ }
# TODO: Enable metadata
#echo '* Posted:' `{date}
#if(! ~ $#logged_user 0)
@@ -96,6 +110,5 @@
echo $bptext
}> $ddir/$"n^$"bpid/index.md
}
- if not
- status=Missing blog post arguments $"1 $"2
+ status=$_status
}
--- a/apps/blagh/new_post.tpl
+++ b/apps/blagh/new_post.tpl
@@ -1,7 +1,11 @@
+<div>
+% notices_handler
<form method="POST"><fieldset>
<legend>Submit a new blog post</legend>
- <textarea cols="80" rows=16" name="body"></textarea><br />
- <label>Title: <input size="64" type="text" name="title" /></label>
- <label>Id: <input size="8" type="text" name="id" /></label>
+ <textarea cols="94" rows=16" name="body">%($"post_arg_body%)</textarea><br />
+ <label>Title: <input size="64" type="text" name="title" value="%($"post_arg_title%)" /></label>
+ <label>Id: <input size="8" type="text" name="id" value="%($"post_arg_id%)" /></label>
+ <label>Date: <input size="10" maxlength="10" type="text" name="date" value="%($"post_date%)" /></label>
<input type="submit" value="Post" />
</fieldset></form>
+</div>