* VRFS-3541 - don't use HTML to store data sent to server for genre ID bug in profile

This commit is contained in:
Seth Call 2015-09-10 07:24:42 -05:00
parent 004991119a
commit ac1cc0c828
3 changed files with 35 additions and 12 deletions

View File

@ -121,19 +121,24 @@
// Column 2 - genres
var genres = profileUtils.virtualBandGenreList(userDetail.genres)
$virtualBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
var genreIds = profileUtils.getGenreIds(profileUtils.virtualBandGenres(userDetail.genres));
$virtualBandGenreList.data('genres', genreIds).html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
genres = profileUtils.traditionalBandGenreList(userDetail.genres)
$traditionalBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
var genreIds = profileUtils.getGenreIds(profileUtils.traditionalBandGenres(userDetail.genres));
$traditionalBandGenreList.data('genres', genreIds).html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
genres = profileUtils.paidSessionGenreList(userDetail.genres)
$paidSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
var genreIds = profileUtils.getGenreIds(profileUtils.paidSessionGenres(userDetail.genres));
$paidSessionsGenreList.data('genres', genreIds).html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
genres = profileUtils.freeSessionGenreList(userDetail.genres)
$freeSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
var genreIds = profileUtils.getGenreIds(profileUtils.freeSessionGenres(userDetail.genres));
$freeSessionsGenreList.data('genres', genreIds).html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
genres = profileUtils.cowritingGenreList(userDetail.genres)
$cowritingGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
var genreIds = profileUtils.getGenreIds(profileUtils.cowritingGenres(userDetail.genres));
$cowritingGenreList.data('genres', genreIds).html(genres && genres.length > 0 ? genres : NONE_SPECIFIED)
// Column 3 - misc (play commitment, rates, cowriting purpose)
$virtualBandCommitment.val(userDetail.virtual_band_commitment)
@ -165,7 +170,7 @@
}
ui.launchGenreSelectorDialog(type, genres, function(selectedGenres) {
$genreList.html(selectedGenres && selectedGenres.length > 0 ? selectedGenres.join(GENRE_LIST_DELIMITER) : NONE_SPECIFIED)
$genreList.data('genres', selectedGenres).html(selectedGenres && selectedGenres.length > 0 ? selectedGenres.join(GENRE_LIST_DELIMITER) : NONE_SPECIFIED)
})
return false
@ -278,24 +283,24 @@
api.updateUser({
virtual_band: $screen.find('input[name=virtual_band]:checked').val(),
virtual_band_genres: $virtualBandGenreList.html() === NONE_SPECIFIED ? [] : $virtualBandGenreList.html().split(GENRE_LIST_DELIMITER),
virtual_band_genres: $virtualBandGenreList.data('genres'),
virtual_band_commitment: $virtualBandCommitment.val(),
traditional_band: $screen.find('input[name=traditional_band]:checked').val(),
traditional_band_genres: $traditionalBandGenreList.html() === NONE_SPECIFIED ? [] : $traditionalBandGenreList.html().split(GENRE_LIST_DELIMITER),
traditional_band_genres: $traditionalBandGenreList.data('genres'),
traditional_band_commitment: $traditionalBandCommitment.val(),
traditional_band_touring: $traditionalTouringOption.val(),
paid_sessions: $screen.find('input[name=paid_sessions]:checked').val(),
paid_session_genres: $paidSessionsGenreList.html() === NONE_SPECIFIED ? [] : $paidSessionsGenreList.html().split(GENRE_LIST_DELIMITER),
paid_session_genres: $paidSessionsGenreList.data('genres'),
paid_sessions_hourly_rate: profileUtils.normalizeMoneyForSubmit($hourlyRate.val()),
paid_sessions_daily_rate: profileUtils.normalizeMoneyForSubmit($dailyRate.val()),
free_sessions: $screen.find('input[name=free_sessions]:checked').val(),
free_session_genres: $freeSessionsGenreList.html() === NONE_SPECIFIED ? [] : $freeSessionsGenreList.html().split(GENRE_LIST_DELIMITER),
free_session_genres: $freeSessionsGenreList.data('genres'),
cowriting: $screen.find('input[name=cowriting]:checked').val(),
cowriting_genres: $cowritingGenreList.html() === NONE_SPECIFIED ? [] : $cowritingGenreList.html().split(GENRE_LIST_DELIMITER),
cowriting_genres: $cowritingGenreList.data('genres'),
cowriting_purpose: $cowritingPurpose.val()
})
.done(postUpdateProfileSuccess)

View File

@ -28,7 +28,14 @@
checked = 'checked';
}
$genres.append('<input type="checkbox" value="' + val.id + '" ' + checked + ' />' + val.description);
var $input = $('<input type="checkbox" />')
$input.val(val.id)
if(checked == 'checked') {
$input.attr('checked', 'checked')
}
$genres.append($input);
$genres.append(val.description);
$genres.append('</li>');
});
}

View File

@ -97,6 +97,17 @@
return list;
}
profileUtils.getGenreIds = function(genres) {
var list = []
for (var i=0; i < genres.length; i++) {
list.push(genres[i].genre_id);
}
return list;
}
// the server stores money in cents; display it as such
profileUtils.normalizeMoneyForDisplay = function(serverValue) {
if (!serverValue || serverValue==="") {