diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs index 9572b0af..ed3cb3ea 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs @@ -44,8 +44,8 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency public async Task SeedAsync(DataSeedContext context) { - var lookupQueryLanguage = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";"; - var lookupQueryCulture = $"SELECT \"CultureName\" AS \"Key\", \"DisplayName\" AS \"Name\", \"CreationTime\" FROM \"{DbTablePrefix}Language\" WHERE \"IsEnabled\" = 'true' and \"IsDeleted\" = 'false'"; + var lookupQueryLanguageKeyValues = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";"; + var lookupQueryCultureValues = $"SELECT \"CultureName\" AS \"Key\", \"DisplayName\" AS \"Name\", \"CreationTime\" FROM \"{DbTablePrefix}Language\" WHERE \"IsEnabled\" = 'true' and \"IsDeleted\" = 'false'"; #region Form @@ -707,7 +707,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DisplayExpr = "Name", ValueExpr = "Key", LookupQuery = $"SELECT \"{DbTablePrefix}Country\".\"Code\" AS \"Key\", \"{DbTablePrefix}Country\".\"Name\" as \"Name\" FROM \"{DbTablePrefix}Country\" ORDER BY \"{DbTablePrefix}Country\".\"Name\"" - }), + }), PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto { C = TenantManagementPermissions.Tenants.Create, @@ -720,7 +720,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency { IsPivot = true }) - }, + }, new ListFormField { ListFormCode = listFormTenants.ListFormCode, @@ -1216,7 +1216,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -1969,7 +1969,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Hint = "Manage", Text ="Manage", UrlTarget="_blank", - AuthName = AppCodes.IdentityManagement.IpRestrictions + ".Update", + AuthName = AppCodes.Languages.Language + ".Update", Url=$"/form/{ListFormCodes.Forms.FormLanguage}/@Id" }, }), @@ -2354,7 +2354,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryCulture + LookupQuery = lookupQueryCultureValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -2435,7 +2435,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto { @@ -2703,7 +2703,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -3259,7 +3259,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryCulture + LookupQuery = lookupQueryCultureValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -4078,7 +4078,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -4115,7 +4115,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -4181,7 +4181,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -4218,7 +4218,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryLanguage + LookupQuery = lookupQueryLanguageKeyValues }), ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)} @@ -4728,7 +4728,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = lookupQueryCulture + LookupQuery = lookupQueryCultureValues }), PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto { @@ -8044,7 +8044,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DisplayExpr = "Name", ValueExpr = "Key", LookupQuery = $"SELECT \"{DbTablePrefix}Country\".\"Code\" AS \"Key\", \"{DbTablePrefix}Country\".\"Name\" as \"Name\" FROM \"{DbTablePrefix}Country\" ORDER BY \"{DbTablePrefix}Country\".\"Name\"" - }), + }), PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto { C = TenantManagementPermissions.Tenants.Create, @@ -8057,7 +8057,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency { IsPivot = true }) - }, + }, new ListFormField { ListFormCode = listFormBranches.ListFormCode, @@ -8704,6 +8704,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.Sector + ".Create", @@ -8880,6 +8884,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.ContactTag + ".Create", @@ -9090,6 +9098,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.ContactTitle + ".Create", @@ -9300,6 +9312,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.Currency + ".Create", @@ -9308,7 +9324,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency D = AppCodes.Definitions.Currency + ".Delete", E = AppCodes.Definitions.Currency + ".Export" }), - DeleteCommand = $"UPDATE \"{DbTablePrefix}PCurrency\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteCommand = $"UPDATE \"{DbTablePrefix}Currency\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] { new FieldsDefaultValue @@ -9598,6 +9614,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.CountryGroup + ".Create", @@ -9606,7 +9626,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency D = AppCodes.Definitions.CountryGroup + ".Delete", E = AppCodes.Definitions.CountryGroup + ".Export" }), - DeleteCommand = $"UPDATE \"{DbTablePrefix}PCountryGroup\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteCommand = $"UPDATE \"{DbTablePrefix}CountryGroup\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] { new FieldsDefaultValue @@ -9772,6 +9792,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.Country + ".Create", @@ -9953,7 +9977,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency DataSourceType = UiLookupDataSourceTypeEnum.Query, DisplayExpr = "Name", ValueExpr = "Key", - LookupQuery = $"SELECT \"{DbTablePrefix}CountryGroup\".\"Name\" AS \"Key\", \"{DbTablePrefix}CountryGroup\".\"Name\" as \"Name\" FROM \"{DbTablePrefix}CountryGroup\" GROUP BY \"{DbTablePrefix}CountryGroup\".\"Name\" ORDER BY \"{DbTablePrefix}CountryGroup\".\"Name\"" + LookupQuery = $"SELECT \"{DbTablePrefix}CountryGroup\".\"Name\" AS \"Key\", \"{DbTablePrefix}CountryGroup\".\"Name\" as \"Name\" FROM \"{DbTablePrefix}CountryGroup\" GROUP BY \"{DbTablePrefix}CountryGroup\".\"Name\" ORDER BY \"{DbTablePrefix}CountryGroup\".\"Name\"" }), PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto { @@ -10073,7 +10097,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency } #endregion - #region State + #region City if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.State)) { var listFormState = await _listFormRepository.InsertAsync( @@ -10103,6 +10127,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.State + ".Create", @@ -10111,7 +10139,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency D = AppCodes.Definitions.State + ".Delete", E = AppCodes.Definitions.State + ".Export" }), - DeleteCommand = $"UPDATE \"{DbTablePrefix}PCity\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteCommand = $"UPDATE \"{DbTablePrefix}City\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] { new FieldsDefaultValue @@ -10329,6 +10357,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.SkillType + ".Create", @@ -10418,7 +10450,16 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }) + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "Manage", + Text ="Manage", + UrlTarget="_blank", + AuthName = AppCodes.Definitions.SkillType + ".Update", + Url=$"/form/{ListFormCodes.Forms.FormUomCategory}/@Id" + }, + }), }); #region SkillType Fields @@ -10503,6 +10544,10 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Mode = GridOptions.SelectionModeSingle, AllowSelectAll = false }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto { C = AppCodes.Definitions.UomCategory + ".Create", @@ -10511,7 +10556,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency D = AppCodes.Definitions.UomCategory + ".Delete", E = AppCodes.Definitions.UomCategory + ".Export" }), - DeleteCommand = $"UPDATE \"{DbTablePrefix}PUomCategory\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteCommand = $"UPDATE \"{DbTablePrefix}UomCategory\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] { new FieldsDefaultValue @@ -10592,7 +10637,16 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }) + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "Manage", + Text ="Manage", + UrlTarget="_blank", + AuthName = AppCodes.Definitions.UomCategory + ".Update", + Url=$"/form/{ListFormCodes.Forms.FormUomCategory}/@Id" + }, + }), }); #region UomCategory Fields @@ -10647,6 +10701,715 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency } #endregion + #region BlogCategory + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.BlogCategory)) + { + var listFormBlogCategory = await _listFormRepository.InsertAsync( + new ListForm + { + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.BlogCategory, + Name = AppCodes.BlogManagement.BlogCategory, + Title = AppCodes.BlogManagement.BlogCategory, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.BlogManagement.BlogCategory, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = SelectCommandByTableName("BlogCategories"), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + D = AppCodes.BlogManagement.BlogCategory + ".Delete", + E = AppCodes.BlogManagement.BlogCategory + ".Export" + }), + DeleteCommand = $"UPDATE \"{DbTablePrefix}BlogCategories\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] + { + new FieldsDefaultValue + { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + }, + new FieldsDefaultValue + { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto + { + Title = "Blog Category Form", + Width = 600, + Height = 400 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false + }), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() + { + Order = 1, + ColCount = 1, + ColSpan = 2, + ItemType = "group", + Items = + [ + new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 4, DataField = "Icon", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 5, DataField = "DisplayOrder", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 6, DataField = "IsActive", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxCheckBox } + ] + } + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new[] + { + new FieldsDefaultValue + { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + }, + new FieldsDefaultValue + { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new FieldsDefaultValue() { + FieldName = "IsActive", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region BlogCategory Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 400, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = lookupQueryLanguageKeyValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Slug", + Width = 330, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 400, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = lookupQueryLanguageKeyValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Icon", + Width = 200, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "DisplayOrder", + Width = 100, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogCategory.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogCategory + ".Create", + R = AppCodes.BlogManagement.BlogCategory, + U = AppCodes.BlogManagement.BlogCategory + ".Update", + E = true, + Deny = false + }) + } + ]); + #endregion + } + #endregion + + #region BlogPosts + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.BlogPosts)) + { + var listFormBlogPosts = await _listFormRepository.InsertAsync( + new ListForm + { + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.BlogPosts, + Name = AppCodes.BlogManagement.BlogPosts, + Title = AppCodes.BlogManagement.BlogPosts, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.BlogManagement.BlogPosts, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = SelectCommandByTableName("BlogPosts"), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + D = AppCodes.BlogManagement.BlogPosts + ".Delete", + E = AppCodes.BlogManagement.BlogPosts + ".Export" + }), + DeleteCommand = $"UPDATE \"{DbTablePrefix}BlogPosts\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[] + { + new FieldsDefaultValue + { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + }, + new FieldsDefaultValue + { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto + { + Title = "Blog Post Form", + Width = 600, + Height = 600 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false + }), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() + { + Order = 1, + ColCount = 1, + ColSpan = 2, + ItemType = "group", + Items = + [ + new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField = "Summary", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 4, DataField = "CoverImage", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 5, DataField = "ReadTime", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 6, DataField = "CategoryId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 7, DataField = "ViewCount", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 8, DataField = "LikeCount", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 9, DataField = "CommentCount", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 10, DataField = "IsPublished", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxCheckBox }, + new EditingFormItemDto { Order = 11, DataField = "PublishedAt", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxDateBox }, + new EditingFormItemDto { Order = 12, DataField = "ContentTr", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor }, + new EditingFormItemDto { Order = 13, DataField = "ContentEn", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor } + ] + } + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new[] + { + new FieldsDefaultValue + { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + }, + new FieldsDefaultValue + { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new FieldsDefaultValue() { + FieldName = "IsPublished", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value }, + new FieldsDefaultValue() { + FieldName = "PublishedAt", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }) + }); + + #region BlogPosts Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + Width = 400, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";" + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Slug", + Width = 350, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Summary", + Width = 400, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";" + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CoverImage", + Width = 200, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new[] + { + new ValidationRuleDto { Type = "required" } + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ReadTime", + Width = 80, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CategoryId", + Width = 200, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = $"SELECT \"{DbTablePrefix}BlogCategories\".\"Id\" AS \"Key\", \"{DbTablePrefix}BlogCategories\".\"Name\" as \"Name\" FROM \"{DbTablePrefix}BlogCategories\" ORDER BY \"{DbTablePrefix}BlogCategories\".\"Name\"" + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "ViewCount", + Width = 80, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsPublished", + Width = 80, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + }, + new() + { + ListFormCode = listFormBlogPosts.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "PublishedAt", + Width = 120, + ListOrderNo = 10, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.BlogManagement.BlogPosts + ".Create", + R = AppCodes.BlogManagement.BlogPosts, + U = AppCodes.BlogManagement.BlogPosts + ".Update", + E = true, + Deny = false + }) + } + ]); + #endregion + } + #endregion #endregion } diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json index 9f12815b..fc2428eb 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json @@ -513,9 +513,15 @@ }, { "resourceName": "Platform", - "key": "App.Forum", - "en": "Forum", - "tr": "Forum" + "key": "App.BlogManagement.Category", + "en": "Blog Categories", + "tr": "Blog Kategorileri" + }, + { + "resourceName": "Platform", + "key": "App.BlogManagement.Posts", + "en": "Blog Posts", + "tr": "Blog Yazıları" }, { "resourceName": "Platform", @@ -523,6 +529,12 @@ "en": "Forum Management", "tr": "Forum Yönetimi" }, + { + "resourceName": "Platform", + "key": "App.Forum", + "en": "Forum", + "tr": "Forum" + }, { "resourceName": "Platform", "key": "App.Home", @@ -6416,9 +6428,29 @@ "Code": "App.BlogManagement", "DisplayName": "App.BlogManagement", "Order": 10, - "Url": "/admin/blogmanagement", + "Url": null, "Icon": "FcTemplate", - "RequiredPermissionName": "App.BlogManagement", + "RequiredPermissionName": null, + "IsDisabled": false + }, + { + "ParentCode": "App.BlogManagement", + "Code": "App.BlogManagement.Category", + "DisplayName": "App.BlogManagement.Category", + "Order": 1, + "Url": "/list/list-blogcategory", + "Icon": "FaCertificate", + "RequiredPermissionName": "App.BlogManagement.Category", + "IsDisabled": false + }, + { + "ParentCode": "App.BlogManagement", + "Code": "App.BlogManagement.Posts", + "DisplayName": "App.BlogManagement.Posts", + "Order": 2, + "Url": "/list/list-blogposts", + "Icon": "FaWeixin", + "RequiredPermissionName": "App.BlogManagement.Posts", "IsDisabled": false }, { @@ -6910,9 +6942,17 @@ }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement", + "Name": "App.BlogManagement.Category", "ParentName": null, - "DisplayName": "App.BlogManagement", + "DisplayName": "App.BlogManagement.Category", + "IsEnabled": true, + "MultiTenancySide": 2 + }, + { + "GroupName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts", + "ParentName": null, + "DisplayName": "App.BlogManagement.Posts", "IsEnabled": true, "MultiTenancySide": 2 }, @@ -7902,44 +7942,76 @@ }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement.Create", - "ParentName": "App.BlogManagement", + "Name": "App.BlogManagement.Category.Create", + "ParentName": "App.BlogManagement.Category", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 2 }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement.Delete", - "ParentName": "App.BlogManagement", + "Name": "App.BlogManagement.Category.Delete", + "ParentName": "App.BlogManagement.Category", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 2 }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement.Export", - "ParentName": "App.BlogManagement", + "Name": "App.BlogManagement.Category.Export", + "ParentName": "App.BlogManagement.Category", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 2 }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement.Publish", - "ParentName": "App.BlogManagement", - "DisplayName": "Publish", + "Name": "App.BlogManagement.Category.Update", + "ParentName": "App.BlogManagement.Category", + "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 2 }, { "GroupName": "App.BlogManagement", - "Name": "App.BlogManagement.Update", - "ParentName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts.Create", + "ParentName": "App.BlogManagement.Posts", + "DisplayName": "Create", + "IsEnabled": true, + "MultiTenancySide": 2 + }, + { + "GroupName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts.Delete", + "ParentName": "App.BlogManagement.Posts", + "DisplayName": "Delete", + "IsEnabled": true, + "MultiTenancySide": 2 + }, + { + "GroupName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts.Export", + "ParentName": "App.BlogManagement.Posts", + "DisplayName": "Export", + "IsEnabled": true, + "MultiTenancySide": 2 + }, + { + "GroupName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts.Update", + "ParentName": "App.BlogManagement.Posts", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 2 }, + { + "GroupName": "App.BlogManagement", + "Name": "App.BlogManagement.Posts.Publish", + "ParentName": "App.BlogManagement.Posts", + "DisplayName": "Publish", + "IsEnabled": true, + "MultiTenancySide": 2 + }, { "GroupName": "App.ForumManagement", "Name": "App.ForumManagement.Create", diff --git a/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs index aee27d05..50abf8be 100644 --- a/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs @@ -350,22 +350,24 @@ public static class PlatformConsts public const string Branch = "list-branch"; public const string ClaimType = "list-claimtype"; public const string Sector = "list-sector"; - public const string ContactTag = "list-contactTag"; - public const string ContactTitle = "list-contactTitle"; + public const string ContactTag = "list-contacttag"; + public const string ContactTitle = "list-contacttitle"; public const string Currency = "list-currency"; - public const string CountryGroup = "list-countryGroup"; + public const string CountryGroup = "list-countrygroup"; public const string Country = "list-country"; public const string State = "list-city"; - public const string SkillType = "list-skillType"; - public const string UomCategory = "list-uomCategory"; + public const string SkillType = "list-skilltype"; + public const string UomCategory = "list-uomcategory"; + public const string BlogCategory = "list-blogcategory"; + public const string BlogPosts = "list-blogposts"; public const string ListformField = "list-listformfield"; } public static class Forms { public const string FormLanguage = "form-language"; - public const string FormUomCategory = "form-uomCategory"; - public const string FormSkillType = "form-skillType"; + public const string FormUomCategory = "form-uomcategory"; + public const string FormSkillType = "form-skilltype"; } } diff --git a/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs b/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs index 8fc87ce9..760f73fc 100644 --- a/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs @@ -348,7 +348,15 @@ public static class SeedConsts } public const string BackgroundWorkers = Prefix.App + ".BackgroundWorkers"; public const string PublicApis = Prefix.App + ".PublicApis"; - public const string Blog = Prefix.App + ".Blog"; + + public static class BlogManagement + { + public const string Default = Prefix.App + ".BlogManagement"; + + public const string BlogPosts = Default + ".Posts"; + public const string BlogCategory = Default + ".Category"; + } + public const string Forum = Prefix.App + ".Forum"; //Administration diff --git a/ui/dev-dist/sw.js b/ui/dev-dist/sw.js index 3f45c2fa..a8edd63d 100644 --- a/ui/dev-dist/sw.js +++ b/ui/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.uun45k3p9s" + "revision": "0.mj87dckq3bo" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/ui/src/configs/routes.config/adminRoutes.tsx b/ui/src/configs/routes.config/adminRoutes.tsx index 6d3ecbb6..b73968a4 100644 --- a/ui/src/configs/routes.config/adminRoutes.tsx +++ b/ui/src/configs/routes.config/adminRoutes.tsx @@ -57,12 +57,6 @@ const adminRoutes: Routes = [ component: lazy(() => import('@/views/admin/chart/ChartEdit')), authority: [], }, - { - key: ROUTES_ENUM.admin.blog.management, - path: ROUTES_ENUM.admin.blog.management, - component: lazy(() => import('@/views/blog/BlogManagement')), - authority: [], - }, { key: ROUTES_ENUM.admin.forum.management, path: ROUTES_ENUM.admin.forum.management, diff --git a/ui/src/constants/route.constant.ts b/ui/src/constants/route.constant.ts index e28e54ef..27c8c075 100644 --- a/ui/src/constants/route.constant.ts +++ b/ui/src/constants/route.constant.ts @@ -35,9 +35,6 @@ export const ROUTES_ENUM = { edit: '/admin/listform/edit/:listFormCode', }, chart: '/admin/chart/edit/:chartCode', - blog: { - management: '/admin/blogmanagement', - }, forum: { view: '/admin/forum', management: '/admin/forummanagement',