1$(function() { 2 var companies_dialog = $("#jq-companies-dialog"); 3 var loginButton = $("#jq-login-button"); 4 var loginContainer = $("#login"); 5 var login_error_dialog = $("#jq-login-error-dialog"); 6 loginButton.attr('disabled','disabled'); 7 var cancelDialogButton = [{ 8 text: messages.site_cancel, 9 click: function() { 10 companies_dialog.dialog("close"); 11 } 12 }]; 13 14 recaptchaGenerate = function(){ 15 loginButton.attr('disabled','disabled'); 16 grecaptcha.ready(function () { 17 grecaptcha.execute(globalUrl.captcha_public, { 18 action: 'login' 19 }).then(function (token) { 20 $('#recaptcha_response').val(token); 21 loginButton.removeAttr('disabled'); 22 setTimeout(recaptchaGenerate, 2 * 1000 * 60); 23 }); 24 }); 25 } 26 recaptchaGenerate(); 27 28 //Definicion del dialog para escoger empresa para hacer login 29 companies_dialog.dialog({ 30 width:600,resizable:false,autoOpen:false,modal:true,closeOnEscape:false,position:['center', 20], 31 buttons: cancelDialogButton, 32 open: function() { 33 var content = companies_dialog.find(".jq-content"); 34 print_loading(content, images.loading40, messages); 35 var companies = companies_dialog.data("companies"); 36 $.each(companies, function(index, company) { 37 var div; 38 if(index == 0) 39 div = content.find(".jq-company-logo-div:first"); 40 else 41 div = content.find(".jq-company-logo-div:first").clone(); 42 43 div.removeClass("hidden-obj"); 44 45 //Asignar id de la empresa al div 46 div.data("companyId", company.id); 47 48 //Setear la imagen de la empresa 49 div.find("img").attr("src", company.URILogo); 50 51 //Setear el nombre de la empresa 52 div.find(".jq-company-name").text(company.name); 53 54 //Agregar empresa al contenedor 55 div.appendTo(content.find(".jq-company-list")); 56 57 //Mostrar las empresas 58 remove_loading(content); 59 60 //Reiniciar posicion centrada del dialog 61 companies_dialog.dialog("option", "position", ['center', 20]); 62 }); 63 }, 64 close: function() { 65 setTimeout(function() { 66 companies_dialog.find(".jq-content .jq-company-logo-div").not(":first").remove(); 67 var first = companies_dialog.find(".jq-content .jq-company-logo-div:first"); 68 first.addClass("hidden-obj"); 69 first.data("companyId", ""); 70 first.find("img").attr("src", ""); 71 first.find(".jq-company-name").text(""); 72 companies_dialog.find(".jq-login-error, .jq-login-logout").addClass("hidden-obj"); 73 74 75 }, 50); 76 } 77 }); 78 79 //Dialog para mostrar mensaje de error 80 login_error_dialog.dialog({ 81 width:400,resizable:false,autoOpen:false,modal:true,closeOnEscape:false,position:['center', 20], 82 buttons: [{ 83 text: messages.site_close, 84 click: function() { 85 login_error_dialog.dialog("close"); 86 } 87 }] 88 }); 89 90 //Click a Entrar 91 loginButton.on("click", function() { 92 var previous_text = $.trim(loginButton.val()); 93 loginButton.attr('disabled','disabled').val(messages.site_wait); 94 95 var div_error = $("#login .jq-login-error"); 96 div_error.find(".jq-login-error-message").text(""); 97 div_error.addClass("hidden-obj"); 98 99 var data = getLoginData(); 100 101 doLogin(data, companies_dialog, function() { 102 loginButton.removeAttr("disabled").val(previous_text); 103 }); 104 }); 105 106 //Click a una empresa para iniciar sesión 107 companies_dialog.off("click", ".jq-company-logo-div").on("click", ".jq-company-logo-div", function() { 108 var companyId = $(this).data("companyId"); 109 110 //Boton "Espere un momento" al dialog 111 dialogWaitButton(companies_dialog, messages); 112 113 //Datos que se van a enviar para iniciar sesion 114 var data = getLoginData(); 115 data.companyId = companyId; 116 117 //Ocultar empresas y mostrar "Iniciando sesión..." 118 companies_dialog.find(".jq-content").addClass("hidden-obj"); 119 companies_dialog.find(".jq-loading-login").removeClass("hidden-obj"); 120 121 //Efectuar login 122 doLogin(data, companies_dialog, function() { 123 //Mostrar empresas y ocultar "Iniciando sesión..." 124 companies_dialog.find(".jq-content").removeClass("hidden-obj"); 125 companies_dialog.find(".jq-loading-login").addClass("hidden-obj"); 126 127 //Volver a mostrar botón "Cancelar" en el dialog 128 dialogRecoverButtons(companies_dialog, cancelDialogButton); 129 }); 130 }); 131 132 //Tecla Enter a campo Password 133 $('#password').keypress(function(e) { 134 var key = e.which; 135 if(key == 13) { 136 loginButton.click(); 137 return false; 138 } 139 }); 140 141 loginContainer.off("click", ".jq-url-email-forwarding").on("click", ".jq-url-email-forwarding", function() {
142 reSendEmailActivation(false); 143 }); 144 loginContainer.off("click", ".jq-url-email-forwarding-default").on("click", ".jq-url-email-forwarding-default", function() { 145 reSendEmailActivation(true); 146 }); 147 getGeoLocationIp(chargeIpCallback); 148}); 149 150function chargeIpCallback(initdata,data) { 151 $("#login").find('.jq-address-ip').val(btoa(data.IPv4)); 152 $("#login").find('.jq-geo-config').val(btoa(JSON.stringify(data.geoConfig))); 153} 154 155//Obtiene los datos de inicio de sesion 156function getLoginData() { 157 var dataGeolocation ={}; 158 var data = {}; 159 data.email = $.trim($("input[name=email]").val()); 160 data.password = $.trim($("input[name=password]").val()); 161 data.companyId = $.trim($("input[name=companyId]").val()); 162 data.remember_me = $("input[name=remember_me]").is(":checked"); 163 data.recaptcha = $.trim($("input[name=recaptcha_response]").val()); 164 data.typePlan = $.trim($("input[name=typePlanFromRegisterExist]").val()); 165 //dataGeolocation= getGeoLocationIp(); 166 data.IPv4 = $("#login").find('.jq-address-ip').val(); 167 168 if($("#login").find('.jq-geo-config').val() != '') 169 data.geoConfig = $("#login").find('.jq-geo-config').val(); 170 else 171 data.geoConfig = ""; 172 173 174 if(hasModule("captcha")) 175 data.captcha = $.trim($("input[name=captcha_code]").val()); 176 return data; 177} 178 179//Efectua el inicio de sesion (siempre que sea posible con los datos suministrados) 180function doLogin(data, companies_dialog, callback) { 181 var login_error_dialog = $("#jq-login-error-dialog"); 182 $.ajax({ 183 url: BASE_URL+"login/ajax_validate", 184 type: "POST", 185 data: data, 186 success: function(resp) { 187 if(checkVar(resp)) { 188 resp = $.parseJSON(resp); 189 if(checkVar(resp.tokenPassword)){ 190 window.location = BASE_URL+'login/reset_password?token='+resp.tokenPassword+'&changeFor='+resp.changeFor; 191 } 192 if(checkVar(resp.data)) { 193 //Redirigir a la URL que indique el servidor 194 if(checkVar(resp.data.url)) { 195 window.location = resp.data.url; 196 return; 197 } 198 199 //Abrir dialog de empresas para elegir en cuál iniciar sesión 200 if(checkVar(resp.data.companies) && resp.data.companies.length > 1) { 201 recaptchaGenerate(); 202 companies_dialog.data("companies", resp.data.companies); 203 companies_dialog.dialog("open"); 204 } 205 206 callback(); 207 208 return; 209 } 210 211 if(checkVar(resp.error) && checkVar(resp.error.message)) { 212 recaptchaGenerate(); 213 if(resp.error.code== "-5"){ 214 doLogin(data, companies_dialog, callback); 215 } 216 else if(resp.error.code== "account_no_confirmed"){ 217 showMessageNoConfirmed(data.email,data.password,data.companyId); 218 }else if(resp.error.code== "invalid_login_external"){ 219 window.location = BASE_URL+'login_external/'+resp.error.message; 220 } 221 else if(resp.error.code== "company_suite_access_denied"){ 222 if(companies_dialog.dialog("isOpen")){ 223 companies_dialog.dialog("close"); 224 } 225 var loginButton = $("#jq-login-button"); 226 loginButton.hide(); 227 $(".jq-remember-me-check").hide(); 228 $(".jq-remember-me-label").hide(); 229 $(".jq-enterprise-email-forwarding-ok-hide").hide(); 230 $('#password').off('keypress'); 231 232 var suiteAlert = $(".jq-suite-invalid-login-row"); 233 suiteAlert.find(".jq-suite-invalid-login-message").html(resp.error.message); 234 suiteAlert.removeClass("hidden-obj"); 235 } 236 else{ 237 login_error_dialog.find(".jq-message").text(resp.error.message); 238 login_error_dialog.dialog("open"); 239 } 240 } 241 } 242 243 callback(); 244 }, 245 error: function(jqXHR, textStatus, errorThrown) { 246 if(checkVar(jqXHR.responseText)) { 247 recaptchaGenerate(); 248 var resp = $.parseJSON(jqXHR.responseText); 249 250 if(checkVar(resp.error)) { 251 showLoginError(resp.error); 252 } 253 } 254 255 callback(); 256 } 257 }); 258} 259 260function showLoginError(error) { 261 var companies_dialog = $("#jq-companies-dialog"); 262 263 //Verificar si está abierto el dialog de multiempresa 264 var fromMultiLogin = companies_dialog.dialog("isOpen"); 265 var div_error; 266 if(fromMultiLogin) 267 div_error = companies_dialog.find(".jq-login-error"); 268 else 269 div_error = $("#login .jq-login-error"); 270 271 div_error.removeClass("hidden-obj"); 272 273 if(checkVar(error.message)) { 274 div_error.find(".jq-login-error-message").text(error.message); 275 276 if(checkVar(error.code) && error.code == 1) { 277 div_error.find(".jq-login-logout").removeClass("hidden-obj"); 278 } 279 } 280} 281 282function showMessageNoConfirmed(email,password,companyId) { 283 $("#jq-enterprise-access-div").hasClass('jq-login-default-template') ? null : $("#jq-enterprise-access-div").addClass('hidden-obj'); 284 $("#jq-enterprise-email-forwarding").removeClass('hidden-obj'); 285 $(".btns_secundarios").addClass('hidden-obj'); 286 $("#jq-email-forwarding").val(email); 287 $("#jq-pass-forwarding").val(password); 288 $("#jq-companyId-forwarding").val(companyId); 289} 290
291function reSendEmailActivation(fromDefault) { 292 var data = {}; 293 data.email = $('#jq-email-forwarding').val(); 294 data.contra = $('#jq-pass-forwarding').val(); 295 data.companyId = $('#jq-companyId-forwarding').val(); 296 imgLoading = globalUrl.base+"images/loading_16.gif?v2"; 297 loading ="#jq-loading-email-forwarding"; 298 print_loading_full({element:$(loading), url_img:imgLoading, align:"center"}); 299 $('.jq-email-forwarding-container').addClass('hidden-obj'); 300 var ajaxOptions = { 301 url: BASE_URL+"companies/ajax_re_send_mail_activation", 302 type: "POST", 303 data: data 304 }; 305 306 var res = $.ajax(ajaxOptions); 307 308 function onAjaxDone(resp) { 309 if(!fromDefault) 310 window.location = BASE_URL+'companies/createSimple/reSend/'; 311 if(fromDefault){ 312 $('#jq-enterprise-email-forwarding').addClass('hidden-obj'); 313 $('.jq-enterprise-email-forwarding-ok').removeClass('hidden-obj'); 314 $('.jq-enterprise-email-forwarding-ok-hide').addClass('hidden-obj'); 315 $("#jq-enterprise-access-div").addClass('hidden-obj') 316 } 317 remove_loading($(loading)); 318 } 319 320 function onAjaxFail(XMLHttpRequest, textStatus, errorThrown) { 321 alert("Error en reenvÃo de email."); 322 remove_loading($(loading)); 323 } 324 res 325 .done(onAjaxDone) 326 .fail(onAjaxFail) 327 ; 328}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.