Server IP : 23.254.227.96 / Your IP : 216.73.216.7 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/cwpsrv/var/services/users/cwp_theme/original/js/modules/ |
Upload File : |
console.log(); let ssl_list = JSON.parse('{{mod.ssl_list|raw}}'); let ssl_table = null; $(document).ready(function() { {% if mod.isie == 1 %} uchip = new $.Uchip(); {% else %} uchip = new Uchip(); {% endif %} $('[data-toggle="tooltip"]').tooltip() $('#countryName').select2(); lisSSL(ssl_list); $('#countryName').on('select2:select', function (e) { var data = e.params.data; if(data.id != ''){ $('#select2-countryName-container').addClass('val-selected'); }else{ $('#select2-countryName-container').removeClass('val-selected'); } }); initDomTags('#commonName'); initDomTags('#domain_install'); }); function installSSL(){ if(uchip.validator('.reqinstall')){ uchip.handleButton('.btninstall-gen', 'fa-cogs'); uchip.handleButton('.btninsatll-cnl', 'fa-ban'); uchip.call('module=sslwizard&acc=preinstall', { data:'cert=' + Base64.encode($('#certificate_install').val()) + '&priv=' + Base64.encode($('#privkey_install').val()) + '&bundle=' + Base64.encode($('#bundle_install').val()), callback: function(response){ if(response.result == 'success'){ renderPreInstallInfo(response.ssl_data); $('#preinstall_info').modal('show'); }else{ let message = '{{langmod.SSLWLABEL15}}'; if(response.hasOwnProperty('code') && response.code == '1'){ message = '{{langmod.SSLWLABEL63}}'; } noti_bubble(message,'{{langmod.SSLWLABEL14}}','error',false,false,'3000',true); } uchip.handleButton('.btninstall-gen', 'fa-cogs', true); uchip.handleButton('.btninsatll-cnl', 'fa-ban', true); } }); } } function renderPreInstallInfo(data){ let domains = data.instalables.filter(function(dom){ return dom.hasOwnProperty('is_domain') && dom.is_domain == '1'; }); let sub_domains = data.instalables.filter(function(dom){ return dom.hasOwnProperty('is_sub') && dom.is_sub == '1'; }); let sans = data.instalables.filter(function(dom){ return dom.hasOwnProperty('is_san') && dom.is_san == '1'; }); let html = '<h3><i class="fa fa-globe" aria-hidden="true"></i> <b>{{langmod.SSLWLABEL21}}:</b> ' + data.commonName + '</h3>' + '<h4><i class="fa fa-calendar" aria-hidden="true"></i> <b>{{langmod.SSLWLABEL73}}:</b> ' + moment.unix(data.validfrom).format("DD MMM, YYYY") + '</h4>' + '<h4><i class="fa fa-calendar" aria-hidden="true"></i> <b>{{langmod.SSLWLABEL74}}:</b> ' + moment.unix(data.validto).format("DD MMM, YYYY") + '</h4>' + '<h4><i class="fa fa-lock" aria-hidden="true"></i> <b>{{langmod.SSLWLABEL77}}:</b> ' + data.issuer + '</h4>'; if(domains.length > 0){ let dom_html = domains.map(function(dom){ return '<div class="checkbox" style="padding-top:0px;">' + '<input type="checkbox" class="dom-to-install" data-type="domain" checked id="dom_' + dom.domain + '" value="' + dom.domain + '">' + '<label for="dom_' + dom.domain + '">' + dom.domain + '</label>' + '</div>'; }) html += '<h4 data-toggle="collapse" data-target="#div_domains" class="ssl-info-title"><i class="fa fa-angle-right" aria-hidden="true"></i> ' + '<b>{{langmod.SSLWLABEL82}} (' + dom_html.length + ')</b></h4>' + '<div id="div_domains" class="collapse in item-install-container">' + dom_html.join('') + '</div>'; } if(sub_domains.length > 0){ let dom_html = sub_domains.map(function(dom){ return '<div class="checkbox" style="padding-top:0px;">' + '<input type="checkbox" class="subdom-to-install" data-parent="' + dom.parent + '" data-type="sub_domain" checked id="dom_' + dom.domain + '" value="' + dom.domain + '">' + '<label for="dom_' + dom.domain + '">' + dom.domain + '</label>' + '</div>'; }) html += '<h4 data-toggle="collapse" data-target="#div_subdomains" class="ssl-info-title"><i class="fa fa-angle-right" aria-hidden="true"></i> ' + '<b>{{langmod.SSLWLABEL83}} (' + dom_html.length + ')</b></h4>' + '<div id="div_subdomains" class="collapse item-install-container">' + dom_html.join('') + '</div>'; } if(sans.length > 0){ let dom_html = sans.map(function(dom){ return '<div class="checkbox" style="padding-top:0px;">' + '<input type="checkbox" class="san-to-install" data-parent="' + dom.parent + '" data-type="san" checked id="dom_' + dom.domain + '" value="' + dom.domain + '">' + '<label for="dom_' + dom.domain + '">' + dom.domain + '</label>' + '</div>'; }) html += '<h4 data-toggle="collapse" data-target="#div_servsans" class="ssl-info-title"><i class="fa fa-angle-right" aria-hidden="true"></i> ' + '<b>{{langmod.SSLWLABEL84}} (' + dom_html.length + ')</b></h4>' + '<div id="div_servsans" class="collapse item-install-container">' + dom_html.join('') + '</div>'; } html += '<div class="install-btn-wrapper">' + '<button class="btn btn-success btn-xs" onclick="continueInstall()"><i class="fa fa-lock" aria-hidden="true"></i> {{langmod.SSLWLABEL18}}</button>' + '<button class="btn btn-warning btn-xs" data-dismiss="modal"><i class="fa fa-ban" aria-hidden="true"></i> {{langmod.SSLWLABEL7}}</button>' + '</div>'; $("#preinstall_info_body").html(html); } function getToInstall(selector){ let toinstall = []; $(selector).each(function(){ if($(this).is(':checked')){ let type = $(this).data('type'); let item = { domain: $(this).val(), type: type }; if(type != 'domain'){ item.parent = $(this).data('parent'); } toinstall.push(item); } }); return toinstall; } function continueInstall(){ let toinstall = []; let domains = getToInstall('.dom-to-install'); let subdomains = getToInstall('.subdom-to-install'); toinstall = toinstall.concat(getToInstall('.dom-to-install'), getToInstall('.subdom-to-install'), getToInstall('.san-to-install')); if(toinstall.length > 0){ $('#preinstall_info').modal('hide'); uchip.handleButton('.btninstall-gen', 'fa-cogs'); uchip.handleButton('.btninsatll-cnl', 'fa-ban'); $('#install_form_wrapper').fadeOut('fast', function(){ $('#installing_loader_wrapper').fadeIn('fast'); }); let data = 'cert=' + Base64.encode($('#certificate_install').val()) + '&priv=' + Base64.encode($('#privkey_install').val()) + '&bundle=' + Base64.encode($('#bundle_install').val()) + '&services=' + JSON.stringify(toinstall); uchip.call('module=sslwizard&acc=mkinstall', { data: data, callback: function(response){ if(response && response.hasOwnProperty('result') && response.result == 'success'){ cancelInstall(); noti_bubble('{{langmod.SSLWLABEL68}}','{{langmod.SSLWLABEL12}}','success',false,false,'3000',true); }else{ let message = '{{langmod.SSLWLABEL15}}'; if(response.hasOwnProperty('code') && response.code == '1'){ message = '{{langmod.SSLWLABEL63}}'; } noti_bubble(message,'{{langmod.SSLWLABEL14}}','error',false,false,'3000',true); $('#installing_loader_wrapper').fadeOut('fast', function(){ $('#install_form_wrapper').fadeIn('fast'); }); } uchip.handleButton('.btninstall-gen', 'fa-cogs', true); uchip.handleButton('.btninsatll-cnl', 'fa-ban', true); } }); }else{ noti_bubble('{{langmod.SSLWLABEL65}}','{{langmod.SSLWLABEL10}}','error',false,false,'3000',true); } } function initDomTags(selector){ $(selector).tagsinput({ tagClass: 'cwp-tags-input' }); $(selector).on('beforeItemAdd', function(event) { if(!validSSLDomain(event.item)){ event.cancel = true; noti_bubble('{{langmod.SSLWLABEL11}}','{{langmod.SSLWLABEL10}}','error',false,false,'4500',true); } }); } function lisSSL(list){ ssl_list = list; let table_content = ''; let index = 0; if(ssl_list.length > 0){ let html_content = ''; let index = 0; ssl_list.forEach(function(ssl){ let extra_san = '<span style="font-weight:600">{{langmod.SSLWLABEL70}}</span>'; let expiration = '-'; if(ssl.hasOwnProperty('san') && ssl.san.length > 0){ extra_san = ssl.san.map(function(san){ return '<span class="label label-primary">' + san + '</span>'; }).join(' ') } html_content += '<tr id="trssl_' + index + '">' + '<td>' + // '<a class="btn btn-xs btn-primary mr5" style="margin-right: 5px;" onclick="return infomodal(' + ssl.domain + ',0)"><i class="fa fa-info"></i> </a>' + ssl.domain + ' [<a href="https://' + ssl.domain + '" class="ssl-go-link" target="_blank">{{langmod.SSLWLABEL52}}</a>]' + '</td>' + '<td class="ssl-extra-san">' + ssl.issuer + '</td>' + '<td>' + extra_san + '</td>' + '<td>' + ssl.until + '</td>' + '<td >' + '<div class="domain-actions-wrapper">' + '<div class="dropdown" data-toggle="tooltip" data-placement="top" title="{{langmod.SSLWLABEL44}}">' + '<button class="btn btn-primary btn-xs dropdown-toggle" type="button" data-toggle="dropdown"><i class="fa fa-flask" aria-hidden="true"></i> {{langmod.SSLWLABEL85}}' + '<span class="caret"></span></button>' + '<ul class="dropdown-menu" style="left:-10rem;">' + '<li><a target="_blank" href="https://www.sslshopper.com/ssl-checker.html?hostname=' + ssl.domain + '">SSL Shopper</a></li>' + '<li><a target="_blank" href="https://www.geocerts.com/ssl_checker?domain=' + ssl.domain + '&port=443">GeoCerts</a></li>' + '<li><a target="_blank" href="https://www.ssllabs.com/ssltest/analyze.html?d=' + ssl.domain + '">Qualys SSL Labs</a></li>' + '<li><a target="_blank" href="https://www.sslcerty.com/certificate?h=' + ssl.domain + '">SSLCerty</a></li>' + '</ul>' + '</div>' + '<div class="dropdown" data-toggle="tooltip" data-placement="top" title="{{langmod.SSLWLABEL45}}">' + '<button class="btn btn-success btn-xs dropdown-toggle" id="info_btn_' + index + '" type="button" data-toggle="dropdown"><i class="fa fa-info" aria-hidden="true"></i> {{langmod.SSLWLABEL86}}' + '<span class="caret"></span></button>' + '<ul class="dropdown-menu" style="left:-10rem;">' + '<li><a href="javascript:void(0)" onclick="return infomodal(' + index + ',\'' + ssl.domain + '\',\'info\')">{{langmod.SSLWLABEL45}}</a></li>' + '<li><a href="javascript:void(0)" onclick="return infomodal(' + index + ',\'' + ssl.domain + '\',\'cert\',\'SSLCertificateFile\')">SSLCertificateFile</a></li>' + '<li><a href="javascript:void(0)" onclick="return infomodal(' + index + ',\'' + ssl.domain + '\',\'key\',\'SSLCertificateKeyFile\')">SSLCertificateKeyFile</a></li>' + '<li><a href="javascript:void(0)" onclick="return infomodal(' + index + ',\'' + ssl.domain + '\',\'bundle\',\'SSLCertificateChainFile\')">SSLCertificateChainFile</a></li>' + '</ul>' + '</div>' + '<button title="{{langmod.SSLWLABEL46}}" class="btn btn-danger btn-xs" data-san=\'' + (ssl.hasOwnProperty('san') ? JSON.stringify(ssl.san) : '[]') + '\' id="btn_del_' + index + '" data-toggle="tooltip" data-placement="top" title="{{langmod.SSLWLABEL46}}" onclick="return deletessl(0,\'' + ssl.domain + '\',' + index + ')"><i class="fa fa-trash" aria-hidden="true"></i> {{langmod.SSLWLABEL46}}</button>' + '</div>' + '</td>' + '</tr>'; index++; }); let table_html = '<table class="table table-striped" id="ssl_table">' + '<thead>' + '<tr>' + '<th>{{langmod.SSLWLABEL47}}</th>' + '<th>{{langmod.SSLWLABEL48}}</th>' + '<th>{{langmod.SSLWLABEL87}}</th>' + '<th width="90">{{langmod.SSLWLABEL49}}</th>' + '<th width="260">{{langmod.SSLWLABEL50}}</th>' + '</tr>' + '</thead>' + '<tbody id="sslbody">' + html_content + '</tbody>' + '</table>'; $('#table_ssl_wrapper').html(table_html); $('#ssl_table').DataTable().destroy(); ssl_table = $('#ssl_table').dataTable(); $('[data-toggle="tooltip"]').tooltip(); }else{ $('#table_ssl_wrapper').html('<div class="empty_list"><h4 class="text-success">{{langmod.SSLWLABEL88}}</h4></div>'); } } function deletessl(st, domain, index){ if(st == 0){ let san = $('#btn_del_' + index).data('san'); let strbody = '<p>{{langmod.SSLWLABEL54}}:<br>' + '<strong id="descron">' + domain + '</strong>'; if(san.length > 0){ strbody += '<br><br>{{langmod.SSLWLABEL56}}:<br><b>' + san.join('<br />') + '</b><br>'; } strbody += '<br>{{langmod.SSLWLABEL57}}</p>'; let strfooter = '<button type="button" class="btn btn-white" data-dismiss="modal">{{ langmod.SSLCLOSE }}</button>' + '<button type="button" class="btn btn-primary" id="btnyesdel" onclick="return deletessl(1,\''+domain+'\',' + index + ')">{{langmod.SSLWLABEL58}}</button>'; $('#deleteletsencrypt .modal-body').html(strbody); $('#deleteletsencrypt .modal-footer').html(strfooter); $('#deleteletsencrypt').modal('toggle'); return false; }else{ $('#deleteletsencrypt').modal('hide'); uchip.handleButton('#btn_del_' + index,'fa-trash'); let tr = $('#trssl_' + index); tr.find('.btn').prop('disabled', true).addClass('disabled'); tr.addClass('deleting_tr'); uchip.call('module=letsencrypt&acc=deletessl', { data:'domain=' + domain, callback: function(response){ if(response.result == 'success'){ tr.slideUp('fast', function(){ ssl_table.row(this).remove().draw(); }); noti_bubble('{{langmod.SSLWLABEL69}}','{{langmod.SSLWLABEL15}}','success',false,false,'3000',true); //cancelInstallation(response.nossl); }else{ tr.find('.btn').prop('disabled', false).removeClass('disabled'); tr.removeClass('deleting_tr'); uchip.handleButton('#btn_del_' + index,'fa-trash', true); noti_bubble('{{langmod.SSLWLABEL15}}','{{langmod.SSLWLABEL14}}','error',false,false,'3000',true); } } }); } } function showInstallForm(){ uchip.slideToggle('#ssl_install_wrapper','#ssl_list_wrapper'); } function cancelInstall(){ uchip.slideToggle('#ssl_list_wrapper', '#ssl_install_wrapper', function(){ $('#installing_loader_wrapper').hide(); $('#install_form_wrapper').show(); $('#certificate_install').val(''); $('#privkey_install').val(''); $('#bundle_install').val(''); uchip.validator('.reqinstall', true); }); } function renderInfo(response){ let html_info = '<strong>{{langmod.SSLWLABEL71}}:</strong> <span class="domain">' + response.subject + '</span><br />'; if(response.aliases.length > 0){ html_info += '<strong>{{langmod.SSLWLABEL72}}: </strong >' + response.aliases.map(function(san){ return san.replace('DNS:',''); }).join(', ') + '<br />'; } let issuers = response.issuer.map(function(issuer){ return issuer.param + '=' + issuer.value; }).join(', '); html_info += '<strong>{{langmod.SSLWLABEL73}}:</strong> ' + response.valid_from + '<br />' + '<strong>{{langmod.SSLWLABEL74}}:</strong> ' + response.valid_until + '<br />' + '<strong>{{langmod.SSLWLABEL75}}:</strong> ' + response.signature + '<br />' + '<strong>{{langmod.SSLWLABEL76}}:</strong> ' + response.public_key + '<br />' + '<strong>{{langmod.SSLWLABEL77}}:</strong> ' + issuers + '<br />'; if(response.self_signed == true){ html_info += '<div style="color:#FF0000"><strong>{{langmod.SSLWLABEL78}}</strong></div>'; } if(response.is_expired == true){ html_info += '<div style="color:#FF0000"><strong>{{langmod.SSLWLABEL79}}</strong></div>'; } return '<div class="info_certificate_body">' + html_info + '</div>'; } function renderFileHTML(response, title, domain, type){ return '<div class="file-content-ssl">' + '<div class="file-content-ssl-header"><h4>' + title + ' (' + domain + '.' + type + ')</h4>' + '<div><span class="text-success copied-message">{{langmod.SSLWLABEL80}}</span><span class="copy-file" onclick="copyFileContent()" data-toggle="tooltip" data-placement="top" title="{{langmod.SSLWLABEL81}}"><i class="fa fa-copy"></i></span></div>' + '</div>' + '<textarea class="form-control" readonly id="file_content">' + response.result + '</textarea>' + '</div>'; } function copyFileContent(){ $('#file_content').show(); var copyText = document.getElementById('file_content'); copyText.select(); document.execCommand("copy"); noti_bubble('{{langmod.SSLWLABEL32}}','','success',false,false,'3000',true); } function infomodal(index, domain, type, title){ uchip.handleButton('#info_btn_' + index, 'fa-info'); uchip.call('module=letsencrypt&acc=infomodal', { data:'domain=' + domain + '&type=' + type, callback: function(response){ if(type == 'info'){ $('#modalinfo_twice .modal-body').html(renderInfo(response)); }else{ $('#modalinfo_twice .modal-body').html(renderFileHTML(response, title, domain, type)); } $('#modalinfo_twice').modal('toggle'); setTimeout(function(){ $('[data-toggle="tooltip"]').tooltip(); }, 100); uchip.handleButton('#info_btn_' + index, 'fa-info', true); } }); } function emailCSR(elem){ if($(elem).is(':checked')){ $('#email_send_csr').slideDown(); }else{ $('#email_send_csr').slideUp(); uchip.validator('#emailAddressSend', true); } } function showNewCSR(){ uchip.slideToggle('#ssl_csr_wrapper','#ssl_list_wrapper'); } function cancelNewCSR(){ uchip.slideToggle('#ssl_list_wrapper','#ssl_csr_wrapper', function(){ cleanFormCSR(); }); } function cleanFormCSR(){ $('.reqcsr').val(''); $('#countryName').val(null).trigger('change'); $("#commonName").tagsinput('removeAll'); } function handleReload(bind){ window.onbeforeunload = bind === true ? function(e) { return 'Are you sure you want to leave? You are in the middle of something.'; } : null; } function validSSLDomain(domain) { // console.log('domain', domain); // let re = /^(\*\.)?([\w\d]+\.)+[\w\d]+$/; //let re = /^(\*\.)?(?!:\/\/)(?!.{256,})(([a-z0-9][a-z0-9_-]*?\.)+?[a-z]{2,6}?)$/i; let re = /^(\*\.)?(?!:\/\/)(?!.{256,})(([a-z0-9][a-z0-9_-]*?\.)+?[a-z]{2,10}?)$/i; return re.test(domain); } function copyCSR(elem){ let field = document.getElementById(elem); field.select(); document.execCommand('copy'); noti_bubble('{{langmod.SSLWLABEL32}}','','success',false,false,'3000',true); } function copiedCSR(elem){ if($(elem).is(':checked')){ $('#copied_csr_btn').prop('disabled', false); $('#copied_csr_btn').removeClass('disabled'); handleReload(false); }else{ $('#copied_csr_btn').prop('disabled', true); $('#copied_csr_btn').addClass('disabled'); handleReload(true); } } function genCSRContinue(){ uchip.slideToggle('#ssl_list_wrapper','#ssl_csr_generated', function(){ cleanFormCSR(); $('#copied_csr_check').prop('checked', false); }); } function processNewCSR(){ let valid_email_send = !($('#emailsend').is(':checked') && !uchip.validator('#emailAddressSend')); if(uchip.validator('.reqcsr') && valid_email_send){ let data = ''; $('.reqcsr').each(function(){ data += $(this).attr('id') + '=' + $(this).val() + '&'; }); uchip.handleButton('.btncsr-gen', 'fa-cogs'); uchip.handleButton('.btncsr-cnl', 'fa-ban'); data += 'key_size=' + $('#key_size').val() + '&emailsend=' + ($('#emailsend').is(':checked') ? '1' : '0') + '&email_receiver=' + $('#emailAddressSend').val(); uchip.call('module=sslwizard&acc=generatecsr', { data: data, callback: function(response){ if(response.result == 'success'){ noti_bubble('{{langmod.SSLWLABEL13}}','{{langmod.SSLWLABEL12}}','success',false,false,'3000',true); uchip.slideToggle('#ssl_csr_generated', '#ssl_csr_wrapper', function(){ $('#csr_csr').val(response.csr); $('#csr_priv').val(response.priv); handleReload(true); }); }else{ let message = '{{langmod.SSLWLABEL15}}'; noti_bubble(message,'{{langmod.SSLWLABEL14}}','error',false,false,'3000',true); } uchip.handleButton('.btncsr-gen', 'fa-cogs', true); uchip.handleButton('.btncsr-cnl', 'fa-ban', true); } }); } }