91 lines
2.0 KiB
JavaScript
91 lines
2.0 KiB
JavaScript
/*jshint devel:true */
|
|
/*global ajaxurl, _ */
|
|
|
|
var WPML_TM = WPML_TM || {};
|
|
|
|
WPML_TM.setTranslationRole = function ( $, content, nonce, role, validStateCallback ) {
|
|
"use strict";
|
|
|
|
var self = this;
|
|
|
|
var init = function () {
|
|
if ( content ) {
|
|
self.newUserInputs = content.find( '.js-first-name, .js-last-name, .js-email, .js-user-name' );
|
|
self.wpRoleSelect = content.find( '.js-role' );
|
|
|
|
self.newUserInputs.on( 'input', inputChange );
|
|
}
|
|
|
|
};
|
|
|
|
var setTranslationRole = function ( data, success, error ) {
|
|
$.ajax( {
|
|
type: 'POST',
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
data: _.extend( data, {
|
|
action: 'wpml_add_translation_' + role,
|
|
nonce: nonce
|
|
} ),
|
|
success: function ( response ) {
|
|
if ( response.success ) {
|
|
success( response.data );
|
|
} else {
|
|
error( response.data );
|
|
}
|
|
}
|
|
} );
|
|
|
|
};
|
|
|
|
var inputChange = function( e ) {
|
|
validStateCallback( self.isValid() );
|
|
};
|
|
|
|
self.setExisting = function ( userId, success, error, extraData ) {
|
|
setTranslationRole(
|
|
_.extend( extraData, { user_id : userId } ),
|
|
success,
|
|
error
|
|
);
|
|
};
|
|
|
|
self.addNew = function ( success, error, extraData ) {
|
|
setTranslationRole( _.extend( extraData, {
|
|
first: $( self.newUserInputs[ 0 ] ).val(),
|
|
last: $( self.newUserInputs[ 1 ] ).val(),
|
|
email: $( self.newUserInputs[ 2 ] ).val(),
|
|
user: $( self.newUserInputs[ 3 ] ).val(),
|
|
role: self.wpRoleSelect.val()
|
|
} ),
|
|
success,
|
|
error
|
|
);
|
|
};
|
|
|
|
self.isValid = function () {
|
|
return self.getUserName() && self.isEmailValid( self.getEmail() );
|
|
};
|
|
|
|
self.isEmailValid = function ( email ) {
|
|
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
return re.test( email );
|
|
};
|
|
|
|
self.resetInputs = function() {
|
|
self.newUserInputs.val( '' );
|
|
};
|
|
|
|
self.getUserName = function() {
|
|
return $( self.newUserInputs[ 3 ] ).val();
|
|
};
|
|
|
|
self.getEmail = function() {
|
|
return $( self.newUserInputs[ 2 ] ).val();
|
|
};
|
|
|
|
init();
|
|
|
|
};
|
|
|