fixed tab ordering, rich editor, and added asset adding to asset manager
This commit is contained in:
parent
86404b4b47
commit
a9764115fd
2 changed files with 42 additions and 20 deletions
|
|
@ -28,7 +28,8 @@ sub addChild {
|
|||
values (".quote($id).",".quote($self->getId).", ".quote($lineage).",
|
||||
'published', ".quote($properties->{className}).", ".quote($id).",
|
||||
997995720, 9223372036854775807)");
|
||||
foreach my $definition (@{$self->definition}) {
|
||||
my $tempAsset = WebGUI::Asset->newByDynamicClass("new",$properties->{className});
|
||||
foreach my $definition (@{$tempAsset->definition}) {
|
||||
unless ($definition->{tableName} eq "asset") {
|
||||
WebGUI::SQL->write("insert into ".$definition->{tableName}." (assetId) values (".quote($id).")");
|
||||
}
|
||||
|
|
@ -206,6 +207,7 @@ sub getAdminConsole {
|
|||
|
||||
sub getAssetAdderLinks {
|
||||
my $self = shift;
|
||||
my $addToUrl = shift;
|
||||
my @links;
|
||||
foreach my $class (@{$session{config}{assets}}) {
|
||||
my $load = "use ".$class;
|
||||
|
|
@ -217,9 +219,11 @@ sub getAssetAdderLinks {
|
|||
if ($@) {
|
||||
WebGUI::ErrorHandler::warn("Couldn't get the name of ".$class." because ".$@);
|
||||
} else {
|
||||
my $url = $self->getUrl("func=add&class=".$class);
|
||||
$url .= "&".$addToUrl if ($addToUrl);
|
||||
push(@links, {
|
||||
label=>$label,
|
||||
url=>$self->getUrl("func=add&class=".$class)
|
||||
url=>$url
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -234,10 +238,14 @@ sub getEditForm {
|
|||
name=>"func",
|
||||
value=>"editSave"
|
||||
});
|
||||
if ($session{form}{addNew}) {
|
||||
if ($self->getId eq "new") {
|
||||
$tabform->hidden({
|
||||
name=>"addNew",
|
||||
value=>"1"
|
||||
name=>"assetId",
|
||||
value=>"new"
|
||||
});
|
||||
$tabform->hidden({
|
||||
name=>"class",
|
||||
value=>$session{form}{class}
|
||||
});
|
||||
}
|
||||
if ($session{form}{afterEdit}) {
|
||||
|
|
@ -549,6 +557,7 @@ sub newByDynamicClass {
|
|||
my $class = shift;
|
||||
my $assetId = shift;
|
||||
my $className = shift;
|
||||
my $overrideProperties = shift;
|
||||
unless (defined $className) {
|
||||
($className) = WebGUI::SQL->quickArray("select className from asset where assetId=".quote($assetId));
|
||||
}
|
||||
|
|
@ -560,7 +569,7 @@ sub newByDynamicClass {
|
|||
my $cmd = "use ".$className;
|
||||
eval ($cmd);
|
||||
WebGUI::ErrorHandler::fatalError("Couldn't compile asset package: ".$className.". Root cause: ".$@) if ($@);
|
||||
my $assetObject = eval{$className->new($assetId)};
|
||||
my $assetObject = eval{$className->new($assetId,$overrideProperties)};
|
||||
WebGUI::ErrorHandler::fatalError("Couldn't create asset instance for ".$assetId.". Root cause: ".$@) if ($@);
|
||||
return $assetObject;
|
||||
}
|
||||
|
|
@ -733,6 +742,11 @@ sub update {
|
|||
return 1;
|
||||
}
|
||||
|
||||
sub www_add {
|
||||
my $self = shift;
|
||||
my $newAsset = WebGUI::Asset->newByDynamicClass("new",$session{form}{class},$self->get);
|
||||
return $newAsset->www_edit();
|
||||
}
|
||||
|
||||
sub www_copy {
|
||||
my $self = shift;
|
||||
|
|
@ -810,8 +824,14 @@ sub www_edit {
|
|||
|
||||
sub www_editSave {
|
||||
my $self = shift;
|
||||
my $object;
|
||||
if ($session{form}{assetId} eq "new") {
|
||||
$object = $self->addChild({className=>$session{form}{class}});
|
||||
} else {
|
||||
$object = $self;
|
||||
}
|
||||
my %data;
|
||||
foreach my $definition (@{$self->definition}) {
|
||||
foreach my $definition (@{$object->definition}) {
|
||||
foreach my $property (keys %{$definition->{properties}}) {
|
||||
$data{$property} = WebGUI::FormProcessor::process(
|
||||
$property,
|
||||
|
|
@ -820,9 +840,9 @@ sub www_editSave {
|
|||
);
|
||||
}
|
||||
}
|
||||
$self->update(\%data);
|
||||
$object->update(\%data);
|
||||
return $self->www_manageAssets if ($session{form}{afterEdit} eq "assetManager");
|
||||
return "";
|
||||
return $object->www_view;
|
||||
}
|
||||
|
||||
sub www_editTree {
|
||||
|
|
@ -886,12 +906,12 @@ sub www_manageAssets {
|
|||
$output .= "labels['properties'] = 'Properties';\n";
|
||||
$output .= "labels['editTree'] = 'Edit Tree';\n";
|
||||
$output .= "var manager = new AssetManager(assets,columnHeadings,labels,crumbtrail); manager.renderAssets();\n</script>\n";
|
||||
$output .= '<div style="font-size: 18px;">'.WebGUI::International::get(1).'
|
||||
$output .= '<div style="font-size: 18px;">
|
||||
<div class="adminConsoleSpacer">
|
||||
|
||||
</div>
|
||||
<div style="float: left; padding-right: 30px; font-size: 14px;"><b>'.WebGUI::International::get(1083).'</b><br />';
|
||||
foreach my $link (@{$self->getAssetAdderLinks}) {
|
||||
foreach my $link (@{$self->getAssetAdderLinks("afterEdit=assetManager")}) {
|
||||
$output .= '<a href="'.$link->{url}.'">'.$link->{label}.'</a><br />';
|
||||
}
|
||||
$output .= '</div>';
|
||||
|
|
@ -949,7 +969,7 @@ sub www_promote {
|
|||
sub www_setParent {
|
||||
my $self = shift;
|
||||
return WebGUI::Privilege::insufficient() unless $self->canEdit;
|
||||
my $newParent = shift;
|
||||
my $newParent = $session{form}{assetId};
|
||||
$self->setParent($newParent) if (defined $newParent);
|
||||
return $self->www_manageAssets();
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ package WebGUI::TabForm;
|
|||
|
||||
|
||||
use strict;
|
||||
use Tie::IxHash;
|
||||
use WebGUI::Form;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::Session;
|
||||
|
|
@ -187,18 +188,19 @@ A string containing the link to the tab-CascadingStyleSheet
|
|||
=cut
|
||||
|
||||
sub new {
|
||||
my ($cancel, $class, $tabs, $css);
|
||||
$class = shift;
|
||||
$tabs = shift;
|
||||
$css = shift || $session{config}{extrasURL}.'/tabs/tabs.css';
|
||||
foreach my $key (keys %{$tabs}) {
|
||||
$tabs->{$key}{form} = WebGUI::HTMLForm->new;
|
||||
my $class = shift;
|
||||
my $startingTabs = shift;
|
||||
my $css = shift || $session{config}{extrasURL}.'/tabs/tabs.css';
|
||||
my %tabs;
|
||||
tie %tabs, 'Tie::IxHash';
|
||||
foreach my $key (keys %{$startingTabs}) {
|
||||
$tabs{$key}{form} = WebGUI::HTMLForm->new;
|
||||
}
|
||||
$cancel = WebGUI::Form::button({
|
||||
my $cancel = WebGUI::Form::button({
|
||||
value=>WebGUI::International::get('cancel'),
|
||||
extras=>q|onClick="location.href='|.WebGUI::URL::page().q|'"|
|
||||
});
|
||||
bless { _cancel=>$cancel, _submit=>WebGUI::Form::submit(), _form=>WebGUI::Form::formHeader(), _hidden=>"", _tab=>$tabs, _css=>$css }, $class;
|
||||
bless { _cancel=>$cancel, _submit=>WebGUI::Form::submit(), _form=>WebGUI::Form::formHeader(), _hidden=>"", _tab=>\%tabs, _css=>$css }, $class;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue