From c6a2fa190510e01791155e06e85a466bbc9dbb04 Mon Sep 17 00:00:00 2001 From: Daniel Rotter Date: Mon, 20 Jan 2020 14:36:08 +0100 Subject: [PATCH 1/2] Introduce proper limit for snippet content type and use pagination (#4991) --- .../Resources/public/dist/components/snippet-content/main.js | 2 +- .../Resources/public/js/components/snippet-content/main.js | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Sulu/Bundle/SnippetBundle/Resources/public/dist/components/snippet-content/main.js b/src/Sulu/Bundle/SnippetBundle/Resources/public/dist/components/snippet-content/main.js index 513384cb5f4..ed9e75a0e4c 100644 --- a/src/Sulu/Bundle/SnippetBundle/Resources/public/dist/components/snippet-content/main.js +++ b/src/Sulu/Bundle/SnippetBundle/Resources/public/dist/components/snippet-content/main.js @@ -1 +1 @@ -define([],function(){"use strict";var a={eventNamespace:"sulu.snippets",resultKey:"snippets",snippetType:null,dataAttribute:"snippets",dataDefault:[],actionIcon:"fa-file-text-o",hidePositionElement:!0,hideConfigButton:!0,locale:null,navigateEvent:"sulu.router.navigate",translations:{noContentSelected:"snippet-content.nosnippets-selected",addSnippets:"snippet-content.add"}},b={data:function(a){return['
','
','
','
',"
",'
','
',"
","
"].join("")},contentItem:function(a,b){return['',' ',b,"",""].join("")}},c=function(a){return"#"+this.options.ids[a]},d=function(){this.sandbox.on("husky.overlay.snippet-content."+this.options.instanceName+".add.initialized",e.bind(this)),this.sandbox.on("husky.overlay.snippet-content."+this.options.instanceName+".add.opened",f.bind(this))},e=function(){var a=this.getData();this.sandbox.start([{name:"search@husky",options:{appearance:"white small",instanceName:this.options.instanceName+"-search",el:c.call(this,"search")}},{name:"datagrid@husky",options:{url:this.options.url,preselected:a,resultKey:this.options.resultKey,sortable:!1,columnOptionsInstanceName:"",el:c.call(this,"snippetList"),searchInstanceName:this.options.instanceName+"-search",paginationOptions:{dropdown:{limit:99999}},viewOptions:{table:{selectItem:{type:"checkbox"},removeRow:!1,editable:!1,validation:!1,addRowTop:!1,showHead:!0,contentContainer:"#content",highlightSelected:!0}},matchings:[{content:"Title",width:"100%",name:"title",editable:!0,sortable:!0,type:"title",validation:{required:!1}}]}}])},f=function(){var a=this.getData()||[];this.sandbox.emit("husky.datagrid.selected.update",a)},g=function(){this.sandbox.dom.on(this.$el,"click",function(){return!1}.bind(this),".search-icon"),this.sandbox.dom.on(this.$el,"keydown",function(a){return 13===event.keyCode?(a.preventDefault(),a.stopPropagation(),!1):void 0}.bind(this),".search-input"),this.sandbox.dom.on(this.$el,"click",function(a){var b=this.sandbox.dom.data(a.currentTarget,"id");return this.sandbox.emit(this.options.navigateEvent,"snippet/snippets/"+this.options.locale+"/edit:"+b),!1}.bind(this),"a.link"),this.sandbox.on(this.DATA_RETRIEVED(),j.bind(this))},h=function(){var a=this.sandbox.dom.createElement("
");this.sandbox.dom.append(this.$el,a),this.sandbox.start([{name:"overlay@husky",options:{triggerEl:this.$addButton,cssClass:"snippet-content-overlay",el:a,removeOnClose:!1,container:this.$el,instanceName:"snippet-content."+this.options.instanceName+".add",skin:"medium",slides:[{title:this.sandbox.translate(this.options.translations.addSnippets),cssClass:"snippet-content-overlay-add",data:b.data(this.options),okCallback:i.bind(this)}]}}])},i=function(){this.sandbox.emit("husky.datagrid.items.get-selected",function(a){this.setData(a)}.bind(this))},j=function(a){for(var b=this.getData(),c=[],d=0;d','
','
','
',"
",'
','
',"
","
"].join("")},contentItem:function(a,b){return['',' ',b,"",""].join("")}},c=function(a){return"#"+this.options.ids[a]},d=function(){this.sandbox.on("husky.overlay.snippet-content."+this.options.instanceName+".add.initialized",e.bind(this)),this.sandbox.on("husky.overlay.snippet-content."+this.options.instanceName+".add.opened",f.bind(this))},e=function(){var a=this.getData();this.sandbox.start([{name:"search@husky",options:{appearance:"white small",instanceName:this.options.instanceName+"-search",el:c.call(this,"search")}},{name:"datagrid@husky",options:{url:this.options.url,preselected:a,resultKey:this.options.resultKey,sortable:!1,columnOptionsInstanceName:"",el:c.call(this,"snippetList"),searchInstanceName:this.options.instanceName+"-search",viewOptions:{table:{selectItem:{type:"checkbox"},removeRow:!1,editable:!1,validation:!1,addRowTop:!1,showHead:!0,contentContainer:"#content",highlightSelected:!0}},matchings:[{content:"Title",width:"100%",name:"title",editable:!0,sortable:!0,type:"title",validation:{required:!1}}]}}])},f=function(){var a=this.getData()||[];this.sandbox.emit("husky.datagrid.selected.update",a)},g=function(){this.sandbox.dom.on(this.$el,"click",function(){return!1}.bind(this),".search-icon"),this.sandbox.dom.on(this.$el,"keydown",function(a){return 13===event.keyCode?(a.preventDefault(),a.stopPropagation(),!1):void 0}.bind(this),".search-input"),this.sandbox.dom.on(this.$el,"click",function(a){var b=this.sandbox.dom.data(a.currentTarget,"id");return this.sandbox.emit(this.options.navigateEvent,"snippet/snippets/"+this.options.locale+"/edit:"+b),!1}.bind(this),"a.link"),this.sandbox.on(this.DATA_RETRIEVED(),j.bind(this))},h=function(){var a=this.sandbox.dom.createElement("
");this.sandbox.dom.append(this.$el,a),this.sandbox.start([{name:"overlay@husky",options:{triggerEl:this.$addButton,cssClass:"snippet-content-overlay",el:a,removeOnClose:!1,container:this.$el,instanceName:"snippet-content."+this.options.instanceName+".add",skin:"medium",slides:[{title:this.sandbox.translate(this.options.translations.addSnippets),cssClass:"snippet-content-overlay-add",data:b.data(this.options),okCallback:i.bind(this)}]}}])},i=function(){this.sandbox.emit("husky.datagrid.items.get-selected",function(a){this.setData(a)}.bind(this))},j=function(a){for(var b=this.getData(),c=[],d=0;d Date: Wed, 22 Jan 2020 07:56:46 +0100 Subject: [PATCH 2/2] Fix assigning more than 10 teasers when using elasticsearch (#4998) * Fix assigning more than 10 teasers when using elasticsearch * Fix TestUserProvider Co-authored-by: Alexander Schranz --- CHANGELOG.md | 3 +++ src/Sulu/Bundle/ContentBundle/Teaser/ContentTeaserProvider.php | 1 + .../Tests/Unit/Teaser/ContentTeaserProviderTest.php | 1 + src/Sulu/Bundle/TestBundle/Testing/TestUserProvider.php | 3 +-- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff5f572e3ee..bc54abe4bd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ CHANGELOG for Sulu ================== +* dev-release/1.6 + * BUGFIX #4998 [ContentBundle] Fix assigning more than 10 teasers when using elasticsearch + * 1.6.30 (2020-01-13) * ENHANCEMENT #4968 [MediaBundle] Improve performance for one layered images diff --git a/src/Sulu/Bundle/ContentBundle/Teaser/ContentTeaserProvider.php b/src/Sulu/Bundle/ContentBundle/Teaser/ContentTeaserProvider.php index 74b05eb1980..0abc327d54a 100644 --- a/src/Sulu/Bundle/ContentBundle/Teaser/ContentTeaserProvider.php +++ b/src/Sulu/Bundle/ContentBundle/Teaser/ContentTeaserProvider.php @@ -61,6 +61,7 @@ function($item) { ->createSearch(implode(' OR ', $statements)) ->indexes($this->getPageIndexes()) ->locale($locale) + ->setLimit(count($ids)) ->execute(); /** @var QueryHit $item */ diff --git a/src/Sulu/Bundle/ContentBundle/Tests/Unit/Teaser/ContentTeaserProviderTest.php b/src/Sulu/Bundle/ContentBundle/Tests/Unit/Teaser/ContentTeaserProviderTest.php index d24263aa2e3..9555f664505 100644 --- a/src/Sulu/Bundle/ContentBundle/Tests/Unit/Teaser/ContentTeaserProviderTest.php +++ b/src/Sulu/Bundle/ContentBundle/Tests/Unit/Teaser/ContentTeaserProviderTest.php @@ -83,6 +83,7 @@ function($searchQuery) use ($ids) { )->willReturn($this->search->reveal())->shouldBeCalled(); $this->search->indexes(['page_sulu_io_published'])->willReturn($this->search->reveal())->shouldBeCalled(); $this->search->locale('de')->willReturn($this->search->reveal())->shouldBeCalled(); + $this->search->setLimit(2)->willReturn($this->search->reveal())->shouldBeCalled(); $this->search->execute()->willReturn( [$this->createQueryHit($ids[0], $data[$ids[0]]), $this->createQueryHit($ids[1], $data[$ids[1]])] ); diff --git a/src/Sulu/Bundle/TestBundle/Testing/TestUserProvider.php b/src/Sulu/Bundle/TestBundle/Testing/TestUserProvider.php index 18d1868a734..a62e0e0c217 100644 --- a/src/Sulu/Bundle/TestBundle/Testing/TestUserProvider.php +++ b/src/Sulu/Bundle/TestBundle/Testing/TestUserProvider.php @@ -12,7 +12,6 @@ namespace Sulu\Bundle\TestBundle\Testing; use Doctrine\ORM\EntityManager; -use Sulu\Bundle\SecurityBundle\Entity\User; use Sulu\Component\Contact\Model\ContactRepositoryInterface; use Sulu\Component\Security\Authentication\UserRepositoryInterface; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; @@ -141,7 +140,7 @@ public function refreshUser(UserInterface $user) */ public function supportsClass($class) { - return $class instanceof UserInterface; + return is_subclass_of($class, UserInterface::class); } /**