From 438d13b1b9c5e48afcd80c2e4425e808faa1a334 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Tue, 11 Sep 2007 23:55:11 +0000 Subject: [PATCH] better behavior for subscribe option on CS form --- docs/changelog/7.x.x.txt | 2 ++ lib/WebGUI/Asset/Post.pm | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 66220dcf6..b38b13468 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -39,6 +39,8 @@ - fix: SQL Report download link doesn't include form parameters - fix: Errors generated in webgui.log when viewing last thread - Report errors on loading modules to Apache log during preload + - fix: Use previous form value for Subscribe on CS preview + - Use current subscription status on form for CS reply, unsubscribe if set to no 7.4.5 - fix: Apostrophy incorrectly escaped as double quote in some places diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index e7c71cdc5..5a3b6f65c 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -820,7 +820,12 @@ sub processPropertiesFromFormPost { } elsif ($self->getThread->get("status") eq "archived") { $self->getThread->unarchive; } - $self->getThread->subscribe if ($self->session->form->process("subscribe")); + if ($self->session->form->process("subscribe")) { + $self->getThread->subscribe; + } + else { + $self->getThread->unsubscribe; + } delete $self->{_storageLocation}; $self->postProcess; } @@ -1158,9 +1163,10 @@ sub www_edit { $title = $parent->get("title"); $title = "Re: ".$title unless ($title =~ /^Re:/i); } - $var{'subscribe.form'} = WebGUI::Form::yesNo($session, { + my $subscribe = $form->process("subscribe"); + $var{'subscribe.form'} = WebGUI::Form::yesNo($session, { name=>"subscribe", - value=>$self->session->form->process("subscribe") + value => defined $subscribe ? $subscribe : $self->getThread->isSubscribed, }); } elsif ($className eq "WebGUI::Asset::Post::Thread") { # new thread @@ -1177,9 +1183,10 @@ sub www_edit { value=>$form->process('lock') }); } + my $subscribe = $form->process("subscribe"); $var{'subscribe.form'} = WebGUI::Form::yesNo($session, { name=>"subscribe", - value=>$form->process("subscribe") || 1 + value => defined $subscribe ? $subscribe : 1,; }); } $content .= "\n\n".$user->profileField("signature") if ($user->profileField("signature") && !$form->process("content"));