123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- var EditUserPage = {
- onPageShow: function () {
- Dashboard.showLoadingMsg();
- var userId = getParameterByName("userId");
-
- if (userId) {
- $('#userProfileNavigation', this).show();
- } else {
- $('#userProfileNavigation', this).hide();
- }
- var promise4 = ApiClient.getCultures();
- var promise3 = ApiClient.getParentalRatings();
- var promise1;
- if (!userId) {
- var deferred = $.Deferred();
- deferred.resolveWith(null, [{
- Configuration: {}
- }]);
- promise1 = deferred.promise();
- } else {
- promise1 = ApiClient.getUser(userId);
- }
- var promise2 = Dashboard.getCurrentUser();
- $.when(promise1, promise2, promise3, promise4).done(function (response1, response2, response3, response4) {
- EditUserPage.loadUser(response1[0] || response1, response2[0], response3[0], response4[0]);
- });
- },
- loadUser: function (user, loggedInUser, allParentalRatings, allCultures) {
- var page = $($.mobile.activePage);
- EditUserPage.populateLanguages($('#selectAudioLanguage', page), allCultures);
- EditUserPage.populateLanguages($('#selectSubtitleLanguage', page), allCultures);
- EditUserPage.populateRatings(allParentalRatings, page);
- if (!loggedInUser.Configuration.IsAdministrator || user.Id == loggedInUser.Id) {
- $('#fldIsAdmin', page).hide();
- $('#fldMaxParentalRating', page).hide();
- } else {
- $('#fldIsAdmin', page).show();
- $('#fldMaxParentalRating', page).show();
- }
- Dashboard.setPageTitle(user.Name || "Add User");
- $('#txtUserName', page).val(user.Name);
- var ratingValue = "";
- if (user.Configuration.MaxParentalRating) {
- for (var i = 0, length = allParentalRatings.length; i < length; i++) {
- var rating = allParentalRatings[i];
- if (user.Configuration.MaxParentalRating >= rating.Value) {
- ratingValue = rating.Value;
- }
- }
- }
- $('#selectMaxParentalRating', page).val(ratingValue).selectmenu("refresh");
- $('#selectAudioLanguage', page).val(user.Configuration.AudioLanguagePreference || "").selectmenu("refresh");
- $('#selectSubtitleLanguage', page).val(user.Configuration.SubtitleLanguagePreference || "").selectmenu("refresh");
- $('#chkForcedSubtitlesOnly', page).checked(user.Configuration.UseForcedSubtitlesOnly || false).checkboxradio("refresh");
- $('#chkIsAdmin', page).checked(user.Configuration.IsAdministrator || false).checkboxradio("refresh");
- Dashboard.hideLoadingMsg();
- },
- populateLanguages: function (select, allCultures) {
- var html = "";
- html += "<option value=''>None</option>";
- for (var i = 0, length = allCultures.length; i < length; i++) {
- var culture = allCultures[i];
- html += "<option value='" + culture.ThreeLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
- }
- select.html(html).selectmenu("refresh");
- },
- populateRatings: function (allParentalRatings, page) {
- var html = "";
- html += "<option value=''>None</option>";
- for (var i = 0, length = allParentalRatings.length; i < length; i++) {
- var rating = allParentalRatings[i];
- html += "<option value='" + rating.Value + "'>" + rating.Name + "</option>";
- }
- $('#selectMaxParentalRating', page).html(html).selectmenu("refresh");
- },
- saveUser: function (user) {
- var page = $($.mobile.activePage);
- user.Name = $('#txtUserName', page).val();
- user.Configuration.MaxParentalRating = $('#selectMaxParentalRating', page).val() || null;
- user.Configuration.IsAdministrator = $('#chkIsAdmin', page).checked();
- user.Configuration.AudioLanguagePreference = $('#selectAudioLanguage', page).val();
- user.Configuration.SubtitleLanguagePreference = $('#selectSubtitleLanguage', page).val();
- user.Configuration.UseForcedSubtitlesOnly = $('#chkForcedSubtitlesOnly', page).checked();
- var userId = getParameterByName("userId");
- if (userId) {
- ApiClient.updateUser(user).done(EditUserPage.saveComplete);
- } else {
- ApiClient.createUser(user).done(EditUserPage.saveComplete);
- }
- },
- saveComplete: function () {
- Dashboard.hideLoadingMsg();
- var userId = getParameterByName("userId");
- Dashboard.validateCurrentUser();
- if (userId) {
- Dashboard.alert("Settings saved.");
- } else {
- Dashboard.navigate("userProfiles.html");
- }
- },
- onSubmit: function () {
- Dashboard.showLoadingMsg();
- var userId = getParameterByName("userId");
- if (!userId) {
- EditUserPage.saveUser({
- Configuration: {}
- });
- } else {
- ApiClient.getUser(userId).done(EditUserPage.saveUser);
- }
- // Disable default form submission
- return false;
- }
- };
- $(document).on('pageshow', "#editUserPage", EditUserPage.onPageShow);
|