define(['jQuery', 'paper-icon-button-light', 'cardStyle'], function ($) { function deleteUser(page, id) { var msg = Globalize.translate('DeleteUserConfirmation'); require(['confirm'], function (confirm) { confirm(msg, Globalize.translate('DeleteUser')).then(function () { Dashboard.showLoadingMsg(); ApiClient.deleteUser(id).then(function () { loadData(page); }); }); }); } function showUserMenu(elem) { var card = $(elem).parents('.card')[0]; var page = $(card).parents('.page')[0]; var userId = card.getAttribute('data-userid'); var menuItems = []; menuItems.push({ name: Globalize.translate('ButtonOpen'), id: 'open', ironIcon: 'mode-edit' }); menuItems.push({ name: Globalize.translate('ButtonLibraryAccess'), id: 'access', ironIcon: 'lock' }); menuItems.push({ name: Globalize.translate('ButtonParentalControl'), id: 'parentalcontrol', ironIcon: 'person' }); menuItems.push({ name: Globalize.translate('ButtonDelete'), id: 'delete', ironIcon: 'delete' }); require(['actionsheet'], function (actionsheet) { actionsheet.show({ items: menuItems, positionTo: card, callback: function (id) { switch (id) { case 'open': Dashboard.navigate('useredit.html?userid=' + userId); break; case 'access': Dashboard.navigate('userlibraryaccess.html?userid=' + userId); break; case 'parentalcontrol': Dashboard.navigate('userparentalcontrol.html?userid=' + userId); break; case 'delete': deleteUser(page, userId); break; default: break; } } }); }); } function getUserHtml(user, addConnectIndicator) { var html = ''; var cssClass = "card squareCard scalableCard"; if (user.Policy.IsDisabled) { cssClass += ' grayscale'; } html += "
"; html += '
'; html += '"; html += '
'; html += '
'; html += ''; html += "
"; html += '
'; html += user.Name; html += "
"; // cardFooter html += "
"; // cardBox html += "
"; // card html += "
"; return html; } function getUserSectionHtml(users, addConnectIndicator) { var html = ''; html += users.map(function (u) { return getUserHtml(u, addConnectIndicator); }).join(''); return html; } function renderUsersIntoElement(elem, users, addConnectIndicator) { var html = getUserSectionHtml(users, addConnectIndicator); elem.html(html); $('.btnUserMenu', elem).on('click', function () { showUserMenu(this); }); } function renderUsers(page, users) { renderUsersIntoElement($('.localUsers', page), users.filter(function (u) { return u.ConnectLinkType != 'Guest'; }), true); renderUsersIntoElement($('.connectUsers', page), users.filter(function (u) { return u.ConnectLinkType == 'Guest'; })); } function showPendingUserMenu(elem) { var menuItems = []; menuItems.push({ name: Globalize.translate('ButtonCancel'), id: 'delete', ironIcon: 'delete' }); require(['actionsheet'], function (actionsheet) { var card = $(elem).parents('.card'); var page = $(elem).parents('.page'); var id = card.attr('data-id'); actionsheet.show({ items: menuItems, positionTo: card, callback: function (menuItemId) { switch (menuItemId) { case 'delete': cancelAuthorization(page, id); break; default: break; } } }); }); } function getPendingUserHtml(user) { var html = ''; var cssClass = "card squareCard"; html += "
"; html += '
'; html += '"; html += '
'; html += '
'; html += ''; html += "
"; html += '
'; html += user.UserName; html += "
"; // cardFooter html += "
"; // cardBox html += "
"; // card html += "
"; return html; } function renderPendingGuests(page, users) { if (users.length) { $('.sectionPendingGuests', page).show(); } else { $('.sectionPendingGuests', page).hide(); } var html = users.map(getPendingUserHtml).join(''); var elem = $('.pending', page).html(html); $('.btnUserMenu', elem).on('click', function () { showPendingUserMenu(this); }); } function cancelAuthorization(page, id) { Dashboard.showLoadingMsg(); // Add/Update connect info ApiClient.ajax({ type: "DELETE", url: ApiClient.getUrl('Connect/Pending', { Id: id }) }).then(function () { loadData(page); }); } function loadData(page) { Dashboard.showLoadingMsg(); ApiClient.getUsers().then(function (users) { renderUsers(page, users); Dashboard.hideLoadingMsg(); }); ApiClient.getJSON(ApiClient.getUrl('Connect/Pending')).then(function (pending) { renderPendingGuests(page, pending); }); } function showLinkUser(page, userId) { require(['components/guestinviter/connectlink'], function (connectlink) { connectlink.show().then(function () { loadData(page); }); }); } function showInvitePopup(page) { Dashboard.getCurrentUser().then(function (user) { if (!user.ConnectUserId) { showLinkUser(page, user.Id); return; } require(['components/guestinviter/guestinviter'], function (guestinviter) { guestinviter.show().then(function () { loadData(page); }); }); }); } $(document).on('pageinit', "#userProfilesPage", function () { var page = this; $('.btnInvite', page).on('click', function () { showInvitePopup(page); }); $('.btnAddUser', page).on('click', function () { Dashboard.navigate('usernew.html'); }); }).on('pagebeforeshow', "#userProfilesPage", function () { var page = this; loadData(page); }); });