Merge branch 'master' of git@github.com:plainblack/webgui
Conflicts: docs/upgrades/upgrade_7.8.0-7.8.1.pl
This commit is contained in:
commit
5f3477be4a
17 changed files with 347 additions and 194 deletions
|
|
@ -67,7 +67,7 @@ sub canView {
|
|||
my $uid = $self->uid;
|
||||
|
||||
return 1 if (($session->user->userId eq $uid || $uid eq "") && $session->user->profileField('ableToBeFriend'));
|
||||
|
||||
|
||||
my $user = WebGUI::User->new($session,$uid);
|
||||
return 0 if($user->isVisitor); #This should never happen but let's make sure
|
||||
return 0 unless ($user->profileField('ableToBeFriend')); #User doesn't have friends enabled
|
||||
|
|
@ -310,7 +310,7 @@ sub www_removeFriend {
|
|||
my $i18n = WebGUI::International->new($session,"Account_Friends");
|
||||
$errorMsg = $i18n->get("not a friend error");
|
||||
}
|
||||
|
||||
|
||||
if($errorMsg ne "") {
|
||||
my $backUrl = $self->getUrl("module=friends");
|
||||
return $self->showError($var,$errorMsg,$backUrl,$self->getErrorTemplateId);
|
||||
|
|
@ -352,7 +352,7 @@ sub www_removeFriendConfirm {
|
|||
elsif(!$friend->isFriend($friendId)){
|
||||
$errorMsg = $i18n->get("not a friend error");
|
||||
}
|
||||
|
||||
|
||||
if($errorMsg ne "") {
|
||||
my $backUrl = $self->getUrl("module=friends");
|
||||
return $self->showError($var,$errorMsg,$backUrl,$self->getErrorTemplateId);
|
||||
|
|
@ -401,7 +401,7 @@ sub www_sendFriendsRequest {
|
|||
#Overwrite these
|
||||
$var->{'user_full_name' } = $user->getWholeName;
|
||||
$var->{'user_member_since' } = $user->dateCreated;
|
||||
|
||||
|
||||
my $defaultComment = sprintf(
|
||||
$i18n->get('default friend comments'),
|
||||
$user->getFirstName,
|
||||
|
|
@ -419,12 +419,12 @@ sub www_sendFriendsRequest {
|
|||
value => $defaultComment,
|
||||
width => "600",
|
||||
});
|
||||
|
||||
|
||||
$var->{'form_header' } = WebGUI::Form::formHeader($session,{
|
||||
action => $self->getUrl("module=friends;do=sendFriendsRequestSave;uid=$uid"),
|
||||
extras => q{name="messageForm"}
|
||||
});
|
||||
|
||||
|
||||
$var->{'submit_button' } = WebGUI::Form::submit($session,{});
|
||||
$var->{'form_footer' } = WebGUI::Form::formFooter($session, {});
|
||||
|
||||
|
|
@ -487,7 +487,7 @@ sub www_view {
|
|||
my $user = $self->getUser;
|
||||
|
||||
$self->appendCommonVars($var);
|
||||
|
||||
|
||||
my $displayView = $uid ne "";
|
||||
$var->{'display_message'} = $msg;
|
||||
|
||||
|
|
@ -507,10 +507,13 @@ sub www_view {
|
|||
#Deal with rows per page
|
||||
my $rpp = $session->form->get("rpp") || 25;
|
||||
my $rpp_url = ";rpp=$rpp";
|
||||
|
||||
#Cache the base url
|
||||
my $friendsUrl = $self->getUrl("op=account;module=friends;do=view");
|
||||
|
||||
# Handle viewing someone else's friends
|
||||
my $uid_url = $session->user->userId eq $uid ? q{} : ";uid=$uid";
|
||||
|
||||
#Cache the base url
|
||||
my $friendsUrl = $self->getUrl("op=account;module=friends;do=view$uid_url");
|
||||
|
||||
#Note for anyone who attempts to sort this list by the user's whole name:
|
||||
#You can do this, but the only way to do it efficiently is to join
|
||||
#the users, userProfileData, and groupings table. This will break if the groups API
|
||||
|
|
@ -525,7 +528,7 @@ sub www_view {
|
|||
$rpp
|
||||
);
|
||||
$p->setDataByArrayRef(\@friendIds);
|
||||
|
||||
|
||||
#Export page to template
|
||||
my @friends = ();
|
||||
foreach my $friendId ( @{$p->getPageData} ) {
|
||||
|
|
@ -533,7 +536,7 @@ sub www_view {
|
|||
next if($friend->isVisitor);
|
||||
#If you have friends turned off you shouldn't show up when other people view your friends friends
|
||||
next if($displayView && !$friend->profileField('ableToBeFriend'));
|
||||
|
||||
|
||||
my $hash = {};
|
||||
# TODO Move this into a sub that can be more easily overridden
|
||||
$hash->{'friend_full_name' } = $friend->getWholeName;
|
||||
|
|
@ -564,7 +567,7 @@ sub www_view {
|
|||
push(@friends,$hash);
|
||||
}
|
||||
my $friendCount = $p->getRowCount;
|
||||
|
||||
|
||||
$var->{'friends_loop' } = \@friends;
|
||||
$var->{'has_friends' } = $friendCount > 0;
|
||||
$var->{'friends_total' } = $friendCount;
|
||||
|
|
|
|||
|
|
@ -654,8 +654,8 @@ sub www_resize {
|
|||
var resize = new YAHOO.util.Resize('yui_img', {
|
||||
handles: 'all',
|
||||
knobHandles: true,
|
||||
height: '${x}px',
|
||||
width: '${y}px',
|
||||
height: '${y}px',
|
||||
width: '${x}px',
|
||||
proxy: true,
|
||||
ghost: true,
|
||||
status: true,
|
||||
|
|
|
|||
|
|
@ -153,37 +153,43 @@ sub definition {
|
|||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
accessoryJSON => {
|
||||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
relatedJSON => {
|
||||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
specificationJSON => {
|
||||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
featureJSON => {
|
||||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
benefitJSON => {
|
||||
##Collateral data is stored as JSON in here
|
||||
autoGenerate => 0,
|
||||
defaultValue => '[]',
|
||||
fieldType=>"textarea",
|
||||
fieldType => "textarea",
|
||||
noFormPost => 1,
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ sub definition {
|
|||
fieldType => 'textarea',
|
||||
defaultValue => '[]',
|
||||
noFormPost => 1,
|
||||
autoGenerate => 0,
|
||||
},
|
||||
);
|
||||
push(@{$definition}, {
|
||||
|
|
|
|||
|
|
@ -892,10 +892,10 @@ sub getFieldValue {
|
|||
my $processedValue = $value;
|
||||
my $dbh = $self->session->db->dbh;
|
||||
|
||||
if ($field->{fieldType} eq "date"){
|
||||
if (lc $field->{fieldType} eq "date"){
|
||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateFormat);
|
||||
}
|
||||
elsif ($field->{fieldType} eq "dateTime"){
|
||||
elsif (lc $field->{fieldType} eq "datetime"){
|
||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateTimeFormat);
|
||||
}
|
||||
# TODO: The otherThing field type is probably also handled by getFormPlugin, so the elsif below can probably be
|
||||
|
|
|
|||
|
|
@ -137,9 +137,11 @@ sub new
|
|||
|
||||
#use Data::Dumper;
|
||||
#warn "Args to DateTime->new: ".Dumper \@_;
|
||||
|
||||
if (@_ > 1 && grep /^mysql$/, @_)
|
||||
{
|
||||
|
||||
if (! scalar(@_) || $_[0] eq '') {
|
||||
$self = $class->SUPER::now();
|
||||
}
|
||||
elsif (@_ > 1 && grep /^mysql$/, @_) {
|
||||
my %hash = @_;
|
||||
$hash{time_zone} ||= "UTC";
|
||||
my $string = delete $hash{mysql};
|
||||
|
|
@ -149,12 +151,10 @@ sub new
|
|||
|
||||
$self = $class->SUPER::new(%hash);
|
||||
}
|
||||
elsif (@_ > 1)
|
||||
{
|
||||
elsif (@_ > 1) {
|
||||
$self = $class->SUPER::new(@_);
|
||||
}
|
||||
elsif ($_[0] =~ /^\d+$/)
|
||||
{
|
||||
elsif ($_[0] =~ /^-?\d+$/) {
|
||||
$self = DateTime->from_epoch(epoch=>$_[0], time_zone=>"UTC", locale=>$locale);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ use base 'WebGUI::Form::Text';
|
|||
use WebGUI::Form::Hidden;
|
||||
use WebGUI::International;
|
||||
|
||||
my $isaEpoch = qr/^-?\d+$/;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Form::Date
|
||||
|
|
@ -137,9 +139,9 @@ sub getValue {
|
|||
my $self = shift;
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
my $value = $self->SUPER::getValue(@_);
|
||||
if (!$self->getDefaultValue || $self->getDefaultValue =~ m/^\d+$/) {
|
||||
if (!$self->getDefaultValue || $self->getDefaultValue =~ $isaEpoch) {
|
||||
# Epoch format
|
||||
if($value =~ /^\d+$/){
|
||||
if($value =~ $isaEpoch){
|
||||
return $value;
|
||||
}
|
||||
return $self->session->datetime->setToEpoch($value);
|
||||
|
|
@ -150,10 +152,7 @@ sub getValue {
|
|||
|
||||
# NOTE: Cannot fix time zone since we don't have a complete date/time
|
||||
|
||||
# MySQL format
|
||||
# YY(YY)?-MM-DD HH:MM:SS
|
||||
|
||||
if($value =~ /^\d+$/){
|
||||
if($value =~ $isaEpoch){
|
||||
return $self->session->datetime->epochToSet($value,$self->session->user->profileField( 'timeZone' ));
|
||||
}
|
||||
|
||||
|
|
@ -173,17 +172,17 @@ Return the date in a human readable format.
|
|||
=cut
|
||||
|
||||
sub getValueAsHtml {
|
||||
my ($self) = @_;
|
||||
my ($self) = @_;
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
if (!$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ m/^\d+$/
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ m/^\d+$/) {
|
||||
return $self->session->datetime->epochToHuman($self->getOriginalValue,"%z");
|
||||
}
|
||||
if ( !$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ $isaEpoch
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ $isaEpoch) {
|
||||
return $self->session->datetime->epochToHuman($self->getOriginalValue, '%z');
|
||||
}
|
||||
else {
|
||||
# MySQL format
|
||||
my $value = $self->getOriginalValue;
|
||||
# MySQL format
|
||||
my $value = $self->getOriginalValue;
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
|
@ -217,17 +216,8 @@ sub toHtml {
|
|||
# No default date
|
||||
$value = $self->set("value",'');
|
||||
}
|
||||
elsif (!$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ m/^\d+$/
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ m/^\d+$/) {
|
||||
# Epoch format
|
||||
$value = $session->datetime->epochToSet($self->getOriginalValue);
|
||||
}
|
||||
else {
|
||||
# MySQL format
|
||||
$value = $self->getOriginalValue;
|
||||
# NOTE: Cannot fix time zone since we don't have a complete date/time
|
||||
$value = WebGUI::DateTime->new($session, $self->getOriginalValue)->toMysqlDate;
|
||||
}
|
||||
|
||||
my $style = $session->style;
|
||||
|
|
@ -262,25 +252,13 @@ Renders the form field to HTML as a hidden field rather than whatever field type
|
|||
=cut
|
||||
|
||||
sub toHtmlAsHidden {
|
||||
my $self = shift;
|
||||
my $value;
|
||||
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
if (!$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ m/^\d+$/
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ m/^\d+$/) {
|
||||
$value = $self->session->datetime->epochToSet($self->getOriginalValue,"%z");
|
||||
} else {
|
||||
# MySQL format
|
||||
$value = $self->getOriginalValue;
|
||||
# NOTE: Cannot fix time zone since we don't have a complete date/time
|
||||
}
|
||||
|
||||
return WebGUI::Form::Hidden->new($self->session,
|
||||
name => $self->get("name"),
|
||||
value => $value,
|
||||
)->toHtmlAsHidden;
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $value = WebGUI::DateTime->new($session, $self->getOriginalValue)->toMysqlDate;
|
||||
return WebGUI::Form::Hidden->new($session,
|
||||
name => $self->get("name"),
|
||||
value => $value,
|
||||
)->toHtmlAsHidden;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ use WebGUI::Form::Hidden;
|
|||
use WebGUI::International;
|
||||
use WebGUI::DateTime;
|
||||
|
||||
my $isaEpoch = qr/^-?\d+$/;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Form::DateTime
|
||||
|
|
@ -139,9 +141,9 @@ sub getValue {
|
|||
# This should probably be rewritten as a cascading ternary
|
||||
my $value = $self->SUPER::getValue(@_);
|
||||
|
||||
if (!$self->getDefaultValue || $self->getDefaultValue =~ m/^\d+$/) {
|
||||
if (!$self->getDefaultValue || $self->getDefaultValue =~ $isaEpoch) {
|
||||
# Epoch format
|
||||
if($value =~ /^\d+$/){
|
||||
if($value =~ $isaEpoch){
|
||||
return $value;
|
||||
}
|
||||
return $self->session->datetime->setToEpoch($value);
|
||||
|
|
@ -150,7 +152,7 @@ sub getValue {
|
|||
# MySQL format
|
||||
# YY(YY)?-MM-DD HH:MM:SS
|
||||
|
||||
if($value =~ /^\d+$/){
|
||||
if($value =~ $isaEpoch){
|
||||
return $self->session->datetime->epochToSet($value,$self->session->user->profileField( 'timeZone' ));
|
||||
}
|
||||
|
||||
|
|
@ -178,8 +180,10 @@ Return the date in a human readable format.
|
|||
sub getValueAsHtml {
|
||||
my ($self) = @_;
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
my $formatValue = $self->getDefaultValue || $self->getOriginalValue;
|
||||
if (!$formatValue || $formatValue =~ m/^\d+$/) {
|
||||
if ( !$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ $isaEpoch
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ $isaEpoch) {
|
||||
return $self->session->datetime->epochToHuman($self->getOriginalValue,"%z %Z");
|
||||
}
|
||||
else {
|
||||
|
|
@ -216,22 +220,10 @@ Renders a date picker control.
|
|||
sub toHtml {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $value;
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
if (!$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ m/^\d+$/
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ m/^\d+$/) {
|
||||
# Epoch format
|
||||
$value = $session->datetime->epochToSet($self->getOriginalValue,1);
|
||||
} else {
|
||||
# MySQL format
|
||||
$value = $self->getOriginalValue;
|
||||
# Fix time zone
|
||||
$value = WebGUI::DateTime->new($session, mysql => $value)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->strftime("%Y-%m-%d %H:%M:%S");
|
||||
}
|
||||
my $value = WebGUI::DateTime->new($session, $self->getOriginalValue)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->strftime("%Y-%m-%d %H:%M:%S");
|
||||
|
||||
my $style = $session->style;
|
||||
my $url = $session->url;
|
||||
$style->setLink($url->extras('yui/build/calendar/assets/skins/sam/calendar.css'), { rel=>"stylesheet", type=>"text/css", media=>"all" });
|
||||
|
|
@ -245,12 +237,12 @@ sub toHtml {
|
|||
$style->setScript($url->extras('yui-webgui/build/datepicker/datepicker.js'),{ type => 'text/javascript' });
|
||||
|
||||
return WebGUI::Form::Text->new($self->session,
|
||||
name=>$self->get("name"),
|
||||
value=>$value,
|
||||
size=>$self->get("size"),
|
||||
extras=>$self->get("extras") . ' onfocus="YAHOO.WebGUI.Form.DatePicker.display(this, true);"',
|
||||
id=>$self->get('id'),
|
||||
maxlength=>$self->get("maxlength")
|
||||
name => $self->get("name"),
|
||||
value => $value,
|
||||
size => $self->get("size"),
|
||||
extras => $self->get("extras") . ' onfocus="YAHOO.WebGUI.Form.DatePicker.display(this, true);"',
|
||||
id => $self->get('id'),
|
||||
maxlength => $self->get("maxlength")
|
||||
)->toHtml;
|
||||
}
|
||||
|
||||
|
|
@ -263,28 +255,15 @@ Renders the form field to HTML as a hidden field rather than whatever field type
|
|||
=cut
|
||||
|
||||
sub toHtmlAsHidden {
|
||||
my $self = shift;
|
||||
my $value;
|
||||
my $self = shift;
|
||||
my $value = WebGUI::DateTime->new($self->session, $self->getOriginalValue)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->strftime("%Y-%m-%d %H:%M:%S");
|
||||
|
||||
# This should probably be rewritten as a cascading ternary
|
||||
if (!$self->get("defaultValue")
|
||||
|| $self->get("defaultValue") =~ m/^\d+$/
|
||||
|| !$self->get("value")
|
||||
|| $self->get("value") =~ m/^\d+$/) {
|
||||
$value = $self->session->datetime->epochToSet($self->getOriginalValue,1);
|
||||
} else {
|
||||
# MySQL format
|
||||
$value = $self->getOriginalValue;
|
||||
# Fix Time zone
|
||||
$value = WebGUI::DateTime->new($self->session, mysql => $value)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->strftime("%Y-%m-%d %H:%M:%S");
|
||||
}
|
||||
|
||||
return WebGUI::Form::Hidden->new(
|
||||
name => $self->get("name"),
|
||||
value => $value,
|
||||
)->toHtmlAsHidden;
|
||||
return WebGUI::Form::Hidden->new($self->session,
|
||||
name => $self->get("name"),
|
||||
value => $value,
|
||||
)->toHtmlAsHidden;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -544,8 +544,8 @@ be useful, others may not.|,
|
|||
},
|
||||
|
||||
'assetsToInclude' => {
|
||||
message => q|A newline separated string containg the kids of assets to include in the Navigation, by relationship. Ancestors, the asset itself, siblings, descendants and/or pedigree.|,
|
||||
lastUpdated => 1253162657,
|
||||
message => q|A newline separated string containing the kids of assets to include in the Navigation, by relationship. Ancestors, the asset itself, siblings, descendants and/or pedigree.|,
|
||||
lastUpdated => 1254329336,
|
||||
},
|
||||
|
||||
'startType' => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue