Skip to content

Commit ab2a008

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-46317' into MAGETWO-55193
# Conflicts: # setup/pub/styles/setup.css
2 parents fa1a975 + 386db3a commit ab2a008

File tree

16 files changed

+420
-109
lines changed

16 files changed

+420
-109
lines changed

app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,64 @@
6666
margin-top: .3rem;
6767
}
6868

69+
.extensions-information {
70+
margin-bottom: 5rem;
71+
72+
h3 {
73+
font-size: @base__font-size;
74+
margin-bottom: 1.3rem;
75+
}
76+
77+
.message {
78+
margin-bottom: @indent__m;
79+
80+
&:before {
81+
margin-top: 0;
82+
top: 1.8rem;
83+
}
84+
}
85+
86+
.extensions-container {
87+
padding: 0 @indent__base;
88+
}
89+
90+
.list {
91+
margin-bottom: @indent__s;
92+
93+
select {
94+
cursor: pointer;
95+
96+
&:disabled {
97+
background: @color-gray80;
98+
cursor: default;
99+
}
100+
}
101+
102+
.extension-delete {
103+
&:extend(.abs-action-delete all);
104+
font-size: 1.7rem;
105+
padding-top: 0;
106+
}
107+
}
108+
}
109+
110+
.delete-modal-wrap {
111+
padding: 0 4% @indent__xl;
112+
113+
h3 {
114+
.lib-font-size(34);
115+
display: inline-block;
116+
font-weight: @font-weight__light;
117+
margin: 0 0 @indent__base;
118+
padding: .9rem 0 0;
119+
vertical-align: top;
120+
}
121+
122+
.actions {
123+
padding: @indent__l 0 0;
124+
}
125+
}
126+
69127
//
70128
// Mobile
71129
// _____________________________________________

setup/config/states.extensionManager.config.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
'templateUrl' => "$base/start-updater",
6666
'controller' => 'startUpdaterController',
6767
'title' => "Component \n Install",
68-
'header' => 'Step 3: Component Install',
68+
'header' => 'Step 3: Install',
6969
'nav' => true,
7070
'order' => 6,
7171
'type' => 'install',

setup/config/states.update.config.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@
6060
'url' => 'start-updater',
6161
'templateUrl' => "$base/start-updater",
6262
'controller' => 'startUpdaterController',
63-
'title' => "Component \n Update",
64-
'header' => 'Step 3: Component Update',
63+
'title' => "Extension \n Update",
64+
'header' => 'Step 3: Extension Update',
6565
'nav' => true,
6666
'order' => 6,
6767
'type' => 'update'

setup/pub/magento/setup/install-extension-grid.js

Lines changed: 10 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,17 @@
55

66
'use strict';
77
angular.module('install-extension-grid', ['ngStorage', 'clickOut'])
8-
.controller('installExtensionGridController', ['$scope', '$http', '$localStorage', 'authService', 'paginationService',
9-
function ($scope, $http, $localStorage, authService, paginationService) {
8+
.controller('installExtensionGridController', ['$scope', '$http', '$localStorage', 'authService', 'paginationService', 'multipleChoiceService',
9+
function ($scope, $http, $localStorage, authService, paginationService, multipleChoiceService) {
1010

1111
$http.get('index.php/installExtensionGrid/extensions').success(function(data) {
1212
$scope.error = false;
1313
$scope.errorMessage = '';
14-
$scope.selectedExtensions = {};
15-
$scope.allExtensions = {};
14+
$scope.multipleChoiceService = multipleChoiceService;
15+
$scope.multipleChoiceService.reset();
1616
angular.forEach(data.extensions, function(value) {
17-
this[value.name] = {
18-
'name': value.name,
19-
'version': value.version
20-
};
21-
}, $scope.allExtensions);
17+
$scope.multipleChoiceService.addExtension(value.name, value.version);
18+
});
2219
$scope.extensions = data.extensions;
2320
$scope.total = data.total;
2421
$scope.currentPage = 1;
@@ -28,90 +25,29 @@ angular.module('install-extension-grid', ['ngStorage', 'clickOut'])
2825

2926
paginationService.initWatchers($scope);
3027

31-
$scope.updateSelectedExtensions = function($event, name, version) {
32-
var checkbox = $event.target;
33-
if (checkbox.checked) {
34-
$scope.selectedExtensions[name] = {
35-
'name': name,
36-
'version': version
37-
};
38-
if ($scope.getObjectSize($scope.selectedExtensions) == $scope.getObjectSize($scope.allExtensions)) {
39-
$scope.someExtensionsSelected = false;
40-
$scope.allExtensionsSelected = true;
41-
} else {
42-
$scope.someExtensionsSelected = true;
43-
$scope.allExtensionsSelected = false;
44-
}
45-
} else {
46-
delete $scope.selectedExtensions[name];
47-
$scope.allExtensionsSelected = false;
48-
if ($scope.getObjectSize($scope.selectedExtensions) > 0) {
49-
$scope.someExtensionsSelected = true;
50-
} else {
51-
$scope.someExtensionsSelected = false;
52-
}
53-
}
54-
};
55-
5628
$scope.predicate = 'name';
5729
$scope.reverse = false;
5830
$scope.order = function(predicate) {
5931
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
6032
$scope.predicate = predicate;
6133
};
6234

63-
$scope.getObjectSize = function(obj) {
64-
var size = 0, key;
65-
for (key in obj) {
66-
if (obj.hasOwnProperty(key)) {
67-
++size;
68-
}
69-
}
70-
return size;
71-
};
72-
73-
$scope.isNewExtensionsMenuVisible = false;
74-
$scope.toggleNewExtensionsMenu = function() {
75-
$scope.isNewExtensionsMenuVisible = !$scope.isNewExtensionsMenuVisible;
76-
};
77-
$scope.hideNewExtensionsMenu = function() {
78-
$scope.isNewExtensionsMenuVisible = false;
79-
};
80-
$scope.someExtensionsSelected = false;
81-
$scope.allExtensionsSelected = false;
82-
$scope.selectAllExtensions = function() {
83-
$scope.isNewExtensionsMenuVisible = false;
84-
$scope.someExtensionsSelected = false;
85-
$scope.allExtensionsSelected = true;
86-
$scope.selectedExtensions = angular.copy($scope.allExtensions);
87-
};
88-
$scope.deselectAllExtensions = function() {
89-
$scope.isNewExtensionsMenuVisible = false;
90-
$scope.someExtensionsSelected = false;
91-
$scope.allExtensionsSelected = false;
92-
$scope.selectedExtensions = {};
93-
};
94-
9535
$scope.isHiddenSpinner = true;
9636
$scope.installAll = function() {
9737
$scope.isHiddenSpinner = false;
9838
authService.checkAuth({
9939
success: function(response) {
10040
$scope.isHiddenSpinner = true;
101-
if ($scope.getObjectSize($scope.selectedExtensions) > 0) {
102-
$scope.error = false;
103-
$scope.errorMessage = '';
104-
$localStorage.packages = $scope.selectedExtensions;
105-
} else {
106-
$scope.error = true;
107-
$scope.errorMessage = 'Please select at least one extension';
108-
}
41+
var result = $scope.multipleChoiceService.checkSelectedExtensions();
42+
$scope.error = result.error;
43+
$scope.errorMessage = result.errorMessage;
10944

11045
if (!$scope.error) {
11146
$scope.nextState();
11247
}
11348
},
11449
fail: function(response) {
50+
$scope.isHiddenSpinner = true;
11551
authService.openAuthDialog($scope);
11652
},
11753
error: function() {

setup/pub/magento/setup/main.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,91 @@ main.controller('navigationController',
283283
};
284284
}
285285
])
286+
.service('multipleChoiceService', ['$localStorage',
287+
function ($localStorage) {
288+
return {
289+
selectedExtensions: {},
290+
allExtensions: {},
291+
someExtensionsSelected: false,
292+
allExtensionsSelected: false,
293+
isNewExtensionsMenuVisible: false,
294+
295+
addExtension: function (name, version) {
296+
this.allExtensions[name] = {
297+
'name': name,
298+
'version': version
299+
};
300+
},
301+
reset: function () {
302+
this.allExtensions = {};
303+
this.selectedExtensions = {};
304+
this.someExtensionsSelected = false;
305+
this.allExtensionsSelected = false;
306+
this.isNewExtensionsMenuVisible = false;
307+
},
308+
updateSelectedExtensions: function ($event, name, version) {
309+
var checkbox = $event.target;
310+
if (checkbox.checked) {
311+
this.selectedExtensions[name] = {
312+
'name': name,
313+
'version': version
314+
};
315+
if (this._getObjectSize(this.selectedExtensions) == this._getObjectSize(this.allExtensions)) {
316+
this.someExtensionsSelected = false;
317+
this.allExtensionsSelected = true;
318+
} else {
319+
this.someExtensionsSelected = true;
320+
this.allExtensionsSelected = false;
321+
}
322+
} else {
323+
delete this.selectedExtensions[name];
324+
this.allExtensionsSelected = false;
325+
this.someExtensionsSelected = (this._getObjectSize(this.selectedExtensions) > 0);
326+
}
327+
},
328+
toggleNewExtensionsMenu: function() {
329+
this.isNewExtensionsMenuVisible = !this.isNewExtensionsMenuVisible;
330+
},
331+
hideNewExtensionsMenu: function() {
332+
this.isNewExtensionsMenuVisible = false;
333+
},
334+
selectAllExtensions: function() {
335+
this.isNewExtensionsMenuVisible = false;
336+
this.someExtensionsSelected = false;
337+
this.allExtensionsSelected = true;
338+
this.selectedExtensions = angular.copy(this.allExtensions);
339+
},
340+
deselectAllExtensions: function() {
341+
this.isNewExtensionsMenuVisible = false;
342+
this.someExtensionsSelected = false;
343+
this.allExtensionsSelected = false;
344+
this.selectedExtensions = {};
345+
},
346+
checkSelectedExtensions: function() {
347+
var result = {error: false, errorMessage: ''};
348+
if (this._getObjectSize(this.selectedExtensions) > 0) {
349+
result.error = false;
350+
result.errorMessage = '';
351+
$localStorage.packages = this.selectedExtensions;
352+
} else {
353+
result.error = true;
354+
result.errorMessage = 'Please select at least one extension';
355+
}
356+
357+
return result;
358+
},
359+
_getObjectSize: function (obj) {
360+
var size = 0, key;
361+
for (key in obj) {
362+
if (obj.hasOwnProperty(key)) {
363+
++size;
364+
}
365+
}
366+
return size;
367+
}
368+
};
369+
}
370+
])
286371
.filter('startFrom', function () {
287372
return function (input, start) {
288373
if (input !== undefined && start !== 'NaN') {

setup/pub/magento/setup/readiness-check.js

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
*/
55

66
'use strict';
7-
angular.module('readiness-check', [])
7+
angular.module('readiness-check', ['remove-dialog'])
88
.constant('COUNTER', 1)
9-
.controller('readinessCheckController', ['$rootScope', '$scope', '$localStorage', '$http', '$timeout', '$sce', '$state', 'COUNTER', function ($rootScope, $scope, $localStorage, $http, $timeout, $sce, $state, COUNTER) {
9+
.controller('readinessCheckController', ['$rootScope', '$scope', '$localStorage', '$http', '$timeout', '$sce', '$state', 'COUNTER', 'ngDialog', function ($rootScope, $scope, $localStorage, $http, $timeout, $sce, $state, COUNTER, ngDialog) {
1010
$scope.Object = Object;
1111
$scope.titles = $localStorage.titles;
1212
$scope.moduleName = $localStorage.moduleName;
1313
$scope.progressCounter = COUNTER;
14+
$rootScope.needReCheck = false;
1415
$scope.startProgress = function() {
1516
++$scope.progressCounter;
1617
};
@@ -361,6 +362,9 @@ angular.module('readiness-check', [])
361362
}
362363
} else {
363364
$actionString += 'package';
365+
if ($scope.getObjectSize($localStorage.packages) > 1) {
366+
$actionString += 's';
367+
}
364368
}
365369
}
366370
$actionString += " to be " + $state.current.type;
@@ -378,5 +382,49 @@ angular.module('readiness-check', [])
378382
}
379383

380384
return $actionString;
381-
}
385+
};
386+
387+
$scope.getExtensionsList = function () {
388+
return $scope.componentDependency.packages ? $scope.componentDependency.packages : {};
389+
};
390+
391+
$scope.openDialog = function (name) {
392+
$scope.extensionToRemove = name;
393+
ngDialog.open({scope: $scope, template: 'removeDialog', controller: 'removeDialogController'});
394+
};
395+
396+
$scope.getCurrentVersion = function (name) {
397+
if ($scope.getExtensionInfo(name).hasOwnProperty('currentVersion')) {
398+
return $scope.getExtensionInfo(name)['currentVersion'];
399+
}
400+
401+
return '';
402+
};
403+
404+
$scope.getVersionsList = function (name) {
405+
if ($scope.getExtensionInfo(name).hasOwnProperty('versions')) {
406+
return $scope.getExtensionInfo(name)['versions'];
407+
}
408+
409+
return {};
410+
};
411+
412+
$scope.getExtensionInfo = function (name) {
413+
var extensionsVersions = $localStorage.extensionsVersions;
414+
return extensionsVersions.hasOwnProperty(name) ? extensionsVersions[name] : {};
415+
};
416+
417+
$scope.versionChanged = function () {
418+
$rootScope.needReCheck = true;
419+
};
420+
421+
$scope.getObjectSize = function (obj) {
422+
var size = 0, key;
423+
for (key in obj) {
424+
if (obj.hasOwnProperty(key)) {
425+
++size;
426+
}
427+
}
428+
return size;
429+
};
382430
}]);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* Copyright © 2016 Magento. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
'use strict';
7+
angular.module('remove-dialog', [])
8+
.controller('removeDialogController', ['$rootScope', '$scope', '$localStorage',
9+
function ($rootScope, $scope, $localStorage) {
10+
$scope.removeExtension = function (name) {
11+
delete $scope.componentDependency.packages[name];
12+
$localStorage.packages = $scope.componentDependency.packages;
13+
$rootScope.needReCheck = true;
14+
$scope.closeThisDialog();
15+
};
16+
}]);

0 commit comments

Comments
 (0)