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

live tv updates

This commit is contained in:
Luke Pulverenti 2013-12-18 00:44:46 -05:00
parent a3b95de459
commit b0d84e5046
9 changed files with 208 additions and 150 deletions

View file

@ -545,9 +545,11 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
});
};
self.getNewLiveTvTimerDefaults = function () {
self.getNewLiveTvTimerDefaults = function (options) {
var url = self.getUrl("LiveTv/Timers/Defaults");
options = options || {};
var url = self.getUrl("LiveTv/Timers/Defaults", options);
return self.ajax({
type: "GET",

View file

@ -25,6 +25,7 @@
<br />
<div style="display: none;" id="eligibleForSeriesFields">
<p>
<input type="checkbox" data-mini="true" id="chkRecordSeries" />
<label for="chkRecordSeries">Record Series</label>
@ -60,7 +61,7 @@
</li>
<li>
<label for="chkNewOnly">Record only new episodes</label>
<input type="checkbox" id="chkNewOnly" data-mini="true" checked="checked" />
<input type="checkbox" id="chkNewOnly" data-mini="true" />
</li>
<li>
<label for="chkAnyTime">Record program at any time</label>
@ -71,30 +72,43 @@
<input type="checkbox" id="chkAllChannels" data-mini="true" />
</li>
</ul>
</div>
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtRequestedPrePaddingSeconds">Requested pre-padding seconds: </label>
<input type="number" id="txtRequestedPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<label for="txtRequestedPostPaddingSeconds">Requested post-padding seconds: </label>
<input type="number" id="txtRequestedPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
</li>
<li>
<label for="txtRequiredPrePaddingSeconds">Required pre-padding seconds: </label>
<input type="number" id="txtRequiredPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtRequiredPostPaddingSeconds">Required post-padding seconds: </label>
<input type="number" id="txtRequiredPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
</li>
</ul>
</div>
</div>
<br />
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save
Record
</button>
<button type="button" onclick="Dashboard.navigate('livetvtimers.html');" data-icon="delete" data-mini="true">
<button id="btnCancel" type="button" data-icon="delete" data-mini="true">
Cancel
</button>
</li>

View file

@ -65,22 +65,37 @@
<label for="chkAllChannels">Record program on all channels</label>
<input type="checkbox" id="chkAllChannels" data-mini="true" />
</li>
</ul>
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtRequestedPrePaddingSeconds">Requested pre-padding seconds: </label>
<input type="number" id="txtRequestedPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<label for="txtRequestedPostPaddingSeconds">Requested post-padding seconds: </label>
<input type="number" id="txtRequestedPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
</li>
<li>
<label for="txtRequiredPrePaddingSeconds">Required pre-padding seconds: </label>
<input type="number" id="txtRequiredPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtRequiredPostPaddingSeconds">Required post-padding seconds: </label>
<input type="number" id="txtRequiredPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
</li>
</ul>
</div>
</div>
<br />
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save

View file

@ -25,26 +25,39 @@
<span class="seriesTimerLink" style="margin-left: 2em;"></span>
</p>
<br />
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding seconds: </label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
</li>
<li>
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding seconds: </label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
</li>
</ul>
</div>
</div>
<br />
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtRequestedPrePaddingSeconds">Requested pre-padding seconds: </label>
<input type="number" id="txtRequestedPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<label for="txtRequestedPostPaddingSeconds">Requested post-padding seconds: </label>
<input type="number" id="txtRequestedPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<label for="txtRequiredPrePaddingSeconds">Required pre-padding seconds: </label>
<input type="number" id="txtRequiredPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<label for="txtRequiredPostPaddingSeconds">Required post-padding seconds: </label>
<input type="number" id="txtRequiredPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" />
</li>
<li>
<button type="submit" data-theme="b" data-icon="ok" data-mini="true">
Save

View file

@ -33,7 +33,7 @@
<label for="chkMovies">Movies</label>
<input type="checkbox" data-mini="true" id="chkEpisodes" name="chkEpisodes" />
<label for="chkEpisodes">TV Episodes</label>
<label for="chkEpisodes">Episodes</label>
<input type="checkbox" data-mini="true" id="chkOtherVideos" name="chkOtherVideos" />
<label for="chkOtherVideos">Other Videos</label>

View file

@ -1,7 +1,6 @@
(function ($, document, apiClient) {
var currentProgram;
var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
function renderRecording(page, defaultTimer, program) {
@ -29,21 +28,22 @@
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(program));
$('#txtRequestedPrePaddingSeconds', page).val(defaultTimer.RequestedPrePaddingSeconds);
$('#txtRequestedPostPaddingSeconds', page).val(defaultTimer.RequestedPostPaddingSeconds);
$('#txtRequiredPrePaddingSeconds', page).val(defaultTimer.RequiredPrePaddingSeconds);
$('#txtRequiredPostPaddingSeconds', page).val(defaultTimer.RequiredPostPaddingSeconds);
$('#chkNewOnly', page).checked(defaultTimer.RecordNewOnly).checkboxradio('refresh');
$('#chkAllChannels', page).checked(defaultTimer.RecordAnyChannel).checkboxradio('refresh');
$('#chkAnyTime', page).checked(defaultTimer.RecordAnyTime).checkboxradio('refresh');
try {
var startDate = parseISO8601Date(program.StartDate, { toLocal: true });
$('#chk' + daysOfWeek[startDate.getDay()], page).checked(true).checkboxradio('refresh');
$('#txtPrePaddingSeconds', page).val(defaultTimer.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(defaultTimer.PostPaddingSeconds);
$('#chkPrePaddingRequired', page).checked(defaultTimer.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(defaultTimer.IsPostPaddingRequired).checkboxradio('refresh');
if (program.IsSeries) {
$('#eligibleForSeriesFields', page).show();
} else {
$('#eligibleForSeriesFields', page).hide();
}
catch (e) {
console.log("Error parsing date: " + program.StartDate);
}
selectDays(page, defaultTimer.Days);
Dashboard.hideLoadingMsg();
}
@ -52,10 +52,10 @@
Dashboard.showLoadingMsg();
var programid = getParameterByName('programid');
var programId = getParameterByName('programid');
var promise1 = apiClient.getNewLiveTvTimerDefaults();
var promise2 = apiClient.getLiveTvProgram(programid, Dashboard.getCurrentUserId());
var promise1 = apiClient.getNewLiveTvTimerDefaults({ programId: programId });
var promise2 = apiClient.getLiveTvProgram(programId, Dashboard.getCurrentUserId());
$.when(promise1, promise2).done(function (response1, response2) {
@ -66,8 +66,24 @@
});
}
function selectDays(page, days) {
var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
for (var i = 0, length = daysOfWeek.length; i < length; i++) {
var day = daysOfWeek[i];
$('#chk' + day, page).checked(days.indexOf(day) != -1).checkboxradio('refresh');
}
}
function getDays(page) {
var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var days = [];
for (var i = 0, length = daysOfWeek.length; i < length; i++) {
@ -89,12 +105,12 @@
var form = this;
apiClient.getNewLiveTvTimerDefaults().done(function (item) {
apiClient.getNewLiveTvTimerDefaults({ programId: currentProgram.Id }).done(function (item) {
item.RequestedPrePaddingSeconds = $('#txtRequestedPrePaddingSeconds', form).val();
item.RequestedPostPaddingSeconds = $('#txtRequestedPostPaddingSeconds', form).val();
item.RequiredPrePaddingSeconds = $('#txtRequiredPrePaddingSeconds', form).val();
item.RequiredPostPaddingSeconds = $('#txtRequiredPostPaddingSeconds', form).val();
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();
item.RecordNewOnly = $('#chkNewOnly', form).checked();
item.RecordAnyChannel = $('#chkAllChannels', form).checked();
@ -102,14 +118,6 @@
item.Days = getDays(form);
item.Name = currentProgram.Name;
item.ProgramId = currentProgram.Id;
item.ChannelName = currentProgram.ChannelName;
item.ChannelId = currentProgram.ChannelId;
item.Overview = currentProgram.Overview;
item.StartDate = currentProgram.StartDate;
item.EndDate = currentProgram.EndDate;
if ($('#chkRecordSeries', form).checked()) {
apiClient.createLiveTvSeriesTimer(item).done(function () {
@ -158,6 +166,12 @@
});
$('#btnCancel', page).on('click', function () {
Dashboard.navigate('livetvchannel.html?id=' + currentProgram.ChannelId);
});
}).on('pagebeforeshow', "#liveTvNewRecordingPage", function () {
var page = this;

View file

@ -28,10 +28,10 @@
$('.itemName', page).html(item.Name);
$('.overview', page).html(item.Overview || '');
$('#txtRequestedPrePaddingSeconds', page).val(item.RequestedPrePaddingSeconds);
$('#txtRequestedPostPaddingSeconds', page).val(item.RequestedPostPaddingSeconds);
$('#txtRequiredPrePaddingSeconds', page).val(item.RequiredPrePaddingSeconds);
$('#txtRequiredPostPaddingSeconds', page).val(item.RequiredPostPaddingSeconds);
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(item.IsPostPaddingRequired).checkboxradio('refresh');
$('#chkNewOnly', page).checked(item.RecordNewOnly).checkboxradio('refresh');
$('#chkAllChannels', page).checked(item.RecordAnyChannel).checkboxradio('refresh');
@ -97,10 +97,10 @@
apiClient.getLiveTvSeriesTimer(currentItem.Id).done(function (item) {
item.RequestedPrePaddingSeconds = $('#txtRequestedPrePaddingSeconds', form).val();
item.RequestedPostPaddingSeconds = $('#txtRequestedPostPaddingSeconds', form).val();
item.RequiredPrePaddingSeconds = $('#txtRequiredPrePaddingSeconds', form).val();
item.RequiredPostPaddingSeconds = $('#txtRequiredPostPaddingSeconds', form).val();
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();
item.RecordNewOnly = $('#chkNewOnly', form).checked();
item.RecordAnyChannel = $('#chkAllChannels', form).checked();

View file

@ -29,10 +29,10 @@
$('.channel', page).html('<a href="livetvchannel.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
$('.overview', page).html(item.Overview || '');
$('#txtRequestedPrePaddingSeconds', page).val(item.RequestedPrePaddingSeconds);
$('#txtRequestedPostPaddingSeconds', page).val(item.RequestedPostPaddingSeconds);
$('#txtRequiredPrePaddingSeconds', page).val(item.RequiredPrePaddingSeconds);
$('#txtRequiredPostPaddingSeconds', page).val(item.RequiredPostPaddingSeconds);
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
$('#chkPostPaddingRequired', page).checked(item.IsPostPaddingRequired).checkboxradio('refresh');
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
$('.status', page).html('Status:&nbsp;&nbsp;&nbsp;' + item.Status);
@ -56,12 +56,12 @@
apiClient.getLiveTvTimer(currentItem.Id).done(function (item) {
item.RequestedPrePaddingSeconds = $('#txtRequestedPrePaddingSeconds', form).val();
item.RequestedPostPaddingSeconds = $('#txtRequestedPostPaddingSeconds', form).val();
item.RequiredPrePaddingSeconds = $('#txtRequiredPrePaddingSeconds', form).val();
item.RequiredPostPaddingSeconds = $('#txtRequiredPostPaddingSeconds', form).val();
item.PrePaddingSeconds = $('#txtPrePaddingSeconds', form).val();
item.PostPaddingSeconds = $('#txtPostPaddingSeconds', form).val();
item.IsPrePaddingRequired = $('#chkPrePaddingRequired', form).checked();
item.IsPostPaddingRequired = $('#chkPostPaddingRequired', form).checked();
ApiClient.updateLiveTvTimer(item).done(function() {
ApiClient.updateLiveTvTimer(item).done(function () {
Dashboard.alert('Timer Saved');
});
});

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.209" targetFramework="net45" />
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.210" targetFramework="net45" />
</packages>