X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=static%2Fstatic%2Fjs%2Fexpert.js;h=9c623e7321ad95e530f496dd7bf739eef6a20fb4;hb=28b216e0a027c8d82b4db179d79974bd8d3c0aff;hp=a4d14acac95b41e0fbaabbfb335749e7399b6362;hpb=78aea4e2c6a8e99ba546c4189d7071d57c1aaf3b;p=gigi.git
diff --git a/static/static/js/expert.js b/static/static/js/expert.js
index a4d14aca..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,12 +60,114 @@
}
}
}
+ 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);
+ 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");
+ if(radio) {
+ var rds = this.form.currentRadios;
+ if(rds[this.name] !== undefined){
+ $(rds[this.name]).trigger("change");
+ }
+ rds[this.name] = this;
+ }
+ } else {
+ panel.find(".panel-body").addClass("hidden");
+ }
+ };
+ 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);
+ return this.id;
+ });
+ initConfirm();
}
(function(oldLoad) {
if (oldLoad == undefined) {