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

update shared components

This commit is contained in:
Luke Pulverenti 2016-05-12 22:32:12 -04:00
parent 98b0114719
commit 1190972d6c
13 changed files with 129 additions and 107 deletions

View file

@ -16,12 +16,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.2.89", "version": "1.2.94",
"_release": "1.2.89", "_release": "1.2.94",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.2.89", "tag": "1.2.94",
"commit": "cab85adec93d4bf79a9badb4beabe3374f597c99" "commit": "3f1eacda1566966e6b33b198f96ae046f9d49ad2"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0", "_target": "^1.2.0",

View file

@ -1,6 +1,4 @@
define(['globalize', 'connectionManager', 'loading', 'scrollHelper', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'clearButtonStyle', 'css!./guide.css', 'html!./../icons/mediainfo.html', 'html!./../icons/nav.html', 'scrollStyles'], function (globalize, connectionManager, loading, scrollHelper, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices) { define(['require', 'globalize', 'connectionManager', 'loading', 'scrollHelper', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'clearButtonStyle', 'css!./guide.css', 'html!./../icons/mediainfo.html', 'html!./../icons/nav.html', 'scrollStyles'], function (require, globalize, connectionManager, loading, scrollHelper, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices) {
var baseUrl;
function Guide(options) { function Guide(options) {
@ -598,9 +596,6 @@
} }
} }
var xhr = new XMLHttpRequest();
xhr.open('GET', baseUrl + '/tvguide.template.html', true);
var supportsCaptureOption = false; var supportsCaptureOption = false;
try { try {
var opts = Object.defineProperty({}, 'capture', { var opts = Object.defineProperty({}, 'capture', {
@ -619,9 +614,7 @@
target.addEventListener(type, handler, optionsOrCapture); target.addEventListener(type, handler, optionsOrCapture);
} }
xhr.onload = function (e) { require(['text!./tvguide.template.html'], function (template) {
var template = this.response;
var context = options.element; var context = options.element;
context.innerHTML = globalize.translateDocument(template, 'core'); context.innerHTML = globalize.translateDocument(template, 'core');
@ -658,13 +651,7 @@
events.trigger(self, 'load'); events.trigger(self, 'load');
self.refresh(); self.refresh();
} });
xhr.send();
};
Guide.setBaseUrl = function (url) {
baseUrl = url;
}; };
return Guide; return Guide;

View file

@ -1,15 +1,21 @@
define(['dialogHelper', 'jQuery', 'mediaInfo', 'scripts/livetvcomponents', 'livetvcss', 'paper-checkbox', 'paper-input', 'paper-icon-button-light'], function (dialogHelper, $, mediaInfo) { define(['dialogHelper', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'paper-checkbox', 'paper-input', 'paper-icon-button-light'], function (dialogHelper, mediaInfo, appHost, connectionManager, require, loading) {
var currentProgramId; var currentProgramId;
var currentServerId;
var currentDialog; var currentDialog;
var recordingCreated = false; var recordingCreated = false;
function getDaysOfWeek() { function getDaysOfWeek() {
// Do not localize. These are used as values, not text. return [
return LiveTvHelpers.getDaysOfWeek().map(function (d) { 'Sunday',
return d.value; 'Monday',
}); 'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
} }
function getDays(context) { function getDays(context) {
@ -22,7 +28,7 @@
var day = daysOfWeek[i]; var day = daysOfWeek[i];
if ($('#chk' + day, context).checked()) { if (context.querySelector('#chk' + day).checked) {
days.push(day); days.push(day);
} }
@ -43,68 +49,71 @@
dialogHelper.close(currentDialog); dialogHelper.close(currentDialog);
} }
function onSubmit() { function onSubmit(e) {
Dashboard.showLoadingMsg(); loading.show();
var form = this; var form = this;
ApiClient.getNamedConfiguration("livetv").then(function (config) { var apiClient = connectionManager.getApiClient(currentServerId);
config.EnableRecordingEncoding = $('#chkConvertRecordings', form).checked(); apiClient.getNamedConfiguration("livetv").then(function (config) {
ApiClient.updateNamedConfiguration("livetv", config).then(Dashboard.processServerConfigurationUpdateResult); config.EnableRecordingEncoding = form.querySelector('#chkConvertRecordings').checked;
apiClient.updateNamedConfiguration("livetv", config);
}); });
ApiClient.getNewLiveTvTimerDefaults({ programId: currentProgramId }).then(function (item) { apiClient.getNewLiveTvTimerDefaults({ programId: currentProgramId }).then(function (item) {
item.PrePaddingSeconds = $('#txtPrePaddingMinutes', form).val() * 60; item.PrePaddingSeconds = form.querySelector('#txtPrePaddingMinutes').value * 60;
item.PostPaddingSeconds = $('#txtPostPaddingMinutes', form).val() * 60; item.PostPaddingSeconds = form.querySelector('#txtPostPaddingMinutes').value * 60;
item.RecordNewOnly = $('#chkNewOnly', form).checked(); item.RecordNewOnly = form.querySelector('#chkNewOnly').checked;
item.RecordAnyChannel = $('#chkAllChannels', form).checked(); item.RecordAnyChannel = form.querySelector('#chkAllChannels').checked;
item.RecordAnyTime = $('#chkAnyTime', form).checked(); item.RecordAnyTime = form.querySelector('#chkAnyTime').checked;
item.Days = getDays(form); item.Days = getDays(form);
if ($('#chkRecordSeries', form).checked()) { if (form.querySelector('#chkRecordSeries').checked) {
ApiClient.createLiveTvSeriesTimer(item).then(function () { apiClient.createLiveTvSeriesTimer(item).then(function () {
Dashboard.hideLoadingMsg(); loading.hide();
closeDialog(true); closeDialog(true);
}); });
} else { } else {
ApiClient.createLiveTvTimer(item).then(function () { apiClient.createLiveTvTimer(item).then(function () {
Dashboard.hideLoadingMsg(); loading.hide();
closeDialog(true); closeDialog(true);
}); });
} }
}); });
// Disable default form submission // Disable default form submission
e.preventDefault();
return false; return false;
} }
function getRegistration(programId) { function getRegistration(programId, apiClient) {
Dashboard.showLoadingMsg(); loading.show();
return ApiClient.getJSON(ApiClient.getUrl('LiveTv/Registration', { return apiClient.getJSON(apiClient.getUrl('LiveTv/Registration', {
ProgramId: programId, ProgramId: programId,
Feature: 'seriesrecordings' Feature: 'seriesrecordings'
})).then(function (result) { })).then(function (result) {
Dashboard.hideLoadingMsg(); loading.hide();
return result; return result;
}, function () { }, function () {
Dashboard.hideLoadingMsg(); loading.hide();
return { return {
TrialVersion: true, TrialVersion: true,
@ -114,11 +123,11 @@
}); });
} }
function showSeriesRecordingFields(context) { function showSeriesRecordingFields(context, apiClient) {
slideDownToShow(context.querySelector('#seriesFields')); slideDownToShow(context.querySelector('#seriesFields'));
context.querySelector('.btnSubmitContainer').classList.remove('hide'); context.querySelector('.btnSubmitContainer').classList.remove('hide');
getRegistration(currentProgramId).then(function (regInfo) { getRegistration(currentProgramId, apiClient).then(function (regInfo) {
if (regInfo.IsValid) { if (regInfo.IsValid) {
context.querySelector('.btnSubmitContainer').classList.remove('hide'); context.querySelector('.btnSubmitContainer').classList.remove('hide');
@ -188,40 +197,42 @@
function init(context) { function init(context) {
$('#chkRecordSeries', context).on('change', function () { var apiClient = connectionManager.getApiClient(currentServerId);
context.querySelector('#chkRecordSeries').addEventListener('change', function () {
if (this.checked) { if (this.checked) {
showSeriesRecordingFields(context); showSeriesRecordingFields(context, apiClient);
} else { } else {
hideSeriesRecordingFields(context); hideSeriesRecordingFields(context);
} }
}); });
$('.btnCancel', context).on('click', function () { context.querySelector('.btnCancel').addEventListener('click', function () {
closeDialog(false); closeDialog(false);
}); });
$('form', context).off('submit', onSubmit).on('submit', onSubmit); context.querySelector('form', context).addEventListener('submit', onSubmit);
var supporterButtons = context.querySelectorAll('.btnSupporter'); var supporterButtons = context.querySelectorAll('.btnSupporter');
for (var i = 0, length = supporterButtons.length; i < length; i++) { for (var i = 0, length = supporterButtons.length; i < length; i++) {
if (AppInfo.enableSupporterMembership) { if (appHost.supports('externalpremium')) {
supporterButtons[i].classList.remove('hide'); supporterButtons[i].classList.remove('hide');
} else { } else {
supporterButtons[i].classList.add('hide'); supporterButtons[i].classList.add('hide');
} }
} }
if (AppInfo.enableSupporterMembership) { if (appHost.supports('externalpremium')) {
context.querySelector('.btnSupporterForConverting a').href = 'https://emby.media/premiere'; context.querySelector('.btnSupporterForConverting a').href = 'https://emby.media/premiere';
} else { } else {
context.querySelector('.btnSupporterForConverting a').href = '#'; context.querySelector('.btnSupporterForConverting a').href = '#';
} }
ApiClient.getNamedConfiguration("livetv").then(function (config) { apiClient.getNamedConfiguration("livetv").then(function (config) {
$('#chkConvertRecordings', context).checked(config.EnableRecordingEncoding); context.querySelector('#chkConvertRecordings').checked = config.EnableRecordingEncoding;
}); });
} }
@ -233,47 +244,46 @@
var day = daysOfWeek[i]; var day = daysOfWeek[i];
$('#chk' + day, page).checked(days.indexOf(day) != -1); page.querySelector('#chk' + day).checked = days.indexOf(day) != -1;
} }
} }
function renderRecording(context, defaultTimer, program) { function renderRecording(context, defaultTimer, program, apiClient) {
$('.itemName', context).html(program.Name); context.querySelector('.itemName').innerHTML = program.Name;
context.querySelector('.itemEpisodeName').innerHTML = program.EpisodeTitle || '';
$('.itemEpisodeName', context).html(program.EpisodeTitle || ''); context.querySelector('.itemMiscInfoPrimary').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(program);
context.querySelector('.itemMiscInfoSecondary').innerHTML = mediaInfo.getSecondaryMediaInfoHtml(program);
$('.itemMiscInfoPrimary', context).html(mediaInfo.getPrimaryMediaInfoHtml(program)); context.querySelector('#chkNewOnly').checked = defaultTimer.RecordNewOnly;
$('.itemMiscInfoSecondary', context).html(mediaInfo.getSecondaryMediaInfoHtml(program)); context.querySelector('#chkAllChannels').checked = defaultTimer.RecordAnyChannel;
context.querySelector('#chkAnyTime').checked = defaultTimer.RecordAnyTime;
$('#chkNewOnly', context).checked(defaultTimer.RecordNewOnly); context.querySelector('#txtPrePaddingMinutes').value = defaultTimer.PrePaddingSeconds / 60;
$('#chkAllChannels', context).checked(defaultTimer.RecordAnyChannel); context.querySelector('#txtPostPaddingMinutes').value = defaultTimer.PostPaddingSeconds / 60;
$('#chkAnyTime', context).checked(defaultTimer.RecordAnyTime);
$('#txtPrePaddingMinutes', context).val(defaultTimer.PrePaddingSeconds / 60);
$('#txtPostPaddingMinutes', context).val(defaultTimer.PostPaddingSeconds / 60);
if (program.IsSeries) { if (program.IsSeries) {
$('#eligibleForSeriesFields', context).show(); context.querySelector('#eligibleForSeriesFields').classList.remove('hide');
} else { } else {
$('#eligibleForSeriesFields', context).hide(); context.querySelector('#eligibleForSeriesFields').classList.add('hide');
} }
selectDays(context, defaultTimer.Days); selectDays(context, defaultTimer.Days);
if (program.ServiceName == 'Emby') { if (program.ServiceName == 'Emby') {
context.querySelector('.convertRecordingsContainer').classList.remove('hide'); context.querySelector('.convertRecordingsContainer').classList.remove('hide');
showConvertRecordingsUnlockMessage(context); showConvertRecordingsUnlockMessage(context, apiClient);
} else { } else {
context.querySelector('.convertRecordingsContainer').classList.add('hide'); context.querySelector('.convertRecordingsContainer').classList.add('hide');
} }
Dashboard.hideLoadingMsg(); loading.hide();
} }
function showConvertRecordingsUnlockMessage(context) { function showConvertRecordingsUnlockMessage(context, apiClient) {
Dashboard.getPluginSecurityInfo().then(function(regInfo) { apiClient.getPluginSecurityInfo().then(function (regInfo) {
if (regInfo.IsMBSupporter) { if (regInfo.IsMBSupporter) {
context.querySelector('.btnSupporterForConverting').classList.add('hide'); context.querySelector('.btnSupporterForConverting').classList.add('hide');
@ -281,42 +291,40 @@
context.querySelector('.btnSupporterForConverting').classList.remove('hide'); context.querySelector('.btnSupporterForConverting').classList.remove('hide');
} }
}, function() { }, function () {
context.querySelector('.btnSupporterForConverting').classList.remove('hide'); context.querySelector('.btnSupporterForConverting').classList.remove('hide');
}); });
} }
function reload(context, programId) { function reload(context, programId) {
Dashboard.showLoadingMsg(); loading.show();
var promise1 = ApiClient.getNewLiveTvTimerDefaults({ programId: programId }); var apiClient = connectionManager.getApiClient(currentServerId);
var promise2 = ApiClient.getLiveTvProgram(programId, Dashboard.getCurrentUserId());
var promise1 = apiClient.getNewLiveTvTimerDefaults({ programId: programId });
var promise2 = apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId());
Promise.all([promise1, promise2]).then(function (responses) { Promise.all([promise1, promise2]).then(function (responses) {
var defaults = responses[0]; var defaults = responses[0];
var program = responses[1]; var program = responses[1];
renderRecording(context, defaults, program); renderRecording(context, defaults, program, apiClient);
}); });
} }
function showEditor(itemId) { function showEditor(itemId, serverId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
recordingCreated = false; recordingCreated = false;
currentProgramId = itemId; currentProgramId = itemId;
Dashboard.showLoadingMsg(); currentServerId = serverId;
loading.show();
var xhr = new XMLHttpRequest(); require(['text!./recordingcreator.template.html'], function (template) {
xhr.open('GET', 'components/recordingcreator/recordingcreator.template.html', true);
xhr.onload = function (e) {
var template = this.response;
var dlg = dialogHelper.createDialog({ var dlg = dialogHelper.createDialog({
removeOnClose: true, removeOnClose: true,
size: 'small' size: 'small'
@ -354,9 +362,7 @@
init(dlg); init(dlg);
reload(dlg, itemId); reload(dlg, itemId);
} });
xhr.send();
}); });
} }

View file

@ -12,7 +12,7 @@
<p class="itemMiscInfo itemMiscInfoPrimary"></p> <p class="itemMiscInfo itemMiscInfoPrimary"></p>
<p class="itemMiscInfo itemMiscInfoSecondary"></p> <p class="itemMiscInfo itemMiscInfoSecondary"></p>
<div style="display: none;" id="eligibleForSeriesFields"> <div id="eligibleForSeriesFields" class="hide">
<br /> <br />
<div> <div>
<paper-checkbox id="chkRecordSeries">${OptionRecordSeries}</paper-checkbox> <paper-checkbox id="chkRecordSeries">${OptionRecordSeries}</paper-checkbox>

View file

@ -26,7 +26,7 @@ define(function () {
requireCss.load = function (cssId, req, load, config) { requireCss.load = function (cssId, req, load, config) {
// Somehow if the url starts with /css, require will get all screwed up since this extension is also called css // Somehow if the url starts with /css, require will get all screwed up since this extension is also called css
var srch = '/emby-webcomponents/requirecss'; var srch = '/emby-webcomponents/require/requirecss';
var index = cssId.indexOf(srch); var index = cssId.indexOf(srch);
if (index != -1) { if (index != -1) {

View file

@ -0,0 +1,29 @@
define(function () {
var importedFiles = [];
return {
load: function (url, req, load, config) {
if (url.indexOf('http') != 0 && url.indexOf('file:') != 0) {
url = config.baseUrl + url;
}
url = url + "?" + config.urlArgs;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onload = function (e) {
load(this.response);
};
xhr.send();
},
normalize: function (name, normalize) {
return normalize(name);
}
};
});

View file

@ -34,6 +34,6 @@
"commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514" "commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
}, },
"_source": "git://github.com/Polymer/polymer.git", "_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.1.0", "_target": "^1.0.0",
"_originalSource": "Polymer/polymer" "_originalSource": "Polymer/polymer"
} }

View file

@ -91,7 +91,8 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
supports: function (command) { supports: function (command) {
var features = [ var features = [
'filedownload' 'filedownload',
'externalpremium'
]; ];
features.push('sharing'); features.push('sharing');

View file

@ -2032,8 +2032,8 @@
$('.btnRecord,.btnFloatingRecord', page).on('click', function () { $('.btnRecord,.btnFloatingRecord', page).on('click', function () {
var id = getParameterByName('id'); var id = getParameterByName('id');
require(['components/recordingcreator/recordingcreator'], function (recordingcreator) { require(['recordingCreator'], function (recordingCreator) {
recordingcreator.show(id).then(function () { recordingCreator.show(id, currentItem.ServerId).then(function () {
reload(page); reload(page);
}); });
}); });

View file

@ -563,8 +563,8 @@
Dashboard.navigate('itemdetails.html?id=' + albumid); Dashboard.navigate('itemdetails.html?id=' + albumid);
break; break;
case 'record': case 'record':
require(['components/recordingcreator/recordingcreator'], function (recordingcreator) { require(['recordingCreator'], function (recordingCreator) {
recordingcreator.show(itemId); recordingCreator.show(itemId, serverId);
}); });
break; break;
case 'artist': case 'artist':

View file

@ -1821,14 +1821,12 @@ var AppInfo = {};
define("libjass", [bowerPath + "/libjass/libjass", "css!" + bowerPath + "/libjass/libjass"], returnFirstDependency); define("libjass", [bowerPath + "/libjass/libjass", "css!" + bowerPath + "/libjass/libjass"], returnFirstDependency);
define("recordingCreator", [embyWebComponentsBowerPath + "/recordingcreator/recordingcreator"], returnFirstDependency);
define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency); define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency);
define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency); define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency);
define("fetchHelper", [embyWebComponentsBowerPath + "/fetchhelper"], returnFirstDependency); define("fetchHelper", [embyWebComponentsBowerPath + "/fetchhelper"], returnFirstDependency);
define("tvguide", [embyWebComponentsBowerPath + "/guide/guide", 'embyRouter'], function (tvGuide, embyRouter) { define("tvguide", [embyWebComponentsBowerPath + "/guide/guide", 'embyRouter'], returnFirstDependency);
tvGuide.setBaseUrl(embyRouter.baseUrl() + '/bower_components/emby-webcomponents/guide');
return tvGuide;
});
define("viewManager", [embyWebComponentsBowerPath + "/viewmanager"], function (viewManager) { define("viewManager", [embyWebComponentsBowerPath + "/viewmanager"], function (viewManager) {
viewManager.dispatchPageEvents(true); viewManager.dispatchPageEvents(true);
@ -1869,8 +1867,9 @@ var AppInfo = {};
waitSeconds: 0, waitSeconds: 0,
map: { map: {
'*': { '*': {
'css': bowerPath + '/emby-webcomponents/requirecss', 'css': bowerPath + '/emby-webcomponents/require/requirecss',
'html': bowerPath + '/emby-webcomponents/requirehtml' 'html': bowerPath + '/emby-webcomponents/require/requirehtml',
'text': bowerPath + '/emby-webcomponents/require/requiretext'
} }
}, },
urlArgs: urlArgs, urlArgs: urlArgs,

View file

@ -44,7 +44,7 @@
ApiClient.ajax({ ApiClient.ajax({
type: 'GET', type: 'GET',
url: 'components/tvproviders/' + type + '.template.html' url: 'components/tvproviders/' + type.toLowerCase() + '.template.html'
}).then(function (html) { }).then(function (html) {