Всем доброго времени суток.
Версия 7.10.
Вопрос такой - к примеру, есть стандартная колонка даты, которая выводится на страницу примерно так:
{ "operation": "insert", "parentName": "GeneralInformationBlock", "propertyName": "items", "name": "Date", "values": { "bindTo": "Date", "layout": {"column": 12, "row": 0, "colSpan": 12}, "dataValueType": Terrasoft.DataValueType.DATE } },
В соседней теме https://community.terrasoft.ru/questions/mozno-li-zamestit-kontrol#comm…, что стандартный конфиг для контрола даты генерится в схеме ViewGeneratorV2, в методе generateDateEdit, где вызывается контрол DateEdit.
У меня есть свой контрол UsrDateEdit, который имеет некоторые отличия от стандартного DateEdit (нужно для задачи). Как его правильно подключить, чтобы он работал только для конкретных полей (замещение всего ViewGeneratorV2 в этом случае не подходит - оно даёт изменения для всех полей дат). Насколько я понимаю, для этого нужно добавить "UsrDateEdit" в define и что-то в diff. Вопрос - что именно?
Также было бы интересно заодно узнать, как сделать аналогичную замену для случая, когда подключается сразу два блока с датами, связанных в периоде StartDate - DuteDate, как например в мини-карточке при создании Активности ActivityMiniPage.
Спасибо.
Нравится
Добрый день, ответ на ваш вопрос есть в самом первом комментарии темы на которую вы ссылаетесь:
{ "operation": "merge", "name": "Schedule", "values": { "className": "Terrasoft.UsrReg", } },
Где Terrasoft.UsrReg - и есть альтернативное имя вашего контрола.
Мотков Илья,
Илья, спасибо, действительно проглядел этот момент.
И всё-таки хотел бы уточнить вторую часть вопроса: если я хочу заменить генерацию дат в блоке диапазона внутри MiniPageDatePeriodGenerator, где там следует вызывать изменённый генератор дат?
Внутри этого блока?
this.generateDateTimeEdit({ bindTo: itemName, name: itemName, visible: visible, controlConfig: timeEditConfig })
Заместил MiniPageDatePeriodGenerator, в замещении скопипастил код оригинала, + добавил в объект при вызове generateDateTimeEdit параметр isUseMyControl: true.
Далее в генераторе ViewGeneratorV2 в методе generateDateEdit проверяю isUseMyControl и в зависимости от значения использую UsrDateEdit или оригинальный DateEdit.
Так работает, но возникла другая проблема - похоже, отвалились какие-то стили (классы) - см. скрин
Вопрос - что именно могло отвалиться? Сам файл MiniPageDatePeriodGenerator остался почти без изменений, кроме добавления одного параметра.
UPD: нашёл ошибку, просто надо было изначально создать свой генератор, а не замещать существующий.