How to Use ActionViewMap Custom Extension File

So, I am working through an upgrade to SuiteCRM 7.10.1 from 7.5.1 and I have lots of issues that need fixed.

One of them is fixing a lot of DetailView’s because I was using custom tpl files to overwrite those views.

With the new changes, it seems that many of those buttons such as “Edit” and any custom button I have, need to be under the “Actions” dropdown menu.

I took a look at the new developer guide recently published and saw this tidbit: https://docs.suitecrm.com/developer/14.-extension-framework/

However, no syntax is given as an example on how to use this file or if it does what I intend it to do.

Any help on adding actions or specifying which ones I want to be present? In certain cases I exclude certain actions or add my own custom ones.

First, are you aware of the option in Admin / System Settings to show actions in menus, vs. dropdown? You might like to know that, if you don’t already.

About your question, this should all be valid (version 6.5):

http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Extension_Framework/Extensions/ActionViewMap/

I also have a couple of Gists for doing this in a List view, they work well in SuiteCRM:

https://gist.github.com/pgorod/5de7c6f8d37413654b16e06668d7e1b1
https://gist.github.com/pgorod/c838f258fadf9528b61183e763e978a8

(the two work together, they are two parts of the same thing)

1 Like

Thanks for your help!

Actually, I think I figured out how to edit the menu, but for some reason the “Actions” Dropdown menu on the DetailView isn’t clickable, when I click it, the menu won’t open, but If I force the list open with the chrome console, I see my changes worked.

I just edited them in detailviewdefs.php and had no issue doing something like this:

'form' => 
          array (
            'buttons' => 
            array (
              0 => 'EDIT',
              1 => 'DELETE',
              2 => 'FIND_DUPLICATES',
              3 => 
              array (
                'customCode' => '<input type="button" class="button" onClick="showPopup(\'pdf\');" value="{$MOD.LBL_PRINT_AS_PDF}">',
              ),
              4 => 
              array (
                'customCode' => '<input type="button" id="verifyButton" class="verifyButtonContainer" name="verify" value="Verify" onclick="open_modal()">',
              ),
            ),
          ),

I’m getting no errors in the chrome console at all, and I see no events are bound to the dropdown menu, so right now I’m sifting through the style.css file in themes/SuiteP/css/Dawn/style.css around line 4400 to see what :hover, :focus selectors are doing. I can see that the dropdown menu has a ‘Display:none’ on its styling, so I’m trying to see what triggers the css value to change to be viewable.

SOLVED!

The problem was that we have a custom notes module extension that was being called in custom/modules/Opportunities/Ext/LogicHooks/logichooks.ext.php

This custom note extension was calling its own styling files that included a bootstrap.min.js file. I am actually unsure why this didn’t cause an issue before now, but it seems as though you guys are including this file now, so I just commented it out! It being called twice was breaking the page css.

Good to hear you’ve solved it!

You went through a LOT of upgrades, and somewhere around 7.4 or 7.5 there was a big rearrangement of files, because all SalesAgility modules (AO*, like Advanced Open Workflow, Advanced Open Sales, etc.), were moved from the “custom” directory into the main product.

That is the most troublesome moment of the upgrades, because when these files are mixed with customizations, things get messy.

Check that you have “Case updates threaded” working in your Cases module, that was one of the things that often broke during this upgrade.

1 Like

Luckily for me, that change you are talking about is from 7.4 to 7.5, so I already went through that back in early 2016.

Another big problem is that I have a lot of non-upgrade safe changes that I have implemented. This is why I have held off for so long because I knew it would take me a minute to correct all these changes, especially because SalesAgility has made changes to some of these files and I may have to re-write my code to work with them.

Two quick questions, I’m assuming there are no upgrade safe ways to modify the following files (except the lines that are in the custom directory):

  1. We have made changes to the lead conversion process so that you can convert a lead into two different modules. One for Investors, one for Advisors.
    modules/Leads/views/view.convertlead.php
    modules/Leads/language/en_us.php
    custom/modules/Leads/metadata/convertdefs.php

  2. Customized the Employees module so that normal non-admin users can create and edit these user accounts. We have an external portal that uses the built in SuiteCRM API to be authenticated based on the users stored within SuiteCRM

  • custom/modules/Employees/metadata
  • custom/modules/Employees/views
  • custom/modules/Employees/controller.php
  • modules/Employees/EmployeeStatus.php
  • modules/Employees/Save.php
  1. Allow Portal Users to Appear in the Employees Module

-modules/Employees/Employee.php
-modules/Employees/EmployeesSearchForm.php
-modules/Users/metadata/popupdefs.php

  1. Allow Portal Users to be searched using SQS (such as in the Assigned To)

-include/utils.php

  1. Remove list of which fields are being audited from ‘View Change Log’

-modules/Audit/Popup_picker.php

  1. Add New modules to the Email Templates Dropdown Menu

https://sabalinfo.wordpress.com/2013/10/11/customizing-the-email-module/

-modules/Emails/Email.php
-modules/EmailTemplates/EditView.php
-modules/EmailTemplates/EmailTemplate.php

  1. Last, but not least, Customized PDF Templates module & Quotes module that modifies the “Service Line Items” to be linked to a new module called “Policies”. this connects the Quotes module to the Policies Module and allows information to be populated from the Policies Module

-modules/AOS_Products_Quotes/line_items.js
-modules/AOS_Products_Quotes/Line_Items.php
-modules/AOS_Products_Quotes/vardefs.php
-modules/AOS_Products_Quotes/AOS_Products_Quotes.php
-modules/AOS_Products_Quotes/AOS_Products_Quotes_sugar.php
-modules/AOS_PDF_Templates/generatePdf.php
-custom/module/AOS_PDF_Templates/views/view.edit.php

Also, do you have any gists or examples of doing this on the DetailView? I fixed the bug, but now that I did I can’t seem to figure out where in my custom header.tpl file I need to add my new buttons in order for them to populate in the Actions bar. The only reason I moved my changes to the tpl file was because I have some custom html that I have added to the top of the DetailView.

Hi

I don’t have more gists, sorry - I am not a heavy customizer of SuiteCRM, I just play with a few things occasionally. But there is usually some SugarCRM 6.5 example lying around, or an example in the Developer Guide if you’re lucky.

About the non-customizable files: I hope not all of those in your list are non-customizable. If you narrow it down to a few, I wuoldn’t mind looking for ways to make them customizable. Often they aren’t, simply because nobody asked.

Often only something as simple as these changes is needed:
https://github.com/salesagility/SuiteCRM/pull/3891/files

1 Like