Skip to content

Commit

Permalink
Hotfix - General - Ver nombre de fichero en vista de lista de un módu…
Browse files Browse the repository at this point in the history
…lo propio de tipo Archivo (#62)
  • Loading branch information
ManuSinergiaCRM authored Sep 24, 2024
1 parent 79331e0 commit 6a0e587
Show file tree
Hide file tree
Showing 4 changed files with 181 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
/**
*
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address [email protected].
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/


/**
* STIC-Custom 20240715 MHP - This "SugarWidget" is based on "SugarWidgetField".
* This widget will display a link with the file name and a link icon. The link with the file name allows the user
* to download the file and the icon allows the user to preview the file.
* https://github.com/SinergiaTIC/SinergiaCRM/pull/44
*/
class SugarWidgetSubPanelFileDownloadViewLink extends SugarWidgetField
{
public function displayList(&$layout_def)
{
$module = '';
$record = '';

if (isset($layout_def['varname'])) {
$key = strtoupper($layout_def['varname']);
} else {
$key = $this->_get_column_alias($layout_def);
$key = strtoupper($key);
}

if (empty($layout_def['fields'][$key])) {
return "";
} else {
$value = $layout_def['fields'][$key];
}

if (empty($layout_def['target_record_key'])) {
$record = $layout_def['fields']['ID'];
} else {
$record_key = strtoupper($layout_def['target_record_key']);
$record = $layout_def['fields'][$record_key];
}

if (!empty($layout_def['target_module_key'])) {
if (!empty($layout_def['fields'][strtoupper($layout_def['target_module_key'])])) {
$module=$layout_def['fields'][strtoupper($layout_def['target_module_key'])];
}
} else {
if (!empty($layout_def['target_module'])) {
$module = $layout_def['target_module'];
} else {
$module = $layout_def['module'];
}
}

global $current_user;
$groupAccessView = SecurityGroup::groupHasAccess($module,$record,'view');
if (!empty($record) &&
($layout_def['DetailView'] && !$layout_def['owner_module']
|| $layout_def['DetailView'] && !ACLController::moduleSupportsACL($layout_def['owner_module'])
|| ACLController::checkAccess($layout_def['owner_module'], 'view', $layout_def['owner_id'] == $current_user->id, 'module', $groupAccessView))) {
$link = ajaxLink("index.php?entryPoint=download&id={$record}&type={$module}");
return '<a href="' . $link . '" >'.$value.'</a><a href="' . $link . '&preview=yes" target=”_blank”><i class="glyphicon glyphicon-eye-open" style="margin-left: 16px"></i></a>';
} else {
return $value;
}
}
}
16 changes: 16 additions & 0 deletions include/ListView/ListViewData.php
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,13 @@ public function getListViewData($seed, $where, $offset=-1, $limit = -1, $filter_
$orderBy = 'last_name '.$order['sortOrder'].', first_name '.$order['sortOrder'];
}

// STIC-Custom 20240715 MHP - https://github.com/SinergiaTIC/SinergiaCRM/pull/62
// If 'uploadfile' field is included in the fields to be displayed, 'filename' is added to the array since in custom modules
// that inherit from the file type module, the database field that stores the name is called 'filename'.
if (isset($GLOBALS["dictionary"][$seed->module_dir]['templates']['file']) && in_array('uploadfile', $filter_fields)){
$filter_fields['filename'] = true;
}
// END STIC-Custom
$ret_array = $seed->create_new_list_query($orderBy, $where, $filter_fields, $params, 0, '', true, $seed, $singleSelect);
$ret_array['inner_join'] = '';
if (!empty($this->seed->listview_inner_join)) {
Expand Down Expand Up @@ -369,6 +376,15 @@ public function getListViewData($seed, $where, $offset=-1, $limit = -1, $filter_

while (($row = $this->db->fetchByAssoc($result)) != null) {
if ($count < $limit) {
// STIC-Custom 20240715 MHP - https://github.com/SinergiaTIC/SinergiaCRM/pull/62
// In custom modules that inherit from the file type module, the field that displays the file name is called 'uploadfile' instead of 'filename'.
// The value of the 'filename' field is copied to the 'uploadfile' so that it can be displayed in the list view.
if (isset($GLOBALS["dictionary"][$seed->module_dir]['templates']['file']) &&
!isset($row['uploadfile']) && isset($row['filename']) && !empty($row['filename']))
{
$row['uploadfile'] = $row['filename'];
}
// END STIC-Custom
$id_list .= ',\''.$row[$id_field].'\'';
$idIndex[$row[$id_field]][] = count($rows);
$rows[] = $seed->convertRow($row);
Expand Down
10 changes: 10 additions & 0 deletions include/SugarObjects/templates/file/metadata/listviewdefs.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,16 @@
'link' => true,
'default' => true
),
// STIC-Custom 20240715 MHP - https://github.com/SinergiaTIC/SinergiaCRM/pull/62
// Add the file name and options to download and view the file in a new tab in the subpanel of a new module of type File
'UPLOADFILE' =>
array (
'type' => 'file',
'label' => 'LBL_FILE_UPLOAD',
'width' => '10%',
'default' => true,
),
// END STIC-Custom
'MODIFIED_BY_NAME' => array(
'width' => '10',
'label' => 'LBL_MODIFIED_USER',
Expand Down
60 changes: 53 additions & 7 deletions include/SugarObjects/templates/file/metadata/subpanels/default.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,30 +52,76 @@
'where' => '',

'list_fields' => array(
// STIC-Custom 20240715 MHP - https://github.com/SinergiaTIC/SinergiaCRM/pull/62
// Add the file name and options to download and view the file in a new tab in the subpanel of a new module of type File
// 'object_image' => array(
// 'widget_class' => 'SubPanelIcon',
// 'width' => '2%',
// 'image2' => 'attachment',
// 'image2_url_field' => array(
// 'id_field' => 'selected_revision_id',
// 'filename_field' => 'selected_revision_filename'
// ),
// 'attachment_image_only' => true,

// ),
// 'document_name' => array(
// 'name' => 'document_name',
// 'vname' => 'LBL_LIST_DOCUMENT_NAME',
// 'widget_class' => 'SubPanelDetailViewLink',
// 'width' => '45%',
// ),
// 'active_date' => array(
// 'name' => 'active_date',
// 'vname' => 'LBL_DOC_ACTIVE_DATE',
// 'width' => '45%',
// ),
'object_image' => array(
'vname' => 'LBL_OBJECT_IMAGE',
'widget_class' => 'SubPanelIcon',
'width' => '2%',
'image2' => 'attachment',
'image2_url_field' => array(
'id_field' => 'selected_revision_id',
'filename_field' => 'selected_revision_filename'
'id_field' => 'id',
'filename_field' => 'filename'
),
'attachment_image_only' => true,

),
'filename' => array(
'name' => 'filename',
'vname' => 'LBL_LIST_DOCUMENT_NAME',
'width' => '20%',
'sortable'=>false,
'widget_class' => 'SubPanelDetailViewLink',
),
'document_name' => array(
'name' => 'document_name',
'vname' => 'LBL_LIST_DOCUMENT_NAME',
'widget_class' => 'SubPanelDetailViewLink',
'vname' => 'LBL_FILENAME',
'widget_class' => 'SubPanelFileDownloadViewLink',
'width' => '45%',
),

'status_id' => array(
'type' => 'enum',
'vname' => 'LBL_DOC_STATUS',
'width' => '10%',
),
'active_date' => array(
'name' => 'active_date',
'vname' => 'LBL_DOC_ACTIVE_DATE',
'width' => '45%',
),

'assigned_user_name' =>
array (
'link' => true,
'type' => 'relate',
'vname' => 'LBL_ASSIGNED_TO_NAME',
'id' => 'ASSIGNED_USER_ID',
'width' => '10%',
'widget_class' => 'SubPanelDetailViewLink',
'target_module' => 'Users',
'target_record_key' => 'assigned_user_id',
),
// END STIC-Custom
'edit_button' => array(
'vname' => 'LBL_EDIT_BUTTON',
'widget_class' => 'SubPanelEditButton',
Expand Down

0 comments on commit 6a0e587

Please sign in to comment.