iguazio.dashboard-controls 0.40.0-3.5.x → 0.40.1-3.5.x
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/js/iguazio.dashboard-controls.js +1677 -1677
- package/dist/less/iguazio.dashboard-controls.less +4060 -4060
- package/package.json +1 -1
- package/src/igz_controls/less/icons.less +1 -1
|
@@ -3916,201 +3916,6 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
3916
3916
|
})();
|
|
3917
3917
|
'use strict';
|
|
3918
3918
|
|
|
3919
|
-
(function () {
|
|
3920
|
-
'use strict';
|
|
3921
|
-
|
|
3922
|
-
IgzActionCheckboxAllController.$inject = ['$scope', '$rootScope', 'lodash'];
|
|
3923
|
-
angular.module('iguazio.dashboard-controls').component('igzActionCheckboxAll', {
|
|
3924
|
-
bindings: {
|
|
3925
|
-
itemsCountOriginal: '<itemsCount',
|
|
3926
|
-
itemsType: '@?',
|
|
3927
|
-
checkedItemsCount: '<?',
|
|
3928
|
-
onCheckChange: '&?'
|
|
3929
|
-
},
|
|
3930
|
-
templateUrl: 'igz_controls/components/action-checkbox-all/action-checkbox-all.tpl.html',
|
|
3931
|
-
controller: IgzActionCheckboxAllController
|
|
3932
|
-
});
|
|
3933
|
-
|
|
3934
|
-
function IgzActionCheckboxAllController($scope, $rootScope, lodash) {
|
|
3935
|
-
var ctrl = this;
|
|
3936
|
-
|
|
3937
|
-
ctrl.allItemsChecked = false;
|
|
3938
|
-
|
|
3939
|
-
ctrl.$onInit = onInit;
|
|
3940
|
-
ctrl.$onChanges = onChanges;
|
|
3941
|
-
ctrl.$onDestroy = onDestroy;
|
|
3942
|
-
|
|
3943
|
-
ctrl.onCheckAll = onCheckAll;
|
|
3944
|
-
|
|
3945
|
-
//
|
|
3946
|
-
// Hook methods
|
|
3947
|
-
//
|
|
3948
|
-
|
|
3949
|
-
/**
|
|
3950
|
-
* Initialization method
|
|
3951
|
-
*/
|
|
3952
|
-
function onInit() {
|
|
3953
|
-
ctrl.checkedItemsCount = angular.isUndefined(ctrl.checkedItemsCount) ? 0 : ctrl.checkedItemsCount;
|
|
3954
|
-
ctrl.itemsCount = angular.isUndefined(ctrl.itemsCount) ? 0 : ctrl.itemsCount;
|
|
3955
|
-
|
|
3956
|
-
$scope.$on('action-checkbox_item-checked', toggleCheckedItem);
|
|
3957
|
-
$scope.$on('action-checkbox-all_change-checked-items-count', changeItemsCheckedCount);
|
|
3958
|
-
$scope.$on('action-checkbox-all_set-checked-items-count', setCheckedItemsCount);
|
|
3959
|
-
}
|
|
3960
|
-
|
|
3961
|
-
/**
|
|
3962
|
-
* Changes method
|
|
3963
|
-
* @param {Object} changes
|
|
3964
|
-
*/
|
|
3965
|
-
function onChanges(changes) {
|
|
3966
|
-
if (angular.isDefined(changes.itemsCountOriginal)) {
|
|
3967
|
-
ctrl.itemsCount = ctrl.itemsCountOriginal;
|
|
3968
|
-
testAllItemsChecked();
|
|
3969
|
-
}
|
|
3970
|
-
}
|
|
3971
|
-
|
|
3972
|
-
/**
|
|
3973
|
-
* Destructor method
|
|
3974
|
-
*/
|
|
3975
|
-
function onDestroy() {
|
|
3976
|
-
ctrl.checkedItemsCount = 0;
|
|
3977
|
-
|
|
3978
|
-
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
3979
|
-
checkedCount: ctrl.checkedItemsCount
|
|
3980
|
-
});
|
|
3981
|
-
}
|
|
3982
|
-
|
|
3983
|
-
//
|
|
3984
|
-
// Public methods
|
|
3985
|
-
//
|
|
3986
|
-
|
|
3987
|
-
/**
|
|
3988
|
-
* Calls when Check all button is clicked.
|
|
3989
|
-
*/
|
|
3990
|
-
function onCheckAll() {
|
|
3991
|
-
ctrl.allItemsChecked = !ctrl.allItemsChecked;
|
|
3992
|
-
ctrl.checkedItemsCount = ctrl.allItemsChecked ? ctrl.itemsCount : 0;
|
|
3993
|
-
|
|
3994
|
-
$rootScope.$broadcast('action-checkbox-all_check-all', {
|
|
3995
|
-
checked: ctrl.allItemsChecked,
|
|
3996
|
-
checkedCount: ctrl.checkedItemsCount,
|
|
3997
|
-
itemsType: !lodash.isEmpty(ctrl.itemsType) ? ctrl.itemsType : null
|
|
3998
|
-
});
|
|
3999
|
-
|
|
4000
|
-
if (angular.isFunction(ctrl.onCheckChange)) {
|
|
4001
|
-
ctrl.onCheckChange({ checkedCount: ctrl.checkedItemsCount });
|
|
4002
|
-
}
|
|
4003
|
-
}
|
|
4004
|
-
|
|
4005
|
-
//
|
|
4006
|
-
// Private methods
|
|
4007
|
-
//
|
|
4008
|
-
|
|
4009
|
-
/**
|
|
4010
|
-
* Calls on checked items count change
|
|
4011
|
-
* @param {Object} event
|
|
4012
|
-
* @param {Object} data
|
|
4013
|
-
*/
|
|
4014
|
-
function changeItemsCheckedCount(event, data) {
|
|
4015
|
-
if (data.changedCheckedItemsCount === 0) {
|
|
4016
|
-
ctrl.checkedItemsCount = 0;
|
|
4017
|
-
} else {
|
|
4018
|
-
ctrl.checkedItemsCount += data.changedCheckedItemsCount;
|
|
4019
|
-
}
|
|
4020
|
-
|
|
4021
|
-
testAllItemsChecked();
|
|
4022
|
-
|
|
4023
|
-
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4024
|
-
checkedCount: ctrl.checkedItemsCount
|
|
4025
|
-
});
|
|
4026
|
-
}
|
|
4027
|
-
|
|
4028
|
-
/**
|
|
4029
|
-
* Sets checked items count
|
|
4030
|
-
* @param {Object} event
|
|
4031
|
-
* @param {number} newCheckedItemsCount
|
|
4032
|
-
*/
|
|
4033
|
-
function setCheckedItemsCount(event, newCheckedItemsCount) {
|
|
4034
|
-
ctrl.checkedItemsCount = newCheckedItemsCount;
|
|
4035
|
-
|
|
4036
|
-
testAllItemsChecked();
|
|
4037
|
-
|
|
4038
|
-
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4039
|
-
checkedCount: ctrl.checkedItemsCount
|
|
4040
|
-
});
|
|
4041
|
-
}
|
|
4042
|
-
|
|
4043
|
-
/**
|
|
4044
|
-
* Calls on checkbox check/uncheck
|
|
4045
|
-
* @param {Object} event
|
|
4046
|
-
* @param {Object} data
|
|
4047
|
-
*/
|
|
4048
|
-
function toggleCheckedItem(event, data) {
|
|
4049
|
-
if (data.checked) {
|
|
4050
|
-
ctrl.checkedItemsCount++;
|
|
4051
|
-
} else {
|
|
4052
|
-
ctrl.checkedItemsCount--;
|
|
4053
|
-
}
|
|
4054
|
-
|
|
4055
|
-
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4056
|
-
checkedCount: ctrl.checkedItemsCount
|
|
4057
|
-
});
|
|
4058
|
-
|
|
4059
|
-
testAllItemsChecked();
|
|
4060
|
-
|
|
4061
|
-
// callback function is called to inform about checked items count
|
|
4062
|
-
if (angular.isFunction(ctrl.onCheckChange)) {
|
|
4063
|
-
ctrl.onCheckChange({ checkedCount: ctrl.checkedItemsCount });
|
|
4064
|
-
}
|
|
4065
|
-
}
|
|
4066
|
-
|
|
4067
|
-
/**
|
|
4068
|
-
* Updates items count and toggle allItemsChecked flag
|
|
4069
|
-
*/
|
|
4070
|
-
function testAllItemsChecked() {
|
|
4071
|
-
ctrl.allItemsChecked = ctrl.itemsCount > 0 && ctrl.checkedItemsCount === ctrl.itemsCount;
|
|
4072
|
-
}
|
|
4073
|
-
}
|
|
4074
|
-
})();
|
|
4075
|
-
'use strict';
|
|
4076
|
-
|
|
4077
|
-
(function () {
|
|
4078
|
-
'use strict';
|
|
4079
|
-
|
|
4080
|
-
ActionCheckboxAllService.$inject = ['$rootScope'];
|
|
4081
|
-
angular.module('iguazio.dashboard-controls').factory('ActionCheckboxAllService', ActionCheckboxAllService);
|
|
4082
|
-
|
|
4083
|
-
function ActionCheckboxAllService($rootScope) {
|
|
4084
|
-
return {
|
|
4085
|
-
changeCheckedItemsCount: changeCheckedItemsCount,
|
|
4086
|
-
setCheckedItemsCount: setCheckedItemsCount
|
|
4087
|
-
};
|
|
4088
|
-
|
|
4089
|
-
//
|
|
4090
|
-
// Public methods
|
|
4091
|
-
//
|
|
4092
|
-
|
|
4093
|
-
/**
|
|
4094
|
-
* Sends broadcast with count of changed checked items
|
|
4095
|
-
* @param {number} changedCheckedItemsCount - number of changed checked items
|
|
4096
|
-
*/
|
|
4097
|
-
function changeCheckedItemsCount(changedCheckedItemsCount) {
|
|
4098
|
-
$rootScope.$broadcast('action-checkbox-all_change-checked-items-count', {
|
|
4099
|
-
changedCheckedItemsCount: changedCheckedItemsCount
|
|
4100
|
-
});
|
|
4101
|
-
}
|
|
4102
|
-
|
|
4103
|
-
/**
|
|
4104
|
-
* Sends broadcast with count of checked items
|
|
4105
|
-
* @param {number} checkedItemsCount
|
|
4106
|
-
*/
|
|
4107
|
-
function setCheckedItemsCount(checkedItemsCount) {
|
|
4108
|
-
$rootScope.$broadcast('action-checkbox-all_set-checked-items-count', checkedItemsCount);
|
|
4109
|
-
}
|
|
4110
|
-
}
|
|
4111
|
-
})();
|
|
4112
|
-
'use strict';
|
|
4113
|
-
|
|
4114
3919
|
(function () {
|
|
4115
3920
|
'use strict';
|
|
4116
3921
|
|
|
@@ -4336,31 +4141,28 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
4336
4141
|
(function () {
|
|
4337
4142
|
'use strict';
|
|
4338
4143
|
|
|
4339
|
-
|
|
4340
|
-
angular.module('iguazio.dashboard-controls').component('
|
|
4144
|
+
IgzActionCheckboxAllController.$inject = ['$scope', '$rootScope', 'lodash'];
|
|
4145
|
+
angular.module('iguazio.dashboard-controls').component('igzActionCheckboxAll', {
|
|
4341
4146
|
bindings: {
|
|
4342
|
-
|
|
4343
|
-
|
|
4147
|
+
itemsCountOriginal: '<itemsCount',
|
|
4148
|
+
itemsType: '@?',
|
|
4149
|
+
checkedItemsCount: '<?',
|
|
4150
|
+
onCheckChange: '&?'
|
|
4344
4151
|
},
|
|
4345
|
-
templateUrl: 'igz_controls/components/action-
|
|
4346
|
-
controller:
|
|
4347
|
-
transclude: true
|
|
4152
|
+
templateUrl: 'igz_controls/components/action-checkbox-all/action-checkbox-all.tpl.html',
|
|
4153
|
+
controller: IgzActionCheckboxAllController
|
|
4348
4154
|
});
|
|
4349
4155
|
|
|
4350
|
-
function
|
|
4156
|
+
function IgzActionCheckboxAllController($scope, $rootScope, lodash) {
|
|
4351
4157
|
var ctrl = this;
|
|
4352
|
-
var lng = i18next.language;
|
|
4353
|
-
|
|
4354
|
-
var checkedItemsCount = 0;
|
|
4355
|
-
var mainActionsCount = 5;
|
|
4356
4158
|
|
|
4357
|
-
ctrl.
|
|
4358
|
-
ctrl.remainActions = [];
|
|
4159
|
+
ctrl.allItemsChecked = false;
|
|
4359
4160
|
|
|
4360
4161
|
ctrl.$onInit = onInit;
|
|
4361
4162
|
ctrl.$onChanges = onChanges;
|
|
4163
|
+
ctrl.$onDestroy = onDestroy;
|
|
4362
4164
|
|
|
4363
|
-
ctrl.
|
|
4165
|
+
ctrl.onCheckAll = onCheckAll;
|
|
4364
4166
|
|
|
4365
4167
|
//
|
|
4366
4168
|
// Hook methods
|
|
@@ -4370,31 +4172,229 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
4370
4172
|
* Initialization method
|
|
4371
4173
|
*/
|
|
4372
4174
|
function onInit() {
|
|
4373
|
-
|
|
4374
|
-
|
|
4175
|
+
ctrl.checkedItemsCount = angular.isUndefined(ctrl.checkedItemsCount) ? 0 : ctrl.checkedItemsCount;
|
|
4176
|
+
ctrl.itemsCount = angular.isUndefined(ctrl.itemsCount) ? 0 : ctrl.itemsCount;
|
|
4375
4177
|
|
|
4376
|
-
|
|
4178
|
+
$scope.$on('action-checkbox_item-checked', toggleCheckedItem);
|
|
4179
|
+
$scope.$on('action-checkbox-all_change-checked-items-count', changeItemsCheckedCount);
|
|
4180
|
+
$scope.$on('action-checkbox-all_set-checked-items-count', setCheckedItemsCount);
|
|
4377
4181
|
}
|
|
4378
4182
|
|
|
4379
4183
|
/**
|
|
4380
|
-
*
|
|
4184
|
+
* Changes method
|
|
4185
|
+
* @param {Object} changes
|
|
4381
4186
|
*/
|
|
4382
|
-
function onChanges() {
|
|
4383
|
-
|
|
4187
|
+
function onChanges(changes) {
|
|
4188
|
+
if (angular.isDefined(changes.itemsCountOriginal)) {
|
|
4189
|
+
ctrl.itemsCount = ctrl.itemsCountOriginal;
|
|
4190
|
+
testAllItemsChecked();
|
|
4191
|
+
}
|
|
4384
4192
|
}
|
|
4385
4193
|
|
|
4386
|
-
//
|
|
4387
|
-
// Private methods
|
|
4388
|
-
//
|
|
4389
|
-
|
|
4390
4194
|
/**
|
|
4391
|
-
*
|
|
4392
|
-
* @param {Object} action
|
|
4393
|
-
* @param {string} action.id - an action ID (e.g. delete, clone etc.)
|
|
4195
|
+
* Destructor method
|
|
4394
4196
|
*/
|
|
4395
|
-
function
|
|
4396
|
-
|
|
4397
|
-
|
|
4197
|
+
function onDestroy() {
|
|
4198
|
+
ctrl.checkedItemsCount = 0;
|
|
4199
|
+
|
|
4200
|
+
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4201
|
+
checkedCount: ctrl.checkedItemsCount
|
|
4202
|
+
});
|
|
4203
|
+
}
|
|
4204
|
+
|
|
4205
|
+
//
|
|
4206
|
+
// Public methods
|
|
4207
|
+
//
|
|
4208
|
+
|
|
4209
|
+
/**
|
|
4210
|
+
* Calls when Check all button is clicked.
|
|
4211
|
+
*/
|
|
4212
|
+
function onCheckAll() {
|
|
4213
|
+
ctrl.allItemsChecked = !ctrl.allItemsChecked;
|
|
4214
|
+
ctrl.checkedItemsCount = ctrl.allItemsChecked ? ctrl.itemsCount : 0;
|
|
4215
|
+
|
|
4216
|
+
$rootScope.$broadcast('action-checkbox-all_check-all', {
|
|
4217
|
+
checked: ctrl.allItemsChecked,
|
|
4218
|
+
checkedCount: ctrl.checkedItemsCount,
|
|
4219
|
+
itemsType: !lodash.isEmpty(ctrl.itemsType) ? ctrl.itemsType : null
|
|
4220
|
+
});
|
|
4221
|
+
|
|
4222
|
+
if (angular.isFunction(ctrl.onCheckChange)) {
|
|
4223
|
+
ctrl.onCheckChange({ checkedCount: ctrl.checkedItemsCount });
|
|
4224
|
+
}
|
|
4225
|
+
}
|
|
4226
|
+
|
|
4227
|
+
//
|
|
4228
|
+
// Private methods
|
|
4229
|
+
//
|
|
4230
|
+
|
|
4231
|
+
/**
|
|
4232
|
+
* Calls on checked items count change
|
|
4233
|
+
* @param {Object} event
|
|
4234
|
+
* @param {Object} data
|
|
4235
|
+
*/
|
|
4236
|
+
function changeItemsCheckedCount(event, data) {
|
|
4237
|
+
if (data.changedCheckedItemsCount === 0) {
|
|
4238
|
+
ctrl.checkedItemsCount = 0;
|
|
4239
|
+
} else {
|
|
4240
|
+
ctrl.checkedItemsCount += data.changedCheckedItemsCount;
|
|
4241
|
+
}
|
|
4242
|
+
|
|
4243
|
+
testAllItemsChecked();
|
|
4244
|
+
|
|
4245
|
+
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4246
|
+
checkedCount: ctrl.checkedItemsCount
|
|
4247
|
+
});
|
|
4248
|
+
}
|
|
4249
|
+
|
|
4250
|
+
/**
|
|
4251
|
+
* Sets checked items count
|
|
4252
|
+
* @param {Object} event
|
|
4253
|
+
* @param {number} newCheckedItemsCount
|
|
4254
|
+
*/
|
|
4255
|
+
function setCheckedItemsCount(event, newCheckedItemsCount) {
|
|
4256
|
+
ctrl.checkedItemsCount = newCheckedItemsCount;
|
|
4257
|
+
|
|
4258
|
+
testAllItemsChecked();
|
|
4259
|
+
|
|
4260
|
+
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4261
|
+
checkedCount: ctrl.checkedItemsCount
|
|
4262
|
+
});
|
|
4263
|
+
}
|
|
4264
|
+
|
|
4265
|
+
/**
|
|
4266
|
+
* Calls on checkbox check/uncheck
|
|
4267
|
+
* @param {Object} event
|
|
4268
|
+
* @param {Object} data
|
|
4269
|
+
*/
|
|
4270
|
+
function toggleCheckedItem(event, data) {
|
|
4271
|
+
if (data.checked) {
|
|
4272
|
+
ctrl.checkedItemsCount++;
|
|
4273
|
+
} else {
|
|
4274
|
+
ctrl.checkedItemsCount--;
|
|
4275
|
+
}
|
|
4276
|
+
|
|
4277
|
+
$rootScope.$broadcast('action-checkbox-all_checked-items-count-change', {
|
|
4278
|
+
checkedCount: ctrl.checkedItemsCount
|
|
4279
|
+
});
|
|
4280
|
+
|
|
4281
|
+
testAllItemsChecked();
|
|
4282
|
+
|
|
4283
|
+
// callback function is called to inform about checked items count
|
|
4284
|
+
if (angular.isFunction(ctrl.onCheckChange)) {
|
|
4285
|
+
ctrl.onCheckChange({ checkedCount: ctrl.checkedItemsCount });
|
|
4286
|
+
}
|
|
4287
|
+
}
|
|
4288
|
+
|
|
4289
|
+
/**
|
|
4290
|
+
* Updates items count and toggle allItemsChecked flag
|
|
4291
|
+
*/
|
|
4292
|
+
function testAllItemsChecked() {
|
|
4293
|
+
ctrl.allItemsChecked = ctrl.itemsCount > 0 && ctrl.checkedItemsCount === ctrl.itemsCount;
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
})();
|
|
4297
|
+
'use strict';
|
|
4298
|
+
|
|
4299
|
+
(function () {
|
|
4300
|
+
'use strict';
|
|
4301
|
+
|
|
4302
|
+
ActionCheckboxAllService.$inject = ['$rootScope'];
|
|
4303
|
+
angular.module('iguazio.dashboard-controls').factory('ActionCheckboxAllService', ActionCheckboxAllService);
|
|
4304
|
+
|
|
4305
|
+
function ActionCheckboxAllService($rootScope) {
|
|
4306
|
+
return {
|
|
4307
|
+
changeCheckedItemsCount: changeCheckedItemsCount,
|
|
4308
|
+
setCheckedItemsCount: setCheckedItemsCount
|
|
4309
|
+
};
|
|
4310
|
+
|
|
4311
|
+
//
|
|
4312
|
+
// Public methods
|
|
4313
|
+
//
|
|
4314
|
+
|
|
4315
|
+
/**
|
|
4316
|
+
* Sends broadcast with count of changed checked items
|
|
4317
|
+
* @param {number} changedCheckedItemsCount - number of changed checked items
|
|
4318
|
+
*/
|
|
4319
|
+
function changeCheckedItemsCount(changedCheckedItemsCount) {
|
|
4320
|
+
$rootScope.$broadcast('action-checkbox-all_change-checked-items-count', {
|
|
4321
|
+
changedCheckedItemsCount: changedCheckedItemsCount
|
|
4322
|
+
});
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4325
|
+
/**
|
|
4326
|
+
* Sends broadcast with count of checked items
|
|
4327
|
+
* @param {number} checkedItemsCount
|
|
4328
|
+
*/
|
|
4329
|
+
function setCheckedItemsCount(checkedItemsCount) {
|
|
4330
|
+
$rootScope.$broadcast('action-checkbox-all_set-checked-items-count', checkedItemsCount);
|
|
4331
|
+
}
|
|
4332
|
+
}
|
|
4333
|
+
})();
|
|
4334
|
+
'use strict';
|
|
4335
|
+
|
|
4336
|
+
(function () {
|
|
4337
|
+
'use strict';
|
|
4338
|
+
|
|
4339
|
+
IgzActionPanel.$inject = ['$scope', '$rootScope', '$i18next', 'i18next', 'lodash'];
|
|
4340
|
+
angular.module('iguazio.dashboard-controls').component('igzActionPanel', {
|
|
4341
|
+
bindings: {
|
|
4342
|
+
actions: '<',
|
|
4343
|
+
onItemsCheckedCount: '&?'
|
|
4344
|
+
},
|
|
4345
|
+
templateUrl: 'igz_controls/components/action-panel/action-panel.tpl.html',
|
|
4346
|
+
controller: IgzActionPanel,
|
|
4347
|
+
transclude: true
|
|
4348
|
+
});
|
|
4349
|
+
|
|
4350
|
+
function IgzActionPanel($scope, $rootScope, $i18next, i18next, lodash) {
|
|
4351
|
+
var ctrl = this;
|
|
4352
|
+
var lng = i18next.language;
|
|
4353
|
+
|
|
4354
|
+
var checkedItemsCount = 0;
|
|
4355
|
+
var mainActionsCount = 5;
|
|
4356
|
+
|
|
4357
|
+
ctrl.mainActions = [];
|
|
4358
|
+
ctrl.remainActions = [];
|
|
4359
|
+
|
|
4360
|
+
ctrl.$onInit = onInit;
|
|
4361
|
+
ctrl.$onChanges = onChanges;
|
|
4362
|
+
|
|
4363
|
+
ctrl.isActionPanelShown = isActionPanelShown;
|
|
4364
|
+
|
|
4365
|
+
//
|
|
4366
|
+
// Hook methods
|
|
4367
|
+
//
|
|
4368
|
+
|
|
4369
|
+
/**
|
|
4370
|
+
* Initialization method
|
|
4371
|
+
*/
|
|
4372
|
+
function onInit() {
|
|
4373
|
+
$scope.$on('action-checkbox-all_checked-items-count-change', onUpdateCheckedItemsCount);
|
|
4374
|
+
$scope.$on('action-checkbox-all_check-all', onUpdateCheckedItemsCount);
|
|
4375
|
+
|
|
4376
|
+
refreshActions();
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4379
|
+
/**
|
|
4380
|
+
* On changes hook method
|
|
4381
|
+
*/
|
|
4382
|
+
function onChanges() {
|
|
4383
|
+
refreshActions();
|
|
4384
|
+
}
|
|
4385
|
+
|
|
4386
|
+
//
|
|
4387
|
+
// Private methods
|
|
4388
|
+
//
|
|
4389
|
+
|
|
4390
|
+
/**
|
|
4391
|
+
* Default action handler
|
|
4392
|
+
* @param {Object} action
|
|
4393
|
+
* @param {string} action.id - an action ID (e.g. delete, clone etc.)
|
|
4394
|
+
*/
|
|
4395
|
+
function defaultAction(action) {
|
|
4396
|
+
$rootScope.$broadcast('action-panel_fire-action', {
|
|
4397
|
+
action: action.id
|
|
4398
4398
|
});
|
|
4399
4399
|
}
|
|
4400
4400
|
|
|
@@ -4511,66 +4511,129 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
4511
4511
|
(function () {
|
|
4512
4512
|
'use strict';
|
|
4513
4513
|
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4514
|
+
IgzCopyToClipboard.$inject = ['$i18next', 'i18next', 'lodash', 'DialogsService'];
|
|
4515
|
+
angular.module('iguazio.dashboard-controls').component('igzCopyToClipboard', {
|
|
4516
|
+
bindings: {
|
|
4517
|
+
tooltipPlacement: '@?',
|
|
4518
|
+
tooltipText: '@?',
|
|
4519
|
+
value: '<'
|
|
4520
|
+
},
|
|
4521
|
+
templateUrl: 'igz_controls/components/copy-to-clipboard/copy-to-clipboard.tpl.html',
|
|
4522
|
+
controller: IgzCopyToClipboard
|
|
4523
|
+
});
|
|
4524
|
+
|
|
4525
|
+
function IgzCopyToClipboard($i18next, i18next, lodash, DialogsService) {
|
|
4526
|
+
var ctrl = this;
|
|
4527
|
+
var lng = i18next.language;
|
|
4528
|
+
|
|
4529
|
+
ctrl.$onInit = onInit;
|
|
4530
|
+
|
|
4531
|
+
ctrl.copyToClipboard = copyToClipboard;
|
|
4532
|
+
|
|
4533
|
+
//
|
|
4534
|
+
// Hook methods
|
|
4535
|
+
//
|
|
4536
|
+
|
|
4537
|
+
/**
|
|
4538
|
+
* Initialization method
|
|
4539
|
+
*/
|
|
4540
|
+
function onInit() {
|
|
4541
|
+
lodash.defaults(ctrl, {
|
|
4542
|
+
tooltipPlacement: 'top'
|
|
4543
|
+
});
|
|
4544
|
+
}
|
|
4545
|
+
|
|
4546
|
+
//
|
|
4547
|
+
// Public method
|
|
4548
|
+
//
|
|
4549
|
+
|
|
4550
|
+
/**
|
|
4551
|
+
* Copies a string to the clipboard.
|
|
4552
|
+
*/
|
|
4553
|
+
function copyToClipboard() {
|
|
4554
|
+
if (document.queryCommandSupported && document.queryCommandSupported('copy')) {
|
|
4555
|
+
var textarea = document.createElement('textarea');
|
|
4556
|
+
textarea.textContent = ctrl.value;
|
|
4557
|
+
textarea.style.position = 'fixed';
|
|
4558
|
+
document.body.appendChild(textarea);
|
|
4559
|
+
textarea.select();
|
|
4560
|
+
|
|
4561
|
+
try {
|
|
4562
|
+
return document.execCommand('copy'); // Security exception may be thrown by some browsers.
|
|
4563
|
+
} catch (ex) {
|
|
4564
|
+
DialogsService.alert($i18next.t('common:COPY_TO_CLIPBOARD_FAILED', { lng: lng }), ex);
|
|
4565
|
+
} finally {
|
|
4566
|
+
document.body.removeChild(textarea);
|
|
4567
|
+
}
|
|
4568
|
+
}
|
|
4569
|
+
}
|
|
4570
|
+
}
|
|
4571
|
+
})();
|
|
4572
|
+
'use strict';
|
|
4573
|
+
|
|
4574
|
+
(function () {
|
|
4575
|
+
'use strict';
|
|
4576
|
+
|
|
4577
|
+
/**
|
|
4578
|
+
* @name igzAutoComplete
|
|
4579
|
+
* @component
|
|
4580
|
+
*
|
|
4581
|
+
* @description
|
|
4582
|
+
* An input field that wraps around `igzValidatingInputField` component and enriches it with auto-complete feature.
|
|
4583
|
+
* The user enters input to the input field, and a suggestion drop-down menu is open according to the input value.
|
|
4584
|
+
* An optional filter drop-down field is available to make it possible to populate the suggestion list according
|
|
4585
|
+
* to different criteria, for example different properties of objects like first name or last name of person.
|
|
4586
|
+
* The user can click on a suggestion from the menu to select it.
|
|
4587
|
+
*
|
|
4588
|
+
* @param {string} bordersMode - Forwarded to `bordersMode` attribute of `igzValidatingInputField` component. Please
|
|
4589
|
+
* see that component's docs for more details (which also indicates its default value).
|
|
4590
|
+
* @param {string} [browserAutoComplete='off'] - Forwarded to `autoComplete` attribute of `igzValidatingInputField`.
|
|
4591
|
+
* Please see that component's docs for more details. Defaults to `'off'` because usually it is desired to
|
|
4592
|
+
* cancel the built-in auto-completion feature of the web browser when using this component.
|
|
4593
|
+
* @param {string} currentValue - The initial value to populate the input field on initialization.
|
|
4594
|
+
* @param {Array} filterBy - A list of filter criteria. Each item will be rendered as an option in the filters
|
|
4595
|
+
* drop-down menu.
|
|
4596
|
+
* @param {string} filterBy[].label - The label of the drop-down menu option.
|
|
4597
|
+
* @param {string} filterBy[].attribute - The value of the drop-down menu option that will be sent when invoking
|
|
4598
|
+
* `onSuggestionSelected` for the parent component to use when compiling the list of suggestions.
|
|
4599
|
+
* @param {string} [emptyMessage] - Optionally display a message when suggestion list is empty.
|
|
4600
|
+
* @param {Object} formObject - The `<form>` element or `<ng-form>` directive containing this component. It will be
|
|
4601
|
+
* forwarded to the `formObject` attribute of the `igzValidatingInputField` component.
|
|
4602
|
+
* @param {string} inputName - The name of the filed, will be forwarded to the `inputName` attribute of the
|
|
4603
|
+
* `igzValidatingInputField` component.
|
|
4604
|
+
* @param {boolean} [isDisabled=false] - Set to `true` to make this field disabled. Forwarded to `isDisabled`
|
|
4605
|
+
* attribute of the `igzValidatingInputField` component.
|
|
4606
|
+
* @param {boolean} [isFocused=false] - Set to `true` to give focus to this field once it finished initializing.
|
|
4607
|
+
* Forwarded to `isFocused` attribute of the `igzValidatingInputField` component.
|
|
4608
|
+
* @param {boolean} [isRequired=false] - Set to `true` to make this field mandatory. The field will be invalid if it
|
|
4609
|
+
* is empty. Forwarded to `validationIsRequired` attribute of the `igzValidatingInputField` component.
|
|
4610
|
+
* @param {string} [noMatchPolicy='allow'] - Determines the behavior when the selected suggestion value or the value
|
|
4611
|
+
* on blur does not match any suggestion on the current suggestion list. Could be one of:
|
|
4612
|
+
* - `'allow'` (default): Allows the input value. The input field will be valid.
|
|
4613
|
+
* - `'invalid'`: The input field will be invalid. The input will remain unchanged.
|
|
4614
|
+
* - `'revert'`: Reverts the input field value bacl to the last valid value. The input field will be valid.
|
|
4615
|
+
* @param {function} [onBlur] - A callback function for `blur` event. Invoked with `inputValue` and `inputName` when
|
|
4616
|
+
* the field loses focus (if the focus moves from the input field to the suggestion menu - this function will
|
|
4617
|
+
* _not_ be invoked).
|
|
4618
|
+
* @param {function} [onEmptyData] - A callback function for the case when input is empty and `suggestionsOnEmpty`
|
|
4619
|
+
* is false. Invoked without any argument.
|
|
4620
|
+
* @param {function} [onTextChanged] - A callback function for changed text on losing focus. If it returns a
|
|
4621
|
+
* rejected promise - it would tell this component the value is invalid.
|
|
4622
|
+
* @param {function} [onSuggestionSelected] - A callback function for selecting suggestion from suggestion menu.
|
|
4623
|
+
* If it returns a rejected promise - it would tell this component the value is invalid.
|
|
4624
|
+
* @param {function} [onRequestSuggestions] - A callback function for retrieving suggestion list when input field
|
|
4625
|
+
* value changes. It is invoked with:
|
|
4626
|
+
* - `input`: The current input field's value
|
|
4627
|
+
* - `filter`: The `attribute` property of the item in `filterBy` array that is corresponding to the selected
|
|
4628
|
+
* option of the filter drop-down menu.
|
|
4629
|
+
* - `inputName`: The name of the input field.
|
|
4630
|
+
* Suggestion list should be an array of objects where each object has the following properties:
|
|
4631
|
+
* - `value`: the value of the suggestion to use when selecting this suggestion from the drop-down menu.
|
|
4632
|
+
* - `label`: the label to show for this suggestion on the drop-down menu.
|
|
4633
|
+
* - `additionalInfo`: more text to show for the suggestion after the label in the drop-down menu.
|
|
4634
|
+
* @param {boolean} [suggestionsOnEmpty=true] - Set to `false` in order to prevent invoking `onRequestSuggestions`
|
|
4635
|
+
* when input value changed and is now empty, and invoke `onEmptyData` instead. Default is `true` which will
|
|
4636
|
+
* invoke `onRequestSuggestions` when input value is empty.
|
|
4574
4637
|
* @param {string} [placeholder] - Placeholder text to display when input is empty. Forwarded to `placeholderText`
|
|
4575
4638
|
* attribute of the `igzValidatingInputField` component.
|
|
4576
4639
|
* @param {Object} [tooltip] - Allows a tooltip hint to open when hovering the input field. This is useful for not
|
|
@@ -4956,69 +5019,6 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
4956
5019
|
})();
|
|
4957
5020
|
'use strict';
|
|
4958
5021
|
|
|
4959
|
-
(function () {
|
|
4960
|
-
'use strict';
|
|
4961
|
-
|
|
4962
|
-
IgzCopyToClipboard.$inject = ['$i18next', 'i18next', 'lodash', 'DialogsService'];
|
|
4963
|
-
angular.module('iguazio.dashboard-controls').component('igzCopyToClipboard', {
|
|
4964
|
-
bindings: {
|
|
4965
|
-
tooltipPlacement: '@?',
|
|
4966
|
-
tooltipText: '@?',
|
|
4967
|
-
value: '<'
|
|
4968
|
-
},
|
|
4969
|
-
templateUrl: 'igz_controls/components/copy-to-clipboard/copy-to-clipboard.tpl.html',
|
|
4970
|
-
controller: IgzCopyToClipboard
|
|
4971
|
-
});
|
|
4972
|
-
|
|
4973
|
-
function IgzCopyToClipboard($i18next, i18next, lodash, DialogsService) {
|
|
4974
|
-
var ctrl = this;
|
|
4975
|
-
var lng = i18next.language;
|
|
4976
|
-
|
|
4977
|
-
ctrl.$onInit = onInit;
|
|
4978
|
-
|
|
4979
|
-
ctrl.copyToClipboard = copyToClipboard;
|
|
4980
|
-
|
|
4981
|
-
//
|
|
4982
|
-
// Hook methods
|
|
4983
|
-
//
|
|
4984
|
-
|
|
4985
|
-
/**
|
|
4986
|
-
* Initialization method
|
|
4987
|
-
*/
|
|
4988
|
-
function onInit() {
|
|
4989
|
-
lodash.defaults(ctrl, {
|
|
4990
|
-
tooltipPlacement: 'top'
|
|
4991
|
-
});
|
|
4992
|
-
}
|
|
4993
|
-
|
|
4994
|
-
//
|
|
4995
|
-
// Public method
|
|
4996
|
-
//
|
|
4997
|
-
|
|
4998
|
-
/**
|
|
4999
|
-
* Copies a string to the clipboard.
|
|
5000
|
-
*/
|
|
5001
|
-
function copyToClipboard() {
|
|
5002
|
-
if (document.queryCommandSupported && document.queryCommandSupported('copy')) {
|
|
5003
|
-
var textarea = document.createElement('textarea');
|
|
5004
|
-
textarea.textContent = ctrl.value;
|
|
5005
|
-
textarea.style.position = 'fixed';
|
|
5006
|
-
document.body.appendChild(textarea);
|
|
5007
|
-
textarea.select();
|
|
5008
|
-
|
|
5009
|
-
try {
|
|
5010
|
-
return document.execCommand('copy'); // Security exception may be thrown by some browsers.
|
|
5011
|
-
} catch (ex) {
|
|
5012
|
-
DialogsService.alert($i18next.t('common:COPY_TO_CLIPBOARD_FAILED', { lng: lng }), ex);
|
|
5013
|
-
} finally {
|
|
5014
|
-
document.body.removeChild(textarea);
|
|
5015
|
-
}
|
|
5016
|
-
}
|
|
5017
|
-
}
|
|
5018
|
-
}
|
|
5019
|
-
})();
|
|
5020
|
-
'use strict';
|
|
5021
|
-
|
|
5022
5022
|
/* eslint max-statements: ["error", 100] */
|
|
5023
5023
|
/* eslint complexity: ["error", 12] */
|
|
5024
5024
|
(function () {
|
|
@@ -5964,51 +5964,349 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
5964
5964
|
(function () {
|
|
5965
5965
|
'use strict';
|
|
5966
5966
|
|
|
5967
|
-
|
|
5968
|
-
angular.module('iguazio.dashboard-controls').component('igzMoreInfo', {
|
|
5967
|
+
angular.module('iguazio.dashboard-controls').component('igzNavigationTabs', {
|
|
5969
5968
|
bindings: {
|
|
5970
|
-
|
|
5971
|
-
isDisabled: '<?',
|
|
5972
|
-
trigger: '@?',
|
|
5973
|
-
iconType: '@?',
|
|
5974
|
-
isHtmlEnabled: '<?',
|
|
5975
|
-
isDefaultTooltipEnabled: '<?',
|
|
5976
|
-
isOpen: '<?',
|
|
5977
|
-
defaultTooltipPlacement: '@?',
|
|
5978
|
-
defaultTooltipPopupDelay: '@?'
|
|
5969
|
+
tabItems: '<'
|
|
5979
5970
|
},
|
|
5980
|
-
templateUrl: 'igz_controls/components/
|
|
5981
|
-
controller: IgzMoreInfoController
|
|
5971
|
+
templateUrl: 'igz_controls/components/navigation-tabs/navigation-tabs.tpl.html'
|
|
5982
5972
|
});
|
|
5973
|
+
})();
|
|
5974
|
+
'use strict';
|
|
5983
5975
|
|
|
5984
|
-
|
|
5985
|
-
|
|
5976
|
+
(function () {
|
|
5977
|
+
'use strict';
|
|
5986
5978
|
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5979
|
+
NavigationTabsService.$inject = ['$timeout', '$i18next', 'i18next', 'lodash', 'ConfigService', 'FunctionsService'];
|
|
5980
|
+
angular.module('iguazio.dashboard-controls').factory('NavigationTabsService', NavigationTabsService);
|
|
5981
|
+
|
|
5982
|
+
function NavigationTabsService($timeout, $i18next, i18next, lodash, ConfigService, FunctionsService) {
|
|
5983
|
+
return {
|
|
5984
|
+
getNavigationTabsConfig: getNavigationTabsConfig
|
|
5990
5985
|
};
|
|
5991
5986
|
|
|
5992
|
-
|
|
5987
|
+
//
|
|
5988
|
+
// Public methods
|
|
5989
|
+
//
|
|
5993
5990
|
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5991
|
+
/**
|
|
5992
|
+
* Returns navigation tabs config depending on current state
|
|
5993
|
+
* @param {string} state
|
|
5994
|
+
* @returns {Array}
|
|
5995
|
+
*/
|
|
5996
|
+
function getNavigationTabsConfig(state) {
|
|
5997
|
+
var navigationTabsConfigs = {
|
|
5998
|
+
'app.project': getProjectConfig(state),
|
|
5999
|
+
'app.container': getContainersConfig(),
|
|
6000
|
+
'app.cluster': getClusterConfig(),
|
|
6001
|
+
'app.clusters': getClustersConfig(),
|
|
6002
|
+
'app.app-cluster': getAppClustersConfig(),
|
|
6003
|
+
'app.events': getEventsConfig(),
|
|
6004
|
+
'app.storage-pool': getStoragePoolsConfig(),
|
|
6005
|
+
'app.identity': getIdentityConfig(),
|
|
6006
|
+
'app.control-panel': getControlPanelConfig(),
|
|
6007
|
+
'app.tenant': getTenantConfig()
|
|
6008
|
+
};
|
|
6009
|
+
var stateTest = state.match(/^[^.]*.[^.]*/);
|
|
5997
6010
|
|
|
5998
|
-
|
|
5999
|
-
|
|
6011
|
+
return lodash.get(navigationTabsConfigs, stateTest[0], []);
|
|
6012
|
+
}
|
|
6000
6013
|
|
|
6001
6014
|
//
|
|
6002
|
-
//
|
|
6015
|
+
// Private methods
|
|
6003
6016
|
//
|
|
6004
6017
|
|
|
6005
6018
|
/**
|
|
6006
|
-
*
|
|
6019
|
+
* Returns project navigation tabs config
|
|
6020
|
+
* @returns {Array.<Object>}
|
|
6007
6021
|
*/
|
|
6008
|
-
function
|
|
6009
|
-
|
|
6010
|
-
|
|
6011
|
-
|
|
6022
|
+
function getProjectConfig(state) {
|
|
6023
|
+
var config = [];
|
|
6024
|
+
var lng = i18next.language;
|
|
6025
|
+
|
|
6026
|
+
if (state === 'app.project.functions' || state === 'app.project.api-gateways') {
|
|
6027
|
+
config = [{
|
|
6028
|
+
tabName: $i18next.t('common:FUNCTIONS', { lng: lng }),
|
|
6029
|
+
uiRoute: 'app.project.functions'
|
|
6030
|
+
}];
|
|
6031
|
+
|
|
6032
|
+
$timeout(function () {
|
|
6033
|
+
if (FunctionsService.isKubePlatform()) {
|
|
6034
|
+
config.push({
|
|
6035
|
+
tabName: $i18next.t('functions:API_GATEWAYS', { lng: lng }),
|
|
6036
|
+
uiRoute: 'app.project.api-gateways'
|
|
6037
|
+
});
|
|
6038
|
+
}
|
|
6039
|
+
});
|
|
6040
|
+
}
|
|
6041
|
+
|
|
6042
|
+
return config;
|
|
6043
|
+
}
|
|
6044
|
+
|
|
6045
|
+
/**
|
|
6046
|
+
* Returns containers navigation tabs config
|
|
6047
|
+
* @returns {Array.<Object>}
|
|
6048
|
+
*/
|
|
6049
|
+
function getContainersConfig() {
|
|
6050
|
+
var lng = i18next.language;
|
|
6051
|
+
var config = [{
|
|
6052
|
+
tabName: $i18next.t('common:BROWSE', { lng: lng }),
|
|
6053
|
+
uiRoute: 'app.container.browser',
|
|
6054
|
+
capability: 'containers.browse'
|
|
6055
|
+
}, {
|
|
6056
|
+
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6057
|
+
uiRoute: 'app.container.overview',
|
|
6058
|
+
capability: 'containers.overview'
|
|
6059
|
+
}, {
|
|
6060
|
+
tabName: $i18next.t('common:DATA_ACCESS_POLICY', { lng: lng }),
|
|
6061
|
+
uiRoute: 'app.container.data-access-policy',
|
|
6062
|
+
capability: 'containers.dataPolicy'
|
|
6063
|
+
}];
|
|
6064
|
+
|
|
6065
|
+
if (ConfigService.isDemoMode()) {
|
|
6066
|
+
config.push({
|
|
6067
|
+
tabName: $i18next.t('common:DATA_LIFECYCLE', { lng: lng }),
|
|
6068
|
+
uiRoute: 'app.container.data-lifecycle',
|
|
6069
|
+
capability: 'containers.dataLifecycle'
|
|
6070
|
+
});
|
|
6071
|
+
|
|
6072
|
+
config.splice(1, 0, {
|
|
6073
|
+
tabName: $i18next.t('common:ANALYTICS', { lng: lng }),
|
|
6074
|
+
uiRoute: 'app.container.analytics',
|
|
6075
|
+
capability: 'containers.analytics'
|
|
6076
|
+
});
|
|
6077
|
+
}
|
|
6078
|
+
|
|
6079
|
+
return config;
|
|
6080
|
+
}
|
|
6081
|
+
|
|
6082
|
+
/**
|
|
6083
|
+
* Returns cluster navigation tabs config
|
|
6084
|
+
* @returns {Array.<Object>}
|
|
6085
|
+
*/
|
|
6086
|
+
function getClusterConfig() {
|
|
6087
|
+
var lng = i18next.language;
|
|
6088
|
+
var config = [{
|
|
6089
|
+
tabName: $i18next.t('common:NODES', { lng: lng }),
|
|
6090
|
+
uiRoute: 'app.cluster.nodes',
|
|
6091
|
+
capability: 'clusters.nodes'
|
|
6092
|
+
}];
|
|
6093
|
+
|
|
6094
|
+
if (ConfigService.isStagingMode()) {
|
|
6095
|
+
config.unshift({
|
|
6096
|
+
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6097
|
+
uiRoute: 'app.cluster.overview',
|
|
6098
|
+
capability: 'clusters.overview'
|
|
6099
|
+
});
|
|
6100
|
+
}
|
|
6101
|
+
|
|
6102
|
+
return config;
|
|
6103
|
+
}
|
|
6104
|
+
|
|
6105
|
+
/**
|
|
6106
|
+
* Returns clusters navigation tabs config
|
|
6107
|
+
* @returns {Array.<Object>}
|
|
6108
|
+
*/
|
|
6109
|
+
function getClustersConfig() {
|
|
6110
|
+
var lng = i18next.language;
|
|
6111
|
+
|
|
6112
|
+
return [{
|
|
6113
|
+
tabName: $i18next.t('common:DATA', { lng: lng }),
|
|
6114
|
+
id: 'data',
|
|
6115
|
+
uiRoute: 'app.clusters.data',
|
|
6116
|
+
capability: 'clusters'
|
|
6117
|
+
}, {
|
|
6118
|
+
tabName: $i18next.t('common:APPLICATION', { lng: lng }),
|
|
6119
|
+
id: 'app',
|
|
6120
|
+
uiRoute: 'app.clusters.app',
|
|
6121
|
+
capability: 'clusters'
|
|
6122
|
+
}, {
|
|
6123
|
+
tabName: $i18next.t('common:SUPPORT_LOGS', { lng: lng }),
|
|
6124
|
+
id: 'support-logs',
|
|
6125
|
+
uiRoute: 'app.clusters.support-logs',
|
|
6126
|
+
capability: 'clusters.collectLogs'
|
|
6127
|
+
}];
|
|
6128
|
+
}
|
|
6129
|
+
|
|
6130
|
+
/**
|
|
6131
|
+
* Returns app-clusters navigation tabs config
|
|
6132
|
+
* @returns {Array.<Object>}
|
|
6133
|
+
*/
|
|
6134
|
+
function getAppClustersConfig() {
|
|
6135
|
+
var lng = i18next.language;
|
|
6136
|
+
|
|
6137
|
+
return [{
|
|
6138
|
+
tabName: $i18next.t('common:NODES', { lng: lng }),
|
|
6139
|
+
uiRoute: 'app.app-cluster.nodes',
|
|
6140
|
+
capability: 'clusters.nodes'
|
|
6141
|
+
}];
|
|
6142
|
+
}
|
|
6143
|
+
|
|
6144
|
+
/**
|
|
6145
|
+
* Returns storage pools navigation tabs config
|
|
6146
|
+
* @returns {Array.<Object>}
|
|
6147
|
+
*/
|
|
6148
|
+
function getStoragePoolsConfig() {
|
|
6149
|
+
var lng = i18next.language;
|
|
6150
|
+
var config = [{
|
|
6151
|
+
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6152
|
+
uiRoute: 'app.storage-pool.overview',
|
|
6153
|
+
capability: 'storagePools.overview'
|
|
6154
|
+
}, {
|
|
6155
|
+
tabName: $i18next.t('common:DEVICES', { lng: lng }),
|
|
6156
|
+
uiRoute: 'app.storage-pool.devices',
|
|
6157
|
+
capability: 'storagePools.listDevices'
|
|
6158
|
+
}];
|
|
6159
|
+
|
|
6160
|
+
if (ConfigService.isDemoMode()) {
|
|
6161
|
+
config.splice(1, 0, {
|
|
6162
|
+
tabName: $i18next.t('common:CONTAINERS', { lng: lng }),
|
|
6163
|
+
uiRoute: 'app.storage-pool.containers',
|
|
6164
|
+
capability: 'storagePools.listContainers'
|
|
6165
|
+
});
|
|
6166
|
+
}
|
|
6167
|
+
|
|
6168
|
+
return config;
|
|
6169
|
+
}
|
|
6170
|
+
|
|
6171
|
+
/**
|
|
6172
|
+
* Returns control panel navigation tabs config
|
|
6173
|
+
* @returns {Array.<Object>}
|
|
6174
|
+
*/
|
|
6175
|
+
function getControlPanelConfig() {
|
|
6176
|
+
var lng = i18next.language;
|
|
6177
|
+
|
|
6178
|
+
return [{
|
|
6179
|
+
tabName: $i18next.t('common:LOGS', { lng: lng }),
|
|
6180
|
+
uiRoute: 'app.control-panel.logs'
|
|
6181
|
+
}];
|
|
6182
|
+
}
|
|
6183
|
+
|
|
6184
|
+
/**
|
|
6185
|
+
* Returns identity navigation tabs config
|
|
6186
|
+
* @returns {Array.<Object>}
|
|
6187
|
+
*/
|
|
6188
|
+
function getIdentityConfig() {
|
|
6189
|
+
var lng = i18next.language;
|
|
6190
|
+
var platformType = lodash.get(ConfigService.dashboard, 'platformType', '');
|
|
6191
|
+
|
|
6192
|
+
return [{
|
|
6193
|
+
tabName: $i18next.t('common:USERS', { lng: lng }),
|
|
6194
|
+
uiRoute: 'app.identity.users',
|
|
6195
|
+
capability: 'identity.users'
|
|
6196
|
+
}, {
|
|
6197
|
+
tabName: $i18next.t('common:GROUPS', { lng: lng }),
|
|
6198
|
+
uiRoute: 'app.identity.groups',
|
|
6199
|
+
capability: 'identity.groups'
|
|
6200
|
+
}, {
|
|
6201
|
+
tabName: $i18next.t('common:IDP', { lng: lng }),
|
|
6202
|
+
uiRoute: 'app.identity.idp',
|
|
6203
|
+
capability: 'identity.idp'
|
|
6204
|
+
}, {
|
|
6205
|
+
tabName: $i18next.t('common:KEYLOACK_ADMIN_CONSOLE', { lng: lng }),
|
|
6206
|
+
href: lodash.get(ConfigService.dashboard, ['authentication', 'sso', 'console_urls', platformType], ''),
|
|
6207
|
+
hidden: !(lodash.get(ConfigService.dashboard, 'authentication.sso.mode') && platformType)
|
|
6208
|
+
}];
|
|
6209
|
+
}
|
|
6210
|
+
|
|
6211
|
+
/**
|
|
6212
|
+
* Returns events navigation tabs config
|
|
6213
|
+
* @returns {Array.<Object>}
|
|
6214
|
+
*/
|
|
6215
|
+
function getEventsConfig() {
|
|
6216
|
+
var lng = i18next.language;
|
|
6217
|
+
var config = [{
|
|
6218
|
+
tabName: $i18next.t('common:EVENT_LOG', { lng: lng }),
|
|
6219
|
+
uiRoute: 'app.events.event-log',
|
|
6220
|
+
capability: 'events.eventLog'
|
|
6221
|
+
}, {
|
|
6222
|
+
tabName: $i18next.t('common:ALERTS', { lng: lng }),
|
|
6223
|
+
uiRoute: 'app.events.alerts',
|
|
6224
|
+
capability: 'events.alerts'
|
|
6225
|
+
}, {
|
|
6226
|
+
tabName: $i18next.t('common:AUDIT', { lng: lng }),
|
|
6227
|
+
uiRoute: 'app.events.audit',
|
|
6228
|
+
capability: 'events.audit'
|
|
6229
|
+
}, {
|
|
6230
|
+
tabName: $i18next.t('common:COMMUNICATION', { lng: lng }),
|
|
6231
|
+
uiRoute: 'app.events.communication',
|
|
6232
|
+
capability: 'events.communication'
|
|
6233
|
+
}];
|
|
6234
|
+
|
|
6235
|
+
if (ConfigService.isDemoMode()) {
|
|
6236
|
+
config.push({
|
|
6237
|
+
tabName: $i18next.t('common:ESCALATION', { lng: lng }),
|
|
6238
|
+
uiRoute: 'app.events.escalation',
|
|
6239
|
+
capability: 'events.escalations'
|
|
6240
|
+
});
|
|
6241
|
+
}
|
|
6242
|
+
|
|
6243
|
+
return config;
|
|
6244
|
+
}
|
|
6245
|
+
|
|
6246
|
+
/**
|
|
6247
|
+
* Returns tenants navigation tabs config
|
|
6248
|
+
* @returns {Array.<Object>}
|
|
6249
|
+
*/
|
|
6250
|
+
function getTenantConfig() {
|
|
6251
|
+
var lng = i18next.language;
|
|
6252
|
+
|
|
6253
|
+
return [{
|
|
6254
|
+
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6255
|
+
uiRoute: 'app.tenant.overview'
|
|
6256
|
+
}];
|
|
6257
|
+
}
|
|
6258
|
+
}
|
|
6259
|
+
})();
|
|
6260
|
+
'use strict';
|
|
6261
|
+
|
|
6262
|
+
(function () {
|
|
6263
|
+
'use strict';
|
|
6264
|
+
|
|
6265
|
+
IgzMoreInfoController.$inject = ['$compile', '$document', '$element', '$sce', '$scope', '$timeout', 'lodash'];
|
|
6266
|
+
angular.module('iguazio.dashboard-controls').component('igzMoreInfo', {
|
|
6267
|
+
bindings: {
|
|
6268
|
+
description: '@',
|
|
6269
|
+
isDisabled: '<?',
|
|
6270
|
+
trigger: '@?',
|
|
6271
|
+
iconType: '@?',
|
|
6272
|
+
isHtmlEnabled: '<?',
|
|
6273
|
+
isDefaultTooltipEnabled: '<?',
|
|
6274
|
+
isOpen: '<?',
|
|
6275
|
+
defaultTooltipPlacement: '@?',
|
|
6276
|
+
defaultTooltipPopupDelay: '@?'
|
|
6277
|
+
},
|
|
6278
|
+
templateUrl: 'igz_controls/components/more-info/more-info.tpl.html',
|
|
6279
|
+
controller: IgzMoreInfoController
|
|
6280
|
+
});
|
|
6281
|
+
|
|
6282
|
+
function IgzMoreInfoController($compile, $document, $element, $sce, $scope, $timeout, lodash) {
|
|
6283
|
+
var ctrl = this;
|
|
6284
|
+
|
|
6285
|
+
ctrl.iconTypes = {
|
|
6286
|
+
INFO: 'info',
|
|
6287
|
+
WARN: 'warn'
|
|
6288
|
+
};
|
|
6289
|
+
|
|
6290
|
+
ctrl.selectedIconType = ctrl.iconTypes.INFO;
|
|
6291
|
+
|
|
6292
|
+
ctrl.$onInit = onInit;
|
|
6293
|
+
ctrl.$onChanges = onChanges;
|
|
6294
|
+
ctrl.$onDestroy = onDestroy;
|
|
6295
|
+
|
|
6296
|
+
ctrl.handleQuestionMarkClick = handleQuestionMarkClick;
|
|
6297
|
+
ctrl.isClickMode = isClickMode;
|
|
6298
|
+
|
|
6299
|
+
//
|
|
6300
|
+
// Hook methods
|
|
6301
|
+
//
|
|
6302
|
+
|
|
6303
|
+
/**
|
|
6304
|
+
* Initialization method
|
|
6305
|
+
*/
|
|
6306
|
+
function onInit() {
|
|
6307
|
+
lodash.defaults(ctrl, {
|
|
6308
|
+
defaultTooltipPlacement: ctrl.isDefaultTooltipEnabled ? 'auto' : 'right',
|
|
6309
|
+
defaultTooltipPopupDelay: '0',
|
|
6012
6310
|
isDefaultTooltipEnabled: false,
|
|
6013
6311
|
isDisabled: false,
|
|
6014
6312
|
isHtmlEnabled: false
|
|
@@ -6457,498 +6755,200 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
6457
6755
|
}
|
|
6458
6756
|
|
|
6459
6757
|
//
|
|
6460
|
-
// Public methods
|
|
6461
|
-
//
|
|
6462
|
-
|
|
6463
|
-
/**
|
|
6464
|
-
* Adds new item to options list.
|
|
6465
|
-
* Available only for groups mode in dropdown.
|
|
6466
|
-
* @param {string} inputValue - new item value
|
|
6467
|
-
* @param {Object} group - new item's group model
|
|
6468
|
-
* @param {string} name - group name
|
|
6469
|
-
*/
|
|
6470
|
-
function addItem(inputValue, group, name) {
|
|
6471
|
-
if (group.addingEnabled && !lodash.isEmpty(inputValue)) {
|
|
6472
|
-
lodash.get(ctrl.optionList, name + '.options').unshift({
|
|
6473
|
-
id: inputValue,
|
|
6474
|
-
label: inputValue,
|
|
6475
|
-
value: inputValue,
|
|
6476
|
-
enableTooltip: false,
|
|
6477
|
-
disabled: false,
|
|
6478
|
-
checked: true,
|
|
6479
|
-
filtered: false
|
|
6480
|
-
});
|
|
6481
|
-
}
|
|
6482
|
-
|
|
6483
|
-
ctrl.toggleAddItemField(group, name);
|
|
6484
|
-
ctrl.updateViewValue();
|
|
6485
|
-
}
|
|
6486
|
-
|
|
6487
|
-
/**
|
|
6488
|
-
* Callback on 'Apply' changes.
|
|
6489
|
-
*/
|
|
6490
|
-
function onApply() {
|
|
6491
|
-
if (angular.isFunction(ctrl.dropdownApplyCallback)) {
|
|
6492
|
-
toggleDropdown();
|
|
6493
|
-
|
|
6494
|
-
ctrl.dropdownApplyCallback({ data: ctrl.optionList });
|
|
6495
|
-
}
|
|
6496
|
-
}
|
|
6497
|
-
|
|
6498
|
-
/**
|
|
6499
|
-
* Callback on 'Cancel' button
|
|
6500
|
-
*/
|
|
6501
|
-
function onCancel() {
|
|
6502
|
-
onSearchInputChange('');
|
|
6503
|
-
toggleDropdown();
|
|
6504
|
-
}
|
|
6505
|
-
|
|
6506
|
-
/**
|
|
6507
|
-
* Callback on master checkbox state changes.
|
|
6508
|
-
* @param {Event} event - event object
|
|
6509
|
-
* @param {string} name - group name
|
|
6510
|
-
*/
|
|
6511
|
-
function onCheckAllItems(event, name) {
|
|
6512
|
-
if (ctrl.groups && !lodash.isNil(name)) {
|
|
6513
|
-
var options = lodash.get(ctrl.optionList, name + '.options');
|
|
6514
|
-
var isAllItemsChecked = !lodash.get(ctrl.optionList, name + '.allItemsChecked');
|
|
6515
|
-
|
|
6516
|
-
lodash.forEach(options, function (option) {
|
|
6517
|
-
lodash.set(option, 'checked', isAllItemsChecked);
|
|
6518
|
-
});
|
|
6519
|
-
|
|
6520
|
-
lodash.assign(ctrl.optionList[name], {
|
|
6521
|
-
allItemsChecked: isAllItemsChecked,
|
|
6522
|
-
itemsChecked: isAllItemsChecked ? options.length : 0,
|
|
6523
|
-
options: options
|
|
6524
|
-
});
|
|
6525
|
-
} else {
|
|
6526
|
-
ctrl.isAllItemsChecked = !ctrl.isAllItemsChecked;
|
|
6527
|
-
ctrl.checkedItemsCount = ctrl.isAllItemsChecked ? ctrl.optionList.length : 0;
|
|
6528
|
-
|
|
6529
|
-
lodash.forEach(ctrl.optionList, function (option) {
|
|
6530
|
-
option.checked = ctrl.isAllItemsChecked;
|
|
6531
|
-
});
|
|
6532
|
-
}
|
|
6533
|
-
}
|
|
6534
|
-
|
|
6535
|
-
/**
|
|
6536
|
-
* Callback on search input changes.
|
|
6537
|
-
* @param {string} searchData
|
|
6538
|
-
*/
|
|
6539
|
-
function onSearchInputChange(searchData) {
|
|
6540
|
-
if (lodash.isEmpty(searchData) || lodash.isNil(searchData)) {
|
|
6541
|
-
lodash.forEach(ctrl.optionList, function (group) {
|
|
6542
|
-
lodash.forEach(group.options, function (option) {
|
|
6543
|
-
lodash.set(option, 'filtered', false);
|
|
6544
|
-
});
|
|
6545
|
-
});
|
|
6546
|
-
} else {
|
|
6547
|
-
lodash.forEach(ctrl.optionList, function (item) {
|
|
6548
|
-
if (ctrl.groups) {
|
|
6549
|
-
lodash.forEach(item.options, function (option) {
|
|
6550
|
-
lodash.set(option, 'filtered', !lodash.startsWith(option.value.toLowerCase(), searchData));
|
|
6551
|
-
});
|
|
6552
|
-
} else {
|
|
6553
|
-
lodash.set(item, 'filtered', !lodash.startsWith(item.value.toLowerCase(), searchData));
|
|
6554
|
-
}
|
|
6555
|
-
});
|
|
6556
|
-
}
|
|
6557
|
-
}
|
|
6558
|
-
|
|
6559
|
-
/**
|
|
6560
|
-
* Toggles add new item field visibility
|
|
6561
|
-
* @param {Object} group - new item's group model
|
|
6562
|
-
* @param {string} name - group name
|
|
6563
|
-
*/
|
|
6564
|
-
function toggleAddItemField(group, name) {
|
|
6565
|
-
if (group.addingEnabled) {
|
|
6566
|
-
var isVisible = !lodash.get(ctrl.optionList, name + '.addItemInputVisible', false);
|
|
6567
|
-
|
|
6568
|
-
lodash.set(ctrl.optionList, name + '.addItemInputVisible', isVisible);
|
|
6569
|
-
}
|
|
6570
|
-
}
|
|
6571
|
-
|
|
6572
|
-
/**
|
|
6573
|
-
* Toggles dropdown visibility
|
|
6574
|
-
*/
|
|
6575
|
-
function toggleDropdown() {
|
|
6576
|
-
ctrl.isDropdownOpened = !ctrl.isDropdownOpened;
|
|
6577
|
-
}
|
|
6578
|
-
|
|
6579
|
-
/**
|
|
6580
|
-
* Toggles search input focus/blur for style changes
|
|
6581
|
-
*/
|
|
6582
|
-
function toggleSearchInputFocus() {
|
|
6583
|
-
ctrl.isSearchInputFocused = !ctrl.isSearchInputFocused;
|
|
6584
|
-
}
|
|
6585
|
-
|
|
6586
|
-
/**
|
|
6587
|
-
* Sets a new state to the view-value, which is an array of strings corresponding to the checked options
|
|
6588
|
-
*/
|
|
6589
|
-
function updateViewValue() {
|
|
6590
|
-
var newViewValue = ctrl.groups ? {} : [];
|
|
6591
|
-
|
|
6592
|
-
if (ctrl.groups) {
|
|
6593
|
-
lodash.forEach(ctrl.optionList, function (group, key) {
|
|
6594
|
-
var checkedItems = lodash.filter(group.options, 'checked');
|
|
6595
|
-
|
|
6596
|
-
group.allItemsChecked = checkedItems.length === group.options.length;
|
|
6597
|
-
|
|
6598
|
-
lodash.set(ctrl.optionList, key + '.itemsChecked', checkedItems.length);
|
|
6599
|
-
lodash.set(newViewValue, key, lodash.map(checkedItems, 'value'));
|
|
6600
|
-
});
|
|
6601
|
-
|
|
6602
|
-
if (!ctrl.dropdownApply && angular.isFunction(ctrl.dropdownApplyCallback)) {
|
|
6603
|
-
ctrl.dropdownApplyCallback({ data: ctrl.optionList });
|
|
6604
|
-
}
|
|
6605
|
-
} else {
|
|
6606
|
-
var checkedItems = lodash.filter(ctrl.optionList, 'checked');
|
|
6607
|
-
|
|
6608
|
-
if (ctrl.selectAllNone) {
|
|
6609
|
-
ctrl.isAllItemsChecked = checkedItems.length === ctrl.optionList.length;
|
|
6610
|
-
ctrl.checkedItemsCount = checkedItems.length;
|
|
6611
|
-
}
|
|
6612
|
-
|
|
6613
|
-
newViewValue = lodash.map(checkedItems, 'value');
|
|
6614
|
-
}
|
|
6615
|
-
|
|
6616
|
-
ctrl.ngModelCtrl.$setViewValue(newViewValue, 'change');
|
|
6617
|
-
}
|
|
6618
|
-
|
|
6619
|
-
/**
|
|
6620
|
-
* Tests whether a provided option should be disabled or not.
|
|
6621
|
-
* @param {{disabled: boolean}} option - the option to test
|
|
6622
|
-
* @returns {boolean} `true` if this option should be disabled, or `false` otherwise
|
|
6623
|
-
*/
|
|
6624
|
-
function isDisabled(option) {
|
|
6625
|
-
return ctrl.disabled || option.disabled;
|
|
6626
|
-
}
|
|
6627
|
-
|
|
6628
|
-
//
|
|
6629
|
-
// Private methods
|
|
6630
|
-
//
|
|
6631
|
-
|
|
6632
|
-
/**
|
|
6633
|
-
* Checks the options that correspond to the string values inside the model, and un-checks the rest.
|
|
6634
|
-
*/
|
|
6635
|
-
function updateOptionsState() {
|
|
6636
|
-
if (ctrl.groups) {
|
|
6637
|
-
lodash.forEach(ctrl.optionList, function (group, key) {
|
|
6638
|
-
var viewValue = lodash.get(ctrl.ngModelCtrl.$viewValue, key, []);
|
|
6639
|
-
|
|
6640
|
-
lodash.forEach(group.options, function (option) {
|
|
6641
|
-
option.checked = group.allItemsChecked ? true : lodash.includes(viewValue, option.value);
|
|
6642
|
-
});
|
|
6643
|
-
|
|
6644
|
-
var checkedItems = lodash.filter(group.options, 'checked');
|
|
6645
|
-
|
|
6646
|
-
group.allItemsChecked = checkedItems.length === group.options.length;
|
|
6647
|
-
lodash.set(ctrl.optionList, key + '.itemsChecked', checkedItems.length);
|
|
6648
|
-
});
|
|
6649
|
-
} else {
|
|
6650
|
-
lodash.forEach(ctrl.optionList, function (option) {
|
|
6651
|
-
option.checked = lodash.includes(ctrl.ngModelCtrl.$viewValue, option.value);
|
|
6652
|
-
});
|
|
6653
|
-
}
|
|
6654
|
-
}
|
|
6655
|
-
}
|
|
6656
|
-
})();
|
|
6657
|
-
'use strict';
|
|
6658
|
-
|
|
6659
|
-
(function () {
|
|
6660
|
-
'use strict';
|
|
6661
|
-
|
|
6662
|
-
angular.module('iguazio.dashboard-controls').component('igzNavigationTabs', {
|
|
6663
|
-
bindings: {
|
|
6664
|
-
tabItems: '<'
|
|
6665
|
-
},
|
|
6666
|
-
templateUrl: 'igz_controls/components/navigation-tabs/navigation-tabs.tpl.html'
|
|
6667
|
-
});
|
|
6668
|
-
})();
|
|
6669
|
-
'use strict';
|
|
6670
|
-
|
|
6671
|
-
(function () {
|
|
6672
|
-
'use strict';
|
|
6673
|
-
|
|
6674
|
-
NavigationTabsService.$inject = ['$timeout', '$i18next', 'i18next', 'lodash', 'ConfigService', 'FunctionsService'];
|
|
6675
|
-
angular.module('iguazio.dashboard-controls').factory('NavigationTabsService', NavigationTabsService);
|
|
6676
|
-
|
|
6677
|
-
function NavigationTabsService($timeout, $i18next, i18next, lodash, ConfigService, FunctionsService) {
|
|
6678
|
-
return {
|
|
6679
|
-
getNavigationTabsConfig: getNavigationTabsConfig
|
|
6680
|
-
};
|
|
6681
|
-
|
|
6682
|
-
//
|
|
6683
|
-
// Public methods
|
|
6684
|
-
//
|
|
6685
|
-
|
|
6686
|
-
/**
|
|
6687
|
-
* Returns navigation tabs config depending on current state
|
|
6688
|
-
* @param {string} state
|
|
6689
|
-
* @returns {Array}
|
|
6690
|
-
*/
|
|
6691
|
-
function getNavigationTabsConfig(state) {
|
|
6692
|
-
var navigationTabsConfigs = {
|
|
6693
|
-
'app.project': getProjectConfig(state),
|
|
6694
|
-
'app.container': getContainersConfig(),
|
|
6695
|
-
'app.cluster': getClusterConfig(),
|
|
6696
|
-
'app.clusters': getClustersConfig(),
|
|
6697
|
-
'app.app-cluster': getAppClustersConfig(),
|
|
6698
|
-
'app.events': getEventsConfig(),
|
|
6699
|
-
'app.storage-pool': getStoragePoolsConfig(),
|
|
6700
|
-
'app.identity': getIdentityConfig(),
|
|
6701
|
-
'app.control-panel': getControlPanelConfig(),
|
|
6702
|
-
'app.tenant': getTenantConfig()
|
|
6703
|
-
};
|
|
6704
|
-
var stateTest = state.match(/^[^.]*.[^.]*/);
|
|
6705
|
-
|
|
6706
|
-
return lodash.get(navigationTabsConfigs, stateTest[0], []);
|
|
6707
|
-
}
|
|
6708
|
-
|
|
6709
|
-
//
|
|
6710
|
-
// Private methods
|
|
6758
|
+
// Public methods
|
|
6711
6759
|
//
|
|
6712
6760
|
|
|
6713
6761
|
/**
|
|
6714
|
-
*
|
|
6715
|
-
*
|
|
6762
|
+
* Adds new item to options list.
|
|
6763
|
+
* Available only for groups mode in dropdown.
|
|
6764
|
+
* @param {string} inputValue - new item value
|
|
6765
|
+
* @param {Object} group - new item's group model
|
|
6766
|
+
* @param {string} name - group name
|
|
6716
6767
|
*/
|
|
6717
|
-
function
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
$timeout(function () {
|
|
6728
|
-
if (FunctionsService.isKubePlatform()) {
|
|
6729
|
-
config.push({
|
|
6730
|
-
tabName: $i18next.t('functions:API_GATEWAYS', { lng: lng }),
|
|
6731
|
-
uiRoute: 'app.project.api-gateways'
|
|
6732
|
-
});
|
|
6733
|
-
}
|
|
6768
|
+
function addItem(inputValue, group, name) {
|
|
6769
|
+
if (group.addingEnabled && !lodash.isEmpty(inputValue)) {
|
|
6770
|
+
lodash.get(ctrl.optionList, name + '.options').unshift({
|
|
6771
|
+
id: inputValue,
|
|
6772
|
+
label: inputValue,
|
|
6773
|
+
value: inputValue,
|
|
6774
|
+
enableTooltip: false,
|
|
6775
|
+
disabled: false,
|
|
6776
|
+
checked: true,
|
|
6777
|
+
filtered: false
|
|
6734
6778
|
});
|
|
6735
6779
|
}
|
|
6736
6780
|
|
|
6737
|
-
|
|
6781
|
+
ctrl.toggleAddItemField(group, name);
|
|
6782
|
+
ctrl.updateViewValue();
|
|
6738
6783
|
}
|
|
6739
6784
|
|
|
6740
6785
|
/**
|
|
6741
|
-
*
|
|
6742
|
-
* @returns {Array.<Object>}
|
|
6786
|
+
* Callback on 'Apply' changes.
|
|
6743
6787
|
*/
|
|
6744
|
-
function
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
tabName: $i18next.t('common:BROWSE', { lng: lng }),
|
|
6748
|
-
uiRoute: 'app.container.browser',
|
|
6749
|
-
capability: 'containers.browse'
|
|
6750
|
-
}, {
|
|
6751
|
-
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6752
|
-
uiRoute: 'app.container.overview',
|
|
6753
|
-
capability: 'containers.overview'
|
|
6754
|
-
}, {
|
|
6755
|
-
tabName: $i18next.t('common:DATA_ACCESS_POLICY', { lng: lng }),
|
|
6756
|
-
uiRoute: 'app.container.data-access-policy',
|
|
6757
|
-
capability: 'containers.dataPolicy'
|
|
6758
|
-
}];
|
|
6759
|
-
|
|
6760
|
-
if (ConfigService.isDemoMode()) {
|
|
6761
|
-
config.push({
|
|
6762
|
-
tabName: $i18next.t('common:DATA_LIFECYCLE', { lng: lng }),
|
|
6763
|
-
uiRoute: 'app.container.data-lifecycle',
|
|
6764
|
-
capability: 'containers.dataLifecycle'
|
|
6765
|
-
});
|
|
6788
|
+
function onApply() {
|
|
6789
|
+
if (angular.isFunction(ctrl.dropdownApplyCallback)) {
|
|
6790
|
+
toggleDropdown();
|
|
6766
6791
|
|
|
6767
|
-
|
|
6768
|
-
tabName: $i18next.t('common:ANALYTICS', { lng: lng }),
|
|
6769
|
-
uiRoute: 'app.container.analytics',
|
|
6770
|
-
capability: 'containers.analytics'
|
|
6771
|
-
});
|
|
6792
|
+
ctrl.dropdownApplyCallback({ data: ctrl.optionList });
|
|
6772
6793
|
}
|
|
6773
|
-
|
|
6774
|
-
return config;
|
|
6775
6794
|
}
|
|
6776
6795
|
|
|
6777
6796
|
/**
|
|
6778
|
-
*
|
|
6779
|
-
* @returns {Array.<Object>}
|
|
6797
|
+
* Callback on 'Cancel' button
|
|
6780
6798
|
*/
|
|
6781
|
-
function
|
|
6782
|
-
|
|
6783
|
-
|
|
6784
|
-
tabName: $i18next.t('common:NODES', { lng: lng }),
|
|
6785
|
-
uiRoute: 'app.cluster.nodes',
|
|
6786
|
-
capability: 'clusters.nodes'
|
|
6787
|
-
}];
|
|
6788
|
-
|
|
6789
|
-
if (ConfigService.isStagingMode()) {
|
|
6790
|
-
config.unshift({
|
|
6791
|
-
tabName: $i18next.t('common:OVERVIEW', { lng: lng }),
|
|
6792
|
-
uiRoute: 'app.cluster.overview',
|
|
6793
|
-
capability: 'clusters.overview'
|
|
6794
|
-
});
|
|
6795
|
-
}
|
|
6796
|
-
|
|
6797
|
-
return config;
|
|
6799
|
+
function onCancel() {
|
|
6800
|
+
onSearchInputChange('');
|
|
6801
|
+
toggleDropdown();
|
|
6798
6802
|
}
|
|
6799
6803
|
|
|
6800
6804
|
/**
|
|
6801
|
-
*
|
|
6802
|
-
* @
|
|
6805
|
+
* Callback on master checkbox state changes.
|
|
6806
|
+
* @param {Event} event - event object
|
|
6807
|
+
* @param {string} name - group name
|
|
6803
6808
|
*/
|
|
6804
|
-
function
|
|
6805
|
-
|
|
6809
|
+
function onCheckAllItems(event, name) {
|
|
6810
|
+
if (ctrl.groups && !lodash.isNil(name)) {
|
|
6811
|
+
var options = lodash.get(ctrl.optionList, name + '.options');
|
|
6812
|
+
var isAllItemsChecked = !lodash.get(ctrl.optionList, name + '.allItemsChecked');
|
|
6806
6813
|
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
uiRoute: 'app.clusters.data',
|
|
6811
|
-
capability: 'clusters'
|
|
6812
|
-
}, {
|
|
6813
|
-
tabName: $i18next.t('common:APPLICATION', { lng: lng }),
|
|
6814
|
-
id: 'app',
|
|
6815
|
-
uiRoute: 'app.clusters.app',
|
|
6816
|
-
capability: 'clusters'
|
|
6817
|
-
}, {
|
|
6818
|
-
tabName: $i18next.t('common:SUPPORT_LOGS', { lng: lng }),
|
|
6819
|
-
id: 'support-logs',
|
|
6820
|
-
uiRoute: 'app.clusters.support-logs',
|
|
6821
|
-
capability: 'clusters.collectLogs'
|
|
6822
|
-
}];
|
|
6823
|
-
}
|
|
6814
|
+
lodash.forEach(options, function (option) {
|
|
6815
|
+
lodash.set(option, 'checked', isAllItemsChecked);
|
|
6816
|
+
});
|
|
6824
6817
|
|
|
6825
|
-
|
|
6826
|
-
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6818
|
+
lodash.assign(ctrl.optionList[name], {
|
|
6819
|
+
allItemsChecked: isAllItemsChecked,
|
|
6820
|
+
itemsChecked: isAllItemsChecked ? options.length : 0,
|
|
6821
|
+
options: options
|
|
6822
|
+
});
|
|
6823
|
+
} else {
|
|
6824
|
+
ctrl.isAllItemsChecked = !ctrl.isAllItemsChecked;
|
|
6825
|
+
ctrl.checkedItemsCount = ctrl.isAllItemsChecked ? ctrl.optionList.length : 0;
|
|
6831
6826
|
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
6835
|
-
|
|
6836
|
-
}];
|
|
6827
|
+
lodash.forEach(ctrl.optionList, function (option) {
|
|
6828
|
+
option.checked = ctrl.isAllItemsChecked;
|
|
6829
|
+
});
|
|
6830
|
+
}
|
|
6837
6831
|
}
|
|
6838
6832
|
|
|
6839
6833
|
/**
|
|
6840
|
-
*
|
|
6841
|
-
* @
|
|
6834
|
+
* Callback on search input changes.
|
|
6835
|
+
* @param {string} searchData
|
|
6842
6836
|
*/
|
|
6843
|
-
function
|
|
6844
|
-
|
|
6845
|
-
|
|
6846
|
-
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
capability: 'storagePools.listContainers'
|
|
6837
|
+
function onSearchInputChange(searchData) {
|
|
6838
|
+
if (lodash.isEmpty(searchData) || lodash.isNil(searchData)) {
|
|
6839
|
+
lodash.forEach(ctrl.optionList, function (group) {
|
|
6840
|
+
lodash.forEach(group.options, function (option) {
|
|
6841
|
+
lodash.set(option, 'filtered', false);
|
|
6842
|
+
});
|
|
6843
|
+
});
|
|
6844
|
+
} else {
|
|
6845
|
+
lodash.forEach(ctrl.optionList, function (item) {
|
|
6846
|
+
if (ctrl.groups) {
|
|
6847
|
+
lodash.forEach(item.options, function (option) {
|
|
6848
|
+
lodash.set(option, 'filtered', !lodash.startsWith(option.value.toLowerCase(), searchData));
|
|
6849
|
+
});
|
|
6850
|
+
} else {
|
|
6851
|
+
lodash.set(item, 'filtered', !lodash.startsWith(item.value.toLowerCase(), searchData));
|
|
6852
|
+
}
|
|
6860
6853
|
});
|
|
6861
6854
|
}
|
|
6862
|
-
|
|
6863
|
-
return config;
|
|
6864
6855
|
}
|
|
6865
6856
|
|
|
6866
6857
|
/**
|
|
6867
|
-
*
|
|
6868
|
-
* @
|
|
6858
|
+
* Toggles add new item field visibility
|
|
6859
|
+
* @param {Object} group - new item's group model
|
|
6860
|
+
* @param {string} name - group name
|
|
6869
6861
|
*/
|
|
6870
|
-
function
|
|
6871
|
-
|
|
6862
|
+
function toggleAddItemField(group, name) {
|
|
6863
|
+
if (group.addingEnabled) {
|
|
6864
|
+
var isVisible = !lodash.get(ctrl.optionList, name + '.addItemInputVisible', false);
|
|
6872
6865
|
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
uiRoute: 'app.control-panel.logs'
|
|
6876
|
-
}];
|
|
6866
|
+
lodash.set(ctrl.optionList, name + '.addItemInputVisible', isVisible);
|
|
6867
|
+
}
|
|
6877
6868
|
}
|
|
6878
6869
|
|
|
6879
6870
|
/**
|
|
6880
|
-
*
|
|
6881
|
-
* @returns {Array.<Object>}
|
|
6871
|
+
* Toggles dropdown visibility
|
|
6882
6872
|
*/
|
|
6883
|
-
function
|
|
6884
|
-
|
|
6885
|
-
var platformType = lodash.get(ConfigService.dashboard, 'platformType', '');
|
|
6886
|
-
|
|
6887
|
-
return [{
|
|
6888
|
-
tabName: $i18next.t('common:USERS', { lng: lng }),
|
|
6889
|
-
uiRoute: 'app.identity.users',
|
|
6890
|
-
capability: 'identity.users'
|
|
6891
|
-
}, {
|
|
6892
|
-
tabName: $i18next.t('common:GROUPS', { lng: lng }),
|
|
6893
|
-
uiRoute: 'app.identity.groups',
|
|
6894
|
-
capability: 'identity.groups'
|
|
6895
|
-
}, {
|
|
6896
|
-
tabName: $i18next.t('common:IDP', { lng: lng }),
|
|
6897
|
-
uiRoute: 'app.identity.idp',
|
|
6898
|
-
capability: 'identity.idp'
|
|
6899
|
-
}, {
|
|
6900
|
-
tabName: $i18next.t('common:KEYLOACK_ADMIN_CONSOLE', { lng: lng }),
|
|
6901
|
-
href: lodash.get(ConfigService.dashboard, ['authentication', 'sso', 'console_urls', platformType], ''),
|
|
6902
|
-
hidden: !(lodash.get(ConfigService.dashboard, 'authentication.sso.mode') && platformType)
|
|
6903
|
-
}];
|
|
6873
|
+
function toggleDropdown() {
|
|
6874
|
+
ctrl.isDropdownOpened = !ctrl.isDropdownOpened;
|
|
6904
6875
|
}
|
|
6905
6876
|
|
|
6906
|
-
/**
|
|
6907
|
-
*
|
|
6908
|
-
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
6912
|
-
var config = [{
|
|
6913
|
-
tabName: $i18next.t('common:EVENT_LOG', { lng: lng }),
|
|
6914
|
-
uiRoute: 'app.events.event-log',
|
|
6915
|
-
capability: 'events.eventLog'
|
|
6916
|
-
}, {
|
|
6917
|
-
tabName: $i18next.t('common:ALERTS', { lng: lng }),
|
|
6918
|
-
uiRoute: 'app.events.alerts',
|
|
6919
|
-
capability: 'events.alerts'
|
|
6920
|
-
}, {
|
|
6921
|
-
tabName: $i18next.t('common:AUDIT', { lng: lng }),
|
|
6922
|
-
uiRoute: 'app.events.audit',
|
|
6923
|
-
capability: 'events.audit'
|
|
6924
|
-
}, {
|
|
6925
|
-
tabName: $i18next.t('common:COMMUNICATION', { lng: lng }),
|
|
6926
|
-
uiRoute: 'app.events.communication',
|
|
6927
|
-
capability: 'events.communication'
|
|
6928
|
-
}];
|
|
6877
|
+
/**
|
|
6878
|
+
* Toggles search input focus/blur for style changes
|
|
6879
|
+
*/
|
|
6880
|
+
function toggleSearchInputFocus() {
|
|
6881
|
+
ctrl.isSearchInputFocused = !ctrl.isSearchInputFocused;
|
|
6882
|
+
}
|
|
6929
6883
|
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
|
|
6934
|
-
|
|
6884
|
+
/**
|
|
6885
|
+
* Sets a new state to the view-value, which is an array of strings corresponding to the checked options
|
|
6886
|
+
*/
|
|
6887
|
+
function updateViewValue() {
|
|
6888
|
+
var newViewValue = ctrl.groups ? {} : [];
|
|
6889
|
+
|
|
6890
|
+
if (ctrl.groups) {
|
|
6891
|
+
lodash.forEach(ctrl.optionList, function (group, key) {
|
|
6892
|
+
var checkedItems = lodash.filter(group.options, 'checked');
|
|
6893
|
+
|
|
6894
|
+
group.allItemsChecked = checkedItems.length === group.options.length;
|
|
6895
|
+
|
|
6896
|
+
lodash.set(ctrl.optionList, key + '.itemsChecked', checkedItems.length);
|
|
6897
|
+
lodash.set(newViewValue, key, lodash.map(checkedItems, 'value'));
|
|
6935
6898
|
});
|
|
6899
|
+
|
|
6900
|
+
if (!ctrl.dropdownApply && angular.isFunction(ctrl.dropdownApplyCallback)) {
|
|
6901
|
+
ctrl.dropdownApplyCallback({ data: ctrl.optionList });
|
|
6902
|
+
}
|
|
6903
|
+
} else {
|
|
6904
|
+
var checkedItems = lodash.filter(ctrl.optionList, 'checked');
|
|
6905
|
+
|
|
6906
|
+
if (ctrl.selectAllNone) {
|
|
6907
|
+
ctrl.isAllItemsChecked = checkedItems.length === ctrl.optionList.length;
|
|
6908
|
+
ctrl.checkedItemsCount = checkedItems.length;
|
|
6909
|
+
}
|
|
6910
|
+
|
|
6911
|
+
newViewValue = lodash.map(checkedItems, 'value');
|
|
6936
6912
|
}
|
|
6937
6913
|
|
|
6938
|
-
|
|
6914
|
+
ctrl.ngModelCtrl.$setViewValue(newViewValue, 'change');
|
|
6939
6915
|
}
|
|
6940
6916
|
|
|
6941
6917
|
/**
|
|
6942
|
-
*
|
|
6943
|
-
* @
|
|
6918
|
+
* Tests whether a provided option should be disabled or not.
|
|
6919
|
+
* @param {{disabled: boolean}} option - the option to test
|
|
6920
|
+
* @returns {boolean} `true` if this option should be disabled, or `false` otherwise
|
|
6944
6921
|
*/
|
|
6945
|
-
function
|
|
6946
|
-
|
|
6922
|
+
function isDisabled(option) {
|
|
6923
|
+
return ctrl.disabled || option.disabled;
|
|
6924
|
+
}
|
|
6947
6925
|
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6926
|
+
//
|
|
6927
|
+
// Private methods
|
|
6928
|
+
//
|
|
6929
|
+
|
|
6930
|
+
/**
|
|
6931
|
+
* Checks the options that correspond to the string values inside the model, and un-checks the rest.
|
|
6932
|
+
*/
|
|
6933
|
+
function updateOptionsState() {
|
|
6934
|
+
if (ctrl.groups) {
|
|
6935
|
+
lodash.forEach(ctrl.optionList, function (group, key) {
|
|
6936
|
+
var viewValue = lodash.get(ctrl.ngModelCtrl.$viewValue, key, []);
|
|
6937
|
+
|
|
6938
|
+
lodash.forEach(group.options, function (option) {
|
|
6939
|
+
option.checked = group.allItemsChecked ? true : lodash.includes(viewValue, option.value);
|
|
6940
|
+
});
|
|
6941
|
+
|
|
6942
|
+
var checkedItems = lodash.filter(group.options, 'checked');
|
|
6943
|
+
|
|
6944
|
+
group.allItemsChecked = checkedItems.length === group.options.length;
|
|
6945
|
+
lodash.set(ctrl.optionList, key + '.itemsChecked', checkedItems.length);
|
|
6946
|
+
});
|
|
6947
|
+
} else {
|
|
6948
|
+
lodash.forEach(ctrl.optionList, function (option) {
|
|
6949
|
+
option.checked = lodash.includes(ctrl.ngModelCtrl.$viewValue, option.value);
|
|
6950
|
+
});
|
|
6951
|
+
}
|
|
6952
6952
|
}
|
|
6953
6953
|
}
|
|
6954
6954
|
})();
|
|
@@ -9019,38 +9019,60 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
9019
9019
|
(function () {
|
|
9020
9020
|
'use strict';
|
|
9021
9021
|
|
|
9022
|
-
|
|
9023
|
-
angular.module('iguazio.dashboard-controls').component('
|
|
9022
|
+
IgzToastStatusPanelController.$inject = ['$element', '$rootScope', '$timeout', '$transclude', 'lodash'];
|
|
9023
|
+
angular.module('iguazio.dashboard-controls').component('igzToastStatusPanel', {
|
|
9024
9024
|
bindings: {
|
|
9025
|
-
|
|
9025
|
+
onClose: '&?',
|
|
9026
|
+
panelMessages: '<',
|
|
9027
|
+
panelState: '<',
|
|
9028
|
+
permanent: '<?'
|
|
9026
9029
|
},
|
|
9027
|
-
templateUrl: 'igz_controls/components/
|
|
9028
|
-
controller:
|
|
9030
|
+
templateUrl: 'igz_controls/components/toast-status-panel/toast-status-panel.tpl.html',
|
|
9031
|
+
controller: IgzToastStatusPanelController,
|
|
9032
|
+
transclude: true
|
|
9029
9033
|
});
|
|
9030
9034
|
|
|
9031
|
-
function
|
|
9035
|
+
function IgzToastStatusPanelController($element, $rootScope, $timeout, $transclude, lodash) {
|
|
9032
9036
|
var ctrl = this;
|
|
9033
|
-
var
|
|
9037
|
+
var statusIcons = {
|
|
9038
|
+
'succeeded': 'igz-icon-tick-round',
|
|
9039
|
+
'in-progress': 'igz-icon-properties',
|
|
9040
|
+
'failed': 'igz-icon-block'
|
|
9041
|
+
};
|
|
9034
9042
|
|
|
9035
|
-
|
|
9036
|
-
ctrl.
|
|
9037
|
-
ctrl.isAlertShowing = false;
|
|
9038
|
-
ctrl.textToDisplay = $i18next.t('common:LOADING_CAPITALIZE_ELLIPSIS', { lng: lng });
|
|
9043
|
+
ctrl.isToastPanelShown = false;
|
|
9044
|
+
ctrl.isTranscludePassed = false;
|
|
9039
9045
|
|
|
9040
|
-
ctrl.$
|
|
9046
|
+
ctrl.$onChanges = onChanges;
|
|
9041
9047
|
|
|
9042
|
-
|
|
9043
|
-
ctrl.
|
|
9048
|
+
ctrl.closeToastPanel = closeToastPanel;
|
|
9049
|
+
ctrl.getState = getState;
|
|
9050
|
+
ctrl.getStateMessage = getStateMessage;
|
|
9051
|
+
|
|
9052
|
+
// checks if transclude template was passed
|
|
9053
|
+
$transclude(function (transclude) {
|
|
9054
|
+
ctrl.isTranscludePassed = transclude.length > 0 && !(
|
|
9055
|
+
|
|
9056
|
+
// a single text node with whitespace only, meaning there is nothing important between the opening
|
|
9057
|
+
// tag `<igz-toast-status-panel>` and the closing tag `</igz-toast-status-panel>`
|
|
9058
|
+
transclude.length === 1 && transclude[0].nodeType === 3 && transclude.text().trim() === '');
|
|
9059
|
+
});
|
|
9044
9060
|
|
|
9045
9061
|
//
|
|
9046
9062
|
// Hook methods
|
|
9047
9063
|
//
|
|
9048
9064
|
|
|
9049
9065
|
/**
|
|
9050
|
-
*
|
|
9066
|
+
* On changes method
|
|
9067
|
+
* @param {Object} changes
|
|
9051
9068
|
*/
|
|
9052
|
-
function
|
|
9053
|
-
|
|
9069
|
+
function onChanges(changes) {
|
|
9070
|
+
if (lodash.has(changes, 'panelState')) {
|
|
9071
|
+
ctrl.isToastPanelShown = !lodash.isNil(changes.panelState.currentValue);
|
|
9072
|
+
$element.find('.panel-status-icon').removeClass(lodash.get(statusIcons, changes.panelState.previousValue)).addClass(lodash.get(statusIcons, changes.panelState.currentValue));
|
|
9073
|
+
$element.find('.toast-status-panel').removeClass(changes.panelState.previousValue).addClass(changes.panelState.currentValue);
|
|
9074
|
+
$element.find('.panel-status').removeClass(changes.panelState.previousValue).addClass(changes.panelState.currentValue);
|
|
9075
|
+
}
|
|
9054
9076
|
}
|
|
9055
9077
|
|
|
9056
9078
|
//
|
|
@@ -9058,35 +9080,36 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
9058
9080
|
//
|
|
9059
9081
|
|
|
9060
9082
|
/**
|
|
9061
|
-
*
|
|
9083
|
+
* Shows/hides toast panel
|
|
9062
9084
|
*/
|
|
9063
|
-
function
|
|
9064
|
-
ctrl.
|
|
9065
|
-
ctrl.
|
|
9085
|
+
function closeToastPanel() {
|
|
9086
|
+
ctrl.isToastPanelShown = false;
|
|
9087
|
+
ctrl.panelState = null;
|
|
9066
9088
|
|
|
9067
|
-
|
|
9068
|
-
|
|
9089
|
+
if (lodash.isFunction(ctrl.onClose)) {
|
|
9090
|
+
ctrl.onClose();
|
|
9091
|
+
}
|
|
9069
9092
|
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
|
|
9093
|
+
$timeout(function () {
|
|
9094
|
+
$rootScope.$broadcast('igzWatchWindowResize::resize');
|
|
9095
|
+
});
|
|
9096
|
+
}
|
|
9073
9097
|
|
|
9074
9098
|
/**
|
|
9075
|
-
*
|
|
9076
|
-
* @
|
|
9077
|
-
* @param {string} data - broadcast data
|
|
9099
|
+
* Gets current state
|
|
9100
|
+
* @returns {?string} (e.g. "in-progress", "succeeded", "failed")
|
|
9078
9101
|
*/
|
|
9079
|
-
function
|
|
9080
|
-
|
|
9081
|
-
|
|
9082
|
-
}
|
|
9083
|
-
|
|
9084
|
-
if (angular.isDefined(data.alertText)) {
|
|
9085
|
-
ctrl.alertText = data.alertText;
|
|
9086
|
-
}
|
|
9102
|
+
function getState() {
|
|
9103
|
+
return ctrl.panelState;
|
|
9104
|
+
}
|
|
9087
9105
|
|
|
9088
|
-
|
|
9089
|
-
|
|
9106
|
+
/**
|
|
9107
|
+
* Gets status message of given state
|
|
9108
|
+
* @param {string} state (e.g. "in-progress", "succeeded", "failed")
|
|
9109
|
+
* @returns {string}
|
|
9110
|
+
*/
|
|
9111
|
+
function getStateMessage(state) {
|
|
9112
|
+
return lodash.get(ctrl, ['panelMessages', state]);
|
|
9090
9113
|
}
|
|
9091
9114
|
}
|
|
9092
9115
|
})();
|
|
@@ -9233,6 +9256,82 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
9233
9256
|
})();
|
|
9234
9257
|
'use strict';
|
|
9235
9258
|
|
|
9259
|
+
(function () {
|
|
9260
|
+
'use strict';
|
|
9261
|
+
|
|
9262
|
+
IgzSplashScreenController.$inject = ['$scope', '$state', '$i18next', 'i18next'];
|
|
9263
|
+
angular.module('iguazio.dashboard-controls').component('igzSplashScreen', {
|
|
9264
|
+
bindings: {
|
|
9265
|
+
isSplashShowed: '<'
|
|
9266
|
+
},
|
|
9267
|
+
templateUrl: 'igz_controls/components/splash-screen/splash-screen.tpl.html',
|
|
9268
|
+
controller: IgzSplashScreenController
|
|
9269
|
+
});
|
|
9270
|
+
|
|
9271
|
+
function IgzSplashScreenController($scope, $state, $i18next, i18next) {
|
|
9272
|
+
var ctrl = this;
|
|
9273
|
+
var lng = i18next.language;
|
|
9274
|
+
|
|
9275
|
+
// public properties
|
|
9276
|
+
ctrl.isLoading = true;
|
|
9277
|
+
ctrl.isAlertShowing = false;
|
|
9278
|
+
ctrl.textToDisplay = $i18next.t('common:LOADING_CAPITALIZE_ELLIPSIS', { lng: lng });
|
|
9279
|
+
|
|
9280
|
+
ctrl.$onInit = onInit;
|
|
9281
|
+
|
|
9282
|
+
// public methods
|
|
9283
|
+
ctrl.refreshPage = refreshPage;
|
|
9284
|
+
|
|
9285
|
+
//
|
|
9286
|
+
// Hook methods
|
|
9287
|
+
//
|
|
9288
|
+
|
|
9289
|
+
/**
|
|
9290
|
+
* Initialization method
|
|
9291
|
+
*/
|
|
9292
|
+
function onInit() {
|
|
9293
|
+
$scope.$on('splash-screen_show-error', showError);
|
|
9294
|
+
}
|
|
9295
|
+
|
|
9296
|
+
//
|
|
9297
|
+
// Public methods
|
|
9298
|
+
//
|
|
9299
|
+
|
|
9300
|
+
/**
|
|
9301
|
+
* Sends broadcast to refresh browse page
|
|
9302
|
+
*/
|
|
9303
|
+
function refreshPage() {
|
|
9304
|
+
ctrl.isLoading = true;
|
|
9305
|
+
ctrl.isAlertShowing = false;
|
|
9306
|
+
|
|
9307
|
+
$state.reload();
|
|
9308
|
+
}
|
|
9309
|
+
|
|
9310
|
+
//
|
|
9311
|
+
// Private methods
|
|
9312
|
+
//
|
|
9313
|
+
|
|
9314
|
+
/**
|
|
9315
|
+
* Shows error text
|
|
9316
|
+
* @param {Object} event - native broadcast event
|
|
9317
|
+
* @param {string} data - broadcast data
|
|
9318
|
+
*/
|
|
9319
|
+
function showError(event, data) {
|
|
9320
|
+
if (angular.isDefined(data.textToDisplay)) {
|
|
9321
|
+
ctrl.textToDisplay = data.textToDisplay;
|
|
9322
|
+
}
|
|
9323
|
+
|
|
9324
|
+
if (angular.isDefined(data.alertText)) {
|
|
9325
|
+
ctrl.alertText = data.alertText;
|
|
9326
|
+
}
|
|
9327
|
+
|
|
9328
|
+
ctrl.isLoading = false;
|
|
9329
|
+
ctrl.isAlertShowing = true;
|
|
9330
|
+
}
|
|
9331
|
+
}
|
|
9332
|
+
})();
|
|
9333
|
+
'use strict';
|
|
9334
|
+
|
|
9236
9335
|
/* eslint max-statements: ["error", 60] */
|
|
9237
9336
|
(function () {
|
|
9238
9337
|
'use strict';
|
|
@@ -9770,105 +9869,6 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
9770
9869
|
})();
|
|
9771
9870
|
'use strict';
|
|
9772
9871
|
|
|
9773
|
-
(function () {
|
|
9774
|
-
'use strict';
|
|
9775
|
-
|
|
9776
|
-
IgzToastStatusPanelController.$inject = ['$element', '$rootScope', '$timeout', '$transclude', 'lodash'];
|
|
9777
|
-
angular.module('iguazio.dashboard-controls').component('igzToastStatusPanel', {
|
|
9778
|
-
bindings: {
|
|
9779
|
-
onClose: '&?',
|
|
9780
|
-
panelMessages: '<',
|
|
9781
|
-
panelState: '<',
|
|
9782
|
-
permanent: '<?'
|
|
9783
|
-
},
|
|
9784
|
-
templateUrl: 'igz_controls/components/toast-status-panel/toast-status-panel.tpl.html',
|
|
9785
|
-
controller: IgzToastStatusPanelController,
|
|
9786
|
-
transclude: true
|
|
9787
|
-
});
|
|
9788
|
-
|
|
9789
|
-
function IgzToastStatusPanelController($element, $rootScope, $timeout, $transclude, lodash) {
|
|
9790
|
-
var ctrl = this;
|
|
9791
|
-
var statusIcons = {
|
|
9792
|
-
'succeeded': 'igz-icon-tick-round',
|
|
9793
|
-
'in-progress': 'igz-icon-properties',
|
|
9794
|
-
'failed': 'igz-icon-block'
|
|
9795
|
-
};
|
|
9796
|
-
|
|
9797
|
-
ctrl.isToastPanelShown = false;
|
|
9798
|
-
ctrl.isTranscludePassed = false;
|
|
9799
|
-
|
|
9800
|
-
ctrl.$onChanges = onChanges;
|
|
9801
|
-
|
|
9802
|
-
ctrl.closeToastPanel = closeToastPanel;
|
|
9803
|
-
ctrl.getState = getState;
|
|
9804
|
-
ctrl.getStateMessage = getStateMessage;
|
|
9805
|
-
|
|
9806
|
-
// checks if transclude template was passed
|
|
9807
|
-
$transclude(function (transclude) {
|
|
9808
|
-
ctrl.isTranscludePassed = transclude.length > 0 && !(
|
|
9809
|
-
|
|
9810
|
-
// a single text node with whitespace only, meaning there is nothing important between the opening
|
|
9811
|
-
// tag `<igz-toast-status-panel>` and the closing tag `</igz-toast-status-panel>`
|
|
9812
|
-
transclude.length === 1 && transclude[0].nodeType === 3 && transclude.text().trim() === '');
|
|
9813
|
-
});
|
|
9814
|
-
|
|
9815
|
-
//
|
|
9816
|
-
// Hook methods
|
|
9817
|
-
//
|
|
9818
|
-
|
|
9819
|
-
/**
|
|
9820
|
-
* On changes method
|
|
9821
|
-
* @param {Object} changes
|
|
9822
|
-
*/
|
|
9823
|
-
function onChanges(changes) {
|
|
9824
|
-
if (lodash.has(changes, 'panelState')) {
|
|
9825
|
-
ctrl.isToastPanelShown = !lodash.isNil(changes.panelState.currentValue);
|
|
9826
|
-
$element.find('.panel-status-icon').removeClass(lodash.get(statusIcons, changes.panelState.previousValue)).addClass(lodash.get(statusIcons, changes.panelState.currentValue));
|
|
9827
|
-
$element.find('.toast-status-panel').removeClass(changes.panelState.previousValue).addClass(changes.panelState.currentValue);
|
|
9828
|
-
$element.find('.panel-status').removeClass(changes.panelState.previousValue).addClass(changes.panelState.currentValue);
|
|
9829
|
-
}
|
|
9830
|
-
}
|
|
9831
|
-
|
|
9832
|
-
//
|
|
9833
|
-
// Public methods
|
|
9834
|
-
//
|
|
9835
|
-
|
|
9836
|
-
/**
|
|
9837
|
-
* Shows/hides toast panel
|
|
9838
|
-
*/
|
|
9839
|
-
function closeToastPanel() {
|
|
9840
|
-
ctrl.isToastPanelShown = false;
|
|
9841
|
-
ctrl.panelState = null;
|
|
9842
|
-
|
|
9843
|
-
if (lodash.isFunction(ctrl.onClose)) {
|
|
9844
|
-
ctrl.onClose();
|
|
9845
|
-
}
|
|
9846
|
-
|
|
9847
|
-
$timeout(function () {
|
|
9848
|
-
$rootScope.$broadcast('igzWatchWindowResize::resize');
|
|
9849
|
-
});
|
|
9850
|
-
}
|
|
9851
|
-
|
|
9852
|
-
/**
|
|
9853
|
-
* Gets current state
|
|
9854
|
-
* @returns {?string} (e.g. "in-progress", "succeeded", "failed")
|
|
9855
|
-
*/
|
|
9856
|
-
function getState() {
|
|
9857
|
-
return ctrl.panelState;
|
|
9858
|
-
}
|
|
9859
|
-
|
|
9860
|
-
/**
|
|
9861
|
-
* Gets status message of given state
|
|
9862
|
-
* @param {string} state (e.g. "in-progress", "succeeded", "failed")
|
|
9863
|
-
* @returns {string}
|
|
9864
|
-
*/
|
|
9865
|
-
function getStateMessage(state) {
|
|
9866
|
-
return lodash.get(ctrl, ['panelMessages', state]);
|
|
9867
|
-
}
|
|
9868
|
-
}
|
|
9869
|
-
})();
|
|
9870
|
-
'use strict';
|
|
9871
|
-
|
|
9872
9872
|
(function () {
|
|
9873
9873
|
'use strict';
|
|
9874
9874
|
|
|
@@ -10713,6 +10713,165 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
10713
10713
|
})();
|
|
10714
10714
|
'use strict';
|
|
10715
10715
|
|
|
10716
|
+
(function () {
|
|
10717
|
+
'use strict';
|
|
10718
|
+
|
|
10719
|
+
NclVersionConfigurationBasicSettingsController.$inject = ['$rootScope', '$timeout', '$i18next', 'i18next', 'lodash', 'ConfigService', 'DialogsService', 'FunctionsService', 'ValidationService'];
|
|
10720
|
+
angular.module('iguazio.dashboard-controls').component('nclVersionConfigurationBasicSettings', {
|
|
10721
|
+
bindings: {
|
|
10722
|
+
version: '<',
|
|
10723
|
+
onChangeCallback: '<',
|
|
10724
|
+
isFunctionDeploying: '&'
|
|
10725
|
+
},
|
|
10726
|
+
templateUrl: 'nuclio/functions/version/version-configuration/tabs/version-configuration-basic-settings/version-configuration-basic-settings.tpl.html',
|
|
10727
|
+
controller: NclVersionConfigurationBasicSettingsController
|
|
10728
|
+
});
|
|
10729
|
+
|
|
10730
|
+
function NclVersionConfigurationBasicSettingsController($rootScope, $timeout, $i18next, i18next, lodash, ConfigService, DialogsService, FunctionsService, ValidationService) {
|
|
10731
|
+
var ctrl = this;
|
|
10732
|
+
var lng = i18next.language;
|
|
10733
|
+
|
|
10734
|
+
ctrl.enableFunction = false;
|
|
10735
|
+
ctrl.enableTimeout = false;
|
|
10736
|
+
ctrl.timeout = {
|
|
10737
|
+
min: 0,
|
|
10738
|
+
sec: 0
|
|
10739
|
+
};
|
|
10740
|
+
ctrl.logLevelValues = [{
|
|
10741
|
+
id: 'error',
|
|
10742
|
+
name: $i18next.t('common:ERROR', { lng: lng })
|
|
10743
|
+
}, {
|
|
10744
|
+
id: 'warn',
|
|
10745
|
+
name: $i18next.t('common:WARNING', { lng: lng })
|
|
10746
|
+
}, {
|
|
10747
|
+
id: 'info',
|
|
10748
|
+
name: $i18next.t('common:INFO', { lng: lng })
|
|
10749
|
+
}, {
|
|
10750
|
+
id: 'debug',
|
|
10751
|
+
name: $i18next.t('common:DEBUG', { lng: lng })
|
|
10752
|
+
}];
|
|
10753
|
+
|
|
10754
|
+
ctrl.$onInit = onInit;
|
|
10755
|
+
ctrl.$onChanges = onChanges;
|
|
10756
|
+
|
|
10757
|
+
ctrl.isDemoMode = ConfigService.isDemoMode;
|
|
10758
|
+
ctrl.lodash = lodash;
|
|
10759
|
+
ctrl.validationRules = {
|
|
10760
|
+
integer: ValidationService.getValidationRules('integer')
|
|
10761
|
+
};
|
|
10762
|
+
|
|
10763
|
+
ctrl.inputValueCallback = inputValueCallback;
|
|
10764
|
+
ctrl.setPriority = setPriority;
|
|
10765
|
+
ctrl.updateEnableStatus = updateEnableStatus;
|
|
10766
|
+
|
|
10767
|
+
//
|
|
10768
|
+
// Hook methods
|
|
10769
|
+
//
|
|
10770
|
+
|
|
10771
|
+
/**
|
|
10772
|
+
* Initialization method
|
|
10773
|
+
*/
|
|
10774
|
+
function onInit() {
|
|
10775
|
+
ctrl.platformIsKube = FunctionsService.isKubePlatform();
|
|
10776
|
+
}
|
|
10777
|
+
|
|
10778
|
+
/**
|
|
10779
|
+
* On changes hook method.
|
|
10780
|
+
* @param {Object} changes
|
|
10781
|
+
*/
|
|
10782
|
+
function onChanges(changes) {
|
|
10783
|
+
if (angular.isDefined(changes.version)) {
|
|
10784
|
+
if (ctrl.isDemoMode()) {
|
|
10785
|
+
var timeoutSeconds = lodash.get(ctrl.version, 'spec.timeoutSeconds');
|
|
10786
|
+
|
|
10787
|
+
if (lodash.isNumber(timeoutSeconds)) {
|
|
10788
|
+
ctrl.timeout.min = Math.floor(timeoutSeconds / 60);
|
|
10789
|
+
ctrl.timeout.sec = Math.floor(timeoutSeconds % 60);
|
|
10790
|
+
}
|
|
10791
|
+
}
|
|
10792
|
+
|
|
10793
|
+
lodash.defaultsDeep(ctrl.version, {
|
|
10794
|
+
spec: {
|
|
10795
|
+
loggerSinks: [{ level: 'debug' }]
|
|
10796
|
+
}
|
|
10797
|
+
});
|
|
10798
|
+
|
|
10799
|
+
ctrl.enableFunction = !lodash.get(ctrl.version, 'spec.disable', false);
|
|
10800
|
+
|
|
10801
|
+
$timeout(function () {
|
|
10802
|
+
if (ctrl.basicSettingsForm.$invalid) {
|
|
10803
|
+
ctrl.basicSettingsForm.$setSubmitted();
|
|
10804
|
+
}
|
|
10805
|
+
});
|
|
10806
|
+
}
|
|
10807
|
+
}
|
|
10808
|
+
|
|
10809
|
+
//
|
|
10810
|
+
// Public methods
|
|
10811
|
+
//
|
|
10812
|
+
|
|
10813
|
+
/**
|
|
10814
|
+
* Update data callback
|
|
10815
|
+
* @param {string} newData
|
|
10816
|
+
* @param {string} field
|
|
10817
|
+
*/
|
|
10818
|
+
function inputValueCallback(newData, field) {
|
|
10819
|
+
lodash.set(ctrl, field, lodash.includes(field, 'timeout') ? Number(newData) : newData);
|
|
10820
|
+
|
|
10821
|
+
if (lodash.includes(field, 'timeout')) {
|
|
10822
|
+
lodash.set(ctrl.version, 'spec.timeoutSeconds', ctrl.timeout.min * 60 + ctrl.timeout.sec);
|
|
10823
|
+
} else if (lodash.startsWith(field, 'spec.securityContext.') && newData === '') {
|
|
10824
|
+
lodash.unset(ctrl.version, field);
|
|
10825
|
+
} else {
|
|
10826
|
+
lodash.set(ctrl.version, field, newData);
|
|
10827
|
+
}
|
|
10828
|
+
|
|
10829
|
+
ctrl.basicSettingsForm.$setSubmitted();
|
|
10830
|
+
ctrl.onChangeCallback();
|
|
10831
|
+
|
|
10832
|
+
$timeout(function () {
|
|
10833
|
+
$rootScope.$broadcast('change-state-deploy-button', {
|
|
10834
|
+
component: 'settings',
|
|
10835
|
+
isDisabled: !ctrl.basicSettingsForm.$valid
|
|
10836
|
+
});
|
|
10837
|
+
});
|
|
10838
|
+
}
|
|
10839
|
+
|
|
10840
|
+
/**
|
|
10841
|
+
* Sets logger level
|
|
10842
|
+
* @param {Object} item
|
|
10843
|
+
*/
|
|
10844
|
+
function setPriority(item) {
|
|
10845
|
+
lodash.set(ctrl.version, 'spec.loggerSinks[0].level', item.id);
|
|
10846
|
+
|
|
10847
|
+
ctrl.onChangeCallback();
|
|
10848
|
+
}
|
|
10849
|
+
|
|
10850
|
+
/**
|
|
10851
|
+
* Switches enable/disable function status
|
|
10852
|
+
*/
|
|
10853
|
+
function updateEnableStatus() {
|
|
10854
|
+
var apiGateways = lodash.get(ctrl.version, 'status.apiGateways', []);
|
|
10855
|
+
var originallyDisabled = lodash.get(ctrl.version, 'ui.deployedVersion.spec.disable', false);
|
|
10856
|
+
|
|
10857
|
+
if (!lodash.isEmpty(apiGateways) && !ctrl.enableFunction && !originallyDisabled) {
|
|
10858
|
+
DialogsService.alert($i18next.t('functions:ERROR_MSG.DISABLE_API_GW_FUNCTION', {
|
|
10859
|
+
lng: lng,
|
|
10860
|
+
apiGatewayName: apiGateways[0]
|
|
10861
|
+
}));
|
|
10862
|
+
|
|
10863
|
+
// return checkbox to enabled state
|
|
10864
|
+
ctrl.enableFunction = true;
|
|
10865
|
+
} else {
|
|
10866
|
+
lodash.set(ctrl.version, 'spec.disable', !ctrl.enableFunction);
|
|
10867
|
+
|
|
10868
|
+
ctrl.onChangeCallback();
|
|
10869
|
+
}
|
|
10870
|
+
}
|
|
10871
|
+
}
|
|
10872
|
+
})();
|
|
10873
|
+
'use strict';
|
|
10874
|
+
|
|
10716
10875
|
(function () {
|
|
10717
10876
|
'use strict';
|
|
10718
10877
|
|
|
@@ -10905,165 +11064,6 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
10905
11064
|
})();
|
|
10906
11065
|
'use strict';
|
|
10907
11066
|
|
|
10908
|
-
(function () {
|
|
10909
|
-
'use strict';
|
|
10910
|
-
|
|
10911
|
-
NclVersionConfigurationBasicSettingsController.$inject = ['$rootScope', '$timeout', '$i18next', 'i18next', 'lodash', 'ConfigService', 'DialogsService', 'FunctionsService', 'ValidationService'];
|
|
10912
|
-
angular.module('iguazio.dashboard-controls').component('nclVersionConfigurationBasicSettings', {
|
|
10913
|
-
bindings: {
|
|
10914
|
-
version: '<',
|
|
10915
|
-
onChangeCallback: '<',
|
|
10916
|
-
isFunctionDeploying: '&'
|
|
10917
|
-
},
|
|
10918
|
-
templateUrl: 'nuclio/functions/version/version-configuration/tabs/version-configuration-basic-settings/version-configuration-basic-settings.tpl.html',
|
|
10919
|
-
controller: NclVersionConfigurationBasicSettingsController
|
|
10920
|
-
});
|
|
10921
|
-
|
|
10922
|
-
function NclVersionConfigurationBasicSettingsController($rootScope, $timeout, $i18next, i18next, lodash, ConfigService, DialogsService, FunctionsService, ValidationService) {
|
|
10923
|
-
var ctrl = this;
|
|
10924
|
-
var lng = i18next.language;
|
|
10925
|
-
|
|
10926
|
-
ctrl.enableFunction = false;
|
|
10927
|
-
ctrl.enableTimeout = false;
|
|
10928
|
-
ctrl.timeout = {
|
|
10929
|
-
min: 0,
|
|
10930
|
-
sec: 0
|
|
10931
|
-
};
|
|
10932
|
-
ctrl.logLevelValues = [{
|
|
10933
|
-
id: 'error',
|
|
10934
|
-
name: $i18next.t('common:ERROR', { lng: lng })
|
|
10935
|
-
}, {
|
|
10936
|
-
id: 'warn',
|
|
10937
|
-
name: $i18next.t('common:WARNING', { lng: lng })
|
|
10938
|
-
}, {
|
|
10939
|
-
id: 'info',
|
|
10940
|
-
name: $i18next.t('common:INFO', { lng: lng })
|
|
10941
|
-
}, {
|
|
10942
|
-
id: 'debug',
|
|
10943
|
-
name: $i18next.t('common:DEBUG', { lng: lng })
|
|
10944
|
-
}];
|
|
10945
|
-
|
|
10946
|
-
ctrl.$onInit = onInit;
|
|
10947
|
-
ctrl.$onChanges = onChanges;
|
|
10948
|
-
|
|
10949
|
-
ctrl.isDemoMode = ConfigService.isDemoMode;
|
|
10950
|
-
ctrl.lodash = lodash;
|
|
10951
|
-
ctrl.validationRules = {
|
|
10952
|
-
integer: ValidationService.getValidationRules('integer')
|
|
10953
|
-
};
|
|
10954
|
-
|
|
10955
|
-
ctrl.inputValueCallback = inputValueCallback;
|
|
10956
|
-
ctrl.setPriority = setPriority;
|
|
10957
|
-
ctrl.updateEnableStatus = updateEnableStatus;
|
|
10958
|
-
|
|
10959
|
-
//
|
|
10960
|
-
// Hook methods
|
|
10961
|
-
//
|
|
10962
|
-
|
|
10963
|
-
/**
|
|
10964
|
-
* Initialization method
|
|
10965
|
-
*/
|
|
10966
|
-
function onInit() {
|
|
10967
|
-
ctrl.platformIsKube = FunctionsService.isKubePlatform();
|
|
10968
|
-
}
|
|
10969
|
-
|
|
10970
|
-
/**
|
|
10971
|
-
* On changes hook method.
|
|
10972
|
-
* @param {Object} changes
|
|
10973
|
-
*/
|
|
10974
|
-
function onChanges(changes) {
|
|
10975
|
-
if (angular.isDefined(changes.version)) {
|
|
10976
|
-
if (ctrl.isDemoMode()) {
|
|
10977
|
-
var timeoutSeconds = lodash.get(ctrl.version, 'spec.timeoutSeconds');
|
|
10978
|
-
|
|
10979
|
-
if (lodash.isNumber(timeoutSeconds)) {
|
|
10980
|
-
ctrl.timeout.min = Math.floor(timeoutSeconds / 60);
|
|
10981
|
-
ctrl.timeout.sec = Math.floor(timeoutSeconds % 60);
|
|
10982
|
-
}
|
|
10983
|
-
}
|
|
10984
|
-
|
|
10985
|
-
lodash.defaultsDeep(ctrl.version, {
|
|
10986
|
-
spec: {
|
|
10987
|
-
loggerSinks: [{ level: 'debug' }]
|
|
10988
|
-
}
|
|
10989
|
-
});
|
|
10990
|
-
|
|
10991
|
-
ctrl.enableFunction = !lodash.get(ctrl.version, 'spec.disable', false);
|
|
10992
|
-
|
|
10993
|
-
$timeout(function () {
|
|
10994
|
-
if (ctrl.basicSettingsForm.$invalid) {
|
|
10995
|
-
ctrl.basicSettingsForm.$setSubmitted();
|
|
10996
|
-
}
|
|
10997
|
-
});
|
|
10998
|
-
}
|
|
10999
|
-
}
|
|
11000
|
-
|
|
11001
|
-
//
|
|
11002
|
-
// Public methods
|
|
11003
|
-
//
|
|
11004
|
-
|
|
11005
|
-
/**
|
|
11006
|
-
* Update data callback
|
|
11007
|
-
* @param {string} newData
|
|
11008
|
-
* @param {string} field
|
|
11009
|
-
*/
|
|
11010
|
-
function inputValueCallback(newData, field) {
|
|
11011
|
-
lodash.set(ctrl, field, lodash.includes(field, 'timeout') ? Number(newData) : newData);
|
|
11012
|
-
|
|
11013
|
-
if (lodash.includes(field, 'timeout')) {
|
|
11014
|
-
lodash.set(ctrl.version, 'spec.timeoutSeconds', ctrl.timeout.min * 60 + ctrl.timeout.sec);
|
|
11015
|
-
} else if (lodash.startsWith(field, 'spec.securityContext.') && newData === '') {
|
|
11016
|
-
lodash.unset(ctrl.version, field);
|
|
11017
|
-
} else {
|
|
11018
|
-
lodash.set(ctrl.version, field, newData);
|
|
11019
|
-
}
|
|
11020
|
-
|
|
11021
|
-
ctrl.basicSettingsForm.$setSubmitted();
|
|
11022
|
-
ctrl.onChangeCallback();
|
|
11023
|
-
|
|
11024
|
-
$timeout(function () {
|
|
11025
|
-
$rootScope.$broadcast('change-state-deploy-button', {
|
|
11026
|
-
component: 'settings',
|
|
11027
|
-
isDisabled: !ctrl.basicSettingsForm.$valid
|
|
11028
|
-
});
|
|
11029
|
-
});
|
|
11030
|
-
}
|
|
11031
|
-
|
|
11032
|
-
/**
|
|
11033
|
-
* Sets logger level
|
|
11034
|
-
* @param {Object} item
|
|
11035
|
-
*/
|
|
11036
|
-
function setPriority(item) {
|
|
11037
|
-
lodash.set(ctrl.version, 'spec.loggerSinks[0].level', item.id);
|
|
11038
|
-
|
|
11039
|
-
ctrl.onChangeCallback();
|
|
11040
|
-
}
|
|
11041
|
-
|
|
11042
|
-
/**
|
|
11043
|
-
* Switches enable/disable function status
|
|
11044
|
-
*/
|
|
11045
|
-
function updateEnableStatus() {
|
|
11046
|
-
var apiGateways = lodash.get(ctrl.version, 'status.apiGateways', []);
|
|
11047
|
-
var originallyDisabled = lodash.get(ctrl.version, 'ui.deployedVersion.spec.disable', false);
|
|
11048
|
-
|
|
11049
|
-
if (!lodash.isEmpty(apiGateways) && !ctrl.enableFunction && !originallyDisabled) {
|
|
11050
|
-
DialogsService.alert($i18next.t('functions:ERROR_MSG.DISABLE_API_GW_FUNCTION', {
|
|
11051
|
-
lng: lng,
|
|
11052
|
-
apiGatewayName: apiGateways[0]
|
|
11053
|
-
}));
|
|
11054
|
-
|
|
11055
|
-
// return checkbox to enabled state
|
|
11056
|
-
ctrl.enableFunction = true;
|
|
11057
|
-
} else {
|
|
11058
|
-
lodash.set(ctrl.version, 'spec.disable', !ctrl.enableFunction);
|
|
11059
|
-
|
|
11060
|
-
ctrl.onChangeCallback();
|
|
11061
|
-
}
|
|
11062
|
-
}
|
|
11063
|
-
}
|
|
11064
|
-
})();
|
|
11065
|
-
'use strict';
|
|
11066
|
-
|
|
11067
11067
|
(function () {
|
|
11068
11068
|
'use strict';
|
|
11069
11069
|
|
|
@@ -16575,14 +16575,55 @@ angular.module('angular-i18next', []).provider('i18next', [function () {
|
|
|
16575
16575
|
(function () {
|
|
16576
16576
|
'use strict';
|
|
16577
16577
|
|
|
16578
|
-
|
|
16579
|
-
|
|
16580
|
-
|
|
16581
|
-
|
|
16578
|
+
DeployDeletedFunctionDialogController.$inject = ['$state', '$rootScope', 'EventHelperService'];
|
|
16579
|
+
angular.module('iguazio.dashboard-controls').component('nclDeployDeletedFunctionDialog', {
|
|
16580
|
+
bindings: {
|
|
16581
|
+
closeDialog: '&',
|
|
16582
|
+
deploy: '&',
|
|
16583
|
+
version: '<'
|
|
16584
|
+
},
|
|
16585
|
+
templateUrl: 'nuclio/functions/deploy-deleted-function-dialog/deploy-deleted-function-dialog.tpl.html',
|
|
16586
|
+
controller: DeployDeletedFunctionDialogController
|
|
16582
16587
|
});
|
|
16583
16588
|
|
|
16584
|
-
function
|
|
16589
|
+
function DeployDeletedFunctionDialogController($state, $rootScope, EventHelperService) {
|
|
16585
16590
|
var ctrl = this;
|
|
16591
|
+
|
|
16592
|
+
ctrl.deployFunction = deployFunction;
|
|
16593
|
+
ctrl.goToFunctions = goToFunctions;
|
|
16594
|
+
ctrl.onClose = onClose;
|
|
16595
|
+
|
|
16596
|
+
//
|
|
16597
|
+
// Public methods
|
|
16598
|
+
//
|
|
16599
|
+
|
|
16600
|
+
/**
|
|
16601
|
+
* Closes dialog
|
|
16602
|
+
* @param {Event} [event]
|
|
16603
|
+
*/
|
|
16604
|
+
function onClose(event) {
|
|
16605
|
+
if (angular.isUndefined(event) || event.keyCode === EventHelperService.ENTER) {
|
|
16606
|
+
ctrl.closeDialog();
|
|
16607
|
+
}
|
|
16608
|
+
}
|
|
16609
|
+
|
|
16610
|
+
/**
|
|
16611
|
+
* Redirect to functions panel
|
|
16612
|
+
*/
|
|
16613
|
+
function goToFunctions() {
|
|
16614
|
+
$state.go('app.project.functions');
|
|
16615
|
+
|
|
16616
|
+
ctrl.closeDialog();
|
|
16617
|
+
}
|
|
16618
|
+
|
|
16619
|
+
/**
|
|
16620
|
+
* Deploy function
|
|
16621
|
+
* @param {Event} [event]
|
|
16622
|
+
*/
|
|
16623
|
+
function deployFunction(event) {
|
|
16624
|
+
ctrl.deploy(event, ctrl.version);
|
|
16625
|
+
ctrl.closeDialog();
|
|
16626
|
+
}
|
|
16586
16627
|
}
|
|
16587
16628
|
})();
|
|
16588
16629
|
'use strict';
|
|
@@ -16822,69 +16863,28 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
16822
16863
|
_iterator.return();
|
|
16823
16864
|
}
|
|
16824
16865
|
} finally {
|
|
16825
|
-
if (_didIteratorError) {
|
|
16826
|
-
throw _iteratorError;
|
|
16827
|
-
}
|
|
16828
|
-
}
|
|
16829
|
-
}
|
|
16830
|
-
}
|
|
16831
|
-
}
|
|
16832
|
-
}
|
|
16833
|
-
})();
|
|
16834
|
-
'use strict';
|
|
16835
|
-
|
|
16836
|
-
(function () {
|
|
16837
|
-
'use strict';
|
|
16838
|
-
|
|
16839
|
-
DeployDeletedFunctionDialogController.$inject = ['$state', '$rootScope', 'EventHelperService'];
|
|
16840
|
-
angular.module('iguazio.dashboard-controls').component('nclDeployDeletedFunctionDialog', {
|
|
16841
|
-
bindings: {
|
|
16842
|
-
closeDialog: '&',
|
|
16843
|
-
deploy: '&',
|
|
16844
|
-
version: '<'
|
|
16845
|
-
},
|
|
16846
|
-
templateUrl: 'nuclio/functions/deploy-deleted-function-dialog/deploy-deleted-function-dialog.tpl.html',
|
|
16847
|
-
controller: DeployDeletedFunctionDialogController
|
|
16848
|
-
});
|
|
16849
|
-
|
|
16850
|
-
function DeployDeletedFunctionDialogController($state, $rootScope, EventHelperService) {
|
|
16851
|
-
var ctrl = this;
|
|
16852
|
-
|
|
16853
|
-
ctrl.deployFunction = deployFunction;
|
|
16854
|
-
ctrl.goToFunctions = goToFunctions;
|
|
16855
|
-
ctrl.onClose = onClose;
|
|
16856
|
-
|
|
16857
|
-
//
|
|
16858
|
-
// Public methods
|
|
16859
|
-
//
|
|
16860
|
-
|
|
16861
|
-
/**
|
|
16862
|
-
* Closes dialog
|
|
16863
|
-
* @param {Event} [event]
|
|
16864
|
-
*/
|
|
16865
|
-
function onClose(event) {
|
|
16866
|
-
if (angular.isUndefined(event) || event.keyCode === EventHelperService.ENTER) {
|
|
16867
|
-
ctrl.closeDialog();
|
|
16866
|
+
if (_didIteratorError) {
|
|
16867
|
+
throw _iteratorError;
|
|
16868
|
+
}
|
|
16869
|
+
}
|
|
16870
|
+
}
|
|
16868
16871
|
}
|
|
16869
16872
|
}
|
|
16873
|
+
}
|
|
16874
|
+
})();
|
|
16875
|
+
'use strict';
|
|
16870
16876
|
|
|
16871
|
-
|
|
16872
|
-
|
|
16873
|
-
*/
|
|
16874
|
-
function goToFunctions() {
|
|
16875
|
-
$state.go('app.project.functions');
|
|
16877
|
+
(function () {
|
|
16878
|
+
'use strict';
|
|
16876
16879
|
|
|
16877
|
-
|
|
16878
|
-
}
|
|
16880
|
+
angular.module('iguazio.dashboard-controls').component('nclFunction', {
|
|
16881
|
+
bindings: {},
|
|
16882
|
+
templateUrl: 'nuclio/functions/function/ncl-function.tpl.html',
|
|
16883
|
+
controller: NclFunctionController
|
|
16884
|
+
});
|
|
16879
16885
|
|
|
16880
|
-
|
|
16881
|
-
|
|
16882
|
-
* @param {Event} [event]
|
|
16883
|
-
*/
|
|
16884
|
-
function deployFunction(event) {
|
|
16885
|
-
ctrl.deploy(event, ctrl.version);
|
|
16886
|
-
ctrl.closeDialog();
|
|
16887
|
-
}
|
|
16886
|
+
function NclFunctionController() {
|
|
16887
|
+
var ctrl = this;
|
|
16888
16888
|
}
|
|
16889
16889
|
})();
|
|
16890
16890
|
'use strict';
|
|
@@ -17367,6 +17367,86 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
17367
17367
|
})();
|
|
17368
17368
|
'use strict';
|
|
17369
17369
|
|
|
17370
|
+
(function () {
|
|
17371
|
+
'use strict';
|
|
17372
|
+
|
|
17373
|
+
OverrideFunctionDialogController.$inject = ['$state', 'lodash', 'EventHelperService'];
|
|
17374
|
+
angular.module('iguazio.dashboard-controls').component('nclOverrideFunctionDialog', {
|
|
17375
|
+
bindings: {
|
|
17376
|
+
closeDialog: '&',
|
|
17377
|
+
existingFunction: '<',
|
|
17378
|
+
newFunction: '<',
|
|
17379
|
+
project: '<'
|
|
17380
|
+
},
|
|
17381
|
+
templateUrl: 'nuclio/functions/override-function-dialog/override-function-dialog.tpl.html',
|
|
17382
|
+
controller: OverrideFunctionDialogController
|
|
17383
|
+
});
|
|
17384
|
+
|
|
17385
|
+
function OverrideFunctionDialogController($state, lodash, EventHelperService) {
|
|
17386
|
+
var ctrl = this;
|
|
17387
|
+
|
|
17388
|
+
ctrl.onClose = onClose;
|
|
17389
|
+
ctrl.openExistingFunction = openExistingFunction;
|
|
17390
|
+
ctrl.overrideFunction = overrideFunction;
|
|
17391
|
+
|
|
17392
|
+
//
|
|
17393
|
+
// Public methods
|
|
17394
|
+
//
|
|
17395
|
+
|
|
17396
|
+
/**
|
|
17397
|
+
* Closes dialog
|
|
17398
|
+
* @param {Event} [event]
|
|
17399
|
+
*/
|
|
17400
|
+
function onClose(event) {
|
|
17401
|
+
if (angular.isUndefined(event) || event.keyCode === EventHelperService.ENTER) {
|
|
17402
|
+
ctrl.closeDialog();
|
|
17403
|
+
}
|
|
17404
|
+
}
|
|
17405
|
+
|
|
17406
|
+
/**
|
|
17407
|
+
* Opens the existing function
|
|
17408
|
+
*/
|
|
17409
|
+
function openExistingFunction() {
|
|
17410
|
+
var projectName = lodash.get(ctrl.existingFunction, ['metadata', 'labels', 'nuclio.io/project-name']);
|
|
17411
|
+
|
|
17412
|
+
$state.go('app.project.function.edit.code', {
|
|
17413
|
+
id: projectName,
|
|
17414
|
+
projectId: projectName,
|
|
17415
|
+
projectNamespace: ctrl.project.metadata.namespace,
|
|
17416
|
+
functionId: ctrl.existingFunction.metadata.name
|
|
17417
|
+
});
|
|
17418
|
+
|
|
17419
|
+
ctrl.closeDialog();
|
|
17420
|
+
}
|
|
17421
|
+
|
|
17422
|
+
/**
|
|
17423
|
+
* Overrides the existing function
|
|
17424
|
+
*/
|
|
17425
|
+
function overrideFunction() {
|
|
17426
|
+
lodash.merge(ctrl.newFunction, {
|
|
17427
|
+
status: {
|
|
17428
|
+
state: ''
|
|
17429
|
+
},
|
|
17430
|
+
ui: {
|
|
17431
|
+
overwrite: true
|
|
17432
|
+
}
|
|
17433
|
+
});
|
|
17434
|
+
|
|
17435
|
+
$state.go('app.project.function.edit.code', {
|
|
17436
|
+
isNewFunction: true,
|
|
17437
|
+
id: ctrl.project.metadata.name,
|
|
17438
|
+
projectId: ctrl.project.metadata.name,
|
|
17439
|
+
projectNamespace: ctrl.project.metadata.namespace,
|
|
17440
|
+
functionId: ctrl.newFunction.metadata.name,
|
|
17441
|
+
functionData: ctrl.newFunction
|
|
17442
|
+
});
|
|
17443
|
+
|
|
17444
|
+
ctrl.closeDialog();
|
|
17445
|
+
}
|
|
17446
|
+
}
|
|
17447
|
+
})();
|
|
17448
|
+
'use strict';
|
|
17449
|
+
|
|
17370
17450
|
/*eslint complexity: ["error", 15]*/
|
|
17371
17451
|
(function () {
|
|
17372
17452
|
'use strict';
|
|
@@ -17927,208 +18007,72 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
17927
18007
|
'{{ .ResourceName }}': lodash.get(ctrl.version, 'metadata.name'),
|
|
17928
18008
|
'{{ .ProjectName }}': lodash.get(ctrl.project, 'metadata.name'),
|
|
17929
18009
|
'{{ .Namespace }}': lodash.get(ctrl.project, 'metadata.namespace')
|
|
17930
|
-
};
|
|
17931
|
-
|
|
17932
|
-
ctrl.version.ui.ingressHost = fillTemplate(ingressHostTemplate, parameters);
|
|
17933
|
-
}
|
|
17934
|
-
|
|
17935
|
-
/**
|
|
17936
|
-
* Sets the function version to a new value.
|
|
17937
|
-
* @param {Object} version - The new value.
|
|
17938
|
-
*/
|
|
17939
|
-
function setVersion(version) {
|
|
17940
|
-
var versionUi = ctrl.version.ui;
|
|
17941
|
-
ctrl.version = version;
|
|
17942
|
-
ctrl.version.ui = versionUi;
|
|
17943
|
-
}
|
|
17944
|
-
|
|
17945
|
-
/**
|
|
17946
|
-
* Prevents change state if there are unsaved data
|
|
17947
|
-
* @param {Event} transition
|
|
17948
|
-
*/
|
|
17949
|
-
function stateChangeStart(transition) {
|
|
17950
|
-
var toState = transition.$to();
|
|
17951
|
-
if (lodash.get($state, 'params.functionId') !== transition.params('to').functionId && !VersionHelperService.isVersionDeployed(ctrl.version)) {
|
|
17952
|
-
transition.abort();
|
|
17953
|
-
|
|
17954
|
-
DialogsService.confirm($i18next.t('common:LEAVE_PAGE_CONFIRM', { lng: lng }), $i18next.t('common:LEAVE', { lng: lng }), $i18next.t('common:DONT_LEAVE', { lng: lng })).then(function () {
|
|
17955
|
-
|
|
17956
|
-
// unsubscribe from broadcast event
|
|
17957
|
-
deregisterFunction();
|
|
17958
|
-
$state.go(toState.name, transition.params('to'));
|
|
17959
|
-
});
|
|
17960
|
-
}
|
|
17961
|
-
}
|
|
17962
|
-
|
|
17963
|
-
/**
|
|
17964
|
-
* Terminates the interval of function state polling.
|
|
17965
|
-
*/
|
|
17966
|
-
function terminateInterval() {
|
|
17967
|
-
if (!lodash.isNil(interval)) {
|
|
17968
|
-
$interval.cancel(interval);
|
|
17969
|
-
interval = null;
|
|
17970
|
-
}
|
|
17971
|
-
}
|
|
17972
|
-
|
|
17973
|
-
/**
|
|
17974
|
-
* Updates the status tab header's indicator color and tooltip text and color to reflect the function's state.
|
|
17975
|
-
*/
|
|
17976
|
-
function updateStatusTabIndicator() {
|
|
17977
|
-
var state = lodash.get(ctrl.version, 'status.state');
|
|
17978
|
-
var disabled = lodash.get(ctrl.version, 'spec.disable');
|
|
17979
|
-
|
|
17980
|
-
var deployedStateToKind = {
|
|
17981
|
-
ready: disabled ? '' : 'ready',
|
|
17982
|
-
error: 'error',
|
|
17983
|
-
unhealthy: 'error',
|
|
17984
|
-
imported: '',
|
|
17985
|
-
scaledToZero: ''
|
|
17986
|
-
};
|
|
17987
|
-
var kind = VersionHelperService.isVersionDeployed(ctrl.version) ? lodash.defaultTo(deployedStateToKind[state], 'building') : '';
|
|
17988
|
-
|
|
17989
|
-
var statusTab = lodash.find(ctrl.navigationTabsConfig, { id: 'status' });
|
|
17990
|
-
statusTab.indicator = {
|
|
17991
|
-
lightClass: kind === '' ? '' : 'ncl-status-' + kind,
|
|
17992
|
-
tooltipClass: kind === '' ? '' : 'ncl-status-tooltip-' + kind,
|
|
17993
|
-
tooltipIconClass: kind === '' ? '' : 'ncl-icon-' + kind,
|
|
17994
|
-
tooltipText: FunctionsService.getDisplayStatus(ctrl.version)
|
|
17995
|
-
};
|
|
17996
|
-
}
|
|
17997
|
-
}
|
|
17998
|
-
})();
|
|
17999
|
-
'use strict';
|
|
18000
|
-
|
|
18001
|
-
(function () {
|
|
18002
|
-
'use strict';
|
|
18003
|
-
|
|
18004
|
-
OverrideFunctionDialogController.$inject = ['$state', 'lodash', 'EventHelperService'];
|
|
18005
|
-
angular.module('iguazio.dashboard-controls').component('nclOverrideFunctionDialog', {
|
|
18006
|
-
bindings: {
|
|
18007
|
-
closeDialog: '&',
|
|
18008
|
-
existingFunction: '<',
|
|
18009
|
-
newFunction: '<',
|
|
18010
|
-
project: '<'
|
|
18011
|
-
},
|
|
18012
|
-
templateUrl: 'nuclio/functions/override-function-dialog/override-function-dialog.tpl.html',
|
|
18013
|
-
controller: OverrideFunctionDialogController
|
|
18014
|
-
});
|
|
18015
|
-
|
|
18016
|
-
function OverrideFunctionDialogController($state, lodash, EventHelperService) {
|
|
18017
|
-
var ctrl = this;
|
|
18018
|
-
|
|
18019
|
-
ctrl.onClose = onClose;
|
|
18020
|
-
ctrl.openExistingFunction = openExistingFunction;
|
|
18021
|
-
ctrl.overrideFunction = overrideFunction;
|
|
18022
|
-
|
|
18023
|
-
//
|
|
18024
|
-
// Public methods
|
|
18025
|
-
//
|
|
18026
|
-
|
|
18027
|
-
/**
|
|
18028
|
-
* Closes dialog
|
|
18029
|
-
* @param {Event} [event]
|
|
18030
|
-
*/
|
|
18031
|
-
function onClose(event) {
|
|
18032
|
-
if (angular.isUndefined(event) || event.keyCode === EventHelperService.ENTER) {
|
|
18033
|
-
ctrl.closeDialog();
|
|
18034
|
-
}
|
|
18035
|
-
}
|
|
18036
|
-
|
|
18037
|
-
/**
|
|
18038
|
-
* Opens the existing function
|
|
18039
|
-
*/
|
|
18040
|
-
function openExistingFunction() {
|
|
18041
|
-
var projectName = lodash.get(ctrl.existingFunction, ['metadata', 'labels', 'nuclio.io/project-name']);
|
|
18042
|
-
|
|
18043
|
-
$state.go('app.project.function.edit.code', {
|
|
18044
|
-
id: projectName,
|
|
18045
|
-
projectId: projectName,
|
|
18046
|
-
projectNamespace: ctrl.project.metadata.namespace,
|
|
18047
|
-
functionId: ctrl.existingFunction.metadata.name
|
|
18048
|
-
});
|
|
18049
|
-
|
|
18050
|
-
ctrl.closeDialog();
|
|
18051
|
-
}
|
|
18052
|
-
|
|
18053
|
-
/**
|
|
18054
|
-
* Overrides the existing function
|
|
18055
|
-
*/
|
|
18056
|
-
function overrideFunction() {
|
|
18057
|
-
lodash.merge(ctrl.newFunction, {
|
|
18058
|
-
status: {
|
|
18059
|
-
state: ''
|
|
18060
|
-
},
|
|
18061
|
-
ui: {
|
|
18062
|
-
overwrite: true
|
|
18063
|
-
}
|
|
18064
|
-
});
|
|
18065
|
-
|
|
18066
|
-
$state.go('app.project.function.edit.code', {
|
|
18067
|
-
isNewFunction: true,
|
|
18068
|
-
id: ctrl.project.metadata.name,
|
|
18069
|
-
projectId: ctrl.project.metadata.name,
|
|
18070
|
-
projectNamespace: ctrl.project.metadata.namespace,
|
|
18071
|
-
functionId: ctrl.newFunction.metadata.name,
|
|
18072
|
-
functionData: ctrl.newFunction
|
|
18073
|
-
});
|
|
18010
|
+
};
|
|
18074
18011
|
|
|
18075
|
-
ctrl.
|
|
18012
|
+
ctrl.version.ui.ingressHost = fillTemplate(ingressHostTemplate, parameters);
|
|
18076
18013
|
}
|
|
18077
|
-
}
|
|
18078
|
-
})();
|
|
18079
|
-
'use strict';
|
|
18080
|
-
|
|
18081
|
-
(function () {
|
|
18082
|
-
'use strict';
|
|
18083
|
-
|
|
18084
|
-
NclDeployLogController.$inject = ['lodash'];
|
|
18085
|
-
angular.module('iguazio.dashboard-controls').component('nclDeployLog', {
|
|
18086
|
-
bindings: {
|
|
18087
|
-
logEntries: '<'
|
|
18088
|
-
},
|
|
18089
|
-
templateUrl: 'nuclio/common/components/deploy-log/deploy-log.tpl.html',
|
|
18090
|
-
controller: NclDeployLogController
|
|
18091
|
-
});
|
|
18092
|
-
|
|
18093
|
-
function NclDeployLogController(lodash) {
|
|
18094
|
-
var ctrl = this;
|
|
18095
18014
|
|
|
18096
|
-
|
|
18097
|
-
|
|
18098
|
-
|
|
18099
|
-
|
|
18100
|
-
|
|
18101
|
-
|
|
18015
|
+
/**
|
|
18016
|
+
* Sets the function version to a new value.
|
|
18017
|
+
* @param {Object} version - The new value.
|
|
18018
|
+
*/
|
|
18019
|
+
function setVersion(version) {
|
|
18020
|
+
var versionUi = ctrl.version.ui;
|
|
18021
|
+
ctrl.version = version;
|
|
18022
|
+
ctrl.version.ui = versionUi;
|
|
18023
|
+
}
|
|
18102
18024
|
|
|
18103
|
-
|
|
18025
|
+
/**
|
|
18026
|
+
* Prevents change state if there are unsaved data
|
|
18027
|
+
* @param {Event} transition
|
|
18028
|
+
*/
|
|
18029
|
+
function stateChangeStart(transition) {
|
|
18030
|
+
var toState = transition.$to();
|
|
18031
|
+
if (lodash.get($state, 'params.functionId') !== transition.params('to').functionId && !VersionHelperService.isVersionDeployed(ctrl.version)) {
|
|
18032
|
+
transition.abort();
|
|
18104
18033
|
|
|
18105
|
-
|
|
18106
|
-
ctrl.getLogParams = getLogParams;
|
|
18034
|
+
DialogsService.confirm($i18next.t('common:LEAVE_PAGE_CONFIRM', { lng: lng }), $i18next.t('common:LEAVE', { lng: lng }), $i18next.t('common:DONT_LEAVE', { lng: lng })).then(function () {
|
|
18107
18035
|
|
|
18108
|
-
|
|
18109
|
-
|
|
18110
|
-
|
|
18036
|
+
// unsubscribe from broadcast event
|
|
18037
|
+
deregisterFunction();
|
|
18038
|
+
$state.go(toState.name, transition.params('to'));
|
|
18039
|
+
});
|
|
18040
|
+
}
|
|
18041
|
+
}
|
|
18111
18042
|
|
|
18112
18043
|
/**
|
|
18113
|
-
*
|
|
18114
|
-
* @param {string} level - the level model value (one of: 'debug', 'info', 'warn', 'error')
|
|
18115
|
-
* @returns {string} the log level display value
|
|
18044
|
+
* Terminates the interval of function state polling.
|
|
18116
18045
|
*/
|
|
18117
|
-
function
|
|
18118
|
-
|
|
18046
|
+
function terminateInterval() {
|
|
18047
|
+
if (!lodash.isNil(interval)) {
|
|
18048
|
+
$interval.cancel(interval);
|
|
18049
|
+
interval = null;
|
|
18050
|
+
}
|
|
18119
18051
|
}
|
|
18120
18052
|
|
|
18121
18053
|
/**
|
|
18122
|
-
*
|
|
18123
|
-
* @param {string} logEntry - the log entry that includes the parameters
|
|
18124
|
-
* @returns {string} the log level display value
|
|
18054
|
+
* Updates the status tab header's indicator color and tooltip text and color to reflect the function's state.
|
|
18125
18055
|
*/
|
|
18126
|
-
function
|
|
18127
|
-
var
|
|
18056
|
+
function updateStatusTabIndicator() {
|
|
18057
|
+
var state = lodash.get(ctrl.version, 'status.state');
|
|
18058
|
+
var disabled = lodash.get(ctrl.version, 'spec.disable');
|
|
18128
18059
|
|
|
18129
|
-
|
|
18130
|
-
|
|
18131
|
-
|
|
18060
|
+
var deployedStateToKind = {
|
|
18061
|
+
ready: disabled ? '' : 'ready',
|
|
18062
|
+
error: 'error',
|
|
18063
|
+
unhealthy: 'error',
|
|
18064
|
+
imported: '',
|
|
18065
|
+
scaledToZero: ''
|
|
18066
|
+
};
|
|
18067
|
+
var kind = VersionHelperService.isVersionDeployed(ctrl.version) ? lodash.defaultTo(deployedStateToKind[state], 'building') : '';
|
|
18068
|
+
|
|
18069
|
+
var statusTab = lodash.find(ctrl.navigationTabsConfig, { id: 'status' });
|
|
18070
|
+
statusTab.indicator = {
|
|
18071
|
+
lightClass: kind === '' ? '' : 'ncl-status-' + kind,
|
|
18072
|
+
tooltipClass: kind === '' ? '' : 'ncl-status-tooltip-' + kind,
|
|
18073
|
+
tooltipIconClass: kind === '' ? '' : 'ncl-icon-' + kind,
|
|
18074
|
+
tooltipText: FunctionsService.getDisplayStatus(ctrl.version)
|
|
18075
|
+
};
|
|
18132
18076
|
}
|
|
18133
18077
|
}
|
|
18134
18078
|
})();
|
|
@@ -18137,71 +18081,40 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18137
18081
|
(function () {
|
|
18138
18082
|
'use strict';
|
|
18139
18083
|
|
|
18140
|
-
|
|
18141
|
-
angular.module('iguazio.dashboard-controls').component('
|
|
18084
|
+
NclBreadcrumbsController.$inject = ['$scope', '$state', '$stateParams', '$transitions', 'lodash'];
|
|
18085
|
+
angular.module('iguazio.dashboard-controls').component('nclBreadcrumbs', {
|
|
18142
18086
|
bindings: {
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
item: '<',
|
|
18146
|
-
itemIndex: '<?',
|
|
18147
|
-
type: '@',
|
|
18148
|
-
deleteTestId: '@?'
|
|
18087
|
+
getProjects: '&',
|
|
18088
|
+
getFunctions: '&'
|
|
18149
18089
|
},
|
|
18150
|
-
templateUrl: 'nuclio/common/components/
|
|
18151
|
-
controller:
|
|
18152
|
-
transclude: true
|
|
18090
|
+
templateUrl: 'nuclio/common/components/breadcrumbs/breadcrumbs.tpl.html',
|
|
18091
|
+
controller: NclBreadcrumbsController
|
|
18153
18092
|
});
|
|
18154
18093
|
|
|
18155
|
-
function
|
|
18094
|
+
function NclBreadcrumbsController($scope, $state, $stateParams, $transitions, lodash) {
|
|
18156
18095
|
var ctrl = this;
|
|
18157
|
-
var lng = i18next.language;
|
|
18158
18096
|
|
|
18159
|
-
ctrl.
|
|
18097
|
+
ctrl.mainHeaderTitle = {};
|
|
18160
18098
|
|
|
18161
18099
|
ctrl.$onInit = onInit;
|
|
18162
18100
|
|
|
18163
|
-
ctrl.
|
|
18164
|
-
ctrl.
|
|
18165
|
-
ctrl.
|
|
18166
|
-
|
|
18167
|
-
ctrl.getAttributeValue = getAttributeValue;
|
|
18168
|
-
ctrl.isVolumeType = isVolumeType;
|
|
18169
|
-
ctrl.onCollapse = onCollapse;
|
|
18170
|
-
ctrl.onClickAction = onClickAction;
|
|
18171
|
-
ctrl.onFireAction = onFireAction;
|
|
18172
|
-
ctrl.showDotMenu = showDotMenu;
|
|
18173
|
-
ctrl.toggleItem = toggleItem;
|
|
18101
|
+
ctrl.goToProjectsList = goToProjectsList;
|
|
18102
|
+
ctrl.goToProjectScreen = goToProjectScreen;
|
|
18103
|
+
ctrl.goToFunctionScreen = goToFunctionScreen;
|
|
18174
18104
|
|
|
18175
18105
|
//
|
|
18176
18106
|
// Hook methods
|
|
18177
18107
|
//
|
|
18178
18108
|
|
|
18179
18109
|
/**
|
|
18180
|
-
* Initialization
|
|
18110
|
+
* Initialization function
|
|
18181
18111
|
*/
|
|
18182
18112
|
function onInit() {
|
|
18183
|
-
|
|
18184
|
-
ui: {
|
|
18185
|
-
editModeActive: false,
|
|
18186
|
-
expandable: true
|
|
18187
|
-
}
|
|
18188
|
-
});
|
|
18189
|
-
|
|
18190
|
-
ctrl.classList = FunctionsService.getClassesList(ctrl.type);
|
|
18191
|
-
ctrl.displayedAttributesFields = lodash.chain(ctrl.classList).find(function (aClass) {
|
|
18192
|
-
return aClass.id === ctrl.item.kind;
|
|
18193
|
-
}).get('fields', []).filter(function (field) {
|
|
18194
|
-
return lodash.get(field, 'path', '').startsWith('attributes');
|
|
18195
|
-
}).map(function (field) {
|
|
18196
|
-
return field.name;
|
|
18197
|
-
}).value();
|
|
18113
|
+
setMainHeaderTitle();
|
|
18198
18114
|
|
|
18199
|
-
|
|
18200
|
-
ctrl.selectedClass = lodash.find(ctrl.classList, ['id', ctrl.item.kind]);
|
|
18201
|
-
ctrl.item.ui.selectedClass = ctrl.selectedClass;
|
|
18202
|
-
}
|
|
18115
|
+
$scope.$on('update-main-header-title', setMainHeaderTitle);
|
|
18203
18116
|
|
|
18204
|
-
|
|
18117
|
+
$transitions.onSuccess({}, onStateChangeSuccess);
|
|
18205
18118
|
}
|
|
18206
18119
|
|
|
18207
18120
|
//
|
|
@@ -18209,87 +18122,26 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18209
18122
|
//
|
|
18210
18123
|
|
|
18211
18124
|
/**
|
|
18212
|
-
*
|
|
18213
|
-
* @param {string} key - attribute key
|
|
18214
|
-
* @param {string|Object} value - attribute value
|
|
18215
|
-
* @returns {string|Object}
|
|
18216
|
-
*/
|
|
18217
|
-
function getAttributeValue(key, value) {
|
|
18218
|
-
var attrValue = value;
|
|
18219
|
-
|
|
18220
|
-
if (key === 'schedule') {
|
|
18221
|
-
attrValue = '0 ' + value;
|
|
18222
|
-
} else if (MaskService.commonSensitiveFields.includes(key) || key === 'sasl') {
|
|
18223
|
-
attrValue = typeof value === 'string' ? MaskService.getMask(value) : MaskService.getObjectWithMask(value);
|
|
18224
|
-
}
|
|
18225
|
-
|
|
18226
|
-
return attrValue;
|
|
18227
|
-
}
|
|
18228
|
-
|
|
18229
|
-
/**
|
|
18230
|
-
* Checks if input have to be visible for specific item type
|
|
18231
|
-
* @returns {boolean}
|
|
18232
|
-
*/
|
|
18233
|
-
function isVolumeType() {
|
|
18234
|
-
return ctrl.type === 'volume';
|
|
18235
|
-
}
|
|
18236
|
-
|
|
18237
|
-
/**
|
|
18238
|
-
* Changes item's expanded state
|
|
18239
|
-
*/
|
|
18240
|
-
function onCollapse(event) {
|
|
18241
|
-
if (!ctrl.item.ui.editModeActive) {
|
|
18242
|
-
ctrl.actionHandlerCallback({
|
|
18243
|
-
actionType: 'edit',
|
|
18244
|
-
selectedItem: ctrl.item,
|
|
18245
|
-
index: ctrl.itemIndex
|
|
18246
|
-
});
|
|
18247
|
-
event.stopPropagation();
|
|
18248
|
-
} else {
|
|
18249
|
-
$timeout(function () {
|
|
18250
|
-
if (ctrl.item.ui.expandable) {
|
|
18251
|
-
ctrl.item.ui.editModeActive = false;
|
|
18252
|
-
}
|
|
18253
|
-
});
|
|
18254
|
-
}
|
|
18255
|
-
}
|
|
18256
|
-
|
|
18257
|
-
/**
|
|
18258
|
-
* Handler on action click
|
|
18259
|
-
* @param {Object} action - action that was clicked (e.g. `delete`)
|
|
18125
|
+
* Redirects to the projects screen
|
|
18260
18126
|
*/
|
|
18261
|
-
function
|
|
18262
|
-
|
|
18263
|
-
showConfirmDialog(action);
|
|
18264
|
-
} else {
|
|
18265
|
-
onFireAction(action.id);
|
|
18266
|
-
}
|
|
18127
|
+
function goToProjectsList() {
|
|
18128
|
+
$state.go('app.projects');
|
|
18267
18129
|
}
|
|
18268
18130
|
|
|
18269
18131
|
/**
|
|
18270
|
-
*
|
|
18271
|
-
* @param {string} actionType - a type of action
|
|
18132
|
+
* Redirects to the project screen
|
|
18272
18133
|
*/
|
|
18273
|
-
function
|
|
18274
|
-
|
|
18275
|
-
|
|
18276
|
-
selectedItem: ctrl.item,
|
|
18277
|
-
index: ctrl.itemIndex
|
|
18134
|
+
function goToProjectScreen() {
|
|
18135
|
+
$state.go('app.project', {
|
|
18136
|
+
projectId: $stateParams.projectId
|
|
18278
18137
|
});
|
|
18279
18138
|
}
|
|
18280
18139
|
|
|
18281
18140
|
/**
|
|
18282
|
-
*
|
|
18283
|
-
*/
|
|
18284
|
-
function showDotMenu() {
|
|
18285
|
-
return ctrl.actions.length > 1;
|
|
18286
|
-
}
|
|
18287
|
-
|
|
18288
|
-
/**
|
|
18289
|
-
* Enables/disables item
|
|
18141
|
+
* Redirects to the function screen
|
|
18290
18142
|
*/
|
|
18291
|
-
function
|
|
18292
|
-
|
|
18143
|
+
function goToFunctionScreen() {
|
|
18144
|
+
$state.go('app.project.function.edit.code');
|
|
18293
18145
|
}
|
|
18294
18146
|
|
|
18295
18147
|
//
|
|
@@ -18297,38 +18149,35 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18297
18149
|
//
|
|
18298
18150
|
|
|
18299
18151
|
/**
|
|
18300
|
-
*
|
|
18301
|
-
* @param {Object}
|
|
18152
|
+
* Dynamically set Main Header Title on broadcast and on initial page load
|
|
18153
|
+
* @param {Object} [event]
|
|
18154
|
+
* @param {Object} [data]
|
|
18302
18155
|
*/
|
|
18303
|
-
function
|
|
18304
|
-
|
|
18305
|
-
|
|
18306
|
-
|
|
18307
|
-
|
|
18308
|
-
|
|
18309
|
-
DialogsService.confirm(message, action.confirm.yesLabel, action.confirm.noLabel, action.confirm.type).then(function () {
|
|
18310
|
-
onFireAction(action.id);
|
|
18311
|
-
});
|
|
18156
|
+
function setMainHeaderTitle(event, data) {
|
|
18157
|
+
if (!lodash.isNil(data)) {
|
|
18158
|
+
lodash.assign(ctrl.mainHeaderTitle, data);
|
|
18159
|
+
} else {
|
|
18160
|
+
ctrl.mainHeaderTitle = { title: $state.current.data.mainHeaderTitle };
|
|
18161
|
+
}
|
|
18312
18162
|
}
|
|
18313
18163
|
|
|
18314
18164
|
/**
|
|
18315
|
-
*
|
|
18316
|
-
*
|
|
18165
|
+
* Dynamically pre-set Main Header Title on UI router state change, sets position of main wrapper and navigation
|
|
18166
|
+
* tabs config
|
|
18167
|
+
* Needed for better UX - header title changes correctly even before controller data resolved and broadcast
|
|
18168
|
+
* have been sent
|
|
18169
|
+
* @param {Object} transition
|
|
18317
18170
|
*/
|
|
18318
|
-
function
|
|
18319
|
-
|
|
18320
|
-
|
|
18321
|
-
|
|
18322
|
-
|
|
18323
|
-
|
|
18324
|
-
|
|
18325
|
-
|
|
18326
|
-
|
|
18327
|
-
|
|
18328
|
-
noLabel: $i18next.t('common:CANCEL', { lng: lng }),
|
|
18329
|
-
type: 'nuclio_alert'
|
|
18330
|
-
}
|
|
18331
|
-
}];
|
|
18171
|
+
function onStateChangeSuccess(transition) {
|
|
18172
|
+
var toState = transition.$to();
|
|
18173
|
+
|
|
18174
|
+
// Check to exclude prototypical inheritance of the `mainHeaderTitle` property from parent router state
|
|
18175
|
+
if (lodash.has(toState.data, 'mainHeaderTitle')) {
|
|
18176
|
+
|
|
18177
|
+
ctrl.mainHeaderTitle = {
|
|
18178
|
+
title: toState.data.mainHeaderTitle
|
|
18179
|
+
};
|
|
18180
|
+
}
|
|
18332
18181
|
}
|
|
18333
18182
|
}
|
|
18334
18183
|
})();
|
|
@@ -18514,40 +18363,71 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18514
18363
|
(function () {
|
|
18515
18364
|
'use strict';
|
|
18516
18365
|
|
|
18517
|
-
|
|
18518
|
-
angular.module('iguazio.dashboard-controls').component('
|
|
18366
|
+
NclCollapsingRowController.$inject = ['$i18next', '$timeout', 'i18next', 'lodash', 'DialogsService', 'FunctionsService', 'MaskService'];
|
|
18367
|
+
angular.module('iguazio.dashboard-controls').component('nclCollapsingRow', {
|
|
18519
18368
|
bindings: {
|
|
18520
|
-
|
|
18521
|
-
|
|
18369
|
+
actionHandlerCallback: '&',
|
|
18370
|
+
readOnly: '<?',
|
|
18371
|
+
item: '<',
|
|
18372
|
+
itemIndex: '<?',
|
|
18373
|
+
type: '@',
|
|
18374
|
+
deleteTestId: '@?'
|
|
18522
18375
|
},
|
|
18523
|
-
templateUrl: 'nuclio/common/components/
|
|
18524
|
-
controller:
|
|
18376
|
+
templateUrl: 'nuclio/common/components/collapsing-row/collapsing-row.tpl.html',
|
|
18377
|
+
controller: NclCollapsingRowController,
|
|
18378
|
+
transclude: true
|
|
18525
18379
|
});
|
|
18526
18380
|
|
|
18527
|
-
function
|
|
18381
|
+
function NclCollapsingRowController($i18next, $timeout, i18next, lodash, DialogsService, FunctionsService, MaskService) {
|
|
18528
18382
|
var ctrl = this;
|
|
18383
|
+
var lng = i18next.language;
|
|
18529
18384
|
|
|
18530
|
-
ctrl.
|
|
18385
|
+
ctrl.actions = [];
|
|
18531
18386
|
|
|
18532
18387
|
ctrl.$onInit = onInit;
|
|
18533
18388
|
|
|
18534
|
-
ctrl.
|
|
18535
|
-
ctrl.
|
|
18536
|
-
ctrl.
|
|
18389
|
+
ctrl.isNil = lodash.isNil;
|
|
18390
|
+
ctrl.isNumber = lodash.isNumber;
|
|
18391
|
+
ctrl.getMask = MaskService.getMask;
|
|
18392
|
+
|
|
18393
|
+
ctrl.getAttributeValue = getAttributeValue;
|
|
18394
|
+
ctrl.isVolumeType = isVolumeType;
|
|
18395
|
+
ctrl.onCollapse = onCollapse;
|
|
18396
|
+
ctrl.onClickAction = onClickAction;
|
|
18397
|
+
ctrl.onFireAction = onFireAction;
|
|
18398
|
+
ctrl.showDotMenu = showDotMenu;
|
|
18399
|
+
ctrl.toggleItem = toggleItem;
|
|
18537
18400
|
|
|
18538
18401
|
//
|
|
18539
18402
|
// Hook methods
|
|
18540
18403
|
//
|
|
18541
18404
|
|
|
18542
18405
|
/**
|
|
18543
|
-
* Initialization
|
|
18406
|
+
* Initialization method
|
|
18544
18407
|
*/
|
|
18545
18408
|
function onInit() {
|
|
18546
|
-
|
|
18409
|
+
lodash.defaultsDeep(ctrl.item, {
|
|
18410
|
+
ui: {
|
|
18411
|
+
editModeActive: false,
|
|
18412
|
+
expandable: true
|
|
18413
|
+
}
|
|
18414
|
+
});
|
|
18547
18415
|
|
|
18548
|
-
|
|
18416
|
+
ctrl.classList = FunctionsService.getClassesList(ctrl.type);
|
|
18417
|
+
ctrl.displayedAttributesFields = lodash.chain(ctrl.classList).find(function (aClass) {
|
|
18418
|
+
return aClass.id === ctrl.item.kind;
|
|
18419
|
+
}).get('fields', []).filter(function (field) {
|
|
18420
|
+
return lodash.get(field, 'path', '').startsWith('attributes');
|
|
18421
|
+
}).map(function (field) {
|
|
18422
|
+
return field.name;
|
|
18423
|
+
}).value();
|
|
18549
18424
|
|
|
18550
|
-
|
|
18425
|
+
if (!lodash.isEmpty(ctrl.item.kind)) {
|
|
18426
|
+
ctrl.selectedClass = lodash.find(ctrl.classList, ['id', ctrl.item.kind]);
|
|
18427
|
+
ctrl.item.ui.selectedClass = ctrl.selectedClass;
|
|
18428
|
+
}
|
|
18429
|
+
|
|
18430
|
+
ctrl.actions = initActions();
|
|
18551
18431
|
}
|
|
18552
18432
|
|
|
18553
18433
|
//
|
|
@@ -18555,26 +18435,87 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18555
18435
|
//
|
|
18556
18436
|
|
|
18557
18437
|
/**
|
|
18558
|
-
*
|
|
18438
|
+
* Returns attribute value
|
|
18439
|
+
* @param {string} key - attribute key
|
|
18440
|
+
* @param {string|Object} value - attribute value
|
|
18441
|
+
* @returns {string|Object}
|
|
18559
18442
|
*/
|
|
18560
|
-
function
|
|
18561
|
-
|
|
18443
|
+
function getAttributeValue(key, value) {
|
|
18444
|
+
var attrValue = value;
|
|
18445
|
+
|
|
18446
|
+
if (key === 'schedule') {
|
|
18447
|
+
attrValue = '0 ' + value;
|
|
18448
|
+
} else if (MaskService.commonSensitiveFields.includes(key) || key === 'sasl') {
|
|
18449
|
+
attrValue = typeof value === 'string' ? MaskService.getMask(value) : MaskService.getObjectWithMask(value);
|
|
18450
|
+
}
|
|
18451
|
+
|
|
18452
|
+
return attrValue;
|
|
18562
18453
|
}
|
|
18563
18454
|
|
|
18564
18455
|
/**
|
|
18565
|
-
*
|
|
18456
|
+
* Checks if input have to be visible for specific item type
|
|
18457
|
+
* @returns {boolean}
|
|
18566
18458
|
*/
|
|
18567
|
-
function
|
|
18568
|
-
|
|
18569
|
-
|
|
18459
|
+
function isVolumeType() {
|
|
18460
|
+
return ctrl.type === 'volume';
|
|
18461
|
+
}
|
|
18462
|
+
|
|
18463
|
+
/**
|
|
18464
|
+
* Changes item's expanded state
|
|
18465
|
+
*/
|
|
18466
|
+
function onCollapse(event) {
|
|
18467
|
+
if (!ctrl.item.ui.editModeActive) {
|
|
18468
|
+
ctrl.actionHandlerCallback({
|
|
18469
|
+
actionType: 'edit',
|
|
18470
|
+
selectedItem: ctrl.item,
|
|
18471
|
+
index: ctrl.itemIndex
|
|
18472
|
+
});
|
|
18473
|
+
event.stopPropagation();
|
|
18474
|
+
} else {
|
|
18475
|
+
$timeout(function () {
|
|
18476
|
+
if (ctrl.item.ui.expandable) {
|
|
18477
|
+
ctrl.item.ui.editModeActive = false;
|
|
18478
|
+
}
|
|
18479
|
+
});
|
|
18480
|
+
}
|
|
18481
|
+
}
|
|
18482
|
+
|
|
18483
|
+
/**
|
|
18484
|
+
* Handler on action click
|
|
18485
|
+
* @param {Object} action - action that was clicked (e.g. `delete`)
|
|
18486
|
+
*/
|
|
18487
|
+
function onClickAction(action) {
|
|
18488
|
+
if (lodash.isNonEmpty(action.confirm)) {
|
|
18489
|
+
showConfirmDialog(action);
|
|
18490
|
+
} else {
|
|
18491
|
+
onFireAction(action.id);
|
|
18492
|
+
}
|
|
18493
|
+
}
|
|
18494
|
+
|
|
18495
|
+
/**
|
|
18496
|
+
* According to given action name calls proper action handler
|
|
18497
|
+
* @param {string} actionType - a type of action
|
|
18498
|
+
*/
|
|
18499
|
+
function onFireAction(actionType) {
|
|
18500
|
+
ctrl.actionHandlerCallback({
|
|
18501
|
+
actionType: actionType,
|
|
18502
|
+
selectedItem: ctrl.item,
|
|
18503
|
+
index: ctrl.itemIndex
|
|
18570
18504
|
});
|
|
18571
18505
|
}
|
|
18572
18506
|
|
|
18573
18507
|
/**
|
|
18574
|
-
*
|
|
18508
|
+
* Checks if show dot menu
|
|
18575
18509
|
*/
|
|
18576
|
-
function
|
|
18577
|
-
|
|
18510
|
+
function showDotMenu() {
|
|
18511
|
+
return ctrl.actions.length > 1;
|
|
18512
|
+
}
|
|
18513
|
+
|
|
18514
|
+
/**
|
|
18515
|
+
* Enables/disables item
|
|
18516
|
+
*/
|
|
18517
|
+
function toggleItem() {
|
|
18518
|
+
ctrl.item.enable = !ctrl.item.enable;
|
|
18578
18519
|
}
|
|
18579
18520
|
|
|
18580
18521
|
//
|
|
@@ -18582,35 +18523,94 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
18582
18523
|
//
|
|
18583
18524
|
|
|
18584
18525
|
/**
|
|
18585
|
-
*
|
|
18586
|
-
* @param {Object}
|
|
18587
|
-
* @param {Object} [data]
|
|
18526
|
+
* Shows confirm dialog
|
|
18527
|
+
* @param {Object} action - e.g. `delete`
|
|
18588
18528
|
*/
|
|
18589
|
-
function
|
|
18590
|
-
|
|
18591
|
-
|
|
18592
|
-
|
|
18593
|
-
|
|
18594
|
-
|
|
18529
|
+
function showConfirmDialog(action) {
|
|
18530
|
+
var message = lodash.isNil(action.confirm.description) ? action.confirm.message : {
|
|
18531
|
+
message: action.confirm.message,
|
|
18532
|
+
description: action.confirm.description
|
|
18533
|
+
};
|
|
18534
|
+
|
|
18535
|
+
DialogsService.confirm(message, action.confirm.yesLabel, action.confirm.noLabel, action.confirm.type).then(function () {
|
|
18536
|
+
onFireAction(action.id);
|
|
18537
|
+
});
|
|
18538
|
+
}
|
|
18539
|
+
|
|
18540
|
+
/**
|
|
18541
|
+
* Initializes actions
|
|
18542
|
+
* @returns {Object[]} - list of actions
|
|
18543
|
+
*/
|
|
18544
|
+
function initActions() {
|
|
18545
|
+
return [{
|
|
18546
|
+
label: $i18next.t('common:DELETE', { lng: lng }),
|
|
18547
|
+
id: 'delete',
|
|
18548
|
+
icon: 'igz-icon-trash',
|
|
18549
|
+
active: true,
|
|
18550
|
+
confirm: {
|
|
18551
|
+
message: $i18next.t('functions:DELETE_ITEM', { lng: lng }),
|
|
18552
|
+
description: $i18next.t('functions:DELETE_DESCRIPTION', { lng: lng }),
|
|
18553
|
+
yesLabel: $i18next.t('common:YES_DELETE', { lng: lng }),
|
|
18554
|
+
noLabel: $i18next.t('common:CANCEL', { lng: lng }),
|
|
18555
|
+
type: 'nuclio_alert'
|
|
18556
|
+
}
|
|
18557
|
+
}];
|
|
18558
|
+
}
|
|
18559
|
+
}
|
|
18560
|
+
})();
|
|
18561
|
+
'use strict';
|
|
18562
|
+
|
|
18563
|
+
(function () {
|
|
18564
|
+
'use strict';
|
|
18565
|
+
|
|
18566
|
+
NclDeployLogController.$inject = ['lodash'];
|
|
18567
|
+
angular.module('iguazio.dashboard-controls').component('nclDeployLog', {
|
|
18568
|
+
bindings: {
|
|
18569
|
+
logEntries: '<'
|
|
18570
|
+
},
|
|
18571
|
+
templateUrl: 'nuclio/common/components/deploy-log/deploy-log.tpl.html',
|
|
18572
|
+
controller: NclDeployLogController
|
|
18573
|
+
});
|
|
18574
|
+
|
|
18575
|
+
function NclDeployLogController(lodash) {
|
|
18576
|
+
var ctrl = this;
|
|
18577
|
+
|
|
18578
|
+
ctrl.scrollCofig = {
|
|
18579
|
+
advanced: {
|
|
18580
|
+
updateOnContentResize: true
|
|
18581
|
+
},
|
|
18582
|
+
theme: 'light-thin'
|
|
18583
|
+
};
|
|
18584
|
+
|
|
18585
|
+
ctrl.lodash = lodash;
|
|
18586
|
+
|
|
18587
|
+
ctrl.getLogLevel = getLogLevel;
|
|
18588
|
+
ctrl.getLogParams = getLogParams;
|
|
18589
|
+
|
|
18590
|
+
//
|
|
18591
|
+
// Public methods
|
|
18592
|
+
//
|
|
18593
|
+
|
|
18594
|
+
/**
|
|
18595
|
+
* Get log level display value
|
|
18596
|
+
* @param {string} level - the level model value (one of: 'debug', 'info', 'warn', 'error')
|
|
18597
|
+
* @returns {string} the log level display value
|
|
18598
|
+
*/
|
|
18599
|
+
function getLogLevel(level) {
|
|
18600
|
+
return lodash.first(level).toUpperCase();
|
|
18595
18601
|
}
|
|
18596
18602
|
|
|
18597
18603
|
/**
|
|
18598
|
-
*
|
|
18599
|
-
*
|
|
18600
|
-
*
|
|
18601
|
-
* have been sent
|
|
18602
|
-
* @param {Object} transition
|
|
18604
|
+
* Get log parameters display value
|
|
18605
|
+
* @param {string} logEntry - the log entry that includes the parameters
|
|
18606
|
+
* @returns {string} the log level display value
|
|
18603
18607
|
*/
|
|
18604
|
-
function
|
|
18605
|
-
var
|
|
18606
|
-
|
|
18607
|
-
// Check to exclude prototypical inheritance of the `mainHeaderTitle` property from parent router state
|
|
18608
|
-
if (lodash.has(toState.data, 'mainHeaderTitle')) {
|
|
18608
|
+
function getLogParams(logEntry) {
|
|
18609
|
+
var params = lodash.omit(logEntry, ['name', 'time', 'level', 'message', 'err']);
|
|
18609
18610
|
|
|
18610
|
-
|
|
18611
|
-
|
|
18612
|
-
|
|
18613
|
-
}
|
|
18611
|
+
return lodash.isEmpty(params) ? '' : '[' + lodash.map(params, function (value, key) {
|
|
18612
|
+
return key + ': ' + angular.toJson(value);
|
|
18613
|
+
}).join(', ').replace(/\\n/g, '\n').replace(/\\"/g, '"') + ']';
|
|
18614
18614
|
}
|
|
18615
18615
|
}
|
|
18616
18616
|
})();
|
|
@@ -21855,6 +21855,57 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
21855
21855
|
})();
|
|
21856
21856
|
'use strict';
|
|
21857
21857
|
|
|
21858
|
+
(function () {
|
|
21859
|
+
'use strict';
|
|
21860
|
+
|
|
21861
|
+
NclVersionConfigurationController.$inject = ['lodash', 'ConfigService', 'VersionHelperService'];
|
|
21862
|
+
angular.module('iguazio.dashboard-controls').component('nclVersionConfiguration', {
|
|
21863
|
+
bindings: {
|
|
21864
|
+
version: '<',
|
|
21865
|
+
isFunctionDeploying: '&'
|
|
21866
|
+
},
|
|
21867
|
+
templateUrl: 'nuclio/functions/version/version-configuration/version-configuration.tpl.html',
|
|
21868
|
+
controller: NclVersionConfigurationController
|
|
21869
|
+
});
|
|
21870
|
+
|
|
21871
|
+
function NclVersionConfigurationController(lodash, ConfigService, VersionHelperService) {
|
|
21872
|
+
var ctrl = this;
|
|
21873
|
+
|
|
21874
|
+
ctrl.scrollConfig = {
|
|
21875
|
+
axis: 'y',
|
|
21876
|
+
advanced: {
|
|
21877
|
+
autoScrollOnFocus: false,
|
|
21878
|
+
updateOnContentResize: true
|
|
21879
|
+
}
|
|
21880
|
+
};
|
|
21881
|
+
|
|
21882
|
+
ctrl.isDemoMode = ConfigService.isDemoMode;
|
|
21883
|
+
|
|
21884
|
+
ctrl.isRuntimeBlockVisible = isRuntimeBlockVisible;
|
|
21885
|
+
ctrl.onConfigurationChangeCallback = onConfigurationChangeCallback;
|
|
21886
|
+
|
|
21887
|
+
//
|
|
21888
|
+
// Public methods
|
|
21889
|
+
//
|
|
21890
|
+
|
|
21891
|
+
/**
|
|
21892
|
+
* Checks if `Runtime Attributes` block is visible
|
|
21893
|
+
* @returns {boolean}
|
|
21894
|
+
*/
|
|
21895
|
+
function isRuntimeBlockVisible() {
|
|
21896
|
+
return lodash.includes(['shell', 'java'], lodash.get(ctrl.version, 'spec.runtime'));
|
|
21897
|
+
}
|
|
21898
|
+
|
|
21899
|
+
/**
|
|
21900
|
+
* Checks if version's configuration was changed
|
|
21901
|
+
*/
|
|
21902
|
+
function onConfigurationChangeCallback() {
|
|
21903
|
+
VersionHelperService.updateIsVersionChanged(ctrl.version);
|
|
21904
|
+
}
|
|
21905
|
+
}
|
|
21906
|
+
})();
|
|
21907
|
+
'use strict';
|
|
21908
|
+
|
|
21858
21909
|
(function () {
|
|
21859
21910
|
'use strict';
|
|
21860
21911
|
|
|
@@ -21929,57 +21980,6 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
21929
21980
|
})();
|
|
21930
21981
|
'use strict';
|
|
21931
21982
|
|
|
21932
|
-
(function () {
|
|
21933
|
-
'use strict';
|
|
21934
|
-
|
|
21935
|
-
NclVersionConfigurationController.$inject = ['lodash', 'ConfigService', 'VersionHelperService'];
|
|
21936
|
-
angular.module('iguazio.dashboard-controls').component('nclVersionConfiguration', {
|
|
21937
|
-
bindings: {
|
|
21938
|
-
version: '<',
|
|
21939
|
-
isFunctionDeploying: '&'
|
|
21940
|
-
},
|
|
21941
|
-
templateUrl: 'nuclio/functions/version/version-configuration/version-configuration.tpl.html',
|
|
21942
|
-
controller: NclVersionConfigurationController
|
|
21943
|
-
});
|
|
21944
|
-
|
|
21945
|
-
function NclVersionConfigurationController(lodash, ConfigService, VersionHelperService) {
|
|
21946
|
-
var ctrl = this;
|
|
21947
|
-
|
|
21948
|
-
ctrl.scrollConfig = {
|
|
21949
|
-
axis: 'y',
|
|
21950
|
-
advanced: {
|
|
21951
|
-
autoScrollOnFocus: false,
|
|
21952
|
-
updateOnContentResize: true
|
|
21953
|
-
}
|
|
21954
|
-
};
|
|
21955
|
-
|
|
21956
|
-
ctrl.isDemoMode = ConfigService.isDemoMode;
|
|
21957
|
-
|
|
21958
|
-
ctrl.isRuntimeBlockVisible = isRuntimeBlockVisible;
|
|
21959
|
-
ctrl.onConfigurationChangeCallback = onConfigurationChangeCallback;
|
|
21960
|
-
|
|
21961
|
-
//
|
|
21962
|
-
// Public methods
|
|
21963
|
-
//
|
|
21964
|
-
|
|
21965
|
-
/**
|
|
21966
|
-
* Checks if `Runtime Attributes` block is visible
|
|
21967
|
-
* @returns {boolean}
|
|
21968
|
-
*/
|
|
21969
|
-
function isRuntimeBlockVisible() {
|
|
21970
|
-
return lodash.includes(['shell', 'java'], lodash.get(ctrl.version, 'spec.runtime'));
|
|
21971
|
-
}
|
|
21972
|
-
|
|
21973
|
-
/**
|
|
21974
|
-
* Checks if version's configuration was changed
|
|
21975
|
-
*/
|
|
21976
|
-
function onConfigurationChangeCallback() {
|
|
21977
|
-
VersionHelperService.updateIsVersionChanged(ctrl.version);
|
|
21978
|
-
}
|
|
21979
|
-
}
|
|
21980
|
-
})();
|
|
21981
|
-
'use strict';
|
|
21982
|
-
|
|
21983
21983
|
(function () {
|
|
21984
21984
|
'use strict';
|
|
21985
21985
|
|
|
@@ -24571,10 +24571,8 @@ try {
|
|
|
24571
24571
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24572
24572
|
}
|
|
24573
24573
|
module.run(['$templateCache', function($templateCache) {
|
|
24574
|
-
$templateCache.put('igz_controls/components/action-
|
|
24575
|
-
'<div class="action-
|
|
24576
|
-
' \'igz-icon-checkbox-checked-few\': $ctrl.checkedItemsCount > 0 && !$ctrl.allItemsChecked,\n' +
|
|
24577
|
-
' \'igz-icon-checkbox-unchecked\': $ctrl.checkedItemsCount === 0}" data-ng-click="$ctrl.onCheckAll()"></div> </div> ');
|
|
24574
|
+
$templateCache.put('igz_controls/components/action-menu/action-menu.tpl.html',
|
|
24575
|
+
'<div class="igz-action-menu" data-ng-if="$ctrl.isVisible()"> <div class="menu-button {{$ctrl.iconClass}}" data-ng-class="{active: $ctrl.isMenuShown}" data-ng-click="$ctrl.toggleMenu($event)" data-uib-tooltip="{{ $ctrl.tooltipText }}" data-tooltip-enable="$ctrl.tooltipEnabled" data-tooltip-placement="top" data-tooltip-popup-delay="300" data-tooltip-append-to-body="true"> </div> <div class="menu-dropdown" data-ng-if="$ctrl.isMenuShown"> <div class="actions-list" data-ng-click="$ctrl.toggleMenu($event)"> <igz-action-item data-ng-repeat="action in $ctrl.actions track by action.id" data-action="action" data-actions="$ctrl.actions"> </igz-action-item> </div> <div class="shortcuts-list" data-ng-if="$ctrl.shortcuts && $ctrl.shortcuts.length > 0" data-ng-class="{\'first-block\': $ctrl.actions.length === 0}"> <div class="shortcuts-header">{{ \'common:SHORTCUTS\' | i18next }}</div> <div class="shortcuts-item" data-ng-repeat="shortcut in $ctrl.shortcuts" data-ng-click="$ctrl.showDetails($event, shortcut.state)"> {{shortcut.label}} </div> </div> </div> </div> ');
|
|
24578
24576
|
}]);
|
|
24579
24577
|
})();
|
|
24580
24578
|
|
|
@@ -24585,8 +24583,10 @@ try {
|
|
|
24585
24583
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24586
24584
|
}
|
|
24587
24585
|
module.run(['$templateCache', function($templateCache) {
|
|
24588
|
-
$templateCache.put('igz_controls/components/action-
|
|
24589
|
-
'<div class="
|
|
24586
|
+
$templateCache.put('igz_controls/components/action-checkbox-all/action-checkbox-all.tpl.html',
|
|
24587
|
+
'<div class="action-checkbox-all"> <div class="check-item" data-ng-class="{\'igz-icon-checkbox-checked\': $ctrl.allItemsChecked,\n' +
|
|
24588
|
+
' \'igz-icon-checkbox-checked-few\': $ctrl.checkedItemsCount > 0 && !$ctrl.allItemsChecked,\n' +
|
|
24589
|
+
' \'igz-icon-checkbox-unchecked\': $ctrl.checkedItemsCount === 0}" data-ng-click="$ctrl.onCheckAll()"></div> </div> ');
|
|
24590
24590
|
}]);
|
|
24591
24591
|
})();
|
|
24592
24592
|
|
|
@@ -24622,8 +24622,8 @@ try {
|
|
|
24622
24622
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24623
24623
|
}
|
|
24624
24624
|
module.run(['$templateCache', function($templateCache) {
|
|
24625
|
-
$templateCache.put('igz_controls/components/
|
|
24626
|
-
'<div class="
|
|
24625
|
+
$templateCache.put('igz_controls/components/copy-to-clipboard/copy-to-clipboard.tpl.html',
|
|
24626
|
+
'<div class="igz-action-item" data-ng-click="$ctrl.copyToClipboard()" data-uib-tooltip="{{ $ctrl.tooltipText ? $ctrl.tooltipText : \'common:TOOLTIP.COPY_TO_CLIPBOARD\' | i18next }}" data-tooltip-placement="{{ $ctrl.tooltipPlacement }}" data-tooltip-popup-delay="300" data-tooltip-append-to-body="true"> <div class="action-icon ncl-icon-copy"></div> </div> ');
|
|
24627
24627
|
}]);
|
|
24628
24628
|
})();
|
|
24629
24629
|
|
|
@@ -24634,8 +24634,8 @@ try {
|
|
|
24634
24634
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24635
24635
|
}
|
|
24636
24636
|
module.run(['$templateCache', function($templateCache) {
|
|
24637
|
-
$templateCache.put('igz_controls/components/
|
|
24638
|
-
'<div class="
|
|
24637
|
+
$templateCache.put('igz_controls/components/auto-complete/auto-complete.tpl.html',
|
|
24638
|
+
'<div class="auto-complete-wrapper"> <div class="input-row" data-ng-keydown="$ctrl.handleDropDownKeydown($event)"> <igz-validating-input-field class="auto-complete-input" data-field-type="input" data-is-focused="$ctrl.isFocused" data-update-data-callback="$ctrl.handleInputChange(newData)" data-item-blur-callback="$ctrl.handleInputBlur(event, inputValue, inputName)" data-input-value="$ctrl.currentValue" data-form-object="$ctrl.formObject" data-input-name="{{$ctrl.inputName}}" data-validation-is-required="$ctrl.isRequired" data-placeholder-text="{{$ctrl.placeholder}}" data-is-disabled="$ctrl.isDisabled" data-auto-complete="{{$ctrl.browserAutoComplete}}" data-trim="false" data-borders-mode="{{$ctrl.bordersMode}}" data-tooltip="$ctrl.tooltip"> </igz-validating-input-field> <igz-default-dropdown data-ng-if="$ctrl.isDropdownShown" class="auto-complete-filters" data-values-array="$ctrl.filters" data-selected-item="$ctrl.selectedFilter" data-item-select-callback="$ctrl.handleFilterChange(item, isItemChanged)" data-is-disabled="$ctrl.isDisabled"> </igz-default-dropdown> </div> <div class="suggestions-row"> <div class="auto-complete-suggestions-container" tabindex="-1" data-ng-if="$ctrl.isSuggestionsShown" data-ng-class="{\'auto-complete-suggestions-with-filters\': $ctrl.isDropdownShown}" data-ng-style="{\'top\': $ctrl.topPosition}" data-ng-scrollbars> <ul class="list" tabindex="-1"> <li class="list-item" tabindex="0" data-ng-repeat="item in $ctrl.suggestions track by $index" data-ng-click="$ctrl.handleSuggestionClick(item.value)" data-ng-keydown="$ctrl.handleSuggestionKeydown($event, item)"> <div class="list-item-block"> <span class="list-item-name" uib-tooltip="{{ item.label }}" data-tooltip-placement="auto" data-tooltip-popup-delay="200" data-tooltip-append-to-body="true"> {{ item.label }} </span> <span data-ng-if="item.additionalInfo" class="list-item-additional-info"> {{ item.additionalInfo }} </span> </div> </li> <li class="list-item readonly" data-ng-if="$ctrl.suggestions.length === 0 && $ctrl.loading" tabindex="-1"> <div class="list-item-block"> <span class="list-item-name">{{ \'common:LOADING_CAPITALIZE_ELLIPSIS\' | i18next }}</span> </div> </li> <li class="list-item readonly" data-ng-if="$ctrl.suggestions.length === 0 && !$ctrl.loading && $ctrl.emptyMessage" tabindex="-1"> <div class="list-item-block"> <span class="list-item-name">{{$ctrl.emptyMessage}}</span> </div> </li> <hr data-ng-if="$ctrl.isMoreLabelShown" tabindex="-1"> <li class="list-item readonly" data-ng-if="$ctrl.isMoreLabelShown" tabindex="-1"> <div class="list-item-block"> <span class="list-item-name">{{ \'common:MORE_ELLIPSIS\' | i18next }}</span> </div> </li> </ul> </div> </div> </div> ');
|
|
24639
24639
|
}]);
|
|
24640
24640
|
})();
|
|
24641
24641
|
|
|
@@ -24680,6 +24680,18 @@ module.run(['$templateCache', function($templateCache) {
|
|
|
24680
24680
|
}]);
|
|
24681
24681
|
})();
|
|
24682
24682
|
|
|
24683
|
+
(function(module) {
|
|
24684
|
+
try {
|
|
24685
|
+
module = angular.module('iguazio.dashboard-controls.templates');
|
|
24686
|
+
} catch (e) {
|
|
24687
|
+
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24688
|
+
}
|
|
24689
|
+
module.run(['$templateCache', function($templateCache) {
|
|
24690
|
+
$templateCache.put('igz_controls/components/navigation-tabs/navigation-tabs.tpl.html',
|
|
24691
|
+
'<div class="igz-navigation-tabs clearfix"> <div data-ng-repeat="item in $ctrl.tabItems" data-ng-if="!item.hidden"> <div class="navigation-tab" data-ng-if="item.uiRoute" data-ui-sref="{{item.uiRoute}}" data-ui-sref-active="active" data-igz-capability-enforcer="{{item.capability}}"> {{item.tabName | uppercase}} </div> <a class="navigation-tab" data-ng-if="item.href" data-ng-href="{{item.href}}" target="_blank" data-ui-sref-active="active"> {{item.tabName | uppercase}} </a> </div> </div> ');
|
|
24692
|
+
}]);
|
|
24693
|
+
})();
|
|
24694
|
+
|
|
24683
24695
|
(function(module) {
|
|
24684
24696
|
try {
|
|
24685
24697
|
module = angular.module('iguazio.dashboard-controls.templates');
|
|
@@ -24718,18 +24730,6 @@ module.run(['$templateCache', function($templateCache) {
|
|
|
24718
24730
|
}]);
|
|
24719
24731
|
})();
|
|
24720
24732
|
|
|
24721
|
-
(function(module) {
|
|
24722
|
-
try {
|
|
24723
|
-
module = angular.module('iguazio.dashboard-controls.templates');
|
|
24724
|
-
} catch (e) {
|
|
24725
|
-
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24726
|
-
}
|
|
24727
|
-
module.run(['$templateCache', function($templateCache) {
|
|
24728
|
-
$templateCache.put('igz_controls/components/navigation-tabs/navigation-tabs.tpl.html',
|
|
24729
|
-
'<div class="igz-navigation-tabs clearfix"> <div data-ng-repeat="item in $ctrl.tabItems" data-ng-if="!item.hidden"> <div class="navigation-tab" data-ng-if="item.uiRoute" data-ui-sref="{{item.uiRoute}}" data-ui-sref-active="active" data-igz-capability-enforcer="{{item.capability}}"> {{item.tabName | uppercase}} </div> <a class="navigation-tab" data-ng-if="item.href" data-ng-href="{{item.href}}" target="_blank" data-ui-sref-active="active"> {{item.tabName | uppercase}} </a> </div> </div> ');
|
|
24730
|
-
}]);
|
|
24731
|
-
})();
|
|
24732
|
-
|
|
24733
24733
|
(function(module) {
|
|
24734
24734
|
try {
|
|
24735
24735
|
module = angular.module('iguazio.dashboard-controls.templates');
|
|
@@ -24816,8 +24816,8 @@ try {
|
|
|
24816
24816
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24817
24817
|
}
|
|
24818
24818
|
module.run(['$templateCache', function($templateCache) {
|
|
24819
|
-
$templateCache.put('igz_controls/components/
|
|
24820
|
-
'<div class="
|
|
24819
|
+
$templateCache.put('igz_controls/components/toast-status-panel/toast-status-panel.tpl.html',
|
|
24820
|
+
'<div class="toast-status-panel" data-ng-show="$ctrl.isToastPanelShown"> <div class="btn-close igz-icon-close" data-ng-if="!$ctrl.permanent && $ctrl.panelState !== \'in-progress\'" data-ng-click="$ctrl.closeToastPanel()"> </div> <div class="panel-status"> <span class="panel-status-icon"></span> <div class="igz-scrollable-container msg-scrollable-container" data-ng-scrollbars> <div class="panel-status-msg" data-ng-if="$ctrl.isTranscludePassed" data-ng-transclude></div> <div class="panel-status-msg" data-ng-if="!$ctrl.isTranscludePassed"> {{$ctrl.getStateMessage($ctrl.panelState)}} </div> </div> </div> </div> ');
|
|
24821
24821
|
}]);
|
|
24822
24822
|
})();
|
|
24823
24823
|
|
|
@@ -24833,6 +24833,18 @@ module.run(['$templateCache', function($templateCache) {
|
|
|
24833
24833
|
}]);
|
|
24834
24834
|
})();
|
|
24835
24835
|
|
|
24836
|
+
(function(module) {
|
|
24837
|
+
try {
|
|
24838
|
+
module = angular.module('iguazio.dashboard-controls.templates');
|
|
24839
|
+
} catch (e) {
|
|
24840
|
+
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24841
|
+
}
|
|
24842
|
+
module.run(['$templateCache', function($templateCache) {
|
|
24843
|
+
$templateCache.put('igz_controls/components/splash-screen/splash-screen.tpl.html',
|
|
24844
|
+
'<div class="splash-screen" data-ng-hide="!$ctrl.isSplashShowed.value"> <div class="loading-splash-screen" data-ng-if="$ctrl.isLoading"> <div class="splash-logo-wrapper"> <div class="loader-fading-circle"> <div class="loader-circle1 loader-circle"></div> <div class="loader-circle2 loader-circle"></div> <div class="loader-circle3 loader-circle"></div> <div class="loader-circle4 loader-circle"></div> <div class="loader-circle5 loader-circle"></div> <div class="loader-circle6 loader-circle"></div> <div class="loader-circle7 loader-circle"></div> <div class="loader-circle8 loader-circle"></div> <div class="loader-circle9 loader-circle"></div> <div class="loader-circle10 loader-circle"></div> <div class="loader-circle11 loader-circle"></div> <div class="loader-circle12 loader-circle"></div> </div> </div> <div class="loading-text">{{$ctrl.textToDisplay}}</div> </div> <div class="alert-splash-screen" data-ng-if="$ctrl.isAlertShowing"> <div class="header"></div> <div class="notification-text">{{$ctrl.alertText}}</div> <div class="buttons"> <div class="refresh-button" data-ng-click="$ctrl.refreshPage()"> <span class="igz-icon-refresh"></span> {{ \'common:REFRESH\' | i18next }} </div> </div> </div> </div> ');
|
|
24845
|
+
}]);
|
|
24846
|
+
})();
|
|
24847
|
+
|
|
24836
24848
|
(function(module) {
|
|
24837
24849
|
try {
|
|
24838
24850
|
module = angular.module('iguazio.dashboard-controls.templates');
|
|
@@ -24862,18 +24874,6 @@ module.run(['$templateCache', function($templateCache) {
|
|
|
24862
24874
|
}]);
|
|
24863
24875
|
})();
|
|
24864
24876
|
|
|
24865
|
-
(function(module) {
|
|
24866
|
-
try {
|
|
24867
|
-
module = angular.module('iguazio.dashboard-controls.templates');
|
|
24868
|
-
} catch (e) {
|
|
24869
|
-
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24870
|
-
}
|
|
24871
|
-
module.run(['$templateCache', function($templateCache) {
|
|
24872
|
-
$templateCache.put('igz_controls/components/toast-status-panel/toast-status-panel.tpl.html',
|
|
24873
|
-
'<div class="toast-status-panel" data-ng-show="$ctrl.isToastPanelShown"> <div class="btn-close igz-icon-close" data-ng-if="!$ctrl.permanent && $ctrl.panelState !== \'in-progress\'" data-ng-click="$ctrl.closeToastPanel()"> </div> <div class="panel-status"> <span class="panel-status-icon"></span> <div class="igz-scrollable-container msg-scrollable-container" data-ng-scrollbars> <div class="panel-status-msg" data-ng-if="$ctrl.isTranscludePassed" data-ng-transclude></div> <div class="panel-status-msg" data-ng-if="!$ctrl.isTranscludePassed"> {{$ctrl.getStateMessage($ctrl.panelState)}} </div> </div> </div> </div> ');
|
|
24874
|
-
}]);
|
|
24875
|
-
})();
|
|
24876
|
-
|
|
24877
24877
|
(function(module) {
|
|
24878
24878
|
try {
|
|
24879
24879
|
module = angular.module('iguazio.dashboard-controls.templates');
|
|
@@ -24914,8 +24914,8 @@ try {
|
|
|
24914
24914
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24915
24915
|
}
|
|
24916
24916
|
module.run(['$templateCache', function($templateCache) {
|
|
24917
|
-
$templateCache.put('nuclio/functions/function/
|
|
24918
|
-
'<
|
|
24917
|
+
$templateCache.put('nuclio/functions/deploy-deleted-function-dialog/deploy-deleted-function-dialog.tpl.html',
|
|
24918
|
+
'<div class="deploy-deleted-function-dialog"> <div class="close-button igz-icon-close" data-ng-click="$ctrl.onClose()"></div> <div class="title"> {{ \'functions:DELETED_FUNCTION_WHILE_DEPLOYING_MSG\' | i18next }} </div> <div class="buttons"> <button class="ncl-secondary-button igz-button-just-text" tabindex="0" data-ng-click="$ctrl.goToFunctions()"> {{ \'functions:GO_TO_FUNCTIONS\' | i18next }} </button> <button class="ncl-primary-button igz-button-primary" tabindex="1" data-ng-click="$ctrl.deployFunction($event)"> {{ \'functions:DEPLOY\' | i18next }} </button> </div> </div> ');
|
|
24919
24919
|
}]);
|
|
24920
24920
|
})();
|
|
24921
24921
|
|
|
@@ -24938,8 +24938,8 @@ try {
|
|
|
24938
24938
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24939
24939
|
}
|
|
24940
24940
|
module.run(['$templateCache', function($templateCache) {
|
|
24941
|
-
$templateCache.put('nuclio/functions/
|
|
24942
|
-
'<
|
|
24941
|
+
$templateCache.put('nuclio/functions/function/ncl-function.tpl.html',
|
|
24942
|
+
'<section data-ui-view="function"></section>');
|
|
24943
24943
|
}]);
|
|
24944
24944
|
})();
|
|
24945
24945
|
|
|
@@ -24964,12 +24964,8 @@ try {
|
|
|
24964
24964
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24965
24965
|
}
|
|
24966
24966
|
module.run(['$templateCache', function($templateCache) {
|
|
24967
|
-
$templateCache.put('nuclio/functions/
|
|
24968
|
-
'<div class="
|
|
24969
|
-
' $ctrl.version.ui.isTriggersChanged || $ctrl.version.ui.isVolumesChanged ? \'functions:TOOLTIP.APPLY_CHANGES_TO_DEPLOY\' :\n' +
|
|
24970
|
-
' \'functions:TOOLTIP.DEPLOY_INVALID_CONFIG\') | i18next }}" data-tooltip-enable="$ctrl.isDeployButtonDisabled()" data-tooltip-placement="left" data-tooltip-append-to-body="true" data-tooltip-popup-delay="200"> {{ \'functions:DEPLOY\' | i18next }} </button> </div> </div> </igz-info-page-actions-bar> <div data-ng-if="$ctrl.deployResult.shown" class="ncl-edit-version-execution-result deploy-result" data-ng-class="$ctrl.deployResult.status.state"> <div class="btn-close igz-icon-close" data-ng-if="!$ctrl.isFunctionDeploying()" data-ng-click="$ctrl.hideDeployResult()"></div> <div class="icon-collapsed general-content" data-ng-class="$ctrl.deployResult.collapsed ? \'igz-icon-right\' : \'igz-icon-down\'" data-ng-click="$ctrl.onDeployResultToggle()"></div> <div class="ncl-execution-result-status" data-ng-class="[$ctrl.deployResult.status.state, { collapsed: $ctrl.deployResult.collapsed }]"> <span class="result-status-icon" data-ng-class="$ctrl.deployResult.status.icon"></span> <span class="result-state">{{$ctrl.deployResult.status.text}}</span> </div> <div class="ncl-execution-result-block collapsed-block-content-wrapper" data-uib-collapse="$ctrl.deployResult.collapsed"> <div class="collapsed-block-title without-collapse"> {{ \'common:LOGS\' | i18next }} </div> <ncl-deploy-log data-log-entries="$ctrl.version.status.state === \'error\' ?\n' +
|
|
24971
|
-
' $ctrl.version.status.message :\n' +
|
|
24972
|
-
' $ctrl.version.status.logs"> </ncl-deploy-log> </div> </div> <ncl-navigation-tabs data-tab-items="$ctrl.navigationTabsConfig"></ncl-navigation-tabs> <section class="ncl-edit-version-view" data-ui-view="version"></section> </div> ');
|
|
24967
|
+
$templateCache.put('nuclio/functions/override-function-dialog/override-function-dialog.tpl.html',
|
|
24968
|
+
'<div class="override-function-dialog"> <div class="close-button igz-icon-close" data-ng-click="$ctrl.onClose()"></div> <div class="title"> {{ \'functions:NAME_IN_USE\' | i18next }} </div> <div class="buttons"> <button class="ncl-secondary-button igz-button-secondary function-redirect-button" data-test-id="functions.override_function_visit_function.button" tabindex="0" data-ng-click="$ctrl.openExistingFunction()"> {{ \'functions:GO_TO_EXISTING_FUNCTION\' | i18next }} </button> <button class="ncl-secondary-button igz-button-just-text" data-test-id="functions.override_function_cancel.button" tabindex="1" data-ng-click="$ctrl.onClose()" data-ng-keydown="$ctrl.onClose($event)"> {{ \'common:CANCEL\' | i18next }} </button> <button class="ncl-primary-button igz-button-primary" data-test-id="functions.override_function_override.button" tabindex="2" data-ng-click="$ctrl.overrideFunction()"> {{ \'functions:OVERWRITE\' | i18next }} </button> </div> </div> ');
|
|
24973
24969
|
}]);
|
|
24974
24970
|
})();
|
|
24975
24971
|
|
|
@@ -24980,8 +24976,12 @@ try {
|
|
|
24980
24976
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
24981
24977
|
}
|
|
24982
24978
|
module.run(['$templateCache', function($templateCache) {
|
|
24983
|
-
$templateCache.put('nuclio/functions/
|
|
24984
|
-
'<div class="
|
|
24979
|
+
$templateCache.put('nuclio/functions/version/version.tpl.html',
|
|
24980
|
+
'<div class="ncl-edit-version"> <igz-splash-screen data-is-splash-showed="$ctrl.isSplashShowed"></igz-splash-screen> <igz-info-page-actions-bar class="igz-component border-top"> <div class="actions-bar-right"> <div class="actions-bar-left"> <span class="ncl-icon-api-gateway" data-test-id="functions.item-name_api-gw.icon" data-ng-if="$ctrl.version.status.apiGateways.length > 0" data-uib-tooltip="{{ \'functions:TOOLTIP.USED_BY_API_GATEWAY\' | i18next:{apiGatewayName: $ctrl.version.status.apiGateways[0]} }}" data-tooltip-placement="top" data-tooltip-append-to-body="true" data-tooltip-popup-delay="200"> </span> </div> <div class="actions-bar-left actions-buttons-block actions-dropdown-block"> <igz-default-dropdown data-select-property-only="id" data-placeholder="{{ \'functions:PLACEHOLDER.ACTIONS\' | i18next }}" data-values-array="$ctrl.actions" data-is-disabled="!$ctrl.isFunctionDeployed" data-item-select-callback="$ctrl.onActionSelect(item)" data-skip-selection="true"> </igz-default-dropdown> </div> <div class="actions-bar-left"> <div class="igz-action-panel"> <div class="actions-list"> <igz-action-item-refresh data-is-disabled="!$ctrl.isFunctionDeployed" data-refresh="$ctrl.refreshFunction()"> </igz-action-item-refresh> </div> </div> </div> <div class="actions-bar-left actions-buttons-block"> <button class="ncl-new-entity-button igz-button-primary" data-ng-class="{\'disabled\': $ctrl.isDeployButtonDisabled()}" data-ng-click="$ctrl.isFunctionDeploying() || $ctrl.deployButtonClick($event)" data-uib-tooltip="{{ ($ctrl.version.status.state === \'building\' ? \'functions:TOOLTIP.DEPLOY_IN_PROGRESS\' :\n' +
|
|
24981
|
+
' $ctrl.version.ui.isTriggersChanged || $ctrl.version.ui.isVolumesChanged ? \'functions:TOOLTIP.APPLY_CHANGES_TO_DEPLOY\' :\n' +
|
|
24982
|
+
' \'functions:TOOLTIP.DEPLOY_INVALID_CONFIG\') | i18next }}" data-tooltip-enable="$ctrl.isDeployButtonDisabled()" data-tooltip-placement="left" data-tooltip-append-to-body="true" data-tooltip-popup-delay="200"> {{ \'functions:DEPLOY\' | i18next }} </button> </div> </div> </igz-info-page-actions-bar> <div data-ng-if="$ctrl.deployResult.shown" class="ncl-edit-version-execution-result deploy-result" data-ng-class="$ctrl.deployResult.status.state"> <div class="btn-close igz-icon-close" data-ng-if="!$ctrl.isFunctionDeploying()" data-ng-click="$ctrl.hideDeployResult()"></div> <div class="icon-collapsed general-content" data-ng-class="$ctrl.deployResult.collapsed ? \'igz-icon-right\' : \'igz-icon-down\'" data-ng-click="$ctrl.onDeployResultToggle()"></div> <div class="ncl-execution-result-status" data-ng-class="[$ctrl.deployResult.status.state, { collapsed: $ctrl.deployResult.collapsed }]"> <span class="result-status-icon" data-ng-class="$ctrl.deployResult.status.icon"></span> <span class="result-state">{{$ctrl.deployResult.status.text}}</span> </div> <div class="ncl-execution-result-block collapsed-block-content-wrapper" data-uib-collapse="$ctrl.deployResult.collapsed"> <div class="collapsed-block-title without-collapse"> {{ \'common:LOGS\' | i18next }} </div> <ncl-deploy-log data-log-entries="$ctrl.version.status.state === \'error\' ?\n' +
|
|
24983
|
+
' $ctrl.version.status.message :\n' +
|
|
24984
|
+
' $ctrl.version.status.logs"> </ncl-deploy-log> </div> </div> <ncl-navigation-tabs data-tab-items="$ctrl.navigationTabsConfig"></ncl-navigation-tabs> <section class="ncl-edit-version-view" data-ui-view="version"></section> </div> ');
|
|
24985
24985
|
}]);
|
|
24986
24986
|
})();
|
|
24987
24987
|
|
|
@@ -25052,8 +25052,8 @@ try {
|
|
|
25052
25052
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25053
25053
|
}
|
|
25054
25054
|
module.run(['$templateCache', function($templateCache) {
|
|
25055
|
-
$templateCache.put('nuclio/common/components/
|
|
25056
|
-
'<
|
|
25055
|
+
$templateCache.put('nuclio/common/components/breadcrumbs/breadcrumbs.tpl.html',
|
|
25056
|
+
'<span class="main-header-title"> <span class="main-header-title-text" data-ng-click="$ctrl.goToProjectsList()" data-ng-class="{\'disable-behavior\': !$ctrl.mainHeaderTitle.project && $ctrl.mainHeaderTitle.function !== \'Create function\'}"> {{ $ctrl.mainHeaderTitle.title | i18next }} </span> <span class="igz-icon-right ncl-header-subtitle"></span> </span> <span class="main-header-title" data-ng-if="$ctrl.mainHeaderTitle.project.metadata.name"> <span class="main-header-title-text" data-ng-click="$ctrl.goToProjectScreen()"> {{$ctrl.mainHeaderTitle.project.metadata.name}} </span> <ncl-breadcrumbs-dropdown data-state="$ctrl.mainHeaderTitle.state" data-title="$ctrl.mainHeaderTitle.project.metadata.name" data-project="$ctrl.mainHeaderTitle.project" data-type="projects" data-get-functions="$ctrl.getFunctions({id: id, enrichApiGateways: enrichApiGateways})" data-get-projects="$ctrl.getProjects()"> </ncl-breadcrumbs-dropdown> </span> <span class="main-header-title" data-ng-if="$ctrl.mainHeaderTitle.function && $ctrl.mainHeaderTitle.version"> <span class="main-header-title-text" data-ng-click="$ctrl.goToFunctionScreen()">{{$ctrl.mainHeaderTitle.function}}</span> <ncl-breadcrumbs-dropdown data-ng-if="$ctrl.mainHeaderTitle.version" data-state="$ctrl.mainHeaderTitle.state" data-title="$ctrl.mainHeaderTitle.function" data-project="$ctrl.mainHeaderTitle.project" data-type="functions" data-get-functions="$ctrl.getFunctions({id: id, enrichApiGateways: enrichApiGateways})" data-get-projects="$ctrl.getProjects()"> </ncl-breadcrumbs-dropdown> </span> <span data-ng-if="$ctrl.mainHeaderTitle.tab" class="ncl-bold-subtitle"> {{$ctrl.mainHeaderTitle.tab}} </span> <span data-ng-if="$ctrl.mainHeaderTitle.function === \'Create function\'" class="ncl-bold-subtitle"> {{$ctrl.mainHeaderTitle.function}} </span> <span data-ng-if="$ctrl.mainHeaderTitle.version" class="ncl-bold-subtitle"> {{$ctrl.mainHeaderTitle.version}} </span> ');
|
|
25057
25057
|
}]);
|
|
25058
25058
|
})();
|
|
25059
25059
|
|
|
@@ -25064,9 +25064,8 @@ try {
|
|
|
25064
25064
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25065
25065
|
}
|
|
25066
25066
|
module.run(['$templateCache', function($templateCache) {
|
|
25067
|
-
$templateCache.put('nuclio/common/components/
|
|
25068
|
-
'<div class="ncl-
|
|
25069
|
-
' \'igz-icon-down\': $ctrl.item.ui.editModeActive}"> </span> </div> <div data-ng-show="!$ctrl.item.ui.editModeActive" class="igz-row common-table-cells-container item-row"> <div class="item-name" data-ng-if="!$ctrl.isNil($ctrl.item.name)"> <div class="text-ellipsis"> {{$ctrl.item.name}} </div> <igz-more-info data-ng-if="$ctrl.item.ui.moreInfoMsg.name" data-trigger="click" data-is-html-enabled="true" data-is-open="$ctrl.item.ui.moreInfoMsg.name.isOpen" data-icon-type="{{$ctrl.item.ui.moreInfoMsg.name.type}}" data-description="{{$ctrl.item.ui.moreInfoMsg.name.description}}"> </igz-more-info> </div> <div class="text-ellipsis item-name" data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.name)"> {{ $ctrl.item.volumeMount.name }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.ui.selectedClass)"> {{$ctrl.item.ui.selectedClass.name}} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.hostPath)"> {{ \'common:HOST_PATH\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume)"> {{ \'functions:V3IO\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.secret.secretName)"> {{ \'functions:SECRET\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.configMap.name)"> {{ \'functions:CONFIG_MAP\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.persistentVolumeClaim.claimName)"> {{ \'functions:PVC\' | i18next }} </div> <div class="igz-col-70 item-info"> <div data-ng-hide="$ctrl.item.ui.editModeActive" class="collapsed-item-info-block"> <span data-ng-if="!$ctrl.isNil($ctrl.item.url)"> <span class="field-label">{{ \'common:URL\' | i18next }}</span>: {{ $ctrl.item.url }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.maxWorkers)"> <span class="field-label">{{ \'functions:MAX_WORKERS\' | i18next }}</span>: {{ $ctrl.item.maxWorkers }}; </span> <span data-ng-if="$ctrl.isNumber($ctrl.item.workerAvailabilityTimeoutMilliseconds)"> <span class="field-label">{{ \'functions:WORKER_AVAILABILITY_TIMEOUT\' | i18next }}</span>: {{ $ctrl.item.workerAvailabilityTimeoutMilliseconds }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.secret)"> <span class="field-label">{{ \'functions:SECRET\' | i18next }}</span>: {{ $ctrl.getMask($ctrl.item.secret) }}; </span> <span data-ng-repeat="(key, value) in $ctrl.item.attributes" data-ng-if="$ctrl.displayedAttributesFields.includes(key)"> <span class="field-label">{{ key }}</span>: {{ $ctrl.getAttributeValue(key, value) }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.annotations)"> <span class="field-label">{{ \'functions:ANNOTATIONS\' | i18next }}</span>: {{ $ctrl.item.annotations }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.username)"> <span class="field-label">{{ \'common:USERNAME\' | i18next }}</span>: {{ $ctrl.item.username }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.password)"> <span class="field-label">{{ \'common:PASSWORD\' | i18next }}</span>: {{ $ctrl.getMask($ctrl.item.password) }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.mountPath)"> <span class="field-label">{{ \'functions:MOUNT_PATH\' | i18next }}</span>: {{ $ctrl.item.volumeMount.mountPath }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.hostPath)"> <span class="field-label">{{ \'common:HOST_PATH\' | i18next }}</span>: {{ $ctrl.item.volume.hostPath.path }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.readOnly)"> <span class="field-label">{{ \'common:READ_ONLY\' | i18next }}</span>: {{ $ctrl.item.volumeMount.readOnly }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume.options.container)"> <span class="field-label">{{ \'functions:CONTAINER_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.flexVolume.options.container }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume.options.subPath)"> <span class="field-label">{{ \'functions:SUB_PATH\' | i18next }}</span>: {{ $ctrl.item.volume.flexVolume.options.subPath }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.configMap.name)"> <span class="field-label">{{ \'functions:CONFIG_MAP_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.configMap.name }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.persistentVolumeClaim.claimName)"> <span class="field-label">{{ \'functions:PERSISTENT_VOLUME_CLAIM_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.persistentVolumeClaim.claimName }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.workerAllocatorName)"> <span class="field-label">{{ \'functions:WORKER_ALLOCATOR_NAME\' | i18next }}</span>: {{ $ctrl.item.workerAllocatorName }}; </span> </div> </div> </div> <div data-ng-transclude class="igz-col-100" data-ng-if="$ctrl.item.ui.editModeActive"></div> <div class="common-table-cell actions-menu" data-ng-hide="$ctrl.readOnly" data-ng-if="::$ctrl.showDotMenu()"> <igz-action-menu data-actions="$ctrl.actions" data-on-fire-action="$ctrl.onFireAction"> </igz-action-menu> </div> <div class="common-table-cell single-action" data-ng-hide="$ctrl.readOnly" data-ng-if="::!$ctrl.showDotMenu()"> <div class="igz-action-panel"> <div class="actions-list"> <div class="igz-action-item" data-test-id="{{$ctrl.deleteTestId}}" data-ng-click="$ctrl.onClickAction($ctrl.actions[0])" data-uib-tooltip="{{$ctrl.actions[0].label}}" data-tooltip-popup-delay="1000" data-tooltip-placement="bottom" data-tooltip-append-to-body="true"> <span class="action-icon" data-ng-class="$ctrl.actions[0].icon"> </span> </div> </div> </div> </div> </div> </div> ');
|
|
25067
|
+
$templateCache.put('nuclio/common/components/breadcrumbs-dropdown/breadcrumbs-dropdown.tpl.html',
|
|
25068
|
+
'<div class="ncl-breadcrumbs-dropdown dropdown" data-ng-class="{\'open\': $ctrl.showDropdownList}"> <span class="breadcrumb-toggle" data-ng-click="$ctrl.showDropdown()"> <span class="breadcrumb-arrow" data-ng-class="{\'ncl-dropdown-expanded\': $ctrl.showDropdownList}"> <span class="igz-icon-right"></span> </span> </span> <div class="dropdown-menu"> <div class="search-input"> <input type="text" placeholder="{{$ctrl.placeholder}}" data-ng-model="$ctrl.searchText"> <span class="igz-icon-search"></span> </div> <ul class="dropdown-list" data-ng-scrollbars> <li data-ng-repeat="item in $ctrl.itemsList | filter: $ctrl.searchText"> <a class="item-name" data-ng-click="$ctrl.showDetails($event, item)" data-uib-tooltip="{{item.name}}" data-tooltip-popup-delay="200" data-tooltip-append-to-body="true" data-tooltip-placement="top"> {{item.name}} </a> <span class="igz-icon-tick" data-ng-show="$ctrl.title === item.name"></span> </li> </ul> </div> </div> ');
|
|
25070
25069
|
}]);
|
|
25071
25070
|
})();
|
|
25072
25071
|
|
|
@@ -25077,8 +25076,9 @@ try {
|
|
|
25077
25076
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25078
25077
|
}
|
|
25079
25078
|
module.run(['$templateCache', function($templateCache) {
|
|
25080
|
-
$templateCache.put('nuclio/common/components/
|
|
25081
|
-
'<div class="ncl-
|
|
25079
|
+
$templateCache.put('nuclio/common/components/collapsing-row/collapsing-row.tpl.html',
|
|
25080
|
+
'<div class="ncl-collapsing-row"> <div class="title-block common-table-row" data-ng-class="{\'collapsed\': !$ctrl.item.ui.editModeActive}"> <div class="common-table-cell row-collapse"> <span class="collapse-icon" data-ng-click="$ctrl.onCollapse($event)" data-ng-class="{\'collapsed igz-icon-right\': !$ctrl.item.ui.editModeActive,\n' +
|
|
25081
|
+
' \'igz-icon-down\': $ctrl.item.ui.editModeActive}"> </span> </div> <div data-ng-show="!$ctrl.item.ui.editModeActive" class="igz-row common-table-cells-container item-row"> <div class="item-name" data-ng-if="!$ctrl.isNil($ctrl.item.name)"> <div class="text-ellipsis"> {{$ctrl.item.name}} </div> <igz-more-info data-ng-if="$ctrl.item.ui.moreInfoMsg.name" data-trigger="click" data-is-html-enabled="true" data-is-open="$ctrl.item.ui.moreInfoMsg.name.isOpen" data-icon-type="{{$ctrl.item.ui.moreInfoMsg.name.type}}" data-description="{{$ctrl.item.ui.moreInfoMsg.name.description}}"> </igz-more-info> </div> <div class="text-ellipsis item-name" data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.name)"> {{ $ctrl.item.volumeMount.name }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.ui.selectedClass)"> {{$ctrl.item.ui.selectedClass.name}} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.hostPath)"> {{ \'common:HOST_PATH\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume)"> {{ \'functions:V3IO\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.secret.secretName)"> {{ \'functions:SECRET\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.configMap.name)"> {{ \'functions:CONFIG_MAP\' | i18next }} </div> <div class="item-class" data-ng-if="!$ctrl.isNil($ctrl.item.volume.persistentVolumeClaim.claimName)"> {{ \'functions:PVC\' | i18next }} </div> <div class="igz-col-70 item-info"> <div data-ng-hide="$ctrl.item.ui.editModeActive" class="collapsed-item-info-block"> <span data-ng-if="!$ctrl.isNil($ctrl.item.url)"> <span class="field-label">{{ \'common:URL\' | i18next }}</span>: {{ $ctrl.item.url }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.maxWorkers)"> <span class="field-label">{{ \'functions:MAX_WORKERS\' | i18next }}</span>: {{ $ctrl.item.maxWorkers }}; </span> <span data-ng-if="$ctrl.isNumber($ctrl.item.workerAvailabilityTimeoutMilliseconds)"> <span class="field-label">{{ \'functions:WORKER_AVAILABILITY_TIMEOUT\' | i18next }}</span>: {{ $ctrl.item.workerAvailabilityTimeoutMilliseconds }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.secret)"> <span class="field-label">{{ \'functions:SECRET\' | i18next }}</span>: {{ $ctrl.getMask($ctrl.item.secret) }}; </span> <span data-ng-repeat="(key, value) in $ctrl.item.attributes" data-ng-if="$ctrl.displayedAttributesFields.includes(key)"> <span class="field-label">{{ key }}</span>: {{ $ctrl.getAttributeValue(key, value) }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.annotations)"> <span class="field-label">{{ \'functions:ANNOTATIONS\' | i18next }}</span>: {{ $ctrl.item.annotations }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.username)"> <span class="field-label">{{ \'common:USERNAME\' | i18next }}</span>: {{ $ctrl.item.username }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.password)"> <span class="field-label">{{ \'common:PASSWORD\' | i18next }}</span>: {{ $ctrl.getMask($ctrl.item.password) }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.mountPath)"> <span class="field-label">{{ \'functions:MOUNT_PATH\' | i18next }}</span>: {{ $ctrl.item.volumeMount.mountPath }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.hostPath)"> <span class="field-label">{{ \'common:HOST_PATH\' | i18next }}</span>: {{ $ctrl.item.volume.hostPath.path }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volumeMount.readOnly)"> <span class="field-label">{{ \'common:READ_ONLY\' | i18next }}</span>: {{ $ctrl.item.volumeMount.readOnly }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume.options.container)"> <span class="field-label">{{ \'functions:CONTAINER_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.flexVolume.options.container }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.flexVolume.options.subPath)"> <span class="field-label">{{ \'functions:SUB_PATH\' | i18next }}</span>: {{ $ctrl.item.volume.flexVolume.options.subPath }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.configMap.name)"> <span class="field-label">{{ \'functions:CONFIG_MAP_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.configMap.name }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.volume.persistentVolumeClaim.claimName)"> <span class="field-label">{{ \'functions:PERSISTENT_VOLUME_CLAIM_NAME\' | i18next }}</span>: {{ $ctrl.item.volume.persistentVolumeClaim.claimName }}; </span> <span data-ng-if="!$ctrl.isNil($ctrl.item.workerAllocatorName)"> <span class="field-label">{{ \'functions:WORKER_ALLOCATOR_NAME\' | i18next }}</span>: {{ $ctrl.item.workerAllocatorName }}; </span> </div> </div> </div> <div data-ng-transclude class="igz-col-100" data-ng-if="$ctrl.item.ui.editModeActive"></div> <div class="common-table-cell actions-menu" data-ng-hide="$ctrl.readOnly" data-ng-if="::$ctrl.showDotMenu()"> <igz-action-menu data-actions="$ctrl.actions" data-on-fire-action="$ctrl.onFireAction"> </igz-action-menu> </div> <div class="common-table-cell single-action" data-ng-hide="$ctrl.readOnly" data-ng-if="::!$ctrl.showDotMenu()"> <div class="igz-action-panel"> <div class="actions-list"> <div class="igz-action-item" data-test-id="{{$ctrl.deleteTestId}}" data-ng-click="$ctrl.onClickAction($ctrl.actions[0])" data-uib-tooltip="{{$ctrl.actions[0].label}}" data-tooltip-popup-delay="1000" data-tooltip-placement="bottom" data-tooltip-append-to-body="true"> <span class="action-icon" data-ng-class="$ctrl.actions[0].icon"> </span> </div> </div> </div> </div> </div> </div> ');
|
|
25082
25082
|
}]);
|
|
25083
25083
|
})();
|
|
25084
25084
|
|
|
@@ -25089,8 +25089,8 @@ try {
|
|
|
25089
25089
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25090
25090
|
}
|
|
25091
25091
|
module.run(['$templateCache', function($templateCache) {
|
|
25092
|
-
$templateCache.put('nuclio/common/components/
|
|
25093
|
-
'<
|
|
25092
|
+
$templateCache.put('nuclio/common/components/deploy-log/deploy-log.tpl.html',
|
|
25093
|
+
'<div class="ncl-deploy-log-wrapper"> <div class="log-panel igz-scrollable-container" data-ng-scrollbars data-ng-scrollbars-config="$ctrl.scrollConfig"> <div class="log-entry" data-ng-if="$ctrl.lodash.isArray($ctrl.logEntries)" data-ng-repeat="log in $ctrl.logEntries track by $index"> <span class="log-entry-time" data-ng-if="log.time">[{{log.time | date:\'HH:mm:ss.sss\'}}]</span> <span class="log-entry-level-{{log.level}}" data-ng-if="log.level"> ({{$ctrl.getLogLevel(log.level)}})</span> <span class="log-entry-message"> {{log.message}}</span> <span class="log-entry-error" data-ng-if="log.err"> {{log.err}}</span> <span class="log-entry-params"> {{$ctrl.getLogParams(log)}}</span> </div> <div class="log-entry" data-ng-if="!$ctrl.lodash.isArray($ctrl.logEntries)"> {{$ctrl.logEntries}} </div> </div> </div> ');
|
|
25094
25094
|
}]);
|
|
25095
25095
|
})();
|
|
25096
25096
|
|
|
@@ -25241,8 +25241,8 @@ try {
|
|
|
25241
25241
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25242
25242
|
}
|
|
25243
25243
|
module.run(['$templateCache', function($templateCache) {
|
|
25244
|
-
$templateCache.put('nuclio/functions/version/version-
|
|
25245
|
-
'<div class="ncl-version-
|
|
25244
|
+
$templateCache.put('nuclio/functions/version/version-configuration/version-configuration.tpl.html',
|
|
25245
|
+
'<div class="ncl-version-configuration ncl-version" data-igz-extend-background> <div class="igz-scrollable-container" data-ng-scrollbars data-ng-scrollbars-config="$ctrl.scrollConfig"> <div class="ncl-version-configuration-wrapper"> <div class="row"> <ncl-version-configuration-basic-settings class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-basic-settings> <ncl-version-configuration-resources class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-resources> </div> <div class="row"> <ncl-version-configuration-environment-variables class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-environment-variables> </div> <div class="row"> <ncl-version-configuration-labels class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-labels> <ncl-version-configuration-annotations class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-annotations> </div> <div class="row"> <ncl-version-configuration-volumes class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback()"> </ncl-version-configuration-volumes> <ncl-version-configuration-build class="configuration-block" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-build> </div> <div class="row"> <ncl-version-configuration-logging data-ng-if="false" class="configuration-block" data-version="$ctrl.version" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-logging> <ncl-version-configuration-runtime-attributes data-ng-if="$ctrl.isRuntimeBlockVisible()" class="configuration-block runtime-attributes" data-version="$ctrl.version" data-is-function-deploying="$ctrl.isFunctionDeploying()" data-on-change-callback="$ctrl.onConfigurationChangeCallback"> </ncl-version-configuration-runtime-attributes> <div data-ng-if="$ctrl.isRuntimeBlockVisible()" class="configuration-block invisible"></div> </div> </div> </div> </div> ');
|
|
25246
25246
|
}]);
|
|
25247
25247
|
})();
|
|
25248
25248
|
|
|
@@ -25253,8 +25253,8 @@ try {
|
|
|
25253
25253
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25254
25254
|
}
|
|
25255
25255
|
module.run(['$templateCache', function($templateCache) {
|
|
25256
|
-
$templateCache.put('nuclio/functions/version/version-
|
|
25257
|
-
'<div class="ncl-version-
|
|
25256
|
+
$templateCache.put('nuclio/functions/version/version-monitoring/version-monitoring.tpl.html',
|
|
25257
|
+
'<div class="ncl-version-monitoring ncl-version" data-igz-extend-background> <div class="igz-scrollable-container" data-ng-scrollbars data-ng-scrollbars-config="$ctrl.scrollConfig"> <div class="ncl-version-monitoring-wrapper"> <div class="row"> <div class="monitoring-block invocation-block"> <div class="internal-invocation-urls"> <span class="monitoring-block-title">{{ \'functions:INTERNAL_INVOCATION_URLS\' | i18next }}: </span> <ul class="invocation-url-list" ng-if="!$ctrl.isFunctionDeploying()"> <li class="monitoring-invocation-url-wrapper" data-ng-repeat="url in $ctrl.version.status.internalInvocationUrls"> <span>{{url}}</span> <div class="igz-action-panel"> <div class="actions-list"> <igz-copy-to-clipboard data-value="url"></igz-copy-to-clipboard> </div> </div> </li> </ul> <p data-ng-if="!$ctrl.version.status.internalInvocationUrls.length || $ctrl.isFunctionDeploying()" data-ng-i18next="common:N_A"></p> </div> <div class="external-invocation-urls"> <span class="monitoring-block-title">{{ \'functions:EXTERNAL_INVOCATION_URLS\' | i18next }}: </span> <igz-more-info data-description="{{ \'functions:TOOLTIP.TO_MAKE_FUNCTION_ACCESSIBLE\' | i18next:{functionId: $ctrl.version.metadata.name} }}" data-trigger="click" data-is-html-enabled="true"> </igz-more-info> <ul class="invocation-url-list" data-ng-if="$ctrl.version.status.externalInvocationUrls.length > 0 && !$ctrl.isFunctionDeploying()"> <li class="monitoring-invocation-url-wrapper" data-ng-repeat="url in $ctrl.version.status.externalInvocationUrls"> <span>{{url}}</span> <div class="igz-action-panel"> <div class="actions-list"> <igz-copy-to-clipboard data-value="url"></igz-copy-to-clipboard> </div> </div> </li> </ul> <p data-ng-if="!$ctrl.version.status.externalInvocationUrls || $ctrl.version.status.externalInvocationUrls.length === 0 || $ctrl.isFunctionDeploying()" data-ng-i18next="common:N_A"></p> </div> </div> </div> <div class="row"> <div class="monitoring-block ncl-monitoring-build-logger"> <span class="icon-collapsed general-content" data-ng-class="$ctrl.rowIsCollapsed.buildLog ? \'igz-icon-right\' : \'igz-icon-down\'" data-ng-click="$ctrl.onRowCollapse(\'buildLog\')"></span> <span class="monitoring-block-title"> {{ \'functions:BUILD_LOG\' | i18next }} </span> <div class="ncl-monitoring-build-logs collapsed-block-content-wrapper" data-uib-collapse="$ctrl.rowIsCollapsed.buildLog"> <ncl-deploy-log data-log-entries="$ctrl.version.status.logs"></ncl-deploy-log> </div> </div> </div> <div class="row" data-ng-if="$ctrl.checkIsErrorState()"> <div class="monitoring-block ncl-monitoring-error-logger"> <span class="icon-collapsed general-content" data-ng-class="$ctrl.rowIsCollapsed.errorLog ? \'igz-icon-right\' : \'igz-icon-down\'" data-ng-click="$ctrl.onRowCollapse(\'errorLog\')"> </span> <span class="monitoring-block-title"> {{ \'common:ERROR\' | i18next }} </span> <div class="ncl-monitoring-error-logs collapsed-block-content-wrapper" data-uib-collapse="$ctrl.rowIsCollapsed.errorLog"> <div class="error-panel igz-scrollable-container" data-ng-scrollbars data-ng-scrollbars-config="$ctrl.scrollConfig"> <div class="log-entry"> <span class="log-entry-error"> {{$ctrl.version.status.message}} </span> </div> </div> </div> </div> </div> </div> </div> </div> ');
|
|
25258
25258
|
}]);
|
|
25259
25259
|
})();
|
|
25260
25260
|
|
|
@@ -25388,8 +25388,8 @@ try {
|
|
|
25388
25388
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25389
25389
|
}
|
|
25390
25390
|
module.run(['$templateCache', function($templateCache) {
|
|
25391
|
-
$templateCache.put('nuclio/functions/version/version-configuration/tabs/version-configuration-
|
|
25392
|
-
'<div class="ncl-version-configuration-
|
|
25391
|
+
$templateCache.put('nuclio/functions/version/version-configuration/tabs/version-configuration-basic-settings/version-configuration-basic-settings.tpl.html',
|
|
25392
|
+
'<div class="ncl-version-configuration-basic-settings"> <div class="title">{{ \'common:BASIC_SETTINGS\' | i18next }}</div> <form name="$ctrl.basicSettingsForm" class="basic-settings-wrapper" novalidate> <div class="row enable-checkbox"> <input type="checkbox" class="small" id="enable" data-ng-disabled="$ctrl.isFunctionDeploying()" data-ng-model="$ctrl.enableFunction" data-ng-change="$ctrl.updateEnableStatus()"> <label for="enable" class="checkbox-inline">{{ \'common:ENABLED\' | i18next }}</label> </div> <div class="row" data-ng-if="$ctrl.isDemoMode()"> <div class="timeout-block"> <div class="label"> <div class="timeout-checkbox"> <input type="checkbox" class="small" id="timeout" data-ng-disabled="$ctrl.isFunctionDeploying()" data-ng-model="$ctrl.enableTimeout"> <label for="timeout" class="checkbox-inline">{{ \'functions:TIMEOUT\' | i18next }}</label> </div> </div> <div class="timeout-values"> <div class="inputs"> <igz-validating-input-field data-field-type="input" data-input-name="min" data-input-value="$ctrl.timeout.min" data-is-focused="false" data-is-disabled="!$ctrl.enableTimeout" data-read-only="$ctrl.isFunctionDeploying()" data-update-data-callback="$ctrl.inputValueCallback(newData, field)" data-update-data-field="timeout.min" data-form-object="$ctrl.basicSettingsForm" data-validation-is-required="true" data-validation-rules="$ctrl.validationRules.integer" data-placeholder-text="{{ \'common:MIN\' | i18next }}..."> </igz-validating-input-field> <div class="values-label">{{ \'common:MIN\' | i18next }}</div> <igz-validating-input-field data-field-type="input" data-input-name="sec" data-input-value="$ctrl.timeout.sec" data-is-focused="false" data-is-disabled="!$ctrl.enableTimeout" data-read-only="$ctrl.isFunctionDeploying()" data-update-data-callback="$ctrl.inputValueCallback(newData, field)" data-update-data-field="timeout.sec" data-form-object="$ctrl.basicSettingsForm" data-validation-is-required="true" data-validation-rules="$ctrl.validationRules.integer" data-placeholder-text="{{ \'functions:SEC\' | i18next }}..."> </igz-validating-input-field> <div class="values-label">{{ \'functions:SEC\' | i18next }}</div> </div> </div> </div> </div> <div class="row"> <div class="description-block"> <div class="label">{{ \'common:DESCRIPTION\' | i18next }}</div> <igz-validating-input-field data-field-type="input" data-input-name="description" data-input-value="$ctrl.version.spec.description" data-is-focused="false" data-read-only="$ctrl.isFunctionDeploying()" data-update-data-callback="$ctrl.inputValueCallback(newData, field)" data-update-data-field="spec.description" data-form-object="$ctrl.basicSettingsForm" data-placeholder-text="{{ \'functions:PLACEHOLDER.ENTER_DESCRIPTION\' | i18next }}"> </igz-validating-input-field> </div> </div> <div class="row"> <div class="account-block"> <div class="label">{{ \'functions:SERVICE_ACCOUNT\' | i18next }}</div> <igz-validating-input-field data-field-type="input" data-input-name="serviceAccount" data-read-only="$ctrl.isFunctionDeploying()" data-input-value="$ctrl.version.spec.serviceAccount" data-update-data-callback="$ctrl.inputValueCallback(newData, field)" data-update-data-field="spec.serviceAccount" data-form-object="$ctrl.basicSettingsForm" data-placeholder-text="{{ \'functions:PLACEHOLDER.MY_SERVICE_ACCOUNT\' | i18next }}"> </igz-validating-input-field> </div> </div> <div class="row"> <div class="run-as-user-block"> <div class="label" data-ng-class="{asterisk: $ctrl.version.spec.securityContext.runAsGroup}"> {{ \'common:RUN_AS_USER\' | i18next }} </div> <igz-number-input data-allow-empty-field="true" data-validation-is-required="$ctrl.lodash.isNumber($ctrl.version.spec.securityContext.runAsGroup)" data-value-step="1" data-min-value="0" data-max-value="2147483647" data-is-disabled="$ctrl.isFunctionDeploying()" data-form-object="$ctrl.basicSettingsForm" data-input-name="run_as_user" data-update-number-input-callback="$ctrl.inputValueCallback(newData, field)" data-update-number-input-field="spec.securityContext.runAsUser" data-current-value="$ctrl.version.spec.securityContext.runAsUser"> </igz-number-input> </div> <div class="run-as-group-block"> <div class="label">{{ \'common:RUN_AS_GROUP\' | i18next }}</div> <igz-number-input data-allow-empty-field="true" data-value-step="1" data-min-value="0" data-max-value="2147483647" data-is-disabled="$ctrl.isFunctionDeploying()" data-form-object="$ctrl.basicSettingsForm" data-input-name="run_as_group" data-update-number-input-callback="$ctrl.inputValueCallback(newData, field)" data-update-number-input-field="spec.securityContext.runAsGroup" data-current-value="$ctrl.version.spec.securityContext.runAsGroup"> </igz-number-input> </div> <div class="fs-group-block" data-ng-if="!$ctrl.platformIsKube"> <div class="label">{{ \'common:FS_GROUP\' | i18next }}</div> <igz-number-input data-allow-empty-field="true" data-value-step="1" data-min-value="0" data-max-value="2147483647" data-is-disabled="$ctrl.isFunctionDeploying()" data-form-object="$ctrl.basicSettingsForm" data-input-name="fs_group" data-update-number-input-callback="$ctrl.inputValueCallback(newData, field)" data-update-number-input-field="spec.securityContext.fsGroup" data-current-value="$ctrl.version.spec.securityContext.fsGroup"> </igz-number-input> </div> </div> <div class="row"> <div class="logger-block"> <div class="logger-dropdown"> <span class="label">{{ \'functions:LOGGER_LEVEL\' | i18next }}</span> <igz-default-dropdown data-selected-item="$ctrl.version.spec.loggerSinks[0].level" data-select-property-only="id" data-values-array="$ctrl.logLevelValues" data-item-select-callback="$ctrl.setPriority(item)" data-read-only="$ctrl.isFunctionDeploying()" data-enable-overlap="true" data-prevent-drop-up="true"> </igz-default-dropdown> </div> <div class="logger-input" data-ng-if="$ctrl.isDemoMode()"> <span class="label">{{ \'functions:LOGGER_DESTINATION\' | i18next }}</span> <igz-validating-input-field data-field-type="input" data-input-name="arguments" data-read-only="$ctrl.isFunctionDeploying()" data-input-value="$ctrl.version.spec.loggerSinks[0].sink" data-update-data-callback="$ctrl.inputValueCallback(newData, field)" data-update-data-field="spec.loggerSinks[0].sink" data-form-object="$ctrl.basicSettingsForm" data-placeholder-text="{{ \'functions:PLACEHOLDER.ENTER_DESTINATION\' | i18next }}"> </igz-validating-input-field> </div> </div> </div> </form> </div> ');
|
|
25393
25393
|
}]);
|
|
25394
25394
|
})();
|
|
25395
25395
|
|
|
@@ -25400,8 +25400,8 @@ try {
|
|
|
25400
25400
|
module = angular.module('iguazio.dashboard-controls.templates', []);
|
|
25401
25401
|
}
|
|
25402
25402
|
module.run(['$templateCache', function($templateCache) {
|
|
25403
|
-
$templateCache.put('nuclio/functions/version/version-configuration/tabs/version-configuration-
|
|
25404
|
-
'<div class="ncl-version-configuration-
|
|
25403
|
+
$templateCache.put('nuclio/functions/version/version-configuration/tabs/version-configuration-annotations/version-configuration-annotations.tpl.html',
|
|
25404
|
+
'<div class="ncl-version-configuration-annotations"> <div class="title"> <span>{{ \'functions:ANNOTATIONS\' | i18next }}</span> <igz-more-info data-description="{{$ctrl.tooltip}}" data-trigger="click" data-is-html-enabled="true"> </igz-more-info> </div> <form name="$ctrl.annotationsForm" class="annotations-wrapper" novalidate> <div data-ng-if="$ctrl.annotations.length > 0" class="table-headers"> <div class="key-header"> {{ \'common:KEY\' | i18next }} <igz-more-info data-description="{{$ctrl.keyTooltip}}" data-trigger="click" data-is-html-enabled="true"> </igz-more-info> </div> <div class="value-header"> {{ \'common:VALUE\' | i18next }} </div> </div> <div class="igz-scrollable-container scrollable-annotations" data-ng-scrollbars data-igz-ng-scrollbars-config="{{$ctrl.igzScrollConfig}}" data-ng-scrollbars-config="$ctrl.scrollConfig"> <div class="table-body" data-ng-repeat="annotation in $ctrl.annotations"> <ncl-key-value-input class="new-label-input" data-row-data="annotation" data-use-type="false" data-is-disabled="$ctrl.isFunctionDeploying()" data-item-index="$index" data-validation-rules="$ctrl.validationRules" data-action-handler-callback="$ctrl.handleAction(actionType, index)" data-change-data-callback="$ctrl.onChangeData(newData, index)" data-submit-on-fly="true"> </ncl-key-value-input> </div> </div> <div class="igz-create-button create-annotation-button" data-ng-class="{\'disabled\': $ctrl.isFunctionDeploying()}" data-ng-click="$ctrl.addNewAnnotation($event)"> <span class="igz-icon-add-round"></span> {{ \'functions:CREATE_NEW_ANNOTATION\' | i18next }} </div> </form> </div> ');
|
|
25405
25405
|
}]);
|
|
25406
25406
|
})();
|
|
25407
25407
|
|