##############################################################
#
# ToDoプラグインのアクションハンドラ。
# チェックされたToDoを「済」に変更します。
#
##############################################################
package plugin::todo::ToDoHandler;
use strict;

#=============================================================
# コンストラクタ
#=============================================================
sub new{
    my $class = shift;
    my $self = {};
    return bless $self,$class;
}

#=============================================================
# アクションメソッド
# ToDoの完了処理
#=============================================================
sub do_action {
	my $self = shift;
	my $wiki = shift;
	my $cgi  = $wiki->get_CGI;

	my $buf = "";
	my $source  = $cgi->param("source");
	my @params  = $cgi->all_parameters;
	my $content = $wiki->get_page($source);
	my $page    = $cgi->param("page");

	# todoを収集
	@params = grep(/^todo\.\d+/,@params);
	my ($param,$dothing);
	foreach $param (@params){
		#メタ文字をクウォート
		my $dothing = quotemeta($cgi->param($param));
		# 済マークを付ける
		$content =~ s/((^|\n)\*)\s*(\d+)\s+($dothing)(\n|$)/$1 済 $3 $4$5/;
	}
	$wiki->save_page($source,$content);

	# もともと表示していたページを表示
	$wiki->redirect($page);
}

1;