doix-w2ui
v1.0.6
Published
doix w2ui adapter
Downloads
2
Readme
doix-w2ui
is a w2ui adapter for the doix server platform.
More specifically, this is a translator of AJAX requests coming from w2grid into DbQuery instances.
Installation
npm install doix-w2ui
Initialization
doix-w2ui
is a plug in for database clients, such as DbClientPg. It can be attached to any database connection pool by calling the plugInto
method:
const {DbPoolPg} = require ('doix-db-postgresql')
const w2ui = require ('doix-w2ui')
const db = new DbPoolPg ({
db: conf.db,
logger: createLogger (conf, 'db'),
})
w2ui.plugInto (db)
After that, each db
instance injected into a Job will have the w2uiQuery
method described in the next section.
Using in application code
With doix-w2ui
plugged in, the db
resource provides the w2uiQuery
method having the same parameters as DbModel.createQuery:
select_users:
async function () {
const {db} = this
const query = db.w2uiQuery ([['users']], {order: ['label']})
const list = await db.getArray (query)
return {
all: list,
cnt: list [Symbol.for ('count')],
portion: query.options.limit
}
}
In fact, this is the db.model.createQuery
call, but with some additions:
- the
limit
andoffset
options are overridden withthis.request.limit
andthis.request.offset
respectively; - the
order
list is replaced with the translatedthis.request.sort
, if any (so theorder
passed in argument acts as a default value); - the 1st query table
filter
option is appended with the translatedthis.request.search
.
More about search filters.
The base documentation on w2ui types and operators can be found at the developers' web site. In this section, only special doix-w2ui
features are described.
Operators
doix-w2ui
supports three extra operators:
|name|SQL operator| |-|-| |is not|<>| |less!|<| |more!|>|
Both standard is
and local is not
can be used with value: null
, in which case they a mapped to IS NULL
and IS NOT NULL
respectively.
Search terms with operator: 'between'
are replaced with 'more', 'less' or both, depending on values provided.
date
type
For type: 'date'
, string values are accepted in any numeric DD ? MM ? YYYY
or YYYY ? MM ? DD
format. They are all translated into ISO YYYY-MM-DD
format.
Any <=
comparison with a date (original operator: 'less'
; right part of 'between'
) is replaced with the strict <
comparison with the next date. This makes sense for datetime values.