rework guest invite popup
This commit is contained in:
parent
559ff97dd7
commit
dc0ebc82c7
10 changed files with 230 additions and 193 deletions
|
@ -1,33 +1,5 @@
|
|||
(function (document, window, $) {
|
||||
|
||||
function renderLibrarySharingList(page, result) {
|
||||
|
||||
var folderHtml = '';
|
||||
|
||||
folderHtml += '<div data-role="controlgroup">';
|
||||
|
||||
folderHtml += result.Items.map(function (i) {
|
||||
|
||||
var currentHtml = '';
|
||||
|
||||
var id = 'chkShareFolder' + i.Id;
|
||||
|
||||
currentHtml += '<label for="' + id + '">' + i.Name + '</label>';
|
||||
|
||||
var isChecked = true;
|
||||
var checkedHtml = isChecked ? ' checked="checked"' : '';
|
||||
|
||||
currentHtml += '<input data-mini="true" class="chkShareFolder" data-folderid="' + i.Id + '" type="checkbox" id="' + id + '"' + checkedHtml + ' />';
|
||||
|
||||
return currentHtml;
|
||||
|
||||
}).join('');
|
||||
|
||||
folderHtml += '</div>';
|
||||
|
||||
$('.librarySharingList', page).html(folderHtml).trigger('create');
|
||||
}
|
||||
|
||||
function deleteUser(page, id) {
|
||||
|
||||
var msg = Globalize.translate('DeleteUserConfirmation');
|
||||
|
@ -218,35 +190,34 @@
|
|||
|
||||
function showPendingUserMenu(elem) {
|
||||
|
||||
require(['jqmpopup'], function () {
|
||||
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');
|
||||
|
||||
$('.userMenu', page).popup("close").remove();
|
||||
actionsheet.show({
|
||||
items: menuItems,
|
||||
positionTo: card,
|
||||
callback: function (menuItemId) {
|
||||
|
||||
var html = '<div data-role="popup" class="userMenu tapHoldMenu" data-theme="a">';
|
||||
switch (menuItemId) {
|
||||
|
||||
html += '<ul data-role="listview" style="min-width: 180px;">';
|
||||
html += '<li data-role="list-divider">' + Globalize.translate('HeaderMenu') + '</li>';
|
||||
|
||||
html += '<li><a href="#" class="btnDelete" data-id="' + id + '">' + Globalize.translate('ButtonCancel') + '</a></li>';
|
||||
|
||||
html += '</ul>';
|
||||
|
||||
html += '</div>';
|
||||
|
||||
page.append(html);
|
||||
|
||||
var flyout = $('.userMenu', page).popup({ positionTo: elem || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
|
||||
|
||||
$(this).off("popupafterclose").remove();
|
||||
|
||||
});
|
||||
|
||||
$('.btnDelete', flyout).on('click', function () {
|
||||
cancelAuthorization(page, this.getAttribute('data-id'));
|
||||
$('.userMenu', page).popup("close").remove();
|
||||
case 'delete':
|
||||
cancelAuthorization(page, id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -352,86 +323,13 @@
|
|||
|
||||
renderPendingGuests(page, pending);
|
||||
});
|
||||
|
||||
ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders", { IsHidden: false })).then(function (result) {
|
||||
|
||||
renderLibrarySharingList(page, result);
|
||||
});
|
||||
}
|
||||
|
||||
function inviteUser(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.getJSON(ApiClient.getUrl("Channels", {})).then(function (channelsResult) {
|
||||
|
||||
var shareExcludes = $(".chkShareFolder:checked", page).get().map(function (i) {
|
||||
|
||||
return i.getAttribute('data-folderid');
|
||||
});
|
||||
|
||||
// Add/Update connect info
|
||||
ApiClient.ajax({
|
||||
|
||||
type: "POST",
|
||||
url: ApiClient.getUrl('Connect/Invite'),
|
||||
dataType: 'json',
|
||||
data: {
|
||||
|
||||
ConnectUsername: $('#txtConnectUsername', page).val(),
|
||||
EnabledLibraries: shareExcludes.join(','),
|
||||
SendingUserId: Dashboard.getCurrentUserId(),
|
||||
EnableLiveTv: false
|
||||
}
|
||||
|
||||
}).then(function (result) {
|
||||
|
||||
$('#popupInvite').popup('close');
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
showNewUserInviteMessage(page, result);
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function showNewUserInviteMessage(page, result) {
|
||||
|
||||
if (!result.IsNewUserInvitation && !result.IsPending) {
|
||||
|
||||
// It was immediately approved
|
||||
loadData(page);
|
||||
return;
|
||||
}
|
||||
|
||||
var message = result.IsNewUserInvitation ?
|
||||
Globalize.translate('MessageInvitationSentToNewUser', result.GuestDisplayName) :
|
||||
Globalize.translate('MessageInvitationSentToUser', result.GuestDisplayName);
|
||||
|
||||
// Need a timeout because jquery mobile will not show a popup while a previous one is in the act of closing
|
||||
setTimeout(function () {
|
||||
|
||||
Dashboard.alert({
|
||||
message: message,
|
||||
title: Globalize.translate('HeaderInvitationSent'),
|
||||
callback: function () {
|
||||
loadData(page);
|
||||
}
|
||||
});
|
||||
|
||||
}, 300);
|
||||
}
|
||||
|
||||
function showInvitePopup(page) {
|
||||
|
||||
Dashboard.getCurrentUser().then(function (user) {
|
||||
|
||||
if (user.ConnectUserId) {
|
||||
|
||||
$('#popupInvite', page).popup('open');
|
||||
$('#txtConnectUsername', page).val('');
|
||||
} else {
|
||||
if (!user.ConnectUserId) {
|
||||
|
||||
var msg = Globalize.translate('MessageConnectAccountRequiredToInviteGuest');
|
||||
|
||||
|
@ -444,22 +342,18 @@
|
|||
message: msg,
|
||||
title: Globalize.translate('HeaderInviteGuest')
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
require(['components/guestinviter/guestinviter'], function (guestinviter) {
|
||||
|
||||
guestinviter.show().then(function () {
|
||||
loadData(page);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onSubmit() {
|
||||
var form = this;
|
||||
|
||||
var page = $(form).parents('.page');
|
||||
|
||||
inviteUser(page);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#userProfilesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
@ -474,8 +368,6 @@
|
|||
Dashboard.navigate('usernew.html');
|
||||
});
|
||||
|
||||
$('.addUserForm').off('submit', onSubmit).on('submit', onSubmit);
|
||||
|
||||
}).on('pagebeforeshow', "#userProfilesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue