4

AJAX を使用して、SugarCRM サブパネルでレコードのステータスを更新したいと考えています。以下は、私が取り組んでいるプロジェクト管理モジュールのイメージです。

画像では、私が達成したいことをよりよく理解できます。左の列に、ユーザーがプロジェクト タスク レコードを完了としてすばやくマークできる新しいボタンを追加したいと考えています。これは、そのレコードの [ステータス] フィールドを「完了」に変更することによって行われます。

新しいボタンを追加する方法はわかりますが、この方法でレコードのステータスを更新する方法がわかりません。AJAX 呼び出しを行って UI を更新するための JavaScript を理解することはできますが、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 に答える