package HTML::Mason::Commands; use strict; use vars qw($m $r); my $_escape = \&HTML::Mason::Parser::_escape_perl_expression; HTML::Mason::Component::FileBased->new ( 'code'=>sub { my %ARGS; if (@_ % 2 == 0) { %ARGS = @_ } else { die "Odd number of parameters passed to component expecting name/value pairs" } my $widget = (!exists $ARGS{'widget'} ? die "no value sent for required parameter 'widget'" : $ARGS{'widget'}); my $param = (!exists $ARGS{'param'} ? undef : $ARGS{'param'}); my $_out = $m->current_sink; $m->debug_hook($m->current_comp->path) if (%DB::); ; my $story = get_state_data($widget, 'story'); my $keywords = $story->get_keywords || []; ; $m->comp("/widgets/wrappers/sharky/table_top.mc", caption => "Category Keywords", number => 1); $m->out(""); foreach my $cat ($story->get_categories) { $m->out(qq{\n"); my $flag = 'Keywords:'; foreach my $kw ($cat->keywords) { $m->out(qq{\n"); $flag = ' '; } } $m->out("
Category:} . $cat->get_name . "
$flag} . $kw->get_name . "
"); $m->comp("/widgets/wrappers/sharky/table_bottom.mc"); # Output the keywords. $m->comp("/widgets/wrappers/sharky/table_top.mc", caption => "Story Keywords", number => 2); $m->comp('/widgets/add_more/add_more.mc', type => 'keyword', param => $param, fields => [qw(keyword)], name => 'keyword', deleteLabelOnly => 1, reset_key => $story->get_id, objs => $keywords, incr => 4, no_edit => [qw(keyword)], num => @$keywords >= 4 ? @$keywords + 2 : 4); $m->comp("/widgets/wrappers/sharky/table_bottom.mc"); # Output the save buttons. $m->comp('/widgets/profile/formButtons.mc', type => 'story', section => 'workflow', no_del => 1, widget => $widget, cb => 'add_kw_cb'); $_out->(' '); $_out->(' '); return undef; }, 'create_time'=>1001680234, 'declared_args'=> { '$param' => { 'default' => ' undef' }, '$widget' => { 'default' => undef } }, 'object_size'=>2213, 'parser_version'=>0.8 ) ;