@@ -11290,15 +11290,17 @@ _.set(a, "model.service", c);
11290
11290
});
11291
11291
}
11292
11292
};
11293
- }), angular.module("openshiftConsole").directive("oscPersistentVolumeClaim", [ "DataService", "ModalsService", function(a, b) {
11293
+ }), angular.module("openshiftConsole").directive("oscPersistentVolumeClaim", [ "$filter", " DataService", "LimitRangesService", " ModalsService", function(a, b, c, d ) {
11294
11294
return {
11295
11295
restrict:"E",
11296
11296
scope:{
11297
- claim:"=model"
11297
+ claim:"=model",
11298
+ projectName:"="
11298
11299
},
11299
11300
templateUrl:"views/directives/osc-persistent-volume-claim.html",
11300
- link:function(c) {
11301
- c.storageClasses = [], c.claim.unit = "Gi", c.units = [ {
11301
+ link:function(e) {
11302
+ var f = a("amountAndUnit"), g = a("usageValue");
11303
+ e.storageClasses = [], e.claim.unit = "Gi", e.units = [ {
11302
11304
value:"Mi",
11303
11305
label:"MiB"
11304
11306
}, {
@@ -11316,7 +11318,7 @@ label:"GB"
11316
11318
}, {
11317
11319
value:"T",
11318
11320
label:"TB"
11319
- } ], c .claim.selectedLabels = [], c .groupUnits = function(a) {
11321
+ } ], e .claim.selectedLabels = [], e .groupUnits = function(a) {
11320
11322
switch (a.value) {
11321
11323
case "Mi":
11322
11324
case "Gi":
@@ -11329,15 +11331,33 @@ case "T":
11329
11331
return "Decimal Units";
11330
11332
}
11331
11333
return "";
11332
- }, c.showComputeUnitsHelp = function() {
11333
- b.showComputeUnitsHelp();
11334
- }, a.list({
11334
+ }, e.showComputeUnitsHelp = function() {
11335
+ d.showComputeUnitsHelp();
11336
+ };
11337
+ var h = function() {
11338
+ var a = e.claim.amount && g(e.claim.amount + e.claim.unit), b = _.has(e, "limits.min") && g(e.limits.min), c = _.has(e, "limits.max") && g(e.limits.max), d = !0, f = !0;
11339
+ a && b && (d = a >= b), a && c && (f = a <= c), e.persistentVolumeClaimForm.capacity.$setValidity("limitRangeMin", d), e.persistentVolumeClaimForm.capacity.$setValidity("limitRangeMax", f);
11340
+ };
11341
+ b.list({
11335
11342
group:"storage.k8s.io",
11336
11343
resource:"storageclasses"
11337
11344
}, {}, function(a) {
11338
- c .storageClasses = a.by("metadata.name");
11345
+ e .storageClasses = a.by("metadata.name");
11339
11346
}, {
11340
11347
errorNotification:!1
11348
+ }), b.list("limitranges", {
11349
+ namespace:e.projectName
11350
+ }, function(a) {
11351
+ var b = a.by("metadata.name");
11352
+ if (!_.isEmpty(b)) {
11353
+ e.limits = c.getEffectiveLimitRange(b, "storage", "PersistentVolumeClaim");
11354
+ var d;
11355
+ if (e.limits.min && e.limits.max) {
11356
+ var i = g(e.limits.min), j = g(e.limits.max);
11357
+ i === j && (d = f(e.limits.max), e.claim.amount = Number(d[0]), e.claim.unit = d[1], e.capacityReadOnly = !0);
11358
+ }
11359
+ e.$watchGroup([ "claim.amount", "claim.unit" ], h);
11360
+ }
11341
11361
});
11342
11362
}
11343
11363
};
@@ -20585,7 +20605,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
20585
20605
"</div>\n" +
20586
20606
"<form name=\"createPersistentVolumeClaimForm\" class=\"mar-top-lg\">\n" +
20587
20607
"<fieldset ng-disabled=\"disableInputs\">\n" +
20588
- "<osc-persistent-volume-claim model=\"claim\"></osc-persistent-volume-claim>\n" +
20608
+ "<osc-persistent-volume-claim model=\"claim\" project-name=\"projectName\" ></osc-persistent-volume-claim>\n" +
20589
20609
"<div class=\"button-group gutter-bottom\">\n" +
20590
20610
"<button type=\"submit\" class=\"btn btn-primary btn-lg\" ng-click=\"createPersistentVolumeClaim()\" ng-disabled=\"createPersistentVolumeClaimForm.$invalid || disableInputs\" value=\"\">Create</button>\n" +
20591
20611
"<a class=\"btn btn-default btn-lg\" href=\"\" back>Cancel</a>\n" +
@@ -23601,7 +23621,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
23601
23621
"</div>\n" +
23602
23622
"</div>\n" +
23603
23623
"<div class=\"form-group\">\n" +
23604
- "<label class=\"required\">Access Mode</label><br/> \n" +
23624
+ "<label class=\"required\">Access Mode</label>\n" +
23605
23625
"<div class=\"radio\">\n" +
23606
23626
"<label class=\"radio-inline\">\n" +
23607
23627
"<input type=\"radio\" name=\"accessModes\" ng-model=\"claim.accessModes\" value=\"ReadWriteOnce\" aria-describedby=\"access-modes-help\" ng-checked=\"true\">\n" +
@@ -23621,13 +23641,31 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
23621
23641
"</div>\n" +
23622
23642
"</div>\n" +
23623
23643
"\n" +
23624
- "<div class=\"form-group\">\n" +
23644
+ "<div ng-if=\"capacityReadOnly\" class=\"form-group mar-bottom-xl\">\n" +
23645
+ "<label>Size</label>\n" +
23646
+ "<div class=\"static-form-value-large\">\n" +
23647
+ "{{claim.amount}} {{claim.unit | humanizeUnit : 'storage'}}\n" +
23648
+ "<small>(cannot be changed)</small>\n" +
23649
+ "</div>\n" +
23650
+ "</div>\n" +
23651
+ "<div ng-if=\"!capacityReadOnly\" class=\"form-group\">\n" +
23625
23652
"<fieldset class=\"form-inline compute-resource\">\n" +
23626
- "<label class=\"required\">Size</label>\n" +
23627
- "<div class=\"resource-size\">\n" +
23628
- "<div class=\"resource-amount\" ng-class=\"{ 'has-error': persistentVolumeClaimForm.capacity.$invalid && persistentVolumeClaimForm.capacity.$touched && !claimDisabled }\">\n" +
23629
- "<label class=\"sr-only\">Amount</label>\n" +
23630
- "<input type=\"number\" name=\"capacity\" ng-attr-id=\"claim-amount\" ng-model=\"claim.amount\" ng-required=\"true\" min=\"0\" ng-attr-placeholder=\"10\" class=\"form-control\" ng-attr-aria-describedby=\"claim-capacity-help\">\n" +
23653
+ "<label class=\"required\">\n" +
23654
+ "Size\n" +
23655
+ "<small ng-if=\"limits.min && limits.max\">\n" +
23656
+ "{{limits.min | usageWithUnits : 'storage'}} min to {{limits.max | usageWithUnits : 'storage'}} max\n" +
23657
+ "</small>\n" +
23658
+ "<small ng-if=\"limits.min && !limits.max\">\n" +
23659
+ "Min: {{limits.min | usageWithUnits : 'storage'}}\n" +
23660
+ "</small>\n" +
23661
+ "<small ng-if=\"limits.max && !limits.min\">\n" +
23662
+ "Max: {{limits.max | usageWithUnits : 'storage'}}\n" +
23663
+ "</small>\n" +
23664
+ "</label>\n" +
23665
+ "<div class=\"resource-size\" ng-class=\"{ 'has-error': persistentVolumeClaimForm.capacity.$invalid && persistentVolumeClaimForm.capacity.$touched && !claimDisabled }\">\n" +
23666
+ "<div class=\"resource-amount\">\n" +
23667
+ "<label for=\"claim-amount\" class=\"sr-only\">Amount</label>\n" +
23668
+ "<input type=\"number\" name=\"capacity\" id=\"claim-amount\" ng-model=\"claim.amount\" required min=\"0\" class=\"form-control\" aria-describedby=\"claim-capacity-help\">\n" +
23631
23669
"</div>\n" +
23632
23670
"<div class=\"resource-unit\">\n" +
23633
23671
"<label class=\"sr-only\">Unit</label>\n" +
@@ -23642,16 +23680,28 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
23642
23680
"<div id=\"claim-capacity-help\" class=\"help-block\">\n" +
23643
23681
"Desired storage capacity.\n" +
23644
23682
"</div>\n" +
23645
- "<div class=\"has-error\" ng-show=\"persistentVolumeClaimForm.capacity.$error.number && persistentVolumeClaimForm.capacity.$touched && !claimDisabled\">\n" +
23683
+ "<div ng-if=\"persistentVolumeClaimForm.capacity.$touched && !claimDisabled\">\n" +
23684
+ "<div class=\"has-error\" ng-show=\"persistentVolumeClaimForm.capacity.$error.number\">\n" +
23646
23685
"<span class=\"help-block\">\n" +
23647
23686
"Must be a number.\n" +
23648
23687
"</span>\n" +
23649
23688
"</div>\n" +
23650
- "<div class=\"has-error\" ng-show=\"persistentVolumeClaimForm.capacity.$error.min && persistentVolumeClaimForm.capacity.$touched && !claimDisabled \">\n" +
23689
+ "<div class=\"has-error\" ng-show=\"persistentVolumeClaimForm.capacity.$error.min\">\n" +
23651
23690
"<span class=\"help-block\">\n" +
23652
23691
"Must be a positive number.\n" +
23653
23692
"</span>\n" +
23654
23693
"</div>\n" +
23694
+ "<div ng-if=\"persistentVolumeClaimForm.capacity.$error.limitRangeMin\" class=\"has-error\">\n" +
23695
+ "<span class=\"help-block\">\n" +
23696
+ "Can't be less than {{limits.min | usageWithUnits : 'storage'}}.\n" +
23697
+ "</span>\n" +
23698
+ "</div>\n" +
23699
+ "<div ng-if=\"persistentVolumeClaimForm.capacity.$error.limitRangeMax\" class=\"has-error\">\n" +
23700
+ "<span class=\"help-block\">\n" +
23701
+ "Can't be greater than {{limits.max | usageWithUnits : 'storage'}}.\n" +
23702
+ "</span>\n" +
23703
+ "</div>\n" +
23704
+ "</div>\n" +
23655
23705
"<div class=\"learn-more-block mar-top-sm\">\n" +
23656
23706
"<a href=\"\" ng-click=\"showComputeUnitsHelp()\">What are GiB?</a>\n" +
23657
23707
"</div>\n" +
@@ -113059,6 +113109,8 @@ to{transform:rotate(359deg)}
113059
113109
.btn-flat-default:focus,.btn-flat-default:hover{background-color:#f7f7f7;border-color:#e7e7e7}
113060
113110
.btn-remove{color:#333;display:inline-block;font-size:15px;line-height:1;opacity:.65;padding:5px 7px;vertical-align:middle}
113061
113111
.btn-remove:focus,.btn-remove:hover{color:inherit;opacity:1;text-decoration:none}
113112
+ .static-form-value-large{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;margin-bottom:10.5px;font-size:16px;margin-top:3px}
113113
+ .static-form-value-large .small,.static-form-value-large small{font-weight:400;line-height:1;color:#9c9c9c;font-size:65%}
113062
113114
.copy-to-clipboard input.form-control:read-only{background-color:#fff;color:#363636}
113063
113115
.copy-to-clipboard-multiline{position:relative;width:100%}
113064
113116
.copy-to-clipboard-multiline a{box-shadow:none;position:absolute;right:0;top:0}
0 commit comments