const clusterSelect = $("#cluster"); const chartsCards = $("#charts"); const revRow = $("#sectionDetails .row"); function reportError(err) { alert(err) // TODO: nice modal/baloon/etc } function revisionClicked(namespace, name, self) { let active = "active border-primary border-2 bg-opacity-25 bg-primary"; let inactive = "border-secondary bg-white"; revRow.find(".active").removeClass(active).addClass(inactive) self.removeClass(inactive).addClass(active) const elm = self.data("elm") setHashParam("revision", elm.revision) $("#sectionDetails h1 span.rev").text(elm.revision) $("#chartName").text(elm.chart) $("#revDescr").text(elm.description).removeClass("text-danger") if (elm.status === "failed") { $("#revDescr").addClass("text-danger") } const tab = getHashParam("tab") if (!tab) { $("#nav-tab [data-tab=resources]").click() } else { $("#nav-tab [data-tab=" + tab + "]").click() } } $("#nav-tab [data-tab]").click(function () { const self = $(this) setHashParam("tab", self.data("tab")) if (self.data("tab") === "values") { $("#userDefinedVals").parent().show() } else { $("#userDefinedVals").parent().hide() } const flag = getHashParam("udv") === "true"; $("#userDefinedVals").prop("checked", flag) if (self.data("tab") === "resources") { showResources(getHashParam("namespace"), getHashParam("chart"), getHashParam("revision")) } else { const mode = getHashParam("mode") if (!mode) { $("#modePanel [data-mode=diff-prev]").trigger('click') } else { $("#modePanel [data-mode=" + mode + "]").trigger('click') } } }) $("#modePanel [data-mode]").click(function () { const self = $(this) const mode = self.data("mode") setHashParam("mode", mode) loadContentWrapper() }) $("#userDefinedVals").change(function () { const self = $(this) const flag = $("#userDefinedVals").prop("checked"); setHashParam("udv", flag) loadContentWrapper() }) function loadContentWrapper() { let revDiff = 0 const revision = parseInt(getHashParam("revision")); if (getHashParam("mode") === "diff-prev") { revDiff = revision - 1 } else if (getHashParam("mode") === "diff-rev") { revDiff = $("#specRev").val() } const flag = $("#userDefinedVals").prop("checked"); loadContent(getHashParam("tab"), getHashParam("namespace"), getHashParam("chart"), revision, revDiff, flag) } function loadContent(mode, namespace, name, revision, revDiff, flag) { let qstr = "chart=" + name + "&namespace=" + namespace + "&revision=" + revision if (revDiff) { qstr += "&revisionDiff=" + revDiff } if (flag) { qstr += "&flag=" + flag } let url = "/api/helm/charts/" + mode url += "?" + qstr const diffDisplay = $("#manifestText"); diffDisplay.empty().append("") $.get(url).fail(function () { reportError("Failed to get diff of " + mode) }).done(function (data) { diffDisplay.empty(); if (data === "") { diffDisplay.text("No differences to display") } else { if (revDiff) { const targetElement = document.getElementById('manifestText'); const configuration = { inputFormat: 'diff', outputFormat: 'side-by-side', drawFileList: false, showFiles: false, highlight: true, //matching: 'lines', }; const diff2htmlUi = new Diff2HtmlUI(targetElement, data, configuration); diff2htmlUi.draw() } else { data = hljs.highlight(data, {language: 'yaml'}).value const code = $("#manifestText").empty().append("
").find("pre"); code.html(data) } } }) } $('#specRev').keyup(function (event) { let keycode = (event.keyCode ? event.keyCode : event.which); if (keycode == '13') { $("#diffModeRev").click() } event.preventDefault() }); function loadChartHistory(namespace, name) { $("#sectionDetails").show() $("#sectionDetails h1 span.name").text(name) revRow.empty().append("Age: