From ee1fa052af674ea2c7474b3f951e475137743ef8 Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Sat, 3 Dec 2005 03:38:32 +0000 Subject: [PATCH] Adding override saving. Now to tackle the user prefs. --- lib/WebGUI/Asset/Shortcut.pm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index 54e74e2ab..febd34ac2 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -760,7 +760,7 @@ sub www_editOverride { $output .= ''; my $f = WebGUI::HTMLForm->new(-action=>$self->getUrl); $f->hidden(-name=>"func",-value=>"saveOverride"); - $f->hidden(-name=>"fieldName",-value=>$session{form}{fieldName}); + $f->hidden(-name=>"overrideFieldName",-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; @@ -774,7 +774,7 @@ sub www_editOverride { # use Data::Dumper;WebGUI::ErrorHandler::warn('
'.Dumper(\%params).'
'); $f->dynamicField(%params); $f->textarea( - -name=>"newValueText", + -name=>"newOverrideValueText", -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." @@ -785,6 +785,26 @@ sub www_editOverride { return $self->_submenu($output,'Edit Override'); } +#------------------------------------------------------------------- +sub www_saveOverride { + my $self = shift; + return WebGUI::Privilege::insufficient() unless $self->canEdit; + my $fieldName = $session{form}{overrideFieldName}; + my %overrides = $self->getOverrides; + my $output = ''; + my %props; + foreach my $def (@{$self->getShortcutOriginal->definition}) { + %props = (%props,%{$def->{properties}}); + } + my $fieldType = $props{$fieldName}{fieldType}; + my $value = WebGUI::FormProcessor::process($fieldName,$fieldType); + $value = $session{form}{newOverrideValueText} || $value; + WebGUI::SQL->write("delete from Shortcut_overrides where assetId=".quote($self->getId)." and fieldName=".quote($fieldName)); + WebGUI::SQL->write("insert into Shortcut_overrides values (".quote($self->getId).",".quote($fieldName).",".quote($value).")"); + $self->uncacheOverrides; + return $self->www_manageOverrides; +} + #------------------------------------------------------------------- sub www_view { my $self = shift;