Skip to content

Commit

Permalink
Creación de lista UIComponent en administrador de Magento P 3/3
Browse files Browse the repository at this point in the history
 Creación de elementos no obligatorios

1.- actualizamos version de modulo a 0.3.0
	mas info de como actualizar aqui -> 08703f0

2.- actualízamos , compilamos y asignamos permisos
	php bin/magento setup:upgrade
	php bin/magento setup:di:compile
	chmod -R 777 var/ pub/
  • Loading branch information
PerezContrerasLuis committed Jan 21, 2022
1 parent 076501b commit 8a4b633
Show file tree
Hide file tree
Showing 4 changed files with 160 additions and 1 deletion.
25 changes: 25 additions & 0 deletions code/Pfay/Contacts/Controller/Adminhtml/Test/MassDelete.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php
namespace Pfay\Contacts\Controller\Adminhtml\Test;
use Magento\Backend\App\Action;
use Pfay\Contacts\Model\Contact;

class MassDelete extends \Magento\Backend\App\Action
{
public function execute()
{
$ids = $this->getRequest()->getParam('selected', []);
if (!is_array($ids) || !count($ids)) {
$resultRedirect = $this->resultRedirectFactory->create();
return $resultRedirect->setPath('*/*/index', array('_current' => true));
}
foreach ($ids as $id) {
if ($contact = $this->_objectManager->create(Contact::class)->load($id)) {
$contact->delete();
}
}
$this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', count($ids)));

$resultRedirect = $this->resultRedirectFactory->create();
return $resultRedirect->setPath('*/*/index', array('_current' => true));
}
}
14 changes: 14 additions & 0 deletions code/Pfay/Contacts/Setup/UpgradeSchema.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,20 @@ public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $con
'default' => '0',
'comment' => 'Comment'
]);
}else if (version_compare($context->getVersion(), '0.3.0', '<')) {

/**
* Add full text index to our table department
*/

$tableName = $setup->getTable('pfay_contacts');
$fullTextIntex = array('name','email'); // Column with fulltext index, you can put multiple fields
$setup->getConnection()->addIndex(
$tableName,
$setup->getIdxName($tableName, $fullTextIntex, \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_FULLTEXT),
$fullTextIntex,
\Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_FULLTEXT
);
}
$setup->endSetup();
}
Expand Down
2 changes: 1 addition & 1 deletion code/Pfay/Contacts/etc/module.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Pfay_Contacts" setup_version="0.2.0">
<module name="Pfay_Contacts" setup_version="0.3.0">
<sequence>
<module name="Magento_Cms"/>
</sequence>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,125 @@
</argument>
</actionsColumn>
</columns>

<!-- we put the others elements here ( NON-MONDATORY ) -->
<container name="listing_top">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="template" xsi:type="string">ui/grid/toolbar</item>
</item>
</argument>
<!-- we put the others elements here -->

<!-- The columns controls is an element that allows you to manage the columns of your grid on the fly, you can add/remove a column/reset the grid -->
<container name="columns_controls">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="columnsData" xsi:type="array">
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing.contacts_test_columns</item>
</item>
<item name="component" xsi:type="string">Magento_Ui/js/grid/controls/columns</item>
<item name="displayArea" xsi:type="string">dataGridActions</item>
</item>
</argument>
</container>

<!-- The bookmarks allows you to save the state of the listing which you modified with the element "columns_control" previously created -->
<bookmark name="bookmarks">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item>
<item name="displayArea" xsi:type="string">dataGridActions</item>
<item name="storageConfig" xsi:type="array">
<item name="saveUrl" xsi:type="url" path="*/*/save"/>
<item name="deleteUrl" xsi:type="url" path="*/*/delete"/>
<item name="namespace" xsi:type="string">contact_test_listing</item>
</item>
</item>
</argument>
</bookmark>

<!-- The pagination of the grid -->
<paging name="listing_paging">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="storageConfig" xsi:type="array">
<!-- we put here the path to the bookmarks element -->
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.bookmarks</item>
<item name="namespace" xsi:type="string">current.paging</item>
</item>
<!-- we put here the path to the element pfay_contact_ids of contacts_test_columns element -->
<item name="selectProvider" xsi:type="string">contacts_test_listing.contacts_test_listing.contacts_test_columns.pfay_contacts_id</item>
<item name="displayArea" xsi:type="string">bottom</item>
</item>
</argument>
</paging>

<!-- Magento2 grid filters -->
<filters name="listing_filters">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="storageConfig" xsi:type="array">
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.bookmarks</item>
<item name="namespace" xsi:type="string">curren.filters</item>
</item>
<item name="childDefaults" xsi:type="array">
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.listing_filters</item>
<item name="imports" xsi:type="array">
<item name="visible" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item>
</item>
</item>
</item>
</argument>
</filters>

<!-- Mass Actions -->
<selectionsColumn name="ids">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<!-- define which field will be used as ID -->
<item name="indexField" xsi:type="string">pfay_contacts_id</item>
</item>
</argument>
</selectionsColumn>
<massaction name="listing_massaction">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<!-- we put here the path to the element pfay_contact_ids of contacts_test_columns element -->
<item name="selectProvider" xsi:type="string">contacts_test_listing.contacts_test_listing.contacts_test_columns.ids</item>
<item name="displayArea" xsi:type="string">bottom</item>
<item name="indexField" xsi:type="string">pfay_contacts_id</item>
</item>
</argument>
<action name="delete">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">delete</item>
<item name="label" xsi:type="string" translate="true">Delete Selected</item>
<item name="url" xsi:type="url" path="*/*/massDelete"/>
<item name="confirm" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Delete all selected contacts</item>
<item name="message" xsi:type="string" translate="true">Do you want to delete all the selected contacts?</item>
</item>
</item>
</argument>
</action>
</massaction>

<!-- Filter Search -->
<filterSearch name="fulltext">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing_data_source</item>
<item name="chipsProvider" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.listing_filters_chips</item>
<item name="storageConfig" xsi:type="array">
<item name="provider" xsi:type="string">contacts_test_listing.contacts_test_listing.listing_top.bookmarks</item>
<item name="namespace" xsi:type="string">current.search</item>
</item>
</item>
</argument>
</filterSearch>

</container>

</listing>

0 comments on commit 8a4b633

Please sign in to comment.