Разбирались с механизмом кейсов на портале - необходимо было дать пользователю заполнять 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 эту "заглушку", чтобы остальное не рухнуло?