Skip to content

Commit 2381d60

Browse files
Merge branch 'develop' of https://github.corp.magento.com/magento2/magento2ce into MAGETWO-48223
2 parents c00880b + f227f6a commit 2381d60

File tree

23 files changed

+517
-155
lines changed

23 files changed

+517
-155
lines changed

app/code/Magento/Catalog/Model/Category/DataProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,11 @@ public function getDefaultMetaData($result)
384384
$result['use_config.default_sort_by']['default'] = true;
385385
$result['use_config.filter_price_range']['default'] = true;
386386
if ($this->request->getParam('store') && $this->request->getParam('id')) {
387+
$result['use_default.url_key']['checked'] = true;
387388
$result['use_default.url_key']['default'] = true;
388389
$result['use_default.url_key']['visible'] = true;
389390
} else {
391+
$result['use_default.url_key']['checked'] = false;
390392
$result['use_default.url_key']['default'] = false;
391393
$result['use_default.url_key']['visible'] = false;
392394
}

app/code/Magento/Catalog/view/adminhtml/web/js/components/url-key-handle-changes.js

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,36 @@
44
*/
55

66
define([
7-
'Magento_Ui/js/form/element/abstract'
8-
], function (Abstract) {
7+
'Magento_Ui/js/form/element/single-checkbox'
8+
], function (Checkbox) {
99
'use strict';
1010

11-
return Abstract.extend({
11+
return Checkbox.extend({
12+
defaults: {
13+
imports: {
14+
handleUseDefault: '${ $.parentName }.use_default.url_key:checked',
15+
urlKey: '${ $.provider }:data.url_key'
16+
},
17+
listens: {
18+
urlKey: 'handleChanges'
19+
},
20+
modules: {
21+
useDefault: '${ $.parentName }.use_default.url_key'
22+
}
23+
},
1224

1325
/**
14-
* Disable checkbox field, when 'url_key' field without changes
26+
* Disable checkbox field, when 'url_key' field without changes or 'use default' field is checked
1527
*/
1628
handleChanges: function (newValue) {
17-
if (newValue !== this.getInitialValue()) {
18-
this.disabled(false);
19-
} else {
20-
this.disabled(true);
21-
}
29+
this.disabled(newValue === this.valueMap['true'] || this.useDefault.checked);
2230
},
2331

2432
/**
25-
* Set real 'url_key' to 'url_key_create_redirect' when field is checked
33+
* Disable checkbox field, when 'url_key' field without changes or 'use default' field is checked
2634
*/
27-
onUpdate: function () {
28-
this._super();
29-
30-
if (this.value()) {
31-
this.value(this.initialValue);
32-
} else {
33-
this.value(0);
34-
}
35-
this._super();
35+
handleUseDefault: function (checkedUseDefault) {
36+
this.disabled(this.urlKey === this.valueMap['true'] || checkedUseDefault);
3637
}
3738
});
3839
});

app/code/Magento/CatalogUrlRewrite/Plugin/Catalog/Block/Adminhtml/Category/Tab/Attributes.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,14 @@ public function afterGetAttributesMeta(
2525
if (isset($result['url_key'])) {
2626
if ($category && $category->getId()) {
2727
if ($category->getLevel() == 1) {
28-
$result['url_key']['arguments']['data']['config']['visible'] = false;
29-
$result['url_key_create_redirect']['arguments']['data']['config']['visible'] = false;
30-
$result['url_key_group']['arguments']['data']['disabled'] = true;
28+
$result['url_key_group']['componentDisabled'] = true;
3129
} else {
32-
$result['url_key_create_redirect']['arguments']['data']['config']['value'] = $category->getUrlKey();
33-
$result['url_key_create_redirect']['arguments']['data']['config']['disabled'] = true;
30+
$result['url_key_create_redirect']['valueMap']['true'] = $category->getUrlKey();
31+
$result['url_key_create_redirect']['value'] = $category->getUrlKey();
32+
$result['url_key_create_redirect']['disabled'] = true;
3433
}
3534
} else {
36-
$result['url_key_create_redirect']['arguments']['data']['config']['visible'] = false;
35+
$result['url_key_create_redirect']['visible'] = false;
3736
}
3837
}
3938
return $result;

app/code/Magento/CatalogUrlRewrite/Ui/DataProvider/Product/Form/Modifier/ProductUrlRewrite.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
*/
66
namespace Magento\CatalogUrlRewrite\Ui\DataProvider\Product\Form\Modifier;
77

8-
use Magento\Catalog\Api\Data\ProductAttributeInterface;
98
use Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\AbstractModifier;
109
use Magento\Store\Model\ScopeInterface;
1110
use Magento\Catalog\Model\Locator\LocatorInterface;
1211
use Magento\Framework\App\Config\ScopeConfigInterface;
12+
use Magento\Catalog\Api\Data\ProductAttributeInterface as AC;
1313
use Magento\Ui\Component\Form\Element\Checkbox;
1414
use Magento\Ui\Component\Form\Element\DataType\Text;
1515
use Magento\Ui\Component\Form\Field;
@@ -80,7 +80,7 @@ public function modifyData(array $data)
8080
*/
8181
protected function addUrlRewriteCheckbox(array $meta)
8282
{
83-
$urlPath = $this->getElementArrayPath($meta, ProductAttributeInterface::CODE_SEO_FIELD_URL_KEY);
83+
$urlPath = $this->getElementArrayPath($meta, AC::CODE_SEO_FIELD_URL_KEY);
8484

8585
if ($urlPath) {
8686
$containerPath = $this->arrayManager->slicePath($urlPath, 0, -2);
@@ -105,14 +105,16 @@ protected function addUrlRewriteCheckbox(array $meta)
105105
'componentType' => Field::NAME,
106106
'formElement' => Checkbox::NAME,
107107
'dataType' => Text::NAME,
108-
'component' => 'Magento_CatalogUrlRewrite/js/components/url-key-handle-changes',
108+
'component' => 'Magento_Catalog/js/components/url-key-handle-changes',
109109
'valueMap' => [
110110
'false' => '',
111111
'true' => $urlKey
112112
],
113113
'imports' => [
114+
'urlKey' => '${ $.provider }:data.product.' . AC::CODE_SEO_FIELD_URL_KEY,
115+
'handleUseDefault' => '${ $.parentName }.url_key:isUseDefault',
114116
'handleChanges' => '${ $.provider }:data.product.'
115-
. ProductAttributeInterface::CODE_SEO_FIELD_URL_KEY,
117+
. AC::CODE_SEO_FIELD_URL_KEY,
116118
],
117119
'description' => __('Create Permanent Redirect for old URL'),
118120
'dataScope' => 'url_key_create_redirect',

app/code/Magento/CatalogUrlRewrite/view/adminhtml/ui_component/category_form.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515
<item name="description" xsi:type="string" translate="true">Create Permanent Redirect for old URL</item>
1616
<item name="dataType" xsi:type="string">boolean</item>
1717
<item name="formElement" xsi:type="string">checkbox</item>
18-
<item name="disabled" xsi:type="boolean">true</item>
1918
<item name="sortOrder" xsi:type="number">15</item>
19+
<item name="component" xsi:type="string">Magento_Catalog/js/components/url-key-handle-changes</item>
20+
<item name="valueMap" xsi:type="array">
21+
<item name="false" xsi:type="number">0</item>
22+
</item>
2023
</item>
2124
</argument>
2225
</field>

app/code/Magento/CatalogUrlRewrite/view/adminhtml/web/js/components/url-key-handle-changes.js

Lines changed: 0 additions & 59 deletions
This file was deleted.

app/code/Magento/Ui/view/base/web/js/form/components/button.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ define([
5656
*/
5757
applyAction: function (action) {
5858
var targetName = action.targetName,
59-
params = action.params,
59+
params = action.params || [],
6060
actionName = action.actionName,
6161
target;
6262

@@ -66,7 +66,8 @@ define([
6666
target = registry.async(targetName);
6767

6868
if (target && typeof target === 'function' && actionName) {
69-
target(actionName, params);
69+
params.unshift(actionName);
70+
target.apply(target, params);
7071
}
7172
},
7273

app/code/Magento/Ui/view/base/web/js/form/components/insert-form.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,39 @@ define([
1414
* Get page actions element.
1515
*
1616
* @param {String} elem
17-
* @param {String} actionsSelector
17+
* @param {String} actionsClass
1818
* @returns {String}
1919
*/
20-
function getPageActions(elem, actionsSelector) {
21-
var $el = $('<div/>').html(elem),
22-
$wrapper = $('<div/>').addClass('page-main-actions');
20+
function getPageActions(elem, actionsClass) {
21+
var el = document.createElement('div');
2322

24-
return $wrapper.html($el.find(actionsSelector)).get(0).outerHTML;
23+
el.innerHTML = elem;
24+
25+
return el.getElementsByClassName(actionsClass)[0];
2526
}
2627

2728
/**
2829
* Return element without page actions toolbar
2930
*
3031
* @param {String} elem
31-
* @param {String} actionsSelector
32+
* @param {String} actionsClass
3233
* @returns {String}
3334
*/
34-
function removePageActions(elem, actionsSelector) {
35-
var $el = $('<div/>').html(elem);
35+
function removePageActions(elem, actionsClass) {
36+
var el = document.createElement('div'),
37+
actions;
3638

37-
$el.find(actionsSelector).remove();
39+
el.innerHTML = elem;
40+
actions = el.getElementsByClassName(actionsClass)[0];
41+
el.removeChild(actions);
3842

39-
return $el.html();
43+
return el.innerHTML;
4044
}
4145

4246
return Insert.extend({
4347
defaults: {
4448
externalFormName: '${ $.ns }.${ $.ns }',
45-
pageActionsSelector: '.page-actions',
49+
pageActionsClass: 'page-actions',
4650
exports: {
4751
prefix: '${ $.externalFormName }:selectorPrefix'
4852
},
@@ -96,12 +100,12 @@ define([
96100

97101
/** @inheritdoc */
98102
onRender: function (data) {
99-
var actions = getPageActions(data, this.pageActionsSelector);
103+
var actions = getPageActions(data, this.pageActionsClass);
100104

101105
if (!data.length) {
102106
return this;
103107
}
104-
data = removePageActions(data, this.pageActionsSelector);
108+
data = removePageActions(data, this.pageActionsClass);
105109
this.renderActions(actions);
106110
this._super(data);
107111
},

app/code/Magento/Ui/view/base/web/js/form/components/insert.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ define([
126126
self.previousParams = params || {};
127127

128128
$.async({
129-
component: this.name
129+
component: this.name,
130+
ctx: '.' + this.contentSelector
130131
}, function (el) {
131132
self.contentEl = $(el);
132133
self.startRender = true;
@@ -235,8 +236,6 @@ define([
235236
onRender: function (data) {
236237
this.loading(false);
237238
this.set('content', data);
238-
this.contentEl.children().applyBindings();
239-
this.contentEl.trigger('contentUpdated');
240239
this.isRendered = true;
241240
this.startRender = false;
242241
},

app/code/Magento/Ui/view/base/web/js/form/element/date.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ define([
2323
*/
2424
initConfig: function () {
2525
this._super();
26-
27-
//this.dateFormat = utils.normalizeDate(this.dateFormat);
28-
this.dateFormat = utils.normalizeDate('MM/dd/YYYY');
26+
this.dateFormat = utils.normalizeDate(this.dateFormat);
2927

3028
return this;
3129
},

app/code/Magento/Ui/view/base/web/js/grid/columns/date.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ define([
3232
*
3333
* @returns {String} Formatted date.
3434
*/
35-
getLabel: function () {
35+
getLabel: function (value, format) {
3636
var date = moment(this._super());
3737

3838
date = date.isValid() ?
39-
date.format(this.dateFormat) :
39+
date.format(format || this.dateFormat) :
4040
'';
4141

4242
return date;

0 commit comments

Comments
 (0)