From 52b8ea910487508125df7a76db7792dd43c6dcc0 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 20 Jun 2018 16:39:46 +1200 Subject: [PATCH 1/5] Add various recipe versions to Travis build matrix --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bd7316f..4fdf730 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,19 +4,19 @@ dist: trusty matrix: include: - php: 5.6 - env: DB=MYSQL PHPCS_TEST=1 PHPUNIT_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.0.x-dev PHPCS_TEST=1 PHPUNIT_TEST=1 - php: 7.0 - env: DB=PGSQL PHPUNIT_TEST=1 + env: DB=PGSQL INSTALLER_VERSION=4.1.x-dev PHPUNIT_TEST=1 - php: 7.1 - env: DB=MYSQL PHPUNIT_COVERAGE_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.2.x-dev PHPUNIT_COVERAGE_TEST=1 - php: 7.2 - env: DB=MYSQL PHPUNIT_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.x-dev PHPUNIT_TEST=1 before_script: - phpenv rehash - phpenv config-rm xdebug.ini - composer validate - - composer require silverstripe/installer:4.0.x-dev ezyang/htmlpurifier:* --no-update + - composer require silverstripe/installer:"$INSTALLER_VERSION" ezyang/htmlpurifier:* --no-update - if [[ $DB == PGSQL ]]; then composer require --no-update silverstripe/postgresql:2.0.x-dev; fi - composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile From 4e23771d7930e23dce7ed381e9b06a5500d3e288 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 20 Jun 2018 16:47:56 +1200 Subject: [PATCH 2/5] Add Team stub class to extra_dataobjects --- tests/CommentsGridFieldActionTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/CommentsGridFieldActionTest.php b/tests/CommentsGridFieldActionTest.php index 126ae47..f3d8d9a 100644 --- a/tests/CommentsGridFieldActionTest.php +++ b/tests/CommentsGridFieldActionTest.php @@ -25,6 +25,7 @@ class CommentsGridFieldActionTest extends SapphireTest protected static $extra_dataobjects = [ CommentableItem::class, + Team::class, ]; /** @var ArrayList */ From c7235e1c5d092e041b2956673fb2870665560184 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 20 Jun 2018 16:53:14 +1200 Subject: [PATCH 3/5] FIX Comments GridField tests now use their own test stubs --- tests/CommentsGridFieldActionTest.php | 2 +- tests/Stubs/Cheerleader.php | 19 +++++++++++++++ tests/Stubs/Player.php | 24 ++++++++++++++++++ tests/Stubs/Team.php | 35 +++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 tests/Stubs/Cheerleader.php create mode 100644 tests/Stubs/Player.php create mode 100644 tests/Stubs/Team.php diff --git a/tests/CommentsGridFieldActionTest.php b/tests/CommentsGridFieldActionTest.php index f3d8d9a..8558df2 100644 --- a/tests/CommentsGridFieldActionTest.php +++ b/tests/CommentsGridFieldActionTest.php @@ -8,13 +8,13 @@ use SilverStripe\Comments\Admin\CommentsGridFieldAction; use SilverStripe\Comments\Admin\CommentsGridFieldConfig; use SilverStripe\Comments\Model\Comment; use SilverStripe\Comments\Tests\Stubs\CommentableItem; +use SilverStripe\Comments\Tests\Stubs\Team; use SilverStripe\Control\Controller; use SilverStripe\Dev\SapphireTest; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Form; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldDeleteAction; -use SilverStripe\Forms\Tests\GridField\GridFieldTest\Team; use SilverStripe\ORM\ArrayList; use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; diff --git a/tests/Stubs/Cheerleader.php b/tests/Stubs/Cheerleader.php new file mode 100644 index 0000000..25a5f87 --- /dev/null +++ b/tests/Stubs/Cheerleader.php @@ -0,0 +1,19 @@ + 'Varchar', + ]; + + private static $has_one = [ + 'Team' => Team::class, + ]; +} diff --git a/tests/Stubs/Player.php b/tests/Stubs/Player.php new file mode 100644 index 0000000..0720b30 --- /dev/null +++ b/tests/Stubs/Player.php @@ -0,0 +1,24 @@ + 'Varchar', + 'Email' => 'Varchar', + ); + + private static $belongs_many_many = [ + 'Teams' => Team::class, + ]; +} diff --git a/tests/Stubs/Team.php b/tests/Stubs/Team.php new file mode 100644 index 0000000..985dc60 --- /dev/null +++ b/tests/Stubs/Team.php @@ -0,0 +1,35 @@ + 'Varchar', + 'City' => 'Varchar', + ); + + private static $many_many = [ + 'Players' => Player::class, + ]; + + private static $has_many = [ + 'Cheerleaders' => Cheerleader::class, + ]; + + private static $searchable_fields = [ + 'Name', + 'City', + 'Cheerleaders.Name', + ]; + + public function canView($member = null) + { + return true; + } +} From 77f47af5cba379a7275dab3ef534a8026d163c57 Mon Sep 17 00:00:00 2001 From: pjayme Date: Mon, 25 Jun 2018 11:31:46 +1200 Subject: [PATCH 4/5] Added JS fix for reply forms - fixes issue where the submit button breaks due to incorrect use of the jQuery validate function --- javascript/CommentsInterface.js | 44 +++++++++++++++++---------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/javascript/CommentsInterface.js b/javascript/CommentsInterface.js index 23812f7..231266c 100755 --- a/javascript/CommentsInterface.js +++ b/javascript/CommentsInterface.js @@ -6,31 +6,33 @@ /** * Enable form validation */ - $('.comments-holder-container form').validate({ + $('.comments-holder-container form').each(function() { + $(this).validate({ - // Ignore hidden elements in this form - ignore: ':hidden', + // Ignore hidden elements in this form + ignore: ':hidden', - // Use default 'required' for error labels - errorClass: "required", + // Use default 'required' for error labels + errorClass: "required", - // Use span instead of labels - errorElement: "span", + // Use span instead of labels + errorElement: "span", - // On error, scroll to the invalid element - invalidHandler : function(form, validator){ - $('html, body').animate({ - scrollTop: $(validator.errorList[0].element).offset().top - 30 - }, 200); - }, + // On error, scroll to the invalid element + invalidHandler : function(form, validator){ + $('html, body').animate({ + scrollTop: $(validator.errorList[0].element).offset().top - 30 + }, 200); + }, - // Ensure any new error message has the correct class and placement - errorPlacement: function(error, element) { - error - .addClass('message') - .insertAfter(element); - } - }); + // Ensure any new error message has the correct class and placement + errorPlacement: function(error, element) { + error + .addClass('message') + .insertAfter(element); + } + }); + }); /** * Hide comment reply forms by default (unless visiting via permalink) @@ -56,7 +58,7 @@ // Prevent focus e.preventDefault(); - + if(form.is(':visible')) { allForms.slideUp(); } else { From c0a01dbc91ace606e3cc5ab6fa0e16c6dd41b9aa Mon Sep 17 00:00:00 2001 From: micmania1 Date: Tue, 3 Jul 2018 11:00:40 +1200 Subject: [PATCH 5/5] BUGFIX created way of knowing whether user has permission to post --- src/Model/Comment.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Model/Comment.php b/src/Model/Comment.php index bc2c3d2..0dd6eec 100755 --- a/src/Model/Comment.php +++ b/src/Model/Comment.php @@ -765,6 +765,20 @@ class Comment extends DataObject return $notSpam && (!$maxLevel || $this->Depth < $maxLevel); } + /** + * Proxy for checking whether the has permission to comment on the comment parent. + * + * @param Member $member Member to check + * + * @return boolean + */ + public function canPostComment($member = null) + { + return $this->Parent() + && $this->Parent()->exists() + && $this->Parent()->canPostComment($member); + } + /** * Returns the list of all replies *