diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/home/app.ts b/src/Server/Coderr.Server.Web/ClientApp/components/home/app.ts
index c2d796a5..f1e1f69f 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/home/app.ts
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/home/app.ts
@@ -3,7 +3,7 @@ import { Component } from 'vue-property-decorator';
@Component({
components: {
- TopMenu: require('./navmenu/navmenu.vue.html')
+ TopMenu: require('./navmenu/navmenu.vue.html').default
}
})
export default class AppComponent extends Vue {
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/home/home.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/home/home.vue.html
index 5bf37eb3..be94be5b 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/home/home.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/home/home.vue.html
@@ -1,6 +1,6 @@
-
+
@@ -94,7 +94,7 @@
Disable Coderr in Development environments
-
+
Welcome to Coderr!
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/app.ts b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/app.ts
index d1e2b644..4e6cc1f7 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/app.ts
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/app.ts
@@ -5,7 +5,7 @@ import { Component, Watch } from 'vue-property-decorator';
@Component({
components: {
- ManageAppMenu: require('./menu.vue.html')
+ ManageAppMenu: require('./menu.vue.html').default
}
})
export default class ManageComponent extends Vue {
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/security/security.ts b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/security/security.ts
index 12d44be0..f7e1d6ab 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/security/security.ts
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/security/security.ts
@@ -99,6 +99,9 @@ export default class ManageHomeComponent extends Vue {
cmd.EmailAddress = this.inviteEmail;
AppRoot.Instance.apiClient.command(cmd);
AppRoot.notify('Invitation have been sent.');
+ var dto = new GetApplicationTeamResultInvitation();
+ dto.EmailAddress = cmd.EmailAddress;
+ this.invites.push(dto);
this.inviteEmail = '';
}
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/settings/settings.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/settings/settings.vue.html
index efcada6c..fdbf9ba1 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/settings/settings.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/application/settings/settings.vue.html
@@ -24,7 +24,7 @@
-
+
App key
{{appKey}}
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-create.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-create.vue.html
index 4e36f968..1800ce88 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-create.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-create.vue.html
@@ -56,7 +56,7 @@
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-edit.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-edit.vue.html
index 5163059a..664d60eb 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-edit.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikey-edit.vue.html
@@ -72,8 +72,8 @@
- Save
- Delete
+ Save
+ Delete
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikeys.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikeys.vue.html
index ab198823..2c17b2c4 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikeys.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/apikeys/apikeys.vue.html
@@ -6,11 +6,11 @@
-
+
Created for
@@ -31,8 +31,11 @@
-
+
+ No keys have been created.
+
+
ApiKeys are used to communicate with Coderr through the HTTP api.
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/home/home.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/home/home.vue.html
index e8e93587..24e38308 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/home/home.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/home/home.vue.html
@@ -4,7 +4,11 @@
Administration area
Welcome to the administration area.
-
Here you can configure most of the aspects in Coderr. To manage an application, select to the application that you want to manage in the top left menu.
+
+ Here you can configure most of the aspects in Coderr. To manage an application, select to the application that you want to manage in the top left menu.
+
+
+
You can also create a new application by pressing the button below.
Create application
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/manage.ts b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/manage.ts
index c70ee31b..813c9e45 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/manage.ts
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/manage.ts
@@ -3,7 +3,7 @@ import { Component } from 'vue-property-decorator';
@Component({
components: {
- ManageMenu: require('./menu.vue.html')
+ ManageMenu: require('./menu.vue.html').default
}
})
export default class ManageComponent extends Vue {
diff --git a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/menu.vue.html b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/menu.vue.html
index 23cb4c0c..111df41c 100644
--- a/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/menu.vue.html
+++ b/src/Server/Coderr.Server.Web/ClientApp/components/manage/system/menu.vue.html
@@ -6,7 +6,7 @@
Management overview
- Api keys
+ Api keys
-
+
-
+
diff --git a/src/Server/Coderr.Server.Web/Controllers/ReportReceiverController.cs b/src/Server/Coderr.Server.Web/Controllers/ReportReceiverController.cs
index fed817e6..fe5745e4 100644
--- a/src/Server/Coderr.Server.Web/Controllers/ReportReceiverController.cs
+++ b/src/Server/Coderr.Server.Web/Controllers/ReportReceiverController.cs
@@ -46,7 +46,7 @@ public IActionResult Index()
}
[HttpPost]
- [Route("receiver/report/{appKey}")]
+ [Route("receiver/report/{appKey}"), Transactional]
public async Task
Post(string appKey, string sig)
{
var contentLength = Request.ContentLength;
diff --git a/src/Server/Coderr.Server.Web/GulpFile.js b/src/Server/Coderr.Server.Web/GulpFile.js
new file mode 100644
index 00000000..0e2aed07
--- /dev/null
+++ b/src/Server/Coderr.Server.Web/GulpFile.js
@@ -0,0 +1,79 @@
+///
+"use strict";
+
+var gulp = require("gulp"),
+ sass = require("gulp-sass"),
+ concat = require("gulp-concat"),
+ cssmin = require("gulp-cssmin"),
+ uglify = require("gulp-uglify");
+
+
+var config = {
+ scripts: {
+ bundle: 'bundle.min.js',
+ dest: 'wwwroot/dist/js/',
+ src: [
+ 'node_modules/jquery/dist/jquery.js',
+ 'node_modules/popper/dist/popper.js',
+ 'node_modules/bootstrap/dist/js/bootstrap.js'
+ ],
+ glob: 'wwwroot/js/**/*.js'
+ },
+ styles: {
+ bundle: 'bundle.min.css',
+ dest: 'wwwroot/dist/css/',
+ src: [
+ 'wwwroot/dist/css/*.css',
+ "!**/*.min.css"
+ ]
+ },
+ sass: {
+ dest: 'wwwroot/dist/css/',
+ src: [
+ 'wwwroot/scss/*.scss',
+ '!**/coderr-variables.scss'
+ ],
+ includePaths: ['./node_modules/bootstrap/scss']
+ },
+ fonts: {
+ dest: 'wwwroot/dist/fonts/',
+ src: ['wwwroot/fonts/**/*.{eot,svg,ttf,woff,woff2}']
+ },
+ distribution: 'wwwroot/dist/**/*'
+};
+
+function compileJs() {
+ return gulp.src(config.scripts.src)
+ .pipe(gulp.dest(config.scripts.dest));
+}
+
+function minifyJs() {
+ return gulp.src(config.scripts.src, { base: "." })
+ .pipe(concat(config.scripts.bundle))
+ .pipe(uglify())
+ .pipe(gulp.dest(config.scripts.dest));
+}
+
+function minifyCss() {
+ return gulp.src(config.styles.src)
+ .pipe(concat(config.styles.bundle))
+ .pipe(cssmin())
+ .pipe(gulp.dest(config.styles.dest));
+}
+
+function compileSass() {
+ return gulp.src(config.sass.src)
+ .pipe(sass({
+ includePaths: config.sass.includePaths
+ }))
+ .pipe(gulp.dest(config.sass.dest));
+}
+
+function watchStyles() {
+ return gulp.watch(config.sass.src, compileSass);
+}
+
+
+exports.minify = gulp.series(minifyJs, minifyCss);
+exports.watch = watchStyles;
+exports.default = gulp.series(compileSass, minifyCss);
diff --git a/src/Server/Coderr.Server.Web/Startup.cs b/src/Server/Coderr.Server.Web/Startup.cs
index 6285f591..548be685 100644
--- a/src/Server/Coderr.Server.Web/Startup.cs
+++ b/src/Server/Coderr.Server.Web/Startup.cs
@@ -31,6 +31,7 @@
using Microsoft.AspNetCore.Http.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SpaServices.Webpack;
+using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using IConfiguration = Microsoft.Extensions.Configuration.IConfiguration;
@@ -82,7 +83,14 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env,
});
}
- app.UseStaticFiles();
+
+ var provider = new FileExtensionContentTypeProvider();
+ provider.Mappings[".webmanifest"] = "application/manifest+json";
+ app.UseStaticFiles(new StaticFileOptions()
+ {
+ ContentTypeProvider = provider
+ });
+
app.UseAuthentication();
app.UseMvc(routes =>
diff --git a/src/Server/Coderr.Server.Web/Views/Shared/_Layout.NotAuthed.cshtml b/src/Server/Coderr.Server.Web/Views/Shared/_Layout.NotAuthed.cshtml
index 0e54b9fe..254192ae 100644
--- a/src/Server/Coderr.Server.Web/Views/Shared/_Layout.NotAuthed.cshtml
+++ b/src/Server/Coderr.Server.Web/Views/Shared/_Layout.NotAuthed.cshtml
@@ -20,20 +20,18 @@
list-style-type: none;
}
-
-
+
+
+
-
-
-
-
- @RenderBody()
-
-
-
- @RenderSection("scripts", required: false)
+
+ @RenderBody()
+
+
+
+@RenderSection("scripts", required: false)