mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 21:03:17 -07:00
UI changes to consume actor searching API
This commit is contained in:
parent
9380ba3e45
commit
0aa00fd888
5 changed files with 173 additions and 72 deletions
35
Ombi.UI/Content/requests.js
vendored
35
Ombi.UI/Content/requests.js
vendored
|
@ -95,7 +95,10 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||||
//if ($tvl.mixItUp('isLoaded')) $tvl.mixItUp('destroy');
|
//if ($tvl.mixItUp('isLoaded')) $tvl.mixItUp('destroy');
|
||||||
//$tvl.mixItUp(mixItUpConfig(activeState)); // init or reinit
|
//$tvl.mixItUp(mixItUpConfig(activeState)); // init or reinit
|
||||||
}
|
}
|
||||||
if (target === "#MoviesTab") {
|
if (target === "#MoviesTab" || target === "#ActorsTab") {
|
||||||
|
if (target === "#ActorsTab") {
|
||||||
|
actorLoad();
|
||||||
|
}
|
||||||
$('#approveMovies,#deleteMovies').show();
|
$('#approveMovies,#deleteMovies').show();
|
||||||
if ($tvl.mixItUp('isLoaded')) {
|
if ($tvl.mixItUp('isLoaded')) {
|
||||||
activeState = $tvl.mixItUp('getState');
|
activeState = $tvl.mixItUp('getState');
|
||||||
|
@ -733,6 +736,36 @@ function initLoad() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function actorLoad() {
|
||||||
|
var $ml = $('#actorMovieList');
|
||||||
|
if ($ml.mixItUp('isLoaded')) {
|
||||||
|
activeState = $ml.mixItUp('getState');
|
||||||
|
$ml.mixItUp('destroy');
|
||||||
|
}
|
||||||
|
$ml.html("");
|
||||||
|
|
||||||
|
var url = createBaseUrl(base, '/requests/actor');
|
||||||
|
$.ajax(url).success(function (results) {
|
||||||
|
if (results.length > 0) {
|
||||||
|
results.forEach(function (result) {
|
||||||
|
var context = buildRequestContext(result, "movie");
|
||||||
|
var html = searchTemplate(context);
|
||||||
|
$ml.append(html);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('.customTooltip').tooltipster({
|
||||||
|
contentCloning: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ml.html(noResultsHtml.format("movie"));
|
||||||
|
}
|
||||||
|
$ml.mixItUp(mixItUpConfig());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
function movieLoad() {
|
function movieLoad() {
|
||||||
var $ml = $('#movieList');
|
var $ml = $('#movieList');
|
||||||
if ($ml.mixItUp('isLoaded')) {
|
if ($ml.mixItUp('isLoaded')) {
|
||||||
|
|
38
Ombi.UI/Content/search.js
vendored
38
Ombi.UI/Content/search.js
vendored
|
@ -63,6 +63,17 @@ $(function () {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Type in actor search
|
||||||
|
$("#actorSearchContent").on("input", function () {
|
||||||
|
if (searchTimer) {
|
||||||
|
clearTimeout(searchTimer);
|
||||||
|
}
|
||||||
|
searchTimer = setTimeout(function () {
|
||||||
|
moviesFromActor();
|
||||||
|
}.bind(this), 800);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
$('#moviesComingSoon').on('click', function (e) {
|
$('#moviesComingSoon').on('click', function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
moviesComingSoon();
|
moviesComingSoon();
|
||||||
|
@ -300,7 +311,7 @@ $(function () {
|
||||||
function movieSearch() {
|
function movieSearch() {
|
||||||
var query = $("#movieSearchContent").val();
|
var query = $("#movieSearchContent").val();
|
||||||
var url = createBaseUrl(base, '/search/movie/');
|
var url = createBaseUrl(base, '/search/movie/');
|
||||||
query ? getMovies(url + query) : resetMovies();
|
query ? getMovies(url + query) : resetMovies("#movieList");
|
||||||
}
|
}
|
||||||
|
|
||||||
function moviesComingSoon() {
|
function moviesComingSoon() {
|
||||||
|
@ -313,6 +324,12 @@ $(function () {
|
||||||
getMovies(url);
|
getMovies(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function moviesFromActor() {
|
||||||
|
var query = $("#actorSearchContent").val();
|
||||||
|
var url = createBaseUrl(base, '/search/actor/');
|
||||||
|
query ? getMovies(url + query, "#actorMovieList", "#actorSearchButton") : resetMovies("#actorMovieList");
|
||||||
|
}
|
||||||
|
|
||||||
function popularShows() {
|
function popularShows() {
|
||||||
var url = createBaseUrl(base, '/search/tv/popular');
|
var url = createBaseUrl(base, '/search/tv/popular');
|
||||||
getTvShows(url, true);
|
getTvShows(url, true);
|
||||||
|
@ -330,30 +347,31 @@ $(function () {
|
||||||
getTvShows(url, true);
|
getTvShows(url, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMovies(url) {
|
function getMovies(url, target, button) {
|
||||||
resetMovies();
|
target = target || "#movieList";
|
||||||
|
button = button || "#movieSearchButton";
|
||||||
$('#movieSearchButton').attr("class", "fa fa-spinner fa-spin");
|
resetMovies(target);
|
||||||
|
$(button).attr("class", "fa fa-spinner fa-spin");
|
||||||
$.ajax(url).success(function (results) {
|
$.ajax(url).success(function (results) {
|
||||||
if (results.length > 0) {
|
if (results.length > 0) {
|
||||||
results.forEach(function (result) {
|
results.forEach(function (result) {
|
||||||
var context = buildMovieContext(result);
|
var context = buildMovieContext(result);
|
||||||
|
|
||||||
var html = searchTemplate(context);
|
var html = searchTemplate(context);
|
||||||
$("#movieList").append(html);
|
$(target).append(html);
|
||||||
|
|
||||||
checkNetflix(context.title, context.id);
|
checkNetflix(context.title, context.id);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$("#movieList").html(noResultsHtml);
|
$(target).html(noResultsHtml);
|
||||||
}
|
}
|
||||||
$('#movieSearchButton').attr("class", "fa fa-search");
|
$(button).attr("class", "fa fa-search");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function resetMovies() {
|
function resetMovies(target) {
|
||||||
$("#movieList").html("");
|
$(target).html("");
|
||||||
}
|
}
|
||||||
|
|
||||||
function tvSearch() {
|
function tvSearch() {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 1.3
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
@ -14,16 +14,17 @@
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">1.3</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
<data name="Name1">this is my long string</data>
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
[base64 mime encoded serialized .NET Framework object]
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
|
@ -45,7 +46,7 @@
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
@ -59,18 +60,37 @@
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
<xsd:element name="data">
|
<xsd:element name="data">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="resheader">
|
<xsd:element name="resheader">
|
||||||
|
@ -89,13 +109,13 @@
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="version">
|
<resheader name="version">
|
||||||
<value>1.3</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="UserLogin_Title" xml:space="preserve">
|
<data name="UserLogin_Title" xml:space="preserve">
|
||||||
<value>Login</value>
|
<value>Login</value>
|
||||||
|
@ -476,4 +496,7 @@
|
||||||
<data name="UserLogin_AdminUsePassword" xml:space="preserve">
|
<data name="UserLogin_AdminUsePassword" xml:space="preserve">
|
||||||
<value>If you are an administrator, please use the other login page</value>
|
<value>If you are an administrator, please use the other login page</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Search_Actors" xml:space="preserve">
|
||||||
|
<value>Actors</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
9
Ombi.UI/Resources/UI1.Designer.cs
generated
9
Ombi.UI/Resources/UI1.Designer.cs
generated
|
@ -717,6 +717,15 @@ namespace Ombi.UI.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Actors.
|
||||||
|
/// </summary>
|
||||||
|
public static string Search_Actors {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Search_Actors", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Albums.
|
/// Looks up a localized string similar to Albums.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
<a id="movieTabButton" href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab"><i class="fa fa-film"></i> @UI.Search_Movies</a>
|
<a id="movieTabButton" href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab"><i class="fa fa-film"></i> @UI.Search_Movies</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
<li role="presentation">
|
||||||
|
<a id="actorTabButton" href="#ActorsTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-users"></i> @UI.Search_Actors</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
}
|
}
|
||||||
@if (Model.Settings.SearchForTvShows)
|
@if (Model.Settings.SearchForTvShows)
|
||||||
{
|
{
|
||||||
|
@ -70,8 +74,22 @@
|
||||||
<div id="movieList">
|
<div id="movieList">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
<!-- Actors tab -->
|
||||||
|
<div role="tabpanel" class="tab-pane" id="ActorsTab">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="actorSearchContent" type="text" class="form-control form-control-custom form-control-search form-control-withbuttons">
|
||||||
|
<div class="input-group-addon">
|
||||||
|
<i id="actorSearchButton" class="fa fa-search"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<!-- Movie content -->
|
||||||
|
<div id="actorMovieList">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@if (Model.Settings.SearchForTvShows)
|
@if (Model.Settings.SearchForTvShows)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue