mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 12:59:39 -07:00
Latest practices... also probably broke some styles - sorry (#1508)
* Latest practices * Lock zone.js to 0.8.16 (for now, see https://github.com/angular/zone.js/pull/887 ) * Use es6-compatible minifier * Attempt to fix pull req appveyor builds * Attempt build fix again * Remove cake gulp publish task - not needed anymore * Use bootswatch and remove unused bootstrap dependency * Add bootstrap * Fix things
This commit is contained in:
parent
d754ef6b81
commit
cd8a44cab8
27 changed files with 2970 additions and 8631 deletions
33
build.cake
33
build.cake
|
@ -95,19 +95,11 @@ Task("SetVersionInfo")
|
||||||
|
|
||||||
|
|
||||||
buildSettings.ArgumentCustomization = args => args.Append("/p:SemVer=" + versionInfo.AssemblySemVer);
|
buildSettings.ArgumentCustomization = args => args.Append("/p:SemVer=" + versionInfo.AssemblySemVer);
|
||||||
buildSettings.ArgumentCustomization = args => args.Append("/p:FullVer=" + fullVer);
|
buildSettings.ArgumentCustomization = args => args.Append("/p:FullVer=" + versionInfo.FullSemVer);
|
||||||
publishSettings.ArgumentCustomization = args => args.Append("/p:SemVer=" + versionInfo.AssemblySemVer);
|
publishSettings.ArgumentCustomization = args => args.Append("/p:SemVer=" + versionInfo.AssemblySemVer);
|
||||||
publishSettings.ArgumentCustomization = args => args.Append("/p:FullVer=" + fullVer);
|
publishSettings.ArgumentCustomization = args => args.Append("/p:FullVer=" + versionInfo.FullSemVer);
|
||||||
buildSettings.VersionSuffix = versionInfo.BranchName;
|
//buildSettings.VersionSuffix = versionInfo.BranchName;
|
||||||
publishSettings.VersionSuffix = versionInfo.BranchName;
|
//publishSettings.VersionSuffix = versionInfo.BranchName;
|
||||||
});
|
|
||||||
|
|
||||||
Task("Restore")
|
|
||||||
.IsDependentOn("SetVersionInfo")
|
|
||||||
.IsDependentOn("Gulp Publish")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
DotNetCoreRestore(projDir);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("NPM")
|
Task("NPM")
|
||||||
|
@ -121,18 +113,15 @@ var settings = new NpmInstallSettings {
|
||||||
NpmInstall(settings);
|
NpmInstall(settings);
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Gulp Publish")
|
Task("Restore")
|
||||||
.IsDependentOn("NPM")
|
.IsDependentOn("SetVersionInfo")
|
||||||
.Does(() => {
|
.IsDependentOn("NPM")
|
||||||
|
.Does(() =>
|
||||||
var runScriptSettings = new NpmRunScriptSettings {
|
{
|
||||||
ScriptName="publish",
|
DotNetCoreRestore(projDir);
|
||||||
WorkingDirectory = webProjDir,
|
|
||||||
};
|
|
||||||
|
|
||||||
NpmRunScript(runScriptSettings);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Task("Build")
|
Task("Build")
|
||||||
.IsDependentOn("Restore")
|
.IsDependentOn("Restore")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
|
|
6
src/.vscode/extensions.json
vendored
Normal file
6
src/.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"Angular.ng-template",
|
||||||
|
"ms-vscode.csharp"
|
||||||
|
]
|
||||||
|
}
|
6
src/.vscode/launch.json
vendored
6
src/.vscode/launch.json
vendored
|
@ -10,17 +10,17 @@
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"preLaunchTask": "build",
|
"preLaunchTask": "build",
|
||||||
// If you have changed target frameworks, make sure to update the program path.
|
// If you have changed target frameworks, make sure to update the program path.
|
||||||
"program": "${workspaceRoot}/Ombi/bin/Debug/netcoreapp1.1/Ombi.dll",
|
"program": "${workspaceRoot}/Ombi/bin/Debug/netcoreapp2.0/Ombi.dll",
|
||||||
"args": [],
|
"args": [],
|
||||||
"cwd": "${workspaceRoot}/Ombi",
|
"cwd": "${workspaceRoot}/Ombi",
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"internalConsoleOptions": "openOnSessionStart",
|
"internalConsoleOptions": "openOnSessionStart",
|
||||||
"launchBrowser": {
|
"launchBrowser": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"args": "${auto-detect-url}",
|
"args": "http://localhost:5000",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "cmd.exe",
|
"command": "cmd.exe",
|
||||||
"args": "/C start ${auto-detect-url}"
|
"args": "/C start http://localhost:5000"
|
||||||
},
|
},
|
||||||
"osx": {
|
"osx": {
|
||||||
"command": "open"
|
"command": "open"
|
||||||
|
|
|
@ -97,7 +97,7 @@ namespace Ombi.Api.Sonarr
|
||||||
|
|
||||||
return await Api.Request<NewSeries>(request);
|
return await Api.Request<NewSeries>(request);
|
||||||
}
|
}
|
||||||
catch (JsonSerializationException e)
|
catch (JsonSerializationException)
|
||||||
{
|
{
|
||||||
var error = await Api.Request<List<SonarrError>>(request);
|
var error = await Api.Request<List<SonarrError>>(request);
|
||||||
var messages = error?.Select(x => x.errorMessage).ToList();
|
var messages = error?.Select(x => x.errorMessage).ToList();
|
||||||
|
|
|
@ -62,7 +62,7 @@ namespace Ombi.Helpers
|
||||||
return ep;
|
return ep;
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
return ep;
|
return ep;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ namespace Ombi.Schedule.Jobs.Radarr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
Logger.LogInformation(LoggingEvents.RadarrCacher, "Radarr is not setup, cannot cache episodes");
|
Logger.LogInformation(LoggingEvents.RadarrCacher, "Radarr is not setup, cannot cache episodes");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,3 @@
|
||||||
table.ui-widget-content {
|
th {
|
||||||
border: 1px solid #1f1f1f !important;
|
|
||||||
background: #1f1f1f !important;
|
|
||||||
}
|
|
||||||
.ui-widget-content {
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.ui-state-default.ui-unselectable-text{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.ui-treetable-toggler.fa.fa-fw.ui-c.fa-caret-right,
|
|
||||||
.ui-treetable-toggler.fa.fa-fw.ui-c.fa-caret-down {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
text-align: left !important;
|
text-align: left !important;
|
||||||
}
|
}
|
|
@ -26,7 +26,7 @@ import { TreeNode, } from "primeng/primeng";
|
||||||
})
|
})
|
||||||
export class TvRequestsComponent implements OnInit, OnDestroy {
|
export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
constructor(private requestService: RequestService,
|
constructor(private requestService: RequestService,
|
||||||
private auth:AuthService) {
|
private auth: AuthService) {
|
||||||
this.searchChanged
|
this.searchChanged
|
||||||
.debounceTime(600) // Wait Xms afterthe last event before emitting last event
|
.debounceTime(600) // Wait Xms afterthe last event before emitting last event
|
||||||
.distinctUntilChanged() // only emit if value is different from previous value
|
.distinctUntilChanged() // only emit if value is different from previous value
|
||||||
|
@ -42,7 +42,7 @@ export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
.subscribe(m => this.tvRequests = this.transformData(m));
|
.subscribe(m => this.tvRequests = this.transformData(m));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
openClosestTab(el:any): void {
|
openClosestTab(el: any): void {
|
||||||
var rowclass = "undefined";
|
var rowclass = "undefined";
|
||||||
el = el.toElement;
|
el = el.toElement;
|
||||||
while (el.className != rowclass) {
|
while (el.className != rowclass) {
|
||||||
|
@ -55,13 +55,12 @@ export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
// the class you specified
|
// the class you specified
|
||||||
|
|
||||||
// Then we loop through the children to find the caret which we want to click
|
// Then we loop through the children to find the caret which we want to click
|
||||||
var caretright = "ui-treetable-toggler fa fa-fw ui-c fa-caret-right";
|
var caretright = "ui-treetable-toggler fa fa-fw ui-clickable fa-caret-right";
|
||||||
var caretdown = "ui-treetable-toggler fa fa-fw ui-c fa-caret-down";
|
var caretdown = "ui-treetable-toggler fa fa-fw ui-clickable fa-caret-down";
|
||||||
for (var value of el.children) {
|
for (var value of el.children) {
|
||||||
// the caret from the ui has 2 class selectors depending on if expanded or not
|
// the caret from the ui has 2 class selectors depending on if expanded or not
|
||||||
// we search for both since we want to still toggle the clicking
|
// we search for both since we want to still toggle the clicking
|
||||||
if (value.className === caretright || value.className === caretdown )
|
if (value.className === caretright || value.className === caretdown) {
|
||||||
{
|
|
||||||
// Then we tell JS to click the element even though we hid it from the UI
|
// Then we tell JS to click the element even though we hid it from the UI
|
||||||
value.click();
|
value.click();
|
||||||
//Break from loop since we no longer need to continue looking
|
//Break from loop since we no longer need to continue looking
|
||||||
|
@ -71,7 +70,7 @@ export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
transformData(data: ITvRequests[]): TreeNode[] {
|
transformData(data: ITvRequests[]): TreeNode[] {
|
||||||
var temp: TreeNode[] = [];
|
var temp: TreeNode[] = [];
|
||||||
data.forEach(function (value) {
|
data.forEach((value) => {
|
||||||
temp.push({
|
temp.push({
|
||||||
"data": value,
|
"data": value,
|
||||||
"children": [{
|
"children": [{
|
||||||
|
@ -121,7 +120,7 @@ export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
//if you scroll really quickly then you start getting duplicates of movies
|
//if you scroll really quickly then you start getting duplicates of movies
|
||||||
//since it's async and some subsequent results return first and then incrementer
|
//since it's async and some subsequent results return first and then incrementer
|
||||||
//is increased so you see movies which had already been gotten show up...
|
//is increased so you see movies which had already been gotten show up...
|
||||||
this.requestService.getTvRequests(this.amountToLoad, this.currentlyLoaded +1)
|
this.requestService.getTvRequests(this.amountToLoad, this.currentlyLoaded + 1)
|
||||||
.takeUntil(this.subscriptions)
|
.takeUntil(this.subscriptions)
|
||||||
.subscribe(x => {
|
.subscribe(x => {
|
||||||
this.tvRequests.push.apply(this.tvRequests, this.transformData(x));
|
this.tvRequests.push.apply(this.tvRequests, this.transformData(x));
|
||||||
|
@ -218,7 +217,7 @@ export class TvRequestsComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
|
|
||||||
private removeRequestFromUi(key: ITvRequests) {
|
private removeRequestFromUi(key: ITvRequests) {
|
||||||
var index = this.tvRequests.indexOf(key, 0);
|
var index = this.tvRequests.findIndex(x => x.data === key);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
this.tvRequests.splice(index, 1);
|
this.tvRequests.splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';
|
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { Subject } from 'rxjs/Subject';
|
import { Subject } from 'rxjs/Subject';
|
||||||
import 'rxjs/add/operator/debounceTime';
|
|
||||||
import 'rxjs/add/operator/distinctUntilChanged';
|
|
||||||
import 'rxjs/add/operator/map';
|
|
||||||
import "rxjs/add/operator/takeUntil";
|
|
||||||
|
|
||||||
import { SearchService } from '../services/search.service';
|
import { SearchService } from '../services/search.service';
|
||||||
import { AuthService } from '../auth/auth.service';
|
import { AuthService } from '../auth/auth.service';
|
||||||
|
@ -19,10 +15,6 @@ import { TreeNode } from "primeng/primeng";
|
||||||
selector: 'tv-search',
|
selector: 'tv-search',
|
||||||
templateUrl: './tvsearch.component.html',
|
templateUrl: './tvsearch.component.html',
|
||||||
styleUrls: ['./../requests/tvrequests.component.scss'],
|
styleUrls: ['./../requests/tvrequests.component.scss'],
|
||||||
//Was required to turn off encapsulation since CSS only should be overridden for this component
|
|
||||||
//However when encapsulation is on angular injects prefixes to all classes so css selectors
|
|
||||||
//Stop working
|
|
||||||
encapsulation: ViewEncapsulation.None
|
|
||||||
})
|
})
|
||||||
export class TvSearchComponent implements OnInit, OnDestroy {
|
export class TvSearchComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
|
@ -67,8 +59,8 @@ export class TvSearchComponent implements OnInit, OnDestroy {
|
||||||
// the class you specified
|
// the class you specified
|
||||||
|
|
||||||
// Then we loop through the children to find the caret which we want to click
|
// Then we loop through the children to find the caret which we want to click
|
||||||
var caretright = "ui-treetable-toggler fa fa-fw ui-c fa-caret-right";
|
var caretright = "ui-treetable-toggler fa fa-fw ui-clickable fa-caret-right";
|
||||||
var caretdown = "ui-treetable-toggler fa fa-fw ui-c fa-caret-down";
|
var caretdown = "ui-treetable-toggler fa fa-fw ui-clickable fa-caret-down";
|
||||||
for (var value of el.children) {
|
for (var value of el.children) {
|
||||||
// the caret from the ui has 2 class selectors depending on if expanded or not
|
// the caret from the ui has 2 class selectors depending on if expanded or not
|
||||||
// we search for both since we want to still toggle the clicking
|
// we search for both since we want to still toggle the clicking
|
||||||
|
|
2
src/Ombi/ClientApp/imports.ts
Normal file
2
src/Ombi/ClientApp/imports.ts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import 'rxjs/add/operator/map';
|
||||||
|
import 'rxjs/add/operator/catch';
|
|
@ -1,4 +1,7 @@
|
||||||
|
import "./styles/base.scss";
|
||||||
|
import "./styles/Themes/plex.scss";
|
||||||
import './polyfills';
|
import './polyfills';
|
||||||
|
import './imports';
|
||||||
import 'bootstrap/dist/js/bootstrap';
|
import 'bootstrap/dist/js/bootstrap';
|
||||||
import 'pace-progress';
|
import 'pace-progress';
|
||||||
|
|
||||||
|
@ -14,6 +17,7 @@ if (module['hot']) {
|
||||||
const newRootElem = document.createElement('ombi');
|
const newRootElem = document.createElement('ombi');
|
||||||
if (oldRootElem && oldRootElem.parentNode) {
|
if (oldRootElem && oldRootElem.parentNode) {
|
||||||
oldRootElem.parentNode.insertBefore(newRootElem, oldRootElem);
|
oldRootElem.parentNode.insertBefore(newRootElem, oldRootElem);
|
||||||
|
oldRootElem.parentNode.removeChild(oldRootElem);
|
||||||
}
|
}
|
||||||
modulePromise.then(appModule => appModule.destroy());
|
modulePromise.then(appModule => appModule.destroy());
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,9 +3,7 @@ $primary-colour: #df691a;
|
||||||
$primary-colour-outline: #ff761b;
|
$primary-colour-outline: #ff761b;
|
||||||
$bg-colour: #333333;
|
$bg-colour: #333333;
|
||||||
$bg-colour-disabled: #252424;
|
$bg-colour-disabled: #252424;
|
||||||
$i:
|
$i:!important;
|
||||||
!important
|
|
||||||
;
|
|
||||||
|
|
||||||
.form-control-custom {
|
.form-control-custom {
|
||||||
background-color: $bg-colour $i;
|
background-color: $bg-colour $i;
|
||||||
|
@ -272,4 +270,12 @@ button.list-group-item:focus {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-widget-content {
|
||||||
|
border: 1px solid #1f1f1f !important;
|
||||||
|
background: #1f1f1f !important;
|
||||||
|
}
|
||||||
|
.ui-widget-content {
|
||||||
|
color: #ffffff;
|
||||||
}
|
}
|
1
src/Ombi/ClientApp/styles/_imports.scss
Normal file
1
src/Ombi/ClientApp/styles/_imports.scss
Normal file
|
@ -0,0 +1 @@
|
||||||
|
@import './styles.scss';
|
|
@ -775,3 +775,11 @@ textarea {
|
||||||
-webkit-box-shadow: none;
|
-webkit-box-shadow: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ui-state-default.ui-unselectable-text{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.ui-treetable-toggler.fa.fa-fw.ui-clickable.fa-caret-right,
|
||||||
|
.ui-treetable-toggler.fa.fa-fw.ui-clickable.fa-caret-down {
|
||||||
|
display: none;
|
||||||
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeIdentifiers>win10-x64;osx.10.12-x64;ubuntu.16.04-x64;debian.8-x64;centos.7-x64;</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win10-x64;osx.10.12-x64;ubuntu.16.04-x64;debian.8-x64;centos.7-x64;</RuntimeIdentifiers>
|
||||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||||
<TypeScriptToolsVersion>2.3</TypeScriptToolsVersion>
|
<TypeScriptToolsVersion>2.5</TypeScriptToolsVersion>
|
||||||
<AssemblyVersion>$(SemVer)</AssemblyVersion>
|
<AssemblyVersion>$(SemVer)</AssemblyVersion>
|
||||||
<FileVersion>$(SemVer)</FileVersion>
|
<FileVersion>$(SemVer)</FileVersion>
|
||||||
<Version>$(FullVer)</Version>
|
<Version>$(FullVer)</Version>
|
||||||
|
@ -30,6 +30,13 @@
|
||||||
<EmbeddedResource Remove="wwwroot\dist\**" />
|
<EmbeddedResource Remove="wwwroot\dist\**" />
|
||||||
<None Remove="wwwroot\dist\**" />
|
<None Remove="wwwroot\dist\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target Name="NpmCommandsDebug" Condition="'$(Configuration)'=='Debug'" AfterTargets="Build">
|
||||||
|
<Exec Command="npm run-script vendor" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="NpmCommandsRelease" Condition="'$(Configuration)'=='Release'" AfterTargets="Build">
|
||||||
|
<Exec Command="npm run-script publish" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Target Name="RunWebpack" AfterTargets="ComputeFilesToPublish">
|
<Target Name="RunWebpack" AfterTargets="ComputeFilesToPublish">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -83,5 +90,13 @@
|
||||||
<DependentUpon>pipe.module.ts</DependentUpon>
|
<DependentUpon>pipe.module.ts</DependentUpon>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Styles\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="wwwroot\loading.css" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
//@import "~primeng/resources/themes/omega/theme.scss";
|
|
||||||
|
|
||||||
/*@import './Themes/plex.scss';*/
|
|
||||||
|
|
||||||
/*$fa-font-path: "../fonts/lib";
|
|
||||||
@import "../bower_components/font-awesome/scss/font-awesome.scss";*/
|
|
||||||
|
|
||||||
@import '../bootstrap.css';
|
|
||||||
@import './Styles.scss';
|
|
||||||
@import '_loading.scss';
|
|
|
@ -1,69 +0,0 @@
|
||||||
.app-loading-container {
|
|
||||||
display: flex;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-box-direction: normal;
|
|
||||||
-webkit-box-pack: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
|
|
||||||
.app-loading {
|
|
||||||
margin: auto;
|
|
||||||
font-size: 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading-one {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-animation: dot 1.3s infinite;
|
|
||||||
-webkit-animation-delay: 0.0s;
|
|
||||||
animation: app-loading-dot 1.3s infinite;
|
|
||||||
animation-delay: 0.0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading-two {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-animation: dot 1.3s infinite;
|
|
||||||
-webkit-animation-delay: 0.2s;
|
|
||||||
animation: app-loading-dot 1.3s infinite;
|
|
||||||
animation-delay: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-loading-three {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-animation: dot 1.3s infinite;
|
|
||||||
-webkit-animation-delay: 0.3s;
|
|
||||||
animation: app-loading-dot 1.3s infinite;
|
|
||||||
animation-delay: 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes app-loading-dot {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes app-loading-dot {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
6998
src/Ombi/Styles/bootstrap.css
vendored
6998
src/Ombi/Styles/bootstrap.css
vendored
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@
|
||||||
<title>Ombi</title>
|
<title>Ombi</title>
|
||||||
<base href="/" />
|
<base href="/" />
|
||||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="~/dist/main.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/loading.css" asp-append-version="true" />
|
||||||
<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
|
||||||
<script src="~/dist/vendor.js" asp-append-version="true" defer></script>
|
<script src="~/dist/vendor.js" asp-append-version="true" defer></script>
|
||||||
<script src="~/dist/main.js" asp-append-version="true" defer></script>
|
<script src="~/dist/main.js" asp-append-version="true" defer></script>
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/// <binding BeforeBuild='build' />
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
|
@ -42,11 +41,11 @@ gulp.task('test_run', function () {
|
||||||
|
|
||||||
gulp.task('prod_var', function () {
|
gulp.task('prod_var', function () {
|
||||||
global.prod = true;
|
global.prod = true;
|
||||||
})
|
});
|
||||||
|
|
||||||
gulp.task('analyse_var', function () {
|
gulp.task('analyse_var', function () {
|
||||||
global.analyse = true;
|
global.analyse = true;
|
||||||
})
|
});
|
||||||
|
|
||||||
gulp.task('clean', function() {
|
gulp.task('clean', function() {
|
||||||
del.sync(outputDir, { force: true });
|
del.sync(outputDir, { force: true });
|
||||||
|
|
4199
src/Ombi/package-lock.json
generated
4199
src/Ombi/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -3,75 +3,80 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"vendor": "gulp vendor",
|
||||||
"publish": "gulp publish"
|
"publish": "gulp publish"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "4.1.3",
|
"@angular/animations": "4.4.1",
|
||||||
"@angular/common": "^4.1.3",
|
"@angular/cdk": "^2.0.0-beta.10",
|
||||||
"@angular/compiler": "4.1.3",
|
"@angular/common": "^4.4.1",
|
||||||
"@angular/core": "4.1.3",
|
"@angular/compiler": "4.4.1",
|
||||||
"@angular/forms": "4.1.3",
|
"@angular/core": "4.4.1",
|
||||||
"@angular/http": "4.1.3",
|
"@angular/forms": "4.4.1",
|
||||||
"@angular/material": "2.0.0-beta.5",
|
"@angular/http": "4.4.1",
|
||||||
"@angular/platform-browser": "4.1.3",
|
"@angular/material": "2.0.0-beta.10",
|
||||||
"@angular/platform-browser-dynamic": "4.1.3",
|
"@angular/platform-browser": "4.4.1",
|
||||||
"@angular/platform-server": "4.1.3",
|
"@angular/platform-browser-dynamic": "4.4.1",
|
||||||
"@angular/router": "4.1.3",
|
"@angular/platform-server": "4.4.1",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.26",
|
"@angular/router": "4.4.1",
|
||||||
"@types/core-js": "^0.9.41",
|
"@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5",
|
||||||
"@types/intro.js": "^2.4.2",
|
"@types/core-js": "^0.9.43",
|
||||||
"@types/node": "7.0.23",
|
"@types/intro.js": "^2.4.3",
|
||||||
|
"@types/node": "8.0.28",
|
||||||
"angular2-jwt": "^0.2.3",
|
"angular2-jwt": "^0.2.3",
|
||||||
"angular2-moment": "^1.3.3",
|
"angular2-moment": "^1.7.0",
|
||||||
"angular2-template-loader": "0.6.2",
|
"angular2-template-loader": "0.6.2",
|
||||||
"aspnet-webpack": "^1.0.29",
|
"aspnet-webpack": "^2.0.1",
|
||||||
"awesome-typescript-loader": "3.1.3",
|
"awesome-typescript-loader": "3.2.3",
|
||||||
"bootstrap": "^3.3.7",
|
"bootstrap": "^3.3.7",
|
||||||
"bootswatch": "^3.3.7",
|
"bootswatch": "^3.3.7",
|
||||||
"core-js": "^2.4.1",
|
"core-js": "^2.5.1",
|
||||||
"css": "2.2.1",
|
"css": "2.2.1",
|
||||||
"css-loader": "0.28.4",
|
"css-loader": "0.28.7",
|
||||||
"del": "^2.2.2",
|
"del": "^3.0.0",
|
||||||
"event-source-polyfill": "0.0.9",
|
"event-source-polyfill": "0.0.9",
|
||||||
"expose-loader": "0.7.3",
|
"expose-loader": "0.7.3",
|
||||||
"extract-text-webpack-plugin": "^2.1.0",
|
"extract-text-webpack-plugin": "^3.0.0",
|
||||||
"file-loader": "0.11.1",
|
"file-loader": "0.11.2",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^3.9.1",
|
||||||
"gulp-run": "^1.7.1",
|
"gulp-run": "^1.7.1",
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"html-loader": "0.4.5",
|
"html-loader": "0.5.1",
|
||||||
"intro.js-mit": "^3.0.0",
|
"intro.js-mit": "^3.0.0",
|
||||||
"jquery": "3.2.1",
|
"jquery": "3.2.1",
|
||||||
"ng2-dragula": "1.5.0",
|
"ng2-dragula": "1.5.0",
|
||||||
"ngx-clipboard": "^8.0.4",
|
"ngx-clipboard": "^8.0.4",
|
||||||
"ngx-infinite-scroll": "^0.5.1",
|
"ngx-infinite-scroll": "^0.5.1",
|
||||||
"node-sass": "^4.5.3",
|
"node-sass": "^4.5.3",
|
||||||
"npm": "^5.4.1",
|
"npm": "^5.4.2",
|
||||||
"pace-progress": "^1.0.2",
|
"pace-progress": "^1.0.2",
|
||||||
"primeng": "^4.0.3",
|
"primeng": "^4.2.1",
|
||||||
"reflect-metadata": "0.1.10",
|
"reflect-metadata": "0.1.10",
|
||||||
"run-sequence": "^1.2.2",
|
"run-sequence": "^2.1.0",
|
||||||
"rxjs": "5.4.0",
|
"rxjs": "5.4.3",
|
||||||
"sass-loader": "^6.0.5",
|
"sass-loader": "^6.0.6",
|
||||||
|
"style-loader": "^0.18.2",
|
||||||
"to-string-loader": "1.1.5",
|
"to-string-loader": "1.1.5",
|
||||||
"typescript": "2.3.4",
|
"typescript": "2.5.2",
|
||||||
"url-loader": "0.5.8",
|
"uglify-es": "^3.1.0",
|
||||||
"webpack": "^2.6.1",
|
"uglifyjs-webpack-plugin": "^1.0.0-beta.2",
|
||||||
"webpack-bundle-analyzer": "^2.8.2",
|
"url-loader": "0.5.9",
|
||||||
"webpack-hot-middleware": "2.18.0",
|
"webpack": "^3.6.0",
|
||||||
"zone.js": "0.8.11"
|
"webpack-bundle-analyzer": "^2.9.0",
|
||||||
|
"webpack-hot-middleware": "2.19.1",
|
||||||
|
"zone.js": "0.8.16"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/chai": "4.0.0",
|
"@types/chai": "4.0.4",
|
||||||
"@types/jasmine": "2.5.48",
|
"@types/jasmine": "2.6.0",
|
||||||
"chai": "4.0.1",
|
"chai": "4.1.2",
|
||||||
"jasmine-core": "2.6.2",
|
"jasmine-core": "2.8.0",
|
||||||
"karma": "1.7.0",
|
"karma": "1.7.1",
|
||||||
"karma-chai": "0.1.0",
|
"karma-chai": "0.1.0",
|
||||||
"karma-chrome-launcher": "2.1.1",
|
"karma-chrome-launcher": "2.2.0",
|
||||||
"karma-cli": "1.0.1",
|
"karma-cli": "1.0.1",
|
||||||
"karma-jasmine": "1.1.0",
|
"karma-jasmine": "1.1.0",
|
||||||
"karma-webpack": "2.0.3"
|
"karma-webpack": "2.0.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ const webpack = require('webpack');
|
||||||
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
|
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
|
||||||
const ExtractTextPlugin = require("extract-text-webpack-plugin");
|
const ExtractTextPlugin = require("extract-text-webpack-plugin");
|
||||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
||||||
|
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
|
||||||
|
|
||||||
module.exports = function (env) {
|
module.exports = function (env) {
|
||||||
const extractCSS = new ExtractTextPlugin('main.css');
|
const extractCSS = new ExtractTextPlugin('main.css');
|
||||||
|
@ -13,7 +14,7 @@ module.exports = function (env) {
|
||||||
const cssLoader = prod ? 'css-loader?minimize' : 'css-loader';
|
const cssLoader = prod ? 'css-loader?minimize' : 'css-loader';
|
||||||
const outputDir = './wwwroot/dist';
|
const outputDir = './wwwroot/dist';
|
||||||
const bundleConfig = {
|
const bundleConfig = {
|
||||||
entry: { 'main': './ClientApp/main.ts', 'styles': './Styles/Themes/plex.scss' },
|
entry: { 'main': './ClientApp/main.ts' },
|
||||||
stats: { modules: false },
|
stats: { modules: false },
|
||||||
context: __dirname,
|
context: __dirname,
|
||||||
resolve: { extensions: ['.ts', '.js'] },
|
resolve: { extensions: ['.ts', '.js'] },
|
||||||
|
@ -28,8 +29,8 @@ module.exports = function (env) {
|
||||||
{ test: /\.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] },
|
{ test: /\.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] },
|
||||||
{ test: /\.html$/, use: 'html-loader?minimize=false' },
|
{ test: /\.html$/, use: 'html-loader?minimize=false' },
|
||||||
{ test: /\.css$/, use: ['to-string-loader', cssLoader] },
|
{ test: /\.css$/, use: ['to-string-loader', cssLoader] },
|
||||||
{ test: /\.scss$/, include: /ClientApp/, use: ['to-string-loader', cssLoader, 'sass-loader'] },
|
{ test: /\.scss$/, include: /ClientApp(\\|\/)app/, use: ["to-string-loader", cssLoader, "sass-loader"] },
|
||||||
{ test: /\.scss$/, include: /Styles/, use: extractCSS.extract({ use: [cssLoader, 'sass-loader'] }) },
|
{ test: /\.scss$/, include: /ClientApp(\\|\/)styles/, use: ["style-loader", cssLoader, "sass-loader"] },
|
||||||
{ test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' }
|
{ test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -42,7 +43,7 @@ module.exports = function (env) {
|
||||||
})
|
})
|
||||||
].concat(prod ? [
|
].concat(prod ? [
|
||||||
// Plugins that apply in production builds only
|
// Plugins that apply in production builds only
|
||||||
new webpack.optimize.UglifyJsPlugin()
|
new UglifyJSPlugin()
|
||||||
] : [
|
] : [
|
||||||
// Plugins that apply in development builds only
|
// Plugins that apply in development builds only
|
||||||
]).concat(analyse ? [
|
]).concat(analyse ? [
|
||||||
|
|
|
@ -2,6 +2,7 @@ const path = require('path');
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
||||||
|
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
|
||||||
|
|
||||||
module.exports = function (env) {
|
module.exports = function (env) {
|
||||||
const extractCSS = new ExtractTextPlugin('vendor.css');
|
const extractCSS = new ExtractTextPlugin('vendor.css');
|
||||||
|
@ -49,6 +50,8 @@ module.exports = function (env) {
|
||||||
'intro.js-mit/intro.js',
|
'intro.js-mit/intro.js',
|
||||||
'intro.js-mit/introjs.css',
|
'intro.js-mit/introjs.css',
|
||||||
'ngx-clipboard',
|
'ngx-clipboard',
|
||||||
|
'bootswatch/superhero/bootstrap.min.css',
|
||||||
|
'style-loader',
|
||||||
//'ng2-dragula',
|
//'ng2-dragula',
|
||||||
//'dragula/dist/dragula.min.css'
|
//'dragula/dist/dragula.min.css'
|
||||||
]
|
]
|
||||||
|
@ -59,6 +62,9 @@ module.exports = function (env) {
|
||||||
library: '[name]_[hash]',
|
library: '[name]_[hash]',
|
||||||
path: path.join(__dirname, outputDir)
|
path: path.join(__dirname, outputDir)
|
||||||
},
|
},
|
||||||
|
node: {
|
||||||
|
fs: "empty",
|
||||||
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
pace: 'pace-progress'
|
pace: 'pace-progress'
|
||||||
|
@ -76,7 +82,7 @@ module.exports = function (env) {
|
||||||
})
|
})
|
||||||
].concat(prod ? [
|
].concat(prod ? [
|
||||||
// Plugins that apply in production builds only
|
// Plugins that apply in production builds only
|
||||||
new webpack.optimize.UglifyJsPlugin()
|
new UglifyJSPlugin()
|
||||||
] : [
|
] : [
|
||||||
// Plugins that apply in development builds only
|
// Plugins that apply in development builds only
|
||||||
]).concat(analyse ? [
|
]).concat(analyse ? [
|
||||||
|
|
69
src/Ombi/wwwroot/loading.css
Normal file
69
src/Ombi/wwwroot/loading.css
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
.app-loading-container {
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading {
|
||||||
|
margin: auto;
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading-one {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-animation: dot 1.3s infinite;
|
||||||
|
-webkit-animation-delay: 0.0s;
|
||||||
|
animation: app-loading-dot 1.3s infinite;
|
||||||
|
animation-delay: 0.0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading-two {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-animation: dot 1.3s infinite;
|
||||||
|
-webkit-animation-delay: 0.2s;
|
||||||
|
animation: app-loading-dot 1.3s infinite;
|
||||||
|
animation-delay: 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading-three {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-animation: dot 1.3s infinite;
|
||||||
|
-webkit-animation-delay: 0.3s;
|
||||||
|
animation: app-loading-dot 1.3s infinite;
|
||||||
|
animation-delay: 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes app-loading-dot {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes app-loading-dot {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue