design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
112 lines (101 loc) • 2.42 kB
JavaScript
import { defineMessages } from 'react-intl';
import {
addSchemaField,
addDefaultAdditionalOptions,
} from 'design-comuni-plone-theme/config/Blocks/ListingOptions';
import config from '@plone/volto/registry';
const messages = defineMessages({
title: {
id: 'Titolo',
defaultMessage: 'Titolo',
},
show_block_bg: {
id: 'Mostra lo sfondo del blocco',
defaultMessage: 'Mostra lo sfondo del blocco',
},
items_color: {
id: 'listing_items_color',
defaultMessage: "Colore dell'elemento",
},
bg_color: {
id: 'block_bg_color',
defaultMessage: 'Colore di sfondo',
},
titleLine: {
id: 'titleLine',
defaultMessage: 'Mostra la linea sotto il titolo',
},
});
/** DEFAULT **/
const addDefaultOptions = (schema, formData = {}, intl, position = 1) => {
let listing_items_colors =
config.blocks.blocksConfig.listing?.listing_items_colors || [];
let listing_bg_colors =
config.blocks.blocksConfig.listing?.listing_bg_colors || [];
const fieldset =
schema?.id === 'search' ? 'listingTemplateOptions' : 'default';
let pos = position;
if (fieldset === 'default') {
addSchemaField(
schema,
'title',
intl.formatMessage(messages.title),
null,
null,
pos,
fieldset,
);
pos++;
}
if (formData.title) {
addSchemaField(
schema,
'titleLine',
intl.formatMessage(messages.titleLine),
null,
{ type: 'boolean' },
pos,
fieldset,
);
pos++;
}
if (listing_items_colors.length > 0) {
addSchemaField(
schema,
'items_color',
intl.formatMessage(messages.items_color),
null,
{ widget: 'color_list', intl: intl, colors: listing_items_colors },
pos,
fieldset,
);
pos++;
}
if (fieldset !== 'listingTemplateOptions') {
addSchemaField(
schema,
'show_block_bg',
intl.formatMessage(messages.show_block_bg),
null,
{ type: 'boolean' },
pos,
fieldset,
);
pos++;
}
if (listing_bg_colors.length > 0) {
addSchemaField(
schema,
'bg_color',
intl.formatMessage(messages.bg_color),
null,
{ widget: 'color_list', intl: intl, colors: listing_bg_colors },
pos,
fieldset,
);
pos++;
}
pos = addDefaultAdditionalOptions(schema, formData, intl, pos);
return pos;
};
export default addDefaultOptions;