Wigii® software ChangeLog

Actual major release: 4.8

Compatible with PHP 7.4

27.01.2022   Wigii 4.846 R2_151

- ElementServiceImpl::ElementSqlBuilderForGetPagedElementsInGroups: repeat orderby clause at the end of query to ensure final result is well sorted
- FiltersFormExecutor: findByQuickFilters: supports selectAllGroups=1 to navigate out of current group and search on all groups
- WigiiCMSElementEvaluator, Texts_displayValue.tpl: migrate to PHP 8
- Attributs_displayForm.tpl.php, MultipleAttributs_displayForm.tpl.php: migrate to PHP 8
- ElementInGroupSqlBuilder: migrate to PHP 8
- migrate Admin console to PHP 8

18.01.2022   Wigii 4.845 R2_146

- WigiiMedidataFL::createInvoice45Services: round unit price to max 6 significant digits
- WigiiForm.js: on drop-down cache refresh: triggers change event with onLoad action to prevent unwanted changes to happen
- Dev in progress for PHP 8 migration

13.01.2022   Wigii 4.844 R2_144

- config.xml: activates search activity js cache
- FiltersFormExecutor, WigiiCoreExecutor, header.php, WigiiApi.js: manages search activity form caching
- FiltersSelectSearchBarFieldList, TemplateRecordManager, navigationBar.bsp, RecordEvaluator, vendor/apache/log4php/src/main/php/Logger, FieldWithSelectedSubfieldsListArrayImpl, MapObject2ElementDFA: migrate to PHP 8
- FuncExpVMStdFL::genSwissQRBill: migrate to PHP 8
- migrate htmlpurifier from 4.5.0 to 4.13.0 to be compatible with PHP 8
- EmailingFormExecutor, ExternalAccessEditFormExecutor: migrate to PHP 8
- add ability to differentiate countLogExp and searchLogExp in searchActivityIndicatorSummary
- Mobile project, add navigation in folders and management of back button keeping full navigation history

17.12.2021   Wigii 4.843 R2_139

- PrintElementFormExecutor: pushes current WigiiNamespace and Module to browser
- Urls_displayForm.tpl.php: added support of placeholder if onlyUrl=1
- Urls_displayValue.tpl.php: supports displaying url as a QR code
- add management of hidden parameter in searchActivityIndicatorSummary
- add support of webp picture type
- reload.php: refactored page to use only native javascript and not depend on wigii js lib.
- header.php, pwa-starter.php: sets wigii_anchor expiration to 370 days and links it to siteRoot_alias if defined.
- ConfigServiceCoreImpl: added an in memory shared cache for config files raw content (disk cache)
- autoload.php: Remove loading of TWIG to be compatible with PHP8; always preloads ServiceException to allow PHP8 fatal errors as exceptions; ensures class loading is possible during exit function
- SessionAdminService: protected debugLogger to fire on exit during reload
- WigiiCoreExecutor: refactored exit_handler working directory restore into function _webImplExcutor/libs/functions::restoreWorkingDirectory
- ExecutionServiceWebImpl: comment cleanup
- WigiiCoreExecutor.php: ensures to have one single root configuration context.
- ExecutionServiceImpl: prevent incrementing contextIds on download (also for externalAccess download)
- ConfigServiceCoreImpl: add/delete of config nodes: delegates load parent config to wrapper to ensure config controllers are fired correctly; cleanup unwanted debug logs
- WigiiCMSElementEvaluator: fixed jquery path if WIGIICMS_NOWIGII_LIBS=1
- WigiiCoreExecutor.php: fixed SimpleXMLElement children count for PHP8
- Urls_displayValue.tpl.php: replaced spaces by %20 in url value before displaying
- put the jquery-1.12.4.min.js library on our server to prevent external links for our CMS when WIGIICMS_NOWIGII_LIBS="1"


- Wigii Admin: changement des lignes et colonnes pour les possessions d'utilisateur ou de rôle (transverse)
- Wigii Admin: ajout du double click sur la colonne pour tout cocher avec un timeout pour gérer les appels serveurs
- Wigii Admin: corrections pour permettre l'ouverture de l'admin console sans avoir accès à d'autres modules
- Wigii Admin: fermeture de l'accès à tous les utilisateurs pour l'allocation des rôles. Seul les utilisateurs visibles par l'administrateur peuvent être alloué aux rôles gérés par l'utilisateur.


- wigii-rise-ncd: ObjVisibleState: fixed animation cleanup
- wigii-rise-ncd: fixed null pointer in method mf.vo
- wigii-rise-ncd: fixed stack sequence in riceNcd.mf_actOnCode


- Export Wigii 4.843 configuration manual

New FuncExp : oSetVal

01.12.2021   Wigii 4.842 R2_125

- WigiiBPL: groupSyncElementsWithFileSystem: if principal has not write access on group, then cancels synchronisation
- add new constant WIGIICMS_NOWIGII_LIBS to allow WiGii websites to load only basic jquery and no wigii libs or css
- ElementServiceImpl.php: fix bug in import CSV row ordering
- wigii-rise-ncd.js: sysUsername method: returns null if MinimalPrincipal
- FxWebServiceFormExecutor: if MinimalPrincipal, then sticks to wigii standard FuncExp VM, no custom evaluator loaded
- Force download action to follow cross-origin check
- Allow Wigii session cookie to be transmitted to wigii backend for calls originating from web front-ends if ALLOW_CROSSORIGIN_SESSION is true.
- disable configService session cache
- disable preloading of all GroupPList foreach modules
- integration of fontawesome in current prod to allow smooth transition on icons
- upgrade wigii_logo with better quality and other dimensions
- Add .xml preview image
- Dev in progress: PWA, PHP8 support

03.11.2021   Wigii 4.841 R2_106

- WigiiBPL: added formExecPersistElement method
- FuncExpVMStdFL: extends txtFormatIBAN and txtAcceptIBAN to optionally accept Swiss CCP account numbers
- AddElementFormExecutor: added setGroupIdInWhichToAdd injector
- FormExecutor: commented unused var $uploaddir in manageUploadedFileForm; added config attribute skipNotification in persistElement method
- datatype/Strings_displayForm.tpl.php: displays value as title if readonly, to allow reading content even if long text
- Add .xml preview image
- FormRenderer: quickfix regression in fieldError div
- Blobs_displayLabel.tpl.php: removes unwanted console.log
- FormException: fixed typo in comment
- open example.htacess to pwa-theme.css.php
- Rewamp buttons in addJournalItem and externalAccessMenu
- PWA ligth/dark css compatibility
- PWA: prepare architecture for Home, Group panel, List, Detail
- PwaDetailRenderer: fixed type name in comment

27.10.2021   Wigii 4.840 R2_98

- correct issue with spectrum not clearing old palette
- PWA fix for Wigii matrix fields
- PWA general new UI concept for Wigii fields


New FuncExp: getOpenBankDateBeforeDueDate

23.09.2021   Wigii 4.839 R2_92

- LoginFormExecutor: hides feedbackOnSystem link on login page
- WigiiCoreExecutor: displays an http 403 error in case of Unauthorized Direct Access
- example.htaccess: filters unsollicited requests
- liveMonitoringStatusReport.tpl.php: added over color
- RecordEvaluator: fixed typo in comment
- FuncExpBuilder: txtFormatNumProof: fixed negation symbol
- delete strong deprecated file ElementPListRowsForElementList.php
- liveMonitoringStatusReport.tpl.php: protects detection of Wigii protocols separators
- Wigii Live Monitoring: fixed status report
- WigiiFL: implemented FuncExp liveMonitoringUpdateInstanceStatus
- Published configs/Example/liveMonitoring_Filemanager_LiveInstancesStatusGroupId_config_g.xml

14.09.2021   Wigii 4.838 R2_87

- Wigii Live monitoring dashboard V1.
- add PWA css management
- pwa complete installer and launcher
- pwa and CMS js asset infrastructure
- example.htaccess: Remove deprecated directive track_errors
- CliExecutor: added command genAES256IV to generate an initialisation vector for AES 256 CTR encryption

01.09.2021   Wigii 4.837 R2_78

- SessionAdminService, SessionAdminServiceImpl: enables storage of encrypted strings into session
- Model: add methods encryptValue, decryptValue, decryptArray to easily store secured field values into memory and in session
- AttributsHtmlSessionList: encrypts data stored into session to keep list of options confidential
- UserDetail: encrypts sensitive data into memory and in session
- WigiiFL: sysEncryptDbPassword: returns an encrypted version of the DB password
- start.php / start_cli.php: if DB_ENCRYPT_PWD=true, then DB password should be stored encrypted into start.php file
- make indicators shown on demand if indicatorList_collapsed="1"

24.08.2021   Wigii 4.836 R2_73

dev in progress: preparation to PHP 8 migration

15.07.2021   Wigii 4.835 R2_63

- Start of development of wigii mobile PWA
- WigiiMedidataFL: add customer order subject, info and annexe info in Medidata invoice remark
- MedidataPrintInvoiceRequest: print invoice remark in TG reimbursment claim or TP invoice copy


New FuncExp: prependMapKey


08.07.2021   Wigii 4.834 R2_52

- config.xml, AddElementFormExecutor, AddSubElementFormExecutor, FiltersFormExecutor: for now: prevent js caching of searchActivity and element add form; activates js caching for drop-downs.
- EmailServiceWebImpl: detects invalid email domains and notifies sender of invalid recipients emails
- FiltersFormExecutor: implement searchActivity js cache refresh
- WigiiCoreExecutor: computes ElementInfo for selected multiple elements to allow FuncExps to persist elements during calculation process.
- WigiiCoreExecutor: fixes js cache key for element add form;
- AttributeExpConfigController, AttributsHtmlSessionList, WigiiCoreExecutor, TemplateRecordManager: signs drop-down cache content to enable cache invalidation when drop-down content change
- AddSubscriptionFormExecutor: saves subscription element id in EmailService db table
- ModuleAdminService: exports method getModuleFromSelectedElements from impl to interface.
- WigiiEmail, WigiiEmailWebImpl: added method removeRecipient
- ElementPAdvancedListArrayImpl: supports ElementInfo calculation when adding ElementP to the list
- WigiiForm.js: manages drop-down cache signature and invalids cache when content is deprecated
- WorkZone.js: uses searchActivity js cache if available and active

28.06.2021   Wigii 4.833 R2_50

- WigiiBPL: groupSyncElementsWithFileSystem: bug fix for autopullin: encrypt file if file encryption is active; inserts element in db to ensure file data integrity
- ElementDFA, AuthorizationServiceImpl: bug fix: stamps element after it has been inserted in db and reloaded, and before it is pushed further in the data flow

- allow js regex match syntax to use \ in CMS js code type articles

17.06.2021   Wigii 4.832 R2_48

- WigiiBPL: sendEmail: supports adding attachments to email through PHP template code; supports sending cancellation at runtime
- WigiiFL: sysSendEmail: supports defining email address, subject and content in wigiiBPLParameter bag instead of passing on command line
- WigiiAPI.js: added method htmlNbsp
- AddSubscriptionFormExecutor, WigiiBPL: refactored mail merge array into WigiiBPL::buildMailMergeArray method
- PrintElementFormExecutor: push language to browser to allow translation from js code
- ExternalAccessEditFormExecutor: commented deprecated code
- correct obfuscateEmails to manage multiple times the same email
- remove a console.log in WigiiCMSElementEvaluator


New FuncExp: ctlRecalcField

02.06.2021   Wigii 4.831 R2_43

- correct lazy loading of image in WigiiCMSElementEvaluator to manage if image has class attribute
- FuncExpBuilder, functions: added function lxInTimeRange
- AddSubscriptionFormExecutor: fixes custom mail merge in case of non-existing fields
- WigiiAPI.js: added onEndOfTyping event for text inputs
- wigii-ncd.js: added Geom 2D functions


New FuncExps: lxInTimeRange, jsFormSetVar, sysFxSecret, discount, tax

17.05.2021   Wigii 4.830 R2_40

- AddSubscriptionFormExecutor: considers config parameter Subscription_mailMerge to inject custom mail merge keys into confirmation email body
- PrintElementFormExecutor: inject current principal into TRM when printing with templates
- Files_displayValue.tpl: if noDownloadButton=1, then do not show file name as an hyperlink
- Readme/Wigii 4 Configuration manual: fresh dump from resource.wigii.org


New config parameter: Subscription_mailMerge


New FuncExps: sysExecVar, sysExecSetVar

04.05.2021   Wigii 4.829 R2_38

- Added creditcards icons
- WigiiCoreExecutor: /wait action: supports temporizing following action until end of execution
- WigiiAPI.js: fixed activityDialog OK and Cancel button lookup when workzone view docked.
- WigiiMedidataFL: takes CustomerOrder totalAmount instead of dueAmount for Medidata dueAmount to allow generating total reimbursement claim even if instalment is paid by customer
- DetailRenderer: show in print, fields with displayHidden=1 and notHiddenInPrint=1
- FormRenderer: if field with subfields and isInLine=0, allows to display not "in line"
- PrintElementFormExecutor: catches all exceptions thrown by custom print template and publishes them in server log; do not show an uncatched fatal error to user
- PhpStdFL: new FuncExp base64url_decode
- Added management of noAutoPrint module parameter

13.04.2021   Wigii 4.828 R2_34

- RecordEvaluator: recurringController: added onRecurringInstanceInsertExp callback to allow custom callbacks when recurring instances are created (for example, used on module Events to manage reminders)
- NotificationService: set public access on methods getButtonViewElement, getButtonAccess, wrapButtonAccessForEmail to factorise Wigii access button look & feel in wigii outbounding emails.
- RecordEvaluator, FuncExpVMStdFL: fixed isNull, isNotNull FuncExp to support MultipleAttributs array of type [0]=''; fixed addVal FuncExp to avoid duplicates if same value is added two times
- WigiiCoreExecutor, FiltersFormExecutor, ExecutionServiceWebImpl: pushes searchActivity cache key to browser
- moduleToolsBar.bsp: if group config changed, then invalids searchActivity cache
- dico.txt: added organizedBy, reminderOfElement, reminderTitle + fixed typo
- ActivityRecord: added data type in return comment

07.04.2021   Wigii 4.827 R2_31

- config.xml : prepares rollout of pilot phase for js caching of html drop-downs.
- TemplateRecordManager, WigiiForm.js, FormRenderer, Attributs_displayForm.tpl, MultiplAttributs_displayForm.tpl: manage js caching of html drop-downs.
- WigiiCoreExecutor: added action refreshDropDownCache to ask for drop-down cache refresh on browser from user's session
- WigiiAPI.js: parseUpdateResult: handles HtmlCache answer to automatically update js cache on push from server
- AttributeExpConfigController: activates jsCacheKey tagging on drop-down options for js caching of html drop-downs
- WigiiFL, WigiiCoreExecutor: extended ctlClearCache FuncExp and clearConfig method to invalid drop-downs js cache in session and on browser
- WigiiCoreExecutor: removed deprecated code (old wakeup code, moved to BackendServiceFormExecutor since 12.10.2020)
- add lazyLoading for images and iframes in WigiiCMSElementEvaluator
- extend StandardStatisticsDFA with setDimensionFieldNames($fieldNamesArray)

29.03.2021   Wigii 4.826 R2_24

- Apply rounding to cents on amounts operations

23.03.2021   Wigii 4.825 R2_21

- config.xml, configPack/configPack-readme-PNew.html: Scripting activity for upgrade instructions: supports automatic filtering of list view
- FuncExpVMStdFL: fixed logIsMultipleVAT logic
- WigiiAPI.js: added htmlEntityDecode method; fixed ok and cancel button accessors on query editor
- RecordEvaluator, FuncExpVMStdFL: implode FuncExp: supports more than 2 levels of array imbrication
- WigiiMedidataFL: controls street length to max 35 chars of any entity adresses (insurance, patient, debitor, etc.)
- FormExecutor: added method addErrorsToFields
- FormException: added code FORM_HAS_ERRORS and get/set FormFieldsErrors
- RecordException: added code MISSING_MANDATORY_FIELD
- ArgValidator: added methods checkFieldNotNull, assertFieldNotNull
- Record: added method exportMatrixAsStdClass
- ElementDFA: added element statistics capturing
- WigiiAPI.js: added methods txtHashTag, numEq
- DataFlowServiceImpl, UserAdminServiceImpl, ArgValidator: fixed typo


New FuncExps: ctlIsFormOnStart, ctlIsFormOnCheck, logIsMultipleVAT

15.03.2021   Wigii 4.824 R2_20

- moduleView.tpl, ListContext: enhanced module view to support 'Switch view' menu at group configuration level
- index.php: enforced security by upgrading session cookie to secure=1, httponly=1 and samesite=Lax
- AuthenticationServiceWebImpl: fixes Wigii credentials cookie to site root alias if defined
- Booleans, Floats, Numerics, Strings, Texts, Varchars form fields: fixes field content cookie to site root alias if defined
- Urls: checkValues: allows spaces in URL
- WigiiAPI.js: FormHelper: fixed ok and cancel buttons accessors to support element forms displayed in activity dialog.
- addons/Medidata/WigiiMedidataFL: added tarif code 452 mapped to LiMA law


New DataFlow activity: ValueListBufferDFA
New FuncExp: buildUrlFragment

10.03.2021   Wigii 4.823 R2_17

- PrintElementFormExecutor, WigiiCoreExecutor: added autoPrint configuration option, active by default on element standard print.
- GroupAdminService, GroupAdminServiceImpl, AuthorizationServiceImpl: added method doesGroupContainElement
- ElementFileAdminService: walkthroughUserFiles: fixed path sanitization

08.03.2021   Wigii 4.823 R2_15

- ClientAdminServiceImpl, functions wigii_ec_rename, wigii_ec_copy: refactored Wigii Encryption Layer to handle encryption of large files (more than 150Mo); max file size allowed for encryption is linked to PHP ini upload_max_filesize
- FormExecutor: manageUploadedFileForm: calls ClientAdminService::initializeEncryptionLayer to prepare into memory openssl encryption library before persisting uploaded file.
- ElementFileAdminService: method walkthroughUserFiles: call PHP GC after each file visit to keep memory consumption low during batch run
- Added function File::upload_max_filesize to get the max allowed size of uploaded files in bytes
- RecordEvalutator: FuncExp fillActivityFromUrl: fixed automatic creation of dynamic attributes
- ActivityRecord: added interface compatible with Element dynamic attributes methods to ease business coding simultanuously on Elements and Activity records

03.03.2021   Wigii 4.822 R2_14

- FormChecker: Emails multiple: show invalid emails detected in list and auto-cleans form field
- Emails: checkValues: keeps track of invalid emails
- FormCheckerException: added error code INVALID_MULTIPLE_EMAILS, added errorDetail field to carry FormChecker contextual information when error occurs.
- Model: added function acceptValidEmails; enhanced function validateEmails to return a list of detected invalid emails
- ClientAdminServiceImpl: encryptKeyStore: fixed non-re-encryption of keystore
- WigiiMedidataFL: ignores empty lines in street sub adressing
- AttributeExpConfigController: rollback dev in progress for Attributs/MultipleAttributs js caching

24.02.2021   Wigii 4.822 R2_11

- WigiiCoreExecutor: listView: if sorting key changes then removes any group by
- Element: added in memory attribute discardFromMultipleUpdate to indicate to ElementService to discard persisting element in case of a call to updateMultipleElement
- Enhanced FuncExp sysMultipleSelection to return at choice, an array of element IDs or an ElementPList
- ElementServiceImpl: updateMultipleElement, getSqlForUpdateMultipleElement: handles discardFromMultipleUpdate element attribute
- TemplateRecordManager, AttributeExpConfigController, Attributs_displayForm.tpl, MultipleAttributs_displayForm.tpl: Dev in progress for Attributs and MultipleAttributs html caching in js browser cache
- ClientAdminServiceImpl: Wigii Encryption Layer: refactored keystore persistence into private method persistKeyStore
- EmailsFromImapDataFlowConnector: fixed email parsing of type MIXED, with no body and only attachments
- Wigii Live Monitoring dev in progress
- ConfigurationContextImpl: when calling ma method, ensures mf method has been called at least once to guarentee that module fields are loaded, even if current config is a group configuration
- Start of Wigii trunk versioning on Wigiipole2 at Wigii.org. Migrated from GitHub master repository https://github.com/wigii/wigii G778.


New FuncExps: elementSubList, multipleSelectionElementP

02.02.2021   Wigii 4.821 G776

- FiltersFormExecutor: considers sortingKey and groupByKey parameters on SearchActivity fields
- config.xml / SearchActivity: move grouping and sorting to advanced filters section
- WigiiCMSElementEvaluator: fixed method copyFileToClientWebFolder to be compatible with Wigii Encryption Layer; fixed fatal error if sitemap without any introduction element
- WigiiFL: enhanced FuncExps countElements and elementExists to support usage of Root principal if needed
- FieldSelector, FieldSortingKey: added helpers buildKey and getDirection


New config parameters: sortingKey and groupByKey that can be added to SearchActivity fields or attributes to influence the list view sorting and grouping when searching by this field

25.01.2021   Wigii 4.820 G774

- ExecutionServiceImpl: added method getPrincipalExternalLabel to fetch a human friendly label of real user behind current principal
- RecordEvaluator, NotificationService, FuncExpVMStdFL, WigiiBPL: modified add comments, notifications and history tracking to use the ExecutionService::getPrincipalExternalLabel method instead of raw username.
- config.xml: field attribute expandOnMultipleColumn can be dynamic
- addons/NCD/AgileStoryBoard: changed border color of Tasks with priority P1 to yellow
- WigiiAPI.js: added method FieldHelper::disable to dynamically disable or enable a field, following Wigii form styling and standard
- example.index.php, example.htaccess: enforced security by removing or commenting lines of code which are not strictly necessary for Wigii server to run into production
- addons/NCD/wigii-ncd-stdlib.js, wigii-ncd-stdlib.css: AgileStoryBoard: maps Wigii Tasks priority to priority class and colorizes tasks by priority
- FiltersFormExecutor: added /find/elementByKey url to display an element detail given a business key
- WigiiAPI.js: showElement: supports passing a business key instead of element ID to fetch and display the element detail
- CliExecutor: added commands listHashAlgos, hashFile, checkClientFiles, encryptAllClientFiles, removeClientFileEncryption, renewClientFileEncryptionKey
- ElementFileAdminService: added method walkthroughUserFiles to execute a callback on each client file
- ClientAdminServiceImpl: release Wigii encryption layer on client files
- BackendServiceFormExecutor: runs encryption backend tasks
- ServiceProvider, CreditServiceImpl, CreditServiceException: handles CreditService implementation and instanciation
- AttributeExpConfigController: considers cacheKey xml attribute on attributeExp to define a custom cache key (instead of FuncExp signature)
- configs/Example/config.php: added ENABLE_ENCRYPTION_ADMIN_CLI=false
- _cliImplExecutor/main: fixed missing TEST_ON=false
- ElementEvaluator: fixed module null pointer exception in cfgParam and cfgParamExp FuncExps
- StandardStatisticsDFA: fixed missing unset of private variable


New classes: CreditService, WigiiCredit and WigiiTimer
New FuncExps: cfgAttrExtendedDimension, cfgCurrentListContextGroup, sysEncryptAllClientFiles, sysRemoveClientFileEncryption, sysRenewClientFileEncryptionKey
Readme/Technical Documentation: release 'Wigii Encryption concepts'

Archive of previous change log

Up to 2015 on code.google.com

Up to Jan 2021 on github.com