From 493a6de8bd22f1605d4efdc9a3e66737ef48eb34 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 1 Sep 2020 17:54:36 +0200 Subject: [PATCH 01/14] Confirm button for assets and references. --- backend/i18n/frontend_en.json | 4 ++++ backend/i18n/frontend_nl.json | 4 ++++ backend/i18n/source/frontend_en.json | 4 ++++ .../shared/references/reference-item.component.html | 5 ++++- .../app/shared/components/assets/asset.component.html | 10 ++++++++-- .../app/shared/components/assets/asset.component.scss | 4 ---- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/backend/i18n/frontend_en.json b/backend/i18n/frontend_en.json index 397f956c8..d0cd7e5d7 100644 --- a/backend/i18n/frontend_en.json +++ b/backend/i18n/frontend_en.json @@ -81,6 +81,8 @@ "assets.protected": "Protected", "assets.refreshTooltip": "Refresh Assets (CTRL + SHIFT + R)", "assets.reloaded": "Assets reloaded.", + "assets.removeConfirmText": "Do you really want to remove the asset?", + "assets.removeConfirmTitle": "Remove asset", "assets.renameFolder": "Rename Folder", "assets.replaceConfirmText": "Do you really want to replace the asset with a newer version", "assets.replaceConfirmTitle": "Replace asset?", @@ -367,6 +369,8 @@ "contents.referencesSelectSchema": "Select {schema}", "contents.refreshTooltip": "Refresh Contents (CTRL + SHIFT + R)", "contents.reloaded": "Contents reloaded.", + "contents.removeConfirmText": "Do you really want to remove the content?", + "contents.removeConfirmTitle": "Remove content", "contents.saveAndPublish": "Save and Publish", "contents.scheduledAt": "at", "contents.scheduledAtLabel": "at", diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json index 8f9c44f4f..4b2a14253 100644 --- a/backend/i18n/frontend_nl.json +++ b/backend/i18n/frontend_nl.json @@ -81,6 +81,8 @@ "assets.protected": "Beschermd", "assets.refreshTooltip": "Assets vernieuwen (CTRL + SHIFT + R)", "assets.reloaded": "Bestanden herladen.", + "assets.removeConfirmText": "Do you really want to remove the asset?", + "assets.removeConfirmTitle": "Remove asset", "assets.renameFolder": "Naam map wijzigen", "assets.replaceConfirmText": "Wilt je de asset echt vervangen door een nieuwere versie", "assets.replaceConfirmTitle": "Asset vervangen?", @@ -367,6 +369,8 @@ "contents.referencesSelectSchema": "Selecteer {scheme}", "contents.refreshTooltip": "Ververs inhoud (CTRL + SHIFT + R)", "contents.reloaded": "Inhoud opnieuw geladen.", + "contents.removeConfirmText": "Do you really want to remove the content?", + "contents.removeConfirmTitle": "Remove content", "contents.saveAndPublish": "Opslaan en publiceren", "contents.scheduledAt": "bij", "contents.scheduledAtLabel": "bij", diff --git a/backend/i18n/source/frontend_en.json b/backend/i18n/source/frontend_en.json index 397f956c8..d0cd7e5d7 100644 --- a/backend/i18n/source/frontend_en.json +++ b/backend/i18n/source/frontend_en.json @@ -81,6 +81,8 @@ "assets.protected": "Protected", "assets.refreshTooltip": "Refresh Assets (CTRL + SHIFT + R)", "assets.reloaded": "Assets reloaded.", + "assets.removeConfirmText": "Do you really want to remove the asset?", + "assets.removeConfirmTitle": "Remove asset", "assets.renameFolder": "Rename Folder", "assets.replaceConfirmText": "Do you really want to replace the asset with a newer version", "assets.replaceConfirmTitle": "Replace asset?", @@ -367,6 +369,8 @@ "contents.referencesSelectSchema": "Select {schema}", "contents.refreshTooltip": "Refresh Contents (CTRL + SHIFT + R)", "contents.reloaded": "Contents reloaded.", + "contents.removeConfirmText": "Do you really want to remove the content?", + "contents.removeConfirmTitle": "Remove content", "contents.saveAndPublish": "Save and Publish", "contents.scheduledAt": "at", "contents.scheduledAtLabel": "at", diff --git a/frontend/app/features/content/shared/references/reference-item.component.html b/frontend/app/features/content/shared/references/reference-item.component.html index f45f53caa..83a1667e8 100644 --- a/frontend/app/features/content/shared/references/reference-item.component.html +++ b/frontend/app/features/content/shared/references/reference-item.component.html @@ -26,7 +26,10 @@ - diff --git a/frontend/app/shared/components/assets/asset.component.html b/frontend/app/shared/components/assets/asset.component.html index 9ef6fad2a..5d8cd75ab 100644 --- a/frontend/app/shared/components/assets/asset.component.html +++ b/frontend/app/shared/components/assets/asset.component.html @@ -37,7 +37,10 @@ - + @@ -131,7 +134,10 @@ - diff --git a/frontend/app/shared/components/assets/asset.component.scss b/frontend/app/shared/components/assets/asset.component.scss index 09980d430..eed0da552 100644 --- a/frontend/app/shared/components/assets/asset.component.scss +++ b/frontend/app/shared/components/assets/asset.component.scss @@ -288,10 +288,6 @@ img { cursor: pointer; } -.icon-close { - font-size: .6rem; -} - .tag { background: $color-border; border: 0; From cb117b03f05f56ecd770c82feeabf983b3aba68b Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 2 Sep 2020 11:23:04 +0200 Subject: [PATCH 02/14] Fix markdown. --- .../app/shared/components/forms/markdown-editor.component.scss | 3 +++ .../app/shared/components/forms/markdown-editor.component.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/frontend/app/shared/components/forms/markdown-editor.component.scss b/frontend/app/shared/components/forms/markdown-editor.component.scss index 685346310..fe24f9274 100644 --- a/frontend/app/shared/components/forms/markdown-editor.component.scss +++ b/frontend/app/shared/components/forms/markdown-editor.component.scss @@ -3,7 +3,10 @@ $background: #fff; :host ::ng-deep { // sass-lint:disable class-name-format .CodeMirror { + box-sizing: content-box; height: 300px; + padding-bottom: 10px; + padding-top: 0; } } diff --git a/frontend/app/shared/components/forms/markdown-editor.component.ts b/frontend/app/shared/components/forms/markdown-editor.component.ts index 5b259ee8d..36bbca4bb 100644 --- a/frontend/app/shared/components/forms/markdown-editor.component.ts +++ b/frontend/app/shared/components/forms/markdown-editor.component.ts @@ -90,6 +90,8 @@ export class MarkdownEditorComponent extends StatefulControlComponent Date: Wed, 2 Sep 2020 11:25:09 +0200 Subject: [PATCH 03/14] Increase padding again. --- .../app/shared/components/forms/markdown-editor.component.scss | 2 +- .../app/shared/components/forms/markdown-editor.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/app/shared/components/forms/markdown-editor.component.scss b/frontend/app/shared/components/forms/markdown-editor.component.scss index fe24f9274..108137e49 100644 --- a/frontend/app/shared/components/forms/markdown-editor.component.scss +++ b/frontend/app/shared/components/forms/markdown-editor.component.scss @@ -6,7 +6,7 @@ $background: #fff; box-sizing: content-box; height: 300px; padding-bottom: 10px; - padding-top: 0; + padding-top: 10px; } } diff --git a/frontend/app/shared/components/forms/markdown-editor.component.ts b/frontend/app/shared/components/forms/markdown-editor.component.ts index 36bbca4bb..12ab74d82 100644 --- a/frontend/app/shared/components/forms/markdown-editor.component.ts +++ b/frontend/app/shared/components/forms/markdown-editor.component.ts @@ -91,7 +91,7 @@ export class MarkdownEditorComponent extends StatefulControlComponent Date: Wed, 2 Sep 2020 16:52:05 +0200 Subject: [PATCH 04/14] Fix nl. --- backend/src/Squidex/Squidex.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/Squidex/Squidex.csproj b/backend/src/Squidex/Squidex.csproj index f8a1e4f35..c0426a907 100644 --- a/backend/src/Squidex/Squidex.csproj +++ b/backend/src/Squidex/Squidex.csproj @@ -125,6 +125,7 @@ + From feaec28b46fb2bc362749acfec531ff267b1ec39 Mon Sep 17 00:00:00 2001 From: MartijnDijkgraaf Date: Thu, 3 Sep 2020 08:53:15 +0200 Subject: [PATCH 05/14] NL translations (#571) * Added Dutch translations * Added more NL translations --- backend/i18n/frontend_nl.json | 22 +++++++++---------- backend/i18n/source/backend__ignore.json | 4 ++-- backend/i18n/source/backend_nl.json | 15 +++++++++++-- backend/i18n/source/frontend__ignore.json | 4 ++-- backend/i18n/source/frontend_nl.json | 11 ++++++++++ backend/src/Squidex.Shared/Texts.nl.resx | 26 +++++++++++------------ 6 files changed, 52 insertions(+), 30 deletions(-) diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json index 4b2a14253..bb003b741 100644 --- a/backend/i18n/frontend_nl.json +++ b/backend/i18n/frontend_nl.json @@ -81,8 +81,8 @@ "assets.protected": "Beschermd", "assets.refreshTooltip": "Assets vernieuwen (CTRL + SHIFT + R)", "assets.reloaded": "Bestanden herladen.", - "assets.removeConfirmText": "Do you really want to remove the asset?", - "assets.removeConfirmTitle": "Remove asset", + "assets.removeConfirmText": "Wil je het bestand echt verwijderen?", + "assets.removeConfirmTitle": "Verwijder bestand", "assets.renameFolder": "Naam map wijzigen", "assets.replaceConfirmText": "Wilt je de asset echt vervangen door een nieuwere versie", "assets.replaceConfirmTitle": "Asset vervangen?", @@ -369,8 +369,8 @@ "contents.referencesSelectSchema": "Selecteer {scheme}", "contents.refreshTooltip": "Ververs inhoud (CTRL + SHIFT + R)", "contents.reloaded": "Inhoud opnieuw geladen.", - "contents.removeConfirmText": "Do you really want to remove the content?", - "contents.removeConfirmTitle": "Remove content", + "contents.removeConfirmText": "Wil je de inhoud echt verwijderen?", + "contents.removeConfirmTitle": "Verwijder inhoud", "contents.saveAndPublish": "Opslaan en publiceren", "contents.scheduledAt": "bij", "contents.scheduledAtLabel": "bij", @@ -678,10 +678,10 @@ "schemas.fieldTypes.references.countMin": "Min. items", "schemas.fieldTypes.references.description": "Links naar andere inhoudsitems.", "schemas.fieldTypes.references.resolveHint": "Toon de naam van het item waarnaar wordt verwezen in de inhoudslijst wanneer MaxItems is ingesteld op 1.", - "schemas.fieldTypes.string.characters": "Characters", - "schemas.fieldTypes.string.charactersMax": "Max Characters", - "schemas.fieldTypes.string.charactersMin": "Min Characters", - "schemas.fieldTypes.string.contentType": "Content Type", + "schemas.fieldTypes.string.characters": "Karakters", + "schemas.fieldTypes.string.charactersMax": "Max. karakters", + "schemas.fieldTypes.string.charactersMin": "Min. karakters", + "schemas.fieldTypes.string.contentType": "Inhoudstype", "schemas.fieldTypes.string.description": "Titels, namen, alinea's.", "schemas.fieldTypes.string.length": "Lengte", "schemas.fieldTypes.string.lengthMax": "Max. lengte", @@ -689,9 +689,9 @@ "schemas.fieldTypes.string.pattern": "Regex-patroon", "schemas.fieldTypes.string.patternMessage": "Patroonbericht", "schemas.fieldTypes.string.suggestions": "Suggesties", - "schemas.fieldTypes.string.words": "Words", - "schemas.fieldTypes.string.wordsMax": "Max Words", - "schemas.fieldTypes.string.wordsMin": "Min Words", + "schemas.fieldTypes.string.words": "Woorden", + "schemas.fieldTypes.string.wordsMax": "Max. Woorden", + "schemas.fieldTypes.string.wordsMin": "Min. Woorden", "schemas.fieldTypes.tags.count": "Artikelen", "schemas.fieldTypes.tags.countMax": "Max. aantal items", "schemas.fieldTypes.tags.countMin": "Min. items", diff --git a/backend/i18n/source/backend__ignore.json b/backend/i18n/source/backend__ignore.json index e9596e8ee..a678d4af6 100644 --- a/backend/i18n/source/backend__ignore.json +++ b/backend/i18n/source/backend__ignore.json @@ -151,10 +151,10 @@ "/Squidex.Domain.Apps.Entities/Contents/Text/Elastic/ElasticSearchTextIndex.cs": [ "*" ], - "/Squidex.Domain.Apps.Entities/Contents/Text/Lucene/IndexManager.cs": [ + "/Squidex.Domain.Apps.Entities/Contents/Text/Lucene/IndexManager_Impl.cs": [ "*" ], - "/Squidex.Domain.Apps.Entities/Contents/Text/Lucene/IndexManager_Impl.cs": [ + "/Squidex.Domain.Apps.Entities/Contents/Text/Lucene/IndexManager.cs": [ "*" ], "/Squidex.Domain.Apps.Entities/Notifications/NotificationEmailSender.cs": [ diff --git a/backend/i18n/source/backend_nl.json b/backend/i18n/source/backend_nl.json index 37969277d..02847a093 100644 --- a/backend/i18n/source/backend_nl.json +++ b/backend/i18n/source/backend_nl.json @@ -43,6 +43,7 @@ "common.clientd": "Client-ID", "common.clientId": "Client-ID", "common.clientSecret": "Clientgeheim", + "common.contentType": "Inhoudstype", "common.contributorId": "Bijdrager-ID of e-mailadres", "common.data": "Gegevens", "common.defaultValue": "Standaardwaarde", @@ -69,18 +70,22 @@ "common.language": "Taalcode", "common.login": "Inloggen", "common.logout": "Uitloggen", + "common.maxCharacters": "Max. karakters", "common.maxHeight": "Max. hoogte", "common.maxItems": "Max. aantal items", "common.maxLength": "Max. lengte", "common.maxSize": "Max. grootte", "common.maxValue": "Max. waarde", "common.maxWidth": "Max. breedte", + "common.maxWords": "Max. woorden", + "common.minCharacters": "Min. karakters", "common.minHeight": "Min. hoogte", "common.minItems": "Min items", "common.minLength": "Min. lengte", "common.minSize": "Min. grootte", "common.minValue": "Min. waarde", "common.minWidth": "Min. breedte", + "common.minWords": "Min. woorden", "common.name": "Naam", "common.notFoundValue": "- niet gevonden -", "common.numDays": "Aantal dagen", @@ -147,24 +152,32 @@ "contents.validation.itemCount": "Moet exact {count} item (s) bevatten.", "contents.validation.itemCountBetween": "Moet tussen {min} en {max} item (s) bevatten.", "contents.validation.max": "Moet kleiner zijn dan of gelijk zijn aan {max}.", + "contents.validation.maxCharacters": "Mag niet meer dan {max} tekstteken (s) bevatten.", "contents.validation.maximumHeight": "Hoogte {hoogte} px moet kleiner zijn dan {max} px.", "contents.validation.maximumSize": "Grootte van {size} moet kleiner zijn dan {max}.", "contents.validation.maximumWidth": "Breedte {breedte} px moet kleiner zijn dan {max} px.", "contents.validation.maxItems": "Mag niet meer dan {max} item (s) bevatten.", "contents.validation.maxLength": "Mag niet meer dan {max} teken (s) bevatten.", + "contents.validation.maxWords": "Mag niet meer dan {max} woord(en) bevatten.", "contents.validation.min": "Moet groter zijn dan of gelijk zijn aan {min}.", "contents.validation.minimumHeight": "Hoogte {hoogte} px moet groter zijn dan {min} px.", "contents.validation.minimumSize": "Grootte van {size} moet groter zijn dan {min}.", "contents.validation.minimumWidth": "Breedte {breedte} px moet groter zijn dan {min} px.", "contents.validation.minItems": "Moet minstens {min} item (s) bevatten.", "contents.validation.minLength": "Moet minstens {min} teken (s) bevatten.", + "contents.validation.minNormalCharacters": "Moet minstens {min} tekstteken (s) bevatten.", + "contents.validation.minWords": "Moet minstens {min} woord(en) bevatten.", "contents.validation.mustBeEmpty": "Waarde mag niet worden gedefinieerd.", + "contents.validation.normalCharacterCount": "Moet exact {count} tekstteken (s) bevatten.", + "contents.validation.normalCharactersBetween": "Moet tussen {min} en {max} tekstteken (s) bevatten.", "contents.validation.notAllowed": "Geen toegestane waarde.", "contents.validation.pattern": "Moet het patroon volgen.", "contents.validation.regexTooSlow": "Regex is te traag.", "contents.validation.required": "Veld is verplicht.", "contents.validation.unique": "Er bestaat een andere inhoud met dezelfde waarde.", "contents.validation.unknownField": "Onbekend {fieldType}.", + "contents.validation.wordCount": "Moet exact {count} woord (en) bevatten.", + "contents.validation.wordsBetween": "Moet tussen {min} en {max} woord (en) bevatten.", "contents.workflowErorPublishing": "Contentworkflow verhindert publiceren.", "contents.workflowErrorUpdate": "De werkstroom staat geen updates toe met status {status}", "exception.invalidJsonQuery": "Json-query niet geldig: {message}", @@ -228,12 +241,10 @@ "schemas.nameAlreadyExists": "Er bestaat al een schema met dezelfde naam.", "schemas.noPermission": "Je hebt geen toestemming voor dit schema.", "schemas.notFoundId": "Schema {id} bestaat niet.", - "schemas.number.eitherMinMaxOrAllowedValuesError": "Ofwel toegestane waarden of min en max lengte kunnen worden gedefinieerd.", "schemas.number.inlineEditorError": "Inline bewerken is niet toegestaan ​​voor Radio-editor.", "schemas.onlyArraysHaveNested": "Alleen matrixvelden kunnen geneste velden bevatten.", "schemas.onylArraysInRoot": "Genest veld mag geen matrixvelden zijn.", "schemas.references.resolveError": "Kan alleen verwijzingen omzetten als MaxItems 1 is.", - "schemas.string.eitherMinMaxOrAllowedValuesError": "Ofwel toegestane waarden of min en max waarde kunnen worden gedefinieerd.", "schemas.string.inlineEditorError": "Inline bewerken is alleen toegestaan ​​voor dropdowns, slugs en invoervelden.", "schemas.stringEditorsNeedAllowedValuesError": "Radioknoppen of vervolgkeuzelijsten hebben toegestane waarden nodig.", "schemas.tags.editorNeedsAllowedValues": "Selectievakjes of vervolgkeuzelijsten hebben toegestane waarden nodig.", diff --git a/backend/i18n/source/frontend__ignore.json b/backend/i18n/source/frontend__ignore.json index 737bd389f..4635dc8c0 100644 --- a/backend/i18n/source/frontend__ignore.json +++ b/backend/i18n/source/frontend__ignore.json @@ -19,8 +19,8 @@ "#{{index + 1}}" ], "/features/content/shared/forms/field-editor.component.html": [ - "*", - "{{field.displayName}} {{displaySuffix}}" + "{{field.displayName}} {{displaySuffix}}", + "*" ], "/features/content/shared/references/references-editor.component.html": [ "·" diff --git a/backend/i18n/source/frontend_nl.json b/backend/i18n/source/frontend_nl.json index 5641fb60d..bb003b741 100644 --- a/backend/i18n/source/frontend_nl.json +++ b/backend/i18n/source/frontend_nl.json @@ -81,6 +81,8 @@ "assets.protected": "Beschermd", "assets.refreshTooltip": "Assets vernieuwen (CTRL + SHIFT + R)", "assets.reloaded": "Bestanden herladen.", + "assets.removeConfirmText": "Wil je het bestand echt verwijderen?", + "assets.removeConfirmTitle": "Verwijder bestand", "assets.renameFolder": "Naam map wijzigen", "assets.replaceConfirmText": "Wilt je de asset echt vervangen door een nieuwere versie", "assets.replaceConfirmTitle": "Asset vervangen?", @@ -367,6 +369,8 @@ "contents.referencesSelectSchema": "Selecteer {scheme}", "contents.refreshTooltip": "Ververs inhoud (CTRL + SHIFT + R)", "contents.reloaded": "Inhoud opnieuw geladen.", + "contents.removeConfirmText": "Wil je de inhoud echt verwijderen?", + "contents.removeConfirmTitle": "Verwijder inhoud", "contents.saveAndPublish": "Opslaan en publiceren", "contents.scheduledAt": "bij", "contents.scheduledAtLabel": "bij", @@ -674,6 +678,10 @@ "schemas.fieldTypes.references.countMin": "Min. items", "schemas.fieldTypes.references.description": "Links naar andere inhoudsitems.", "schemas.fieldTypes.references.resolveHint": "Toon de naam van het item waarnaar wordt verwezen in de inhoudslijst wanneer MaxItems is ingesteld op 1.", + "schemas.fieldTypes.string.characters": "Karakters", + "schemas.fieldTypes.string.charactersMax": "Max. karakters", + "schemas.fieldTypes.string.charactersMin": "Min. karakters", + "schemas.fieldTypes.string.contentType": "Inhoudstype", "schemas.fieldTypes.string.description": "Titels, namen, alinea's.", "schemas.fieldTypes.string.length": "Lengte", "schemas.fieldTypes.string.lengthMax": "Max. lengte", @@ -681,6 +689,9 @@ "schemas.fieldTypes.string.pattern": "Regex-patroon", "schemas.fieldTypes.string.patternMessage": "Patroonbericht", "schemas.fieldTypes.string.suggestions": "Suggesties", + "schemas.fieldTypes.string.words": "Woorden", + "schemas.fieldTypes.string.wordsMax": "Max. Woorden", + "schemas.fieldTypes.string.wordsMin": "Min. Woorden", "schemas.fieldTypes.tags.count": "Artikelen", "schemas.fieldTypes.tags.countMax": "Max. aantal items", "schemas.fieldTypes.tags.countMin": "Min. items", diff --git a/backend/src/Squidex.Shared/Texts.nl.resx b/backend/src/Squidex.Shared/Texts.nl.resx index 5693fb6d2..9e8e50fea 100644 --- a/backend/src/Squidex.Shared/Texts.nl.resx +++ b/backend/src/Squidex.Shared/Texts.nl.resx @@ -191,7 +191,7 @@ Clientgeheim - Content type + Inhoudstype Bijdrager-ID of e-mailadres @@ -272,7 +272,7 @@ Uitloggen - Max characters + Max. karakters Max. hoogte @@ -293,10 +293,10 @@ Max. breedte - Max words + Max. woorden - Min characters + Min. karakters Min. hoogte @@ -317,7 +317,7 @@ Min. breedte - Min words + Min. woorden Naam @@ -518,7 +518,7 @@ Moet kleiner zijn dan of gelijk zijn aan {max}. - Must not have more than {max} text character(s). + Mag niet meer dan {max} tekstteken (s) bevatten. Hoogte {hoogte} px moet kleiner zijn dan {max} px. @@ -536,7 +536,7 @@ Mag niet meer dan {max} teken (s) bevatten. - Must not have more than {max} word(s). + Mag niet meer dan {max} woord(en) bevatten. Moet groter zijn dan of gelijk zijn aan {min}. @@ -557,19 +557,19 @@ Moet minstens {min} teken (s) bevatten. - Must have at least {min} text character(s). + Moet minstens {min} tekstteken (s) bevatten. - Must have at least {min} word(s). + Moet minstens {min} woord(en) bevatten. Waarde mag niet worden gedefinieerd. - Must have exactly {count} text character(s). + Moet exact {count} tekstteken (s) bevatten. - Must have between {min} and {max} text character(s). + Moet tussen {min} en {max} tekstteken (s) bevatten. Geen toegestane waarde. @@ -590,10 +590,10 @@ Onbekend {fieldType}. - Must have exactly {count} word(s). + Moet exact {count} woord (en) bevatten. - Must have between {min} and {max} word(s). + Moet tussen {min} en {max} woord (en) bevatten. Contentworkflow verhindert publiceren. From b279ee9b8e0cc2ac89f2c2ee6899004192e1f1de Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 3 Sep 2020 10:25:48 +0200 Subject: [PATCH 06/14] Protected improvements. --- .../Assets/Queries/AssetQueryParser.cs | 2 ++ .../framework/angular/forms/progress-bar.component.ts | 2 +- .../app/shared/components/assets/asset.component.html | 4 ++++ .../app/shared/components/assets/asset.component.scss | 10 ++++------ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/AssetQueryParser.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/AssetQueryParser.cs index 2a9d0e301..ed2670c3c 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/AssetQueryParser.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/AssetQueryParser.cs @@ -134,6 +134,7 @@ namespace Squidex.Domain.Apps.Entities.Assets.Queries AddProperty(nameof(IAssetEntity.FileName), JsonObjectType.String); AddProperty(nameof(IAssetEntity.FileSize), JsonObjectType.Integer); AddProperty(nameof(IAssetEntity.FileVersion), JsonObjectType.Integer); + AddProperty(nameof(IAssetEntity.IsProtected), JsonObjectType.Boolean); AddProperty(nameof(IAssetEntity.LastModified), JsonObjectType.String, JsonFormatStrings.DateTime); AddProperty(nameof(IAssetEntity.LastModifiedBy), JsonObjectType.String); AddProperty(nameof(IAssetEntity.Metadata), JsonObjectType.None); @@ -169,6 +170,7 @@ namespace Squidex.Domain.Apps.Entities.Assets.Queries AddProperty(nameof(IAssetEntity.CreatedBy), EdmPrimitiveTypeKind.String); AddProperty(nameof(IAssetEntity.FileHash), EdmPrimitiveTypeKind.String); AddProperty(nameof(IAssetEntity.FileName), EdmPrimitiveTypeKind.String); + AddProperty(nameof(IAssetEntity.IsProtected), EdmPrimitiveTypeKind.Boolean); AddProperty(nameof(IAssetEntity.FileSize), EdmPrimitiveTypeKind.Int64); AddProperty(nameof(IAssetEntity.FileVersion), EdmPrimitiveTypeKind.Int64); AddProperty(nameof(IAssetEntity.LastModified), EdmPrimitiveTypeKind.DateTimeOffset); diff --git a/frontend/app/framework/angular/forms/progress-bar.component.ts b/frontend/app/framework/angular/forms/progress-bar.component.ts index 8fe0377cc..cf49ed811 100644 --- a/frontend/app/framework/angular/forms/progress-bar.component.ts +++ b/frontend/app/framework/angular/forms/progress-bar.component.ts @@ -12,7 +12,7 @@ import * as ProgressBar from 'progressbar.js'; selector: 'sqx-progress-bar', styles: [` :host ::ng-deep svg { - vertical-align: top + vertical-align: middle }` ], template: '', diff --git a/frontend/app/shared/components/assets/asset.component.html b/frontend/app/shared/components/assets/asset.component.html index 5d8cd75ab..8f218b6d7 100644 --- a/frontend/app/shared/components/assets/asset.component.html +++ b/frontend/app/shared/components/assets/asset.component.html @@ -74,6 +74,8 @@
+ + {{asset.fileName}}
@@ -108,6 +110,8 @@
+ + {{asset.fileName}}
diff --git a/frontend/app/shared/components/assets/asset.component.scss b/frontend/app/shared/components/assets/asset.component.scss index eed0da552..f82c6d702 100644 --- a/frontend/app/shared/components/assets/asset.component.scss +++ b/frontend/app/shared/components/assets/asset.component.scss @@ -111,6 +111,10 @@ $list-height: 2.25rem; &-name { line-height: 2rem; + + i { + font-size: 80%; + } } &-tags { @@ -171,12 +175,6 @@ $list-height: 2.25rem; } } -.editable { - border-bottom: 1px solid transparent; - border-top: 0; - height: 2rem; -} - .table-items-row { & { height: $list-height + 2rem; From d9739048f12e595c0e727957c9c26b0f4315edfc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 3 Sep 2020 12:54:52 +0200 Subject: [PATCH 07/14] Add a test from support request. --- .../GraphQL/GraphQLExecutionContext.cs | 24 ++++++++++++------- .../Contents/GraphQL/GraphQLModel.cs | 2 +- .../Contents/GraphQL/Types/Extensions.cs | 10 -------- .../HandleRules/RuleEventFormatterTests.cs | 23 ++++++++++++++++++ 4 files changed, 40 insertions(+), 19 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs index b6311e0ce..077f70b54 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs @@ -15,6 +15,7 @@ using Squidex.Domain.Apps.Core; using Squidex.Domain.Apps.Entities.Assets; using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types; using Squidex.Domain.Apps.Entities.Contents.Queries; +using Squidex.Infrastructure; using Squidex.Infrastructure.Json.Objects; using Squidex.Infrastructure.Log; @@ -70,37 +71,37 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL return await dataLoader.LoadAsync(id); } - public async Task> GetReferencedAssetsAsync(IJsonValue value) + public Task> GetReferencedAssetsAsync(IJsonValue value) { var ids = ParseIds(value); if (ids == null) { - return EmptyAssets; + return Task.FromResult>(EmptyAssets); } var dataLoader = GetAssetsLoader(); - return await dataLoader.LoadManyAsync(ids); + return LoadManyAsync(dataLoader, ids); } - public async Task> GetReferencedContentsAsync(IJsonValue value) + public Task> GetReferencedContentsAsync(IJsonValue value) { var ids = ParseIds(value); if (ids == null) { - return EmptyContents; + return Task.FromResult>(EmptyContents); } var dataLoader = GetContentsLoader(); - return await dataLoader.LoadManyAsync(ids); + return LoadManyAsync(dataLoader, ids); } private IDataLoader GetAssetsLoader() { - return dataLoaderContextAccessor.Context.GetOrAddBatchLoader("Assets", + return dataLoaderContextAccessor.Context.GetOrAddBatchLoader(nameof(GetAssetsLoader), async batch => { var result = await GetReferencedAssetsAsync(new List(batch)); @@ -111,7 +112,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL private IDataLoader GetContentsLoader() { - return dataLoaderContextAccessor.Context.GetOrAddBatchLoader("References", + return dataLoaderContextAccessor.Context.GetOrAddBatchLoader(nameof(GetContentsLoader), async batch => { var result = await GetReferencedContentsAsync(new List(batch)); @@ -120,6 +121,13 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL }); } + private static async Task> LoadManyAsync(IDataLoader dataLoader, ICollection keys) where T : class + { + var contents = await Task.WhenAll(keys.Select(dataLoader.LoadAsync)); + + return contents.NotNull().ToList(); + } + private static ICollection? ParseIds(IJsonValue value) { try diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs index cd7912a4e..ab066b73b 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs @@ -153,7 +153,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL public IObjectGraphType GetAssetType() { - return assetType as IObjectGraphType; + return assetType; } public IObjectGraphType GetContentType(Guid schemaId) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs index 39835928a..a36e6ec6f 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs @@ -7,10 +7,7 @@ using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; -using GraphQL.DataLoader; using Squidex.Domain.Apps.Core.Schemas; -using Squidex.Infrastructure; using Squidex.Text; namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types @@ -47,12 +44,5 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types return value; } - - public static async Task> LoadManyAsync(this IDataLoader dataLoader, ICollection keys) where T : class - { - var contents = await Task.WhenAll(keys.Select(dataLoader.LoadAsync)); - - return contents.NotNull().ToList(); - } } } diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs index 4f3e5bbc7..d7b1bbfca 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs @@ -279,5 +279,28 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules Assert.Equal("Created", result); } + + [Fact] + public async Task Should_return_json_string_when_array() + { + var @event = new EnrichedContentEvent + { + Data = + new NamedContentData() + .AddField("categories", + new ContentFieldData() + .AddJsonValue(JsonValue.Array("ref1", "ref2", "ref3"))) + }; + + var script = @" +Script(JSON.stringify( +{ + 'categories': event.data.categories.iv +}))"; + + var result = await sut.FormatAsync(script, @event); + + Assert.Equal("{'categories':['ref1','ref2','ref3']}", result?.Replace(" ", string.Empty).Replace("\"", "'")); + } } } From b5b528486e0e087f145fe901c2675644187d0f20 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 3 Sep 2020 13:17:57 +0200 Subject: [PATCH 08/14] Just some formatting. --- .../Operations/HandleRules/RuleEventFormatterTests.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs index d7b1bbfca..1f925ffd5 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs @@ -293,10 +293,10 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules }; var script = @" -Script(JSON.stringify( -{ - 'categories': event.data.categories.iv -}))"; + Script(JSON.stringify( + { + 'categories': event.data.categories.iv + }))"; var result = await sut.FormatAsync(script, @event); From 6300a2797e6d13c3e42b649873402008c3cbc3b4 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 3 Sep 2020 16:26:51 +0200 Subject: [PATCH 09/14] Fix confirm button. --- frontend/app/shared/components/assets/asset.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/app/shared/components/assets/asset.component.html b/frontend/app/shared/components/assets/asset.component.html index 8f218b6d7..457b85edd 100644 --- a/frontend/app/shared/components/assets/asset.component.html +++ b/frontend/app/shared/components/assets/asset.component.html @@ -38,7 +38,7 @@ @@ -139,7 +139,7 @@