| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 |
1
1
1
153
48
1
51
51
51
36
15
51
36
15
51
51
51
12
1
51
1
51
| 'use strict';
;require.register("views/common/modal_popups/cluster_check_popup", function (exports, require, module) {
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var App = require('app');
function mapUpgradeChecks(items) {
return items.map(function (item) {
return Em.getProperties(item.UpgradeChecks, ['failed_on', 'reason', 'check']);
});
}
/**
* popup to display requirements that are not met
* for current action
* @param data
* @param popup
* @param configs
* @returns {*|void}
*/
App.showClusterCheckPopup = function (data, popup, configs) {
var fails = data.items.filterProperty('UpgradeChecks.status', 'FAIL'),
warnings = data.items.filterProperty('UpgradeChecks.status', 'WARNING'),
bypass = data.items.filterProperty('UpgradeChecks.status', 'BYPASS'),
configsMergeConflicts = configs ? configs.filterProperty('wasModified', false) : [],
configsRecommendations = configs ? configs.filterProperty('wasModified', true) : [],
primary,
secondary;
popup = popup || {};
if (Em.isNone(popup.primary)) {
primary = fails.length ? Em.I18n.t('common.dismiss') : Em.I18n.t('common.proceedAnyway');
} else {
primary = popup.primary;
}
if (Em.isNone(popup.secondary)) {
secondary = fails.length ? false : Em.I18n.t('common.cancel');
} else {
secondary = popup.secondary;
}
return App.ModalPopup.show({
primary: primary,
secondary: secondary,
header: popup.header,
classNames: ['cluster-check-popup'],
bodyClass: Em.View.extend({
failTitle: popup.failTitle,
failAlert: popup.failAlert,
warningTitle: popup.warningTitle,
warningAlert: popup.warningAlert,
templateName: require('templates/common/modal_popups/cluster_check_dialog'),
warnings: mapUpgradeChecks(warnings),
fails: mapUpgradeChecks(fails),
bypass: mapUpgradeChecks(bypass), // errors that can be bypassed
hasConfigsMergeConflicts: configsMergeConflicts.length > 0,
hasConfigsRecommendations: configsRecommendations.length > 0,
configsMergeTable: App.getMergeConflictsView(configsMergeConflicts),
configsRecommendTable: App.getNewStackRecommendationsView(configsRecommendations),
isAllPassed: !fails.length && !warnings.length && !bypass.length && !configsMergeConflicts.length && !configsRecommendations.length
}),
onPrimary: function onPrimary() {
this._super();
if (!popup.noCallbackCondition && popup.callback) {
popup.callback();
}
},
didInsertElement: function didInsertElement() {
this._super();
this.fitHeight();
}
});
};
App.getMergeConflictsView = function (configs) {
return Em.View.extend({
templateName: require('templates/main/admin/stack_upgrade/upgrade_configs_merge_table'),
configs: configs
});
};
App.getNewStackRecommendationsView = function (configs) {
return Em.View.extend({
templateName: require('templates/main/admin/stack_upgrade/upgrade_configs_recommend_table'),
configs: configs
});
};
}); |