1(function( $ ) { 2 'use strict'; 3 // console.log('File for js public is loaded'); 4 5 // Used by class-omeda-users-omeda-api.php ajax calls to handle user logins 6 // Binding like this makes sure that when modal is displayed and get hidden again button will work when shown again 7 // This stops working when modal is closed and open again ('#omedau_loginForm_form #omedau_loginBtn').on('click', function (e) {}); 8 $(document).one('click', '#omedau_loginForm_form #omedau_loginBtn', rt_loginclick); 9 $(document).one('click', '#omedau_forgotPasswordModal #omedau_passwordBtn_recover', rt_paswordrecovery); 10 11 12 //Buttons manipultation in forms 13 function rt_set_submit_buttons(selector) { 14 var btntext = $(selector).children('span'); 15 var btnspinner = $(selector).children('img'); 16 btntext.attr('style', 'display:none'); 17 btnspinner.attr('style', 'display:block'); 18 } 19 20 21 function rt_reset_submit_buttons(selector) { 22 var btntext = $(selector).children('span'); 23 var btnspinner = $(selector).children('img'); 24 btntext.attr('style', 'display:block'); 25 btnspinner.attr('style', 'display:none'); 26 } 27 28 //Message display function 29 function rt_show_message(text, selector, styleclass) { 30 jQuery(selector).html(text); 31 jQuery(selector).addClass(styleclass); 32 jQuery(selector).show(); 33 34 } 35 36 function rt_remove_message(selector) { 37 jQuery(selector).html(''); 38 jQuery(selector).removeClass('alert-success').removeClass('alert-danger'); 39 jQuery(selector).hide(); 40 } 41 42 43 // login operations 44 function rt_loginclick(){ 45 //e.preventDefault(); 46 // var for message defined 47 var messagetext; 48 rt_remove_message('#omedau_loginModal .ajaxMsg'); 49 //console.log('Login form submitted button.'); 50 rt_set_submit_buttons('#omedau_loginForm_form #omedau_loginBtn'); 51 52 var username = jQuery('#omedau_loginForm_form #loginUsername').val(); 53 var pass = jQuery('#omedau_loginForm_form #loginPassword').val(); 54 55 //console.log ('usrname: ' + username + ' | password: ' + pass); 56 57 if (username.trim() === '' || pass.trim() === '') { 58 if (username.trim() === '' && pass.trim() === '') { 59 messagetext = "Please enter your login credentials."; 60 } else { 61 if (username.trim() === '' ) messagetext = "Please enter your email address as username."; 62 if (pass.trim() === '') messagetext = "Please enter your password."; 63 } 64 65 rt_show_message(messagetext, '#omedau_loginModal .ajaxMsg', 'alert-danger'); 66 rt_reset_submit_buttons('#omedau_loginForm_form #omedau_loginBtn'); 67 //reattach login 68 $(document).one('click', '#omedau_loginForm_form #omedau_loginBtn', rt_loginclick); 69 return false; 70 } 71 72 //omeda_login is name of registred ajax call by plugin 73 var HOME_URL = window.location.origin; 74 var ajaxURL = HOME_URL + '/wp-admin/admin-ajax.php'; 75 var redirectURL = window.location.href; 76 // exception for redirect 77 if (redirectURL=='https://www.ragan.com/the-writers-passport/') redirectURL = 'https://www.ragan.com/writers-passport-portal/'; 78 var data = { 79 "action": "omeda_login", 80 "CUS_EMAIL": username, 81 "CUS_PASSWORD": pass, 82 "sourceURL": redirectURL 83 }; 84 var redirect = false; 85 //console.log('Before AJAX CALL'); 86 87 $.post(ajaxURL, data, function (data, status) { 88 //console.log('Login started'); 89 //console.log(status); 90 //console.log(data.status); 91 rt_remove_message('#omedau_loginModal .ajaxMsg'); 92 if (status === 'success') { 93 console.log('contacted'); 94 if (data.status === 'error') { 95 console.log('error: ' + data.msg); 96 rt_show_message(data.msg, '#omedau_loginModal .ajaxMsg', 'alert-danger'); 97 } else if (data.status === 'success') { 98 rt_show_message(data.msg, '#omedau_loginModal .ajaxMsg', 'alert-success'); 99 //redirect = true; 100 } else { 101 rt_show_message(data.msg, '#omedau_loginModal .ajaxMsg', 'alert-danger'); 102 } 103 } else { 104 // Ajax failed 105 messagetext = 'Login service is currently down. Please try later. Is login issue persist contact [email protected].'; 106 rt_show_message(messagetext, '#omedau_loginModal .ajaxMsg', 'alert-danger'); 107 } 108 109 }, 'json'); 110 111 var mytimer = setTimeout(function() { 112 console.log('3 secs later and bind click again'); 113 if (redirect) window.location.href = redirectURL; 114 115 rt_reset_submit_buttons('#omedau_loginForm_form #omedau_loginBtn'); 116 $(document).one('click', '#omedau_loginForm_form #omedau_loginBtn', rt_loginclick); 117 }, 3000); 118 } 119 120 121 // Create / recover password 122 123 function rt_paswordrecovery(){ 124 //console.log('Password recovery from started'); 125 //$(this).off('click', rt_loginclick); 126 var btntext = $('#forgotPasswordForm_form #omedau_passwordBtn_recover').children('span'); 127 var btnspinner = $('#forgotPasswordForm_form #omedau_passwordBtn_recover').children('img'); 128 btntext.attr('style', 'display:none'); 129 btnspinner.attr('style', 'display:block'); 130 131 var username = jQuery('#forgotPasswordForm_form #loginpassUsern
131ame').val(); 132 //var pass = jQuery('#omedau_loginForm_form #loginPassword').val(); 133 134 console.log ('username: ' + username); 135 136 if (username.trim() === '') { 137 jQuery('#omedau_forgotPasswordModal .ajaxMsg').html("Please enter your email."); 138 jQuery('#omedau_forgotPasswordModal .ajaxMsg').addClass('alert-danger'); 139 jQuery('#omedau_forgotPasswordModal .ajaxMsg').show(); 140 } 141 142 //omeda_login is name of registred ajax call by plugin 143 var HOME_URL = window.location.origin; 144 var ajaxURL = HOME_URL + '/wp-admin/admin-ajax.php'; 145 var data = { 146 "action": "omeda_password", 147 "CUS_EMAIL": username, 148 "sourceURL": window.location.href 149 }; 150 //console.log('Before AJAX CALL for password'); 151 152 $.post(ajaxURL, data, function (data, status) { 153 console.log('Passowrd recovery started'); 154 console.log(status); 155 console.log(data.status); 156 console.log(data.msg); 157 if (status === 'success') { 158 console.log('contacted password'); 159 if (data.status === 'error') { 160 console.log('error: ' + data.msg); 161 162 jQuery('#omedau_forgotPasswordModal .ajaxMsg').html(data.msg); 163 jQuery('#omedau_forgotPasswordModal .ajaxMsg').removeClass('alert-success').addClass('alert-danger'); 164 jQuery('#omedau_forgotPasswordModal .ajaxMsg').show(); 165 166 167 } else if (data.status === 'success') { 168 jQuery('#omedau_forgotPasswordModal .ajaxMsg').html(data.msg); 169 jQuery('#omedau_forgotPasswordModal .ajaxMsg').removeClass('alert-danger').addClass('alert-success'); 170 jQuery('#omedau_forgotPasswordModal .ajaxMsg').show(); 171 172 } else { 173 jQuery('#omedau_forgotPasswordModal .ajaxMsg').html('Data status not correct'); 174 jQuery('#omedau_forgotPasswordModal .ajaxMsg').removeClass('alert-success').addClass('alert-danger'); 175 jQuery('#omedau_forgotPasswordModal .ajaxMsg').show(); 176 177 } 178 } else { 179 jQuery('#omedau_forgotPasswordModal .ajaxMsg').html('Ajax failed'); 180 jQuery('#omedau_forgotPasswordModal .ajaxMsg').removeClass('alert-success').addClass('alert-danger'); 181 jQuery('#omedau_forgotPasswordModal .ajaxMsg').show(); 182 } 183 184 }, 'json'); 185 186 var mytimer = setTimeout(function() { 187 console.log('3 secs later and bind click again passwordchange'); 188 btntext.attr('style', 'display:block'); 189 btnspinner.attr('style', 'display:none'); 190 $(document).one('click', '#omedau_forgotPasswordModal #omedau_passwordBtn_recover', rt_paswordrecovery); 191 }, 3000); 192 193 } 194 195 //Event modal is shown 196 //var openmodal = ''; // we will see if this is needed to follow status of open modals 197 $("#omedau_loginModal").on('shown.bs.modal', function(){ 198 //alert("Login modal is diplaying"); 199 // reset button look 200 var btntext = $('#omedau_loginForm_form #omedau_loginBtn').children('span'); 201 var btnspinner = $('#omedau_loginForm_form #omedau_loginBtn').children('img'); 202 btntext.attr('style', 'display:block'); 203 btnspinner.attr('style', 'display:none'); 204 $('#omedau_loginModal .ajaxMsg.alert').attr('style', 'display:none;'); // hide message on subsequent open of login modal 205 $('#omedau_forgotPasswordModal .ajaxMsg.alert').attr('style', 'display:none;'); // hide message on subsequent open of login modal 206 }); 207 208 // Close all open modals except of selected one using this event 209 $('.modal').on('show.bs.modal', function () { 210 $('.modal').not($(this)).each(function () { 211 $(this).modal('hide'); 212 }); 213 }); 214 215 // Back to login modal link need too full reference form document level to work after modal closing 216 217 $(document).on('click', '.modal .backToLoginLink', function (e) { 218 e.preventDefault(); 219 $("#omedau_loginModal").modal('show'); 220 }); 221 222 $(document).on('click', '.backToLoginLinkTrigger', function (e) { 223 e.preventDefault(); 224 $("#omedau_loginModal").modal('show'); 225 }); 226 227 $(document).on('click', '.forgotPasswordLinkTrigger', function (e) { 228 e.preventDefault(); 229 $("#omedau_forgotPasswordModal").modal('show'); 230 }); 231 232 $(document).on('click', '.modal #accountSetUpModalFooterMsg', function (e) { 233 e.preventDefault(); 234 //$("#omedau_CreateAccountModal").modal('show'); 235 $("#omedau_forgotPasswordModal").modal('show'); 236 }); 237 238 $(document).on('click', '.modal #forgotPasswordLink', function (e) { 239 //alert('click'); 240 e.preventDefault(); 241 $("#omedau_forgotPasswordModal").modal('show'); 242 }); 243 244 // END OF class-omeda-users-omeda-api.php ajax calls to handle user logins 245 246 // show password recovery / setup form on specific link: 247 //https://next.ragantraining.com?setupyouraccount=1 248 $(document).ready(function() { 249 if (window.location.href.indexOf("?setupyouraccount=1") > -1) { 250 $("#omedau_forgotPasswordModal").modal('show'); 251 } 252 }); 253 254 255 //QUEUE Functions 256 257 $(document).one('click', '.omedau_addtoqueue', omedau_addqueue); 258 $(document).one('click', '.omedau_removefromqueue', omedau_removequeue); 259 260 function omedau_addqueue(){ 261 //e.preventDefault(); 262 // var for message defined 263 var messagetext; 264 console.log('add to queue clicked'); 265 266 var elementobject = $(this); 267 var elementid = $(this).attr('id'); 268 var postid = $(this).attr('id').replace("rtuqueue", ""); 269 var IsItButton = false;
270 271 if ($(this).hasClass( "btn" )) IsItButton = true; 272 273 console.log ('postid: ' + postid); 274 275 276 var elementtext = $(this).children('span'); 277 var elementspinner = $(this).children('img'); 278 elementtext.attr('style', 'display:none'); 279 elementspinner.attr('style', 'display:block; float:right;'); 280 281 282 //omeda_login is name of registred ajax call by plugin 283 var HOME_URL = window.location.origin; 284 var ajaxURL = HOME_URL + '/wp-admin/admin-ajax.php'; 285 var data = { 286 "action": "omedau_queue_add", 287 "postid":postid 288 }; 289 var redirect = false; 290 console.log('Before AJAX CALL'); 291 292 $.post(ajaxURL, data, function (data, status) { 293 console.log('Login started'); 294 console.log(status); 295 console.log(data.status); 296 if (status === 'success') { 297 console.log('contacted'); 298 } else { 299 // Ajax failed 300 console.log('Ajax failed'); 301 } 302 303 }, 'json'); 304 305 var mytimer = setTimeout(function() { 306 console.log('3 secs later and bind click again add queue'); 307 if (IsItButton) { 308 $(elementobject).replaceWith( '<button id="'+elementid+'" class="btn btn-primary omedau_removefromqueue"><span style="display:block;">Remove from Queue</span><img src="'+ HOME_URL +'/wp-content/plugins/omeda-users/public/img/loading-32.gif" width="24" height="24" alt="" style="display: none;"></button>' ); 309 } else { 310 $(elementobject).replaceWith( '<a href="javascript: void(0)" id="'+elementid+'" class="omedau_removefromqueue"><span style="display:block;">Remove from Queue</span><img src="'+ HOME_URL +'/wp-content/plugins/omeda-users/public/img/loading-32.gif" width="24" height="24" alt="" style="display: none;"></a>' ); 311 } 312 $(document).one('click', '.omedau_addtoqueue', omedau_addqueue); 313 $(document).one('click', '.omedau_removefromqueue', omedau_removequeue); 314 }, 3000); 315 } 316 317 function omedau_removequeue(){ 318 //e.preventDefault(); 319 // var for message defined 320 var messagetext; 321 console.log('remove from queue clicked'); 322 323 var elementobject = $(this); 324 var elementid = $(this).attr('id'); 325 var postid = $(this).attr('id').replace("rtuqueue", ""); 326 var IsItButton = false; 327 328 if ($(this).hasClass( "btn" )) IsItButton = true; 329 330 console.log ('postid: ' + postid); 331 332 var elementtext = $(this).children('span'); 333 var elementspinner = $(this).children('img'); 334 elementtext.attr('style', 'display:none'); 335 elementspinner.attr('style', 'display:block; float:right;'); 336 337 338 //omeda_login is name of registred ajax call by plugin 339 var HOME_URL = window.location.origin; 340 var ajaxURL = HOME_URL + '/wp-admin/admin-ajax.php'; 341 var data = { 342 "action": "omedau_queue_remove", 343 "postid":postid 344 }; 345 var redirect = false; 346 console.log('Before AJAX CALL'); 347 348 $.post(ajaxURL, data, function (data, status) { 349 console.log('Login started'); 350 console.log(status); 351 console.log(data.status); 352 if (status === 'success') { 353 console.log('contacted'); 354 } else { 355 // Ajax failed 356 console.log('Ajax failed'); 357 } 358 359 }, 'json'); 360 361 var mytimer = setTimeout(function() { 362 console.log('3 secs later and bind click again add queue'); 363 if (IsItButton) { 364 $(elementobject).replaceWith( '<button id="'+elementid+'" class="btn btn-primary omedau_addtoqueue"><span style="display:block;">Add to Queue</span><img src="'+ HOME_URL +'/wp-content/plugins/omeda-users/public/img/loading-32.gif" width="24" height="24" alt="" style="display: none;"></button>' ); 365 } else { 366 $(elementobject).replaceWith( '<a href="javascript: void(0)" id="'+elementid+'" class="omedau_addtoqueue"><span style="display:block;">Add to Queue</span><img src="'+ HOME_URL +'/wp-content/plugins/omeda-users/public/img/loading-32.gif" width="24" height="24" alt="" style="display: none;"></a>' ); 367 } 368 $(document).one('click', '.omedau_addtoqueue', omedau_addqueue); 369 $(document).one('click', '.omedau_removefromqueue', omedau_removequeue); 370 }, 3000); 371 } 372 373 //Password change/update form 374 $(document).on('click', '#PasswordRecovery_form #omedau_passwordBtn_forgotpassword', function (e) { 375 e.preventDefault();
376 var validation = true; 377 var error = ""; 378 var password = $('#PasswordRecovery_form #loginPassword').val(); 379 var password2 = $('#PasswordRecovery_form #loginPassword2').val(); 380 $('#PasswordRecovery_form #loginPassword').removeClass('is-invalid'); 381 $('#PasswordRecovery_form #loginPassword2').removeClass('is-invalid'); 382 383 if(password === ""){ 384 validation = false; 385 error = error + " Please enter your password"; 386 $('#PasswordRecovery_form #loginPassword').addClass('is-invalid'); 387 } 388 389 if(password2 ===""){ 390 validation = false; 391 error = error + " Please confirm your password"; 392 $('#PasswordRecovery_form #loginPassword2').addClass('is-invalid'); 393 } 394 395 if(password !== password2){ 396 validation = false; 397 error = error + " Your password and confirmation password do not match."; 398 $('#PasswordRecovery_form #loginPassword').addClass('is-invalid'); 399 $('#PasswordRecovery_form #loginPassword2').addClass('is-invalid'); 400 } 401 402 if (!(/^[a-zA-Z0-9~!@#$%^&*()_\-+=?.<>]+$/.test(password))) { 403 validation = false; 404 error = error + " Password can only consist of alphanumeric characters or ~!@#$%^&*()_-+=?.<>"; 405 } 406 407 if (!(validation)) { 408 $('#PasswordRecovery_form #errormsg').attr('style', 'display:inline;').addClass('invalid-feedback').html(error); 409 } else { 410 //alert('Submitting form'); 411 $("#PasswordRecovery_form").submit(); 412 } 413 414 }); 415 416 417 418 // CLC Form 419 $(document).on('click', '#clcregister #submitbtn', function (e) { 420 e.preventDefault(); 421 var validation = true; 422 var firstname = $('#clcregister #clcFirstName').val(); 423 var lastname = $('#clcregister #clcLastName').val(); 424 var email = $('#clcregister #clcEmail').val(); 425 var phone = $('#clcregister #clcPhone').val();; 426 var error = ""; 427 $('#clcregister #clcFirstName').removeClass('is-invalid'); 428 $('#clcregister #clcLastName').removeClass('is-invalid'); 429 $('#clcregister #clcEmail').removeClass('is-invalid'); 430 $('#clcregister #clcPhone').removeClass('is-invalid'); 431 $('#clcregister #errormsg').attr('style', '').removeClass('invalid-feedback').html(''); 432 433 if(firstname === ""){ 434 validation = false; 435 error = error + " First name is required"; 436 $('#clcregister #clcFirstName').addClass('is-invalid'); 437 } 438 439 if(lastname === ""){ 440 validation = false; 441 error = error + " Last name is required"; 442 $('#clcregister #clcLastName').addClass('is-invalid'); 443 } 444 445 if(email === ""){ 446 validation = false; 447 error = error + " Email is required"; 448 $('#clcregister #clcEmail').addClass('is-invalid'); 449 } else if (/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email)) { 450 451 var domain = email.substring(email.lastIndexOf("@") +1); 452 var obj = JSON.parse(emaildomains); 453 if(obj.domains.indexOf(domain) > -1) { 454 // All good 455 456 } else { 457 validation = false; 458 var domains_string = '@' + obj.domains.toString(); 459 console.log(domains_string); 460 domains_string = domains_string.replaceAll(',', ' or @'); 461 console.log(domains_string); 462 if (obj.domains.length>1) { 463 // maybe copy change 464 } 465 $('#clcregister #clcEmail').addClass('is-invalid'); 466 error = error + ' You have to use your work email '+domains_string+' to register. '; 467 } 468 //console.log(obj.domains[0]); 469 470 } else { 471 validation = false; 472 error = error + " Email address is not valid"; 473 $('#clcregister #clcEmail').addClass('is-invalid'); 474 } 475 476 if(phone === ""){ 477 validation = false; 478 error = error + " Phone is required"; 479 $('#clcregister #clcPhone').addClass('is-invalid'); 480 } else if (!(/^[0-9-() .+]+$/.test(phone))) { 481 //validation = false; 482 //error = error + " Please enter only numbers for phone number."; 483 //$('#clcregister #clcPhone').addClass('is-invalid'); 484 } 485 486 if (!(validation)) { 487 $('#clcregister #errormsg').attr('style', 'display:inline;').addClass('invalid-feedback').html(error); 488 } else { 489 //alert('Submitting form'); 490 $("#clcregister").submit(); 491 } 492 493 //console.log("CLICK ON CLC FORM"); 494 console.log(error); 495 }); 496 497 498})( jQuery );
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.