@griddo/ax 1.60.7 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/public/fonts/fonts.css +48 -660
- package/public/index.html +19 -16
- package/public/templates/template-redirects.csv +2 -0
- package/src/GlobalStore.tsx +3 -0
- package/src/Style/fonts.tsx +98 -72
- package/src/api/analytics.tsx +78 -0
- package/src/api/index.tsx +2 -0
- package/src/api/redirects.tsx +30 -2
- package/src/components/Button/style.tsx +1 -0
- package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/index.tsx +1 -1
- package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/index.tsx +4 -3
- package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/index.tsx +6 -1
- package/src/components/FieldContainer/index.tsx +2 -2
- package/src/components/Fields/AnalyticsField/PageAnalytics/atoms.tsx +75 -0
- package/src/components/Fields/AnalyticsField/PageAnalytics/index.tsx +139 -0
- package/src/components/Fields/AnalyticsField/StructuredDataAnalytics/atoms.tsx +77 -0
- package/src/components/Fields/AnalyticsField/StructuredDataAnalytics/index.tsx +89 -0
- package/src/components/Fields/AnalyticsField/index.tsx +38 -0
- package/src/components/Fields/AnalyticsField/style.tsx +13 -0
- package/src/components/Fields/AnalyticsField/utils.tsx +13 -0
- package/src/components/Fields/FieldGroup/style.tsx +1 -1
- package/src/components/Fields/ImageField/index.tsx +1 -1
- package/src/components/Fields/MultiCheckSelect/index.tsx +23 -6
- package/src/components/Fields/MultiCheckSelect/style.tsx +1 -0
- package/src/components/Fields/NoteField/index.tsx +1 -1
- package/src/components/Fields/RadioGroup/index.tsx +4 -3
- package/src/components/Fields/RadioGroup/style.tsx +8 -3
- package/src/components/Fields/RichText/index.tsx +13 -8
- package/src/components/Fields/TextArea/index.tsx +1 -3
- package/src/components/Fields/TextArea/style.tsx +3 -3
- package/src/components/Fields/UrlField/style.tsx +1 -0
- package/src/components/Fields/index.tsx +2 -0
- package/src/components/Modal/index.tsx +1 -1
- package/src/components/Modal/style.tsx +5 -1
- package/src/components/Notification/style.tsx +2 -5
- package/src/components/TableFilters/LiveFilter/index.tsx +4 -0
- package/src/components/TableFilters/NameFilter/style.tsx +1 -0
- package/src/components/TableFilters/TypeFilter/index.tsx +7 -2
- package/src/containers/Analytics/actions.tsx +58 -0
- package/src/containers/Analytics/constants.tsx +5 -0
- package/src/containers/Analytics/index.tsx +4 -0
- package/src/containers/Analytics/interfaces.tsx +9 -0
- package/src/containers/Analytics/reducer.tsx +26 -0
- package/src/containers/PageEditor/actions.tsx +1 -0
- package/src/containers/Redirects/actions.tsx +49 -3
- package/src/containers/Redirects/constants.tsx +12 -1
- package/src/containers/Redirects/interfaces.tsx +11 -1
- package/src/containers/Redirects/reducer.tsx +12 -1
- package/src/containers/Sites/actions.tsx +3 -0
- package/src/global.d.ts +2 -0
- package/src/helpers/index.tsx +4 -0
- package/src/helpers/requests.tsx +12 -7
- package/src/helpers/strings.tsx +13 -0
- package/src/hooks/forms.tsx +1 -1
- package/src/index.tsx +1 -0
- package/src/modules/Analytics/DimensionItem/index.tsx +71 -0
- package/src/modules/Analytics/DimensionItem/style.tsx +59 -0
- package/src/modules/Analytics/DimensionPanel/index.tsx +110 -0
- package/src/modules/Analytics/DimensionPanel/style.tsx +14 -0
- package/src/modules/Analytics/GroupItem/index.tsx +75 -0
- package/src/modules/Analytics/GroupItem/style.tsx +80 -0
- package/src/modules/Analytics/GroupPanel/index.tsx +178 -0
- package/src/modules/Analytics/GroupPanel/style.tsx +67 -0
- package/src/modules/Analytics/GroupPanel/utils.tsx +29 -0
- package/src/modules/Analytics/index.tsx +207 -0
- package/src/modules/Analytics/style.tsx +68 -0
- package/src/modules/Content/BulkHeader/TableHeader/index.tsx +1 -1
- package/src/modules/Content/PageItem/index.tsx +3 -3
- package/src/modules/Content/PageItem/style.tsx +1 -1
- package/src/modules/Content/hooks.tsx +2 -2
- package/src/modules/Content/index.tsx +22 -20
- package/src/modules/GlobalEditor/index.tsx +1 -1
- package/src/modules/Navigation/Defaults/DefaultsEditor/index.tsx +2 -2
- package/src/modules/PageEditor/index.tsx +1 -1
- package/src/modules/Redirects/RedirectItem/index.tsx +6 -2
- package/src/modules/Redirects/RedirectPanel/index.tsx +2 -0
- package/src/modules/Redirects/atoms.tsx +212 -0
- package/src/modules/Redirects/index.tsx +85 -27
- package/src/modules/Redirects/style.tsx +124 -3
- package/src/modules/Settings/ContentTypes/DataPacks/index.tsx +1 -1
- package/src/modules/StructuredData/StructuredDataList/BulkHeader/TableHeader/index.tsx +1 -1
- package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/index.tsx +12 -3
- package/src/modules/StructuredData/StructuredDataList/index.tsx +17 -2
- package/src/routes/multisite.tsx +20 -2
- package/src/schemas/pages/GlobalPage.tsx +75 -64
- package/src/schemas/pages/Page.tsx +79 -67
- package/src/types/index.tsx +25 -3
- package/public/fonts/Source_Sans_Pro-200-cyrillic-ext107.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-cyrillic-ext149.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-cyrillic108.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-cyrillic150.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-greek-ext109.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-greek-ext151.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-greek110.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-greek152.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-vietnamese111.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-200-vietnamese153.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-cyrillic-ext114.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-cyrillic-ext156.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-cyrillic115.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-cyrillic157.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-greek-ext116.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-greek-ext158.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-greek117.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-greek159.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-vietnamese118.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-300-vietnamese160.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-cyrillic-ext121.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-cyrillic-ext163.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-cyrillic122.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-cyrillic164.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-greek-ext123.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-greek-ext165.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-greek124.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-greek166.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-vietnamese125.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-400-vietnamese167.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-cyrillic-ext128.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-cyrillic-ext170.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-cyrillic129.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-cyrillic171.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-greek-ext130.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-greek-ext172.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-greek131.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-greek173.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-vietnamese132.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-600-vietnamese174.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-cyrillic-ext135.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-cyrillic-ext177.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-cyrillic136.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-cyrillic178.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-greek-ext137.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-greek-ext179.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-greek138.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-greek180.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-vietnamese139.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-700-vietnamese181.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-cyrillic-ext142.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-cyrillic-ext184.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-cyrillic143.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-cyrillic185.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-greek-ext144.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-greek-ext186.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-greek145.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-greek187.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-vietnamese146.woff2 +0 -0
- package/public/fonts/Source_Sans_Pro-900-vietnamese188.woff2 +0 -0
|
@@ -28,6 +28,7 @@ import { appActions } from "@ax/containers/App";
|
|
|
28
28
|
import { structuredDataActions } from "@ax/containers/StructuredData";
|
|
29
29
|
import { sitesActions } from "@ax/containers/Sites";
|
|
30
30
|
import { pageEditorActions } from "@ax/containers/PageEditor";
|
|
31
|
+
import { analyticsActions } from "@ax/containers/Analytics";
|
|
31
32
|
import { MainWrapper, TableList, ErrorToast, Toast, Notification, EmptyState, Modal } from "@ax/components";
|
|
32
33
|
|
|
33
34
|
import StructuredDataItem from "./StructuredDataItem";
|
|
@@ -43,10 +44,10 @@ import {
|
|
|
43
44
|
getAllLangPagesIds,
|
|
44
45
|
} from "./utils";
|
|
45
46
|
import { useSortedListStatus, useFilterQuery } from "./hooks";
|
|
47
|
+
import { DeleteModal } from "./atoms";
|
|
46
48
|
import GlobalPageItem from "./GlobalPageItem";
|
|
47
49
|
|
|
48
50
|
import * as S from "./style";
|
|
49
|
-
import { DeleteModal } from "./atoms";
|
|
50
51
|
|
|
51
52
|
const StructuredDataList = (props: IProps): JSX.Element => {
|
|
52
53
|
const {
|
|
@@ -80,6 +81,7 @@ const StructuredDataList = (props: IProps): JSX.Element => {
|
|
|
80
81
|
deleteBulk,
|
|
81
82
|
restorePage,
|
|
82
83
|
resetPageEditor,
|
|
84
|
+
getAnalytics,
|
|
83
85
|
} = props;
|
|
84
86
|
|
|
85
87
|
const itemsPerPage = 50;
|
|
@@ -232,6 +234,11 @@ const StructuredDataList = (props: IProps): JSX.Element => {
|
|
|
232
234
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
233
235
|
}, [currentDataContent]);
|
|
234
236
|
|
|
237
|
+
const resetFilterValues = () => {
|
|
238
|
+
resetFilterQuery();
|
|
239
|
+
setCurrentFilterQuery("");
|
|
240
|
+
};
|
|
241
|
+
|
|
235
242
|
useEffect(() => {
|
|
236
243
|
if (!isLoading) {
|
|
237
244
|
const emptyState: IEmptyStateProps = {};
|
|
@@ -245,7 +252,7 @@ const StructuredDataList = (props: IProps): JSX.Element => {
|
|
|
245
252
|
? "You don’t have pages with this content type yet."
|
|
246
253
|
: "To start using pages in your site, create as many pages as you need.";
|
|
247
254
|
emptyState.button = isAllPages ? "View all content" : "Create the first page";
|
|
248
|
-
emptyState.action = isAllPages ?
|
|
255
|
+
emptyState.action = isAllPages ? resetFilterValues : addNewAction;
|
|
249
256
|
}
|
|
250
257
|
const isEmpty = isStructuredDataFromPage ? !currentSitePages.length : !currentDataContent.length;
|
|
251
258
|
setIsEmpty(isEmpty);
|
|
@@ -254,6 +261,11 @@ const StructuredDataList = (props: IProps): JSX.Element => {
|
|
|
254
261
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
255
262
|
}, [isLoading]);
|
|
256
263
|
|
|
264
|
+
useEffect(() => {
|
|
265
|
+
getAnalytics();
|
|
266
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
267
|
+
}, []);
|
|
268
|
+
|
|
257
269
|
const handleClick = (isFromPage?: boolean, globalPage?: IPage, forceLive?: boolean) => {
|
|
258
270
|
if (isFromPage && globalPage) {
|
|
259
271
|
const pageID = globalPage.haveDraftPage && !forceLive ? globalPage.haveDraftPage : globalPage.id;
|
|
@@ -605,6 +617,7 @@ const mapDispatchToProps = {
|
|
|
605
617
|
deleteBulk: pageEditorActions.deleteBulk,
|
|
606
618
|
restorePage: pageEditorActions.restorePage,
|
|
607
619
|
resetPageEditor: pageEditorActions.resetPageEditor,
|
|
620
|
+
getAnalytics: analyticsActions.getAnalytics,
|
|
608
621
|
};
|
|
609
622
|
|
|
610
623
|
interface IDispatchProps {
|
|
@@ -626,8 +639,10 @@ interface IDispatchProps {
|
|
|
626
639
|
deleteBulk(ids: number[]): Promise<boolean>;
|
|
627
640
|
restorePage(id: number | number[]): Promise<boolean>;
|
|
628
641
|
resetPageEditor(): Promise<void>;
|
|
642
|
+
getAnalytics(): void;
|
|
629
643
|
}
|
|
630
644
|
|
|
645
|
+
|
|
631
646
|
interface ICategoriesProps {
|
|
632
647
|
structuredData: { global: IStructuredData[]; site: IStructuredData[] };
|
|
633
648
|
currentDataContent: IStructuredDataContent[];
|
package/src/routes/multisite.tsx
CHANGED
|
@@ -8,6 +8,7 @@ import UserCreate from "../modules/Users/UserCreate";
|
|
|
8
8
|
import UserEdit from "../modules/Users/UserEdit";
|
|
9
9
|
import Editor from "./../modules/GlobalEditor";
|
|
10
10
|
import GlobalSettings from "./../modules/GlobalSettings";
|
|
11
|
+
import AnalyticsSettings from "../modules/Analytics";
|
|
11
12
|
|
|
12
13
|
export default [
|
|
13
14
|
{ path: "/sites", component: Sites, name: "Sites", showInNav: true, icon: "Project" },
|
|
@@ -27,11 +28,28 @@ export default [
|
|
|
27
28
|
hideNav: true,
|
|
28
29
|
},
|
|
29
30
|
{
|
|
30
|
-
path: `/settings
|
|
31
|
-
component:
|
|
31
|
+
path: `/settings`,
|
|
32
|
+
component: null,
|
|
32
33
|
name: "Settings",
|
|
33
34
|
showInNav: true,
|
|
34
35
|
icon: "Settings",
|
|
36
|
+
routesGroups: [
|
|
37
|
+
{
|
|
38
|
+
name: "Settings",
|
|
39
|
+
routes: [
|
|
40
|
+
{
|
|
41
|
+
path: `/settings/robots`,
|
|
42
|
+
component: GlobalSettings,
|
|
43
|
+
name: "SEO tools",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
path: `/settings/analytics`,
|
|
47
|
+
component: AnalyticsSettings,
|
|
48
|
+
name: "Analytics tools",
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
]
|
|
35
53
|
},
|
|
36
54
|
{
|
|
37
55
|
path: `/settings/redirects`,
|
|
@@ -43,84 +43,95 @@ export default {
|
|
|
43
43
|
],
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
title: "
|
|
46
|
+
title: "SEO & Analytics",
|
|
47
47
|
fields: [
|
|
48
48
|
{
|
|
49
|
-
title: "
|
|
50
|
-
type: "
|
|
51
|
-
key: "
|
|
52
|
-
|
|
53
|
-
{
|
|
54
|
-
title: "Meta description",
|
|
55
|
-
type: "TextArea",
|
|
56
|
-
key: "metaDescription",
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
title: "Meta robots index",
|
|
60
|
-
type: "RadioGroup",
|
|
61
|
-
key: "isIndexed",
|
|
62
|
-
options: [
|
|
63
|
-
{
|
|
64
|
-
value: true,
|
|
65
|
-
title: "Index",
|
|
66
|
-
name: "index",
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
value: false,
|
|
70
|
-
title: "No index",
|
|
71
|
-
name: "noindex",
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
title: "Meta robots follow",
|
|
77
|
-
type: "RadioGroup",
|
|
78
|
-
key: "follow",
|
|
79
|
-
options: [
|
|
80
|
-
{
|
|
81
|
-
value: true,
|
|
82
|
-
title: "Follow",
|
|
83
|
-
name: "follow",
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
value: false,
|
|
87
|
-
title: "No follow",
|
|
88
|
-
name: "nofollow",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
title: "Meta robots advanced",
|
|
94
|
-
type: "CheckGroup",
|
|
95
|
-
key: "metasAdvanced",
|
|
96
|
-
options: [
|
|
49
|
+
title: "SEO Data",
|
|
50
|
+
type: "FieldGroup",
|
|
51
|
+
key: "seoData",
|
|
52
|
+
fields: [
|
|
97
53
|
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
54
|
+
title: "Meta title",
|
|
55
|
+
type: "TextField",
|
|
56
|
+
key: "metaTitle",
|
|
101
57
|
},
|
|
102
58
|
{
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
59
|
+
title: "Meta description",
|
|
60
|
+
type: "TextArea",
|
|
61
|
+
key: "metaDescription",
|
|
106
62
|
},
|
|
107
63
|
{
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
64
|
+
title: "Meta robots index",
|
|
65
|
+
type: "RadioGroup",
|
|
66
|
+
key: "isIndexed",
|
|
67
|
+
options: [
|
|
68
|
+
{
|
|
69
|
+
value: true,
|
|
70
|
+
title: "Index",
|
|
71
|
+
name: "index",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
value: false,
|
|
75
|
+
title: "No index",
|
|
76
|
+
name: "noindex",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
111
79
|
},
|
|
112
80
|
{
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
81
|
+
title: "Meta robots follow",
|
|
82
|
+
type: "RadioGroup",
|
|
83
|
+
key: "follow",
|
|
84
|
+
options: [
|
|
85
|
+
{
|
|
86
|
+
value: true,
|
|
87
|
+
title: "Follow",
|
|
88
|
+
name: "follow",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
value: false,
|
|
92
|
+
title: "No follow",
|
|
93
|
+
name: "nofollow",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
116
96
|
},
|
|
117
97
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
98
|
+
title: "Meta robots advanced",
|
|
99
|
+
type: "CheckGroup",
|
|
100
|
+
key: "metasAdvanced",
|
|
101
|
+
options: [
|
|
102
|
+
{
|
|
103
|
+
value: "noimageindex",
|
|
104
|
+
title: "No image index",
|
|
105
|
+
name: "noimage",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
value: "nosnippet",
|
|
109
|
+
title: "No snippet",
|
|
110
|
+
name: "nosnippet",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
value: "noodp",
|
|
114
|
+
title: "No ODP",
|
|
115
|
+
name: "noodp",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
value: "noarchive",
|
|
119
|
+
title: "No archive",
|
|
120
|
+
name: "noarchive",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
value: "noTranslate",
|
|
124
|
+
title: "No translate",
|
|
125
|
+
name: "noTranslate",
|
|
126
|
+
},
|
|
127
|
+
],
|
|
121
128
|
},
|
|
122
129
|
],
|
|
123
130
|
},
|
|
131
|
+
{
|
|
132
|
+
type: "AnalyticsField",
|
|
133
|
+
key: "dimensions",
|
|
134
|
+
},
|
|
124
135
|
{
|
|
125
136
|
title: "Social Media",
|
|
126
137
|
type: "FieldGroup",
|
|
@@ -51,89 +51,100 @@ export default {
|
|
|
51
51
|
],
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
|
-
title: "
|
|
54
|
+
title: "SEO & Analytics",
|
|
55
55
|
fields: [
|
|
56
56
|
{
|
|
57
|
-
title: "
|
|
58
|
-
type: "
|
|
59
|
-
key: "
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
title: "Meta description",
|
|
63
|
-
type: "TextArea",
|
|
64
|
-
key: "metaDescription",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
title: "Canonical URL",
|
|
68
|
-
type: "TextField",
|
|
69
|
-
key: "canonicalURL",
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
title: "Meta robots index",
|
|
73
|
-
type: "RadioGroup",
|
|
74
|
-
key: "isIndexed",
|
|
75
|
-
options: [
|
|
76
|
-
{
|
|
77
|
-
value: true,
|
|
78
|
-
title: "Index",
|
|
79
|
-
name: "index",
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
value: false,
|
|
83
|
-
title: "No index",
|
|
84
|
-
name: "noindex",
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
title: "Meta robots follow",
|
|
90
|
-
type: "RadioGroup",
|
|
91
|
-
key: "follow",
|
|
92
|
-
options: [
|
|
93
|
-
{
|
|
94
|
-
value: true,
|
|
95
|
-
title: "Follow",
|
|
96
|
-
name: "follow",
|
|
97
|
-
},
|
|
57
|
+
title: "SEO Data",
|
|
58
|
+
type: "FieldGroup",
|
|
59
|
+
key: "seoData",
|
|
60
|
+
fields: [
|
|
98
61
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
62
|
+
title: "Meta title",
|
|
63
|
+
type: "TextField",
|
|
64
|
+
key: "metaTitle",
|
|
102
65
|
},
|
|
103
|
-
],
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
title: "Meta robots advanced",
|
|
107
|
-
type: "CheckGroup",
|
|
108
|
-
key: "metasAdvanced",
|
|
109
|
-
options: [
|
|
110
66
|
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
67
|
+
title: "Meta description",
|
|
68
|
+
type: "TextArea",
|
|
69
|
+
key: "metaDescription",
|
|
114
70
|
},
|
|
115
71
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
72
|
+
title: "Canonical URL",
|
|
73
|
+
type: "TextField",
|
|
74
|
+
key: "canonicalURL",
|
|
119
75
|
},
|
|
120
76
|
{
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
77
|
+
title: "Meta robots index",
|
|
78
|
+
type: "RadioGroup",
|
|
79
|
+
key: "isIndexed",
|
|
80
|
+
options: [
|
|
81
|
+
{
|
|
82
|
+
value: true,
|
|
83
|
+
title: "Index",
|
|
84
|
+
name: "index",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
value: false,
|
|
88
|
+
title: "No index",
|
|
89
|
+
name: "noindex",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
124
92
|
},
|
|
125
93
|
{
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
94
|
+
title: "Meta robots follow",
|
|
95
|
+
type: "RadioGroup",
|
|
96
|
+
key: "follow",
|
|
97
|
+
options: [
|
|
98
|
+
{
|
|
99
|
+
value: true,
|
|
100
|
+
title: "Follow",
|
|
101
|
+
name: "follow",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
value: false,
|
|
105
|
+
title: "No follow",
|
|
106
|
+
name: "nofollow",
|
|
107
|
+
},
|
|
108
|
+
],
|
|
129
109
|
},
|
|
130
110
|
{
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
111
|
+
title: "Meta robots advanced",
|
|
112
|
+
type: "CheckGroup",
|
|
113
|
+
key: "metasAdvanced",
|
|
114
|
+
options: [
|
|
115
|
+
{
|
|
116
|
+
value: "noimageindex",
|
|
117
|
+
title: "No image index",
|
|
118
|
+
name: "noimage",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
value: "nosnippet",
|
|
122
|
+
title: "No snippet",
|
|
123
|
+
name: "nosnippet",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
value: "noodp",
|
|
127
|
+
title: "No ODP",
|
|
128
|
+
name: "noodp",
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
value: "noarchive",
|
|
132
|
+
title: "No archive",
|
|
133
|
+
name: "noarchive",
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
value: "noTranslate",
|
|
137
|
+
title: "No translate",
|
|
138
|
+
name: "noTranslate",
|
|
139
|
+
},
|
|
140
|
+
],
|
|
134
141
|
},
|
|
135
142
|
],
|
|
136
143
|
},
|
|
144
|
+
{
|
|
145
|
+
type: "AnalyticsField",
|
|
146
|
+
key: "dimensions",
|
|
147
|
+
},
|
|
137
148
|
{
|
|
138
149
|
title: "Social Media",
|
|
139
150
|
type: "FieldGroup",
|
|
@@ -177,5 +188,6 @@ export default {
|
|
|
177
188
|
socialTitle: "",
|
|
178
189
|
socialDescription: "",
|
|
179
190
|
socialImage: {},
|
|
191
|
+
dimensions: {},
|
|
180
192
|
},
|
|
181
193
|
};
|
package/src/types/index.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import { IUsersState } from "@ax/containers/Users/reducer";
|
|
|
10
10
|
import { IGalleryState } from "@ax/containers/Gallery/reducer";
|
|
11
11
|
import { IDomainsState } from "@ax/containers/Domains/reducer";
|
|
12
12
|
import { IRedirectsState } from "@ax/containers/Redirects/reducer";
|
|
13
|
+
import { IAnalyticsState } from "@ax/containers/Analytics/reducer";
|
|
13
14
|
|
|
14
15
|
export interface IBreadcrumbItem {
|
|
15
16
|
editorID: number;
|
|
@@ -88,7 +89,7 @@ export interface IAPIPage {
|
|
|
88
89
|
draftFromPage: number | null;
|
|
89
90
|
liveChanged: boolean;
|
|
90
91
|
templateId: string;
|
|
91
|
-
structuredDataContent: Record<string, []
|
|
92
|
+
structuredDataContent: Record<string, []>;
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
export interface IPage extends IAPIPage {
|
|
@@ -185,6 +186,7 @@ export interface IRootState {
|
|
|
185
186
|
gallery: IGalleryState;
|
|
186
187
|
domains: IDomainsState;
|
|
187
188
|
redirects: IRedirectsState;
|
|
189
|
+
analytics: IAnalyticsState;
|
|
188
190
|
}
|
|
189
191
|
|
|
190
192
|
export interface IStyledProps {
|
|
@@ -618,7 +620,7 @@ export interface IDataPackConfigImport {
|
|
|
618
620
|
export interface IModal {
|
|
619
621
|
isOpen: boolean;
|
|
620
622
|
toggleModal: () => void;
|
|
621
|
-
mainModalAction
|
|
623
|
+
mainModalAction?: { title: string; onClick: () => void };
|
|
622
624
|
secondaryModalAction?: { title: string; onClick: () => void };
|
|
623
625
|
}
|
|
624
626
|
|
|
@@ -683,7 +685,27 @@ export interface IRedirect {
|
|
|
683
685
|
id?: number;
|
|
684
686
|
from: string;
|
|
685
687
|
to: { pageId?: number; url: string; linkTo?: number; href?: string };
|
|
686
|
-
site?: { siteId: number | null; siteName: string | null };
|
|
688
|
+
site?: { siteId: number | null; siteName: string | null; siteUrl: string | null };
|
|
689
|
+
domain?: string;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
export interface IAnalytics {
|
|
693
|
+
scriptCode: string;
|
|
694
|
+
dimensions: IDimension[];
|
|
695
|
+
groups: IDimensionsGroup[];
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
export interface IDimension {
|
|
699
|
+
id?: number;
|
|
700
|
+
name: string;
|
|
701
|
+
values: string;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
export interface IDimensionsGroup {
|
|
705
|
+
id?: number;
|
|
706
|
+
name: string;
|
|
707
|
+
dimensions: string;
|
|
708
|
+
templates?: string;
|
|
687
709
|
}
|
|
688
710
|
|
|
689
711
|
export type Field =
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|