Можно ли заблокировать кнопку Добавить у детали?
Для объекта была создана деталь. Можно ли блокировать кнопку Добавить (или скрывать ее) в зависимости от определенного условия?
Нравится
Иван,
Есть 2 метода, которые можно переопределить getAddRecordButtonVisible и getAddRecordButtonEnabled.
Я бы на вашем месте управлял доступностью и переопределил метод getAddRecordButtonEnabled на странице детали.
methods: { /** * Возвращает доступность кнопки добавления записи. * overriden * @returns {boolean} */ getAddRecordButtonEnabled: function () { return (2 == 5); } },
Добрый день.
Скрытие кнопки можно реализовать следующим образом:
В схеме детали, в разделе diff, добавить следующее:
{ "operation": "remove", "name": "addRecordButton" }
Дмитрий, попробовал добавить метод на страницу детали, но кнопка по прежнему остается активной.
Юрий, такой подход, вероятно, не подойдет, потому что блокировать необходимо при некотором условии.
"Пажуков Иван Александрович" написал: getAddRecordButtonEnabled: function () {
return (2 == 5);
}
Иван,
Можете скинуть скрипт страницы, на которую вы добавляете переопределение метода?
Иван,
Вы изменяете страницу редактирования сущности "UsrNomMeterValues", а замещать метод нужно на странице детали данной сущности.
Поместил на страницу детали, результат тот же.
detailscript.txt
Иван, добрый день!
Во вложении пример замещающей схемы детали. Результат выглядит следующим образом:
disableaddbutton.txt
После сохранения схемы необходимо очистить кэш браузера.
А в какой момент эта кнопка будет блокироваться? При открытии страницы? Или при изменении условия во время редактирования/сохранения страницы?
Добрый день!
Подскажите, а как нибудь можно сделать, чтобы допустим в контрагентах выводилась кнопка добавления, а например в контактах - нет для сервисных договоров при рабочее месте общее
Это схема ServicePactRecipientsDetail, там в одной функции как раз проверяют, контакт или контрагент, а в другой — показывают или скрывают кнопку добавления (по другой причине). Вам нужно переопределить вторую функцию, добавить логику, подобную той, что в первой:
/** * @inheritdoc Terrasoft.BaseManyToManyGridDetail#getSchemaInsertQuery * @overridden */ getSchemaInsertQuery: function() { var insert = this.callParent(arguments); var detailColumnName = this.get("DetailColumnName"); if (detailColumnName) { var detailColumnType = detailColumnName === "Contact" ? ServiceDeskConstants.ServiceObjectType.Contact : ServiceDeskConstants.ServiceObjectType.Account; insert.setParameterValue("Type", detailColumnType, this.Terrasoft.DataValueType.GUID); } return insert; }, /** * @inheritDoc Terrasoft.BaseGridDetailV2#getAddRecordButtonVisible * @overridden */ getAddRecordButtonVisible: function() { return !Terrasoft.isCurrentUserSsp() && this.callParent(arguments); },