mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 05:13:18 -07:00
Merge branch 'dev' of https://github.com/tidusjar/PlexRequests.Net.git
This commit is contained in:
commit
fadf401308
27 changed files with 551 additions and 7706 deletions
|
@ -41,5 +41,6 @@ namespace PlexRequests.Core
|
|||
RequestedModel Get(int id);
|
||||
IEnumerable<RequestedModel> GetAll();
|
||||
bool BatchUpdate(List<RequestedModel> model);
|
||||
bool BatchDelete(List<RequestedModel> model);
|
||||
}
|
||||
}
|
|
@ -107,5 +107,11 @@ namespace PlexRequests.Core
|
|||
var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ByteConverterHelper.ReturnBytes(m), ProviderId = m.ProviderId, Id = m.Id }).ToList();
|
||||
return Repo.UpdateAll(entities);
|
||||
}
|
||||
|
||||
public bool BatchDelete(List<RequestedModel> model)
|
||||
{
|
||||
var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ByteConverterHelper.ReturnBytes(m), ProviderId = m.ProviderId, Id = m.Id }).ToList();
|
||||
return Repo.DeleteAll(entities);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -53,6 +53,8 @@ namespace PlexRequests.Store.Repository
|
|||
/// <returns></returns>
|
||||
bool Delete(RequestBlobs entity);
|
||||
|
||||
bool DeleteAll(IEnumerable<RequestBlobs> entity);
|
||||
|
||||
/// <summary>
|
||||
/// Updates the specified entity.
|
||||
/// </summary>
|
||||
|
|
|
@ -122,5 +122,20 @@ namespace PlexRequests.Store.Repository
|
|||
}
|
||||
return result.All(x => true);
|
||||
}
|
||||
|
||||
public bool DeleteAll(IEnumerable<RequestBlobs> entity)
|
||||
{
|
||||
ResetCache();
|
||||
var result = new HashSet<bool>();
|
||||
using (var db = Db.DbConnection())
|
||||
{
|
||||
db.Open();
|
||||
foreach (var e in entity)
|
||||
{
|
||||
result.Add(db.Delete(e));
|
||||
}
|
||||
}
|
||||
return result.All(x => true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -1,295 +0,0 @@
|
|||
@media (min-width: 768px) {
|
||||
.row {
|
||||
position: relative; }
|
||||
.bottom-align-text {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0; } }
|
||||
|
||||
@media (max-width: 48em) {
|
||||
.home {
|
||||
padding-top: 1rem; } }
|
||||
|
||||
@media (min-width: 48em) {
|
||||
.home {
|
||||
padding-top: 4rem; } }
|
||||
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #fff; }
|
||||
|
||||
hr {
|
||||
border-color: #777; }
|
||||
|
||||
body.update-available {
|
||||
margin-top: 80px; }
|
||||
|
||||
.btn {
|
||||
border-radius: 0.25rem !important; }
|
||||
|
||||
.multiSelect {
|
||||
background-color: #4e5d6c; }
|
||||
|
||||
.form-control-custom {
|
||||
background-color: #333333 !important;
|
||||
color: white !important;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 0 !important; }
|
||||
|
||||
h1 {
|
||||
font-size: 3.5rem !important;
|
||||
font-weight: 600 !important; }
|
||||
|
||||
.request-title {
|
||||
margin-top: 0 !important;
|
||||
font-size: 1.9rem !important; }
|
||||
|
||||
p {
|
||||
font-size: 1.1rem !important; }
|
||||
|
||||
label {
|
||||
display: inline-block !important;
|
||||
margin-bottom: 0.5rem !important;
|
||||
font-size: 16px !important; }
|
||||
|
||||
.nav-tabs > li {
|
||||
font-size: 13px;
|
||||
line-height: 21px; }
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background: #df691a; }
|
||||
|
||||
.nav-tabs > li > a > .fa {
|
||||
padding: 3px 5px 3px 3px; }
|
||||
|
||||
.nav-tabs > li.nav-tab-right {
|
||||
float: right; }
|
||||
|
||||
.nav-tabs > li.nav-tab-right a {
|
||||
margin-right: 0;
|
||||
margin-left: 2px; }
|
||||
|
||||
.nav-tabs > li.nav-tab-icononly .fa {
|
||||
padding: 3px; }
|
||||
|
||||
.navbar .nav a .fa,
|
||||
.dropdown-menu a .fa {
|
||||
font-size: 130%;
|
||||
top: 1px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin-right: 5px; }
|
||||
|
||||
.dropdown-menu a .fa {
|
||||
top: 2px; }
|
||||
|
||||
.btn-danger-outline {
|
||||
color: #d9534f !important;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #d9534f !important; }
|
||||
|
||||
.btn-danger-outline:focus,
|
||||
.btn-danger-outline.focus,
|
||||
.btn-danger-outline:active,
|
||||
.btn-danger-outline.active,
|
||||
.btn-danger-outline:hover,
|
||||
.open > .btn-danger-outline.dropdown-toggle {
|
||||
color: #fff !important;
|
||||
background-color: #d9534f !important;
|
||||
border-color: #d9534f !important; }
|
||||
|
||||
.btn-primary-outline {
|
||||
color: #ff761b !important;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #ff761b !important; }
|
||||
|
||||
.btn-primary-outline:focus,
|
||||
.btn-primary-outline.focus,
|
||||
.btn-primary-outline:active,
|
||||
.btn-primary-outline.active,
|
||||
.btn-primary-outline:hover,
|
||||
.open > .btn-primary-outline.dropdown-toggle {
|
||||
color: #fff !important;
|
||||
background-color: #df691a !important;
|
||||
border-color: #df691a !important; }
|
||||
|
||||
.btn-info-outline {
|
||||
color: #5bc0de !important;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #5bc0de !important; }
|
||||
|
||||
.btn-info-outline:focus,
|
||||
.btn-info-outline.focus,
|
||||
.btn-info-outline:active,
|
||||
.btn-info-outline.active,
|
||||
.btn-info-outline:hover,
|
||||
.open > .btn-info-outline.dropdown-toggle {
|
||||
color: #fff !important;
|
||||
background-color: #5bc0de !important;
|
||||
border-color: #5bc0de !important; }
|
||||
|
||||
.btn-warning-outline {
|
||||
color: #f0ad4e !important;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #f0ad4e !important; }
|
||||
|
||||
.btn-warning-outline:focus,
|
||||
.btn-warning-outline.focus,
|
||||
.btn-warning-outline:active,
|
||||
.btn-warning-outline.active,
|
||||
.btn-warning-outline:hover,
|
||||
.open > .btn-warning-outline.dropdown-toggle {
|
||||
color: #fff !important;
|
||||
background-color: #f0ad4e !important;
|
||||
border-color: #f0ad4e !important; }
|
||||
|
||||
.btn-success-outline {
|
||||
color: #5cb85c !important;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #5cb85c !important; }
|
||||
|
||||
.btn-success-outline:focus,
|
||||
.btn-success-outline.focus,
|
||||
.btn-success-outline:active,
|
||||
.btn-success-outline.active,
|
||||
.btn-success-outline:hover,
|
||||
.open > .btn-success-outline.dropdown-toggle {
|
||||
color: #fff !important;
|
||||
background-color: #5cb85c !important;
|
||||
border-color: #5cb85c !important; }
|
||||
|
||||
#movieList .mix {
|
||||
display: none; }
|
||||
|
||||
#tvList .mix {
|
||||
display: none; }
|
||||
|
||||
.scroll-top-wrapper {
|
||||
position: fixed;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
z-index: 99999999;
|
||||
background-color: #333333;
|
||||
color: #eeeeee;
|
||||
width: 50px;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
right: 30px;
|
||||
bottom: 30px;
|
||||
padding-top: 2px;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
-webkit-transition: all 0.5s ease-in-out;
|
||||
-moz-transition: all 0.5s ease-in-out;
|
||||
-ms-transition: all 0.5s ease-in-out;
|
||||
-o-transition: all 0.5s ease-in-out;
|
||||
transition: all 0.5s ease-in-out; }
|
||||
|
||||
.scroll-top-wrapper:hover {
|
||||
background-color: #df691a; }
|
||||
|
||||
.scroll-top-wrapper.show {
|
||||
visibility: visible;
|
||||
cursor: pointer;
|
||||
opacity: 1.0; }
|
||||
|
||||
.scroll-top-wrapper i.fa {
|
||||
line-height: inherit; }
|
||||
|
||||
.no-search-results {
|
||||
text-align: center; }
|
||||
|
||||
.no-search-results .no-search-results-icon {
|
||||
font-size: 10em;
|
||||
color: #4e5d6c; }
|
||||
|
||||
.no-search-results .no-search-results-text {
|
||||
margin: 20px 0;
|
||||
color: #ccc; }
|
||||
|
||||
.form-control-search {
|
||||
padding: 13px 105px 13px 16px;
|
||||
height: 100%; }
|
||||
|
||||
.form-control-withbuttons {
|
||||
padding-right: 105px; }
|
||||
|
||||
.input-group-addon .btn-group {
|
||||
position: absolute;
|
||||
right: 45px;
|
||||
z-index: 3;
|
||||
top: 10px;
|
||||
box-shadow: 0 0 0; }
|
||||
|
||||
.input-group-addon .btn-group .btn {
|
||||
border: 1px solid rgba(255, 255, 255, 0.7) !important;
|
||||
padding: 3px 12px;
|
||||
color: rgba(255, 255, 255, 0.7) !important; }
|
||||
|
||||
.btn-split .btn {
|
||||
border-radius: 0 !important; }
|
||||
|
||||
.btn-split .btn:not(.dropdown-toggle) {
|
||||
border-radius: 0.25rem 0 0 0.25rem !important; }
|
||||
|
||||
.btn-split .btn.dropdown-toggle {
|
||||
border-radius: 0 0.25rem 0.25rem 0 !important;
|
||||
padding: 12px 8px; }
|
||||
|
||||
#updateAvailable {
|
||||
background-color: #df691a;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
padding: 3px 0; }
|
||||
|
||||
.checkbox label {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 25px;
|
||||
margin-right: 15px;
|
||||
font-size: 13px;
|
||||
margin-bottom: 10px; }
|
||||
|
||||
.checkbox label:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin-right: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 1px;
|
||||
border: 2px solid #eee;
|
||||
border-radius: 3px; }
|
||||
|
||||
.checkbox input[type=checkbox] {
|
||||
display: none; }
|
||||
|
||||
.checkbox input[type=checkbox]:checked + label:before {
|
||||
content: "\2713";
|
||||
font-size: 13px;
|
||||
color: #fafafa;
|
||||
text-align: center;
|
||||
line-height: 13px; }
|
||||
|
||||
.input-group-sm {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px; }
|
||||
|
||||
.tab-pane .form-horizontal .form-group {
|
||||
margin-right: 15px;
|
||||
margin-left: 15px; }
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -1,365 +0,0 @@
|
|||
$form-color: #4e5d6c;
|
||||
$form-color-lighter: #637689;
|
||||
$primary-colour: #df691a;
|
||||
$primary-colour-outline: #ff761b;
|
||||
$info-colour: #5bc0de;
|
||||
$warning-colour: #f0ad4e;
|
||||
$danger-colour: #d9534f;
|
||||
$success-colour: #5cb85c;
|
||||
$bg-colour: #333333;
|
||||
$i:
|
||||
!important;
|
||||
|
||||
@media (min-width: 768px ) {
|
||||
.row {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.bottom-align-text {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 48em) {
|
||||
.home {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 48em) {
|
||||
.home {
|
||||
padding-top: 4rem;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #777;
|
||||
}
|
||||
|
||||
body.update-available {
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: .25rem $i;
|
||||
}
|
||||
|
||||
.multiSelect {
|
||||
background-color: $form-color;
|
||||
}
|
||||
|
||||
.form-control-custom {
|
||||
background-color: $bg-colour $i;
|
||||
color: white $i;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 0 !important;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
font-size: 3.5rem $i;
|
||||
font-weight: 600 $i;
|
||||
}
|
||||
|
||||
.request-title {
|
||||
margin-top: 0 $i;
|
||||
font-size: 1.9rem $i;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.1rem $i;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block $i;
|
||||
margin-bottom: .5rem $i;
|
||||
font-size: 16px $i;
|
||||
}
|
||||
|
||||
.nav-tabs > li {
|
||||
font-size: 13px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background: $primary-colour;
|
||||
}
|
||||
|
||||
.nav-tabs > li > a > .fa {
|
||||
padding: 3px 5px 3px 3px;
|
||||
}
|
||||
|
||||
.nav-tabs > li.nav-tab-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.nav-tabs > li.nav-tab-right a {
|
||||
margin-right: 0;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.nav-tabs > li.nav-tab-icononly .fa {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.navbar .nav a .fa,
|
||||
.dropdown-menu a .fa {
|
||||
font-size: 130%;
|
||||
top: 1px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.dropdown-menu a .fa {
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
.btn-danger-outline {
|
||||
color: $danger-colour $i;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: $danger-colour $i;
|
||||
}
|
||||
|
||||
.btn-danger-outline:focus,
|
||||
.btn-danger-outline.focus,
|
||||
.btn-danger-outline:active,
|
||||
.btn-danger-outline.active,
|
||||
.btn-danger-outline:hover,
|
||||
.open > .btn-danger-outline.dropdown-toggle {
|
||||
color: #fff $i;
|
||||
background-color: $danger-colour $i;
|
||||
border-color: $danger-colour $i;
|
||||
}
|
||||
|
||||
|
||||
.btn-primary-outline {
|
||||
color: $primary-colour-outline $i;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: $primary-colour-outline $i;
|
||||
}
|
||||
|
||||
.btn-primary-outline:focus,
|
||||
.btn-primary-outline.focus,
|
||||
.btn-primary-outline:active,
|
||||
.btn-primary-outline.active,
|
||||
.btn-primary-outline:hover,
|
||||
.open > .btn-primary-outline.dropdown-toggle {
|
||||
color: #fff $i;
|
||||
background-color: $primary-colour $i;
|
||||
border-color: $primary-colour $i;
|
||||
}
|
||||
|
||||
.btn-info-outline {
|
||||
color: $info-colour $i;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: $info-colour $i;
|
||||
}
|
||||
|
||||
.btn-info-outline:focus,
|
||||
.btn-info-outline.focus,
|
||||
.btn-info-outline:active,
|
||||
.btn-info-outline.active,
|
||||
.btn-info-outline:hover,
|
||||
.open > .btn-info-outline.dropdown-toggle {
|
||||
color: #fff $i;
|
||||
background-color: $info-colour $i;
|
||||
border-color: $info-colour $i;
|
||||
}
|
||||
|
||||
.btn-warning-outline {
|
||||
color: $warning-colour $i;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: $warning-colour $i;
|
||||
}
|
||||
|
||||
.btn-warning-outline:focus,
|
||||
.btn-warning-outline.focus,
|
||||
.btn-warning-outline:active,
|
||||
.btn-warning-outline.active,
|
||||
.btn-warning-outline:hover,
|
||||
.open > .btn-warning-outline.dropdown-toggle {
|
||||
color: #fff $i;
|
||||
background-color: $warning-colour $i;
|
||||
border-color: $warning-colour $i;
|
||||
}
|
||||
|
||||
.btn-success-outline {
|
||||
color: $success-colour $i;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: $success-colour $i;
|
||||
}
|
||||
|
||||
.btn-success-outline:focus,
|
||||
.btn-success-outline.focus,
|
||||
.btn-success-outline:active,
|
||||
.btn-success-outline.active,
|
||||
.btn-success-outline:hover,
|
||||
.open > .btn-success-outline.dropdown-toggle {
|
||||
color: #fff $i;
|
||||
background-color: $success-colour $i;
|
||||
border-color: $success-colour $i;
|
||||
}
|
||||
|
||||
#movieList .mix {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#tvList .mix {
|
||||
display: none;
|
||||
}
|
||||
|
||||
$border-radius: 10px;
|
||||
|
||||
.scroll-top-wrapper {
|
||||
position: fixed;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
z-index: 99999999;
|
||||
background-color: $bg-colour;
|
||||
color: #eeeeee;
|
||||
width: 50px;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
right: 30px;
|
||||
bottom: 30px;
|
||||
padding-top: 2px;
|
||||
border-top-left-radius: $border-radius;
|
||||
border-top-right-radius: $border-radius;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
-webkit-transition: all 0.5s ease-in-out;
|
||||
-moz-transition: all 0.5s ease-in-out;
|
||||
-ms-transition: all 0.5s ease-in-out;
|
||||
-o-transition: all 0.5s ease-in-out;
|
||||
transition: all 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
.scroll-top-wrapper:hover {
|
||||
background-color: $primary-colour;
|
||||
}
|
||||
|
||||
.scroll-top-wrapper.show {
|
||||
visibility: visible;
|
||||
cursor: pointer;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.scroll-top-wrapper i.fa {
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
|
||||
.no-search-results {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.no-search-results .no-search-results-icon {
|
||||
font-size: 10em;
|
||||
color: $form-color;
|
||||
}
|
||||
|
||||
.no-search-results .no-search-results-text {
|
||||
margin: 20px 0;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.form-control-search {
|
||||
padding: 13px 105px 13px 16px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.form-control-withbuttons {
|
||||
padding-right: 105px;
|
||||
}
|
||||
|
||||
.input-group-addon .btn-group {
|
||||
position: absolute;
|
||||
right: 45px;
|
||||
z-index: 3;
|
||||
top: 10px;
|
||||
box-shadow: 0 0 0;
|
||||
}
|
||||
|
||||
.input-group-addon .btn-group .btn {
|
||||
border: 1px solid rgba(255,255,255,.7) !important;
|
||||
padding: 3px 12px;
|
||||
color: rgba(255,255,255,.7) !important;
|
||||
}
|
||||
|
||||
.btn-split .btn {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
.btn-split .btn:not(.dropdown-toggle) {
|
||||
border-radius: .25rem 0 0 .25rem $i;
|
||||
}
|
||||
|
||||
.btn-split .btn.dropdown-toggle {
|
||||
border-radius: 0 .25rem .25rem 0 $i;
|
||||
padding: 12px 8px;
|
||||
}
|
||||
|
||||
#updateAvailable {
|
||||
background-color: #df691a;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
.checkbox label {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 25px;
|
||||
margin-right: 15px;
|
||||
font-size: 13px;
|
||||
margin-bottom: 10px; }
|
||||
|
||||
.checkbox label:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin-right: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 1px;
|
||||
border: 2px solid #eee;
|
||||
border-radius: 3px; }
|
||||
|
||||
.checkbox input[type=checkbox] {
|
||||
display: none; }
|
||||
|
||||
.checkbox input[type=checkbox]:checked + label:before {
|
||||
content: "\2713";
|
||||
font-size: 13px;
|
||||
color: #fafafa;
|
||||
text-align: center;
|
||||
line-height: 13px; }
|
||||
|
||||
.input-group-sm{
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.tab-pane .form-horizontal .form-group {
|
||||
margin-right: 15px;
|
||||
margin-left: 15px; }
|
1
PlexRequests.UI/Content/Themes/original.css
Normal file
1
PlexRequests.UI/Content/Themes/original.css
Normal file
|
@ -0,0 +1 @@
|
|||
|
1
PlexRequests.UI/Content/Themes/original.min.css
vendored
Normal file
1
PlexRequests.UI/Content/Themes/original.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
|
2
PlexRequests.UI/Content/Themes/original.scss
Normal file
2
PlexRequests.UI/Content/Themes/original.scss
Normal file
|
@ -0,0 +1,2 @@
|
|||
body {
|
||||
}
|
146
PlexRequests.UI/Content/Themes/plex.css
Normal file
146
PlexRequests.UI/Content/Themes/plex.css
Normal file
|
@ -0,0 +1,146 @@
|
|||
.form-control-custom {
|
||||
background-color: #333333 !important; }
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background: #df691a; }
|
||||
|
||||
scroll-top-wrapper {
|
||||
background-color: #333333; }
|
||||
|
||||
.scroll-top-wrapper:hover {
|
||||
background-color: #df691a; }
|
||||
|
||||
body {
|
||||
font-family: Open Sans Regular,Helvetica Neue,Helvetica,Arial,sans-serif;
|
||||
color: #eee;
|
||||
background-color: #1f1f1f; }
|
||||
|
||||
.table-striped > tbody > tr:nth-of-type(odd) {
|
||||
background-color: #333; }
|
||||
|
||||
.table-hover > tbody > tr:hover {
|
||||
background-color: #282828; }
|
||||
|
||||
fieldset {
|
||||
padding: 15px; }
|
||||
|
||||
legend {
|
||||
border-bottom: 1px solid #333333; }
|
||||
|
||||
.form-control {
|
||||
color: #fefefe;
|
||||
background-color: #333; }
|
||||
|
||||
.radio input[type="radio"],
|
||||
.radio-inline input[type="radio"],
|
||||
.checkbox input[type="checkbox"],
|
||||
.checkbox-inline input[type="checkbox"] {
|
||||
margin-left: -0px; }
|
||||
|
||||
.form-horizontal .radio,
|
||||
.form-horizontal .checkbox,
|
||||
.form-horizontal .radio-inline,
|
||||
.form-horizontal .checkbox-inline {
|
||||
margin-top: -15px; }
|
||||
|
||||
.dropdown-menu {
|
||||
background-color: #282828; }
|
||||
|
||||
.dropdown-menu .divider {
|
||||
background-color: #333333; }
|
||||
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-color: #333; }
|
||||
|
||||
.input-group-addon {
|
||||
background-color: #333333; }
|
||||
|
||||
.nav > li > a:hover,
|
||||
.nav > li > a:focus {
|
||||
background-color: #df691a; }
|
||||
|
||||
.nav-tabs > li > a:hover {
|
||||
border-color: #df691a #df691a transparent; }
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background-color: #df691a;
|
||||
border: 1px solid #df691a; }
|
||||
|
||||
.nav-tabs.nav-justified > .active > a,
|
||||
.nav-tabs.nav-justified > .active > a:hover,
|
||||
.nav-tabs.nav-justified > .active > a:focus {
|
||||
border: 1px solid #df691a; }
|
||||
|
||||
/*.navbar {
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
margin-bottom: 21px;
|
||||
z-index: 1000;
|
||||
padding: 0px 3px;
|
||||
font-size: 24px;
|
||||
background-color: #000;
|
||||
box-shadow: 0px 0px 0px 3px rgba(0, 0, 0, 0.2);
|
||||
}*/
|
||||
.navbar-default {
|
||||
background-color: #0a0a0a; }
|
||||
|
||||
.navbar-default .navbar-brand {
|
||||
color: #DF691A; }
|
||||
|
||||
.navbar-default .navbar-nav > li > a:hover,
|
||||
.navbar-default .navbar-nav > li > a:focus {
|
||||
color: #F0ad4e;
|
||||
background-color: #282828; }
|
||||
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
background-color: #282828; }
|
||||
|
||||
.navbar-default .navbar-nav > .open > a,
|
||||
.navbar-default .navbar-nav > .open > a:hover,
|
||||
.navbar-default .navbar-nav > .open > a:focus {
|
||||
background-color: #df691a;
|
||||
color: #fff; }
|
||||
|
||||
.pagination > li > a,
|
||||
.pagination > li > span {
|
||||
background-color: #282828; }
|
||||
|
||||
.pagination > li > a:hover,
|
||||
.pagination > li > span:hover,
|
||||
.pagination > li > a:focus,
|
||||
.pagination > li > span:focus {
|
||||
background-color: #333; }
|
||||
|
||||
.pagination > .disabled > span,
|
||||
.pagination > .disabled > span:hover,
|
||||
.pagination > .disabled > span:focus,
|
||||
.pagination > .disabled > a,
|
||||
.pagination > .disabled > a:hover,
|
||||
.pagination > .disabled > a:focus {
|
||||
color: #fefefe;
|
||||
background-color: #333333; }
|
||||
|
||||
.list-group-item {
|
||||
background-color: #282828; }
|
||||
|
||||
a.list-group-item:hover,
|
||||
button.list-group-item:hover,
|
||||
a.list-group-item:focus,
|
||||
button.list-group-item:focus {
|
||||
background-color: #333333; }
|
||||
|
||||
.input-addon,
|
||||
.input-group-addon {
|
||||
color: #df691a; }
|
||||
|
||||
.modal-header,
|
||||
.modal-footer {
|
||||
background-color: #282828; }
|
||||
|
1
PlexRequests.UI/Content/Themes/plex.min.css
vendored
Normal file
1
PlexRequests.UI/Content/Themes/plex.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.form-control-custom{background-color:#333 !important;}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background:#df691a;}scroll-top-wrapper{background-color:#333;}.scroll-top-wrapper:hover{background-color:#df691a;}body{font-family:Open Sans Regular,Helvetica Neue,Helvetica,Arial,sans-serif;color:#eee;background-color:#1f1f1f;}.table-striped>tbody>tr:nth-of-type(odd){background-color:#333;}.table-hover>tbody>tr:hover{background-color:#282828;}fieldset{padding:15px;}legend{border-bottom:1px solid #333;}.form-control{color:#fefefe;background-color:#333;}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{margin-left:-0;}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:-15px;}.dropdown-menu{background-color:#282828;}.dropdown-menu .divider{background-color:#333;}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#333;}.input-group-addon{background-color:#333;}.nav>li>a:hover,.nav>li>a:focus{background-color:#df691a;}.nav-tabs>li>a:hover{border-color:#df691a #df691a transparent;}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background-color:#df691a;border:1px solid #df691a;}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #df691a;}.navbar-default{background-color:#0a0a0a;}.navbar-default .navbar-brand{color:#df691a;}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#f0ad4e;background-color:#282828;}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{background-color:#282828;}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#df691a;color:#fff;}.pagination>li>a,.pagination>li>span{background-color:#282828;}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#333;}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#fefefe;background-color:#333;}.list-group-item{background-color:#282828;}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{background-color:#333;}.input-addon,.input-group-addon{color:#df691a;}.modal-header,.modal-footer{background-color:#282828;}
|
183
PlexRequests.UI/Content/Themes/plex.scss
Normal file
183
PlexRequests.UI/Content/Themes/plex.scss
Normal file
|
@ -0,0 +1,183 @@
|
|||
$primary-colour: #df691a;
|
||||
$primary-colour-outline: #ff761b;
|
||||
$bg-colour: #333333;
|
||||
$i: !important;
|
||||
|
||||
.form-control-custom {
|
||||
background-color: $bg-colour $i;
|
||||
}
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background: $primary-colour;
|
||||
}
|
||||
|
||||
scroll-top-wrapper {
|
||||
background-color: $bg-colour;
|
||||
}
|
||||
|
||||
.scroll-top-wrapper:hover {
|
||||
background-color: $primary-colour;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Open Sans Regular,Helvetica Neue,Helvetica,Arial,sans-serif;
|
||||
color: #eee;
|
||||
background-color: #1f1f1f;
|
||||
}
|
||||
|
||||
.table-striped > tbody > tr:nth-of-type(odd) {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.table-hover > tbody > tr:hover {
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
legend {
|
||||
border-bottom: 1px solid #333333;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
color: #fefefe;
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.radio input[type="radio"],
|
||||
.radio-inline input[type="radio"],
|
||||
.checkbox input[type="checkbox"],
|
||||
.checkbox-inline input[type="checkbox"] {
|
||||
margin-left: -0px;
|
||||
}
|
||||
|
||||
.form-horizontal .radio,
|
||||
.form-horizontal .checkbox,
|
||||
.form-horizontal .radio-inline,
|
||||
.form-horizontal .checkbox-inline {
|
||||
margin-top: -15px;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
.dropdown-menu .divider {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.nav > li > a:hover,
|
||||
.nav > li > a:focus {
|
||||
background-color: #df691a;
|
||||
}
|
||||
|
||||
.nav-tabs > li > a:hover {
|
||||
border-color: #df691a #df691a transparent;
|
||||
}
|
||||
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
background-color: #df691a;
|
||||
border: 1px solid #df691a;
|
||||
}
|
||||
|
||||
.nav-tabs.nav-justified > .active > a,
|
||||
.nav-tabs.nav-justified > .active > a:hover,
|
||||
.nav-tabs.nav-justified > .active > a:focus {
|
||||
border: 1px solid #df691a;
|
||||
}
|
||||
|
||||
/*.navbar {
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
margin-bottom: 21px;
|
||||
z-index: 1000;
|
||||
padding: 0px 3px;
|
||||
font-size: 24px;
|
||||
background-color: #000;
|
||||
box-shadow: 0px 0px 0px 3px rgba(0, 0, 0, 0.2);
|
||||
}*/
|
||||
|
||||
.navbar-default {
|
||||
background-color: #0a0a0a;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-brand {
|
||||
color: #DF691A;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > li > a:hover,
|
||||
.navbar-default .navbar-nav > li > a:focus {
|
||||
color: #F0ad4e;
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > .open > a,
|
||||
.navbar-default .navbar-nav > .open > a:hover,
|
||||
.navbar-default .navbar-nav > .open > a:focus {
|
||||
background-color: #df691a;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pagination > li > a,
|
||||
.pagination > li > span {
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
.pagination > li > a:hover,
|
||||
.pagination > li > span:hover,
|
||||
.pagination > li > a:focus,
|
||||
.pagination > li > span:focus {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.pagination > .disabled > span,
|
||||
.pagination > .disabled > span:hover,
|
||||
.pagination > .disabled > span:focus,
|
||||
.pagination > .disabled > a,
|
||||
.pagination > .disabled > a:hover,
|
||||
.pagination > .disabled > a:focus {
|
||||
color: #fefefe;
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
background-color: #282828;
|
||||
}
|
||||
|
||||
a.list-group-item:hover,
|
||||
button.list-group-item:hover,
|
||||
a.list-group-item:focus,
|
||||
button.list-group-item:focus {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.input-addon,
|
||||
.input-group-addon {
|
||||
color: #df691a;
|
||||
}
|
||||
|
||||
.modal-header,
|
||||
.modal-footer {
|
||||
background-color: #282828;
|
||||
}
|
|
@ -20,11 +20,15 @@
|
|||
color: #fff; }
|
||||
|
||||
hr {
|
||||
border-color: #777; }
|
||||
border: 1px dashed #777; }
|
||||
|
||||
.btn {
|
||||
border-radius: 0.25rem !important; }
|
||||
|
||||
.btn-group-separated .btn,
|
||||
.btn-group-separated .btn + .btn {
|
||||
margin-left: 3px; }
|
||||
|
||||
.multiSelect {
|
||||
background-color: #4e5d6c; }
|
||||
|
1
PlexRequests.UI/Content/base.min.css
vendored
Normal file
1
PlexRequests.UI/Content/base.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -6,8 +6,7 @@ $info-colour: #5bc0de;
|
|||
$warning-colour: #f0ad4e;
|
||||
$danger-colour: #d9534f;
|
||||
$success-colour: #5cb85c;
|
||||
$i:
|
||||
!important;
|
||||
$i: !important;
|
||||
|
||||
@media (min-width: 768px ) {
|
||||
.row {
|
||||
|
@ -40,13 +39,18 @@ $i:
|
|||
}
|
||||
|
||||
hr {
|
||||
border-color: #777;
|
||||
border: 1px dashed #777;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: .25rem $i;
|
||||
}
|
||||
|
||||
.btn-group-separated .btn,
|
||||
.btn-group-separated .btn + .btn {
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.multiSelect {
|
||||
background-color: $form-color;
|
||||
}
|
|
@ -40,9 +40,9 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
|||
var $tvl = $('#tvList');
|
||||
var $musicL = $('#musicList');
|
||||
|
||||
$('.approve-category').hide();
|
||||
$('.approve-category,.delete-category').hide();
|
||||
if (target === "#TvShowTab") {
|
||||
$('#approveTVShows').show();
|
||||
$('#approveTVShows,#deleteTVShows').show();
|
||||
if ($ml.mixItUp('isLoaded')) {
|
||||
activeState = $ml.mixItUp('getState');
|
||||
$ml.mixItUp('destroy');
|
||||
|
@ -55,7 +55,7 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
|||
$tvl.mixItUp(mixItUpConfig(activeState)); // init or reinit
|
||||
}
|
||||
if (target === "#MoviesTab") {
|
||||
$('#approveMovies').show();
|
||||
$('#approveMovies,#deleteMovies').show();
|
||||
if ($tvl.mixItUp('isLoaded')) {
|
||||
activeState = $tvl.mixItUp('getState');
|
||||
$tvl.mixItUp('destroy');
|
||||
|
@ -69,7 +69,7 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
|||
}
|
||||
|
||||
if (target === "#MusicTab") {
|
||||
$('#approveMusic').show();
|
||||
$('#approveMusic,#deleteMusic').show();
|
||||
if ($tvl.mixItUp('isLoaded')) {
|
||||
activeState = $tvl.mixItUp('getState');
|
||||
$tvl.mixItUp('destroy');
|
||||
|
@ -124,7 +124,7 @@ $('#approveTVShows').click(function (e) {
|
|||
return;
|
||||
}
|
||||
|
||||
loadingButton(buttonId, "success");
|
||||
loadingButton(buttonId, "warning");
|
||||
var url = createBaseUrl(base, '/approval/approvealltvshows');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
|
@ -140,6 +140,72 @@ $('#approveTVShows').click(function (e) {
|
|||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
},
|
||||
complete: function (e) {
|
||||
finishLoading(buttonId, "warning", origHtml);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#deleteMovies').click(function (e) {
|
||||
e.preventDefault();
|
||||
if (!confirm("Are you sure you want to delete all TV show requests?")) return;
|
||||
|
||||
var buttonId = e.target.id;
|
||||
var origHtml = $(this).html();
|
||||
|
||||
if ($('#' + buttonId).text() === " Loading...") {
|
||||
return;
|
||||
}
|
||||
|
||||
loadingButton(buttonId, "warning");
|
||||
|
||||
var url = createBaseUrl(base, '/approval/deleteallmovies');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: url,
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (checkJsonResponse(response)) {
|
||||
generateNotify("Success! All Movie requests deleted!", "success");
|
||||
movieLoad();
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
},
|
||||
complete: function (e) {
|
||||
finishLoading(buttonId, "warning", origHtml);
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#deleteTVShows').click(function (e) {
|
||||
e.preventDefault();
|
||||
if (!confirm("Are you sure you want to delete all TV show requests?")) return;
|
||||
|
||||
var buttonId = e.target.id;
|
||||
var origHtml = $(this).html();
|
||||
|
||||
if ($('#' + buttonId).text() === " Loading...") {
|
||||
return;
|
||||
}
|
||||
|
||||
loadingButton(buttonId, "success");
|
||||
var url = createBaseUrl(base, '/approval/deletealltvshows');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: url,
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (checkJsonResponse(response)) {
|
||||
generateNotify("Success! All TV Show requests deleted!", "success");
|
||||
tvLoad();
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log(e);
|
||||
generateNotify("Something went wrong!", "danger");
|
||||
},
|
||||
complete: function (e) {
|
||||
finishLoading(buttonId, "success", origHtml);
|
||||
}
|
||||
|
|
|
@ -57,12 +57,15 @@ namespace PlexRequests.UI.Helpers
|
|||
{
|
||||
settings.ThemeName = Themes.PlexTheme;
|
||||
}
|
||||
if (settings.ThemeName == "PlexBootstrap.css") settings.ThemeName = Themes.PlexTheme;
|
||||
if (settings.ThemeName == "OriginalBootstrap.css") settings.ThemeName = Themes.OriginalTheme;
|
||||
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/Themes/{settings.ThemeName}\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/Themes/{settings.ThemeName.Replace(".css",string.Empty)}Custom.min.css\" type=\"text/css\" />");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/bootstrap.css\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/font-awesome.css\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/pace.min.css\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/awesome-bootstrap-checkbox.css\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/base.css\" type=\"text/css\"/>");
|
||||
sb.AppendLine($"<link rel=\"stylesheet\" href=\"{content}/Content/Themes/{settings.ThemeName}\" type=\"text/css\"/>");
|
||||
|
||||
sb.AppendLine($"<script src=\"{content}/Content/jquery-2.2.1.min.js\"></script>");
|
||||
sb.AppendLine($"<script src=\"{content}/Content/handlebars.min.js\"></script>");
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace PlexRequests.UI.Helpers
|
|||
{
|
||||
public static class Themes
|
||||
{
|
||||
public const string OriginalTheme = "OriginalBootstrap.css";
|
||||
public const string PlexTheme = "PlexBootstrap.css";
|
||||
public const string OriginalTheme = "original.css";
|
||||
public const string PlexTheme = "plex.css";
|
||||
}
|
||||
}
|
|
@ -66,6 +66,8 @@ namespace PlexRequests.UI.Modules
|
|||
Post["/approveall"] = x => ApproveAll();
|
||||
Post["/approveallmovies"] = x => ApproveAllMovies();
|
||||
Post["/approvealltvshows"] = x => ApproveAllTVShows();
|
||||
Post["/deleteallmovies"] = x => DeleteAllMovies();
|
||||
Post["/deletealltvshows"] = x => DeleteAllTVShows();
|
||||
}
|
||||
|
||||
private IRequestService Service { get; }
|
||||
|
@ -274,6 +276,27 @@ namespace PlexRequests.UI.Modules
|
|||
}
|
||||
}
|
||||
|
||||
private Response DeleteAllMovies()
|
||||
{
|
||||
|
||||
var requests = Service.GetAll().Where(x => x.Type == RequestType.Movie);
|
||||
var requestedModels = requests as RequestedModel[] ?? requests.ToArray();
|
||||
if (!requestedModels.Any())
|
||||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "There are no movie requests to delete. Please refresh." });
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return DeleteRequests(requestedModels);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Fatal(e);
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something bad happened, please check the logs!" });
|
||||
}
|
||||
}
|
||||
|
||||
private Response ApproveAllTVShows()
|
||||
{
|
||||
var requests = Service.GetAll().Where(x => x.CanApprove && x.Type == RequestType.TvShow);
|
||||
|
@ -294,6 +317,27 @@ namespace PlexRequests.UI.Modules
|
|||
}
|
||||
}
|
||||
|
||||
private Response DeleteAllTVShows()
|
||||
{
|
||||
|
||||
var requests = Service.GetAll().Where(x => x.Type == RequestType.TvShow);
|
||||
var requestedModels = requests as RequestedModel[] ?? requests.ToArray();
|
||||
if (!requestedModels.Any())
|
||||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "There are no tv show requests to delete. Please refresh." });
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return DeleteRequests(requestedModels);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Fatal(e);
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something bad happened, please check the logs!" });
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Approves all.
|
||||
/// </summary>
|
||||
|
@ -319,6 +363,22 @@ namespace PlexRequests.UI.Modules
|
|||
|
||||
}
|
||||
|
||||
private Response DeleteRequests(RequestedModel[] requestedModels)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = Service.BatchDelete(requestedModels.ToList());
|
||||
return Response.AsJson(result
|
||||
? new JsonResponseModel { Result = true }
|
||||
: new JsonResponseModel { Result = false, Message = "We could not delete all of the requests. Please try again or check the logs." });
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Fatal(e);
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something bad happened, please check the logs!" });
|
||||
}
|
||||
}
|
||||
|
||||
private Response UpdateRequests(RequestedModel[] requestedModels)
|
||||
{
|
||||
var cpSettings = CpService.GetSettings();
|
||||
|
@ -389,7 +449,6 @@ namespace PlexRequests.UI.Modules
|
|||
}
|
||||
try
|
||||
{
|
||||
|
||||
var result = Service.BatchUpdate(updatedRequests);
|
||||
return Response.AsJson(result
|
||||
? new JsonResponseModel { Result = true }
|
||||
|
|
|
@ -210,7 +210,15 @@
|
|||
<Content Include="Content\bootstrap-notify.min.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\OriginalBootstrap.css">
|
||||
<Content Include="Content\base.css">
|
||||
<DependentUpon>base.scss</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\base.min.css">
|
||||
<DependentUpon>base.css</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\bootstrap.css">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Compile Include="Models\JsonResponseModel.cs" />
|
||||
|
@ -286,22 +294,21 @@
|
|||
<Content Include="Content\swagger\underscore-min.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\OriginalBootstrapCustom.css">
|
||||
<DependentUpon>OriginalBootstrapCustom.scss</DependentUpon>
|
||||
<Content Include="Content\Themes\original.css">
|
||||
<DependentUpon>original.scss</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\OriginalBootstrapCustom.min.css">
|
||||
<DependentUpon>OriginalBootstrapCustom.css</DependentUpon>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Content Include="Content\Themes\original.min.css">
|
||||
<DependentUpon>original.css</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\PlexBootstrap.css">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Content Include="Content\Themes\plex.css">
|
||||
<DependentUpon>plex.scss</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\PlexBootstrapCustom.css">
|
||||
<DependentUpon>PlexBootstrapCustom.scss</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Content\Themes\PlexBootstrapCustom.min.css">
|
||||
<DependentUpon>PlexBootstrapCustom.css</DependentUpon>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Content Include="Content\Themes\plex.min.css">
|
||||
<DependentUpon>plex.css</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Views\ApiDocs\index.html">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
|
@ -387,8 +394,9 @@
|
|||
<None Include="Content\awesome-bootstrap-checkbox.scss">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="Content\Themes\PlexBootstrapCustom.scss" />
|
||||
<None Include="Content\Themes\OriginalBootstrapCustom.scss" />
|
||||
<None Include="Content\base.scss" />
|
||||
<None Include="Content\Themes\original.scss" />
|
||||
<None Include="Content\Themes\plex.scss" />
|
||||
<Content Include="Content\pace.min.js">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<p class="form-group">Current users that are allowed to authenticate: </p>
|
||||
|
||||
<div class="form-group">
|
||||
<select id="users" multiple="" class="form-control-custom "></select>
|
||||
<select id="users" multiple="" class="form-control-custom" style="height: 180px;"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
|
|
|
@ -35,19 +35,22 @@
|
|||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="pull-right">
|
||||
<div class="btn-group">
|
||||
<div class="btn-group btn-group-separated">
|
||||
@if (Context.CurrentUser.IsAuthenticated()) //TODO replace with IsAdmin
|
||||
{
|
||||
@if (Model.SearchForMovies)
|
||||
{
|
||||
<button id="deleteMovies" class="btn btn-warning-outline delete-category" type="submit"><i class="fa fa-trash"></i> Delete Movies</button>
|
||||
<button id="approveMovies" class="btn btn-success-outline approve-category" type="submit"><i class="fa fa-plus"></i> Approve Movies</button>
|
||||
}
|
||||
@if (Model.SearchForTvShows)
|
||||
{
|
||||
<button id="deleteTVShows" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete TV Shows</button>
|
||||
<button id="approveTVShows" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve TV Shows</button>
|
||||
}
|
||||
@if (Model.SearchForMusic)
|
||||
{
|
||||
<button id="deleteMusics" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete Music</button>
|
||||
<button id="approveMusic" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve Music</button>
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
[
|
||||
{
|
||||
"outputFile": "Content/custom.css",
|
||||
"inputFile": "Content/custom.scss"
|
||||
},
|
||||
{
|
||||
"outputFile": "Content/pace.css",
|
||||
"inputFile": "Content/pace.scss"
|
||||
|
@ -18,5 +14,17 @@
|
|||
{
|
||||
"outputFile": "Content/Themes/PlexBootstrapCustom.css",
|
||||
"inputFile": "Content/Themes/PlexBootstrapCustom.scss"
|
||||
},
|
||||
{
|
||||
"outputFile": "Content/base.css",
|
||||
"inputFile": "Content/base.scss"
|
||||
},
|
||||
{
|
||||
"outputFile": "Content/Themes/plex.css",
|
||||
"inputFile": "Content/Themes/plex.scss"
|
||||
},
|
||||
{
|
||||
"outputFile": "Content/Themes/original.css",
|
||||
"inputFile": "Content/Themes/original.scss"
|
||||
}
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue