Skip to content

Commit a96280e

Browse files
committed
Merge pull request #408 from magento-vanilla/MAGETWO-34250
[Vanilla] Ui Grid improvements
2 parents 0167dfb + 3958712 commit a96280e

File tree

41 files changed

+894
-332
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+894
-332
lines changed

app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,21 @@
6868
<item name="displayArea" xsi:type="string">dataGridActions</item>
6969
</item>
7070
</argument>
71-
</container>
71+
</container>
72+
<container name="search">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item>
76+
<item name="displayArea" xsi:type="string">dataGridFilters</item>
77+
<item name="provider" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item>
78+
<item name="chipsProvider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters_chips</item>
79+
<item name="storageConfig" xsi:type="array">
80+
<item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item>
81+
<item name="namespace" xsi:type="string">current.search</item>
82+
</item>
83+
</item>
84+
</argument>
85+
</container>
7286
<filters name="listing_filters">
7387
<argument name="data" xsi:type="array">
7488
<item name="config" xsi:type="array">
@@ -288,13 +302,19 @@
288302
<item name="namespace" xsi:type="string">current</item>
289303
</item>
290304
<item name="childDefaults" xsi:type="array">
305+
<item name="fieldAction" xsi:type="array">
306+
<item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.actions</item>
307+
<item name="target" xsi:type="string">applyAction</item>
308+
<item name="params" xsi:type="array">
309+
<item name="0" xsi:type="string">edit</item>
310+
<item name="1" xsi:type="string">${ $.$data.rowIndex }</item>
311+
</item>
312+
</item>
291313
<item name="controlVisibility" xsi:type="boolean">true</item>
292-
<item name="actionField" xsi:type="string">actions</item>
293-
<item name="clickAction" xsi:type="string">edit</item>
294314
<item name="storageConfig" xsi:type="array">
295315
<item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item>
296316
<item name="root" xsi:type="string">columns.${ $.index }</item>
297-
<item name="namespace" xsi:type="string">current.${ $.storageConfig.root}</item>
317+
<item name="namespace" xsi:type="string">current.${ $.storageConfig.root }</item>
298318
</item>
299319
</item>
300320
</item>

app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,20 @@
6969
</item>
7070
</argument>
7171
</container>
72+
<container name="search">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item>
76+
<item name="displayArea" xsi:type="string">dataGridFilters</item>
77+
<item name="provider" xsi:type="string">cms_page_listing.cms_page_listing_data_source</item>
78+
<item name="chipsProvider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters_chips</item>
79+
<item name="storageConfig" xsi:type="array">
80+
<item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item>
81+
<item name="namespace" xsi:type="string">current.search</item>
82+
</item>
83+
</item>
84+
</argument>
85+
</container>
7286
<filters name="listing_filters">
7387
<argument name="data" xsi:type="array">
7488
<item name="config" xsi:type="array">
@@ -310,8 +324,14 @@
310324
<item name="namespace" xsi:type="string">current</item>
311325
</item>
312326
<item name="childDefaults" xsi:type="array">
313-
<item name="actionField" xsi:type="string">actions</item>
314-
<item name="clickAction" xsi:type="string">edit</item>
327+
<item name="fieldAction" xsi:type="array">
328+
<item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.actions</item>
329+
<item name="target" xsi:type="string">applyAction</item>
330+
<item name="params" xsi:type="array">
331+
<item name="0" xsi:type="string">edit</item>
332+
<item name="1" xsi:type="string">${ $.$data.rowIndex }</item>
333+
</item>
334+
</item>
315335
<item name="controlVisibility" xsi:type="boolean">true</item>
316336
<item name="storageConfig" xsi:type="array">
317337
<item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item>

app/code/Magento/Ui/view/base/requirejs-config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ var config = {
1111
map: {
1212
'*': {
1313
uiComponent: 'Magento_Ui/js/lib/component/main',
14-
uiRegistry: 'Magento_Ui/js/lib/registry/registry'
14+
uiRegistry: 'Magento_Ui/js/lib/registry/registry',
15+
uiLayout: 'Magento_Ui/js/core/renderer/layout'
1516
}
1617
}
1718
};

app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ define([
8484
return this.waitParent(node, name);
8585
}
8686

87-
if (node.template) {
87+
if (node.nodeTemplate) {
8888
return this.waitTemplate.apply(this, arguments);
8989
}
9090

@@ -102,19 +102,25 @@ define([
102102
},
103103

104104
build: function (parent, node, name) {
105-
var defaults = parent && parent.childDefaults || {},
106-
children = node.children,
107-
type = getNodeType(parent, node);
105+
var defaults = parent && parent.childDefaults || {},
106+
children = node.children,
107+
type = getNodeType(parent, node),
108+
dataScope = getDataScope(parent, node),
109+
nodeName;
108110

109111
node.children = false;
110112

111113
node = utils.extend({
112114
}, types.get(type), defaults, node);
113115

116+
nodeName = getNodeName(parent, node, name);
117+
114118
_.extend(node, node.config || {}, {
115119
index: node.name || name,
116-
name: getNodeName(parent, node, name),
117-
dataScope: getDataScope(parent, node)
120+
name: nodeName,
121+
dataScope: dataScope,
122+
parentName: utils.getPart(nodeName, -2),
123+
parentScope: utils.getPart(dataScope, -2)
118124
});
119125

120126
node.children = children;
@@ -154,7 +160,7 @@ define([
154160
waitTemplate: function (parent, node) {
155161
var args = _.toArray(arguments);
156162

157-
templates.get(node.template, function () {
163+
templates.get(node.nodeTemplate, function () {
158164
this.applyTemplate.apply(this, args);
159165
}.bind(this));
160166

@@ -172,11 +178,11 @@ define([
172178
},
173179

174180
applyTemplate: function (parent, node, name) {
175-
var template = templates.get(node.template);
181+
var template = templates.get(node.nodeTemplate);
176182

177183
node = utils.extend({}, template, node);
178184

179-
delete node.template;
185+
delete node.nodeTemplate;
180186

181187
this.process(parent, node, name);
182188
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ define([
1212
'use strict';
1313

1414
var childTemplate = {
15-
template: '${ $.$data.name }.${ $.$data.itemTemplate }',
1615
parent: '${ $.$data.name }',
1716
name: '${ $.$data.childIndex }',
18-
dataScope: '${ $.name }'
17+
dataScope: '${ $.name }',
18+
nodeTemplate: '${ $.$data.name }.${ $.$data.itemTemplate }'
1919
};
2020

2121
return Component.extend({

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

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,19 @@ define([
1616
template: 'ui/group/group',
1717
fieldTemplate: 'ui/form/field',
1818
breakLine: true,
19-
validateWholeGroup: false
19+
validateWholeGroup: false,
20+
additionalClasses: {}
2021
},
2122

2223
/**
2324
* Extends this with defaults and config.
2425
* Then calls initObservable, iniListenes and extractData methods.
2526
*/
2627
initialize: function () {
27-
return this._super();
28+
this._super()
29+
._setClasses();
30+
31+
return this;
2832
},
2933

3034
/**
@@ -43,6 +47,33 @@ define([
4347
return this;
4448
},
4549

50+
/**
51+
* Extends 'additionalClasses' object.
52+
*
53+
* @returns {Group} Chainable.
54+
*/
55+
_setClasses: function () {
56+
var addtional = this.additionalClasses,
57+
classes;
58+
59+
if (_.isString(addtional)) {
60+
addtional = this.additionalClasses.split(' ');
61+
classes = this.additionalClasses = {};
62+
63+
addtional.forEach(function (name) {
64+
classes[name] = true;
65+
}, this);
66+
}
67+
68+
_.extend(this.additionalClasses, {
69+
required: this.required,
70+
_error: this.error,
71+
_disabled: this.disabled
72+
});
73+
74+
return this;
75+
},
76+
4677
/**
4778
* Defines if group has only one element.
4879
* @return {Boolean}

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

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ define([
2626
error: '',
2727
notice: '',
2828
customScope: '',
29+
additionalClasses: {},
2930

3031
listens: {
3132
value: 'onUpdate',
@@ -46,7 +47,9 @@ define([
4647
initialize: function () {
4748
_.bindAll(this, 'reset');
4849

49-
this._super();
50+
this._super()
51+
._setClasses();
52+
5053
this.initialValue = this.getInitialValue();
5154

5255
this.value(this.initialValue);
@@ -91,6 +94,33 @@ define([
9194
return this;
9295
},
9396

97+
/**
98+
* Extends 'additionalClasses' object.
99+
*
100+
* @returns {Abstract} Chainable.
101+
*/
102+
_setClasses: function () {
103+
var addtional = this.additionalClasses,
104+
classes;
105+
106+
if (_.isString(addtional)) {
107+
addtional = this.additionalClasses.split(' ');
108+
classes = this.additionalClasses = {};
109+
110+
addtional.forEach(function (name) {
111+
classes[name] = true;
112+
}, this);
113+
}
114+
115+
_.extend(this.additionalClasses, {
116+
required: this.required,
117+
_error: this.error,
118+
_disabled: this.disabled
119+
});
120+
121+
return this;
122+
},
123+
94124
/**
95125
* Gets initial value of element
96126
*

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,12 +177,12 @@ define([
177177
args.unshift(callback.target);
178178

179179
callback = registry.async(callback.provider);
180-
} else if (typeof callback != 'function') {
180+
} else if (!_.isFunction(callback)) {
181181
callback = this.defaultCallback.bind(this);
182182
}
183183

184184
return function () {
185-
callback.apply(null, args);
185+
callback.apply(callback, args);
186186
};
187187
},
188188

0 commit comments

Comments
 (0)