使用AJAX更新SugarCRM SubPanel中的状态

时间:2013-08-20 15:11:06

标签: javascript php ajax sugarcrm

我想使用AJAX更新SugarCRM SubPanel中的记录状态。下面是我正在处理的项目管理模块的图像。

在图像中,您可以更好地了解我想要实现的目标。在左栏中,我想添加一个新按钮,允许用户快速将项目任务记录标记为已完成。这可以通过将该记录的“状态”字段更改为“完成”来完成。

我可以弄清楚如何添加新按钮,但我不知道如何以这种方式更新记录的状态。我可以找出JavaScript来进行AJAX调用并更新UI,但我真的不知道在哪里有我的AJAX POST以及类似的内容来更新记录。

我是否需要制作一个新的Controller,以便我有一个URL发布到?我希望有一个简单的解决方案,但如果没有,也许熟悉SugarCRM的人可能会指出我正确的方向?

我很感激在这件事上有任何帮助让我接近完成。

enter image description here

1 个答案:

答案 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();