package WebGUI::AssetHelper::EditBranch;
use strict;
use Class::C3;
use base qw/WebGUI::AssetHelper/;
use WebGUI::User;
use WebGUI::HTML;
=head1 LEGAL
-------------------------------------------------------------------
WebGUI is Copyright 2001-2009 Plain Black Corporation.
-------------------------------------------------------------------
Please read the legal notices (docs/legal.txt) and the license
(docs/license.txt) that came with this distribution before using
this software.
-------------------------------------------------------------------
http://www.plainblack.com info@plainblack.com
-------------------------------------------------------------------
=head1 NAME
Package WebGUI::AssetHelper::EditBranch
=head1 DESCRIPTION
Displays the revisions for this asset.
=head1 METHODS
These methods are available from this class:
=cut
#-------------------------------------------------------------------
=head2 process ()
Opens a new tab for displaying the form and the output for editing a branch.
=cut
sub process {
my ($self) = @_;
my $asset = $self->asset;
my $session = $self->session;
my $i18n = WebGUI::International->new($session, "Asset");
if (! $asset->canEdit) {
return {
error => $i18n->get('38', 'WebGUI'),
}
}
return {
openDialog => $self->getUrl( 'editBranch' ),
};
}
#-------------------------------------------------------------------
=head2 www_editBranch ( )
Creates a tabform to edit the Asset Tree. If canEdit returns False, returns insufficient Privilege page.
=cut
sub www_editBranch {
my ($self) = @_;
my $asset = $self->asset;
my $session = $self->session;
my ( $style, $url ) = $session->quick( qw( style url ) );
$style->setCss( $url->extras('hoverhelp.css'));
$style->setScript( $url->extras('yui/build/yahoo-dom-event/yahoo-dom-event.js') );
$style->setScript( $url->extras('yui/build/container/container-min.js') );
$style->setScript( $url->extras('hoverhelp.js') );
$style->setRawHeadTags( <<'ENDHTML' );
ENDHTML
my $ac = WebGUI::AdminConsole->new($session,"assets");
my $i18n = WebGUI::International->new($session,"Asset");
my $i18n2 = WebGUI::International->new($session,"Asset_Wobject");
return $session->privilege->insufficient() unless ($asset->canEdit);
my $change = '
'.$i18n->get("change") . ' ';
my $tabform = WebGUI::TabForm->new($session);
$tabform->hidden({name=>"op",value=>"assetHelper"});
$tabform->hidden({name=>"helperId",value=>$self->id});
$tabform->hidden({name=>"method",value=>"editBranchSave"});
$tabform->hidden({name=>"assetId",value=>$asset->getId});
$tabform->addTab("properties",$i18n->get("properties"),9);
$tabform->getTab("properties")->readOnly(
label => $i18n->get(104),
hoverHelp=> $i18n->get('edit branch url help'),
uiLevel => 9,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_url"}),
value => WebGUI::Form::selectBox($session, {
name => "baseUrlBy",
extras => 'onchange="toggleSpecificBaseUrl()"',
id => "baseUrlBy",
options => {
parentUrl => $i18n->get("parent url"),
specifiedBase => $i18n->get("specified base"),
none => $i18n->get("none"),
},
})
. ' / '
. WebGUI::Form::selectBox($session, {
name => "endOfUrl",
options => {
menuTitle => $i18n->get(411),
title => $i18n->get(99),
currentUrl => $i18n->get("current url"),
}
})
. q!!
);
$tabform->addTab("display",$i18n->get(105),5);
$tabform->getTab("display")->yesNo(
name => "isHidden",
value => $asset->get("isHidden"),
label => $i18n->get(886),
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_isHidden"}),
hoverHelp => $i18n->get('886 description',"Asset"),
);
$tabform->getTab("display")->yesNo(
name => "newWindow",
value => $asset->get("newWindow"),
label => $i18n->get(940),
hoverHelp=> $i18n->get('940 description'),
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_newWindow"}),
);
$tabform->getTab("display")->yesNo(
name => "displayTitle",
label => $i18n2->get(174),
hoverHelp=> $i18n2->get('174 description'),
value => $asset->displayTitle,
uiLevel => 5,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_displayTitle"})
);
$tabform->getTab("display")->template(
name => "styleTemplateId",
label => $i18n2->get(1073),
value => $asset->styleTemplateId,
hoverHelp => $i18n2->get('1073 description'),
namespace => 'style',
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_styleTemplateId"})
);
$tabform->getTab("display")->template(
name => "printableStyleTemplateId",
label => $i18n2->get(1079),
hoverHelp => $i18n2->get('1079 description'),
value => $asset->printableStyleTemplateId,
namespace => 'style',
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_printableStyleTemplateId"})
);
if ( $session->setting->get('useMobileStyle') ) {
$tabform->getTab("display")->template(
name => 'mobileStyleTemplateId',
label => $i18n2->get('mobileStyleTemplateId label'),
hoverHelp => $i18n2->get('mobileStyleTemplateId description'),
value => $asset->mobileStyleTemplateId,
namespace => 'style',
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_mobileStyleTemplateId"}),
);
}
$tabform->addTab("security",$i18n->get(107),6);
if ($session->config->get("sslEnabled")) {
$tabform->getTab("security")->yesNo(
name => "encryptPage",
value => $asset->get("encryptPage"),
label => $i18n->get('encrypt page'),
hoverHelp => $i18n->get('encrypt page description',"Asset"),
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_encryptPage"})
);
}
$tabform->getTab("security")->user(
name => "ownerUserId",
label => $i18n->get(108),
hoverHelp => $i18n->get('108 description',"Asset"),
value => $asset->get("ownerUserId"),
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_ownerUserId"})
);
$tabform->getTab("security")->group(
name => "groupIdView",
label => $i18n->get(872),
hoverHelp => $i18n->get('872 description',"Asset"),
value => [$asset->get("groupIdView")],
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_groupIdView"})
);
$tabform->getTab("security")->group(
name => "groupIdEdit",
label => $i18n->get(871),
hoverHelp => $i18n->get('871 description',"Asset"),
value => [$asset->get("groupIdEdit")],
excludeGroups => [1,7],
uiLevel => 6,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_groupIdEdit"})
);
$tabform->addTab("meta",$i18n->get("Metadata"),3);
$tabform->getTab("meta")->textarea(
name => "extraHeadTags",
label => $i18n->get("extra head tags"),
hoverHelp => $i18n->get('extra head tags description'),
value => $asset->get("extraHeadTags"),
uiLevel => 5,
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_extraHeadTags"})
);
$tabform->getTab("meta")->yesNo(
name => 'usePackedHeadTags',
label => $i18n->get('usePackedHeadTags label'),
hoverHelp => $i18n->get('usePackedHeadTags description'),
uiLevel => 7,
fieldType => 'yesNo',
defaultValue => 0,
subtext => $change . WebGUI::Form::yesNo( $session, { name => "change_usePackedHeadTags" } ),
);
$tabform->getTab("meta")->yesNo(
name => 'isPackage',
label => $i18n->get("make package"),
hoverHelp => $i18n->get('make package description'),
uiLevel => 7,
fieldType => 'yesNo',
defaultValue => 0,
subtext => $change . WebGUI::Form::yesNo( $session, { name => "change_isPackage" } ),
);
$tabform->getTab("meta")->yesNo(
name => 'isPrototype',
label => $i18n->get("make prototype"),
hoverHelp => $i18n->get('make prototype description'),
uiLevel => 9,
fieldType => 'yesNo',
defaultValue => 0,
subtext => $change . WebGUI::Form::yesNo( $session, { name => "change_isPrototype" } ),
);
$tabform->getTab("meta")->yesNo(
name => 'isExportable',
label => $i18n->get('make asset exportable'),
hoverHelp => $i18n->get('make asset exportable description'),
uiLevel => 9,
fieldType => 'yesNo',
defaultValue => 1,
subtext => $change . WebGUI::Form::yesNo( $session, { name => "change_isExportable" } ),
);
$tabform->getTab("meta")->yesNo(
name => 'inheritUrlFromParent',
label => $i18n->get('does asset inherit URL from parent'),
hoverHelp => $i18n->get('does asset inherit URL from parent description'),
uiLevel => 9,
fieldType => 'yesNo',
defaultValue => 0,
subtext => $change . WebGUI::Form::yesNo( $session, { name => "change_inheritUrlFromParent" } ),
);
if ($session->setting->get("metaDataEnabled")) {
my $meta = $asset->getMetaDataFields();
foreach my $field (keys %$meta) {
my $fieldType = $meta->{$field}{fieldType} || "text";
my $options = $meta->{$field}{possibleValues};
# Add a "Select..." option on top of a select list to prevent from
# saving the value on top of the list when no choice is made.
if("\l$fieldType" eq "selectBox") {
$options = "|" . $i18n->get("Select") . "\n" . $options;
}
$tabform->getTab("meta")->dynamicField(
fieldType => $fieldType,
name => "metadata_".$meta->{$field}{fieldId},
label => $meta->{$field}{fieldName},
uiLevel => 5,
value => $meta->{$field}{value},
extras => qq/title="$meta->{$field}{description}"/,
options => $options,
defaultValue => $meta->{$field}{defaultValue},
subtext => $change . WebGUI::Form::yesNo($session,{name=>"change_metadata_".$meta->{$field}{fieldId}}),
);
}
}
# Replace the cancel button with one that closes the dialog
$tabform->{_cancel} = WebGUI::Form::button( $session, {
value => $i18n->get('cancel','WebGUI'),
extras => sprintf(q|onclick="%s" class="backwardButton"|, 'parent.admin.closeModalDialog()'),
} );
return $session->style->process(
'