ub-server #

Added #

5.16.0 2019-09-24 #
  • server can be started in authMock mode by passing --authMock in the command line (ub --authMock) This mode is designed for testing UB from tools what do not support complex calculation requred for authorisation and authentication:
    • authentication will not use a cryptography random for nonce generation, instead nonce is always === 1234567890abcdef
    • sessions ID will always starts from 100 and increased continuously 101, 102, etc (instead of random int)
    • Authorization header calculation do not require to include a continuously growing request counter (can be const across all requests inside one session)
    • session signature part of Authorization header not verified (can be constant)
    • checking of IP equality for authorization and authentication requests for session is disabled
    • auth response JSON includes authHeader field what can be used for Authorization: header value for all future request for this session In this mode after session is created any UBQL can be executed by POST request with 2 header:
    • "Content-Type" = "application/json"
    • "Authorization"= "UB 000000680000000000000000" where "00000068" is a session number in hex (first user session is 104 = 0x68) Full request can be simply copied from browser network tab as CURl etc
5.15.3 2019-09-19 #
  • ability to set log file path (logging.path) to the specified file and disable log rotation by setting logging.rotationSizeInMB to 0. So under unix logrotate can be used for log rotation tasks.

Changed #

5.15.4 2019-09-22 #
  • getDomainInfo endpoint optimization: nativeGetDomainInfo can wrote domain directly into HTTP response instead of serializing it to/from JS engine. This save up to 70ms on huge domains
  • use postgresql11 inside docker container for UB instead of postgresql10
5.15.2 2019-09-13 #
  • auto-generated attribute for reverse link from entity to unique association is marked as allowNull: true and defaultView: false

Fixed #

5.15.2 2019-09-13 #
  • deletion will work correctly for entities with tree mixin: this fix issue Parameter "ID" is required for method "delete" introduced in 5.14.6

@unitybase/adminui-vue #

Added #

1.6.38 2019-09-19 #
  • Callback saveNotification is added to UForm.processing parameters - will override default save notification
1.6.35 2019-09-17 #
  • basic support for dataHistory mixin: only creation of new rows. TODO - implement adding of a new row version
1.6.31 2019-09-12 #
  • SET mutation is exposed by adminui-vue. It need when you use computedVuex in store module
  • USelectEntity, USelectMultiple click outside dropdown
  • clickOutside util which listen click not one but several dom elements and call's hide callback only when click target is not equal any passed dom element
1.6.30 2019-09-11 #
  • in case props.parentContext is passed to Form() values of parentContext will became a default values for a new row (passed to addNew method). Sample below calls a Vue form in NEW mode (instanceID not defined) and sets value of docID attribute to 123
  $App.doCommand({
    cmdType: 'showForm',
    entity: 'doc_controltask',
    formCode: 'doc_controltask_form',
    isModal: true,
    props: {
      parentContext: { docID: 123 }
    }
  })
1.6.28 2019-09-09 #
  • SET_DATA mutation of the "instance" module supports now the path argument, which shall be used for JSON attributes, example:
 commit(
   'SET_DATA',
   {
     key: 'attrValues',
     path: 'myCustomAttr',
     value
   },
   {root: true}
 )
  • update "instance" module, the recognize if JSON attribute was changed or not
  • optimize work of isEqual function of the "instance" module for array values

Changed #

1.7.0 2019-09-27 #
  • update package element-ui@2.12.0 and element-theme-chalk@2.12.0
  • production build now works on browsers for WinXP (Chrome 48/ FireFox 52). It's done by:
    • adding a core-js polyfills for missing things (+122 Kb boundle size) - see .babelrc
    • replacing DOMElement.append -> DOMElement.appendChild
    • remove object rest spread where possible
  • 1.7.x is the LAST version what supports WinXP. Polyfills WILL BE REMOVED IN 1.8.0
1.6.38 2019-09-19 #
  • BREAKING UForm.validation now accept config for vuelidate mixin instead of function what returns $v
.validation({
 computed: {
   code () {
     return this.$store.state.data.code
   }
 },
 validations: {
   code: { required }
  • BREAKING USelectCollection added required prop entityName it pass the entity name of the collection
  • BREAKING USelectCollection prop subjectAttr renamed to associatedAttr
  • instance/addCollectionItem missed call of repository function
  • UContextMenu do not closed just after opening in Firefox
1.6.34 2019-09-17 #
  • changes in how collections state item is handled in vuex store:
    • do NOT pass unneeded parameter "collection" from client to server - the parameter is not needed by server, but is passed only to help client to match response with request
    • assume repository is a factory function, and not the ready repository object, change all over processing module   to reflect that. For backward compatibility, support the old way of supplying repository object, but output a warning to console:
      collections: {
        todo: {
          repository: ({state}) => UB.connection
            .Repository('tst_dictionary_todo')
            .attrs('ID', 'objectID', 'name', 'status', 'link')
            .where('objectID', '=', state.data.ID),
          lazy: true
        }
      }
      
    • refactorings to simplify code: inline initCollections helper method, no need for it   to be in helpers, add enrichFieldList, because in some places we need to make sure   some system attributes are added to requests, such as ID or mi_modifyDate; inline buildCollectionRequests straight into save.
    • improve jsdocs
    • expose buildDeleteRequest in helpers and remove buildCollectionRequests from helpers.
    • when iterate collections, use initCollectionsRequests - metadata about which collections are there, instead of using store.collection - state info; this shall be more reliable.
1.6.31 2019-09-12 #
  • BREAKING - UDetailGrid rewritten, now only works on readonly

Fixed #

1.6.41 2019-09-26 #
  • removed async-to-promises babel plugin - buggy
1.6.40 2019-09-26 #
  • added support for old Chrome browser what can run on WindowsXP by using async-to-promises babel plugin
1.6.39 2019-09-25 #
  • instance module SET_DATA mutation, fix bug when assign a value to JSON attribute, and there is null instead of a regular object value. Assign an empty object in any scenario, when value is not already an object or when value is null.
  • instance module, comparison array to null or object to null now works without exceptions
1.6.38 2019-09-19 #
  • UForm.validation computed.mapInstanceFields maps all entity fields. Previously only required fields
1.6.33 2019-09-16 #
  • Form/helpers/mergeStore merge modules, plugins and strict in store config
  • Full Text Search widget will wrap text to search into "" in case it starts from - fix [UBDF-9971]
  • Refresh action for new record: pass a new row ID to load method instead of instanceID what undefined. This fix error on refresh Where item with condition "equal" must contains "value" or "values" [UBDF-10109]
1.6.32 2019-09-13 #
  • duplication of store data in tabs in case store config with actions is provided as object to Form with state as a function
  • async function declaration removed from code - it's not transpiled to ES5 & do not work on Chrome under Windows XP
  • async function helpers.hookWrap is removed (replaced by function.prototype.call where used)
1.6.31 2019-09-12 #
  • duplication of store data in tabs in case store config is provided as object to Form with state as a function
  • Form/validation undefined store when custom validation is used
1.6.30 2019-09-11 #
  • prevent creation of empty Form life-circle hook functions (optimization)
  • prevent call 'lock' method for new entity instances with softLock mixin (should be called only for existed instances)
1.6.29 2019-09-10 #
  • prevent browser autocomplete in fields inside UFormContainer by adding autocomplete = 'off'
  • Form the problem when store config didn't override instance and processing methods

@unitybase/adminui-pub #

Added #

5.11.0 2019-09-28 #
  • new property BasePanel.lockOnSave to change a default softLock mixin behavior:
    • if true then lock() is called JUST BEFORE save operation and unlock() is called just after save operation
    • if false|undefined lock() is called when user starts to edit form or creates a new record. While user edit a form lock renewed until form is opened and while the form is in edit mode
5.10.18 2019-09-04 #
  • new configuration parameter adminUI.pdfViewer.customURI. If defined then specified URL expected to be an html page URL what can be loaded inside iframe and display a PDF. Inside URL following placeholders can be used:
    • {0}: will be replaced by encodeURIComponent(blobUrl);
    • {1} - user language;
    • {2} - instanceID

Examples:

  • PDFJs viewer: /clientRequire/@docflow/doc/public/node_modules/pdfjs/web/viewer.html?file={0}#locale={1}
  • PDF with annotations: /clientRequire/@docflow/pdf-annotate/dist/index.html?file={0}&docID={2}#locale={1}

Changed #

5.11.0 2019-09-28 #
  • several patches for winXP (Chrome 48 / FireFox 52) compatibility:
    • replacing DOMElement.append -> DOMElement.appendChild
    • Promise.fin -> Promise.finally + Promise.finally polyfill for old browsers
    • Promise.done(..) -> Promise.then(..); Promise.done() -> nothing to do - just removed such calls
    • object rest spread ( {...obj} ) -> Object.assign({}, obj)
  • 5.11.x is the LAST version what supports WinXP. Q, bluebird, Promise.fin, Promise.done and unhandledpromiserejection polyfills will be removed in @unitybase/adminui-pub versions what > 5.11.x

Fixed #

5.10.20 2019-09-11 #
  • in case uiSettings.adminUI.pdfViewer is not defined do not add a undefined to the end of PDF viewer URL
5.10.19 2019-09-09 #
  • tinymce version fixed to 4.9.5. In version 4.9.6 there is a problem tinymce detected as amd but didn't execute correctly

@unitybase/base #

Added #

5.1.28 2019-09-28 #
  • @unitybase/base.ubVersionNum property - a Numeric representation of process.version. For example if process.version === 'v5.14.1' then ubVersionNum === 5014001; Useful for feature check

@unitybase/cdn #

Added #

5.3.0 2019-09-16 #
  • cdn_classifier & cdn_classifierType - entities that provide ability to user to classify some entity in many ways, this is like user defined expandable dictionaries
  • cdn_language - list of languages according to ISO-639-1

Changed #

5.2.12 2019-09-11 #
  • cdn_currency.name size to 65 and cdn_currency.description size to 128

Fixed #

5.3.3 2019-09-19 #
  • explicitly specified fieldList for cdn_employee & cdn_person shortcuts to prevent lookup on potentially huge cdn_organization
5.3.1 2019-09-17 #
  • Field 'level' renamed to 'hierarchyLevel' because 'level' is a reserved word in Oracle - so this field breaks ddl generation for Oracle database
  • Forms for entering classifiers were missing

@unitybase/cs-shared #

Added #

5.1.9 2019-09-24 #
  • UBSession.signature can return a fake signature if authMock parameter is true

@unitybase/org #

Fixed #

5.2.17 2019-09-18 #
  • logon event handler will not add a staff units ID for deleted employee; Situation is possible when one userID assigned to different employee and one of employee is deleted

@unitybase/ub-pub #

Added #

5.3.22 2019-09-24 #
  • AsyncConnection now support authMock mode (if server started with --authMock switch)
5.3.21 2019-09-18 #
  • AsyncConnection method queryAsObject, which acts as query but returns array of objects

@unitybase/ub #

Added #

5.2.35 2019-09-19 #
  • documented ability to set log file path (logging.path) to the specified file and disable log rotation by setting logging.rotationSizeInMB to 0
  • logging.threadingModel is marked as deprecated

Fixed #

5.2.37 2019-09-28 #
  • getDomainInfo endpoint now compatible with UB server <= 5.16 (compatibility broken by @unitybase/ub@5.2.36)
5.2.36 2019-09-22 #
  • getDomainInfo endpoint optimization: starting from UB 5.15.4 nativeGetDomainInfo can wrote domain directly into HTTP response instead of serializing it to/from JS engine. This save up to 70ms on huge domains
  • authMock property added (if server started with --authMock switch) to getAppInfo endpoint response
5.2.35 2019-09-19 #
  • added a documentation for model configuration parameter for aclRls mixin

@unitybase/uba #

Added #

5.3.3 2019-09-19 #
  • Azery localization for uba_usergroup.meta

@unitybase/ubcli #

Fixed #

5.3.42 2019-09-17 #
  • Oracle DDL generator - do not wrap enum group into quotes when update a value for enum column from null to not null
5.3.41 2019-09-16 #
  • Oracle DDL generator - do not wrap enum group into quotes when update a value for enum column with not null

@unitybase/ubm #

Fixed #

5.2.16 2019-09-20 #
  • added localization for shortcut form editor caption

@unitybase/xlsx #

Fixed #

5.1.0 2019-09-11 #
  • export to excel works without Cannot read property 'length' of null exception