& '/widgets/search/search.mc',
object => 'story',
state_key => 'rel_story',
type => 'story',
field => 'title',
use_form_tag => 0 &>
<& '/widgets/wrappers/table_top.mc', caption => 'Choose a Related Story' &>
<& /widgets/listManager/listManager.mc,
object => 'story',
state_key => 'rel_story',
sortBy => 'name',
select => undef,
profile => '',
featured => $relate_id ? [$relate_id] : undef,
exclude => $excl_sub,
fields => [qw(id title uri cover_date action)],
field_titles => { action => ''},
field_values => $field_values,
addition => '',
behavior => 'expand',
&>
<& '/widgets/wrappers/table_bottom.mc' &>
<& '/widgets/buttons/submit.mc',
disp => 'Return',
name => 'return',
button => 'return_dgreen',
value => 'Return',
js => qq{onclick="window.close()"},
useTable => 0,
&>
<%args>
$widget
$element => undef
%args>
<%init>;
# The element object
$element ||= get_state_data($widget, 'element');
my $relate_id = $element->get_related_story_id;
my $excl_sub;
if ($element->get_object_type eq 'story') {
my $asset_id = get_state_data('story_prof', 'story')->get_id;
$excl_sub = sub {
return 1 if $_[0]->get_id == $asset_id;
return !chk_authz($_[0], READ, 1);
};
} else {
$excl_sub = sub { return !chk_authz($_[0], READ, 1) };
}
my $field_values = sub {
my ($o, $field) = @_;
if ($field eq 'title') {
return '' .
$o->get_title . '';
} elsif ($field eq 'action') {
if ($relate_id == $o->get_id) {
return qq{Un-relate};
} else {
return qq{Relate};
}
}
};
%init>