ub-server #

Added #

5.20.10 2021-11-14 #
  • new method process.terminationRequested() - return true in case process should be terminated ASAP.
    Long-running jobs should call this function and, it returns true stops if possible. For example as in code below:
    const rows = UB.Repository('..').selectAsObject() 
    for (let i = 0, L = rows.length; i < L; i++) {
      if (process.terminationRequested()) break;
      // code what do a long operations with data from row 
    }      
    

See @unitybase/ubq/ubqMailJob.js for real life usage example - there we terminate a mail scheduler without waiting all 100 pending mails sends.

  • AppBinding.removeUserSessions - second parameter exceptCurrent: boolean is added. If exceptCurrent is true - current user session is not removed, but all other with the same userID does (logout all other sessions except my).
5.20.9 2021-11-05 #
  • ubConfig support up to TWO level of nesting ifdef's by using //#ifdef1 .. //#endif1 and //#ifdef2 ... //#endif2
    //#ifdef(%UB_ENABLE_ENOT%=true)
    {
      "name": "secondConn",
      "driver": "Oracle",
      "serverName": "%UB_DB_ENOT_SERVER%",
      "userID": "%UB_DB_ENOT_USER%",
      "password": "%UB_DB_ENOT_PWD%",
      //#ifdef1(%UB_LOCALE%=BINARY)
      "executeWhenConnected": [
          "ALTER SESSION SET NLS_COMP=LINGUISTIC",
          "ALTER SESSION SET NLS_SORT=BINARY_CI",
          //#ifdef2(%UB_DB_STATEMENT_TIME_LIMIT%)
          "DECLARE prev_group VARCHAR2(30); BEGIN DBMS_SESSION.switch_current_consumer_group ('%UB_DB_STATEMENT_TIME_LIMIT%', prev_group, TRUE); END;"
          //#endif2
      ]
      //#endif1
    }
    //#endif
  • native: allow read access to JSArgRec.rval

@unitybase/adminui-vue #

Added #

5.20.32 2021-11-23 #
  • UTable - implemented sorting in the browser (sorting prop). Without request to server
  • UTableEntity, UTable - added hooks that is called before selecting an item and before deselecting.
  • UTableEntity, UTable - right click on row will select it. In multi-select mode all others selected rows are deselecting
  • UTable - added tab-navigation and selecting using Space (in multi-select mode)
  • Processing module: new option skipNotify for refresh action
    this.$store.dispatch('refresh', {skipNotify: true})
    
    This won't show notification message, sometimes this message is not desirable.
5.20.30 2021-11-14 #
  • new UFieldSet component - A Form building block what visually groups together several controls. To be used instead of el-card / Ext.form.FieldSet
  • UTable - Added data sorting by column, without a request to the server. - Work In Progress - to be implemented in next release. See UTable UI doc
  • UTable - added multi-select functionality. See UTable UI doc
  • UTableEntity - added multi-select functionality. See UTableEntity UI doc
  • new ubConfig parameter application.uiSettings.adminUI.lookupCacheRefreshIntervalSec - a timeout (in seconds) after which pressing a "Refresh" in UTableEntity will refresh a table data AND lookups caches for entities used by current table. Default is 0 - do not refresh lookups. WARNING - entities with Session and SessionEntity cache type will not be refreshed.
  • UTableEntity filters: for columns of type Entity and Many added the ability to set a repository for a dropdown list (dropdown filter)
  • UTableEntity ability to register custom cell templates for columns globally and use them through the customSettings.columnTemplate of the column attribute
  • BREAKING adminui-vue/components/UTableEntity/type-provider.js should not be used anymore (removed):
 // instead of
 const TypeProvider = require('@unitybase/adminui-vue/components/UTableEntity/type-provider.js')
 TypeProvider.registerType({...})
 // use
 const { columnTemplates } = require('@unitybase/adminui-vue')
 columnTemplates.registerTemplate({...})
  • UTableEntity: the ability to use another entity attribute for exporting. To make it there is a new column setting exportExpression. If this setting is passed, row value for exporting for this column will be substituted - load the column.exportExpression instead of the column.id

Changed #

5.20.32 2021-11-23 #
  • UTableEntity, UTable - selection using left click works only on cell with checkboxes (not on whole row as before)
5.20.30 2021-11-14 #
  • UTableEntity: lookups are loaded in parallel to speed-up table loading
5.20.29 2021-11-05 #
  • UTableEntity.store: action showRevision renamed to showRecordHistory; both UTable and Form uses the same function to show record history
  • UTableEntity filters: for columns of type Entity, Many and Enum 'in' condition caption is renamed from contains to one of

Fixed #

5.20.32 2021-11-23 #
  • UTableEntity - fixed selection bug when user changed view from table to card and back
  • aclRlsEntry-fm form: filtering of dropdown entries by entered query text in some u-select-multiple control [LDOC-1823]
  • Messages widget: use "unshift" instead of "push" to put most recent message at the top of list
  • UTableEntity store - fixed refresh of one row in case repository contains custom where condition (fix is in LocalDataStorage)
  • UNavbarNotificationsButton: add localization for the new message notification
5.20.31 2021-11-17 #
  • opening of the form for existing entry of aclRls mixin - the form will be in the readonly mode. Access entries can be only added or removed not edited
5.20.30 2021-11-14 #
  • UFileWebcamButton: fixed bug when the background overlaps the content of the modal by adding attribute append-to-body for dialog
  • UTableEntity filters. Fixed error when single value selected for "many" type field
  • processing.save: in case als mixin assigned to the entity processing.save adds information about als to the alsInfo object in vuex state
5.20.29 2021-11-05 #
  • UTableEntity: fixed exclusion of autogenerated Repository attributes with property defaultView: false in case neither attributes nor Repository is specified
  • USelectEntity: elements, added using addNew action will be selected only by component what calls an addNew. Before this fix values in all USelectEntity for the same entity as in caller on all open forms are changes a selection
  • Full Text Search result - "View Mode" toolbar action now hidden - there is no preview form for FTS [UBDF-14077]
  • Full Text Search result - "Export to Excel" removes HTML tags from cells values [UBDF-12565]
  • Form fabric function for auto forms accept onClose callback (as for non-autoforms), so
 App.doCommand({cmdType: 'showForm', formCode 'some-form', onColse: (ID, state) => {..})}

will call onClose callback for any form type (autoforms, Ext and Vue)

@unitybase/adminui-pub #

Added #

5.20.29 2021-11-05 #
  • Stored Data -> Reset GUI settings user menu will clear stored filters and sort orders for Vue UTableEntity (in addition to Ext Tables)

Changed #

5.20.31 2021-11-23 #
  • UB.view.UB DropZone: changed permissions for operation drag-and-drop, to prevent drop links into document attributes.

Fixed #

5.20.29 2021-11-05 #
  • ExtJS based form (BasePanel) will emit newversion, update and insert events for UB.connection with payload, contais all form attributes (as Vue based forms does), instead of payload what contains only ID. This fix [UBDF-14305]
  • Audit Trail UI Table -> Audit action now hidden [UBDF-11338]

@unitybase/blob-stores #

Added #

5.20.20 2021-11-23 #
  • internalWriteDocumentToResp now has optional additional parameter skipRls. Must be used with care! Caller of the method is responsible for security checks.
5.20.18 2021-11-05 #
  • when multitenancy enabled stored paths will now contain the tenant code

@unitybase/cdn #

Removed #

5.20.29 2021-11-05 #
  • cdn_person.identCard (Person's identity card) - removed multi-language support for attribute (does not make sense)

@unitybase/compressors #

Fixed #

5.2.7 2021-11-23 #
  • UZip.file accept incoming data of type ArrayBuffer in addition to TypedArray and Buffer
5.2.6 2021-11-17 #
  • UZip produce zip archive with Unix as "operating system of origin" - this fix displaying of unicode file names inside archive for most ZIP tools

@unitybase/cs-shared #

Added #

5.20.7 2021-11-23 #
  • Functions formatByPattern.registerDatePattern and formatByPattern.registerNumberPattern that register custom named date and number patterns for use in formatByPattern.formatDate and formatByPattern.formatNumber
 // format Date for New_York time zone
 $UB.formatter.registerDatePattern('dateTimeInNewYork', {
    month: '2-digit', day: 'numeric', year: 'numeric', hour: '2-digit', minute: '2-digit',
    timeZone: 'America/New_York'
 })
 $UB.formatter.formatDate('dateTimeInNewYork', new Date()) // now in New York
  • Functions formatByPattern.getDatePattern and formatByPattern.getNumberPattern that return registered date and number pattern by name

Changed #

5.20.7 2021-11-23 #
  • LocalDataStorage.doFiltration - 3'nd argument semantic changed from skipSubQueries to skipSubQueriesAndCustom. This allows to estimate record match most of where conditions in client-side.

Fixed #

5.20.6 2021-11-05 #
  • fixed refresh of UTableEntity what based on Repository with subquery (by correctly skip handling of subquery on the client side)

@unitybase/mailer #

Fixed #

5.5.12 2021-11-23 #
  • non-english file names of attachments now displays correctly (at last in GMail and Outlook) - fixed inside synapse40 library

@unitybase/org #

Added #

5.20.29 2021-11-05 #
  • org_employeeonstaff_all shortcut - enable __mip_recordhistory_all misc and add a columns [mi_dateForm] and [mi_dateTo]

Changed #

5.20.29 2021-11-05 #
  • English localization of the ORG_UNITTYPE.EXECGROUP enum item: Execution Group => Executors Group

Fixed #

5.20.29 2021-11-05 #
  • org_employeeonstaff and org_employeeonstaff_all shortcuts - fixed error "Rendering slot is not defined for columns [staffUnitID.caption] and [employeeID.fullFIO]

@unitybase/pdf #

Changed #

5.2.4 2021-11-14 #
  • PrintToPrf.js - removed dependency from $App, so unit can be used in environment w\o adminui-pub (w\o ExtJS)

@unitybase/ub-pub #

Changed #

5.9.18 2021-11-05 #
  • ClientRepository with __mip_recordhistory_all misc will bypass a client cache

@unitybase/ub #

Added #

5.22.19 2021-11-14 #
  • App.removeUserSessions - second parameter exceptCurrent: boolean is added (ignored for UB server < 5.20.10). If exceptCurrent is true - current user session is not removed (logout all other sessions except my). Can be used inside Session.on('login') event handler to allow single session for each user mode:
const UB = require('@unitybase/ub')
const Session = UB.Session
const App = UB.App
Session.on('login', logoutAllMyOldSessions)
/**
 * One user - one session mode
 * @param {THTTPRequest} req
 */
function logoutAllMyOldSessions (req) {
  if (App.removeUserSessions(Session.userID, true)) {
    console.log(`All other sessions for user ${Session.userID} are removed`)
  }
5.22.18 2021-11-05 #
  • Session.hasRole(roleName) method added - a fast O(1) checks if the current user is a member of the specified role
const UB = require('@unitybae/ub')
const Session = UB.Session
if (Session.hasRole('accountAdmin')) {
  console.debug('current user has \'accountAdmin\' role')

@unitybase/uba #

Added #

5.20.29 2021-11-05 #
  • audit trail form will show changes for all mixin-attributes (mi_dateFrom, mi_dateTo and others). Before this fix, only mi_wfState attribute was displayed. After this only attributes, added by mStorage mixin are omitted.

Changed #

5.20.29 2021-11-05 #
  • localizations of uba_group entity caption: Groups => User Groups, Групи => Групи користувачів...

Fixed #

5.20.29 2021-11-05 #
  • typo in the description of the targetGroup attribute of uba_audit entity

@unitybase/ubcli #

Changed #

5.21.26 2021-11-23 #
  • ubcli migrate does not skip migration for files with version === current memorized DB version. This allows adding a new migration script and apply migration for the same version many times. WARNING - do not modify an existed and already applied migration scripts - instead either create a new one or rename existed script (if it supports re-execution) and change renamed one.

@unitybase/ubq #

Added #

5.20.30 2021-11-14 #
  • terminate mail scheduler job ASAP, without waiting until current 100 pending mails sends, in case process termination is requested. Require UB@5.20.10, for older server version will work as before (wait until current 100 pending mail sends)
  • terminate async FTS scheduler job ASAP, without waiting until current 1000 pending fts tasks is handled, in case process termination is requested. Require UB@5.20.10, for older server version will work as before (wait until current 1000 pending tasks done)

Changed #

5.20.29 2021-11-05 #
  • ubq_messages nav shortcut - explicitly define fieldList as ["mi_createDate", "queueCode", "completeDate", "msgCmd"] for better UX
  • mail job will retrieve ubq_messages.msgData CLOB (a message body) one record at once. This prevents <<<ERR_RESOURCE_LIMITS_EXCEED>>> error in case overall size of mail bodies for 100 queued messages exceed 50Mb [UBDF-14156]

Fixed #

5.20.31 2021-11-23 #
  • typo in the code of ubqFTSJob scheduler which led to the failure of the ubqMessages.success method due to the loss of message ID

@unitybase/ubs #

Changed #

5.20.29 2021-11-05 #
  • UBReport.js: removed dependency from @unitybase/adminui-pub, so client-side reports can be used in shells other when adminui-pub

Fixed #

5.20.31 2021-11-23 #
  • Message history (ubs_message form) - show data and time instead of just date for messages; some minor fixes in en localization; ubs_message - fix getCached method for scenarios, when it actually used to take version into account.