+ 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");
+
+ }