SugarCRM 弹出 window snapshotForm

SugarCRM popup window snapshotForm

我公司有一个客户需要一些复杂的自引用元素资产系统。把它想象成一座有墙的建筑,由砖砌成,它有一个带锅炉、管道和散热器的供暖系统,每一个都被分成组件。每个这样的组件,建筑物,墙壁和它的砖块,都作为资产模块的实例单独存储。

在填写这些资产之间的关系时,您可以使用通常的弹出式选择器 window 小玩意儿,但是当我们尝试搜索任何内容时,系统突然开始尖叫着导航离开页面。

现在我已经准确地追踪到了这里发生的事情,在 src_files\include\javascript\sugar_3.js 中定义了一个名为 snapshotForm 的 JS 函数,它记录弹出表单在加载时包含的内容,然后将记录的值与它的值进行比较状态关闭或导航离开,看看是否可以继续前进,或者是否应该发脾气。

现在我看不到模块中的任何地方,无论是 sugar/custom/module/udef_asset 还是 sugar/module/udef_asset 哪里有任何东西会妨碍此快照,所以我的问题很简单:

我在哪里可以更新快照以确保首先加载整个页面?有人有其他想法吗?

我找到了我的问题的解决方案,这是由于子创建表单中的依赖下拉列表所致。

下拉菜单有一个空白的默认值,因此正在使用该空白值进行快照。然而,一旦 Sugar 系统再看一眼,他们就意识到 "hey, you can't be blank, that's not allowed value considering your dependencies!" 并因此改变了它。

因此,在搜索另一条记录时,它抛出了确认。

找到错误我运行在Chromejs控制台中如下:

snapshotForm(document.getElementById("form_QuickCreate_udef_asset"))

它向我显示了当前快照是什么,并且:

editViewSnapshots[document.getElementById("form_QuickCreate_udef_asset").id]

向我展示了拍摄的原始快照。我发现错误出现在有点复杂的字符串 ...s_1_nameasset_statusDraftasset_imagedescriptio... 中,我们在其中找到了 asset_status = Draft 位。在原版中,它没有草稿。

为了修复,我本可以添加空白作为默认依赖选项的选项,但我将值设置为默认值而不是空白,以便它可以加载适当的值。