Import legacy nurinda.co.id website
This commit is contained in:
1 parent
3f59bb9038
commit
6e21646ac4
13389 files changed
+3246690
No files matched your search
@@ -0,0 +1,257 @@
|
||||
/**
|
||||
* UpSolution Shortcode: us_cform
|
||||
*/
|
||||
jQuery( function( $ ) {
|
||||
|
||||
$( '.w-form.for_cform' ).each( function() {
|
||||
var $container = $( this ),
|
||||
$form = $container.find( 'form:first' ),
|
||||
$submitBtn = $form.find( '.w-btn' ),
|
||||
$resultField = $form.find( '.w-form-message' ),
|
||||
options = $container.find( '.w-form-json' )[ 0 ].onclick(),
|
||||
$requiredCheckboxes = $form.find( '.for_checkboxes.required' );
|
||||
$container.find( '.w-form-json' ).remove();
|
||||
|
||||
$form.submit( function( event ) {
|
||||
event.preventDefault();
|
||||
|
||||
// Prevent double-sending
|
||||
if ( $submitBtn.hasClass( 'loading' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$resultField.usMod( 'type', false ).html( '' );
|
||||
// Validation
|
||||
var errors = 0;
|
||||
$form.find( '[data-required="true"]' ).each( function() {
|
||||
var $input = $( this ),
|
||||
isEmpty = $input.is( '[type="checkbox"]' ) ? ( ! $input.is( ':checked' ) ) : ( $input.val() == '' ),
|
||||
$row = $input.closest( '.w-form-row' );
|
||||
// Skip checkboxes
|
||||
if ( $row.hasClass( 'for_checkboxes' ) ) {
|
||||
return true;
|
||||
}
|
||||
$row.toggleClass( 'check_wrong', isEmpty );
|
||||
if ( isEmpty ) {
|
||||
errors ++;
|
||||
}
|
||||
} );
|
||||
|
||||
// Count required checkboxes separately
|
||||
if ( $requiredCheckboxes.length ) {
|
||||
$requiredCheckboxes.each( function() {
|
||||
var $input = $( this ).find( 'input[type="checkbox"]' ),
|
||||
$row = $input.closest( '.w-form-row' ),
|
||||
isEmpty = ! $input.is( ':checked' ) ? true : false;
|
||||
$row.toggleClass( 'check_wrong', isEmpty );
|
||||
if ( isEmpty ) {
|
||||
errors ++;
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
if ( errors != 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$submitBtn.addClass( 'loading' );
|
||||
$.ajax( {
|
||||
type: 'POST',
|
||||
url: options.ajaxurl,
|
||||
dataType: 'json',
|
||||
data: $form.serialize(),
|
||||
success: function( result ) {
|
||||
if ( result.success ) {
|
||||
$resultField.usMod( 'type', 'success' ).html( result.data );
|
||||
$form.find( '.w-form-row.check_wrong' ).removeClass( 'check_wrong' );
|
||||
$form.find( '.w-form-row.not-empty' ).removeClass( 'not-empty' );
|
||||
$form.find( 'input[type="text"], input[type="email"], textarea' ).val( '' );
|
||||
$form[ 0 ].reset();
|
||||
} else {
|
||||
$form.find( '.w-form-row.check_wrong' ).removeClass( 'check_wrong' );
|
||||
if ( result.data && typeof result.data == 'object' ) {
|
||||
for ( var fieldName in result.data ) {
|
||||
if ( fieldName == 'empty_message' ) {
|
||||
$resultField.usMod( 'type', 'error' );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( ! result.data.hasOwnProperty( fieldName ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
fieldName = result.data[ fieldName ].name;
|
||||
var $input = $form.find( '[name="' + fieldName + '"]' );
|
||||
$input.closest( '.w-form-row' ).addClass( 'check_wrong' )
|
||||
}
|
||||
} else {
|
||||
$resultField.usMod( 'type', 'error' ).html( result.data );
|
||||
}
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
$submitBtn.removeClass( 'loading' );
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
} );
|
||||
} );
|
||||
|
||||
/**
|
||||
* UpSolution Login Widget: widget_us_login
|
||||
*
|
||||
*/
|
||||
! function( $ ) {
|
||||
"use strict";
|
||||
|
||||
$us.WLogin = function( container, options ) {
|
||||
this.init( container, options );
|
||||
};
|
||||
|
||||
$us.WLogin.prototype = {
|
||||
init: function( container, options ) {
|
||||
this.$container = $( container );
|
||||
|
||||
// Prevent double init
|
||||
if ( this.$container.data( 'loginInit' ) == 1 ) {
|
||||
return;
|
||||
}
|
||||
this.$container.data( 'loginInit', 1 );
|
||||
|
||||
this.$form = this.$container.find( '.w-form' );
|
||||
this.$profile = this.$container.find( '.w-profile' );
|
||||
this.$preloader = this.$container.find( 'div.g-preloader' );
|
||||
this.$submitBtn = this.$form.find( '.w-btn' );
|
||||
this.$username = this.$form.find( '.for_text input[type="text"]' );
|
||||
this.$password = this.$form.find( '.for_password input[type="password"]' );
|
||||
this.$nonceVal = this.$form.find( '#us_login_nonce' ).val();
|
||||
this.$resultField = this.$form.find( '.w-form-message' );
|
||||
|
||||
this.$jsonContainer = this.$container.find( '.w-profile-json' );
|
||||
this.jsonData = this.$jsonContainer[ 0 ].onclick() || {};
|
||||
this.$jsonContainer.remove();
|
||||
|
||||
this.ajaxUrl = this.jsonData.ajax_url || '';
|
||||
this.logoutRedirect = this.jsonData.logout_redirect || '/';
|
||||
this.loginRedirect = this.jsonData.login_redirect || '';
|
||||
|
||||
this._events = {
|
||||
formSubmit: this.formSubmit.bind( this )
|
||||
};
|
||||
|
||||
this.$form.on( 'submit', this._events.formSubmit );
|
||||
|
||||
$.ajax( {
|
||||
type: 'post',
|
||||
url: this.ajaxUrl,
|
||||
data: {
|
||||
action: 'us_ajax_user_info',
|
||||
logout_redirect: this.logoutRedirect
|
||||
},
|
||||
success: function( result ) {
|
||||
if ( result.success ) {
|
||||
var $avatar = this.$profile.find( '.w-profile-avatar' ),
|
||||
$name = this.$profile.find( '.w-profile-name' ),
|
||||
$logoutLink = this.$profile.find( '.w-profile-link.for_logout' );
|
||||
|
||||
$avatar.html( result.data.avatar );
|
||||
$name.html( result.data.name );
|
||||
$logoutLink.attr( 'href', result.data.logout_url );
|
||||
this.$profile.removeClass( 'hidden' );
|
||||
} else {
|
||||
this.$form.removeClass( 'hidden' );
|
||||
}
|
||||
this.$preloader.addClass( 'hidden' );
|
||||
}.bind( this )
|
||||
} );
|
||||
},
|
||||
formSubmit: function( event ) {
|
||||
event.preventDefault();
|
||||
|
||||
// Prevent double-sending
|
||||
if ( this.$submitBtn.hasClass( 'loading' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Clear errors
|
||||
this.$resultField.usMod( 'type', false ).html( '' );
|
||||
this.$form.find( '.w-form-row.check_wrong' ).removeClass( 'check_wrong' );
|
||||
this.$form.find( '.w-form-state' ).html( '' );
|
||||
|
||||
// Prevent sending data with empty username
|
||||
if ( this.$form.find( '.for_text input[type="text"]' ).val() == '' ) {
|
||||
this.$username.closest( '.w-form-row' ).toggleClass( 'check_wrong' );
|
||||
return;
|
||||
}
|
||||
|
||||
this.$submitBtn.addClass( 'loading' );
|
||||
$.ajax( {
|
||||
type: 'post',
|
||||
url: this.ajaxUrl,
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'us_ajax_login',
|
||||
username: this.$username.val(),
|
||||
password: this.$password.val(),
|
||||
us_login_nonce: this.$nonceVal
|
||||
},
|
||||
success: function( result ) {
|
||||
if ( result.success ) {
|
||||
document.location.href = this.loginRedirect;
|
||||
} else {
|
||||
if ( result.data.code == 'invalid_username' ) {
|
||||
var $rowLog = this.$username.closest( '.w-form-row' );
|
||||
$rowLog.toggleClass( 'check_wrong' );
|
||||
$rowLog.find( '.w-form-row-state' ).html( result.data.message ? result.data.message : '' );
|
||||
} else if ( result.data.code == 'incorrect_password' || result.data.code == 'empty_password' ) {
|
||||
var $rowPwd = this.$password.closest( '.w-form-row' );
|
||||
$rowPwd.toggleClass( 'check_wrong' );
|
||||
$rowPwd.find( '.w-form-row-state' ).html( result.data.message ? result.data.message : '' );
|
||||
} else {
|
||||
this.$resultField.usMod( 'type', 'error' ).html( result.data.message );
|
||||
}
|
||||
}
|
||||
this.$submitBtn.removeClass( 'loading' );
|
||||
}.bind( this ),
|
||||
} );
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.wUsLogin = function( options ) {
|
||||
return this.each( function() {
|
||||
$( this ).data( 'wUsLogin', new $us.WLogin( this, options ) );
|
||||
} );
|
||||
};
|
||||
|
||||
$( function() {
|
||||
$( '.widget_us_login' ).wUsLogin();
|
||||
} );
|
||||
}( jQuery );
|
||||
|
||||
/**
|
||||
* Form customs
|
||||
*/
|
||||
jQuery( function( $ ) {
|
||||
|
||||
// Add not-empty class when filling form fields
|
||||
$( 'input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], input[type="search"], input[type="url"], input[type="password"], textarea' ).each( function( index, input ) {
|
||||
var $input = $( input ),
|
||||
$row = $input.closest( '.w-form-row' );
|
||||
if ( $input.attr( 'type' ) == 'hidden' ) {
|
||||
return;
|
||||
}
|
||||
$row.toggleClass( 'not-empty', $input.val() != '' );
|
||||
$input.on( 'input', function() {
|
||||
$row.toggleClass( 'not-empty', $input.val() != '' );
|
||||
} );
|
||||
} );
|
||||
|
||||
// Add focused class for all form fields
|
||||
$( document ).on( 'focus', '.w-form-row-field input, .w-form-row-field textarea', function() {
|
||||
$( this ).closest( '.w-form-row' ).addClass( 'focused' );
|
||||
} );
|
||||
$( document ).on( 'blur', '.w-form-row-field input, .w-form-row-field textarea', function() {
|
||||
$( this ).closest( '.w-form-row' ).removeClass( 'focused' );
|
||||
} );
|
||||
} );
|
||||
Reference in new issue
Block a user