diff --git a/Ombi.sln b/Ombi.sln
new file mode 100644
index 000000000..86b3aa0ff
--- /dev/null
+++ b/Ombi.sln
@@ -0,0 +1,131 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26228.4
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.UI", "Ombi.UI\Ombi.UI.csproj", "{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Api", "Ombi.Api\Ombi.Api.csproj", "{8CB8D235-2674-442D-9C6A-35FCAEEB160D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Api.Interfaces", "Ombi.Api.Interfaces\Ombi.Api.Interfaces.csproj", "{95834072-A675-415D-AA8F-877C91623810}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Core", "Ombi.Core\Ombi.Core.csproj", "{DD7DC444-D3BF-4027-8AB9-EFC71F5EC581}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Store", "Ombi.Store\Ombi.Store.csproj", "{92433867-2B7B-477B-A566-96C382427525}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F4BC839C-B8FF-48BE-B22E-536A0A0A81A5}"
+ ProjectSection(SolutionItems) = preProject
+ .travis.yml = .travis.yml
+ appveyor.yml = appveyor.yml
+ LICENSE = LICENSE
+ README.md = README.md
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Helpers", "Ombi.Helpers\Ombi.Helpers.csproj", "{1252336D-42A3-482A-804C-836E60173DFA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.UI.Tests", "Ombi.UI.Tests\Ombi.UI.Tests.csproj", "{A930E2CF-79E2-45F9-B06A-9A719A254CE4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Core.Tests", "Ombi.Core.Tests\Ombi.Core.Tests.csproj", "{FCFECD5D-47F6-454D-8692-E27A921BE655}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Services", "Ombi.Services\Ombi.Services.csproj", "{566EFA49-68F8-4716-9693-A6B3F2624DEA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Api.Models", "Ombi.Api.Models\Ombi.Api.Models.csproj", "{CB37A5F8-6DFC-4554-99D3-A42B502E4591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Services.Tests", "Ombi.Services.Tests\Ombi.Services.Tests.csproj", "{EAADB4AC-064F-4D3A-AFF9-64A33131A9A7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Updater", "Ombi.Updater\Ombi.Updater.csproj", "{EBE6FC1C-7B4B-47E9-AF54-0EE0604A2BE5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Helpers.Tests", "Ombi.Helpers.Tests\Ombi.Helpers.Tests.csproj", "{0E6395D3-B074-49E8-898D-0EB99E507E0E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Core.Migration", "Ombi.Core.Migration\Ombi.Core.Migration.csproj", "{8406EE57-D533-47C0-9302-C6B5F8C31E55}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Common", "Ombi.Common\Ombi.Common.csproj", "{BFD45569-90CF-47CA-B575-C7B0FF97F67B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Mono", "Ombi.Mono\Ombi.Mono.csproj", "{96C89180-1FB5-48B7-9D35-6EB5F11C9D95}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ombi.Windows", "Ombi.Windows\Ombi.Windows.csproj", "{FA5F2172-E82F-4D73-9C50-BEDC6A0A4037}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{3186D191-D5C6-46B1-86E0-3F3B65A12096}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {95834072-A675-415D-AA8F-877C91623810}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {95834072-A675-415D-AA8F-877C91623810}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {95834072-A675-415D-AA8F-877C91623810}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {95834072-A675-415D-AA8F-877C91623810}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DD7DC444-D3BF-4027-8AB9-EFC71F5EC581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD7DC444-D3BF-4027-8AB9-EFC71F5EC581}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD7DC444-D3BF-4027-8AB9-EFC71F5EC581}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD7DC444-D3BF-4027-8AB9-EFC71F5EC581}.Release|Any CPU.Build.0 = Release|Any CPU
+ {92433867-2B7B-477B-A566-96C382427525}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {92433867-2B7B-477B-A566-96C382427525}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {92433867-2B7B-477B-A566-96C382427525}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {92433867-2B7B-477B-A566-96C382427525}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1252336D-42A3-482A-804C-836E60173DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1252336D-42A3-482A-804C-836E60173DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1252336D-42A3-482A-804C-836E60173DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1252336D-42A3-482A-804C-836E60173DFA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A930E2CF-79E2-45F9-B06A-9A719A254CE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A930E2CF-79E2-45F9-B06A-9A719A254CE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A930E2CF-79E2-45F9-B06A-9A719A254CE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FCFECD5D-47F6-454D-8692-E27A921BE655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FCFECD5D-47F6-454D-8692-E27A921BE655}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FCFECD5D-47F6-454D-8692-E27A921BE655}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {566EFA49-68F8-4716-9693-A6B3F2624DEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {566EFA49-68F8-4716-9693-A6B3F2624DEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {566EFA49-68F8-4716-9693-A6B3F2624DEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {566EFA49-68F8-4716-9693-A6B3F2624DEA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CB37A5F8-6DFC-4554-99D3-A42B502E4591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB37A5F8-6DFC-4554-99D3-A42B502E4591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB37A5F8-6DFC-4554-99D3-A42B502E4591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CB37A5F8-6DFC-4554-99D3-A42B502E4591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EAADB4AC-064F-4D3A-AFF9-64A33131A9A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EAADB4AC-064F-4D3A-AFF9-64A33131A9A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EAADB4AC-064F-4D3A-AFF9-64A33131A9A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EBE6FC1C-7B4B-47E9-AF54-0EE0604A2BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EBE6FC1C-7B4B-47E9-AF54-0EE0604A2BE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EBE6FC1C-7B4B-47E9-AF54-0EE0604A2BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EBE6FC1C-7B4B-47E9-AF54-0EE0604A2BE5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0E6395D3-B074-49E8-898D-0EB99E507E0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E6395D3-B074-49E8-898D-0EB99E507E0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E6395D3-B074-49E8-898D-0EB99E507E0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8406EE57-D533-47C0-9302-C6B5F8C31E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8406EE57-D533-47C0-9302-C6B5F8C31E55}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8406EE57-D533-47C0-9302-C6B5F8C31E55}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8406EE57-D533-47C0-9302-C6B5F8C31E55}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BFD45569-90CF-47CA-B575-C7B0FF97F67B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BFD45569-90CF-47CA-B575-C7B0FF97F67B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BFD45569-90CF-47CA-B575-C7B0FF97F67B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BFD45569-90CF-47CA-B575-C7B0FF97F67B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96C89180-1FB5-48B7-9D35-6EB5F11C9D95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {96C89180-1FB5-48B7-9D35-6EB5F11C9D95}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {96C89180-1FB5-48B7-9D35-6EB5F11C9D95}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {96C89180-1FB5-48B7-9D35-6EB5F11C9D95}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FA5F2172-E82F-4D73-9C50-BEDC6A0A4037}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FA5F2172-E82F-4D73-9C50-BEDC6A0A4037}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FA5F2172-E82F-4D73-9C50-BEDC6A0A4037}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FA5F2172-E82F-4D73-9C50-BEDC6A0A4037}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {96C89180-1FB5-48B7-9D35-6EB5F11C9D95} = {3186D191-D5C6-46B1-86E0-3F3B65A12096}
+ {FA5F2172-E82F-4D73-9C50-BEDC6A0A4037} = {3186D191-D5C6-46B1-86E0-3F3B65A12096}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ RESX_PrefixTranslations = False
+ EndGlobalSection
+EndGlobal
diff --git a/Ombi/Build/publish windows.bat b/Ombi/Build/publish windows.bat
index 22260498f..e94f1864d 100644
--- a/Ombi/Build/publish windows.bat
+++ b/Ombi/Build/publish windows.bat
@@ -2,3 +2,5 @@
cd ..
dotnet restore
dotnet publish -c Release -r win10-x64
+
+exit
\ No newline at end of file
diff --git a/Ombi/Build/publish.bat b/Ombi/Build/publish.bat
index 2d6b312a7..48cc28c2a 100644
--- a/Ombi/Build/publish.bat
+++ b/Ombi/Build/publish.bat
@@ -5,3 +5,5 @@ dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r osx.10.12-x64
dotnet publish -c Release -r ubuntu.16.10-x64
dotnet publish -c Release -r debian.8-x64
+
+exit
\ No newline at end of file
diff --git a/Ombi/Ombi/.bowerrc b/Ombi/Ombi/.bowerrc
deleted file mode 100644
index 69fad3580..000000000
--- a/Ombi/Ombi/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "directory": "bower_components"
-}
diff --git a/Ombi/Ombi/Ombi.csproj b/Ombi/Ombi/Ombi.csproj
index b1bcbb7c6..c64595c28 100644
--- a/Ombi/Ombi/Ombi.csproj
+++ b/Ombi/Ombi/Ombi.csproj
@@ -1,32 +1,22 @@
- netcoreapp1.0
+ netcoreapp1.1
win10-x64;osx.10.12-x64;ubuntu.16.10-x64;debian.8-x64;
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
- search.component.js
-
+
diff --git a/Ombi/Ombi/Startup.cs b/Ombi/Ombi/Startup.cs
index ccee5f545..66f46f4f9 100644
--- a/Ombi/Ombi/Startup.cs
+++ b/Ombi/Ombi/Startup.cs
@@ -51,7 +51,14 @@ namespace Ombi
app.UseExceptionHandler("/Home/Error");
}
- app.UseStaticFiles();
+ var provider = new FileExtensionContentTypeProvider();
+ provider.Mappings[".map"] = "application/octet-stream";
+
+ app.UseStaticFiles(new StaticFileOptions()
+ {
+ ContentTypeProvider = provider
+ });
+
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
@@ -65,10 +72,9 @@ namespace Ombi
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
- routes.MapRoute(
- name: "spa-fallback",
- template: "{*url}",
- defaults: new { controller = "Home", action = "Index" });
+ 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
new file mode 100644
index 000000000..46800d16a
--- /dev/null
+++ b/Ombi/Ombi/Styles/Themes/original.scss
@@ -0,0 +1,2 @@
+body {
+}
diff --git a/Ombi/Ombi/Styles/Themes/plex.scss b/Ombi/Ombi/Styles/Themes/plex.scss
new file mode 100644
index 000000000..8a5ffbe8b
--- /dev/null
+++ b/Ombi/Ombi/Styles/Themes/plex.scss
@@ -0,0 +1,237 @@
+$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;
+}
+
+.navbar-default .navbar-brand {
+ color: #DF691A;
+}
+
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #F0ad4e;
+ background-color: #282828;
+}
+
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ background-color: #282828;
+}
+
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ background-color: #df691a;
+ color: #fff;
+}
+
+.pagination > li > a,
+.pagination > li > span {
+ background-color: #282828;
+}
+
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ background-color: #333;
+}
+
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #fefefe;
+ background-color: #333333;
+}
+
+.list-group-item {
+ background-color: #282828;
+}
+
+a.list-group-item:hover,
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
+ background-color: #333333;
+}
+
+.input-addon,
+.input-group-addon {
+ color: #df691a;
+}
+
+.modal-header,
+.modal-footer {
+ background-color: #282828;
+}
+
+.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
new file mode 100644
index 000000000..a880f96e7
--- /dev/null
+++ b/Ombi/Ombi/Styles/_imports.scss
@@ -0,0 +1,7 @@
+@import "./lib/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
new file mode 100644
index 000000000..c1c7c851a
--- /dev/null
+++ b/Ombi/Ombi/Styles/base.scss
@@ -0,0 +1,690 @@
+@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;
+ padding: 4.5px 15px;
+ font-size: 19px;
+ line-height: 21px;
+ height: 40px;
+}
+
+.gravatar{
+ border-radius:1em;
+}
diff --git a/Ombi/Ombi/Views/Shared/_Layout.cshtml b/Ombi/Ombi/Views/Shared/_Layout.cshtml
index 0eaaf503f..1cc395747 100644
--- a/Ombi/Ombi/Views/Shared/_Layout.cshtml
+++ b/Ombi/Ombi/Views/Shared/_Layout.cshtml
@@ -1,15 +1,21 @@
-
+@**@
@ViewData["Title"] - Ombi
-
-
-
-
-
+
+
+
+
+ @**@
+
+
+
+
+
+
diff --git a/Ombi/Ombi/app/app.component.html b/Ombi/Ombi/app/app.component.html
index 87b55177c..8c62d9838 100644
--- a/Ombi/Ombi/app/app.component.html
+++ b/Ombi/Ombi/app/app.component.html
@@ -1 +1,25 @@
-
+
+
+
+
+
+
+
diff --git a/Ombi/Ombi/app/app.component.ts b/Ombi/Ombi/app/app.component.ts
index 3b828746f..f41eaa8c3 100644
--- a/Ombi/Ombi/app/app.component.ts
+++ b/Ombi/Ombi/app/app.component.ts
@@ -1,4 +1,5 @@
import { Component } from '@angular/core';
+import { MenuItem } from 'primeng/components/common/api';
@Component({
selector: 'ombi',
@@ -6,5 +7,17 @@
templateUrl: './app.component.html'
})
export class AppComponent {
-
+ private items: MenuItem[];
+ ngOnInit() {
+ this.items = [
+ {
+ label: 'Ombi',
+ routerLink: ['/']
+ },
+ {
+ label: 'Search',
+ routerLink: ['/search']
+ },
+ ];
+ }
}
\ No newline at end of file
diff --git a/Ombi/Ombi/app/app.module.ts b/Ombi/Ombi/app/app.module.ts
index 05807f52a..e163ff23c 100644
--- a/Ombi/Ombi/app/app.module.ts
+++ b/Ombi/Ombi/app/app.module.ts
@@ -3,8 +3,6 @@ import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
-import 'jquery.nanoscroller';
-
import { RouterModule, Routes } from '@angular/router';
import { HttpModule } from '@angular/http';
diff --git a/Ombi/Ombi/app/config.ts b/Ombi/Ombi/app/config.ts
index a9ad55679..7ae446190 100644
--- a/Ombi/Ombi/app/config.ts
+++ b/Ombi/Ombi/app/config.ts
@@ -1,10 +1,9 @@
// Config
enum envs {
- local,
- test,
- next,
- live
+ local = 0,
+ next = 1,
+ live = 2
}
var envVar = "#{Environment}";
@@ -19,7 +18,6 @@ export var config = {
systemJS: {
bundle: {
[envs.local]: false,
- [envs.test]: true,
[envs.next]: true,
[envs.live]: true
}[env]
diff --git a/Ombi/Ombi/app/search/search.component.html b/Ombi/Ombi/app/search/search.component.html
index 633c82a61..2ac0f76fe 100644
--- a/Ombi/Ombi/app/search/search.component.html
+++ b/Ombi/Ombi/app/search/search.component.html
@@ -1 +1,28 @@
-Search
\ No newline at end of file
+ Search
+Search Para
+
+
+
+
+
\ No newline at end of file
diff --git a/Ombi/Ombi/bower.json b/Ombi/Ombi/bower.json
index 66d9701f8..c7183c60e 100644
--- a/Ombi/Ombi/bower.json
+++ b/Ombi/Ombi/bower.json
@@ -2,12 +2,8 @@
"name": "ombi",
"private": true,
"dependencies": {
- "bootstrap": "3.3.7",
- "jquery": "2.2.0",
- "jquery-validation": "1.14.0",
- "jquery-validation-unobtrusive": "3.2.6",
"PACE": "pace#^1.0.2",
"font-awesome": "^4.7.0"
- }
+ }
}
\ No newline at end of file
diff --git a/Ombi/Ombi/gulpfile.js b/Ombi/Ombi/gulpfile.js
index 1e12fb57e..b18770f22 100644
--- a/Ombi/Ombi/gulpfile.js
+++ b/Ombi/Ombi/gulpfile.js
@@ -47,10 +47,13 @@ var paths = {
file: './node_modules/systemjs/dist/system-polyfills.src.js',
rename: 'system-polyfills'
},
- './bower_components/jquery/dist/jquery.js',
+ {
+ file: './node_modules/jquery/dist/jquery.min.js',
+ rename: 'jquery'
+ },
'./bower_components/PACE/pace.js',
- './primeng/ripple.js',
- './node_modules/nanoscroller/bin/javascripts/jquery.nanoscroller.js',
+ './node_modules/bootstrap/dist/js/bootstrap.js',
+ './node_modules/tether/dist/js/tether.js',
'./systemjs.config.js'
],
dest: './lib/'
@@ -58,9 +61,11 @@ var paths = {
libcss: [ // Normal css files to be copied
{
src: [
- './bower_components/PACE/themes/purple/pace-theme-center-simple.css',
+ './bower_components/PACE/themes/purple/pace-theme-minimal.css',
+ './node_modules/bootstrap/dist/css/bootstrap.css',
+ './bower_components/font-awesome/css/font-awesome.css',
'./node_modules/primeng/resources/primeng.css',
- './node_modules/nanoscroller/bin/css/nanoscroller.css'
+ './node_modules/tether/dist/css/tether.css'
],
dest: './css/lib/'
},
@@ -76,6 +81,20 @@ var paths = {
'./bower_components/font-awesome/fonts/*'
],
dest: './fonts/lib/'
+ },
+ {
+ src: [
+ './node_modules/primeng/resources/themes/omega/fonts/*'
+ ],
+ dest: './fonts/'
+ }
+ ],
+ libimages: [ // Library images
+ {
+ src: [
+ './node_modules/primeng/resources/themes/omega/images/*'
+ ],
+ dest: './images/'
}
],
modules: [ // This is for modules with multiple files that require each other, used when npm can't be used
@@ -176,6 +195,18 @@ gulp.task('libfonts', function () {
return merge(streams);
})
+
+gulp.task('libimages', function () {
+ var streams = []
+ for (let module of paths.libimages) {
+ streams.push(
+ gulp.src(module.src)
+ .pipe(gulp.dest(path.join(paths.wwwroot, module.dest)))
+ );
+ }
+ return merge(streams);
+})
+
gulp.task('modules', function () {
var streams = []
for (let module of paths.modules) {
@@ -237,7 +268,7 @@ gulp.task('typescript', function () {
gulp.task('fullvar', () => { global.full = true });
gulp.task('libs')
-gulp.task('copy', ['lib', 'libcss', 'libfonts', 'npm', 'modules']);
+gulp.task('copy', ['lib', 'libcss', 'libfonts', 'libimages', 'npm', 'modules']);
gulp.task('compile', ['sass']);
gulp.task('build', callback => runSequence('copy', 'compile', callback));
gulp.task('full', callback => runSequence('clean', 'build', callback));
diff --git a/Ombi/Ombi/package.json b/Ombi/Ombi/package.json
index 6c8d0fb82..95b885273 100644
--- a/Ombi/Ombi/package.json
+++ b/Ombi/Ombi/package.json
@@ -16,6 +16,7 @@
"@angular/router": "^4.0.0",
"@types/jquery": "^2.0.33",
"@types/systemjs": "^0.20.2",
+ "bootstrap": "4.0.0-alpha.6",
"core-js": "^2.4.1",
"del": "^2.2.2",
"gulp": "~3.9.1",
@@ -29,6 +30,7 @@
"gulp-sourcemaps": "^1.9.0",
"gulp-systemjs-builder": "^0.15.0",
"gulp-uglify": "^1.5.4",
+ "jquery": "3.2.1",
"merge-stream": "^1.0.1",
"nanoscroller": "^0.8.7",
"primeng": "^2.0.5",
@@ -36,7 +38,8 @@
"rxjs": "^5.0.3",
"systemjs": "^0.19.41",
"systemjs-builder": "^0.15.34",
+ "tether": "^1.4.0",
"typescript": "^2.2.1",
"zone.js": "^0.8.5"
}
-}
\ No newline at end of file
+}
diff --git a/appveyor.yml b/appveyor.yml
index fd3c8ec9a..df2fd8628 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -12,6 +12,7 @@ before_build:
- cmd: cd ombi/ombi
- appveyor-retry dotnet restore
- appveyor-retry npm install
+- appveyor-retry bower install
build_script:
- dotnet build
after_build: