diff --git a/custom/include/generic/SugarWidgets/SugarWidgetSubPanelFileDownloadViewLink.php b/custom/include/generic/SugarWidgets/SugarWidgetSubPanelFileDownloadViewLink.php
new file mode 100644
index 00000000000..2a4713389a1
--- /dev/null
+++ b/custom/include/generic/SugarWidgets/SugarWidgetSubPanelFileDownloadViewLink.php
@@ -0,0 +1,102 @@
+_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 ''.$value.'';
+ } else {
+ return $value;
+ }
+ }
+}
diff --git a/include/ListView/ListViewData.php b/include/ListView/ListViewData.php
index ef11781b5d5..eae8e0ff8fd 100755
--- a/include/ListView/ListViewData.php
+++ b/include/ListView/ListViewData.php
@@ -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)) {
@@ -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);
diff --git a/include/SugarObjects/templates/file/metadata/listviewdefs.php b/include/SugarObjects/templates/file/metadata/listviewdefs.php
index 7fc45cce24a..12e43dfb908 100755
--- a/include/SugarObjects/templates/file/metadata/listviewdefs.php
+++ b/include/SugarObjects/templates/file/metadata/listviewdefs.php
@@ -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',
diff --git a/include/SugarObjects/templates/file/metadata/subpanels/default.php b/include/SugarObjects/templates/file/metadata/subpanels/default.php
index 236b270ef77..d706d14eaa3 100755
--- a/include/SugarObjects/templates/file/metadata/subpanels/default.php
+++ b/include/SugarObjects/templates/file/metadata/subpanels/default.php
@@ -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',