Wigii® software ChangeLog

Actual major release: 4.9

Compatible with PHP 8.1

22.05.2024   Wigii 4.923 R2_608

- ListContext, ListFilter, ElementQueryPlanner, ElementServiceImpl: full text search using query strategy UNION_DATATYPE
- ElementPMapper, ElementSqlBuilder: supports query strategy UNION_DATATYPE
- WigiiBPL: added method getTextSearchableFields
- LogExp, LogExpTextLike, FuncExpBuilder, WigiiFL, functions: new logical TEXT LIKE expression
- SearchBarLogExpParser: supports TEXT LIKE logical expressions
- WigiiAPI.js: New FormHelper.elFieldValue
- wigii-ncd-cfgbuilder.js: FieldCfgBuilder: fix jsCodeExp dynamic attribute
- home.tpl.php: translate default wigii namespace label
- print.bundle: Include gui.css and specific print.css

New FuncExp: lxTextLike

07.05.2024   Wigii 4.922 R2_600

- ExecutionServiceWebImpl: implement execution routes
- RecordEvaluator.php: saveElementFieldsTo: make sure to move out of any auto-organize folders on delete
- PwaFormExecutor: cleanup console.logs; display add/edit/delete only if PWA write is active; fix add/edit/delete actions on V4 routes.
- AddEventFormExecutor, EditElementFormExecutor, DeleteElementFormExecutor: make it compatible with PWA
- PWAWorkZone.js: refactor calendar events using routes
- PWAWorkZone.js, WigiiAPI.js, WigiiExecutor.js, PwaFormExecutor.php, WigiiCoreExecutor.php : PWA add/edit/delete
- ExecutionServiceWebImpl: implement isPWAClientWrite by module
- WigiiExecutor.js: supports execution routes
- WigiiAPI.js: FormHelper.isPublic return true if the form is from public
- WigiiAPI.js: add methods isForView, isForEdit
- WigiiAPI.js: handles execution routes
- WigiiForm.js: make it compatible with PWA
- Twig templates for pwa toolbar
- TechnicalServiceProviderWebImpl.php: t Twig function for translation
- TranslationServiceImpl: New function getLocale used by twig reports
- AuthorizationServiceImpl: fix getDbEntityDynamicRights to dynamically add access to module Admin if rights on db entity are admin.
- AtelierEncode : wigii-etp.js: correct aStoreData and aGetData parameters
- WigiiMedidataFL: Improve error message on missing case law and type.
- Emails_displayValue.tpl.php: hide proofStatus and externalAccessLevel in public view
- WigiiCoreExecutor: fix addJournalItem to correctly initialize PublicPrincipal namespace

New FuncExps: sysExecRouteNames, sysExecRouteFor

22.04.2024   Wigii 4.921 R2_577

- addons/NCD/wigii-ncd-cfgbuilder.js: Wigii Configuration builder js library
- RecordEvaluator: renderFormMatrix, resolveFormMatrix: support passing arrays instead of multiple arguments
- ArrayBufferDFA: Support FieldSelector for keyFiled and valueField
- FuncExpVMStdFL: txtFormatAddress, ctlDateGroupTree
- correct getDropdownValueFromUserEmail to prevent matching portion of emails
- ServiceProvider::createWigiiObjectInstance: remove check of class through wigii_autoload function to allow instanciation of classes in configPack.
- ListContext: fix search by element ID
- TechnicalServiceProviderWebImpl: Add twig function addJsCode
- autoload: add use_wigii_dependencies flag
- datatype/TimeRanges: fix time in case of null dates
- new css print.bundle used for print in savesAs implementation
- TranslationService, TranslationServiceImpl: integrates with locales
- TechnicalServiceProviderWebImpl.php: Refactoring trans and asset twig function
- WigiiAPI.js: FormHelper: new method attrVal to get the typed value of a data-wigii-* html attribute on a given field
- WigiiAPI.js: new FormHelper function elFieldInput
- WigiiFL: buildEmailSubFieldsMap: fixed subField name
- ElementSetterDFA: fixed automatic subFields detection and addition in FieldSelectorList
- dico.txt: Add german dayOfWeek
- FormExecutor, AddElementFormExecutor: fix skipNotification and supports skipSharingNotification

New FuncExp: formatCfgParam

13.03.2024   Wigii 4.920 R2_542

- ElementServiceImpl: help SQL optimizer to join correctly tables in paged queries where clause
- Detail|Field|Form|Renderer, NotificationService: New implementation of displayHidden="2" using html5 hidden attribute instead of css display:none implemented by displayHidden="1"
- FormRenderer: fixed display if labelOnRight
- ElementEvaluator: refactored getConfigService to take dataFlowContext configService if defined
- WigiiBPL: groupSyncElementsWithFileSystem: supports filling a ValueList with the processed elements
- Strings_displayValue.tpl.php: Support urlModule, urlName, urlTarget attributes for Strings type.
- ConfigServiceCoreImpl: addConfigElements: fix config 'add' to support include statements
- CliExecutor: genSslCert: fix organizationalUnitName
- ConfigModuleFilenameRenderer: skip files with no extension (or subfolders)
- gui.css: w-text-green
- WigiiAPI.js: WorkflowHelper: fixed completeInst
- WigiiAPI.js: New FormHelper.elField return the element DOM object of the field form
- WigiiAPI.js: New FieldHelper.show(null,true,false), FieldHelper.input(func), FormHelper.isForAdd()
- New wigii().txtIntl return the internationalized label of the current language

20.02.2024   Wigii 4.919 R2_514

- TechnicalServiceProviderWebImpl, autoload, functions, FuncExpBuilder: integrate Twig
- WigiiAPI.js: callFx in current namespace: inject useContext URI
- ElementPListRowsForElementListImpl, ElementPListRowsForElementBlogImpl: fix list view refresh on edit if item is not visible in the list
- add new api/technical/TwigHelper to help manipulating core Twig functions
- TechnicalServiceProviderWebImpl: getTwig: supports noCache option
- AuthorizationServiceWebImpl: authorizes TwigHelper methods
- TechnicalServiceException: add TWIG_ERROR code
- ModuleConfigEditFormExecutor, dico.txt: supports online edition of Twig custom templates
- integrate new gui.css
- wigii-ncd-stdlib.js: Keep kanban column scroll after story change
- WigiiAPI.js, ExecutionServiceImpl: fix request signoff for advanced search
- WigiiMedidataFL: Round unit tarmed point to 2 decimals instead of 6
- ElementPListItemsForElementCalendar: Support display initials of the organizer

06.02.2024   Wigii 4.918 R2_502

- RecordEvaluator: cfgFieldExists, add module param to check existing field
- WigiiFL: cfgAttrDimension, cfgAttrDimensionCrtNamespace, cfgAttrExtendedDimension, cfgAttrFindableDimension: add sortOrder = 5 to sort by key field in Dimensions. Only available for configPack.
- WigiiAPI.js: FormHelper: add method isForPrint
- WigiiAPI.js: FieldHelper: Add qsaValue and qsa methods
- WigiiAPI.js: add method txtApos
- WigiiExecutor.js: actOnCloseDialog: stops any running timers
- EditElementFormExecutor: fix target of help/feedback icons to consider also activities.
- PrintElementFormExecutor: mark form with data-wigii-isforprint=1 html attribute
- WigiiExecutor.js, ExecutionServiceImpl: refactor useContext url into function useContextURI with automatic injection of a timestamp
- PWAWorkZone.js, WigiiAPI.js, WorkZone.js, WigiiForm.js, PwaFormExecutor, Files_displayValue.tpl: refactor useContext url to use useContextURI function
- WigiiFL: sysUserHasRole: return false in public context
- FuncExpBuilder: elementP: ensures to get most recent element in case of duplicates on business key
- MultipleAttributs_displayForm.tpl: if noLabel=1 and labelExp is defined, then displays labelExp as drop-down placeholder (useful for advanced search customization)
- TemplateRecordManager, WigiiCoreExecutor: if useRootPForDisplayQueryLink then uses root principal to display query link instead of current principal
- ConfigService, ConfigServiceCoreImpl, ConfigServiceImpl, ConfigServiceSubElementImpl, ConfigurationContextImpl, GroupBasedWigiiApiClient: supports dynamic parameters and namespace data config


- New config parameter for Attributs and MultipleAttributs displayed in multiple columns as checkboxes or radiobuttons: 'arrangeVertically' will sort the labels in columns instead of rows.
- New dynamic config parameter: useRootPForDisplayQueryLink

19.01.2024   Wigii 4.917 R2_487

- PublicWebServiceFormExecutor, ActivityFormExecutor: opens activities to public space
- WigiiExecutor, WigiiCoreExecutor: added new action publicActivity
- ConfigServiceImpl, IncludeConfigController: created subclass IncludeConfigControllerL2 to handle second level config inclusion (for widgets called in configPacks) and enabled it by default in ConfigServiceImpl
- WigiiFL, RecordEvaluator: moved sysAddJsCode FuncExp from WigiiFL to RecordEvaluator to enable replacement of $$idForm$$ with attached FormExecutor formId
- WigiiCoreExecutor: refactored reload after auto-login into a method shouldReloadAfterAutoLogin
- ServiceException: added code BAD_REQUEST (400)
- dico.txt: added entry genericError
- AuthorizationServiceWebImpl: added methods assertHttpVerb, assertHttpGET, assertHttpPOST, assertHttpWigiiHeader
- WigiiBPLException: added static method throwInvalidXml
- WigiiFL: fixed comment
- strips embedded <i> icones in group by and sort by drop-downs
- WigiiExecutor.js: errorOnUpdate: prevents retrying on error if onUpdateErrorCounter < 0
- WigiiForm.js: setListenerToPreviewList: limits number of requests on getNextElementInPreviewList
- WigiiCoreExecutor: assertRequestIsSigned: distinguish in error log unsigned request from invalid request signature
- PublicWebServiceFormExecutor: processPublicActivity: enables public access to activity only if enabled both in xml config and in php
- RecordEvaluator: added method isActivityAuthorizedFromPublic
- WigiiCoreExecutor: getFuncExpEvaluator: gets ElementEvaluator linked to Activity Module in case of ActivityRecord
- FormRenderer: fix mobile challenge error display in public form
- AddSubscriptionFormExecutor: silents error if field passed on url does not exist.
- WigiiAPI.js: addElement: add option groupConfig=true to tell server to load group config when adding element
- WigiiAPI.js: FieldHelper: Add qs(Field|Label|Value|Input) methods
- ActivityFormExecutor: tag beforePublicContainer with activity name and wigiinamespace to allow to insert company logo at the top of public activities; display activity name in public
- WigiiAPI.js: addElement: fix onOperationSuccessful and onFormStarted hooks in case groupConfig is true
- WigiiCoreExecutor: fix url in navigate through cache

New FuncExp: ctlIsActivityRecord, ctlDate2Age

01.12.2023   Wigii 4.916 R2_472

- WigiiAPI.js, all.tpl, footer, pwa-starter, PwaFormExecutor: sign wigii requests
- ExecutionServiceImpl: implement request signoff
- LoginFormExecutor: reload after login for request signoff
- Wigii Live Monitoring, WigiiFL: monitor rejected unsigned requests
- Enhance onOperationSuccessful with modified dbEntityId
- Extend ElementPListRowsForPreview to handle classExp
- PwaFormExecutor: displayHome: fix space encoding of namespace on module click
- TemplateRecordManager: displayPrivacyPolicyLink: add class to div
- css/web.bundle, pwa-starter, PwaFormExecutor, WigiiCoreExecutor, header, header.wncd, ExecutionServiceWebImpl, functions: fix comments
- wigii-ops: bugfix clean:session: Remove spaces in tags
- wigii-ops: allow to minify variable names
- WigiiAPI.js: fix signRequest on drag&drop
- WigiiForm.js: addJsCodeOnOnLineFileInput: fix null pointer in case CKEditor templates do not exist
- WigiiAPI.js: Added functions fields$; Implemented setFocus for CKEditor; Added method HtmlBuilder.putTag; Added noOpenItemCheck parameter to methods addElement, editElement and copyElement
- CKEditor templates: refactor loading of templates, by namespace and after login.
- WigiiAPI.js: added Promise class; added method FieldHelper::loadCKEditorTemplate
- New FuncExp: getDateRangeInfo

25.10.2023   Wigii 4.915 R2_445

- TechnicalServiceProvider: integrate Imagick PHP extension for image manipulation and pdf reading
- Align web and pwa js sources and bundles.
- Prepare PWA WigiiExecutor and WigiiForm sub files to include only PWA specific code.
- WigiiApi.js: Added obj2array, modify FieldHelper::attr to support attr update
- WigiiCMSElementEvaluator correct issue in background with no alpha value
- liveMonitoringStatusReport.tpl: forces horizontal scroll in unknown request table for pwa display
- Files_displayValue.tpl.php, WigiiCoreExecutor: displays json file like text file
- WigiiFL liveMonitoringStatusDashboard, liveMonitoringStatusReport.tpl: for each unknown request, shows client hits
- WigiiAPI.js: FormHelper.dbVal: return empty string if field does not exist in detail
- FuncExpVMStdFL: genSwissQRBill: group UNSUPPORTED_OPERATION exceptions in one throw.

05.10.2023   Wigii 4.914 R2_433

- ExternalAccessEditFormExecutor: sends a custom confirmation email if Subscription_sendConfEmailOnExternalAccess=1
- ElementPListExportCSVPretty, ElementPListExportExcel, ElementPListExportICSCalendar: strips embedded <i> icones
- EmailServiceWebImpl: do not try to send again SMS if number is wrong
- Html2text: added option no_italic to skip conversion of <i> tags
- FiltersFormExecutor: enhances findByQuickfilters to support filterOnMultipleSelection; supports new option navigateToModule=1 to force navigation on wigii advanced search initialization
- NotificationService: on multiple element notification, hides udpated elements content to receivers to preserve confidentiality; adds a button to access selected updated elements.
- config.php, EmailServiceWebImpl: supports EmailService_sendOnBehalfFullServiceName config parameter to completly redefine emailing from label.
- WigiiCoreExecutor, RecordEvaluator: validateEmailFromCode, unsubscribeEmailFromCode: delegates to custom optIn / optOut process if FuncExp are defined.
- ElementServiceWebImpl, TemplateRecordManager, EmailingFormExecutor, WigiiForm.js: getEmailValidationLinkFromCode, getEmailUnsubscribeLinkFromCode: encode email target in url to allow custom optIn/optOut.
- ElementServiceWebImpl, EmailingFormExecutor: external access and email validation links: various bug fixes and code cleanup.
- AttributeExpConfigController: allow cancelable attributeExp which cut dependency loadings.
- ElementPListDataFlowConnector: fixes wigii bag size to 5000 if field selector list has less than 12 fields. This reduces the number of queries in database.
- WigiiFL: cfgAttrTags: filters on only non-empty tags field.
- WigiiCMSElementEvaluator: adapt background color management to handle transparency
- WigiiBPLParameterArrayImpl: add method buildStdClass
- TemplateRecordManager: added methods createInstanceForRecord, getFieldLabel
- MultipleAttributs: added methods addValue, removeValue, hasValue
- FieldSelectorListArrayImpl: add method setFieldSelector
- FieldList: fix comment
- WigiiCMSElementEvaluator: prevent resize of last article if space is filled and calculate the extension only when necessary
- ElementPListDataFlowConnector, ElementPDataFlowConnector: support dynamic write rights on elements
- WigiiCoreExecutor: manageEmail: displays operation successful dialog after an email is sent through the email field menu.
- EventExpSubscriber, WigiiEventsDispatcher: supports wigii events code re-entrance
- WigiiEmailWebImpl: mail merge in body text: ignore case because of html2text which converts bold in caps
- ElementDFA: on insert: propagates dynamic write rights from group to element if set
- Urls datatype: added function encode to handle WigiiNamespace with spaces
- dico: updated text of unsubscribeLinkIsMandatoryForLegalReason

01.09.2023   Wigii 4.913 R2_421

- LoginFormExecutor, AuthenticationServiceImpl, AuthenticationServiceWebImpl: manages 2FA cookie
- ChangePasswordFormExecutor: fix force password change if expired also on 2FA
- UserAdminServiceImpl: adds info_forceLogout in field selector list when reading a user
- EditUserFormExecutor: if 2FA mobile is active in config, the preselects 2FA for new users
- AuthenticationServiceWebImpl, WigiiCoreExecutor: fix forceLogout in presence of wigii credentials cookie
- AuthenticationServiceWebImpl: refreshDeviceTrustStore: fix store unpacking if encryption keys changed
- WigiiCoreExecutor: fix null pointers
- FuncExpVMStdFL: backport 'first' FuncExp from RecordEvaluator to stdFL
- ArrayDataFlowConnector: fix comment
- home.tpl.php: allows and activates hyperlinks in namespace stub info content
- FormExecutor: fix insert and move element in non-accessible groups.
- ElementPListRowsForElementListImpl: resolves dynamic htmlArea in list view
- StandardStatisticsDFA: Support sum of string as concatenation
- GroupAdminServiceImpl: optimize sql fetch of all groups in module
- ElementServiceImpl: optimize sql queries for element fetching
- WigiiBPL: sendMobileCode: fix security warning display in case of mobile challenge resend.
- EmailsFromImapDataFlowConnector: supports email containing raw image (no body, no attachement)
- ElementPListItemsForElementCalendar: fix PHP 8.1 string conversion
- PhpStdFL: str_replace: fix null pointer exception
- new function lx2fx
- Wigii documentation: rotate pages in Wigii-uml 101215 R3.10.pdf

New FuncExps: strTable2objList, str_pad, adminDeleteUser

25.05.2023   Wigii 4.912 R2_396

- LoginFormExecutor: supports 2 factors authentication through SMS
- EditUserFormExecutor, config.xml, dico.txt: supports new authentication method 'Password + SMS'
- AuthenticationServiceImpl, AuthenticationServiceException: handles 2 factors authentication through mobile challenge
- config.xml: activates user mobile field in user detail in admin console.
- FormExecutor, TemplateRecordManager, WigiiFL, WigiiBPL, dico: supports protecting forms with a mobile challenge
- PWA: correct issue in last subfolder scrolling in GroupSummary
- WigiiForm.js: reduces image preview to max-width:90% to allow full display of close button on mobiles.
- PwaFormExecutor: deprecate tabsContentUrlForHomePage in mobile view
- LoginFormExecutor, TemplateRecordManager: fix field focus when asking for a mobile challenge
- WigiiCoreExecutor: doAutoLoginIfNeeded: fixes auto-login as public in PWA
- EmailServiceWebImpl: getEmailInstanceFromRow: supports no WigiiNamespace
- Wigii SMS: supports sms_challenge type (sub type of sms_alert)
- WigiiBPL: sendMobileCode: appends a security warning at the end of SMS.
- WigiiFL: sysUserResetConnections: supports an array of usernames for which to reset connections
- AuthenticationServiceWebImpl: if forceLogout, then force2FA if user has 2FA as authentication method; added method checkDevicePendingAction
- dico.txt: added mobileCodeSecurityWarning message
- update design of login form with mobile challenge

New configuration parameter: ENABLE_MOBILE_CHALLENGE, enable2FAMobile
New FuncExps: sysMobileCheckID, getMobileChallenge

03.05.2023   Wigii 4.911 R2_379

- UserDetail, UserAdminServiceImpl: add fields mobile, mobileChecked and info_forceLogout
- WigiiAPI.js: add methods getBrowserInfos, getUserMobile
- reload.php, header.php: refactors browser name detection by calling WigiiAPI.js getBrowserInfos
- AuthenticationServiceWebImpl, AuthenticationServiceException: implement device checking and rejection; added methods getCrtConnectedDeviceInfo, acceptConnectedDevice, getUserConnections, resetUserConnections; manages device trust store linked to every user.
- WigiiCoreExecutor: accepts (or not) connected device on each request; manages device rejection.
- PwaFormExecutor, BackendServiceFormExecutor (wakeup): sync connected device info with AuthenticationService trust store
- ClientAdminService, ClientAdminServiceImpl: added method signalUnacceptedDevice
- WigiiBPL: new methods sendMobileCode, publishMobileCode, buildTabToken
- WigiiCoreExecutor: rejects multiple operations if noMultipleSelection = 1
- ElementPListRowsForElementBlogImpl, ElementPListRowsForElementListImpl: hides multiple selection checkboxes if noMultipleSelection = 1
- add management of defaultView in PWA calendar + management of businessHours
- add ability to redifine businessHours in calendar view
- PortalGroupFormExecutor, functions, dico: portal cookie: check rotation number if encryption is active
- WigiiBPL: groupGetTrashbin: fix null pointer
- PWA: keep view selection and keep current date in calendar

- New technical documentation: Wigii Connected Devices concepts
- Readme/Upgrade scripts/4.906 - 4.910 add mobile to Users and ec_value to Strings and Blobs.sql
- Updated existing documentation: readme.txt, Wigii Encryption Concepts, Wigii4 Configuration manual, Wigii4.8 table structure.sql

- New configuration parameters: ENABLE_DEVICE_CHECKING, ENABLE_DEVICE_REJECTION, deviceTrustLifeTime, jsCodeOnNewDevice

- New FuncExps: sysUserGetConnections, sysUserPrintConnections, sysUserResetConnections, sysEncryptUsersMobile, genAlphanumCode, sysPrincipalMobile, sysSendMobileCode, sysPublishMobileCode, sysAsyncMobileCode

29.03.2023   Wigii 4.906 R2_369

- FiltersFormExecutor: findByQuickFilters: supports passing fieldName / value pairs as a base64 encoded json object.
- EmailsFromImapDataFlowConnector: fix error handling
- EmailServiceWebImpl: fixed regression in filterWrongAddressesAndSend if transport was sms
- AddSubElementFormExecutor, NotificationService: recenter config on subElement
- PWA: include custom css; bug fix in search form
- new FuncExps: cfgAttributValueFromLabel, sysPrincipalEmailOrStub

23.02.2023   Wigii 4.905 R2_361

- templates/home.tpl.php: includes stubs for inaccessible namespaces declared in Admin_config/Navigation activity
- Example/Admin_config.xml: Navigation activity: supports declaring stubs for inaccessible namespaces and display some info on hover.
- dico.txt: add homePageStubNamespaceInfoTitle entry.
- home.css: formats description of stubs for inaccessible namespaces on home page
- FiltersFormExecutor: findByPattern: extend page size to 30 results instead of 15.
- Attributs_displayForm.tpl, MultipleAttributs_displayForm.tpl: if field is disabled then shows current missing value
- HTMLPurifier: allows embedded webp images
- FiltersFormExecutor, ListContext: if search field is a numeric, then considers 0 as a valid number to search for.
- WigiiAPI.js: FormHelper: copyFields: support field of type Attributs displayed as checkboxes.
- ElementDFA: add property setDisableWigiiEvents
- EmailsFromImapDataFlowConnector: fix error handling
- WigiiFL: cfgAttrGroupPTree, cfgAttrGroupPList: takes selected module instead of always current module.
- Update some french labels in dictionary

New config parameter: oneDecimal for Numerics fields

30.01.2023   Wigii 4.904 R2_350

- addons / NCD: new StoryWhiteboard component
- New FuncExps: getDataFromActivitySession, storeDataInActivitySession
- PrintElementFormExecutor: show 404 if print template does not exist on disk.
- elementBlog.tpl: uses blogPageSize in priority over listPageSize
- WorkZone.js: fix moduleView width in resize_blog
- WigiiAPI.js: WncdContainer: add methods currentGroupId, writableCurrentGroupId

19.01.2023   Wigii 4.903 R2_344

- new config parameter for Dates: isDeadline
- FuncExp trackHistory: reformats booleans to Yes/No if stored in blobs without html area
- DetailRenderer: marks empty value div with displayEvenIfEmpty
- WigiiAPI.js: FieldHelper: getValue: supports empty field displayed even if empty
- WigiiAPI.js: FormHelper.copyFields: supports DatePickers in matrix fields
- addons NCD: wigii-ncd-stdlib.js, wigii-ncd-stdlib.css : AgileStoryBoard : shows due date in story; colors story in red if due date is past; colors story in orange if due date is less than 7 days.
- addons NCD: wigii-ncd-build.cmd: compresses wigii-ncd-core.css
- PhpStdFL: add md5 FuncExp
- PWA: upgrade to font-awesome to 6.2.1
- PWA: fix refresh current folder
- PWA: upgrade groupPanelSummary to correct ul li html structure
- WigiiCoreExecutor: bindJsServicesOnModuleView: supports jsCode and htmlAttrExp xml configuration attributes on module view activities (listView,blogView,calendarView,kanbanView)
- AttributeExpConfigController: prevents js caching if regExpFilter or prefixFilter
- RecordEvaluator: saveMatrixTo, saveElementFieldsTo: supports injection of fieldValuesMap to update other element fields or add element dynamic attributes.
- Rise MoveForward: mf.ObjVisibleState: fixed show method in case of single state view
- header.wncd.php: adds constant WNCD_RISE_MF to load wigii-rise-ncd.js / Move Forward lib
- Rise NCD: publishes minimized version of wigii-rise-ncd.js

14.12.2022   Wigii 4.902 R2_329

- new configs parameter cutImage on fields of type Files to automatically reduce image size on upload
- new FuncExp getImageSrc to get the source of an image attached to an element encoded as base64
- new FuncExp cfgAttrPrintTemplates to enable print template selection
- EmailServiceWebImpl: For emails from address, uses in priority SMTP_fromAlias defined in configuration, then user defined from address.
- WigiiEmailWebImpl: added getFromLabel method
- start.php, start_cli.php: add DISABLE_EMAILSERVICE_SENDING parameter to tell EmailService not to send any emails outside. Emails are marked as sentDisabled in EmailService table.
- TechnicalServiceProvider: htmlPurifier: enables embedded base64 images

29.11.2022   Wigii 4.901 R2_322

- WigiiCoreExecutor: implement HTTP OPTIONS verb for CORS preflight requests
- WigiiForm.js: TimeRanges: timeslot chooser: opens for integrated new subscriptions
- WigiiForm.js: fix subitems refresh
- remove bootstrap from wigii-complement.js
- Blobs: enables displayAsQR
- EditElementFormExecutor: addAutoSaveJSCode in external access: fix submit url parsing
- WigiiAPI.js: FieldHelper: setValue: supports radio buttons; setBaseValue: fixed for url data type.
- liveMonitoringStatusReport.tpl: makes it mobile friendly
- PwaFormExecutor: fixed display of cover page if Group_portalAction is defined

18.11.2022   Wigii 4.900 R2_313

- Wigii compatible with PHP 8.1
- WigiiBPL: groupSyncElementsWithFileSystem: keep linkGroupToFolder=true/false in whole folder hierarchy
- AddSubscriptionFormExecutor: supports integrated new subscriptions
- WigiiCMSElementEvaluator: add wigii-complement.js management
- WigiiAPI.js: FieldHelper: setValue: supports Attributs displayed using checkboxes
- WigiiExecutor.js: supports cross-origin Wigii backend services

09.11.2022   Wigii 4.861 R2_297

- WigiiCoreExecutor: add integratedNewSubscription case to allow management of subscription directly from Wigii Web CMS
- WigiiCoreExecutor: add method shouldAnswerBeUpdating
- ExecutionServiceImpl: switches to isUpdating if shouldAnswerBeUpdating for current action
- PHP 8.1 migration of various core components

01.11.2022   Wigii 4.860 R2_293

- ElementServiceImpl: unshareElement: fix unshare of inexisting groups
- fix defaultView for calendarView
- _cliImplExecutor/main.php: added CLIENT_WEB_PATH and CLIENT_WEB_URL for logo print
- ElementFileAdminService: createFileName: fixed temp file name generation in case of CLI usage
- PhpStdFL: trim: fixed args evaluation
- function cutImage: migrate to PHP 8.1
- EditUserFormExecutor: migrate to PHP 8.1
- allow + sign in emails
- new FuncExps: lxContainsId, trim

10.10.2022   Wigii 4.859 R2_284

- Attributs_displayValue.tpl, Attributs_displayForm.tpl: isTimeline: migration to PHP 8.1
- navigationBar.bsp: searchSummary: controls max-height
- PWA: separate groupPanel and moduleView
- PWA: start of management of add/edit form cycle
- ckeditors: correct unnecessary padding on right in ul list
- theme.css: add class Orange

14.09.2022   Wigii 4.858 R2_273

- WigiiCoreExecutor.php: file download: ensures file name is encoded and on a single line.
- FormExecutor.php: resolveFieldDynamicAttributes: takes into account current flow name for PWA.
- DetailRenderer, FormRenderer: resolveHtmlAttrExp: protects against HTML injection
- TemplateRecordManager: labelExp resolution: fallbacks to WigiiBPL if no record attached
- WigiiAPI.js: ceilTo: handles negative numbers in absolute space
- _cliImplExecutor/WigiiScheduledBatch.php: scheduleWigiiRequestAtTime: pauses 2 seconds after each http request to let things calm down.
- add PWA_write constant in index.php used with ExecutionService->isPWAClientWrite()
- PWA file preview with window.location option, filename displayed correctly
- FormBag: migrating to PHP 8.1: forces empty string to null in case of numerics.
- WigiiMedidataFL, ElementEvaluator, functions: PHP 8.1 migration

08.09.2022   Wigii 4.857 R2_267

- WigiiAPI.js: TableLookupSense: added option filterDuplicates to only display first match in lookup index
- WigiiAPI.js: TableLookupSense: fixed dom indexing in case of multiple instances in same form
- Wigii API.js: FormHelper.elementId: fixed lookup in case of element detail in readonly.
- DetailElementFormExecutor: injects element ID in form div
- UserDetail, MatrixUserPListUserPListRenderer, MatrixUserPListRoleListRenderer, adminSearchBar.tpl, ChangePasswordFormExecutor: migrating to PHP 8.1
- WigiiWebSocketServer, WigiiWebSocketFL, BackendServiceFormExecutor: migrating to PHP 8.1
- dico.txt, MatrixUserPListAdminRenderer: fixed apos in help info in admin console
- PWA: fixed injection of FormExecutor in TRM; forwards uncatched exceptions to WigiiCoreExecutor for final handling.
- dico.txt: fixed noGroupFound duplicated entry.
- Include WNCD libraries in PWA
- addons/NCD: AutocompletionSense, UnorderedList: fixed dom indexing in case of multiple instances in same form
- RecordEvaluator: added FuncExp abs
- PhpStdFL: migrating to PHP 8.1

17.08.2022   Wigii 4.856 R2_261

- update FullCalendar from v3.9 to 5.11
- include Moment.js library as its own (no more included in FullCalendar)
- make initial version of calendar view in PWA

27.07.2022   Wigii 4.855 R2_258

- Attributs, MultipleAttributs: formatDisplay for attributeMatchExp: in case of public access, then returns no value if FuncExp cannot be executed.
- ElementPListExportExcel, ElementPListExportCSVPretty: takes into account ExcelExport_showTechFields=1 config parameter to export fields with no labels.
- WigiiCoreExecutor: externalAccess/edit: don't lock element in edit with autoSaveInPublic to make sure that form stays editable in case browser failed to send unlock on tab closing
- addons/Medidata/WigiiMedidataFL: attach prescriptions to Medidata invoices
- TemplateRecordManager: displayElementPListPreview: takes into account headersMap even if list is empty
- FuncExpVMStdFL: htmlBr: supports multiple br tags generation
- config.xml / SearchActivity / quicksearch: adjust submission timing to prevent loss of keywords
- detailElementToolsBar, elementBlog.tpl, elementCalendar.tpl, elementList.tpl, WorkZone.js: element copy function: copies element in current folder only, except if config parameter Element_copyWithOrganize=1
- AuthenticationServiceWebImpl: security enforcement
- FieldRenderer, cutImage, PHPExcel, adminSearchBar.tpl, PHPStdFL: migration to PHP 8.1
- EditElementFormExecutor, ElementPListExportXml, XmlPublishGroupFormExecutor, LineReaderDFA: migrating to PHP 8.1
- WorkZone.js: groupPanel: deactivate click on root group 0
- ElementEvaluator: cfgParam: fixed string conversion
- WigiiFL: persistCfgParam, persistCfgGroupParam: unquotes string literals before saving to XML.
- RecordEvaluator: duplicateOnField: shows duplicate element button only if field is already filled.

22.06.2022   Wigii 4.854 R2_248

- WigiiApi.js: new component TableLookupSense
- addons/NCD/wigii-ncd.js: AutocompletionSense: handles tab and enter key press; closes on blur; fixed esc key press; turns off browser autocompletion.
- addons/CampaignMonitor: migrating to PHP 8.1
- wigii core, PHPExcel, phpqrcode: Migrating to PHP 8.1

07.06.2022   Wigii 4.853 R2_240

- security fixes
- optimize display LINKS_TYPE_QUERY with automatic asynch fetch
- extends wigii-rise-ncd.js to handle mapZoom for AtelierEncode.ch

- migrate to php 8.1
- correct Blobs, Files, Texts, Urls and BlogView
- better manage Text and multiple language fields
- better manage navigation when no entries in folder
- correct multilanguage display (tabs and list view)

17.05.2022   Wigii 4.852 R2_225

- DataLinkBatch, DataLinkFormExecutor, example.config_DataLinkBatch.php, WigiiExecutor: new DataLink interface to export wigii data as CSV through https or files. Access is granted through a token. DataLinkBatch integrates with wigii scheduler.
- ServiceProviderCliImpl, ExecutionServiceCliImpl: stubs current WigiiNamespace and Module.
- ServiceProviderWebImpl: added method getWebExecutorClassForAction
- ModuleAdminServiceImpl: added method moduleName2ModuleUrl
- WigiiNamespaceAdminServiceImpl: added method wigiiNamespaceName2WigiiNamespaceUrl
- ValueObject: added configuration method setRestrictToHexaStrings
- StandardStatisticsDFA: fixed return data type to object instead of array in case of multiple statistics with no dimensions and one field.
- addons/CampaignMonitor: implement retry after curl connection timeout for CMSubscribersGetHistoryDFA
- WigiiCoreExecutor.php: openAsDialogForm: keeps activityDialog as a real dialog, even in docked environment.
- ElementPListRowsForElementBlogImpl: fixed display of comments linked to element status in blog view
- functions / float2time: display hours with no leading zero
- migration to PHP 8


New FuncExps: sysDataLinkOpenSession, sysDataLinkCsv

27.04.2022   Wigii 4.851 R2_219

- config.xml, DeleteElementFormExecutor, DeleteMultipleElementFormExecutor: delete activity: added extra confirmation when deleting elements shared into multiple folders
- PortalGroupFormExecutor, WigiiCoreExecutor, adminGroup.tpl, groupSelectorPanel.tpl: linkToWebAddress: allows edit only for group admins; allows to set file:// protocole only for ModuleEditors
- WigiiCoreExecutor, adminGroup.tpl, groupSelectorPanel.tpl: groupHtmlContent: allows edit only for group admins
- WigiiCoreExecutor: newSubscription: checks that group namespace matches current namespace
- WigiiBPL: added deleteGroup business process which deletes an empty sub-group if principal has write access.
- WigiiFL: cfgAttrGroupPList: supports showFullPathInLabel option to easily show a list of folders with full paths
- Migrating wigii core to PHP 8.1

New FuncExp: groupDelete

11.04.2022   Wigii 4.850 R2_216

- new functions: float2timeFraction, getCalendarBetween(startDate,enDate)
- MySqlFacade: tries to reconnect to DB if previous open connection has been closed on server side.
- Files_displayForm.tpl.php: migrating Box File picker to PHP 8.1
- Campaign Monitor: migrating to PHP 8.1; renewed cacert.pem file
- Guzzle: migrating to PHP 8.1; renewed cacert.pem file
- _cliImplExecutor/WigiiScheduledBatch: migrating to PHP 8
- Example/start.php, Example/start_cli.php: added optional parameter DB_FORCE_READONLY=true/false
- PrincipalRights: if DB_FORCE_READONLY, then PrincipalRights are always readonly, setting canWriteElement or canModify or canShareElement is ignored.
- navigationBar.bsp.php, PwaFormExecutor: if DB_FORCE_READONLY, then Admin roles are removed from user and admin menu is not displayed.
- footerBar.tpl.php: if DB_FORCE_READONLY, then indicates that DB is readonly in footer
- Example/DevEnvBanner.php: if DB_FORCE_READONLY, then indicates that DB is readonly in banner
- AddIndicatorFormExecutor: doSpecificCheck: returns if form has errors
- Migrating wigii core to PHP 8.1

31.03.2022   Wigii 4.849 R2_203

- ElementEvaluator: cfgCurrentListContextGroup: fixed null pointer exception
- FuncExpVMStdFL, CallbackDFA, StandardStatisticsDFA: migrate to PHP 8
- Activated ElementPListRowsForInfoElementImpl and ElementPListRowsForLatestElementImpl for client home pages
- ClientAdminServiceImpl: Wigii Encryption Layer: protects next file path to process by encoding it in base 64.
- _cliImplExecutor: added wigii_execBatch.sh

17.03.2022   Wigii 4.848 R2_197

- WigiiCoreExecutor: setMultipleSelectionFolder: if in memory filter, then keeps list view field selector list
- ElementSqlBuilder: fixed NULL check for MultipleAttributs
- Added class LogExpFieldSelectorExtractor to extract FieldSelectors from a LogExp and fill a given FieldSelectorList
- ElementPListRowsForPreview, CopySubElementFormExecutor, ElementSqlBuilder, GroupBasedWigiiApiClient, Html2Text : migration to PHP 8.1
- correct PWA for correct install and splash screen process
- CMS_config.xml: add parameter CMS_multiSites=0/1 to indicate if CMS module host several web sites in same WigiiNamespace.
- WigiiWebCMSFormExecutor: if CMS_multiSites=1 and error 404 (Page Not Found), then redirects to SITE_ROOT instead of default publicUrl.
- WigiiCMSElementEvaluator: getFileWebUrl: supports group config to have specific publicUrl for each web site in case of CMS_multiSites=1
- ClientAdminServiceImpl: migrate to PHP 8.1
- manifest.webmanifest.php: added short title also in app name to see it at install time

17.02.2022   Wigii 4.847 R2_165

- WigiiCoreExecutor: linkToWebAddress : if inwigii:// on activity then stores portal group rights as dynamic principal rights for activity
- ActivityFormExecutor: sends principal rights and origin of rights on client side
- AuthorizationService, AuthorizationServiceImpl: add dynamic ModuleEditor right; add dynamic rights on activities
- WigiiBPL: added method groupLinkToWebAddress
- ConfigServiceCoreImpl: implement persistParameter and persistGroupParameter methods; clears configFilesCache on clearSessionData
- ConfigServiceImpl: on clearConfigControllersSessionData, calls clearCache method on each dormant config controllers to ensure every in memory cache is cleared.
- IncludeConfigController: add clearCache method
- WigiiFL: ctlClearCache FuncExp: ensures to call clearSessionData on main ServiceProvider ConfigService
- FormRenderer, WigiiForm.js: fix js drop-down cache initial selection synchronisation for tags containing commas
- WigiiCoreExecutor: operationSuccessfullMessage: add 5px margin-top for activity docked message display
- FuncExpBuilder: object2fx method: when serializing arrays, chooses either 'newList' or 'newMap' FuncExp according to array key nature (numerics starting with 0 will result in newList, other will result in newMap); replaces null arrays by NULL.
- DbAdminServiceImpl, RecursiveDeleteRowState, IdListMapper: PHP 8 migration
- dico.txt: Renamed Dimensions label to "Lists and parameters"; added new icon for module Dimensions
- add str_cutHTMLContents in functions.php

New FuncExps: ctlSeqWriteConfig, persistCfgParam, persistCfgGroupParam, setValByLabel, getValByLabel, activityRights, activityRightsOrigin, recurringFsl, object2fx

PWA client package with:
- new icons and visuals
- management of wide view or narrow view
- management of cover page, portal
- initial management in listView and BlogView, including resolution of paging

04.02.2022   Wigii 4.846 R2_156

- 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
- LogExpAnd, LogExpOr:: addOperand: supports adding an array in one shot.
- FuncExpVMStdFL::fxInclude: fixed inclusion path if located in client config folder
- migrate Admin console to PHP 8
- New FuncExp: cfgAttributValue

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