Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
104dcb8
update: add guides
sumeyyeKurtulus Nov 17, 2025
10469d4
add: cms kit library skeleton
sumeyyeKurtulus Nov 17, 2025
175e64e
add: cms kit library proxy
sumeyyeKurtulus Nov 17, 2025
89d4d7c
add: cms kit library path declarations
sumeyyeKurtulus Nov 17, 2025
ead7d06
update: proxy imports
sumeyyeKurtulus Nov 17, 2025
dff20ff
fix: guides
sumeyyeKurtulus Nov 17, 2025
67ed01e
add: comments feature for the cms kit admin side
sumeyyeKurtulus Nov 17, 2025
9f909aa
add: tags for the admin side
sumeyyeKurtulus Nov 18, 2025
6717280
add: pages structure
sumeyyeKurtulus Nov 19, 2025
0c65999
add: common code mirror and toast ui components
sumeyyeKurtulus Nov 19, 2025
2e61b5d
update: route names for the admin cms kit
sumeyyeKurtulus Nov 19, 2025
3b33b62
add: `@toast-ui/editor` and `codemirror` dependencies
sumeyyeKurtulus Nov 19, 2025
138742c
add: blogs structure for the admin side
sumeyyeKurtulus Nov 19, 2025
2704848
add: utils for the cms kit operations
sumeyyeKurtulus Nov 19, 2025
b26b686
add: blog posts feature for the admin side
sumeyyeKurtulus Nov 19, 2025
363fdf4
update: add cover image and tags
sumeyyeKurtulus Nov 19, 2025
64fcb11
add: menu items for the admin side
sumeyyeKurtulus Nov 19, 2025
3c587b2
fix: menu item modal component problems
sumeyyeKurtulus Nov 20, 2025
7de0465
update: form prop to use localization params
sumeyyeKurtulus Dec 2, 2025
272d1a4
fix: problems in comments feature
sumeyyeKurtulus Dec 2, 2025
0df728f
fix: problems in blog feature
sumeyyeKurtulus Dec 2, 2025
239ba22
update: small general improvements for the package
sumeyyeKurtulus Dec 2, 2025
01e1714
add: global resources feature
sumeyyeKurtulus Dec 2, 2025
b79306d
update: default action configurations
sumeyyeKurtulus Dec 3, 2025
a9e5323
fix: build errors
sumeyyeKurtulus Dec 3, 2025
ab2a1f7
add: service tests
sumeyyeKurtulus Dec 3, 2025
10def2f
Merge remote-tracking branch 'origin/dev' into issue/cms-kit-angular
sumeyyeKurtulus Dec 4, 2025
000cafa
update: versions
sumeyyeKurtulus Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,313 changes: 1,313 additions & 0 deletions npm/ng-packs/guides/CMS_KIT_ANGULAR_STRUCTURE.md

Large diffs are not rendered by default.

659 changes: 659 additions & 0 deletions npm/ng-packs/guides/DEVELOPMENT_GUIDE.md

Large diffs are not rendered by default.

452 changes: 452 additions & 0 deletions npm/ng-packs/guides/QUICK_REFERENCE.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions npm/ng-packs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
"bootstrap-icons": "~1.13.0",
"browser-sync": "~3.0.0",
"chart.js": "~4.0.0",
"codemirror": "~6.0.0",
"cypress": "^7.0.0",
"dotenv": "10.0.0",
"eslint": "~8.0.0",
Expand All @@ -129,6 +130,7 @@
"postcss-url": "10.1.3",
"prettier": "^3.0.0",
"protractor": "~7.0.0",
"@toast-ui/editor": "~3.0.0",
"rxjs": "~7.8.0",
"should-quote": "^1.0.0",
"ts-jest": "29.1.0",
Expand Down
85 changes: 85 additions & 0 deletions npm/ng-packs/packages/cms-kit/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# @abp/ng.cms-kit

ABP CMS Kit Angular package providing admin and public functionality for content management.

## Structure

This package is organized into two main sub-packages:

- **Admin** (`admin/`) - Admin interface for managing CMS content
- **Public** (`public/`) - Public-facing components for displaying CMS content

## Installation

```bash
npm install @abp/ng.cms-kit
```

## Usage

### Admin

```typescript
import { provideCmsKitAdminConfig } from '@abp/ng.cms-kit/admin/config';

// In your app config
export const appConfig: ApplicationConfig = {
providers: [
provideCmsKitAdminConfig(),
// ... other providers
],
};

// In your routes
export const routes: Routes = [
{
path: 'cms',
loadChildren: () => import('@abp/ng.cms-kit/admin').then(m => m.createRoutes()),
},
];
```

### Public

```typescript
import { provideCmsKitPublicConfig } from '@abp/ng.cms-kit/public/config';

// In your app config
export const appConfig: ApplicationConfig = {
providers: [
provideCmsKitPublicConfig(),
// ... other providers
],
};

// In your routes
export const routes: Routes = [
{
path: 'cms',
loadChildren: () => import('@abp/ng.cms-kit/public').then(m => m.createRoutes()),
},
];
```

## Features

### Admin Features

- Comments management
- Tags management
- Pages management
- Blogs management
- Blog posts management
- Menus management
- Global resources management

### Public Features

- Public page viewing
- Public blog and blog post viewing
- Commenting functionality
- Shared components (MarkedItemToggle, PopularTags, Rating, ReactionSelection, Tags)

## Documentation

For more information, see the [ABP Documentation](https://docs.abp.io).
6 changes: 6 additions & 0 deletions npm/ng-packs/packages/cms-kit/admin/config/ng-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "../../../../node_modules/ng-packagr/ng-entrypoint.schema.json",
"lib": {
"entryFile": "src/public-api.ts"
}
}
2 changes: 2 additions & 0 deletions npm/ng-packs/packages/cms-kit/admin/config/src/enums/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './policy-names';
export * from './route-names';
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export enum eCmsKitAdminPolicyNames {
Cms = 'CmsKit.Comments || CmsKit.Tags || CmsKit.Pages || CmsKit.Blogs || CmsKit.BlogPosts || CmsKit.Menus || CmsKit.GlobalResources',
Comments = 'CmsKit.Comments',
Tags = 'CmsKit.Tags',
Pages = 'CmsKit.Pages',
Blogs = 'CmsKit.Blogs',
BlogPosts = 'CmsKit.BlogPosts',
Menus = 'CmsKit.Menus',
GlobalResources = 'CmsKit.GlobalResources',
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export enum eCmsKitAdminRouteNames {
Cms = 'CmsKit::Menu:CMS',
Comments = 'CmsKit::CmsKit.Comments',
Tags = 'CmsKit::CmsKit.Tags',
Pages = 'CmsKit::Pages',
Blogs = 'CmsKit::Blogs',
BlogPosts = 'CmsKit::BlogPosts',
Menus = 'CmsKit::Menus',
GlobalResources = 'CmsKit::GlobalResources',
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export interface Settings {
commentRequireApprovement: boolean;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './cms-kit-admin-settings';
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { makeEnvironmentProviders } from '@angular/core';
import { CMS_KIT_ADMIN_ROUTE_PROVIDERS } from './route.provider';
import { CMS_KIT_ADMIN_SETTING_TAB_PROVIDERS } from './setting-tab.provider';

export function provideCmsKitAdminConfig() {
return makeEnvironmentProviders([
CMS_KIT_ADMIN_ROUTE_PROVIDERS,
CMS_KIT_ADMIN_SETTING_TAB_PROVIDERS,
]);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './cms-kit-admin-config.provider';
export * from './route.provider';
export * from './setting-tab.provider';
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import { eLayoutType, RoutesService } from '@abp/ng.core';
import { inject, provideAppInitializer } from '@angular/core';
import { eCmsKitAdminPolicyNames } from '../enums/policy-names';
import { eCmsKitAdminRouteNames } from '../enums/route-names';

export const CMS_KIT_ADMIN_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
configureRoutes();
}),
];

export function configureRoutes() {
const routesService = inject(RoutesService);
routesService.add([
{
path: '/cms/blog-posts',
name: eCmsKitAdminRouteNames.BlogPosts,
parentName: eCmsKitAdminRouteNames.Cms,
order: 1,
layout: eLayoutType.application,
iconClass: 'fa fa-file-alt',
requiredPolicy: eCmsKitAdminPolicyNames.BlogPosts,
},
{
path: '/cms/blogs',
name: eCmsKitAdminRouteNames.Blogs,
parentName: eCmsKitAdminRouteNames.Cms,
order: 2,
layout: eLayoutType.application,
iconClass: 'fa fa-blog',
requiredPolicy: eCmsKitAdminPolicyNames.Blogs,
},
{
path: '/cms/comments',
name: eCmsKitAdminRouteNames.Comments,
parentName: eCmsKitAdminRouteNames.Cms,
order: 3,
layout: eLayoutType.application,
iconClass: 'fa fa-comments',
requiredPolicy: eCmsKitAdminPolicyNames.Comments,
},
{
path: '/cms/global-resources',
name: eCmsKitAdminRouteNames.GlobalResources,
parentName: eCmsKitAdminRouteNames.Cms,
order: 5,
layout: eLayoutType.application,
iconClass: 'fa fa-globe',
requiredPolicy: eCmsKitAdminPolicyNames.GlobalResources,
},
{
path: '/cms/menus',
name: eCmsKitAdminRouteNames.Menus,
parentName: eCmsKitAdminRouteNames.Cms,
order: 6,
layout: eLayoutType.application,
iconClass: 'fa fa-bars',
requiredPolicy: eCmsKitAdminPolicyNames.Menus,
},
{
path: '/cms/pages',
name: eCmsKitAdminRouteNames.Pages,
parentName: eCmsKitAdminRouteNames.Cms,
order: 9,
layout: eLayoutType.application,
iconClass: 'fa fa-file',
requiredPolicy: eCmsKitAdminPolicyNames.Pages,
},
{
path: '/cms/tags',
name: eCmsKitAdminRouteNames.Tags,
parentName: eCmsKitAdminRouteNames.Cms,
order: 11,
layout: eLayoutType.application,
iconClass: 'fa fa-tags',
requiredPolicy: eCmsKitAdminPolicyNames.Tags,
},
]);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { ABP, ConfigStateService } from '@abp/ng.core';
import { SettingTabsService } from '@abp/ng.setting-management/config';
import { inject, provideAppInitializer } from '@angular/core';
import { eCmsKitAdminPolicyNames, eCmsKitAdminRouteNames } from '../enums';
import { CmsSettingsComponent } from '@abp/ng.cms-kit/admin';

export const CMS_KIT_ADMIN_SETTING_TAB_PROVIDERS = [
provideAppInitializer(() => {
configureSettingTabs();
}),
];

export async function configureSettingTabs() {
const settingTabs = inject(SettingTabsService);
const configState = inject(ConfigStateService);
const tabsArray: ABP.Tab[] = [
{
name: eCmsKitAdminRouteNames.Cms,
order: 100,
requiredPolicy: eCmsKitAdminPolicyNames.Cms,
invisible: configState.getFeature('CmsKit.CommentEnable')?.toLowerCase() === 'true',
component: CmsSettingsComponent,
},
];

settingTabs.add(tabsArray);
}
3 changes: 3 additions & 0 deletions npm/ng-packs/packages/cms-kit/admin/config/src/public-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './enums';
export * from './providers';
export * from './models';
6 changes: 6 additions & 0 deletions npm/ng-packs/packages/cms-kit/admin/ng-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "../../../node_modules/ng-packagr/ng-entrypoint.schema.json",
"lib": {
"entryFile": "src/public-api.ts"
}
}
Loading
Loading