Example #1
0
 /**
  * Does all dashlet processing, here's your chance to modify the rows being displayed!
  */
 function process($lvsParams = array())
 {
     $currentSearchFields = array();
     $configureView = true;
     // configure view or regular view
     $query = false;
     $whereArray = array();
     $lvsParams['massupdate'] = false;
     $this->loadCustomMetadata();
     $this->addCustomFields();
     // apply filters
     if (isset($this->filters) || $this->myItemsOnly) {
         $whereArray = $this->buildWhere();
     }
     $this->lvs->export = false;
     $this->lvs->multiSelect = false;
     // columns
     $displayColumns = array();
     if (!empty($this->displayColumns)) {
         // use user specified columns
         foreach ($this->displayColumns as $name => $val) {
             $displayColumns[strtoupper($val)] = $this->columns[$val];
             $displayColumns[strtoupper($val)]['label'] = trim($displayColumns[strtoupper($val)]['label'], ':');
             // strip : at the end of headers
         }
     } else {
         if (isset($this->columns)) {
             // use the default
             foreach ($this->columns as $name => $val) {
                 if (!empty($val['default']) && $val['default']) {
                     $displayColumns[strtoupper($name)] = $val;
                     $displayColumns[strtoupper($name)]['label'] = trim($displayColumns[strtoupper($name)]['label'], ':');
                 }
             }
         }
     }
     $this->lvs->displayColumns = $displayColumns;
     $this->lvs->lvd->setVariableName($this->seedBean->object_name, array());
     $lvdOrderBy = $this->lvs->lvd->getOrderBy();
     // has this list been ordered, if not use default
     $nameRelatedFields = array();
     //bug: 44592 - dashlet sort order was not being preserved between logins
     if (!empty($lvsParams['orderBy']) && !empty($lvsParams['sortOrder'])) {
         $lvsParams['overrideOrder'] = true;
     } else {
         if (empty($lvdOrderBy['orderBy'])) {
             foreach ($displayColumns as $colName => $colParams) {
                 if (!empty($colParams['defaultOrderColumn'])) {
                     $lvsParams['overrideOrder'] = true;
                     $lvsParams['orderBy'] = $colName;
                     $lvsParams['sortOrder'] = $colParams['defaultOrderColumn']['sortOrder'];
                 }
             }
         }
     }
     // Check for 'last_name' column sorting with related fields (last_name, first_name)
     // See ListViewData.php for actual sorting change.
     if ($lvdOrderBy['orderBy'] == 'last_name' && !empty($displayColumns['NAME']) && !empty($displayColumns['NAME']['related_fields']) && in_array('last_name', $displayColumns['NAME']['related_fields']) && in_array('first_name', $displayColumns['NAME']['related_fields'])) {
         $lvsParams['overrideLastNameOrder'] = true;
     }
     if (!empty($this->displayTpl)) {
         //MFH BUG #14296
         $where = '';
         if (!empty($whereArray)) {
             $where = '(' . implode(') AND (', $whereArray) . ')';
         }
         $this->lvs->setup($this->seedBean, $this->displayTpl, $where, $lvsParams, 0, $this->displayRows);
         if (in_array('CREATED_BY', array_keys($displayColumns))) {
             // handle the created by field
             foreach ($this->lvs->data['data'] as $row => $data) {
                 $this->lvs->data['data'][$row]['CREATED_BY'] = get_assigned_user_name($data['CREATED_BY']);
             }
         }
         // assign a baseURL w/ the action set as DisplayDashlet
         foreach ($this->lvs->data['pageData']['urls'] as $type => $url) {
             // awu Replacing action=DisplayDashlet with action=DynamicAction&DynamicAction=DisplayDashlet
             if ($type == 'orderBy') {
                 $this->lvs->data['pageData']['urls'][$type] = preg_replace('/(action=.*&)/Ui', 'action=DynamicAction&DynamicAction=displayDashlet&', $url);
             } else {
                 $this->lvs->data['pageData']['urls'][$type] = preg_replace('/(action=.*&)/Ui', 'action=DynamicAction&DynamicAction=displayDashlet&', $url) . '&sugar_body_only=1&id=' . $this->id;
             }
         }
         $this->lvs->ss->assign('dashletId', $this->id);
     }
 }
 /**
  * Does all dashlet processing, here's your chance to modify the rows being displayed!
  */
 function process($lvsParams = array())
 {
     $currentSearchFields = array();
     $configureView = true;
     // configure view or regular view
     $query = false;
     $whereArray = array();
     $lvsParams['massupdate'] = false;
     // apply filters
     $whereArray = $this->buildWhere();
     $this->lvs->export = false;
     $this->lvs->multiSelect = false;
     $this->addCustomFields();
     // columns
     $displayColumns = array();
     if (isset($this->displayColumns)) {
         // use user specified columns
         foreach ($this->displayColumns as $name => $val) {
             $displayColumns[strtoupper($val)] = $this->columns[$val];
             $displayColumns[strtoupper($val)]['label'] = trim($displayColumns[strtoupper($val)]['label'], ':');
             // strip : at the end of headers
         }
     } else {
         // use the default
         foreach ($this->columns as $name => $val) {
             if (!empty($val['default']) && $val['default']) {
                 $displayColumns[strtoupper($name)] = $val;
                 $displayColumns[strtoupper($name)]['label'] = trim($displayColumns[strtoupper($name)]['label'], ':');
             }
         }
     }
     $this->lvs->displayColumns = $displayColumns;
     $this->lvs->lvd->setVariableName($this->seedBean->object_name, array());
     $lvdOrderBy = $this->lvs->lvd->getOrderBy();
     // has this list been ordered, if not use default
     if (empty($lvdOrderBy['orderBy'])) {
         foreach ($displayColumns as $colName => $colParams) {
             if (!empty($colParams['defaultOrderColumn'])) {
                 $lvsParams['overrideOrder'] = true;
                 $lvsParams['orderBy'] = $colName;
                 $lvsParams['sortOrder'] = $colParams['defaultOrderColumn']['sortOrder'];
             }
         }
     }
     if (!empty($this->displayTpl)) {
         $this->lvs->setup($this->seedBean, $this->displayTpl, implode(' AND ', $whereArray), $lvsParams, 0, $this->displayRows);
         if (in_array('CREATED_BY', array_keys($displayColumns))) {
             // handle the created by field
             foreach ($this->lvs->data['data'] as $row => $data) {
                 $this->lvs->data['data'][$row]['CREATED_BY'] = get_assigned_user_name($data['CREATED_BY']);
             }
         }
         // assign a baseURL w/ the action set as DisplayDashlet
         foreach ($this->lvs->data['pageData']['urls'] as $type => $url) {
             if ($type == 'orderBy') {
                 $this->lvs->data['pageData']['urls'][$type] = preg_replace('/(action=.*&)/Ui', 'action=DisplayDashlet&', $url);
             } else {
                 $this->lvs->data['pageData']['urls'][$type] = preg_replace('/(action=.*&)/Ui', 'action=DisplayDashlet&', $url) . '&sugar_body_only=1&id=' . $this->id;
             }
         }
         $this->lvs->ss->assign('dashletId', $this->id);
     }
 }