1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/components/guestinviter/guestinviter.js

115 lines
3.4 KiB
JavaScript
Raw Normal View History

2016-09-26 14:59:18 -04:00
define(['dialogHelper', 'jQuery', 'emby-input', 'emby-button', 'emby-checkbox', 'paper-icon-button-light', 'formDialogStyle'], function (dialogHelper, $) {
2016-10-23 01:11:46 -04:00
'use strict';
2016-02-08 23:46:25 -05:00
function renderLibrarySharingList(context, result) {
var folderHtml = '';
folderHtml += result.Items.map(function (i) {
var currentHtml = '';
var isChecked = true;
var checkedHtml = isChecked ? ' checked="checked"' : '';
2016-09-11 03:33:53 -04:00
currentHtml += '<label><input is="emby-checkbox" class="chkShareFolder" type="checkbox" data-folderid="' + i.Id + '"' + checkedHtml + '/><span>' + i.Name + '</span></label>';
2016-02-08 23:46:25 -05:00
return currentHtml;
}).join('');
2016-02-19 00:03:00 -05:00
context.querySelector('.librarySharingList').innerHTML = folderHtml;
2016-02-08 23:46:25 -05:00
}
function inviteUser(dlg) {
Dashboard.showLoadingMsg();
2016-12-27 02:22:44 -05:00
var shareExcludes = $(".chkShareFolder", dlg).get().filter(function (i) {
2016-02-08 23:46:25 -05:00
2016-12-27 02:22:44 -05:00
return i.checked;
2016-02-19 00:03:00 -05:00
2016-12-27 02:22:44 -05:00
}).map(function (i) {
2016-02-19 00:03:00 -05:00
2016-12-27 02:22:44 -05:00
return i.getAttribute('data-folderid');
});
2016-02-08 23:46:25 -05:00
2016-12-27 02:22:44 -05:00
require(['connectHelper'], function (connectHelper) {
2016-02-08 23:46:25 -05:00
2016-12-27 02:22:44 -05:00
connectHelper.inviteGuest({
apiClient: ApiClient,
guestOptions: {
2016-02-08 23:46:25 -05:00
2016-02-23 13:59:13 -05:00
ConnectUsername: dlg.querySelector('#txtConnectUsername').value,
2016-02-08 23:46:25 -05:00
EnabledLibraries: shareExcludes.join(','),
SendingUserId: Dashboard.getCurrentUserId(),
EnableLiveTv: false
}
2016-12-27 02:22:44 -05:00
}).then(function() {
2016-02-08 23:46:25 -05:00
dlg.submitted = true;
2016-03-23 15:03:17 -04:00
dialogHelper.close(dlg);
2016-04-10 17:11:06 -04:00
});
2016-02-08 23:46:25 -05:00
});
}
return {
show: function () {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'components/guestinviter/guestinviter.template.html', true);
xhr.onload = function (e) {
var template = this.response;
2016-03-23 15:03:17 -04:00
var dlg = dialogHelper.createDialog({
2016-02-08 23:46:25 -05:00
removeOnClose: true,
size: 'small'
});
dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a');
dlg.classList.add('formDialog');
var html = '';
2016-03-05 14:07:58 -05:00
html += Globalize.translateDocument(template);
2016-02-08 23:46:25 -05:00
dlg.innerHTML = html;
2016-03-23 15:03:17 -04:00
dialogHelper.open(dlg);
2016-02-08 23:46:25 -05:00
2016-03-22 13:46:57 -04:00
dlg.addEventListener('close', function () {
2016-02-08 23:46:25 -05:00
if (dlg.submitted) {
resolve();
} else {
reject();
}
});
dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
2016-03-23 15:03:17 -04:00
dialogHelper.close(dlg);
2016-02-08 23:46:25 -05:00
});
dlg.querySelector('form').addEventListener('submit', function (e) {
inviteUser(dlg);
e.preventDefault();
return false;
});
ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders", { IsHidden: false })).then(function (result) {
renderLibrarySharingList(dlg, result);
});
}
xhr.send();
});
}
};
});