Allow changing of language preference from profile page
This commit is contained in:
@@ -16,22 +16,42 @@ var edx = edx || {};
|
||||
eventHandlers: {
|
||||
init: function() {
|
||||
_fn.eventHandlers.submit();
|
||||
_fn.eventHandlers.click();
|
||||
},
|
||||
|
||||
submit: function() {
|
||||
$("#name-change-form").submit( _fn.form.submit );
|
||||
$('#name-change-form').on( 'submit', _fn.update.name );
|
||||
},
|
||||
|
||||
click: function() {
|
||||
$('#language-change-form .submit-button').on( 'click', _fn.update.language );
|
||||
}
|
||||
},
|
||||
|
||||
update: {
|
||||
name: function( event ) {
|
||||
_fn.form.submit( event, '#new-name', 'new_name', 'name_change' );
|
||||
},
|
||||
|
||||
language: function( event ) {
|
||||
/**
|
||||
* The onSuccess argument here means: take `window.location.reload`
|
||||
* and return a function that will use `window.location` as the
|
||||
* `this` reference inside `reload()`.
|
||||
*/
|
||||
_fn.form.submit( event, '#new-language', 'new_language', 'language_change', window.location.reload.bind(window.location) );
|
||||
}
|
||||
},
|
||||
|
||||
form: {
|
||||
submit: function( event ) {
|
||||
var $newName = $('#new-name');
|
||||
var data = {
|
||||
new_name: $newName.val()
|
||||
};
|
||||
submit: function( event, idSelector, key, url, onSuccess ) {
|
||||
var $selection = $(idSelector),
|
||||
data = {};
|
||||
|
||||
data[key] = $selection.val();
|
||||
|
||||
event.preventDefault();
|
||||
_fn.ajax.put( 'name_change', data );
|
||||
_fn.ajax.put( url, data, onSuccess );
|
||||
}
|
||||
},
|
||||
|
||||
@@ -40,7 +60,7 @@ var edx = edx || {};
|
||||
var csrftoken = _fn.cookie.get( 'csrftoken' );
|
||||
|
||||
$.ajaxSetup({
|
||||
beforeSend: function(xhr, settings) {
|
||||
beforeSend: function( xhr, settings ) {
|
||||
if ( settings.type === 'PUT' ) {
|
||||
xhr.setRequestHeader( 'X-CSRFToken', csrftoken );
|
||||
}
|
||||
@@ -48,11 +68,12 @@ var edx = edx || {};
|
||||
});
|
||||
},
|
||||
|
||||
put: function( url, data ) {
|
||||
put: function( url, data, onSuccess ) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'PUT',
|
||||
data: data
|
||||
data: data,
|
||||
success: onSuccess ? onSuccess : ''
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user