@unitybase/adminui-vue #
Added #
5.20.2 2021-03-31 #
- USidebar: improved UX by adding a different background color for different nesting level and mark an expanded
groups. For themas colors can be customized using
--l-sidebar-depth-?
CSS variables and selectors overdata-ub-level="?"
HTML data attributes
5.20.0 2021-03-25 #
- UTableEntity: icon for "No sorting" option in the column sorting menu added
5.19.8 2021-03-23 #
- default authentication form (ub-auth.html) handle a
uiSettings.adminUI.forgotPasswordURL
parameter from config. In case parameter is empty or not exists (default) then forgot password link do not displayed on the authentication form. Otherwise, a link to the specified URL is displayed
5.19.6 2021-03-15 #
- UTableEntity. Added label localization in card view (UCardView)
- UButtonGroup. Added the new prop
direction
with two optionshorizontal
by default and the newvertical
one - UDropdown. Added the new prop
refElement
for used to position the popper
5.19.5 2021-03-03 #
- Checking
uiSettings.adminUI.disableScanner
config property inUFile
andUNavbarUserButton
. If true, then scan buttons are hidden in toolbars - UCrop: new component for edit images: crop, rotate, flip
- UFileWebcamButton: drop down menu for choose the working regime:
scan to PDF
orscan to Picture
,scan to PDF
: save one or more images to the PDF file, also added ability to edit images after shoot by UCrop editor
Changed #
5.20.1 2021-03-29 #
AutoForm
is renamed toUAutoForm
5.20.0 2021-03-25 #
- migrate build to webpack5
5.19.6 2021-03-15 #
- UTableEntity: click on column now show a sorting direction popup under cursor (not under toolbar sort button as before this changes); in this regime sorting direction popup is simplified (column name is removed, buttons aligneg verticaly)
5.19.5 2021-03-03 #
- client-side locales reformatted to use a json. Auth page now inject
/models/ub-pub/locale/lang-${conn.preferredLocale}.json
instead of js. - replaceShowList: pass
hideActions
property toUTableEntity
instead of buildscopedSlots
with emptydiv
for it - UTableEntity
showSummary
action changes:column.attribute.id
used instead ofcolumn.attribute.code
- this allows calc a summary for attributes with dots, likeitemID.price
- allow specifying aggregation function for columns using
column.summaryAggregationOperator
property - one of'SUM'|'MIN'|'MAX'|'AVG'|null
. By defaultSUM
type is specified for Number columns - exporting table to Excel takes into account summaryAggregationOperator for columns
- summary can be explicitly disabled by sets
column.summaryAggregationOperator
to null. Example:
<template>
<u-table-entity
entity-name="shop_OrderItem"
:columns="columns"
</template>
<script>
export default {
data () {
return {
columns: [
'ID',
{
id: 'price',
summaryAggregationOperator: 'MIN'
},
{
id: 'orderID.version',
summaryAggregationOperator: null
}
]
}
}
</script>
Removed #
5.20.1 2021-03-29 #
- usage of
@babel/plugin-proposal-object-rest-spread
is removed from production build. Constructions like
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }
is supported by all modern browsers.
Fixed #
5.20.1 2021-03-29 #
USelectEntity
: In case value-attribute is specified for u-select-entity an attempt to edit selected entry: old behavior - causes an error because of invalid instanceID; new behavior - opens edit form correctly
5.20.0 2021-03-25 #
USelectEntity
: In case value-attribute is specified for u-select-entity (e.g. :value-attribute="code") and the desired value is selected from dictionary then display attribute cannot be found and: old behavior - ID is shown; new behavior - value is shown corectly- use
SystemJS.import('@unitybase/pdf')
instead ofSystem.import('@unitybase/pdf')
to prevent webpack including a pdf package into adminui-vue bundle UFileWebcamButton
: computed propertyisDisabled
must return value of typeboolean
to prevent a console warnings in dev modelookups
: the loading of lookups entries waits for another loading of entries for the same entity if it is not completed yet. This prevents parallelism bug, which happens when severalUTableEntity
controls load lookups for the same entity and only the first one awaits thesubscribe
method and displays columns usinglookups
correctly- added a cleanup of a dist folder before create a production build to remove unnecessary artifacts of previous build from resulting package
5.19.8 2021-03-23 #
- UNavbar: fix scrollIntoView in case several navbars are added by apps (as reported by protoka devs)
5.19.7 2021-03-16 #
- Fix
utils/Form/helpers.js
date value comparison
5.19.6 2021-03-15 #
- use the same field list for
ubm_form
andubm_enum
in adminui-pub and adminui-vue UTableEntity
showSummary action now works for cached entities [LDOC-1168]. Fixed by adding a.misc({__mip_disablecache: true})
to the summary repository (LocalDataStorage can't calculate SUM etc.)UTableEntity
: for cached entities filter bystartWith
/notStartWith
now case-insensitive (as for non cached one). Actual fix is in@unitybase/cs-shared.LocalDataStorage
.
5.19.5 2021-03-03 #
UTableEntity
- fix logic for alternate names forhide-actions
property forcopy
andlink
- replaceShowList: pass object properties to a column only if it is defined. Its prevent a bug when column
sortable
andfilters
properties is not defined in UTable UTableEntity
: allow refreshing an edited row for tables what based on the UBQL with sub-queriesUSelectEntity
: loading display value waits for another loading display value operation for the same control, if it not completed yet, this prevents parallelism bugs, which happens if value of the same control change several times fast enough- prevent exception in case client localisation of ub-pub model not found for user preferred language.
replaceShowList
: fixed incorrect display of theUTableEntity
columns header received from the cache- "@popperjs/core" version locked to "~2.8.6" - there is unexpected behavior in 2.9.0 (in dev mode)
- UFile: disable webcam capture button if control is disabled or webcam not available
@unitybase/adminui-pub #
Added #
5.19.5 2021-03-03 #
- Checking
uiSettings.adminUI.disableScanner
config property inBasePanel
. If it's set as true, then scan button would not show in form
Changed #
5.20.0 2021-03-25 #
- migrate build to webpack5
- loading of TinyMCE in production build implemented using webpack5 dynamic import feature
5.19.5 2021-03-03 #
- client-side locales reformatted to use a json
Fixed #
5.19.9 2021-03-17 #
UB.core.UBUtil.getNameMd5
usesJSON.stringify
for tail parameters before calculation of MD5 sum. This fix ExtJS grid configuration save/load in case columns config is an array of object
5.19.6 2021-03-15 #
- use the same field list for
ubm_form
andubm_enum
in adminui-pub and adminui-vue
@unitybase/blob-stores #
Added #
5.20.1 2021-03-29 #
-
new method
blobStores.internalWriteDocumentToResp
- writes a BLOB content to the response without verifying an ALS (but RLS is verified) or return an error without modifying a response. Exposed asApp.blobStores.internalWriteDocumentToResp
SECURITY - method can be used inside endpoint or rest entity method, which already checks the access rights to the document.
5.19.6 2021-03-23 #
- history rotation adds
entity
andcreatedAt
values intoub_blobHistory
. This allows implement a BLOB FTS indexing using external tools (like ElasticSearch etc.)
5.19.5 2021-03-15 #
- SECURITY: for untity-entity based
getDocument
requests check user have access to the record in both base entity and unity-entity (instead unity-entity only)
Fixed #
5.20.1 2021-03-29 #
App.blobStores.putContent
documentation fixed - content can also be a THTTPRequest (since UB@5.9.3)
5.19.6 2021-03-23 #
- UB4 regression: if BLOB info stored in the DB not contains a
revision
(UB < 5)getDocument
don't try to get a revision from history and returns an actual content
5.19.5 2021-03-15 #
- SECURITY filesystem based blob stores checks file name is valid before storing content into the file system
@unitybase/cdn #
Changed #
5.20.0 2021-03-25 #
cdn_classifier
entity uses theubm_query
as unity entity
5.19.6 2021-03-15 #
- CDN forms, reports and er-diagrams are converted to
ubrow
format
5.19.5 2021-03-03 #
- client side locales reformatted into JSON
Fixed #
5.19.5 2021-03-03 #
- copy classifier item on the form of classifier
@unitybase/codemirror-full #
Changed #
1.3.0 2021-03-25 #
- migrate build to webpack5
@unitybase/cs-shared #
Added #
5.5.19 2021-03-03 #
LocalDataStore.doFiltration
accept a 3d optional argumentskipSubQueries
. If explicitly set totrue
, thensubquery
conditions are skipped (instead of throws)
Changed #
5.5.20 2021-03-15 #
LocalDataStorage
- improve debugging experience by avoid using of anonymous functions and replacing_.forEach
->for .. in
Fixed #
5.6.0 2021-03-25 #
- CustomRepository.fromUbql: prevents overriding of a default
method
in case Repository is created from JSON without method propertyUB.Repository({entity: 'my_entity', fieldList: ['a', 'b']})
. A better fix for !1048
5.5.20 2021-03-15 #
LocalDataStorage
: filter bystartWith
/notStartWith
now case-insensitive (as in DB with _CI locales)
@unitybase/mailer #
Changed #
5.5.3 2021-03-15 #
ubm_desktop-scanerSettings-fm
increased the maximum value of page margins for the barcode configuration to 999 pixels instead of 100 pixels [CUBDF-823]
@unitybase/org #
Changed #
5.19.6 2021-03-15 #
- ORG forms, reports and er-diagrams are converted to
ubrow
format
5.19.5 2021-03-03 #
- client side locales reformatted into JSON
- server-side locales reformatted into JSON
@unitybase/pdf #
Changed #
5.1.0 2021-03-25 #
- migrate build to a webpack5
[@unitybase/systemjs-plugin-vue-ub]([object Object]) #
Changed #
1.4.0 2021-03-25 #
- migrate build to webpack5
@unitybase/ub-pub #
Added #
5.8.4 2021-03-15 #
@unitybase/cs-shared
formatByPattern
module exposed as ub-pub formatter. So Dates and Numbers formatting can be done using:
// inside Vue instance
this.$UB.formatter.formatDate('2020-05-23', 'date', 'uk')
// in any module
const UB = require('@unitybase/ub-pub')
UB.formatter.formatNumber(1234.5, 'sum', 'en')
- new methods
EventEmitter.prototype.prependListener
andEventEmitter.prototype.prependOnceListener
. Adds a listener function for the event namedeventName
to the beginning of the listeners array
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
5.8.3 2021-03-03 #
UB.xhr.defaults
property added - direct access to the default HTTP parameters forxhr
. Can be used, for example, to change http request timeout globally:
const UB = require('@unitybase/ub-pub')
UB.xhr.defaults.timeout = 300000 // set all ajax requests timeout to 5 minutes
Changed #
5.9.0 2021-03-25 #
- migrate build to webpack5
5.8.3 2021-03-03 #
- client side locales reformatted into JSON
- BREAKING - for custom authentication pages what use ub-pub localization
lang-??.json
must be injected instead oflang-??.js
UB.get(`/models/ub-pub/locale/lang-${conn.preferredLocale}.json`).then(resp => {
UB.i18nExtend(resp.data)
}).catch(e => {console.error(e)})
Fixed #
5.8.4 2021-03-15 #
ClientRepository
bypassaddAttrsForCachedEntity
for repositories with__mip_disablecache: true
in misc.
@unitybase/ub #
Added #
5.20.1 2021-03-29 #
- new method
App.blobStores.internalWriteDocumentToResp
- writes a BLOB content to the response without verifying an ALS (but RLS is verified) or return an error without modifying a response. SECURITY - method can be used inside endpoint or rest entity method, which already checks the access rights to the document.
5.19.7 2021-03-23 #
- new ubConfig parameter
uiSettings.adminUI.forgotPasswordURL
. If sets, then "Forgot password" link is displayed on the login form - added
THTTPRequest.json()
method - read a UTF8 encoded HTTP request body as JSON Object. Can be used as faster alternative toJSON.parse(req.read('utf8'))
- added
IncomingMessage.json()
- a faster alternative toJSON.parse(resp.read())
for http client requests ub_blobHistory
entity extended byentity
andcreatedAt
attributes
5.19.6 2021-03-17 #
-
App.launchEndpoint
emits 2 addition events:launchEndpoint:before
with parameters: (req, resp, endpointName)launchEndpoint:after
with parameters: (req, resp, endpointName, defaultPrevented) Can be used to do something on before/after any endpoint execution
-
App.removeUserSessions(userID)
a method tologout
a user completely
5.19.5 2021-03-15 #
-
UB.registerMixinModule(mixinName, mixinModule)
- a way to add a pure JS mixin implementation. See detailed mixins tutorial for details -
Sesson.tenantID
property added - contains a number >0 for multitenancy app. 0 on case multitenancy not enabled -
implicitly disable multitenancy mixin for
ub_version
andub_miration
-
fsStorage
mixin: implements a CRUID operation for entity, whose data is stored in the file system. Used as data storage implementation forubm_form
,ubs_reports
andubm_diagrams
- see File system storage tutorial for details.BREAKING diagrams, reports and forms MUST be converted:
ubcli convertDefFiles -u root
- *.ubrow and modified files added to git (
git add *.ubrow && git add *.def && git add *.template
) - files, reported by convertDefFiles should be deleted from project (removal script is outputted to the stdout by
convertDefFiles
)
-
critical section now available in http working threads:
const App = require('@unitybase/ub').App
// critical sectin must be registered once in the moment modules are evaluated
const MY_CS = App.registerCriticalSection('SHARED_FILE_ACCESS')
function concurrentFileAccess() {
// prevents mutual access to the same file from the different threads
App.enterCriticalSection(FSSTORAGE_CS)
try {
const data = fs.readfileSync('/tmp/concurrent.txt', 'utf8')
// do some operation what modify data
fs.writefileSync('/tmp/concurrent.txt', data)
} finally {
// important to leave critical section in finally block to prevent forever lock
App.leaveCriticalSection(FSSTORAGE_CS)
}
}
App.logEnter(enterText)
/App.logLeave
- allows increasing/decreasing logging recursion level (just like native methods do). EachlogEnter
call MUST have pairedlogLeave
call, so better to use as such:
wrapEnterLeave: function (enterText, originalMethod) {
return function(ctx) {
App.logEnter(enterText)
try {
originalMethod(ctx)
} finally {
App.logLeave()
}
}
}
5.19.4 2021-03-03 #
- new ubConfig property
uiSettings.adminUI.disableScanner
- disable a scanner related functionality iftrue
. - new property
Session.pendingUserName
- a username for authentication in pending state. Used for security audit to log a username in case session is not created yet
Changed #
5.19.6 2021-03-17 #
fsStorage
mixin can use a simplified BLOB info (only origName is stored instead of JSON) formdb
based BLOB attributes
5.19.5 2021-03-15 #
- implicitlyAddedMixins logic is moved from native to @unitybase/ub model (into
_hookMetadataTransformation.js
hook)
5.19.4 2021-03-03 #
allLocales
endpoint (client-side localization download) supports JSON files in/public/lang-??.json
. Content of such files are wrapped intoUB.i18nExtend(....)
before passing to client.
This allows using automation tools for preparing other language's localization.
-
server-side localization automatically loads a JSON files from models
serverLocale
folder. Naming convention is -*-??.json
where ?? is a language code. Such convention allows creating of a model with serverLocale folder contains localization to the new language for all other models, for example model forzz
languagezz-locale
withserverLocale/cdn-zz.json
,serverLocale/org-zz.json
etc.It's recommended to split existed
serverLocale/*.js
into several JSON and remove arequire('./serverLocale/*.js')
form model initialization using instruction below (remove locales you do not need from touch, replacemodelName
by lowercased name of your model ):cd serverLocale touch modelName_sl-en.json modelName_sl-ru.json modelName_sl-uk.json modelName_sl-az.json modelName_sl-id.json modelName_sl-ka.json modelName_sl-tg.json modelName_sl-ky.json git add ./*.json // for each language move content of the js locale for individual language into modelName-??.json (without language identifier) // Use WebStorm 'Fix all JSON problems' action to add a double quoters in new lang files // remove require('./serverLocale/nameOfLocaleFile.js') from initModel.js git rm ./serverLocale/nameOfLocaleFile.js
Removed #
5.19.5 2021-03-15 #
UB.mixins.mStorage
removed (obsolete)
Fixed #
5.19.6 2021-03-17 #
- multitenancy: prevent recreation of default constraint for mi_tenantID on Postgres
@unitybase/uba #
Added #
5.19.6 2021-03-17 #
- SECURITY user will be logged out immediately if:
- roles or groups for user is changed
- certificate is removed or updated
- uba_user.disabled is sets to true
5.19.5 2021-03-15 #
- implicitly disable multitenancy mixin for
uba_role
,uba_rls
anduba_els
5.19.4 2021-03-03 #
- advanced security check failures will be logged into uba_audit (throws
UB.ESecurityException
instead ofError
)
Changed #
5.19.5 2021-03-15 #
- UBA forms, reports and er-diagrams are converted to
ubrow
format
5.19.4 2021-03-03 #
- client side locales reformatted into JSON
Fixed #
5.19.5 2021-03-15 #
- display
actionTime
foruba_auditTrail
(both grid and form) anduba_audit
(grid only, form TBD) with seconds resolution
@unitybase/ubcli #
Added #
5.20.2 2021-03-30 #
ubcli migrate
: new parameter-ddlfor model1,model2,...
- allows to specify a model list DDL generator is limited for. For legacy apps Option value is passed as a--models
toubcli generateDDL
5.19.6 2021-03-15 #
- added multitenancy support for
generateDDL
- implemented generateDDL multitenancy support for Postgres
ubcli generateNginxCfg
support multitenancy (by adding a *. forserver_name
directive)
Changed #
5.19.7 2021-03-17 #
ubcli convertDefFiles
produce simplified BLOB info (only origName is stored instead of JSON)
Fixed #
5.20.3 2021-03-30 #
ubcli migrate
: fix for parameter-ddlfor
5.19.6 2021-03-15 #
ubcli generateNginxCfg
consider default forserverConfig.metrics.enabled
is true, so correctly adds allow rules formetrics
endpoint as configured inserverConfig.metrics.allowedFrom
@unitybase/ubm #
Added #
5.20.0 2021-03-25 #
ubm_sysdictionary
entity, navigation shortcut for the entity (the auto form is used). This entity is a copy of the oldubm_query
entity that contains information about system dictionaries.
5.19.5 2021-03-15 #
- implicitly disable multitenancy mixin for
ubm_desktop
,ubm_enum
andubm_navshortcut
Changed #
5.20.0 2021-03-25 #
- BREAKING
ubm_query
entity is used only as a unity entity for others now. Adding toubm_sysdictionary
now is equivalent to adding toubm_query
table. So if you add entries usingub-migrate
for example, it should be tweaked as described below:
$context:
type: ubm_query
region:
name: {en: Regions, ru: Регионы, uk: Регіони}
...
to:
$context:
type: ubm_sysdictionary
region:
name: {en: Regions, ru: Регионы, uk: Регіони}
...
- UBM model now uses
ub-migrate
for adding/updating enums, navigation items and roles - 'UBM_READ_USERS' & 'UBM_READ_EVERYONE' ELS rules removed in flavor of UBM_READ_USER added by ub-migrate
5.19.5 2021-03-15 #
- UBM forms, reports and er-diagrams are converted to
ubrow
format
5.19.4 2021-03-03 #
- client side locales reformatted into JSON
Removed #
5.19.4 2021-03-03 #
- i18n for FR related scanner (recognition) settings is remover (FR not used anymore)
Fixed #
5.19.7 2021-03-16 #
- Cleaned up
ubm_diagram
andubm_form
localization (ru, ka, tg) from non-existing attribute
5.19.5 2021-03-15 #
- scanner settings form -
Multiple page
checkbox becomes disabled in caseJPEG
format is selected ubm_navhortcut
form:- attributes tree is filled for both JSON and JS shortcut code type (
"entity": ".."
andentityName: '...'
). Before this fix only double quotes is recognized - form layout changed do be more compact (internally rewritten to u-grid + u-auto-field)
- attributes tree is filled for both JSON and JS shortcut code type (
@unitybase/ubs #
Added #
5.19.5 2021-03-15 #
ubcli convertDefFiles
utility to convert a reports, forms and diagrams to new storage format (.ubrow)
Changed #
5.20.0 2021-03-25 #
- migrate build to webpack5
5.19.4 2021-03-03 #
- client side locales reformatted into JSON
Fixed #
5.19.7 2021-03-16 #
- Cleaned up
ubs_report
localization (ru, ka, tg) from non-existing attributemi_modifyDate
5.19.6 2021-03-15 #
- server-sire report rendering fixed (bug in ubs@5.19.5)
@unitybase/udisk #
Changed #
5.19.4 2021-03-03 #
- client side locales reformatted into JSON
- server-side locales reformatted into JSON
@unitybase/xlsx #
Changed #
5.20.0 2021-03-25 #
- migrate build to webpack5