mirror of https://github.com/Squidex/squidex.git
44 changed files with 689 additions and 356 deletions
@ -1,26 +0,0 @@ |
|||||
// ==========================================================================
|
|
||||
// Squidex Headless CMS
|
|
||||
// ==========================================================================
|
|
||||
// Copyright (c) Squidex UG (haftungsbeschränkt)
|
|
||||
// All rights reserved. Licensed under the MIT license.
|
|
||||
// ==========================================================================
|
|
||||
|
|
||||
using Squidex.Domain.Apps.Entities.Apps; |
|
||||
using Squidex.Domain.Apps.Entities.Assets; |
|
||||
using Squidex.Domain.Apps.Entities.Schemas; |
|
||||
|
|
||||
namespace Squidex.Domain.Apps.Entities.Contents.GraphQL |
|
||||
{ |
|
||||
public interface IGraphQLUrlGenerator |
|
||||
{ |
|
||||
bool CanGenerateAssetSourceUrl { get; } |
|
||||
|
|
||||
string? GenerateAssetThumbnailUrl(IAppEntity app, IAssetEntity asset); |
|
||||
|
|
||||
string? GenerateAssetSourceUrl(IAssetEntity asset); |
|
||||
|
|
||||
string GenerateAssetUrl(IAppEntity app, IAssetEntity asset); |
|
||||
|
|
||||
string GenerateContentUrl(IAppEntity app, ISchemaEntity schema, IContentEntity content); |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
// ==========================================================================
|
|
||||
// Squidex Headless CMS
|
|
||||
// ==========================================================================
|
|
||||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|
||||
// All rights reserved. Licensed under the MIT license.
|
|
||||
// ==========================================================================
|
|
||||
|
|
||||
namespace Squidex.Domain.Apps.Entities |
|
||||
{ |
|
||||
public interface IEmailUrlGenerator |
|
||||
{ |
|
||||
string GenerateUIUrl(); |
|
||||
} |
|
||||
} |
|
||||
@ -1,30 +1,65 @@ |
|||||
<div class="comment row no-gutters"> |
<div class="comment row no-gutters"> |
||||
<div class="col-auto"> |
<div class="col-auto pr-2"> |
||||
<img class="user-picture" title="{{comment.user | sqxUserNameRef}}" [src]="comment.user | sqxUserPictureRef" /> |
<img class="user-picture" title="{{comment.user | sqxUserNameRef}}" [src]="comment.user | sqxUserPictureRef" /> |
||||
</div> |
</div> |
||||
<div class="col pl-2 col-right"> |
|
||||
<div class="comment-message"> |
|
||||
<div class="user-row"> |
|
||||
<div class="user-ref">{{comment.user | sqxUserNameRef}}</div> |
|
||||
</div> |
|
||||
|
|
||||
<div [innerHTML]="comment.text | sqxMarkdown"></div> |
<ng-container *ngIf="!isEditing; else editing"> |
||||
|
<div class="col col-text"> |
||||
|
<div class="comment-message"> |
||||
|
<div class="user-row"> |
||||
|
<div class="user-ref">{{comment.user | sqxUserNameRef}}</div> |
||||
|
</div> |
||||
|
|
||||
|
<div [innerHTML]="comment.text | sqxMarkdown"></div> |
||||
|
|
||||
<div class="comment-created text-muted"> |
<div class="comment-created text-muted"> |
||||
<ng-container *ngIf="canFollow && comment.url"> |
<ng-container *ngIf="canFollow && comment.url"> |
||||
<a [routerLink]="comment.url">Follow</a> |
<a [routerLink]="comment.url">Follow</a> |
||||
</ng-container> |
</ng-container> |
||||
|
|
||||
{{comment.time | sqxFromNow}} |
{{comment.time | sqxFromNow}} |
||||
|
</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
</ng-container> |
||||
|
|
||||
<button *ngIf="comment.user === userToken || canDelete" type="button" class="btn btn-sm btn-text-danger item-remove" |
<ng-template #editing> |
||||
(sqxConfirmClick)="delete.emit()" |
<div class="col"> |
||||
confirmTitle="Delete comment" |
<form (ngSubmit)="update()"> |
||||
confirmText="Do you really want to delete the comment?" |
<textarea class="form-control mb-1" name="{{comment.id}}" sqxFocusOnInit |
||||
[confirmRequired]="confirmDelete"> |
[(ngModel)]="editingText" |
||||
<i class="icon-bin2"></i> |
[mention]="mentionUsers" |
||||
</button> |
[mentionConfig]="mentionConfig" |
||||
|
[mentionListTemplate]="mentionListTemplate" |
||||
|
(keydown)="updateWhenEnter($event)"></textarea> |
||||
|
|
||||
|
<div> |
||||
|
<button type="button" class="btn btn-sm btn-secondary mr-1" (click)="cancelEdit()"> |
||||
|
Cancel |
||||
|
</button> |
||||
|
<button type="submit" class="btn btn-sm btn-primary"> |
||||
|
<i class="icon-enter"></i> Save |
||||
|
</button> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</ng-template> |
||||
|
|
||||
|
<div class="actions" *ngIf="!isEditing"> |
||||
|
<button *ngIf="isEditable && canEdit" type="button" class="btn btn-sm btn-text-secondary" (click)="startEdit()"> |
||||
|
<i class="icon-pencil"></i> |
||||
|
</button> |
||||
|
|
||||
|
<button *ngIf="isDeletable || canDelete" type="button" class="btn btn-sm btn-text-danger" |
||||
|
(sqxConfirmClick)="delete()" |
||||
|
confirmTitle="Delete comment" |
||||
|
confirmText="Do you really want to delete the comment?" |
||||
|
[confirmRequired]="confirmDelete"> |
||||
|
<i class="icon-bin2"></i> |
||||
|
</button> |
||||
|
</div> |
||||
</div> |
</div> |
||||
|
|
||||
|
<ng-template #mentionListTemplate let-item="item"> |
||||
|
{{item['contributorEmail']}} |
||||
|
</ng-template> |
||||
Binary file not shown.
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue