Skip to content

Commit 9238058

Browse files
authored
Merge pull request #75 from topcoder-platform/issues-488
Issues-488: Fixed threaded/flat view mode
2 parents 4838416 + 5ebf974 commit 9238058

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

ReplyTo/class.replyto.plugin.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@ public function postController_render_before($sender) {
6666
$this->prepareController($sender);
6767
}
6868

69+
/**
70+
* Add View Mode before rendering comments
71+
* @param $sender
72+
* @param $args
73+
*/
74+
public function base_beforeCommentsRender_handler($sender, $args) {
75+
$viewMode = self::getViewMode();
76+
$sender->setData('ViewMode', $viewMode);
77+
}
78+
6979
/**
7080
* Render View options for a discussion
7181
* @param $sender
@@ -264,11 +274,13 @@ public function base_inlineDiscussionOptions_handler($sender, $args) {
264274

265275
/**
266276
* Insert the indentation classes into the comment.
277+
* All rendering options should be set before displaying comments
267278
* @param $sender
268279
* @param $args
269280
*/
270281
public function base_beforeCommentDisplay_handler($sender, $args) {
271282
if($sender->deliveryType() != DELIVERY_TYPE_ALL) {
283+
// Ajax request to post new comments or update comments
272284
if(isset($_SERVER['HTTP_REFERER'])) {
273285
$previous = $_SERVER['HTTP_REFERER'];
274286
$query = parse_url($previous, PHP_URL_QUERY);
@@ -277,7 +289,7 @@ public function base_beforeCommentDisplay_handler($sender, $args) {
277289
if(!$viewMode) {
278290
$viewMode = self::isPagingUrl($previous) ? self::VIEW_FLAT : self::VIEW_THREADED;
279291
}
280-
292+
$sender->setData('ViewMode', $viewMode);
281293
if($viewMode == self::VIEW_THREADED) {
282294
$this->buildCommentReplyToCssClasses($sender);
283295
}

ReplyTo/js/replyto.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,22 @@ jQuery(document).ready(function($) {
1515
var parent = $(btn).parents('.MainContent');
1616
var commentContainer = $(parent).find('div.CommentForm');
1717
var header = $(commentContainer).find('h2.H');
18-
$(header).text('Reply to a comment');
1918
// Form
2019
var form = $(commentContainer).find('form#Form_Comment');
2120
var href = $(btn).attr('href');
2221
var commentID = param(href,'ParentCommentID');
2322
var hiddenField = $(form).find(':input[type="hidden"]#Form_ParentCommentID')
23+
24+
var author = '';
25+
if(commentID == '') { // No Parent Comment, Reply to Discussion
26+
commentID = 0;
27+
author = $(btn).parents('.Discussion').find('.Item-Header.DiscussionHeader .Author .topcoderHandle').text();
28+
} else {
29+
author = $(btn).parents('.Comment').find('.Item-Header.CommentHeader .Author .topcoderHandle').text();
30+
}
31+
32+
$(header).text('Replying to '+ author);
33+
2434
if($(hiddenField).length == 0) {
2535
var el = '<input type="hidden" name="ParentCommentID" id="Form_ParentCommentID" value="' + commentID + '"></input>';
2636
$(form).append(el);
@@ -30,11 +40,11 @@ jQuery(document).ready(function($) {
3040
var formButtons = $(form).find('.Buttons');
3141
var postCommentButton = $(form).find('.CommentButton');
3242
postCommentButton.val('Post Reply');
33-
var backButton = $(formButtons).find('span.Back');
43+
var backButton = $(formButtons).find('.Button.PreviewButton');
3444
var cancelReplyButton = $(formButtons).find('span.Reply');
3545
if($(cancelReplyButton).length == 0) {
3646
var cancelReplyButton = '<span class="Reply"><a href="/" class="Button CancelReplyComment">Cancel Reply</a></span>';
37-
$(cancelReplyButton).insertAfter(backButton);
47+
$(cancelReplyButton).insertBefore(backButton);
3848
} else {
3949
$(cancelReplyButton).show();
4050
}

0 commit comments

Comments
 (0)