Files
NodeBB/public/src/forum/accountsettings.js

67 lines
1.5 KiB
JavaScript
Raw Normal View History

define(['forum/accountheader'], function(header) {
var AccountSettings = {};
2013-07-25 14:30:12 -04:00
AccountSettings.init = function() {
header.init();
2013-07-25 14:30:12 -04:00
$('#submitBtn').on('click', function() {
var settings = {};
2013-07-25 14:30:12 -04:00
$('.account').find('input, textarea, select').each(function(id, input) {
input = $(input);
var setting = input.attr('data-property');
if (input.is('select')) {
settings[setting] = input.val();
return;
}
switch (input.attr('type')) {
2014-04-16 16:47:51 -04:00
case 'text':
case 'textarea':
settings[setting] = input.val();
break;
2014-04-16 16:47:51 -04:00
case 'checkbox':
settings[setting] = input.is(':checked') ? 1 : 0;
break;
}
});
socket.emit('user.saveSettings', settings, function(err) {
2014-01-16 18:06:19 -05:00
if (err) {
return app.alertError(err.message);
}
app.alertSuccess('[[success:settings-saved]]');
});
return false;
});
socket.emit('user.getSettings', function(err, settings) {
var inputs = $('.account').find('input, textarea, select');
inputs.each(function(index, input) {
input = $(input);
var setting = input.attr('data-property');
if (setting) {
if (input.is('select')) {
input.val(settings[setting]);
return;
}
switch (input.attr('type')) {
case 'text' :
case 'textarea' :
input.val(settings[setting]);
break;
case 'checkbox' :
input.prop('checked', !!settings[setting]);
break;
}
}
});
});
};
2013-07-25 14:30:12 -04:00
return AccountSettings;
});