Skip to content

Commit 9d4ee97

Browse files
authored
Merge pull request #585 from topcoder-platform/develop
v1.6
2 parents f24e0de + 63849e4 commit 9d4ee97

20 files changed

+173
-73
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ RUN chmod ug=rwx,o=rx /vanillapp/conf/config.php
7676

7777
# Tideways
7878
RUN apt-get update && apt-get install -yq --no-install-recommends gnupg2;
79-
RUN echo 'deb https://packages.tideways.com/apt-packages debian main' > /etc/apt/sources.list.d/tideways.list && \
79+
RUN echo 'deb https://packages.tideways.com/apt-packages-main any-version main' > /etc/apt/sources.list.d/tideways.list && \
8080
curl -L -sS 'https://packages.tideways.com/key.gpg' | apt-key add - && \
8181
apt-get update && \
8282
DEBIAN_FRONTEND=noninteractive apt-get -yq install tideways-php tideways-daemon && \

config/vanilla/bootstrap.before.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -883,26 +883,30 @@ function writeInlineDiscussionOptions($discussionRow) {
883883
echo '<div class="center"></div>';
884884
echo '<div class="right">';
885885

886-
// Write the items.
886+
$sender = Gdn::controller();
887+
888+
$sender->EventArguments['Object'] = $discussionRow;
889+
$sender->EventArguments['Type'] = 'Discussion';
890+
$sender->fireEvent('BeforeInlineDiscussionOptions');
891+
887892
// DropdownModule
888893
$discussionDropdown = getDiscussionOptionsDropdown($discussionRow);
889894

890895
// Allow plugins to edit the dropdown.
891-
$sender = Gdn::controller();
892896
$sender->EventArguments['DiscussionOptions'] = &$discussionDropdown ;
893897
$sender->EventArguments['Discussion'] = $discussionRow;
894898
$sender->fireEvent('InlineDiscussionOptions');
895899

896-
$discussionDropdownItems = $discussionDropdown->toArray()['items'];
900+
$discussionDropdownItems = $discussionDropdown->toArray()['items'];
897901

898-
unset($discussionDropdownItems['announce']);
899-
unset($discussionDropdownItems['sink']);
900-
unset($discussionDropdownItems['close']);
901-
unset($discussionDropdownItems['dismiss']);
902-
unset($discussionDropdownItems['move']);
903-
unset($discussionDropdownItems['tag']);
902+
unset($discussionDropdownItems['announce']);
903+
unset($discussionDropdownItems['sink']);
904+
unset($discussionDropdownItems['close']);
905+
unset($discussionDropdownItems['dismiss']);
906+
unset($discussionDropdownItems['move']);
907+
unset($discussionDropdownItems['tag']);
904908

905-
if (!empty($discussionDropdownItems) && is_array($discussionDropdownItems)) {
909+
if (!empty($discussionDropdownItems) && is_array($discussionDropdownItems)) {
906910
array_walk($discussionDropdownItems, function(&$value, $key) {
907911
$anchor = anchor($value['text'], $value['url'], val('cssClass', $value, $key));
908912
$value = '<span class="" style="">'.$anchor.'</span>';
@@ -926,6 +930,11 @@ function writeInlineCommentOptions($comment) {
926930
echo '<div class="center"></div>';
927931
echo '<div class="right">';
928932

933+
$sender = Gdn::controller();
934+
$sender->EventArguments['Object'] = $comment;
935+
$sender->EventArguments['Type'] = 'Comment';
936+
$sender->fireEvent('BeforeInlineCommentOptions');
937+
929938
// Write the items.
930939
$items = getCommentOptions($comment);
931940
if (!empty($items) && is_array($items)) {

config/vanilla/bootstrap.early.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,4 +169,21 @@
169169
Gdn::sql()->query('update GDN_User u set u.CountWatchedCategories = 0 where u.CountWatchedCategories is null', 'update');
170170
}
171171

172+
// https://github.com/topcoder-platform/forums/issues/475
173+
// Add the column PScore/NScore in Discussion :
174+
if(!Gdn::structure()->table('Discussion')->columnExists('PScore')) {
175+
Gdn::structure()->table('Discussion')
176+
->column('PScore', 'float', null)
177+
->column('NScore', 'float', null)
178+
->set(false, false);
179+
}
180+
181+
// https://github.com/topcoder-platform/forums/issues/475
182+
// Add the column PScore/NScore in Comment :
183+
if(!Gdn::structure()->table('Comment')->columnExists('PScore')) {
184+
Gdn::structure()->table('Comment')
185+
->column('PScore', 'float', null)
186+
->column('NScore', 'float', null)
187+
->set(false, false);
188+
}
172189
}

config/vanilla/config.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
$Configuration['EnabledPlugins']['stubcontent'] = false;
2727
$Configuration['EnabledPlugins']['Topcoder'] = true;
2828
$Configuration['EnabledPlugins']['TopcoderEditor'] = true;
29+
$Configuration['EnabledPlugins']['Voting'] = true;
2930
$Configuration['EnabledPlugins']['rich-editor'] = true;
3031
$Configuration['EnabledPlugins']['editor'] = false;
3132
$Configuration['EnabledPlugins']['emojiextender'] = true;
@@ -204,3 +205,8 @@
204205
];
205206
// Allow "target='_blank'" for Markdown format;
206207
$Configuration['Garden']['Html']['BlockedAttributes']='on*, download';
208+
209+
$Configuration['Garden']['FavIcon']='/themes/topcoder/design/images/favicon.png';
210+
211+
// This flag moves executing of ActivityModel queue to the scheduler
212+
$Configuration['Feature']['deferredNotifications']['Enabled'] = true;

vanilla/applications/vanilla/controllers/class.categoriescontroller.php

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -417,12 +417,17 @@ public function index($categoryIdentifier = '', $page = '0') {
417417
$this->Head->addRss(categoryUrl($category) . '/feed.rss', $this->Head->title());
418418
}
419419

420-
if($category->DisplayAs == 'Discussions') {
420+
// if($category->DisplayAs == 'Discussions') {
421421
// Add modules
422-
$this->addModule('NewDiscussionModule');
423-
}
422+
// $this->addModule('NewDiscussionModule');
423+
//}
424424
$this->addModule('DiscussionFilterModule');
425-
// $this->addModule('CategoriesModule');
425+
// FIX: https://github.com/topcoder-platform/forums/issues/548
426+
// Show only for 'Public forums'
427+
$isGroupCategory = val('GroupID',$category, false);
428+
if(gdn::session()->isValid() && !$isGroupCategory) {
429+
$this->addModule('CategoriesModule');
430+
}
426431
$this->addModule('BookmarkedModule');
427432
$this->addModule('TagModule');
428433

@@ -647,13 +652,20 @@ public function all($Category = '', $displayAs = '') {
647652

648653
$this->setData('CategoryTree', $categoryTree);
649654

650-
// Add modules
651-
if($Category && $displayAs == 'Discussions') {
652-
$this->addModule('NewDiscussionModule');
653-
}
655+
// Add modules
656+
// FIX: https://github.com/topcoder-platform/forums/issues/553
657+
// if($Category && $displayAs == 'Discussions') {
658+
// $this->addModule('NewDiscussionModule');
659+
// }
654660
$this->addModule('DiscussionFilterModule');
655661
$this->addModule('BookmarkedModule');
656-
// $this->addModule('CategoriesModule');
662+
// FIX: https://github.com/topcoder-platform/forums/issues/548
663+
// Show only for 'Public forums'
664+
$isGroupCategory = val('GroupID',$this->data('Category'));
665+
if(gdn::session()->isValid() && $this->data('Category') && !$isGroupCategory) {
666+
$this->addModule('CategoriesModule');
667+
}
668+
657669
$this->addModule($CategoryFollowToggleModule);
658670
$this->addModule('TagModule');
659671

@@ -743,9 +755,15 @@ public function discussions($Category = '') {
743755
$this->setData('Discussions', $Discussions);
744756

745757
// Add modules
746-
$this->addModule('NewDiscussionModule');
758+
// https://github.com/topcoder-platform/forums/issues/553
759+
// $this->addModule('NewDiscussionModule');
747760
$this->addModule('DiscussionFilterModule');
748-
// $this->addModule('CategoriesModule');
761+
// FIX: https://github.com/topcoder-platform/forums/issues/548
762+
// Show only for 'Public forums'
763+
$isGroupCategory = val('GroupID',$Category, false);
764+
if(gdn::session()->isValid() && $Category && !$isGroupCategory) {
765+
$this->addModule('CategoriesModule');
766+
}
749767
$this->addModule('BookmarkedModule');
750768
$this->addModule($CategoryFollowToggleModule);
751769

vanilla/applications/vanilla/controllers/class.discussioncontroller.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,15 @@ public function index($DiscussionID = '', $DiscussionStub = '', $Page = '') {
296296

297297
// Add modules
298298
$this->addModule('DiscussionFilterModule');
299-
$this->addModule('NewDiscussionModule');
300-
// $this->addModule('CategoriesModule');
299+
// $this->addModule('NewDiscussionModule');
300+
301+
// FIX: https://github.com/topcoder-platform/forums/issues/548
302+
// Show only for 'Public forums'
303+
$isGroupDiscussion = val('GroupID',$Category, false);
304+
if(gdn::session()->isValid() && !$isGroupDiscussion) {
305+
$this->addModule('CategoriesModule');
306+
}
307+
301308
$this->addModule('BookmarkedModule');
302309

303310
$this->CanEditComments = Gdn::session()->checkPermission('Vanilla.Comments.Edit', true, 'Category', 'any') && c('Vanilla.AdminCheckboxes.Use');
@@ -767,7 +774,7 @@ public function delete($discussionID, $target = '') {
767774
}
768775
}
769776

770-
$this->setData('Title', t('Delete Discussion'));
777+
$this->setData('Title', t('Delete'));
771778
$this->render();
772779
}
773780

vanilla/applications/vanilla/controllers/class.discussionscontroller.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ public function bookmarked($page = '0') {
458458

459459
// Add modules
460460
$this->addModule('DiscussionFilterModule');
461-
$this->addModule('NewDiscussionModule');
461+
// $this->addModule('NewDiscussionModule');
462462
// $this->addModule('CategoriesModule');
463463
$this->addModule('TagModule');
464464

vanilla/applications/vanilla/controllers/class.postcontroller.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ public function discussion($categoryUrlCode = '', $announce = '') {
158158

159159
$categoryData = $this->ShowCategorySelector ? CategoryModel::categories() : false;
160160

161+
$isGroupCategory = val('GroupID',$category, false);
162+
if($category && !$isGroupCategory) {
163+
$this->addModule('CategoriesModule');
164+
}
165+
166+
161167
// Check permission
162168
if (isset($this->Discussion)) {
163169
$this->setData('ShowPreviewButton', $this->Discussion->Format != 'Rich');
@@ -496,6 +502,7 @@ public function editDiscussion($discussionID = '', $draftID = '') {
496502
* @param int $DiscussionID Unique ID to add the comment to. If blank, this method will throw an error.
497503
*/
498504
public function comment($DiscussionID = '') {
505+
499506
// Get $DiscussionID from RequestArgs if valid
500507
if ($DiscussionID == '' && count($this->RequestArgs)) {
501508
if (is_numeric($this->RequestArgs[0])) {
@@ -1028,9 +1035,8 @@ public function editComment($commentID = '', $draftID = '') {
10281035
*/
10291036
public function initialize() {
10301037
// Add modules
1031-
$this->addModule('NewDiscussionModule');
1038+
// $this->addModule('NewDiscussionModule');
10321039
$this->addModule('DiscussionFilterModule');
1033-
// $this->addModule('CategoriesModule');
10341040
$this->addModule('BookmarkedModule');
10351041

10361042
parent::initialize();

vanilla/applications/vanilla/js/discussion.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ jQuery(document).ready(function($) {
5555
var messageContainer = $(frm).find('.editor-statusbar .message');
5656

5757
var currentVal = $(textbox).val();
58+
currentVal = gdn.normalizeText(currentVal);
5859
if(defaultValues.includes(currentVal) || currentVal.trim().length == 0) {
5960
$(editorContainer).addClass('error');
6061
$(messageContainer).text('Cannot post an empty message');

vanilla/applications/vanilla/js/home.js

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,41 @@ jQuery(document).ready(function ($) {
55
// active: 0, heightStyle: "content" ,
66
// icons: { "header": "icon icon-chevron-down", "activeHeader": "icon icon-chevron-up" }});
77

8-
var headers = $('.CategoryAccordion .accordion-header')
8+
var headers = $('.CategoryAccordion .accordion-header');
99

1010
// add the accordion functionality
1111
headers.click(function () {
12-
var panel = $(this).next()
13-
var isOpen = panel.is(':visible')
12+
var panel = $(this).next();
13+
var isOpen = panel.is(':visible');
1414
if (isOpen) {
15-
$(panel).parent().find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down')
16-
$(panel).parent().find('.CategoryAccordionHeader').removeClass('ui-state-active')
15+
$(panel).parent().find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down');
16+
$(panel).parent().find('.CategoryAccordionHeader').removeClass('ui-state-active');
1717
} else {
18-
$(panel).parent().find('.ui-accordion-header-icon').addClass('icon-chevron-up').removeClass('icon-chevron-down')
19-
$(panel).parent().find('.CategoryAccordionHeader').addClass('ui-state-active')
18+
$(panel).parent().find('.ui-accordion-header-icon').addClass('icon-chevron-up').removeClass('icon-chevron-down');
19+
$(panel).parent().find('.CategoryAccordionHeader').addClass('ui-state-active');
2020
}
2121

2222
//panel[isOpen? 'slideUp': 'slideDown']()
23-
panel[isOpen ? 'hide' : 'show']().trigger(isOpen ? 'hide' : 'show')
24-
25-
return false
23+
panel[isOpen ? 'hide' : 'show']().trigger(isOpen ? 'hide' : 'show');
24+
return false;
2625
})
2726

2827
// hook up the expand/collapse
29-
var hash = window.location.hash.substr(1)
28+
var hash = window.location.hash.substr(1);
3029
if (hash) {
30+
window.location.hash = '#' + hash;
3131
// Collapse other categories
32-
$('.CategoryAccordionHeader').removeClass('ui-state-active')
33-
$('.CategoryAccordionHeader').find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down')
34-
$('.ui-accordion-content').hide()
32+
$('.CategoryAccordionHeader').removeClass('ui-state-active');
33+
$('.CategoryAccordionHeader').find('.ui-accordion-header-icon').removeClass('icon-chevron-up').addClass('icon-chevron-down');
34+
$('.ui-accordion-content').hide();
3535

36-
$('#' + hash).find('.CategoryAccordionHeader').addClass('ui-state-active')
36+
$('#' + hash).find('.ui-accordion-content').show();
37+
$('#' + hash).find('.CategoryAccordionHeader').addClass('ui-state-active');
3738
$('#' + hash).find('.ui-accordion-header-icon').removeClass('icon-chevron-down').addClass('icon-chevron-up');
38-
$('#' + hash).find('.ui-accordion-content').show()
3939
} else {
4040
// Expand all categories
41-
$('.CategoryAccordionHeader').addClass('ui-state-active')
41+
$('.CategoryAccordionHeader').addClass('ui-state-active');
4242
$('.CategoryAccordionHeader').find('.ui-accordion-header-icon').removeClass('icon-chevron-down').addClass('icon-chevron-up');
43-
$('.ui-accordion-content').show()
43+
$('.ui-accordion-content').show();
4444
}
4545
})

0 commit comments

Comments
 (0)