fixed shortcut

This commit is contained in:
JT Smith 2005-02-05 20:02:01 +00:00
parent 177328b550
commit 1b08faa78b
5 changed files with 75 additions and 51 deletions

View file

@ -136,7 +136,7 @@ WebGUI::SQL->write("alter table WobjectProxy add column shortcutToAssetId varcha
my $sth = WebGUI::SQL->read("select proxiedWobjectId from WobjectProxy");
while (my ($wobjectId) = $sth->array) {
my ($assetId) = WebGUI::SQL->quickArray("select assetId from wobject where wobjectId=".quote($wobjectId));
WebGUI::SQL->write("update WobjectProxy set assetId=".quote($assetId)." where wobjectId=".quote($wobjectId));
WebGUI::SQL->write("update WobjectProxy set shortcutToAssetId=".quote($assetId)." where wobjectId=".quote($wobjectId));
}
$sth->finish;
WebGUI::SQL->write("alter table WobjectProxy drop proxiedWobjectId");
@ -144,7 +144,7 @@ WebGUI::SQL->write("alter table WobjectProxy change proxiedTemplateId overrideTe
WebGUI::SQL->write("alter table WobjectProxy change proxyByCriteria shortcutByCriteria int not null");
WebGUI::SQL->write("alter table WobjectProxy change proxyCriteria shortcutCriteria text not null");
WebGUI::SQL->write("alter table WobjectProxy rename Shortcut");
WebGUI::SQL->write("update asset set className='WebGUI::Asset::Shortcut' where className='WebGUI::Asset::Wobject::WobjectShortcut'");
WebGUI::SQL->write("update asset set className='WebGUI::Asset::Shortcut' where className='WebGUI::Asset::Wobject::WobjectProxy'");
WebGUI::SQL->write("alter table wobject drop column wobjectId");
WebGUI::SQL->write("alter table wobject add primary key (assetId)");
WebGUI::SQL->write("alter table wobject drop column templateId");
@ -595,7 +595,33 @@ while (my ($assetId, $namespace, $tid) = $sth->array) {
}
$sth->finish;
WebGUI::SQL->write("alter table Shortcut drop column proxiedNamespace");
WebGUI::SQL->write("alter table Shortcut change templateId templateId varchar(22) not null");
WebGUI::SQL->write("update Shortcut set templateId='PBtmpl0000000000000140'");
use WebGUI::Asset;
my $import = WebGUI::Asset->getImportNode;
my $newTemplate = $import->addChild({
className=>'WebGUI::Asset::Template',
namespace=>'Shortcut',
title=>'Default Shortcut',
menuTitle=>'Default Shortcut',
template=>'
<a name="<tmpl_var assetId>"></a>
<tmpl_if session.var.adminOn>
<p><tmpl_var controls></p>
<div style="width: 100%; border: 1px groove black;">
<div style="width: 100%; background-image: url(<tmpl_var session.config.extrasURL>/opaque.gif);">
<div style="text-align: center; font-weight: bold;"><a href="<tmpl_var originalURL>"><tmpl_var shortcut.label></a></div>
</div>
</tmpl_if>
<tmpl_var shortcut.content>
<tmpl_if session.var.adminOn>
<div style="width: 100%; background-image: url(<tmpl_var session.config.extrasURL>/opaque.gif);">
<div style="text-align: center; font-weight: bold;"><a href="<tmpl_var originalURL>"><tmpl_var shortcut.label></a></div>
</div>
</div>
</tmpl_if>
'
},'PBtmpl0000000000000140');
@ -924,7 +950,7 @@ sub walkTree {
where pageId=".quote($namespace->{startAtThisLevel}));
WebGUI::SQL->setRow("Navigation","assetId",{
assetId=>$wobjectId,
endPoint=>$namespace->{depth},
endPoint=>$namespace->{depth}||55,
startPoint=>$starturl,
startType=>"specificUrl",
templateId=>"1",

View file

@ -154,7 +154,7 @@ Adds a child asset to a parent. Creates a new AssetID for child. Makes the paren
=head3 properties
A hash reference containing a list of properties to associate with the child. The only used property value is "className"
A hash reference containing a list of properties to associate with the child. The only required property value is "className"
=head3 id
@ -165,14 +165,14 @@ A unique 22 character ID. By default WebGUI will generate this and you should a
sub addChild {
my $self = shift;
my $properties = shift;
my $id = WebGUI::Id::generate() || shift;
my $id = shift || WebGUI::Id::generate();
my $lineage = $self->get("lineage").$self->getNextChildRank;
$self->{_hasChildren} = 1;
WebGUI::SQL->beginTransaction;
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, state, className, url, startDate, endDate)
WebGUI::SQL->write("insert into asset (assetId, parentId, lineage, state, className, url, startDate, endDate, ownerUserId, groupIdEdit, groupIdView)
values (".quote($id).",".quote($self->getId).", ".quote($lineage).",
'published', ".quote($properties->{className}).", ".quote($id).",
997995720, 9223372036854775807)");
997995720, 9223372036854775807,'3','3','7')");
my $tempAsset = WebGUI::Asset->newByDynamicClass("new",$properties->{className});
foreach my $definition (@{$tempAsset->definition}) {
unless ($definition->{tableName} eq "asset") {
@ -1425,7 +1425,7 @@ sub getToolbar {
.copyIcon('func=copy',$self->get("url"));
# .moveTopIcon('func=moveTop&wid='.${$wobject}{wobjectId})
# .moveBottomIcon('func=moveBottom&wid='.${$wobject}{wobjectId})
$toolbar .= shortcutIcon('func=createShortcut') unless ($self->get("className") =~ /Shortcut/);
$toolbar .= shortcutIcon('func=createShortcut',$self->get("url")) unless ($self->get("className") =~ /Shortcut/);
return $toolbar;
}
@ -1800,12 +1800,12 @@ sub processTemplate {
%{$self->{_properties}},
%{$var}
);
if (defined $self->get("_WobjectProxy")) {
$vars{isShortcut} = 1;
my ($originalPageURL) = WebGUI::SQL->quickArray("select url from asset where assetId=".quote($self->getId),WebGUI::SQL->getSlave);
$vars{originalURL} = WebGUI::URL::gateway($originalPageURL."#".$self->getId);
my $template = WebGUI::Asset::Template->new($templateId);
if (defined $template) {
return $template->process(\%vars);
} else {
return "Error: Can't instanciate template ".$templateId;
}
return WebGUI::Asset::Template->new($templateId)->process(\%vars);
}
#-------------------------------------------------------------------
@ -2079,8 +2079,8 @@ sub updateHistory {
WebGUI::SQL->beginTransaction;
WebGUI::SQL->write("insert into assetHistory (assetId, userId, actionTaken, dateStamp) values (
".quote($self->getId).", ".quote($userId).", ".quote($action).", ".$dateStamp.")");
$self->update({lastUpdated=>$dateStamp,lastUpdatedBy=>$userId});
WebGUI::SQL->commit;
$self->update({lastUpdated=>$dateStamp,lastUpdatedBy=>$userId});
}
#-------------------------------------------------------------------
@ -2167,9 +2167,16 @@ sub www_copyList {
sub www_createShortcut () {
my $self = shift;
$self->addChild({
className=>$self->get("className"),
my $child = $self->addChild({
className=>'WebGUI::Asset::Shortcut',
shortcutToAssetId=>$self->getId,
title=>$self->get("title"),
menuTitle=>$self->get("menuTitle"),
url=>$self->get("title"),
templateId=>'PBtmpl0000000000000140'
});
$child->cut;
return $self->getContainer->www_view;
}
#-------------------------------------------------------------------

View file

@ -25,8 +25,8 @@ sub definition {
my $class = shift;
my $definition = shift;
push(@{$definition}, {
tableName=>'FileAsset',
className=>'WebGUI::Asset::File',
tableName=>'Shortcut',
className=>'WebGUI::Asset::Shortcut',
properties=>{
shortcutToAssetId=>{
fieldType=>"hidden",
@ -63,6 +63,10 @@ sub definition {
shortcutCriteria=>{
fieldType=>"textarea",
defaultValue=>"",
},
templateId=>{
fieldType=>"template",
defaultValue=>"PBtmpl0000000000000140"
}
}
});
@ -75,7 +79,11 @@ sub definition {
sub getEditForm {
my $self = shift;
my $tabform = $self->SUPER::getEditForm();
my $originalTemplate = WebGUI::Asset::Template->new(self->getShortcut->get("templateId"));
my $originalTemplate = WebGUI::Asset::Template->new($self->getShortcut->get("templateId"));
$tabform->getTab("display")->template(
-value=>$self->getValue("templateId"),
-namespace=>"Shortcut"
);
$tabform->getTab("display")->template(
-name=>"overrideTemplateId",
-value=>$self->getValue("overrideTemplateId") || $originalTemplate->getId,
@ -145,8 +153,8 @@ sub getEditForm {
sub getIcon {
my $self = shift;
my $small = shift;
return $session{config}{extrasURL}.'/assets/small/template.gif' if ($small);
return $session{config}{extrasURL}.'/assets/template.gif';
return $session{config}{extrasURL}.'/assets/small/shortcut.gif' if ($small);
return $session{config}{extrasURL}.'/assets/shortcut.gif';
}
#-------------------------------------------------------------------
@ -312,7 +320,13 @@ sub processPropertiesFromFormPost {
#-------------------------------------------------------------------
sub view {
my $self = shift;
return $self->getShortcut->view;
my %var = (
isShortcut => 1,
'shortcut.content' => $self->getShortcut->view,
'shortcut.label' => 'Shortcut',
originalURL => $self->getShortcut->getUrl
);
return $self->processTemplate(\%var,$self->getValue("templateId"));
}

View file

@ -28,7 +28,6 @@ use WebGUI::Session;
use WebGUI::Style;
use WebGUI::SQL;
use WebGUI::Utility;
#use WebGUI::Asset::Wobject::WobjectProxy;
our @ISA = qw(WebGUI::Asset);
@ -558,33 +557,6 @@ sub setCollateral {
#-------------------------------------------------------------------
=head2 www_createShortcut ( )
Creates a shortcut (using the wobject proxy) of this wobject on the clipboard.
B<NOTE:> Should never need to be overridden or extended.
=cut
sub www_createShortcut {
my $self = shift;
return WebGUI::Privilege::insufficient() unless ($self->canEdit);
my $w = WebGUI::Wobject::WobjectProxy->new({wobjectId=>"new",namespace=>"WobjectProxy"});
$w->update({
pageId=>'2',
templatePosition=>1,
title=>$self->getValue("title"),
proxiedNamespace=>$self->get("namespace"),
proxiedWobjectId=>$self->get("wobjectId"),
bufferUserId=>$session{user}{userId},
bufferDate=>WebGUI::DateTime::time(),
bufferPrevId=>$session{page}{pageId}
});
return "";
}

View file

@ -27,6 +27,11 @@ our $I18N = {
context => q|Title of the navigation manager in the admin console.|
},
'22' => {
message => q|Edit Navigation|,
lastUpdated => 1078208044
},
'1098' => {
message => q|Navigation, Add/Edit|,
lastUpdated => 1078208044