]> WPIA git - gigi.git/blobdiff - static/static/js/expert.js
upd: move bootstrap from 3.5.1 to 4.3.1
[gigi.git] / static / static / js / expert.js
index 731dddde58f991e28868b2ec48e016fe4ab21384..a4add1a582f160fa7ba1ab0aa1dcdc21bccc704a 100644 (file)
            }
          }
        }
+       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);
                }
-               $(".panel-activatable").map(function() {
-                       var panel = $(this);
+               $(".card-activatable").map(function() {
+                       var card = $(this);
                        var refresh = function(){
                                var radio = this.type == "radio";
                                if(radio && this.form.currentRadios === undefined) {
                                        this.form.currentRadios = {};
                                }
                                if(this.checked) {
-                                       panel.find(".panel-body").removeClass("hidden");
+                                       card.find(".card-body").removeClass("d-none");
                                        if(radio) {
                                                var rds = this.form.currentRadios;
                                                if(rds[this.name] !== undefined){
                                                rds[this.name] = this;
                                        }
                                } else {
-                                       panel.find(".panel-body").addClass("hidden");
+                                       card.find(".card-body").addClass("d-none");
                                }
                        };
-                       panel.find(".panel-heading [type=\"checkbox\"]").map(refresh);
-                       panel.find(".panel-heading [type=\"checkbox\"]").change(refresh);
-                       panel.find(".panel-heading [type=\"radio\"]").map(refresh);
-                       panel.find(".panel-heading [type=\"radio\"]").change(refresh);
+                       card.find(".card-heading [type=\"checkbox\"]").map(refresh);
+                       card.find(".card-heading [type=\"checkbox\"]").change(refresh);
+                       card.find(".card-heading [type=\"radio\"]").map(refresh);
+                       card.find(".card-heading [type=\"radio\"]").change(refresh);
                        return this.id;
                });
                initConfirm();