我想使用AJAX更新SugarCRM SubPanel中的记录状态。下面是我正在处理的项目管理模块的图像。
在图像中,您可以更好地了解我想要实现的目标。在左栏中,我想添加一个新按钮,允许用户快速将项目任务记录标记为已完成。这可以通过将该记录的“状态”字段更改为“完成”来完成。
我可以弄清楚如何添加新按钮,但我不知道如何以这种方式更新记录的状态。我可以找出JavaScript来进行AJAX调用并更新UI,但我真的不知道在哪里有我的AJAX POST以及类似的内容来更新记录。
我是否需要制作一个新的Controller,以便我有一个URL发布到?我希望有一个简单的解决方案,但如果没有,也许熟悉SugarCRM的人可能会指出我正确的方向?
我很感激在这件事上有任何帮助让我接近完成。
答案 0 :(得分:3)
您可以在自定义目录中的JS文件中创建AJAX ...
自定义/模块/项目/ JavaScript的/ ajax.js 强>
function updateStatus(project_task_id) {
if (project_task_id) {
$.ajax({
url: 'index.php?to_pdf=true&module=Project&action=ChangeProjectTaskStatus&id=' + project_task_id,
success: function() {
// Reload subpanel
showSubPanel('projects_project_tasks', null, true);
}
});
}
然后使用与文件名匹配的操作创建一个新的PHP文件...
自定义/模块/项目/ ChangeProjectTaskStatus.php 强>
<?php
if (!defined('sugarEntry') || !sugarEntry)
die('Not A Valid Entry Point');
$project_task = BeanFactory::getBean('ProjectTask');
$project_task->retrieve($_GET['project_task_id']);
// Update status logic goes here
$project_task->save();
exit();