diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe6136eae11b77787726d44f517df9e536c0cdb..a1d98332be0d5c39a997f7ce570933320e08c8e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,42 @@ +0.74.0-beta14 +============= +* Framework improvements: + * Introduced an ability to uninstall modules which were installed via composer (bin/magento module:uninstall <moduleName>) + * Introduced an ability to uninstall themes (bin/magento theme:uninstall <themeName>) + * Introduced an ability to backup and rollback DB and Media via CLI (bin/magento setup:backup, options are --code, --db or --media) + * Introduced an ability to uninstall language packages (bin/magento i18n:uninstall <languagePack>) + * Introduced API notation for the following modules: Backend, Backup, Cron, Log, PageCache + * Added join processors to search services, joined config for services with extension attributes + * Renamed hidden_tax to discount_tax_compensation + * The customer address entity table was transformed from EAV into a flat model to minimize database operations +* Fixed bugs: + * Fixed an issue where Setup Wizard failed on readiness check when Magento was deployed by composer create-project + * Fixed the local file path disclosure when trying to browse image cache directory + * Fixed an issue where development errors resulted in too many redirects + * Fixed an integration test failure in Reports ViewedTest + * Fixed an issue where it was impossible to save existent Grouped Product with no child items + * Fixed an issue where message "We don't have as many "conf1" as you requested" appeared + * Fixed an issue where second product from bundle product was ordered as separate item after checkout + * Fixed an issue where configs for payments and shippings were not encrypted + * Fixed an issue where Table Rates shipping method did not work + * Fixed an issue where admin could not set locale properly on Account page + * Fixed incomplete generated results of single tenant compiler + * Fixed an issue with full page caching where one set of prices was cached for all customers + * Fixed incorrect urls for private content + * Fixed an issue where it was not possible to assign a product link to another product using API + * Fixed an issue where zipcode was not displayed as required field on Create New Order page + * Fixed the Sample Data re-installation + * Fixed random fails on inventory tab for test CreateSimpleProductEntityTest +* Tests: + * Covered various modules with unit tests + * Functional tests fixed and maintained +* GitHub issues: + * [#1156](https://github.com/magento/magento2/pull/1156) -- Moves common code to all auto-generated Interceptor classes into a trait + * [#1206](https://github.com/magento/magento2/pull/1206) -- Allow modules to live outside of app/code directory + * [#1245](https://github.com/magento/magento2/pull/1245) -- Unable to save product per website wise + * [#1347](https://github.com/magento/magento2/pull/1347) -- Fixed failing Install during integration tests (MAGETWO-38482) + * [#1368](https://github.com/magento/magento2/pull/1368) -- Fix typo in getCurrentCategoryKey + 0.74.0-beta13 ============= * Framework improvements: diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json index d26dfd7372721000e9973b16a3ea720e1e09a6e5..5ae1d3e4e2009835a572a2c9081ee74619532b51 100644 --- a/app/code/Magento/AdminNotification/composer.json +++ b/app/code/Magento/AdminNotification/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/AdvancedPricingImportExport/composer.json b/app/code/Magento/AdvancedPricingImportExport/composer.json index c8b52c1509eb996357137da8f799be5d85c864d7..3e7abff2e19eca58d7d762c6f90932188af3aef6 100644 --- a/app/code/Magento/AdvancedPricingImportExport/composer.json +++ b/app/code/Magento/AdvancedPricingImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-catalog-import-export": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-catalog-import-export": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json index 9225d004e7ce2f5753e0f21d8f95ca2fb7cbe9cf..9ce77947a0b214ceb0d0dd04c9e35f6e6c602ca2 100644 --- a/app/code/Magento/Authorization/composer.json +++ b/app/code/Magento/Authorization/composer.json @@ -3,12 +3,12 @@ "description": "Authorization module provides access to Magento ACL functionality.", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json index b7e2b7bc15ba6f54e72cc1d6b084c18876592c52..b2b20216cf652a430d51f44492332e150011cd7d 100644 --- a/app/code/Magento/Backend/composer.json +++ b/app/code/Magento/Backend/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-developer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-cron": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-reports": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-user": "0.74.0-beta13", - "magento/module-backup": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-translation": "0.74.0-beta13", - "magento/module-require-js": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-developer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-cron": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-reports": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-user": "0.74.0-beta14", + "magento/module-backup": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-translation": "0.74.0-beta14", + "magento/module-require-js": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json index 30ca528748ce5de5d93f6cf933d2b5bc8bc24cd1..74b0a704e1de9374392c01a64e69b075fc416fde 100644 --- a/app/code/Magento/Backup/composer.json +++ b/app/code/Magento/Backup/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-cron": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-cron": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json index ddc09411834f50f6715db4ad8103539915f34a44..f3017a3a8dda032fb32a79cff12622d3cb601bc2 100644 --- a/app/code/Magento/Bundle/composer.json +++ b/app/code/Magento/Bundle/composer.json @@ -3,28 +3,28 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-catalog-rule": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-gift-message": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-catalog-rule": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-gift-message": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-webapi": "0.74.0-beta13" + "magento/module-webapi": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/BundleImportExport/composer.json b/app/code/Magento/BundleImportExport/composer.json index ddbc85cb67cb1d20f44a4bdb9c64ab3bf44f0127..78b23b0ff876b31caff7359c35e625ee986e6100 100755 --- a/app/code/Magento/BundleImportExport/composer.json +++ b/app/code/Magento/BundleImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-catalog-import-export": "0.74.0-beta13", - "magento/module-bundle": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-catalog-import-export": "0.74.0-beta14", + "magento/module-bundle": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CacheInvalidate/composer.json b/app/code/Magento/CacheInvalidate/composer.json index 5045f5b065cb0b6b80ecc9810dd84ed828bc7c26..5f5a8b2ce39bfa5fff3162892d333dcbd8c1659f 100644 --- a/app/code/Magento/CacheInvalidate/composer.json +++ b/app/code/Magento/CacheInvalidate/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-page-cache": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-page-cache": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json index 8e61f79ac764e5f722d5de600b515d27f5abc4be..044ade39edc271c3b8d5d1b4f9aebcb1cc740e90 100644 --- a/app/code/Magento/Captcha/composer.json +++ b/app/code/Magento/Captcha/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Category.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Category.php index 54a51a1a55148aee7edeb0d7fb509d7175b408e4..ee730b9be8157e2d794ff954d9e173676cf4b32b 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Category.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Category.php @@ -132,7 +132,7 @@ class Category extends \Magento\Framework\Data\Form\Element\Multiselect 'id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, - 'onclick' => 'jQuery("#new-category").trigger("openModal")', + 'onclick' => 'jQuery("#new-category").modal("openModal")', 'disabled' => $this->getDisabled(), ] ); diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json index 2c1ac69b4bbf736b53a62ea9d6387171ece6e7f4..7c1d49431e273833b821bae24c446d3364c6b458 100644 --- a/app/code/Magento/Catalog/composer.json +++ b/app/code/Magento/Catalog/composer.json @@ -3,37 +3,37 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-log": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-msrp": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-catalog-rule": "0.74.0-beta13", - "magento/module-product-alert": "0.74.0-beta13", - "magento/module-url-rewrite": "0.74.0-beta13", - "magento/module-catalog-url-rewrite": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-log": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-msrp": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-catalog-rule": "0.74.0-beta14", + "magento/module-product-alert": "0.74.0-beta14", + "magento/module-url-rewrite": "0.74.0-beta14", + "magento/module-catalog-url-rewrite": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-cookie": "0.74.0-beta13" + "magento/module-cookie": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js index 552e6a3a70ee729d5bcc8367b3f50312d5061adf..d70f2e17193afe202495b505a22cf26416dbdae7 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js @@ -111,7 +111,7 @@ define([ $('#new_category_name, #new_category_parent-suggest').val(''); $suggest.val(''); clearParentCategory(); - widget.element.trigger('closeModal'); + $(widget.element).modal('closeModal'); } else { $('#new_category_messages').html(data.messages); } diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json index fe82fc10d1355d83dbc6a71cbe7ec882504f4f0d..ca381cabc50404db10ec64a2c7e635b69124c128 100644 --- a/app/code/Magento/CatalogImportExport/composer.json +++ b/app/code/Magento/CatalogImportExport/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json index 17807abf00284e37befeee24f9146e7822ab1675..fa1c799fe739d3bcf87ca6f916bcde0962624808 100644 --- a/app/code/Magento/CatalogInventory/composer.json +++ b/app/code/Magento/CatalogInventory/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json index 3611281f1c69d49dd4efc8f6044045e0f33614c9..539ca4af208560e40d7f890c9550308bde89485e 100644 --- a/app/code/Magento/CatalogRule/composer.json +++ b/app/code/Magento/CatalogRule/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-rule": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-rule": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json index 307467c3c6217b54f23acdee9766524ef5817723..1d8292288c1c06458eea32cb0b3985d82f3147a4 100644 --- a/app/code/Magento/CatalogSearch/composer.json +++ b/app/code/Magento/CatalogSearch/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-search": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-search": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json index a4fdb35d55615c085511be97e462cfba358b6794..764fb5ed8db3fc88023dba3f275a543386e34315 100644 --- a/app/code/Magento/CatalogUrlRewrite/composer.json +++ b/app/code/Magento/CatalogUrlRewrite/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-import-export": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-url-rewrite": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-import-export": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-url-rewrite": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogWidget/composer.json b/app/code/Magento/CatalogWidget/composer.json index 633cc2a7cc48e4ab5bcf48ef3a976ae1bbb6302f..a1708c5aa5d6b1c14848114666f7bb6e520eaa00 100644 --- a/app/code/Magento/CatalogWidget/composer.json +++ b/app/code/Magento/CatalogWidget/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-rule": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-rule": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json index db8918bca762e2ed96a00a597bc0291a0138e96e..7aac4e4eeb32402cdcf6a15b14a9a2488203b5a7 100644 --- a/app/code/Magento/Checkout/composer.json +++ b/app/code/Magento/Checkout/composer.json @@ -3,32 +3,32 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-gift-message": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-msrp": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-gift-message": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-msrp": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-cookie": "0.74.0-beta13" + "magento/module-cookie": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json index bea7e49ea19fc077686d3e7ba0e73bec7beb2978..28936c416e31dc474a95b0687d98edef469ba886 100644 --- a/app/code/Magento/CheckoutAgreements/composer.json +++ b/app/code/Magento/CheckoutAgreements/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php index a3a2fbda293c06f45808c5087ec56c5d1eeb45de..21c1d2ec4994eac7671fd832e4c5e3e0751313d4 100644 --- a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php +++ b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php @@ -5,56 +5,84 @@ */ namespace Magento\Cms\Test\Unit\Ui\Component\Listing\Column; +use Magento\Cms\Ui\Component\Listing\Column\PageActions; + class PageActionsTest extends \PHPUnit_Framework_TestCase { public function testPrepareItemsByPageId() { + $pageId = 1; // Create Mocks and SUT $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); /** @var \PHPUnit_Framework_MockObject_MockObject $urlBuilderMock */ $urlBuilderMock = $this->getMockBuilder('Magento\Framework\UrlInterface') ->disableOriginalConstructor() ->getMock(); - $inputUrl = 'href/url/for/edit/action'; /** @var \Magento\Cms\Ui\Component\Listing\Column\PageActions $model */ $model = $objectManager->getObject( 'Magento\Cms\Ui\Component\Listing\Column\PageActions', [ 'urlBuilder' => $urlBuilderMock, - 'url' => $inputUrl ] ); // Define test input and expectations - $items = ['data' => ['items' => [['page_id' => 1]]]]; - $fullUrl = 'full-url-including-base.com/href/url/for/edit/action'; - $name = 'item_name'; - - $editArray = [ - 'href' => $fullUrl, - 'label' => __('Edit'), - 'hidden' => true + $items = [ + 'data' => [ + 'items' => [ + [ + 'page_id' => $pageId + ] + ] + ] ]; + $name = 'item_name'; $expectedItems = [ [ - 'page_id' => 1, - $name => ['edit' => $editArray] + 'page_id' => $pageId, + $name => [ + 'edit' => [ + 'href' => 'test/url/edit', + 'label' => __('Edit'), + ], + 'delete' => [ + 'href' => 'test/url/delete', + 'label' => __('Delete'), + 'confirm' => [ + 'title' => __('Delete "${ $.$data.title }"'), + 'message' => __('Are you sure you wan\'t to delete a "${ $.$data.title }" record?') + ], + ] + ], ] ]; // Configure mocks and object data - $urlBuilderMock->expects($this->once()) + $urlBuilderMock->expects($this->any()) ->method('getUrl') - ->with($inputUrl, ['page_id' => 1]) - ->willReturn($fullUrl); + ->willReturnMap( + [ + [ + PageActions::CMS_URL_PATH_EDIT, + [ + 'page_id' => $pageId + ], + 'test/url/edit', + ], + [ + PageActions::CMS_URL_PATH_DELETE, + [ + 'page_id' => $pageId + ], + 'test/url/delete', + ], + ] + ); $model->setName($name); $model->prepareDataSource($items); // Run test - $this->assertEquals( - $expectedItems, - $items['data']['items'] - ); + $this->assertEquals($expectedItems, $items['data']['items']); } } diff --git a/app/code/Magento/Cms/Ui/Component/Listing/Column/BlockActions.php b/app/code/Magento/Cms/Ui/Component/Listing/Column/BlockActions.php index d93cc635d9e8b716382fd682929cefc4d6e24049..617af42cb6122136cf933ade622dc169846d075b 100644 --- a/app/code/Magento/Cms/Ui/Component/Listing/Column/BlockActions.php +++ b/app/code/Magento/Cms/Ui/Component/Listing/Column/BlockActions.php @@ -18,7 +18,9 @@ class BlockActions extends Column /** * Url path */ - const URL_PATH = 'cms/block/edit'; + const URL_PATH_EDIT = 'cms/block/edit'; + const URL_PATH_DELETE = 'cms/block/delete'; + const URL_PATH_DETAILS = 'cms/block/details'; /** * @var UrlInterface @@ -45,6 +47,10 @@ class BlockActions extends Column parent::__construct($context, $uiComponentFactory, $components, $data); } + /** + * @param array $items + * @return array + */ /** * Prepare Data Source * @@ -58,8 +64,35 @@ class BlockActions extends Column if (isset($item['block_id'])) { $item[$this->getData('name')] = [ 'edit' => [ - 'href' => $this->urlBuilder->getUrl(static::URL_PATH, ['block_id' => $item['block_id']]), - 'label' => __('Edit'), + 'href' => $this->urlBuilder->getUrl( + static::URL_PATH_EDIT, + [ + 'block_id' => $item['block_id'] + ] + ), + 'label' => __('Edit') + ], + 'details' => [ + 'href' => $this->urlBuilder->getUrl( + static::URL_PATH_DETAILS, + [ + 'block_id' => $item['block_id'] + ] + ), + 'label' => __('Details') + ], + 'delete' => [ + 'href' => $this->urlBuilder->getUrl( + static::URL_PATH_DELETE, + [ + 'block_id' => $item['block_id'] + ] + ), + 'label' => __('Delete'), + 'confirm' => [ + 'title' => __('Delete "${ $.$data.title }"'), + 'message' => __('Are you sure you wan\'t to delete a "${ $.$data.title }" record?') + ] ] ]; } diff --git a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php index 59edfeded291c2bd809dfa28f4ee9bf0d3a3b1ff..c28a8d4d07093cbd44506b57a0688615e18e78fe 100644 --- a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php +++ b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php @@ -17,7 +17,8 @@ use Magento\Framework\UrlInterface; class PageActions extends Column { /** Url path */ - const CMS_URL_PATH = 'cms/page/edit'; + const CMS_URL_PATH_EDIT = 'cms/page/edit'; + const CMS_URL_PATH_DELETE = 'cms/page/delete'; /** @var UrlBuilder */ protected $actionUrlBuilder; @@ -25,10 +26,6 @@ class PageActions extends Column /** @var UrlInterface */ protected $urlBuilder; - /** @var string */ - private $url; - - /** * @param ContextInterface $context * @param UiComponentFactory $uiComponentFactory @@ -36,7 +33,6 @@ class PageActions extends Column * @param UrlInterface $urlBuilder * @param array $components * @param array $data - * @param string $url */ public function __construct( ContextInterface $context, @@ -44,12 +40,10 @@ class PageActions extends Column UrlBuilder $actionUrlBuilder, UrlInterface $urlBuilder, array $components = [], - array $data = [], - $url = self::CMS_URL_PATH + array $data = [] ) { $this->urlBuilder = $urlBuilder; $this->actionUrlBuilder = $actionUrlBuilder; - $this->url = $url; parent::__construct($context, $uiComponentFactory, $components, $data); } @@ -63,15 +57,23 @@ class PageActions extends Column { if (isset($dataSource['data']['items'])) { foreach ($dataSource['data']['items'] as & $item) { + $name = $this->getData('name'); if (isset($item['page_id'])) { - $item[$this->getData('name')]['edit'] = [ - 'href' => $this->urlBuilder->getUrl($this->url, ['page_id' => $item['page_id']]), - 'label' => __('Edit'), - 'hidden' => true + $item[$name]['edit'] = [ + 'href' => $this->urlBuilder->getUrl(self::CMS_URL_PATH_EDIT, ['page_id' => $item['page_id']]), + 'label' => __('Edit') + ]; + $item[$name]['delete'] = [ + 'href' => $this->urlBuilder->getUrl(self::CMS_URL_PATH_DELETE, ['page_id' => $item['page_id']]), + 'label' => __('Delete'), + 'confirm' => [ + 'title' => __('Delete "${ $.$data.title }"'), + 'message' => __('Are you sure you wan\'t to delete a "${ $.$data.title }" record?') + ] ]; } if (isset($item['identifier'])) { - $item[$this->getData('name')]['preview'] = [ + $item[$name]['preview'] = [ 'href' => $this->actionUrlBuilder->getUrl( $item['identifier'], isset($item['_first_store_id']) ? $item['_first_store_id'] : null, diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json index 73cbc55bc1d1818796bc345b579f2eb594d2d192..74159635377d7d0ac47f23cd8474b47b4415610b 100644 --- a/app/code/Magento/Cms/composer.json +++ b/app/code/Magento/Cms/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-email": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/module-variable": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-email": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/module-variable": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index 44f4c1deea21702fdaca687e632e77d087536173..2936cb163fc6f91713a4ebeaa1ae0650b8976702 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -61,6 +61,9 @@ <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">cms_block_listing.cms_block_listing.cms_block_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> @@ -225,13 +228,17 @@ <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="selectProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.ids</item> <item name="displayArea" xsi:type="string">bottom</item> <item name="actions" xsi:type="array"> <item name="delete" xsi:type="array"> - <item name="confirm" xsi:type="string" translate="true">Are you sure you want to perform this action?</item> <item name="type" xsi:type="string">delete</item> <item name="label" xsi:type="string" translate="true">Delete</item> <item name="url" xsi:type="string">cms/block/massDelete</item> + <item name="confirm" xsi:type="array"> + <item name="title" xsi:type="string" translate="true">Delete items</item> + <item name="message" xsi:type="string" translate="true">Are you sure you wan't to delete selected items?</item> + </item> </item> </item> <item name="indexField" xsi:type="string">block_id</item> @@ -245,6 +252,7 @@ <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.paging</item> </item> + <item name="selectProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.ids</item> <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> @@ -275,10 +283,14 @@ <columns name="cms_block_columns"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="storageConfig" xsi:type="array"> + <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item> + <item name="namespace" xsi:type="string">current</item> + </item> <item name="childDefaults" xsi:type="array"> + <item name="controlVisibility" xsi:type="boolean">true</item> <item name="actionField" xsi:type="string">actions</item> <item name="clickAction" xsi:type="string">edit</item> - <item name="appendTo" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.columns_controls</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -294,14 +306,14 @@ </item> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">block_id</item> - <item name="appendTo" xsi:type="boolean">false</item> + <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="block_id"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -314,7 +326,7 @@ <column name="title"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -326,7 +338,7 @@ <column name="identifier"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -397,7 +409,9 @@ <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\BlockActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> + <item name="indexField" xsi:type="string">block_id</item> <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 7d154b524cdacc874bbf5a52daf8dc7dcda81d65..5df70e67bcf95379186052a5575a0793fbf0ede3 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -61,6 +61,9 @@ <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">cms_page_listing.cms_page_listing.cms_page_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> @@ -237,13 +240,17 @@ <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="selectProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.ids</item> <item name="displayArea" xsi:type="string">bottom</item> <item name="actions" xsi:type="array"> <item name="delete" xsi:type="array"> - <item name="confirm" xsi:type="string" translate="true">Delete selected items?</item> <item name="type" xsi:type="string">delete</item> <item name="label" xsi:type="string" translate="true">Delete</item> <item name="url" xsi:type="string">cms/page/massDelete</item> + <item name="confirm" xsi:type="array"> + <item name="title" xsi:type="string" translate="true">Delete items</item> + <item name="message" xsi:type="string" translate="true">Are you sure you wan't to delete selected items?</item> + </item> </item> <item name="disable" xsi:type="array"> <item name="type" xsi:type="string">disable</item> @@ -267,6 +274,7 @@ <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.paging</item> </item> + <item name="selectProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.ids</item> <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> @@ -297,10 +305,14 @@ <columns name="cms_page_columns"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="storageConfig" xsi:type="array"> + <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item> + <item name="namespace" xsi:type="string">current</item> + </item> <item name="childDefaults" xsi:type="array"> <item name="actionField" xsi:type="string">actions</item> <item name="clickAction" xsi:type="string">edit</item> - <item name="appendTo" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.columns_controls</item> + <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -315,15 +327,16 @@ <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> </item> <item name="config" xsi:type="array"> + <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">page_id</item> - <item name="appendTo" xsi:type="string"></item> + <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="page_id"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -336,7 +349,7 @@ <column name="title"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -348,7 +361,7 @@ <column name="identifier"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -373,7 +386,7 @@ <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> @@ -480,7 +493,7 @@ <column name="meta_keywords"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -493,7 +506,7 @@ <column name="meta_description"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> @@ -506,7 +519,9 @@ <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\PageActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> + <item name="indexField" xsi:type="string">page_id</item> <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json index f469ccf9a8a16e50c34bcc66cac4a59c1dc7df58..c5d23577dd32064af54e69ea0c18bf918232f32a 100644 --- a/app/code/Magento/CmsUrlRewrite/composer.json +++ b/app/code/Magento/CmsUrlRewrite/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-url-rewrite": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-url-rewrite": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Config/composer.json b/app/code/Magento/Config/composer.json index 99e065fbf08f55ac4666e3c27b6944de65d9f4e0..cc83e07515d7c6e3f56c531d84d10edcceb1226e 100644 --- a/app/code/Magento/Config/composer.json +++ b/app/code/Magento/Config/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-cron": "0.74.0-beta13", - "magento/module-email": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-cron": "0.74.0-beta14", + "magento/module-email": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json index 54fb284e622096d698a49ea4154a0ad47fe4f037..8d04a7bae07ab90d74604415193102a43f299075 100644 --- a/app/code/Magento/ConfigurableImportExport/composer.json +++ b/app/code/Magento/ConfigurableImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-import-export": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-configurable-product": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-import-export": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-configurable-product": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json index a59d294e11653be15c3407afdddc78db584f82eb..d67c88a3d956bb5c369acb68c95818f9d10047c2 100644 --- a/app/code/Magento/ConfigurableProduct/composer.json +++ b/app/code/Magento/ConfigurableProduct/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-msrp": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-catalog-rule": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-msrp": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-catalog-rule": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-webapi": "0.74.0-beta13" + "magento/module-webapi": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json index 855dc95f1b15efa4b57d63915006bfb38028b121..b439ea140c197b1ed56baf1e2d815da1401ad79b 100644 --- a/app/code/Magento/Contact/composer.json +++ b/app/code/Magento/Contact/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cookie/composer.json b/app/code/Magento/Cookie/composer.json index f407a5b8678efc0b356538691028f981353d3ba4..544fd07a9c3789660daca22b02bfc19ba3f3aef5 100644 --- a/app/code/Magento/Cookie/composer.json +++ b/app/code/Magento/Cookie/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-backend": "0.74.0-beta13" + "magento/module-backend": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json index 2b1ebf6e958d6c4629e5205532dfc0b182d8d6a6..6399fb6b9e9020bfbbdcd39b429d38acd51db867 100644 --- a/app/code/Magento/Cron/composer.json +++ b/app/code/Magento/Cron/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json index 87a1ae6197aed04f3647858aaf8ae5c6c3b727f7..84def1d3cbe14acfc288d09d027e68ac7ef0514f 100644 --- a/app/code/Magento/CurrencySymbol/composer.json +++ b/app/code/Magento/CurrencySymbol/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json index 69fc3efec3823f3e47c02b91eb7c6dc6d3a9a20e..0eece788e93cecb4c80b798123ea44284882baca 100644 --- a/app/code/Magento/Customer/composer.json +++ b/app/code/Magento/Customer/composer.json @@ -3,33 +3,33 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-newsletter": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-review": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", - "magento/module-integration": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-newsletter": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-review": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", + "magento/module-integration": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-cookie": "0.74.0-beta13" + "magento/module-cookie": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml index 0f86b821eeed054a234713c3db93a056fedeb4ab..21762022d84e565b42a9808389c03c6777d0d5ae 100644 --- a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml +++ b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml @@ -413,18 +413,6 @@ </item> </argument> </field> - <field name="country_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> - <item name="formElement" xsi:type="string">select</item> - <item name="source" xsi:type="string">address</item> - <item name="validation" xsi:type="array"> - <item name="required-entry" xsi:type="boolean">true</item> - </item> - </item> - </argument> - </field> <field name="region"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -437,7 +425,6 @@ </field> <field name="region_id"> <argument name="data" xsi:type="array"> - <item name="customEntry" xsi:type="string">region</item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="formElement" xsi:type="string">select</item> diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json index 0fca4e85cc1316d04098a0685fdc613ab7af42c1..b6a1e407f40a90d40681457f8b3c44f71a51810b 100644 --- a/app/code/Magento/CustomerImportExport/composer.json +++ b/app/code/Magento/CustomerImportExport/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/DesignEditor/composer.json b/app/code/Magento/DesignEditor/composer.json index c74e983baf4c68378fe6735571211cdf05e11cb0..b1da5a0bdcd348ed89d44f6c55133d29d268e728 100644 --- a/app/code/Magento/DesignEditor/composer.json +++ b/app/code/Magento/DesignEditor/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-translation": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-translation": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Developer/composer.json b/app/code/Magento/Developer/composer.json index 159132b761c1f3ac35336599634434a2cf489651..a48bb0105867b156433a4addf530adbefcf87e48 100644 --- a/app/code/Magento/Developer/composer.json +++ b/app/code/Magento/Developer/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json index 844caf08a5f13cf23065ae0ed66adcc52014cb3b..02b7d41aa6e9cb7951f25396c7d440274d5b0d56 100644 --- a/app/code/Magento/Dhl/composer.json +++ b/app/code/Magento/Dhl/composer.json @@ -3,22 +3,22 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json index bc48bec5995d1768c6b6963bd2d72689a5bca4cf..23ab56ed5a4f107e2748d9c98f7a78fe3b762bc4 100644 --- a/app/code/Magento/Directory/composer.json +++ b/app/code/Magento/Directory/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json index 15f14f91214a75f64c9e6493480b1d972d830b95..fb54763027f3ed9b61617b4c2e2ae63a92ddab6a 100644 --- a/app/code/Magento/Downloadable/composer.json +++ b/app/code/Magento/Downloadable/composer.json @@ -3,28 +3,28 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-gift-message": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-msrp": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-gift-message": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-msrp": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json index 5f243b8986208869e385aebfcbb4b57e28615de6..27a79fab2f4a2d182e3df0749481b2877d6eb5cf 100644 --- a/app/code/Magento/Eav/composer.json +++ b/app/code/Magento/Eav/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json index e1be936adc070dc4d55a948b467c7e147cd8193d..337caab036bcf8efe39b14f1d7d22bf534a38f02 100644 --- a/app/code/Magento/Email/composer.json +++ b/app/code/Magento/Email/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-variable": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-variable": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json index 2fe10a640638848100355b7e0b1c66a8b5244292..63f7f335ce91ef6b55f722c63265ca6cc57f560a 100644 --- a/app/code/Magento/Fedex/composer.json +++ b/app/code/Magento/Fedex/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json index 2e2e4b6a8e46e6c2d9cb6a63e3b6a69c5ef0c69d..6159ad811b2306d08af85bd45cd0475e3ca56cfe 100644 --- a/app/code/Magento/GiftMessage/composer.json +++ b/app/code/Magento/GiftMessage/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-multishipping": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-multishipping": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json index 304cc1bf791158d545194f29f2c3be44a9b8c097..5cc77002b47154ceced14a609d6e0d41282926d7 100644 --- a/app/code/Magento/GoogleAdwords/composer.json +++ b/app/code/Magento/GoogleAdwords/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json index 92aee5dbd021df882f73761a6b368c905fdcc83e..09c1724be6bc16c662205bef182abc2a677a37b0 100644 --- a/app/code/Magento/GoogleAnalytics/composer.json +++ b/app/code/Magento/GoogleAnalytics/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-cookie": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-cookie": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json index f046d154cbcf7acf581a241c374e026df489efc2..97573703a09a74e685922b0b3948f6af8e30aa73 100644 --- a/app/code/Magento/GoogleOptimizer/composer.json +++ b/app/code/Magento/GoogleOptimizer/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-google-analytics": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-google-analytics": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleShopping/composer.json b/app/code/Magento/GoogleShopping/composer.json index 564c50bd7a9c4929da303ab754797a91b5c26994..1e2387799214e5b48fe356487cc1ea18ce2d030f 100644 --- a/app/code/Magento/GoogleShopping/composer.json +++ b/app/code/Magento/GoogleShopping/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json index d17ec6ec9e8dfa34f60b13a34725d2c7fea5abca..33a57b24cb7193f6bb5f3b2f0eef591837005946 100644 --- a/app/code/Magento/GroupedImportExport/composer.json +++ b/app/code/Magento/GroupedImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-import-export": "0.74.0-beta13", - "magento/module-catalog-import-export": "0.74.0-beta13", - "magento/module-grouped-product": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-import-export": "0.74.0-beta14", + "magento/module-catalog-import-export": "0.74.0-beta14", + "magento/module-grouped-product": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json index d108bccbced3c09fa8991ae13fbf15296e7075f4..4ee6e8762d9b6760ce1ad74e9978af483e913f0d 100644 --- a/app/code/Magento/GroupedProduct/composer.json +++ b/app/code/Magento/GroupedProduct/composer.json @@ -3,22 +3,22 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/module-msrp": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/module-msrp": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js index c5437123aea58b42d4c3cb41d21a076709d3a7eb..b7badba6e79c142c8c1a92e0d60cdb41500507d4 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js +++ b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js @@ -7,6 +7,7 @@ define([ 'jquery', 'mage/template', 'jquery/ui', + 'Magento_Ui/js/modal/modal', 'mage/translate', 'mage/adminhtml/grid' ], function ($, mageTemplate) { @@ -94,7 +95,7 @@ define([ }, /** - * Create dialog for show product + * Create modal for show product * * @private */ @@ -103,30 +104,14 @@ define([ selectedProductList = {}, popup = $('[data-role=add-product-dialog]'); - popup.dialog({ + popup.modal({ + type: 'slide', + innerScroll: true, title: $.mage.__('Add Products to Group'), - autoOpen: false, - minWidth: 980, - width: '75%', - modal: true, - resizable: true, - dialogClass: 'grouped', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, + modalClass: 'grouped', open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 55; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - $(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal }, - close: function () { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - }, buttons: [{ id: 'grouped-product-dialog-apply-button', text: $.mage.__('Add Selected Products'), @@ -137,14 +122,7 @@ define([ }); widget._resort(); widget._updateGridVisibility(); - $(this).dialog('close'); - } - }, { - id: 'grouped-product-dialog-cancel-button', - text: $.mage.__('Cancel'), - 'class': 'action-close', - click: function () { - $(this).dialog('close'); + popup.modal('closeModal'); } }] }); @@ -186,7 +164,7 @@ define([ $('[data-role=add-product]').on('click', function (event) { event.preventDefault(); - popup.dialog('open'); + popup.modal('openModal'); gridPopup.reload(); selectedProductList = {}; }); diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json index e7cbb957d07e0c2be37df045848e2ba04994930c..e5e58f1eeb8b2d8329b2789124b0a372ca75ef3a 100644 --- a/app/code/Magento/ImportExport/composer.json +++ b/app/code/Magento/ImportExport/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-indexer": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-indexer": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json index 5334b4ad74bf65576c1ccec4ad8f4294e9dddf87..5c2d70fd3ba1f4706522b5534b358eed397bb3d7 100644 --- a/app/code/Magento/Indexer/composer.json +++ b/app/code/Magento/Indexer/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json index e7522cbdd35551484344ff6d2e89df0259344269..71e7696d8ef28184f8fd128d60231cac19b28ca4 100644 --- a/app/code/Magento/Integration/composer.json +++ b/app/code/Magento/Integration/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-user": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-user": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json index bdc20c0270c5158053c633cfcfad014a842cbcb3..5fb0f54db609de19157dbbe5a22daf6d3025c950 100644 --- a/app/code/Magento/LayeredNavigation/composer.json +++ b/app/code/Magento/LayeredNavigation/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Log/composer.json b/app/code/Magento/Log/composer.json index 1e5b22c27320a7ab072789131a4b60f59b9dbdac..226458dacc1e2acfe398cfea0d658fb0ec2ab22e 100644 --- a/app/code/Magento/Log/composer.json +++ b/app/code/Magento/Log/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/MediaStorage/composer.json b/app/code/Magento/MediaStorage/composer.json index d6eb3484a3966987d8d3278506a3ba04abba6b52..da20bf9f3dc3d8790f4710a3027cbd22335b0d34 100644 --- a/app/code/Magento/MediaStorage/composer.json +++ b/app/code/Magento/MediaStorage/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Msrp/composer.json b/app/code/Magento/Msrp/composer.json index 264b8eb51dba8d26cd6487ab3a4c05374119152b..552af5d5da3518251046821ba504ab4608661fd3 100644 --- a/app/code/Magento/Msrp/composer.json +++ b/app/code/Magento/Msrp/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-bundle": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-downloadable": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-grouped-product": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-bundle": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-downloadable": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-grouped-product": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json index 1d8a0325c2eb0998dc4e53af4125e2204ad25f50..3f6d9e22a139d0932d538424871afc49b49baa40 100644 --- a/app/code/Magento/Multishipping/composer.json +++ b/app/code/Magento/Multishipping/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json index 5e9806a6fab8fd93f56c0a0ccca0256ca1771bc6..1ac1fb8c9d929acbe852fb2c8c0fa93ee1e42409 100644 --- a/app/code/Magento/Newsletter/composer.json +++ b/app/code/Magento/Newsletter/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-email": "0.74.0-beta13", - "magento/module-cron": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-require-js": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-email": "0.74.0-beta14", + "magento/module-cron": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-require-js": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json index 90045a9378f6e5f6b38fe5824ccfb2deea5770b6..5118d798b7ee7a9f2a5c5f1291afd3a9f9ade93d 100644 --- a/app/code/Magento/OfflinePayments/composer.json +++ b/app/code/Magento/OfflinePayments/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json index 9e6c4caa47f24bf81041f76336168cdaf9256b15..5a4bc6de203315f49cc562f6c3561279bc5febe8 100644 --- a/app/code/Magento/OfflineShipping/composer.json +++ b/app/code/Magento/OfflineShipping/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-sales-rule": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-sales-rule": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json index bc812b12e6d5c3b4ed3047b46623a6a0b2fb5f19..ce7896f50957edfc63dc32ca1c2b335c880bd0d9 100644 --- a/app/code/Magento/PageCache/composer.json +++ b/app/code/Magento/PageCache/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json index 87f3a9ef1cd080f2b0da3e1e42532f71dc39d4b4..b78f45d789049bbd5d2a03a892e688dbd0d40535 100644 --- a/app/code/Magento/Payment/composer.json +++ b/app/code/Magento/Payment/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json index 379f16a66b2f4879c1c315c5a33c6d93cd69f64b..b81c38561e3dfc1e24c9565dec1988e79ff43715 100644 --- a/app/code/Magento/Persistent/composer.json +++ b/app/code/Magento/Persistent/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-cron": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-cron": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json index 3e993546d08a901e3e7f7feda86c18e19e2cfd7e..715f9607506075b3e7fd70a2f1f691c63f78f3f5 100644 --- a/app/code/Magento/ProductAlert/composer.json +++ b/app/code/Magento/ProductAlert/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Quote/composer.json b/app/code/Magento/Quote/composer.json index f58331308612ac84cf4b8e0e7a42328671b2450e..05d09f86f706c1689b7d04bf1f05527d584c2ff2 100644 --- a/app/code/Magento/Quote/composer.json +++ b/app/code/Magento/Quote/composer.json @@ -3,26 +3,26 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-catalog-rule": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-sales-sequence": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-catalog-rule": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-sales-sequence": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json index 099550f07e1ea5ec1812cf7466c1f75732a52e60..89ac5cea8d624dd0d8c836196cda54c80b9daa21 100644 --- a/app/code/Magento/Reports/composer.json +++ b/app/code/Magento/Reports/composer.json @@ -3,28 +3,28 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-log": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-review": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-downloadable": "0.74.0-beta13", - "magento/module-sales-rule": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-log": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-review": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-downloadable": "0.74.0-beta14", + "magento/module-sales-rule": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json index c921a04022f146ff8fe438985fd98d93ef9c3fbe..f36ff58438ce0c1b827ee011308bdf0710623bf6 100644 --- a/app/code/Magento/RequireJs/composer.json +++ b/app/code/Magento/RequireJs/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json index 45201df67e97c0cfec3850649adf2b8fdcfbfa74..b8bb07beb0f6fc1ba9a59a47a57b2329e504a074 100644 --- a/app/code/Magento/Review/composer.json +++ b/app/code/Magento/Review/composer.json @@ -3,22 +3,22 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-newsletter": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-newsletter": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-cookie": "0.74.0-beta13" + "magento/module-cookie": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json index 9e085b9677094ac04fb063a23147c319500255be..ca4231a1f2e5bd6127a2792c31677aca56da011a 100644 --- a/app/code/Magento/Rss/composer.json +++ b/app/code/Magento/Rss/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json index d6e66b999c893133d222d72c447801d2b2bff85e..5d0a656ebc0bb6db836a97268ddecc99906ad595 100644 --- a/app/code/Magento/Rule/composer.json +++ b/app/code/Magento/Rule/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json index 7f07de89e05f1b012a4d782d2828f7f86dd127eb..e9850b28b5ebbefd68476b14a55a1ea6f8bb63af 100644 --- a/app/code/Magento/Sales/composer.json +++ b/app/code/Magento/Sales/composer.json @@ -3,35 +3,35 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-sales-rule": "0.74.0-beta13", - "magento/module-sales-sequence": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-gift-message": "0.74.0-beta13", - "magento/module-reports": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-wishlist": "0.74.0-beta13", - "magento/module-email": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-sales-rule": "0.74.0-beta14", + "magento/module-sales-sequence": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-gift-message": "0.74.0-beta14", + "magento/module-reports": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-wishlist": "0.74.0-beta14", + "magento/module-email": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js b/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js index 5479b72127223e2f0b98730a965e94a97c845f9d..13511e83106674b301a992ca6a360e69c6c2b7b2 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js @@ -7,7 +7,7 @@ define([ "jquery", "jquery/ui", - 'Magento_Ui/js/dialog/dialog', + 'Magento_Ui/js/modal/modal', "mage/translate" ], function($){ "use strict"; @@ -15,7 +15,7 @@ define([ options: { url: null, message: null, - dialog: null + modal: null }, /** @@ -26,10 +26,10 @@ define([ }, /** - * Show dialog + * Show modal */ showDialog: function() { - this.options.dialog.html(this.options.message).trigger('openDialog'); + this.options.dialog.html(this.options.message).modal('openModal'); }, /** @@ -40,11 +40,24 @@ define([ }, /** - * Prepare dialog + * Prepare modal * @protected */ _prepareDialog: function() { - this.options.dialog = $('<div class="ui-dialog-content ui-widget-content"></div>').dialog(); + var self = this; + + this.options.dialog = $('<div class="ui-dialog-content ui-widget-content"></div>').modal({ + type: 'popup', + modalClass: 'edit-order-popup', + title: $.mage.__('Edit Order'), + buttons: [{ + text: $.mage.__('Ok'), + 'class': 'action-primary', + click: function(){ + self.redirect(); + } + }] + }); } }); diff --git a/app/code/Magento/SalesRule/composer.json b/app/code/Magento/SalesRule/composer.json index 73ca3c6e1d876da3377b77cc31d0a0a61b398a5a..e842b73e7b207cacc55274b6f11cb78df5d008ab 100644 --- a/app/code/Magento/SalesRule/composer.json +++ b/app/code/Magento/SalesRule/composer.json @@ -3,26 +3,26 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-rule": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-reports": "0.74.0-beta13", - "magento/module-catalog-rule": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-rule": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-reports": "0.74.0-beta14", + "magento/module-catalog-rule": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SalesSequence/composer.json b/app/code/Magento/SalesSequence/composer.json index 15ce9855deb2e50bac1d6261380f653585182cfc..825a8e16713a027df4ea0dd1da8d58e2af16c7ea 100644 --- a/app/code/Magento/SalesSequence/composer.json +++ b/app/code/Magento/SalesSequence/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Search/composer.json b/app/code/Magento/Search/composer.json index d0eea2c18d8d8791e84e4b2b396f714ccedd2388..98e1ce97eda1a03ced7574846f0a8d0d3efc2722 100644 --- a/app/code/Magento/Search/composer.json +++ b/app/code/Magento/Search/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog-search": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-reports": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog-search": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-reports": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SendFriend/composer.json b/app/code/Magento/SendFriend/composer.json index f8e2a4f687541841f0942de6a0805271b6dac339..b6712222a0c651e7a30e4186b029c40789fd30ae 100644 --- a/app/code/Magento/SendFriend/composer.json +++ b/app/code/Magento/SendFriend/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Shipping/composer.json b/app/code/Magento/Shipping/composer.json index 1960a285405d0b1fb9159a8cbb6905f4b27b57e8..26e8e039f88d70c2292afe9ffeae4601a4f1ea4a 100644 --- a/app/code/Magento/Shipping/composer.json +++ b/app/code/Magento/Shipping/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-contact": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-payment": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-contact": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-payment": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "ext-gd": "*", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-fedex": "0.74.0-beta13", - "magento/module-ups": "0.74.0-beta13" + "magento/module-fedex": "0.74.0-beta14", + "magento/module-ups": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Sitemap/composer.json b/app/code/Magento/Sitemap/composer.json index 7c7137e8db82477d6c3ded19a28dd6969b68fc42..6e9cd7ca7d1d8f9a280952fcccdd76c9b45a844c 100644 --- a/app/code/Magento/Sitemap/composer.json +++ b/app/code/Magento/Sitemap/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog-url-rewrite": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog-url-rewrite": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json index e8a224d7a443669cfe35054a4ebb9af15f6138fe..3bb80c7c21ec85900b2c9c7ec5b15ce3a6c99176 100644 --- a/app/code/Magento/Store/composer.json +++ b/app/code/Magento/Store/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-directory": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-directory": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Tax/composer.json b/app/code/Magento/Tax/composer.json index 3ef7c5e73fc4cd09ad9f1ff4cca1b0b5f56ed1d6..b2d4d6faad79318556340971f6dd6d832e89af6c 100644 --- a/app/code/Magento/Tax/composer.json +++ b/app/code/Magento/Tax/composer.json @@ -3,24 +3,24 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-config": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-reports": "0.74.0-beta13", - "magento/module-page-cache": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-config": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-reports": "0.74.0-beta14", + "magento/module-page-cache": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/TaxImportExport/composer.json b/app/code/Magento/TaxImportExport/composer.json index 0cebf5d7d3360dba867fee97e90b3a9d2336ad91..2642b8587938955bd7b651a9485560794002064f 100644 --- a/app/code/Magento/TaxImportExport/composer.json +++ b/app/code/Magento/TaxImportExport/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-tax": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-tax": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json index 7e2129cc460bb0145f4cf7dacf63bb226e4bb049..9fbb0bd754d2cc08791507e25ca35d5d013776d9 100644 --- a/app/code/Magento/Theme/composer.json +++ b/app/code/Magento/Theme/composer.json @@ -3,23 +3,23 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-widget": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/module-media-storage": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-require-js": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-widget": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/module-media-storage": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-require-js": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-translation": "0.74.0-beta13" + "magento/module-translation": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Translation/composer.json b/app/code/Magento/Translation/composer.json index 05ce2874e8b195cefb7355cb2208a5ca59b6208d..7de19b36d8a93d4c6640246a5098e529c27e1860 100644 --- a/app/code/Magento/Translation/composer.json +++ b/app/code/Magento/Translation/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-backend": "0.74.0-beta13", - "magento/module-developer": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-backend": "0.74.0-beta14", + "magento/module-developer": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Ui/Component/Bookmark.php b/app/code/Magento/Ui/Component/Bookmark.php index cbb66e064806e28cfc15de7e9dcba59448b2d13c..7c8d54889f13ae6a1028dc2d61e6544f5ba464f1 100644 --- a/app/code/Magento/Ui/Component/Bookmark.php +++ b/app/code/Magento/Ui/Component/Bookmark.php @@ -75,12 +75,17 @@ class Bookmark extends AbstractComponent $bookmarks = $this->bookmarkManagement->loadByNamespace($namespace); /** @var \Magento\Ui\Api\Data\BookmarkInterface $bookmark */ foreach ($bookmarks->getItems() as $bookmark) { - $config['activeIndex'] = ($bookmark->isCurrent() ? $bookmark->getIdentifier() : 'default'); + $activeIndex = ($bookmark->isCurrent() ? $bookmark->getIdentifier() : false); + if ($bookmark->getIdentifier() == 'current') { $config['current'] = $bookmark->getConfig(); } else { $config['views'][$bookmark->getIdentifier()] = $bookmark->getConfig(); } + + if ($activeIndex !== false) { + $config['activeIndex'] = $activeIndex; + } } } diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php index f959e11ae83c85cf64e9e9502279005e44c2b738..2128543535b2b0d6823d60046ef60c21001913ce 100644 --- a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php +++ b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php @@ -23,6 +23,10 @@ class Save extends AbstractAction */ const CURRENT_IDENTIFIER = 'current'; + const ACTIVE_IDENTIFIER = 'activeIndex'; + + const VIEWS_IDENTIFIER = 'views'; + /** * @var BookmarkRepositoryInterface */ @@ -75,30 +79,37 @@ class Save extends AbstractAction { $bookmark = $this->bookmarkFactory->create(); $data = $this->_request->getParam('data'); - if (isset($data['views'])) { - foreach ($data['views'] as $identifier => $data) { - $updateBookmark = $this->checkBookmark($identifier); - if ($updateBookmark !== false) { - $bookmark = $updateBookmark; - } + $action = key($data); + switch($action) { + case self::ACTIVE_IDENTIFIER: + $this->updateCurrentBookmark($data[$action]); + break; + case self::CURRENT_IDENTIFIER: $this->updateBookmark( $bookmark, - $identifier, - (isset($data['label']) ? $data['label'] : ''), - $data + $action, + $bookmark->getTitle(), + $data[$action] ); - } - } else { - $identifier = isset($data['activeIndex']) - ? $data['activeIndex'] - : (isset($data[self::CURRENT_IDENTIFIER]) ? self::CURRENT_IDENTIFIER : ''); - $updateBookmark = $this->checkBookmark($identifier); - if ($updateBookmark !== false) { - $bookmark = $updateBookmark; - } - $this->updateBookmark($bookmark, $identifier, '', $data[$identifier]); + break; + + case self::VIEWS_IDENTIFIER: + foreach ($data[$action] as $identifier => $data) { + $this->updateBookmark( + $bookmark, + $identifier, + isset($data['label']) ? $data['label'] : '', + $data + ); + $this->updateCurrentBookmark($identifier); + } + + break; + + default: + throw new \LogicException(__('Unsupported bookmark action.')); } } @@ -114,20 +125,35 @@ class Save extends AbstractAction protected function updateBookmark(BookmarkInterface $bookmark, $identifier, $title, array $config = []) { $this->filterVars($config); + + $updateBookmark = $this->checkBookmark($identifier); + if ($updateBookmark !== false) { + $bookmark = $updateBookmark; + } + $bookmark->setUserId($this->userContext->getUserId()) ->setNamespace($this->_request->getParam('namespace')) ->setIdentifier($identifier) ->setTitle($title) - ->setConfig($config) - ->setCurrent($identifier !== self::CURRENT_IDENTIFIER); + ->setConfig($config); $this->bookmarkRepository->save($bookmark); + } + /** + * Update current bookmark + * + * @param string $identifier + * @return void + */ + protected function updateCurrentBookmark($identifier) + { $bookmarks = $this->bookmarkManagement->loadByNamespace($this->_request->getParam('namespace')); foreach ($bookmarks->getItems() as $bookmark) { if ($bookmark->getIdentifier() == $identifier) { - continue; + $bookmark->setCurrent(true); + } else { + $bookmark->setCurrent(false); } - $bookmark->setCurrent(false); $this->bookmarkRepository->save($bookmark); } } diff --git a/app/code/Magento/Ui/composer.json b/app/code/Magento/Ui/composer.json index edb3157e7aab2160a922d9f80b68fe3674e946ed..35d8c625925fde44598e7b8524c3e574d51f309e 100644 --- a/app/code/Magento/Ui/composer.json +++ b/app/code/Magento/Ui/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js b/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js index 882fd49f464af70702a9db2372a988a9462ab35c..4a0ceedf00035b14483671a2ec5caece43324907 100644 --- a/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js +++ b/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js @@ -122,6 +122,10 @@ define([ delete node.type; delete node.config; + if (children) { + node.initChildCount = _.size(children); + } + if (node.isTemplate) { node.isTemplate = false; diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js index 84ea34f88934be1e8bc349a149482e3f297b49ee..14ba3ef49693ef7615b5d9052a94a2e60dbed5d2 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js @@ -47,8 +47,7 @@ define([ _.bindAll(this, 'reset'); this._super(); - - this.initialValue = this.getInititalValue(); + this.initialValue = this.getInitialValue(); this.value(this.initialValue); @@ -97,7 +96,7 @@ define([ * * @returns {*} Elements' value. */ - getInititalValue: function () { + getInitialValue: function () { var values = [this.value(), this.default], value; diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/boolean.js b/app/code/Magento/Ui/view/base/web/js/form/element/boolean.js index 4782c853d210b11696c71f31d8d855a8e64eb4b0..efe82b0a13a1c4ee16cb71b7581e77ee41393fc8 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/boolean.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/boolean.js @@ -13,7 +13,7 @@ define([ * * @return {Boolean} */ - getInititalValue: function () { + getInitialValue: function () { return !!+this._super(); }, diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/date.js b/app/code/Magento/Ui/view/base/web/js/form/element/date.js index 140f063a315d00b0dd47a5c144503eb28c75b9cd..08f28b0c63722c92fb0e3b9cc580b1eaa1c3d107 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/date.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/date.js @@ -26,7 +26,7 @@ define([ * * @returns {String} */ - getInititalValue: function () { + getInitialValue: function () { var value = this._super(); if (value) { diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js index a6dc9e3b3afe600527a5b0fd470b05547b955789..6e7b2ac69a4ff61d6617faf2d0226084660890d5 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js @@ -20,7 +20,7 @@ define([ * * @returns {Number|String} */ - getInititalValue: function () { + getInitialValue: function () { var value = this._super(); return _.isString(value) ? value.split(',') : value; diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/select.js b/app/code/Magento/Ui/view/base/web/js/form/element/select.js index 3034df1e2c67ad8154be1caa055fd97e0a45bbf2..225a6a3250d350bb55b90b4caeb5f8abc1ae9fa8 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/select.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/select.js @@ -14,9 +14,9 @@ define([ var inputNode = { parent: '${ $.$data.parentName }', type: 'form.input', - name: '<%= $data.index %>_input', - dataScope: '<%= $data.customEntry %>', - customScope: '<%= $data.customScope %>', + name: '${ $.$data.index }_input', + dataScope: '${ $.$data.customEntry }', + customScope: '${ $.$data.customScope }', sortOrder: { after: '${ $.$data.name }' }, @@ -157,6 +157,7 @@ define([ initFilter: function () { var filter = this.filterBy; + this.filter(this.default, filter.field); this.setLinks({ filter: filter.target }, 'imports'); @@ -181,7 +182,7 @@ define([ * * @returns {Number|String} */ - getInititalValue: function () { + getInitialValue: function () { var value = this._super(); if (value !== '') { diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js index 33a095e64e806024affa49638b9fe8bb40566e79..e0b7525f007128ec86e7409519c1df011081aa63 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js @@ -4,24 +4,282 @@ */ define([ 'underscore', - './column' -], function (_, Column) { + 'mageUtils', + 'uiRegistry', + './column', + 'Magento_Ui/js/modal/confirm' +], function (_, utils, registry, Column, confirm) { 'use strict'; return Column.extend({ defaults: { - headerTmpl: 'ui/grid/columns/actions', - bodyTmpl: 'ui/grid/cells/actions' + bodyTmpl: 'ui/grid/cells/actions', + actions: [], + rows: [], + templates: { + actions: {} + }, + rowsProvider: '${ $.parentName }', + imports: { + rows: '${ $.rowsProvider }:rows' + }, + listens: { + rows: 'updateActions' + } }, - getDisplayed: function (actions) { - actions = _.filter(actions, function (action) { - return !('hidden' in action) || !action.hidden; + /** + * Initializes observable properties. + * + * @returns {ActionsColumn} Chainable. + */ + initObservable: function () { + this._super() + .observe('actions opened'); + + return this; + }, + + /** + * Returns specific action of a specified row + * or all action objects associated with it. + * + * @param {Number} rowIndex - Index of a row. + * @param {String} [actionIndex] - Action identifier. + * @returns {Array|Object} + */ + getAction: function (rowIndex, actionIndex) { + var rowActions = this.actions()[rowIndex]; + + return rowActions && actionIndex ? + rowActions[actionIndex] : + rowActions; + }, + + /** + * Returns visible actions for a specified row. + * + * @param {Number} rowIndex - Index of a row. + * @returns {Array} Visible actions. + */ + getVisibleActions: function (rowIndex) { + var rowActions = this.getAction(rowIndex); + + return _.filter(rowActions, this.isActionVisible, this); + }, + + /** + * Adds new action. If action with a specfied identifier + * already exists, than the original will be overrided. + * + * @param {String} index - Actions' identifier. + * @param {Object} action - Actions' data. + * @returns {ActionsColumn} Chainable. + */ + addAction: function (index, action) { + var actionTmpls = this.templates.actions; + + actionTmpls[index] = action; + + this.updateActions(); + + return this; + }, + + /** + * Recreates actions for each row. + * + * @returns {ActionsColumn} Chainable. + */ + updateActions: function () { + var rows = this.rows, + actions = rows.map(this._formatActions, this); + + this.actions(actions); + + return this; + }, + + /** + * Processes actions, setting additional information to them and + * evaluating ther properties as a string templates. + * + * @private + * @param {Object} row - Row object. + * @param {Number} rowIndex - Index of a row. + * @returns {Array} + */ + _formatActions: function (row, rowIndex) { + var rowActions = row[this.index] || {}, + recordId = row[this.indexField], + customActions = this.templates.actions; + + /** + * Actions iterator. + */ + function iterate(action, index) { + action = utils.extend({ + index: index, + rowIndex: rowIndex, + recordId: recordId + }, action); + + return utils.template(action, row, true); + } + + rowActions = _.mapObject(rowActions, iterate); + customActions = _.map(customActions, iterate); + + customActions.forEach(function (action) { + rowActions[action.index] = action; + }); + + return rowActions; + }, + + /** + * Applies specified action. + * + * @param {String} actionIndex - Actions' identifier. + * @param {Number} rowIndex - Index of a row. + * @returns {ActionsColumn} Chainable. + */ + applyAction: function (actionIndex, rowIndex) { + var action = this.getAction(rowIndex, actionIndex), + callback; + + if (!action.href && !action.callback) { + return this; + } + + callback = this._getCallback(action); + + action.confirm ? + this._confirm(action, callback) : + callback(); + + return this; + }, + + /** + * Creates action callback based on its' data. If action doesn't spicify + * a callback function than the default one will be used. + * + * @private + * @param {Object} action - Actions' object. + * @returns {Function} Callback function. + */ + _getCallback: function (action) { + var args = [action.index, action.recordId, action], + callback = action.callback; + + if (utils.isObject(callback)) { + args.unshift(callback.target); + + callback = registry.async(callback.provider); + } else if (typeof callback != 'function') { + callback = this.defaultCallback.bind(this); + } + + return function () { + callback.apply(null, args); + }; + }, + + /** + * Default action callback. Redirects to + * the specified in actions' data url. + * + * @param {String} actionIndex - Actions' identifier. + * @param {(Number|String)} recordId - Id of the record accociated + * with a specfied action. + * @param {Object} action - Actions' data. + */ + defaultCallback: function (actionIndex, recordId, action) { + window.location.href = action.href; + }, + + /** + * Shows actions' confirmation window. + * + * @param {Object} action - Actions' data. + * @param {Function} callback - Callback that will be + * invoked if action is confirmed. + */ + _confirm: function (action, callback) { + var confirmData = action.confirm; + + confirm({ + title: confirmData.title, + content: confirmData.message, + actions: { + confirm: callback + } }); + }, + + /** + * Checks if row has only one visible action. + * + * @param {Number} rowIndex - Row index. + * @returns {Boolean} + */ + isSingle: function (rowIndex) { + return this.getVisibleActions(rowIndex).length === 1; + }, + + /** + * Checks if row has more than one visible action. + * + * @param {Number} rowIndex - Row index. + * @returns {Boolean} + */ + isMultiple: function (rowIndex) { + return this.getVisibleActions(rowIndex).length > 1; + }, + + /** + * Checks if action should be displayed. + * + * @param {Object} action - Action object. + * @returns {Boolean} + */ + isActionVisible: function (action) { + return action.hidden !== true; + }, + + /** + * Opens or closes specific actions list. + * + * @param {Number} rowIndex - Index of a row, + * where actions are displayed. + * @returns {ActionsColumn} Chainable. + */ + toggleList: function (rowIndex) { + var state = false; + + if (rowIndex !== this.opened()) { + state = rowIndex; + } + + this.opened(state); + + return this; + }, - this.displayed = actions; + /** + * Closes actions list. + * + * @param {Number} rowIndex - Index of a row, + * where actions are displayed. + * @returns {ActionsColumn} + */ + closeList: function (rowIndex) { + if (this.opened() === rowIndex) { + this.opened(false); + } - return actions; + return this; } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js index f0d3202c7f6822eb2c97aa3f89499f18a7048c32..1eb359826b1cff89f423be340531dd34d52c8157 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js @@ -13,37 +13,111 @@ define([ defaults: { headerTmpl: 'ui/grid/columns/text', bodyTmpl: 'ui/grid/cells/text', - sortable: false, + sortable: true, + sorting: false, visible: true, + draggable: true, links: { - visible: '${ $.storageConfig.path }.visible' + visible: '${ $.storageConfig.path }.visible', + sorting: '${ $.storageConfig.path }.sorting' + }, + imports: { + exportSorting: 'sorting' + }, + listens: { + '${ $.provider }:params.sorting.field': 'onSortChange' + }, + modules: { + source: '${ $.provider }' } }, + /** + * Initializes observable properties. + * + * @returns {Column} Chainable. + */ initObservable: function () { this._super() - .observe('visible'); + .observe('visible dragging dragover sorting'); return this; }, - applyState: function (property, state) { - var storage = this.storage(), - namespace = this.storageConfig.root + '.' + property, - data, - value; + /** + * Applies specified stored state of a column or one of its' properties. + * + * @param {String} state - Defines what state should be used: saved or default. + * @param {String} [property] - Defines what columns' property should be applied. + * If not specfied, than all collumns stored properties will be used. + * @returns {Column} Chainable. + */ + applyState: function (state, property) { + var namespace = this.storageConfig.root; - if (state === 'default') { - data = storage.getDefault(); - } else if (state === 'last') { - data = storage.getSaved(); + if (property) { + namespace += '.' + property; } - value = utils.nested(data, namespace); + this.storage('applyState', state, namespace); - if (!_.isUndefined(value)) { - this.set(property, value); + return this; + }, + + /** + * Sets columns' sorting. If column is currently sorted, + * than its' direction will be toggled. + * + * @param {*} [enable=true] - If false, than sorting will + * be removed from a column. + * @returns {Column} Chainable. + */ + sort: function (enable) { + var direction; + + if (!this.sortable) { + return this; + } + + enable = enable !== false ? true : false; + + direction = enable ? + this.sorting() ? + this.toggleDirection() : + 'asc' : + false; + + this.sorting(direction); + + return this; + }, + + /** + * Exports sorting data to the dataProvider if + * sorting of a column is enabled. + * + * @param {(String|Boolean)} sorting - Columns' sorting state. + */ + exportSorting: function (sorting) { + if (!sorting) { + return; } + + this.source('set', 'params.sorting', { + field: this.index, + direction: sorting + }); + }, + + /** + * Toggles sorting direcction. + * + * @returns {String} New direction. + */ + toggleDirection: function () { + return this.sorting() === 'asc' ? + 'desc' : + 'asc'; }, getClickUrl: function (row) { @@ -61,16 +135,43 @@ define([ window.location.href = url; }, + /** + * Ment to preprocess data associated with a current columns' field. + * + * @param {*} data - Data to be preprocessed. + * @returns {String} + */ getLabel: function (data) { return data; }, + /** + * Returns path to the columns' header template. + * + * @returns {String} + */ getHeader: function () { return this.headerTmpl; }, + /** + * Returns path to the columns' body template. + * + * @returns {String} + */ getBody: function () { return this.bodyTmpl; + }, + + /** + * Listener of the providers' sorting state changes. + * + * @param {Srting} field - Field by which current sorting is performed. + */ + onSortChange: function (field) { + if (field !== this.index) { + this.sort(false); + } } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js index 3393c0094a8e8853a5a95b18de6e4805a92ac723..90ace7d79af6ad4eb96d1c0bceb5140ccdc7afe1 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js @@ -5,23 +5,40 @@ define([ 'mageUtils', 'moment', - './sortable' -], function (utils, moment, Sortable) { + './column' +], function (utils, moment, Column) { 'use strict'; - return Sortable.extend({ + return Column.extend({ defaults: { dateFormat: 'MMM D, YYYY h:mm:ss A' }, + /** + * Initializes components' static properties. + * + * @returns {DateColumn} Chainable. + */ initProperties: function () { this.dateFormat = utils.normalizeDate(this.dateFormat); return this._super(); }, - getLabel: function (data) { - return moment(data).isValid() ? moment(data).format(this.dateFormat) : ''; + /** + * Formats incoming date based on the 'dateFormat' property. + * + * @param {String} date - Date to be formatted. + * @returns {String} Formatted date. + */ + getLabel: function (date) { + date = moment(date); + + date = date.isValid() ? + date.format(this.dateFormat) : + ''; + + return date; } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index e6b33d1e62854e72ea6d8ed311317140cf4ad11b..7ced03bfba9256fd0fa18591e4042f2018339d53 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -13,13 +13,13 @@ define([ defaults: { headerTmpl: 'ui/grid/columns/multiselect', bodyTmpl: 'ui/grid/cells/multiselect', + sortable: false, menuVisible: false, excludeMode: false, allSelected: false, indetermine: false, selected: [], excluded: [], - ns: '${ $.provider }:params', actions: [{ value: 'selectAll', label: $t('Select all') @@ -40,13 +40,9 @@ define([ }, listens: { - '${ $.ns }.filters': 'deselectAll', + '${ $.provider }:params.filters': 'deselectAll', selected: 'onSelectedChange', rows: 'onRowsChange' - }, - - modules: { - source: '${ $.provider }' } }, @@ -87,7 +83,10 @@ define([ }, /** - * Selects all grid records, even those that are not visible on the page. + * Selects all grid records, even those that + * are not visible on the page. + * + * @returns {Multiselect} Chainable. */ selectAll: function () { this.excludeMode(true); @@ -100,44 +99,54 @@ define([ /** * Deselects all grid records. + * + * @returns {Multiselect} Chainable. */ deselectAll: function () { this.excludeMode(false); this.clearExcluded() - .deselectPage(); - this.selected.removeAll(); + .selected.removeAll(); return this; }, /** * Selects or deselects all records. + * + * @returns {Multiselect} Chainable. */ toggleSelectAll: function () { - return this.allSelected() ? - this.deselectAll() : - this.selectAll(); + this.allSelected() ? + this.deselectAll() : + this.selectAll(); + + return this; }, /** * Selects all records on the current page. + * + * @returns {Multiselect} Chainable. */ selectPage: function () { - this.selected( - _.union(this.selected(), this.getIds()) - ); + var selected = _.union(this.selected(), this.getIds()); + + this.selected(selected); return this; }, /** * Deselects all records on the current page. + * + * @returns {Multiselect} Chainable. */ deselectPage: function () { - var currentPageIds = this.getIds(); + var pageIds = this.getIds(); + this.selected.remove(function (value) { - return currentPageIds.indexOf(value) !== -1; + return !!~pageIds.indexOf(value); }); return this; @@ -209,18 +218,17 @@ define([ }, /** - * Exports selections to the data provider. + * Returns selections data. + * + * @returns {Object} */ - exportSelections: function () { - var data = {}, - type; - - type = this.excludeMode() ? 'excluded' : 'selected'; - - data[type] = this[type](); - data.total = this.totalSelected(); - - this.source('set', 'config.multiselect', data); + getSelections: function () { + return { + excluded: this.excluded(), + selected: this.selected(), + total: this.totalSelected(), + excludeMode: this.excludeMode() + }; }, /** @@ -231,27 +239,27 @@ define([ */ isActionRelevant: function (actionId) { var pageIds = this.getIds().length, - multiplePages = pageIds < this.totalRecords(); + multiplePages = pageIds < this.totalRecords(), + result = true; switch (actionId) { case 'selectPage': - - return multiplePages && !this.isPageSelected(true); + result = multiplePages && !this.isPageSelected(true); + break; case 'deselectPage': - - return multiplePages && this.isPageSelected(); + result = multiplePages && this.isPageSelected(); + break; case 'selectAll': - - return !this.allSelected(); + result = !this.allSelected(); + break; case 'deselectAll': - - return this.totalSelected() > 0; + result = this.totalSelected() > 0; } - return true; + return result; }, /** @@ -286,6 +294,8 @@ define([ /** * Updates values of the 'allSelected' * and 'indetermine' properties. + * + * @returns {Multiselect} Chainable. */ updateState: function () { var selected = this.selected().length, @@ -309,15 +319,14 @@ define([ }, /** - * Callback method to handle change of the selected items. + * Callback method to handle changes of selected items. * - * @param {Array} selected - List of the currently selected items. + * @param {Array} selected - An array of currently selected items. */ onSelectedChange: function (selected) { this.updateExcluded(selected) .countSelected() - .updateState() - .exportSelections(); + .updateState(); }, /** @@ -325,12 +334,12 @@ define([ * based on "selectMode" property. */ onRowsChange: function () { - var newSelected; + var newSelections; if (this.excludeMode()) { - newSelected = _.union(this.getIds(true), this.selected()); + newSelections = _.union(this.getIds(true), this.selected()); - this.selected(newSelected); + this.selected(newSelections); } } }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js index 54185ef6617aa82740e0bb7f76f1650798361f93..46cbff1cf1dfd610ea5a3cd016304493cf880fde 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js @@ -3,21 +3,30 @@ * See COPYING.txt for license details. */ define([ - './sortable' -], function (Sortable) { + './column' +], function (Column) { 'use strict'; - return Sortable.extend({ - getLabel: function (data) { + return Column.extend({ + /** + * Retrieves label associated with a provided value. + * + * @param {(String|Number)} value - Value of the option. + * @returns {String} + */ + getLabel: function (value) { var options = this.options || [], label = ''; - data = data || ''; + value = value || ''; + + /*eslint-disable eqeqeq*/ options.some(function (item) { label = item.label; - return item.value == data; + return item.value == value; }); + /*eslint-enable eqeqeq*/ return label; } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/sortable.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/sortable.js deleted file mode 100644 index d54971607c37b33ce3a56455d7b7f8bb18aef05b..0000000000000000000000000000000000000000 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/sortable.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - './column' -], function (Column) { - 'use strict'; - - return Column.extend({ - defaults: { - sortable: true, - sorting: false, - classes: { - 'asc': '_ascend', - 'desc': '_descend' - }, - links: { - sorting: '${ $.storageConfig.path }.sorting' - }, - imports: { - setSortClass: 'sorting', - push: 'sorting' - }, - listens: { - '${ $.provider }:params.sorting.field': 'onSortChange' - }, - modules: { - source: '${ $.provider }' - } - }, - - initObservable: function () { - this._super() - .observe('sorting sortClass'); - - return this; - }, - - sort: function (enabled) { - var direction; - - direction = enabled !== false ? - this.sorting() ? - this.toggleDirection() : - 'asc' : - false; - - this.sorting(direction); - }, - - push: function (sorting) { - if (!sorting) { - return; - } - - this.source('set', 'params.sorting', { - field: this.index, - direction: sorting - }); - }, - - toggleDirection: function () { - return this.sorting() === 'asc' ? - 'desc' : - 'asc'; - }, - - setSortClass: function (sorting) { - var sortClass = this.classes[sorting] || ''; - - this.sortClass(sortClass); - }, - - onSortChange: function (field) { - if (field !== this.index) { - this.sort(false); - } - } - }); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js index 78a115f2498a3068ca02baa8e07922013a91424a..286fe4307408feeaf678c3e778af0adf6a539edb 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js @@ -12,6 +12,22 @@ define([ ], function (_, utils, registry, Storage, Collapsible, layout) { 'use strict'; + /** + * Removes 'current' namespace from a 'path' string. + * + * @param {String} path + * @returns {String} Path without namespace. + */ + function removeStateNs(path) { + path = typeof path == 'string' ? path.split('.') : ''; + + if (path[0] === 'current') { + path.shift(); + } + + return path.join('.'); + } + return Collapsible.extend({ defaults: { template: 'ui/grid/controls/bookmarks/bookmarks', @@ -29,7 +45,7 @@ define([ }, newView: { label: 'New View', - index: '${ Date.now() }', + index: '_${ Date.now() }', editing: true, isNew: true } @@ -59,8 +75,8 @@ define([ */ initialize: function () { utils.limit(this, 'saveSate', 2000); - utils.limit(this, 'checkChanges', 200); utils.limit(this, '_defaultPolyfill', 1000); + utils.limit(this, 'checkChanges', 50); this._super() .initViews(); @@ -223,7 +239,9 @@ define([ */ applyView: function (view) { if (typeof view === 'string') { - view = this.elems.findWhere({index: view}); + view = this.elems.findWhere({ + index: view + }); } view.active(true); @@ -234,6 +252,34 @@ define([ return this; }, + /** + * Applies specified views' data on a current data object. + * + * @param {String} state - Defines what state shultd be used: default or saved. + * @param {String} [path] - Path to the property whose value + * will be inserted to a current data object. + * @returns {Bookmarks} Chainable. + */ + applyState: function (state, path) { + var view, + value; + + view = state === 'default' ? + this.defaultView : + this.activeView(); + + path = removeStateNs(path); + value = view.getData(path); + + if (!_.isUndefined(value)) { + path = path ? 'current.' + path : 'current'; + + this.set(path, value); + } + + return this; + }, + /** * Saves current data state. * @@ -260,24 +306,6 @@ define([ return this; }, - /** - * Retrieves last saved data of a current view. - * - * @returns {Object} - */ - getSaved: function () { - return this.activeView().getData(); - }, - - /** - * Retrieves default data. - * - * @returns {Object} - */ - getDefault: function () { - return this.defaultView.getData(); - }, - /** * Defines default data if it wasn't gathered previously. * Assumes that if theres is no views available, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js index b42fedfe78dd725567fbb7ed3f7f48b196533af5..afd5d4276de442947da6755cf208f191268226d3 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js @@ -58,12 +58,19 @@ define([ }, /** - * Retrieves current data. + * Retrieves copied views' data. * - * @returns {Object} + * @param {String} [path] - Path to the specific property. + * @returns {*} */ - getData: function () { - return utils.copy(this.data.items); + getData: function (path) { + var data = this.data.items; + + if (path) { + data = utils.nested(data, path); + } + + return utils.copy(data); }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js index f48a86abab1c2937c1a0076137fa7539fc41f2ca..765e437334285090378e1db15d8ac33753da9ab8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js @@ -3,10 +3,11 @@ * See COPYING.txt for license details. */ define([ + 'underscore', 'mageUtils', 'mage/translate', 'Magento_Ui/js/lib/collapsible' -], function (utils, $t, Collapsible) { +], function (_, utils, $t, Collapsible) { 'use strict'; return Collapsible.extend({ @@ -15,32 +16,59 @@ define([ minVisible: 1, maxVisible: 30, viewportSize: 18, + columnsData: { + container: 'elems' + }, + imports: { + addColumns: '${ $.columnsData.provider }:${ $.columnsData.container }' + }, templates: { headerMsg: $t('${ $.visible } out of ${ $.total } visible') } }, /** - * Action Reset + * Resets columns visibility to theirs default state. + * + * @returns {Columns} Chainable. */ reset: function () { - this.elems.each('applyState', 'visible', 'default'); + this.elems.each('applyState', 'default', 'visible'); return this; }, /** - * Action Cancel + * Applies last saved state of columns visibility. + * + * @returns {Columns} Chainable. */ cancel: function () { - this.elems.each('applyState', 'visible', 'last'); + this.elems.each('applyState', 'saved', 'visible'); return this; }, /** - * Helper, which helps to stop resizing. - * viewportSize limits number of elements. + * Adds columns whose visibility can be controlled to the component. + * + * @param {Array} columns - Elements array that will be added to component. + * @returns {Columns} Chainable. + */ + addColumns: function (columns) { + columns = _.where(columns, { + controlVisibility: true + }); + + this.insertChild(columns); + + return this; + }, + + /** + * Defines whether child elements array length + * is greater than the 'viewportSize' property. + * * @returns {Boolean} */ hasOverflow: function () { @@ -51,6 +79,7 @@ define([ * Helper, checks * - if less than one item choosen * - if more then viewportMaxSize choosen + * * @param {Object} elem * @returns {Boolean} */ @@ -63,7 +92,8 @@ define([ }, /** - * Helper, returns number of visible checkboxes + * Counts number of visible columns. + * * @returns {Number} */ countVisible: function () { @@ -72,8 +102,7 @@ define([ /** * Compile header message from headerMessage setting. - * Expects Underscore template format - * @param {String} text - underscore-format template + * * @returns {String} */ getHeaderMessage: function () { diff --git a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js new file mode 100644 index 0000000000000000000000000000000000000000..d1eb5ee827c40825b4f7df3620bb7215d4e21b68 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js @@ -0,0 +1,473 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'ko', + 'jquery', + 'underscore', + 'Magento_Ui/js/lib/class' +], function (ko, $, _, Class) { + 'use strict'; + + var isTouchDevice = typeof document.ontouchstart !== 'undefined', + transformProp; + + /** + * Defines supported css 'transform' property. + * + * @returns {String|Undefined} + */ + transformProp = (function () { + var style = document.body.style, + base = 'Transform', + vendors = ['webkit', 'moz', 'ms', 'o'], + vi = vendors.length, + property; + + if (typeof style.transform != 'undefined') { + return 'transform'; + } + + while (vi--) { + property = vendors[vi] + base; + + if (typeof style[property] != 'undefined') { + return property; + } + } + })(); + + /** + * Returns first touch data if it's available. + * + * @param {(MouseEvent|TouchEvent)} e - Event object. + * @returns {Object} + */ + function getTouch(e) { + return e.touches ? e.touches[0] : e; + } + + /** + * Moves specified DOM element to the x and y coordinates. + * + * @param {HTMLElement} elem - Element to be relocated. + * @param {Number} x - X coordinate. + * @param {Number} y - Y coordinate. + */ + function locate(elem, x, y) { + var value = 'translate(' + x + 'px,' + y + 'px)'; + + elem.style[transformProp] = value; + } + + /*eslint-disable no-extra-parens*/ + /** + * Checks if specified coordinate is inside of the provided area. + * + * @param {Number} x - X coordinate. + * @param {Number} y - Y coordinate. + * @param {Object} area - Object which represents area. + * @returns {Boolean} + */ + function isInside(x, y, area) { + return ( + area && + x >= area.left && x <= area.right && + y >= area.top && y <= area.bottom + ); + } + /*eslint-enable no-extra-parens*/ + + /** + * Calculates distance between two points. + * + * @param {Number} x1 - X coordinate of a first point. + * @param {Number} y1 - Y coordinate of a first point. + * @param {Number} x2 - X coordinate of a second point. + * @param {Number} y2 - Y coordinate of a second point. + * @returns {Number} Distance between points. + */ + function distance(x1, y1, x2, y2) { + var dx = x2 - x1, + dy = y2 - y1; + + dx *= dx; + dy *= dy; + + return Math.sqrt(dx + dy); + } + + /** + * Returns viewModel associated with a provided DOM element. + * + * @param {HTMLElement} elem + * @returns {Object|Array} + */ + function getModel(elem) { + return ko.contextFor(elem).$data; + } + + return Class.extend({ + defaults: { + noSelectClass: '_no-select', + hiddenClass: '_hidden', + fixedX: false, + fixedY: true, + minDistance: 2, + columns: [] + }, + + /** + * Initializes Dnd component. + * + * @returns {Dnd} Chainable. + */ + initialize: function () { + _.bindAll(this, 'onMouseMove', 'onMouseUp', 'onMouseDown'); + + this.$body = $('body'); + + this._super() + .initListeners(); + + return this; + }, + + /** + * Binds necessary events listeners. + * + * @returns {Dnd} Chainbale. + */ + initListeners: function () { + var addListener = document.addEventListener; + + if (isTouchDevice) { + addListener('touchmove', this.onMouseMove, false); + addListener('touchend', this.onMouseUp, false); + addListener('touchleave', this.onMouseUp, false); + } else { + addListener('mousemove', this.onMouseMove, false); + addListener('mouseup', this.onMouseUp, false); + } + + return this; + }, + + /** + * Sets specified column as a draggable element. + * + * @param {HTMLTableHeaderCellElement} column - Columns header element. + * @returns {Dnd} Chainable. + */ + addColumn: function (column) { + this.columns.push(column); + + isTouchDevice ? + column.addEventListener('touchstart', this.onMouseDown, false) : + column.addEventListener('mousedown', this.onMouseDown, false); + + return this; + }, + + /** + * Defines specified table element as a main container. + * + * @param {HTMLTableElement} table + * @returns {Dnd} Chainable. + */ + setTable: function (table) { + this.table = table; + + return this; + }, + + /** + * Defines specified table element as a draggable table. + * Only this element will be moved across the screen. + * + * @param {HTMLTableElement} dragTable + * @returns {Dnd} Chainable. + */ + setDragTable: function (dragTable) { + this.dragTable = dragTable; + + return this; + }, + + /** + * Calculates coordinates of draggable elements. + * + * @returns {Dnd} Chainbale. + */ + _cacheCoords: function () { + var container = this.table.getBoundingClientRect(), + bodyRect = document.body.getBoundingClientRect(), + grabbed = this.grabbed, + dragElem = grabbed.elem, + cells = _.toArray(dragElem.parentNode.cells), + rect; + + this.coords = this.columns.map(function (column) { + var data; + + rect = column.getBoundingClientRect(); + + data = { + index: cells.indexOf(column), + target: column, + orig: rect, + left: rect.left - bodyRect.left, + right: rect.right - bodyRect.left, + top: rect.top - bodyRect.top, + bottom: container.bottom - bodyRect.top + }; + + if (column === dragElem) { + this.dragArea = data; + + grabbed.shiftX = rect.left - grabbed.x; + grabbed.shiftY = rect.top - grabbed.y; + } + + return data; + }, this); + + return this; + }, + + /** + * Coppies dimensions of a grabbed column + * to a draggable grid. + * + * @param {HTMLTableHeaderCellElement} elem - Grabbed column. + * @returns {Dnd} Chainable. + */ + _copyDimensions: function (elem) { + var dragTable = this.dragTable, + dragBody = dragTable.tBodies[0], + dragTrs = dragBody ? dragBody.children : [], + origTrs = _.toArray(this.table.tBodies[0].children), + columnIndex = _.toArray(elem.parentNode.cells).indexOf(elem), + origTd, + dragTr; + + dragTable.style.width = elem.offsetWidth + 'px'; + dragTable.tHead.firstElementChild.cells[0].style.height = elem.offsetHeight + 'px'; + + origTrs.forEach(function (origTr, rowIndex) { + origTd = origTr.cells[columnIndex]; + dragTr = dragTrs[rowIndex]; + + if (origTd && dragTr) { + dragTr.cells[0].style.height = origTd.offsetHeight + 'px'; + } + }); + + return this; + }, + + /** + * Matches provided coordinates to available areas. + * + * @param {Number} x - X coordinate of a mouse pointer. + * @param {Number} y - Y coordinate of a mouse pointer. + * @returns {Object|Undefined} Matched area. + */ + _getDropArea: function (x, y) { + return _.find(this.coords, function (area) { + return isInside(x, y, area); + }); + }, + + /** + * Updates state of hovered areas. + * + * @param {Number} x - X coordinate of a mouse pointer. + * @param {Number} y - Y coordinate of a mouse pointer. + */ + _updateAreas: function (x, y) { + var leavedArea = this.dropArea, + area = this.dropArea = this._getDropArea(x, y); + + if (leavedArea) { + this.dragleave(leavedArea); + } + + if (area && area.target !== this.dragArea.target) { + this.dragenter(area); + } + }, + + /** + * Grab action handler. + * + * @param {Number} x - X coordinate of a grabbed point. + * @param {Number} y - Y coordinate of a grabbed point. + * @param {HTMLElement} elem - Grabbed elemenet. + */ + grab: function (x, y, elem) { + this.initDrag = true; + this.grabbed = { + x: x, + y: y, + elem: elem + }; + + this.$body.addClass(this.noSelectClass); + }, + + /** + * Dragstart action handler. + * + * @param {HTMLTableHeaderCellElement} elem - Element which is dragging. + */ + dragstart: function (elem) { + this.initDrag = false; + this.dropArea = false; + this.dragging = true; + + getModel(elem).dragging(true); + + this._cacheCoords() + ._copyDimensions(elem); + + $(this.dragTable).removeClass(this.hiddenClass); + }, + + /** + * Drag action handler. Locates draggable + * grid at a specified coordinates. + * + * @param {Number} x - X coordinate. + * @param {Number} y - Y coordinate. + */ + drag: function (x, y) { + var grabbed = this.grabbed, + dragArea = this.dragArea, + posX = x + grabbed.shiftX, + posY = y + grabbed.shiftY; + + if (this.fixedX) { + x = dragArea.left; + posX = dragArea.orig.left; + } + + if (this.fixedY) { + y = dragArea.top; + posY = dragArea.orig.top; + } + + locate(this.dragTable, posX, posY); + + if (!isInside(x, y, this.dropArea)) { + this._updateAreas(x, y); + } + }, + + /** + * Dragenter action handler. + * + * @param {Object} dropArea + */ + dragenter: function (dropArea) { + var direction = this.dragArea.index < dropArea.index ? + 'left' : + 'right'; + + getModel(dropArea.target).dragover(direction); + }, + + /** + * Dragleave action handler. + * + * @param {Object} dropArea + */ + dragleave: function (dropArea) { + getModel(dropArea.target).dragover(false); + }, + + /** + * Dragend action handler. + * + * @param {Object} dragArea + */ + dragend: function (dragArea) { + var dropArea = this.dropArea, + dragElem = dragArea.target; + + this.dragging = false; + + $(this.dragTable).addClass(this.hiddenClass); + + getModel(dragElem).dragging(false); + + if (dropArea && dropArea.target !== dragElem) { + this.drop(dropArea, dragArea); + } + }, + + /** + * Drop action handler. + * + * @param {Object} dropArea + * @param {Object} dragArea + */ + drop: function (dropArea, dragArea) { + var dropModel = getModel(dropArea.target), + dragModel = getModel(dragArea.target); + + getModel(this.table).insertChild(dragModel, dropModel); + dropModel.dragover(false); + }, + + /** + * Documents' 'mousemove' event handler. + * + * @param {(MouseEvent|TouchEvent)} e - Event object. + */ + onMouseMove: function (e) { + var grab = this.grabbed, + touch = getTouch(e), + x = touch.pageX, + y = touch.pageY; + + if (this.initDrag || this.dragging) { + e.preventDefault(); + } + + if (this.initDrag && distance(x, y, grab.x, grab.y) >= this.minDistance) { + this.dragstart(grab.elem); + } + + if (this.dragging) { + this.drag(x, y); + } + }, + + /** + * Documents' 'mouseup' event handler. + */ + onMouseUp: function () { + if (this.initDrag || this.dragging) { + this.initDrag = false; + this.$body.removeClass(this.noSelectClass); + } + + if (this.dragging) { + this.dragend(this.dragArea); + } + }, + + /** + * Columns' 'mousedown' event handler. + * + * @param {(MouseEvent|TouchEvent)} e - Event object. + */ + onMouseDown: function (e) { + var touch = getTouch(e); + + this.grab(touch.pageX, touch.pageY, e.currentTarget); + } + }); +}); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index bcd26c0f6fa5ed3f641f455747094a401641a5fd..558e6629a166b5e47676af7513415add275e54c6 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -5,8 +5,9 @@ define([ 'underscore', 'mageUtils', + 'Magento_Ui/js/core/renderer/layout', 'Magento_Ui/js/lib/collapsible' -], function (_, utils, Collapsible) { +], function (_, utils, layout, Collapsible) { 'use strict'; function extractPreview(elem) { @@ -39,15 +40,15 @@ define([ filters: { placeholder: true }, - listens: { - active: 'extractPreviews', - applied: 'cancel extractActive' - }, links: { applied: '${ $.storageConfig.path }' }, exports: { applied: '${ $.provider }:params.filters' + }, + listens: { + active: 'updatePreviews', + applied: 'cancel extractActive' } }, @@ -57,6 +58,8 @@ define([ * @returns {Filters} Chainable. */ initialize: function () { + this._processedColumns = {}; + this._super() .cancel() .extractActive(); @@ -182,12 +185,12 @@ define([ }, /** - * Extract previews of a specified filters. + * Updates previews of a specified filters. * * @param {Array} filters - Filters to be processed. * @returns {Filters} Chainable. */ - extractPreviews: function (filters) { + updatePreviews: function (filters) { var previews = filters.map(extractPreview); this.previews(_.compact(previews)); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index fd7d70f9f7fd13f62fb111a70eacc1957655017b..299560ba2bfe5eaa6a4e06319e7388135e6ee941 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -3,23 +3,54 @@ * See COPYING.txt for license details. */ define([ + 'underscore', 'uiComponent', - 'Magento_Ui/js/lib/spinner' -], function (Component, loader) { + 'Magento_Ui/js/lib/spinner', + 'Magento_Ui/js/core/renderer/layout' +], function (_, Component, loader, layout) { 'use strict'; return Component.extend({ defaults: { template: 'ui/grid/listing', + positions: false, + storageConfig: { + positions: '${ $.storageConfig.path }.positions' + }, + dndConfig: { + name: '${ $.name }_dnd', + component: 'Magento_Ui/js/grid/dnd', + containerTmpl: 'ui/grid/dnd/listing', + enabled: true + }, imports: { rows: '${ $.provider }:data.items' }, listens: { + elems: 'setPositions', '${ $.provider }:reload': 'showLoader', '${ $.provider }:reloaded': 'hideLoader' + }, + modules: { + dnd: '${ $.dndConfig.name }' } }, + /** + * Initializes Listing component. + * + * @returns {Listing} Chainable. + */ + initialize: function () { + this._super(); + + if (this.dndConfig.enabled) { + this.initDnd(); + } + + return this; + }, + /** * Initializes observable properties. * @@ -32,6 +63,90 @@ define([ return this; }, + /** + * Creates drag&drop widget instance. + * + * @returns {Listing} Chainable. + */ + initDnd: function () { + layout([this.dndConfig]); + + return this; + }, + + /** + * Called when another element was added to current component. + * + * @returns {Listing} Chainable. + */ + initElement: function () { + var currentCount = this.elems().length, + totalCount = this.initChildCount; + + if (totalCount === currentCount) { + this.initPositions(); + } + + return this._super(); + }, + + /** + * Defines initial order of child elements. + * + * @returns {Listing} Chainable. + */ + initPositions: function () { + var link = { + positions: this.storageConfig.positions + }; + + this.on('positions', this.applyPositions.bind(this)); + + this.setLinks(link, 'imports') + .setLinks(link, 'exports'); + + return this; + }, + + /** + * Updates current state of child positions. + * + * @returns {Listing} Chainable. + */ + setPositions: function () { + var positions = {}; + + this.elems.each(function (elem, index) { + positions[elem.index] = index; + }); + + this.set('positions', positions); + + return this; + }, + + /** + * Reseorts child elements array according to provided positions. + * + * @param {Object} positions - Object where key represents child + * index and value is its' position. + * @returns {Listing} Chainable. + */ + applyPositions: function (positions) { + var sorting; + + sorting = this.elems.map(function (elem) { + return { + elem: elem, + position: positions[elem.index] + }; + }); + + this.insertChild(sorting); + + return this; + }, + /** * Hides loader. */ diff --git a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js index 35c792feaba23e40c19c68f2609171c798983297..21e86a6d640b2f43aab310774f09ce31d69583de 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js @@ -4,37 +4,178 @@ */ define([ 'underscore', + 'uiRegistry', 'mageUtils', - 'Magento_Ui/js/lib/collapsible' -], function (_, utils, Collapsible) { + 'Magento_Ui/js/lib/collapsible', + 'Magento_Ui/js/modal/confirm', + 'Magento_Ui/js/modal/alert', + 'mage/translate' +], function (_, registry, utils, Collapsible, confirm, alert, $t) { 'use strict'; return Collapsible.extend({ defaults: { template: 'ui/grid/actions', - noItems: 'You haven\'t selected any items!' + selectProvider: '', + actions: [], + noItemsMsg: $t('You haven\'t selected any items!'), + modules: { + selections: '${ $.selectProvider }' + } }, - applyAction: function (action) { - var proceed = true, - selections = this.source.get('config.multiselect'); + /** + * Initializes observable properties. + * + * @returns {Massactions} Chainable. + */ + initObservable: function () { + this._super() + .observe('actions'); + + return this; + }, - if (!selections || !selections.total) { - proceed = false; + /** + * Applies specified action. + * + * @param {String} actionIndex - Actions' identifier. + * @returns {Massactions} Chainable. + */ + applyAction: function (actionIndex) { + var data = this.getSelections(), + action, + callback; - alert(this.noItems); - } + if (!data.total) { + alert({ + content: this.noItemsMsg + }); - if (proceed && action.confirm) { - proceed = window.confirm(action.confirm); + return this; } - if (proceed) { - utils.submit({ - url: action.url, - data: selections + action = this.getAction(actionIndex), + callback = this._getCallback(action, data); + + action.confirm ? + this._confirm(action, callback) : + callback(); + + return this; + }, + + /** + * Retrieves selections data from the selections provider. + * + * @returns {Object|Undefined} + */ + getSelections: function () { + var provider = this.selections(), + selections = provider && provider.getSelections(); + + return selections; + }, + + /** + * Retrieves action object associated with a specified index. + * + * @param {String} actionIndex - Actions' identifier. + * @returns {Object} Action object. + */ + getAction: function (actionIndex) { + return _.findWhere(this.actions(), { + type: actionIndex + }); + }, + + /** + * Adds new action. If action with a specfied identifier + * already exists, than the original one will be overrided. + * + * @param {Object} action - Action object. + * @returns {Massactions} Chainable. + */ + addAction: function (action) { + var actions = this.actions(), + index = _.findIdnex(actions, { + type: action.type }); + + ~index ? + actions[index] = action : + actions.push(action); + + this.actions(actions); + + return this; + }, + + /** + * Creates action callback based on its' data. If action doesn't spicify + * a callback function than the default one will be used. + * + * @private + * @param {Object} action - Actions' object. + * @param {Object} selections - Selections data. + * @returns {Function} Callback function. + */ + _getCallback: function (action, selections) { + var callback = action.callback, + args = [action, selections]; + + if (utils.isObject(callback)) { + args.unshift(callback.target); + + callback = registry.async(callback.provider); + } else if (typeof callback != 'function') { + callback = this.defaultCallback.bind(this); } + + return function () { + callback.apply(null, args); + }; + }, + + /** + * Default action callback. Sends selections data + * via POST request. + * + * @param {Object} data - Selections data. + * @param {Object} action - Action data. + */ + defaultCallback: function (data, action) { + var selections = {}; + + if (data.excludeMode) { + selections.excluded = data.excluded; + } else { + selections.selected = data.selected; + } + + utils.submit({ + url: action.url, + data: selections + }); + }, + + /** + * Shows actions' confirmation window. + * + * @param {Object} action - Actions' data. + * @param {Function} callback - Callback that will be + * invoked if action is confirmed. + */ + _confirm: function (action, callback) { + var confirmData = action.confirm; + + confirm({ + title: confirmData.title, + content: confirmData.message, + actions: { + confirm: callback + } + }); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging.js b/app/code/Magento/Ui/view/base/web/js/grid/paging.js index e04597379afa39323ca1a5700b7d5a14e06017c9..0fd512c3ffc48a3e3b840dbb2d8ef29d2ef0d829 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging.js @@ -23,9 +23,10 @@ define([ template: 'ui/grid/paging', pageSize: 20, current: 1, + selectProvider: '', imports: { - totalSelected: '${ $.provider }:config.multiselect.total', + totalSelected: '${ $.selectProvider }:totalSelected', totalRecords: '${ $.provider }:data.totalRecords' }, diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/links.js b/app/code/Magento/Ui/view/base/web/js/lib/component/links.js index 94df6c5d22c3cecb1d53de18eca10c00c01e89b5..deecc3fa9a14acdaf5f59b073a7d0b067c90c7be 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/links.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/component/links.js @@ -81,22 +81,19 @@ define([ } function setLinked(map, data) { - var hasLink, - match; - + var match; + if (!map) { return; } - hasLink = map.some(function (item) { - match = item; - - return !item.linked && - item.target === data.target && - item.property === data.property; + match = _.findWhere(map, { + linked: false, + target: data.target, + property: data.property }); - if (hasLink) { + if (match) { match.linked = data; data.linked = match; } @@ -106,6 +103,8 @@ define([ var direction = data.direction, map = maps[direction]; + data.linked = false; + (map[property] = map[property] || []).push(data); direction = direction === 'imports' ? 'exports' : 'imports'; @@ -165,7 +164,7 @@ define([ }); }); }); - + return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js b/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js index cc82f645030e071a202ae68fca9ccb282ac27de6..a91b3cd38b611151d50068a2c41fc94a818e4085 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js @@ -10,45 +10,17 @@ define([ ], function (ko, _, utils, registry) { 'use strict'; - function getIndex(container, target) { - var result; - - container.some(function (item, index) { - result = index; - - return item && (item.name === target || item === target); - }); - - return result; - } - function compact(container) { return container.filter(utils.isObject); } - function reserve(container, elem, position) { - var offset = position, - target; - - if (_.isObject(position)) { - target = position.after || position.before; - offset = getIndex(container, target); - - if (position.after) { - ++offset; - } - } - - offset = utils.formatOffset(container, offset); - - container[offset] ? - container.splice(offset, 0, elem) : - container[offset] = elem; - - return offset; - } - return { + /** + * Retrieves requested region. + * Creates region if it was not created yet + * + * @returns {ObservableArray}. + */ getRegion: function (name) { var regions = this.regions = this.regions || {}; @@ -59,23 +31,65 @@ define([ return regions[name]; }, + /** + * Replaces specified regions' data with a provided one. + * Creates region if it was not created yet. + * + * @param {Array} items - New regions' data. + * @param {String} name - Name of the region. + * @returns {Component} Chainable. + */ updateRegion: function (items, name) { var region = this.getRegion(name); region(items); + + return this; }, /** * Requests specified components to insert * them into 'elems' array starting from provided position. * - * @param {String} elem - Name of the component to insert. + * @param {String} elems - Name of the component to insert. * @param {Number} [position=-1] - Position at which to insert elements. * @returns {Component} Chainable. */ - insertChild: function (elem, position) { - reserve(this._elems, elem, position); - registry.get(elem, this._insert); + insertChild: function (elems, position) { + var container = this._elems, + update = false, + newItems = [], + newItem; + + if (Array.isArray(elems)) { + newItems = elems.map(function (item) { + newItem = item.elem ? + utils.insert(item.elem, container, item.position) : + utils.insert(item, container, position); + + return newItem; + }); + } else { + newItems.push(utils.insert(elems, container, position)); + } + + newItems.forEach(function (item) { + if (!item) { + return; + } + + if (item === true) { + update = true; + } else { + _.isString(item) ? + registry.get(item, this._insert) : + this._insert(item); + } + }, this); + + if (update) { + this._update(); + } return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js new file mode 100644 index 0000000000000000000000000000000000000000..2297f2d5cf1764d0198b791ec6011f3b2debf2b8 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js @@ -0,0 +1,22 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'ko' +], function (ko) { + 'use strict'; + + ko.bindingHandlers.afterRender = { + /** + * Binding init callback. + */ + init: function (element, valueAccessor, allBindings, viewModel) { + var callback = valueAccessor(); + + if (typeof callback === 'function') { + callback(element, viewModel); + } + } + }; +}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js index a8bb4a15077772cc66f78d7f85a00f1e94383161..2758b3f8c2391b60ff9fefa818279fc9af09a295 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js @@ -14,11 +14,11 @@ define([ './bind/optgroup', './bind/fadeVisible', './bind/mage-init', + './bind/after-render', './extender/observable_array' -], function(ko, templateEngine) { +], function (ko, templateEngine) { 'use strict'; ko.setTemplateEngine(templateEngine); ko.applyBindings(); - }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js b/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js index adf6b9176b4004d6d55c52cffe1fc2398cb13207..4bf6b21f686f8365c90515b2919c108b5fda2d8d 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js @@ -7,23 +7,23 @@ define([ 'underscore', './storage', './events' -], function(utils, _, Storage, Events) { +], function (utils, _, Storage, Events) { 'use strict'; - function async(name, registry, method) { + function async(name, registry, method) { var args = _.toArray(arguments).slice(3); if (_.isString(method)) { registry.get(name, function (component) { - component[method].apply(component, args); + component[method].apply(component, args); }); } else if (_.isFunction(method)) { - registry.get(name, method); + registry.get(name, method); } else if (!args.length) { return registry.get(name); } - } - + } + function Registry() { this.storage = new Storage(); this.events = new Events(this.storage); @@ -35,9 +35,9 @@ define([ /** * Retrieves data from registry. * - * @params {(String|Array)} elems - + * @param {(String|Array)} elems - * An array of elements' names or a string of names divided by spaces. - * @params {Function} [callback] - + * @param {Function} [callback] - * Callback function that will be triggered * when all of the elements are registered. * @returns {Array|*|Undefined} @@ -45,7 +45,7 @@ define([ * or an element itself if only is requested. * If callback function is specified then returns 'undefined'. */ - get: function(elems, callback) { + get: function (elems, callback) { var records; elems = utils.stringToArray(elems) || []; @@ -64,8 +64,8 @@ define([ /** * Sets data to registry. * - * @params {String} elems - Elements' name. - * @params {*} value - Value that will be assigned to the element. + * @param {String} elem - Elements' name. + * @param {*} value - Value that will be assigned to the element. * @returns {registry} Chainable. */ set: function (elem, value) { @@ -77,7 +77,7 @@ define([ /** * Removes specified elements from a storage. - * @params {(String|Array)} elems - + * @param {(String|Array)} elems - * An array of elements' names or a string of names divided by spaces. * @returns {registry} Chainable. */ @@ -92,7 +92,7 @@ define([ /** * Checks whether specified elements has been registered. * - * @params {(String|Array)} elems - + * @param {(String|Array)} elems - * An array of elements' names or a string of names divided by spaces. * @returns {Boolean} */ diff --git a/app/code/Magento/Ui/view/base/web/js/modal/alert.js b/app/code/Magento/Ui/view/base/web/js/modal/alert.js new file mode 100644 index 0000000000000000000000000000000000000000..33be3c8041dea6c2f0586124bc3f1e8120020cef --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/modal/alert.js @@ -0,0 +1,40 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'jquery', + 'underscore', + 'jquery/ui', + 'Magento_Ui/js/modal/confirm', + 'mage/translate' +], function ($, _) { + 'use strict'; + + $.widget('mage.alert', $.mage.confirm, { + options: { + modalClass: 'confirm', + title: $.mage.__('Attention'), + actions: { + always: function () {} + }, + buttons: [{ + text: $.mage.__('OK'), + class: 'action-secondary', + click: function () { + this.closeModal(true); + } + }] + }, + closeModal: function () { + this.options.actions.always(); + this.element.bind('confirmclosed', _.bind(this._remove, this)); + + return this._super(); + } + }); + + return function (config) { + return $('<div></div>').html(config.content).alert(config); + }; +}); diff --git a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js new file mode 100644 index 0000000000000000000000000000000000000000..7bad2023b649b18edeaf710780d8cf0e73a5f6b9 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js @@ -0,0 +1,66 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'jquery', + 'underscore', + 'jquery/ui', + 'Magento_Ui/js/modal/modal', + 'mage/translate' +], function ($, _) { + 'use strict'; + + $.widget('mage.confirm', $.mage.modal, { + options: { + modalClass: 'confirm', + title: '', + actions: { + always: function(){}, + confirm: function(){}, + cancel: function(){} + }, + buttons: [{ + text: $.mage.__('Cancel'), + class: 'action-tertiary', + click: function(){ + this.closeModal(); + } + }, { + text: $.mage.__('OK'), + class: 'action-secondary', + click: function() { + this.closeModal(true); + } + }] + }, + _create: function() { + this._super(); + this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); + this.openModal(); + }, + _remove: function() { + this.modal.remove(); + }, + openModal: function() { + return this._super(); + }, + closeModal: function(result) { + result = result || false; + + if (result) { + this.options.actions.confirm(); + } else { + this.options.actions.cancel(); + } + this.options.actions.always(); + this.element.bind('confirmclosed', _.bind(this._remove, this)); + + return this._super(); + } + }); + + return function (config) { + return $('<div></div>').html(config.content).confirm(config); + }; +}); diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modalToggle.js b/app/code/Magento/Ui/view/base/web/js/modal/modalToggle.js new file mode 100644 index 0000000000000000000000000000000000000000..65714ef029cf6ba25199057fc8b64ab03515b01f --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/modal/modalToggle.js @@ -0,0 +1,28 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'jquery', + 'Magento_Ui/js/modal/modal' +], function($){ + 'use strict'; + + return function(config, el) { + var widget = $(config.content).modal(config); + + $(el).on(config.toggleEvent, function() { + var state = widget.data('mage-modal').options.isOpen; + + if (state) { + widget.modal('closeModal'); + } else { + widget.modal('openModal'); + } + + return false; + }); + + return widget; + }; +}); \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/actions.html b/app/code/Magento/Ui/view/base/web/templates/grid/actions.html index 685936aa8430382b59ff1b065c74e244aadcd24a..89bf5ba4061d17358994f8a2c3cf9d8158d90d51 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/actions.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/actions.html @@ -18,8 +18,8 @@ <ul class="action-menu" data-bind="css: {'_active': opened}, - foreach: {data: actions, as: 'action'}"> - <li data-bind="click: $parent.applyAction.bind($parent, action)"> + foreach: actions"> + <li data-bind="click: $parent.applyAction.bind($parent, type)"> <span class="action-menu-item" data-bind="text: label"></span> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html index 67f195377c669e5ba824a8be13603c69fa2aa0bf..85fba7ed0c6c2d5c725486bd30bf69b65c4ea213 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html @@ -6,25 +6,47 @@ --> <td data-bind="visible: visible" class="data-grid-actions-cell"> - <!-- ko if: getDisplayed(row[field.index]).length > 1 --> - <div class="action-select-wrap _active"> - <button class="action-select"> + <!-- ko if: isSingle($parentContext.$index()) --> + <!-- ko foreach: getVisibleActions($parentContext.$index()) --> + <a + class="action-menu-item" + data-bind=" + attr: { + href: $data.href + }, + click: $parent.applyAction.bind($parent, index, rowIndex), + text: $data.label"></a> + <!-- /ko --> + <!-- /ko --> + + <!-- ko if: isMultiple($parentContext.$index()) --> + <div + class="action-select-wrap" + data-bind=" + css : { + '_active' : opened() === $parentContext.$index() + }, + outerClick: closeList.bind($data, $parentContext.$index())"> + <button class="action-select" data-bind="click: toggleList.bind($data, $parentContext.$index())"> <span data-bind="text: $t('Select')"></span> </button> - <ul class="action-menu _active"> + <ul + class="action-menu" + data-bind=" + css: {'_active': opened() === $parentContext.$index()}"> + <!-- ko foreach: getVisibleActions($parentContext.$index()) --> <li> <a class="action-menu-item" - data-bind="attr: {href: displayed[0].href}, - text: displayed[0].label"></a> + data-bind=" + attr: { + href: $data.href + }, + click: $parent.applyAction.bind($parent, index, rowIndex), + text: $data.label"></a> </li> + <!-- /ko --> </ul> </div> <!-- /ko --> - <!-- ko ifnot: getDisplayed(row[field.index]).length > 1 --> - <a - class="action-menu-item" - data-bind="attr: {href: displayed[0].href}, - text: displayed[0].label"></a> - <!-- /ko --> </td> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html index 27d6bfcf6216b5a5d6ace4d652e681814b99bcaf..166a4f1f9b7e9a7d25b6a973f95e462019e9234e 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html @@ -5,7 +5,9 @@ */ --> <td - data-bind="visible: visible, - click: isClickable(row) ? redirect.bind($data, getClickUrl(row)) : false, - html: getLabel(row[field.index])" + data-bind=" + visible: visible, + css: { _dragging: dragging }, + click: isClickable(row) ? redirect.bind($data, getClickUrl(row)) : false, + html: getLabel(row[field.index])" data-action="grid-row-edit"></td> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html index 81e6b2c5bc3706a042daf1f6e2b3725e84b681c4..c11acd1f36ecea301095cea6258c9b1a65c781e7 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html @@ -10,9 +10,12 @@ <input class="admin__control-checkbox" type="checkbox" - data-bind="checked: selected, - value: row[indexField], - attr: {id: 'check' + row[indexField]}"> + data-bind=" + checked: selected, + value: row[indexField], + attr: { + id: 'check' + row[indexField] + }"> <label data-bind="attr: {for: 'check' + row[indexField]}"></label> </label> </td> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html index 257b4b0585d45aec84541ae338780047e16e3852..09ecafbdfbab9bf193a52b0f28063a79693ba68d 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html @@ -4,8 +4,10 @@ * See COPYING.txt for license details. */ --> -<td - data-bind="visible: visible, - click: isClickable(row) ? redirect.bind($data, getClickUrl(row)) : false, - text: getLabel(row[field.index])" +<td + data-bind=" + visible: visible, + css: { _dragging: dragging }, + click: isClickable(row) ? redirect.bind($data, getClickUrl(row)) : false, + text: getLabel(row[field.index])" data-action="grid-row-edit"></td> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/actions.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/actions.html deleted file mode 100644 index 5d3aaa53d9bafc964ba9515d5fa6cb900de9c594..0000000000000000000000000000000000000000 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/actions.html +++ /dev/null @@ -1,10 +0,0 @@ -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> - -<th class="data-grid-th data-grid-actions-cell" data-bind="visible: visible"> - <span data-bind="text: label"></span> -</th> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html index dc7b883659adb7cc690246acbc840cc12520ef6d..41207503828c1221929d6b0eb96914dcd45b5b00 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html @@ -4,17 +4,21 @@ * See COPYING.txt for license details. */ --> - -<!-- ko if: sortable --> - <th - class="data-grid-th _sortable" - data-bind="css: sortClass, click: sort, visible: visible"> - <span data-bind="text: label"></span> - </th> -<!-- /ko --> - -<!-- ko ifnot: sortable --> - <th class="data-grid-th" data-bind="visible: visible"> - <span data-bind="text: label"></span> - </th> -<!-- /ko --> +<th + class="data-grid-th" + data-bind=" + afterRender: draggable && $parent.dndConfig.enabled ? + (function (elem) { $parent.dnd('addColumn', elem); }) : + false, + css: { + '_sortable': sortable, + '_draggable': draggable, + '_ascend': sorting() === 'asc', + '_descend': sorting() === 'desc', + '_dragover-left': dragover() === 'right', + '_dragover-right': dragover() === 'left' + }, + click: sort, + visible: visible"> + <span data-bind="text: label"></span> +</th> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/dnd/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/dnd/listing.html new file mode 100644 index 0000000000000000000000000000000000000000..38b622cdef6cfe21bfe25e9176b2ff90c8fe1a8b --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/templates/grid/dnd/listing.html @@ -0,0 +1,42 @@ + +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<table + class="data-grid _dragging-copy _hidden" + data-bind=" + afterRender: function (elem) { dnd('setDragTable', elem); } + "> + <thead data-part="head"> + <tr data-part="head.row"> + <!-- ko foreach: elems --> + <!-- ko if: dragging --> + <!-- ko template: getHeader() --><!-- /ko --> + <!-- /ko --> + <!-- /ko --> + </tr> + </thead> + <tbody data-part="body"> + <!-- ko if: hasData() --> + <!-- ko foreach: { data: rows, as: 'row' } --> + <tr data-part="body.row"> + <!-- ko foreach: { data: $parent.elems, as: 'field' } --> + <!-- ko if: dragging --> + <!-- ko template: getBody() --><!-- /ko --> + <!-- /ko --> + <!-- /ko --> + </tr> + <!-- /ko --> + <!-- /ko --> + + <!-- ko ifnot: hasData() --> + <tr class="data-grid-tr-no-data"> + <td data-bind="attr: { colspan: getColspan() }, + text: $t('We couldn\'t find any records.')"></td> + </tr> + <!-- /ko --> + </tbody> +</table> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html index c3de27d5c7e52f97647170b06fc6a3b1e8b67162..118136c29fd86c65a84adf1fc1b4cd676c67f2fc 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html @@ -4,15 +4,20 @@ * See COPYING.txt for license details. */ --> - <div class="admin__data-grid-wrap"> - <table class="data-grid"> + <table + class="data-grid" + data-bind=" + afterRender: dndConfig.enabled ? + function (elem) { dnd('setTable', elem); } : + false, + css: { + 'data-grid-draggable': dndConfig.enabled + }"> <thead data-part="head"> <tr data-part="head.row"> <!-- ko foreach: elems --> - <!-- ko if: visible --> - <!-- ko template: getHeader() --><!-- /ko --> - <!-- /ko --> + <!-- ko template: getHeader() --><!-- /ko --> <!-- /ko --> </tr> </thead> @@ -21,9 +26,7 @@ <!-- ko foreach: { data: rows, as: 'row' } --> <tr data-part="body.row"> <!-- ko foreach: { data: $parent.elems, as: 'field' } --> - <!-- ko if: visible --> - <!-- ko template: getBody() --><!-- /ko --> - <!-- /ko --> + <!-- ko template: getBody() --><!-- /ko --> <!-- /ko --> </tr> <!-- /ko --> @@ -37,4 +40,7 @@ <!-- /ko --> </tbody> </table> + <!-- ko if: dndConfig.enabled --> + <!-- ko template: dndConfig.containerTmpl --><!-- /ko --> + <!-- /ko --> </div> \ No newline at end of file diff --git a/app/code/Magento/Ups/composer.json b/app/code/Magento/Ups/composer.json index 29ec2510c07e79abb5e21f664e90c98db3554609..871fbcdc12c1d2a6a3055ac20e0b5370575a5489 100644 --- a/app/code/Magento/Ups/composer.json +++ b/app/code/Magento/Ups/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/UrlRewrite/composer.json b/app/code/Magento/UrlRewrite/composer.json index 91f18fbea4728a982a17dca4cd56a0ac9f5ab88e..24a2772e11a3c6bf97a534c2fa44c09e672e3d6d 100644 --- a/app/code/Magento/UrlRewrite/composer.json +++ b/app/code/Magento/UrlRewrite/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog-url-rewrite": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-cms-url-rewrite": "0.74.0-beta13", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog-url-rewrite": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-cms-url-rewrite": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json index 82c4b5609f4d62e0499e75a6a4f4147da21ebdf6..b16f88f04a4c5b9cec2efb70b688923490d10226 100644 --- a/app/code/Magento/User/composer.json +++ b/app/code/Magento/User/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-integration": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-integration": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json index 625a904edd642d843d9d02ec910e2616a242dd5f..59b75138b5be4d8cb021390eec32bc8747c00f8e 100644 --- a/app/code/Magento/Usps/composer.json +++ b/app/code/Magento/Usps/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-shipping": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-config": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-shipping": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-config": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Variable/composer.json b/app/code/Magento/Variable/composer.json index b61f8fe802c68ffa61e53966cb117e1f439a4436..58eb8dbd4b6c0be1e41c82dd72972cde940dfe8c 100644 --- a/app/code/Magento/Variable/composer.json +++ b/app/code/Magento/Variable/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0|~5.6.0", - "magento/module-backend": "0.74.0-beta13", - "magento/module-email": "0.74.0-beta13", - "magento/module-store": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-backend": "0.74.0-beta14", + "magento/module-email": "0.74.0-beta14", + "magento/module-store": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Version/composer.json b/app/code/Magento/Version/composer.json index 4a3025af599865f283ba05b22341148d4412162e..07feda54cfd8fcfa810c79f28b9775b8abd4951b 100644 --- a/app/code/Magento/Version/composer.json +++ b/app/code/Magento/Version/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Webapi/composer.json b/app/code/Magento/Webapi/composer.json index 94d5b769e85526178ded1e4a57d0488acccca8b6..7c018de1b3b051d135d1fe69741e44a94185723c 100644 --- a/app/code/Magento/Webapi/composer.json +++ b/app/code/Magento/Webapi/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-authorization": "0.74.0-beta13", - "magento/module-integration": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-authorization": "0.74.0-beta14", + "magento/module-integration": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-user": "0.74.0-beta13" + "magento/module-user": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Weee/composer.json b/app/code/Magento/Weee/composer.json index ba0a615bab17ec2d4cd8221715dd418b87785220..7102e797d034a46b70b9724af86c42669e9a8d1b 100644 --- a/app/code/Magento/Weee/composer.json +++ b/app/code/Magento/Weee/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-tax": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-directory": "0.74.0-beta13", - "magento/module-eav": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-quote": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-tax": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-directory": "0.74.0-beta14", + "magento/module-eav": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-quote": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Widget/composer.json b/app/code/Magento/Widget/composer.json index cfecd20e99f1b7ad876322a228f0868b448e1c05..53ed15c7b6fb5644a930350c0ef7825766161645 100644 --- a/app/code/Magento/Widget/composer.json +++ b/app/code/Magento/Widget/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-cms": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-variable": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-cms": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-variable": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Wishlist/composer.json b/app/code/Magento/Wishlist/composer.json index 703058cbf5f90410d1631d2d9dedda1ad6c026f4..31d183b64bb0ae5cafd1f548adcc4c776cf12132 100644 --- a/app/code/Magento/Wishlist/composer.json +++ b/app/code/Magento/Wishlist/composer.json @@ -3,28 +3,28 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/module-store": "0.74.0-beta13", - "magento/module-customer": "0.74.0-beta13", - "magento/module-catalog": "0.74.0-beta13", - "magento/module-checkout": "0.74.0-beta13", - "magento/module-theme": "0.74.0-beta13", - "magento/module-catalog-inventory": "0.74.0-beta13", - "magento/module-rss": "0.74.0-beta13", - "magento/module-backend": "0.74.0-beta13", - "magento/module-sales": "0.74.0-beta13", - "magento/module-grouped-product": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", - "magento/module-ui": "0.74.0-beta13", + "magento/module-store": "0.74.0-beta14", + "magento/module-customer": "0.74.0-beta14", + "magento/module-catalog": "0.74.0-beta14", + "magento/module-checkout": "0.74.0-beta14", + "magento/module-theme": "0.74.0-beta14", + "magento/module-catalog-inventory": "0.74.0-beta14", + "magento/module-rss": "0.74.0-beta14", + "magento/module-backend": "0.74.0-beta14", + "magento/module-sales": "0.74.0-beta14", + "magento/module-grouped-product": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", + "magento/module-ui": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "suggest": { - "magento/module-configurable-product": "0.74.0-beta13", - "magento/module-downloadable": "0.74.0-beta13", - "magento/module-bundle": "0.74.0-beta13", - "magento/module-cookie": "0.74.0-beta13" + "magento/module-configurable-product": "0.74.0-beta14", + "magento/module-downloadable": "0.74.0-beta14", + "magento/module-bundle": "0.74.0-beta14", + "magento/module-cookie": "0.74.0-beta14" }, "type": "magento2-module", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less index 27524d7d4d0854693596871cd21c5d8f05dd84b8..ff4c338c62faa30c58cd734cf4e1f0025fe74444 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less @@ -95,6 +95,9 @@ display: block; font-size: @font-size__s; padding: @search-global-input__padding-top @search-global-input__padding-side @search-global-input__padding-bottom; + &._active { + background-color: @color-blue-clear-sky; + } } .title { display: block; diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less index d3ef739a9435a77614ee1bcf3a302cfd274cc7ef..a243bf34f061e922823d54c49ac504676092250b 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less +++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less @@ -48,6 +48,10 @@ @data-grid-row-parent-marker__size: 1rem; +@data-grid-td__dragging__opacity: 95%; +@data-grid-dragging-copy__border-color: @color-blue-pure; +@data-grid-dragging-copy__border: 1px solid @data-grid-dragging-copy__border-color; + // .admin__data-grid-outer-wrap { @@ -106,6 +110,9 @@ &:nth-child(even) { td { background-color: @data-grid-td__even__background-color; + &._dragging { + background-color: fade(@data-grid-td__even__background-color, @data-grid-td__dragging__opacity); + } } } &.data-grid-tr-no-data { @@ -154,7 +161,21 @@ &:last-child { border-right-style: @data-grid-td__border-outer-style; } + &._dragging { + color: fade(@table__color, @data-grid-td__dragging__opacity); + background-color: fade(@data-grid-td__odd__background-color, @data-grid-td__dragging__opacity); + a { + color: fade(@link__color, @data-grid-td__dragging__opacity); + &:hover { + color: fade(@link__hover__color, @data-grid-td__dragging__opacity); + } + } + } + // Action select data grid styles (can be action-select-secondary in future) + .action-select-wrap { + position: static; + } .action-select { .link-pattern(); background-color: transparent; @@ -168,6 +189,9 @@ } &:after { border-color: @link__color transparent transparent transparent; + margin: .6rem 0 0 .7rem; + right: auto; + top: auto; } &:before { display: none; @@ -175,6 +199,8 @@ } .action-menu { left: auto; + right: auto; + top: auto; z-index: 1; } } @@ -189,11 +215,22 @@ &:first-child { border-left-color: @data-grid-th__border-color; } + &._dragover-left { + box-shadow: inset 3px 0 0px 0px @color-white; + } + &._dragover-right { + box-shadow: inset -3px 0 0px 0px @color-white; + } } .data-grid-th { color: @data-grid-th__color; padding: @data-grid-th__padding-vertical @data-grid-th__padding-horizontal; vertical-align: middle; + &._draggable { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } &._sortable { background-clip: padding-box; // Fix for border overlay in Firefox cursor: pointer; @@ -281,6 +318,45 @@ } } } + // Draggable columns + &._hidden { + display: none; + } + &.data-grid-draggable { + background-color: @color-black; + } + &._dragging-copy { + background-color: @color-white; + box-shadow: @component__box-shadow__base; + left: 0; + opacity: .95; + position: fixed; + top: 0; + z-index: @overlay__z-index; + .data-grid-th { + border: @data-grid-dragging-copy__border; + border-bottom: none; + } + .data-grid-th, + .data-grid-th._sortable { + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + tbody { + tr { + &:last-child { + td { + border-bottom: @data-grid-dragging-copy__border; + } + } + } + td { + border-left: @data-grid-dragging-copy__border; + border-right: @data-grid-dragging-copy__border; + } + } + } } // Ascend & Descend sort marker @@ -349,4 +425,4 @@ &._col-xs { width: 1%; } -} +} \ No newline at end of file diff --git a/app/design/adminhtml/Magento/backend/composer.json b/app/design/adminhtml/Magento/backend/composer.json index 58fbb8be56c6018d058fc9797820f32babab0f07..a635d2f6368d6f8d066d468efc7a6056820e06e4 100644 --- a/app/design/adminhtml/Magento/backend/composer.json +++ b/app/design/adminhtml/Magento/backend/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_classes.less b/app/design/adminhtml/Magento/backend/web/css/source/_classes.less index 7562f5de527b2a29ee016193b59c95d76b0912d2..ef23f9abd3aba56beb7a5f80218731c402d0081e 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_classes.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_classes.less @@ -19,3 +19,11 @@ .a-center { // ToDo UI: should be renamed to ._text-center text-align: center; } + +// No select +._no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} diff --git a/app/design/frontend/Magento/blank/composer.json b/app/design/frontend/Magento/blank/composer.json index ed12dd50070e3732d4d1dad3ae1035b8452d9dc4..e715b5304c3a39ca06f52c98c37a438a68cf839d 100644 --- a/app/design/frontend/Magento/blank/composer.json +++ b/app/design/frontend/Magento/blank/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/frontend/Magento/luma/composer.json b/app/design/frontend/Magento/luma/composer.json index 84cbda7b1c907d6bc7262137162476f6a1d94ca3..011484f9abf79fb35ffa25a064e3debc221029ee 100644 --- a/app/design/frontend/Magento/luma/composer.json +++ b/app/design/frontend/Magento/luma/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", - "magento/theme-frontend-blank": "0.74.0-beta13", - "magento/framework": "0.74.0-beta13", + "magento/theme-frontend-blank": "0.74.0-beta14", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/magento/de_de/composer.json b/app/i18n/magento/de_de/composer.json index 8792a746870334173328153bee80077157349745..752d5584e51535511fc382bd1edfad901affa4fd 100644 --- a/app/i18n/magento/de_de/composer.json +++ b/app/i18n/magento/de_de/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-de_de", "description": "German (Germany) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/en_us/composer.json b/app/i18n/magento/en_us/composer.json index 12f592f50bc7f6772183dc3e44a42ecb65fbfb05..4feb2ced23f3e909170d222c43410ff08edc5cd7 100644 --- a/app/i18n/magento/en_us/composer.json +++ b/app/i18n/magento/en_us/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-en_us", "description": "English (United States) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/es_es/composer.json b/app/i18n/magento/es_es/composer.json index eec09e8483fbe8846f06947d7d8fef60d284d0d0..c2a70d39babadc84b11b03652e750d590ffd15fa 100644 --- a/app/i18n/magento/es_es/composer.json +++ b/app/i18n/magento/es_es/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-es_es", "description": "Spanish (Spain) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/fr_fr/composer.json b/app/i18n/magento/fr_fr/composer.json index 7ff13b7e8f3aa58340613fe97806ecfcc1b174aa..b6c40d9c8fa9be5d193c4f81534ab9cf0bebdd89 100644 --- a/app/i18n/magento/fr_fr/composer.json +++ b/app/i18n/magento/fr_fr/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-fr_fr", "description": "French (France) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/nl_nl/composer.json b/app/i18n/magento/nl_nl/composer.json index af92cc0e22f2de55041a7b8d0f6973cfa7244e09..c905b708215fd32745c8c1313fca3649c31f4c7c 100644 --- a/app/i18n/magento/nl_nl/composer.json +++ b/app/i18n/magento/nl_nl/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-nl_nl", "description": "Dutch (Netherlands) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/pt_br/composer.json b/app/i18n/magento/pt_br/composer.json index ea475dfb76206af0453c1d37586d71107d2ea7bb..4f80afff03c0adbfab31185741fdb201c6391b50 100644 --- a/app/i18n/magento/pt_br/composer.json +++ b/app/i18n/magento/pt_br/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-pt_br", "description": "Portuguese (Brazil) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/zh_cn/composer.json b/app/i18n/magento/zh_cn/composer.json index fe43b44fcdc7f9e7a3f2b31fa64b08e5bee94b3b..63c14d0af900801962fcaa32f179cf375fa451f9 100644 --- a/app/i18n/magento/zh_cn/composer.json +++ b/app/i18n/magento/zh_cn/composer.json @@ -1,13 +1,13 @@ { "name": "magento/language-zh_cn", "description": "Chinese (China) language", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { - "magento/framework": "0.74.0-beta13", + "magento/framework": "0.74.0-beta14", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/composer.json b/composer.json index 94549cfd2878cbc97c0476f54c7a7f2d4f1b093f..2fca4d005a36670877caf6253c70e0bb38e92a90 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "magento/magento2ce", "description": "Magento 2 (Community Edition)", "type": "project", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/composer.lock b/composer.lock index 77a18945169153ccdfd51d970fdd2255c499d42b..4e3421ad6e05957d87c2807e67fe0152cbf10bac 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "daa84b5d3ea8eabcd1bb1f33c07e08dd", + "hash": "32f26595c37e07bb66613d23424788e0", "packages": [ { "name": "composer/composer", @@ -49,7 +49,7 @@ "Composer": "src/" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -261,7 +261,7 @@ "ZF1", "framework" ], - "time": "2015-06-02 08:04:41" + "time": "2015-02-06 17:25:45" }, { "name": "monolog/monolog", @@ -567,7 +567,7 @@ "Symfony\\Component\\Finder\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -616,7 +616,7 @@ "Symfony\\Component\\Process\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -684,12 +684,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-code.git", - "reference": "0ed94f842ba60cdc900c46a61bdbd7ac95a3e140" + "reference": "cfd5951ff4348e4430850560416c7ddb755f95d3" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-code/zipball/0ed94f842ba60cdc900c46a61bdbd7ac95a3e140", - "reference": "0ed94f842ba60cdc900c46a61bdbd7ac95a3e140", + "reference": "cfd5951ff4348e4430850560416c7ddb755f95d3", "shasum": "" }, "require": { @@ -698,9 +698,6 @@ }, "require-dev": { "doctrine/common": ">=2.1", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-stdlib": "self.version" }, "suggest": { @@ -716,7 +713,7 @@ }, "autoload": { "psr-4": { - "Zend\\Code\\": "src/" + "Zend\\Code\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -724,12 +721,12 @@ "BSD-3-Clause" ], "description": "provides facilities to generate arbitrary code using an object oriented interface", - "homepage": "https://github.com/zendframework/zend-code", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "code", "zf2" ], - "time": "2015-03-31 15:39:14" + "time": "2015-04-01 17:59:08" }, { "name": "zendframework/zend-config", @@ -737,12 +734,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-config.git", - "reference": "95f3a4b3fa85d49e6f060183122de4596fa6d29d" + "reference": "8682fe4e2923b383bb6472fc84b5796a07589163" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-config/zipball/95f3a4b3fa85d49e6f060183122de4596fa6d29d", - "reference": "95f3a4b3fa85d49e6f060183122de4596fa6d29d", + "reference": "8682fe4e2923b383bb6472fc84b5796a07589163", "shasum": "" }, "require": { @@ -750,9 +747,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-filter": "self.version", "zendframework/zend-i18n": "self.version", "zendframework/zend-json": "self.version", @@ -773,7 +767,7 @@ }, "autoload": { "psr-4": { - "Zend\\Config\\": "src/" + "Zend\\Config\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -781,12 +775,12 @@ "BSD-3-Clause" ], "description": "provides a nested object property based user interface for accessing this configuration data within application code", - "homepage": "https://github.com/zendframework/zend-config", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "config", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 17:59:31" }, { "name": "zendframework/zend-console", @@ -794,23 +788,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-console.git", - "reference": "54823d9ba6f8ce39046384ee5a043b5b3d5f56d7" + "reference": "94ab6663b07e19f20b3319ecf317bd72b6a72dca" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-console/zipball/54823d9ba6f8ce39046384ee5a043b5b3d5f56d7", - "reference": "54823d9ba6f8ce39046384ee5a043b5b3d5f56d7", + "reference": "94ab6663b07e19f20b3319ecf317bd72b6a72dca", "shasum": "" }, "require": { "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "suggest": { "zendframework/zend-filter": "To support DefaultRouteMatcher usage", "zendframework/zend-validator": "To support DefaultRouteMatcher usage" @@ -824,19 +813,19 @@ }, "autoload": { "psr-4": { - "Zend\\Console\\": "src/" + "Zend\\Console\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-console", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "console", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 17:59:48" }, { "name": "zendframework/zend-di", @@ -844,12 +833,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-di.git", - "reference": "b9f8de081adecf71a003a569e9ba76c0a4c00bf2" + "reference": "0811f2a67ad0b50dfb8d602ed67cde0b82249190" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-di/zipball/b9f8de081adecf71a003a569e9ba76c0a4c00bf2", - "reference": "b9f8de081adecf71a003a569e9ba76c0a4c00bf2", + "reference": "0811f2a67ad0b50dfb8d602ed67cde0b82249190", "shasum": "" }, "require": { @@ -858,9 +847,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -875,19 +861,19 @@ }, "autoload": { "psr-4": { - "Zend\\Di\\": "src/" + "Zend\\Di\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-di", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "di", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:01:30" }, { "name": "zendframework/zend-escaper", @@ -895,22 +881,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "15e5769e4fcdb4bf07ebd76500810e7070e23a97" + "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97", - "reference": "15e5769e4fcdb4bf07ebd76500810e7070e23a97", + "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -920,19 +901,19 @@ }, "autoload": { "psr-4": { - "Zend\\Escaper\\": "src/" + "Zend\\Escaper\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-escaper", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "escaper", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:02:07" }, { "name": "zendframework/zend-eventmanager", @@ -940,23 +921,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "58d21c95c7005a527262fd536499195f104e83f9" + "reference": "38df5b567d4ff4d22144745c503ba0502d0d5695" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/58d21c95c7005a527262fd536499195f104e83f9", - "reference": "58d21c95c7005a527262fd536499195f104e83f9", + "reference": "38df5b567d4ff4d22144745c503ba0502d0d5695", "shasum": "" }, "require": { "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -966,19 +942,19 @@ }, "autoload": { "psr-4": { - "Zend\\EventManager\\": "src/" + "Zend\\EventManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-event-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "eventmanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:05:26" }, { "name": "zendframework/zend-filter", @@ -986,12 +962,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-filter.git", - "reference": "6d8aed2da81b62a04747346c4370562cdbe34595" + "reference": "b13741a88553351fc52472de529b57b580b8f6f1" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/6d8aed2da81b62a04747346c4370562cdbe34595", - "reference": "6d8aed2da81b62a04747346c4370562cdbe34595", + "reference": "b13741a88553351fc52472de529b57b580b8f6f1", "shasum": "" }, "require": { @@ -999,9 +975,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-crypt": "self.version", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-uri": "self.version" @@ -1021,7 +994,7 @@ }, "autoload": { "psr-4": { - "Zend\\Filter\\": "src/" + "Zend\\Filter\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1029,12 +1002,12 @@ "BSD-3-Clause" ], "description": "provides a set of commonly needed data filters", - "homepage": "https://github.com/zendframework/zend-filter", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "filter", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-form", @@ -1042,12 +1015,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-form.git", - "reference": "bca0db55718355d25c2c10fdd41a83561f1c94b3" + "reference": "09f5bd46ffbf783df22281898e2175b291bd43a3" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-form/zipball/bca0db55718355d25c2c10fdd41a83561f1c94b3", - "reference": "bca0db55718355d25c2c10fdd41a83561f1c94b3", + "reference": "09f5bd46ffbf783df22281898e2175b291bd43a3", "shasum": "" }, "require": { @@ -1056,9 +1029,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-captcha": "self.version", "zendframework/zend-code": "self.version", "zendframework/zend-eventmanager": "self.version", @@ -1089,19 +1059,19 @@ }, "autoload": { "psr-4": { - "Zend\\Form\\": "src/" + "Zend\\Form\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-form", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "form", "zf2" ], - "time": "2015-03-28 20:29:18" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-http", @@ -1109,12 +1079,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-http.git", - "reference": "9c6047a0bdb3094d3ea07a215ff929cc47de4deb" + "reference": "ee6220609845b32d1b2873c9ac694aef56d508f5" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-http/zipball/9c6047a0bdb3094d3ea07a215ff929cc47de4deb", - "reference": "9c6047a0bdb3094d3ea07a215ff929cc47de4deb", + "reference": "ee6220609845b32d1b2873c9ac694aef56d508f5", "shasum": "" }, "require": { @@ -1124,11 +1094,6 @@ "zendframework/zend-uri": "self.version", "zendframework/zend-validator": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1138,7 +1103,7 @@ }, "autoload": { "psr-4": { - "Zend\\Http\\": "src/" + "Zend\\Http\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1146,12 +1111,12 @@ "BSD-3-Clause" ], "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "homepage": "https://github.com/zendframework/zend-http", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "http", "zf2" ], - "time": "2015-03-27 15:46:30" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-i18n", @@ -1159,12 +1124,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-i18n.git", - "reference": "9aebc5287373a802540d75fe5508417f866c2e52" + "reference": "33051775d9a8c341fe3b77d1f3daa0e921e2f4bd" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/9aebc5287373a802540d75fe5508417f866c2e52", - "reference": "9aebc5287373a802540d75fe5508417f866c2e52", + "reference": "33051775d9a8c341fe3b77d1f3daa0e921e2f4bd", "shasum": "" }, "require": { @@ -1172,9 +1137,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-cache": "self.version", "zendframework/zend-config": "self.version", "zendframework/zend-eventmanager": "self.version", @@ -1203,19 +1165,19 @@ }, "autoload": { "psr-4": { - "Zend\\I18n\\": "src/" + "Zend\\I18n\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-i18n", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "i18n", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-inputfilter", @@ -1223,12 +1185,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-inputfilter.git", - "reference": "4b1398f3635fae3cc5e873c5bb067274f3d10a93" + "reference": "16856fec61f285e41e5492235220a4dec06ab90f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-inputfilter/zipball/4b1398f3635fae3cc5e873c5bb067274f3d10a93", - "reference": "4b1398f3635fae3cc5e873c5bb067274f3d10a93", + "reference": "16856fec61f285e41e5492235220a4dec06ab90f", "shasum": "" }, "require": { @@ -1238,9 +1200,6 @@ "zendframework/zend-validator": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -1255,19 +1214,19 @@ }, "autoload": { "psr-4": { - "Zend\\InputFilter\\": "src/" + "Zend\\InputFilter\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-input-filter", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "inputfilter", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-json", @@ -1275,12 +1234,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-json.git", - "reference": "2d845e151c1b9a237cf1899ac31e17fb10bd1e3f" + "reference": "76aeb27e4baf39799e5ca3cf6f2fdd6748ee930c" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-json/zipball/2d845e151c1b9a237cf1899ac31e17fb10bd1e3f", - "reference": "2d845e151c1b9a237cf1899ac31e17fb10bd1e3f", + "reference": "76aeb27e4baf39799e5ca3cf6f2fdd6748ee930c", "shasum": "" }, "require": { @@ -1288,9 +1247,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-http": "self.version", "zendframework/zend-server": "self.version" }, @@ -1308,7 +1264,7 @@ }, "autoload": { "psr-4": { - "Zend\\Json\\": "src/" + "Zend\\Json\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1316,12 +1272,12 @@ "BSD-3-Clause" ], "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", - "homepage": "https://github.com/zendframework/zend-json", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "json", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-loader", @@ -1329,22 +1285,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-loader.git", - "reference": "65de2c7a56f8eee633c6bf1cfab73e45648880d4" + "reference": "6868b8a0c346f17fb97724c3a63aa2cbf6b94865" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/65de2c7a56f8eee633c6bf1cfab73e45648880d4", - "reference": "65de2c7a56f8eee633c6bf1cfab73e45648880d4", + "reference": "6868b8a0c346f17fb97724c3a63aa2cbf6b94865", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1354,19 +1305,19 @@ }, "autoload": { "psr-4": { - "Zend\\Loader\\": "src/" + "Zend\\Loader\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-loader", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "loader", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-log", @@ -1374,12 +1325,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-log.git", - "reference": "002e3c810cad7e31e51c9895e9e3cb6fbd312cdd" + "reference": "2d5d20fd45470506bdaff727c46dc25fe953146e" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-log/zipball/002e3c810cad7e31e51c9895e9e3cb6fbd312cdd", - "reference": "002e3c810cad7e31e51c9895e9e3cb6fbd312cdd", + "reference": "2d5d20fd45470506bdaff727c46dc25fe953146e", "shasum": "" }, "require": { @@ -1388,9 +1339,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-console": "self.version", "zendframework/zend-db": "self.version", "zendframework/zend-escaper": "self.version", @@ -1414,7 +1362,7 @@ }, "autoload": { "psr-4": { - "Zend\\Log\\": "src/" + "Zend\\Log\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1422,13 +1370,13 @@ "BSD-3-Clause" ], "description": "component for general purpose logging", - "homepage": "https://github.com/zendframework/zend-log", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "log", "logging", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-math", @@ -1436,22 +1384,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-math.git", - "reference": "f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73" + "reference": "634123f83ca90b6613f132d0d100e6b5e9890a29" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-math/zipball/f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73", - "reference": "f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73", + "reference": "634123f83ca90b6613f132d0d100e6b5e9890a29", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "suggest": { "ext-bcmath": "If using the bcmath functionality", "ext-gmp": "If using the gmp functionality", @@ -1467,19 +1410,19 @@ }, "autoload": { "psr-4": { - "Zend\\Math\\": "src/" + "Zend\\Math\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-math", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "math", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-modulemanager", @@ -1487,12 +1430,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-modulemanager.git", - "reference": "af7ae3cd29a1efb73cc66ae1081e606039d5c20f" + "reference": "cbe16b0eafe734a062ed0182381e64b9c953dccf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/af7ae3cd29a1efb73cc66ae1081e606039d5c20f", - "reference": "af7ae3cd29a1efb73cc66ae1081e606039d5c20f", + "reference": "cbe16b0eafe734a062ed0182381e64b9c953dccf", "shasum": "" }, "require": { @@ -1501,9 +1444,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-config": "self.version", "zendframework/zend-console": "self.version", "zendframework/zend-loader": "self.version", @@ -1525,19 +1465,19 @@ }, "autoload": { "psr-4": { - "Zend\\ModuleManager\\": "src/" + "Zend\\ModuleManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-module-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "modulemanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-mvc", @@ -1545,12 +1485,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-mvc.git", - "reference": "0b4a4a829b30be510a3f215c4ff00c703ee8b431" + "reference": "bfff0f5f9e4d925ee13b8c159c9d6ae7e0db5412" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/0b4a4a829b30be510a3f215c4ff00c703ee8b431", - "reference": "0b4a4a829b30be510a3f215c4ff00c703ee8b431", + "reference": "bfff0f5f9e4d925ee13b8c159c9d6ae7e0db5412", "shasum": "" }, "require": { @@ -1561,9 +1501,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-authentication": "self.version", "zendframework/zend-console": "self.version", "zendframework/zend-di": "self.version", @@ -1612,19 +1549,19 @@ }, "autoload": { "psr-4": { - "Zend\\Mvc\\": "src/" + "Zend\\Mvc\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-mvc", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "mvc", "zf2" ], - "time": "2015-03-26 18:55:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-serializer", @@ -1632,12 +1569,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-serializer.git", - "reference": "3c531789a9882a5deb721356a7bd2642b65d4b09" + "reference": "a46960854d6326f0036d98c9abc7a79e36e25928" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/3c531789a9882a5deb721356a7bd2642b65d4b09", - "reference": "3c531789a9882a5deb721356a7bd2642b65d4b09", + "reference": "a46960854d6326f0036d98c9abc7a79e36e25928", "shasum": "" }, "require": { @@ -1647,9 +1584,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -1664,7 +1598,7 @@ }, "autoload": { "psr-4": { - "Zend\\Serializer\\": "src/" + "Zend\\Serializer\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1672,12 +1606,12 @@ "BSD-3-Clause" ], "description": "provides an adapter based interface to simply generate storable representation of PHP types by different facilities, and recover", - "homepage": "https://github.com/zendframework/zend-serializer", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "serializer", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-server", @@ -1685,12 +1619,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-server.git", - "reference": "d11ff0bd529d202022823d4accf5983cbd50fc49" + "reference": "fc73c34490908ba143af3c57c7e166b40c4b9f8e" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-server/zipball/d11ff0bd529d202022823d4accf5983cbd50fc49", - "reference": "d11ff0bd529d202022823d4accf5983cbd50fc49", + "reference": "fc73c34490908ba143af3c57c7e166b40c4b9f8e", "shasum": "" }, "require": { @@ -1698,11 +1632,6 @@ "zendframework/zend-code": "self.version", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1712,19 +1641,19 @@ }, "autoload": { "psr-4": { - "Zend\\Server\\": "src/" + "Zend\\Server\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-server", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "server", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-servicemanager", @@ -1732,21 +1661,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "57cf99fa5ac08c05a135a8d0d676c52a5e450083" + "reference": "d3c27c708a148a30608f313a5b7a61a531bd9cb9" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/57cf99fa5ac08c05a135a8d0d676c52a5e450083", - "reference": "57cf99fa5ac08c05a135a8d0d676c52a5e450083", + "reference": "d3c27c708a148a30608f313a5b7a61a531bd9cb9", "shasum": "" }, "require": { "php": ">=5.3.23" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-di": "self.version" }, "suggest": { @@ -1762,19 +1688,19 @@ }, "autoload": { "psr-4": { - "Zend\\ServiceManager\\": "src/" + "Zend\\ServiceManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-service-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "servicemanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-soap", @@ -1782,12 +1708,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-soap.git", - "reference": "a599463aba97ce247faf3fb443e3c7858b46449b" + "reference": "e42b900798ea95a9063fa4922da976d8b3a8ab6f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-soap/zipball/a599463aba97ce247faf3fb443e3c7858b46449b", - "reference": "a599463aba97ce247faf3fb443e3c7858b46449b", + "reference": "e42b900798ea95a9063fa4922da976d8b3a8ab6f", "shasum": "" }, "require": { @@ -1797,9 +1723,6 @@ "zendframework/zend-uri": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-http": "self.version" }, "suggest": { @@ -1814,19 +1737,19 @@ }, "autoload": { "psr-4": { - "Zend\\Soap\\": "src/" + "Zend\\Soap\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-soap", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "soap", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-stdlib", @@ -1834,21 +1757,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "cf05c5ba75606e47ffee91cedc72778da46f74c3" + "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3", - "reference": "cf05c5ba75606e47ffee91cedc72778da46f74c3", + "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030", "shasum": "" }, "require": { "php": ">=5.3.23" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-serializer": "self.version", @@ -1869,19 +1789,19 @@ }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "src/" + "Zend\\Stdlib\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-stdlib", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "stdlib", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-text", @@ -1889,12 +1809,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-text.git", - "reference": "d962ea25647b20527f3ca34ae225bbc885dabfc7" + "reference": "35f519e20e575a331c2ee554e5a555a59ce4b9e2" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-text/zipball/d962ea25647b20527f3ca34ae225bbc885dabfc7", - "reference": "d962ea25647b20527f3ca34ae225bbc885dabfc7", + "reference": "35f519e20e575a331c2ee554e5a555a59ce4b9e2", "shasum": "" }, "require": { @@ -1902,11 +1822,6 @@ "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1916,19 +1831,19 @@ }, "autoload": { "psr-4": { - "Zend\\Text\\": "src/" + "Zend\\Text\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-text", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "text", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-uri", @@ -1936,12 +1851,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-uri.git", - "reference": "bd9e625639415376f6a82551c73328448d7bc7d1" + "reference": "53f5b162b293f80de8b951eece8e08be83c4fe16" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/bd9e625639415376f6a82551c73328448d7bc7d1", - "reference": "bd9e625639415376f6a82551c73328448d7bc7d1", + "reference": "53f5b162b293f80de8b951eece8e08be83c4fe16", "shasum": "" }, "require": { @@ -1949,11 +1864,6 @@ "zendframework/zend-escaper": "self.version", "zendframework/zend-validator": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1963,7 +1873,7 @@ }, "autoload": { "psr-4": { - "Zend\\Uri\\": "src/" + "Zend\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1971,12 +1881,12 @@ "BSD-3-Clause" ], "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", - "homepage": "https://github.com/zendframework/zend-uri", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "uri", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-validator", @@ -1984,12 +1894,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-validator.git", - "reference": "45fac2545a0f2eb66d71cb7966feee481e7c475f" + "reference": "eb678d20256f120a72ca27276bbb2875841701ab" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/45fac2545a0f2eb66d71cb7966feee481e7c475f", - "reference": "45fac2545a0f2eb66d71cb7966feee481e7c475f", + "reference": "eb678d20256f120a72ca27276bbb2875841701ab", "shasum": "" }, "require": { @@ -1997,9 +1907,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-db": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-i18n": "self.version", @@ -2027,7 +1934,7 @@ }, "autoload": { "psr-4": { - "Zend\\Validator\\": "src/" + "Zend\\Validator\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2035,12 +1942,12 @@ "BSD-3-Clause" ], "description": "provides a set of commonly needed validators", - "homepage": "https://github.com/zendframework/zend-validator", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "validator", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:30" }, { "name": "zendframework/zend-view", @@ -2048,12 +1955,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-view.git", - "reference": "37beb1ad46e530f627b4b6c3716efd728e976ba9" + "reference": "e119b4b5f082af58a96eb206e782b62c193227bf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-view/zipball/37beb1ad46e530f627b4b6c3716efd728e976ba9", - "reference": "37beb1ad46e530f627b4b6c3716efd728e976ba9", + "reference": "e119b4b5f082af58a96eb206e782b62c193227bf", "shasum": "" }, "require": { @@ -2063,9 +1970,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-authentication": "self.version", "zendframework/zend-escaper": "self.version", "zendframework/zend-feed": "self.version", @@ -2104,7 +2008,7 @@ }, "autoload": { "psr-4": { - "Zend\\View\\": "src/" + "Zend\\View\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2112,12 +2016,12 @@ "BSD-3-Clause" ], "description": "provides a system of helpers, output filters, and variable escaping", - "homepage": "https://github.com/zendframework/zend-view", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "view", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:30" } ], "packages-dev": [ @@ -2789,7 +2693,7 @@ "src/" ] }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], @@ -3288,7 +3192,7 @@ "Symfony\\Component\\Config\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -3348,7 +3252,7 @@ "Symfony\\Component\\DependencyInjection\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -3406,7 +3310,7 @@ "Symfony\\Component\\EventDispatcher\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -3455,7 +3359,7 @@ "Symfony\\Component\\Filesystem\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -3504,7 +3408,7 @@ "Symfony\\Component\\Stopwatch\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], @@ -3553,7 +3457,7 @@ "Symfony\\Component\\Yaml\\": "" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "MIT" ], diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php index 4188aef15cd0565a483f3a08e31fdaf7156cd429..53402d17d2a4654409dd5a2b7d6937ad7c58422f 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php @@ -6,8 +6,8 @@ namespace Magento\Cms\Test\Block\Adminhtml\Page; -use Magento\Ui\Test\Block\Adminhtml\DataGrid; use Magento\Mtf\Client\Locator; +use Magento\Ui\Test\Block\Adminhtml\DataGrid; /** * Backend Data Grid for managing "CMS Page" entities. @@ -66,8 +66,8 @@ class Grid extends DataGrid * * @var string */ - protected $previewCmsPage = '.action-menu-item'; - + protected $previewCmsPage = ".//a[contains(@class, 'action-menu-item') and text() = '%s']"; + /** * Search item and open it on Frontend. * @@ -77,10 +77,12 @@ class Grid extends DataGrid */ public function searchAndPreview(array $filter) { + $itemName = 'Preview'; $this->search($filter); $rowItem = $this->_rootElement->find($this->rowItem); if ($rowItem->isVisible()) { - $rowItem->find($this->previewCmsPage)->click(); + $rowItem->find('.action-select')->click(); + $rowItem->find(sprintf($this->previewCmsPage, $itemName), Locator::SELECTOR_XPATH)->click(); } else { throw new \Exception('Searched item was not found.'); } diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php index d888fa31e8ef27194c3dfd21d829fb82223b2e1c..618e06a6391659476bd7fcf648193767afae8302 100644 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php +++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php @@ -29,7 +29,7 @@ class AssociatedProducts extends Tab * * @var string */ - protected $productSearchGrid = "./ancestor::body//div[div[contains(@data-role,'add-product-dialog')]]"; + protected $productSearchGrid = './/*[@data-role="modal"][.//*[@data-role="add-product-dialog"]]'; /** * Associated products list block @@ -54,7 +54,7 @@ class AssociatedProducts extends Tab { return $this->blockFactory->create( 'Magento\GroupedProduct\Test\Block\Adminhtml\Product\Grouped\AssociatedProducts\Search\Grid', - ['element' => $this->_rootElement->find($this->productSearchGrid, Locator::SELECTOR_XPATH)] + ['element' => $this->browser->find($this->productSearchGrid, Locator::SELECTOR_XPATH)] ); } diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js new file mode 100644 index 0000000000000000000000000000000000000000..331dbef78d040a791fd30f9f58efa2e5153164b8 --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js @@ -0,0 +1,100 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'underscore', + 'Magento_Ui/js/grid/columns/actions' +], function (_, Actions) { + 'use strict'; + + describe('ui/js/grid/columns/actions', function () { + var model, + action; + + beforeEach(function () { + model = new Actions({ + index: 'actions', + name: 'listing_action', + indexField: 'id', + dataScope: '', + rows: [{ + identifier: 'row' + }] + }); + action = { + index: 'delete', + hidden: true, + rowIndex: 0, + callback: function() { + return true; + } + }; + }); + + it('Check addAction function', function () { + expect(model.addAction('delete', action)).toBe(model); + }); + + it('Check getAction function', function () { + var someAction = _.clone(action); + + someAction.index = 'edit'; + model.addAction('edit', someAction); + expect(model.getAction(0, 'edit')).toEqual(someAction); + }); + + it('Check getVisibleActions function', function () { + var someAction = _.clone(action); + + someAction.hidden = false; + someAction.index= 'view'; + model.addAction('delete', action); + model.addAction('view', someAction); + expect(model.getVisibleActions('0')).toEqual([someAction]); + }); + + it('Check updateActions function', function () { + expect(model.updateActions()).toEqual(model); + }); + + it('Check applyAction function', function () { + model.addAction('delete', action); + expect(model.applyAction('delete', 0)).toEqual(model); + }); + + it('Check isSingle and isMultiple function', function () { + var someAction = _.clone(action); + + action.hidden = false; + model.addAction('delete', action); + expect(model.isSingle(0)).toBeTruthy(); + someAction.hidden = false; + someAction.index = 'edit'; + model.addAction('edit', someAction); + expect(model.isSingle(0)).toBeFalsy(); + expect(model.isMultiple(0)).toBeTruthy(); + }); + + it('Check isActionVisible function', function () { + expect(model.isActionVisible(action)).toBeFalsy(); + action.hidden = false; + expect(model.isActionVisible(action)).toBeTruthy(); + }); + + it('Check toggleList function', function () { + model.toggleList(0); + expect(model.opened()).toEqual(0); + model.toggleList(0); + expect(model.opened()).toBeFalsy(); + }); + + it('Check closeList function', function () { + model.toggleList(0); + expect(model.opened()).toEqual(0); + model.closeList(0); + expect(model.opened()).toBeFalsy(); + }); + }); +}); \ No newline at end of file diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/dialog/dialog.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js similarity index 60% rename from dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/dialog/dialog.test.js rename to dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js index be1e6dfa867088f6174526b3d41c6fade7276b8a..b5e2837467bebad4e5e15bea402121a1be7e96ae 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/dialog/dialog.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js @@ -5,23 +5,23 @@ define([ 'jquery', - 'Magento_Ui/js/dialog/dialog' + 'Magento_Ui/js/modal/modal' ], function ($) { 'use strict'; - describe('ui/js/dialog/dialog', function () { + describe('ui/js/modal/modal', function () { var element = $('<div>some element</div>'), - dialog = element.dialog({}).data('mage-dialog'); + modal = element.modal({}).data('mage-modal'); - it('Check for dialog definition', function () { - expect(dialog).toBeDefined(); + it('Check for modal definition', function () { + expect(modal).toBeDefined(); }); it('Show/hide function check', function () { expect(element.trigger('openDialog')).toBe(element); expect(element.trigger('closeDialog')).toBe(element); }); it('Check for transition support', function () { - expect(dialog.whichTransitionEvent()).toBe('webkitTransitionEnd'); + expect(modal.whichTransitionEvent()).toBe('webkitTransitionEnd'); }); }); }); \ No newline at end of file diff --git a/lib/internal/Magento/Framework/AppInterface.php b/lib/internal/Magento/Framework/AppInterface.php index b0b03dfcb471f368da7964d27b52ab16cae7f171..fb61d6803b3681c56a7af5ad3a29cc8468484e27 100644 --- a/lib/internal/Magento/Framework/AppInterface.php +++ b/lib/internal/Magento/Framework/AppInterface.php @@ -17,7 +17,7 @@ interface AppInterface /** * Magento version */ - const VERSION = '0.74.0-beta13'; + const VERSION = '0.74.0-beta14'; /** * Launch application diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json index 1307d01001635ca7553aabcd9dcd94884d01801c..29ca6222b30be7c45122ac19c9f1c48c04c408fc 100644 --- a/lib/internal/Magento/Framework/composer.json +++ b/lib/internal/Magento/Framework/composer.json @@ -2,7 +2,7 @@ "name": "magento/framework", "description": "N/A", "type": "magento2-library", - "version": "0.74.0-beta13", + "version": "0.74.0-beta14", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/lib/web/css/source/components/_modals.less b/lib/web/css/source/components/_modals.less index c7776d6684e7e5880247625d2032f0cd4b33fc02..df5c973eef2de55b58b941178d1acf677ee0a219 100644 --- a/lib/web/css/source/components/_modals.less +++ b/lib/web/css/source/components/_modals.less @@ -28,6 +28,8 @@ @modal-slide-header__padding-vertical: 2.1rem; +@modal-popup-confirm__width: 50rem; + // // Utilities // --------------------------------------------- @@ -181,6 +183,16 @@ padding-top: @modal-popup__padding; padding-bottom: @modal-popup__padding; } + &.confirm { + .modal-inner-wrap { + margin-left: -(@modal-popup-confirm__width/2); + left: 50%; + width: @modal-popup-confirm__width; + } + .modal-footer { + text-align: right; + } + } } // diff --git a/lib/web/css/source/lib/_navigation.less b/lib/web/css/source/lib/_navigation.less index 6bc9cb68b243392a50bf5026f8bc510146a1f71a..a0af0e4ebd85069255dd6e8c5d13c82206552855 100644 --- a/lib/web/css/source/lib/_navigation.less +++ b/lib/web/css/source/lib/_navigation.less @@ -329,7 +329,6 @@ margin: 0 !important; position: absolute; left: 0; - top: 100%; z-index: 1; .css(background, @_submenu-background-color); .css(border, @_submenu-border-width @_submenu-border-style @_submenu-border-color); @@ -370,6 +369,10 @@ top: 0 !important; left: 100% !important; } + .submenu-reverse{ + left: auto !important; + right: 100%; + } } &.more { position: relative; diff --git a/lib/web/mage/backend/suggest.js b/lib/web/mage/backend/suggest.js index dfb3ef72d8c4d8424c949ea44dfba20b3a8f01be..f4efd12693997985cdc08232778491db37a74848 100644 --- a/lib/web/mage/backend/suggest.js +++ b/lib/web/mage/backend/suggest.js @@ -178,16 +178,47 @@ _bind: function () { this._on($.extend({ keydown: function (event) { - var keyCode = $.ui.keyCode; + var keyCode = $.ui.keyCode, + suggestList, + hasSuggestedItems, + hasSelectedItems, + selectedItem; + switch (event.keyCode) { case keyCode.PAGE_UP: - case keyCode.PAGE_DOWN: case keyCode.UP: + if (!event.shiftKey) { + event.preventDefault(); + this._proxyEvents(event); + } + + suggestList = event.currentTarget.parentNode.getElementsByTagName('ul')[0]; + hasSuggestedItems = event.currentTarget.parentNode.getElementsByTagName('ul')[0].children.length >= 0; + if (hasSuggestedItems) { + selectedItem = $(suggestList.getElementsByClassName('_active')[0]).removeClass('_active').prev().addClass('_active'); + event.currentTarget.value = selectedItem.find("a").text(); + } + + break; + case keyCode.PAGE_DOWN: case keyCode.DOWN: if (!event.shiftKey) { event.preventDefault(); this._proxyEvents(event); } + + suggestList = event.currentTarget.parentNode.getElementsByTagName('ul')[0]; + hasSuggestedItems = event.currentTarget.parentNode.getElementsByTagName('ul')[0].children.length >= 0; + if(hasSuggestedItems){ + hasSelectedItems = suggestList.getElementsByClassName('_active').length === 0; + if(hasSelectedItems) { + selectedItem = $(suggestList.children[0]).addClass('_active'); + event.currentTarget.value = selectedItem.find("a").text(); + }else { + selectedItem = $(suggestList.getElementsByClassName('_active')[0]).removeClass('_active').next().addClass('_active'); + event.currentTarget.value = selectedItem.find("a").text(); + } + } break; case keyCode.TAB: if (this.isDropdownShown()) { @@ -197,6 +228,7 @@ break; case keyCode.ENTER: case keyCode.NUMPAD_ENTER: + if (this.isDropdownShown() && this._focused) { this._proxyEvents(event); event.preventDefault(); diff --git a/lib/web/mage/menu.js b/lib/web/mage/menu.js index 94055ff0a1ddbda398323f9d8e31a9060ac7bfd3..925ae9df33791441a2e54ed6457753a62cba0751 100644 --- a/lib/web/mage/menu.js +++ b/lib/web/mage/menu.js @@ -8,7 +8,7 @@ define([ "jquery/ui", "jquery/jquery.mobile.custom", "mage/translate" -], function($, mediaCheck){ +], function ($, mediaCheck) { 'use strict'; /** @@ -20,22 +20,30 @@ define([ expanded: false, delay: 300 }, + _create: function () { + var self = this; - _init: function() { + this._super(); + $(window).on('resize', function () { + self.element.find('.submenu-reverse').removeClass('submenu-reverse'); + }); + }, + + _init: function () { this._super(); this.delay = this.options.delay; - if(this.options.expanded === true) { + if (this.options.expanded === true) { this.isExpanded(); } - if(this.options.responsive === true){ + if (this.options.responsive === true) { mediaCheck({ media: '(max-width: 640px)', - entry: $.proxy(function() { + entry: $.proxy(function () { this._toggleMobileMode(); }, this), - exit: $.proxy(function() { + exit: $.proxy(function () { this._toggleDesktopMode(); }, this) }); @@ -44,7 +52,7 @@ define([ this._assignControls()._listen(); }, - _assignControls: function() { + _assignControls: function () { this.controls = { toggleBtn: $('[data-action="toggle-nav"]'), swipeArea: $('.nav-sections') @@ -53,125 +61,125 @@ define([ return this; }, - _listen: function() { + _listen: function () { var controls = this.controls; var toggle = this.toggle; - this._on(controls.toggleBtn, { 'click' : toggle }); - this._on(controls.swipeArea, { 'swipeleft': toggle }); + this._on(controls.toggleBtn, {'click': toggle}); + this._on(controls.swipeArea, {'swipeleft': toggle}); }, - toggle: function() { + toggle: function () { if ($('html').hasClass('nav-open')) { $('html').removeClass('nav-open'); - setTimeout(function() { + setTimeout(function () { $('html').removeClass('nav-before-open'); - },300); + }, 300); } else { $('html').addClass('nav-before-open'); - setTimeout(function() { + setTimeout(function () { $('html').addClass('nav-open'); - },42); + }, 42); } }, //Add class for expanded option - isExpanded: function() { - var subMenus = this.element.find( this.options.menus ), + isExpanded: function () { + var subMenus = this.element.find(this.options.menus), expandedMenus = subMenus.find('ul'); expandedMenus.addClass('expanded'); }, - _activate: function( event ) { + _activate: function (event) { window.location.href = this.active.find('> a').attr('href'); this.collapseAll(event); }, - _keydown: function(event) { + _keydown: function (event) { var match, prev, character, skip, regex, - preventDefault = true; + preventDefault = true; - function escape( value ) { - return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); + function escape(value) { + return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } - if(this.active.closest('ul').attr('aria-expanded') != 'true') { + if (this.active.closest('ul').attr('aria-expanded') != 'true') { - switch ( event.keyCode ) { + switch (event.keyCode) { case $.ui.keyCode.PAGE_UP: - this.previousPage( event ); + this.previousPage(event); break; case $.ui.keyCode.PAGE_DOWN: - this.nextPage( event ); + this.nextPage(event); break; case $.ui.keyCode.HOME: - this._move( "first", "first", event ); + this._move("first", "first", event); break; case $.ui.keyCode.END: - this._move( "last", "last", event ); + this._move("last", "last", event); break; case $.ui.keyCode.UP: - this.previous( event ); + this.previous(event); break; case $.ui.keyCode.DOWN: - if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { - this.expand( event ); + if (this.active && !this.active.is(".ui-state-disabled")) { + this.expand(event); } break; case $.ui.keyCode.LEFT: - this.previous( event ); + this.previous(event); break; case $.ui.keyCode.RIGHT: - this.next( event ); + this.next(event); break; case $.ui.keyCode.ENTER: case $.ui.keyCode.SPACE: - this._activate( event ); + this._activate(event); break; case $.ui.keyCode.ESCAPE: - this.collapse( event ); + this.collapse(event); break; default: preventDefault = false; prev = this.previousFilter || ""; - character = String.fromCharCode( event.keyCode ); + character = String.fromCharCode(event.keyCode); skip = false; - clearTimeout( this.filterTimer ); + clearTimeout(this.filterTimer); - if ( character === prev ) { + if (character === prev) { skip = true; } else { character = prev + character; } - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { - return regex.test( $( this ).children( "a" ).text() ); + regex = new RegExp("^" + escape(character), "i"); + match = this.activeMenu.children(".ui-menu-item").filter(function () { + return regex.test($(this).children("a").text()); }); - match = skip && match.index( this.active.next() ) !== -1 ? - this.active.nextAll( ".ui-menu-item" ) : + match = skip && match.index(this.active.next()) !== -1 ? + this.active.nextAll(".ui-menu-item") : match; // If no matches on the current filter, reset to the last character pressed // to move down the menu to the first item that starts with that character - if ( !match.length ) { - character = String.fromCharCode( event.keyCode ); - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { - return regex.test( $( this ).children( "a" ).text() ); + if (!match.length) { + character = String.fromCharCode(event.keyCode); + regex = new RegExp("^" + escape(character), "i"); + match = this.activeMenu.children(".ui-menu-item").filter(function () { + return regex.test($(this).children("a").text()); }); } - if ( match.length ) { - this.focus( event, match ); - if ( match.length > 1 ) { + if (match.length) { + this.focus(event, match); + if (match.length > 1) { this.previousFilter = character; - this.filterTimer = this._delay(function() { + this.filterTimer = this._delay(function () { delete this.previousFilter; - }, 1000 ); + }, 1000); } else { delete this.previousFilter; } @@ -180,65 +188,65 @@ define([ } } } else { - switch ( event.keyCode ) { + switch (event.keyCode) { case $.ui.keyCode.DOWN: - this.next( event ); + this.next(event); break; case $.ui.keyCode.UP: - this.previous( event ); + this.previous(event); break; case $.ui.keyCode.RIGHT: - if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { - this.expand( event ); + if (this.active && !this.active.is(".ui-state-disabled")) { + this.expand(event); } break; case $.ui.keyCode.ENTER: case $.ui.keyCode.SPACE: - this._activate( event ); + this._activate(event); break; case $.ui.keyCode.LEFT: case $.ui.keyCode.ESCAPE: - this.collapse( event ); + this.collapse(event); break; default: preventDefault = false; prev = this.previousFilter || ""; - character = String.fromCharCode( event.keyCode ); + character = String.fromCharCode(event.keyCode); skip = false; - clearTimeout( this.filterTimer ); + clearTimeout(this.filterTimer); - if ( character === prev ) { + if (character === prev) { skip = true; } else { character = prev + character; } - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { - return regex.test( $( this ).children( "a" ).text() ); + regex = new RegExp("^" + escape(character), "i"); + match = this.activeMenu.children(".ui-menu-item").filter(function () { + return regex.test($(this).children("a").text()); }); - match = skip && match.index( this.active.next() ) !== -1 ? - this.active.nextAll( ".ui-menu-item" ) : + match = skip && match.index(this.active.next()) !== -1 ? + this.active.nextAll(".ui-menu-item") : match; // If no matches on the current filter, reset to the last character pressed // to move down the menu to the first item that starts with that character - if ( !match.length ) { - character = String.fromCharCode( event.keyCode ); - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { - return regex.test( $( this ).children( "a" ).text() ); + if (!match.length) { + character = String.fromCharCode(event.keyCode); + regex = new RegExp("^" + escape(character), "i"); + match = this.activeMenu.children(".ui-menu-item").filter(function () { + return regex.test($(this).children("a").text()); }); } - if ( match.length ) { - this.focus( event, match ); - if ( match.length > 1 ) { + if (match.length) { + this.focus(event, match); + if (match.length > 1) { this.previousFilter = character; - this.filterTimer = this._delay(function() { + this.filterTimer = this._delay(function () { delete this.previousFilter; - }, 1000 ); + }, 1000); } else { delete this.previousFilter; } @@ -248,27 +256,27 @@ define([ } } - if ( preventDefault ) { + if (preventDefault) { event.preventDefault(); } }, - _toggleMobileMode: function() { + _toggleMobileMode: function () { $(this.element).off('mouseenter mouseleave'); this._on({ - "click .ui-menu-item:has(a)": function( event ) { + "click .ui-menu-item:has(a)": function (event) { event.preventDefault(); - var target = $( event.target ).closest( ".ui-menu-item" ); - - if ( !target.hasClass('level-top') || !target.has( ".ui-menu" ).length ) { + var target = $(event.target).closest(".ui-menu-item"); + + if (!target.hasClass('level-top') || !target.has(".ui-menu").length) { window.location.href = target.find('> a').attr('href'); } } }); var subMenus = this.element.find('.level-top'); - $.each(subMenus, $.proxy(function(index, item) { + $.each(subMenus, $.proxy(function (index, item) { var category = $(item).find('> a span').not('.ui-menu-icon').text(), categoryUrl = $(item).find('> a').attr('href'), menu = $(item).find('> .ui-menu'); @@ -281,58 +289,79 @@ define([ .addClass('ui-menu-item all-category') .html(this.categoryLink); - if(menu.find('.all-category').length === 0) { + if (menu.find('.all-category').length === 0) { menu.prepend(this.categoryParent); } }, this)); }, - _toggleDesktopMode: function() { + _toggleDesktopMode: function () { this._on({ // Prevent focus from sticking to links inside menu after clicking // them (focus should always stay on UL during navigation). - "mousedown .ui-menu-item > a": function( event ) { + "mousedown .ui-menu-item > a": function (event) { event.preventDefault(); }, - "click .ui-state-disabled > a": function( event ) { + "click .ui-state-disabled > a": function (event) { event.preventDefault(); }, - "click .ui-menu-item:has(a)": function( event ) { - var target = $( event.target ).closest( ".ui-menu-item" ); - if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { - this.select( event ); + "click .ui-menu-item:has(a)": function (event) { + var target = $(event.target).closest(".ui-menu-item"); + if (!this.mouseHandled && target.not(".ui-state-disabled").length) { + this.select(event); // Only set the mouseHandled flag if the event will bubble, see #9469. - if ( !event.isPropagationStopped() ) { + if (!event.isPropagationStopped()) { this.mouseHandled = true; } // Open submenu on click - if ( target.has( ".ui-menu" ).length ) { - this.expand( event ); - } else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) { + if (target.has(".ui-menu").length) { + this.expand(event); + } else if (!this.element.is(":focus") && $(this.document[0].activeElement).closest(".ui-menu").length) { // Redirect focus to the menu - this.element.trigger( "focus", [ true ] ); + this.element.trigger("focus", [true]); // If the active item is on the top level, let it stay active. // Otherwise, blur the active item since it is no longer visible. - if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { - clearTimeout( this.timer ); + if (this.active && this.active.parents(".ui-menu").length === 1) { + clearTimeout(this.timer); } } } }, - "mouseenter .ui-menu-item": function( event ) { - var target = $( event.currentTarget ); + "mouseenter .ui-menu-item": function (event) { + var target = $(event.currentTarget), + ulElement, + ulElementWidth, + width, + targetPageX, + rightBound; + + if (target.has('ul')) { + ulElement = target.find('ul'); + ulElementWidth = target.find('ul').outerWidth(true); + width = target.outerWidth() * 2; + targetPageX = target.offset().left; + rightBound = $(window).width(); + + if ((ulElementWidth + width + targetPageX) > rightBound) { + ulElement.addClass('submenu-reverse'); + } + if ((targetPageX - ulElementWidth) < 0) { + ulElement.removeClass('submenu-reverse'); + } + } + // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border - target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" ); - this.focus( event, target ); + target.siblings().children(".ui-state-active").removeClass("ui-state-active"); + this.focus(event, target); }, - "mouseleave": function( event ){ - this.collapseAll( event, true ); + "mouseleave": function (event) { + this.collapseAll(event, true); }, "mouseleave .ui-menu": "collapseAll" }); @@ -349,11 +378,14 @@ define([ }, 300); } }, - _delay: function(handler, delay) { - handler.apply(this, arguments); - - return setTimeout(function() {}, delay || 0); + var instance = this, + handlerProxy = function () { + return (typeof handler === "string" ? instance[handler] : handler) + .apply(instance, arguments); + }; + + return setTimeout(handlerProxy, delay || 0); } }); @@ -368,7 +400,7 @@ define([ breakpoint: 768 }, - _init: function() { + _init: function () { this._super(); var that = this, @@ -383,24 +415,24 @@ define([ this.setMaxItems(); //check responsive option - if(responsive == "onResize") { - $(window).on('resize', function() { - if($(window).width() > that.options.breakpoint) { - that._responsive(); - $('[responsive=more]').show(); + if (responsive == "onResize") { + $(window).on('resize', function () { + if ($(window).width() > that.options.breakpoint) { + that._responsive(); + $('[responsive=more]').show(); } else { that.element.children().show(); $('[responsive=more]').hide(); } }); - } else if(responsive == "onReload") { + } else if (responsive == "onReload") { this._responsive(); } }, - setupMoreMenu: function() { + setupMoreMenu: function () { var moreListItems = this.element.children().clone(), - moreLink = $('<a>'+ this.options.moreText +'</a>'); + moreLink = $('<a>' + this.options.moreText + '</a>'); moreListItems.hide(); @@ -418,15 +450,15 @@ define([ .attr('responsive', 'more') .append(this.moreListContainer) .menu({ - position : { - my : "right top", - at : "right bottom" + position: { + my: "right top", + at: "right bottom" } }) .insertAfter(this.element); }, - _responsive: function() { + _responsive: function () { var container = $(this.options.container), containerSize = container.width(), width = 0, @@ -434,7 +466,7 @@ define([ more = $('.ui-menu-more > li > ul > li a'); - items = items.map(function() { + items = items.map(function () { var item = {}; item.item = $(this); @@ -442,36 +474,36 @@ define([ return item; }); - $.each(items, function(index, item){ + $.each(items, function (index, item) { var itemText = items[index].item - .find('a:first') - .text(); + .find('a:first') + .text(); width += parseInt(items[index].itemSize, null); - if(width < containerSize) { + if (width < containerSize) { items[index].item.show(); - more.each(function() { - var text = $(this).text(); - if(text === itemText){ - $(this).parent().hide(); - } - }); - } else if(width > containerSize) { + more.each(function () { + var text = $(this).text(); + if (text === itemText) { + $(this).parent().hide(); + } + }); + } else if (width > containerSize) { items[index].item.hide(); - more.each(function() { - var text = $(this).text(); - if(text === itemText){ - $(this).parent().show(); - } - }); + more.each(function () { + var text = $(this).text(); + if (text === itemText) { + $(this).parent().show(); + } + }); } }); }, - setMaxItems: function() { + setMaxItems: function () { var items = this.element.children('li'), itemsCount = items.length, maxItems = this.options.maxItems, @@ -480,23 +512,23 @@ define([ overflowItems.hide(); - overflowItems.each(function(){ + overflowItems.each(function () { var itemText = $(this).find('a:first').text(); $(this).hide(); - $('.ui-menu-more > li > ul > li a').each(function() { - var text = $(this).text(); - if(text === itemText){ - $(this).parent().show(); - } - }); + $('.ui-menu-more > li > ul > li a').each(function () { + var text = $(this).text(); + if (text === itemText) { + $(this).parent().show(); + } + }); }); } }); - + return { - menu: $.mage.menu, + menu: $.mage.menu, navigation: $.mage.navigation }; }); diff --git a/lib/web/mage/utils/arrays.js b/lib/web/mage/utils/arrays.js index 54fb9a6189a8df0335808a989c5be5b859643ed8..d931fc1c7118a76ac5fe4f3b2dbc9cf4df9756a7 100644 --- a/lib/web/mage/utils/arrays.js +++ b/lib/web/mage/utils/arrays.js @@ -8,6 +8,25 @@ define([ ], function (_, utils) { 'use strict'; + /** + * Defines index of an item in a specified container. + * + * @param {*} item - Item whose index should be defined. + * @param {Array} container - Container upon which to perform search. + * @returns {Number} + */ + function getIndex(item, container) { + var index = container.indexOf(item); + + if (~index) { + return index; + } + + return _.findIndex(container, function (value) { + return value && value.name === item; + }); + } + return { /** * Facade method to remove/add value from/to array @@ -62,21 +81,6 @@ define([ return this; }, - /** - * Extends an incoming array with a specified ammount of undefined values - * starting from a specified position. - * - * @param {Array} container - Array to be extended. - * @param {Number} size - Ammount of values to be added. - * @param {Number} [offset=0] - Position at which to start inserting values. - * @returns {Array} Modified array. - */ - reserve: function (container, size, offset) { - container.splice(offset || 0, 0, new Array(size)); - - return _.flatten(container); - }, - /** * Compares multiple arrays without tracking order of their elements. * @@ -93,7 +97,64 @@ define([ }); }, - formatOffset: function(elems, offset) { + /** + * Inserts specified item into container at specified position. + * + * @param {*} item - Item to be inserted into container. + * @param {Array} container - Container of items. + * @param {*} [position=-1] - Position at which item should be inserted. + * Position can represent: + * - specific index in container + * - item which might already be present in container + * - structure with one of these properties: after, before + * @returns {Boolean|*} + * - true if element has changed its' position + * - false if nothing has changed + * - inserted value if it wasn't present in container + */ + insert: function (item, container, position) { + var currentIndex = getIndex(item, container), + newIndex, + target; + + if (typeof position === 'undefined') { + position = -1; + } else if (typeof position === 'string') { + position = isNaN(+position) ? position : +position; + } + + newIndex = position; + + if (~currentIndex) { + target = container.splice(currentIndex, 1)[0]; + + if (typeof item === 'string') { + item = target; + } + } + + if (typeof position !== 'number') { + target = position.after || position.before || position; + + newIndex = getIndex(target, container); + + if (~newIndex && (position.after || newIndex >= currentIndex)) { + newIndex++; + } + } + + if (newIndex < 0) { + newIndex += container.length + 1; + } + + container[newIndex] ? + container.splice(newIndex, 0, item) : + container[newIndex] = item; + + return !~currentIndex ? item : currentIndex !== newIndex; + }, + + formatOffset: function (elems, offset) { if (utils.isEmpty(offset)) { offset = -1; } diff --git a/lib/web/mage/utils/objects.js b/lib/web/mage/utils/objects.js index 7cd4924e492a39ee5609bb7e25c9bdef887c2ebb..4aa5d7216c6f3b4c4496071da48516e7d029e78b 100644 --- a/lib/web/mage/utils/objects.js +++ b/lib/web/mage/utils/objects.js @@ -207,7 +207,12 @@ define([ return result; }, - extend: function (target) { + /** + * Performs deep extend of specified objects. + * + * @returns {Object|Array} Extended object. + */ + extend: function () { var args = _.toArray(arguments); args.unshift(true); @@ -215,15 +220,36 @@ define([ return $.extend.apply($, args); }, + /** + * Performs a deep clone of a specified object. + * + * @param {(Object|Array)} data - Data that should be copied. + * @returns {Object|Array} Cloned object. + */ copy: function (data) { - return this.extend({}, data); + var result = data, + isArray = Array.isArray(data), + placeholder; + + if (this.isObject(data) || isArray) { + placeholder = isArray ? [] : {}; + result = this.extend(placeholder, data); + } + + return result; }, - isObject: function (data) { + /** + * Checks if provided value is a plain object. + * + * @param {*} value - Value to be checked. + * @returns {Boolean} + */ + isObject: function (value) { var objProto = Object.prototype; - return typeof data == 'object' ? - objProto.toString.call(data) === '[object Object]' : + return typeof value == 'object' ? + objProto.toString.call(value) === '[object Object]' : false; } }; diff --git a/lib/web/mage/utils/strings.js b/lib/web/mage/utils/strings.js index 185951886aaf3271e84cfc4d79d16016aec1d5ef..914ca72c1bdf63a6525eca1fc2c2c7372e60ade3 100644 --- a/lib/web/mage/utils/strings.js +++ b/lib/web/mage/utils/strings.js @@ -7,7 +7,29 @@ define([ ], function (_) { 'use strict'; + var jsonRe = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/; + return { + /** + * Attempts to convert string to one of the primitive values, + * or to parse it as a valid json object. + * + * @param {String} str - String to be processed. + * @returns {*} + */ + castString: function (str) { + try { + str = str === 'true' ? true : + str === 'false' ? false : + str === 'null' ? null : + +str + '' === str ? +str : + jsonRe.test(str) ? JSON.parse(str) : + str; + } catch (e) {} + + return str; + }, + /** * Splits string by separator if it's possible, * otherwise returns the incoming value. @@ -62,6 +84,13 @@ define([ return value === '' || _.isUndefined(value) || _.isNull(value); }, + /** + * Adds 'prefix' to the 'part' value if it was provided. + * + * @param {String} prefix + * @param {String} part + * @returns {String} + */ fullPath: function (prefix, part) { return prefix ? prefix + '.' + part : part; } diff --git a/lib/web/mage/utils/template.js b/lib/web/mage/utils/template.js index a2b8cd462f6669405c84a39a89785cec54cb472b..d76f0e890f665582b06071a7ab1253717eb3656a 100644 --- a/lib/web/mage/utils/template.js +++ b/lib/web/mage/utils/template.js @@ -4,8 +4,9 @@ */ define([ 'underscore', - 'mage/utils/objects' -], function (_, utils) { + 'mage/utils/objects', + 'mage/utils/strings' +], function (_, utils, stringUtils) { 'use strict'; var tmplSettings = _.templateSettings, @@ -28,6 +29,7 @@ define([ })(); if (hasStringTmpls) { + /*eslint-disable no-unused-vars, no-eval*/ /** * Evaluates template string using ES6 templates. * @@ -38,6 +40,7 @@ define([ template = function (tmpl, $) { return eval('`' + tmpl + '`'); }; + /*eslint-enable no-unused-vars, no-eval*/ } else { /** * Fallback function used when ES6 templates are not supported. @@ -52,7 +55,9 @@ define([ tmplSettings.interpolate = interpolate; - tmpl = _.template(tmpl, {variable: '$'})(data); + tmpl = _.template(tmpl, { + variable: '$' + })(data); tmplSettings.interpolate = cached; @@ -63,7 +68,7 @@ define([ /** * Checks if provided value contains template syntax. * - * @param {*} value - Value to be check. + * @param {*} value - Value to be checked. * @returns {Boolean} */ function isTemplate(value) { @@ -76,9 +81,12 @@ define([ * * @param {String} tmpl - Template string. * @param {Object} data - Data object used in a template. - * @returns {String} Compiled template. + * @param {Boolean} [castString=false] - Flag that indicates whether template + * should be casted after evaluation to a value of another type or + * that it should be leaved as a string. + * @returns {*} Compiled template. */ - function render(tmpl, data) { + function render(tmpl, data, castString) { var last = tmpl; data = Object.create(data); @@ -93,7 +101,9 @@ define([ last = tmpl; } - return tmpl; + return castString ? + stringUtils.castString(tmpl) : + tmpl; } return { @@ -102,7 +112,10 @@ define([ * * @param {Object|String} tmpl * @param {Object} [data] - Data object to match with template. - * @returns {Object|String} + * @param {Boolean} [castString=false] - Flag that indicates whether template + * should be casted after evaluation to a value of another type or + * that it should be leaved as a string. + * @returns {*} * * @example Template defined as a string. * var source = { foo: 'Random Stuff', bar: 'Some' }; @@ -114,6 +127,8 @@ define([ * var tmpl = { * key: {'${ $.$data.bar }': '${ $.$data.foo }'}, * foo: 'bar', + * x1: 2, x2: 5, + * delta: '${ $.x2 - $.x1 }', * baz: 'Upper ${ $.foo.toUpperCase() }' * }; * @@ -121,19 +136,25 @@ define([ * => { * key: {'Some': 'Random Stuff'}, * foo: 'bar', + * x1: 2, x2: 5, + * delta: 3, * baz: 'Upper BAR' * }; */ - template: function (tmpl, data) { + template: function (tmpl, data, castString) { + var iterate; + if (typeof tmpl === 'string') { - return render(tmpl, data); + return render(tmpl, data, castString); } - tmpl = utils.extend({}, tmpl); - + tmpl = utils.copy(tmpl); tmpl.$data = data || {}; - _.each(tmpl, function iterate(value, key, list) { + /** + * Template iterator function. + */ + iterate = function (value, key, list) { if (key === '$data') { return; } @@ -146,11 +167,13 @@ define([ } if (isTemplate(value)) { - list[key] = render(value, tmpl); - } else if (_.isObject(value)) { + list[key] = render(value, tmpl, castString); + } else if (utils.isObject(value) || Array.isArray(value)) { _.each(value, iterate); } - }); + }; + + _.each(tmpl, iterate); delete tmpl.$data;