1.0.6 • Published 10 months ago

doix-w2ui v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

workflow Jest coverage

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 and offset options are overridden with this.request.limit and this.request.offset respectively;
  • the order list is replaced with the translated this.request.sort, if any (so the order passed in argument acts as a default value);
  • the 1st query table filter option is appended with the translated this.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:

nameSQL 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.

1.0.6

10 months ago

1.0.5

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.3

2 years ago

0.0.2

2 years ago