diff --git a/Gruntfile.js b/Gruntfile.js
index 46f67d419..719ca05e6 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -14,8 +14,8 @@ module.exports = function(grunt) {
},
less:{
bootstrap:{
- src: ["NzbDrone.Backbone/Content/Bootstrap/bootstrap.less"],
- dest: "NzbDrone.Backbone/Content/bootstrap.css"
+ src: ["NzbDrone.Backbone/Content/bootstrap/bootstrap.less"],
+ dest: "_output/UI/Content/bootstrap.css"
}
},
@@ -31,20 +31,80 @@ module.exports = function(grunt) {
},
files: {
src: ['NzbDrone.Backbone/**/*emplate.html'],
- dest: 'NzbDrone.Backbone/templates.js'
+ dest: '_output/UI/templates.js'
},
},
+ copy:{
+ index:{
+ src: 'NzbDrone.Backbone/index.html',
+ dest: '_output/UI/index.html'
+ },
+ scripts:{
+ expand:true,
+ cwd: 'NzbDrone.Backbone/',
+ src: '**/*.js',
+ dest: '_output/UI/'
+ },
+ styles:{
+ expand:true,
+ cwd: 'NzbDrone.Backbone/',
+ src: '**/*.css',
+ dest: '_output/UI/'
+ },
+ images:{
+ expand:true,
+ cwd: 'NzbDrone.Backbone/',
+ src: '**/*.png',
+ dest: '_output/UI/'
+ },
+ templates:{
+ expand:true,
+ cwd: 'NzbDrone.Backbone/',
+ src: '**/*emplate.html',
+ dest: '_output/UI/'
+ },
+ fonts:{
+ expand:true,
+ src: 'NzbDrone.Backbone/Content/Fonts/*.*',
+ dest: '_output/UI/Content/Fonts/',
+ flatten: true
+ }
+ },
+
watch:{
bootstrap:{
- files: '<%= less.bootstrap.src %>',
+ files: 'NzbDrone.Backbone/Content/bootstrap/*.less',
tasks: ['less:bootstrap']
},
handlebars:{
files: '<%= handlebars.files.src %>',
tasks: ['handlebars']
+ },
+ copyIndex:{
+ files: '<%= copy.index.src %>',
+ tasks: ['copy:index']
+ },
+ copyScripts:{
+ files: 'NzbDrone.Backbone/**/*.js',
+ tasks: ['copy:scripts']
+ },
+ copyStyles:{
+ files: 'NzbDrone.Backbone/**/*.js',
+ tasks: ['copy:styles']
+ },
+ copyImages:{
+ files: 'NzbDrone.Backbone/**/*.png',
+ tasks: ['copy:images']
+ },
+ copyTemplates:{
+ files: '<%= handlebars.files.src %>',
+ tasks: ['copy:templates']
+ },
+ copyFonts:{
+ files: '<%= copy.fonts.src %>',
+ tasks: ['copy:fonts']
}
-
}
});
@@ -54,8 +114,9 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-copy');
// Default task(s).
- grunt.registerTask('default', ['less:bootstrap','handlebars', 'watch']);
+ grunt.registerTask('default', ['copy','less:bootstrap','handlebars', 'watch']);
};
\ No newline at end of file
diff --git a/NzbDrone.Api/FrontendModule/BootstrapModule.cs b/NzbDrone.Api/FrontendModule/BootstrapModule.cs
deleted file mode 100644
index 3b0bd04a4..000000000
--- a/NzbDrone.Api/FrontendModule/BootstrapModule.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.IO;
-using System.Linq;
-using Nancy;
-using Nancy.Responses;
-
-namespace NzbDrone.Api.FrontendModule
-{
- public class BootstrapModule : NancyModule
- {
- private readonly ICompileLess _lessCompiler;
-
- public BootstrapModule(ICompileLess lessCompiler)
- {
- _lessCompiler = lessCompiler;
- Get[@"static/content/bootstrap/bootstrap.less"] = x => OnGet();
- }
-
- private Response OnGet()
- {
-/* var urlParts = Request.Path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
-
- if (urlParts.Length < 2)
- {
- return new NotFoundResponse();
- }
-
- urlParts[0] = "NzbDrone.Backbone";
-
- var filePath = Path.Combine(urlParts);
-
-
- if (!File.Exists(filePath))
- {
- return new NotFoundResponse();
- }*/
-
- var css = _lessCompiler.Compile(Path.Combine("NzbDrone.Backbone","Content","Bootstrap","bootstrap.less"));
-
- return new TextResponse(HttpStatusCode.OK, css) { ContentType = "text/css" };
- }
- }
-}
\ No newline at end of file
diff --git a/NzbDrone.Api/FrontendModule/IndexModule.cs b/NzbDrone.Api/FrontendModule/IndexModule.cs
index a89a18e5d..45198e141 100644
--- a/NzbDrone.Api/FrontendModule/IndexModule.cs
+++ b/NzbDrone.Api/FrontendModule/IndexModule.cs
@@ -24,7 +24,7 @@ namespace NzbDrone.Api.FrontendModule
}
- return View["NzbDrone.Backbone/index.html"];
+ return View["UI/index.html"];
}
}
}
\ No newline at end of file
diff --git a/NzbDrone.Api/FrontendModule/LessService.cs b/NzbDrone.Api/FrontendModule/LessService.cs
deleted file mode 100644
index b3bac4cbc..000000000
--- a/NzbDrone.Api/FrontendModule/LessService.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System.IO;
-using System.Linq;
-using dotless.Core;
-using dotless.Core.Importers;
-using dotless.Core.Input;
-using dotless.Core.Parser;
-
-namespace NzbDrone.Api.FrontendModule
-{
- public interface ICompileLess
- {
- string Compile(string filePath);
- }
-
- public class LessCompiler : ICompileLess
- {
-
- public string Compile(string filePath)
- {
- var parser = new Parser()
- {
- Importer = new Importer(new LessFileReader(filePath))
- };
-
- var lessEngine = new LessEngine(parser, null, false, true);
- var lessContent = File.ReadAllText(filePath);
- return lessEngine.TransformToCss(lessContent, filePath);
- }
-
-
- class LessFileReader : IFileReader
- {
- private readonly string _rootFolders;
-
- public LessFileReader(string masterFile)
- {
- _rootFolders = new FileInfo(masterFile).Directory.FullName;
- }
-
- public byte[] GetBinaryFileContents(string fileName)
- {
- return File.ReadAllBytes(Path.Combine(_rootFolders, fileName));
- }
-
- public string GetFileContents(string fileName)
- {
- return File.ReadAllText(Path.Combine(_rootFolders, fileName));
- }
-
- public bool DoesFileExist(string fileName)
- {
- return File.Exists(Path.Combine(_rootFolders, fileName));
- }
- }
- }
-}
\ No newline at end of file
diff --git a/NzbDrone.Api/NancyBootstrapper.cs b/NzbDrone.Api/NancyBootstrapper.cs
index d8f7175e5..1c8fae5d3 100644
--- a/NzbDrone.Api/NancyBootstrapper.cs
+++ b/NzbDrone.Api/NancyBootstrapper.cs
@@ -104,7 +104,7 @@ namespace NzbDrone.Api
protected override void ConfigureConventions(NancyConventions nancyConventions)
{
base.ConfigureConventions(nancyConventions);
- Conventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("static", @"NzbDrone.Backbone", new string[] { ".css", ".js", ".html", ".htm", ".jpg", ".jpeg", ".icon", ".gif", ".png", ".woff", ".ttf" }));
+ Conventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("static", @"UI", new[] { ".css", ".js", ".html", ".htm", ".jpg", ".jpeg", ".icon", ".gif", ".png", ".woff", ".ttf" }));
}
}
diff --git a/NzbDrone.Api/NzbDrone.Api.csproj b/NzbDrone.Api/NzbDrone.Api.csproj
index d852823c4..71fa895a8 100644
--- a/NzbDrone.Api/NzbDrone.Api.csproj
+++ b/NzbDrone.Api/NzbDrone.Api.csproj
@@ -61,9 +61,6 @@
False
..\packages\AutoMapper.2.2.1\lib\net40\AutoMapper.dll
-
- ..\packages\DotlessClientOnly.1.3.1.0\lib\dotless.ClientOnly.dll
-
..\packages\FluentValidation.3.4.6.0\lib\Net40\FluentValidation.dll
@@ -106,8 +103,6 @@
-
-
diff --git a/NzbDrone.Api/packages.config b/NzbDrone.Api/packages.config
index a5e2d4c3a..c61a1a28d 100644
--- a/NzbDrone.Api/packages.config
+++ b/NzbDrone.Api/packages.config
@@ -2,7 +2,6 @@
-
diff --git a/NzbDrone.Backbone/Content/Bootstrap/font-awesome.less b/NzbDrone.Backbone/Content/Bootstrap/font-awesome.less
index 3a60645c5..5830acd76 100644
--- a/NzbDrone.Backbone/Content/Bootstrap/font-awesome.less
+++ b/NzbDrone.Backbone/Content/Bootstrap/font-awesome.less
@@ -21,11 +21,13 @@
* Work: Lead Product Designer @ http://kyruus.com
*/
-@FontAwesomePath: "../font";
+@FontAwesomePath: "fonts";
@borderColor: #eee;
@iconMuted: #eee;
.border-radius(@radius) { -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; }
+
+
@font-face {
font-family: 'FontAwesome';
src: url('@{FontAwesomePath}/fontawesome-webfont.eot?v=3.0.1');
diff --git a/NzbDrone.Backbone/Content/font/FontAwesome.otf b/NzbDrone.Backbone/Content/fonts/FontAwesome - Copy.otf
similarity index 100%
rename from NzbDrone.Backbone/Content/font/FontAwesome.otf
rename to NzbDrone.Backbone/Content/fonts/FontAwesome - Copy.otf
diff --git a/NzbDrone.Backbone/Content/fonts/FontAwesome.otf b/NzbDrone.Backbone/Content/fonts/FontAwesome.otf
new file mode 100644
index 000000000..64049bf2e
Binary files /dev/null and b/NzbDrone.Backbone/Content/fonts/FontAwesome.otf differ
diff --git a/NzbDrone.Backbone/Content/font/fontawesome-webfont.eot b/NzbDrone.Backbone/Content/fonts/fontawesome-webfont.eot
similarity index 100%
rename from NzbDrone.Backbone/Content/font/fontawesome-webfont.eot
rename to NzbDrone.Backbone/Content/fonts/fontawesome-webfont.eot
diff --git a/NzbDrone.Backbone/Content/font/fontawesome-webfont.svg b/NzbDrone.Backbone/Content/fonts/fontawesome-webfont.svg
similarity index 100%
rename from NzbDrone.Backbone/Content/font/fontawesome-webfont.svg
rename to NzbDrone.Backbone/Content/fonts/fontawesome-webfont.svg
diff --git a/NzbDrone.Backbone/Content/font/fontawesome-webfont.ttf b/NzbDrone.Backbone/Content/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from NzbDrone.Backbone/Content/font/fontawesome-webfont.ttf
rename to NzbDrone.Backbone/Content/fonts/fontawesome-webfont.ttf
diff --git a/NzbDrone.Backbone/Content/font/fontawesome-webfont.woff b/NzbDrone.Backbone/Content/fonts/fontawesome-webfont.woff
similarity index 100%
rename from NzbDrone.Backbone/Content/font/fontawesome-webfont.woff
rename to NzbDrone.Backbone/Content/fonts/fontawesome-webfont.woff
diff --git a/NzbDrone.Backbone/Index.html b/NzbDrone.Backbone/Index.html
index 519d1e37a..1ed3195e4 100644
--- a/NzbDrone.Backbone/Index.html
+++ b/NzbDrone.Backbone/Index.html
@@ -9,7 +9,7 @@
-
+
diff --git a/NzbDrone.Backbone/NzbDrone.Backbone.csproj b/NzbDrone.Backbone/NzbDrone.Backbone.csproj
index 657d86247..3b55ad3be 100644
--- a/NzbDrone.Backbone/NzbDrone.Backbone.csproj
+++ b/NzbDrone.Backbone/NzbDrone.Backbone.csproj
@@ -66,7 +66,7 @@
-
+
@@ -186,121 +186,121 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/NzbDrone.Console/NzbDrone.Console.csproj b/NzbDrone.Console/NzbDrone.Console.csproj
index 2321d4e93..e4149e3a6 100644
--- a/NzbDrone.Console/NzbDrone.Console.csproj
+++ b/NzbDrone.Console/NzbDrone.Console.csproj
@@ -36,7 +36,7 @@
true
full
false
- ..\_output\Debug\
+ ..\_output\
DEBUG;TRACE
prompt
4
@@ -48,7 +48,7 @@
x86
pdbonly
true
- ..\_output\Release\
+ ..\_output\
TRACE
prompt
4
@@ -104,6 +104,9 @@
+
+ app.config
+
NLog.config
@@ -111,7 +114,6 @@
NLog.xsd
Designer
-
diff --git a/NzbDrone.Console/app.config b/NzbDrone.Console/app.config
deleted file mode 100644
index 46c4e347d..000000000
--- a/NzbDrone.Console/app.config
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/NzbDrone/NzbDrone.csproj b/NzbDrone/NzbDrone.csproj
index 0bac335e5..ba62bd856 100644
--- a/NzbDrone/NzbDrone.csproj
+++ b/NzbDrone/NzbDrone.csproj
@@ -36,7 +36,7 @@
true
full
false
- bin\Debug\
+ ..\_output\
DEBUG;TRACE
prompt
4
@@ -48,7 +48,7 @@
x86
pdbonly
true
- bin\Release\
+ ..\_output\
TRACE
prompt
4
diff --git a/NzbDrone/app.config b/NzbDrone/app.config
index 46c4e347d..36278d6a2 100644
--- a/NzbDrone/app.config
+++ b/NzbDrone/app.config
@@ -5,6 +5,7 @@
+
diff --git a/package.json b/package.json
index 8ca638756..6428cb3c9 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"grunt-contrib-handlebars": "*",
"grunt-contrib-watch": "*",
"grunt-contrib-less": "*",
- "grunt-contrib-concat": "*"
+ "grunt-contrib-concat": "*",
+ "grunt-contrib-copy": "*"
}
}