diff --git a/backend/i18n/frontend_en.json b/backend/i18n/frontend_en.json index be2491b87..1738e4a26 100644 --- a/backend/i18n/frontend_en.json +++ b/backend/i18n/frontend_en.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Failed to change category. Please reload.", "schemas.clone": "Clone Schema", "schemas.contentEditorUrl": "Content Editor Extension", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Content Sidebar Extension", "schemas.contentSidebarUrlHint": "URL to the plugin for the sidebar in the details view.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Contents Sidebar Extension", "schemas.contentsSidebarUrlHint": "URL to the plugin for the sidebar in the list view.", "schemas.create": "Create Schema", diff --git a/backend/i18n/frontend_fr.json b/backend/i18n/frontend_fr.json index cb02b97c0..103ccea35 100644 --- a/backend/i18n/frontend_fr.json +++ b/backend/i18n/frontend_fr.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Impossible de changer de catégorie. Veuillez recharger.", "schemas.clone": "Cloner le schéma", "schemas.contentEditorUrl": "Extension de l'éditeur de contenu", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Extension de la barre latérale de contenu", "schemas.contentSidebarUrlHint": "URL du plug-in pour la barre latérale dans la vue détaillée.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Contenu de l'extension de la barre latérale", "schemas.contentsSidebarUrlHint": "URL du plug-in pour la barre latérale dans la vue de liste.", "schemas.create": "Créer un schéma", diff --git a/backend/i18n/frontend_it.json b/backend/i18n/frontend_it.json index e3050e368..b3c81c2d9 100644 --- a/backend/i18n/frontend_it.json +++ b/backend/i18n/frontend_it.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Non è stato possibile cambiare la categoria. Per favore ricarica.", "schemas.clone": "Clona lo Schema", "schemas.contentEditorUrl": "Content Editor Extension", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Estensione della barra di navigazione laterale (contenuti)", "schemas.contentSidebarUrlHint": "URL del plug-in per la barra di navigazione laterale nella visualizzazione dei dettagli.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Estensione della barra di navigazione laterale (liste)", "schemas.contentsSidebarUrlHint": "URL del plug-in per la barra di navigazione laterale nella visualizzazione delle liste.", "schemas.create": "Crea uno Schema", diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json index f296a3348..0a9854ea2 100644 --- a/backend/i18n/frontend_nl.json +++ b/backend/i18n/frontend_nl.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Kan categorie niet wijzigen. Laad opnieuw.", "schemas.clone": "Clone Schema", "schemas.contentEditorUrl": "Inhoud Editor uitbreiding", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Inhoud zijbalk uitbreiding", "schemas.contentSidebarUrlHint": "URL naar de plug-in voor de zijbalk in de detailweergave.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Inhoud zijbalk uitbreiding", "schemas.contentsSidebarUrlHint": "URL naar de plug-in voor de zijbalk in de lijstweergave.", "schemas.create": "Schema maken", diff --git a/backend/i18n/frontend_pt.json b/backend/i18n/frontend_pt.json index 069a743e9..d2c13c94c 100644 --- a/backend/i18n/frontend_pt.json +++ b/backend/i18n/frontend_pt.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Falhou em mudar de categoria. Por favor, recarregue.", "schemas.clone": "Clonar Esquema", "schemas.contentEditorUrl": "Extensão do editor de conteúdo", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Extensão da barra lateral de conteúdo", "schemas.contentSidebarUrlHint": "URL para o plugin para a barra lateral na vista de detalhes.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Extensão da barra lateral de conteúdo", "schemas.contentsSidebarUrlHint": "URL para o plugin para a barra lateral na vista da lista.", "schemas.create": "Criar Esquema", diff --git a/backend/i18n/frontend_zh.json b/backend/i18n/frontend_zh.json index a0645637f..ea5252b29 100644 --- a/backend/i18n/frontend_zh.json +++ b/backend/i18n/frontend_zh.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "更改类别失败。请重新加载。", "schemas.clone": "Clone Schema", "schemas.contentEditorUrl": "内容编辑器扩展", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "内容侧边栏扩展", "schemas.contentSidebarUrlHint": "详细信息视图中侧边栏插件的 URL。", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "内容侧边栏扩展", "schemas.contentsSidebarUrlHint": "列表视图中侧边栏插件的 URL。", "schemas.create": "Create Schema", diff --git a/backend/i18n/source/frontend_en.json b/backend/i18n/source/frontend_en.json index be2491b87..1738e4a26 100644 --- a/backend/i18n/source/frontend_en.json +++ b/backend/i18n/source/frontend_en.json @@ -799,8 +799,11 @@ "schemas.changeCategoryFailed": "Failed to change category. Please reload.", "schemas.clone": "Clone Schema", "schemas.contentEditorUrl": "Content Editor Extension", + "schemas.contentEditorUrlHint": "URL to the plugin to replace the default content editor.", "schemas.contentSidebarUrl": "Content Sidebar Extension", "schemas.contentSidebarUrlHint": "URL to the plugin for the sidebar in the details view.", + "schemas.contentsListUrl": "Contents List Extension", + "schemas.contentsListUrlHint": "URL to the plugin to replace the default content list view.", "schemas.contentsSidebarUrl": "Contents Sidebar Extension", "schemas.contentsSidebarUrlHint": "URL to the plugin for the sidebar in the list view.", "schemas.create": "Create Schema", diff --git a/backend/i18n/translator/Squidex.Translator/Commands.cs b/backend/i18n/translator/Squidex.Translator/Commands.cs index aac9e153d..d70536f9f 100644 --- a/backend/i18n/translator/Squidex.Translator/Commands.cs +++ b/backend/i18n/translator/Squidex.Translator/Commands.cs @@ -17,7 +17,7 @@ namespace Squidex.Translator; public class Commands { - [Command(Name = "info", Description = "Shows information about the translator.")] + [Command("info", Description = "Shows information about the translator.")] public void Info() { var version = typeof(Commands).Assembly.GetName().Version; @@ -25,11 +25,11 @@ public class Commands Console.WriteLine($"Squidex Translator Version v{version}"); } - [Command(Name = "translate", Description = "Translates different parts.")] - [SubCommand] + [Command("translate", Description = "Translates different parts.")] + [Subcommand] public class Translate { - [Command(Name = "check-backend", Description = "Check backend files.")] + [Command("check-backend", Description = "Check backend files.")] public void CheckBackend(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "backend"); @@ -37,7 +37,7 @@ public class Commands new CheckBackend(folder, service).Run(); } - [Command(Name = "check-frontend", Description = "Check frontend files.")] + [Command("check-frontend", Description = "Check frontend files.")] public void CheckFrontend(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "frontend"); @@ -45,7 +45,7 @@ public class Commands new CheckFrontend(folder, service).Run(arguments.Fix); } - [Command(Name = "backend", Description = "Translate backend files.")] + [Command("backend", Description = "Translate backend files.")] public void Backend(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "backend"); @@ -53,7 +53,7 @@ public class Commands new TranslateBackend(folder, service).Run(); } - [Command(Name = "templates", Description = "Translate angular templates.")] + [Command("templates", Description = "Translate angular templates.")] public void Templates(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "frontend"); @@ -61,7 +61,7 @@ public class Commands new TranslateTemplates(folder, service).Run(arguments.Report); } - [Command(Name = "typescript", Description = "Translate typescript files.")] + [Command("typescript", Description = "Translate typescript files.")] public void Typescript(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "frontend"); @@ -69,7 +69,7 @@ public class Commands new TranslateTypescript(folder, service).Run(); } - [Command(Name = "gen-backend", Description = "Generate the backend translations.")] + [Command("gen-backend", Description = "Generate the backend translations.")] public void GenerateBackend(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "backend"); @@ -77,7 +77,7 @@ public class Commands new GenerateBackendResources(folder, service).Run(); } - [Command(Name = "gen-frontend", Description = "Generate the frontend translations.")] + [Command("gen-frontend", Description = "Generate the frontend translations.")] public void GenerateFrontend(TranslateArguments arguments) { var (folder, service) = Setup(arguments, "frontend"); @@ -85,7 +85,7 @@ public class Commands new GenerateFrontendResources(folder, service).Run(); } - [Command(Name = "clean-backend", Description = "Clean the backend translations.")] + [Command("clean-backend", Description = "Clean the backend translations.")] public void CleanBackend(TranslateArguments arguments) { var (_, service) = Setup(arguments, "backend"); @@ -95,7 +95,7 @@ public class Commands service.Save(); } - [Command(Name = "clean-frontend", Description = "Clean the frontend translations.")] + [Command("clean-frontend", Description = "Clean the frontend translations.")] public void CleanFrontend(TranslateArguments arguments) { var (_, service) = Setup(arguments, "frontend"); @@ -105,7 +105,7 @@ public class Commands service.Save(); } - [Command(Name = "gen-keys", Description = "Generate the keys for translations.")] + [Command("gen-keys", Description = "Generate the keys for translations.")] public void GenerateBackendKeys(TranslateArguments arguments) { var (backendFolder, serviceBackend) = Setup(arguments, "backend"); @@ -117,7 +117,7 @@ public class Commands new GenerateKeys(frontendFolder, frontendService, "frontend_keys.json").Run(); } - [Command(Name = "migrate-backend", Description = "Migrate the backend files.")] + [Command("migrate-backend", Description = "Migrate the backend files.")] public void MigrateBackend(TranslateArguments arguments) { var (_, service) = Setup(arguments, "backend"); @@ -125,7 +125,7 @@ public class Commands service.Migrate(); } - [Command(Name = "migrate-frontend", Description = "Migrate the frontend files.")] + [Command("migrate-frontend", Description = "Migrate the frontend files.")] public void MigrateFrontend(TranslateArguments arguments) { var (_, service) = Setup(arguments, "frontend"); @@ -164,20 +164,20 @@ public class Commands [Validator(typeof(Validator))] public sealed class TranslateArguments : IArgumentModel { - [Operand(Name = "folder", Description = "The squidex folder.")] + [Operand("folder", Description = "The squidex folder.")] public string Folder { get; set; } - [Option(LongName = "single", ShortName = "s", Description = "Single words only.")] + [Option('s', "single", Description = "Single words only.")] public bool SingleWords { get; set; } - [Option(LongName = "report", ShortName = "r")] + [Option('r', "report")] public bool Report { get; set; } - [Option(LongName = "fix")] + [Option("fix")] public bool Fix { get; set; } - [Option(LongName = "locale", ShortName = "l")] - public IEnumerable Locales { get; set; } + [Option('l', "locale")] + public IEnumerable Locales { get; set; } = Array.Empty(); public sealed class Validator : AbstractValidator { diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs index 1072e1e72..9a8db5e08 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs @@ -21,5 +21,7 @@ public sealed record SchemaProperties : NamedElementPropertiesBase public string? ContentEditorUrl { get; init; } + public string? ContentsListUrl { get; init; } + public bool ValidateOnPublish { get; init; } } diff --git a/backend/src/Squidex.Shared/Texts.fr.resx b/backend/src/Squidex.Shared/Texts.fr.resx index f815b666d..657baa909 100644 --- a/backend/src/Squidex.Shared/Texts.fr.resx +++ b/backend/src/Squidex.Shared/Texts.fr.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Le champ '{name|lower}' doit être une URL absolue. diff --git a/backend/src/Squidex.Shared/Texts.it.resx b/backend/src/Squidex.Shared/Texts.it.resx index 86e5f4abc..a85021a8b 100644 --- a/backend/src/Squidex.Shared/Texts.it.resx +++ b/backend/src/Squidex.Shared/Texts.it.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Il campo '{name|lower}' deve essere un URL assoluto. diff --git a/backend/src/Squidex.Shared/Texts.nl.resx b/backend/src/Squidex.Shared/Texts.nl.resx index bc5d58047..7a8969af2 100644 --- a/backend/src/Squidex.Shared/Texts.nl.resx +++ b/backend/src/Squidex.Shared/Texts.nl.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Het veld '{name|lower}' moet een absolute URL zijn. diff --git a/backend/src/Squidex.Shared/Texts.pt.resx b/backend/src/Squidex.Shared/Texts.pt.resx index eb5723a2a..3971a9c09 100644 --- a/backend/src/Squidex.Shared/Texts.pt.resx +++ b/backend/src/Squidex.Shared/Texts.pt.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 O campo {name|lower} deve ser uma URL absoluta. diff --git a/backend/src/Squidex.Shared/Texts.resx b/backend/src/Squidex.Shared/Texts.resx index c297cc2de..e462fea38 100644 --- a/backend/src/Squidex.Shared/Texts.resx +++ b/backend/src/Squidex.Shared/Texts.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 The field '{name|lower}' must be an absolute URL. diff --git a/backend/src/Squidex.Shared/Texts.zh.resx b/backend/src/Squidex.Shared/Texts.zh.resx index 199a0cbb3..ade60e332 100644 --- a/backend/src/Squidex.Shared/Texts.zh.resx +++ b/backend/src/Squidex.Shared/Texts.zh.resx @@ -53,10 +53,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 字段 '{name|lower}' 必须是绝对 URL。 diff --git a/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/SchemaPropertiesDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/SchemaPropertiesDto.cs index 4d948d057..d744d683c 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/SchemaPropertiesDto.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/SchemaPropertiesDto.cs @@ -39,6 +39,16 @@ public sealed class SchemaPropertiesDto /// public string? ContentEditorUrl { get; set; } + /// + /// The url to the editor plugin. + /// + public string? ContentsEditorUrl { get; set; } + + /// + /// The url to the content list plugin. + /// + public string? ContentsListUrl { get; set; } + /// /// True to validate the content items on publish. /// diff --git a/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/UpdateSchemaDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/UpdateSchemaDto.cs index e2005475f..ce4a1c0ec 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/UpdateSchemaDto.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Schemas/Models/UpdateSchemaDto.cs @@ -40,9 +40,9 @@ public sealed class UpdateSchemaDto public string? ContentSidebarUrl { get; set; } /// - /// The url to the editor plugin. + /// The url to the content list plugin. /// - public string? ContentEditorUrl { get; set; } + public string? ContentsListUrl { get; set; } /// /// True to validate the content items on publish. diff --git a/backend/src/Squidex/wwwroot/scripts/editor-sdk.js b/backend/src/Squidex/wwwroot/scripts/editor-sdk.js index b0017a2d9..b59588756 100644 --- a/backend/src/Squidex/wwwroot/scripts/editor-sdk.js +++ b/backend/src/Squidex/wwwroot/scripts/editor-sdk.js @@ -171,6 +171,8 @@ function SquidexSidebar(options) { return plugin; } +var SquidexPlugin = SquidexSidebar; + /** * Creates a new plugin for widgets. diff --git a/backend/src/Squidex/wwwroot/scripts/sidebar-content.html b/backend/src/Squidex/wwwroot/scripts/sidebar-content.html index de643ebf9..44c177a2f 100644 --- a/backend/src/Squidex/wwwroot/scripts/sidebar-content.html +++ b/backend/src/Squidex/wwwroot/scripts/sidebar-content.html @@ -12,6 +12,15 @@ body { background-color: white; } + + div { + padding: 20px; + } + + textarea { + overflow-x: hidden; + overflow-y: hidden; + } @@ -23,7 +32,9 @@ } - +
+ +