Skip to content

Commit 8b9e579

Browse files
committed
Merge remote-tracking branch 'tango-ce/MAGETWO-62044' into MAGETWO-64483
2 parents 39044f9 + 0809d81 commit 8b9e579

File tree

644 files changed

+29809
-15672
lines changed

Some content is hidden

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

644 files changed

+29809
-15672
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Use the following table to verify you have the correct prerequisites to install
3333
<td><a href="http://devdocs.magento.com/guides/v2.0/install-gde/prereq/apache.html">Apache</a></td>
3434
</tr>
3535
<tr>
36-
<td>PHP 5.6.x, 7.0.2 or 7.0.6</td>
36+
<td>PHP 5.6.x, 7.0.2, 7.0.4 or 7.0.6</td>
3737
<td><code>php -v</code></td>
3838
<td><a href="http://devdocs.magento.com/guides/v2.0/install-gde/prereq/php-ubuntu.html">PHP Ubuntu</a><br><a href="http://devdocs.magento.com/guides/v2.0/install-gde/prereq/php-centos.html">PHP CentOS</a></td>
3939
</tr>

app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
33
* See COPYING.txt for license details.
44
*/
5+
56
define([
67
'jquery',
78
'mage/template',
@@ -15,20 +16,22 @@ define([
1516
modalClass: 'modal-system-messages',
1617
systemMessageTemplate:
1718
'<% _.each(data.items, function(item) { %>' +
18-
'<li class="message message-warning <% if (item.severity == 1) { %>error<% } else { %>warning<% } %>">' +
19+
'<li class="message message-warning' +
20+
'<% if (item.severity == 1) { %>error<% } else { %>warning<% } %>">' +
1921
'<%= item.text %>' +
2022
'</li>' +
2123
'<% }); %>'
2224
},
2325

24-
_create: function() {
26+
/** @inheritdoc */
27+
_create: function () {
2528
this.options.title = $('#message-system-all').attr('title');
2629
this._super();
2730
},
2831

32+
/** @inheritdoc */
2933
openModal: function (severity) {
3034
var superMethod = $.proxy(this._super, this);
31-
//this.modal.options
3235

3336
$.ajax({
3437
url: this.options.ajaxUrl,
@@ -56,6 +59,8 @@ define([
5659

5760
return this;
5861
},
62+
63+
/** @inheritdoc */
5964
closeModal: function () {
6065
this._super();
6166
}

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

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,22 @@
22
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
33
* See COPYING.txt for license details.
44
*/
5+
56
define([
6-
"jquery",
7-
"jquery/ui",
8-
"domReady!"
7+
'jquery',
8+
'jquery/ui',
9+
'domReady!'
910
], function ($) {
1011
'use strict';
1112

12-
// Mark notification as read via AJAX call
13+
/**
14+
* Mark notification as read via AJAX call.
15+
*
16+
* @param {String} notificationId
17+
*/
1318
var markNotificationAsRead = function (notificationId) {
1419
var requestUrl = $('.notifications-wrapper .admin__action-dropdown-menu').attr('data-mark-as-read-url');
20+
1521
$.ajax({
1622
url: requestUrl,
1723
type: 'POST',
@@ -22,19 +28,24 @@ define([
2228
showLoader: false
2329
});
2430
},
25-
2631
notificationCount = $('.notifications-wrapper').attr('data-notification-count'),
2732

28-
// Remove notification from the list
33+
/**
34+
* Remove notification from the list.
35+
*
36+
* @param {jQuery} notificationEntry
37+
*/
2938
removeNotificationFromList = function (notificationEntry) {
39+
var notificationIcon, actionElement;
40+
3041
notificationEntry.remove();
3142
notificationCount--;
3243
$('.notifications-wrapper').attr('data-notification-count', notificationCount);
3344

34-
if (notificationCount == 0) {
45+
if (notificationCount == 0) {// eslint-disable-line eqeqeq
3546
// Change appearance of the bubble and its behavior when the last notification is removed
3647
$('.notifications-wrapper .admin__action-dropdown-menu').remove();
37-
var notificationIcon = $('.notifications-wrapper .notifications-icon');
48+
notificationIcon = $('.notifications-wrapper .notifications-icon');
3849
notificationIcon.removeAttr('data-toggle');
3950
notificationIcon.off('click.dropdown');
4051
$('.notifications-action .notifications-counter').text('').hide();
@@ -45,12 +56,16 @@ define([
4556
}
4657
$('.notifications-entry-last .notifications-counter').text(notificationCount);
4758
// Modify caption of the 'See All' link
48-
var actionElement = $('.notifications-wrapper .admin__action-dropdown-menu .last .action-more');
59+
actionElement = $('.notifications-wrapper .admin__action-dropdown-menu .last .action-more');
4960
actionElement.text(actionElement.text().replace(/\d+/, notificationCount));
5061
}
5162
},
5263

53-
// Show notification details
64+
/**
65+
* Show notification details.
66+
*
67+
* @param {jQuery} notificationEntry
68+
*/
5469
showNotificationDetails = function (notificationEntry) {
5570
var notificationDescription = notificationEntry.find('.notifications-entry-description'),
5671
notificationDescriptionEnd = notificationEntry.find('.notifications-entry-description-end');
@@ -59,20 +74,22 @@ define([
5974
notificationDescriptionEnd.addClass('_show');
6075
}
6176

62-
if(notificationDescription.hasClass('_cutted')) {
77+
if (notificationDescription.hasClass('_cutted')) {
6378
notificationDescription.removeClass('_cutted');
6479
}
6580
};
6681

6782
// Show notification description when corresponding item is clicked
68-
$('.notifications-wrapper .admin__action-dropdown-menu .notifications-entry').on('click.showNotification', function (event) {
69-
// hide notification dropdown
70-
$('.notifications-wrapper .notifications-icon').trigger('click.dropdown');
83+
$('.notifications-wrapper .admin__action-dropdown-menu .notifications-entry').on(
84+
'click.showNotification',
85+
function (event) {
86+
// hide notification dropdown
87+
$('.notifications-wrapper .notifications-icon').trigger('click.dropdown');
7188

72-
showNotificationDetails($(this));
73-
event.stopPropagation();
74-
75-
});
89+
showNotificationDetails($(this));
90+
event.stopPropagation();
91+
}
92+
);
7693

7794
// Remove corresponding notification from the list and mark it as read
7895
$('.notifications-close').on('click.removeNotification', function (event) {
@@ -83,19 +100,19 @@ define([
83100
removeNotificationFromList(notificationEntry);
84101

85102
// Checking for last unread notification to hide dropdown
86-
if (notificationCount == 0) {
103+
if (notificationCount == 0) {// eslint-disable-line eqeqeq
87104
$('.notifications-wrapper').removeClass('active')
88-
.find('.notifications-action').removeAttr('data-toggle')
89-
.off('click.dropdown');
105+
.find('.notifications-action')
106+
.removeAttr('data-toggle')
107+
.off('click.dropdown');
90108
}
91109
event.stopPropagation();
92110
});
93111

94112
// Hide notifications bubble
95-
if (notificationCount == 0) {
113+
if (notificationCount == 0) {// eslint-disable-line eqeqeq
96114
$('.notifications-action .notifications-counter').hide();
97115
} else {
98116
$('.notifications-action .notifications-counter').show();
99117
}
100-
101118
});
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Analytics\Controller\Adminhtml\BasicTier;
7+
8+
use Magento\Backend\App\Action;
9+
use Magento\Config\Model\Config;
10+
use Magento\Backend\App\Action\Context;
11+
12+
/**
13+
* Class SignUp
14+
*
15+
* Provides link to Basic Tier signup
16+
*/
17+
class SignUp extends Action
18+
{
19+
/**
20+
* @var string
21+
*/
22+
private $basicTierUrlPath = 'analytics/url/basic_tier';
23+
24+
/**
25+
* @var Config
26+
*/
27+
private $config;
28+
29+
/**
30+
* @param Context $context
31+
* @param Config $config
32+
*/
33+
public function __construct(
34+
Context $context,
35+
Config $config
36+
) {
37+
$this->config = $config;
38+
parent::__construct($context);
39+
}
40+
41+
/**
42+
* Check admin permissions for this controller
43+
*
44+
* @return boolean
45+
*/
46+
protected function _isAllowed()
47+
{
48+
return $this->_authorization->isAllowed('Magento_Analytics::report_basic_tier');
49+
}
50+
51+
/**
52+
* Provides link to Basic Tier signup
53+
*
54+
* @return \Magento\Framework\Controller\AbstractResult
55+
*/
56+
public function execute()
57+
{
58+
return $this->resultRedirectFactory->create()->setUrl(
59+
$this->config->getConfigDataValue($this->basicTierUrlPath)
60+
);
61+
}
62+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Analytics\Controller\Adminhtml\Export;
8+
9+
use Magento\Backend\App\Action;
10+
use Magento\Framework\App\ResponseInterface;
11+
use Magento\Framework\App\Response\Http\FileFactory;
12+
use Magento\Analytics\Model\Export;
13+
use Magento\Framework\App\Filesystem\DirectoryList;
14+
15+
/**
16+
* Class Example
17+
*/
18+
class Example extends Action
19+
{
20+
/**
21+
* @var Export
22+
*/
23+
private $export;
24+
25+
/**
26+
* @var FileFactory
27+
*/
28+
private $fileFactory;
29+
30+
/**
31+
* Example constructor.
32+
*
33+
* @param Action\Context $context
34+
* @param Export $export
35+
* @param FileFactory $fileFactory
36+
*/
37+
public function __construct(
38+
Action\Context $context,
39+
Export $export,
40+
FileFactory $fileFactory
41+
) {
42+
parent::__construct($context);
43+
$this->export = $export;
44+
$this->fileFactory = $fileFactory;
45+
}
46+
47+
/**
48+
* Controller for demo
49+
*
50+
* @return ResponseInterface
51+
* @throws \Exception
52+
*/
53+
public function execute()
54+
{
55+
return $this->fileFactory->create(
56+
'analytics-export.tgz',
57+
$this->export->getArchiveContent(),
58+
DirectoryList::VAR_DIR
59+
);
60+
}
61+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Analytics\Controller\Adminhtml\Reports;
7+
8+
use Magento\Analytics\Model\ReportUrlProvider;
9+
use Magento\Backend\App\Action;
10+
use Magento\Backend\App\Action\Context;
11+
use Magento\Framework\Controller\Result\Redirect;
12+
use Magento\Framework\Controller\ResultFactory;
13+
use Magento\Framework\Exception\LocalizedException;
14+
15+
/**
16+
* Provide redirect to resource with reports.
17+
*/
18+
class Show extends Action
19+
{
20+
/**
21+
* @var ReportUrlProvider
22+
*/
23+
private $reportUrlProvider;
24+
25+
/**
26+
* @param Context $context
27+
* @param ReportUrlProvider $reportUrlProvider
28+
*/
29+
public function __construct(
30+
Context $context,
31+
ReportUrlProvider $reportUrlProvider
32+
) {
33+
$this->reportUrlProvider = $reportUrlProvider;
34+
parent::__construct($context);
35+
}
36+
37+
/**
38+
* Check admin permissions for this controller.
39+
*
40+
* @return boolean
41+
*/
42+
protected function _isAllowed()
43+
{
44+
return $this->_authorization->isAllowed('Magento_Analytics::analytics_settings');
45+
}
46+
47+
/**
48+
* Redirect to resource with reports.
49+
*
50+
* @return Redirect $resultRedirect
51+
*/
52+
public function execute()
53+
{
54+
/** @var Redirect $resultRedirect */
55+
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
56+
try {
57+
$resultRedirect->setUrl($this->reportUrlProvider->getUrl());
58+
} catch (LocalizedException $e) {
59+
$this->getMessageManager()->addExceptionMessage($e, $e->getMessage());
60+
$resultRedirect->setPath('adminhtml');
61+
} catch (\Exception $e) {
62+
$this->getMessageManager()->addExceptionMessage(
63+
$e,
64+
__('Sorry, there has been an error processing your request. Please try again later.')
65+
);
66+
$resultRedirect->setPath('adminhtml');
67+
}
68+
69+
return $resultRedirect;
70+
}
71+
}

0 commit comments

Comments
 (0)