/*
    Парус 8 - Панели мониторинга - Редактор запросов
    Компонент: Диалог настройки атрибута сущности
*/

//---------------------
//Подключение библиотек
//---------------------

import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { P8PDialog } from "../../../../components/p8p_dialog"; //Типовой диалог
import { TITLES } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
import { DATA_TYPE } from "../../common"; //Общие константы редактора
import { ATTRIBUTE_SHAPE } from "../attribute/attribute"; //Описание атрибута

//-----------
//Тело модуля
//-----------

//Диалог добавления/исправления аргумента запроса
const AttrSetupDialog = ({ attr, onOk, onCancel }) => {
    //Достанем необходимое из атрибута
    const { name, title, dataType, alias } = attr;

    //Нажатие на кнопку "Ok"
    const handleOk = values => onOk && onOk({ ...values });

    //Нажатие на кнопку "Отмена"
    const handleCancel = () => onCancel && onCancel();

    //Генерация содержимого
    return (
        <P8PDialog
            title={`${TITLES.CONFIG} атрибута "${title}"`}
            inputs={[
                { name: "name", value: name, label: "Имя", disabled: true },
                { name: "title", value: title, label: "Наименование", disabled: true },
                {
                    name: "dataType",
                    value: dataType,
                    label: "Тип данных",
                    list: [
                        { name: "Строка", value: DATA_TYPE.STR },
                        { name: "Число", value: DATA_TYPE.NUMB },
                        { name: "Дата", value: DATA_TYPE.DATE }
                    ],
                    disabled: true
                },
                {
                    name: "alias",
                    value: alias,
                    label: "Псевдоним"
                }
            ]}
            onOk={handleOk}
            onCancel={handleCancel}
        />
    );
};

//Контроль свойств - Диалог настройки атрибута сущности
AttrSetupDialog.propTypes = {
    attr: ATTRIBUTE_SHAPE.isRequired,
    onOk: PropTypes.func,
    onCancel: PropTypes.func
};

//----------------
//Интерфейс модуля
//----------------

export { AttrSetupDialog };
