- fix: Username blank when editing user Visitor
- fix: Thread Count is off in the Collaboration system - Fixed an indexing problem with Product assets. - fix: Reply count off when restoring from trash - fix: Karma not spent properly - fix: Avatar Message Board Template Not Working
This commit is contained in:
parent
9384702260
commit
b7957742bc
11 changed files with 168 additions and 69 deletions
|
|
@ -29,6 +29,13 @@
|
|||
- fix: not set UTF-8 in setup page
|
||||
- fix: 6.99 nothing write to assetData.groupIdView & assetData.groupIdEdit
|
||||
- fix: Insert A Link page has no head & body tags has no style
|
||||
- fix: Username blank when editing user Visitor
|
||||
- fix: Thread Count is off in the Collaboration system
|
||||
- Fixed an indexing problem with Product assets.
|
||||
- fix: Reply count off when restoring from trash
|
||||
- fix: Karma not spent properly
|
||||
- fix: Avatar Message Board Template Not Working
|
||||
|
||||
|
||||
6.99.2
|
||||
- fix - demo.plainblack.com getting started
|
||||
|
|
|
|||
|
|
@ -8,6 +8,11 @@
|
|||
<h2><tmpl_var title></h2>
|
||||
|
||||
<div class="defaultSubmissionDetails">
|
||||
<tmpl_if avatar.url>
|
||||
<div style="width: 100%; text-align: center;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</div>
|
||||
</tmpl_if>
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -91,7 +96,12 @@
|
|||
<table cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<tmpl_if avatar.url>
|
||||
<td style="padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</td>
|
||||
</tmpl_if>
|
||||
<td style="padding-right: 25px;text-align:left;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -101,11 +111,12 @@
|
|||
<br />
|
||||
<b><tmpl_var date.label>:</b> <tmpl_var dateSubmitted.human>
|
||||
</td>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<td style="text-align:left;">
|
||||
<b><tmpl_var rating.label>:</b> <tmpl_var rating>
|
||||
<tmpl_unless hasRated>
|
||||
<tmpl_var rate.label> [ <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsUp>"><img src="<tmpl_var thumbsUp.icon.url>" alt="+" style="border: 0px;vertical-align:middle;" /></a></p> | <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsDown>"><img src="<tmpl_var thumbsDown.icon.url>" alt="-" style="border: 0px;vertical-align:middle;" /></a></p> ]
|
||||
</tmpl_unless>
|
||||
<br />
|
||||
<b><tmpl_var status.label>:</b> <tmpl_var status><br />
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -151,7 +162,12 @@
|
|||
<table cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<tmpl_if avatar.url>
|
||||
<td style="padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</td>
|
||||
</tmpl_if>
|
||||
<td style="padding-right: 25px;text-align:left;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -161,11 +177,12 @@
|
|||
<br />
|
||||
<b><tmpl_var date.label>:</b> <tmpl_var dateSubmitted.human>
|
||||
</td>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<td style="text-align:left;">
|
||||
<b><tmpl_var rating.label>:</b> <tmpl_var rating>
|
||||
<tmpl_unless hasRated>
|
||||
<tmpl_var rate.label> [ <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsUp>"><img src="<tmpl_var thumbsUp.icon.url>" alt="+" style="border: 0px;vertical-align:middle;" /></a></p> | <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsDown>"><img src="<tmpl_var thumbsDown.icon.url>" alt="-" style="border: 0px;vertical-align:middle;" /></a></p> ]
|
||||
</tmpl_unless>
|
||||
<br />
|
||||
<b><tmpl_var status.label>:</b> <tmpl_var status><br />
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,12 @@
|
|||
<tmpl_var title>
|
||||
</div>
|
||||
<div class="postData">
|
||||
<div style="float: left; width: 50%">
|
||||
<tmpl_if avatar.url>
|
||||
<div style="float: left; padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</div>
|
||||
</tmpl_if>
|
||||
<div style="float: left; padding-right: 25px;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -87,7 +92,12 @@
|
|||
<tmpl_var title>
|
||||
</div>
|
||||
<div class="postData">
|
||||
<div style="float: left; width: 50%">
|
||||
<tmpl_if avatar.url>
|
||||
<div style="float: left; padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</div>
|
||||
</tmpl_if>
|
||||
<div style="float: left; padding-right: 25px;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -243,4 +253,4 @@
|
|||
font-size: 11px;
|
||||
padding: 3px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,11 @@
|
|||
<h2><tmpl_var title></h2>
|
||||
|
||||
<div class="defaultSubmissionDetails">
|
||||
<tmpl_if avatar.url>
|
||||
<div style="width: 100%; text-align: center;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</div>
|
||||
</tmpl_if>
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -96,7 +101,12 @@
|
|||
<table cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<tmpl_if avatar.url>
|
||||
<td style="padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</td>
|
||||
</tmpl_if>
|
||||
<td style="padding-right: 25px;text-align:left;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -106,11 +116,12 @@
|
|||
<br />
|
||||
<b><tmpl_var date.label>:</b> <tmpl_var dateSubmitted.human>
|
||||
</td>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<td style="text-align:left;">
|
||||
<b><tmpl_var rating.label>:</b> <tmpl_var rating>
|
||||
<tmpl_unless hasRated>
|
||||
<tmpl_var rate.label> [ <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsUp>"><img src="<tmpl_var thumbsUp.icon.url>" alt="+" style="border: 0px;vertical-align:middle;" /></a></p> | <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsDown>"><img src="<tmpl_var thumbsDown.icon.url>" alt="-" style="border: 0px;vertical-align:middle;" /></a></p> ]
|
||||
</tmpl_unless>
|
||||
</tmpl_unless>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -155,7 +166,12 @@
|
|||
<table cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<tmpl_if avatar.url>
|
||||
<td style="padding-right: 10px;">
|
||||
<img src="<tmpl_var avatar.url>" alt="<tmpl_var username>" />
|
||||
</td>
|
||||
</tmpl_if>
|
||||
<td style="padding-right: 25px;text-align:left;">
|
||||
<b><tmpl_var user.label>:</b>
|
||||
<tmpl_if user.isVisitor>
|
||||
<tmpl_var username>
|
||||
|
|
@ -165,11 +181,12 @@
|
|||
<br />
|
||||
<b><tmpl_var date.label>:</b> <tmpl_var dateSubmitted.human>
|
||||
</td>
|
||||
<td style="width:50%;text-align:left;">
|
||||
<td style="text-align:left;">
|
||||
<b><tmpl_var rating.label>:</b> <tmpl_var rating>
|
||||
<tmpl_unless hasRated>
|
||||
<tmpl_var rate.label> [ <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsUp>"><img src="<tmpl_var thumbsUp.icon.url>" alt="+" style="border: 0px;vertical-align:middle;" /></a></p> | <p style="display:inline;vertical-align:middle;"><a href="<tmpl_var rate.url.thumbsDown>"><img src="<tmpl_var thumbsDown.icon.url>" alt="-" style="border: 0px;vertical-align:middle;" /></a></p> ]
|
||||
</tmpl_unless>
|
||||
</tmpl_unless>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -344,4 +361,4 @@ display:block;
|
|||
font-family:arial;
|
||||
font-size:9pt;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -20,12 +20,18 @@ my $quiet; # this line required
|
|||
|
||||
my $session = start(); # this line required
|
||||
|
||||
addAssetIndex();
|
||||
fixCs();
|
||||
fixCss();
|
||||
fixSpectre();
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
#-------------------------------------------------
|
||||
sub addAssetIndex {
|
||||
print "\tAdding a new asset index.\n" unless ($quiet);
|
||||
$session->db->write("alter table asset add index state_lineage (state,lineage)");
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub fixSpectre {
|
||||
|
|
|
|||
|
|
@ -714,6 +714,13 @@ sub postProcess {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub publish {
|
||||
my $self = shift;
|
||||
$self->getThread->sumReplies;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
my $sth = $self->session->db->read("select storageId from Post where assetId=".$self->session->db->quote($self->getId));
|
||||
|
|
@ -772,6 +779,11 @@ sub rate {
|
|||
my ($sum) = $self->session->db->quickArray("select sum(rating) from Post_rating where assetId=".$self->session->db->quote($self->getId));
|
||||
$self->update({rating=>$sum});
|
||||
$self->getThread->rate($rating);
|
||||
if ($self->session->setting->get("useKarma")) {
|
||||
$self->session->user->karma(-$self->getThread->getParent->get("karmaSpentToRate"), "Rated Post ".$self->getId, "Rated a CS Post.");
|
||||
my $u = WebGUI::User->new($self->session, $self->get("ownerUserId"));
|
||||
$u->karma($self->getThread->getParent->get("karmaRatingMultiplier"), "Post ".$self->getId." Rated by ".$self->session->user->userId, "Had post rated.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -847,14 +859,14 @@ sub setStatusUnarchived {
|
|||
|
||||
=head2 trash
|
||||
|
||||
Moves post to the trash and decrements reply counter on thread.
|
||||
Moves post to the trash and updates reply counter on thread.
|
||||
|
||||
=cut
|
||||
|
||||
sub trash {
|
||||
my $self = shift;
|
||||
$self->SUPER::trash;
|
||||
$self->getThread->decrementReplies if ($self->isReply);
|
||||
$self->getThread->sumReplies if ($self->isReply);
|
||||
if ($self->getThread->get("lastPostId") eq $self->getId) {
|
||||
my $threadLineage = $self->getThread->get("lineage");
|
||||
my ($id, $date) = $self->session->db->quickArray("select Post.assetId, Post.dateSubmitted from Post, asset where asset.lineage like ".$self->session->db->quote($threadLineage.'%')." and Post.assetId<>".$self->session->db->quote($self->getId)." and asset.assetId=Post.assetId and asset.state='published' order by Post.dateSubmitted desc");
|
||||
|
|
|
|||
|
|
@ -77,20 +77,6 @@ sub createSubscriptionGroup {
|
|||
});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 decrementReplies ( )
|
||||
|
||||
Deccrements this reply counter.
|
||||
|
||||
=cut
|
||||
|
||||
sub decrementReplies {
|
||||
my $self = shift;
|
||||
$self->update({replies=>$self->get("replies")-1});
|
||||
$self->getParent->decrementReplies;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
|
|
@ -426,7 +412,7 @@ The id of the reply that caused the replies counter to be incremented.
|
|||
|
||||
sub incrementReplies {
|
||||
my ($self, $dateOfReply, $replyId) = @_;
|
||||
$self->update({replies=>$self->get("replies")+1, lastPostId=>$replyId, lastPostDate=>$dateOfReply});
|
||||
$self->update({replies=>$self->getDescendantCount, lastPostId=>$replyId, lastPostDate=>$dateOfReply});
|
||||
$self->getParent->incrementReplies($dateOfReply,$replyId);
|
||||
}
|
||||
|
||||
|
|
@ -659,16 +645,30 @@ sub subscribe {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 sumReplies ( )
|
||||
|
||||
Calculates the number of replies to this thread and updates the counter to reflect that. Also triggers a count in the collaboration system.
|
||||
|
||||
=cut
|
||||
|
||||
sub sumReplies {
|
||||
my $self = shift;
|
||||
$self->update({replies=>$self->getDescendantCount});
|
||||
$self->getParent->sumReplies;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 trash
|
||||
|
||||
Moves thread to the trash and decrements reply counter on thread.
|
||||
Moves thread to the trash and updates reply counter on thread.
|
||||
|
||||
=cut
|
||||
|
||||
sub trash {
|
||||
my $self = shift;
|
||||
$self->SUPER::trash;
|
||||
$self->getParent->decrementThreads;
|
||||
$self->getParent->sumReplies;
|
||||
if ($self->getParent->get("lastPostId") eq $self->getId) {
|
||||
my $parentLineage = $self->getThread->get("lineage");
|
||||
my ($id, $date) = $self->session->db->quickArray("select Post.assetId, Post.dateSubmitted from Post, asset where asset.lineage like ".$self->session->db->quote($parentLineage.'%')." and Post.assetId<>".$self->session->db->quote($self->getId)." and Post.assetId=asset.assetId and asset.state='published' order by Post.dateSubmitted desc");
|
||||
|
|
|
|||
|
|
@ -262,34 +262,6 @@ sub createSubscriptionGroup {
|
|||
});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 decrementReplies ( )
|
||||
|
||||
Deccrements this reply counter.
|
||||
|
||||
=cut
|
||||
|
||||
sub decrementReplies {
|
||||
my $self = shift;
|
||||
$self->update({replies=>$self->get("replies")-1});
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 decrementThreads ( )
|
||||
|
||||
Deccrements this thread counter.
|
||||
|
||||
=cut
|
||||
|
||||
sub decrementThreads {
|
||||
my $self = shift;
|
||||
$self->update({threads=>$self->get("threads")-1});
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
|
|
@ -892,7 +864,9 @@ The unique identifier of the post being added.
|
|||
|
||||
sub incrementReplies {
|
||||
my ($self, $lastPostDate, $lastPostId) = @_;
|
||||
$self->update({replies=>$self->get("replies")+1, lastPostId=>$lastPostId, lastPostDate=>$lastPostDate});
|
||||
my $threads = $self->getChildCount;
|
||||
my $replies = $self->getDescendantCount - $threads;
|
||||
$self->update({replies=>$replies, threads=>$threads, lastPostId=>$lastPostId, lastPostDate=>$lastPostDate});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -913,7 +887,7 @@ The unique identifier of the post that was just added.
|
|||
|
||||
sub incrementThreads {
|
||||
my ($self, $lastPostDate, $lastPostId) = @_;
|
||||
$self->update({threads=>$self->get("threads")+1, lastPostId=>$lastPostId, lastPostDate=>$lastPostDate});
|
||||
$self->update({threads=>$self->getChildCount, lastPostId=>$lastPostId, lastPostDate=>$lastPostDate});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -1051,6 +1025,34 @@ sub setLastPost {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 sumReplies ( )
|
||||
|
||||
Calculates the number of replies to this collaboration system and updates the counter to reflect that. Also updates thread count since it needs to know that to calculate reply count.
|
||||
|
||||
=cut
|
||||
|
||||
sub sumReplies {
|
||||
my $self = shift;
|
||||
my $threads = $self->getChildCount;
|
||||
my $replies = $self->getDescendantCount - $threads;
|
||||
$self->update({replies=>$replies, threads=>$threads});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 sumThreads ( )
|
||||
|
||||
Calculates the number of threads in this collaboration system and updates the counter to reflect that.
|
||||
|
||||
=cut
|
||||
|
||||
sub sumThreads {
|
||||
my $self = shift;
|
||||
$self->update({threads=>$self->getChildCount});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 subscribe ( )
|
||||
|
||||
Subscribes a user to this collaboration system.
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ sub indexContent {
|
|||
$indexer->addKeywords(join(" ", @data));
|
||||
@data = $self->session->db->buildArray("select benefit from Product_benefit where assetId=".$self->session->db->quote($self->getId));
|
||||
$indexer->addKeywords(join(" ", @data));
|
||||
@data = $self->session->db->buildArray("select concat(name,' ',value,' ', units') from Product_specification where assetId=".$self->session->db->quote($self->getId));
|
||||
@data = $self->session->db->buildArray("select concat(name,' ',value,' ', units) from Product_specification where assetId=".$self->session->db->quote($self->getId));
|
||||
$indexer->addKeywords(join(" ", @data));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -154,6 +154,35 @@ sub formatRank {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getChildCount ( )
|
||||
|
||||
Returns the number of children this asset has. This excludes assets in the trash or clipbaord.
|
||||
|
||||
=cut
|
||||
|
||||
sub getChildCount {
|
||||
my $self = shift;
|
||||
my ($count) = $self->session->db->quickArray("select count(*) from asset where state in ('published','archived') and parentId=?", [$self->getId]);
|
||||
return $count;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getDescendantCount ( )
|
||||
|
||||
Returns the number of descendants this asset has. This excludes assets in the trash or clipboard.
|
||||
|
||||
=cut
|
||||
|
||||
sub getDescendantCount {
|
||||
my $self = shift;
|
||||
my ($count) = $self->session->db->quickArray("select count(*) from asset where state in ('published', 'archived') and lineage like ?", [$self->get("lineage")."%"]);
|
||||
$count--; # have to subtract self
|
||||
return $count;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getFirstChild ( )
|
||||
|
|
@ -498,7 +527,7 @@ sub getRank {
|
|||
|
||||
=head2 hasChildren ( )
|
||||
|
||||
Returns 1 or the count of Assets with the same parentId as current Asset (Which may be zero).
|
||||
Returns 1 or the count of Assets with the same parentId as current Asset's assetId (Which may be zero).
|
||||
|
||||
=cut
|
||||
|
||||
|
|
@ -510,8 +539,7 @@ sub hasChildren {
|
|||
} elsif (exists $self->{_lastChild}) {
|
||||
$self->{_hasChildren} = 1;
|
||||
} else {
|
||||
my ($hasChildren) = $self->session->db->quickArray("select count(*) from asset where parentId=".$self->session->db->quote($self->getId));
|
||||
$self->{_hasChildren} = $hasChildren;
|
||||
$self->{_hasChildren} = $self->getChildCount;
|
||||
}
|
||||
}
|
||||
return $self->{_hasChildren};
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ sub www_editUser {
|
|||
my $tabform = WebGUI::TabForm->new($session,\%tabs);
|
||||
$tabform->formHeader({extras=>'autocomplete="off"'});
|
||||
my $u = WebGUI::User->new($session,($uid eq 'new') ? '' : $uid); #Setting uid to '' when uid is 'new' so visitor defaults prefill field for new user
|
||||
my $username = $u->userId eq '1' ? '' : $u->username;
|
||||
my $username = ($u->userId eq '1' && $uid ne "1") ? '' : $u->username;
|
||||
$session->stow->set("editUser_UID", $uid);
|
||||
$tabform->hidden({name=>"op",value=>"editUserSave"});
|
||||
$tabform->hidden({name=>"uid",value=>$uid});
|
||||
|
|
@ -519,7 +519,7 @@ sub www_editUserKarmaSave {
|
|||
my ($u);
|
||||
$u = WebGUI::User->new($session,$session->form->process("uid"));
|
||||
$u->karma($session->form->process("amount"),$session->user->username." (".$session->user->userId.")",$session->form->process("description"));
|
||||
return www_editUser();
|
||||
return www_editUser($session);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue