From 06dbbf49787d0ca4ac25b566274d5f5935711b3e Mon Sep 17 00:00:00 2001 From: SinergiaCRM Date: Tue, 26 Jul 2022 19:04:25 +0000 Subject: [PATCH] Fix #9691 - Add PDF template functionality to more modules automatically --- include/DetailView/DetailView2.php | 5 +++ include/ListView/ListViewDisplay.php | 10 ++++++ .../file/metadata/detailviewdefs.php | 7 ++++ include/language/en_us.lang.php | 6 ---- .../AOS_PDF_Templates/AOS_PDF_Templates.php | 32 +++++++++++++++++++ modules/Accounts/AccountsListViewSmarty.php | 2 +- modules/Accounts/views/view.detail.php | 3 -- modules/Accounts/views/view.list.php | 2 -- modules/Contacts/ContactsListViewSmarty.php | 2 +- modules/Contacts/views/view.detail.php | 3 -- modules/Contacts/views/view.list.php | 2 -- modules/Leads/LeadsListViewSmarty.php | 2 +- modules/Leads/views/view.detail.php | 3 -- modules/Leads/views/view.list.php | 2 -- modules/Notes/metadata/detailviewdefs.php | 9 ++++++ 15 files changed, 66 insertions(+), 24 deletions(-) diff --git a/include/DetailView/DetailView2.php b/include/DetailView/DetailView2.php index 79e2e14027a..ba172a54dc1 100755 --- a/include/DetailView/DetailView2.php +++ b/include/DetailView/DetailView2.php @@ -96,6 +96,11 @@ public function setup( } if (!empty($this->metadataFile) && file_exists($this->metadataFile)) { require($this->metadataFile); + if (!in_array($this->module, AOS_PDF_Templates::$excludedModulesToAddButtons)){ + $viewdefs[$this->module][$this->view]['templateMeta']['form']['buttons']['AOS_GENLET'] = array ('customCode' => ''); + require_once('modules/AOS_PDF_Templates/formLetter.php'); + formLetter::DVPopupHtml($this->module); + } } else { //If file doesn't exist we create a best guess if (!file_exists("modules/$this->module/metadata/$metadataFileName.php") && diff --git a/include/ListView/ListViewDisplay.php b/include/ListView/ListViewDisplay.php index 4ccbad99ff8..141bc1239bc 100755 --- a/include/ListView/ListViewDisplay.php +++ b/include/ListView/ListViewDisplay.php @@ -380,6 +380,9 @@ protected function buildActionsLink($id = 'actions_link', $location = 'top') && $this->export ) { $menuItems[] = $this->buildExportLink($location); + if (!in_array($this->seed->module_dir, AOS_PDF_Templates::$excludedModulesToAddButtons)){ + $menuItems[] = $this->buildPDFLinkAndPopupHtml(); + } } foreach ($this->actionsMenuExtraItems as $item) { @@ -416,6 +419,13 @@ protected function buildExportLink($loc = 'top') return "seed->module_dir}', 'index.php?entryPoint=export','{$app_strings['LBL_LISTVIEW_NO_SELECTED']}')\">{$app_strings['LBL_EXPORT']}"; } + protected function buildPDFLinkAndPopupHtml() + { + require_once('modules/AOS_PDF_Templates/formLetter.php'); + formLetter::LVPopupHtml($this->seed->module_name); + return formLetter::LVSmarty(); + } + /** * Builds the massupdate link * diff --git a/include/SugarObjects/templates/file/metadata/detailviewdefs.php b/include/SugarObjects/templates/file/metadata/detailviewdefs.php index 98124de8774..964f88789d9 100755 --- a/include/SugarObjects/templates/file/metadata/detailviewdefs.php +++ b/include/SugarObjects/templates/file/metadata/detailviewdefs.php @@ -47,6 +47,13 @@ $viewdefs[$module_name]['DetailView'] = array( 'templateMeta' => array( 'maxColumns' => '2', + 'form' => array( + 'buttons' => array( + 'EDIT', + 'DUPLICATE', + 'DELETE', + ) + ), 'form' => array(), 'widths' => array( array('label' => '10', 'field' => '30'), diff --git a/include/language/en_us.lang.php b/include/language/en_us.lang.php index c0e54059650..194d543900f 100755 --- a/include/language/en_us.lang.php +++ b/include/language/en_us.lang.php @@ -3129,12 +3129,6 @@ $app_list_strings['product_quote_parent_type_dom']['AOS_Quotes'] = 'Quotes'; $app_list_strings['product_quote_parent_type_dom']['AOS_Invoices'] = 'Invoices'; $app_list_strings['product_quote_parent_type_dom']['AOS_Contracts'] = 'Contracts'; -$app_list_strings['pdf_template_type_dom']['AOS_Quotes'] = 'Quotes'; -$app_list_strings['pdf_template_type_dom']['AOS_Invoices'] = 'Invoices'; -$app_list_strings['pdf_template_type_dom']['AOS_Contracts'] = 'Contracts'; -$app_list_strings['pdf_template_type_dom']['Accounts'] = 'Accounts'; -$app_list_strings['pdf_template_type_dom']['Contacts'] = 'Contacts'; -$app_list_strings['pdf_template_type_dom']['Leads'] = 'Leads'; $app_list_strings['pdf_template_sample_dom'][''] = ''; $app_list_strings['contract_status_list']['Not Started'] = 'Not Started'; $app_list_strings['contract_status_list']['In Progress'] = 'In Progress'; diff --git a/modules/AOS_PDF_Templates/AOS_PDF_Templates.php b/modules/AOS_PDF_Templates/AOS_PDF_Templates.php index 595ad54da94..e05313fd7d8 100755 --- a/modules/AOS_PDF_Templates/AOS_PDF_Templates.php +++ b/modules/AOS_PDF_Templates/AOS_PDF_Templates.php @@ -30,10 +30,42 @@ require_once('modules/AOS_PDF_Templates/AOS_PDF_Templates_sugar.php'); class AOS_PDF_Templates extends AOS_PDF_Templates_sugar { + public static $excludedModulesForCreateTemplates = ['Home', 'Calendar']; + public static $excludedModulesToAddButtons = [ + 'Home', + 'Calendar', + 'Users', + 'SecurityGroups', + 'OAuth2Clients', + 'OAuthKeys', + 'Schedulers', + 'AOS_Contracts', // The Contracts, Quotes and Invoices modules + 'AOS_Quotes', // add their own custom buttons + 'AOS_Invoices' // and therefore they are excluded. + ]; + public function __construct() { parent::__construct(); + global $app_list_strings; + $app_list_strings['pdf_template_type_dom'] = $this->loadTabModules(); } + public static function loadTabModules() + { + global $app_list_strings; + include_once 'modules/MySettings/TabController.php'; + $controller = new TabController(); + $currentTabs = $controller->get_system_tabs(); + + $modules = array(); + foreach($currentTabs as $key => $mod){ + if (!in_array($mod, self::$excludedModulesForCreateTemplates)) { + $modules[$key] = (isset($app_list_strings['moduleList'][$key])) ? $app_list_strings['moduleList'][$key] : $key; + } + } + asort($modules); + return $modules; + } } diff --git a/modules/Accounts/AccountsListViewSmarty.php b/modules/Accounts/AccountsListViewSmarty.php index 16a2ca8393b..c49caf28215 100644 --- a/modules/Accounts/AccountsListViewSmarty.php +++ b/modules/Accounts/AccountsListViewSmarty.php @@ -151,6 +151,6 @@ public function buildExportLink($id = 'export_link') "'index.php?entryPoint=jjwg_Maps&display_module={$_REQUEST['module']}', " . "'{$app_strings['LBL_LISTVIEW_NO_SELECTED']}')\">{$app_strings['LBL_MAP']}"; - return formLetter::LVSmarty().$script; + return $script; } } diff --git a/modules/Accounts/views/view.detail.php b/modules/Accounts/views/view.detail.php index dfefef3fd4c..32b4553e042 100755 --- a/modules/Accounts/views/view.detail.php +++ b/modules/Accounts/views/view.detail.php @@ -64,9 +64,6 @@ public function display() sugar_die($app_strings['ERROR_NO_RECORD']); } - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::DVPopupHtml('Accounts'); - $this->dv->process(); if (ACLController::checkAccess('Contacts', 'edit', true)) { diff --git a/modules/Accounts/views/view.list.php b/modules/Accounts/views/view.list.php index 0af418225c5..07e970e5e1b 100755 --- a/modules/Accounts/views/view.list.php +++ b/modules/Accounts/views/view.list.php @@ -9,8 +9,6 @@ class AccountsViewList extends ViewList */ public function preDisplay() { - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::LVPopupHtml('Accounts'); parent::preDisplay(); $this->lv = new AccountsListViewSmarty(); diff --git a/modules/Contacts/ContactsListViewSmarty.php b/modules/Contacts/ContactsListViewSmarty.php index 810690ff142..21eabfdf51d 100644 --- a/modules/Contacts/ContactsListViewSmarty.php +++ b/modules/Contacts/ContactsListViewSmarty.php @@ -54,6 +54,6 @@ public function buildExportLink($id = 'export_link') "'index.php?entryPoint=jjwg_Maps&display_module={$_REQUEST['module']}', " . "'{$app_strings['LBL_LISTVIEW_NO_SELECTED']}')\">{$app_strings['LBL_MAP']}"; - return formLetter::LVSmarty().$script; + return $script; } } diff --git a/modules/Contacts/views/view.detail.php b/modules/Contacts/views/view.detail.php index b1560166790..bd87dacf9da 100755 --- a/modules/Contacts/views/view.detail.php +++ b/modules/Contacts/views/view.detail.php @@ -60,9 +60,6 @@ public function display() $this->ss->assign("AOP_PORTAL_ENABLED", $aop_portal_enabled); - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::DVPopupHtml('Contacts'); - $admin = BeanFactory::newBean('Administration'); $admin->retrieveSettings(); if (isset($admin->settings['portal_on']) && $admin->settings['portal_on']) { diff --git a/modules/Contacts/views/view.list.php b/modules/Contacts/views/view.list.php index 767ec80ec05..e95c51f33b7 100755 --- a/modules/Contacts/views/view.list.php +++ b/modules/Contacts/views/view.list.php @@ -9,8 +9,6 @@ class ContactsViewList extends ViewList */ public function preDisplay() { - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::LVPopupHtml('Contacts'); parent::preDisplay(); $this->lv = new ContactsListViewSmarty(); diff --git a/modules/Leads/LeadsListViewSmarty.php b/modules/Leads/LeadsListViewSmarty.php index 88ca4688063..847a595b91d 100644 --- a/modules/Leads/LeadsListViewSmarty.php +++ b/modules/Leads/LeadsListViewSmarty.php @@ -53,6 +53,6 @@ public function buildExportLink($id = 'export_link') "'index.php?entryPoint=jjwg_Maps&display_module={$_REQUEST['module']}', " . "'{$app_strings['LBL_LISTVIEW_NO_SELECTED']}')\">{$app_strings['LBL_MAP']}"; - return formLetter::LVSmarty().$script; + return $script; } } diff --git a/modules/Leads/views/view.detail.php b/modules/Leads/views/view.detail.php index baacdf8d173..889686d461e 100755 --- a/modules/Leads/views/view.detail.php +++ b/modules/Leads/views/view.detail.php @@ -48,9 +48,6 @@ public function display() { global $sugar_config; - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::DVPopupHtml('Leads'); - //If the convert lead action has been disabled for already converted leads, disable the action link. $disableConvert = ($this->bean->status == 'Converted' && !empty($sugar_config['disable_convert_lead'])) ? true : false; $this->ss->assign("DISABLE_CONVERT_ACTION", $disableConvert); diff --git a/modules/Leads/views/view.list.php b/modules/Leads/views/view.list.php index b4cc76e4740..db7aba5836f 100755 --- a/modules/Leads/views/view.list.php +++ b/modules/Leads/views/view.list.php @@ -9,8 +9,6 @@ class LeadsViewList extends ViewList */ public function preDisplay() { - require_once('modules/AOS_PDF_Templates/formLetter.php'); - formLetter::LVPopupHtml('Leads'); parent::preDisplay(); $this->lv = new LeadsListViewSmarty(); diff --git a/modules/Notes/metadata/detailviewdefs.php b/modules/Notes/metadata/detailviewdefs.php index bdc26385d44..e505e65f972 100755 --- a/modules/Notes/metadata/detailviewdefs.php +++ b/modules/Notes/metadata/detailviewdefs.php @@ -45,6 +45,15 @@ 'templateMeta' => array( 'maxColumns' => '2', + 'form' => + array( + 'buttons' => + array( + 0 => 'EDIT', + 1 => 'DUPLICATE', + 2 => 'DELETE', + ), + ), 'widths' => array( 0 =>