mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-21 13:53:19 -07:00
Merge branch 'dev' into master
This commit is contained in:
commit
f817953ba3
209 changed files with 7250 additions and 993 deletions
|
@ -87,16 +87,7 @@
|
|||
|
||||
|
||||
changeDisabledStatus($('#UsePassword'), @Model.UserAuthentication.ToString().ToLower(), $('#passLabel'));
|
||||
if ($('#PlexAuthToken')) {
|
||||
loadUserList();
|
||||
}
|
||||
|
||||
$('#refreshUsers').click(function (e) {
|
||||
e.preventDefault();
|
||||
loadUserList();
|
||||
});
|
||||
|
||||
|
||||
$('#mainForm').on('click', '#userAuth', function () {
|
||||
var checked = this.checked;
|
||||
changeDisabledStatus($('#UsePassword'), checked, $('#passLabel'));
|
||||
|
@ -112,41 +103,5 @@
|
|||
$label.css("color", "grey");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function loadUserList() {
|
||||
$('#users').html("");
|
||||
var url = "getusers";
|
||||
$.ajax({
|
||||
type: "Get",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
|
||||
$('#users').html("");
|
||||
if(!response.result){
|
||||
generateNotify(response.message,"danger");
|
||||
$('#users').append("<option>Error!</option>");
|
||||
return;
|
||||
}
|
||||
if (response.users.length > 0) {
|
||||
$(response.users).each(function () {
|
||||
$('#users').append("<option>" + this + "</option>");
|
||||
});
|
||||
} else {
|
||||
$('#users').append("<option>No Users, Please refresh!</option>");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
$('#users').html("");
|
||||
$('#users').append("<option>Error!</option>");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
</script>
|
148
Ombi.UI/Views/Admin/Emby.cshtml
Normal file
148
Ombi.UI/Views/Admin/Emby.cshtml
Normal file
|
@ -0,0 +1,148 @@
|
|||
@using Ombi.UI.Helpers
|
||||
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<Ombi.Core.SettingModels.EmbySettings>
|
||||
@Html.Partial("Shared/Partial/_Sidebar")
|
||||
@{
|
||||
int port;
|
||||
if (Model.Port == 0)
|
||||
{
|
||||
port = 8096;
|
||||
}
|
||||
else
|
||||
{
|
||||
port = Model.Port;
|
||||
}
|
||||
}
|
||||
<div class="col-sm-8 col-sm-push-1">
|
||||
<form class="form-horizontal" method="POST" id="mainForm">
|
||||
<fieldset>
|
||||
<legend>Emby Settings</legend>
|
||||
|
||||
@Html.Checkbox(Model.Enable, "Enable", "Enabled")
|
||||
<div class="form-group">
|
||||
<label for="Ip" class="control-label">Emby Hostname or IP</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " id="Ip" name="Ip" placeholder="localhost" value="@Model.Ip">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="portNumber" class="control-label">Port</label>
|
||||
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " id="portNumber" name="Port" placeholder="Port Number" value="@port">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
|
||||
@if (Model.Ssl)
|
||||
{
|
||||
<input type="checkbox" id="Ssl" name="Ssl" checked="checked"><label for="Ssl">SSL</label>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="checkbox" id="Ssl" name="Ssl"><label for="Ssl">SSL</label>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@Html.Checkbox(Model.EnableEpisodeSearching, "EnableEpisodeSearching", "Enable Episode Searching")
|
||||
|
||||
<div class="form-group">
|
||||
<label for="SubDir" class="control-label">Emby Base Url</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " id="SubDir" name="SubDir" value="@Model.SubDir">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="ApiKey" class="control-label">Emby Api Key</label>
|
||||
<div class="">
|
||||
<input type="text" class="form-control-custom form-control" id="ApiKey" name="ApiKey" placeholder="Api Key" value="@Model.ApiKey">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="testEmby" type="submit" class="btn btn-primary-outline">Test Connectivity <div id="spinner"></div></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="save" type="submit" class="btn btn-primary-outline">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
|
||||
$('#testEmby').click(function (e) {
|
||||
e.preventDefault();
|
||||
var url = createBaseUrl(base, '/test/emby');
|
||||
var $form = $("#mainForm");
|
||||
|
||||
$('#spinner').attr("class", "fa fa-spinner fa-spin");
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
url: url,
|
||||
data: $form.serialize(),
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
$('#spinner').attr("class", "");
|
||||
console.log(response);
|
||||
if (response.result === true) {
|
||||
generateNotify(response.message, "success");
|
||||
|
||||
$('#spinner').attr("class", "fa fa-check");
|
||||
} else {
|
||||
generateNotify(response.message, "warning");
|
||||
$('#spinner').attr("class", "fa fa-times");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
|
||||
$('#spinner').attr("class", "fa fa-times");
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$('#save').click(function (e) {
|
||||
e.preventDefault();
|
||||
var port = $('#portNumber').val();
|
||||
if (isNaN(port)) {
|
||||
generateNotify("You must specify a Port.", "warning");
|
||||
return;
|
||||
}
|
||||
|
||||
var $form = $("#mainForm");
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
data: $form.serialize(),
|
||||
url: $form.prop("action"),
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (response.result === true) {
|
||||
generateNotify(response.message, "success");
|
||||
} else {
|
||||
generateNotify(response.message, "warning");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
|
@ -54,7 +54,7 @@
|
|||
<p class="form-group">Notice Message</p>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<textarea rows="4" type="text" class="form-control-custom form-control " id="NoticeMessage" name="NoticeMessage" placeholder="e.g. Plex will be down for maintaince (HTML is allowed)" value="@Model.NoticeMessage">@Model.NoticeMessage</textarea>
|
||||
<textarea rows="4" type="text" class="form-control-custom form-control " id="NoticeMessage" name="NoticeMessage" placeholder="e.g. The server will be down for maintaince (HTML is allowed)" value="@Model.NoticeMessage">@Model.NoticeMessage</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
105
Ombi.UI/Views/Admin/MassEmail.cshtml
Normal file
105
Ombi.UI/Views/Admin/MassEmail.cshtml
Normal file
|
@ -0,0 +1,105 @@
|
|||
@using System.Linq
|
||||
@using Ombi.UI.Helpers
|
||||
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<Ombi.Core.SettingModels.NewletterSettings>
|
||||
@Html.Partial("Shared/Partial/_Sidebar")
|
||||
|
||||
<div class="col-sm-8 col-sm-push-1">
|
||||
<form id="massemail" class="form-horizontal">
|
||||
<fieldset>
|
||||
<legend>Mass Email</legend>
|
||||
<!-- Mass Email Section -->
|
||||
<div style="padding:10px">
|
||||
<div class="form-group">
|
||||
<small>Note: This will require you to setup your email notifications</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="massEmailSubject" class="control-label">Subject</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " placeholder="A Message from the Admin" id="massEmailSubject" name="massEmailSubject" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="massEmailBody" class="control-label">Body</label>
|
||||
|
||||
<textarea id="massEmailBody" class="form-control" rows="5"></textarea>
|
||||
<small>Supports HTML</small>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="testSendMassEmailBtn" class="btn btn-primary-outline">Send Test to Admin<div id="testSendMassEmailSpinner"></div></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="sendMassEmailBtn" class="btn btn-primary-outline">Send To All Users<div id="sendMassEmailSpinner"></div></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Mass Email Section -->
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
|
||||
$('#testSendMassEmailBtn').click(function (e) {
|
||||
e.preventDefault();
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
var url = createBaseUrl(base, '/admin/testmassadminemail');
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-spinner fa-spin");
|
||||
var data = { "Users": "", "Body": $("#massEmailBody").val(), "Subject": $("#massEmailSubject").val() };
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (response.result) {
|
||||
generateNotify(response.message, "success");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-check");
|
||||
} else {
|
||||
|
||||
generateNotify(response.message, "danger");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#sendMassEmailBtn').click(function (e) {
|
||||
e.preventDefault();
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
var url = createBaseUrl(base, '/admin/sendmassemail');
|
||||
$('#sendMassEmailSpinner').attr("class", "fa fa-spinner fa-spin");
|
||||
var data = { "Users": "", "Body": $("#massEmailBody").val(), "Subject": $("#massEmailSubject").val() };
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (response.result) {
|
||||
generateNotify(response.message, "success");
|
||||
$('#sendMassEmailSpinner').attr("class", "fa fa-check");
|
||||
} else {
|
||||
|
||||
generateNotify(response.message, "danger");
|
||||
$('#sendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
$('#sendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
|
@ -7,60 +7,58 @@
|
|||
<form class="form-horizontal" method="POST" id="mainForm">
|
||||
<fieldset>
|
||||
<legend>Newsletter Settings</legend>
|
||||
<div style="padding:10px">
|
||||
|
||||
<!-- Email Nofication Section -->
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<!-- Newsletter Section -->
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
|
||||
<small>Note: This will require you to setup your email notifications</small>
|
||||
<br />
|
||||
@if (Model.SendRecentlyAddedEmail)
|
||||
{
|
||||
<input type="checkbox" id="SendRecentlyAddedEmail" name="SendRecentlyAddedEmail" checked="checked"><label for="SendRecentlyAddedEmail">Enable newsletter</label>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="checkbox" id="SendRecentlyAddedEmail" name="SendRecentlyAddedEmail"><label for="SendRecentlyAddedEmail">Enable newslette</label>
|
||||
}
|
||||
<small>Note: This will require you to setup your email notifications</small>
|
||||
<br />
|
||||
@if (Model.SendRecentlyAddedEmail)
|
||||
{
|
||||
<input type="checkbox" id="SendRecentlyAddedEmail" name="SendRecentlyAddedEmail" checked="checked"><label for="SendRecentlyAddedEmail">Enable newsletter</label>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="checkbox" id="SendRecentlyAddedEmail" name="SendRecentlyAddedEmail"><label for="SendRecentlyAddedEmail">Enable newsletter</label>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<br>
|
||||
<label for="CustomUsers" class="control-label">Email Addresses to Send to (For users that are not in your User Management section)</label>
|
||||
<small>You can add multiple email addresses by using the ; delimiter</small>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " placeholder="first@address.com;second@address.com" id="CustomUsers" name="CustomUsers" value="@Model.CustomUsers">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="recentlyAddedBtn" class="btn btn-primary-outline">Send test email to Admin <div id="testEmailSpinner"></div></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button type="submit" id="save" class="btn btn-primary-outline">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<br>
|
||||
<label for="CustomUsers" class="control-label">Email Addresses to Send to (For users that are not in your User Management section)</label>
|
||||
<small>You can add multiple email address by using the ; delimiter</small>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " placeholder="first@address.com;second@address.com" id="CustomUsers" name="CustomUsers" value="@Model.CustomUsers">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button id="recentlyAddedBtn" class="btn btn-primary-outline">Send test email to Admin <div id="spinner"></div></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Email Nofication Section -->
|
||||
|
||||
<!-- Newsletter Section -->
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
|
||||
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
$('#save').click(function (e) {
|
||||
e.preventDefault();
|
||||
|
@ -90,8 +88,8 @@
|
|||
$('#recentlyAddedBtn').click(function (e) {
|
||||
e.preventDefault();
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
var url = createBaseUrl(base, '/admin/recentlyAddedTest');
|
||||
$('#spinner').attr("class", "fa fa-spinner fa-spin");
|
||||
var url = createBaseUrl(base, '/admin/testnewsletteradminemail');
|
||||
$('#testEmailSpinner').attr("class", "fa fa-spinner fa-spin");
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: url,
|
||||
|
@ -99,20 +97,20 @@
|
|||
success: function (response) {
|
||||
if (response) {
|
||||
generateNotify(response.message, "success");
|
||||
$('#spinner').attr("class", "fa fa-check");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-check");
|
||||
} else {
|
||||
|
||||
generateNotify(response.message, "danger");
|
||||
$('#spinner').attr("class", "fa fa-times");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
$('#spinner').attr("class", "fa fa-times");
|
||||
$('#testSendMassEmailSpinner').attr("class", "fa fa-times");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
<fieldset>
|
||||
<legend>Plex Settings</legend>
|
||||
@*<input id="advancedToggle" type="checkbox"/>*@ @*TODO*@
|
||||
|
||||
@Html.Checkbox(Model.Enable, "Enable", "Enable")
|
||||
<div class="form-group">
|
||||
<label for="Ip" class="control-label">Plex Hostname or IP</label>
|
||||
<div>
|
||||
|
|
|
@ -35,22 +35,53 @@
|
|||
<fieldset>
|
||||
<legend>Scheduler Settings</legend>
|
||||
<small>Please note, you will need to restart for these settings to take effect</small>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="PlexAvailabilityChecker" class="control-label">Plex Availability Checker (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexAvailabilityChecker" name="PlexAvailabilityChecker" value="@Model.PlexAvailabilityChecker">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="PlexContentCacher" class="control-label">Plex Content Cacher (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexContentCacher" name="PlexContentCacher" value="@Model.PlexContentCacher">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="PlexUserChecker" class="control-label">Plex User Checker (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexUserChecker" name="PlexUserChecker" value="@Model.PlexUserChecker">
|
||||
</div>
|
||||
|
||||
@if (Model.Plex)
|
||||
{
|
||||
<div class="form-group">
|
||||
<label for="PlexAvailabilityChecker" class="control-label">Plex Availability Checker (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexAvailabilityChecker" name="PlexAvailabilityChecker" value="@Model.PlexAvailabilityChecker">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="PlexContentCacher" class="control-label">Plex Content Cacher (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexContentCacher" name="PlexContentCacher" value="@Model.PlexContentCacher">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="PlexUserChecker" class="control-label">Plex User Checker (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexUserChecker" name="PlexUserChecker" value="@Model.PlexUserChecker">
|
||||
</div>
|
||||
|
||||
<small>Please note, the minimum time for this to run is 11 hours, if set below 11 then we will ignore that value. This is a very resource intensive job, the less we run it the better.</small>
|
||||
<div class="form-group">
|
||||
<label for="PlexEpisodeCacher" class="control-label">Plex Episode Cacher (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexEpisodeCacher" name="PlexEpisodeCacher" value="@Model.PlexEpisodeCacher">
|
||||
</div>
|
||||
}
|
||||
@if (Model.Emby)
|
||||
{
|
||||
<div class="form-group">
|
||||
<label for="EmbyAvailabilityChecker" class="control-label">Emby Availability Checker (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="EmbyAvailabilityChecker" name="EmbyAvailabilityChecker" value="@Model.EmbyAvailabilityChecker">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="EmbyContentCacher" class="control-label">Emby Content Cacher (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="EmbyContentCacher" name="EmbyContentCacher" value="@Model.EmbyContentCacher">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="EmbyUserChecker" class="control-label">Emby User Checker (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="EmbyUserChecker" name="EmbyUserChecker" value="@Model.EmbyUserChecker">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="EmbyEpisodeCacher" class="control-label">Emby Episode Cacher (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="EmbyEpisodeCacher" name="EmbyEpisodeCacher" value="@Model.EmbyEpisodeCacher">
|
||||
</div>
|
||||
}
|
||||
<div class="form-group">
|
||||
<label for="CouchPotatoCacher" class="control-label">Couch Potato Cacher (min)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="CouchPotatoCacher" name="CouchPotatoCacher" value="@Model.CouchPotatoCacher">
|
||||
|
@ -64,11 +95,7 @@
|
|||
<input type="text" class="form-control form-control-custom " id="RadarrCacher" name="RadarrCacher" value="@Model.RadarrCacher">
|
||||
</div>
|
||||
|
||||
<small>Please note, the minimum time for this to run is 11 hours, if set below 11 then we will ignore that value. This is a very resource intensive job, the less we run it the better.</small>
|
||||
<div class="form-group">
|
||||
<label for="PlexEpisodeCacher" class="control-label">Plex Episode Cacher (hours)</label>
|
||||
<input type="text" class="form-control form-control-custom " id="PlexEpisodeCacher" name="PlexEpisodeCacher" value="@Model.PlexEpisodeCacher">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="SonarrCacher" class="control-label">Sonarr Cacher (min)</label>
|
||||
|
|
|
@ -10,6 +10,13 @@
|
|||
{
|
||||
port = Model.Port;
|
||||
}
|
||||
|
||||
var rootFolder = string.Empty;
|
||||
if (!string.IsNullOrEmpty(Model.RootPath))
|
||||
|
||||
{
|
||||
rootFolder = Model.RootPath.Replace("/", "//");
|
||||
}
|
||||
}
|
||||
<div class="col-sm-8 col-sm-push-1">
|
||||
<form class="form-horizontal" method="POST" id="mainForm">
|
||||
|
@ -96,13 +103,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
@*<div class="form-group">
|
||||
<label for="RootPath" class="control-label">Root save directory for TV shows</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " placeholder="C:\Media\Tv" id="RootPath" name="RootPath" value="@Model.RootPath">
|
||||
<label>Enter the root folder where tv shows are saved. For example <strong>C:\Media\TV</strong>.</label>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
|
@ -184,7 +184,7 @@
|
|||
|
||||
console.log('Hit root folders..');
|
||||
|
||||
var rootFolderSelected = '@Model.RootPath';
|
||||
var rootFolderSelected = '@rootFolder';
|
||||
if (!rootFolderSelected) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<label for="select" class="control-label">Theme</label>
|
||||
<div id="themes">
|
||||
<select class="form-control form-control-custom" id="select">
|
||||
<option @plexTheme class="form-control form-control-custom" value="@Themes.PlexTheme">Plex</option>
|
||||
<option @plexTheme class="form-control form-control-custom" value="@Themes.PlexTheme">Dark</option>
|
||||
<option @originalTheme class="form-control form-control-custom" value="@Themes.OriginalTheme">Original Blue</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -104,7 +104,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
@Html.Checkbox(Model.Settings.NewSearch, "NewSearch", "Use New Search")
|
||||
@*@Html.Checkbox(Model.Settings.NewSearch, "NewSearch", "Use New Search")*@
|
||||
@Html.Checkbox(Model.Settings.EnableIssues, "EnableIssues", "Enable Issues")
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
||||
|
|
|
@ -11,11 +11,20 @@
|
|||
{
|
||||
port = Model.Port;
|
||||
}
|
||||
|
||||
var rootFolder = string.Empty;
|
||||
if (!string.IsNullOrEmpty(Model.RootPath))
|
||||
|
||||
{
|
||||
rootFolder = Model.RootPath.Replace("/", "//");
|
||||
}
|
||||
}
|
||||
<div class="col-sm-8 col-sm-push-1">
|
||||
<form class="form-horizontal" method="POST" id="mainForm">
|
||||
<fieldset>
|
||||
<legend>Radarr Settings</legend>
|
||||
|
||||
<input hidden="hidden" name="FullRootPath" id="fullRootPath" value="@Model.FullRootPath" />
|
||||
@Html.Checkbox(Model.Enabled, "Enabled", "Enabled")
|
||||
|
||||
|
||||
|
@ -64,10 +73,17 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="RootPath" class="control-label">Root save directory for TV shows</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " placeholder="C:\Media\Tv" id="RootPath" name="RootPath" value="@Model.RootPath">
|
||||
<label>Enter the root folder where movies are saved. For example <strong>C:\Media\TV</strong>.</label>
|
||||
<button type="submit" id="getRootFolders" class="btn btn-primary-outline">Get Root Folders <div id="getRootFolderSpinner" /></button>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="selectRootFolder" class="control-label">Default Root Folders</label>
|
||||
<div id="rootFolders">
|
||||
<select class="form-control form-control-custom" id="selectRootFolder"></select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -128,6 +144,39 @@
|
|||
}
|
||||
</text>
|
||||
}
|
||||
@if (!string.IsNullOrEmpty(Model.RootPath))
|
||||
{
|
||||
<text>
|
||||
|
||||
console.log('Hit root folders..');
|
||||
|
||||
var rootFolderSelected = '@rootFolder';
|
||||
if (!rootFolderSelected) {
|
||||
return;
|
||||
}
|
||||
var $form = $("#mainForm");
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
data: $form.serialize(),
|
||||
url: "sonarrrootfolders",
|
||||
dataType: "json",
|
||||
success: function(response) {
|
||||
response.forEach(function(result) {
|
||||
$('#selectedRootFolder').html("");
|
||||
if (result.id == rootFolderSelected) {
|
||||
$("#selectRootFolder").append("<option selected='selected' value='" + result.id + "'>" + result.path + "</option>");
|
||||
} else {
|
||||
$("#selectRootFolder").append("<option value='" + result.id + "'>" + result.path + "</option>");
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function(e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
}
|
||||
});
|
||||
</text>
|
||||
}
|
||||
|
||||
|
||||
$('#save').click(function(e) {
|
||||
|
@ -138,11 +187,14 @@
|
|||
return;
|
||||
}
|
||||
var qualityProfile = $("#profiles option:selected").val();
|
||||
var rootFolder = $("#rootFolders option:selected").val();
|
||||
var rootFolderPath = $('#rootFolders option:selected').text();
|
||||
$('#fullRootPath').val(rootFolderPath);
|
||||
|
||||
var $form = $("#mainForm");
|
||||
|
||||
var data = $form.serialize();
|
||||
data = data + "&qualityProfile=" + qualityProfile;
|
||||
data = data + "&qualityProfile=" + qualityProfile + "&rootPath=" + rootFolder;
|
||||
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
|
@ -202,6 +254,45 @@
|
|||
});
|
||||
});
|
||||
|
||||
$('#getRootFolders').click(function (e) {
|
||||
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-spinner fa-spin");
|
||||
e.preventDefault();
|
||||
if (!$('#Ip').val()) {
|
||||
generateNotify("Please enter a valid IP/Hostname.", "warning");
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-times");
|
||||
return;
|
||||
}
|
||||
if (!$('#portNumber').val()) {
|
||||
generateNotify("Please enter a valid Port Number.", "warning");
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-times");
|
||||
return;
|
||||
}
|
||||
if (!$('#ApiKey').val()) {
|
||||
generateNotify("Please enter a valid ApiKey.", "warning");
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-times");
|
||||
return;
|
||||
}
|
||||
var $form = $("#mainForm");
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
data: $form.serialize(),
|
||||
url: "radarrrootfolders",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
response.forEach(function (result) {
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-check");
|
||||
$("#selectRootFolder").append("<option value='" + result.id + "'>" + result.path + "</option>");
|
||||
});
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
$('#getRootFolderSpinner').attr("class", "fa fa-times");
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var base = '@Html.GetBaseUrl()';
|
||||
$('#testRadarr').click(function (e) {
|
||||
|
||||
|
@ -213,7 +304,7 @@
|
|||
|
||||
var data = $form.serialize();
|
||||
data = data + "&qualityProfile=" + qualityProfile;
|
||||
|
||||
|
||||
var url = createBaseUrl(base, '/test/radarr');
|
||||
$.ajax({
|
||||
type: $form.prop("method"),
|
||||
|
@ -241,4 +332,4 @@
|
|||
|
||||
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading landing-title" id="statusTitle">Checking...</h4>
|
||||
The Plex server is <strong><span id="statusText">Loading...</span></strong> (check this page for continuous status updates)
|
||||
The Media server is <strong><span id="statusText">Loading...</span></strong> (check this page for continuous status updates)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -191,18 +191,36 @@
|
|||
</a>
|
||||
</div>
|
||||
<br />
|
||||
{{#if_eq type "tv"}}
|
||||
<span>@UI.Search_TV_Show_Status: </span>
|
||||
{{else}}
|
||||
<span>@UI.Search_Movie_Status: </span>
|
||||
{{/if_eq}}
|
||||
<span class="label label-success">{{status}}</span>
|
||||
{{#if denied}}
|
||||
<div>
|
||||
Denied: <i style="color:red;" class="fa fa-check"></i>
|
||||
{{#if_eq type "tv"}}
|
||||
<span>@UI.Search_TV_Show_Status: </span>
|
||||
{{else}}
|
||||
<span>@UI.Search_Movie_Status: </span>
|
||||
{{/if_eq}}
|
||||
<span class="label label-success">{{status}}</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<span>Request status: </span>
|
||||
{{#if available}}
|
||||
<span class="label label-success">@UI.Requests_Available</span>
|
||||
{{else}}
|
||||
{{#if approved}}
|
||||
<span class="label label-info">@UI.Search_Processing_Request</span>
|
||||
{{else if denied}}
|
||||
<span class="label label-danger">@UI.Search_Request_denied</span>
|
||||
{{#if deniedReason}}
|
||||
<span class="customTooltip" title="{{deniedReason}}"><i class="fa fa-info-circle"></i></span>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<span class="label label-warning">@UI.Search_Pending_approval</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if denied}}
|
||||
<div>
|
||||
Denied: <i style="color:red;" class="fa fa-check"></i>
|
||||
|
||||
</div>
|
||||
|
||||
{{/if}}
|
||||
|
@ -211,26 +229,7 @@
|
|||
{{else}}
|
||||
<div>@UI.Requests_ReleaseDate: {{releaseDate}}</div>
|
||||
{{/if_eq}}
|
||||
{{#unless denied}}
|
||||
<div>
|
||||
@UI.Common_Approved:
|
||||
{{#if_eq approved false}}
|
||||
<i id="{{requestId}}notapproved" class="fa fa-times"></i>
|
||||
{{/if_eq}}
|
||||
{{#if_eq approved true}}
|
||||
<i class="fa fa-check"></i>
|
||||
{{/if_eq}}
|
||||
</div>
|
||||
{{/unless}}
|
||||
<div>
|
||||
@UI.Requests_Available
|
||||
{{#if_eq available false}}
|
||||
<i id="availableIcon{{requestId}}" class="fa fa-times"></i>
|
||||
{{/if_eq}}
|
||||
{{#if_eq available true}}
|
||||
<i id="availableIcon{{requestId}}" class="fa fa-check"></i>
|
||||
{{/if_eq}}
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
{{#if_eq type "tv"}}
|
||||
{{#if episodes}}
|
||||
|
|
|
@ -8,12 +8,14 @@
|
|||
{
|
||||
url = "/" + baseUrl.ToHtmlString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
<div>
|
||||
|
||||
<div hidden="hidden" id="useNewSearch">@Model.CustomizationSettings.NewSearch</div>
|
||||
<h1 id="searchTitle">@UI.Search_Title</h1>
|
||||
<h4>@UI.Search_Paragraph</h4>
|
||||
<h4>@string.Format(UI.Search_Paragraph, Model.Emby ? "Emby" : "Plex")</h4>
|
||||
<br />
|
||||
<!-- Nav tabs -->
|
||||
|
||||
|
@ -188,7 +190,7 @@
|
|||
<div class="col-md-7 col-xs-7">
|
||||
|
||||
{{#if available}}
|
||||
<span class="label label-success">@UI.Search_Available_on_plex</span>
|
||||
<span class="label label-success">@UI.Search_Available</span>
|
||||
{{else}}
|
||||
{{#if approved}}
|
||||
<span class="label label-info">@UI.Search_Processing_Request</span>
|
||||
|
@ -234,7 +236,9 @@
|
|||
<button style="text-align: right" class="btn btn-success-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Available</button>
|
||||
<br />
|
||||
<br />
|
||||
{{#if url}}
|
||||
<a style="text-align: right" class="btn btn-sm btn-primary-outline" href="{{url}}" target="_blank"><i class="fa fa-eye"></i> @UI.Search_ViewInPlex</a>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if_eq requested true}}
|
||||
<button style="text-align: right" class="btn btn-primary-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Requested</button>
|
||||
|
@ -340,9 +344,7 @@
|
|||
</a>{{#if status}}<span class="label label-primary" style="font-size:60%" target="_blank">{{status}}</span>{{/if}}
|
||||
</h4>
|
||||
{{/if_eq}}
|
||||
{{#if status}}
|
||||
<span class="label label-info" target="_blank">{{status}}</span>
|
||||
{{/if}}
|
||||
|
||||
|
||||
{{#if firstAired}}
|
||||
<span class="label label-info" target="_blank">Air Date: {{firstAired}}</span>
|
||||
|
@ -352,7 +354,7 @@
|
|||
<span class="label label-info" target="_blank">Release Date: {{releaseDate}}</span>
|
||||
{{/if}}
|
||||
{{#if available}}
|
||||
<span class="label label-success">@UI.Search_Available_on_plex</span>
|
||||
<span class="label label-success">@UI.Search_Available</span>
|
||||
{{else}}
|
||||
{{#if approved}}
|
||||
<span class="label label-info">@UI.Search_Processing_Request</span>
|
||||
|
@ -384,9 +386,11 @@
|
|||
{{#if_eq type "movie"}}
|
||||
{{#if_eq available true}}
|
||||
<button style="text-align: right" class="btn btn-success-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Available</button>
|
||||
{{#if url}}
|
||||
<br />
|
||||
<br />
|
||||
<a style="text-align: right" class="btn btn-sm btn-primary-outline" href="{{url}}" target="_blank"><i class="fa fa-eye"></i> @UI.Search_ViewInPlex</a>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if_eq requested true}}
|
||||
<button style="text-align: right" class="btn btn-primary-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Requested</button>
|
||||
|
@ -402,7 +406,7 @@
|
|||
<button style="text-align: right" class="btn btn-success-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Available</button><br />
|
||||
{{else}}
|
||||
{{#if_eq enableTvRequestsForOnlySeries true}}
|
||||
<button id="{{id}}" style="text-align: right" class="btn {{#if available}}btn-success-outline{{else}}btn-primary-outline{{/if}} btn-primary-outline dropdownTv" season-select="0" type="button"><i class="fa fa-plus"></i> @UI.Search_Request</button>
|
||||
<button id="{{id}}" style="text-align: right" class="btn {{#if available}}btn-success-outline{{else}}btn-primary-outline dropdownTv{{/if}} btn-primary-outline" season-select="0" type="button" {{#if available}}disabled{{/if}}><i class="fa fa-plus"></i> {{#if available}}@UI.Search_Available{{else}}@UI.Search_Request{{/if}}</button>
|
||||
{{else}}
|
||||
<div class="dropdown">
|
||||
<button id="{{id}}" class="btn {{#if available}}btn-success-outline{{else}}btn-primary-outline{{/if}} dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
|
@ -423,9 +427,11 @@
|
|||
</div>
|
||||
{{/if_eq}}
|
||||
{{#if available}}
|
||||
{{#if url}}
|
||||
<br />
|
||||
<a style="text-align: right" class="btn btn-sm btn-primary-outline" href="{{url}}" target="_blank"><i class="fa fa-eye"></i> @UI.Search_ViewInPlex</a>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if_eq}}
|
||||
{{/if_eq}}
|
||||
|
||||
|
@ -459,7 +465,7 @@
|
|||
|
||||
|
||||
<!-- Music Results template -->
|
||||
<script id="music-template" type="text/x-handlebars-template">
|
||||
<script id="music-template" type="text/x-handlebars-template">
|
||||
<div class="row">
|
||||
<div id="{{id}}imageDiv" class="col-sm-2">
|
||||
{{#if coverArtUrl}}
|
||||
|
@ -485,7 +491,9 @@
|
|||
<input name="{{type}}Id" type="text" value="{{id}}" hidden="hidden" />
|
||||
{{#if_eq available true}}
|
||||
<button style="text-align: right" class="btn btn-success-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Available</button><br />
|
||||
{{#if url}}
|
||||
<a style="text-align: right" class="btn btn-sm btn-primary-outline" href="{{url}}" target="_blank"><i class="fa fa-eye"></i> @UI.Search_ViewInPlex</a>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if_eq requested true}}
|
||||
<button style="text-align: right" class="btn btn-success-outline disabled" disabled><i class="fa fa-check"></i> @UI.Search_Requested</button>
|
||||
|
@ -602,3 +610,4 @@
|
|||
</script>
|
||||
|
||||
@Html.LoadSearchAssets()
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
</li>
|
||||
|
||||
}
|
||||
else if (Html.IsPlexUser()) // Logged in but not admin
|
||||
else if (Html.IsExternalUser()) // Logged in but not admin
|
||||
{
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-user"></i> @UI.Layout_Welcome @Context.CurrentUser.UserName <span class="caret"></span></a>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
@Html.GetSidebarUrl(Context, "/admin/authentication", "Authentication", "glyphicon glyphicon-lock")
|
||||
@Html.GetSidebarUrl(Context, "/admin/usermanagementsettings", "User Management Settings", "glyphicon glyphicon-user")
|
||||
@Html.GetSidebarUrl(Context, "/admin/plex", "Plex", "glyphicon glyphicon-play-circle")
|
||||
@Html.GetSidebarUrl(Context, "/admin/emby", "Emby", "glyphicon glyphicon-play-circle")
|
||||
@Html.GetSidebarUrl(Context, "/admin/couchpotato", "CouchPotato", "glyphicon glyphicon-film")
|
||||
@Html.GetSidebarUrl(Context, "/admin/watcher", "Watcher (beta)", "glyphicon glyphicon-film")
|
||||
@Html.GetSidebarUrl(Context, "/admin/radarr", "Radarr (beta)", "glyphicon glyphicon-film")
|
||||
|
@ -16,6 +17,7 @@
|
|||
@Html.GetSidebarUrl(Context, "/admin/sickrage", "SickRage", "fa fa-tv")
|
||||
@Html.GetSidebarUrl(Context, "/admin/headphones", "Headphones (beta)", "glyphicon glyphicon-headphones")
|
||||
@Html.GetSidebarUrl(Context, "/admin/newsletter", "Newsletter Settings", "fa fa-newspaper-o")
|
||||
@Html.GetSidebarUrl(Context, "/admin/massemail", "Mass Email", "fa fa-reply-all")
|
||||
<div id="sidebar" >
|
||||
|
||||
<a href="#notifications" class="list-group-item" data-parent="#sidebar">
|
||||
|
|
|
@ -50,9 +50,9 @@
|
|||
{
|
||||
<label class="control-label"><a href="@Model.Status.UpdateUri" target="_blank"><i class="fa fa-check"></i></a></label>
|
||||
<br />
|
||||
<input id="args" class="form-control form-control-custom " placeholder="optional launch arguments e.g. /etc/mono /opt/PlexRequests.exe">
|
||||
@*<input id="args" class="form-control form-control-custom " placeholder="optional launch arguments e.g. /etc/mono /opt/PlexRequests.exe">*@
|
||||
<br/>
|
||||
<button id="autoUpdate" class="btn btn-success-outline">Automatic Update (beta) <i class="fa fa-download"></i></button>
|
||||
@*<button id="autoUpdate" class="btn btn-success-outline">Automatic Update (beta) <i class="fa fa-download"></i></button>*@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<h1>@UI.UserLogin_Title</h1>
|
||||
<div>
|
||||
<p>
|
||||
@UI.UserLogin_Paragraph <span title="@UI.UserLogin_Paragraph_SpanHover"><i class="fa fa-question-circle"></i></span>
|
||||
@string.Format(UI.UserLogin_Paragraph, Html.GetMediaServerName().ToHtmlString()).ToString()
|
||||
</p>
|
||||
</div>
|
||||
<div id="contentBody">
|
||||
|
@ -14,10 +14,10 @@
|
|||
<input id="dateTimeOffset" name="DateTimeOffset" hidden="hidden" />
|
||||
<div>
|
||||
<div>
|
||||
<label>@UI.UserLogin_Username</label>
|
||||
<label>Username</label>
|
||||
</div>
|
||||
<div>
|
||||
<input id="username" class="form-control form-control-custom" type="text" name="Username" placeholder="@UI.UserLogin_Username_Placeholder" />
|
||||
<input id="username" class="form-control form-control-custom" type="text" name="Username" placeholder="Username" />
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<span>Here you can manage the default permissions and features that your users get</span>
|
||||
<small>
|
||||
Note: This will not update your users that are currently there, this is to set the default settings to any users added outside of Ombi e.g. You share your Plex Server with a new user, they will be added into Ombi
|
||||
Note: This will not update your users that are currently there, this is to set the default settings to any users added outside of Ombi e.g. You share your Server with a new user, they will be added into Ombi
|
||||
automatically and will take the permissions and features you have selected below.
|
||||
</small>
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
<img class="landing-header" src="@formAction/Content/images/logo.png" width="300" />
|
||||
<div id="area" class="landing-block shadow">
|
||||
|
||||
|
||||
<div class="media">
|
||||
<div id="contentBody" class="media-body">
|
||||
<h4 class="media-heading landing-title" id="statusTitle">Welcome to Ombi</h4>
|
||||
|
@ -31,6 +30,60 @@
|
|||
|
||||
<!--Templates-->
|
||||
|
||||
<script id="mediaApplicationChoice" type="text/html">
|
||||
<div>
|
||||
<h4 class="media-heading landing-title wizard-heading" id="statusTitle">Please choose your media server</h4>
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<a href="#" id="embyImg">
|
||||
<img class="wizard-img" src="@formAction/Content/images/emby-logo-dark.jpg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<a href="#" id="plexImg">
|
||||
<img class="wizard-img" src="@formAction/Content/images/plex-logo-reversed.png" />
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script id="embyApiKey" type="text/html">
|
||||
<form method="post" action="@formAction/wizard/embyAuth" id="embyAuthForm">
|
||||
<h4 class="media-heading landing-title">Emby Authentication</h4>
|
||||
<div class="form-group">
|
||||
<label for="Ip" class="control-label">Emby Hostname or IP Address</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " id="Ip" name="Ip" placeholder="192.168.1.1">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="portNumber" class="control-label">Port</label>
|
||||
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom " id="portNumber" name="Port" placeholder="8096">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="Ssl" name="Ssl"><label for="Ssl">SSL</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username" class="control-label">Api Key</label>
|
||||
<div>
|
||||
<input type="text" class="form-control form-control-custom" id="apiKey" name="ApiKey" placeholder="ApiKey">
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center; margin-top: 20px">
|
||||
<a href="#" id="embyApiKeySave" class="btn btn-primary-outline">Next <div id="spinner"></div></a>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
|
||||
<script id="plexAuthArea" type="text/html">
|
||||
<form method="post" action="@formAction/wizard/plexAuth" id="plexAuthForm">
|
||||
<h4 class="media-heading landing-title">Plex Authentication</h4>
|
||||
|
@ -103,7 +156,7 @@
|
|||
<input type="checkbox" id="SearchForMusic" name="SearchForMusic"><label id="SearchForMusicLabel" for="SearchForMusic">Allow searching for Music</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div style="text-align: center; margin-top: 20px">
|
||||
<a href="#" id="submitPlexRequest" class="btn btn-primary-outline">Next</a>
|
||||
|
@ -139,7 +192,7 @@
|
|||
<script id="adminArea" type="text/html">
|
||||
<form method="post" action="@formAction/wizard/createuser" id="adminForm">
|
||||
<h4 class="media-heading landing-title">Create the Admin account</h4>
|
||||
<small>This account will be used to configure your settings and also manage all of the requests. Note: this should not be the same as your Plex.Tv account (you can change this later in the User Management Settings)</small>
|
||||
<small>This account will be used to configure your settings and also manage all of the requests. Note: this should not be the same as your Plex/Emby account (you can change this later in the User Management Settings)</small>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<label for="adminUsername">Username</label><input type="text" class="form-control form-control-custom" id="adminUsername" name="Username" placeholder="Username">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue