diff --git a/README.md b/README.md index b73861532..60da86bbc 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,24 @@ Squidex is an open source headless CMS and content management hub. In contrast to a traditional CMS Squidex provides a rich API with OData filter and Swagger definitions. It is up to you to build your UI on top of it. It can be website, a native app or just another server. We build it with ASP.NET Core and CQRS and is tested for Windows and Linux on modern browsers. -[](https://gitter.im/squidex-cms/Lobby) [](https://squidex-slack.herokuapp.com/) [](http://build.squidex.io/Squidex/squidex) [](https://app.fossa.io/projects/git%2Bgithub.com%2FSquidex%2Fsquidex?ref=badge_shield) +[](https://support.squidex.io) [](http://build.squidex.io/Squidex/squidex) [](https://app.fossa.io/projects/git%2Bgithub.com%2FSquidex%2Fsquidex?ref=badge_shield) Read the docs at [https://docs.squidex.io/](https://docs.squidex.io/) (work in progress) or just check out the code and play around. +## How to make feature requests or report bugs? + +Please join our community forum: https://support.squidex.io + ## Status -Current Version 1.6. Roadmap: https://trello.com/b/KakM4F3S/squidex-roadmap +Current Version 1.8.0. Roadmap: https://trello.com/b/KakM4F3S/squidex-roadmap ## Prerequisites * [Visual Studio Code](https://code.visualstudio.com/) or [Visual Studio 2017](https://www.visualstudio.com/vs/visual-studio-2017-rc/) -* [Node.js](https://nodejs.org/en/) -* [.NET Core SDK](https://www.microsoft.com/net/download/core#/current) (Already part of Visual Studio 2017) +* [Node.js](https://nodejs.org/en/) (development only) * [MongoDB](https://www.mongodb.com/) -* [Redis](https://redis.io/download) (If you want to run Squidex on multiple hosts) +* [.NET Core SDK](https://www.microsoft.com/net/download/core#/current) (Already part of Visual Studio 2017) ## Contributors diff --git a/src/Squidex.Domain.Apps.Entities/Contents/Guards/GuardContent.cs b/src/Squidex.Domain.Apps.Entities/Contents/Guards/GuardContent.cs index 8c02f6d88..cdb0b309a 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/Guards/GuardContent.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/Guards/GuardContent.cs @@ -5,7 +5,6 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using System; using NodaTime; using Squidex.Domain.Apps.Core.Contents; using Squidex.Domain.Apps.Entities.Contents.Commands; @@ -25,7 +24,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Guards ValidateData(command, e); }); - if (schema.IsSingleton && command.ContentId != Guid.Empty) + if (schema.IsSingleton && command.ContentId != schema.Id) { throw new DomainException("Singleton content cannot be created."); } diff --git a/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs b/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs index 6dd070600..435094d5f 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs @@ -30,7 +30,7 @@ namespace Squidex.Domain.Apps.Entities.Contents var data = new NamedContentData(); - var contentId = Guid.Empty; + var contentId = schemaId.Id; var content = new CreateContent { Data = data, ContentId = contentId, SchemaId = schemaId, Publish = true }; SimpleMapper.Map(context.Command, content); diff --git a/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.ts b/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.ts index 2813e338f..30161a18b 100644 --- a/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.ts +++ b/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.ts @@ -9,7 +9,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { Subscription, timer } from 'rxjs'; import { onErrorResumeNext, switchMap } from 'rxjs/operators'; -import { ModalView } from '@app/shared'; +import { DialogModel } from '@app/shared'; import { EventConsumerDto } from './../../services/event-consumers.service'; import { EventConsumersState } from './../../state/event-consumers.state'; @@ -22,7 +22,7 @@ import { EventConsumersState } from './../../state/event-consumers.state'; export class EventConsumersPageComponent implements OnDestroy, OnInit { private timerSubscription: Subscription; - public eventConsumerErrorDialog = new ModalView(); + public eventConsumerErrorDialog = new DialogModel(); public eventConsumerError = ''; constructor( diff --git a/src/Squidex/app/features/apps/pages/apps-page.component.ts b/src/Squidex/app/features/apps/pages/apps-page.component.ts index 93a2d5fa6..c081ccb84 100644 --- a/src/Squidex/app/features/apps/pages/apps-page.component.ts +++ b/src/Squidex/app/features/apps/pages/apps-page.component.ts @@ -11,7 +11,8 @@ import { take } from 'rxjs/operators'; import { AppsState, AuthService, - ModalView, + DialogModel, + ModalModel, OnboardingService } from '@app/shared'; @@ -21,10 +22,10 @@ import { templateUrl: './apps-page.component.html' }) export class AppsPageComponent implements OnInit { - public addAppDialog = new ModalView(); + public addAppDialog = new DialogModel(); public addAppTemplate = ''; - public onboardingModal = new ModalView(); + public onboardingModal = new ModalModel(); constructor( public readonly appsState: AppsState, diff --git a/src/Squidex/app/features/apps/pages/onboarding-dialog.component.html b/src/Squidex/app/features/apps/pages/onboarding-dialog.component.html index e8c29068a..e2f51d47c 100644 --- a/src/Squidex/app/features/apps/pages/onboarding-dialog.component.html +++ b/src/Squidex/app/features/apps/pages/onboarding-dialog.component.html @@ -132,8 +132,8 @@