2013-08-20 65 views
4

我想使用AJAX更新SugarCRM子面板中的記錄狀態。以下是我正在開發的項目管理模塊的圖像。使用AJAX更新SugarCRM子面板中的狀態

在圖片中,您可以更好地瞭解我想實現的目標。在左欄中,我想添加一個新按鈕,以便用戶快速將項目任務記錄標記爲已完成。這可以通過將該記錄上的狀態字段更改爲「完成」來完成。

我可以弄清楚如何添加我的新按鈕,但我不知道如何以這種方式更新記錄的狀態。我可以找出JavaScript進行AJAX調用並更新UI,但我不知道應該在哪裏使用我的AJAX POST以及類似的東西來更新記錄。

我需要做一個新的控制器,以便我有一個URL發佈到?我希望有一個簡單的解決方案,但如果不是,那麼熟悉SugarCRM的人可能會指出我正確的方向?

我希望在這個問題上的任何幫助讓我接近完成。

enter image description here

+0

您是否使用過Google?如果是,那麼谷歌搜索結果與你想要的結果有什麼區別? – Jonast92

+1

@ Jonast92我當然有。不同之處在於沒有固定的解決方案。我希望有一位SugarCRM專家能夠指引我走向正確的方向。我通過Google發現的文章只有1篇,這是從2008年以來一直重複發表的文章,它需要使用付費插件,並且更像是一種黑客,然後是我正在嘗試做的真正解決方案。我相信答案可能是建立我自己的自定義控制器,然後我可以使用AJAX發出POST請求,但我寧願在錯誤的解決方案浪費半天之前從別人那裏獲得一些輸入。 – JasonDavis

+0

夠公平,只是真的感覺像即使你有10個重點,有時候我只是覺得「我試過的是什麼」和「我知道什麼是外面的,爲什麼它不符合我的需求」,所以問這個「簡單」的問題是缺少的: ) – Jonast92

回答

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文件...

custo m/modules/Project/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(); 
+0

我最終使用這種方法,在從AJAX請求成功回調的過程中,我更新了頁面中的幾個項目,並且效果很好。我還沒有克服的第一個問題是,當我使用quickcreate表單添加一個新項目,重新加載子面板,我失去了所有我從'process_record' Hook中添加的格式。也許你有想法解決這個問題?我要發佈一個新問題 – JasonDavis

+1

我給Karl的答案添加了一個編輯,但我想它還沒有被批准。您應該可以使用以下方式重新加載子面板: showSubPanel('projects_project_tasks',null,true); 並用任何關係名稱是子面板的關係來替換project_project_tasks。它會從服務器重新加載子面板,所以它應該處理你已有的格式。 –

+0

@ChadHutchins感謝分享,我很好奇如何做到這一點。我已經做了一些測試,但看起來這不是我需要的解決方案。不幸的是,當我運行'showSubPanel()'時,它似乎沒有觸發Hook'$ hook_array ['process_record']',因此它使用我的更新記錄重新加載子面板,但是我失去了通過應用於記錄的所有格式那個胡克。我到處尋找解決方案,但它似乎是Sugar平臺的一個缺陷。如果您有任何關於替代方案的想法,很樂意聽到它 – JasonDavis