...
|
...
|
@@ -5327,6 +5327,17 @@ modalConfig:b
|
5327
|
5327
|
});
|
5328
|
5328
|
return c.result;
|
5329
|
5329
|
},
|
|
5330
|
+confirmSaveLog:function(b) {
|
|
5331
|
+var c = a.open({
|
|
5332
|
+animation:!0,
|
|
5333
|
+templateUrl:"views/modals/confirm-save-log.html",
|
|
5334
|
+controller:"ConfirmSaveLogController",
|
|
5335
|
+resolve:{
|
|
5336
|
+object:b
|
|
5337
|
+}
|
|
5338
|
+});
|
|
5339
|
+return c.result;
|
|
5340
|
+},
|
5330
|
5341
|
showJenkinsfileExamples:function() {
|
5331
|
5342
|
a.open({
|
5332
|
5343
|
animation:!0,
|
...
|
...
|
@@ -5342,6 +5353,39 @@ controller:"AboutComputeUnitsModalController"
|
5342
|
5342
|
});
|
5343
|
5343
|
}
|
5344
|
5344
|
};
|
|
5345
|
+} ]), angular.module("openshiftConsole").factory("CLIHelp", [ "$filter", function(a) {
|
|
5346
|
+var b = a("annotation"), c = function(a, c) {
|
|
5347
|
+if (!a) return null;
|
|
5348
|
+var d, e, f;
|
|
5349
|
+switch (a.kind) {
|
|
5350
|
+case "Pod":
|
|
5351
|
+d = "oc logs " + a.metadata.name, c && (d += " -c " + c);
|
|
5352
|
+break;
|
|
5353
|
+
|
|
5354
|
+case "DeploymentConfig":
|
|
5355
|
+d = "oc logs dc/" + a.metadata.name;
|
|
5356
|
+break;
|
|
5357
|
+
|
|
5358
|
+case "ReplicationController":
|
|
5359
|
+e = b(a, "deploymentConfig"), f = b(a, "deploymentVersion"), d = e && f ? "oc logs --version " + f + " dc/" + e :"oc logs rc/" + a.metadata.name;
|
|
5360
|
+break;
|
|
5361
|
+
|
|
5362
|
+case "BuildConfig":
|
|
5363
|
+d = "oc logs bc/" + a.metadata.name;
|
|
5364
|
+break;
|
|
5365
|
+
|
|
5366
|
+case "Build":
|
|
5367
|
+e = b(a, "buildConfig"), f = b(a, "buildNumber"), d = "oc logs --version " + f + " bc/" + e;
|
|
5368
|
+break;
|
|
5369
|
+
|
|
5370
|
+default:
|
|
5371
|
+return null;
|
|
5372
|
+}
|
|
5373
|
+return d += " -n " + a.metadata.namespace;
|
|
5374
|
+};
|
|
5375
|
+return {
|
|
5376
|
+getLogsCommand:c
|
|
5377
|
+};
|
5345
|
5378
|
} ]), angular.module("openshiftConsole").controller("ProjectsController", [ "$scope", "$filter", "$location", "$route", "$timeout", "AlertMessageService", "AuthService", "DataService", "KeywordService", "Logger", "ProjectsService", function(a, b, c, d, e, f, g, h, i, j, k) {
|
5346
|
5379
|
var l, m, n = [], o = [];
|
5347
|
5380
|
a.alerts = a.alerts || {}, a.loading = !0, a.showGetStarted = !1, a.canCreate = void 0, a.search = {
|
...
|
...
|
@@ -9896,6 +9940,12 @@ b.close("confirmScale");
|
9896
|
9896
|
}, a.cancel = function() {
|
9897
|
9897
|
b.dismiss("cancel");
|
9898
|
9898
|
};
|
|
9899
|
+} ]), angular.module("openshiftConsole").controller("ConfirmSaveLogController", [ "$scope", "$uibModalInstance", "object", "CLIHelp", function(a, b, c, d) {
|
|
9900
|
+a.object = c, a.command = d.getLogsCommand(c), a.save = function() {
|
|
9901
|
+b.close("save");
|
|
9902
|
+}, a.cancel = function() {
|
|
9903
|
+b.dismiss("cancel");
|
|
9904
|
+};
|
9899
|
9905
|
} ]), angular.module("openshiftConsole").controller("DeleteModalController", [ "$scope", "$uibModalInstance", function(a, b) {
|
9900
|
9906
|
a["delete"] = function() {
|
9901
|
9907
|
b.close("delete");
|
...
|
...
|
@@ -12780,15 +12830,15 @@ a.destroy();
|
12780
|
12780
|
});
|
12781
|
12781
|
}
|
12782
|
12782
|
};
|
12783
|
|
-} ]), angular.module("openshiftConsole").directive("logViewer", [ "$sce", "$timeout", "$window", "$filter", "AuthService", "APIService", "APIDiscovery", "DataService", "logLinks", "BREAKPOINTS", function(a, b, c, d, e, f, g, h, i, j) {
|
12784
|
|
-var k = $(window), l = function(a) {
|
|
12783
|
+} ]), angular.module("openshiftConsole").directive("logViewer", [ "$sce", "$timeout", "$window", "$filter", "AuthService", "APIService", "APIDiscovery", "DataService", "ModalsService", "logLinks", "BREAKPOINTS", function(a, b, c, d, e, f, g, h, i, j, k) {
|
|
12784
|
+var l = $(window), m = function(a) {
|
12785
|
12785
|
return a.replace(/https?:\/\/[A-Za-z0-9._%+-]+\S*[^\s.;,(){}<>"\u201d\u2019]/gm, function(a) {
|
12786
|
12786
|
return '<a href="' + a + '" target="_blank">' + a + "</a>";
|
12787
|
12787
|
});
|
12788
|
|
-}, m = $('<tr class="log-line"><td class="log-line-number"></td><td class="log-line-text"></td></tr>').get(0), n = function(a, b) {
|
12789
|
|
-var c = m.cloneNode(!0);
|
|
12788
|
+}, n = $('<tr class="log-line"><td class="log-line-number"></td><td class="log-line-text"></td></tr>').get(0), o = function(a, b) {
|
|
12789
|
+var c = n.cloneNode(!0);
|
12790
|
12790
|
c.firstChild.setAttribute("data-line-number", a);
|
12791
|
|
-var d = ansi_up.escape_for_html(b), e = ansi_up.ansi_to_html(d), f = l(e);
|
|
12791
|
+var d = ansi_up.escape_for_html(b), e = ansi_up.ansi_to_html(d), f = m(e);
|
12792
|
12792
|
return c.lastChild.innerHTML = f, c;
|
12793
|
12793
|
};
|
12794
|
12794
|
return {
|
...
|
...
|
@@ -12808,63 +12858,63 @@ chromeless:"=?",
|
12808
|
12808
|
empty:"=?",
|
12809
|
12809
|
run:"=?"
|
12810
|
12810
|
},
|
12811
|
|
-controller:[ "$scope", function(l) {
|
12812
|
|
-var m, o, p, q, r, s = document.documentElement;
|
12813
|
|
-l.logViewerID = _.uniqueId("log-viewer"), l.empty = !0;
|
|
12811
|
+controller:[ "$scope", function(i) {
|
|
12812
|
+var m, n, p, q, r, s = document.documentElement;
|
|
12813
|
+i.logViewerID = _.uniqueId("log-viewer"), i.empty = !0;
|
12814
|
12814
|
var t, u;
|
12815
|
|
-"ReplicationController" === l.object.kind ? (t = "deploymentconfigs/log", u = d("annotation")(l.object, "deploymentConfig")) :(t = f.kindToResource(l.object.kind) + "/log", u = l.object.metadata.name);
|
|
12815
|
+"ReplicationController" === i.object.kind ? (t = "deploymentconfigs/log", u = d("annotation")(i.object, "deploymentConfig")) :(t = f.kindToResource(i.object.kind) + "/log", u = i.object.metadata.name);
|
12816
|
12816
|
var v = function() {
|
12817
|
|
-q = window.innerWidth < j.screenSmMin && !l.fixedHeight ? null :o;
|
|
12817
|
+q = window.innerWidth < k.screenSmMin && !i.fixedHeight ? null :n;
|
12818
|
12818
|
}, w = function() {
|
12819
|
|
-l.$apply(function() {
|
|
12819
|
+i.$apply(function() {
|
12820
|
12820
|
var a = m.getBoundingClientRect();
|
12821
|
|
-l.fixedHeight ? l.showScrollLinks = a && a.height > l.fixedHeight :l.showScrollLinks = a && (a.top < 0 || a.bottom > s.clientHeight);
|
|
12821
|
+i.fixedHeight ? i.showScrollLinks = a && a.height > i.fixedHeight :i.showScrollLinks = a && (a.top < 0 || a.bottom > s.clientHeight);
|
12822
|
12822
|
});
|
12823
|
12823
|
}, x = !1, y = function() {
|
12824
|
|
-x ? x = !1 :l.$evalAsync(function() {
|
12825
|
|
-l.autoScrollActive = !1;
|
|
12824
|
+x ? x = !1 :i.$evalAsync(function() {
|
|
12825
|
+i.autoScrollActive = !1;
|
12826
|
12826
|
});
|
12827
|
12827
|
}, z = function() {
|
12828
|
|
-p.off("scroll", y), k.off("scroll", y), window.innerWidth <= j.screenSmMin && !l.fixedHeight ? k.on("scroll", y) :p.on("scroll", y);
|
|
12828
|
+p.off("scroll", y), l.off("scroll", y), window.innerWidth <= k.screenSmMin && !i.fixedHeight ? l.on("scroll", y) :p.on("scroll", y);
|
12829
|
12829
|
}, A = function() {
|
12830
|
|
-l.fixedHeight || (window.innerWidth < j.screenSmMin && !l.fixedHeight ? r.removeClass("target-logger-node").affix({
|
|
12830
|
+i.fixedHeight || (window.innerWidth < k.screenSmMin && !i.fixedHeight ? r.removeClass("target-logger-node").affix({
|
12831
|
12831
|
target:window,
|
12832
|
12832
|
offset:{
|
12833
|
|
-top:l.followAffixTop || 0,
|
12834
|
|
-bottom:l.followAffixBottom || 0
|
|
12833
|
+top:i.followAffixTop || 0,
|
|
12834
|
+bottom:i.followAffixBottom || 0
|
12835
|
12835
|
}
|
12836
|
12836
|
}) :r.addClass("target-logger-node").affix({
|
12837
|
12837
|
target:p,
|
12838
|
12838
|
offset:{
|
12839
|
|
-top:l.followAffixTop || 0,
|
12840
|
|
-bottom:l.followAffixBottom || 0
|
|
12839
|
+top:i.followAffixTop || 0,
|
|
12840
|
+bottom:i.followAffixBottom || 0
|
12841
|
12841
|
}
|
12842
|
12842
|
}));
|
12843
|
12843
|
}, B = function(a) {
|
12844
|
|
-var b = $("#" + l.logViewerID + " .log-view-output"), c = b.offset().top;
|
|
12844
|
+var b = $("#" + i.logViewerID + " .log-view-output"), c = b.offset().top;
|
12845
|
12845
|
if (!(c < 0)) {
|
12846
|
|
-var d = $(".ellipsis-pulser").outerHeight(!0), e = l.fixedHeight ? l.fixedHeight :Math.floor($(window).height() - c - d);
|
12847
|
|
-l.chromeless || l.fixedHeight || (e -= 35), a ? b.animate({
|
|
12846
|
+var d = $(".ellipsis-pulser").outerHeight(!0), e = i.fixedHeight ? i.fixedHeight :Math.floor($(window).height() - c - d);
|
|
12847
|
+i.chromeless || i.fixedHeight || (e -= 35), a ? b.animate({
|
12848
|
12848
|
"min-height":e + "px"
|
12849
|
|
-}, "fast") :b.css("min-height", e + "px"), l.fixedHeight && b.css("max-height", e);
|
|
12849
|
+}, "fast") :b.css("min-height", e + "px"), i.fixedHeight && b.css("max-height", e);
|
12850
|
12850
|
}
|
12851
|
12851
|
}, C = _.debounce(function() {
|
12852
|
12852
|
B(!0), v(), z(), w(), A(), y();
|
12853
|
12853
|
}, 100);
|
12854
|
|
-k.on("resize", C);
|
|
12854
|
+l.on("resize", C);
|
12855
|
12855
|
var D, E = function() {
|
12856
|
|
-x = !0, i.scrollBottom(q);
|
|
12856
|
+x = !0, j.scrollBottom(q);
|
12857
|
12857
|
}, F = function() {
|
12858
|
|
-l.autoScrollActive = !l.autoScrollActive, l.autoScrollActive && E();
|
|
12858
|
+i.autoScrollActive = !i.autoScrollActive, i.autoScrollActive && E();
|
12859
|
12859
|
}, G = document.createDocumentFragment(), H = _.debounce(function() {
|
12860
|
|
-m.appendChild(G), G = document.createDocumentFragment(), l.autoScrollActive && E(), l.showScrollLinks || w();
|
|
12860
|
+m.appendChild(G), G = document.createDocumentFragment(), i.autoScrollActive && E(), i.showScrollLinks || w();
|
12861
|
12861
|
}, 100, {
|
12862
|
12862
|
maxWait:300
|
12863
|
12863
|
}), I = function(a) {
|
12864
|
12864
|
D && (D.stop(), D = null), a || (H.cancel(), m && (m.innerHTML = ""), G = document.createDocumentFragment());
|
12865
|
12865
|
}, J = function() {
|
12866
|
|
-if (I(), l.run) {
|
12867
|
|
-angular.extend(l, {
|
|
12866
|
+if (I(), i.run) {
|
|
12867
|
+angular.extend(i, {
|
12868
|
12868
|
loading:!0,
|
12869
|
12869
|
autoScroll:!1,
|
12870
|
12870
|
limitReached:!1,
|
...
|
...
|
@@ -12874,82 +12924,91 @@ var a = angular.extend({
|
12874
|
12874
|
follow:!0,
|
12875
|
12875
|
tailLines:5e3,
|
12876
|
12876
|
limitBytes:10485760
|
12877
|
|
-}, l.options);
|
12878
|
|
-D = h.createStream(t, u, l.context, a);
|
|
12877
|
+}, i.options);
|
|
12878
|
+D = h.createStream(t, u, i.context, a);
|
12879
|
12879
|
var c = 0, d = function(a) {
|
12880
|
|
-c++, G.appendChild(n(c, a)), H();
|
|
12880
|
+c++, G.appendChild(o(c, a)), H();
|
12881
|
12881
|
};
|
12882
|
12882
|
D.onMessage(function(b, e, f) {
|
12883
|
|
-l.$evalAsync(function() {
|
12884
|
|
-l.empty = !1, "logs" !== l.state && (l.state = "logs", setTimeout(B));
|
12885
|
|
-}), b && (a.limitBytes && f >= a.limitBytes && (l.$evalAsync(function() {
|
12886
|
|
-l.limitReached = !0, l.loading = !1;
|
12887
|
|
-}), I(!0)), d(b), !l.largeLog && c >= a.tailLines && l.$evalAsync(function() {
|
12888
|
|
-l.largeLog = !0;
|
|
12883
|
+i.$evalAsync(function() {
|
|
12884
|
+i.empty = !1, "logs" !== i.state && (i.state = "logs", setTimeout(B));
|
|
12885
|
+}), b && (a.limitBytes && f >= a.limitBytes && (i.$evalAsync(function() {
|
|
12886
|
+i.limitReached = !0, i.loading = !1;
|
|
12887
|
+}), I(!0)), d(b), !i.largeLog && c >= a.tailLines && i.$evalAsync(function() {
|
|
12888
|
+i.largeLog = !0;
|
12889
|
12889
|
}));
|
12890
|
12890
|
}), D.onClose(function() {
|
12891
|
|
-D = null, l.$evalAsync(function() {
|
12892
|
|
-l.autoScrollActive = !1, 0 !== c || l.emptyStateMessage || (l.state = "empty", l.emptyStateMessage = "The logs are no longer available or could not be loaded.");
|
|
12891
|
+D = null, i.$evalAsync(function() {
|
|
12892
|
+i.autoScrollActive = !1, 0 !== c || i.emptyStateMessage || (i.state = "empty", i.emptyStateMessage = "The logs are no longer available or could not be loaded.");
|
12893
|
12893
|
}), b(function() {
|
12894
|
|
-l.loading = !1;
|
|
12894
|
+i.loading = !1;
|
12895
|
12895
|
}, 100);
|
12896
|
12896
|
}), D.onError(function() {
|
12897
|
|
-D = null, l.$evalAsync(function() {
|
12898
|
|
-angular.extend(l, {
|
|
12897
|
+D = null, i.$evalAsync(function() {
|
|
12898
|
+angular.extend(i, {
|
12899
|
12899
|
loading:!1,
|
12900
|
12900
|
autoScroll:!1
|
12901
|
|
-}), 0 === c ? (l.state = "empty", l.emptyStateMessage = "The logs are no longer available or could not be loaded.") :l.errorWhileRunning = !0;
|
|
12901
|
+}), 0 === c ? (i.state = "empty", i.emptyStateMessage = "The logs are no longer available or could not be loaded.") :i.errorWhileRunning = !0;
|
12902
|
12902
|
});
|
12903
|
12903
|
}), D.start();
|
12904
|
12904
|
}
|
12905
|
12905
|
};
|
12906
|
12906
|
return g.getLoggingURL().then(function(b) {
|
12907
|
|
-var d = _.get(l.context, "project.metadata.name"), f = _.get(l.options, "container");
|
12908
|
|
-d && f && u && b && (angular.extend(l, {
|
|
12907
|
+var d = _.get(i.context, "project.metadata.name"), f = _.get(i.options, "container");
|
|
12908
|
+d && f && u && b && (angular.extend(i, {
|
12909
|
12909
|
kibanaAuthUrl:a.trustAsResourceUrl(URI(b).segment("auth").segment("token").normalizePathname().toString()),
|
12910
|
12910
|
access_token:e.UserStore().getToken()
|
12911
|
|
-}), l.$watchGroup([ "context.project.metadata.name", "options.container", "name" ], function() {
|
12912
|
|
-angular.extend(l, {
|
12913
|
|
-kibanaArchiveUrl:a.trustAsResourceUrl(i.archiveUri({
|
12914
|
|
-namespace:l.context.project.metadata.name,
|
12915
|
|
-namespaceUid:l.context.project.metadata.uid,
|
|
12911
|
+}), i.$watchGroup([ "context.project.metadata.name", "options.container", "name" ], function() {
|
|
12912
|
+angular.extend(i, {
|
|
12913
|
+kibanaArchiveUrl:a.trustAsResourceUrl(j.archiveUri({
|
|
12914
|
+namespace:i.context.project.metadata.name,
|
|
12915
|
+namespaceUid:i.context.project.metadata.uid,
|
12916
|
12916
|
podname:u,
|
12917
|
|
-containername:l.options.container,
|
|
12917
|
+containername:i.options.container,
|
12918
|
12918
|
backlink:URI.encode(c.location.href)
|
12919
|
12919
|
}))
|
12920
|
12920
|
});
|
12921
|
12921
|
}));
|
12922
|
12922
|
}), this.cacheScrollableNode = function(a) {
|
12923
|
|
-o = a, p = $(o);
|
|
12923
|
+n = a, p = $(n);
|
12924
|
12924
|
}, this.cacheLogNode = function(a) {
|
12925
|
12925
|
m = a;
|
12926
|
12926
|
}, this.cacheAffixable = function(a) {
|
12927
|
12927
|
r = $(a);
|
12928
|
12928
|
}, this.start = function() {
|
12929
|
12929
|
v(), z(), A();
|
12930
|
|
-}, angular.extend(l, {
|
|
12930
|
+}, angular.extend(i, {
|
12931
|
12931
|
ready:!0,
|
12932
|
12932
|
loading:!0,
|
12933
|
12933
|
autoScroll:!1,
|
12934
|
12934
|
state:!1,
|
12935
|
12935
|
onScrollBottom:function() {
|
12936
|
|
-i.scrollBottom(q);
|
|
12936
|
+j.scrollBottom(q);
|
12937
|
12937
|
},
|
12938
|
12938
|
onScrollTop:function() {
|
12939
|
|
-l.autoScrollActive = !1, i.scrollTop(q);
|
|
12939
|
+i.autoScrollActive = !1, j.scrollTop(q);
|
12940
|
12940
|
},
|
12941
|
12941
|
toggleAutoScroll:F,
|
12942
|
|
-goChromeless:i.chromelessLink,
|
|
12942
|
+goChromeless:j.chromelessLink,
|
12943
|
12943
|
restartLogs:J
|
12944
|
|
-}), l.$on("$destroy", function() {
|
12945
|
|
-I(), k.off("resize", C), k.off("scroll", y), p.off("scroll", y);
|
12946
|
|
-}), "deploymentconfigs/logs" !== t || u ? void l.$watchGroup([ "name", "options.container", "run" ], J) :(l.state = "empty", void (l.emptyStateMessage = "Logs are not available for this replication controller because it was not generated from a deployment configuration."));
|
|
12944
|
+}), i.$on("$destroy", function() {
|
|
12945
|
+I(), l.off("resize", C), l.off("scroll", y), p.off("scroll", y);
|
|
12946
|
+}), "deploymentconfigs/logs" !== t || u ? void i.$watchGroup([ "name", "options.container", "run" ], J) :(i.state = "empty", void (i.emptyStateMessage = "Logs are not available for this replication controller because it was not generated from a deployment configuration."));
|
12947
|
12947
|
} ],
|
12948
|
12948
|
require:"logViewer",
|
12949
|
12949
|
link:function(a, c, d, e) {
|
12950
|
12950
|
b(function() {
|
12951
|
12951
|
e.cacheScrollableNode(document.getElementById(a.fixedHeight ? a.logViewerID + "-fixed-scrollable" :"container-main")), e.cacheLogNode(document.getElementById(a.logViewerID + "-logContent")), e.cacheAffixable(document.getElementById(a.logViewerID + "-affixedFollow")), e.start();
|
12952
|
12952
|
}, 0);
|
|
12953
|
+var f = function() {
|
|
12954
|
+var b = $(c).find(".log-line-text").text(), d = _.get(a, "object.metadata.name", "openshift") + ".log", e = new Blob([ b ], {
|
|
12955
|
+type:"text/plain;charset=utf-8"
|
|
12956
|
+});
|
|
12957
|
+saveAs(e, d);
|
|
12958
|
+};
|
|
12959
|
+a.canSave = !!new Blob(), a.saveLog = function() {
|
|
12960
|
+return a.largeLog ? void i.confirmSaveLog(a.object).then(f) :void f();
|
|
12961
|
+};
|
12953
|
12962
|
}
|
12954
|
12963
|
};
|
12955
|
12964
|
} ]), angular.module("openshiftConsole").directive("statusIcon", function() {
|
...
|
...
|
@@ -22923,10 +22982,15 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
22923
|
22923
|
"</form>\n" +
|
22924
|
22924
|
"<span ng-if=\"state && state !== 'empty'\" class=\"action-divider\">|</span>\n" +
|
22925
|
22925
|
"</span>\n" +
|
|
22926
|
+ "<span ng-if=\"canSave && state && state !== 'empty'\">\n" +
|
|
22927
|
+ "<a href=\"\" ng-click=\"saveLog()\" role=\"button\">\n" +
|
|
22928
|
+ "Save\n" +
|
|
22929
|
+ "<i class=\"fa fa-download\"></i></a>\n" +
|
|
22930
|
+ "<span ng-if=\"state && state !== 'empty'\" class=\"action-divider\">|</span>\n" +
|
|
22931
|
+ "</span>\n" +
|
22926
|
22932
|
"<a ng-if=\"state && state !== 'empty'\" href=\"\" ng-click=\"goChromeless(options, fullLogUrl)\" role=\"button\">\n" +
|
22927
|
|
- "Expand Log\n" +
|
22928
|
|
- "<i class=\"fa fa-external-link\"></i>\n" +
|
22929
|
|
- "</a>\n" +
|
|
22933
|
+ "Expand\n" +
|
|
22934
|
+ "<i class=\"fa fa-external-link\"></i></a>\n" +
|
22930
|
22935
|
"</div>\n" +
|
22931
|
22936
|
"</div>\n" +
|
22932
|
22937
|
"<div ng-if=\"largeLog\" class=\"alert alert-info log-size-warning\">\n" +
|
...
|
...
|
@@ -25615,6 +25679,27 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
25615
|
25615
|
);
|
25616
|
25616
|
|
25617
|
25617
|
|
|
25618
|
+ $templateCache.put('views/modals/confirm-save-log.html',
|
|
25619
|
+ "<div class=\"modal-resource-action\">\n" +
|
|
25620
|
+ "<div class=\"modal-body\">\n" +
|
|
25621
|
+ "<h1>Save partial log for <strong>{{object.metadata.name}}</strong>?</h1>\n" +
|
|
25622
|
+ "<div class=\"mar-bottom-xl\">\n" +
|
|
25623
|
+ "The log might not be complete. Continuing will save only the content currently displayed.\n" +
|
|
25624
|
+ "<span ng-if=\"command\">To get the complete log, run the command</span>\n" +
|
|
25625
|
+ "</div>\n" +
|
|
25626
|
+ "<copy-to-clipboard ng-if=\"command\" display-wide=\"true\" clipboard-text=\"command\"></copy-to-clipboard>\n" +
|
|
25627
|
+ "<div class=\"mar-top-xl\">\n" +
|
|
25628
|
+ "Learn more about the <a href=\"command-line\" target=\"_blank\">command line tools</a>.\n" +
|
|
25629
|
+ "</div>\n" +
|
|
25630
|
+ "</div>\n" +
|
|
25631
|
+ "<div class=\"modal-footer\">\n" +
|
|
25632
|
+ "<button class=\"btn btn-lg btn-primary\" type=\"button\" ng-click=\"save()\">Save</button>\n" +
|
|
25633
|
+ "<button class=\"btn btn-lg btn-default\" type=\"button\" ng-click=\"cancel()\">Cancel</button>\n" +
|
|
25634
|
+ "</div>\n" +
|
|
25635
|
+ "</div>"
|
|
25636
|
+ );
|
|
25637
|
+
|
|
25638
|
+
|
25618
|
25639
|
$templateCache.put('views/modals/confirm.html',
|
25619
|
25640
|
"<div class=\"modal-resource-action\">\n" +
|
25620
|
25641
|
"<div class=\"modal-body\">\n" +
|
...
|
...
|
@@ -84419,7 +84504,72 @@ encode:a.encode,
|
84419
|
84419
|
urldecode:b.decode,
|
84420
|
84420
|
urlencode:b.encode
|
84421
|
84421
|
};
|
84422
|
|
-}());`)
|
|
84422
|
+}());
|
|
84423
|
+
|
|
84424
|
+var saveAs = saveAs || function(a) {
|
|
84425
|
+"use strict";
|
|
84426
|
+if (!("undefined" == typeof a || "undefined" != typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent))) {
|
|
84427
|
+var b = a.document, c = function() {
|
|
84428
|
+return a.URL || a.webkitURL || a;
|
|
84429
|
+}, d = b.createElementNS("http://www.w3.org/1999/xhtml", "a"), e = "download" in d, f = function(a) {
|
|
84430
|
+var b = new MouseEvent("click");
|
|
84431
|
+a.dispatchEvent(b);
|
|
84432
|
+}, g = /constructor/i.test(a.HTMLElement) || a.safari, h = /CriOS\/[\d]+/.test(navigator.userAgent), i = function(b) {
|
|
84433
|
+(a.setImmediate || a.setTimeout)(function() {
|
|
84434
|
+throw b;
|
|
84435
|
+}, 0);
|
|
84436
|
+}, j = "application/octet-stream", k = 4e4, l = function(a) {
|
|
84437
|
+var b = function() {
|
|
84438
|
+"string" == typeof a ? c().revokeObjectURL(a) :a.remove();
|
|
84439
|
+};
|
|
84440
|
+setTimeout(b, k);
|
|
84441
|
+}, m = function(a, b, c) {
|
|
84442
|
+b = [].concat(b);
|
|
84443
|
+for (var d = b.length; d--; ) {
|
|
84444
|
+var e = a["on" + b[d]];
|
|
84445
|
+if ("function" == typeof e) try {
|
|
84446
|
+e.call(a, c || a);
|
|
84447
|
+} catch (f) {
|
|
84448
|
+i(f);
|
|
84449
|
+}
|
|
84450
|
+}
|
|
84451
|
+}, n = function(a) {
|
|
84452
|
+return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob([ String.fromCharCode(65279), a ], {
|
|
84453
|
+type:a.type
|
|
84454
|
+}) :a;
|
|
84455
|
+}, o = function(b, i, k) {
|
|
84456
|
+k || (b = n(b));
|
|
84457
|
+var o, p = this, q = b.type, r = q === j, s = function() {
|
|
84458
|
+m(p, "writestart progress write writeend".split(" "));
|
|
84459
|
+}, t = function() {
|
|
84460
|
+if ((h || r && g) && a.FileReader) {
|
|
84461
|
+var d = new FileReader();
|
|
84462
|
+return d.onloadend = function() {
|
|
84463
|
+var b = h ? d.result :d.result.replace(/^data:[^;]*;/, "data:attachment/file;"), c = a.open(b, "_blank");
|
|
84464
|
+c || (a.location.href = b), b = void 0, p.readyState = p.DONE, s();
|
|
84465
|
+}, d.readAsDataURL(b), void (p.readyState = p.INIT);
|
|
84466
|
+}
|
|
84467
|
+if (o || (o = c().createObjectURL(b)), r) a.location.href = o; else {
|
|
84468
|
+var e = a.open(o, "_blank");
|
|
84469
|
+e || (a.location.href = o);
|
|
84470
|
+}
|
|
84471
|
+p.readyState = p.DONE, s(), l(o);
|
|
84472
|
+};
|
|
84473
|
+return p.readyState = p.INIT, e ? (o = c().createObjectURL(b), void setTimeout(function() {
|
|
84474
|
+d.href = o, d.download = i, f(d), s(), l(o), p.readyState = p.DONE;
|
|
84475
|
+})) :void t();
|
|
84476
|
+}, p = o.prototype, q = function(a, b, c) {
|
|
84477
|
+return new o(a, b || a.name || "download", c);
|
|
84478
|
+};
|
|
84479
|
+return "undefined" != typeof navigator && navigator.msSaveOrOpenBlob ? function(a, b, c) {
|
|
84480
|
+return b = b || a.name || "download", c || (a = n(a)), navigator.msSaveOrOpenBlob(a, b);
|
|
84481
|
+} :(p.abort = function() {}, p.readyState = p.INIT = 0, p.WRITING = 1, p.DONE = 2, p.error = p.onwritestart = p.onprogress = p.onwrite = p.onabort = p.onerror = p.onwriteend = null, q);
|
|
84482
|
+}
|
|
84483
|
+}("undefined" != typeof self && self || "undefined" != typeof window && window || this.content);
|
|
84484
|
+
|
|
84485
|
+"undefined" != typeof module && module.exports ? module.exports.saveAs = saveAs :"undefined" != typeof define && null !== define && null !== define.amd && define("FileSaver.js", function() {
|
|
84486
|
+return saveAs;
|
|
84487
|
+});`)
|
84423
|
84488
|
|
84424
|
84489
|
func scriptsVendorJsBytes() ([]byte, error) {
|
84425
|
84490
|
return _scriptsVendorJs, nil
|