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:
daviddelikat 2009-10-01 06:01:48 -05:00
commit 5f3477be4a
17 changed files with 347 additions and 194 deletions

View file

@ -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;

View file

@ -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,

View file

@ -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}, {

View file

@ -166,6 +166,7 @@ sub definition {
fieldType => 'textarea',
defaultValue => '[]',
noFormPost => 1,
autoGenerate => 0,
},
);
push(@{$definition}, {

View file

@ -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

View file

@ -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 {

View file

@ -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;

View file

@ -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;

View file

@ -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' => {