<%perl>
my $rightText = $m->scomp( '/widgets/profile/imageSubmit.mc',
formName => "theForm",
callback => $widget . "|trail_cb",
image => "view_trail_teal"
) . ' ';
$rightText .= $m->scomp( '/widgets/profile/imageSubmit.mc',
formName => "theForm",
callback => $widget . "|notes_cb",
image => %{ $story->get_notes } ? 'note_fill' : "note",
useGlobalImage => 1,
value => 'edit'
);
$m->comp("/widgets/wrappers/sharky/table_top.mc",
caption => "Information",
number => $num++,
id => 'storyinfo',
rightText => $rightText
);
%perl>
<% $lang->maketext('UUID') %>:
<% $story->get_uuid %>
<% $lang->maketext('Element') %>:
<% $story->get_element_name || ' ' %>
<% $lang->maketext('Current Version') %>:
<% $story->get_current_version %>
<% $lang->maketext('Published Version') %>:
<% $story->get_published_version || ' ' %>
<% $lang->maketext('First Published') %>:
<% $story->get_first_publish_date || ' ' %>
<% $lang->maketext('Last Published') %>:
<% $story->get_publish_date || ' ' %>
<% $lang->maketext('URI') %>:
% if (@ocs == 1) {
<% $m->comp('/widgets/profile/preview_link.mc',
type => 'story',
value => $short_story_uri,
title => $story_uri,
doc => $story,
style => 'blackUnderlinedLink') %>
% } else {
% if (!($short_story_uri eq $story_uri)) {
<% $short_story_uri %>
% } else {
<% $story_uri %>
% }
<% $lang->maketext('Preview in') %>:
<% $oc_select %> <%
$m->comp('/widgets/profile/preview_link.mc',
type => 'story',
value => $story->get_primary_uri,
doc => $story,
oc_js => 'window.document.theForm.ocSelect.options[window.document.theForm.ocSelect.selectedIndex].value',
style => 'blackUnderlinedLink') %>
% }
<% $lang->maketext('Site') %>:
<% Bric::Biz::Site->lookup({id => $story->get_site_id})->
get_name() %>
<& '/widgets/select_object/select_object.mc',
object => 'source',
name => "$widget|source__id",
field => 'source_name',
selected => $story->get_source__id,
indent => 0,
useTable => 1,
disp => "Source",
exclude => sub { !chk_authz($_[0], READ, 1) },
&>
<& '/widgets/profile/displayFormElement.mc',
objref => $story,
key => 'priority',
&>
<& '/widgets/profile/displayFormElement.mc',
objref => $story,
key => 'title',
&>
<& '/widgets/profile/displayFormElement.mc',
objref => $story,
key => 'description',
&>
<& '/widgets/profile/displayFormElement.mc',
vals => $slug_vals,
id => 'slug',
key => 'slug',
&>
<& '/widgets/profile/displayFormElement.mc',
objref => $story,
key => 'cover_date',
&>
<& '/widgets/profile/displayFormElement.mc',
objref => $story,
key => 'expire_date',
&>
<& '/widgets/wrappers/sharky/table_bottom.mc' &>
<%perl>;
$num = $m->comp('/widgets/container_prof/container_prof.mc',
tile => $tile,
tile_type => 'story',
action => $story->get_alias_id ? 'view' : 'edit',
title => 'Content',
num => $num,
start_count => 4
);
%perl>
<%doc>
We might want to actually put the categories in using listManager instead.
The only issue is having the addition argument put up a button instead of a
link. Here is a starter:
<%perl>;$repeatable_opts
my $cats = $story->get_categories;
$m->comp('/widgets/listManager/listManager.mc',
object => 'category',
userSort => 0,
objs => $cats,
title => '%n',
# addition => $no_edit ? undef : ['Add', "/admin/profile/action?dest_id=$id"],
# constrain => { server_type_id => $id },
fields => [qw(name)],
profile => undef,
select => ['Delete', "$widget|delete_cat"],
number => $num
);
%perl>
%doc>
% unless (ENABLE_CATEGORY_BROWSER) {
% $m->comp("/widgets/wrappers/sharky/table_top.mc",
% caption => "Categories",
% number => $num++);
% my @cat = $story->get_categories;
% my $primary = $story->get_primary_category();
% my $p_id = $primary ? $primary->get_id : '';
% my $rowspan = scalar (@cat) + 2;
% # Create the subroutine to exclude categories.
% my $excl_sub = sub { $curr_cats->{$_[0]->get_id} || ! chk_authz($_[0], READ, 1) };
<&
'/widgets/profile/imageSubmit.mc',
formName => "theForm",
callback => "$widget|add_category_cb",
image => "add_category_lgreen",
vspace => 3,
hspace => 2
&>
<& '/widgets/select_object/select_object.mc',
object => 'category',
name => "$widget|new_category_id",
constrain => { site_id => $story->get_site_id },
exclude => $excl_sub,
field => 'uri',
sort_field => 'uri',
useTable => 0
&>
<%perl>;
$m->comp("/widgets/wrappers/sharky/table_bottom.mc");
} # unless ENABLE_CATEGORY_BROWSER
if (ENABLE_OC_ASSET_ASSOCIATION) {
$m->comp('/widgets/profile/asset_ocs.mc',
asset => $story,
widget => $widget,
ocs => \@ocs,
num => $num++,
at_ocs => \@aocs
);
}
$m->comp("/widgets/wrappers/sharky/table_top.mc",
caption => "Associations",
number => $num++);
%perl>
% my $rowColor = "even";
% if (ENABLE_CATEGORY_BROWSER) {
% $rowColor = $rowColor eq "odd" ? "even" : "odd";
<% $lang->maketext('Categories') %>:
<%perl>
my @cats;
my $primary_cat_uri = $story->get_primary_category->get_uri;
push @cats, $primary_cat_uri;
foreach my $cat ($story->get_secondary_categories) {
push @cats, $cat->get_uri;
}
$m->out(scalar(@cats) ? join(' ', @cats) : $lang->maketext("No categories defined."));
%perl>
<& '/widgets/profile/button.mc',
disp => $lang->maketext("Edit"),
widget => $widget,
cb => 'categories_cb',
button => 'pencil',
useTable => 0,
globalImage => 1 &>
% }
% $rowColor = $rowColor eq "odd" ? "even" : "odd";
<% $lang->maketext('Contributors') %>:
<%perl>
my @contribs;
foreach my $cntr ($story->get_contributors) {
push @contribs, $cntr->get_name;
}
$m->out(scalar(@contribs) ? join(", ", @contribs) : $lang->maketext("No contributors defined."));
%perl>
% unless ($story->get_alias_id) {
<& '/widgets/profile/button.mc',
disp => $lang->maketext("Edit"),
widget => $widget,
cb => 'contributors_cb',
button => 'pencil',
useTable => 0,
globalImage => 1 &>
% }
% $rowColor = $rowColor eq "odd" ? "even" : "odd";
<% $lang->maketext('Keywords') %>:
<%perl>
my @keywords;
foreach my $kw ($story->get_keywords) {
push @keywords, $kw->get_name;
}
$m->out(scalar(@keywords) ? join(", ", @keywords) : $lang->maketext("No keywords defined."));
%perl>
<& '/widgets/profile/button.mc',
disp => $lang->maketext("Edit"),
widget => $widget,
cb => 'keywords_cb',
button => 'pencil',
useTable => 0,
globalImage => 1 &>
<%perl>
$m->comp("/widgets/wrappers/sharky/table_bottom.mc");
$m->comp("/widgets/profile/buttonBar.mc",
widget => $widget,
desks => $desks,
cd => $cd,
obj => $story,
);
%perl>
<%args>
$widget
%args>
<%init>
my $story = get_state_data($widget, 'story');
my $tile = $story->get_tile();
my $id = $story->get_id;
my $wf_id = get_state_data($widget, 'work_id');
$wf_id = $story->get_workflow_id() unless $wf_id;
my $wf = Bric::Biz::Workflow->lookup( { id => $wf_id });
my $desks = $wf->allowed_desks();
my $cd = $story->get_current_desk();
$cd = $wf->get_start_desk() unless $cd;
my $num = 1;
# get output channel info
my $at = $story->get_element__id;
my $asset_type = Bric::Biz::AssetType->lookup({id => $at});
my @aocs = $asset_type->get_output_channels;
my @ocs = $story->get_output_channels;
my $primocid = $story->get_primary_oc_id;
my $story_uri = $story->get_primary_uri;
# Truncate long category URLs so they fit in the desk
my $story_uri_len = length($story_uri);
# Each slash should count as 1/2 a char
$story_uri_len -= ($story_uri =~ tr/\///) * .5;
my $short_story_uri = ($story_uri_len > 80) ? substr($story_uri, 0, 30) . "..." . substr($story_uri, -40) : $story_uri;
my $oc_select = '';
foreach my $oc (@ocs) {
my $ocid = $oc->get_id;
my $selected = $ocid == $primocid ? ' selected' : '';
$oc_select .= qq{} . $oc->get_name . ' ';
}
$oc_select .= ' ';
# Set slug required if it is
my $slug_req = 0;
unless (ALLOW_SLUGLESS_NONFIXED || $story->is_fixed) {
# This isn't a Cover (it's non-fixed) and ALLOW_SLUGLESS_NONFIXED
# is false, so we make slug required
$slug_req = 1;
}
my $slug_vals = {
%{ Bric::Biz::Asset::Business::Story->my_meths->{slug} },
value => $story->get_slug,
req => $slug_req,
};
%init>