mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update tv guide
This commit is contained in:
parent
86dea1fa4c
commit
7a39655dca
12 changed files with 81 additions and 30 deletions
|
@ -586,8 +586,9 @@ Apply `circle` class to make the rippling effect within a circle.
|
||||||
},
|
},
|
||||||
|
|
||||||
get shouldKeepAnimating() {
|
get shouldKeepAnimating() {
|
||||||
for (var index = 0; index < this.ripples.length; ++index) {
|
var ripples = this.ripples || [];
|
||||||
if (!this.ripples[index].isAnimationComplete) {
|
for (var index = 0; index < ripples.length; ++index) {
|
||||||
|
if (!ripples[index].isAnimationComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -625,9 +626,11 @@ Apply `circle` class to make the rippling effect within a circle.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.ripples) {
|
||||||
this.ripples.forEach(function (ripple) {
|
this.ripples.forEach(function (ripple) {
|
||||||
ripple.upAction(event);
|
ripple.upAction(event);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.animate();
|
this.animate();
|
||||||
},
|
},
|
||||||
|
@ -643,7 +646,10 @@ Apply `circle` class to make the rippling effect within a circle.
|
||||||
|
|
||||||
Polymer.dom(this.$.waves).appendChild(ripple.waveContainer);
|
Polymer.dom(this.$.waves).appendChild(ripple.waveContainer);
|
||||||
this.$.background.style.backgroundColor = ripple.color;
|
this.$.background.style.backgroundColor = ripple.color;
|
||||||
|
|
||||||
|
if (this.ripples) {
|
||||||
this.ripples.push(ripple);
|
this.ripples.push(ripple);
|
||||||
|
}
|
||||||
|
|
||||||
this._setAnimating(true);
|
this._setAnimating(true);
|
||||||
|
|
||||||
|
@ -672,8 +678,9 @@ Apply `circle` class to make the rippling effect within a circle.
|
||||||
|
|
||||||
this._animating = true;
|
this._animating = true;
|
||||||
|
|
||||||
for (index = 0; index < this.ripples.length; ++index) {
|
var ripples = this.ripples || [];
|
||||||
ripple = this.ripples[index];
|
for (index = 0; index < ripples.length; ++index) {
|
||||||
|
ripple = ripples[index];
|
||||||
|
|
||||||
ripple.draw();
|
ripple.draw();
|
||||||
|
|
||||||
|
@ -684,7 +691,7 @@ Apply `circle` class to make the rippling effect within a circle.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.shouldKeepAnimating && this.ripples.length === 0) {
|
if (!this.shouldKeepAnimating && ripples.length === 0) {
|
||||||
this.onAnimationComplete();
|
this.onAnimationComplete();
|
||||||
} else {
|
} else {
|
||||||
window.requestAnimationFrame(this._boundAnimate);
|
window.requestAnimationFrame(this._boundAnimate);
|
||||||
|
|
|
@ -328,7 +328,7 @@
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
|
|
||||||
.guideChannelImage {
|
.guideChannelInfoWithImage {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
<button type="submit" data-role="none" class="clearButton">
|
<button type="submit" data-role="none" class="clearButton">
|
||||||
<paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
|
<paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
|
||||||
</button>
|
</button>
|
||||||
|
<paper-button raised class="cancel block btnCancel" onclick="history.back();"><iron-icon icon="close"></iron-icon><span>${ButtonCancel}</span></paper-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -47,6 +47,15 @@
|
||||||
<input type="checkbox" id="chkMovies" />
|
<input type="checkbox" id="chkMovies" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<br />
|
||||||
|
<label for="txtRecordingPath">${LabelRecordingPath}</label>
|
||||||
|
<div style="display: inline-block; width: 85%;">
|
||||||
|
<input type="text" id="txtRecordingPath" />
|
||||||
|
</div>
|
||||||
|
<button id="btnSelectRecordingPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
<div class="fieldDescription">${LabelRecordingPathHelp}</div>
|
||||||
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<p><a href="plugincatalog.html">${LiveTvPluginRequiredHelp}</a></p>
|
<p><a href="plugincatalog.html">${LiveTvPluginRequiredHelp}</a></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<paper-dialog class="dlgAddDevice" entry-animation="fade-in-animation" exit-animation="fade-out-animation" style="height:300px;width:250px;" with-backdrop>
|
<paper-dialog class="dlgAddDevice" entry-animation="fade-in-animation" exit-animation="fade-out-animation" style="height:500px;width:300px;" with-backdrop>
|
||||||
<h2>${HeaderAddDevice}</h2>
|
<h2>${HeaderAddDevice}</h2>
|
||||||
|
|
||||||
<form class="formAddDevice">
|
<form class="formAddDevice">
|
||||||
|
@ -77,6 +77,8 @@
|
||||||
<option value="hdhomerun">HD Homerun</option>
|
<option value="hdhomerun">HD Homerun</option>
|
||||||
<option value="m3u">M3U</option>
|
<option value="m3u">M3U</option>
|
||||||
</select>
|
</select>
|
||||||
|
<div class="fieldDescription">${MessageTunerDeviceNotListed}</div>
|
||||||
|
<div class="fieldDescription"><a href="appservices.html?context=livetv">${TabExternalServices}</a></div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<br />
|
<br />
|
||||||
|
|
|
@ -91,10 +91,11 @@
|
||||||
|
|
||||||
var savedKeyPropertyName = 'vbk';
|
var savedKeyPropertyName = 'vbk';
|
||||||
var savedKey = appStorage.getItem(savedKeyPropertyName);
|
var savedKey = appStorage.getItem(savedKeyPropertyName);
|
||||||
|
|
||||||
if (savedKey) {
|
if (savedKey) {
|
||||||
var deferred = DeferredBuilder.Deferred();
|
htmlMediaRenderer.customViblastKey = savedKey;
|
||||||
deferred.resolveWith(null, [savedKey]);
|
callback();
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var headers = {};
|
var headers = {};
|
||||||
|
|
|
@ -203,7 +203,7 @@
|
||||||
}
|
}
|
||||||
function closeMainDrawer() {
|
function closeMainDrawer() {
|
||||||
|
|
||||||
document.getElementsByClassName('mainDrawerPanel')[0].closeDrawer();
|
document.querySelector('.mainDrawerPanel').closeDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
function ensureDrawerStructure(drawer) {
|
function ensureDrawerStructure(drawer) {
|
||||||
|
|
|
@ -285,9 +285,12 @@
|
||||||
html += '<div class="channelHeaderCell">';
|
html += '<div class="channelHeaderCell">';
|
||||||
html += '<a class="channelHeaderCellInner" href="livetvchannel.html?id=' + channel.Id + '">';
|
html += '<a class="channelHeaderCellInner" href="livetvchannel.html?id=' + channel.Id + '">';
|
||||||
|
|
||||||
html += '<div class="guideChannelInfo">' + channel.Name + '<br/>' + channel.Number + '</div>';
|
var hasChannelImage = channel.ImageTags.Primary;
|
||||||
|
var cssClass = hasChannelImage ? 'guideChannelInfo guideChannelInfoWithImage' : 'guideChannelInfo';
|
||||||
|
|
||||||
if (channel.ImageTags.Primary) {
|
html += '<div class="' + cssClass + '">' + channel.Name + '<br/>' + channel.Number + '</div>';
|
||||||
|
|
||||||
|
if (hasChannelImage) {
|
||||||
|
|
||||||
var url = ApiClient.getScaledImageUrl(channel.Id, {
|
var url = ApiClient.getScaledImageUrl(channel.Id, {
|
||||||
maxHeight: 35,
|
maxHeight: 35,
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
|
|
||||||
$('#selectListing', page).html(result.map(function (o) {
|
$('#selectListing', page).html(result.map(function (o) {
|
||||||
|
|
||||||
return '<option value="' + o.Id + '">' + o.name + '</option>';
|
return '<option value="' + o.Id + '">' + o.Name + '</option>';
|
||||||
|
|
||||||
})).selectmenu('refresh');
|
})).selectmenu('refresh');
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
|
|
||||||
$('#chkMovies', page).checked(config.EnableMovieProviders).checkboxradio("refresh");
|
$('#chkMovies', page).checked(config.EnableMovieProviders).checkboxradio("refresh");
|
||||||
|
|
||||||
|
$('#txtRecordingPath', page).val(config.RecordingPath || '');
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +24,7 @@
|
||||||
|
|
||||||
config.GuideDays = $('#selectGuideDays', form).val() || null;
|
config.GuideDays = $('#selectGuideDays', form).val() || null;
|
||||||
config.EnableMovieProviders = $('#chkMovies', form).checked();
|
config.EnableMovieProviders = $('#chkMovies', form).checked();
|
||||||
|
config.RecordingPath = $('#txtRecordingPath', form).val() || null;
|
||||||
|
|
||||||
ApiClient.updateNamedConfiguration("livetv", config).done(Dashboard.processServerConfigurationUpdateResult);
|
ApiClient.updateNamedConfiguration("livetv", config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||||
});
|
});
|
||||||
|
@ -32,8 +35,26 @@
|
||||||
|
|
||||||
$(document).on('pageinitdepends', "#liveTvSettingsPage", function () {
|
$(document).on('pageinitdepends', "#liveTvSettingsPage", function () {
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
|
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
|
||||||
|
|
||||||
|
$('#btnSelectRecordingPath', page).on("click.selectDirectory", function () {
|
||||||
|
|
||||||
|
var picker = new DirectoryBrowser(page);
|
||||||
|
|
||||||
|
picker.show({
|
||||||
|
|
||||||
|
callback: function (path) {
|
||||||
|
|
||||||
|
if (path) {
|
||||||
|
$('#txtRecordingPath', page).val(path);
|
||||||
|
}
|
||||||
|
picker.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
}).on('pageshowready', "#liveTvSettingsPage", function () {
|
}).on('pageshowready', "#liveTvSettingsPage", function () {
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
Dashboard.showLoadingMsg();
|
||||||
|
|
|
@ -2035,6 +2035,7 @@ var AppInfo = {};
|
||||||
drawerWidth = Math.max(drawerWidth, 240);
|
drawerWidth = Math.max(drawerWidth, 240);
|
||||||
// But not exceeding 310
|
// But not exceeding 310
|
||||||
drawerWidth = Math.min(drawerWidth, 310);
|
drawerWidth = Math.min(drawerWidth, 310);
|
||||||
|
|
||||||
drawer.drawerWidth = drawerWidth + "px";
|
drawer.drawerWidth = drawerWidth + "px";
|
||||||
|
|
||||||
if ($.browser.safari && !AppInfo.isNativeApp) {
|
if ($.browser.safari && !AppInfo.isNativeApp) {
|
||||||
|
|
|
@ -12816,8 +12816,9 @@ is separate from validation, and `allowed-pattern` does not affect how the input
|
||||||
},
|
},
|
||||||
|
|
||||||
get shouldKeepAnimating() {
|
get shouldKeepAnimating() {
|
||||||
for (var index = 0; index < this.ripples.length; ++index) {
|
var ripples = this.ripples || [];
|
||||||
if (!this.ripples[index].isAnimationComplete) {
|
for (var index = 0; index < ripples.length; ++index) {
|
||||||
|
if (!ripples[index].isAnimationComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12855,9 +12856,11 @@ is separate from validation, and `allowed-pattern` does not affect how the input
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.ripples) {
|
||||||
this.ripples.forEach(function (ripple) {
|
this.ripples.forEach(function (ripple) {
|
||||||
ripple.upAction(event);
|
ripple.upAction(event);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.animate();
|
this.animate();
|
||||||
},
|
},
|
||||||
|
@ -12873,7 +12876,10 @@ is separate from validation, and `allowed-pattern` does not affect how the input
|
||||||
|
|
||||||
Polymer.dom(this.$.waves).appendChild(ripple.waveContainer);
|
Polymer.dom(this.$.waves).appendChild(ripple.waveContainer);
|
||||||
this.$.background.style.backgroundColor = ripple.color;
|
this.$.background.style.backgroundColor = ripple.color;
|
||||||
|
|
||||||
|
if (this.ripples) {
|
||||||
this.ripples.push(ripple);
|
this.ripples.push(ripple);
|
||||||
|
}
|
||||||
|
|
||||||
this._setAnimating(true);
|
this._setAnimating(true);
|
||||||
|
|
||||||
|
@ -12902,8 +12908,9 @@ is separate from validation, and `allowed-pattern` does not affect how the input
|
||||||
|
|
||||||
this._animating = true;
|
this._animating = true;
|
||||||
|
|
||||||
for (index = 0; index < this.ripples.length; ++index) {
|
var ripples = this.ripples || [];
|
||||||
ripple = this.ripples[index];
|
for (index = 0; index < ripples.length; ++index) {
|
||||||
|
ripple = ripples[index];
|
||||||
|
|
||||||
ripple.draw();
|
ripple.draw();
|
||||||
|
|
||||||
|
@ -12914,7 +12921,7 @@ is separate from validation, and `allowed-pattern` does not affect how the input
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.shouldKeepAnimating && this.ripples.length === 0) {
|
if (!this.shouldKeepAnimating && ripples.length === 0) {
|
||||||
this.onAnimationComplete();
|
this.onAnimationComplete();
|
||||||
} else {
|
} else {
|
||||||
window.requestAnimationFrame(this._boundAnimate);
|
window.requestAnimationFrame(this._boundAnimate);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue