Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotfix - General - Ver nombre de fichero en vista de lista de un módulo propio de tipo Archivo #62

Merged
merged 14 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading