繁体   English   中英

SugarCRM弹出窗口snapshotForm

[英]SugarCRM popup window snapshotForm

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

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

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

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

我在哪里可以以确保首先加载整个页面的方式更新快照? 有没有人有任何替代想法?

我已经找到了我的问题的解决方案,这是由于子 Create 表单中的依赖下拉列表。

下拉菜单有一个空白的默认值,因此正在使用该空白值进行快照。 然而,一旦 Sugar 系统再看一眼,他们就会意识到“嘿,你不能是空白的,考虑到你的依赖关系,这是不允许的值!” 并因此改变了它。

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

为了找到错误,我在 Chrome js 控制台中运行了以下命令:

snapshotForm(document.getElementById("form_QuickCreate_udef_asset"))

它向我展示了当前的快照是什么以及:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM