diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm
index 892656428..54e74e2ab 100644
--- a/lib/WebGUI/Asset/Shortcut.pm
+++ b/lib/WebGUI/Asset/Shortcut.pm
@@ -377,7 +377,7 @@ sub getFieldsList {
#-------------------------------------------------------------------
sub getOverridesList {
my $self = shift;
- my $output = 'Add Override
';
+ my $output = '';
my %overrides = $self->getOverrides;
$output .= '
';
$output .= '';
@@ -399,6 +399,7 @@ sub getOverridesList {
}
}
$output .= '
';
+ return $output;
}
@@ -623,6 +624,13 @@ sub purgeRevision {
return $self->SUPER::purgeRevision;
}
+#-------------------------------------------------------------------
+
+sub uncacheOverrides {
+ my $self = shift;
+ WebGUI::Cache->new(["shortcutOverrides",$self->getId])->delete;
+}
+
#-------------------------------------------------------------------
sub view {
my $self = shift;
@@ -647,8 +655,7 @@ sub www_edit {
my $self = shift;
return WebGUI::Privilege::insufficient() unless $self->canEdit;
$self->getAdminConsole->setHelp("shortcut add/edit","Asset_Shortcut");
- $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageFields;isUserPref=0"),"Manage Shortcut Overrides");
- $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageFields;isUserPref=1"),"Manage User Preferences");
+ $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageOverrides"),"Manage Shortcut Overrides");
return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get(2,"Asset_Shortcut"));
}
@@ -694,33 +701,30 @@ sub www_manageUserPrefs {
return $self->_submenu($output,$self->_isUserPref('titleHeader'));
}
+#-------------------------------------------------------------------
+sub www_manageOverrides {
+ my $self = shift;
+ return WebGUI::Privilege::insufficient() unless $self->canEdit;
+ return $self->_submenu($self->getOverridesList,'Manage Overrides');
+}
+
+#-------------------------------------------------------------------
+sub www_purgeOverrideCache {
+ my $self = shift;
+ return WebGUI::Privilege::insufficient() unless $self->canEdit;
+ $self->uncacheOverrides;
+ return $self->www_manageOverrides;
+}
+
#-------------------------------------------------------------------
sub www_deleteOverride {
my $self = shift;
return WebGUI::Privilege::insufficient() unless $self->canEdit;
- my $output = 'Add Override
';
- my %fielden = $self->getOverrides;
-# unless (scalar (keys %fielden)) {
- $output .= '';
- $output .= '';
- my %props = %{$self->getShortcutOriginal->{_properties}};
- use Data::Dumper;WebGUI::ErrorHandler::warn(''.Dumper(\%props).'
');
- foreach my $prop (keys %{$self->getShortcutOriginal->{_properties}}) {
- next if $prop->{fieldType} eq 'hidden';
- $output .= '';
- $output .= '| Add$prop | ';
- $output .= '';
- $output .= editIcon('func=editOverride;fieldName='.$prop,$self->getUrl());
- $output .= deleteIcon('func=delete;fieldName='.$prop,$self->getUrl());
- $output .= ' | ';
- $output .= '
';
- }
- $output .= '
';
-# }
- return $self->_submenu($output,'Manage Overrides');
+ WebGUI::SQL->write('delete from Shortcut_overrides where assetId='.quote($self->getId).' and fieldName='.quote($session{form}{fieldName}));
+ $self->uncacheOverrides;
+ return $self->www_manageOverrides;
}
-
#-------------------------------------------------------------------
sub www_saveUserPrefs {
my $self = shift;
@@ -742,6 +746,45 @@ sub www_getNewTitle {
return $foo->{_properties}{title};
}
+#-------------------------------------------------------------------
+sub www_editOverride {
+ my $self = shift;
+ return WebGUI::Privilege::insufficient() unless $self->canEdit;
+ my $fieldName = $session{form}{fieldName};
+ my %overrides = $self->getOverrides;
+ my $output = '';
+ my %props;
+ foreach my $def (@{$self->getShortcutOriginal->definition}) {
+ %props = (%props,%{$def->{properties}});
+ }
+ $output .= '';
+ my $f = WebGUI::HTMLForm->new(-action=>$self->getUrl);
+ $f->hidden(-name=>"func",-value=>"saveOverride");
+ $f->hidden(-name=>"fieldName",-value=>$session{form}{fieldName});
+ $f->readOnly(-label=>"Field Name",-value=>$session{form}{fieldName});
+ $f->readOnly(-label=>"Original Value",-value=>$overrides{overrides}{$fieldName}{origValue});
+ my %params;
+ foreach my $key (keys %{$props{$fieldName}}) {
+ next if ($key eq "tab");
+ $params{$key} = $props{$fieldName}{$key};
+ }
+ $params{value} = $overrides{overrides}{$fieldName}{origValue};
+ $params{name} = $fieldName;
+ $params{label} = $params{label} || "Edit Field Using the Generated Form Type";
+# use Data::Dumper;WebGUI::ErrorHandler::warn(''.Dumper(\%params).'
');
+ $f->dynamicField(%params);
+ $f->textarea(
+ -name=>"newValueText",
+ -label=>"New Override Value",
+ -value=>$overrides{overrides}{$fieldName}{newValue},
+ -hoverHelp=>"Place something in this box if you don't want to use the automatically generated field."
+ );
+ $f->readOnly(-label=>"Replacement Value",-value=>$overrides{overrides}{$fieldName}{parsedValue});
+ $f->submit;
+ $output .= $f->print;
+ return $self->_submenu($output,'Edit Override');
+}
+
#-------------------------------------------------------------------
sub www_view {
my $self = shift;