/** * 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->seedBean->ACLFilterFieldList($this->lvs->displayColumns, array("owner_override" => true)); $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'] = $data['CREATED_BY_NAME']; } } // 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); } }