X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=static%2Fstatic%2Fjs%2Fexpert.js;h=9c623e7321ad95e530f496dd7bf739eef6a20fb4;hb=347c8ebcae546d63b62e90f4260f43bb1ed18be3;hp=07d1da4976d809d1a6b4474583efd528fdb6a003;hpb=ab9818f784c71e0f75c1c1dd621da8a3a88cffa4;p=gigi.git diff --git a/static/static/js/expert.js b/static/static/js/expert.js index 07d1da49..9c623e73 100644 --- a/static/static/js/expert.js +++ b/static/static/js/expert.js @@ -1,4 +1,53 @@ (function() { + var modal = undefined; + + function showModal(content){ + var HTML = ``; + if(modal === undefined) { + modal = $(HTML); + modal.action = function(){}; + modal.appendTo("body"); + $(modal.get(0)).find(".modal-footer .btn-confirm").click(function(){ + modal.action(); + modal.modal("hide"); + }); + } + var m = $(modal.get(0)); + m.find(".modal-body").text($(content).attr("data-confirm")); + var reply = $(content).attr("data-reply").split(","); + m.find(".modal-footer .btn-cancel").text(reply[0]); + m.find(".modal-footer .btn-confirm").text(reply[1]); + modal.action=function(){ + content.confirmed=true; + $(content).click(); + }; + modal.modal("show"); + } + function initConfirm() { + $(".btn-confirm").click(function(){ + if(this.confirmed === true){ + return true; + } + showModal(this); + return false; + }); + } function showExpert(isExpert) { var elements = document.getElementsByClassName("expert"); @@ -11,8 +60,83 @@ } } } + function initCertForm() { + if(document.getElementById("placeholderName") == null) { + return; + } + function getHint(id){ + var elem = document.getElementById(id); + if(elem === null) { + return null; + } + return $(elem).text(); + } + $("select[name=profile]").off("change"); + $("textarea[name=SANs]").off("keydown"); + $("textarea[name=SANs]").get(0).modified=false; + $("input[name=CN]").off("keydown"); + $("input[name=CN]").get(0).modified=false; + + var placeholderName = getHint("placeholderName"); + var defaultName = getHint("defaultName"); + var defaultEmail = getHint("defaultEmail"); + var defaultDomain = getHint("defaultDomain"); + if(defaultName === null) { + return; + } + $("textarea[name=SANs]").on("keydown", function(){ + this.modified = this.value !== ""; + }); + $("input[name=CN]").on("keydown", function(){ + this.modified = this.value !== ""; + }); + + var loginCheck = document.getElementById("login"); + $("select[name=profile]").change(function(){ + var val = this.value; + var sans = $("textarea[name=SANs]").get(0); + if(val.match(/client.*/)) { + loginCheck.checked = true; + loginCheck.disabled = false; + } else { + loginCheck.checked = false; + loginCheck.disabled = true; + } + if(val.match(/client.*|mail.*/)) { + if(!sans.modified) { + sans.value = "email:"+defaultEmail; + } + } else if(val.match(/server.*/)) { + if(!sans.modified) { + sans.value = defaultDomain === null ? "" : "dns:" + defaultDomain; + } + } + var cn = $("input[name=CN]").get(0); + if(val.match(/.*-a/)) { + if(!cn.modified) { + cn.value = defaultName; + } + }else{ + if(!cn.modified) { + cn.value = placeholderName; + } + } + }); + var children = $("select[name=profile]").get(0).children; + var target = "client-mail"; + for(var i=0; i < children.length; i++){ + if(children[i].value == "client-mail-a"){ + target = "client-mail-a"; + } + } + + $("select[name=profile]").get(0).value = target; + $("select[name=profile]").trigger("change"); + + } function init(){ showExpert(false); + initCertForm(); var expert = document.getElementById("expertbox"); if(expert !== null) { expert.onchange = (function(expert){return function(){showExpert(expert.checked)}})(expert); @@ -43,6 +167,7 @@ panel.find(".panel-heading [type=\"radio\"]").change(refresh); return this.id; }); + initConfirm(); } (function(oldLoad) { if (oldLoad == undefined) {