mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 02:26:55 -07:00
The start of a new world.
This commit is contained in:
parent
4836ab7e6c
commit
99c04e389f
33 changed files with 821 additions and 0 deletions
16
Ombi/.gitignore
vendored
Normal file
16
Ombi/.gitignore
vendored
Normal file
|
@ -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
|
4
Ombi/Build/publish windows.bat
Normal file
4
Ombi/Build/publish windows.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
;https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/
|
||||
cd ..
|
||||
dotnet restore
|
||||
dotnet publish -c Release -r win10-x64
|
7
Ombi/Build/publish.bat
Normal file
7
Ombi/Build/publish.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
;https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/
|
||||
cd ..
|
||||
dotnet restore
|
||||
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
|
28
Ombi/Ombi.sln
Normal file
28
Ombi/Ombi.sln
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
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
|
||||
Build\publish windows.bat = Build\publish windows.bat
|
||||
Build\publish.bat = Build\publish.bat
|
||||
EndProjectSection
|
||||
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
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
3
Ombi/Ombi/.bowerrc
Normal file
3
Ombi/Ombi/.bowerrc
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"directory": "bower_components"
|
||||
}
|
17
Ombi/Ombi/.gitignore
vendored
Normal file
17
Ombi/Ombi/.gitignore
vendored
Normal file
|
@ -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*
|
35
Ombi/Ombi/Controllers/HomeController.cs
Normal file
35
Ombi/Ombi/Controllers/HomeController.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
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();
|
||||
}
|
||||
}
|
||||
}
|
32
Ombi/Ombi/Ombi.csproj
Normal file
32
Ombi/Ombi/Ombi.csproj
Normal file
|
@ -0,0 +1,32 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp1.0</TargetFramework>
|
||||
<RuntimeIdentifiers>win10-x64;osx.10.12-x64;ubuntu.16.10-x64;debian.8-x64;</RuntimeIdentifiers>
|
||||
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore" Version="1.0.3" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.1" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Styles\" />
|
||||
<Folder Include="app\" />
|
||||
<Content Include="app\**\*.js" CopyToPublishDirectory="PreserveNewest" />
|
||||
<Content Include="app\**\*.html" CopyToPublishDirectory="PreserveNewest" />
|
||||
<Content Include="app\**\*.css" CopyToPublishDirectory="PreserveNewest" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="app\search\search.component.js.map">
|
||||
<DependentUpon>search.component.js</DependentUpon>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
24
Ombi/Ombi/Program.cs
Normal file
24
Ombi/Ombi/Program.cs
Normal file
|
@ -0,0 +1,24 @@
|
|||
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<Startup>()
|
||||
.Build();
|
||||
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
}
|
22
Ombi/Ombi/Properties/launchSettings.json
Normal file
22
Ombi/Ombi/Properties/launchSettings.json
Normal file
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
75
Ombi/Ombi/Startup.cs
Normal file
75
Ombi/Ombi/Startup.cs
Normal file
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.StaticFiles;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Ombi
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
public Startup(IHostingEnvironment env)
|
||||
{
|
||||
var builder = new ConfigurationBuilder()
|
||||
.SetBasePath(env.ContentRootPath)
|
||||
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
|
||||
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: 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();
|
||||
}
|
||||
|
||||
// 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();
|
||||
app.UseBrowserLink();
|
||||
}
|
||||
else
|
||||
{
|
||||
app.UseExceptionHandler("/Home/Error");
|
||||
}
|
||||
|
||||
app.UseStaticFiles();
|
||||
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.MapRoute(
|
||||
name: "spa-fallback",
|
||||
template: "{*url}",
|
||||
defaults: new { controller = "Home", action = "Index" });
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
1
Ombi/Ombi/Views/Home/Index.cshtml
Normal file
1
Ombi/Ombi/Views/Home/Index.cshtml
Normal file
|
@ -0,0 +1 @@
|
|||
|
14
Ombi/Ombi/Views/Shared/Error.cshtml
Normal file
14
Ombi/Ombi/Views/Shared/Error.cshtml
Normal file
|
@ -0,0 +1,14 @@
|
|||
@{
|
||||
ViewData["Title"] = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
<h3>Development Mode</h3>
|
||||
<p>
|
||||
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Development environment should not be enabled in deployed applications</strong>, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>, and restarting the application.
|
||||
</p>
|
20
Ombi/Ombi/Views/Shared/_Layout.cshtml
Normal file
20
Ombi/Ombi/Views/Shared/_Layout.cshtml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!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("~/")" />
|
||||
<link href="@Url.Content("~/css/lib/pace-theme-center-simple.css")" rel="stylesheet" />
|
||||
<link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<script src="@Url.Content("~/lib/system.js")?v=@ViewBag.AssemblyVersion"></script>
|
||||
<script src="@Url.Content("~/lib/jquery.js")?v=@ViewBag.AssemblyVersion"></script>
|
||||
<script src="@Url.Content("~/lib/systemjs.config.js")?v=@ViewBag.AssemblyVersion"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@RenderBody()
|
||||
<ombi></ombi>
|
||||
</body>
|
||||
</html>
|
2
Ombi/Ombi/Views/_ViewImports.cshtml
Normal file
2
Ombi/Ombi/Views/_ViewImports.cshtml
Normal file
|
@ -0,0 +1,2 @@
|
|||
@using Ombi
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
3
Ombi/Ombi/Views/_ViewStart.cshtml
Normal file
3
Ombi/Ombi/Views/_ViewStart.cshtml
Normal file
|
@ -0,0 +1,3 @@
|
|||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
1
Ombi/Ombi/app/app.component.html
Normal file
1
Ombi/Ombi/app/app.component.html
Normal file
|
@ -0,0 +1 @@
|
|||
<router-outlet></router-outlet>
|
10
Ombi/Ombi/app/app.component.ts
Normal file
10
Ombi/Ombi/app/app.component.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'ombi',
|
||||
moduleId: module.id,
|
||||
templateUrl: './app.component.html'
|
||||
})
|
||||
export class AppComponent {
|
||||
|
||||
}
|
44
Ombi/Ombi/app/app.module.ts
Normal file
44
Ombi/Ombi/app/app.module.ts
Normal file
|
@ -0,0 +1,44 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
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';
|
||||
|
||||
import { SearchComponent } from './search/search.component';
|
||||
import { PageNotFoundComponent } from './errors/not-found.component';
|
||||
|
||||
|
||||
import { MenubarModule } from 'primeng/components/menubar/menubar';
|
||||
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,
|
||||
MenubarModule,
|
||||
GrowlModule,
|
||||
//ITAdminModule
|
||||
],
|
||||
declarations: [
|
||||
AppComponent,
|
||||
PageNotFoundComponent,
|
||||
SearchComponent
|
||||
],
|
||||
providers: [
|
||||
//MessageService,
|
||||
//UtilService
|
||||
],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
export class AppModule { }
|
29
Ombi/Ombi/app/config.ts
Normal file
29
Ombi/Ombi/app/config.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
// Config
|
||||
|
||||
enum envs {
|
||||
local,
|
||||
test,
|
||||
next,
|
||||
live
|
||||
}
|
||||
|
||||
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.test]: true,
|
||||
[envs.next]: true,
|
||||
[envs.live]: true
|
||||
}[env]
|
||||
}
|
||||
}
|
||||
|
||||
export default config;
|
7
Ombi/Ombi/app/errors/not-found.component.ts
Normal file
7
Ombi/Ombi/app/errors/not-found.component.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
template: '<h2>Page not found</h2>'
|
||||
})
|
||||
export class PageNotFoundComponent { }
|
13
Ombi/Ombi/app/main.ts
Normal file
13
Ombi/Ombi/app/main.ts
Normal file
|
@ -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);
|
14
Ombi/Ombi/app/polyfills.ts
Normal file
14
Ombi/Ombi/app/polyfills.ts
Normal file
|
@ -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');
|
||||
}
|
1
Ombi/Ombi/app/search/search.component.html
Normal file
1
Ombi/Ombi/app/search/search.component.html
Normal file
|
@ -0,0 +1 @@
|
|||
<h1>Search</h1>
|
10
Ombi/Ombi/app/search/search.component.ts
Normal file
10
Ombi/Ombi/app/search/search.component.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'ombi',
|
||||
moduleId: module.id,
|
||||
templateUrl: './search.component.html'
|
||||
})
|
||||
export class SearchComponent {
|
||||
|
||||
}
|
10
Ombi/Ombi/appsettings.Development.json
Normal file
10
Ombi/Ombi/appsettings.Development.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"Logging": {
|
||||
"IncludeScopes": false,
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"System": "Information",
|
||||
"Microsoft": "Information"
|
||||
}
|
||||
}
|
||||
}
|
8
Ombi/Ombi/appsettings.json
Normal file
8
Ombi/Ombi/appsettings.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"Logging": {
|
||||
"IncludeScopes": false,
|
||||
"LogLevel": {
|
||||
"Default": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
13
Ombi/Ombi/bower.json
Normal file
13
Ombi/Ombi/bower.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
24
Ombi/Ombi/bundleconfig.json
Normal file
24
Ombi/Ombi/bundleconfig.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
// Configure bundling and minification for the project.
|
||||
// More info at https://go.microsoft.com/fwlink/?LinkId=808241
|
||||
[
|
||||
{
|
||||
"outputFileName": "wwwroot/css/site.min.css",
|
||||
// An array of relative input file paths. Globbing patterns supported
|
||||
"inputFiles": [
|
||||
"wwwroot/css/site.css"
|
||||
]
|
||||
},
|
||||
{
|
||||
"outputFileName": "wwwroot/js/site.min.js",
|
||||
"inputFiles": [
|
||||
"wwwroot/js/site.js"
|
||||
],
|
||||
// Optionally specify minification options
|
||||
"minify": {
|
||||
"enabled": true,
|
||||
"renameLocals": true
|
||||
},
|
||||
// Optionally generate .map file
|
||||
"sourceMap": false
|
||||
}
|
||||
]
|
252
Ombi/Ombi/gulpfile.js
Normal file
252
Ombi/Ombi/gulpfile.js
Normal file
|
@ -0,0 +1,252 @@
|
|||
/// <binding BeforeBuild='build' Clean='clean' ProjectOpened='watch' />
|
||||
'use strict';
|
||||
var gulp = require('gulp');
|
||||
var sass = require('gulp-sass');
|
||||
var changed = require('gulp-changed');
|
||||
var rename = require('gulp-rename');
|
||||
var uglify = require('gulp-uglify');
|
||||
var sourcemaps = require('gulp-sourcemaps');
|
||||
var path = require('path');
|
||||
var del = require('del');
|
||||
var merge = require('merge-stream');
|
||||
var gulpif = require('gulp-if');
|
||||
var runSequence = require('run-sequence');
|
||||
var cleancss = require('gulp-clean-css');
|
||||
var filter = require('gulp-filter');
|
||||
var systemJSBuilder = require('systemjs-builder');
|
||||
var run = require('gulp-run');
|
||||
|
||||
var paths = {
|
||||
wwwroot: './wwwroot/',
|
||||
npm: { // These will be resolved automatically and copied to output directory as its name, only works for pre-bundled modules e.g. angular
|
||||
src: [
|
||||
'@angular/animations',
|
||||
'@angular/animations/browser',
|
||||
'@angular/core',
|
||||
'@angular/common',
|
||||
'@angular/compiler',
|
||||
'@angular/platform-browser',
|
||||
'@angular/platform-browser-dynamic',
|
||||
'@angular/http',
|
||||
'@angular/router',
|
||||
'@angular/forms'
|
||||
],
|
||||
dest: './lib'
|
||||
},
|
||||
lib: { // These are simple single-file dependencies with optional rename, for more files or folders use modules
|
||||
src: [
|
||||
{
|
||||
file: './node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js',
|
||||
rename: '@angular/platform-browser/animations'
|
||||
},
|
||||
{
|
||||
file: './node_modules/systemjs/dist/system.src.js',
|
||||
rename: 'system'
|
||||
},
|
||||
{
|
||||
file: './node_modules/systemjs/dist/system-polyfills.src.js',
|
||||
rename: 'system-polyfills'
|
||||
},
|
||||
'./bower_components/jquery/dist/jquery.js',
|
||||
'./bower_components/PACE/pace.js',
|
||||
'./primeng/ripple.js',
|
||||
'./node_modules/nanoscroller/bin/javascripts/jquery.nanoscroller.js',
|
||||
'./systemjs.config.js'
|
||||
],
|
||||
dest: './lib/'
|
||||
},
|
||||
libcss: [ // Normal css files to be copied
|
||||
{
|
||||
src: [
|
||||
'./bower_components/PACE/themes/purple/pace-theme-center-simple.css',
|
||||
'./node_modules/primeng/resources/primeng.css',
|
||||
'./node_modules/nanoscroller/bin/css/nanoscroller.css'
|
||||
],
|
||||
dest: './css/lib/'
|
||||
},
|
||||
{
|
||||
src: './Styles/**/*.css',
|
||||
dest: './css',
|
||||
filter: '**/*.css'
|
||||
}
|
||||
],
|
||||
libfonts: [ // Library fonts
|
||||
{
|
||||
src: [
|
||||
'./bower_components/font-awesome/fonts/*'
|
||||
],
|
||||
dest: './fonts/lib/'
|
||||
}
|
||||
],
|
||||
modules: [ // This is for modules with multiple files that require each other, used when npm can't be used
|
||||
{
|
||||
name: 'zone.js',
|
||||
src: ['./node_modules/zone.js/**/*.js'],
|
||||
dest: './lib/zone.js/'
|
||||
},
|
||||
{
|
||||
name: 'rxjs',
|
||||
src: ['./node_modules/rxjs/**/*.js', '!./node_modules/rxjs/src/**/*.js'],
|
||||
dest: './lib/rxjs/'
|
||||
},
|
||||
{
|
||||
name: 'core-js',
|
||||
src: ['./node_modules/core-js/**/*.js'],
|
||||
dest: './lib/core-js/'
|
||||
},
|
||||
{
|
||||
name: 'primeng',
|
||||
src: './node_modules/primeng/**/*.js',
|
||||
dest: './lib/primeng/'
|
||||
}
|
||||
],
|
||||
sass: { // Simple sass->css compilation
|
||||
src: ['./Styles/**/*.scss', '!./Styles/primeng/**'],
|
||||
dest: './css/',
|
||||
filter: '**/*.css'
|
||||
},
|
||||
bundle: { // This is the config for the bundler, you shouldn't need to change this
|
||||
root: './',
|
||||
dest: './lib/bundle.js',
|
||||
bundle: 'app/main.js',
|
||||
}
|
||||
}
|
||||
|
||||
gulp.task('npm', function () {
|
||||
var streams = []
|
||||
for (let module of paths.npm.src) {
|
||||
let file = require.resolve(module);
|
||||
streams.push(
|
||||
gulp.src(file)
|
||||
.pipe(gulpif(global.full, sourcemaps.init()))
|
||||
.pipe(gulpif(global.full, uglify({ source_map: true })))
|
||||
.pipe(rename((path => { path.basename = module })))
|
||||
.pipe(gulpif(global.full, sourcemaps.write('../maps')))
|
||||
.pipe(gulp.dest(path.join(paths.wwwroot, paths.npm.dest)))
|
||||
);
|
||||
}
|
||||
return merge(streams);
|
||||
})
|
||||
|
||||
gulp.task('lib', function () {
|
||||
var streams = []
|
||||
for (let module of paths.lib.src) {
|
||||
streams.push(
|
||||
gulp.src(typeof module === "string" ? module : module.file)
|
||||
.pipe(gulpif(global.full, sourcemaps.init()))
|
||||
.pipe(gulpif(global.full, uglify({ source_map: true })))
|
||||
.pipe(rename(function (path) {
|
||||
if (typeof module !== "string" && module.rename) {
|
||||
path.basename = module.rename;
|
||||
}
|
||||
}))
|
||||
.pipe(gulpif(global.full, sourcemaps.write('maps')))
|
||||
.pipe(gulp.dest(path.join(paths.wwwroot, paths.lib.dest)))
|
||||
);
|
||||
}
|
||||
return merge(streams);
|
||||
})
|
||||
|
||||
gulp.task('libcss', function () {
|
||||
var streams = []
|
||||
for (let module of paths.libcss) {
|
||||
var f = filter("**/*.css", { restore: true });
|
||||
streams.push(
|
||||
gulp.src(module.src)
|
||||
.pipe(f)
|
||||
.pipe(gulpif(global.full, sourcemaps.init()))
|
||||
.pipe(gulpif(global.full, cleancss()))
|
||||
.pipe(gulpif(global.full, sourcemaps.write(`${module.name ? '.' : ''}./maps/${module.name ? module.name : ''}`)))
|
||||
.pipe(f.restore)
|
||||
.pipe(gulp.dest(path.join(paths.wwwroot, module.dest)))
|
||||
);
|
||||
}
|
||||
return merge(streams);
|
||||
})
|
||||
|
||||
|
||||
gulp.task('libfonts', function () {
|
||||
var streams = []
|
||||
for (let module of paths.libfonts) {
|
||||
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) {
|
||||
streams.push(
|
||||
gulp.src(module.src)
|
||||
.pipe(gulpif(global.full, sourcemaps.init()))
|
||||
.pipe(gulpif(global.full, uglify({ source_map: true })))
|
||||
.pipe(gulpif(global.full, sourcemaps.write(`${module.name ? '.' : ''}./maps/${module.name ? module.name : ''}`)))
|
||||
.pipe(gulp.dest(path.join(paths.wwwroot, module.dest)))
|
||||
);
|
||||
}
|
||||
return merge(streams);
|
||||
})
|
||||
|
||||
gulp.task('sass', function () {
|
||||
return gulp.src(paths.sass.src)
|
||||
.pipe(changed(paths.sass.dest))
|
||||
.pipe(gulpif(global.full, sourcemaps.init()))
|
||||
.pipe(sass({ outputStyle: global.full ? 'compressed' : 'nested' }).on('error', sass.logError))
|
||||
.pipe(gulpif(global.full, sourcemaps.write('maps')))
|
||||
.pipe(gulp.dest(path.join(paths.wwwroot, paths.sass.dest)))
|
||||
});
|
||||
|
||||
gulp.task('bundle', function () {
|
||||
var builder = new systemJSBuilder(paths.bundle.root);
|
||||
builder.config({
|
||||
baseURL: paths.wwwroot,
|
||||
packages: {
|
||||
'.': {
|
||||
defaultExtension: 'js'
|
||||
}
|
||||
},
|
||||
paths: {
|
||||
'*': 'lib/*',
|
||||
'app/*': 'app/*'
|
||||
}
|
||||
});
|
||||
del.sync(path.join(paths.wwwroot, paths.bundle.dest), { force: true });
|
||||
return builder.bundle(paths.bundle.bundle, path.join(paths.wwwroot, paths.bundle.dest), {
|
||||
sourceMaps: true
|
||||
})
|
||||
})
|
||||
|
||||
gulp.task('clean', function () {
|
||||
return del([
|
||||
...paths.npm.src.map(x => path.join(paths.npm.dest, x + "**")),
|
||||
paths.sass.dest + paths.sass.filter,
|
||||
paths.lib.dest,
|
||||
paths.bundle.dest,
|
||||
...paths.modules.map(m => m.dest),
|
||||
...paths.libcss.map(m => m.dest + (m.filter ? m.filter : '')),
|
||||
...paths.libfonts.map(m => m.dest)
|
||||
].map(x => path.join(paths.wwwroot, x)), { force: true });
|
||||
})
|
||||
|
||||
gulp.task('typescript', function () {
|
||||
return run('tsc').exec();
|
||||
});
|
||||
|
||||
gulp.task('fullvar', () => { global.full = true });
|
||||
gulp.task('libs')
|
||||
gulp.task('copy', ['lib', 'libcss', 'libfonts', 'npm', 'modules']);
|
||||
gulp.task('compile', ['sass']);
|
||||
gulp.task('build', callback => runSequence('copy', 'compile', callback));
|
||||
gulp.task('full', callback => runSequence('clean', 'build', callback));
|
||||
|
||||
// Use this in a build server environment to compile and bundle everything
|
||||
gulp.task('publish', callback => runSequence('fullvar', 'full', 'typescript', 'bundle', callback));
|
||||
|
||||
// Auto compiles sass files on change, note that this doesn't seem to pick up new files at the moment
|
||||
gulp.task('watch', function () {
|
||||
gulp.watch(paths.sass.src, ['sass']);
|
||||
gulp.watch('./Styles/**/*.css', ['libcss']); // legacy css
|
||||
});
|
42
Ombi/Ombi/package.json
Normal file
42
Ombi/Ombi/package.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"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": "^1.5.4",
|
||||
"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",
|
||||
"typescript": "^2.2.1",
|
||||
"zone.js": "^0.8.5"
|
||||
}
|
||||
}
|
20
Ombi/Ombi/systemjs.config.ts
Normal file
20
Ombi/Ombi/systemjs.config.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
System.import('/app/config.js').then((module: any) => {
|
||||
var config = module.config.systemJS;
|
||||
System.config({
|
||||
baseURL: '/lib',
|
||||
packages: {
|
||||
'.': {
|
||||
defaultExtension: 'js'
|
||||
}
|
||||
},
|
||||
map: { app: '../app' }
|
||||
})
|
||||
|
||||
if (config.bundle) {
|
||||
System.import('bundle').then(() => {
|
||||
System.import('/app/main');
|
||||
})
|
||||
} else {
|
||||
System.import('/app/main')
|
||||
}
|
||||
});
|
20
Ombi/Ombi/tsconfig.json
Normal file
20
Ombi/Ombi/tsconfig.json
Normal file
|
@ -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…
Add table
Add a link
Reference in a new issue