diff --git a/src/Squidex/Startup.cs b/src/Squidex/Startup.cs
index fed70d24d..41396cb36 100644
--- a/src/Squidex/Startup.cs
+++ b/src/Squidex/Startup.cs
@@ -26,6 +26,7 @@ using Squidex.Config.Swagger;
using Squidex.Config.Web;
using Squidex.Pipeline;
using Squidex.Store.MongoDb;
+// ReSharper disable InvertIf
// ReSharper disable ConvertClosureToMethodGroup
// ReSharper disable AccessToModifiedClosure
@@ -179,14 +180,19 @@ namespace Squidex
app.UseStaticFiles(new StaticFileOptions
{
- OnPrepareResponse = (context) =>
+ OnPrepareResponse = context =>
{
- var headers = context.Context.Response.GetTypedHeaders();
+ var response = context.Context.Response;
- headers.CacheControl = new CacheControlHeaderValue
+ if (!string.Equals(response.ContentType, "text/html", StringComparison.OrdinalIgnoreCase))
{
- MaxAge = TimeSpan.FromDays(60)
- };
+ var headers = response.GetTypedHeaders();
+
+ headers.CacheControl = new CacheControlHeaderValue
+ {
+ MaxAge = TimeSpan.FromDays(60)
+ };
+ }
}
});
}
diff --git a/src/Squidex/app-config/webpack.config.js b/src/Squidex/app-config/webpack.config.js
index bcd85188c..dd564bcd0 100644
--- a/src/Squidex/app-config/webpack.config.js
+++ b/src/Squidex/app-config/webpack.config.js
@@ -45,7 +45,7 @@ module.exports = {
loaders: [
{
test: /\.ts$/,
- loaders: ['awesome-typescript', helpers.root('app-config', 'auto-loader') + '?[file].html=template&[file].scss=styles', 'tslint']
+ loaders: ['awesome-typescript', 'angular2-router-loader', helpers.root('app-config', 'auto-loader') + '?[file].html=template&[file].scss=styles', 'tslint']
}, {
test: /\.html$/,
loader: 'html'
diff --git a/src/Squidex/app/app.routes.ts b/src/Squidex/app/app.routes.ts
index fd430eed3..0df5f7112 100644
--- a/src/Squidex/app/app.routes.ts
+++ b/src/Squidex/app/app.routes.ts
@@ -23,11 +23,6 @@ import {
} from './shared';
import { SqxFeatureAppsModule } from './features/apps';
-import { SqxFeatureContentModule } from './features/content';
-import { SqxFeatureDashboardModule } from './features/dashboard';
-import { SqxFeatureMediaModule } from './features/media';
-import { SqxFeatureSchemasModule } from './features/schemas';
-import { SqxFeatureSettingsModule } from './features/settings';
export const routes: Ng2Router.Routes = [
{
@@ -49,19 +44,19 @@ export const routes: Ng2Router.Routes = [
children: [
{
path: '',
- loadChildren: () => SqxFeatureDashboardModule
+ loadChildren: './features/dashboard/module#SqxFeatureDashboardModule'
}, {
path: 'content',
- loadChildren: () => SqxFeatureContentModule
+ loadChildren: './features/content/module#SqxFeatureContentModule'
}, {
path: 'media',
- loadChildren: () => SqxFeatureMediaModule
+ loadChildren: './features/media/module#SqxFeatureMediaModule'
}, {
path: 'schemas',
- loadChildren: () => SqxFeatureSchemasModule
+ loadChildren: './features/schemas/module#SqxFeatureSchemaModule'
}, {
path: 'settings',
- loadChildren: () => SqxFeatureSettingsModule
+ loadChildren: './features/settings/module#SqxFeatureSettingsModule'
}
]
}
diff --git a/src/Squidex/app/features/settings/pages/clients/clients-page.component.html b/src/Squidex/app/features/settings/pages/clients/clients-page.component.html
index 2b372b032..2e041c7d8 100644
--- a/src/Squidex/app/features/settings/pages/clients/clients-page.component.html
+++ b/src/Squidex/app/features/settings/pages/clients/clients-page.component.html
@@ -9,37 +9,39 @@
-
-
- No client created yet.
-
+
+
+
+ No client created yet.
+
-
-
-
+
+
+
-
\ No newline at end of file
diff --git a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html
index a2a6aee0c..726fe9eab 100644
--- a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html
+++ b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html
@@ -9,57 +9,59 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- {{userName(contributor.contributorId) | async}}
-
-
- {{userEmail(contributor.contributorId) | async}}
-
-
-
- {{permission}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/src/Squidex/app/features/settings/pages/languages/languages-page.component.html b/src/Squidex/app/features/settings/pages/languages/languages-page.component.html
index b2eac8ca6..0aa35f9df 100644
--- a/src/Squidex/app/features/settings/pages/languages/languages-page.component.html
+++ b/src/Squidex/app/features/settings/pages/languages/languages-page.component.html
@@ -9,68 +9,79 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ {{language.iso2Code}}
+
+
+
+
+ {{language.englishName}}
+
+
+
+
+ Master Language
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/src/Squidex/app/features/settings/settings-area.component.html b/src/Squidex/app/features/settings/settings-area.component.html
index b616ca77c..e0c3bbd24 100644
--- a/src/Squidex/app/features/settings/settings-area.component.html
+++ b/src/Squidex/app/features/settings/settings-area.component.html
@@ -7,24 +7,26 @@
-
diff --git a/src/Squidex/app/shared/services/auth.service.ts b/src/Squidex/app/shared/services/auth.service.ts
index 720a7738b..f9b69202e 100644
--- a/src/Squidex/app/shared/services/auth.service.ts
+++ b/src/Squidex/app/shared/services/auth.service.ts
@@ -188,7 +188,7 @@ export class AuthService {
private checkResponse(response: Observable) {
return response.catch((error: Ng2Http.Response) => {
- if (error.status === 401) {
+ if (error.status === 401 || error.status === 404) {
this.loginRedirect();
} else if (error.status === 403) {
this.router.navigate(['/404']);
diff --git a/src/Squidex/app/theme/_bootstrap.scss b/src/Squidex/app/theme/_bootstrap.scss
index a794702a9..7c1c7fcf0 100644
--- a/src/Squidex/app/theme/_bootstrap.scss
+++ b/src/Squidex/app/theme/_bootstrap.scss
@@ -255,8 +255,7 @@
&.nav-pills {
.nav-link {
- &,
- &.active {
+ & {
color: $color-dark-foreground;
}
@@ -271,6 +270,7 @@
@include border-radius(0);
background: $color-dark-selected;
pointer-events: none;
+ color: lighten($color-dark-foreground, 30%);
}
&:hover {
@@ -279,4 +279,16 @@
}
}
}
+}
+
+.nav-light {
+ &.nav-pills {
+ .nav-link {
+ &.active {
+ & {
+ @include border-radius(0);
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Squidex/app/theme/_panels.scss b/src/Squidex/app/theme/_panels.scss
index 4704d7d1e..4c59be0bd 100644
--- a/src/Squidex/app/theme/_panels.scss
+++ b/src/Squidex/app/theme/_panels.scss
@@ -1,8 +1,9 @@
@import '_mixins';
@import '_vars';
-$panel-padding: 15px;
-$panel-header: 60px;
+$panel-padding: 20px;
+$panel-header: 70px;
+$panel-sidebar: 60px;
.panel-container {
@include absolute($size-navbar-height, 0, 0, $size-sidebar-width);
@@ -17,13 +18,19 @@ $panel-header: 60px;
flex-direction: column;
}
- &-content,
- &-header {
- padding: 15px;
+ &-header,
+ &-content {
+ padding: $panel-padding;
}
+ &-main,
&-content {
- overflow-y: auto;
+ @include flex-grow(1);
+ }
+
+ &-main {
+ @include flex-box;
+ flex-direction: row;
}
&-title {
@@ -32,11 +39,38 @@ $panel-header: 60px;
}
&-header {
- height: $panel-header;
+ min-height: $panel-header;
+ max-height: $panel-header;
position: relative;
padding-right: 60px;
}
+ &-content {
+ & {
+ overflow-y: auto;
+ }
+
+ & .nav-stacked {
+ margin-left: -$panel-padding;
+ margin-right: -$panel-padding;
+ }
+
+ & .nav-link {
+ padding-left: $panel-padding;
+ }
+ }
+
+ &-sidebar {
+ & {
+ min-width: $panel-sidebar;
+ max-width: $panel-sidebar;
+ }
+
+ & .nav-link {
+ text-align: center;
+ }
+ }
+
&-close {
& {
@include absolute($panel-padding, $panel-padding, auto, auto);
@@ -77,12 +111,21 @@ $panel-header: 60px;
.panel-header {
background: $color-card-footer;
- border-bottom: 1px solid $color-border;
+ }
+
+ .panel-content {
+ border-top: 1px solid $color-border;
+ }
+
+ .panel-sidebar {
+ background: $color-card-footer;
+ border-left: 1px solid $color-border;
+ color: lighten($color-dark-foreground, 20%);
}
.panel-close {
& {
- color: $color-dark-foreground;
+ color: lighten($color-dark-foreground, 20%);
}
&:hover {
@@ -90,11 +133,6 @@ $panel-header: 60px;
}
}
}
-
- & .nav-stacked {
- margin-left: -$panel-padding;
- margin-right: -$panel-padding;
- }
}
.panel-menu {
diff --git a/src/Squidex/package.json b/src/Squidex/package.json
index 7e02e0e39..e2327d4fc 100644
--- a/src/Squidex/package.json
+++ b/src/Squidex/package.json
@@ -39,6 +39,7 @@
"@types/jasmine": "^2.5.38",
"@types/mousetrap": "^1.5.32",
"@types/node": "^6.0.51",
+ "angular2-router-loader": "^0.3.4",
"awesome-typescript-loader": "^2.2.4",
"cpx": "^1.5.0",
"css-loader": "^0.26.0",