Skip to content

Commit

Permalink
Generate news with future Admin Generator (#2661)
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyomair authored Dec 16, 2024
1 parent 47d40ae commit 77f1889
Show file tree
Hide file tree
Showing 9 changed files with 275 additions and 209 deletions.
4 changes: 0 additions & 4 deletions demo/admin/crud-generator-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,4 @@ export default [
target: "src/products/generated",
entityName: "Product",
},
{
target: "src/news/generated",
entityName: "News",
},
] satisfies CrudGeneratorConfig[];
2 changes: 1 addition & 1 deletion demo/admin/src/common/MasterMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { PredefinedPage } from "@src/documents/predefinedPages/PredefinedPage";
import { GQLPageTreeNodeCategory } from "@src/graphql.generated";
import { Link } from "@src/links/Link";
import { NewsLinkBlock } from "@src/news/blocks/NewsLinkBlock";
import { NewsPage } from "@src/news/generated/NewsPage";
import { NewsPage } from "@src/news/NewsPage";
import MainMenu from "@src/pages/mainMenu/MainMenu";
import { Page } from "@src/pages/Page";
import { categoryToUrlParam, pageTreeCategories, urlParamToCategory } from "@src/pageTree/pageTreeCategories";
Expand Down
48 changes: 48 additions & 0 deletions demo/admin/src/news/NewsForm.cometGen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { future_FormConfig as FormConfig } from "@comet/cms-admin";
import { GQLNews } from "@src/graphql.generated";

export const NewsForm: FormConfig<GQLNews> = {
type: "form",
gqlType: "News",
fragmentName: "NewsForm",
fields: [
{
type: "text",
name: "slug",
label: "Slug",
required: true,
},
{
type: "text",
name: "title",
label: "Title",
required: true,
},
{
type: "date",
name: "date",
label: "Date",
required: true,
},
{
type: "staticSelect",
name: "category",
label: "Category",
required: true,
inputType: "radio",
values: ["Events", "Company", "Awards"],
},
{
type: "block",
name: "image",
label: "Image",
block: { name: "DamImageBlock", import: "@comet/cms-admin" },
},
{
type: "block",
name: "content",
label: "Content",
block: { name: "NewsContentBlock", import: "../blocks/NewsContentBlock" },
},
],
};
38 changes: 38 additions & 0 deletions demo/admin/src/news/NewsGrid.cometGen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { future_GridConfig as GridConfig } from "@comet/cms-admin";
import { GQLNews } from "@src/graphql.generated";

export const NewsGrid: GridConfig<GQLNews> = {
type: "grid",
gqlType: "News",
fragmentName: "NewsGrid",
columns: [
{
type: "text",
name: "title",
headerName: "Title",
},
{
type: "date",
name: "date",
headerName: "Date",
},
{
type: "staticSelect",
name: "category",
headerName: "Category",
values: ["Events", "Company", "Awards"],
},
{
type: "block",
name: "image",
headerName: "Image",
block: { name: "DamImageBlock", import: "@comet/cms-admin" },
},
{
type: "block",
name: "content",
headerName: "Content",
block: { name: "NewsContentBlock", import: "../blocks/NewsContentBlock" },
},
],
};
65 changes: 65 additions & 0 deletions demo/admin/src/news/NewsPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import {
MainContent,
SaveBoundary,
SaveBoundarySaveButton,
Stack,
StackPage,
StackSwitch,
StackToolbar,
ToolbarActions,
ToolbarAutomaticTitleItem,
ToolbarBackButton,
ToolbarFillSpace,
} from "@comet/admin";
import { ContentScopeIndicator } from "@comet/cms-admin";
import { useContentScope } from "@src/common/ContentScopeProvider";
import { useIntl } from "react-intl";

import { NewsForm } from "./generated/NewsForm";
import { NewsGrid } from "./generated/NewsGrid";

const FormToolbar = () => (
<StackToolbar scopeIndicator={<ContentScopeIndicator />}>
<ToolbarBackButton />
<ToolbarAutomaticTitleItem />
<ToolbarFillSpace />
<ToolbarActions>
<SaveBoundarySaveButton />
</ToolbarActions>
</StackToolbar>
);

export function NewsPage() {
const intl = useIntl();
const { scope } = useContentScope();
return (
<Stack topLevelTitle={intl.formatMessage({ id: "news.news", defaultMessage: "News" })}>
<StackSwitch>
<StackPage name="grid">
<StackToolbar scopeIndicator={<ContentScopeIndicator />} />
<MainContent fullHeight>
<NewsGrid />
</MainContent>
</StackPage>
<StackPage name="edit" title={intl.formatMessage({ id: "news.news", defaultMessage: "Edit News" })}>
{(selectedNewsId) => (
<SaveBoundary>
<FormToolbar />
<MainContent>
<NewsForm id={selectedNewsId} scope={scope} />
</MainContent>
</SaveBoundary>
)}
</StackPage>
<StackPage name="add" title={intl.formatMessage({ id: "news.news", defaultMessage: "Add News" })}>
<SaveBoundary>
<FormToolbar />
<MainContent>
<NewsForm scope={scope} />
</MainContent>
</SaveBoundary>
</StackPage>
</StackSwitch>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
// This file has been generated by comet admin-generator.
// You may choose to use this file as scaffold by moving this file out of generated folder and removing this comment.

import { gql } from "@apollo/client";

export const newsFormFragment = gql`
fragment NewsForm on News {
slug
title
status
date
category
image
content
}
`;

export const newsFormQuery = gql`
query NewsForm($id: ID!) {
export const newsQuery = gql`
query News($id: ID!) {
news(id: $id) {
id
updatedAt
Expand All @@ -25,15 +22,6 @@ export const newsFormQuery = gql`
}
${newsFormFragment}
`;

export const newsFormCheckForChangesQuery = gql`
query NewsFormCheckForChanges($id: ID!) {
news(id: $id) {
updatedAt
}
}
`;

export const createNewsMutation = gql`
mutation CreateNews($scope: NewsContentScopeInput!, $input: NewsInput!) {
createNews(scope: $scope, input: $input) {
Expand All @@ -44,7 +32,6 @@ export const createNewsMutation = gql`
}
${newsFormFragment}
`;

export const updateNewsMutation = gql`
mutation UpdateNews($id: ID!, $input: NewsUpdateInput!) {
updateNews(id: $id, input: $input) {
Expand Down
Loading

0 comments on commit 77f1889

Please sign in to comment.