Skip to content

Dashboard widgetid override

Description: When rendering a dashboard with several Minilist widgets, all rendered widges are same. This is caused by storing wrong id into the widgetid view variable. The fix merged by !959 (merged) is incomplete, because it does not cover the case when a new Minilist is added into a dashboard.

Steps to Reproduce: Add a new Minilist widet into a dashboard

Expected Behavior: The newly added widget is rendered after refresh

Current Behavior:: The newly added widget is rendered with wrong content.

Enviroment:

  • vTiger CRM Version: 8.0
  • Docker php:8.2-apache & mysql:8.1.0

Suggested solution

vtigercrm/modules/Vtiger/views/ShowWidget.php

class Vtiger_ShowWidget_View extends Vtiger_IndexAjax_View {
  ...
  function process(Vtiger_Request $request) {
    ...
    $widget->add();

    $reqWidgetId =  $request->get('widgetid');
    $dbWidgetId = $widget->get('id'); //loaded by $widget->add() above
    if(empty($reqWidgetId) && !empty($dbWidgetId)) {
      $request->set('widgetid', $dbWidgetId);
    }
    ...
  }
  ...
}