mirror of https://github.com/Ombi-app/Ombi
commit
90827aa7f9
@ -0,0 +1,16 @@
|
|||||||
|
../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
|
@ -0,0 +1,6 @@
|
|||||||
|
;https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/
|
||||||
|
cd ..
|
||||||
|
dotnet restore
|
||||||
|
dotnet publish -c Release /p:AppRuntimeIdentifier=win10-x64
|
||||||
|
|
||||||
|
exit
|
@ -0,0 +1,9 @@
|
|||||||
|
;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
|
@ -0,0 +1,17 @@
|
|||||||
|
/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*
|
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,242 @@
|
|||||||
|
$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;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,26 @@
|
|||||||
|
@*<!DOCTYPE html>*@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>@ViewData["Title"] - Ombi</title>
|
||||||
|
<base href="@Url.Content("~/")" />
|
||||||
|
<script src="@Url.Content("~/lib/pace.js")?v=@ViewBag.AssemblyVersion"></script>
|
||||||
|
<link href="@Url.Content("~/css/lib/pace-theme-minimal.css")" rel="stylesheet" />
|
||||||
|
<link href="@Url.Content("~/css/base.css")" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="@Url.Content("~/css/Themes/plex.css")" rel="stylesheet" type="text/css" />
|
||||||
|
@*<link href="@Url.Content("~/css/lib/primeng.css")" rel="stylesheet" />*@
|
||||||
|
|
||||||
|
<script src="@Url.Content("~/lib/system.js")?v="></script>
|
||||||
|
<script src="@Url.Content("~/lib/jquery.js")?v="></script>
|
||||||
|
<script src="@Url.Content("~/lib/tether.js")?v="></script>
|
||||||
|
<script src="@Url.Content("~/lib/bootstrap.js")?v="></script>
|
||||||
|
<script src="@Url.Content("~/lib/systemjs.config.js")?v="></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
@RenderBody()
|
||||||
|
<ombi></ombi>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,2 @@
|
|||||||
|
@using Ombi
|
||||||
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
@ -0,0 +1,3 @@
|
|||||||
|
@{
|
||||||
|
Layout = "_Layout";
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { BrowserModule } from '@angular/platform-browser';
|
||||||
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
import { HttpModule } from '@angular/http';
|
||||||
|
|
||||||
|
import { SearchComponent } from './search/search.component';
|
||||||
|
import { PageNotFoundComponent } from './errors/not-found.component';
|
||||||
|
|
||||||
|
// Services
|
||||||
|
import { SearchService } from './services/search.service';
|
||||||
|
import { RequestService } from './services/request.service';
|
||||||
|
|
||||||
|
// Modules
|
||||||
|
import { SettingsModule } from './settings/settings.module';
|
||||||
|
|
||||||
|
import { ButtonModule } from 'primeng/primeng';
|
||||||
|
import { GrowlModule } from 'primeng/components/growl/growl';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{ path: '*', component: PageNotFoundComponent },
|
||||||
|
{ path: 'search', component: SearchComponent }
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forRoot(routes),
|
||||||
|
BrowserModule,
|
||||||
|
BrowserAnimationsModule,
|
||||||
|
HttpModule,
|
||||||
|
GrowlModule,
|
||||||
|
ButtonModule,
|
||||||
|
FormsModule,
|
||||||
|
SettingsModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
AppComponent,
|
||||||
|
PageNotFoundComponent,
|
||||||
|
SearchComponent
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
SearchService,
|
||||||
|
RequestService
|
||||||
|
],
|
||||||
|
bootstrap: [AppComponent]
|
||||||
|
})
|
||||||
|
export class AppModule { }
|
@ -0,0 +1,27 @@
|
|||||||
|
// Config
|
||||||
|
|
||||||
|
enum envs {
|
||||||
|
local = 0,
|
||||||
|
next = 1,
|
||||||
|
live = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
var envVar = "#{Environment}";
|
||||||
|
var env = envs.local;
|
||||||
|
if (envs[envVar]) {
|
||||||
|
env = envs[envVar];
|
||||||
|
}
|
||||||
|
|
||||||
|
export var config = {
|
||||||
|
envs: envs,
|
||||||
|
env: env,
|
||||||
|
systemJS: {
|
||||||
|
bundle: <boolean>{
|
||||||
|
[envs.local]: false,
|
||||||
|
[envs.next]: true,
|
||||||
|
[envs.live]: true
|
||||||
|
}[env]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default config;
|
@ -0,0 +1,7 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
moduleId: module.id,
|
||||||
|
template: '<h2>Page not found</h2>'
|
||||||
|
})
|
||||||
|
export class PageNotFoundComponent { }
|
@ -0,0 +1,13 @@
|
|||||||
|
import './polyfills';
|
||||||
|
|
||||||
|
import { enableProdMode } from '@angular/core';
|
||||||
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||||
|
|
||||||
|
import { AppModule } from './app.module';
|
||||||
|
import { config } from './config';
|
||||||
|
|
||||||
|
if (config.env !== config.envs.local) {
|
||||||
|
enableProdMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
platformBrowserDynamic().bootstrapModule(AppModule);
|
@ -0,0 +1,14 @@
|
|||||||
|
// TypeScript transpiles our app to ES5 but some dependencies are written in ES6 so must polyfill
|
||||||
|
import 'core-js/es6/string';
|
||||||
|
import 'core-js/es6/array';
|
||||||
|
import 'core-js/es6/object';
|
||||||
|
|
||||||
|
import 'core-js/es7/reflect';
|
||||||
|
import 'zone.js/dist/zone';
|
||||||
|
|
||||||
|
import { config } from './config';
|
||||||
|
|
||||||
|
if (config.env === config.envs.local) {
|
||||||
|
Error['stackTraceLimit'] = Infinity;
|
||||||
|
require('zone.js/dist/long-stack-trace-zone');
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "ombi",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"PACE": "pace#^1.0.2",
|
||||||
|
"font-awesome": "^4.7.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"name": "ombi",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/animations": "^4.0.0",
|
||||||
|
"@angular/common": "^4.0.0",
|
||||||
|
"@angular/compiler": "^4.0.0",
|
||||||
|
"@angular/compiler-cli": "^4.0.0",
|
||||||
|
"@angular/core": "^4.0.0",
|
||||||
|
"@angular/forms": "^4.0.0",
|
||||||
|
"@angular/http": "^4.0.0",
|
||||||
|
"@angular/platform-browser": "^4.0.0",
|
||||||
|
"@angular/platform-browser-dynamic": "^4.0.0",
|
||||||
|
"@angular/platform-server": "^4.0.0",
|
||||||
|
"@angular/router": "^4.0.0",
|
||||||
|
"@types/jquery": "^2.0.33",
|
||||||
|
"@types/systemjs": "^0.20.2",
|
||||||
|
"core-js": "^2.4.1",
|
||||||
|
"del": "^2.2.2",
|
||||||
|
"gulp": "~3.9.1",
|
||||||
|
"gulp-changed": "^1.3.0",
|
||||||
|
"gulp-clean-css": "^3.0.4",
|
||||||
|
"gulp-filter": "^5.0.0",
|
||||||
|
"gulp-if": "^2.0.2",
|
||||||
|
"gulp-rename": "^1.2.2",
|
||||||
|
"gulp-run": "^1.7.1",
|
||||||
|
"gulp-sass": "^2.3.2",
|
||||||
|
"gulp-sourcemaps": "^1.9.0",
|
||||||
|
"gulp-systemjs-builder": "^0.15.0",
|
||||||
|
"gulp-uglify": "^2.1.2",
|
||||||
|
"jquery": "2.2.1",
|
||||||
|
"merge-stream": "^1.0.1",
|
||||||
|
"nanoscroller": "^0.8.7",
|
||||||
|
"primeng": "^2.0.5",
|
||||||
|
"run-sequence": "^1.2.2",
|
||||||
|
"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",
|
||||||
|
"bootstrap": "3.3.6"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"lib": [ "es5", "es2015" ],
|
||||||
|
"module": "commonjs",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"sourceMap": true,
|
||||||
|
"strictNullChecks": true,
|
||||||
|
"noUnusedLocals": true,
|
||||||
|
"noImplicitThis": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noImplicitAny": true,
|
||||||
|
"suppressImplicitAnyIndexErrors": true,
|
||||||
|
"alwaysStrict": true,
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"skipLibCheck": true
|
||||||
|
},
|
||||||
|
"compileOnSave": true
|
||||||
|
}
|
Loading…
Reference in new issue