// // Use internal $.serializeArray to get list of form elements which is // consistent with $.serialize // // From version 2.0.0, $.serializeObject will stop converting [name] values // to camelCase format. This is *consistent* with other serialize methods: // // - $.serialize // - $.serializeArray // // If you require camel casing, you can either download version 1.0.4 or map // them yourself. // (function($) { $.fn.serializeObject = function () { "use strict"; var result = {}; var extend = function (i, element) { var node = result[element.name]; // If node with same name exists already, need to convert it to an array as it // is a multi-value field (i.e., checkboxes) if ('undefined' !== typeof node && node !== null) { if ($.isArray(node)) { node.push(element.value); } else { result[element.name] = [node, element.value]; } } else { result[element.name] = element.value; } }; $.each(this.serializeArray(), extend); return result; }; })(jQuery); (function ( $ ) { window.WP_Users = window.WP_Users || {}; window.WP_Users = $.extend({ init: function(){ var wpu = this; wpu.events_handle(); wpu.forms(); wpu.profile_avatar(); wpu.profile_cover(); }, events_handle: function(){ var wpu = this; wpu.hide_all_errors(); // force reset password form /* if ( WP_Users.current_action == 'rp' ) { $('.wpu-modal').addClass('is-visible'); $('#wpu-login').removeClass('is-selected'); console.log( $('#wpu-change-password') ); $('#wpu-change-password').addClass('is-selected'); } */ // When click to login, singup button $('body').on( 'click', '.wpu-singup-btn, .wpu-login-btn', function( event ) { var target = $( event.target ); var is_login = target.is('.wpu-login-btn'); if ( is_login ) { if ( target.data('is-logged') ) { return true; } } $('.wpu-modal').addClass('is-visible'); $('body').trigger('wp_users_before_open'); if ( is_login ) { wpu.login_selected(); } else { wpu.signup_selected(); } return false; } ); //close modal when clicking the esc keyboard button $( document ).keyup(function(event) { if (event.which=='27') { wpu.close_modal(); } }); // When click to overlay $('body').on('click', '.wpu-modal', function(event) { var $form_modal = $('.wpu-modal' ); if ( $(event.target).is($form_modal) || $(event.target).is('.wpu-close-form') ) { wpu.close_modal(); } }); // When click X Button $('body').on('click', '.wpu-modal .wpu-close-form', function(event) { wpu.close_modal(); }); // When click to Register button/link in Modal $( 'body' ).on( 'click', '.wpu-modal .wpu-register-link', function( event ) { event.preventDefault(); wpu.signup_selected(); } ); // When click to Login button/link on Modal $('body').on( 'click', '.wpu-modal .wpu-login-link', function( event ) { event.preventDefault(); wpu.login_selected(); } ); //Hide or show password $('body' ).on('click', '.wpu-pwd-toggle .hide-password', function( event ) { event.preventDefault(); var $this= $(this), p = $this.parent(), $password_field = $('input', p ); if ( 'password' == $password_field.attr('type') ) { $password_field.attr('type', 'text'); $this.text( WP_Users.hide_txt ); } else { $password_field.attr('type', 'password'); $this.text( WP_Users.show_txt ); } //focus and move cursor to the end of input field var v = $password_field.val(); var l = v.length; $password_field.focus(); $password_field[0].setSelectionRange(l, l); }); //Show forgot-password form $('body').on('click', '.wpu-modal .wpu-lost-pwd-link', function(event) { event.preventDefault(); wpu.forgot_password_selected(); }); //back to login from the forgot-password form $('body').on('click', '.wpu-modal .wpu-back-to-login', function(event) { event.preventDefault(); wpu.login_selected(); }); // Back to login Link if ( $('.wpu-register-form' ).hasClass('in-wpu-modal') ) { $( 'body' ).on( 'click', '.wpu-modal .wpu-login-link', function( event ) { event.preventDefault(); wpu.login_selected(); }); } }, /** * Remove modal */ close_modal: function(){ $('.wpu-modal' ).removeClass('is-visible'); }, /** * Switch to login tab in modal */ login_selected: function() { var $form_modal = $('.wpu-modal' ), $form_login = $form_modal.find('#wpu-login'), $form_signup = $form_modal.find('#wpu-signup' ), $form_forgot_password = $form_modal.find('#wpu-reset-password'), $form_change_password = $form_modal.find('#wpu-change-password'), $login_link = $form_modal.find( '.wpu-login-link' ), $signup_link = $form_modal.find( '.wpu-register-link' ); $form_login.addClass('is-selected'); $form_signup.removeClass('is-selected'); $form_forgot_password.removeClass('is-selected'); $form_change_password.removeClass('is-selected'); $login_link.addClass('selected'); $signup_link.removeClass('selected'); }, /** * Switch to Signup tab in modal */ signup_selected: function () { var $form_modal = $('.wpu-modal' ), $form_login = $form_modal.find('#wpu-login'), $form_signup = $form_modal.find('#wpu-signup' ), $form_forgot_password = $form_modal.find('#wpu-reset-password'), $form_change_password = $form_modal.find('#wpu-change-password'), $login_link = $form_modal.find( '.wpu-login-link' ), $signup_link = $form_modal.find( '.wpu-register-link' ); $form_login.removeClass('is-selected'); $form_signup.addClass('is-selected'); $form_forgot_password.removeClass('is-selected'); $form_change_password.removeClass('is-selected'); $login_link.removeClass('selected'); $signup_link.addClass('selected'); }, /** * Switch to forgot pwd tab in modal */ forgot_password_selected: function () { var $form_modal = $('.wpu-modal' ), $form_login = $form_modal.find('#wpu-login'), $form_signup = $form_modal.find('#wpu-signup' ), $form_forgot_password = $form_modal.find('#wpu-reset-password'), $form_change_password = $form_modal.find('#wpu-change-password'); $form_login.removeClass('is-selected'); $form_signup.removeClass('is-selected'); $form_change_password.removeClass('is-selected'); $form_forgot_password.addClass('is-selected'); }, /** * Hide all error on inputs */ hide_all_errors: function () { // hide all errors fields when load $( 'body' ).on( 'click', '.wpu-form .fieldset', function( ) { var p = $(this); p.find('input').removeClass('has-error'); p.find('span').removeClass('is-visible'); }); }, /** * Avatar action */ profile_avatar: function(){ var wpu = this; var html = '
' + '
'+WP_Users.avatar_text+'
' + '
' + '
'+WP_Users.upload_text+'
' + '
'+WP_Users.remove_text+'
' + '
' + '
'; $( '.wpu-profile-avatar[data-change="true"]').each( function(){ var obj = $( html ); $( this ).append( obj ); wpu.handle_upload( 'avatar', obj ); // Remove avatar $( '.cp-remove', obj).on( 'click', function(){ $.post( WP_Users.ajax_url, { _wpnonce: WP_Users._wpnonce, act: "remove_media", media_type: 'avatar', action: "wp_users_ajax" }, function () { var _default = $( '.wpu-profile-avatar').attr( 'data-default' ) || ''; if ( _default !== '' ) { $( '.wpu-profile-avatar').css( { backgroundImage: 'url("'+ _default +'")'} ); } else { $( '.wpu-profile-avatar').css( { backgroundImage: ''} ); } } ); $( '.cp-actions', obj ).removeClass('cp-active'); return false; } ); } ); }, /** * Cover action */ profile_cover: function(){ var wpu = this; var html = '
' + '
'+WP_Users.cover_text+'
' + '
' + '
'+WP_Users.upload_text+'
' + '
'+WP_Users.remove_text+'
' + '
' + '
'; $( '.wpu-profile-cover[data-change="true"]').each( function(){ var obj = $( html ); $( this ).append( obj ); wpu.handle_upload( 'cover', obj ); // Remove avatar $( '.cp-remove', obj).on( 'click', function( e ){ e.preventDefault(); $.post( WP_Users.ajax_url, { _wpnonce: WP_Users._wpnonce, act: "remove_media", media_type: 'cover', action: "wp_users_ajax" }, function () { var _default = $( '.wpu-profile-cover').attr( 'data-default' ) || ''; if ( _default !== '' ) { $( '.wpu-profile-cover').css( { backgroundImage: 'url("'+ _default +'")'} ); } else { $( '.wpu-profile-cover').css( { backgroundImage: ''} ); } } ); $( '.cp-actions', obj ).removeClass('cp-active'); } ); } ); }, handle_upload: function( type, obj ){ var wpu = this; $( document ).mouseup( function ( e ) { if (!obj.is(e.target) // if the target of the click isn't the container... && obj.has(e.target).length === 0) // ... nor a descendant of the container { $( '.cp-actions', obj ).removeClass('cp-active'); } }); // Drop downmenu $( '.cp-btn', obj ).on( 'click', function(){ $( '.cp-actions', obj ).toggleClass('cp-active'); }); // Upload image $( '.cp-upload', obj ).on( 'click', function(){ wpu._upload_form( type ); }); }, _upload_form: function( type ){ var form; if ( $( '#wpu_form_update_'+type ).length > 0 ) { $( '#wpu_form_update_'+type).remove(); } form = $( '