Skip to content

Commit 6189b0b

Browse files
author
Dmytro Aponasenko
committed
Merge remote-tracking branch 'mainline/develop' into develop
Conflicts: dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerInjectable.php
2 parents f4e6ee2 + 8f09664 commit 6189b0b

File tree

860 files changed

+16008
-89082
lines changed

Some content is hidden

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

860 files changed

+16008
-89082
lines changed

CHANGELOG.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
1+
0.42.0-beta5
2+
=============
3+
* UI improvements:
4+
* Updated the design of Enable Cookies CMS page
5+
* Implemented UI improvements for Widgets
6+
* Fixed the "Help Us to Keep Magento Healthy Report All Bugs (ver. #)" link Magento Admin
7+
* Various UI improvements
8+
* Various improvements:
9+
* Implemented Sales Quote as a standalone Magento module
10+
* Performed custom EAV entities code and DB tables cleanup
11+
* Eliminating remnants of the Core module:
12+
* Moved Application Emulation from the Magento_Core module to the Magento_Store module
13+
* Moved Validator Factory from the Magento_Core module to the Magento Framework
14+
* Added static integrity test for composer.json files
15+
* Added PHPMD and PHPCS annotations to the codebase
16+
* Tests improvements:
17+
* Added MVP tag to the functional tests
18+
* Created acceptance functional test suite
19+
* Replaced end-to-end tests for url rewrite creation, CMS page creation, category creation, review creation, customer frontend creation, and tax rule creation with injectable tests
20+
* Automated test cases for downloadable products with taxes
21+
* Fixed bugs:
22+
* Fixed an issue where the Discounts and Coupons RSS Feed had incorrect title
23+
* Fixed an issue where a wrong special price expiration date was displayed in RSS
24+
* Fixed an issue in the Import functionality where imported files disappeared after the Check Data operation
25+
* Fixed an issue where the Unsubscribe link in the Newsletter was broken
26+
* Fixed an issue where stock status changed incorrectly after import
27+
* Fixed an issue where selected filters and exclude did not work during Export
28+
* Fixed an issue where tax details order was different on order/invoice/refund create and view pages (
29+
* Fixed a typo in the getCalculationAlgorithm public function
30+
* Fixed an issue where the incorrect value of Subtotal Including Tax was displayed in invoices
31+
* Fixed an issue where tax details were not displayed on a new order
32+
* Improved pricing performance using caching
33+
* Fixed an issue where CsvImportHandler tests still referring to links from Tax module instead of TaxImportExport module
34+
* Fixed an issue where an exception was thrown instead of 404 if altering the url for a product with required configuration on the storefront
35+
* Fixed an issue where the title of successfully placed order page (was empty
36+
* Fixed an issue where certain fields were not disabled by default on the website scope in System configuration as expected
37+
* Fixed an issue where third party interfaces were not supported by single-tenant compiler
38+
* Eliminated the 'protocol' parameter from the ReadInterface and WriteInterface
39+
* GitHub requests:
40+
* [#979](https://github.com/magento/magento2/pull/979) -- Adding OSL license file name
41+
* [#978](https://github.com/magento/magento2/pull/978) -- Added ignore rule for media assets in wysiwyg directory
42+
* [#877](https://github.com/magento/magento2/pull/877) -- Made Topmenu HTML Editable
43+
* [#906](https://github.com/magento/magento2/pull/906) -- Add tests for View\Layout\Reader\Block and slight refactoring
44+
* [#682](https://github.com/magento/magento2/issues/682) -- \Magento\Framework\Pricing\PriceCurrencyInterface depends on Magento application code
45+
* [#581](https://github.com/magento/magento2/issues/581) -- About ByPercent.php under different currencies
46+
* [#964](https://github.com/magento/magento2/pull/964) -- Improving documentation for jMeter performance tests
47+
* [#871](https://github.com/magento/magento2/issues/871) -- Replace Symfony2/Yaml in composer
48+
* [#990](https://github.com/magento/magento2/pull/990) -- add @see annotation before class to make it recognizable by IDE
49+
* [#988](https://github.com/magento/magento2/pull/988) -- Prevent Varnish from creating cache variations of static files
50+
* Framework improvements:
51+
* Improved unit and integration tests coverage
52+
153
0.42.0-beta4
254
=============
355
* Various improvements:

Gruntfile.js

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ module.exports = function (grunt) {
1111
// Require
1212
// --------------------------------------
1313

14+
require('./dev/tools/grunt/tasks/mage-minify')(grunt);
15+
1416
// Time how long tasks take. Can help when optimizing build times
1517
require('time-grunt')(grunt);
1618

@@ -33,7 +35,10 @@ module.exports = function (grunt) {
3335
blank: 'app/design/frontend/Magento/blank',
3436
luma: 'app/design/frontend/luma'
3537
},
36-
doc: 'lib/web/css/docs'
38+
doc: 'lib/web/css/docs',
39+
uglify: {
40+
legacy: 'lib/web/legacy-build.min.js'
41+
}
3742
},
3843
doc: {
3944
styleName: 'docs'
@@ -110,7 +115,7 @@ module.exports = function (grunt) {
110115
},
111116
documentation: {
112117
files: {
113-
'<%= config.path.doc %>/<%= config.doc.styleName %>.css': "<%= config.path.doc %>/source/<%= config.doc.styleName %>.less"
118+
'<%= config.path.doc %>/<%= config.doc.styleName %>.css': '<%= config.path.doc %>/source/<%= config.doc.styleName %>.less'
114119
}
115120
}
116121
},
@@ -131,10 +136,40 @@ module.exports = function (grunt) {
131136
'<%= config.path.doc %>': '<%= config.path.doc %>/source' // Todo UI: Check out JS for Styledocco
132137
}
133138
}
134-
}
139+
},
135140

141+
'mage-minify': {
142+
legacy: {
143+
options: {
144+
type: 'yui-js',
145+
tempPath: 'var/cache/',
146+
options: ['--nomunge=true']
147+
},
148+
files: {
149+
'<%= config.path.uglify.legacy %>': [
150+
'lib/web/prototype/prototype.js',
151+
'lib/web/prototype/window.js',
152+
'lib/web/scriptaculous/builder.js',
153+
'lib/web/scriptaculous/effects.js',
154+
'lib/web/lib/ccard.js',
155+
'lib/web/prototype/validation.js',
156+
'lib/web/varien/js.js',
157+
'lib/web/mage/adminhtml/varienLoader.js',
158+
'lib/web/mage/adminhtml/tools.js'
159+
]
160+
}
161+
}
162+
}
136163
});
137164

165+
/**
166+
* Creates build of a legacy files.
167+
* Mostly prototype dependant libraries.
168+
*/
169+
grunt.registerTask('legacy-build', [
170+
'mage-minify:legacy'
171+
]);
172+
138173
// Default task
139174
// --------------------------------------
140175
grunt.registerTask('default', []); // ToDo UI: define default tasks

app/code/Magento/AdminNotification/composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
"description": "N/A",
44
"require": {
55
"php": "~5.4.11|~5.5.0|~5.6.0",
6-
"magento/module-store": "0.42.0-beta4",
7-
"magento/module-core": "0.42.0-beta4",
8-
"magento/module-backend": "0.42.0-beta4",
9-
"magento/framework": "0.42.0-beta4",
6+
"magento/module-store": "0.42.0-beta5",
7+
"magento/module-core": "0.42.0-beta5",
8+
"magento/module-backend": "0.42.0-beta5",
9+
"magento/framework": "0.42.0-beta5",
1010
"lib-libxml": "*",
1111
"magento/magento-composer-installer": "*"
1212
},
1313
"type": "magento2-module",
14-
"version": "0.42.0-beta4",
14+
"version": "0.42.0-beta5",
1515
"license": [
1616
"OSL-3.0",
1717
"AFL-3.0"

app/code/Magento/AdminNotification/view/adminhtml/requirejs-config.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
var config = {
77
map: {
88
'*': {
9-
systemMessageDialog: 'Magento_AdminNotification/system/notification'
9+
systemMessageDialog: 'Magento_AdminNotification/system/notification',
10+
toolbarEntry: 'Magento_AdminNotification/toolbar_entry'
1011
}
11-
},
12-
deps: [
13-
"Magento_AdminNotification/toolbar_entry"
14-
]
12+
}
1513
};

app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @see \Magento\AdminNotification\Block\Window
1313
*/
1414
?>
15-
<div class="fade critical-notification">
15+
<div data-mage-init='{"modalPopup": {}}' class="fade critical-notification">
1616
<div class="popup popup-<?php echo preg_replace('#[^a-z0-9]+#', '-', strtolower($this->getSeverityText())) ?>">
1717
<div class="popup-inner">
1818
<header class="popup-header">

app/code/Magento/AdminNotification/view/adminhtml/templates/toolbar_entry.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
?>
1010
<?php /** @var $this \Magento\AdminNotification\Block\ToolbarEntry */ ?>
1111
<?php $notificationCount = $this->getUnreadNotificationCount(); ?>
12-
<div class="notifications-summary" data-notification-count="<?php echo $this->escapeHtml($notificationCount); ?>">
12+
<div data-mage-init='{"toolbarEntry": {}}' class="notifications-summary" data-notification-count="<?php echo $this->escapeHtml($notificationCount); ?>">
1313
<?php if ($notificationCount > 0) : ?>
1414
<a href="<?php echo $this->getUrl('adminhtml/notification/index'); ?>" class="action notifications-action" data-mage-init='{"dropdown":{}}' title="<?php echo __('Notifications'); ?>" data-toggle="dropdown">
1515
<span class="text"><?php echo __('Notifications'); ?></span>

app/code/Magento/AdminNotification/view/adminhtml/web/toolbar_entry.js

Lines changed: 90 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -4,106 +4,105 @@
44
*/
55
define([
66
"jquery",
7-
"jquery/ui"
7+
"jquery/ui",
8+
"domReady!"
89
], function($){
910
'use strict';
1011

11-
$(document).ready(function() {
12-
// Mark notification as read via AJAX call
13-
var markNotificationAsRead = function(notificationId) {
14-
var requestUrl = $('.notifications-summary .dropdown-menu').attr('data-mark-as-read-url');
15-
$.ajax({
16-
url: requestUrl,
17-
type: 'POST',
18-
dataType: 'json',
19-
data: {
20-
id: notificationId
21-
},
22-
showLoader: false
23-
});
24-
};
25-
var notificationCount = $('.notifications-summary').attr('data-notification-count');
26-
// Remove notification from the list
27-
var removeNotificationFromList = function(notificationEntry) {
28-
notificationEntry.remove();
29-
notificationCount--;
30-
$('.notifications-summary').attr('data-notification-count', notificationCount);
31-
32-
if (notificationCount == 0) {
33-
// Change appearance of the bubble and its behavior when the last notification is removed
34-
$('.notifications-summary .dropdown-menu').remove();
35-
var notificationIcon = $('.notifications-summary .notifications-icon');
36-
notificationIcon.removeAttr('data-toggle');
37-
notificationIcon.off('click.dropdown');
38-
$('.notifications-action .counter').text('');
39-
$('.notifications-action .counter').hide();
40-
} else {
41-
$('.notifications-action .counter').text(notificationCount);
42-
// Modify caption of the 'See All' link
43-
var actionElement = $('.notifications-summary .dropdown-menu .last .action-more');
44-
actionElement.text(actionElement.text().replace(/\d+/, notificationCount));
45-
}
46-
};
47-
48-
// Show popup with notification details
49-
var showNotificationDetails = function(notificationEntry) {
50-
var popupElement = notificationEntry.find('.notifications-dialog-content').clone();
51-
var notificationId = notificationEntry.attr('data-notification-id');
52-
var dialogClassSeverity = 'notifications-entry-dialog';
53-
if (notificationEntry.attr('data-notification-severity')) {
54-
dialogClassSeverity = 'notifications-entry-dialog notifications-entry-dialog-critical';
55-
}
56-
popupElement.dialog({
57-
title: popupElement.attr('data-title'),
58-
minWidth: 500,
59-
modal: true,
60-
dialogClass: dialogClassSeverity,
61-
buttons: [
62-
{
63-
text: popupElement.attr('data-acknowledge-caption'),
64-
'class': 'action-acknowledge primary',
65-
click: function(event) {
66-
markNotificationAsRead(notificationId);
67-
removeNotificationFromList(notificationEntry);
68-
$(this).dialog('close');
69-
}
70-
},
71-
{
72-
text: popupElement.attr('data-cancel-caption'),
73-
'class': 'action-cancel',
74-
click: function(event) {
75-
$(this).dialog('close');
76-
}
77-
}
78-
]
79-
});
80-
popupElement.parent().attr('aria-live','assertive');
81-
popupElement.dialog('open');
82-
};
83-
84-
// Show notification description when corresponding item is clicked
85-
$('.notifications-summary .dropdown-menu .notifications-entry').on('click.showNotification', function(event) {
86-
// hide notification dropdown
87-
$('.notifications-summary .notifications-icon').trigger('click.dropdown');
88-
showNotificationDetails($(this));
89-
event.stopPropagation();
90-
});
91-
92-
// Remove corresponding notification from the list and mark it as read
93-
$('.notifications-close').on('click.removeNotification', function(event) {
94-
var notificationEntry = $(this).closest('.notifications-entry')
95-
var notificationId = notificationEntry.attr('data-notification-id');
96-
markNotificationAsRead(notificationId);
97-
removeNotificationFromList(notificationEntry);
98-
event.stopPropagation();
12+
// Mark notification as read via AJAX call
13+
var markNotificationAsRead = function(notificationId) {
14+
var requestUrl = $('.notifications-summary .dropdown-menu').attr('data-mark-as-read-url');
15+
$.ajax({
16+
url: requestUrl,
17+
type: 'POST',
18+
dataType: 'json',
19+
data: {
20+
id: notificationId
21+
},
22+
showLoader: false
9923
});
24+
};
25+
var notificationCount = $('.notifications-summary').attr('data-notification-count');
26+
// Remove notification from the list
27+
var removeNotificationFromList = function(notificationEntry) {
28+
notificationEntry.remove();
29+
notificationCount--;
30+
$('.notifications-summary').attr('data-notification-count', notificationCount);
10031

101-
// Hide notifications bubble
10232
if (notificationCount == 0) {
33+
// Change appearance of the bubble and its behavior when the last notification is removed
34+
$('.notifications-summary .dropdown-menu').remove();
35+
var notificationIcon = $('.notifications-summary .notifications-icon');
36+
notificationIcon.removeAttr('data-toggle');
37+
notificationIcon.off('click.dropdown');
38+
$('.notifications-action .counter').text('');
10339
$('.notifications-action .counter').hide();
10440
} else {
105-
$('.notifications-action .counter').show();
41+
$('.notifications-action .counter').text(notificationCount);
42+
// Modify caption of the 'See All' link
43+
var actionElement = $('.notifications-summary .dropdown-menu .last .action-more');
44+
actionElement.text(actionElement.text().replace(/\d+/, notificationCount));
45+
}
46+
};
47+
48+
// Show popup with notification details
49+
var showNotificationDetails = function(notificationEntry) {
50+
var popupElement = notificationEntry.find('.notifications-dialog-content').clone();
51+
var notificationId = notificationEntry.attr('data-notification-id');
52+
var dialogClassSeverity = 'notifications-entry-dialog';
53+
if (notificationEntry.attr('data-notification-severity')) {
54+
dialogClassSeverity = 'notifications-entry-dialog notifications-entry-dialog-critical';
10655
}
56+
popupElement.dialog({
57+
title: popupElement.attr('data-title'),
58+
minWidth: 500,
59+
modal: true,
60+
dialogClass: dialogClassSeverity,
61+
buttons: [
62+
{
63+
text: popupElement.attr('data-acknowledge-caption'),
64+
'class': 'action-acknowledge primary',
65+
click: function(event) {
66+
markNotificationAsRead(notificationId);
67+
removeNotificationFromList(notificationEntry);
68+
$(this).dialog('close');
69+
}
70+
},
71+
{
72+
text: popupElement.attr('data-cancel-caption'),
73+
'class': 'action-cancel',
74+
click: function(event) {
75+
$(this).dialog('close');
76+
}
77+
}
78+
]
79+
});
80+
popupElement.parent().attr('aria-live','assertive');
81+
popupElement.dialog('open');
82+
};
83+
84+
// Show notification description when corresponding item is clicked
85+
$('.notifications-summary .dropdown-menu .notifications-entry').on('click.showNotification', function(event) {
86+
// hide notification dropdown
87+
$('.notifications-summary .notifications-icon').trigger('click.dropdown');
88+
showNotificationDetails($(this));
89+
event.stopPropagation();
90+
});
91+
92+
// Remove corresponding notification from the list and mark it as read
93+
$('.notifications-close').on('click.removeNotification', function(event) {
94+
var notificationEntry = $(this).closest('.notifications-entry')
95+
var notificationId = notificationEntry.attr('data-notification-id');
96+
markNotificationAsRead(notificationId);
97+
removeNotificationFromList(notificationEntry);
98+
event.stopPropagation();
10799
});
108100

101+
// Hide notifications bubble
102+
if (notificationCount == 0) {
103+
$('.notifications-action .counter').hide();
104+
} else {
105+
$('.notifications-action .counter').show();
106+
}
107+
109108
});

app/code/Magento/Authorization/composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"description": "Authorization module provides access to Magento ACL functionality.",
44
"require": {
55
"php": "~5.4.11|~5.5.0|~5.6.0",
6-
"magento/module-backend": "0.42.0-beta4",
7-
"magento/framework": "0.42.0-beta4",
6+
"magento/module-backend": "0.42.0-beta5",
7+
"magento/framework": "0.42.0-beta5",
88
"magento/magento-composer-installer": "*"
99
},
1010
"type": "magento2-module",
11-
"version": "0.42.0-beta4",
11+
"version": "0.42.0-beta5",
1212
"license": [
1313
"OSL-3.0",
1414
"AFL-3.0"

0 commit comments

Comments
 (0)