Skip to main content

Data Section Resource

Example:

src/admin/DataSectionResource.ts
import { AdminListColumnsType, AdminResourceType } from '../types';
import {
addSection,
addSectionLocale,
deleteSection,
deleteSectionFile,
sectionFormData,
sectionListData
} from './demoSectionActions';

export default function demoSectionResource(locale: string): AdminResourceType {
const multiple = false;
const primaryColumnName = 'id_section';
const localeColumnName = 'locale';
const listColumns: AdminListColumnsType[] = [
{
id: primaryColumnName,
label: { en: 'ID', de: 'ID' },
minWidth: 10,
display_in_list: 1
},
{
id: 'name',
label: { en: 'Name', de: 'Name' },
display_in_list: 1,
inputParams: {
type: 'text',
length: 50,
translatable: false
}
},
{
id: 'element_id',
label: { en: 'Element ID', de: 'Element ID' },
inputParams: {
type: 'text',
length: 50,
translatable: false
}
},
{
id: 'active',
label: { en: 'Active', de: 'Aktiv' },
minWidth: 130,
display_in_list: 1,
inputParams: {
type: 'switch',
default: 1,
required: 1
}
},
{
id: 'display_type',
label: { en: 'Type', de: 'Typ' },
display_in_list: 1,
inputParams: {
type: 'select',
default: 0,
required: 1,
selectOptions: [
{ value: 0, name: 'Grid' },
{ value: 1, name: 'Carousel' }
]
}
},
{
id: 'slider_display_navigation',
label: { en: 'Slider navigation', de: 'Slider-Navigation' },
minWidth: 130,
display_in_list: 1,
inputParams: {
type: 'switch',
default: 0
}
},
{
id: 'slider_display_pagination',
label: { en: 'Slider pagination', de: 'Slider-Paginierung' },
minWidth: 130,
display_in_list: 1,
inputParams: {
type: 'switch',
default: 0
}
},
{
id: 'slider_effect',
label: { en: 'Slider effect', de: 'Slider-Effekt' },
inputParams: {
type: 'text',
length: 10
}
},
{
id: 'slider_autoplay',
label: { en: 'Slider autoplay', de: 'Slider-Autoplay' },
inputParams: {
type: 'switch',
default: 0
}
},
{
id: 'slider_loop',
label: { en: 'Slider loop', de: 'Schiebeschleife' },
inputParams: {
type: 'switch',
default: 0
}
}
];

const functionsAndParams = {
primaryColumnName: primaryColumnName,
localeColumnName: localeColumnName,
listData: (listLocale: string) => sectionListData(listLocale, 'hero'),
formData: (primaryColumnValue: string) => sectionFormData(primaryColumnValue, 'hero'),
insertData: (dataObject: FormData) => addSection(dataObject, 'hero'),
insertLocaleData: (dataObject: FormData) => addSectionLocale(dataObject, 'hero'),
deleteData: (primaryColumnValue: string) => deleteSection(primaryColumnValue, 'hero'),
deleteFile: (primaryColumnValue: string, fieldName: string, filePath: string) =>
deleteSectionFile(primaryColumnValue, fieldName, filePath, 'hero')
};
const resource = { multiple, listColumns, ...functionsAndParams };

return resource;
}