Release
2022.01.001
Announced on

SpiceCRM 2022.01.001
Attention developers! We introduced webpack environment to speed up the compiling process and make live changes while working on frontend features. By using webpack we rely on an official bundling standard and reduce the complex maintenance of the gulpfiles. Please, check the webpack developer guide to learn how to generate the frontend app.
On backend side we made some refactoring in table column names, check the release notes below for details!
Marketing automation
New icon for reminders
Little design improvement to pleasure the eyes. Reminders may be set on any record in the CRM, helping remind you of some intentions you have.

Release Details 2022.01.001
1000619 : New button "save&send" for Activity Steam
Some activities have a save & send logic like Text Messages or Emails. New component ObjectActionSaveSendButton will display an action button that will trigger the save logic and display a 'data sent' toast back to the to screen.
CR1000682 : Template Variable Helper, Phase 3 (for SystemRichTextSourceModal)
CR1000685 : ACL for QuestionnaireManager
CR1000686 : Package Loader - Repair DB Popup
Open a confirm modal to execute repair db on error.
CR1000692 : fix maxlength in system-input-text
typo in parameter maxlengt which is now renamed to maxlength
CR1000695 : duplicate filter in fts config
added a new option in the fts module settings to also add a duplicate filter. This allows to e.g. configure that when checking a module like service tickets that only open tickets are considered as duplicates but not closed ones.
CR1000696 : Added type of Duplicate Check
added an option to the field duplicatecheck in sysmodules and syscustommodules.
- 0 means no check
- 1 checks continously online on any data change and holds the interaction with the user
- 2 only checks on save.
Option 2 was added for high volume modules where a check at the end is sufficient and a running check would potentially overload system resources
CR1000697 : Fix Repair cache and syntax in vardefs.ext.php file
Since singleton implementation of SpiceDictionaryHandler in 2021.03.001 custom/modules/[module]/Ext/Vardefs/vardefs.ext.php contain syntax errors (multiple appearances of 'use SpiceCRM\includes\SpiceDictionary\SpiceDictionaryHandler;' when multiple files are defined under custom/Extension/modules/[module]/Ext/Vardefs. We now catch the error by removing all lines containing 'use SpiceCRM\includes\SpiceDictionary\SpiceDictionaryHandler; ' and inserting this line only once at the top of the vardefs.ext.php file.
CR1000698 : new GlobalHeader reminder icon
add a new reminder icon in the global header tools to make reminders more visible also outside of the dashlet view.
CR1000699 : Added Shortcut CTRL-M to navigate to Menu
added a keyboard shortcut to CTRL-M to open the Menu and allow keyboard navigation to switch to another module using up and down keys and Enter
CR1000700 : Search Shortcut CRTL-S
added Shortcut CTRL-S to focus on the global search field
CR1000702 : Fix use email template in email combined with signatures enabled in richtext editor
When writing an email with the user signature turned on, the user signature will be removed if an email template is used. Fix was implemented so that existing inserted signatures will be kept within the text after selecting the email template.
CR1000703 : added option for acl check on global navigation manager route object
added a config option acl on Object GlobalNavigationMenuItemActionRoute. This allows adding an optional acl check on the item. Only if the user for the module and the acl has access the route item will be shown in the global module menu.
CR1000704 : new Component SystemPDFContainer
added a new Component SystemPDFContainer that can be used with the tag system-pdf-container. It accepts a base64 encoded string for a PDF content and renders this in a viewer.
CR1000705 : new options acl and requiredmodelstate on tab item components
added two new config options on the components ObjectTabContainerItem and ObjectVerticalTabContainerItem.
acl: checks that the user has access rights for the given acl on the model in scope
requiredmodelstate: checks that the model is in the required model state
If these conditions are not met the tab is not rendered.
This gives more options in configuration on tab containers and control better which tabs are being displayed.
CR1000707 : KnowledgeBooks Bug Fix edit Book
Edit Icon in Book selector won't react for edition.
CR1000710 : LMS modules setup
Basic modules to manage trainings, training units, contents and learning skills. Modules are packed to lms package (Learning Management) and are allocated to the 'LM' role
CR1000711 : Moved fts Initialize button
Moved the FTS initialize button to the fts status app and away from the setup. As this button several times caused confusion being placed in the fts setup app this was moved to the fts status.
CR1000712 : add new bulk index option
the bulk indexer allows to write a method indexBulk on a bean. The method will get the number of records to be indexed in the call and is expected to return the number of actual indexed beans. These methods need to handle the indexing then direct. Allowing this implementation make sense when very large set of data need to be indexed and the flexible modeling way from SpiceCRM will cause too long run times due to high frequent mass changes. The method can be implemented to read data right from the database and transform it into an elastic bulk index request that is submitted.
CR1000713 : Re-instate after_login hook for User login
Call the after_login hook
CR1000714 : Audit Log on text field displays empty values
Audit log did not display text changes when the field that is audited is of type 'text'. Now it does.
CR1000715 : MS Exchange: additional parameter to control update of participants
Currently update participants is always triggered on a save of the event bean in SpiceCRM even if the there was no change done that would affect participants. The additional property exchangeNotifyParticipants is created on the fly to the event spiceBean object and set to true. true means: update of participants will always be done after a save of the bean in the CRM. That is the behaviour we have been having all along.
The property exchangeNotifyParticipants value can be overridden in a custom event handler hook if necessary. You also may create a custom vardefs for exchangeNotifyParticipants to override the default setting we now have in SpiceCRMExchangeEvents constructor.
CR1000717 : SQL statements ticks cleanup
In the past it appears that some SQL statements were optimized for MySQL by using ticks on column names. This is now cleaned up to ensure database type compatilibity. This cleanup is step 1 of a larger column name refactoring that will be implemented in SpiceCRM.
CR1000718 : SQL cleanup of database type specific functions
Some SQL statements use MySQL related functions like NOW(), CURRENT_DATE(), DATE_SUB()... LIMIT parameter. These functions shall not be used to ensure database type compatilibity.
CR1000720 : Removed deprecated file containing of scheduler functions
The deprecated file modules/Schedulers/_AddJobsHere.php was removed.
CR1000722 : Fieldsets manager fix unlink global fieldset
After copying an original fieldset containing sub fieldsets itself it wasn't possible to remove a sub fieldset from the new created custom fieldset. Bug is now fixed
CR1000723 : Refactored columns names
Some column names in variable definitions are reserved words (in mysql, mssql or oracle). We refactored the names in the following tables:
- knowledgebooks.public to knowledgebooks.is_public
- accounts_potentials.role to accounts_potentials.account_role
- potentials.comment to potentials.commenttext
- servicefeedbacks.comment to servicefeedbacks.commenttext
- syscustomdomainfieldvalidationvalues.maxvalue to syscustomdomainfieldvalidationvalues.maxval
- sysdomainfieldvalidationvalues.maxvalue to sysdomainfieldvalidationvalues.maxval
- sysuicustomlibs.rank to sysuicustomlibs.libsequence
- sysuilibs.rank to sysuilibs.libsequence
- users_feeds.rank to users_feeds.feedsequence
CR1000724 : CleanUp Administration folder
Removed deprecated Administration class and its uses. Removed the sysmodules entry Adnistration from database reference. Removed old files that used to handle repair.
CR1000725 : New content package with default scheduler jobs
The content package 'Default Scheduler Jobs' will load a set of generic schedulerjobs that can be activated by the CRM administrator. Those jobs will cleanup log tables, take care of data indexing and process Spice imports.
CR1000726 : Cleanup deprecated tabs config in ObjectTabContainer
Lead converts into account but not contact. Convert lead modal does not close.
CR1000727 : Added Salesdoc item of type "Text" in convert sales doc core configuration
Package salesdocumentsconf contains now definitions to convert Text positions of type text when converted from a quote to a quote, a quote to an order, an order to a quote, an order to an invoice
CR1000728 : BugFix FTS search term encoding
Search with capital letters or cyrillic chars do not output expected results. A SpiceCRM partner implemented a fix.
CR1000729 : Allow the use of tranlation for combined labels
allows to use of tranlation for combined labels
Questions about this version? Write to us.