diff --git a/lib/WebGUI/Asset/Dashlet.pm b/lib/WebGUI/Asset/Dashlet.pm deleted file mode 100644 index 645f4602d..000000000 --- a/lib/WebGUI/Asset/Dashlet.pm +++ /dev/null @@ -1,761 +0,0 @@ -package WebGUI::Asset::Shortcut; - -#------------------------------------------------------------------- -# WebGUI is Copyright 2001-2005 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 -#------------------------------------------------------------------- - -use strict; -use WebGUI::Asset; -use WebGUI::Icon; -use WebGUI::International; -use WebGUI::Macro; -use WebGUI::Privilege; -use WebGUI::Session; -use WebGUI::SQL; - -our @ISA = qw(WebGUI::Asset); - -#------------------------------------------------------------------- -sub _drawQueryBuilder { - my $self = shift; - # Initialize operators - my @textFields = qw|text yesNo selectList radioList|; - my %operator; - foreach (@textFields) { - $operator{$_} = { - "=" => WebGUI::International::get("is","Asset_Shortcut"), - "!=" => WebGUI::International::get("isnt","Asset_Shortcut") - }; - } - $operator{integer} = { - "=" => WebGUI::International::get("equal to","Asset_Shortcut"), - "!=" => WebGUI::International::get("not equal to","Asset_Shortcut"), - "<" => WebGUI::International::get("less than","Asset_Shortcut"), - ">" => WebGUI::International::get("greater than","Asset_Shortcut") - }; - - # Get the fields and count them - my $fields = $self->getMetaDataFields(); - my $fieldCount = scalar(keys %$fields); - - unless ($fieldCount) { # No fields found.... - return 'No metadata defined yet. - Click here to define metadata attributes.'; - } - - # Static form fields - my $shortcutCriteriaField = WebGUI::Form::textarea({ - name=>"shortcutCriteria", - value=>$self->getValue("shortcutCriteria"), - extras=>'style="width: 100%" '.$self->{_disabled} - }); - my $conjunctionField = WebGUI::Form::selectBox({ - name=>"conjunction", - options=>{ - "AND" => WebGUI::International::get("AND","Asset_Shortcut"), - "OR" => WebGUI::International::get("OR","Asset_Shortcut")}, - value=>["OR"], - extras=>'class="qbselect"', - } - ); - - # html - my $output; - $output .= ''; - $output .= ''; - $output .= qq||; - - # Here starts the field loop - my $i = 1; - foreach my $field (keys %$fields) { - my $fieldLabel = $fields->{$field}{fieldName}; - my $fieldType = $fields->{$field}{fieldType} || "text"; - - # The operator select field - my $opFieldName = "op_field".$i; - my $opField = WebGUI::Form::selectList({ - name=>$opFieldName, - uiLevel=>5, - options=>$operator{$fieldType}, - extras=>'class="qbselect"' - }); - # The value select field - my $valFieldName = "val_field".$i; - my $valueField = WebGUI::Form::dynamicField( - fieldType=>$fieldType, - name=>$valFieldName, - uiLevel=>5, - extras=>qq/title="$fields->{$field}{description}" class="qbselect"/, - possibleValues=>$fields->{$field}{possibleValues}, - ); - # An empty row - $output .= qq||; - - # Table row with field info - $output .= qq| - - - - - - - - |; - $i++; - } - # Close the table - $output .= "
$shortcutCriteriaField
$conjunctionField

$fieldLabel

- $opField - - $valueField - -
"; - - return $output; -} - -sub parseOverride { - my $self = shift; - my $value = shift; - my @userPrefs = $self->getUserPrefs; - foreach my $field (@userPrefs) { - my $id = $field->getId; - my $fieldName = $field->getFieldName; - use WebGUI::Asset::Field; - my $fieldValue = WebGUI::Asset::Field->getUserPref($id); - $value =~ s/\#\#userPref\:${fieldName}\#\#/$fieldValue/g; - } -} - -#------------------------------------------------------------------- -sub _submenu { - my $self = shift; - my $workarea = shift; - my $title = shift; - my $help = shift; - my $ac = WebGUI::AdminConsole->new("shortcutmanager"); - $ac->setHelp($help) if ($help); - $ac->setIcon($self->getIcon); - $ac->addSubmenuItem($self->getUrl('func=edit'), WebGUI::International::get("Back to Edit Shortcut","Asset_Shortcut")); - $ac->addSubmenuItem($self->getUrl("func=manageOverrides"),WebGUI::International::get("Manage Shortcut Overrides","Asset_Shortcut")); - $ac->addSubmenuItem($self->getUrl("func=manageUserPrefs"),WebGUI::International::get("Manage User Preferences","Asset_Shortcut")); - return $ac->render($workarea, $title); -} - -#------------------------------------------------------------------- -sub canEdit { - my $self = shift; -return 1 if ($self->SUPER::canEdit || (ref $self->getParent eq 'WebGUI::Asset::Wobject::Dashboard' && $self->getParent->canManage)); - return 0; -} - -#------------------------------------------------------------------- -sub canManage { - my $self = shift; - return $self->canEdit; -} - -#------------------------------------------------------------------- -sub definition { - my $class = shift; - my $definition = shift; - push(@{$definition}, { - assetName=>WebGUI::International::get('assetName',"Asset_Shortcut"), - icon=>'shortcut.gif', - tableName=>'Shortcut', - className=>'WebGUI::Asset::Shortcut', - properties=>{ - shortcutToAssetId=>{ - noFormPost=>1, - fieldType=>"hidden", - defaultValue=>undef - }, - shortcutByCriteria=>{ - fieldType=>"yesNo", - defaultValue=>0, - }, - disableContentLock=>{ - fieldType=>"yesNo", - defaultValue=>0 - }, - resolveMultiples=>{ - fieldType=>"selectBox", - defaultValue=>"mostRecent", - }, - shortcutCriteria=>{ - fieldType=>"textarea", - defaultValue=>"", - }, - templateId=>{ - fieldType=>"template", - defaultValue=>"PBtmpl0000000000000140" - }, - description=>{ - fieldType=>"HTMLArea", - defaultValue=>undef - }, - } - }); - return $class->SUPER::definition($definition); -} - - - -#------------------------------------------------------------------- -sub getEditForm { - my $self = shift; - my $tabform = $self->SUPER::getEditForm(); - my $originalTemplate; - my $i18n = WebGUI::International->new("Asset_Shortcut"); - $tabform->getTab("properties")->readOnly( - -label=>WebGUI::International::get(1,"Asset_Shortcut"), - -hoverHelp=>WebGUI::International::get('1 description',"Asset_Shortcut"), - -value=>''.$self->getShortcut->get('title').' ('.$self->getShortcut->getId.')' - ); - $tabform->getTab("display")->template( - -value=>$self->getValue("templateId"), - -label=>WebGUI::International::get('shortcut template title', 'Asset_Shortcut'), - -hoverHelp=>WebGUI::International::get('shortcut template title description', 'Asset_Shortcut'), - -namespace=>"Shortcut" - ); - if($session{setting}{metaDataEnabled}) { - $tabform->getTab("properties")->yesNo( - -name=>"shortcutByCriteria", - -value=>$self->getValue("shortcutByCriteria"), - -label=>WebGUI::International::get("Shortcut by alternate criteria","Asset_Shortcut"), - -hoverHelp=>WebGUI::International::get("Shortcut by alternate criteria description","Asset_Shortcut"), - -extras=>q|onchange=" - if (this.form.shortcutByCriteria[0].checked) { - this.form.resolveMultiples.disabled=false; - this.form.shortcutCriteria.disabled=false; - } else { - this.form.resolveMultiples.disabled=true; - this.form.shortcutCriteria.disabled=true; - }"| - ); - $tabform->getTab("properties")->yesNo( - -name=>"disableContentLock", - -value=>$self->getValue("disableContentLock"), - -label=>WebGUI::International::get("disable content lock","Asset_Shortcut"), - -hoverHelp=>WebGUI::International::get("disable content lock description","Asset_Shortcut") - ); - if ($self->getValue("shortcutByCriteria") == 0) { - $self->{_disabled} = 'disabled=true'; - } - $tabform->getTab("properties")->selectBox( - -name=>"resolveMultiples", - -value=>[ $self->getValue("resolveMultiples") ], - -label=>WebGUI::International::get("Resolve Multiples","Asset_Shortcut"), - -hoverHelp=>WebGUI::International::get("Resolve Multiples description","Asset_Shortcut"), - -options=>{ - mostRecent=>WebGUI::International::get("Most Recent","Asset_Shortcut"), - random=>WebGUI::International::get("Random","Asset_Shortcut"), - }, - -extras=>$self->{_disabled} - ); - - $tabform->getTab("properties")->readOnly( - -value=>$self->_drawQueryBuilder(), - -label=>WebGUI::International::get("Criteria","Asset_Shortcut"), - -hoverHelp=>WebGUI::International::get("Criteria description","Asset_Shortcut") - ); - } - $tabform->addTab('overrides',$i18n->get('Overrides')); - $tabform->getTab('overrides')->raw($self->getOverridesList); - return $tabform; -} - - -#------------------------------------------------------------------- - -=head2 getExtraHeadTags ( ) - -Returns the extraHeadTags stored in the asset. Called in WebGUI::Style::generateAdditionalHeadTags if this asset is the $session{asset}. Also called in WebGUI::Layout::view for its child assets. Overriden here in Shortcut.pm. - -=cut - -sub getExtraHeadTags { - my $self = shift; - return $self->get("extraHeadTags")."\n".$self->getShortcut->get("extraHeadTags"); -} - -#------------------------------------------------------------------- -sub getFieldsList { - my $self = shift; - my $i18n = WebGUI::International->new("Asset_Shortcut"); - my $output = ''.$i18n->get('Add Preference Field').'

'; - my @fielden; - @fielden = $self->getUserPrefs; - return $output unless scalar @fielden > 0; - $output .= ''; - $output .= ''; - foreach my $field (@fielden) { - $output .= ''; - $output .= ''; - $output .= ''; - $output .= ''; - } - $output .= '
'.$i18n->get('fieldName').''.$i18n->get('edit delete fieldname').'
'.$field->get("fieldName").''; - $output .= editIcon('func=edit',$field->getUrl()); - $output .= deleteIcon('func=delete',$field->getUrl()); - $output .= '
'; - return $output; -} - -#------------------------------------------------------------------- -sub getOverridesList { - my $self = shift; - my $output = ''; - my $i18n = WebGUI::International->new("Asset_Shortcut"); - my %overrides = $self->getOverrides; - $output .= ''; - $output .= ''; - foreach my $definition (@{$self->getShortcutOriginal->definition}) { - foreach my $prop (keys %{$definition->{properties}}) { - next if $definition->{properties}{$prop}{fieldType} eq 'hidden'; - $output .= ''; - $output .= ''; - $output .= ''; - } - } - $output .= '
'.$i18n->get('fieldName').''.$i18n->get('edit delete fieldname').''.$i18n->get('Original Value').''.$i18n->get('New value').''.$i18n->get('Replacement value').'
'.$prop.''; - $output .= editIcon('func=editOverride;fieldName='.$prop,$self->get("url")); - $output .= deleteIcon('func=deleteOverride;fieldName='.$prop,$self->get("url")) if exists $overrides{overrides}{$prop}; - $output .= ''; - $output .= $overrides{overrides}{$prop}{origValue}; - $output .= ''; - $output .= $overrides{overrides}{$prop}{newValue}; - $output .= ''; - $output .= $overrides{overrides}{$prop}{parsedValue}; - $output .= '
'; - return $output; -} - - -#------------------------------------------------------------------- -sub getOverrides { - my $self = shift; - my $i = 0; - #cache by userId, assetId of this shortcut, and whether adminMode is on or not. - my $cache = WebGUI::Cache->new(["shortcutOverrides",$self->getId,$session{user}{userId},$session{var}{adminOn}]); - my $overridesRef = $cache->get; - unless ($overridesRef->{cacheNotExpired}) { - my %overrides; - my $orig = $self->getShortcutOriginal; - unless (exists $orig->{_propertyDefinitions}) { - my %properties; - foreach my $definition (@{$orig->definition}) { - %properties = (%properties, %{$definition->{properties}}); - } - $orig->{_propertyDefinitions} = \%properties; - } - $overrides{cacheNotExpired} = 1; - my $sth = WebGUI::SQL->read("select fieldName, newValue from Shortcut_overrides where assetId=".quote($self->getId)." order by fieldName"); - while (my ($fieldName, $newValue) = $sth->array) { - $overrides{overrides}{$fieldName}{fieldType} = $orig->{_propertyDefinitions}{$fieldName}{fieldType}; - $overrides{overrides}{$fieldName}{origValue} = $self->getShortcutOriginal->get($fieldName); - $overrides{overrides}{$fieldName}{newValue} = $newValue; - $overrides{overrides}{$fieldName}{parsedValue} = $newValue; - } - $sth->finish; - my @userPrefs = $self->getUserPrefs; - foreach my $field (@userPrefs) { - my $id = $field->getId; - my $fieldName = $field->getFieldName; - my $fieldValue = $field->getUserPref($id); - $overrides{userPrefs}{$fieldName}{value} = $fieldValue; - $overrides{overrides}{$fieldName}{parsedValue} = $fieldValue; - # 'myTemplateId is ##userPref:myTemplateId##', for example. - foreach my $overr (keys %{$overrides{overrides}}) { - $overrides{overrides}{$overr}{parsedValue} =~ s/\#\#userPref\:${fieldName}\#\#/$fieldValue/gm; - } - } - $cache->set(\%overrides, 60*60); - $overridesRef = \%overrides; - } - return %$overridesRef; -} - -#------------------------------------------------------------------- -sub getShortcut { - my $self = shift; - unless ($self->{_shortcut}) { - $self->{_shortcut} = $self->getShortcutOriginal; - } - $self->{_shortcut}{_properties}{displayTitle} = undef if (ref $self->getParent eq 'WebGUI::Asset::Wobject::Dashboard'); - # Hide title by default. If you want, you can create an override - # to display it. But it's being shown in the dragheader by default. - my %overhash = $self->getOverrides; - if (exists $overhash{overrides}) { - my %overrides = %{$overhash{overrides}}; - foreach my $override (keys %overrides) { - $self->{_shortcut}{_properties}{$override} = $overrides{$override}{parsedValue}; - } - foreach my $userPref ($self->getUserPrefs) { - $self->{_shortcut}{_properties}{$userPref->getFieldName} = $userPref->getUserPref($userPref->getId) unless (exists $overrides{$userPref->getFieldName}); - } - } - return $self->{_shortcut}; -} - -#------------------------------------------------------------------- - -=head2 getShortcutByCriteria ( hashRef ) - -This function will search for a asset that match a metadata criteria set. -If no asset is found, undef will be returned. - -=cut - -sub getShortcutByCriteria { - my $self = shift; - my $assetProxy = shift; - my $criteria = $self->get("shortcutCriteria"); - my $order = $self->get("resolveMultiples"); - my $assetId = $self->getId; - - # Parse macro's in criteria - WebGUI::Macro::process(\$criteria); - - # Once a asset is found, we will stick to that asset, - # to prevent the proxying of multiple- depth assets like Surveys and USS. - my $scratchId; - if ($assetId) { - $scratchId = "Shortcut_" . $assetId; - if($session{scratch}{$scratchId} && !$self->getValue("disableContentLock")) { - return $session{scratch}{$scratchId} unless ($session{var}{adminOn}); - } - } - - # $criteria = "State = Wisconsin AND Country != Sauk"; - # - # State = Wisconsin AND Country != Sauk - # | | | - # |- $field |_ $operator |- $value - # |_ $attribute |_ $attribute - my $operator = qr/<>|!=|=|>=|<=|>|<|like/i; - my $attribute = qr/['"][^()|=>getShortcutDefault->get("className")); - - - # Add constraint only if it has been modified. - $sql .= " and ".$constraint if (($constraint ne $criteria) && $constraint ne ""); -# Can't do this without extensive refactoring.....! -# $sql .= " order by assetData.revisionDate desc"; - - # Execute the query with an unconditional read - my @ids; - my $sth = WebGUI::SQL->unconditionalRead($sql); - while (my ($data) = $sth->array) { - push (@ids, $data); - } - $sth->finish; - - # No matching assets found. - if (scalar(@ids) == 0) { - return $self->getShortcutDefault; # fall back to the originally mirrored asset. - } - my $id; - # Grab a wid from the results - if ($order eq 'random') { - $id = $ids[ rand @ids ]; - } else { - #default order is mostRecent - $id = $ids[0]; # 1st element in list is most recent. - } - - # Store the matching assetId in user scratch. - WebGUI::Session::setScratch($scratchId,$id) if ($scratchId); - - return WebGUI::Asset->newByDynamicClass($id); -} - -#------------------------------------------------------------------- -sub getShortcutDefault { - my $self = shift; - return WebGUI::Asset->newByDynamicClass($self->get("shortcutToAssetId")); -} - -#------------------------------------------------------------------- -sub getShortcutOriginal { - my $self = shift; - if ($self->get("shortcutByCriteria")) { - return $self->getShortcutByCriteria; - } else { - return $self->getShortcutDefault; - } -} - -#------------------------------------------------------------------- -sub getUserPrefs { - my $self = shift; - my $bibibib = $self->getLineage(["children"],{includeOnlyClasses=>["WebGUI::Asset::Field"],returnObjects=>1}); - return @$bibibib; -} - -#------------------------------------------------------------------- -sub processPropertiesFromFormPost { - my $self = shift; - $self->SUPER::processPropertiesFromFormPost; - my $scratchId = "Shortcut_" . $self->getId; - WebGUI::Session::deleteAllScratch($scratchId); -} - -#------------------------------------------------------------------- - -sub purge { - my $self = shift; - # delete and purge all associated FieldIds and their preferences. - return $self->SUPER::purge; -} - -#------------------------------------------------------------------- - -sub purgeRevision { - my $self = shift; - return $self->SUPER::purgeRevision; -} - -#------------------------------------------------------------------- - -sub uncacheOverrides { - my $self = shift; - WebGUI::Cache->new(["shortcutOverrides",$self->getId])->delete; -} - -#------------------------------------------------------------------- -sub view { - my $self = shift; - my $content; - my $shortcut = $self->getShortcut; - if ($self->get("shortcutToAssetId") eq $self->get("parentId")) { - $content = WebGUI::International::get("Displaying this shortcut would cause a feedback loop","Asset_Shortcut"); - } else { - $content = $shortcut->view; - } - my %var = ( - isShortcut => 1, - 'shortcut.content' => $content, - 'shortcut.label' => WebGUI::International::get('assetName',"Asset_Shortcut"), - originalURL => $shortcut->getUrl - ); - return $self->processTemplate(\%var,$self->getValue("templateId")); -} - -#------------------------------------------------------------------- -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=manageOverrides"),WebGUI::International::get("Manage Shortcut Overrides","Asset_Shortcut")); - $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageUserPrefs"),WebGUI::International::get("Manage User Preferences","Asset_Shortcut")); - return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get(2,"Asset_Shortcut")); -} - -#------------------------------------------------------------------- -sub www_getUserPrefsForm { - #This is a form retrieved by "ajax". - my $self = shift; - return 'nuhuh' unless $self->getParent->canPersonalize; - my @fielden = $self->getUserPrefs; - my $f = WebGUI::HTMLForm->new(extras=>' onSubmit="submitForm(this,\''.$self->getId.'\',\''.$self->getUrl.'\');return false;"'); - $f->hidden( - -name => 'func', - -value => 'saveUserPrefs' - ); - foreach my $field (@fielden) { - my $fieldType = $field->get("fieldType") || "text"; - my $options; - my $params = {name=>$field->getId, - label=>$field->get("fieldName"), - uiLevel=>5, - value=>$field->getUserPref($field->getId), - extras=>'', - possibleValues=>$field->get("possibleValues"), - options=>$options, - fieldType=>$fieldType - }; - if (lc($fieldType) eq 'textarea') { - $params->{rows} = 4; - $params->{columns} = 20; - } - $f->dynamicField(%$params); - } - $f->submit; - return $f->print; -} - -#------------------------------------------------------------------- -sub www_manageUserPrefs { - my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; - my $output = $self->getFieldsList; - return $self->_submenu($output,WebGUI::International::get("Manage User Preferences","Asset_Shortcut")); -} - -#------------------------------------------------------------------- -sub www_manageOverrides { - my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; - return $self->_submenu($self->getOverridesList,WebGUI::International::get("Manage Shortcut Overrides","Asset_Shortcut")); -} - -#------------------------------------------------------------------- -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; - 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; - return '' unless $self->getParent->canPersonalize; - my @fellowFields = $self->getUserPrefs; - foreach my $fieldId (keys %{$session{form}}) { - my $field = WebGUI::Asset->newByDynamicClass($fieldId); - next unless $field; - $field->setUserPref($fieldId,$session{form}{$fieldId}); - } - return $self->view; -} - -#------------------------------------------------------------------- -sub www_getNewTitle { - my $self = shift; - return '' unless $self->getParent->canPersonalize; - my $foo = $self->getShortcut; - return $foo->{_properties}{title}; -} - -#------------------------------------------------------------------- -sub www_editOverride { - my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; - my $i18n = WebGUI::International->new("Asset_Shortcut"); - 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=>"overrideFieldName",-value=>$session{form}{fieldName}); - $f->readOnly(-label=>$i18n->get("Field Name"),-value=>$session{form}{fieldName}); - $f->readOnly(-label=>$i18n->get("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} || $i18n->get("Edit Field Directly"); - $params{hoverhelp} = $params{hoverhelp} || $i18n->get("Use this field to edit the override using the native form handler for this field type"); - if ($fieldName eq 'templateId') {$params{namespace} = $params{namespace} || WebGUI::Asset->newByDynamicClass($overrides{overrides}{templateId}{origValue})->get("namespace");} - $f->dynamicField(%params); - $f->textarea( - -name=>"newOverrideValueText", - -label=>$i18n->get("New Override Value"), - -value=>$overrides{overrides}{$fieldName}{newValue}, - -hoverHelp=>$i18n->get("Place something in this box if you dont want to use the automatically generated field") - ); - $f->readOnly(-label=>$i18n->get("Replacement Value"),-value=>$overrides{overrides}{$fieldName}{parsedValue},-hoverHelp=>$i18n->get("This is the example output of the field when parsed for user preference macros")); - $f->submit; - $output .= $f->print; - return $self->_submenu($output,$i18n->get('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; - if (ref($self->getParent) eq 'WebGUI::Asset::Wobject::Dashboard') { - return WebGUI::Privilege::noAccess() unless $self->canView; - $session{asset} = $self->getParent; - return $session{asset}->www_view; - } else { - return $self->getShortcut->www_view; - } -} - -1; -