From bff30d3bfe4c5654cbbe32ce25efcb580ade1bc4 Mon Sep 17 00:00:00 2001 From: Jamie Date: Mon, 3 Apr 2017 08:21:54 +0100 Subject: [PATCH 01/13] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b3e348137..e9dedadd0 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ ____ [![Percentage of issues still open](http://isitmaintained.com/badge/open/tidusjar/Ombi.svg)](http://isitmaintained.com/project/tidusjar/Ombi "Percentage of issues still open") [![Github All Releases](https://img.shields.io/github/downloads/tidusjar/Ombi/total.svg)](https://github.com/tidusjar/Ombi) +[![Patreon](https://www.ombi.io/img/patreondonate.svg)](https://patreon.com/tidusjar/Ombi) +[![Paypal](https://www.ombi.io/img/paypaldonate.svg)](https://paypal.me/PlexRequestsNet) +___ + [![Report a bug](http://i.imgur.com/xSpw482.png)](https://github.com/tidusjar/Ombi/issues/new) [![Feature request](http://i.imgur.com/mFO0OuX.png)](http://feathub.com/tidusjar/Ombi) | Service | Master | Early Access | Dev | @@ -80,7 +84,10 @@ We are looking for any contributions to the project! Just pick up a task, if you Please feel free to submit a pull request! # Donation -If you feel like donating you can donate [here](https://paypal.me/PlexRequestsNet)! +If you feel like donating you can donate with the below buttons! + +[![Patreon](https://www.ombi.io/img/patreondonate.svg)](https://patreon.com/tidusjar/Ombi) +[![Paypal](https://www.ombi.io/img/paypaldonate.svg)](https://paypal.me/PlexRequestsNet) ### A massive thanks to everyone for all their helps! From 39457e24d2cf25f19ec524db55323a2a9fd39c62 Mon Sep 17 00:00:00 2001 From: Jamie Date: Mon, 3 Apr 2017 08:40:37 +0100 Subject: [PATCH 02/13] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9dedadd0..ec5cfaa79 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ ___ | Download |[![Download](http://i.imgur.com/odToka3.png)](https://github.com/tidusjar/Ombi/releases) | [![Download](http://i.imgur.com/odToka3.png)](https://ci.appveyor.com/project/tidusjar/requestplex/branch/eap/artifacts) | [![Download](http://i.imgur.com/odToka3.png)](https://ci.appveyor.com/project/tidusjar/requestplex/branch/dev/artifacts) | # Features Here some of the features Ombi has: -* All your users to Request Movies, TV Shows (Whole series, whole seaons or even single episodes!) and Albums +* All your users to Request Movies, TV Shows (Whole series, whole seasons or even single episodes!) and Albums * Easily manage your requests * User management system (supports plex.tv accounts and local accounts) * Sending newsletters @@ -89,7 +89,7 @@ If you feel like donating you can donate with the below buttons! [![Patreon](https://www.ombi.io/img/patreondonate.svg)](https://patreon.com/tidusjar/Ombi) [![Paypal](https://www.ombi.io/img/paypaldonate.svg)](https://paypal.me/PlexRequestsNet) -### A massive thanks to everyone for all their helps! +### A massive thanks to everyone for all their help! ## Stats [![Throughput Graph](https://graphs.waffle.io/tidusjar/PlexRequests.Net/throughput.svg)](https://waffle.io/tidusjar/PlexRequests.Net/metrics/throughput) From f051bebd3ed707451865468d2089eaf225acfc91 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 6 Apr 2017 21:13:09 +0100 Subject: [PATCH 03/13] Fixed the migration number and order by the added date for the newsletter #1264 --- Ombi.Core.Migration/Migrations/Version2210.cs | 2 +- Ombi.Services/Jobs/PlexContentCacher.cs | 9 ++++++--- .../EmbyRecentlyAddedNewsletter.cs | 4 ++-- .../PlexRecentlyAddedNewsletter.cs | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Ombi.Core.Migration/Migrations/Version2210.cs b/Ombi.Core.Migration/Migrations/Version2210.cs index 258e4da46..94592174a 100644 --- a/Ombi.Core.Migration/Migrations/Version2210.cs +++ b/Ombi.Core.Migration/Migrations/Version2210.cs @@ -53,7 +53,7 @@ namespace Ombi.Core.Migration.Migrations EmbyEpisodes = embyEp; } - public int Version => 22000; + public int Version => 22100; private IRepository Log { get; } private IRepository PlexContent { get; } private IRepository PlexEpisodes { get; } diff --git a/Ombi.Services/Jobs/PlexContentCacher.cs b/Ombi.Services/Jobs/PlexContentCacher.cs index 5b6dc55d4..d4f872fc2 100644 --- a/Ombi.Services/Jobs/PlexContentCacher.cs +++ b/Ombi.Services/Jobs/PlexContentCacher.cs @@ -276,7 +276,8 @@ namespace Ombi.Services.Jobs Title = m.Title, Type = Store.Models.Plex.PlexMediaType.Movie, Url = m.Url, - ItemId = m.ItemId + ItemId = m.ItemId, + AddedAt = DateTime.UtcNow, }); } } @@ -318,7 +319,8 @@ namespace Ombi.Services.Jobs Type = Store.Models.Plex.PlexMediaType.Show, Url = t.Url, Seasons = ByteConverterHelper.ReturnBytes(t.Seasons), - ItemId = t.ItemId + ItemId = t.ItemId, + AddedAt = DateTime.UtcNow, }); } } @@ -360,7 +362,8 @@ namespace Ombi.Services.Jobs Title = a.Title, Type = Store.Models.Plex.PlexMediaType.Artist, Url = a.Url, - ItemId = "album" + ItemId = "album", + AddedAt = DateTime.UtcNow, }); } } diff --git a/Ombi.Services/Jobs/RecentlyAddedNewsletter/EmbyRecentlyAddedNewsletter.cs b/Ombi.Services/Jobs/RecentlyAddedNewsletter/EmbyRecentlyAddedNewsletter.cs index c4506e843..158d77f0d 100644 --- a/Ombi.Services/Jobs/RecentlyAddedNewsletter/EmbyRecentlyAddedNewsletter.cs +++ b/Ombi.Services/Jobs/RecentlyAddedNewsletter/EmbyRecentlyAddedNewsletter.cs @@ -120,7 +120,7 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter var filteredSeries = series.Where(m => recentlyAdded.All(x => x.ProviderId != m.EmbyId)).ToList(); var info = new List(); - foreach (var m in filteredMovies) + foreach (var m in filteredMovies.OrderByDescending(x => x.AddedAt)) { var policy = RetryHandler.RetryAndWaitPolicy((exception, timespan) => Log.Error(exception, "Exception thrown when processing an emby movie for the newsletter, Retrying {0}", timespan)); @@ -210,7 +210,7 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter } else { - foreach (var t in filteredSeries) + foreach (var t in filteredSeries.OrderByDescending(x => x.AddedAt)) { diff --git a/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs b/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs index 6eda44bec..ca88b4c2b 100644 --- a/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs +++ b/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs @@ -127,7 +127,7 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter // if this is a test make sure we show something filteredMovies = movie.Take(5).ToList(); } - foreach (var m in filteredMovies) + foreach (var m in filteredMovies.OrderByDescending(x => x.AddedAt)) { var i = Api.GetMetadata(plexSettings.PlexAuthToken, plexSettings.FullUri, m.ItemId); if (i.Video == null) @@ -194,7 +194,7 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter // if this is a test make sure we show something filteredSeries = series.Take(5).ToList(); } - foreach (var t in filteredSeries) + foreach (var t in filteredSeries.OrderByDescending(x => x.AddedAt)) { var i = Api.GetMetadata(plexSettings.PlexAuthToken, plexSettings.FullUri, t.ItemId); if (i.Directory == null) From 2e5e11374361b7b58914b45e27f0f6be1bf97605 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 6 Apr 2017 21:15:47 +0100 Subject: [PATCH 04/13] Revert "Merge branch 'DotNetCore' into dev" This reverts commit 90827aa7f9a7fe8b260fec6594dde817f65b780b, reversing changes made to 205f72a83dc424950983da9c30e99e2d1a31ec7f. --- Ombi/.gitignore | 16 - Ombi/Build/publish windows.bat | 6 - Ombi/Build/publish.bat | 9 - Ombi/Ombi.Api/Api.cs | 29 - Ombi/Ombi.Api/ApiHelper.cs | 78 - Ombi/Ombi.Api/Ombi.Api.csproj | 12 - .../Engine/Interfaces/IMovieEngine.cs | 15 - .../Engine/Interfaces/IRequestEngine.cs | 12 - Ombi/Ombi.Core/Engine/MovieEngine.cs | 191 - Ombi/Ombi.Core/Engine/RequestEngine.cs | 232 - Ombi/Ombi.Core/Engine/RequestEngineResult.cs | 8 - .../Models/Requests/IRequestService.cs | 26 - .../Models/Requests/JsonRequestService.cs | 174 - .../Ombi.Core/Models/Requests/RequestModel.cs | 132 - .../Models/Search/SearchMovieViewModel.cs | 54 - .../Models/Search/SearchViewModel.cs | 36 - Ombi/Ombi.Core/Ombi.Core.csproj | 20 - Ombi/Ombi.Core/Settings/ISettingsService.cs | 14 - Ombi/Ombi.Core/Settings/Models/Settings.cs | 7 - Ombi/Ombi.Core/Settings/SettingsService.cs | 129 - .../Ombi.DependencyInjection/IocExtensions.cs | 57 - .../Ombi.DependencyInjection.csproj | 17 - Ombi/Ombi.Helpers/ByteConverterHelper.cs | 28 - Ombi/Ombi.Helpers/LinqHelpers.cs | 18 - Ombi/Ombi.Helpers/Ombi.Helpers.csproj | 11 - Ombi/Ombi.Helpers/SerializerSettings.cs | 15 - Ombi/Ombi.Helpers/StringCipher.cs | 120 - Ombi/Ombi.Store/Context/IOmbiContext.cs | 16 - Ombi/Ombi.Store/Context/OmbiContext.cs | 25 - Ombi/Ombi.Store/Entities/Entity.cs | 10 - Ombi/Ombi.Store/Entities/GlobalSettings.cs | 11 - Ombi/Ombi.Store/Entities/RequestBlobs.cs | 20 - Ombi/Ombi.Store/Ombi.Store.csproj | 16 - .../Repository/IRequestRepository.cs | 20 - .../Repository/ISettingsRepository.cs | 49 - .../Repository/RequestJsonRepository.cs | 126 - .../Repository/SettingsJsonRepository.cs | 84 - Ombi/Ombi.TheMovieDbApi/IMovieDbApi.cs | 16 - .../Models/BelongsToCollection.cs | 10 - Ombi/Ombi.TheMovieDbApi/Models/Genre.cs | 8 - .../Models/MovieResponse.cs | 58 - .../Models/ProductionCompanies.cs | 8 - .../Models/ProductionCountries.cs | 8 - .../Ombi.TheMovieDbApi/Models/SearchResult.cs | 46 - .../Models/SpokenLanguages.cs | 8 - .../Models/TheMovieDbContainer.cs | 39 - .../Ombi.TheMovieDbApi.csproj | 12 - Ombi/Ombi.TheMovieDbApi/TheMovieDbApi.cs | 67 - Ombi/Ombi.sln | 71 - Ombi/Ombi/.gitignore | 17 - Ombi/Ombi/Controllers/BaseApiController.cs | 36 - Ombi/Ombi/Controllers/HomeController.cs | 35 - Ombi/Ombi/Controllers/RequestController.cs | 23 - Ombi/Ombi/Controllers/SearchController.cs | 50 - Ombi/Ombi/Ombi.csproj | 37 - Ombi/Ombi/Program.cs | 24 - Ombi/Ombi/Properties/launchSettings.json | 22 - Ombi/Ombi/Startup.cs | 81 - Ombi/Ombi/Styles/Themes/original.scss | 2 - Ombi/Ombi/Styles/Themes/plex.scss | 242 - Ombi/Ombi/Styles/_imports.scss | 7 - Ombi/Ombi/Styles/base.scss | 704 -- Ombi/Ombi/Styles/bootstrap.css | 6998 ----------------- Ombi/Ombi/Views/Home/Index.cshtml | 1 - Ombi/Ombi/Views/Shared/_Layout.cshtml | 26 - Ombi/Ombi/Views/_ViewImports.cshtml | 2 - Ombi/Ombi/Views/_ViewStart.cshtml | 3 - Ombi/Ombi/app/app.component.html | 31 - Ombi/Ombi/app/app.component.ts | 10 - Ombi/Ombi/app/app.module.ts | 51 - Ombi/Ombi/app/config.ts | 27 - Ombi/Ombi/app/errors/not-found.component.ts | 7 - .../app/interfaces/IRequestEngineResult.ts | 4 - .../Ombi/app/interfaces/ISearchMovieResult.ts | 20 - Ombi/Ombi/app/main.ts | 13 - Ombi/Ombi/app/polyfills.ts | 14 - Ombi/Ombi/app/search/search.component.html | 248 - Ombi/Ombi/app/search/search.component.ts | 78 - Ombi/Ombi/app/services/request.service.ts | 18 - Ombi/Ombi/app/services/search.service.ts | 29 - Ombi/Ombi/app/services/service.helpers.ts | 15 - .../app/settings/ombi/ombi.component.html | 1 - Ombi/Ombi/app/settings/ombi/ombi.component.ts | 11 - Ombi/Ombi/app/settings/settings.module.ts | 29 - Ombi/Ombi/appsettings.Development.json | 10 - Ombi/Ombi/appsettings.json | 8 - Ombi/Ombi/bower.json | 9 - Ombi/Ombi/bundleconfig.json | 24 - Ombi/Ombi/gulpfile.js | 270 - Ombi/Ombi/package.json | 45 - Ombi/Ombi/systemjs.config.ts | 20 - Ombi/Ombi/tsconfig.json | 20 - appveyor.yml | 55 +- 93 files changed, 12 insertions(+), 11559 deletions(-) delete mode 100644 Ombi/.gitignore delete mode 100644 Ombi/Build/publish windows.bat delete mode 100644 Ombi/Build/publish.bat delete mode 100644 Ombi/Ombi.Api/Api.cs delete mode 100644 Ombi/Ombi.Api/ApiHelper.cs delete mode 100644 Ombi/Ombi.Api/Ombi.Api.csproj delete mode 100644 Ombi/Ombi.Core/Engine/Interfaces/IMovieEngine.cs delete mode 100644 Ombi/Ombi.Core/Engine/Interfaces/IRequestEngine.cs delete mode 100644 Ombi/Ombi.Core/Engine/MovieEngine.cs delete mode 100644 Ombi/Ombi.Core/Engine/RequestEngine.cs delete mode 100644 Ombi/Ombi.Core/Engine/RequestEngineResult.cs delete mode 100644 Ombi/Ombi.Core/Models/Requests/IRequestService.cs delete mode 100644 Ombi/Ombi.Core/Models/Requests/JsonRequestService.cs delete mode 100644 Ombi/Ombi.Core/Models/Requests/RequestModel.cs delete mode 100644 Ombi/Ombi.Core/Models/Search/SearchMovieViewModel.cs delete mode 100644 Ombi/Ombi.Core/Models/Search/SearchViewModel.cs delete mode 100644 Ombi/Ombi.Core/Ombi.Core.csproj delete mode 100644 Ombi/Ombi.Core/Settings/ISettingsService.cs delete mode 100644 Ombi/Ombi.Core/Settings/Models/Settings.cs delete mode 100644 Ombi/Ombi.Core/Settings/SettingsService.cs delete mode 100644 Ombi/Ombi.DependencyInjection/IocExtensions.cs delete mode 100644 Ombi/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj delete mode 100644 Ombi/Ombi.Helpers/ByteConverterHelper.cs delete mode 100644 Ombi/Ombi.Helpers/LinqHelpers.cs delete mode 100644 Ombi/Ombi.Helpers/Ombi.Helpers.csproj delete mode 100644 Ombi/Ombi.Helpers/SerializerSettings.cs delete mode 100644 Ombi/Ombi.Helpers/StringCipher.cs delete mode 100644 Ombi/Ombi.Store/Context/IOmbiContext.cs delete mode 100644 Ombi/Ombi.Store/Context/OmbiContext.cs delete mode 100644 Ombi/Ombi.Store/Entities/Entity.cs delete mode 100644 Ombi/Ombi.Store/Entities/GlobalSettings.cs delete mode 100644 Ombi/Ombi.Store/Entities/RequestBlobs.cs delete mode 100644 Ombi/Ombi.Store/Ombi.Store.csproj delete mode 100644 Ombi/Ombi.Store/Repository/IRequestRepository.cs delete mode 100644 Ombi/Ombi.Store/Repository/ISettingsRepository.cs delete mode 100644 Ombi/Ombi.Store/Repository/RequestJsonRepository.cs delete mode 100644 Ombi/Ombi.Store/Repository/SettingsJsonRepository.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/IMovieDbApi.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/BelongsToCollection.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/Genre.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/MovieResponse.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/ProductionCompanies.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/ProductionCountries.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/SearchResult.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/SpokenLanguages.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Models/TheMovieDbContainer.cs delete mode 100644 Ombi/Ombi.TheMovieDbApi/Ombi.TheMovieDbApi.csproj delete mode 100644 Ombi/Ombi.TheMovieDbApi/TheMovieDbApi.cs delete mode 100644 Ombi/Ombi.sln delete mode 100644 Ombi/Ombi/.gitignore delete mode 100644 Ombi/Ombi/Controllers/BaseApiController.cs delete mode 100644 Ombi/Ombi/Controllers/HomeController.cs delete mode 100644 Ombi/Ombi/Controllers/RequestController.cs delete mode 100644 Ombi/Ombi/Controllers/SearchController.cs delete mode 100644 Ombi/Ombi/Ombi.csproj delete mode 100644 Ombi/Ombi/Program.cs delete mode 100644 Ombi/Ombi/Properties/launchSettings.json delete mode 100644 Ombi/Ombi/Startup.cs delete mode 100644 Ombi/Ombi/Styles/Themes/original.scss delete mode 100644 Ombi/Ombi/Styles/Themes/plex.scss delete mode 100644 Ombi/Ombi/Styles/_imports.scss delete mode 100644 Ombi/Ombi/Styles/base.scss delete mode 100644 Ombi/Ombi/Styles/bootstrap.css delete mode 100644 Ombi/Ombi/Views/Home/Index.cshtml delete mode 100644 Ombi/Ombi/Views/Shared/_Layout.cshtml delete mode 100644 Ombi/Ombi/Views/_ViewImports.cshtml delete mode 100644 Ombi/Ombi/Views/_ViewStart.cshtml delete mode 100644 Ombi/Ombi/app/app.component.html delete mode 100644 Ombi/Ombi/app/app.component.ts delete mode 100644 Ombi/Ombi/app/app.module.ts delete mode 100644 Ombi/Ombi/app/config.ts delete mode 100644 Ombi/Ombi/app/errors/not-found.component.ts delete mode 100644 Ombi/Ombi/app/interfaces/IRequestEngineResult.ts delete mode 100644 Ombi/Ombi/app/interfaces/ISearchMovieResult.ts delete mode 100644 Ombi/Ombi/app/main.ts delete mode 100644 Ombi/Ombi/app/polyfills.ts delete mode 100644 Ombi/Ombi/app/search/search.component.html delete mode 100644 Ombi/Ombi/app/search/search.component.ts delete mode 100644 Ombi/Ombi/app/services/request.service.ts delete mode 100644 Ombi/Ombi/app/services/search.service.ts delete mode 100644 Ombi/Ombi/app/services/service.helpers.ts delete mode 100644 Ombi/Ombi/app/settings/ombi/ombi.component.html delete mode 100644 Ombi/Ombi/app/settings/ombi/ombi.component.ts delete mode 100644 Ombi/Ombi/app/settings/settings.module.ts delete mode 100644 Ombi/Ombi/appsettings.Development.json delete mode 100644 Ombi/Ombi/appsettings.json delete mode 100644 Ombi/Ombi/bower.json delete mode 100644 Ombi/Ombi/bundleconfig.json delete mode 100644 Ombi/Ombi/gulpfile.js delete mode 100644 Ombi/Ombi/package.json delete mode 100644 Ombi/Ombi/systemjs.config.ts delete mode 100644 Ombi/Ombi/tsconfig.json diff --git a/Ombi/.gitignore b/Ombi/.gitignore deleted file mode 100644 index fb8c95056..000000000 --- a/Ombi/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -../app/**/*.js -../app/**/*.js.map -../wwwroot/** - -# dependencies -../node_modules -../bower_components - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log -/typings diff --git a/Ombi/Build/publish windows.bat b/Ombi/Build/publish windows.bat deleted file mode 100644 index f984ee1ba..000000000 --- a/Ombi/Build/publish windows.bat +++ /dev/null @@ -1,6 +0,0 @@ -;https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/ -cd .. -dotnet restore -dotnet publish -c Release /p:AppRuntimeIdentifier=win10-x64 - -exit \ No newline at end of file diff --git a/Ombi/Build/publish.bat b/Ombi/Build/publish.bat deleted file mode 100644 index e9af4b38c..000000000 --- a/Ombi/Build/publish.bat +++ /dev/null @@ -1,9 +0,0 @@ -;https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/ -cd .. -dotnet restore -dotnet publish -c Release /p:AppRuntimeIdentifier=win10-x64 -dotnet publish -c Release /p:AppRuntimeIdentifier=osx.10.12-x64 -dotnet publish -c Release /p:AppRuntimeIdentifier=ubuntu.16.10-x64 -dotnet publish -c Release /p:AppRuntimeIdentifier=debian.8-x64 - -exit \ No newline at end of file diff --git a/Ombi/Ombi.Api/Api.cs b/Ombi/Ombi.Api/Api.cs deleted file mode 100644 index adeb34bfc..000000000 --- a/Ombi/Ombi.Api/Api.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; -using System.Net.Http; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Ombi.Api -{ - public class Api - { - public static JsonSerializerSettings Settings = new JsonSerializerSettings - { - NullValueHandling = NullValueHandling.Ignore - }; - public async Task Get(Uri uri) - { - var h = new HttpClient(); - var response = await h.GetAsync(uri); - - if (!response.IsSuccessStatusCode) - { - // Logging - } - var receiveString = await response.Content.ReadAsStringAsync(); - return JsonConvert.DeserializeObject(receiveString, Settings); - } - } -} diff --git a/Ombi/Ombi.Api/ApiHelper.cs b/Ombi/Ombi.Api/ApiHelper.cs deleted file mode 100644 index 61050909e..000000000 --- a/Ombi/Ombi.Api/ApiHelper.cs +++ /dev/null @@ -1,78 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: ApiHelper.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion - -using System; - -namespace Ombi.Api -{ - public static class ApiHelper - { - public static Uri ChangePath(this Uri uri, string path, params string[] args) - { - var builder = new UriBuilder(uri); - - if (args != null && args.Length > 0) - { - builder.Path = builder.Path + string.Format(path, args); - } - else - { - builder.Path += path; - } - return builder.Uri; - } - public static Uri ChangePath(this Uri uri, string path) - { - return ChangePath(uri, path, null); - } - - public static Uri AddQueryParameter(this Uri uri, string parameter, string value) - { - if (string.IsNullOrEmpty(parameter) || string.IsNullOrEmpty(value)) return uri; - var builder = new UriBuilder(uri); - var startingTag = string.Empty; - var hasQuery = false; - if (string.IsNullOrEmpty(builder.Query)) - { - startingTag = "?"; - } - else - { - hasQuery = true; - startingTag = builder.Query.Contains("?") ? "&" : "?"; - } - - builder.Query = hasQuery - ? $"{builder.Query}{startingTag}{parameter}={value}" - : $"{startingTag}{parameter}={value}"; - return builder.Uri; - } - - - - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Api/Ombi.Api.csproj b/Ombi/Ombi.Api/Ombi.Api.csproj deleted file mode 100644 index 80457725a..000000000 --- a/Ombi/Ombi.Api/Ombi.Api.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - netstandard1.4 - - - - - - - - \ No newline at end of file diff --git a/Ombi/Ombi.Core/Engine/Interfaces/IMovieEngine.cs b/Ombi/Ombi.Core/Engine/Interfaces/IMovieEngine.cs deleted file mode 100644 index fcd397093..000000000 --- a/Ombi/Ombi.Core/Engine/Interfaces/IMovieEngine.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Core.Models.Search; - -namespace Ombi.Core -{ - public interface IMovieEngine - { - Task> NowPlayingMovies(); - Task> PopularMovies(); - Task> ProcessMovieSearch(string search); - Task> TopRatedMovies(); - Task> UpcomingMovies(); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Engine/Interfaces/IRequestEngine.cs b/Ombi/Ombi.Core/Engine/Interfaces/IRequestEngine.cs deleted file mode 100644 index f23604468..000000000 --- a/Ombi/Ombi.Core/Engine/Interfaces/IRequestEngine.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Threading.Tasks; -using Ombi.Core.Models.Search; -using Ombi.Store.Entities; - -namespace Ombi.Core.Engine -{ - public interface IRequestEngine - { - Task RequestMovie(SearchMovieViewModel model); - bool ShouldAutoApprove(RequestType requestType); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Engine/MovieEngine.cs b/Ombi/Ombi.Core/Engine/MovieEngine.cs deleted file mode 100644 index 219f65d11..000000000 --- a/Ombi/Ombi.Core/Engine/MovieEngine.cs +++ /dev/null @@ -1,191 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Ombi.Core.Models.Requests; -using Ombi.Core.Models.Search; -using Ombi.Core.Requests.Models; -using Ombi.Helpers; -using Ombi.Store.Entities; -using Ombi.TheMovieDbApi.Models; - -namespace Ombi.Core.Engine -{ - public class MovieEngine : IMovieEngine - { - - public MovieEngine(IRequestService service) - { - RequestService = service; - } - private IRequestService RequestService { get; } - public async Task> ProcessMovieSearch(string search) - { - var api = new TheMovieDbApi.TheMovieDbApi(); - var result = await api.SearchMovie(search); - if (result != null) - { - return await TransformMovieResultsToResponse(result.results); - } - return null; - } - public async Task> PopularMovies() - { - var api = new TheMovieDbApi.TheMovieDbApi(); - var result = await api.PopularMovies(); - if (result != null) - { - return await TransformMovieResultsToResponse(result.results); - } - return null; - } - - public async Task> TopRatedMovies() - { - var api = new TheMovieDbApi.TheMovieDbApi(); - var result = await api.TopRated(); - if (result != null) - { - return await TransformMovieResultsToResponse(result.results); - } - return null; - } - - public async Task> UpcomingMovies() - { - var api = new TheMovieDbApi.TheMovieDbApi(); - var result = await api.Upcoming(); - if (result != null) - { - return await TransformMovieResultsToResponse(result.results); - } - return null; - } - public async Task> NowPlayingMovies() - { - var api = new TheMovieDbApi.TheMovieDbApi(); - var result = await api.NowPlaying(); - if (result != null) - { - return await TransformMovieResultsToResponse(result.results); - } - return null; - } - - - private async Task> TransformMovieResultsToResponse(IEnumerable movies) - { - await Task.Yield(); - var viewMovies = new List(); - //var counter = 0; - Dictionary dbMovies = await RequestedMovies(); - foreach (var movie in movies) - { - var viewMovie = new SearchMovieViewModel - { - Adult = movie.adult, - BackdropPath = movie.backdrop_path, - Id = movie.id, - OriginalLanguage = movie.original_language, - OriginalTitle = movie.original_title, - Overview = movie.overview, - Popularity = movie.popularity, - PosterPath = movie.poster_path, - ReleaseDate = string.IsNullOrEmpty(movie.release_date) ? DateTime.MinValue : DateTime.Parse(movie.release_date), - Title = movie.title, - Video = movie.video, - VoteAverage = movie.vote_average, - VoteCount = movie.vote_count - }; - viewMovies.Add(viewMovie); - - //if (counter <= 5) // Let's only do it for the first 5 items - //{ - // var movieInfo = MovieApi.GetMovieInformationWithVideos(movie.Id); - - // // TODO needs to be careful about this, it's adding extra time to search... - // // https://www.themoviedb.org/talk/5807f4cdc3a36812160041f2 - // viewMovie.ImdbId = movieInfo?.imdb_id; - // viewMovie.Homepage = movieInfo?.homepage; - // var videoId = movieInfo?.video ?? false - // ? movieInfo?.videos?.results?.FirstOrDefault()?.key - // : string.Empty; - - // viewMovie.Trailer = string.IsNullOrEmpty(videoId) - // ? string.Empty - // : $"https://www.youtube.com/watch?v={videoId}"; - - // counter++; - //} - - // var canSee = CanUserSeeThisRequest(viewMovie.Id, Security.HasPermissions(User, Permissions.UsersCanViewOnlyOwnRequests), dbMovies); - - // var plexSettings = await PlexService.GetSettingsAsync(); - // var embySettings = await EmbySettings.GetSettingsAsync(); - // if (plexSettings.Enable) - // { - // var content = PlexContentRepository.GetAll(); - // var plexMovies = PlexChecker.GetPlexMovies(content); - - // var plexMovie = PlexChecker.GetMovie(plexMovies.ToArray(), movie.Title, - // movie.ReleaseDate?.Year.ToString(), - // viewMovie.ImdbId); - // if (plexMovie != null) - // { - // viewMovie.Available = true; - // viewMovie.PlexUrl = plexMovie.Url; - // } - // } - // if (embySettings.Enable) - // { - // var embyContent = EmbyContentRepository.GetAll(); - // var embyMovies = EmbyChecker.GetEmbyMovies(embyContent); - - // var embyMovie = EmbyChecker.GetMovie(embyMovies.ToArray(), movie.Title, - // movie.ReleaseDate?.Year.ToString(), viewMovie.ImdbId); - // if (embyMovie != null) - // { - // viewMovie.Available = true; - // } - // } - if (dbMovies.ContainsKey(movie.id) /*&& canSee*/) // compare to the requests db - { - var dbm = dbMovies[movie.id]; - - viewMovie.Requested = true; - viewMovie.Approved = dbm.Approved; - viewMovie.Available = dbm.Available; - } - // else if (canSee) - // { - // bool exists = IsMovieInCache(movie, viewMovie.ImdbId); - // viewMovie.Approved = exists; - // viewMovie.Requested = exists; - // } - // viewMovies.Add(viewMovie); - //} - - - } - return viewMovies; - } - - - private long _dbMovieCacheTime = 0; - private Dictionary _dbMovies; - private async Task> RequestedMovies() - { - long now = DateTime.Now.Ticks; - if (_dbMovies == null || (now - _dbMovieCacheTime) > 10000) - { - var allResults = await RequestService.GetAllAsync(); - allResults = allResults.Where(x => x.Type == RequestType.Movie); - - var distinctResults = allResults.DistinctBy(x => x.ProviderId); - _dbMovies = distinctResults.ToDictionary(x => x.ProviderId); - _dbMovieCacheTime = now; - } - return _dbMovies; - } - } -} diff --git a/Ombi/Ombi.Core/Engine/RequestEngine.cs b/Ombi/Ombi.Core/Engine/RequestEngine.cs deleted file mode 100644 index eeaecfa86..000000000 --- a/Ombi/Ombi.Core/Engine/RequestEngine.cs +++ /dev/null @@ -1,232 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Core.Models.Requests; -using Ombi.Core.Models.Search; -using Ombi.Core.Requests.Models; -using Ombi.Store.Entities; -using Ombi.TheMovieDbApi; - -namespace Ombi.Core.Engine -{ - public class RequestEngine : IRequestEngine - { - public RequestEngine(IMovieDbApi movieApi, IRequestService requestService) - { - MovieApi = movieApi; - RequestService = requestService; - } - private IMovieDbApi MovieApi { get; } - private IRequestService RequestService { get; } - public async Task RequestMovie(SearchMovieViewModel model) - { - var movieInfo = await MovieApi.GetMovieInformation(model.Id); - if (movieInfo == null) - { - return new RequestEngineResult - { - RequestAdded = false, - Message = "There was an issue adding this movie!" - }; - //Response.AsJson(new JsonResponseModel - //{ - // Result = false, - // Message = "There was an issue adding this movie!" - //}); - } - var fullMovieName = - $"{movieInfo.title}{(!string.IsNullOrEmpty(movieInfo.release_date) ? $" ({DateTime.Parse(movieInfo.release_date).Year})" : string.Empty)}"; - - var existingRequest = await RequestService.CheckRequestAsync(model.Id); - if (existingRequest != null) - { - // check if the current user is already marked as a requester for this movie, if not, add them - //if (!existingRequest.UserHasRequested(Username)) - //{ - // existingRequest.RequestedUsers.Add(Username); - // await RequestService.UpdateRequestAsync(existingRequest); - //} - - return new RequestEngineResult - { - RequestAdded = true, - - }; - //Response.AsJson(new JsonResponseModel - //{ - // Result = true, - // Message = - // Security.HasPermissions(User, Permissions.UsersCanViewOnlyOwnRequests) - // ? $"{fullMovieName} {Ombi.UI.Resources.UI.Search_SuccessfullyAdded}" - // : $"{fullMovieName} {Resources.UI.Search_AlreadyRequested}" - //}); - } - - - // TODO - //try - //{ - - // var content = PlexContentRepository.GetAll(); - // var movies = PlexChecker.GetPlexMovies(content); - // if (PlexChecker.IsMovieAvailable(movies.ToArray(), movieInfo.Title, movieInfo.ReleaseDate?.Year.ToString())) - // { - // return - // Response.AsJson(new JsonResponseModel - // { - // Result = false, - // Message = $"{fullMovieName} is already in Plex!" - // }); - // } - //} - //catch (Exception e) - //{ - // Log.Error(e); - // return - // Response.AsJson(new JsonResponseModel - // { - // Result = false, - // Message = string.Format(Resources.UI.Search_CouldNotCheckPlex, fullMovieName, GetMediaServerName()) - // }); - //} - - var requestModel = new RequestModel - { - ProviderId = movieInfo.id, - Type = RequestType.Movie, - Overview = movieInfo.overview, - ImdbId = movieInfo.imdb_id, - PosterPath = movieInfo.poster_path, - Title = movieInfo.title, - ReleaseDate = !string.IsNullOrEmpty(movieInfo.release_date) ? DateTime.Parse(movieInfo.release_date) : DateTime.MinValue, - Status = movieInfo.status, - RequestedDate = DateTime.UtcNow, - Approved = false, - //RequestedUsers = new List { Username }, - Issues = IssueState.None, - }; - - try - { - if (ShouldAutoApprove(RequestType.Movie)) - { - // model.Approved = true; - - // var result = await MovieSender.Send(model); - // if (result.Result) - // { - // return await AddRequest(model, settings, - // $"{fullMovieName} {Resources.UI.Search_SuccessfullyAdded}"); - // } - // if (result.Error) - - // { - // return - // Response.AsJson(new JsonResponseModel - // { - // Message = "Could not add movie, please contact your administrator", - // Result = false - // }); - // } - // if (!result.MovieSendingEnabled) - // { - - // return await AddRequest(model, settings, $"{fullMovieName} {Resources.UI.Search_SuccessfullyAdded}"); - // } - - // return Response.AsJson(new JsonResponseModel - // { - // Result = false, - // Message = Resources.UI.Search_CouchPotatoError - // }); - } - - - return await AddRequest(requestModel, /*settings,*/ - $"{fullMovieName} has been successfully added!"); - - } - catch (Exception e) - { - //Log.Fatal(e); - //await FaultQueue.QueueItemAsync(model, movieInfo.Id.ToString(), RequestType.Movie, FaultType.RequestFault, e.Message); - - //await NotificationService.Publish(new NotificationModel - //{ - // DateTime = DateTime.Now, - // User = Username, - // RequestType = RequestType.Movie, - // Title = model.Title, - // NotificationType = NotificationType.ItemAddedToFaultQueue - //}); - - //return Response.AsJson(new JsonResponseModel - //{ - // Result = true, - // Message = $"{fullMovieName} {Resources.UI.Search_SuccessfullyAdded}" - //}); - } - - return null; - } - - public bool ShouldAutoApprove(RequestType requestType) - { - //var admin = Security.HasPermissions(Context.CurrentUser, Permissions.Administrator); - //// if the user is an admin, they go ahead and allow auto-approval - //if (admin) return true; - - //// check by request type if the category requires approval or not - //switch (requestType) - //{ - // case RequestType.Movie: - // return Security.HasPermissions(User, Permissions.AutoApproveMovie); - // case RequestType.TvShow: - // return Security.HasPermissions(User, Permissions.AutoApproveTv); - // case RequestType.Album: - // return Security.HasPermissions(User, Permissions.AutoApproveAlbum); - // default: - // return false; - return false; - } - - private async Task AddRequest(RequestModel model, /*PlexRequestSettings settings,*/ string message) - { - await RequestService.AddRequestAsync(model); - - //if (ShouldSendNotification(model.Type, settings)) - //{ - // var notificationModel = new NotificationModel - // { - // Title = model.Title, - // User = Username, - // DateTime = DateTime.Now, - // NotificationType = NotificationType.NewRequest, - // RequestType = model.Type, - // ImgSrc = model.Type == RequestType.Movie ? $"https://image.tmdb.org/t/p/w300/{model.PosterPath}" : model.PosterPath - // }; - // await NotificationService.Publish(notificationModel); - //} - - //var limit = await RequestLimitRepo.GetAllAsync(); - //var usersLimit = limit.FirstOrDefault(x => x.Username == Username && x.RequestType == model.Type); - //if (usersLimit == null) - //{ - // await RequestLimitRepo.InsertAsync(new RequestLimit - // { - // Username = Username, - // RequestType = model.Type, - // FirstRequestDate = DateTime.UtcNow, - // RequestCount = 1 - // }); - //} - //else - //{ - // usersLimit.RequestCount++; - // await RequestLimitRepo.UpdateAsync(usersLimit); - //} - - return new RequestEngineResult{RequestAdded = true}; - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Engine/RequestEngineResult.cs b/Ombi/Ombi.Core/Engine/RequestEngineResult.cs deleted file mode 100644 index f2f2329a7..000000000 --- a/Ombi/Ombi.Core/Engine/RequestEngineResult.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.Core.Engine -{ - public class RequestEngineResult - { - public bool RequestAdded { get; set; } - public string Message { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Models/Requests/IRequestService.cs b/Ombi/Ombi.Core/Models/Requests/IRequestService.cs deleted file mode 100644 index 1cc56dea8..000000000 --- a/Ombi/Ombi.Core/Models/Requests/IRequestService.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Core.Models.Requests; -using Ombi.Store.Entities; - -namespace Ombi.Core.Requests.Models -{ - public interface IRequestService - { - int AddRequest(RequestModel model); - Task AddRequestAsync(RequestModel model); - void BatchDelete(IEnumerable model); - void BatchUpdate(IEnumerable model); - RequestModel CheckRequest(int providerId); - RequestModel CheckRequest(string musicId); - Task CheckRequestAsync(int providerId); - Task CheckRequestAsync(string musicId); - void DeleteRequest(RequestModel request); - Task DeleteRequestAsync(RequestModel request); - RequestModel Get(int id); - IEnumerable GetAll(); - Task> GetAllAsync(); - Task GetAsync(int id); - RequestBlobs UpdateRequest(RequestModel model); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Models/Requests/JsonRequestService.cs b/Ombi/Ombi.Core/Models/Requests/JsonRequestService.cs deleted file mode 100644 index f5418e74a..000000000 --- a/Ombi/Ombi.Core/Models/Requests/JsonRequestService.cs +++ /dev/null @@ -1,174 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Ombi.Core.Requests.Models; -using Ombi.Helpers; -using Ombi.Store.Entities; -using Ombi.Store.Repository; - -namespace Ombi.Core.Models.Requests -{ - public class JsonRequestService : IRequestService - { - public JsonRequestService(IRequestRepository repo) - { - Repo = repo; - } - private IRequestRepository Repo { get; } - public int AddRequest(RequestModel model) - { - var entity = new RequestBlobs { Type = model.Type, Content = ByteConverterHelper.ReturnBytes(model), ProviderId = model.ProviderId }; - var id = Repo.Insert(entity); - - return id.Id; - } - - public async Task AddRequestAsync(RequestModel model) - { - var entity = new RequestBlobs { Type = model.Type, Content = ByteConverterHelper.ReturnBytes(model), ProviderId = model.ProviderId }; - var id = await Repo.InsertAsync(entity).ConfigureAwait(false); - - return id.Id; - } - - public RequestModel CheckRequest(int providerId) - { - var blobs = Repo.GetAll(); - var blob = blobs.FirstOrDefault(x => x.ProviderId == providerId); if (blob == null) - { - return null; - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; - return model; - } - - public async Task CheckRequestAsync(int providerId) - { - var blobs = await Repo.GetAllAsync().ConfigureAwait(false); - var blob = blobs.FirstOrDefault(x => x.ProviderId == providerId); if (blob == null) - { - return null; - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; - return model; - } - - public RequestModel CheckRequest(string musicId) - { - var blobs = Repo.GetAll(); - var blob = blobs.FirstOrDefault(x => x.MusicId == musicId); if (blob == null) - { - return null; - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; - return model; - } - - public async Task CheckRequestAsync(string musicId) - { - var blobs = await Repo.GetAllAsync().ConfigureAwait(false); - var blob = blobs.FirstOrDefault(x => x.MusicId == musicId); - - if (blob == null) - { - return null; - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; - return model; - } - - public void DeleteRequest(RequestModel request) - { - var blob = Repo.Get(request.Id); - Repo.Delete(blob); - } - - public async Task DeleteRequestAsync(RequestModel request) - { - var blob = await Repo.GetAsync(request.Id).ConfigureAwait(false); - Repo.Delete(blob); - } - - public RequestBlobs UpdateRequest(RequestModel model) - { - var entity = new RequestBlobs { Type = model.Type, Content = ByteConverterHelper.ReturnBytes(model), ProviderId = model.ProviderId, Id = model.Id }; - return Repo.Update(entity); - } - - public RequestModel Get(int id) - { - var blob = Repo.Get(id); - if (blob == null) - { - return new RequestModel(); - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; // They should always be the same, but for somereason a user didn't have it in the db https://github.com/tidusjar/Ombi/issues/862#issuecomment-269743847 - return model; - } - - public async Task GetAsync(int id) - { - var blob = await Repo.GetAsync(id).ConfigureAwait(false); - if (blob == null) - { - return new RequestModel(); - } - var model = ByteConverterHelper.ReturnObject(blob.Content); - model.Id = blob.Id; - return model; - } - - public IEnumerable GetAll() - { - var blobs = Repo.GetAll().ToList(); - var retVal = new List(); - - foreach (var b in blobs) - { - if (b == null) - { - continue; - } - var model = ByteConverterHelper.ReturnObject(b.Content); - model.Id = b.Id; - retVal.Add(model); - } - return retVal; - } - - public async Task> GetAllAsync() - { - var blobs = await Repo.GetAllAsync().ConfigureAwait(false); - var retVal = new List(); - - foreach (var b in blobs) - { - if (b == null) - { - continue; - } - var model = ByteConverterHelper.ReturnObject(b.Content); - model.Id = b.Id; - retVal.Add(model); - } - return retVal; - } - - public void BatchUpdate(IEnumerable model) - { - var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ByteConverterHelper.ReturnBytes(m), ProviderId = m.ProviderId, Id = m.Id }).ToList(); - Repo.UpdateAll(entities); - } - - public void BatchDelete(IEnumerable model) - { - var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ByteConverterHelper.ReturnBytes(m), ProviderId = m.ProviderId, Id = m.Id }).ToList(); - Repo.DeleteAll(entities); - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Models/Requests/RequestModel.cs b/Ombi/Ombi.Core/Models/Requests/RequestModel.cs deleted file mode 100644 index 1eb9442e6..000000000 --- a/Ombi/Ombi.Core/Models/Requests/RequestModel.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json; -using Ombi.Store.Entities; - -namespace Ombi.Core.Models.Requests -{ - public class RequestModel : Entity - { - public RequestModel() - { - RequestedUsers = new List(); - Episodes = new List(); - } - - public int ProviderId { get; set; } - public string ImdbId { get; set; } - public string TvDbId { get; set; } - public string Overview { get; set; } - public string Title { get; set; } - public string PosterPath { get; set; } - public DateTime ReleaseDate { get; set; } - public RequestType Type { get; set; } - public string Status { get; set; } - public bool Approved { get; set; } - - public DateTime RequestedDate { get; set; } - public bool Available { get; set; } - public IssueState Issues { get; set; } - public string OtherMessage { get; set; } - public string AdminNote { get; set; } - public int[] SeasonList { get; set; } - public int SeasonCount { get; set; } - public string SeasonsRequested { get; set; } - public string MusicBrainzId { get; set; } - public List RequestedUsers { get; set; } - public string ArtistName { get; set; } - public string ArtistId { get; set; } - public int IssueId { get; set; } - public List Episodes { get; set; } - public bool Denied { get; set; } - public string DeniedReason { get; set; } - /// - /// For TV Shows with a custom root folder - /// - /// - /// The root folder selected. - /// - public int RootFolderSelected { get; set; } - - [JsonIgnore] - public List AllUsers - { - get - { - var u = new List(); - if (RequestedUsers != null && RequestedUsers.Any()) - { - u.AddRange(RequestedUsers); - } - return u; - } - } - - [JsonIgnore] - public bool CanApprove => !Approved && !Available; - - public string ReleaseId { get; set; } - - public bool UserHasRequested(string username) - { - return AllUsers.Any(x => x.Equals(username, StringComparison.OrdinalIgnoreCase)); - } - } - - - - public static class RequestTypeDisplay - { - public static string GetString(this RequestType type) - { - switch (type) - { - case RequestType.Movie: - return "Movie"; - case RequestType.TvShow: - return "TV Show"; - case RequestType.Album: - return "Album"; - default: - return string.Empty; - } - } - } - - public enum IssueState - { - None = 99, - WrongAudio = 0, - NoSubtitles = 1, - WrongContent = 2, - PlaybackIssues = 3, - Other = 4, // Provide a message - } - - public class EpisodesModel : IEquatable - { - public int SeasonNumber { get; set; } - public int EpisodeNumber { get; set; } - public bool Equals(EpisodesModel other) - { - // Check whether the compared object is null. - if (ReferenceEquals(other, null)) return false; - - //Check whether the compared object references the same data. - if (ReferenceEquals(this, other)) return true; - - //Check whether the properties are equal. - return SeasonNumber.Equals(other.SeasonNumber) && EpisodeNumber.Equals(other.EpisodeNumber); - } - - public override int GetHashCode() - { - var hashSeason = SeasonNumber.GetHashCode(); - var hashEp = EpisodeNumber.GetHashCode(); - - //Calculate the hash code. - return hashSeason + hashEp; - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Models/Search/SearchMovieViewModel.cs b/Ombi/Ombi.Core/Models/Search/SearchMovieViewModel.cs deleted file mode 100644 index 66fbf9ea2..000000000 --- a/Ombi/Ombi.Core/Models/Search/SearchMovieViewModel.cs +++ /dev/null @@ -1,54 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: SearchMovieViewModel.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion - -using System; -using System.Collections.Generic; - -namespace Ombi.Core.Models.Search -{ - public class SearchMovieViewModel : SearchViewModel - { - public bool Adult { get; set; } - public string BackdropPath { get; set; } - public List GenreIds { get; set; } - public int Id { get; set; } - public string OriginalLanguage { get; set; } - public string OriginalTitle { get; set; } - public string Overview { get; set; } - public double Popularity { get; set; } - public string PosterPath { get; set; } - public DateTime? ReleaseDate { get; set; } - public string Title { get; set; } - public bool Video { get; set; } - public double VoteAverage { get; set; } - public int VoteCount { get; set; } - public bool AlreadyInCp { get; set; } - public string Trailer { get; set; } - public string Homepage { get; set; } - public string ImdbId { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Models/Search/SearchViewModel.cs b/Ombi/Ombi.Core/Models/Search/SearchViewModel.cs deleted file mode 100644 index 9bbea38eb..000000000 --- a/Ombi/Ombi.Core/Models/Search/SearchViewModel.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: SearchViewModel.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion -namespace Ombi.Core.Models.Search -{ - public class SearchViewModel - { - public bool Approved { get; set; } - public bool Requested { get; set; } - public bool Available { get; set; } - public string PlexUrl { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Ombi.Core.csproj b/Ombi/Ombi.Core/Ombi.Core.csproj deleted file mode 100644 index 078f56b95..000000000 --- a/Ombi/Ombi.Core/Ombi.Core.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - netstandard1.4 - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Ombi/Ombi.Core/Settings/ISettingsService.cs b/Ombi/Ombi.Core/Settings/ISettingsService.cs deleted file mode 100644 index f781676a0..000000000 --- a/Ombi/Ombi.Core/Settings/ISettingsService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Threading.Tasks; - -namespace Ombi.Core.Settings -{ - public interface ISettingsService - { - T GetSettings(); - Task GetSettingsAsync(); - bool SaveSettings(T model); - Task SaveSettingsAsync(T model); - bool Delete(T model); - Task DeleteAsync(T model); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Settings/Models/Settings.cs b/Ombi/Ombi.Core/Settings/Models/Settings.cs deleted file mode 100644 index d24438223..000000000 --- a/Ombi/Ombi.Core/Settings/Models/Settings.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Ombi.Core.Settings.Models -{ - public class Settings - { - public int Id { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Core/Settings/SettingsService.cs b/Ombi/Ombi.Core/Settings/SettingsService.cs deleted file mode 100644 index c796710fa..000000000 --- a/Ombi/Ombi.Core/Settings/SettingsService.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System.Threading.Tasks; -using Newtonsoft.Json; -using Ombi.Helpers; -using Ombi.Store.Entities; -using Ombi.Store.Repository; - -namespace Ombi.Core.Settings -{ - public class SettingsServiceV2 : ISettingsService - where T : Models.Settings, new() - { - - public SettingsServiceV2(ISettingsRepository repo) - { - Repo = repo; - EntityName = typeof(T).Name; - } - - private ISettingsRepository Repo { get; } - private string EntityName { get; } - - public T GetSettings() - { - var result = Repo.Get(EntityName); - if (result == null) - { - return new T(); - } - result.Content = DecryptSettings(result); - var obj = string.IsNullOrEmpty(result.Content) ? null : JsonConvert.DeserializeObject(result.Content, SerializerSettings.Settings); - - var model = obj; - - return model; - } - - public async Task GetSettingsAsync() - { - var result = await Repo.GetAsync(EntityName).ConfigureAwait(false); - if (result == null) - { - return new T(); - } - result.Content = DecryptSettings(result); - return string.IsNullOrEmpty(result.Content) ? null : JsonConvert.DeserializeObject(result.Content, SerializerSettings.Settings); - } - - public bool SaveSettings(T model) - { - var entity = Repo.Get(EntityName); - - if (entity == null) - { - var newEntity = model; - - var settings = new GlobalSettings { SettingsName = EntityName, Content = JsonConvert.SerializeObject(newEntity, SerializerSettings.Settings) }; - settings.Content = EncryptSettings(settings); - var insertResult = Repo.Insert(settings); - - return insertResult != null; - } - - - var modified = model; - modified.Id = entity.Id; - - var globalSettings = new GlobalSettings { SettingsName = EntityName, Content = JsonConvert.SerializeObject(modified, SerializerSettings.Settings), Id = entity.Id }; - globalSettings.Content = EncryptSettings(globalSettings); - Repo.Update(globalSettings); - - return true; - } - - public async Task SaveSettingsAsync(T model) - { - var entity = await Repo.GetAsync(EntityName); - - if (entity == null) - { - var newEntity = model; - - var settings = new GlobalSettings { SettingsName = EntityName, Content = JsonConvert.SerializeObject(newEntity, SerializerSettings.Settings) }; - settings.Content = EncryptSettings(settings); - var insertResult = await Repo.InsertAsync(settings).ConfigureAwait(false); - - return insertResult != null; - } - - var modified = model; - modified.Id = entity.Id; - - var globalSettings = new GlobalSettings { SettingsName = EntityName, Content = JsonConvert.SerializeObject(modified, SerializerSettings.Settings), Id = entity.Id }; - globalSettings.Content = EncryptSettings(globalSettings); - await Repo.UpdateAsync(globalSettings).ConfigureAwait(false); - - return true; - } - - public void Delete(T model) - { - var entity = Repo.Get(EntityName); - if (entity != null) - { - Repo.Delete(entity); - } - - } - - public async Task DeleteAsync(T model) - { - var entity = Repo.Get(EntityName); - if (entity != null) - { - await Repo.DeleteAsync(entity); - } - - } - - private string EncryptSettings(GlobalSettings settings) - { - return StringCipher.Encrypt(settings.Content, settings.SettingsName); - } - - private string DecryptSettings(GlobalSettings settings) - { - return StringCipher.Decrypt(settings.Content, settings.SettingsName); - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.DependencyInjection/IocExtensions.cs b/Ombi/Ombi.DependencyInjection/IocExtensions.cs deleted file mode 100644 index 189c58b3b..000000000 --- a/Ombi/Ombi.DependencyInjection/IocExtensions.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Extensions.DependencyInjection; -using Ombi.Core; -using Ombi.Core.Engine; -using Ombi.Core.Models.Requests; -using Ombi.Core.Requests.Models; -using Ombi.Core.Settings; -using Ombi.Store.Context; -using Ombi.Store.Repository; -using Ombi.TheMovieDbApi; - -namespace Ombi.DependencyInjection -{ - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] - public static class IocExtensions - { - public static IServiceCollection RegisterDependencies(this IServiceCollection services) - { - services.RegisterEngines(); - services.RegisterApi(); - services.RegisterServices(); - services.RegisterStore(); - - return services; - } - - public static IServiceCollection RegisterEngines(this IServiceCollection services) - { - services.AddTransient(); - services.AddTransient(); - return services; - } - - public static IServiceCollection RegisterApi(this IServiceCollection services) - { - services.AddTransient(); - return services; - } - - public static IServiceCollection RegisterStore(this IServiceCollection services) - { - services.AddEntityFrameworkSqlite().AddDbContext(); - - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(typeof(ISettingsService<>), typeof(SettingsServiceV2<>)); - return services; - } - public static IServiceCollection RegisterServices(this IServiceCollection services) - { - services.AddTransient(); - return services; - } - } -} diff --git a/Ombi/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj b/Ombi/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj deleted file mode 100644 index 0be698b01..000000000 --- a/Ombi/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - netstandard1.4 - - - - - - - - - ..\..\..\..\..\.nuget\packages\microsoft.extensions.dependencyinjection.abstractions\1.1.0\lib\netstandard1.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - - \ No newline at end of file diff --git a/Ombi/Ombi.Helpers/ByteConverterHelper.cs b/Ombi/Ombi.Helpers/ByteConverterHelper.cs deleted file mode 100644 index 07db8fd7d..000000000 --- a/Ombi/Ombi.Helpers/ByteConverterHelper.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Text; -using Newtonsoft.Json; - -namespace Ombi.Helpers -{ - public class ByteConverterHelper - { - public static byte[] ReturnBytes(object obj) - { - var json = JsonConvert.SerializeObject(obj); - var bytes = Encoding.UTF8.GetBytes(json); - - return bytes; - } - - public static T ReturnObject(byte[] bytes) - { - var json = Encoding.UTF8.GetString(bytes); - var model = JsonConvert.DeserializeObject(json); - return model; - } - public static string ReturnFromBytes(byte[] bytes) - { - return Encoding.UTF8.GetString(bytes); - } - } -} diff --git a/Ombi/Ombi.Helpers/LinqHelpers.cs b/Ombi/Ombi.Helpers/LinqHelpers.cs deleted file mode 100644 index 279d161b7..000000000 --- a/Ombi/Ombi.Helpers/LinqHelpers.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Ombi.Helpers -{ - public static class LinqHelpers - { - public static IEnumerable DistinctBy(this IEnumerable source, Func keySelector) - { - HashSet knownKeys = new HashSet(); - foreach (TSource source1 in source) - { - if (knownKeys.Add(keySelector(source1))) - yield return source1; - } - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Helpers/Ombi.Helpers.csproj b/Ombi/Ombi.Helpers/Ombi.Helpers.csproj deleted file mode 100644 index 498e443c1..000000000 --- a/Ombi/Ombi.Helpers/Ombi.Helpers.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - netstandard1.4 - - - - - - - \ No newline at end of file diff --git a/Ombi/Ombi.Helpers/SerializerSettings.cs b/Ombi/Ombi.Helpers/SerializerSettings.cs deleted file mode 100644 index 688624f27..000000000 --- a/Ombi/Ombi.Helpers/SerializerSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Newtonsoft.Json; - -namespace Ombi.Helpers -{ - public static class SerializerSettings - { - public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings - { - Formatting = Formatting.None, - //TypeNameHandling = TypeNameHandling.Objects, - //TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple, - NullValueHandling = NullValueHandling.Ignore - }; - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Helpers/StringCipher.cs b/Ombi/Ombi.Helpers/StringCipher.cs deleted file mode 100644 index 152dc3f0d..000000000 --- a/Ombi/Ombi.Helpers/StringCipher.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Security.Cryptography; -using System.Text; - -namespace Ombi.Helpers -{ - public class StringCipher - { - // This constant determines the number of iterations for the password bytes generation function. - private const int DerivationIterations = 1000; - // This constant is used to determine the keysize of the encryption algorithm in bits. - // We divide this by 8 within the code below to get the equivalent number of bytes. - private const int Keysize = 256; - - /// - /// Decrypts the specified cipher text. - /// - /// The cipher text. - /// The pass phrase. - /// - public static string Decrypt(string cipherText, string passPhrase) - { - // Get the complete stream of bytes that represent: - // [32 bytes of Salt] + [32 bytes of IV] + [n bytes of CipherText] - var cipherTextBytesWithSaltAndIv = Convert.FromBase64String(cipherText); - // Get the saltbytes by extracting the first 32 bytes from the supplied cipherText bytes. - var saltStringBytes = cipherTextBytesWithSaltAndIv.Take(Keysize / 8).ToArray(); - // Get the IV bytes by extracting the next 32 bytes from the supplied cipherText bytes. - var ivStringBytes = cipherTextBytesWithSaltAndIv.Skip(Keysize / 8).Take(Keysize / 8).ToArray(); - // Get the actual cipher text bytes by removing the first 64 bytes from the cipherText string. - var cipherTextBytes = cipherTextBytesWithSaltAndIv.Skip((Keysize / 8) * 2).Take(cipherTextBytesWithSaltAndIv.Length - ((Keysize / 8) * 2)).ToArray(); - - using (var password = new Rfc2898DeriveBytes(passPhrase, saltStringBytes, DerivationIterations)) - { - var keyBytes = password.GetBytes(Keysize / 8); - var aes = Aes.Create(); - using (var symmetricKey = new RijndaelManaged()) - { - symmetricKey.BlockSize = 256; - symmetricKey.Mode = CipherMode.CBC; - symmetricKey.Padding = PaddingMode.PKCS7; - using (var decryptor = symmetricKey.CreateDecryptor(keyBytes, ivStringBytes)) - { - using (var memoryStream = new MemoryStream(cipherTextBytes)) - { - using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read)) - { - var plainTextBytes = new byte[cipherTextBytes.Length]; - var decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length); - memoryStream.Close(); - cryptoStream.Close(); - return Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount); - } - } - } - } - } - } - - /// - /// Encrypts the specified plain text. - /// - /// The plain text. - /// The pass phrase. - /// - public static string Encrypt(string plainText, string passPhrase) - { - // Salt and IV is randomly generated each time, but is preprended to encrypted cipher text - // so that the same Salt and IV values can be used when decrypting. - var saltStringBytes = Generate256BitsOfRandomEntropy(); - var ivStringBytes = Generate256BitsOfRandomEntropy(); - var plainTextBytes = Encoding.UTF8.GetBytes(plainText); - using (var password = new Rfc2898DeriveBytes(passPhrase, saltStringBytes, DerivationIterations)) - { - var keyBytes = password.GetBytes(Keysize / 8); - using (var symmetricKey = new RijndaelManaged()) - { - symmetricKey.BlockSize = 256; - symmetricKey.Mode = CipherMode.CBC; - symmetricKey.Padding = PaddingMode.PKCS7; - using (var encryptor = symmetricKey.CreateEncryptor(keyBytes, ivStringBytes)) - { - using (var memoryStream = new MemoryStream()) - { - using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)) - { - cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); - cryptoStream.FlushFinalBlock(); - // Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes. - var cipherTextBytes = saltStringBytes; - cipherTextBytes = cipherTextBytes.Concat(ivStringBytes).ToArray(); - cipherTextBytes = cipherTextBytes.Concat(memoryStream.ToArray()).ToArray(); - memoryStream.Close(); - cryptoStream.Close(); - return Convert.ToBase64String(cipherTextBytes); - } - } - } - } - } - } - - /// - /// Generate256s the bits of random entropy. - /// - /// - private static byte[] Generate256BitsOfRandomEntropy() - { - var randomBytes = new byte[32]; // 32 Bytes will give us 256 bits. - using (var rngCsp = new RNGCryptoServiceProvider()) - { - // Fill the array with cryptographically secure random bytes. - rngCsp.GetBytes(randomBytes); - } - return randomBytes; - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Context/IOmbiContext.cs b/Ombi/Ombi.Store/Context/IOmbiContext.cs deleted file mode 100644 index 1d555253d..000000000 --- a/Ombi/Ombi.Store/Context/IOmbiContext.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using Ombi.Store.Entities; - -namespace Ombi.Store.Context -{ - public interface IOmbiContext : IDisposable - { - int SaveChanges(); - Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)); - DbSet Requests { get; set; } - DbSet Settings { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Context/OmbiContext.cs b/Ombi/Ombi.Store/Context/OmbiContext.cs deleted file mode 100644 index 9a97ac69f..000000000 --- a/Ombi/Ombi.Store/Context/OmbiContext.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Ombi.Store.Entities; - -namespace Ombi.Store.Context -{ - public class OmbiContext : DbContext, IOmbiContext - { - private static bool _created; - public OmbiContext() - { - if (_created) return; - - _created = true; - Database.EnsureCreated(); - Database.Migrate(); - } - public DbSet Requests { get; set; } - public DbSet Settings { get; set; } - - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - optionsBuilder.UseSqlite("Data Source=Ombi.db"); - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Entities/Entity.cs b/Ombi/Ombi.Store/Entities/Entity.cs deleted file mode 100644 index 8e1cd2887..000000000 --- a/Ombi/Ombi.Store/Entities/Entity.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Ombi.Store.Entities -{ - public abstract class Entity - { - [Key] - public int Id { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Entities/GlobalSettings.cs b/Ombi/Ombi.Store/Entities/GlobalSettings.cs deleted file mode 100644 index bc651d214..000000000 --- a/Ombi/Ombi.Store/Entities/GlobalSettings.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.ComponentModel.DataAnnotations.Schema; - -namespace Ombi.Store.Entities -{ - [Table("GlobalSettings")] - public class GlobalSettings : Entity - { - public string Content { get; set; } - public string SettingsName { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Entities/RequestBlobs.cs b/Ombi/Ombi.Store/Entities/RequestBlobs.cs deleted file mode 100644 index 16ecff989..000000000 --- a/Ombi/Ombi.Store/Entities/RequestBlobs.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.ComponentModel.DataAnnotations.Schema; - -namespace Ombi.Store.Entities -{ - [Table("RequestBlobs")] - public class RequestBlobs : Entity - { - public int ProviderId { get; set; } - public byte[] Content { get; set; } - public RequestType Type { get; set; } - public string MusicId { get; set; } - - } - public enum RequestType - { - Movie, - TvShow, - Album - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Ombi.Store.csproj b/Ombi/Ombi.Store/Ombi.Store.csproj deleted file mode 100644 index 7d9da619e..000000000 --- a/Ombi/Ombi.Store/Ombi.Store.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - netstandard1.4 - - - - - - - - - - - - \ No newline at end of file diff --git a/Ombi/Ombi.Store/Repository/IRequestRepository.cs b/Ombi/Ombi.Store/Repository/IRequestRepository.cs deleted file mode 100644 index 4e1ac2798..000000000 --- a/Ombi/Ombi.Store/Repository/IRequestRepository.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Store.Entities; - -namespace Ombi.Store.Repository -{ - public interface IRequestRepository - { - void Delete(RequestBlobs entity); - void DeleteAll(IEnumerable entity); - RequestBlobs Get(int id); - IEnumerable GetAll(); - Task> GetAllAsync(); - Task GetAsync(int id); - RequestBlobs Insert(RequestBlobs entity); - Task InsertAsync(RequestBlobs entity); - RequestBlobs Update(RequestBlobs entity); - void UpdateAll(IEnumerable entity); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Repository/ISettingsRepository.cs b/Ombi/Ombi.Store/Repository/ISettingsRepository.cs deleted file mode 100644 index 2ed8e7fa0..000000000 --- a/Ombi/Ombi.Store/Repository/ISettingsRepository.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Store.Entities; - -namespace Ombi.Store.Repository -{ - public interface ISettingsRepository - { - /// - /// Inserts the specified entity. - /// - /// The entity. - GlobalSettings Insert(GlobalSettings entity); - Task InsertAsync(GlobalSettings entity); - - /// - /// Gets all. - /// - /// - IEnumerable GetAll(); - Task> GetAllAsync(); - - /// - /// Gets the specified identifier. - /// - /// Name of the settings. - /// - GlobalSettings Get(string settingsName); - Task GetAsync(string settingsName); - - /// - /// Deletes the specified entity. - /// - /// The entity. - /// - Task DeleteAsync(GlobalSettings entity); - void Delete(GlobalSettings entity); - - /// - /// Updates the specified entity. - /// - /// The entity. - /// - Task UpdateAsync(GlobalSettings entity); - void Update(GlobalSettings entity); - - - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Repository/RequestJsonRepository.cs b/Ombi/Ombi.Store/Repository/RequestJsonRepository.cs deleted file mode 100644 index f16b96d51..000000000 --- a/Ombi/Ombi.Store/Repository/RequestJsonRepository.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using Ombi.Store.Context; -using Ombi.Store.Entities; - -namespace Ombi.Store.Repository -{ - public class RequestJsonRepository : IRequestRepository - { - //private ICacheProvider Cache { get; } - - public RequestJsonRepository(IOmbiContext ctx) - { - Db = ctx; - } - - private IOmbiContext Db { get; } - - public RequestBlobs Insert(RequestBlobs entity) - { - - var id = Db.Requests.Add(entity); - Db.SaveChanges(); - return id.Entity; - - } - - public async Task InsertAsync(RequestBlobs entity) - { - - var id = await Db.Requests.AddAsync(entity).ConfigureAwait(false); - await Db.SaveChangesAsync(); - return id.Entity; - - } - - public IEnumerable GetAll() - { - //var key = "GetAll"; - //var item = Cache.GetOrSet(key, () => - //{ - - var page = Db.Requests.ToList(); - return page; - - //}, 5); - //return item; - } - - public async Task> GetAllAsync() - { - //var key = "GetAll"; - //var item = await Cache.GetOrSetAsync(key, async () => - //{ - - var page = await Db.Requests.ToListAsync().ConfigureAwait(false); - return page; - - //}, 5); - //return item; - } - - public RequestBlobs Get(int id) - { - //var key = "Get" + id; - //var item = Cache.GetOrSet(key, () => - //{ - - var page = Db.Requests.Find(id); - return page; - - //}, 5); - //return item; - } - - public async Task GetAsync(int id) - { - //var key = "Get" + id; - //var item = await Cache.GetOrSetAsync(key, async () => - //{ - - var page = await Db.Requests.FindAsync(id).ConfigureAwait(false); - return page; - - //}, 5); - //return item; - } - - public void Delete(RequestBlobs entity) - { - //ResetCache(); - - Db.Requests.Remove(entity); - Db.SaveChanges(); - - } - - public RequestBlobs Update(RequestBlobs entity) - { - - return Db.Requests.Update(entity).Entity; - Db.SaveChanges(); - - } - - public void UpdateAll(IEnumerable entity) - { - - Db.Requests.UpdateRange(entity); - Db.SaveChanges(); - - } - - - - public void DeleteAll(IEnumerable entity) - { - - Db.Requests.RemoveRange(entity); - Db.SaveChanges(); - - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.Store/Repository/SettingsJsonRepository.cs b/Ombi/Ombi.Store/Repository/SettingsJsonRepository.cs deleted file mode 100644 index 987276a55..000000000 --- a/Ombi/Ombi.Store/Repository/SettingsJsonRepository.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using Ombi.Store.Context; -using Ombi.Store.Entities; - -namespace Ombi.Store.Repository -{ - public class SettingsJsonRepository : ISettingsRepository - { - public SettingsJsonRepository(IOmbiContext ctx) - { - Db = ctx; - } - - private IOmbiContext Db { get; } - - public GlobalSettings Insert(GlobalSettings entity) - { - - var settings = Db.Settings.Add(entity); - Db.SaveChanges(); - return settings.Entity; - - } - - public async Task InsertAsync(GlobalSettings entity) - { - - var settings = await Db.Settings.AddAsync(entity).ConfigureAwait(false); - await Db.SaveChangesAsync().ConfigureAwait(false); - return settings.Entity; - } - - public IEnumerable GetAll() - { - - var page = Db.Settings.ToList(); - return page; - - } - - public async Task> GetAllAsync() - { - var page = await Db.Settings.ToListAsync(); - return page; - } - - public GlobalSettings Get(string pageName) - { - return Db.Settings.FirstOrDefault(x => x.SettingsName == pageName); - } - - public async Task GetAsync(string settingsName) - { - return await Db.Settings.FirstOrDefaultAsync(x => x.SettingsName == settingsName); - } - - public async Task DeleteAsync(GlobalSettings entity) - { - Db.Settings.Remove(entity); - await Db.SaveChangesAsync(); - } - - public async Task UpdateAsync(GlobalSettings entity) - { - Db.Settings.Update(entity); - await Db.SaveChangesAsync(); - } - - public void Delete(GlobalSettings entity) - { - Db.Settings.Remove(entity); - Db.SaveChanges(); - } - - public void Update(GlobalSettings entity) - { - Db.Settings.Update(entity); - Db.SaveChanges(); - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/IMovieDbApi.cs b/Ombi/Ombi.TheMovieDbApi/IMovieDbApi.cs deleted file mode 100644 index 219bc5a41..000000000 --- a/Ombi/Ombi.TheMovieDbApi/IMovieDbApi.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Threading.Tasks; -using Ombi.Api; -using Ombi.TheMovieDbApi.Models; - -namespace Ombi.TheMovieDbApi -{ - public interface IMovieDbApi - { - Task GetMovieInformation(int movieId); - Task> NowPlaying(); - Task> PopularMovies(); - Task> SearchMovie(string searchTerm); - Task> TopRated(); - Task> Upcoming(); - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/BelongsToCollection.cs b/Ombi/Ombi.TheMovieDbApi/Models/BelongsToCollection.cs deleted file mode 100644 index abbc69fef..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/BelongsToCollection.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Ombi.TheMovieDbApi.Models -{ - public class BelongsToCollection - { - public int id { get; set; } - public string name { get; set; } - public string poster_path { get; set; } - public string backdrop_path { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/Genre.cs b/Ombi/Ombi.TheMovieDbApi/Models/Genre.cs deleted file mode 100644 index f07d3b3da..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/Genre.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.TheMovieDbApi.Models -{ - public class Genre - { - public int id { get; set; } - public string name { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/MovieResponse.cs b/Ombi/Ombi.TheMovieDbApi/Models/MovieResponse.cs deleted file mode 100644 index f619f647a..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/MovieResponse.cs +++ /dev/null @@ -1,58 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: MovieResponse.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion -namespace Ombi.TheMovieDbApi.Models -{ - - public class MovieResponse - { - public bool adult { get; set; } - public string backdrop_path { get; set; } - public BelongsToCollection belongs_to_collection { get; set; } - public int budget { get; set; } - public Genre[] genres { get; set; } - public string homepage { get; set; } - public int id { get; set; } - public string imdb_id { get; set; } - public string original_language { get; set; } - public string original_title { get; set; } - public string overview { get; set; } - public float popularity { get; set; } - public string poster_path { get; set; } - public ProductionCompanies[] production_companies { get; set; } - public ProductionCountries[] production_countries { get; set; } - public string release_date { get; set; } - public int revenue { get; set; } - public int runtime { get; set; } - public SpokenLanguages[] spoken_languages { get; set; } - public string status { get; set; } - public string tagline { get; set; } - public string title { get; set; } - public bool video { get; set; } - public float vote_average { get; set; } - public int vote_count { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/ProductionCompanies.cs b/Ombi/Ombi.TheMovieDbApi/Models/ProductionCompanies.cs deleted file mode 100644 index 5acd5471c..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/ProductionCompanies.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.TheMovieDbApi.Models -{ - public class ProductionCompanies - { - public string name { get; set; } - public int id { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/ProductionCountries.cs b/Ombi/Ombi.TheMovieDbApi/Models/ProductionCountries.cs deleted file mode 100644 index db9fa47e5..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/ProductionCountries.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.TheMovieDbApi.Models -{ - public class ProductionCountries - { - public string iso_3166_1 { get; set; } - public string name { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/SearchResult.cs b/Ombi/Ombi.TheMovieDbApi/Models/SearchResult.cs deleted file mode 100644 index 81d8115f6..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/SearchResult.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: SearchResult.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion -namespace Ombi.TheMovieDbApi.Models -{ - public class SearchResult - { - public string poster_path { get; set; } - public bool adult { get; set; } - public string overview { get; set; } - public string release_date { get; set; } - public int?[] genre_ids { get; set; } - public int id { get; set; } - public string original_title { get; set; } - public string original_language { get; set; } - public string title { get; set; } - public string backdrop_path { get; set; } - public float popularity { get; set; } - public int vote_count { get; set; } - public bool video { get; set; } - public float vote_average { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/SpokenLanguages.cs b/Ombi/Ombi.TheMovieDbApi/Models/SpokenLanguages.cs deleted file mode 100644 index 01863de18..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/SpokenLanguages.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.TheMovieDbApi.Models -{ - public class SpokenLanguages - { - public string iso_639_1 { get; set; } - public string name { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Models/TheMovieDbContainer.cs b/Ombi/Ombi.TheMovieDbApi/Models/TheMovieDbContainer.cs deleted file mode 100644 index 72f58dd02..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Models/TheMovieDbContainer.cs +++ /dev/null @@ -1,39 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: TheMovieDbContainer.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion - -using System.Collections.Generic; - -namespace Ombi.TheMovieDbApi.Models -{ - public class TheMovieDbContainer - { - public int page { get; set; } - public List results { get; set; } - public int total_results { get; set; } - public int total_pages { get; set; } - } -} \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/Ombi.TheMovieDbApi.csproj b/Ombi/Ombi.TheMovieDbApi/Ombi.TheMovieDbApi.csproj deleted file mode 100644 index 16516740e..000000000 --- a/Ombi/Ombi.TheMovieDbApi/Ombi.TheMovieDbApi.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - netstandard1.4 - - - - - - - - \ No newline at end of file diff --git a/Ombi/Ombi.TheMovieDbApi/TheMovieDbApi.cs b/Ombi/Ombi.TheMovieDbApi/TheMovieDbApi.cs deleted file mode 100644 index dc68c5f52..000000000 --- a/Ombi/Ombi.TheMovieDbApi/TheMovieDbApi.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Ombi.Api; -using Ombi.TheMovieDbApi.Models; - -namespace Ombi.TheMovieDbApi -{ - public class TheMovieDbApi : IMovieDbApi - { - public TheMovieDbApi() - { - Api = new Api.Api(); - } - private const string ApiToken = "b8eabaf5608b88d0298aa189dd90bf00"; - private static readonly Uri BaseUri = new Uri("http://api.themoviedb.org/3/"); - public Api.Api Api { get; } - - public async Task GetMovieInformation(int movieId) - { - var url = BaseUri.ChangePath("movie/{0}", movieId.ToString()); - url = AddHeaders(url); - return await Api.Get(url); - } - - public async Task> SearchMovie(string searchTerm) - { - var url = BaseUri.ChangePath("search/movie/"); - url = AddHeaders(url); - url = url.AddQueryParameter("query", searchTerm); - return await Api.Get>(url); - } - - public async Task> PopularMovies() - { - var url = BaseUri.ChangePath("movie/popular"); - url = AddHeaders(url); - return await Api.Get>(url); - } - - public async Task> TopRated() - { - var url = BaseUri.ChangePath("movie/top_rated"); - url = AddHeaders(url); - return await Api.Get>(url); - } - - public async Task> Upcoming() - { - var url = BaseUri.ChangePath("movie/upcoming"); - url = AddHeaders(url); - return await Api.Get>(url); - } - - public async Task> NowPlaying() - { - var url = BaseUri.ChangePath("movie/now_playing"); - url = AddHeaders(url); - return await Api.Get>(url); - } - - private Uri AddHeaders(Uri url) - { - return url.AddQueryParameter("api_key", ApiToken); - } - } -} diff --git a/Ombi/Ombi.sln b/Ombi/Ombi.sln deleted file mode 100644 index bd42c7e32..000000000 --- a/Ombi/Ombi.sln +++ /dev/null @@ -1,71 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.10 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ombi", "Ombi\Ombi.csproj", "{C987AA67-AFE1-468F-ACD3-EAD5A48E1F6A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9D30CCF8-A115-4EB7-A34D-07780D752789}" - ProjectSection(SolutionItems) = preProject - ..\appveyor.yml = ..\appveyor.yml - Build\publish windows.bat = Build\publish windows.bat - Build\publish.bat = Build\publish.bat - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Core", "Ombi.Core\Ombi.Core.csproj", "{F56E79C7-791D-4668-A0EC-29E3BBC8D24B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Api", "Api", "{9293CA11-360A-4C20-A674-B9E794431BF5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.TheMovieDbApi", "Ombi.TheMovieDbApi\Ombi.TheMovieDbApi.csproj", "{132DA282-5894-4570-8916-D8C18ED2CE84}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Api", "Ombi.Api\Ombi.Api.csproj", "{EA31F915-31F9-4318-B521-1500CDF40DDF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ombi.Helpers", "Ombi.Helpers\Ombi.Helpers.csproj", "{C182B435-1FAB-49C5-9BF9-F7F5C6EF3C94}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ombi.Store", "Ombi.Store\Ombi.Store.csproj", "{68086581-1EFD-4390-8100-47F87D1CB628}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.DependencyInjection", "Ombi.DependencyInjection\Ombi.DependencyInjection.csproj", "{B39E4558-C557-48E7-AA74-19C5CD809617}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C987AA67-AFE1-468F-ACD3-EAD5A48E1F6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C987AA67-AFE1-468F-ACD3-EAD5A48E1F6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C987AA67-AFE1-468F-ACD3-EAD5A48E1F6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C987AA67-AFE1-468F-ACD3-EAD5A48E1F6A}.Release|Any CPU.Build.0 = Release|Any CPU - {F56E79C7-791D-4668-A0EC-29E3BBC8D24B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F56E79C7-791D-4668-A0EC-29E3BBC8D24B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F56E79C7-791D-4668-A0EC-29E3BBC8D24B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F56E79C7-791D-4668-A0EC-29E3BBC8D24B}.Release|Any CPU.Build.0 = Release|Any CPU - {132DA282-5894-4570-8916-D8C18ED2CE84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {132DA282-5894-4570-8916-D8C18ED2CE84}.Debug|Any CPU.Build.0 = Debug|Any CPU - {132DA282-5894-4570-8916-D8C18ED2CE84}.Release|Any CPU.ActiveCfg = Release|Any CPU - {132DA282-5894-4570-8916-D8C18ED2CE84}.Release|Any CPU.Build.0 = Release|Any CPU - {EA31F915-31F9-4318-B521-1500CDF40DDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA31F915-31F9-4318-B521-1500CDF40DDF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EA31F915-31F9-4318-B521-1500CDF40DDF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EA31F915-31F9-4318-B521-1500CDF40DDF}.Release|Any CPU.Build.0 = Release|Any CPU - {C182B435-1FAB-49C5-9BF9-F7F5C6EF3C94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C182B435-1FAB-49C5-9BF9-F7F5C6EF3C94}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C182B435-1FAB-49C5-9BF9-F7F5C6EF3C94}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C182B435-1FAB-49C5-9BF9-F7F5C6EF3C94}.Release|Any CPU.Build.0 = Release|Any CPU - {68086581-1EFD-4390-8100-47F87D1CB628}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68086581-1EFD-4390-8100-47F87D1CB628}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68086581-1EFD-4390-8100-47F87D1CB628}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68086581-1EFD-4390-8100-47F87D1CB628}.Release|Any CPU.Build.0 = Release|Any CPU - {B39E4558-C557-48E7-AA74-19C5CD809617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B39E4558-C557-48E7-AA74-19C5CD809617}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B39E4558-C557-48E7-AA74-19C5CD809617}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B39E4558-C557-48E7-AA74-19C5CD809617}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {132DA282-5894-4570-8916-D8C18ED2CE84} = {9293CA11-360A-4C20-A674-B9E794431BF5} - {EA31F915-31F9-4318-B521-1500CDF40DDF} = {9293CA11-360A-4C20-A674-B9E794431BF5} - EndGlobalSection -EndGlobal diff --git a/Ombi/Ombi/.gitignore b/Ombi/Ombi/.gitignore deleted file mode 100644 index 71bffc9b8..000000000 --- a/Ombi/Ombi/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -/app/**/*.js -/app/**/*.js.map -/wwwroot/** - -# dependencies -/node_modules -/bower_components - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log -/typings -/systemjs.config.js* diff --git a/Ombi/Ombi/Controllers/BaseApiController.cs b/Ombi/Ombi/Controllers/BaseApiController.cs deleted file mode 100644 index f122c578b..000000000 --- a/Ombi/Ombi/Controllers/BaseApiController.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region Copyright -// /************************************************************************ -// Copyright (c) 2017 Jamie Rees -// File: BaseApiController.cs -// Created By: Jamie Rees -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ************************************************************************/ -#endregion - -using Microsoft.AspNetCore.Mvc; - -namespace Ombi.Controllers -{ - [Route("api/[controller]")] - public class BaseApiController : Controller - { - } -} \ No newline at end of file diff --git a/Ombi/Ombi/Controllers/HomeController.cs b/Ombi/Ombi/Controllers/HomeController.cs deleted file mode 100644 index c03c9f475..000000000 --- a/Ombi/Ombi/Controllers/HomeController.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace Ombi.Controllers -{ - public class HomeController : Controller - { - public IActionResult Index() - { - return View(); - } - - public IActionResult About() - { - ViewData["Message"] = "Your application description page."; - - return View(); - } - - public IActionResult Contact() - { - ViewData["Message"] = "Your contact page."; - - return View(); - } - - public IActionResult Error() - { - return View(); - } - } -} diff --git a/Ombi/Ombi/Controllers/RequestController.cs b/Ombi/Ombi/Controllers/RequestController.cs deleted file mode 100644 index 34e4465d2..000000000 --- a/Ombi/Ombi/Controllers/RequestController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Ombi.Core.Engine; -using Ombi.Core.Models.Search; - -namespace Ombi.Controllers -{ - public class RequestController : BaseApiController - { - public RequestController(IRequestEngine engine) - { - RequestEngine = engine; - } - - private IRequestEngine RequestEngine { get; } - - [HttpPost("movie")] - public async Task SearchMovie([FromBody]SearchMovieViewModel movie) - { - return await RequestEngine.RequestMovie(movie); - } - } -} diff --git a/Ombi/Ombi/Controllers/SearchController.cs b/Ombi/Ombi/Controllers/SearchController.cs deleted file mode 100644 index 45200cbd1..000000000 --- a/Ombi/Ombi/Controllers/SearchController.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Ombi.Core; -using Ombi.Core.Models.Search; - -namespace Ombi.Controllers -{ - public class SearchController : BaseApiController - { - public SearchController(IMovieEngine movie) - { - MovieEngine = movie; - } - - private IMovieEngine MovieEngine { get; } - - [HttpGet("movie/{searchTerm}")] - public async Task> SearchMovie(string searchTerm) - { - return await MovieEngine.ProcessMovieSearch(searchTerm); - } - - [HttpGet("movie/popular")] - public async Task> Popular() - { - return await MovieEngine.PopularMovies(); - } - [HttpGet("movie/nowplaying")] - public async Task> NowPlayingMovies() - { - return await MovieEngine.NowPlayingMovies(); - } - [HttpGet("movie/toprated")] - public async Task> TopRatedMovies() - { - return await MovieEngine.TopRatedMovies(); - } - [HttpGet("movie/upcoming")] - public async Task> UpcomingMovies() - { - return await MovieEngine.UpcomingMovies(); - } - - - - } -} diff --git a/Ombi/Ombi/Ombi.csproj b/Ombi/Ombi/Ombi.csproj deleted file mode 100644 index 9c3dab512..000000000 --- a/Ombi/Ombi/Ombi.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - - netcoreapp1.1 - win10-x64;osx.10.12-x64;ubuntu.16.10-x64;debian.8-x64; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Ombi/Ombi/Program.cs b/Ombi/Ombi/Program.cs deleted file mode 100644 index 1949a296a..000000000 --- a/Ombi/Ombi/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Hosting; - -namespace Ombi -{ - public class Program - { - public static void Main(string[] args) - { - var host = new WebHostBuilder() - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() - .Build(); - - host.Run(); - } - } -} diff --git a/Ombi/Ombi/Properties/launchSettings.json b/Ombi/Ombi/Properties/launchSettings.json deleted file mode 100644 index 8cea528a3..000000000 --- a/Ombi/Ombi/Properties/launchSettings.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:52038/", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Ombi": { - "commandName": "Project" - } - } -} \ No newline at end of file diff --git a/Ombi/Ombi/Startup.cs b/Ombi/Ombi/Startup.cs deleted file mode 100644 index defdcce82..000000000 --- a/Ombi/Ombi/Startup.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.IO; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.StaticFiles; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.Logging; -using Ombi.DependencyInjection; -using Ombi.Store.Context; - -namespace Ombi -{ - public class Startup - { - public Startup(IHostingEnvironment env) - { - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", false, true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); - - } - - public IConfigurationRoot Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - // Add framework services. - services.AddMvc(); - services.RegisterDependencies(); // Ioc and EF - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) - { - loggerFactory.AddConsole(Configuration.GetSection("Logging")); - loggerFactory.AddDebug(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - else - { - app.UseExceptionHandler("/Home/Error"); - } - - var provider = new FileExtensionContentTypeProvider(); - provider.Mappings[".map"] = "application/octet-stream"; - - app.UseStaticFiles(new StaticFileOptions() - { - ContentTypeProvider = provider - }); - - app.UseStaticFiles(new StaticFileOptions - { - FileProvider = new PhysicalFileProvider( - Path.Combine(Directory.GetCurrentDirectory(), @"app")), - RequestPath = new PathString("/app"), - }); - - app.UseMvc(routes => - { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - - routes.MapSpaFallbackRoute( - name: "spa-fallback", - defaults: new { controller = "Home", action = "Index" }); - }); - } - } -} diff --git a/Ombi/Ombi/Styles/Themes/original.scss b/Ombi/Ombi/Styles/Themes/original.scss deleted file mode 100644 index 46800d16a..000000000 --- a/Ombi/Ombi/Styles/Themes/original.scss +++ /dev/null @@ -1,2 +0,0 @@ -body { -} diff --git a/Ombi/Ombi/Styles/Themes/plex.scss b/Ombi/Ombi/Styles/Themes/plex.scss deleted file mode 100644 index c5395e003..000000000 --- a/Ombi/Ombi/Styles/Themes/plex.scss +++ /dev/null @@ -1,242 +0,0 @@ -$primary-colour: #df691a; -$primary-colour-outline: #ff761b; -$bg-colour: #333333; -$bg-colour-disabled: #252424; -$i: -!important -; - -.form-control-custom { - background-color: $bg-colour $i; -} - -.form-control-custom-disabled { - background-color: $bg-colour-disabled $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; - border-color: #0a0a0a; -} - -.navbar-default .navbar-brand { - color: #DF691A; -} - -.nav-tabs { - border-bottom: 1px solid $bg-colour-disabled; -} - -.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; -} - -.modal-content { - position: relative; - background-color: #282828; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; - outline: 0; -} - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: 300; - color: #ebebeb; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: $bg-colour; - border-radius: 10px; -} - -.bootstrap-datetimepicker-widget.dropdown-menu { - background-color: $bg-colour; -} - -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after { - border-bottom: 6px solid $bg-colour $i; -} - -#sidebar-wrapper { - background: $bg-colour-disabled; -} - -#cacherRunning { - background-color: $bg-colour; - text-align: center; - font-size: 15px; - padding: 3px 0; -} \ No newline at end of file diff --git a/Ombi/Ombi/Styles/_imports.scss b/Ombi/Ombi/Styles/_imports.scss deleted file mode 100644 index 5ea7ab9d4..000000000 --- a/Ombi/Ombi/Styles/_imports.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import "./bootstrap.css"; -//@import "./lib/tether.css"; -@import "../node_modules/primeng/resources/themes/omega/theme.scss"; -@import "./lib/primeng.css"; - -$fa-font-path: "../fonts/lib"; -@import "../bower_components/font-awesome/scss/font-awesome.scss"; \ No newline at end of file diff --git a/Ombi/Ombi/Styles/base.scss b/Ombi/Ombi/Styles/base.scss deleted file mode 100644 index c750dc353..000000000 --- a/Ombi/Ombi/Styles/base.scss +++ /dev/null @@ -1,704 +0,0 @@ -@import './_imports.scss'; - -$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; -$i:!important; - -@media (min-width: 768px ) { - .row { - position: relative; - } - - .bottom-align-text { - position: absolute; - bottom: 0; - right: 0; - } - - .landing-block .media { - max-width: 450px; - } -} - -@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: 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; -} - -.form-control-custom { - background-color: $form-color $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; -} -.small-label { - display: inline-block $i; - margin-bottom: .5rem $i; - font-size: 11px $i; -} - -.small-checkbox{ - min-height:0 $i; - -} - - -.round-checkbox { - border-radius:8px; -} - -.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: #4e5d6c; -} - -.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: $form-color; - 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: $form-color-lighter; -} - -.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; -} - -#cacherRunning { - background-color: $form-color; - 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; -} - -.small-checkbox label { - display: inline-block; - cursor: pointer; - position: relative; - padding-left: 25px; - margin-right: 15px; - font-size: 13px; - margin-bottom: 10px; -} - -.small-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: 8px; - min-height:0px $i; -} - -.small-checkbox input[type=checkbox] { - display: none; -} - -.small-checkbox input[type=checkbox]:checked + label:before { - content: "\2713"; - font-size: 13px; - color: #fafafa; - text-align: center; - line-height: 13px; -} - -.small-checkbox label { - min-height: 0 $i; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} - -.input-group-sm { - padding-top: 2px; - padding-bottom: 2px; -} - -.tab-pane .form-horizontal .form-group { - margin-right: 15px; - margin-left: 15px; -} - -.bootstrap-datetimepicker-widget.dropdown-menu { - background-color: $form-color; -} - -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after { - border-bottom: 6px solid $form-color $i; -} - -.bootstrap-datetimepicker-widget table td.active, -.bootstrap-datetimepicker-widget table td.active:hover { - color: #fff $i; -} - -.landing-header { - display: block; - margin: 60px auto; -} - -.landing-block { - background: #2f2f2f $i; - padding: 5px; -} - -.landing-block .media { - margin: 30px auto; - max-width: 450px; -} - -.landing-block .media .media-left { - display: inline-block; - float: left; - width: 70px; -} - -.landing-block .media .media-left i.fa { - font-size: 3em; -} - -.landing-title { - font-weight: bold; -} - -.checkbox-custom { - margin-top: 0 $i; - margin-bottom: 0 $i; -} - -.tooltip_templates { - display: none; -} - -.shadow { - -moz-box-shadow: 3px 3px 5px 6px #191919; - -webkit-box-shadow: 3px 3px 5px 6px #191919; - box-shadow: 3px 3px 5px 6px #191919; -} -.img-circle { - border-radius: 50%; -} - -#wrapper { - padding-left: 0; - -webkit-transition: all 0.5s ease; - -moz-transition: all 0.5s ease; - -o-transition: all 0.5s ease; - transition: all 0.5s ease; -} - -#wrapper.toggled { - padding-right: 250px; -} - -#sidebar-wrapper { - z-index: 1000; - position: fixed; - right: 250px; - width: 0; - height: 100%; - margin-right: -250px; - overflow-y: auto; - background: #4e5d6c; - padding-left:0; - -webkit-transition: all 0.5s ease; - -moz-transition: all 0.5s ease; - -o-transition: all 0.5s ease; - transition: all 0.5s ease; -} - -#wrapper.toggled #sidebar-wrapper { - width: 500px; -} - -#page-content-wrapper { - width: 100%; - position: absolute; - padding: 15px; -} - -#wrapper.toggled #page-content-wrapper { - position: absolute; - margin-left: -250px; -} - -/* Sidebar Styles */ - -.sidebar-nav { - position: absolute; - top: 0; - width: 500px; - margin: 0; - padding-left: 0; - list-style: none; -} - -.sidebar-nav li { - text-indent: 20px; - line-height: 40px; -} - -.sidebar-nav li a { - display: block; - text-decoration: none; - color: #999999; -} - -.sidebar-nav li a:hover { - text-decoration: none; - color: #fff; - background: rgba(255,255,255,0.2); -} - -.sidebar-nav li a:active, -.sidebar-nav li a:focus { - text-decoration: none; -} - -.sidebar-nav > .sidebar-brand { - height: 65px; - font-size: 18px; - line-height: 60px; -} - -.sidebar-nav > .sidebar-brand a { - color: #999999; -} - -.sidebar-nav > .sidebar-brand a:hover { - color: #fff; - background: none; -} - -@media(min-width:768px) { - #wrapper { - padding-right: 250px; - } - - #wrapper.toggled { - padding-right: 0; - } - - #sidebar-wrapper { - width: 500px; - } - - #wrapper.toggled #sidebar-wrapper { - width: 0; - } - - #page-content-wrapper { - padding: 20px; - position: relative; - } - - #wrapper.toggled #page-content-wrapper { - position: relative; - margin-right: 0; - } -} - -#lightbox { - - background-color: grey; - filter:alpha(opacity=50); /* IE */ - opacity: 0.5; /* Safari, Opera */ - -moz-opacity:0.50; /* FireFox */ - top: 0px; - left: 0px; - z-index: 20; - height: 100%; - width: 100%; - background-repeat:no-repeat; - background-position:center; - position:absolute; -} - - -.list-group-item-dropdown { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #3e3e3e; - border: 1px solid transparent; -} - -.wizard-heading{ - text-align: center; -} -.wizard-img{ - width: 300px; - display: block $i; - margin: 0 auto $i; -} - -.pace { - -webkit-pointer-events: none; - pointer-events: none; - - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.pace-inactive { - display: none; -} - -.pace .pace-progress { - background: $primary-colour; - position: fixed; - z-index: 2000; - top: 0; - right: 100%; - width: 100%; - height: 5px; -} - -.navbar-brand { - float: left; - font-size: 19px; - line-height: 21px; - height: 40px; -} - -.gravatar{ - border-radius:1em; -} - - -// Bootstrap overrides - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} \ No newline at end of file diff --git a/Ombi/Ombi/Styles/bootstrap.css b/Ombi/Ombi/Styles/bootstrap.css deleted file mode 100644 index 0e555d972..000000000 --- a/Ombi/Ombi/Styles/bootstrap.css +++ /dev/null @@ -1,6998 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:300,400,700"); -/*! - * bootswatch v3.3.6 - * Homepage: http://bootswatch.com - * Copyright 2012-2016 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*/ -/*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - text-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../Content/fonts/glyphicons-halflings-regular.eot'); - src: url('../Content/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../Content/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../Content/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../Content/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../Content/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\002a"; -} -.glyphicon-plus:before { - content: "\002b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 16px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 15px; - line-height: 1.42857143; - color: #ebebeb; - background-color: #2b3e50; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #df691a; - text-decoration: none; -} -a:hover, -a:focus { - color: #df691a; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 0; -} -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #2b3e50; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 21px; - margin-bottom: 21px; - border: 0; - border-top: 1px solid #596a7b; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 400; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #ebebeb; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 21px; - margin-bottom: 10.5px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10.5px; - margin-bottom: 10.5px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 39px; -} -h2, -.h2 { - font-size: 32px; -} -h3, -.h3 { - font-size: 26px; -} -h4, -.h4 { - font-size: 19px; -} -h5, -.h5 { - font-size: 15px; -} -h6, -.h6 { - font-size: 13px; -} -p { - margin: 0 0 10.5px; -} -.lead { - margin-bottom: 21px; - font-size: 17px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 22.5px; - } -} -small, -.small { - font-size: 80%; -} -mark, -.mark { - background-color: #f0ad4e; - padding: .2em; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #4e5d6c; -} -.text-primary { - color: #df691a; -} -a.text-primary:hover, -a.text-primary:focus { - color: #b15315; -} -.text-success { - color: #ebebeb; -} -a.text-success:hover, -a.text-success:focus { - color: #d2d2d2; -} -.text-info { - color: #ebebeb; -} -a.text-info:hover, -a.text-info:focus { - color: #d2d2d2; -} -.text-warning { - color: #ebebeb; -} -a.text-warning:hover, -a.text-warning:focus { - color: #d2d2d2; -} -.text-danger { - color: #ebebeb; -} -a.text-danger:hover, -a.text-danger:focus { - color: #d2d2d2; -} -.bg-primary { - color: #fff; - background-color: #df691a; -} -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #b15315; -} -.bg-success { - background-color: #5cb85c; -} -a.bg-success:hover, -a.bg-success:focus { - background-color: #449d44; -} -.bg-info { - background-color: #5bc0de; -} -a.bg-info:hover, -a.bg-info:focus { - background-color: #31b0d5; -} -.bg-warning { - background-color: #f0ad4e; -} -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #ec971f; -} -.bg-danger { - background-color: #d9534f; -} -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #c9302c; -} -.page-header { - padding-bottom: 9.5px; - margin: 42px 0 21px; - border-bottom: 1px solid #ebebeb; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10.5px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -dl { - margin-top: 0; - margin-bottom: 21px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #4e5d6c; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10.5px 21px; - margin: 0 0 21px; - font-size: 18.75px; - border-left: 5px solid #4e5d6c; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #ebebeb; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #4e5d6c; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 21px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 0; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 0; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 10px; - margin: 0 0 10.5px; - font-size: 14px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 0; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: .9375rem; - padding-right: .9375rem; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.row { - margin-left: -15px; - margin-right: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 6px; - padding-bottom: 6px; - color: #4e5d6c; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 21px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 6px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #4e5d6c; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #4e5d6c; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #4e5d6c; -} -.table .table { - background-color: #2b3e50; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 3px; -} -.table-bordered { - border: 1px solid #4e5d6c; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #4e5d6c; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #4e5d6c; -} -.table-hover > tbody > tr:hover { - background-color: #485563; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #485563; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #3d4954; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #5cb85c; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #4cae4c; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #5bc0de; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #46b8da; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #f0ad4e; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #eea236; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #d9534f; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #d43f3a; -} -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15.75px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #4e5d6c; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 21px; - font-size: 22.5px; - line-height: inherit; - color: #ebebeb; - border: 0; - border-bottom: 1px solid #4e5d6c; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 9px; - font-size: 15px; - line-height: 1.42857143; - color: #2b3e50; -} -.form-control { - display: block; - width: 100%; - height: 39px; - padding: 8px 16px; - font-size: 15px; - line-height: 1.42857143; - color: #2b3e50; - background-color: #ffffff; - background-image: none; - border: 1px solid transparent; - border-radius: .25rem; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: transparent; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 0, 0, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 0, 0, 0.6); -} -.form-control::-moz-placeholder { - color: #cccccc; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #cccccc; -} -.form-control::-webkit-input-placeholder { - color: #cccccc; -} -.form-control::-ms-expand { - border: 0; - background-color: transparent; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #ebebeb; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 39px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 52px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 21px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 9px; - padding-bottom: 9px; - margin-bottom: 0; - min-height: 36px; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-left: 0; - padding-right: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -.form-group-sm select.form-control { - height: 30px; - line-height: 30px; -} -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 33px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 52px; - padding: 12px 24px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} -select.input-lg { - height: 52px; - line-height: 52px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 52px; - padding: 12px 24px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} -.form-group-lg select.form-control { - height: 52px; - line-height: 52px; -} -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 52px; - min-height: 40px; - padding: 13px 24px; - font-size: 19px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 48.75px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 39px; - height: 39px; - line-height: 39px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 52px; - height: 52px; - line-height: 52px; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #ebebeb; -} -.has-success .form-control { - border-color: #ebebeb; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #d2d2d2; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; -} -.has-success .input-group-addon { - color: #ebebeb; - border-color: #ebebeb; - background-color: #5cb85c; -} -.has-success .form-control-feedback { - color: #ebebeb; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #ebebeb; -} -.has-warning .form-control { - border-color: #ebebeb; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #d2d2d2; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; -} -.has-warning .input-group-addon { - color: #ebebeb; - border-color: #ebebeb; - background-color: #f0ad4e; -} -.has-warning .form-control-feedback { - color: #ebebeb; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #ebebeb; -} -.has-error .form-control { - border-color: #ebebeb; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #d2d2d2; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; -} -.has-error .input-group-addon { - color: #ebebeb; - border-color: #ebebeb; - background-color: #d9534f; -} -.has-error .form-control-feedback { - color: #ebebeb; -} -.has-feedback label ~ .form-control-feedback { - top: 26px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #ffffff; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 9px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 30px; -} -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 9px; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 13px; - font-size: 19px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; - } -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 8px 16px; - font-size: 15px; - line-height: 1.42857143; - border-radius: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #ffffff; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} -.btn-default { - color: #ffffff; - background-color: #4e5d6c; - border-color: transparent; -} -.btn-default:focus, -.btn-default.focus { - color: #ffffff; - background-color: #39444e; - border-color: rgba(0, 0, 0, 0); -} -.btn-default:hover { - color: #ffffff; - background-color: #39444e; - border-color: rgba(0, 0, 0, 0); -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #ffffff; - background-color: #39444e; - border-color: rgba(0, 0, 0, 0); -} -.btn-default:active:hover, -.btn-default.active:hover, -.open > .dropdown-toggle.btn-default:hover, -.btn-default:active:focus, -.btn-default.active:focus, -.open > .dropdown-toggle.btn-default:focus, -.btn-default:active.focus, -.btn-default.active.focus, -.open > .dropdown-toggle.btn-default.focus { - color: #ffffff; - background-color: #2a323a; - border-color: rgba(0, 0, 0, 0); -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus { - background-color: #4e5d6c; - border-color: transparent; -} -.btn-default .badge { - color: #4e5d6c; - background-color: #ffffff; -} -.btn-primary { - color: #ffffff; - background-color: #df691a; - border-color: transparent; -} -.btn-primary:focus, -.btn-primary.focus { - color: #ffffff; - background-color: #b15315; - border-color: rgba(0, 0, 0, 0); -} -.btn-primary:hover { - color: #ffffff; - background-color: #b15315; - border-color: rgba(0, 0, 0, 0); -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #b15315; - border-color: rgba(0, 0, 0, 0); -} -.btn-primary:active:hover, -.btn-primary.active:hover, -.open > .dropdown-toggle.btn-primary:hover, -.btn-primary:active:focus, -.btn-primary.active:focus, -.open > .dropdown-toggle.btn-primary:focus, -.btn-primary:active.focus, -.btn-primary.active.focus, -.open > .dropdown-toggle.btn-primary.focus { - color: #ffffff; - background-color: #914411; - border-color: rgba(0, 0, 0, 0); -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus { - background-color: #df691a; - border-color: transparent; -} -.btn-primary .badge { - color: #df691a; - background-color: #ffffff; -} -.btn-success { - color: #ffffff; - background-color: #5cb85c; - border-color: transparent; -} -.btn-success:focus, -.btn-success.focus { - color: #ffffff; - background-color: #449d44; - border-color: rgba(0, 0, 0, 0); -} -.btn-success:hover { - color: #ffffff; - background-color: #449d44; - border-color: rgba(0, 0, 0, 0); -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #449d44; - border-color: rgba(0, 0, 0, 0); -} -.btn-success:active:hover, -.btn-success.active:hover, -.open > .dropdown-toggle.btn-success:hover, -.btn-success:active:focus, -.btn-success.active:focus, -.open > .dropdown-toggle.btn-success:focus, -.btn-success:active.focus, -.btn-success.active.focus, -.open > .dropdown-toggle.btn-success.focus { - color: #ffffff; - background-color: #398439; - border-color: rgba(0, 0, 0, 0); -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: transparent; -} -.btn-success .badge { - color: #5cb85c; - background-color: #ffffff; -} -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: transparent; -} -.btn-info:focus, -.btn-info.focus { - color: #ffffff; - background-color: #31b0d5; - border-color: rgba(0, 0, 0, 0); -} -.btn-info:hover { - color: #ffffff; - background-color: #31b0d5; - border-color: rgba(0, 0, 0, 0); -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #31b0d5; - border-color: rgba(0, 0, 0, 0); -} -.btn-info:active:hover, -.btn-info.active:hover, -.open > .dropdown-toggle.btn-info:hover, -.btn-info:active:focus, -.btn-info.active:focus, -.open > .dropdown-toggle.btn-info:focus, -.btn-info:active.focus, -.btn-info.active.focus, -.open > .dropdown-toggle.btn-info.focus { - color: #ffffff; - background-color: #269abc; - border-color: rgba(0, 0, 0, 0); -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: transparent; -} -.btn-info .badge { - color: #5bc0de; - background-color: #ffffff; -} -.btn-warning { - color: #ffffff; - background-color: #f0ad4e; - border-color: transparent; -} -.btn-warning:focus, -.btn-warning.focus { - color: #ffffff; - background-color: #ec971f; - border-color: rgba(0, 0, 0, 0); -} -.btn-warning:hover { - color: #ffffff; - background-color: #ec971f; - border-color: rgba(0, 0, 0, 0); -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #ec971f; - border-color: rgba(0, 0, 0, 0); -} -.btn-warning:active:hover, -.btn-warning.active:hover, -.open > .dropdown-toggle.btn-warning:hover, -.btn-warning:active:focus, -.btn-warning.active:focus, -.open > .dropdown-toggle.btn-warning:focus, -.btn-warning:active.focus, -.btn-warning.active.focus, -.open > .dropdown-toggle.btn-warning.focus { - color: #ffffff; - background-color: #d58512; - border-color: rgba(0, 0, 0, 0); -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: transparent; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #ffffff; -} -.btn-danger { - color: #ffffff; - background-color: #d9534f; - border-color: transparent; -} -.btn-danger:focus, -.btn-danger.focus { - color: #ffffff; - background-color: #c9302c; - border-color: rgba(0, 0, 0, 0); -} -.btn-danger:hover { - color: #ffffff; - background-color: #c9302c; - border-color: rgba(0, 0, 0, 0); -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #c9302c; - border-color: rgba(0, 0, 0, 0); -} -.btn-danger:active:hover, -.btn-danger.active:hover, -.open > .dropdown-toggle.btn-danger:hover, -.btn-danger:active:focus, -.btn-danger.active:focus, -.open > .dropdown-toggle.btn-danger:focus, -.btn-danger:active.focus, -.btn-danger.active.focus, -.open > .dropdown-toggle.btn-danger.focus { - color: #ffffff; - background-color: #ac2925; - border-color: rgba(0, 0, 0, 0); -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: transparent; -} -.btn-danger .badge { - color: #d9534f; - background-color: #ffffff; -} -.btn-link { - color: #df691a; - font-weight: normal; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #df691a; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #4e5d6c; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 12px 24px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 15px; - text-align: left; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: #2b3e50; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #ebebeb; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #ebebeb; - background-color: #485563; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #df691a; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #2b3e50; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #2b3e50; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn, -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group .form-control:focus { - z-index: 3; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 52px; - padding: 12px 24px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 52px; - line-height: 52px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 8px 16px; - font-size: 15px; - font-weight: normal; - line-height: 1; - color: #2b3e50; - text-align: center; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 0; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 0; -} -.input-group-addon.input-lg { - padding: 12px 24px; - font-size: 19px; - border-radius: 0; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #4e5d6c; -} -.nav > li.disabled > a { - color: #4e5d6c; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #4e5d6c; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #4e5d6c; - border-color: #df691a; -} -.nav .nav-divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid transparent; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 0 0 0 0; -} -.nav-tabs > li > a:hover { - border-color: #4e5d6c #4e5d6c transparent; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #ebebeb; - background-color: #2b3e50; - border: 1px solid #4e5d6c; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 0; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #4e5d6c; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #4e5d6c; - border-radius: 0 0 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #4e5d6c; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 0; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #df691a; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 0; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #4e5d6c; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #4e5d6c; - border-radius: 0 0 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #4e5d6c; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 40px; - margin-bottom: 21px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 0; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 9.5px 15px; - font-size: 19px; - line-height: 21px; - height: 40px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 3px; - margin-bottom: 3px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 0; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 4.75px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 21px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 21px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 9.5px; - padding-bottom: 9.5px; - } -} -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 0.5px; - margin-bottom: 0.5px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 0.5px; - margin-bottom: 0.5px; -} -.navbar-btn.btn-sm { - margin-top: 5px; - margin-bottom: 5px; -} -.navbar-btn.btn-xs { - margin-top: 9px; - margin-bottom: 9px; -} -.navbar-text { - margin-top: 9.5px; - margin-bottom: 9.5px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #4e5d6c; - border-color: transparent; -} -.navbar-default .navbar-brand { - color: #ebebeb; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #ebebeb; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #ebebeb; -} -.navbar-default .navbar-nav > li > a { - color: #ebebeb; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #ebebeb; - background-color: #485563; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #ebebeb; - background-color: #485563; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: transparent; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #485563; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #ebebeb; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: transparent; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #485563; - color: #ebebeb; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #ebebeb; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ebebeb; - background-color: #485563; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ebebeb; - background-color: #485563; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #ebebeb; -} -.navbar-default .navbar-link:hover { - color: #ebebeb; -} -.navbar-default .btn-link { - color: #ebebeb; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #ebebeb; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #cccccc; -} -.navbar-inverse { - background-color: #df691a; - border-color: transparent; -} -.navbar-inverse .navbar-brand { - color: #ebebeb; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ebebeb; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #ebebeb; -} -.navbar-inverse .navbar-nav > li > a { - color: #ebebeb; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ebebeb; - background-color: #c85e17; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ebebeb; - background-color: #c85e17; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: transparent; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #c85e17; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ebebeb; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #bf5a16; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #c85e17; - color: #ebebeb; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #ebebeb; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ebebeb; - background-color: #c85e17; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ebebeb; - background-color: #c85e17; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #ebebeb; -} -.navbar-inverse .navbar-link:hover { - color: #ebebeb; -} -.navbar-inverse .btn-link { - color: #ebebeb; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #ebebeb; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 21px; - list-style: none; - background-color: #4e5d6c; - border-radius: 0; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #ebebeb; -} -.breadcrumb > .active { - color: #ebebeb; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 21px 0; - border-radius: 0; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 8px 16px; - line-height: 1.42857143; - text-decoration: none; - color: #ebebeb; - background-color: #4e5d6c; - border: 1px solid transparent; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 2; - color: #ebebeb; - background-color: #485563; - border-color: transparent; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 3; - color: #ebebeb; - background-color: #df691a; - border-color: transparent; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #323c46; - background-color: #4e5d6c; - border-color: transparent; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 12px 24px; - font-size: 19px; - line-height: 1.3333333; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.pager { - padding-left: 0; - margin: 21px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #485563; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #323c46; - background-color: #4e5d6c; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #4e5d6c; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #39444e; -} -.label-primary { - background-color: #df691a; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #b15315; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: 300; - color: #ebebeb; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #4e5d6c; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #df691a; - background-color: #ffffff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #4e5d6c; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 23px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #39444e; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 0; - padding-left: 15px; - padding-right: 15px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 68px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 21px; - line-height: 1.42857143; - background-color: #2b3e50; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #df691a; -} -.thumbnail .caption { - padding: 9px; - color: #ebebeb; -} -.alert { - padding: 15px; - margin-bottom: 21px; - border: 1px solid transparent; - border-radius: 0; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #5cb85c; - border-color: transparent; - color: #ebebeb; -} -.alert-success hr { - border-top-color: rgba(0, 0, 0, 0); -} -.alert-success .alert-link { - color: #d2d2d2; -} -.alert-info { - background-color: #5bc0de; - border-color: transparent; - color: #ebebeb; -} -.alert-info hr { - border-top-color: rgba(0, 0, 0, 0); -} -.alert-info .alert-link { - color: #d2d2d2; -} -.alert-warning { - background-color: #f0ad4e; - border-color: transparent; - color: #ebebeb; -} -.alert-warning hr { - border-top-color: rgba(0, 0, 0, 0); -} -.alert-warning .alert-link { - color: #d2d2d2; -} -.alert-danger { - background-color: #d9534f; - border-color: transparent; - color: #ebebeb; -} -.alert-danger hr { - border-top-color: rgba(0, 0, 0, 0); -} -.alert-danger .alert-link { - color: #d2d2d2; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 21px; - margin-bottom: 21px; - background-color: #4e5d6c; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 21px; - color: #ffffff; - text-align: center; - background-color: #df691a; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - zoom: 1; - overflow: hidden; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-object.img-thumbnail { - max-width: none; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #4e5d6c; - border: 1px solid transparent; -} - -.list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -a.list-group-item, -button.list-group-item { - color: #ebebeb; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #ebebeb; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - text-decoration: none; - color: #ebebeb; - background-color: #485563; -} -button.list-group-item { - width: 100%; - text-align: left; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #ebebeb; - color: #4e5d6c; - cursor: not-allowed; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #4e5d6c; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #df691a; - border-color: #df691a; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #f9decc; -} -.list-group-item-success { - color: #ebebeb; - background-color: #5cb85c; -} -a.list-group-item-success, -button.list-group-item-success { - color: #ebebeb; -} -a.list-group-item-success .list-group-item-heading, -button.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -button.list-group-item-success:hover, -a.list-group-item-success:focus, -button.list-group-item-success:focus { - color: #ebebeb; - background-color: #4cae4c; -} -a.list-group-item-success.active, -button.list-group-item-success.active, -a.list-group-item-success.active:hover, -button.list-group-item-success.active:hover, -a.list-group-item-success.active:focus, -button.list-group-item-success.active:focus { - color: #fff; - background-color: #ebebeb; - border-color: #ebebeb; -} -.list-group-item-info { - color: #ebebeb; - background-color: #5bc0de; -} -a.list-group-item-info, -button.list-group-item-info { - color: #ebebeb; -} -a.list-group-item-info .list-group-item-heading, -button.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -button.list-group-item-info:hover, -a.list-group-item-info:focus, -button.list-group-item-info:focus { - color: #ebebeb; - background-color: #46b8da; -} -a.list-group-item-info.active, -button.list-group-item-info.active, -a.list-group-item-info.active:hover, -button.list-group-item-info.active:hover, -a.list-group-item-info.active:focus, -button.list-group-item-info.active:focus { - color: #fff; - background-color: #ebebeb; - border-color: #ebebeb; -} -.list-group-item-warning { - color: #ebebeb; - background-color: #f0ad4e; -} -a.list-group-item-warning, -button.list-group-item-warning { - color: #ebebeb; -} -a.list-group-item-warning .list-group-item-heading, -button.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -button.list-group-item-warning:hover, -a.list-group-item-warning:focus, -button.list-group-item-warning:focus { - color: #ebebeb; - background-color: #eea236; -} -a.list-group-item-warning.active, -button.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus, -button.list-group-item-warning.active:focus { - color: #fff; - background-color: #ebebeb; - border-color: #ebebeb; -} -.list-group-item-danger { - color: #ebebeb; - background-color: #d9534f; -} -a.list-group-item-danger, -button.list-group-item-danger { - color: #ebebeb; -} -a.list-group-item-danger .list-group-item-heading, -button.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -button.list-group-item-danger:hover, -a.list-group-item-danger:focus, -button.list-group-item-danger:focus { - color: #ebebeb; - background-color: #d43f3a; -} -a.list-group-item-danger.active, -button.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus, -button.list-group-item-danger.active:focus { - color: #fff; - background-color: #ebebeb; - border-color: #ebebeb; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 21px; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: -1; - border-top-left-radius: -1; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 17px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #485563; - border-top: 1px solid transparent; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: -1; - border-top-left-radius: -1; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: -1; - border-top-left-radius: -1; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: -1; - border-top-right-radius: -1; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: -1; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: -1; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: -1; - border-bottom-right-radius: -1; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: -1; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: -1; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #4e5d6c; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 21px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 0; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid transparent; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid transparent; -} -.panel-default { - border-color: transparent; -} -.panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: transparent; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-primary { - border-color: transparent; -} -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #df691a; - border-color: transparent; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-primary > .panel-heading .badge { - color: #df691a; - background-color: #ffffff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-success { - border-color: transparent; -} -.panel-success > .panel-heading { - color: #ebebeb; - background-color: #5cb85c; - border-color: transparent; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-success > .panel-heading .badge { - color: #5cb85c; - background-color: #ebebeb; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-info { - border-color: transparent; -} -.panel-info > .panel-heading { - color: #ebebeb; - background-color: #5bc0de; - border-color: transparent; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-info > .panel-heading .badge { - color: #5bc0de; - background-color: #ebebeb; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-warning { - border-color: transparent; -} -.panel-warning > .panel-heading { - color: #ebebeb; - background-color: #f0ad4e; - border-color: transparent; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-warning > .panel-heading .badge { - color: #f0ad4e; - background-color: #ebebeb; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-danger { - border-color: transparent; -} -.panel-danger > .panel-heading { - color: #ebebeb; - background-color: #d9534f; - border-color: transparent; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-danger > .panel-heading .badge { - color: #d9534f; - background-color: #ebebeb; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 0; -} -.well-sm { - padding: 9px; - border-radius: 0; -} -.close { - float: right; - font-size: 22.5px; - font-weight: bold; - line-height: 1; - color: #ebebeb; - text-shadow: none; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover, -.close:focus { - color: #ebebeb; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #4e5d6c; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - -webkit-background-clip: padding-box; - background-clip: padding-box; - outline: 0; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #2b3e50; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 20px; -} -.modal-footer { - padding: 20px; - text-align: right; - border-top: 1px solid #2b3e50; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - background-color: #000000; - border-radius: 0; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 15px; - background-color: #4e5d6c; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 15px; - background-color: #485563; - border-bottom: 1px solid #3d4954; - border-radius: -1 -1 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - border-width: 10px; - content: ""; -} -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: transparent; - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #4e5d6c; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: transparent; -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #4e5d6c; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: transparent; - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #4e5d6c; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: transparent; -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #4e5d6c; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-header:before, -.modal-header:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-header:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -.navbar { - -webkit-box-shadow: none; - box-shadow: none; - border: none; - font-size: 12px; -} -.navbar-default .badge { - background-color: #fff; - color: #4e5d6c; -} -.navbar-inverse .badge { - background-color: #fff; - color: #df691a; -} -.btn-default:hover { - background-color: #485563; -} -.btn-sm, -.btn-xs { - font-size: 12px; -} -.text-primary, -.text-primary:hover { - color: #df691a; -} -.text-success, -.text-success:hover { - color: #5cb85c; -} -.text-danger, -.text-danger:hover { - color: #d9534f; -} -.text-warning, -.text-warning:hover { - color: #f0ad4e; -} -.text-info, -.text-info:hover { - color: #5bc0de; -} -.page-header { - border-bottom-color: #4e5d6c; -} -.dropdown-menu { - border: none; - margin: 0; - -webkit-box-shadow: none; - box-shadow: none; -} -.dropdown-menu > li > a { - font-size: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: none; - box-shadow: none; -} -.dropdown-header { - font-size: 12px; -} -table, -.table { - font-size: 12px; -} -table a:not(.btn), -.table a:not(.btn) { - color: #fff; - text-decoration: underline; -} -table .dropdown-menu a, -.table .dropdown-menu a { - text-decoration: none; -} -table .text-muted, -.table .text-muted { - color: #4e5d6c; -} -table > thead > tr > th, -.table > thead > tr > th, -table > tbody > tr > th, -.table > tbody > tr > th, -table > tfoot > tr > th, -.table > tfoot > tr > th, -table > thead > tr > td, -.table > thead > tr > td, -table > tbody > tr > td, -.table > tbody > tr > td, -table > tfoot > tr > td, -.table > tfoot > tr > td { - border-color: transparent; -} -input, -textarea { - color: #2b3e50; -} -label, -.radio label, -.checkbox label, -.help-block { - font-size: 12px; -} -.input-addon, -.input-group-addon { - color: #ebebeb; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label, -.has-warning .form-control-feedback { - color: #f0ad4e; -} -.has-warning .input-group-addon { - border: none; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label, -.has-error .form-control-feedback { - color: #d9534f; -} -.has-error .input-group-addon { - border: none; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label, -.has-success .form-control-feedback { - color: #5cb85c; -} -.has-success .input-group-addon { - border: none; -} -.form-control:focus { - -webkit-box-shadow: none; - box-shadow: none; -} -.has-warning .form-control:focus, -.has-error .form-control:focus, -.has-success .form-control:focus { - -webkit-box-shadow: none; - box-shadow: none; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - border-color: transparent; -} -.nav-tabs > li > a { - color: #ebebeb; -} -.nav-pills > li > a { - color: #ebebeb; -} -.pager a { - color: #ebebeb; -} -.alert { - color: #fff; -} -.alert a, -.alert .alert-link { - color: #fff; -} -.close { - opacity: 0.4; -} -.close:hover, -.close:focus { - opacity: 1; -} -.well { - -webkit-box-shadow: none; - box-shadow: none; -} -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - border: none; -} -a.list-group-item-success.active { - background-color: #5cb85c; -} -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - background-color: #4cae4c; -} -a.list-group-item-warning.active { - background-color: #f0ad4e; -} -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - background-color: #eea236; -} -a.list-group-item-danger.active { - background-color: #d9534f; -} -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - background-color: #d43f3a; -} -.panel { - border: none; -} -.panel-default > .panel-heading { - background-color: #485563; - color: #ebebeb; -} -.thumbnail { - background-color: #4e5d6c; - border: none; -} -.modal { - padding: 0; -} -.modal-header, -.modal-footer { - background-color: #485563; - border: none; - border-radius: 0; -} -.popover-title { - border: none; -} \ No newline at end of file diff --git a/Ombi/Ombi/Views/Home/Index.cshtml b/Ombi/Ombi/Views/Home/Index.cshtml deleted file mode 100644 index 5f282702b..000000000 --- a/Ombi/Ombi/Views/Home/Index.cshtml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Ombi/Ombi/Views/Shared/_Layout.cshtml b/Ombi/Ombi/Views/Shared/_Layout.cshtml deleted file mode 100644 index 1cc395747..000000000 --- a/Ombi/Ombi/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,26 +0,0 @@ -@**@ - - - - - @ViewData["Title"] - Ombi - - - - - - @**@ - -