1/** 2 * Login and Register 3 * 4 * @package ThemeREX Addons 5 * @since v1.5 6 */ 7 8/* global jQuery, TRX_ADDONS_STORAGE */ 9 10jQuery(document).on('action.ready_trx_addons', function() { 11 12 "use strict"; 13 14/* 15 // Show/Hide user menu 16 if (jQuery('.trx_addons_login_link:not(.inited)').length > 0) { 17 jQuery('.trx_addons_login_link:not(.inited)').addClass('inited').on('click', function(e){ 18 jQuery(this).find('.trx_addons_login_menu').slideToggle().parent().toggleClass('menu_opened'); 19 e.preventDefault(); 20 return false; 21 }); 22 jQuery('body').on('click', function(e){ 23 jQuery(this).find('.trx_addons_login_menu:visible').slideUp().parent().removeClass('menu_opened'); 24 }); 25 } 26*/ 27 28 // Validate Login form 29 jQuery( 'form.trx_addons_popup_form_login:not(.inited)') 30 .addClass('inited') 31 .on( 'submit', function(e) { 32 var rez = trx_addons_login_validate(jQuery(this)); 33 if ( !rez ) { 34 e.preventDefault(); 35 } 36 return rez; 37 } ); 38 39 // Validate Registration form 40 jQuery( 'form.trx_addons_popup_form_register:not(.inited)') 41 .addClass('inited') 42 .on( 'submit', function(e) { 43 var rez = trx_addons_registration_validate(jQuery(this)); 44 if ( !rez ) { 45 e.preventDefault(); 46 } 47 return rez; 48 } ); 49 50 // Login form validation 51 function trx_addons_login_validate(form) { 52 form.find('input').removeClass('trx_addons_field_error'); 53 var error = trx_addons_form_validate(form, { 54 error_message_time: 4000, 55 exit_after_first_error: true, 56 rules: [ 57 { 58 field: "log", 59 min_length: { value: 1, message: TRX_ADDONS_STORAGE['msg_login_empty'] }, 60 max_length: { value: 60, message: TRX_ADDONS_STORAGE['msg_login_long'] } 61 }, 62 { 63 field: "pwd", 64 min_length: { value: 1, message: TRX_ADDONS_STORAGE['msg_password_empty'] }, 65 max_length: { value: 60, message: TRX_ADDONS_STORAGE['msg_password_long'] } 66 } 67 ] 68 }); 69 if (TRX_ADDONS_STORAGE['login_via_ajax'] && !error) { 70 trx_addons_login_ajax_loading( form, true ); 71 jQuery.post(TRX_ADDONS_STORAGE['ajax_url'], { 72 action: 'trx_addons_login_user', 73 nonce: TRX_ADDONS_STORAGE['ajax_nonce'], 74 redirect_to: form.find('input[name="redirect_to"]').length == 1 ? form.find('input[name="redirect_to"]').val() : '', 75 remember: form.find('input[name="rememberme"]').val(), 76 user_log: form.find('input[name="log"]').val(), 77 user_pwd: form.find('input[name="pwd"]').val() 78 }).done(function(response) { 79 trx_addons_login_ajax_loading( form, false ); 80 var rez = {}; 81 try { 82 rez = JSON.parse(response); 83 } catch(e) { 84 rez = { error: TRX_ADDONS_STORAGE['msg_ajax_error'] }; 85 console.log(response); 86 } 87 var result = form.find(".trx_addons_message_box") 88 .removeClass("trx_addons_message_box_error") 89 .removeClass("trx_addons_message_box_success"), 90 result_timeout = 3000; 91 if ( rez.error === '' ) { 92 result.addClass("trx_addons_message_box_success").html(TRX_ADDONS_STORAGE['msg_login_success']); 93 setTimeout( function() { 94 if ( rez.redirect_to !== '' ) { 95 location.href = trx_addons_add_to_url( 96 rez.redirect_to.indexOf( 'action=confirm_email' ) != -1 97 ? rez.redirect_to.substr( 0, rez.redirect_to.indexOf('?') ) 98 : rez.redirect_to,
99 { rnd: ( '' + Math.random() ).replace( '.', '' ) } 100 ); 101 } else { 102 location.href = trx_addons_add_to_url( 103 location.href.indexOf( 'action=confirm_email' ) != -1 104 ? TRX_ADDONS_STORAGE['site_url'] 105 : location.href, 106 { rnd: ( '' + Math.random() ).replace( '.', '' ) } 107 ); 108 } 109 }, result_timeout ); 110 } else { 111 result.addClass("trx_addons_message_box_error").html(TRX_ADDONS_STORAGE['msg_login_error'] + (rez.error!==undefined ? '<br>' + rez.error : '')); 112 } 113 result.fadeIn().delay(result_timeout).fadeOut(); 114 jQuery(document).trigger(' action.got_ajax_response', { 115 action: 'trx_addons_login_user', 116 result: rez 117 }); 118 }); 119 } 120 return !TRX_ADDONS_STORAGE['login_via_ajax'] && !error; 121 } 122 123 124 // Registration form validation 125 function trx_addons_registration_validate(form) { 126 form.find('input').removeClass('trx_addons_field_error'); 127 var error = trx_addons_form_validate(form, { 128 error_message_time: 4000, 129 exit_after_first_error: true, 130 rules: [ 131 { 132 field: "agree", 133 state: { value: 'checked', message: TRX_ADDONS_STORAGE['msg_not_agree'] }, 134 }, 135 { 136 field: "log", 137 min_length: { value: 1, message: TRX_ADDONS_STORAGE['msg_login_empty'] }, 138 max_length: { value: 60, message: TRX_ADDONS_STORAGE['msg_login_long'] } 139 }, 140 { 141 field: "email", 142 min_length: { value: 7, message: TRX_ADDONS_STORAGE['msg_email_not_valid'] }, 143 max_length: { value: 60, message: TRX_ADDONS_STORAGE['msg_email_long'] }, 144 mask: { value: TRX_ADDONS_STORAGE['email_mask'], message: TRX_ADDONS_STORAGE['msg_email_not_valid'] } 145 }, 146 { 147 field: "pwd", 148 min_length: { value: 4, message: TRX_ADDONS_STORAGE['msg_password_empty'] }, 149 max_length: { value: 60, message: TRX_ADDONS_STORAGE['msg_password_long'] } 150 }, 151 { 152 field: "pwd2", 153 equal_to: { value: 'pwd', message: TRX_ADDONS_STORAGE['msg_password_not_equal'] } 154 } 155 ] 156 }); 157 if (!error) { 158 trx_addons_login_ajax_loading( form, true ); 159 jQuery.post(TRX_ADDONS_STORAGE['ajax_url'], { 160 action: 'trx_addons_registration_user', 161 nonce: TRX_ADDONS_STORAGE['ajax_nonce'], 162 redirect_to: form.find('input[name="redirect_to"]').length == 1 ? form.find('input[name="redirect_to"]').val() : '', 163 user_name: form.find('input[name="log"]').val(), 164 user_email: form.find('input[name="email"]').val(), 165 user_pwd: form.find('input[name="pwd"]').val() 166 }).done(function(response) { 167 trx_addons_login_ajax_loading( form, false ); 168 var rez = {}; 169 try { 170 rez = JSON.parse(response); 171 } catch (e) { 172 rez = { error: TRX_ADDONS_STORAGE['msg_ajax_error'] }; 173 console.log(response); 174 } 175 var result = form.find(".trx_addons_message_box") 176 .removeClass("trx_addons_message_box_error") 177 .removeClass("trx_addons_message_box_success"), 178 result_timeout = 3000; 179 if (rez.error === '') { 180 result.addClass("trx_addons_message_box_success").html(TRX_ADDONS_STORAGE['msg_registration_success']); 181 if ( ! TRX_ADDONS_STORAGE['double_opt_in_registration'] ) { 182 setTimeout( function() { 183 if ( rez.redirect_to !== '' && trx_addons_apply_filters( 'trx_addons_filter_redirect_after_user_registration', false, rez.redirect_to ) ) { 184 location.href = rez.redirect_to; 185 } else { 186 jQuery('#trx_addons_login_popup .trx_addons_tabs_title_login > a').trigger('click'); 187 } 188 }, result_timeout ); 189 } else { 190 result_timeout = 5000; 191 setTimeout( function() { 192 jQuery( '#trx_addons_login_popup .mfp-close').trigger( 'click' ); 193 }, result_timeout ); 194 } 195 } else { 196 result.addClass("trx_addons_message_box_error").html(TRX_ADDONS_STORAGE['msg_registration_error'] + (rez.error!==undefined ? '<br>' + rez.error : '')); 197 } 198 result.fadeIn().delay(result_timeout).fadeOut(); 199 jQuery( document ).trigger( 'action.got_ajax_response', { 200 action: 'trx_addons_registration_user', 201 result: rez 202 }); 203 }); 204 } 205 return false; 206 } 207 208 // Show/hide loading waiting block 209 function trx_addons_login_ajax_loading( form, on ) { 210 var $popup = form.parents( ".trx_addons_popup" ); 211 var $loading = $popup.find( ".trx_addons_loading" ); 212 if ( $loading.length == 0 ) { 213 $popup.append( '<div class="trx_addons_loading"></div>' ); 214 $loading = $popup.find( " > .trx_addons_loading" ); 215 } 216 if ( on ) { 217 $loading.fadeIn(); 218 } else { 219 $loading.fadeOut(); 220 } 221 } 222 223});
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.