Browse Source

Soft delete for schemas.

pull/1/head
Sebastian 9 years ago
parent
commit
8a6313203d
  1. 2
      src/Squidex.Read.MongoDb/Contents/MongoContentRepository.cs
  2. 4
      src/Squidex.Read.MongoDb/Schemas/MongoSchemaEntity.cs
  3. 15
      src/Squidex.Read.MongoDb/Schemas/MongoSchemaRepository.cs
  4. 2
      src/Squidex.Read.MongoDb/Schemas/MongoSchemaRepository_EventHandling.cs
  5. 2
      src/Squidex.Read/Schemas/ISchemaEntity.cs
  6. 2
      src/Squidex.Read/Schemas/Repositories/ISchemaRepository.cs
  7. 2
      src/Squidex.Read/Schemas/Services/ISchemaProvider.cs
  8. 12
      src/Squidex.Read/Schemas/Services/Implementations/CachingSchemaProvider.cs
  9. 26
      src/Squidex/Config/Domain/StoreMongoDbModule.cs
  10. 2
      src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html
  11. 8
      src/Squidex/app/theme/icomoon/demo-files/demo.css
  12. 388
      src/Squidex/app/theme/icomoon/demo.html
  13. BIN
      src/Squidex/app/theme/icomoon/fonts/icomoon.eot
  14. 1
      src/Squidex/app/theme/icomoon/fonts/icomoon.svg
  15. BIN
      src/Squidex/app/theme/icomoon/fonts/icomoon.ttf
  16. BIN
      src/Squidex/app/theme/icomoon/fonts/icomoon.woff
  17. 654
      src/Squidex/app/theme/icomoon/selection.json
  18. 106
      src/Squidex/app/theme/icomoon/style.css
  19. 3
      src/Squidex/appsettings.json
  20. 2
      tests/Squidex.Write.Tests/Contents/ContentCommandHandlerTests.cs

2
src/Squidex.Read.MongoDb/Contents/MongoContentRepository.cs

@ -142,7 +142,7 @@ namespace Squidex.Read.MongoDb.Contents
{
var collection = GetCollection(schemaId);
var schemaEntity = await schemas.FindSchemaByIdAsync(schemaId);
var schemaEntity = await schemas.FindSchemaByIdAsync(schemaId, true);
if (schemaEntity == null)
{

4
src/Squidex.Read.MongoDb/Schemas/MongoSchemaEntity.cs

@ -53,6 +53,10 @@ namespace Squidex.Read.MongoDb.Schemas
[BsonElement]
public bool IsPublished { get; set; }
[BsonRequired]
[BsonElement]
public bool IsDeleted { get; set; }
Schema ISchemaEntityWithSchema.Schema
{
get { return schema.Value; }

15
src/Squidex.Read.MongoDb/Schemas/MongoSchemaRepository.cs

@ -49,14 +49,14 @@ namespace Squidex.Read.MongoDb.Schemas
public async Task<IReadOnlyList<ISchemaEntity>> QueryAllAsync(Guid appId)
{
var entities = await Collection.Find(s => s.AppId == appId).ToListAsync();
var entities = await Collection.Find(s => s.AppId == appId && !s.IsDeleted).ToListAsync();
return entities.OfType<ISchemaEntity>().ToList();
}
public async Task<IReadOnlyList<ISchemaEntityWithSchema>> QueryAllWithSchemaAsync(Guid appId)
{
var entities = await Collection.Find(s => s.AppId == appId).ToListAsync();
var entities = await Collection.Find(s => s.AppId == appId && !s.IsDeleted).ToListAsync();
entities.ForEach(x => x.DeserializeSchema(serializer));
@ -66,7 +66,7 @@ namespace Squidex.Read.MongoDb.Schemas
public async Task<ISchemaEntityWithSchema> FindSchemaAsync(Guid appId, string name)
{
var entity =
await Collection.Find(s => s.Name == name && s.AppId == appId)
await Collection.Find(s => s.Name == name && s.AppId == appId && !s.IsDeleted)
.FirstOrDefaultAsync();
entity?.DeserializeSchema(serializer);
@ -84,14 +84,5 @@ namespace Squidex.Read.MongoDb.Schemas
return entity;
}
public async Task<Guid?> FindSchemaIdAsync(Guid appId, string name)
{
var entity =
await Collection.Find(s => s.Name == name & s.AppId == appId)
.Project<MongoSchemaEntity>(Projection.Include(x => x.Id)).FirstOrDefaultAsync();
return entity?.Id;
}
}
}

2
src/Squidex.Read.MongoDb/Schemas/MongoSchemaRepository_EventHandling.cs

@ -91,7 +91,7 @@ namespace Squidex.Read.MongoDb.Schemas
protected async Task On(SchemaDeleted @event, EnvelopeHeaders headers)
{
await Collection.DeleteOneAsync(x => x.Id == headers.AggregateId());
await Collection.UpdateAsync(@event, headers, e => e.IsDeleted = true);
SchemaSaved?.Invoke(@event.AppId, @event.SchemaId);
}

2
src/Squidex.Read/Schemas/ISchemaEntity.cs

@ -15,5 +15,7 @@ namespace Squidex.Read.Schemas
string Label { get; }
bool IsPublished { get; }
bool IsDeleted { get; }
}
}

2
src/Squidex.Read/Schemas/Repositories/ISchemaRepository.cs

@ -24,7 +24,5 @@ namespace Squidex.Read.Schemas.Repositories
Task<ISchemaEntityWithSchema> FindSchemaAsync(Guid appId, string name);
Task<ISchemaEntityWithSchema> FindSchemaAsync(Guid schemaId);
Task<Guid?> FindSchemaIdAsync(Guid appId, string name);
}
}

2
src/Squidex.Read/Schemas/Services/ISchemaProvider.cs

@ -14,7 +14,7 @@ namespace Squidex.Read.Schemas.Services
{
public interface ISchemaProvider
{
Task<ISchemaEntityWithSchema> FindSchemaByIdAsync(Guid id);
Task<ISchemaEntityWithSchema> FindSchemaByIdAsync(Guid id, bool provideDeleted = false);
Task<ISchemaEntityWithSchema> FindSchemaByNameAsync(Guid appId, string name);

12
src/Squidex.Read/Schemas/Services/Implementations/CachingSchemaProvider.cs

@ -32,7 +32,7 @@ namespace Squidex.Read.Schemas.Services.Implementations
this.repository = repository;
}
public async Task<ISchemaEntityWithSchema> FindSchemaByIdAsync(Guid id)
public async Task<ISchemaEntityWithSchema> FindSchemaByIdAsync(Guid id, bool provideDeleted = false)
{
var cacheKey = BuildIdCacheKey(id);
@ -48,6 +48,11 @@ namespace Squidex.Read.Schemas.Services.Implementations
}
}
if (result != null && result.IsDeleted && !provideDeleted)
{
result = null;
}
return result;
}
@ -69,6 +74,11 @@ namespace Squidex.Read.Schemas.Services.Implementations
}
}
if (result != null && result.IsDeleted)
{
result = null;
}
return result;
}

26
src/Squidex/Config/Domain/StoreMongoDbModule.cs

@ -32,7 +32,8 @@ namespace Squidex.Config.Domain
{
public class StoreMongoDbModule : Module
{
private const string MongoDatabaseName = "string";
private const string MongoDatabaseName = "MongoDatabaseName";
private const string MongoDatabaseNameContent = "MongoDatabaseNameContent";
private IConfiguration Configuration { get; }
@ -57,13 +58,24 @@ namespace Squidex.Config.Domain
throw new ConfigurationException("You must specify the MongoDB connection string in the 'squidex:stores:mongoDb:connectionString' configuration section.");
}
builder.Register(c =>
var databaseNameContent = Configuration.GetValue<string>("squidex:stores:mongoDb:databaseNameContent");
if (string.IsNullOrWhiteSpace(databaseNameContent))
{
var mongoDbClient = new MongoClient(connectionString);
var mongoDatabase = mongoDbClient.GetDatabase(databaseName);
databaseNameContent = databaseName;
}
builder.Register(c => new MongoClient(connectionString))
.As<IMongoClient>()
.SingleInstance();
return mongoDatabase;
}).Named<IMongoDatabase>(MongoDatabaseName).SingleInstance();
builder.Register(c => c.Resolve<IMongoClient>().GetDatabase(databaseName))
.Named<IMongoDatabase>(MongoDatabaseName)
.SingleInstance();
builder.Register(c => c.Resolve<IMongoClient>().GetDatabase(databaseNameContent))
.Named<IMongoDatabase>(MongoDatabaseNameContent)
.SingleInstance();
builder.Register<IUserStore<IdentityUser>>(c =>
{
@ -100,7 +112,7 @@ namespace Squidex.Config.Domain
.SingleInstance();
builder.RegisterType<MongoContentRepository>()
.WithParameter(ResolvedParameter.ForNamed<IMongoDatabase>(MongoDatabaseName))
.WithParameter(ResolvedParameter.ForNamed<IMongoDatabase>(MongoDatabaseNameContent))
.As<IContentRepository>()
.As<IEventConsumer>()
.AsSelf()

2
src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html

@ -39,7 +39,7 @@
<tr [class.faulted]="eventConsumer.error && eventConsumer.error.length > 0">
<td>
<span class="truncate">
<i class="faulted-icon icon icon-warning" (click)="showError(eventConsumer)" [class.hidden]="!eventConsumer.error || eventConsumer.error.length === 0"></i>
<i class="faulted-icon icon icon-bug" (click)="showError(eventConsumer)" [class.hidden]="!eventConsumer.error || eventConsumer.error.length === 0"></i>
{{eventConsumer.name}}
</span>

8
src/Squidex/app/theme/icomoon/demo-files/demo.css

@ -147,19 +147,19 @@ p {
font-size: 16px;
}
.fs1 {
font-size: 20px;
font-size: 28px;
}
.fs2 {
font-size: 32px;
font-size: 20px;
}
.fs3 {
font-size: 32px;
}
.fs4 {
font-size: 24px;
font-size: 32px;
}
.fs5 {
font-size: 32px;
font-size: 24px;
}
.fs6 {
font-size: 32px;

388
src/Squidex/app/theme/icomoon/demo.html

@ -9,103 +9,231 @@
<link rel="stylesheet" href="style.css"></head>
<body>
<div class="bgc1 clearfix">
<h1 class="mhmm mvm"><span class="fgc1">Font Name:</span> icomoon <small class="fgc1">(Glyphs:&nbsp;61)</small></h1>
<h1 class="mhmm mvm"><span class="fgc1">Font Name:</span> icomoon <small class="fgc1">(Glyphs:&nbsp;62)</small></h1>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 20</h1>
<h1 class="mvm mtn fgc1">Grid Size: 14</h1>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-info">
<span class="icon-bug">
</span>
<span class="mls"> icon-info</span>
<span class="mls"> icon-bug</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e93c" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93c;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e93d" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93d;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 16</h1>
<div class="glyph fs2">
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-google">
<span class="icon-control-Markdown">
</span>
<span class="mls"> icon-google</span>
<span class="mls"> icon-control-Markdown</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e93b" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93b;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e938" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe938;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs2">
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-unlocked">
<span class="icon-control-Date">
</span>
<span class="mls"> icon-unlocked</span>
<span class="mls"> icon-control-Date</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e933" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe933;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e936" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe936;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs2">
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-lock">
<span class="icon-control-DateTime">
</span>
<span class="mls"> icon-lock</span>
<span class="mls"> icon-control-DateTime</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e934" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe934;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e937" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe937;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs2">
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-reset">
<span class="icon-angle-right">
</span>
<span class="mls"> icon-reset</span>
<span class="mls"> icon-angle-right</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92e" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92e;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e931" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe931;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-user-o">
</span>
<span class="mls"> icon-user-o</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e932" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe932;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-right">
</span>
<span class="mls"> icon-caret-right</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e929" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe929;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-left">
</span>
<span class="mls"> icon-caret-left</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92a" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92a;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-up">
</span>
<span class="mls"> icon-caret-up</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92b" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92b;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-down">
</span>
<span class="mls"> icon-caret-down</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92c" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92c;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-up">
</span>
<span class="mls"> icon-angle-up</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e903" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe903;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-down">
</span>
<span class="mls"> icon-angle-down</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e900" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe900;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs1">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-left">
</span>
<span class="mls"> icon-angle-left</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e901" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe901;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 20</h1>
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-pause">
<span class="icon-info">
</span>
<span class="mls"> icon-pause</span>
<span class="mls"> icon-info</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92f" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92f;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e93c" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93c;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
@ -114,14 +242,14 @@
</div>
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-play">
<span class="icon-unlocked">
</span>
<span class="mls"> icon-play</span>
<span class="mls"> icon-unlocked</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e930" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe930;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e933" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe933;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
@ -130,14 +258,14 @@
</div>
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-settings2">
<span class="icon-lock">
</span>
<span class="mls"> icon-settings2</span>
<span class="mls"> icon-lock</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92d" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92d;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e934" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe934;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
@ -146,84 +274,78 @@
</div>
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-bin2">
<span class="icon-reset">
</span>
<span class="mls"> icon-bin2</span>
<span class="mls"> icon-reset</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e902" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe902;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92e" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92e;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 32</h1>
<div class="glyph fs3">
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-Stars">
<span class="icon-pause">
</span>
<span class="mls"> icon-control-Stars</span>
<span class="mls"> icon-pause</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e93a" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93a;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92f" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92f;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs3">
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-browser">
<span class="icon-play">
</span>
<span class="mls"> icon-browser</span>
<span class="mls"> icon-play</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e935" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe935;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e930" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe930;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 24</h1>
<div class="glyph fs4">
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-RichText">
<span class="icon-settings2">
</span>
<span class="mls"> icon-control-RichText</span>
<span class="mls"> icon-settings2</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e939" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe939;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92d" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92d;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs4">
<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-Date">
<span class="icon-bin2">
</span>
<span class="mls"> icon-control-Date</span>
<span class="mls"> icon-bin2</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e936" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe936;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e902" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe902;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
@ -232,177 +354,183 @@
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 14</h1>
<div class="glyph fs5">
<h1 class="mvm mtn fgc1">Grid Size: 16</h1>
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-Markdown">
<span class="icon-google">
</span>
<span class="mls"> icon-control-Markdown</span>
<span class="mls"> icon-google</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e938" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe938;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e93b" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93b;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-Date">
<span class="icon-unlocked">
</span>
<span class="mls"> icon-control-Date</span>
<span class="mls"> icon-unlocked</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e936" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe936;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e933" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe933;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-control-DateTime">
<span class="icon-lock">
</span>
<span class="mls"> icon-control-DateTime</span>
<span class="mls"> icon-lock</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e937" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe937;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e934" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe934;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-right">
<span class="icon-reset">
</span>
<span class="mls"> icon-angle-right</span>
<span class="mls"> icon-reset</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e931" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe931;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92e" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92e;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-user-o">
<span class="icon-pause">
</span>
<span class="mls"> icon-user-o</span>
<span class="mls"> icon-pause</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e932" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe932;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92f" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92f;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-right">
<span class="icon-play">
</span>
<span class="mls"> icon-caret-right</span>
<span class="mls"> icon-play</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e929" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe929;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e930" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe930;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-left">
<span class="icon-settings2">
</span>
<span class="mls"> icon-caret-left</span>
<span class="mls"> icon-settings2</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92a" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92a;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e92d" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92d;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs3">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-up">
<span class="icon-bin2">
</span>
<span class="mls"> icon-caret-up</span>
<span class="mls"> icon-bin2</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92b" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92b;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e902" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe902;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 32</h1>
<div class="glyph fs4">
<div class="clearfix bshadow0 pbs">
<span class="icon-caret-down">
<span class="icon-control-Stars">
</span>
<span class="mls"> icon-caret-down</span>
<span class="mls"> icon-control-Stars</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e92c" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe92c;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e93a" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe93a;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
<div class="glyph fs5">
<div class="glyph fs4">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-up">
<span class="icon-browser">
</span>
<span class="mls"> icon-angle-up</span>
<span class="mls"> icon-browser</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e903" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe903;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e935" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe935;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>
</div>
<div class="clearfix mhl ptl">
<h1 class="mvm mtn fgc1">Grid Size: 24</h1>
<div class="glyph fs5">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-down">
<span class="icon-control-RichText">
</span>
<span class="mls"> icon-angle-down</span>
<span class="mls"> icon-control-RichText</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e900" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe900;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e939" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe939;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
@ -411,14 +539,14 @@
</div>
<div class="glyph fs5">
<div class="clearfix bshadow0 pbs">
<span class="icon-angle-left">
<span class="icon-control-Date">
</span>
<span class="mls"> icon-angle-left</span>
<span class="mls"> icon-control-Date</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e901" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe901;" class="unitRight size1of2 talign-right" />
<input type="text" readonly value="e936" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe936;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>

BIN
src/Squidex/app/theme/icomoon/fonts/icomoon.eot

Binary file not shown.

1
src/Squidex/app/theme/icomoon/fonts/icomoon.svg

@ -68,4 +68,5 @@
<glyph unicode="&#xe93a;" glyph-name="control-Stars" d="M1020.192 558.176c-8.864 25.568-31.616 44.288-59.008 48.352l-266.432 39.616-115.808 240.448c-12.192 25.248-38.272 41.408-66.944 41.408s-54.752-16.16-66.944-41.408l-115.808-240.448-266.464-39.616c-27.36-4.064-50.112-22.784-58.944-48.352-8.8-25.632-2.144-53.856 17.184-73.12l195.264-194.944-45.28-270.432c-4.608-27.232 7.2-54.56 30.336-70.496 12.704-8.736 27.648-13.184 42.592-13.184 12.288 0 24.608 3.008 35.776 8.992l232.288 125.056 232.32-125.056c11.168-5.984 23.488-8.992 35.744-8.992 14.944 0 29.888 4.448 42.624 13.184 23.136 15.936 34.88 43.264 30.304 70.496l-45.312 270.432 195.328 194.944c19.296 19.296 25.92 47.52 17.184 73.12zM754.816 340.384c-16.384-16.32-23.808-39.328-20.064-61.888l45.312-270.432-232.32 124.992c-11.136 6.016-23.424 8.992-35.776 8.992-12.288 0-24.608-3.008-35.744-8.992l-232.32-124.992 45.312 270.432c3.776 22.56-3.648 45.568-20.032 61.888l-195.264 194.944 266.432 39.68c24.352 3.616 45.312 18.848 55.776 40.576l115.872 240.384 115.84-240.416c10.496-21.728 31.424-36.928 55.744-40.576l266.496-39.68-195.264-194.912z" />
<glyph unicode="&#xe93b;" glyph-name="google" d="M522.2 521.2v-175.6h290.4c-11.8-75.4-87.8-220.8-290.4-220.8-174.8 0-317.4 144.8-317.4 323.2s142.6 323.2 317.4 323.2c99.4 0 166-42.4 204-79l139 133.8c-89.2 83.6-204.8 134-343 134-283 0-512-229-512-512s229-512 512-512c295.4 0 491.6 207.8 491.6 500.2 0 33.6-3.6 59.2-8 84.8l-483.6 0.2z" />
<glyph unicode="&#xe93c;" glyph-name="info" d="M636.518 972.8c68.608 0 102.912-46.694 102.912-100.198 0-66.816-59.597-128.614-137.165-128.614-64.973 0-102.861 38.4-101.069 101.888 0 53.402 45.107 126.925 135.322 126.925zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.429l62.157 260.71c10.803 41.677 12.595 58.419 0 58.419-16.23 0-86.477-28.774-128.102-57.19l-27.034 45.056c131.686 111.923 283.187 177.51 348.211 177.51 54.118 0 63.13-65.178 36.096-165.376l-71.219-274.022c-12.595-48.384-7.219-65.075 5.427-65.075 16.23 0 69.478 20.070 121.805 61.798l30.72-41.677c-128.102-130.406-268.032-180.582-322.099-180.582z" />
<glyph unicode="&#xe93d;" glyph-name="bug" horiz-adv-x="951" d="M932.571 402.286c0-20-16.571-36.571-36.571-36.571h-128c0-71.429-15.429-125.143-38.286-165.714l118.857-119.429c14.286-14.286 14.286-37.143 0-51.429-6.857-7.429-16.571-10.857-25.714-10.857s-18.857 3.429-25.714 10.857l-113.143 112.571s-74.857-68.571-172-68.571v512h-73.143v-512c-103.429 0-178.857 75.429-178.857 75.429l-104.571-118.286c-7.429-8-17.143-12-27.429-12-8.571 0-17.143 2.857-24.571 9.143-14.857 13.714-16 36.571-2.857 52l115.429 129.714c-20 39.429-33.143 90.286-33.143 156.571h-128c-20 0-36.571 16.571-36.571 36.571s16.571 36.571 36.571 36.571h128v168l-98.857 98.857c-14.286 14.286-14.286 37.143 0 51.429s37.143 14.286 51.429 0l98.857-98.857h482.286l98.857 98.857c14.286 14.286 37.143 14.286 51.429 0s14.286-37.143 0-51.429l-98.857-98.857v-168h128c20 0 36.571-16.571 36.571-36.571zM658.286 731.428h-365.714c0 101.143 81.714 182.857 182.857 182.857s182.857-81.714 182.857-182.857z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 53 KiB

BIN
src/Squidex/app/theme/icomoon/fonts/icomoon.ttf

Binary file not shown.

BIN
src/Squidex/app/theme/icomoon/fonts/icomoon.woff

Binary file not shown.

654
src/Squidex/app/theme/icomoon/selection.json

File diff suppressed because it is too large

106
src/Squidex/app/theme/icomoon/style.css

@ -1,10 +1,10 @@
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?1zk1rh');
src: url('fonts/icomoon.eot?1zk1rh#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?1zk1rh') format('truetype'),
url('fonts/icomoon.woff?1zk1rh') format('woff'),
url('fonts/icomoon.svg?1zk1rh#icomoon') format('svg');
src: url('fonts/icomoon.eot?jcn9ba');
src: url('fonts/icomoon.eot?jcn9ba#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?jcn9ba') format('truetype'),
url('fonts/icomoon.woff?jcn9ba') format('woff'),
url('fonts/icomoon.svg?jcn9ba#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
@ -24,9 +24,69 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-bug:before {
content: "\e93d";
}
.icon-control-Markdown:before {
content: "\e938";
}
.icon-control-Date:before {
content: "\e936";
}
.icon-control-DateTime:before {
content: "\e937";
}
.icon-angle-right:before {
content: "\e931";
}
.icon-user-o:before {
content: "\e932";
}
.icon-caret-right:before {
content: "\e929";
}
.icon-caret-left:before {
content: "\e92a";
}
.icon-caret-up:before {
content: "\e92b";
}
.icon-caret-down:before {
content: "\e92c";
}
.icon-angle-up:before {
content: "\e903";
}
.icon-angle-down:before {
content: "\e900";
}
.icon-angle-left:before {
content: "\e901";
}
.icon-info:before {
content: "\e93c";
}
.icon-unlocked:before {
content: "\e933";
}
.icon-lock:before {
content: "\e934";
}
.icon-reset:before {
content: "\e92e";
}
.icon-pause:before {
content: "\e92f";
}
.icon-play:before {
content: "\e930";
}
.icon-settings2:before {
content: "\e92d";
}
.icon-bin2:before {
content: "\e902";
}
.icon-google:before {
content: "\e93b";
}
@ -63,42 +123,6 @@
.icon-control-Date:before {
content: "\e936";
}
.icon-control-Markdown:before {
content: "\e938";
}
.icon-control-Date:before {
content: "\e936";
}
.icon-control-DateTime:before {
content: "\e937";
}
.icon-angle-right:before {
content: "\e931";
}
.icon-user-o:before {
content: "\e932";
}
.icon-caret-right:before {
content: "\e929";
}
.icon-caret-left:before {
content: "\e92a";
}
.icon-caret-up:before {
content: "\e92b";
}
.icon-caret-down:before {
content: "\e92c";
}
.icon-angle-up:before {
content: "\e903";
}
.icon-angle-down:before {
content: "\e900";
}
.icon-angle-left:before {
content: "\e901";
}
.icon-activity:before {
content: "\e904";
}

3
src/Squidex/appsettings.json

@ -20,7 +20,8 @@
"type": "mongoDb",
"mongoDb": {
"connectionString": "mongodb://localhost",
"databaseName": "Squidex"
"databaseName": "Squidex",
"databaseNameContent": "SquidexContent"
}
},
"identity": {

2
tests/Squidex.Write.Tests/Contents/ContentCommandHandlerTests.cs

@ -51,7 +51,7 @@ namespace Squidex.Write.Contents
appProvider.Setup(x => x.FindAppByIdAsync(AppId)).Returns(Task.FromResult(appEntity.Object));
schemaEntity.Setup(x => x.Schema).Returns(schema);
schemaProvider.Setup(x => x.FindSchemaByIdAsync(SchemaId)).Returns(Task.FromResult(schemaEntity.Object));
schemaProvider.Setup(x => x.FindSchemaByIdAsync(SchemaId, true)).Returns(Task.FromResult(schemaEntity.Object));
}
[Fact]

Loading…
Cancel
Save