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

This year, marketing enhancements are at the core of developments. We completed Phase 1 by implementing the tracking pixel capability. When you send a mass email you can now define hidden information in the email body that will help you recognize the original email when a customer sends a reply. A simple checkbox in the mailbox settings will activate the tracking pixel capability.

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.

The SpiceCRM partner network is growing!

We are happy to welcome sellmore (Germany) to our partner network, a 15 year experienced company in the field of CRM implementation. We also thank our partners  Bizlink (Bulgaria) and eVolpe (Poland) for their contribution to this release: improved language support for cyrillic alphabet in elasticsearch and optimized label handling.

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. Bizlink - SpiceCRM partner - implemented a fix.

CR1000729 : Allow the use of tranlation for combined labels

allows to use of tranlation for combined labels

release 2021.03.001

SpiceCRM 2021.03.001

We brought SpiceCRM to the next level! In this release we persisted in increasing security and backend code consistency by investing efforts in improving the administration of GDPR policy, the login & password security management & by refactoring the scheduled jobs management. We also reviewed entirely the email address management within the CRM dropping the last ballast of deprecated code in this area. Since SpiceCRM has now grown to reach a larger market we restructured the architecture so that  extensions  developed by partners are visible and can be easily integrated.  We also started investing time on details like improving the  usability of the template manager and by adding a mail merge functionality for print campaigns.

More flexibility in the Telephony Interface

Incoming number not recognized? Make a search before you create a new contact, update contact information on the fly and avoid creating duplicates.

Login management

Define the number of possible failed logins, administrate IP address blacklist, restrict login to specified IP addresses, set the password conditions by using the new interface.

Release Details 2021.03.001

1000570 : The core / extensions / custom structure

Restructure backend and frontend so that
- the core is easy to find & pack
- the more is identifiable
- partner extensions are visible
- customer developments have their area

1000605 : Copy Rules: Parsed Params in Metadata Service

Parsed Copy Rules Params Field as JSON in metadata Service on getCopyRules

1000606 : Calendar color for the past

Calendar entries in the past are now be greyed out.

1000607 : Incoming phone number from user extension

Phone extension may be stored in user information. Incoming call from internal extension will now be identified and displayed in call popup.

1000609 : Additional field for module ChangeRequests

New field techdescription. User may describe testing details related to the change request.

1000610 : New Module Agreements

Agreements with validity time frame. Define the agreement, allocate a category, upload one or more documents.

1000613 : Bug Fix - One2One Relationship - getJoin String with Alias

Reporter on one2one links the inner join link was not using the left side alias.
Change the getJoin Logic in One2OneBeanRelationship to consider the alias of the table if it was defined.

1000615 : Reports Designer - Added Custom SQL for Filters

Added two filter fields 'customSqlQuery', and 'overrideType'. customSqlQuery will replace to field name with the result of custom query and compare it with the field value. The overrideType helps to enable the desired operator options based on the override type.

1000616 : Gulp File - New Task Deploy

Added new task 'deploy' to gulpfile which execute the while packaging process tasks.

1000618 : TextMessage Templates

Administrate templates for text messages

1000620 : Email Address Handling - Refactored

Email addresses handling is changed to be done through the relationship between the specific module and the email address. A new function 'setPrimaryAddress' is created. Frontend is handling the email addresses through the relation link.

1000622 : CampaignTask status shall be planning on creation and not editable

Status of a campaign task is set dynamically by actions performed and can only be set 'planning' on creation.
A validation rule delievered by campaign management package makes sure of this.

1000627 : Remove cookie service

Remove the cookie service and the last usage for keeping the selected language of the user. So no cookies will be used any longer by spicecrm.

1000628 : List View - Infinite Scrolling Angular CDK

Integrated the Angular CDK Library in list view to improve the browser loading performance.

CR1000630 : Calendar - Bug Fix, Logic Improved.

Improved calendar sheets logic for better performance. Bug fixed on multi events display and zoom functionality.
Fixed rearrange the events in week and day sheets when show/hide other calendars.

CR1000631 : Status Network Buttons - Conditional Visibility

Added field 'required_model_state' to set the model state that required to display the action button. The model state is set by the model validation rules.

CR1000633 : Configuration for package blacklist compatible with config table entry

Until now the package blacklist could only be set config_override.php. Now it is possible to list packages in the config table by using a json string containing an array of packages.

CR1000635 : Refactor modules Jobs, JobTasks to SchedulerJobs, SchedulerJobTasks

Refactored modules names, some link names and corresponding UI config

CR1000637 : Exchange: make module handler customizable

Now it is possible to write your own module handler class for MS Exchange Sync by creating an entry is sysexchangemappingcustommodules table.

CR1000638 : AccountsCCDetails

Adding new field type for ccdetails

CR1000639 : Template Compiler - Enabled accssing the template class

Enabled accessing the template class by the the {template.key} syntax.

CR1000642 : Object Related List - Save to link only

Added 'saveToLinkOnly' flag to the ObjectRelatedList Component to prevent saving the relationship entry to the database. It just save the data in the model.data in the link object.

CR1000643 : Module Tasks - Set date start default interval

Added spice config variable ['task']['default_start_date_interval'] to be used to set the start date based on the due date subtracted the interval.
For interval syntax check PHP DateInterval.
Set due date field to required to prevent failing to load the tasks into the calendar.

CR1000645 : Validation Rules - Logic Improvement

Improved the logic of the validation rules. Cleaned up unnecessary option 'onChange'.
Changed 'on events' setting to a checkbox group.
Refactored the conditions and actions handling to field based inputs, where the value input type will be changed based on the field type.

CR1000646 : Add Tax Determination to CRM

Added the option to flexibly determine the sales tax applied to a salesdocitem. This is based on the company code country, the goods recipient country as well as a taxation indicator on the product. In additional on the product (and product variant) the option has been added to maintain prices as gross price rather than net price. This is catering to end consumer oriented businesses.

CR1000647 : Administration - Convert DB Charset

Added a convert db charset action in the workbench repair manager. This allows to convert the database charset or its tables to a certain charset type.

CR1000648 : Removed relationships cache file

/cache/Relationships is no longer needed. Removed, with the logic behind it. Relationships cache is now available in $_SESSION['relationships']

CR1000650 : Add option to hide empty subpanels

Added an option on the ObjectRelatedList component to hide the component if no related records are found. This is useful if related panels are not allowing records to be added but should only be listed if there are really records keeping the views cleaner

CR1000651 : Button for field email recipients

A button will be added to the field 'fieldemailrecipients'. It will enable to display email addresses from the parent related to the bean.

CR1000652 : Letters Module

Building a new module letters.
Aim of the module: writing a letter directly from the CRM.

The module will be allocated inside the activities from where the user can write the letter.
The following fields are needed: subject, reach text field, note, status.
Implementing two buttons save and send: Once send is triggered a modal opens where the user can choose Output Template from the dropdown.
A new action button 'Mark as send' will be added which generates the actual pdf. At the same time the letter will be visible inside the 'Activities'.

CR1000653 : Service Calendar Management

Added a new Workbench element to handle managing the service calendars.

CR1000654 : LDAP: map ldap settings to sysuirole

Allocate sysuiroles to user depending on its LDAP login group

CR1000657 : BonusCards - Improvements

Added an new module 'BonusCardExtensions' to audit the extensions separately.
Added a new field type 'bonus card validity date' to calculate the extension date with a custom API.
Added a 'validity_type' field on bonus program to enable selecting which method to use for the calculation.

CR1000658 : System Dropdown Trigger Directive - Added Trigger Button

Added the SystemDropdownTriggerButtonDirective. This can be used under the system-dropdown-trigger to handle the trigger click instead of the parent.

CR1000659 : System Input Date - Used System Dropdown Trigger

Used the system dropdown trigger directive to open the picker dropdown. This will display the picker on the top level in the dom.

CR1000660 : System Prompt - Added Input Date

Added an new system prompt type 'input:date' that renderes the system input date component and return the value on confirm.

CR1000661 : New module PartnerAgreements

Create partner agreements and visualize progress on negociations. Manage activities all around business talks and link to opportunities.

CR1000662 : Breaking Changes

Add Breaking changes field.

CR1000663 : Email - add multiple email addresses on drag and drop

Fixed that if an email that is dragged that all email addresses are added

CR1000664 : Link beans to emails

Added the logic if an email address is added that was linked to a bean, so the email is also added to that bean directly.

CR1000665 : Compiler - Added root_template

Added to Template Compiler an new template variable to enable access to the root template data by typing the following:
e.g. {root_template.name}
The above example will return the name of the root template in case we need to access its data from an embedded template.

CR1000666 : Security Settings Improvements

Manage password security settings, login channels, login attempts, block/unblock users.

CR1000667 : GDPR Retention Policy Manager

Added new feature with the GDPR Retention Policy Manager. Based on Filters, actions to set records invalid, mark them deleted or delete them permanently can be defined. In alignment with a company's GDPR Rules, thus, personal data can be proactively deleted if there is no interaction for some time. E.g. dead leads after a time span of 6 months.

CR1000669 : Auto Link Emails to objects

When email addresses are added in the email address search panel when sending an email, the beans identified with these email addresses will also be linked to the email sent. This ensures that the email trail when originating from another object still stays with the recipient's visible.

CR1000671 : Anonymous Questionnaire Participations (requested by KH Friesach)

Questionnaire Participations can now also be anonymous.

CR1000672 : Template Variable Helper, Phase 2

Phase 2: Compatibility with CampaignTasks and Parameter Fields for the Template Functions

CR1000673 : Special Characters in Passwords

In addition to letters and digits, special characters can now also be specified for the password.

CR1000675 : Memorize last set UI Role in preferences

Added the logic that the last selected user role is kept in the preferences and when the user logs on the last active role (if still available) is set as the user's active role.

CR1000676 : New user type: API User

New/additional user type: API user.

CR1000677 : Bean Mark Deleted - Check retrieve

Added retrieve before processing if needed to SugarBean::mark_deleted. This ensures having the necessary bean data before handling the delete hooks.

CR1000679 : Revision of the change/reset password forms

Improvement of the change/reset password form.

CR1000683 : Email Schedules Enhancements

Added an additional option to cancel an open EmailSchedule and also an enhanced detail view that list all related beans the email is being sent to.

release 2021.02.001

SpiceCRM 2021.02.001

After the Slim framework update performed in the Winter it was only logical to add the SpiceCRM REST API documentation. The objective is not only to make the REST API accessible for developers but also to add validation checks on variables passed and therefore ensure application security and stability. Beside backend changes and having in mind that a CRM is a communication tool, we added the SpiceCRM Page Builder to simplify the creation of newsletters and landing pages directly in the CRM. For the CRM users themselves we added a real time notifications, making it possible for users to subscribe on records and be informed right away about content changes. And finally we started a security offensive by implementing a Two-Factor Authentication (2FA) based on GoogleAuthenticator app.

The API Inspector

The API is directly documented in the CRM itself. The strict definition of the request parameters that can be sent to the CRM, matches the security requirements. Developers can try out the requests within the Inspector and check the results without needing any additional software.

APi Inspector

The SpiceCRM PageBuilder

The PageBuilder makes it possible to drag&drop content elements and generate full designed pages without any technical knowledge.

Release Details 2021.02.001

1000409 : Spice Page Builder

Spice Tool for building Html Landing Pages and Newsletter emails. Drag and drop elements into the page and configure the layout from the builder panel.

1000413 : Starface VOIP Integration

Integration Starface Telephony System.

1000415 : Generic telephony components

1000425 : Calendar Enhancements

Improve Calendar performance. Google Calendar Integration.

1000427 : Add Pipes to template compiler

Ability to change values using various functions before they are inserted.

1000469 : Calendar Show/Hide my own Events

Allow Users to show/hide their own calendar in the calendar monitor.

1000480 : Global Notifications

Display the user notifiactions in a dropdown.

1000509 : Backend: Get a collection of related beans

Modify get_linked_beans() to accept array of link names as first parameter

1000516 : Improved Code Quality on Backend

Moved $GLOBALS Class instances to singletons.

1000523 : Model List Service: Improvement. Disable Auto Loading

Move the get list data command from the model list service to the components that use the model list service.
Add a disableAutoLoad flag to the object list component for the list 'all'

1000526 : Mailbox Manager View Improvement

Added three different split options to the view. 'No split', 'Horizontal split' and 'Vertical Split'. With the possibility to configure a custom component set for the horizontal view.

1000527 : Object Related List Files Big Thumbnail

Added big thumbnail option to display the file tiles with big a thumbnail preview.
It can be toggled by the icon button on the panel header.

1000528 : System Richtext Editor Embedded Tools

Reserved the right corner of the toolbar for ng content to allow rendering custom tools embedded in the component.

1000529 : Field Richtext - Signature

Added a signature dropdown in the toolbar with the options (none, mailbox, my signature) and automatically write the signature in the content if exists.
Added email signature field for mailbox module to allow using the signaure of the mailbox.

1000530 : Mailboxes - Email Signature Field

Added a new field 'email_signature' to the mailbox to be used while sending emails.

1000531 : Bug Fix: Spice Importer: File Too Big Calculation

Corrected the fileTooBig value to calculate the count csv rows and not the file raws

1000532 : Emails - New Subject Field

Added a new field type email subject to display a status icon of the email and the subject beside. It also adds a line through the text when the email is closed and bold if the email is unread.

1000533 : Activity - New Field Activity Date

Added a new field type activity date to display a short formatted date based on the past, today, and the year.

1000534 : System Checkbox - added indeterminate option

Added indeterminate option to the system checkbox.

1000535 : Groupware Attachments - Toggle Select All

Added a select all checkbox for the attachment in groupware.
The attachment can be selected by default by a sugar config variable.

1000536 : Field Email Status - added status icon "send"

Added status icon send to the field type email status

1000538 : Questionnaire Field

Allows an entire questionnaire to be displayed as an input field.

1000539 : Richtext Editor: Improvements

- Added useMediaFile option to enable/disable using media file module
- improved the fullscreen logic
- added insert image from url tool

1000540 : Object Related List - Display Edit Modal

On save failure on object related list because of required fields are empty, edit modal will open to allow user to fill in the required fields.

1000541 : Assignable Vardefs - Assigned User ID Type Adjusted

Changed to assigned_user_id field type from 'relate' to 'varchar' length 36

1000542 : Address Field - Google Place fill with Current Language

When the Google Place API retrieves the address by the place id, the current language will be considered and the results will be returned with the current language.
This affects the AddressField Type when searching by google places.

1000544 : Email Schedules - Added Parent Fields

Added parent_id, parent_type to to the EmailSchedules module to allow displaying the Schedule in Activity Stream or in a related panel.
Displayed the EmailSchedules subpanel under TargetLists Campaign Tab.

1000545 : Field Email Addresses - Opt In Status, Improvment

Adjusted the usability for managing multiple email addresses. Added field opt_in_status to the email addresses relation table to display a status icon for an email address. Added singleMode option to allow using the field for only one email addresss.

1000546 : New dictionary type "shorttext"

Added a new dictionary type shorttext that also can hold a length. Used mainly for Oracle to hold fields with up to 4k and not create BLOBs since that siginifcant increases performance.

1000547 : Cleanup DB column removal

Updated the column removal tool to better usability. The tool allows to compare actual DB structure with the vardefs and remove columns in the Database that are no longer needed.

1000548 : Add Option to load more manually in Listviews

It is an option to allow the user to load more items manually rather than automatically loading when reaching the end of the list in an infinite list view

1000549 : Added an option for item numbers in the ObjectList

An option has been added to number the lines in a listview supporting the viewing and navigation in large datasets.

1000550 : Added count of selected item in List Header Details

Added Information on the number of selected items in the list view to the list header details. This makes it easier in case of selection scenarios to easily understand how many records are selected.

1000551 : DIsable Export Buttons if no record is selected

added the feature that the export buttons in the list header are disabled if there is no record selected. Increasins usability.

1000552 : Added Range select option to the list actions

Added a new option with the component ObjectListHeaderActionsSelectRangeButton allowing a user to select a number of records based on a range specified.

1000553 : Module Subscription Button

Added a subscription button in the header in details view to enable/disable subscribing on a specific record to get notifications if any field value was changed.

1000554 : New Field - Icon Condition

Added a new field icon condition which displays an icon based on the given module filter condition match. It can also be used to display a neutral icon without condition.

1000555 : New Field - Email Activity Openness

Adde a new field email activity openness to enable toggling the email openness status between 'open' and 'user_closed'.

1000556 : Added pagination buttons to the subpanel

Added a pagination button bar to the subpanels, so in additon to the view all there is now also a pagination bar.

1000557 : Properly set default currency

Changed logic in the currency field so the default currency is pulled properly from the user preferences. Also removed the default values in the generic copyrules for Opportunities and Salesdocs.

1000558 : Added length limit to text field

Added length indicator and limit to the text field if a length is set. This is also to accommodate ORACLE text fields (nvarchar) that have a length limitation of 4000 chrs before they become a blob.

1000559 : Proper Number formatting in list count and aggregates

Added number formatting for the items, totalcount and the aggregate item count in the list views

1000564 : FTS and Logger Transactional

Make FTS transactional and logging in separate DB connection

1000571 : Change Assitant to pull from Elastic

Changed the Assistant on the front page to retrieve the entries from the FTS engine with clear configurability using the module filters.

1000572 : Added Workflow Tasks to the Assistant

added Workflow Tasks to the Assistant on the home screen. This allows to also bring open Workflow Tasks to the assistant and thus to the user. Also added a separate view and field for the workflow task name that directly then links to the parent item.

1000573 : Meeting and Call reminders

Re-added the reminder field allowing the user to set a reminder on calls and meetings. This will prompt a popup with an alert in CRM and also a desktop notification when set and allowed the set duration before the event occurs.

1000574 : MS Exchange: improve response error handling

Some errors shall be returned to screen as exception before the logic falls into a php error.

1000575 : Disable Aggregate checkboxes when search is running

Minor change to disable the aggregate selection checkboxes when a search is running. This avoids conflicting and overlapping requests.

1000576 : Campaign Task - Send attachments with the email

Added attachment panel to Campaign Task to enable sending attachments with the campaign email

1000577 : Email Reply/Forward: Clone related entries from reference

Added field 'reference_id' to email.
Clone the reply/forward email related entries from the reference (original) email.

1000580 : Updated the Merge Feature

Amended the merge feature and dialog:
- Merge has been added to the list header actions. So entries can be selected from the list and merged from there
- In additon a check is made that the to be merged records can all be deleted
- Merge now also considers the attachments of a record
- The layout of the merge dialog has been amended. Also making it clearer from which record the merge has been triggered
- The merge als emits a message in the app internal broadcast channel and will trigger a reload of activities internally automatically showing the immediate results ater the merge in terms of related records.

1000581 : Handle delete event in navigation tabs

If a record is deleted (e.g. in a merge) and there is still a tab open with that record, the tab will be automatically closed (enforced) and also not prompting the user.

1000583 : Core Library Updates

Updated to
- Angular 12
- rxjs 6.6.7
- zone.js 12
- underscore.js 1.13.1

1000584 : FTS: config option for min and max ngram

Added the config options for min_ngram and max_ngram for the ngram analyzer and tokenizer.

$sugar_config['fts']['min_ngram'] = '2';
$sugar_config['fts']['max_ngram'] = '20';

enables customers to set min and max values

1000586 : Add connect now option to reconnect dialog

Added an option to reconnect manually right away in the reconnect await dialog. Also extended the default reconnect time to 10 seconds

1000587 : Checklists: Logic improved, Refactored.

FieldChecklist refactored to ObjectChecklist.
Focus/blur Logic improved.
Separated saving.
Temporary Backup fields added.

1000588 : Filter Panel - Multienum Type adjusted

Built an appropriate filter query for the fields from type multienum.

1000592 : Two-Factor Authentication (2FA)

Added 2Factor Authentication with TOTP Tools like google Authenticator

1000597 : API Log Enhancements

Consolidated the KREST log to the API log that now also captures the In and Outgoing Requests. This also captures incoming SOAP Requests. This also includes an update on the API Log viewer and the API Log config to have one central point to capture all events.

1000598 : CRM Log Viewer

Harmonize the CRM log viewer to be in line with the API Log viewer.

1000599 : Add embedded templates to template compiler

Added an option in the template syntax to add an embedded template in the syntax.

1000600 : Default navigation is now tabbed

Set the default navigation paradigm to tabbed view for the user preferences.

1000601 : Bug Fix: Audited text value was not saved properly

DBMananger was retireving the field type first from the type property which is not always the db type of the field.
Adjusted the DBManager class to retrieve the db type of the audited field to prevent saving the value in the wrong field in audit table.
Bug was discovered in workflow definition audit.

1000602 : New Component - System Checkbox Toggle

Added a new system component renders an input checkbox toggle and handle the value by angular two way binding.

1000603 : BeanFactory::getBean - Added "forceRetrieve" Option

Added 'forceRetrieve' Option on BeanFactory::getBean. This helps to ensure retrieving list items that are referenced to each other.

1000604 : Impersonation Login (ReIntroduction)

Only admin users may login as another user.

1000614 : Bug Fix: Reporter - Filter Reference Operator

Backend: In KReportQueryArray reference operator from type datetime fixed.
Frontend: ِFixed the reference dropdown values.

1000623 : HotFix Parameters description for route /configuration/spiceui/core/modelvalidations

CR1000634 : HotFix save validation rule für json string in action parameters

Save would not work when the parameter for an action is a json string

SpiceCRM 2021.01.001

“Spice is in the air” and we used the winter month to make further significant changes to the backend platform. After the removal of the legacy Frameworks this made room and space to prepare the full support for PHP8. PHP has grown to one of the major – if not THE – web programming languages on the planet over the last years. With Version 8 the php project also makes further significant steps in terms of stability, security but also performance. At SpiceCRM we strive to support the latest releases ensuring that in a fast changing world your systems are safe, secure and up to the latest standards.

The “all-new” Email Inbox

Email is all but dead. It still is one of the major forms of communications when it comes to sales, marketing and support. To make this even easier we made further changes to our inbox manager that makes the handling even more like you are used from regular web mail clients like GMail or Office 365.

Do we want to replace this clients – not necessarily, but it is all about UX, easy of use and giving users the choice.

Update on the REST Framework

A second big – but most likely for the regular user not noticable change – is the update of our REST/API Framework. Also there we did a major upgrade to SLIM4 as the base component. During the upcoming releases we will further harden and strengthen the API. Stay tuned for the upcoming releases that will deliver more and enhanced features here.

Bringing it together – the “All-in-One” package

When we started the development of SpiceCRM we on purpose separated the backend and the frontend. Both efforts meant separate technologies, separate technological standards and allowed us more flexibility in developing SpiceCRM and the new UI. With the bigger redesign of the SugarCRM based backend we are also bringing the two together in an all in one repository to make the installation process and deployment for our on premise customers and partners easier. You can find the all in one package in the original SpiceCRM repository on Github following this link https://github.com/spicecrm/spicecrm

Release Details 2021.01.001

1000500 : Cleanup entrypoint.php

Cleanup of entry point adding namespaces

1000517 : CTI Integration for five9

SpiceCRM inbound / outbound calls with five9

1000525 : Bug Fix: Set Primary Email Address in Edit Modal ist not working

Added a unique name in the field "email addresses" for the input radio button to prevent mixing up the radio button groups, if the field is rendered more than one time on the same view.

1000513 : Checklist funtionality for tasks

Create multiple checklists in a task.

1000522 : Add option for simple full name field

Added config option to full name field to display it "simple" without academic degrees before and after the name in edit view

1000524 : Field Google Places Search Street Name + Number

Added concat street name with number if the field number is hidden in the system.

1000520 : Bug fixed: Workflow Task Email was not sent

Bug fixed: Workflow Task Email was not sent.

1000515 : Authorization Refactoring & Ldap Improvements

Support for mandatory group membership with Ldap authentication
Link between authorization roles and Ldap groups

1000510 : Remove developerMode logic in VardefsManager

DeveloperMode shall no longer trigger a refresh of vardefs.

1000504 : Attachments: Feedback in case of deletion error

1000024 : UI re-login

when the session expires the user will be prompted to relogin using the same azuthentiyation method as the expired session had been. This will prevent users from loosing data that has not been saved in case the servr session expires. The same happens if the network conection is lost. the system will wait and try to reconnect and then continue where the session has been stopped.

1000502 : Oracle support

Oracle compatibility with SpiceCRM.

1000505 : Added new fts options for elastic

Added two new options for fts config to be set in the config table both on category fts:

- number_of_shards: defines the number of shards set when creating an index. Since our indexes typically are relaive small the default value is set to 2
- number_of_replicas: the default value for the number of replicas in a cluster: the default value is set to 1

1000514 : Slim 4 upgrade

REST library upgraded to Slim version 4

1000518 : Angular update to 11.1.0

Update to angular 11.1.0 & cdk 11.0.4

1000537 : Define cache folder for dompdf fonts

Fonts are currently cached unter vendor/dompdf/dompdf/lib/fonts during pdf process.
It is now possible to define your own cache folder under SpiceCRM existing cache Folder using config variable category = dompdf, name=fontDir. Default system value is dompdf/fonts/

1000511 : Improvements ProjectManagement tools

Additional fields for completion level in ProjectWBS module; Start and end date for plannedactivities; new module ProjectActivityTypes for billing purpose
refactoring of date fields in ProjectsWBSs: rename fields in projectswbss before running repair/rebuild after update or move you values from old fields to new fields after repair/rebuild

1000474 : Catch when login session dies

Return screen notification when session is dead so that user knows he/she should log in again

1000508 : MS Exchange integration: make participant policy related to module (Calls or Meetings)

Additional config variables: apply participant_policy on defined modules

1000512 : SLDS Update to 2.14.1

Updated lightning design to Version 2.14.1 (Spring 2021)

1000501 : Config Transfer: Ability to import despite unknown tables

1000507 : DB Column Cleanup

New feature to delete the old db-columns from the database for a module
- workbench -> Repair Database -> Database column cleaner
- opens a modal witlh all vardefs on the left side and all db-columns on the right side
- mark every field where one of both sides is missing
- a db-column with a missing vardef can be delete in the db

SpiceCRM 2020.01.002

Beginning of the year we did post our Roadmap and release plan. In accordance with this we just did release the spring Release (2020.01.001) of SpiceCRM delivering the majority of the planned features. However some of the features we felt had not been fully tested so we held them back and now releasing SpiceCRM 2020.01.002

Amongst a set of technical enhancements this release brings to major enhancements to SpiceCRM.

Tabbed Navigation

When we started the development of SpiceCRM we always had the single page concept in mind. This is state of the art in the current web application technology. However for business applications the disadvantage is at hand with the lack to manage multiple records at the same time. In some areas and a lot of usecases in CRM this might not be a problem but for the more versed user we very often heard the request to open multiple tabs, yet stay organized.

With this release we are introducing the capability fort the user to manage navigation paradigms and switch between three modes of navigation.
  • Simple: the classical one-page app view. Fast easy and focused on the current record
  • Tabbed: opening new record in a new tab. For those that handle multiple records are the same time
  • Tabbed with sub-tabs: enabling to open records in tabs and further related records in sub-tabs of the tab. Sounds complicated? Give it a try and you might even love it

This allows users to open multiple records at a time, organized in logical tabs and navigate easily from one to another record, also editing multiple records at a time.

Google Maps Integration

One still missing part with the port of our Reporter to the SpiceCRM UI was the Google Maps Integration in the Reporting tool as a data visualization plugin. Adding that we also added a set of new featuires to bring Maps and Geodata deeper into the application itself further completing the features with the google Integration we already had.

  • Integrated Google Search, autocomplete and geocode when creating records
  • Integrated Address Search and Completion
  • Geo based search of Records and easy visualization on a map
  • One click navigation info supporting easy routing helping you to plan visits
  • Proximity search enabling you to find other accounts next to the customer you are just viewing.

This certainly further support the usability from SpiceCRM and increases productivity and efficiency using SpiceCRM.

Technology Updates

Furthermore we updated some parts of the technology stack we are using to stay on top of the latest innovations and security considerations

  • updated to Angular 9.1.2
  • updated to Support Elastic Search 7.*
  • updated to support Highcharts 8
  • updated to Lightning Design 2.11.7

The Release in Details

1000028: Tabbed Features in line with Salesforce
Add functionality that opens on a click in new tab within the one-page app rather than always going back and forth. Similar to the implementation done by salesforce.

1000397: Angular 9.1.1 update

Update to angular 9.1.1

1000394: Added footer height

Added a footer height to the internal services allowing fixed footers to be displayed on the screen.

1000227: Update FTS Field handling

Change to FTS Manager Dialog

1000395: Responsive action menus

Changed buttons in small screen view for responsive design to render as button icon group.

1000405: Formatting of HTML code in Rich Text Editor

Added a new formatting option to the HTML source code in the rich text editor that allows proper formatting and indenting of the HTML code in the dual view making the HTML code more readable and easier to manage.

1000386: Elastic 7.* support

Support for Elastic 7.*

1000100: Service Enhancements

Added service functions

1000398: Lightning Design 2.11.7 update

Update to lightning design 2.11.7

1000385: FTS enable to aggregate on empty values

Enable to add aggregates on empty values. With the option also an aggregate for documents that have no value is built counting the number with empty values. The aggregate can also be set to filter the list.

1000388: Relate Field Filter

Added a new option to the related field and the ObjectActionSelectButton so relate filter can be applied. This allows to e.g. filter contacts in one relate field based on the value of e.g. accounts in another relate field. The relationship between the two fields can be set as optional or mandatory.

1000384: Collapsible FTS Aggregate Panels

Aggregates in the FTS can also be set as collapsed. If done so the aggregate will be rendered collapsed. The user can expand and set on demand. This optimized the screen layout if there are multiple aggregates and reduces the number of aggregates rendered on the screen.

1000339: Added new participants panel in calls & meetings

Added new panel for participants in calls and meetings including the participation status. Invited users can also set their attendance status.

1000383: System-label components

Added three components for , and to be used in templates and to optimize the change detection in Angular.

1000406: New view for Media Files

Added a new view for Media Files allowing a proper preview with thumbnails as part of the list view and also in the media file picker.

1000404: Output Templates Preview

Added a new component top the output templates enabling the user to easier change and manage the template and also to get a preview of the template for a bean the user can select and then render dynamically without saving the template.

1000304: Load full data on recent items

Added loading of full data for recent items so the custom field sets can be displayed in the recently view list.

1000377: Files Panel Header with Count
1000379: Refactor system-label component

Refactor the use of {{language.getLabel…}} in a template to use component… should reduce change detection cycles and improve performance.

1000330: Update Admin Screen

Update layout for admin screen.

1000314: Remove Renderer for Angular9 compatibility

Remove Renderer for Angular9 compatibility

1000403: Angular 9.1.2 update

Update to angular 9.1.2 also including angular cdk 9.2.1

1000378: Google Maps for List and Record View

New Generic Google Maps Component has been built.
Google maps view for list view to display the search results as pin markers on google maps with the possiblity to search the same was as in spice list view.
We have also added a record view tab to make it possible to search around the record with google map circle tool and get the direction infos from a cetrain address to the record location.

1000396: Full screen modals in small form factors

Changed modals to adopt full screen view in modals and small form factors according to responsive design

1000387: Highcharts 8 upgrade

Updates the embedded highcharts libraries to highcharts 8.0.4

SpiceCRM 2020.01.001

Beginning of the year we did post our Roadmap and release plan. In accordance with this we just did finalize and release the spring Release (2020.01.001) of SpiceCRM delivering the majority of the planned features.

List View

With the new Release we made major changes to the various forms of the List View. The standard list now allows free resizing, more flexible handling of Filters, Multiple Column sorting, Geo Search and much more. Also the Kanban Board did get a major rework allowing easy drag and drop, hidden Buckets (for e.g. closed Opportunities as in the Screenshot below). New Types of Vies (e.g. Maps based) did not yet make it into this release but will follow soon in a release targeted for end of April.

Reporting Engine

Another big effort has been completed in its first phase which is the port of our well known reporting engine from the backend UI on to the new Frontend. This now allows easy creation of reports in an intuitive UI for the end user with all the capabilities we built over the last years into our reporting Engine. It also marks a further milestone in the port of the complete legacy sugar based backend to our new UI.

We already did publish a short YouTube Video on the fast and easy way to generate reports and analyses all the data that resides in your CRM system. The video can be found on YouTube following this link.

There is of course a lot of further things that happened. We added new Features supporting agile project management following the SCRUM Methodology, took further steps to complete the quote to order to invoice process, further enhanced the service processes and much more.

Find the complete Release Notes below.

The Release in Details

1000328: Reports Designer
New user friendly platform to design Reports, it is easy and simple to use with drag and drop to select and filter on the desired reporting fields. It is also possible to add and manage data from multiple sources with the union modules feature. As soon as the reporting fields and filters are defined, you could also move to the presentation tab to choose and configure the presentation view for the report. The same for the visualization view. The Integration tab would be your last place to activate, deactivate and configure the possible Plug-ins like exporting report data and so on.

1000354: FTS sort aggregate bucket values by _key

Currently aggregate bucket values are sorted by _count desc. Now it is possible to define sorting by _key in FTS settings.

1000382: Sort Hook for get_linked_beans

sort_array parameter for retrieving linked beans is limited to fields present in corresponding database table.
Sometimes list shall be sorted by a non-db field. This is now possible with new method Link2::processSortHook() .
sort_array parameter now accepts additional key ‘sorthook’ containing an array with sortfield and optionally sortdirection.

1000375: Bug Fix: Duplicate Output Template

Reason:
Output Templates module has the field “module_name” in its vardefs definition, which defines the module where the Output Template can be used.
This field is an already existing variable in sugar bean which is used to tell which bean should be cloned, but when the field “module_name” is set in OutputTemplate, it overrides the variable in sugar bean, which leads to a cloning failure.

Solution:

In sugar bean, The variable “module_dir” is used instead of “module_name”.


this fix should not have any side effects, as long as all extended beans has the variable “module_dir” set.

1000366: SalesDocs refactoring

Removing unnecessary field definitions, adding n-2-n relations.

1000365: Move ProjectActivityDashlet Component to modellist.service standard

Upgrade of component ProjectActivityDashlet

1000359: New front-end module for SpiceAttachments

Added a new module for the SpiceAttachments in the front-end.

1000333: Improved release process

Create a release workflow for deployment.
Additional variables in back-end for ChangeRequests and Release modules are needed. Additional UI configs to be retrieved with “deployment” package.

1000358: New field to manage files from a bean

New field for uploaded files
– should look like “parent” field
– it should be possible to upload and remove files from a bean

1000343: FTS enrich bean data for indexing

Use custom method set in indexproperties to enrich values in index for a non-db field

1000268: Actionsetmanager

An interface is to be developed that enables the management of actionsets.
– It should be possible to create new actionsets
– Existing actionsets should be able to be copied
– The configuration of the items should be dynamically visible and editable
– The view should be based on the familiar Fieldset Manager

1000351: SCRUM/Agile components

Enables the users to organize their projects according to the agile project management paradigm by defining Themes, Epics and User Stories in the CRM system.

1000353: Fix Trashcan recovery

Associated relations were not recovered even if recover parameter was set.

1000350: Update on status network buttons

Added option for silent edit mode on model, this is also set from the status network button to avoid the “flickering” of the save buttons.

1000362: ServiceOrders: handle duration for Calendar

Handling duration is missing in ServiceOrder class.

1000355: Added auto resize to textfields

Added auto resize feature to text fields. The text box will auto adjust its size to the max size or default 300px when text is entered.

1000367: Package salesdocuments

Improve package definition for salesdocuemnts; introduced B2C; additional templates.

1000371: Fix Condition value for enums in OutputTemplate

Parse real value of enum when used in a condition and not the translated value.

1000352: Cloning of beans together with related beans

If a bean is cloned, the related beans can also be cloned automatically. This saves a lot of manual work. Or it makes cloning possible at all.

1000331: SpiceBeanGuide for release process

Create a guide for release process. Retrieve configuration changes using package loader (package “deployment”).

1000336: Releases: create parent relation

Make releases linkable to Accounts and Projects.

1000361: E-mail Reply Modal

Button which opens modal with e-mail reply logic.

1000360: OutputTemplates: integration of module filters

Enable the use of module filters in Output Templates and use additional parameters like limit or sort_array.

1000316: New Module QuestionnaireParticipations

The new module QuestionnaireParticipations allows better access to participations than QuestionSetParticipation does.

1000305: Redesign Activities Stream

Update Activity Stream items. Moving components from object components to activities and cleanup of deprecated components.

1000348: Angular Update
1000357: KREST add related bean with additional values

When participants are set in an activity directly in editview , relationship fields like accept_status is overwritten after saving the activity. If a value was set before editing, it is lost after save. Enriching values for relationship fields during link handling will prevent data loss.

1000338: Blacklist for packages to protect configuration

Disable loading of packages by setting package name in new array variable $sugar_config[‘packageloader’][‘blacklist’] n”}: uppercase;}.bean_report .logo {text-align: right;}.bean_report .logo img {height: 100px;}.bean_report .top_part td {vertical-align: bottom;}.bean_report .top_part {border-spacing: 0px;}.bean_report .report_title {font-size: x-large;}.bean_report .bean_name {font-weight: bold;}

SpiceCRM 2019.12.001

Amongst a set of smaller changes and additions we significantly enhanced the User Experience when dragging and dropping files and emails to SpiceCRM. Whenever a file is dragged over the UI the user will get visual feedback where the file can be dropped. Also the drop feature has been added to the activity stream.

Activity Stream

When dropping into the activity stream the system will also automatically recognize if an email has been dropped directly from Outlook. In this case the email will be converted to an email in terms of CRM and rendered as part of the stream with a full preview of the message. In all other cases the file will be added as regular note in the activity stream with the file attached.

The procedure allows easy archiving of emails without the need for any plugin or additional software on the exchange server or within Outlook.

Sales Planning Functions

Furthermore we also converted the Sales Planning functions from the old UI to SpiceCRM and the new UI. With the sales planning tool users are enabled to put a proper sales plan in place and plan hierarchically on a territory, product group, product level. This empowers sales management to plan on a yearly, quarterly or monthly basis. The plan can be rolled over regularly, it can be monitored and used for target setting.

For specific industries like CPG or others the tool can also be used to plan specific promotions. In manufacturing it can be utilized to link sales and logistics.

The Planning Tool can be freely customized to plan on different hierarchies, plan various key figures. It can be configured to read historical data like last years revenues or customers potentials and other info. I can evaluate formulas to calculate values and also can aggregate on all levels.

The integration and flexibility makes it the perfect sales and operational planning tool for larger organizations. Supporting them to enable the sales team to plan properly.

The Release in Details

1000323: DATE PICKER DUAL MODE

A new config option (dual) has been added to the system date picker. when it’s set to true, the date picker will display two months underneath each other.

1000287: OBJECT FILTERED LIST

New table component like “object related list” to list all filtered entries of one module.

1000299: GENERATION OF QUESTIONNAIRE EVALUATIONS (ALSO AS SCHEDULER JOB)
1000308: OPTIMISTIC LOCKING: CATCH MISSING AUDIT TABLE

Optimistic locking check is based on audit table of module. Make sure that audit table exists before doing the check.

1000302: UPDATE SALES STAGE DOM FOR OPPORTUNITY SPICEBEANGUIDE

sales stages in dom need to have the same values as SpiceBeanGuides stages
BeanGuide STages have to be loaded in primary modules load: correction in config reference done.

1000321: BUG FIX: ADD MODEL RETURN ACTION STRING INSTEAD OF MODEL.DATA

After Changes from 27/10/2019 the ObjectEditModal has changed the emitted value from model.data to action string.
This was passed as return value for the addModel, where the expected value was model.data.
The fix:
in mode.service:
Line: 948 moved to line 951 and the retSubject.next value change “this.data” instead of “response”
And this will be only passed if the action is either “save” or “savegodetail”

1000327: OBJECT TEXTS COMPONENTS RENAMED

Object Texts Components moved into a separated module Spice Texts and renamed by the module prefix. This requires a reload of the system configurations from the Reference Database.

1000307: E-MAILS BODY CONTENT IN RETRIEVE

E-Mails imported by Classic Sugar API won’t set any text in body property. Add fill in body content in Email::retrieve().

1000318: FIXED DATE FILTER WHEN SET AND EDITABLE

Fixed the date filter field in the Reporter for the dynamic filter fields to render properly when set in the filters and then set to editable.

1000201: MEDIAFILES: UPLOAD (WITH EDITOR)

Improvements in the upload of media files including an editor.

1000312: DUPLICATE PANEL “GO TO” BUTTON

In “Object Related Duplicate Tile” a “Go to button” has been added which only appears in the edit modal

1000306: ADDED OPTION ON PARENT FIELD TO HIDE MODULE ICON

Added config option on parent field to hide module icon since in some cases this is not fitting the view.

1000256: CREATE NEW BEAN FROM RELATED ITEM BUTTON

Being able to define an action “create call” (or create meeting, or create task…) in actionset applied in each subpanel entry.
Modal Window with Activity detailView pops up after click.
Defined CopyRules preset field values in Activity form

1000291: SPICE DROP FILE AREA DIRECTIVE

This Directive will highlight the component which is used on and emits the dropped files on drop.

1000272: ENUMERATE COLUMNS IN UNIFYING SQL QUERIES (INSTEAD OF USING ASTERISK)

The SQL SELECT queries unifying tables (using “UNION”) often contain ‘*’ (asterisk) to query all columns. However, sometimes the columns in tables are sorted differently and thus the result of the unification may differ from the expected result. This was discovered namely when using the tables “sysmodules” and “syscustommodules”. Therefore in this case, the names of all the columns in the query should be enumerated (dynamically) instead of using the ‘*’ operator.

1000311: ADDED OPTION TO CHOOSE FIELDS ON LIST EXPORT

Added a modal popup allowing the user to select the fioelds toi be exported in the LIST Export. This can also be configured setting the properties for Component ObjectListHeaderActionsExportCSVSelectFields. Options are to define a separate fieldset that holds fields that can also be exported or to allow also exporting of all fields. This cna be of course be set role and module specific or application wide.

1000292: ADD ACTIVITY EMAILS FROM DROPPED FILES

Handle dropped files in activity container and add an email if the file type is MSG

1000288: SPICENOTES: DISPLAY DELETE ICON ON GLOBAL NOTES FOR ADMIN OR NOTE BY CREATOR

Displays delete icon on global notes for admin or note by creator.

1000325: DROPDOWN TRIGGER DIRECTIVE OVERFLOW

Moves the dropdown element to the footer and re position it. This fixes the issue when the dropdown is within a container which has a hidden overflow, the dropdown will be truncated.

1000319: REPORTER TREE VIEW FIX

Fixed issues with the tree view for the reporter to proper render trees with enums and all kind of other values

1000300: QUESTIONNAIRE EVALUATION FIELD

Questionnaire Evaluation Field

1000301: SYSTEM PROMPT LINE BREAK PARSE

System Prompt will interpret the “n” or “r” of the content text as a line break.

1000320: SYSTEM TREE IMPROVED

We have improved the Drag and Drop functionality. The System Tree Component is now integrated with the modern angular cdk drag and drop with extra handling for the assignment of the tree items parent.
We have done some other improvements for the template.

Now it’s possible to decide either to assign the item as a sub item of another one or just to change the sequence of the tree item.

The component will also take care for changing the parent of the tree item if it’s been dropped into another parent scope.

1000298: CALENDAR COLOR CONDITIONS

It allows defining event colors for specific modules and also it’s possible to define a filter for the module to set the event color depending on the matched condition.

1000324: OBJECT LIST VIEW CONTAINER – PASSING CHILDREN CONFIGS FROM COMPONENTSET CONFIG

Bug fixed: Passing the children configs when they are set in the defined componentset was not possible.

1000278: SPICEBEANGUIDES: IMPLEMENT NAMESPACE FOR CLASS CONTAINING STAGE CHECKS

Move configuration way from including files to loading namespace

1000313: FIELD ENUM SORT

Sort direction added in the “Field Enum” config to enable sorting.

1000326: OBJECT IMPORT COMPONENTS RENAMED

Object Import Components moved into a separated module Spice Imports and renamed by the module prefix. This requires a reload of the system configurations from the Reference Database.

1000317: ADDED TEXT FIELD TO REPORTER

Added a text rendered to the reporter so multiple text fields are properly displayed

1000303: UPDATE ON SPICENOTES

changed SpiceNotes to make them also editable, moved them to a separate module in the code and also added a panel header component that allows to give an indicator if notes are available for the object.

SpiceCRM 2019.09.001

Reporting Module

Highlights of the Fall Release are updates on the Reporting Module. We ported the views for the Pivot Table, the grouped and grouped with summary view and also the TreeView to the SpiceUI. This is an ongoing effort where we are bringing the best in class reporting functionality to the lightning experience with SpiceCRM. As we believe that integrated analytics is a key necessity this is an important step on our roadmap.

We continued to develop additional functionality for Marketing adding a basic event management. This allows planning and tracking of events. Add partners that play specific roles in the event. Track invitations and registration. Add a self service registration to your website.

Close&New Button

Also the good old “close&new” button in activities made it back to the new UI. For some time we did think there would be a life without it. We accept we have been wrong. So back it is. Allowing an easy way to close one activity and add a new one. But it would not be SpiceCRM if we did not make it better. So we added flexibility to customize it and to also let the user choose which activity to add next. Allowing an easy closing of for example a call and scheduling a meeting.

Besides that, there are further features worth mentioning like an easy way to change the users time zone, enhancements in the Calendar and also with the FTS engine. We also added a bulk indexer that will allow fast indexing with the elastic search. And many more…

The Release in Details

Ability for admins to view/change foreign user preferences

Ability for admins to view/change foreign user preferences

Actionset menus refactored

Object list header action menu and object action menu should extend the object action container

Adapting Date Time Fields

Date time fields constantly adapt to the current time zone setting of the user.

Add Componentset to spicebeanguidestages

Added a componentset as configuration option to the spicebeanguides. This allows to render a componentset instead of the description in the beanguide with the path. e.g. fields relevant for the sales stage can be rendered there or other components that might deliver valuable information

Add sort parameters to the dashlet generic component

Add sort parameters to the dashlet generic component

Added adminonly flag to tabcontainer item components

Added a config option “adminonly” to the tab container items (regular and vertical). If you set the tab it will only be rendered if the user is an admin user. Mainly used for the user tabs to only show some tabs to the admin but not to the regular user.

Added new Reporter Views

Added Reporter Views for Summary, Grouped, Tree and Pivot View

All Character Analyzers in FTS

Added two new analyzers spice_standard_all and spice_ngram_all that can be set and will include all characters (including, whitespace, punctuation and symbols) in the tokens and the search. This makes sense for e.g. name fields where a company name or a release name or version name includes those characters and they should not be stripped when tokenizing and searching using elastic search.

Ask for important user preferences at startup

Ask for important user preferences at startup

Auto correct the sort query for the many to many relation table

When we pass a none-db sort field for a module which is a mapped field in the many to many table, the sort query will be auto adjusted.

Avoid duplicate user names

Avoid duplicate user names

Backend only for admins

Backend only for admins

Better determination of user roles (for app launcher dialog)

Better determination of user roles (for app launcher dialog)

Better role assignment

With an icon custom roles now are recognizable as custom roles. The same name for a global and for a custom role is no longer a problem. Furthermore: Alphabetically ordered list.

Bug fix : retrieve with sort failed in one to many bean relationship

Bug fix : retrieve with sort failed in one to many bean relationship

Button “Save HTML content” in “Rich Text Editor ” Toolbar

Save button in the Toolbar of “Rich Text Editor” Component, which pass the content to “Field Rich Text” component to handle the save process.

Close activity button
  • Button for activities (only unclosed and editable)
  • Opens modal with componentset (enter closing data)
  • Create new bean with copyrules (new add-modal for selected module)
CloseModal and ActionMenu merge

Implementing the closemodal with the new actionsetmenu

Colorenum color in read-mode

No color in read-mode by the fieldcolorenum field

CloseModal and ActionMenu merge

CloseModal and ActionMenu merge

default-sort ObjectList

ObjectList with default sort info (moduleconf)

Dashboardsets

Define a set of Dashboards to be displayed in sub tabs in home.

Event Management

This Module will be responsible for the Event Management. An event will be defined with some basic info like it’s url or it’s capacities and so on. It will also have a relation to some other modules like accounts and contacts as participants or organizers and so on. It will also be possible to have some assigned activities.

Field Grouped Enum

A Field which displays checkboxes grouped under specific categories

Field Multiple Enum Dropdown

The field multienumdropdown renders an enum field as a dropdown multiple select list using the SystemMultipleSelect component.

French language package

French language package

FTS Manager: add button index bulk

Trigger bulk indexing manually

Improved Scheduler Job Log

Improved Scheduler Job Log

Incorrect checkbox value interpretation

The checkbox values in the Administration Configurator components were being interpreted incorrectly. The values stored in the DB as both 0 and 1 were interpreted as true (checkbox checked). The only value interpreted as false was NULL. The correct interpretation was already implemented before. However, the value was converted only for “boolean” types whereas the field type used was “bool”. This was corrected in the bug fix

KnowledgeBase – Button Release All

“Button Release All” set the status to “Release” to the selected document and all its sub documents

KReporter: update where operators

Enable where operator for int when vardef type is bigint

Lightning Design update to 2.10.0

Lightning Design update to 2.10.0

Load date time user preferences on user login

Load default values when preference is not set

Output Templates II

The document (result of a output template) is now savable in the CRM system.

Reload button for the sub panel header

Sub panel: When no item is shown/available the footer – including the reload button – is hidden. Now also the header has an include button.

SalesDocs additional fields: incoterms, payer, invoice recipient

SalesDocs additional fields: incoterms, payer, invoice recipient

Scheduler field: Last SUCCESSFUL run

Scheduler field: Last SUCCESSFUL run

Scheduler: Test function (dummy)

Scheduler: Test function (dummy)

Select Custom Actionset in config option

It should be possible to select custom actionsets in the workbenchconfigoptionactionset!

System Multiple Enum Dropdown

A Field which renders a list of items grouped under specific categories in a dropdown with multiple selection functionality.

System Statistics

Added a component in the admin section to gather storage statistics on the database, elastic and the file system for uploads for the system.

Time Zone Field for the Global User Panel

Time Zone Field for the Global User Panel

Update Global Module Menus

Changed the handling of the module Menus of the global navigation items so menu now considered an action set and allows adding custom actions

Url rewrite for IIS: web.config files for config and proxy

Url rewrite for IIS: web.config files for config and proxy

UTC Offset added to UI Date Field Values

UTC Offset has been added to the UI Date Field Values to display the right date for the current UI Time Zone

Week Number for the System Date Picker

Added a Week Number in the System Date Picker

Where Clause on relationship_role_column not implemented

Fixed M2MRelationship::getRoleFilterForJoin() and make use of it

SpiceCRM 2019.07.001

Opportunity Management

Highlights of the July Release are updates on the Opportunity Management. With the new Option for Revenue Lines the revenue of an opportunity can easily be split into chunks for the revenue recognition. This supports better planning and forecasting. Typically deals that are closed are not invoiced immediately but are also built on a billing plan. That can either be a split or with recurring revenues a ramp up to the total amount. Revenue lines allow you to easily maintain that and add the lines to an opportunity building a more realistic picture of the opportunity in the system.

We also started to rework the template compiler used for the PDF and EMAIL Templates. First changes are rolling in and more changes on the templates are to come with the next releases. We will add more info when those changes are completed.
Furthermore, we added an optional support to the integration of Dun&Bradstreet in the Accounts module, added further functions to the Service Functionality with the Service Locations and added features with an NPS question type for the service feedbacks.
Technologically, we completed the changes to support PHP 7.3 and also upgraded internally to Angular 8.0.1.

The Release in Details

Actionsetitem singlebutton

Add flag to show the button outside the drop down box

Angular 8.0.1 update

Update to Angular 8.0.1, also update to Angular CDK 8.0.

Bonus Programs

Bonus Modules (BonusCards, BonusPrograms) Management

Changes to lead conversion

Improvements of lead conversion done by eVolpe

DUNS module

New module to interact with dnb API and retrieve DUNS data

FTS Bulk Indexer

Added a bulk indexer and a separate job to the bulk indexer. The bulk indexer is thought as a tool to load initially into the FTS. It does not check changed related records in FTS. And it uses the bulk interface of Elasticsearch. It still uses the full data mapping for FTS and thus, indexes beans properly. However, due to the bulk nature it does this significantly faster.

Missing language code in translation when no default language is set

Labels manager sets value of default language for first translation. Catch when empty and set first language found in languages list.

New Module ServiceLocations

Define locations and assign location to a piece of equipment.

ObjectRepositories deprecated flag

Add a deprecated flag to the “ObjectRepositories” Score out the deprecated objects Popup when somebody tries to add a deprecated object

Opportunity Revenue Lines

Adding an option to add revenue lines to Opportunities with different amounts and dates for the revenue recognition

OutputTemplate Compiler: render date time fields to user preference setting

OutputTemplate Compiler: render date time fields to user preference setting

PHP 7.3 support

PHP 7.3 support

Polish Language Files for Backend

Polish Language Files for Backend

Questionnaires: New question type “NPS”

New question type “Net Promoter Score” (NPS).

Reload configuration button

The button is located in the header and reloads the configuration, only displayed for admins.

ServiceFeedbacks: Results Tab for Questionnaire Participations

ServiceFeedbacks: Results Tab for Questionnaire Participations

SpiceBeanGuides to packages

Spice Bean Guides Definitions are now available in corresponding package (opportunity management, lead management…)

Update template compiler

New template tags were added to handle loop through list of records and to display the values conditionally. Also function call integration to retrieve data.

Login impossible with a user name containing utf8

Login impossible with a user name containing utf8

SpiceCRM 2019.05.001

Duplicate check

Highlights of the May Release are updates on the duplicate check that now happens online when creating records. This enables user to easily see while entering data and as they enter data to instantly get a response from the system if a duplicate record is found.

Further changes are smaller changes to enhance the User Experience and also some technological enhancements to further improve performance, stability and maintainability of the UI.

The Release in Details

Backend installation with provided database user not possible

Form gets stuck telling that password does not match re-entered password.

Date_entered id was deleted from fts indexer

When you create a bean over a relationship -date_entered id was deleted from fts indexer.

Memorize search terms and Results in ListView

Keep the searchterm. Selected aggregates and results in the listview when navigating away from a list and back

Progress Bar

A new system component displaying a universal progress bar

Get progress report from POST requests (uploads)

POST requests now can report their progress status, for displaying progress Bars

KReporter: vulnerability fixes

Add a check on values for start, limit and filter parameters and clean mislead values.

FTS ListView does not render for contacts

Fix: set sort flag for last_name since full_name sorts on last_name and is the first field in listview

Block navigating away if a model is editing

Added a check if any model on a page is currently in edit mode and if so prompt the user to check if the changes should be discarded

Placeholder for login form

The username and password fields of the login Form are better titled now.

HelpText icon component

A new component, which shows an icon next to the label. On hover a text is shown.

Cachebreaker

Added a version parameter for loaded jsfiles and included it in the build process. This should eliminate the need to refresh the browser cache after version updates.

Product Group Manager

The Product Group Manager is a new platform to manage the product groups in a hierarchical list. Which makes it easier to manage groups and their related attributes and products.

Outlook AddIn

An Add-In loaded directly in Outlook that can save the Emails in SpiceCRM and add related Beans to those Emails

On the fly Duplicate Check

Capture and show duplicates when adding a new record.

Update Field labels in Views

Label rendering is now included in field rendering

SpiceCRM 2019.04.001

Tagging

Highlights of the April Release are updates on tagging. We made it significant easier to simply tag records. In the same style as in regular Web Applications just add Tags. As you type SpiceCRM will suggest existing tags. Choose them and reuse existing tags or simply create new ones.

Tags are also included in the Full Text search and can easily be selected as aggregates. With the next releases we will also add them to the target lists so you can build flexible lists simply be assigning tags to targetlists and all records tagged with that term will automatically be used when the targetlist is used.

Also exporting as been made much easier, so you can just select the records based on the tags and then simply export them to a CSV or a target list directly from the list view.
Asides that there have been quite some changes on the backend. A lot in preparation for the upcoming updated on ACL as well as the work in progress on our vardef/metadata manager.

The Release in Details

Backend: Merge Record configure records limit

Configure maximal count of selected records to be merged at the same time. Set config variable in config.php or config_override.php: Example: $sugar_config[‘default_max_mergeable_records’] = 2;

Backend: Schedulers – make use of Vardefmanager for Schedulers module

Code clean up: use vardefmanager to create Scheduler vardefs so that date_indexed field (for FTS capability) is created during SpiceCRM installation.

Backend: SpiceTheme: – support custom images for module icons

Added capability to retrieve images from custom path for module icons in side bar display

Backend: Subpanels – enable search within Subpanel and set max count of records to be displayed
  • New class include/SubPanel/SubPanelSearch.php under namespace SpiceCRMincludesSubPanel; Parameter ‚”tr_config” in former developments refactored to “search_config” $sugar_config variable containing dropdown values for max count of records: $sugar_config[twentyreasons][tr_subpanellimits] renamed to $sugar_config[subpanelsearch][limit_dd_values]
  • Example: $sugar_config[‘subpanelsearch’][‘limit_dd_values’] = array(‘5’ => ‘5’, ’10’ => ’10’, ’50’ => ’50’);
Backend: Subpanels – property value dependency for subpanel display

Make subpanel display dependent of a property set in focus bean. Set name of property in attribute “trdisplay_for” (array) in Layoutdefs setup of Subpanel. Subpanel wil be displayed if focus->$propery is true.

Backend: Fix Load Hooks from Database

Do not load Hooks from database when no global database instance is available. Also fixed hook_array structure for hooks retrieved from database.

Bug fix : Field Email validation

Field Email Validation on save action was always returning an error message “input required” even though the field was filled.

Catch and handle bean action state for UI

Store which action is being applied to bean: create, update

Field Relate List

For a predefined module Relation this field can retrieve a list of a related module and it’s possible to set a limit for the listed items.

Field Text ID

This field translates a ” text id” into a human readable value.

FTS: fix DB Query error during install process

Fix DB Query error during install process

File Download in Firefox

In some cases the download of generated files (CSV, PDF) or attachments did not work properly. This has been fixed and now it should also work as expected in Firefox. Tested successfully with Firefox 65.0.2 and 66.0.2.

Fix KReporter search and sort in bucket manager

Fix KReporter search and sort in bucket manager

KReporter capability with SpiceACL

New Access Management module SpiceACL shall be considered in KReporter-Queries.

Language Translation Manager

This component provides a platform to easily handle the untranslated labels for the default language.

Login name for UserAccessLogs

Added the field “login_name” to UserAccessLogs to store the login names of failed login attempts

Memorize search terms and Results in ListView

Keep the searchterm. selected aggregates and results in the listview when navigating away from a list and back.

Missing confirmation queries

Added confirmation queries for the deletion of attachments or the deletion of items in related lists.

Object Texts

This component handles the related texts of a module.

PDF Preview in print Output

PDF preview has been added to the output templates. So in the window where the user can choose an output template the user can also choose to display the rendered output as PDF or as HTML. PDF is preset. This renders the PDF in the PDF Reader embedded and shows right away the generated result. The PDF can then also be downloaded but is seen as it will be rendered on the screen.

Related Panel animations

Added animations to the related panels so when they collapse and expand are smoothly faded in and out with height and opacity

Sequenced ObjectRelatedListList (Drag & Drop)

Added the ability to order the items of a related list by drag & drop. Until now this was possible in subpanels, now it is also possible for the full list (“list all”).

Show link name as title of related lists

Added the ability to entitle subpanels or full related lists with specific title of the relation (instead of the title of the module).

Spicecrm_fe_factory: improve gulp jobs for deployment
  • Add delete dist folder in js:build job
  • Add check on file.ts exists when uglifying the .js counterpart. Throw error when not found
  • Set current year over a variable in comments instead of hard coded
SystemInputNumber

This component use “two way binding” to handel a number value and reformats it to fit the system formatting and it also accepts the following parameters (precision, min, max).

Added animation to collapsible panel

Added animation to the collapsible card in the systems so it animates smoothly when collapsed or expanded

Added configuration option to global search result

Added an option to set fieldsets for the global search results (GlobalHeaderSearchResultsItem) so the fields displayed in the search box can be flexible defined.

Added elastic normalizers
  • Added the support to define own normalizers.
  • The standard ones are defined include/SpiceFTSManager/normalizers/spice_normalizers.php and can be overwritten in the custom directory, adding your own ones.
  • Default is a lowercase normalizer that is applied to raw fields for sorting- so sorting is not case sensitive
Added language filter support to FTS Indexer
  • In the fts connection settings a new option has been added- to add a language specific filter by default to the spicecrm standard analyzers and normalizers.
  • To better understand the language analyzers and their impact, check out https://www.elastic.co/guide/en/elasticsearch/reference/6.7/analysis-lang- analyzer.html.
  • A setting can e.,g. be german_normalization that then analyzes and normalizes specific to German language. If none is set, no specific language filter is applied
Added query types for duplicate check
  • Added the option for different query Types in the duplicate check
  • Match (or): matches any of the terms in the field. Also supports fuzziness
  • Match (and): matches all terms in the field. Also supports fuzziness
  • Term: requires an exact match, no fuzziness supported
Added sort field in FTS

In the metadata the sor_on property can be defined for a field. Added the support that this is also enabled and considered in the FTS search. This allows e.g. that in a list of contacts the full_name field can be displayed but the the list is sorted by the last_name of the contact.

update Loader Logic

Changes to the loader logic and cleanup of REST services

update Tags

Update on Tagging and Tag handling

CRM Log Viewer: Negative filtering

Added the ability to filter out log entries with specific text fragments.

Select field for modal input prompt

Select field for modal input prompt.

SpiceCRM 2019.02.001

Highlights of the January Release are updates on the search features, a new filter builder adding flexibility and reworks in many areas to start supporting full responsive design and the build of our mobile App.

Google Places Search

Who does not know the process when adding data of switching to google, looking up a companies details and then via copy & paste add the data to CRM. Rest assured that time is over now. With the latest changes we are tightly integrating the Google places search into SpiceCRM directly. Identify a field as a Google Places search field. As You type SpiceCRM will do a google search, present you the results and when selecting the record populate data found on google like the phone number, website or address to the record. This makes entering new data just much easier.

You can also watch a short YouTube video on this feature here.

File Attachments

Further updates are on the generic file attachments. As you are most likely aware SpiceCRM offers the functionality to simply attach files to a record. We further enhanced that switching internally to a truly HTML5 way of handling uploads. This also allows no the parallel upload of multiple files. Just select multiple files in the upload dialog or simply drag more than one file to the files panel. They will upload in parallel. Furthermore, we added a file preview. This will preview Images, PDFs, audio and video files. Other files will be downloaded and can then be viewed with the proper application on the local Computer or Tablet.

Mobile App

We are steaming along with our changes and the completion of the work to release the SpiceCRM mobile App. This is well on its way and the current release has further changes embedded already. See the following short video we compiled on the upcoming mobile release.

The Release in Details

ModelpopoverHeader configuration

added the option to add a componentset as config option to the modelpopover header. That allows to customize the popover with a custom header component. This is e.g. used for the users popover to have a separate component that also renders the image of the user

added option to lazy load Stylesheets

added the option to also load css files as libs that can be lazy loaded. Just add style sheets with file ‘.css’ to the sysuilibs (or syscustomuilibs) table and load them via the metadata service.

SpiceMobile

added Mobile configuration for SpiceCRM Mobile app.

Multiple Sources for package loader
  • Supporting multiple package repositories for the package loader a new table has been added in the backend. Table sysuipackagerepositories can hold more than one repository.
  • If none is maintained the package loader will by default pull packages from the default repository. If you maintain separate (e.g. customer) repositories with separate configuration those repositories can be added here. The package loader will consider them and then load packages from this source.
Application wide logger

It should be possible to have a different message for logging (sugarcrm.log) than the error message (brought to the user). New method: setMessageToLog()

Changed EmailAddress field to support responsive design

changed the email addresses field so it will render nicely on mobile phones

CronJob for sysftslogs table: delete entries older than configured time frame

new sugar_config variable delete_logs_older_than = “1 week” time frame value is INTERVAL syntax. Default is 1 week when config is not set”

KREST Log Viewer

added a new admin component that view the KREST log entrioes. This is usefuly for debugginbg and tracing if the REST logger is enabled on the backend and allows an easy viewing and seaarching of these entries

Overflow in activity add Container

in the activity add container the menuitems have been changed so on smaller screens with more activitiy types enabled an overflow item is rendered

added user notification on elastic error

now and then a user might encounter an elastic overload error. In case the backend elastic engine throws an error, that error is also communicated to the user indicating that this is not a problem with no search results found but a technical issue occurred prompting the user to repeat the search

Set config_override value on language load
  • Set $sugar_config[‘syslanguages’][‘spiceuisource’] to ‘db’ in config_override.php after successful retrieve of languages
  • thus far after installing the language source for the UI had to be set manually. This is now done whenever a language pack is downloaded
store login credentials

Changes to the login form so now the username and password shoudl be properly recognized by the browsers and allow the user to save the credentials when logging on

Rate limiter for REST calls
  • in scenarios where external systems use the REST API extensively the REST load from the external system might have a negative impact on the overall performance if there are too many REST calls at the same time
  • a new option has been added to configure a rate limit that defines a given number of REST calls per time unit (of a given method) as limit. If that limit is occurred not further REST calls are accepted from that user and source until the rate is cleared again.
Optimize vardef translation into column type on repair/rebuild

“To ensure multiple database types support vardefs will sometimes be defined with a basic dbType and a specific length to match another column Type. Example dbType=’text’ and a len=4294967295. This definition creates a longtext column in mysql. Column will be created properly in database but repair/rebuild will not recognize that vardef match with column type This function matches definition with table column type for specific column types”

User Image upload
  • add capability for users to upload a user image.
  • Also add a generic component to load an image and crop it.
angular 7.2.6 update

updated Angular to 7.2.6

Manage Schedulers in UI

New Workbench option to manage Schedulers with the following Features

  • List View
  • Custom Detail View with Scheduler Logs.
  • Default Actions with Run now button.
updated file upload and Preview
  • updated of the file attachments so multiple files can be uploaded at once.
  • Stopped the event in case a file is dropped outside a drop area.
  • File Preview has been added.
  • Upload has been changed to pure HTML5 FileReader.
Metadata Service New Methods

Methods added to metadata service:

  • updateModuleListType
  • getModuleFilters
  • getModuleFilter
  • setModuleFilter
  • removeModuleFilter
Google Places Search Field

Methods added to metadata service:

  • added a new field for google places search that can complete name, address, phone number etc. from the Google places API.
  • To be used as name field in e.g. accounts or other objects where google places are relevant.
ACLController compatibility with SpiceACLController

Refactor static methods to non -static in ACLController class; Create ACLControllerInterface

set autofocus in app launcher

when the app launcher is opened these search field is automatically focused.

SpiceCRM 2019.01.001

Highlights of the January Release are updates on the search features, a new filter builder adding flexibility and reworks in many areas to start supporting full responsive design and the build of our mobile App.

Search Update

The search field at the top of SpiceCRM has been amended to enable the user to filer by module in the quick search already. Also the search results and global search dialog has been updated. When typing a search term SpiceCRM now searches automatically. The same is true for the search within a module. Also the search Results screen has been adopted to be responsive and support the capability to use it easier on tablets or phones.

Filter Builder

A new Filter Builder has been added that allows easy definition of Filters that can be used top create custom dashlets for the dashboard, customize Subpanels in Views and much more. It is a further step forward in our mission to make SpiceCRM the most flexible CRM platform we know and deliver a user focused UX that will drive unique customer experiences with a Team that can rely on a CRM platform to serve customers as best as they can.

Mobile App

Those who follow the story how SpiceCRM was built know that we came from the mobile app. With the current release we are taking further steps to support mobile form factors and make SpiceCRM a “responsive designed” system that can be also used easily on mobile devices. That effort is still ongoing and will continue throughout the first half year 2019.

Technologically we also pushed to Angular 7.1 – which you should not notice but it is important to be compliant and in line with the latest standards when it comes to operability and it security. We also updated the Lightning Design to Release 2.8.0

The Release in Details

Add Fieldset to Object Page Header

added a fieldset to the component object page header so the display field in the page header of an object can be freely configured.

support for smaller screens on top header
  • In the top header row in smaller screens the logo is removed. Components like admin and others are also removed to fit in the smaller screen size on mobile devices.
  • On small screens (below a with of 768px the search field is also simplified and the module selector is removed.
responsive changes to search results
  • also search results are changed in a first step to enable use on mobile devices and responsive design.
  • If the screen with is medium or below the module selector is removed and the results take up the complete width.
Angular 7.1.3 update

update to Angular 7.1.3

Backend: consider loaded company logo in login screen

SpiceTheme ignores loaded logo in backend. Integrate check loaded image in login screen

Logging with Transaction ID
  • added the unique transaction id to the log algorithms
  • enable to track logs by transaction and roundtrip
CRM Log Viewer

built in viewer tools in the admin section to display logs

Load reference in backend core only
  • changed logic so only core configuration can be loaded in the backend
  • all further packages then to be loaded via the frontend package loader
Backend installation site_url config wrong if protcol is https

fix in the installation with https protocol so the backendurl is written properly

send error message when FTS has an overload
  • react to error 429 on elastic
  • send a toast to the user with the message that elastic has an overload
collapsible Subpanels

added functionality to collapse subpanels

Support for content packages in package loader
  • added Support to also allow loading of content packages in the package loader. This enables to create packages with varying content that is not necessarily related to configuration of the system but simply adds data that is useful and speeds up the configuration process of the system. Typical examples are email templates, prebuilt dashboards, reports and other data.
  • content package for email templates has been created
  • content package for fts default settings has been created
FilterBuilder
  • added the filter builder to the admin section
  • added filters to dashlets
  • added filters to subpanels
  • added filters to relate fields
  • added filters to popup relate containers
added Dashlet Manager

a new section in the admin area to manage and define dashlets that then can be easily used to build custom dashboards

config.php https option for ElasticSearch
  • added optional protocol for the elastic settings
  • useful if elastic is running on https protocol
Dashboard changes for responsive Design
  • separation of Assistant pane to only show on wide screens
  • for smaller screens render assistant as part of the Home Module Menu
  • render dashboards in a vertical grid on small screens
  • added menu to dashboard module rather than selection pane on smaller screens
Improvements of Global Search
  • improved the global Search Field to allow search filtered by module.
  • separated the global search in the header and the global search in the route.
  • enhanced the global search results to a better design and cleaned up.

SpiceCRM 2018.11.001

Integrated Calendar

Highlight s of the November Release is a major update of the integrated Calendar. This adds a timeline view, adds the feature to show other resources calendars. It pushes the integration of the Google Calendar. So, if you allow the login with Google you can also display your planned events in the google calendar that are not in CRM as part of the calendar view making planning your professional day easier.

We also updated to the Winter Release of Lightning Design, redesigned the activity stream. It comes in a newer and cleaner design in line with the lightning design guidelines. We also added more filter options and even more flexibility for the admin to configure and enhance the stream.

Package Manager

Also in its first version we are releasing the package manager. This will become a central part of SpiceCRM managing the extendibility and flexibility to load packages (configuration, templates languages) and also easily uninstall them again. More on that will come with the next releases as we are continuously working to enhance the easy of system management and configuration.

Technologically we also pushed to Angular 7 – which you should not notice but it is important to be compliant and in line with the latest standards when it comes to operability and it security.

The Release in Details

Adapt code for KREST as standalone package

Separation and cleanup of the latest KREST package to allow Standalone Installation for those useres using Tools like KReporter standalone on SuiteCRM or SugarCRM

Backend Cleanup KDeployment* modules javascript/ gruntjob/ KREST calls
  • remove any trace of deprecated modules KDeploymentCRs,KDeploymentSystems, KReleasePackages
  • check the destiny of KDeploymentMWs in backend.
Backend ProjectWBSs label for parent_name

modify LBL_PARENT_NAME to LBL_PARENT, subpanel LBL_PROJECTACTIVITIES_SUBPANEL_TITLE to LBL_PROJECTACTIVITIES fix angular digest error on save in WBS Manager

Backend repair/rebuild for audit tables
  • Creation is considered but not update when additional fields are defined.
  • Update shall be considered by repair/rebuild.
  • Make index names unique database wide
Better portal user creation/modification

Revision of the logic/code/ui for more user comfort and better error handling.

Calendar rework
  • Added additional views for timeline.
  • Added support for multi day events in all views.
  • Restyle on popovers.
  • Integration into Google Calendars< displaying also non SpiceCRM Events
  • added capability to display other users calendars
GSuite Integration
  • finetuning and updates on login with Google
  • Integrate Meetings and Calls with added logic hook definition
Google Cloud natrular Language API
  • added support for link with Natural language API
  • added email processor to process received emails and get sentiment on email
  • added integration of sentiment into email inbox display to highlight positive and negative emails for service processes
KReporter Fix custom function in select

Fix for KReporter 4.4

KReporter fix SuiteCRM Subpanel compatibility
  • ParentID is ignored in query: proper values could not be passed since variable currentRecord in JS is only in SpiceTheme.
  • Added correction to consider SugarCRM CE / SuiteCRM.
Lost password via EmailTemplate+Compiler
  • updated lost password email logic so it complies with the SpcieCRM email Template Compiler
  • added logic to the email template compiler so additional parameters can be passed in
MediaFiles: Automatic creation of required folders
  • changed logic so default folders for storage for media files are automatically created
  • minor coding changes and cleanup
  • Possibility to turn off trash bin
Name Formatting
  • added name formatting to the user preferences
  • rework on full name field to properly interpret user preferences
Assignment Notifications
  • enable creation of module specific assignment templates so for each module an individual styled and defined template can be used to notify a user that a record has been assigned. Including information on the record assigned.
  • respect users language and send in the language of the user
Optimistic Locking
  • changed the audit log so by default all fields are audited
  • changed the ui logic so only changed fields are sent to the backend
  • added a backend check for the changed fields since the last load on the frontend
  • added an optimistic locking resolution dialog in the frontend to let the user handle such a situation
Redesign Lookup & Relate Fields
  • redesigned the lookup and relate fields
  • changed the component structure
retrieve real values after POST
  • added a config parameter so real values on the db can be returned from a POST call
  • can be configured since it has a potential negative performance impact in high volume installations
Speech Recognition
  • added a fix in the speech recognition dialog
  • System potentially did hang after pausing and continuing on
Angular 7 update

updated core Angular to 7.0.1

Lightning Design Update
  • updated Lightning Design to 2.7.4 (Winter ’19)
  • updated the role picker dialog
User Preferences

fixed user preferences bug for admins

Role Loading

in some situations after a logoff and login the user might have had the wrong role

added config table syscustomhooks
  • added the package and version fields to table syshooks so hooks can be distributed as part of packages from the reference config.
  • Additionally a table syscustomhooks has been added to add customer specific hooks in the configuration of the database.
added transaction control in REST Calls
  • added an option to handle Database updates transactional on REST Calls
  • enabling commits and rollbacks in case of handling of more critical and transactional data
UI Add User & User reset password button
  • Button Reset Password for user details view added.
  • Auto generate password converted to a checkbox, which will be filling the password field with the auto generated password and showing a copy button when it’s checked.
  • by Email option added. to automatically generate password and send it via email
  • Hide password button added for regular users
new field type components
  • color Enum: display a color indicator with an enum value
  • multiselect MultiEnum: list an select with multi select option
update Actionsets
  • change in rendering actionsets so the only the first button is shown and the remaining buttons are in an overflow
  • changed the way how custom action item components are developed