<& '/widgets/listManager/listManager.mc', object => 'contrib', userSort => 0, state_key => "$asset_type\_contrib_assoc", def_sort_field => 'order', objs => $contribs, profile => undef, fields => [qw(lname fname type role order delete)], field_titles => { order => 'Order', role => 'Role', delete => '' }, field_values => $value_sub, select => undef, addition => '', no_pagination => 1, &> <%args> $asset => undef $asset_type => 'story' $widget => 'story_prof' $contribs <%init> $asset ||= get_state_data($widget, $asset_type); my $order_vals = [ map { [ $_ => $_ ] } 1..@$contribs ]; my ($i, @sort_array); my $value_sub = sub { if ($_[1] eq 'role') { my $role_opt = []; foreach my $r ($_[0]->get_roles) { $r eq '_MEMBER_SUBSYS' ? unshift @$role_opt, ['DEFAULT', 'Default'] : push @$role_opt, [$r, $r]; } $m->scomp('/widgets/profile/select.mc', name => "$widget|contrib_role_" . $_[0]->get_id, disp => '', value => $asset->get_contributor_role($_[0]) || 'DEFAULT', options => $role_opt, useTable => 0 ) } elsif ($_[1] eq 'order') { my $id = $_[0]->get_id; push @sort_array, qq{"$widget|contrib_order_$id"}; $m->scomp('/widgets/profile/select.mc', id => "contrib_order_$id", name => "$widget|contrib_order_$id", disp => '', value => ++$i, options => $order_vals, useTable => 0, js => qq{class="reorder" onchange="reorder(this, 'contribs')"} ) } elsif ($_[1] eq 'delete') { my $elem_id = 'contrib_id_' . $_[0]->get_id; $m->scomp('/widgets/profile/hidden.mc', id => $elem_id, name => "contrib_id", value => $_[0]->get_id, ) . $m->scomp('/widgets/profile/imageSubmit.mc', image => 'delete_red', js => qq{onclick="deleteContrib(\$('$elem_id')); return false"}, useHidden => 0, ); } };