Создание кейса на портале. Поля Subject и Symptoms

Разбирались с механизмом кейсов на портале - необходимо было дать пользователю заполнять Subject и Symptoms самостоятельно, а не слепливать их из Service+Category.

С Subject всё решилось довольно просто.
А с Symptoms интересная вещь обнаружилась:

В PortalCaseSectionActionsDashboard довольно умно прописано формирование Symptoms из сообщения на портале:

        saveMasterEntity: function(config) {
                var activeTabName = this.get("ActiveTabName");
                if (activeTabName === "PortalMessageTab" && this.isNewMode()) {
                        this.setCaseSymptoms(config.scope.get("Message"));
                        }
                        this.callParent(arguments);
                },
                               
        setCaseSymptoms: function(message) {
                var symptoms = this.getMasterEntityParameterValue("Symptoms");
                if (this.Ext.isEmpty(symptoms)) {
                        var formatter = this.Ext.util.Format;
                        this.setMasterEntityParameterValue("Symptoms", this.Terrasoft.decodeHtmlEntities(formatter.stripTags(message)));
                }
        }

Однако в объекте Case перед этим в процессе на CaseInserting стоит заполнение Symptoms = Subject, что сводит на нет предыдущую логику

        if(string.IsNullOrEmpty(Entity.GetTypedColumnValuestring>("Symptoms"))) {
                var subject = Entity.GetTypedColumnValuestring>("Subject");
                Entity.SetColumnValue("Symptoms", subject);
        }
        return true;

Если пользователь нажмет Publish, то всё работает нормально, но если Save (что ему на запрещено), то Symptoms заполняется некорректно

Как бы убрать из процесса CaseInserting эту "заглушку", чтобы остальное не рухнуло?

Нравится

2 комментария

Владимир, добрый день!
Логика генерации поля Symptoms довольно проста, система проверяет заполнено ли данное поле при сохранении обращения, если нет, то происходит копирование значения из поля "Тема". Если данное поле было заполнено до сохранения записи обращения, то значение поля не меняется.
Данное поле "Описание" можно вывести на портале и заплнять вручную, при этом данное поле не будет генерироваться автоматически, не зависимо от нажатия кнопки "Опубликовать" или "Сохранить".

Если Вы нажимаете кнопку "Сохранить" после введения комментария, данный комментарий не будет скопирован в поле "Описание", так как сохранение записи происходит до публикации сообщения, и фактически в поле описание подставляется тема обращения.

Быстрым решением будет вывод поля "Описания" на карточку портала, более детальным решением будет разрабботка логики на странице PortalCasePage, так как данная логика - клиентская.

"Михайленко Михаил" написал:Быстрым решением будет вывод поля "Описания" на карточку портала

Спасибо!
Но думаю, что в будущих версиях можно сделать одинаковым логику при нажатии на кнопки "Сохранить" и "Опубликовать" (с формированием "Описания" из комментария), так как для пользователя это совершенно одинаковые по смыслу действия

Показать все комментарии