& '/widgets/search/search.mc',
object => 'media',
state_key => 'rel_media',
type => 'media',
field => 'title',
insert => $insert,
use_form_tag => 0 &>
<& '/widgets/wrappers/table_top.mc', caption => 'Choose Related Media' &>
<& /widgets/listManager/listManager.mc,
object => 'media',
state_key => 'rel_media',
sortBy => 'name',
select => undef,
profile => undef,
constrain => { location => '/%' }, # Must have a file associated.
featured => $relate_id ? [$relate_id] : undef,
exclude => $excl_sub,
fields => [(USE_THUMBNAILS ? 'thumb' : ()), qw(id name uri cover_date action)],
addition => '',
behavior => 'expand',
field_values => $field_values,
field_titles => { thumb => $lang->maketext('Thumb'), action => ''},
sort_params => 'id=' . $element->get_id,
&>
<& '/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
$formName => 'theForm'
%args>
<%init>;
# The element object.
$element ||= get_state_data($widget, 'element');
my $relate_id = $element->get_related_media_id;
my $obj_type = $element->get_object_type;
my $excl_sub;
if ($obj_type eq 'media') {
my $asset_id = get_state_data('media_prof', 'media')->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 'thumb') {
# If we get a thumbnail URI, we have an image. Otherwise, simply return
# a space to fill the column properly because we aren't an image object
# but USE_THUMBNAILS is on.
my $thumb_uri = eval { $o->thumbnail_uri } or return ' ';
return qq{ };
} elsif ($field eq 'action') {
if ($relate_id == $o->get_id) {
return qq{Un-relate};
} else {
return qq{Relate};
}
}
};
my $insert = '';
if (RELATED_MEDIA_UPLOAD) {
# Give 'em an upload form.
if (my $uploader = $m->scomp('/widgets/profile/media_upload.mc',
widget => $widget,
file_widget => 'container_prof',
formName => $formName,
site_id => get_state_data("$obj_type\_prof", $obj_type)->get_site_id,
)) {
$insert = qq{