4

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

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

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

我需要制作一个新的控制器以便我有一个可以发布到的 URL 吗?我希望有一个简单的解决方案,但如果不是,熟悉 SugarCRM 的人可能会为我指明正确的方向吗?

我将不胜感激在这件事上的任何帮助,以使我更接近完成。

在此处输入图像描述

4

1 回答 1

4

您可以在自定义目录中的 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 文件,其动作与文件名匹配……</p>

自定义/模块/项目/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();
于 2013-08-22T15:48:37.333 回答