Allow changing of language preference from profile page

This commit is contained in:
Renzo Lucioni
2014-09-26 17:31:46 -04:00
parent c5530b758d
commit 254a0ce6c8
15 changed files with 426 additions and 83 deletions

View File

@@ -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 : ''
});
}
},