-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch '2.0-develop' into used-in-products-filter
- Loading branch information
Showing
8 changed files
with
195 additions
and
0 deletions.
There are no files selected for viewing
58 changes: 58 additions & 0 deletions
58
MediaGalleryUi/Model/SearchCriteria/CollectionProcessor/FilterProcessor/Duplicated.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
<?php | ||
/** | ||
* Copyright © Magento, Inc. All rights reserved. | ||
* See COPYING.txt for license details. | ||
*/ | ||
declare(strict_types=1); | ||
|
||
namespace Magento\MediaGalleryUi\Model\SearchCriteria\CollectionProcessor\FilterProcessor; | ||
|
||
use Magento\Framework\Api\Filter; | ||
use Magento\Framework\Api\SearchCriteria\CollectionProcessor\FilterProcessor\CustomFilterInterface; | ||
use Magento\Framework\App\ResourceConnection; | ||
use Magento\Framework\Data\Collection\AbstractDb; | ||
use Magento\Framework\DB\Select; | ||
|
||
/** | ||
* Custom filter to filter collection by duplicated hash values | ||
*/ | ||
class Duplicated implements CustomFilterInterface | ||
{ | ||
|
||
/** | ||
* @var ResourceConnection | ||
*/ | ||
private $connection; | ||
|
||
/** | ||
* @param ResourceConnection $resource | ||
*/ | ||
public function __construct(ResourceConnection $resource) | ||
{ | ||
$this->connection = $resource; | ||
} | ||
|
||
/** | ||
* @inheritDoc | ||
*/ | ||
public function apply(Filter $filter, AbstractDb $collection): bool | ||
{ | ||
$value = $filter->getValue(); | ||
if ($value) { | ||
$collection->getSelect() | ||
->where('main_table.hash IN ('. $this->getDuplicatedSqlPart() . ' HAVING count(*) > 1)'); | ||
} | ||
return true; | ||
} | ||
|
||
/** | ||
* Return sql part of duplicated values. | ||
*/ | ||
private function getDuplicatedSqlPart(): Select | ||
{ | ||
return $this->connection->getConnection() | ||
->select() | ||
->from($this->connection->getTableName('media_gallery_asset'), ['hash']) | ||
->group(['hash']); | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
...eryUi/Test/Mftf/ActionGroup/AdminEnhancedMediaGalleryApplyDuplicatedFilterActionGroup.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
/** | ||
* Copyright © Magento, Inc. All rights reserved. | ||
* See COPYING.txt for license details. | ||
*/ | ||
--> | ||
|
||
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> | ||
<actionGroup name="AdminEnhancedMediaGalleryApplyDuplicatedFilterActionGroup"> | ||
<annotations> | ||
<description>Applies duplicated images filter to the media gallery grid</description> | ||
</annotations> | ||
|
||
<click selector="{{AdminEnhancedMediaGalleryFiltersSection.duplicatedFilterCheckbox}}" stepKey="clickShowDuplicates"/> | ||
</actionGroup> | ||
</actionGroups> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
MediaGalleryUi/Test/Mftf/Test/AdminEnhancedMediaGalleryDuplicatedImagesTest.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
/** | ||
* Copyright © Magento, Inc. All rights reserved. | ||
* See COPYING.txt for license details. | ||
*/ | ||
--> | ||
|
||
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> | ||
<test name="AdminEnhancedMediaGalleryDuplicatedImagesTest"> | ||
<annotations> | ||
<features value="MediaGallery"/> | ||
<useCaseId value="https://github.com/magento/adobe-stock-integration/issues/1500"/> | ||
<title value="User can filter duplicated images"/> | ||
<stories value="[Story 59] User finds image duplicates"/> | ||
<testCaseId value="https://studio.cucumber.io/projects/131313/test-plan/folders/1054245/scenarios/4753539"/> | ||
<description value="User can filter duplicated images"/> | ||
<severity value="CRITICAL"/> | ||
<group value="media_gallery_ui"/> | ||
</annotations> | ||
<before> | ||
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/> | ||
<actionGroup ref="AdminOpenMediaGalleryForPageNoEditorActionGroup" stepKey="openMediaGalleryForPage"/> | ||
</before> | ||
<after> | ||
<actionGroup ref="AdminEnhancedMediaGalleryEnableMassActionModeActionGroup" stepKey="enableMassActionToDeleteImages"/> | ||
<actionGroup ref="AdminEnhancedMediaGallerySelectImageForMassActionActionGroup" stepKey="selectFirstImageToDelete"> | ||
<argument name="imageName" value="{{ImageUpload.fileName}}"/> | ||
</actionGroup> | ||
<actionGroup ref="AdminEnhancedMediaGallerySelectImageForMassActionActionGroup" stepKey="selectSecondImageToDelete"> | ||
<argument name="imageName" value="{{ImageUpload_1.fileName}}"/> | ||
</actionGroup> | ||
<actionGroup ref="AdminEnhancedMediaGalleryClickDeleteImagesButtonActionGroup" stepKey="clikDeleteSelectedButton"/> | ||
<actionGroup ref="AdminEnhancedMediaGalleryConfirmDeleteImagesActionGroup" stepKey="deleteImages"/> | ||
</after> | ||
|
||
<actionGroup ref="AdminEnhancedMediaGalleryUploadImageActionGroup" stepKey="uploadImage"> | ||
<argument name="image" value="ImageUpload"/> | ||
</actionGroup> | ||
<actionGroup ref="AdminEnhancedMediaGalleryUploadImageActionGroup" stepKey="uploadSecondImage"> | ||
<argument name="image" value="ImageUpload_1"/> | ||
</actionGroup> | ||
|
||
<actionGroup ref="AdminEnhancedMediaGalleryExpandFilterActionGroup" stepKey="expandFilters"/> | ||
<actionGroup ref="AdminEnhancedMediaGalleryApplyDuplicatedFilterActionGroup" stepKey="SelectDuplicatedFilter"/> | ||
<actionGroup ref="AdminEnhancedMediaGalleryApplyFiltersActionGroup" stepKey="applyFilters"/> | ||
|
||
<actionGroup ref="AdminMediaGalleryAssertImageInGridActionGroup" stepKey="assertFirstImageInGrid"> | ||
<argument name="image" value="ImageUpload"/> | ||
</actionGroup> | ||
<actionGroup ref="AdminMediaGalleryAssertImageInGridActionGroup" stepKey="assertSecondImageInGrid"> | ||
<argument name="image" value="ImageUpload_1"/> | ||
</actionGroup> | ||
</test> | ||
</tests> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
MediaGalleryUi/view/adminhtml/web/template/grid/filter/checkbox.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<!-- | ||
/** | ||
* Copyright © Magento, Inc. All rights reserved. | ||
* See COPYING.txt for license details. | ||
*/ | ||
--> | ||
<div class="admin__field admin__media-gallery-image-checkbox" visible="visible" css="$data.additionalClasses"> | ||
<div class="admin__field-control"> | ||
<label class="admin__form-field-label" if="$data.label" attr="for: uid"> | ||
<span translate="label" attr="'data-config-scope': $data.scopeLabel" /> | ||
</label> | ||
</div> | ||
<div class="admin__field admin__field-option"> | ||
<input type="checkbox" | ||
class="admin__control-checkbox" | ||
ko-checked="$data.checked" | ||
disable="disabled" | ||
ko-value="value" | ||
hasFocus="focused" | ||
attr="id: uid, name: inputName"/> | ||
|
||
<label class="admin__field-label" text="description" attr="for: uid"/> | ||
</div> | ||
</div> |