Merge branch 'WebGUI8' into psgi
Conflicts: sbin/testEnvironment.pl
This commit is contained in:
commit
f16ba76b86
109 changed files with 1546 additions and 2197 deletions
|
|
@ -346,8 +346,8 @@ sub www_editSubmission {
|
|||
my $assetId = $self ? $self->getId : $params->{assetId} || $session->form->get('assetId') || 'new';
|
||||
|
||||
if( $assetId ne 'new' ) {
|
||||
$self ||= WebGUI::Asset->newByDynamicClass($session,$assetId);
|
||||
if (!defined $self) {
|
||||
$self ||= eval { WebGUI::Asset->newById($session,$assetId); };
|
||||
if (Exception::Class->caught()) {
|
||||
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,10 +16,70 @@ package WebGUI::Asset::EMSSubmissionForm;
|
|||
=cut
|
||||
|
||||
use strict;
|
||||
use Moose;
|
||||
use WebGUI::Definition::Asset;
|
||||
extends 'WebGUI::Asset';
|
||||
|
||||
define assetName => ['assetName','Asset_EMSSubmissionForm'];
|
||||
define icon => 'EMSSubmissionForm.gif';
|
||||
define tableName => 'EMSSubmissionForm';
|
||||
|
||||
property canSubmitGroupId => (
|
||||
tab => "security",
|
||||
fieldType => "group",
|
||||
default => 2,
|
||||
label => ["can submit group label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["can submit group label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
property daysBeforeCleanup => (
|
||||
tab => "properties",
|
||||
fieldType => "integer",
|
||||
default => 7,
|
||||
label => ["days before cleanup label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["days before cleanup label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
property deleteCreatedItems => (
|
||||
tab => "properties",
|
||||
fieldType => "yesNo",
|
||||
default => undef,
|
||||
label => ["delete created items label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["delete created items label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
property submissionDeadline => (
|
||||
tab => "properties",
|
||||
fieldType => "Date",
|
||||
builder => '_default_submissionDeadline',
|
||||
label => ["submission deadline label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["submission deadline label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
sub _default_submissionDeadline {
|
||||
return time() + ( 30 * 24 * 60 * 60 ); # 30 days
|
||||
}
|
||||
property pastDeadlineMessage => (
|
||||
tab => "properties",
|
||||
fieldType => "HTMLArea",
|
||||
builder => '_default_pastDeadlineMessage',
|
||||
lazy => 1,
|
||||
label => ["past deadline label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["past deadline label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
sub _default_pastDeadlineMessage {
|
||||
my $self = shift;
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_EMSSubmissionForm');
|
||||
return $i18n->get('past deadline message');
|
||||
}
|
||||
property formDescription => (
|
||||
tab => "properties",
|
||||
fieldType => "textarea",
|
||||
default => '{ }',
|
||||
label => ["form dscription label", 'Asset_EMSSubmissionForm'],
|
||||
hoverHelp => ["form dscription label help", 'Asset_EMSSubmissionForm']
|
||||
);
|
||||
|
||||
use Tie::IxHash;
|
||||
use base 'WebGUI::Asset';
|
||||
use JSON;
|
||||
use WebGUI::Utility;
|
||||
with 'WebGUI::Role::Asset::AlwaysHidden';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -84,81 +144,6 @@ sub canSubmit {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition ( session, definition )
|
||||
|
||||
defines asset properties for New Asset instances. You absolutely need
|
||||
this method in your new Assets.
|
||||
|
||||
=head3 session
|
||||
|
||||
=head3 definition
|
||||
|
||||
A hash reference passed in from a subclass definition.
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $definition = shift;
|
||||
my $i18n = WebGUI::International->new( $session, "Asset_EMSSubmissionForm" );
|
||||
tie my %properties, 'Tie::IxHash', (
|
||||
canSubmitGroupId => {
|
||||
tab => "security",
|
||||
fieldType => "group",
|
||||
defaultValue => 2,
|
||||
label => $i18n->get("can submit group label"),
|
||||
hoverHelp => $i18n->get("can submit group label help")
|
||||
},
|
||||
daysBeforeCleanup => {
|
||||
tab => "properties",
|
||||
fieldType => "integer",
|
||||
defaultValue => 7,
|
||||
label => $i18n->get("days before cleanup label"),
|
||||
hoverHelp => $i18n->get("days before cleanup label help")
|
||||
},
|
||||
deleteCreatedItems => {
|
||||
tab => "properties",
|
||||
fieldType => "yesNo",
|
||||
defaultValue => undef,
|
||||
label => $i18n->get("delete created items label"),
|
||||
hoverHelp => $i18n->get("delete created items label help")
|
||||
},
|
||||
submissionDeadline => {
|
||||
tab => "properties",
|
||||
fieldType => "Date",
|
||||
defaultValue => time + ( 30 * 24 * 60 * 60 ) , # 30 days
|
||||
label => $i18n->get("submission deadline label"),
|
||||
hoverHelp => $i18n->get("submission deadline label help")
|
||||
},
|
||||
pastDeadlineMessage => {
|
||||
tab => "properties",
|
||||
fieldType => "HTMLArea",
|
||||
defaultValue => $i18n->get('past deadline message'),
|
||||
label => $i18n->get("past deadline label"),
|
||||
hoverHelp => $i18n->get("past deadline label help")
|
||||
},
|
||||
formDescription => {
|
||||
tab => "properties",
|
||||
fieldType => "textarea",
|
||||
defaultValue => '{ }',
|
||||
label => $i18n->get("form dscription label"),
|
||||
hoverHelp => $i18n->get("form dscription label help")
|
||||
},
|
||||
);
|
||||
push @{$definition}, {
|
||||
assetName => $i18n->get('assetName'),
|
||||
icon => 'EMSSubmissionForm.gif',
|
||||
autoGenerateForms => 1,
|
||||
tableName => 'EMSSubmissionForm',
|
||||
className => 'WebGUI::Asset::EMSSubmissionForm',
|
||||
properties => \%properties,
|
||||
};
|
||||
return $class->SUPER::definition( $session, $definition );
|
||||
} ## end sub definition
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 ems
|
||||
|
||||
returns the ems ansestor of this asset
|
||||
|
|
@ -187,131 +172,154 @@ optional set of possibly incorrect submission form params
|
|||
=cut
|
||||
|
||||
sub www_editSubmissionForm {
|
||||
my $this = shift;
|
||||
my $self;
|
||||
my $parent;
|
||||
if( $this eq __PACKAGE__ ) { # called as constructor or menu
|
||||
$parent = shift;
|
||||
} else {
|
||||
$self = $this;
|
||||
$parent = $self->getParent;
|
||||
}
|
||||
my $params = shift || { };
|
||||
my $session = $parent->session;
|
||||
my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem');
|
||||
my $assetId = $self ? $self->getId : $params->{assetId} || $session->form->get('assetId');
|
||||
my $this = shift;
|
||||
my $self;
|
||||
my $parent;
|
||||
if ( $this eq __PACKAGE__ ) { # called as constructor or menu
|
||||
$parent = shift;
|
||||
}
|
||||
else {
|
||||
$self = $this;
|
||||
$parent = $self->getParent;
|
||||
}
|
||||
my $params = shift || {};
|
||||
my $session = $parent->session;
|
||||
my $i18n = WebGUI::International->new( $session, 'Asset_EventManagementSystem' );
|
||||
my $assetId = $self ? $self->getId : $params->{assetId} || $session->form->get('assetId');
|
||||
|
||||
if( ! defined( $assetId ) ) {
|
||||
my $res = $parent->getLineage(['children'],{ returnObjects => 1,
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
|
||||
} );
|
||||
if( scalar(@$res) == 1 ) {
|
||||
$self = $res->[0];
|
||||
$assetId = $self->getId;
|
||||
} else {
|
||||
my $makeAnchorList =sub{ my $u=shift; my $n=shift; my $d=shift;
|
||||
return qq{<li><a href='$u' title='$d'>$n</a></li>} } ;
|
||||
my $listOfLinks = join '', ( map {
|
||||
$makeAnchorList->(
|
||||
$_->getQueueUrl,
|
||||
$_->get('title'),
|
||||
WebGUI::HTML::filter($_->get('description'),'all')
|
||||
)
|
||||
} ( @$res ) );
|
||||
my $title = $i18n->get('select form to edit') ;
|
||||
my $content = '<h1>' . $title . '</h1><ul>' . $listOfLinks . '</ul>' ;
|
||||
if( $params->{asHashRef} ) {
|
||||
return { text => $content, title => $title, } ;
|
||||
} elsif( $session->form->get('asJson') ) {
|
||||
$session->http->setMimeType( 'application/json' );
|
||||
return JSON->new->encode( { text => $content, title => $title, id => 'list' . rand } );
|
||||
} else {
|
||||
$session->http->setMimeType( 'text/html' );
|
||||
return $parent->ems->processStyle( $content );
|
||||
}
|
||||
}
|
||||
} elsif( $assetId ne 'new' ) {
|
||||
$self ||= WebGUI::Asset->newByDynamicClass($session,$assetId);
|
||||
if (!defined($self)) {
|
||||
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
|
||||
}
|
||||
if ( !defined($assetId) ) {
|
||||
my $res = $parent->getLineage(
|
||||
['children'], {
|
||||
returnObjects => 1,
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
|
||||
}
|
||||
);
|
||||
if ( scalar(@$res) == 1 ) {
|
||||
$self = $res->[0];
|
||||
$assetId = $self->getId;
|
||||
}
|
||||
my $asset = $self || $parent;
|
||||
my $url = $asset->getUrl('func=editSubmissionFormSave');
|
||||
my $newform = WebGUI::HTMLForm->new( $session, action => $url );
|
||||
$newform->hidden(name => 'assetId', value => $assetId);
|
||||
my @fieldNames = qw/title description startDate duration seatsAvailable location/;
|
||||
my $fields;
|
||||
my @defs = reverse @{WebGUI::Asset::EMSSubmission->definition($session)};
|
||||
for my $def ( @defs ) {
|
||||
foreach my $fieldName ( @fieldNames ) {
|
||||
my $properties = $def->{properties};
|
||||
if( defined $properties->{$fieldName} ) {
|
||||
$fields->{$fieldName} = { %{$properties->{$fieldName}} }; # a simple first level copy
|
||||
# field definitions don't contain their own name, we will need it later on
|
||||
$fields->{$fieldName}{fieldId} = $fieldName;
|
||||
};
|
||||
}
|
||||
}
|
||||
for my $metaField ( @{$parent->getEventMetaFields} ) {
|
||||
push @fieldNames, $metaField->{fieldId};
|
||||
$fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy
|
||||
# meta fields call it data type, we copy it to simplify later on
|
||||
$fields->{$metaField->{fieldId}}{fieldType} = $metaField->{dataType};
|
||||
$fields->{$metaField->{fieldId}}{hoverHelp} = $metaField->{helpText};
|
||||
}
|
||||
$newform->hidden( name => 'fieldNames', value => join( ' ', @fieldNames ) );
|
||||
@defs = reverse @{WebGUI::Asset::EMSSubmissionForm->definition($session)};
|
||||
for my $def ( @defs ) {
|
||||
my $properties = $def->{properties};
|
||||
for my $fieldName ( qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup
|
||||
deleteCreatedItems submissionDeadline pastDeadlineMessage/ ) {
|
||||
if( defined $properties->{$fieldName} ) {
|
||||
my %fieldParams = %{$properties->{$fieldName}};
|
||||
$fieldParams{name} = $fieldName;
|
||||
$fieldParams{value} = $params->{$fieldName} || $self ? $self->get($fieldName) : undef ;
|
||||
$newform->dynamicField(%fieldParams);
|
||||
}
|
||||
}
|
||||
else {
|
||||
my $makeAnchorList = sub {
|
||||
my $u = shift;
|
||||
my $n = shift;
|
||||
my $d = shift;
|
||||
return qq{<li><a href='$u' title='$d'>$n</a></li>};
|
||||
};
|
||||
my $listOfLinks = join '', (
|
||||
map {
|
||||
$makeAnchorList->(
|
||||
$_->getQueueUrl, $_->get('title'), WebGUI::HTML::filter( $_->get('description'), 'all' )
|
||||
)
|
||||
} (@$res)
|
||||
);
|
||||
my $title = $i18n->get('select form to edit');
|
||||
my $content = '<h1>' . $title . '</h1><ul>' . $listOfLinks . '</ul>';
|
||||
if ( $params->{asHashRef} ) {
|
||||
return { text => $content, title => $title, };
|
||||
}
|
||||
elsif ( $session->form->get('asJson') ) {
|
||||
$session->http->setMimeType('application/json');
|
||||
return JSON->new->encode( { text => $content, title => $title, id => 'list' . rand } );
|
||||
}
|
||||
else {
|
||||
$session->http->setMimeType('text/html');
|
||||
return $parent->ems->processStyle($content);
|
||||
}
|
||||
} ## end else [ if ( scalar(@$res) == ...)]
|
||||
} ## end if ( !defined($assetId...))
|
||||
elsif ( $assetId ne 'new' ) {
|
||||
$self ||= WebGUI::Asset->newById( $session, $assetId );
|
||||
if ( !defined($self) ) {
|
||||
$session->errorHandler->error( __PACKAGE__ . " - failed to instanciate asset with assetId $assetId" );
|
||||
}
|
||||
}
|
||||
my $asset = $self || $parent;
|
||||
my $url = $asset->getUrl('func=editSubmissionFormSave');
|
||||
my $newform = WebGUI::HTMLForm->new( $session, action => $url );
|
||||
$newform->hidden( name => 'assetId', value => $assetId );
|
||||
my @fieldNames = qw/title description startDate duration seatsAvailable location/;
|
||||
my $fields;
|
||||
my @defs = reverse @{ WebGUI::Asset::EMSSubmission->definition($session) };
|
||||
|
||||
my $formDescription = $params->{formDescription} || $self ? $self->getFormDescription : { };
|
||||
for my $fieldId ( @fieldNames ) {
|
||||
next if $fieldId eq 'submissionStatus';
|
||||
my $field = $fields->{$fieldId};
|
||||
$newform->yesNo(
|
||||
label => $field->{label},
|
||||
name => $field->{fieldId} . '_yesNo',
|
||||
defaultValue => 0,
|
||||
value => $formDescription->{$field->{fieldId}},
|
||||
);
|
||||
}
|
||||
$newform->submit;
|
||||
my $title = $assetId eq 'new' ? $i18n->get('new form') || 'new' : $asset->get('title');
|
||||
if( $params->{asHashRef} ) {
|
||||
; # not setting mimie type
|
||||
} elsif( $session->form->get('asJson') ) {
|
||||
$session->http->setMimeType( 'application/json' );
|
||||
} else {
|
||||
$session->http->setMimeType( 'text/html' );
|
||||
}
|
||||
my $content = $asset->processTemplate({
|
||||
errors => $params->{errors} || [],
|
||||
isDynamic => $session->form->get('asJson') || 0,
|
||||
backUrl => $parent->getUrl,
|
||||
pageTitle => $title,
|
||||
pageForm => $newform->print,
|
||||
},$parent->get('eventSubmissionTemplateId'));
|
||||
WebGUI::Macro::process( $session, \$content );
|
||||
if( $params->{asHashRef} ) {
|
||||
return { text => $content, title => $title };
|
||||
} elsif( $session->form->get('asJson') ) {
|
||||
return JSON->new->encode( { text => $content, title => $title, id => $assetId ne 'new' ? $assetId : 'new' . rand } );
|
||||
} else {
|
||||
return $asset->ems->processStyle( $content );
|
||||
}
|
||||
for my $def (@defs) {
|
||||
foreach my $fieldName (@fieldNames) {
|
||||
my $properties = $def->{properties};
|
||||
if ( defined $properties->{$fieldName} ) {
|
||||
$fields->{$fieldName} = { %{ $properties->{$fieldName} } }; # a simple first level copy
|
||||
# field definitions don't contain their own name, we will need it later on
|
||||
$fields->{$fieldName}{fieldId} = $fieldName;
|
||||
}
|
||||
}
|
||||
}
|
||||
for my $metaField ( @{ $parent->getEventMetaFields } ) {
|
||||
push @fieldNames, $metaField->{fieldId};
|
||||
$fields->{ $metaField->{fieldId} } = {%$metaField}; # a simple first level copy
|
||||
# meta fields call it data type, we copy it to simplify later on
|
||||
$fields->{ $metaField->{fieldId} }{fieldType} = $metaField->{dataType};
|
||||
$fields->{ $metaField->{fieldId} }{hoverHelp} = $metaField->{helpText};
|
||||
}
|
||||
$newform->hidden( name => 'fieldNames', value => join( ' ', @fieldNames ) );
|
||||
@defs = reverse @{ WebGUI::Asset::EMSSubmissionForm->definition($session) };
|
||||
for my $def (@defs) {
|
||||
my $properties = $def->{properties};
|
||||
for my $fieldName (
|
||||
qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup
|
||||
deleteCreatedItems submissionDeadline pastDeadlineMessage/
|
||||
)
|
||||
{
|
||||
if ( defined $properties->{$fieldName} ) {
|
||||
my %fieldParams = %{ $properties->{$fieldName} };
|
||||
$fieldParams{name} = $fieldName;
|
||||
$fieldParams{value} = $params->{$fieldName} || $self ? $self->get($fieldName) : undef;
|
||||
$newform->dynamicField(%fieldParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
my $formDescription = $params->{formDescription} || $self ? $self->getFormDescription : {};
|
||||
for my $fieldId (@fieldNames) {
|
||||
next if $fieldId eq 'submissionStatus';
|
||||
my $field = $fields->{$fieldId};
|
||||
$newform->yesNo(
|
||||
label => $field->{label},
|
||||
name => $field->{fieldId} . '_yesNo',
|
||||
defaultValue => 0,
|
||||
value => $formDescription->{ $field->{fieldId} },
|
||||
);
|
||||
}
|
||||
$newform->submit;
|
||||
my $title = $assetId eq 'new' ? $i18n->get('new form') || 'new' : $asset->get('title');
|
||||
if ( $params->{asHashRef} ) {
|
||||
; # not setting mimie type
|
||||
}
|
||||
elsif ( $session->form->get('asJson') ) {
|
||||
$session->http->setMimeType('application/json');
|
||||
}
|
||||
else {
|
||||
$session->http->setMimeType('text/html');
|
||||
}
|
||||
my $content = $asset->processTemplate( {
|
||||
errors => $params->{errors} || [],
|
||||
isDynamic => $session->form->get('asJson') || 0,
|
||||
backUrl => $parent->getUrl,
|
||||
pageTitle => $title,
|
||||
pageForm => $newform->print,
|
||||
},
|
||||
$parent->get('eventSubmissionTemplateId')
|
||||
);
|
||||
WebGUI::Macro::process( $session, \$content );
|
||||
if ( $params->{asHashRef} ) {
|
||||
return { text => $content, title => $title };
|
||||
}
|
||||
elsif ( $session->form->get('asJson') ) {
|
||||
return JSON->new->encode(
|
||||
{ text => $content, title => $title, id => $assetId ne 'new' ? $assetId : 'new' . rand } );
|
||||
}
|
||||
else {
|
||||
return $asset->ems->processStyle($content);
|
||||
}
|
||||
|
||||
} ## end sub www_editSubmissionForm
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
@ -491,14 +499,15 @@ We overload the update method from WebGUI::Asset in order to handle file system
|
|||
|
||||
=cut
|
||||
|
||||
sub update {
|
||||
around update => sub {
|
||||
my $orig = shift;
|
||||
my $self = shift;
|
||||
my $properties = shift;
|
||||
if( ref $properties->{formDescription} eq 'HASH' ) {
|
||||
$properties->{formDescription} = JSON->new->encode($properties->{formDescription});
|
||||
}
|
||||
$self->SUPER::update({%$properties, isHidden => 1});
|
||||
}
|
||||
$self->$orig({%$properties});
|
||||
};
|
||||
|
||||
1;
|
||||
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ sub getFirstFile {
|
|||
my $allFileIds = $self->getParent->getFileIds;
|
||||
|
||||
return undef unless @{ $allFileIds };
|
||||
return WebGUI::Asset->newByDynamicClass( $self->session, shift @{ $allFileIds });
|
||||
return WebGUI::Asset->newById( $self->session, shift @{ $allFileIds });
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
@ -452,7 +452,7 @@ sub getLastFile {
|
|||
my $allFileIds = $self->getParent->getFileIds;
|
||||
|
||||
return undef unless @{ $allFileIds };
|
||||
return WebGUI::Asset->newByDynamicClass( $self->session, pop @{ $allFileIds });
|
||||
return WebGUI::Asset->newById( $self->session, pop @{ $allFileIds });
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
@ -469,7 +469,7 @@ sub getNextFile {
|
|||
return $self->{_nextFile} if $self->{_nextFile};
|
||||
my $nextId = $self->getParent->getNextFileId( $self->getId );
|
||||
return undef unless $nextId;
|
||||
$self->{_nextFile} = WebGUI::Asset->newByDynamicClass( $self->session, $nextId );
|
||||
$self->{_nextFile} = WebGUI::Asset->newById( $self->session, $nextId );
|
||||
return $self->{_nextFile};
|
||||
}
|
||||
|
||||
|
|
@ -487,7 +487,7 @@ sub getPreviousFile {
|
|||
return $self->{_previousFile} if $self->{_previousFile};
|
||||
my $previousId = $self->getParent->getPreviousFileId( $self->getId );
|
||||
return undef unless $previousId;
|
||||
$self->{_previousFile} = WebGUI::Asset->newByDynamicClass( $self->session, $previousId );
|
||||
$self->{_previousFile} = WebGUI::Asset->newById( $self->session, $previousId );
|
||||
return $self->{_previousFile};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,6 @@ override applyConstraints => sub {
|
|||
# Update the asset's size and make a thumbnail
|
||||
my $maxImageSize = $gallery->imageViewSize
|
||||
|| $self->session->setting->get("maxImageSize");
|
||||
my $parameters = $self->parameters;
|
||||
my $storage = $self->getStorageLocation;
|
||||
my $file = $self->filename;
|
||||
|
||||
|
|
@ -214,7 +213,7 @@ sub getExifData {
|
|||
=head2 getResolutions ( )
|
||||
|
||||
Get an array reference of download resolutions that exist for this image.
|
||||
Does not include the web view image or the thumbnail image.
|
||||
Does not include the web view image or the thumbnail images.
|
||||
|
||||
=cut
|
||||
|
||||
|
|
@ -223,7 +222,7 @@ sub getResolutions {
|
|||
my $storage = $self->getStorageLocation;
|
||||
|
||||
# Return a list not including the web view image.
|
||||
return [ sort { $a <=> $b } grep { $_ ne $self->filename } @{ $storage->getFiles } ];
|
||||
return [ sort { $a cmp $b } grep { $_ ne $self->filename } @{ $storage->getFiles } ];
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ override applyConstraints => sub {
|
|||
my $self = shift;
|
||||
my $options = shift;
|
||||
super();
|
||||
my $maxImageSize = $options->{maxImageSize} || $self->maxImageSize || $self->session->setting->get("maxImageSize");
|
||||
my $maxImageSize = $options->{maxImageSize} || $self->session->setting->get("maxImageSize");
|
||||
my $thumbnailSize = $options->{thumbnailSize} || $self->thumbnailSize || $self->session->setting->get("thumbnailSize");
|
||||
my $storage = $self->getStorageLocation;
|
||||
my $file = $self->filename;
|
||||
|
|
@ -244,7 +244,7 @@ sub view {
|
|||
$var{fileIcon} = $self->getFileIconUrl;
|
||||
$var{thumbnail} = $self->getThumbnailUrl;
|
||||
$var{annotateJs} = $crop_js . $domMe;
|
||||
$var{parameters} .= sprintf("id=%s", $self->getId);
|
||||
$var{parameters} .= sprintf(q{ id="%s"}, $self->getId);
|
||||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if (!$session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
$cache->set( $cacheKey, $out, $self->get("cacheTimeout") );
|
||||
|
|
|
|||
|
|
@ -410,12 +410,12 @@ Fetches the last post in this thread, otherwise, returns itself.
|
|||
sub getLastPost {
|
||||
my $self = shift;
|
||||
my $lastPostId = $self->lastPostId;
|
||||
my $lastPost;
|
||||
if ($lastPostId) {
|
||||
$lastPost = WebGUI::Asset::Post->newById($self->session, $lastPostId);
|
||||
}
|
||||
return $lastPost if (defined $lastPost);
|
||||
return $self;
|
||||
return $self unless $lastPostId;
|
||||
my $lastPost = eval { WebGUI::Asset->newById($self->session, $lastPostId); };
|
||||
if (Exception::Class->caught()) {
|
||||
return $self;
|
||||
}
|
||||
return $lastPost;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -497,9 +497,9 @@ sub getOverrides {
|
|||
my $orig = $self->getShortcutOriginal;
|
||||
if (defined $orig) {
|
||||
unless ( exists $orig->{_propertyDefinitions}) {
|
||||
my %properties;
|
||||
foreach my $definition (@{$orig->definition($self->session)}) {
|
||||
%properties = (%properties, %{$definition->{properties}});
|
||||
my %properties;
|
||||
foreach my $property ($orig->getProperties) {
|
||||
$properties{$property} = $orig->getFormProperties($property);
|
||||
}
|
||||
$orig->{_propertyDefinitions} = \%properties;
|
||||
}
|
||||
|
|
@ -1150,14 +1150,7 @@ sub www_editOverride {
|
|||
);
|
||||
|
||||
# Fetch the parameters for the dynamic field.
|
||||
my (%params, %props);
|
||||
foreach my $def (@{$self->getShortcutOriginal->definition($self->session)}) {
|
||||
%props = (%props,%{$def->{properties}});
|
||||
}
|
||||
foreach my $key (keys %{$props{$fieldName}}) {
|
||||
next if ($key eq "tab");
|
||||
$params{$key} = $props{$fieldName}{$key};
|
||||
}
|
||||
my %params = %{ $self->getShortcutOriginal->getFormProperties($fieldName) };
|
||||
$params{value} = $origValue;
|
||||
$params{name} = $fieldName;
|
||||
$params{label} = $params{label} || $i18n->get("Edit Field Directly");
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ property vendorId => (
|
|||
property taxConfiguration => (
|
||||
noFormPost => 1,
|
||||
fieldType => 'hidden',
|
||||
defaultValue => '{}',
|
||||
default => '{}',
|
||||
);
|
||||
property shipsSeparately => (
|
||||
tab => 'shop',
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ property snippet => (
|
|||
label => ['assetName','Asset_Snippet'],
|
||||
hoverHelp => ['snippet description','Asset_Snippet'],
|
||||
default => undef,
|
||||
trigger => \&_trigger_snippet,
|
||||
);
|
||||
sub _trigger_snippet {
|
||||
my $self = shift;
|
||||
|
|
|
|||
|
|
@ -289,8 +289,8 @@ sub getTemplateVars {
|
|||
});
|
||||
PAGE: foreach my $assetId (@{ $paginator->getPageData }) {
|
||||
next PAGE if $assetId->{assetId} eq $self->getId;
|
||||
my $asset = WebGUI::Asset->newByDynamicClass($session, $assetId->{assetId});
|
||||
next PAGE unless $asset;
|
||||
my $asset = eval { WebGUI::Asset->newById($session, $assetId->{assetId}); };
|
||||
next PAGE if Exception::Class->caught();
|
||||
push @keyword_pages, {
|
||||
title => $asset->getTitle,
|
||||
url => $asset->getUrl,
|
||||
|
|
|
|||
|
|
@ -836,9 +836,9 @@ sub www_addSubmission {
|
|||
}
|
||||
}
|
||||
}
|
||||
$form = WebGUI::Asset->newByDynamicClass($session,$formId);
|
||||
if (!defined $form) {
|
||||
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $formId");
|
||||
$form = eval { WebGUI::Asset->newById($session, $formId); };
|
||||
if (Exception::Class->caught()) {
|
||||
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $formId");
|
||||
}
|
||||
return $form->www_addSubmission;
|
||||
}
|
||||
|
|
@ -1351,7 +1351,7 @@ sub www_getAllSubmissions {
|
|||
$tableInfo->{'records' } = [];
|
||||
|
||||
for my $record ( @{ $p->getPageData } ) {
|
||||
my $asset = WebGUI::Asset->newByDynamicClass( $session, $record->{assetId} );
|
||||
my $asset = WebGUI::Asset->newById( $session, $record->{assetId} );
|
||||
|
||||
my $lastReplyBy = $asset->get("lastReplyBy");
|
||||
if ($lastReplyBy) {
|
||||
|
|
|
|||
|
|
@ -551,7 +551,7 @@ sub getAlbumIds {
|
|||
my $orderBy = $options->{ orderBy }
|
||||
? $options->{ orderBy }
|
||||
: $self->viewListOrderBy
|
||||
? join( " ", $self->getviewListOrderBy, $self->viewListOrderDirection )
|
||||
? join( " ", $self->viewListOrderBy, $self->viewListOrderDirection )
|
||||
: "lineage ASC"
|
||||
;
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ use Carp qw( croak );
|
|||
use File::Find;
|
||||
use File::Spec;
|
||||
use File::Temp qw{ tempdir };
|
||||
use JSON ();
|
||||
use JSON qw();
|
||||
use WebGUI::International;
|
||||
use WebGUI::HTML;
|
||||
use WebGUI::ProgressBar;
|
||||
|
|
@ -1171,7 +1171,7 @@ sub www_ajax {
|
|||
my $result;
|
||||
|
||||
# Get arguments encoded in json format
|
||||
my $args = decode_json($form->get("args"));
|
||||
my $args = JSON::from_json($form->get("args"));
|
||||
|
||||
# Log some debug information
|
||||
$session->log->debug("Ajax service called with args=" . $form->get("args"));
|
||||
|
|
@ -1198,7 +1198,7 @@ sub www_ajax {
|
|||
$result->{ err } = -1 if $result->{ errMessage };
|
||||
|
||||
# Return results encoded in json format
|
||||
return encode_json( $result );
|
||||
return JSON::to_json( $result );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1247,10 +1247,10 @@ sub _moveFileAjaxRequest {
|
|||
|
||||
# Get Id of target photo and instantiate asset
|
||||
my $targetId = $args->{target};
|
||||
my $target = WebGUI::Asset->newByDynamicClass( $session, $targetId );
|
||||
my $target = eval { WebGUI::Asset->newById( $session, $targetId ); };
|
||||
|
||||
# Return if target photo could not be instantiated
|
||||
unless ( $target ) {
|
||||
if ( Exception::Class->caught() ) {
|
||||
$session->log->error("Couldn't move file '$targetId' because we couldn't instantiate it.");
|
||||
$result{ errMessage } = "ID of target file seems to be invalid.";
|
||||
return \%result;
|
||||
|
|
@ -1266,10 +1266,10 @@ sub _moveFileAjaxRequest {
|
|||
|
||||
# Instantiate file with ID in before/after argument
|
||||
$destId = $args->{before} ? $args->{before} : $args->{after};
|
||||
$dest = WebGUI::Asset->newByDynamicClass( $session, $destId );
|
||||
$dest = eval { WebGUI::Asset->newById( $session, $destId ); };
|
||||
|
||||
# Return if destination file could not be instantiated
|
||||
unless ( $dest ) {
|
||||
if ( Exception::Class->caught() ) {
|
||||
$session->log->error("Couldn't move file '$targetId' before/after file '$destId' because we couldn't instantiate the latter.");
|
||||
$result{ errMessage } = "ID in before/after argument seems to be invalid.";
|
||||
return \%result;
|
||||
|
|
@ -1286,14 +1286,14 @@ sub _moveFileAjaxRequest {
|
|||
# Get ID of next sibling
|
||||
$destId = $self->getNextFileId( $destId );
|
||||
# Instantiate next sibling
|
||||
$dest = WebGUI::Asset->newByDynamicClass( $session, $destId );
|
||||
$dest = WebGUI::Asset->newById( $session, $destId );
|
||||
}
|
||||
# Check for use of before argument when increasing the rank
|
||||
if ( $args->{before} && $target->getRank() < $dest->getRank() ) {
|
||||
# Get ID of previous sibling
|
||||
$destId = $self->getPreviousFileId( $destId );
|
||||
# Instantiate previous sibling
|
||||
$dest = WebGUI::Asset->newByDynamicClass( $session, $destId );
|
||||
$dest = WebGUI::Asset->newById( $session, $destId );
|
||||
}
|
||||
|
||||
# Update rank of target photo
|
||||
|
|
|
|||
|
|
@ -265,8 +265,7 @@ part of the C<groupToAdd> group.
|
|||
|
||||
=cut
|
||||
|
||||
sub canEdit {
|
||||
my $orig = shift;
|
||||
override canEdit => sub {
|
||||
my $self = shift;
|
||||
my $userId = shift || $self->session->user->userId;
|
||||
|
||||
|
|
@ -276,14 +275,8 @@ sub canEdit {
|
|||
&& $form->get( 'class' )->isa( 'WebGUI::Asset::MatrixListing' ) ) {
|
||||
return $self->canAddMatrixListing();
|
||||
}
|
||||
else {
|
||||
if ($userId eq $self->ownerUserId) {
|
||||
return 1;
|
||||
}
|
||||
my $user = WebGUI::User->new($self->session, $userId);
|
||||
return $user->isInGroup($self->groupIdEdit);
|
||||
}
|
||||
}
|
||||
return super();
|
||||
};
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use HTML::Entities;
|
|||
use WebGUI::Exception;
|
||||
use WebGUI::HTML;
|
||||
use WebGUI::International;
|
||||
use LWP::UserAgent;
|
||||
|
||||
use Moose;
|
||||
use WebGUI::Definition::Asset;
|
||||
|
|
@ -216,6 +217,7 @@ sub getRssFeedItems {
|
|||
author => $item->author,
|
||||
guid => $item->guid,
|
||||
);
|
||||
push @items, \%feed_item;
|
||||
}
|
||||
return \@items;
|
||||
}
|
||||
|
|
@ -293,11 +295,12 @@ See WebGUI::Asset::prepareView() for details.
|
|||
|
||||
=cut
|
||||
|
||||
sub prepareView {
|
||||
around prepareView => sub {
|
||||
my $orig = shift;
|
||||
my $self = shift;
|
||||
$self->next::method;
|
||||
my $template = WebGUI::Asset::Template->newById($self->session, $self->templateId);
|
||||
if (!$template) {
|
||||
$self->$orig();
|
||||
my $template = eval { WebGUI::Asset->newById($self->session, $self->templateId); };
|
||||
if (Exception::Class->caught()) {
|
||||
WebGUI::Error::ObjectNotFound::Template->throw(
|
||||
error => qq{Template not found},
|
||||
templateId => $self->templateId,
|
||||
|
|
@ -306,7 +309,7 @@ sub prepareView {
|
|||
}
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -358,63 +361,11 @@ See WebGUI::Asset::Wobject::www_view() for details.
|
|||
|
||||
=cut
|
||||
|
||||
sub www_view {
|
||||
my $self = shift;
|
||||
$self->session->http->setCacheControl($self->cacheTimeout);
|
||||
$self->next::method(@_);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewRSS090 ( )
|
||||
|
||||
Deprecated. Use www_viewRss() instead.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_viewRSS090 {
|
||||
my $self = shift;
|
||||
return $self->www_viewRss;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewRSS091 ( )
|
||||
|
||||
Deprecated. Use www_viewRss() instead.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_viewRSS091 {
|
||||
my $self = shift;
|
||||
return $self->www_viewRss;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewRSS10 ( )
|
||||
|
||||
Deprecated. Use www_viewRdf() instead.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_viewRSS10 {
|
||||
my $self = shift;
|
||||
return $self->www_viewRdf;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_viewRSS20 ( )
|
||||
|
||||
Deprecated. Use www_viewRss() instead.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_viewRSS20 {
|
||||
my $self = shift;
|
||||
return $self->www_viewRss;
|
||||
}
|
||||
override www_view => sub {
|
||||
my $self = shift;
|
||||
$self->session->http->setCacheControl($self->cacheTimeout);
|
||||
super();
|
||||
};
|
||||
|
||||
__PACKAGE__->meta->make_immutable;
|
||||
1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue