express-ext 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +1 -0
- package/lib/search.js +46 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/search.ts +41 -2
package/lib/index.js
CHANGED
package/lib/search.js
CHANGED
|
@@ -22,6 +22,50 @@ function getPageTotal(pageSize, total) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.getPageTotal = getPageTotal;
|
|
25
|
+
function formatText() {
|
|
26
|
+
var args = [];
|
|
27
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
28
|
+
args[_i] = arguments[_i];
|
|
29
|
+
}
|
|
30
|
+
var formatted = args[0];
|
|
31
|
+
if (!formatted || formatted === '') {
|
|
32
|
+
return '';
|
|
33
|
+
}
|
|
34
|
+
if (args.length > 1 && Array.isArray(args[1])) {
|
|
35
|
+
var params = args[1];
|
|
36
|
+
for (var i = 0; i < params.length; i++) {
|
|
37
|
+
var regexp = new RegExp('\\{' + i + '\\}', 'gi');
|
|
38
|
+
formatted = formatted.replace(regexp, params[i]);
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
for (var i = 1; i < args.length; i++) {
|
|
42
|
+
var regexp = new RegExp('\\{' + (i - 1) + '\\}', 'gi');
|
|
43
|
+
formatted = formatted.replace(regexp, args[i]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return formatted;
|
|
47
|
+
}
|
|
48
|
+
exports.formatText = formatText;
|
|
49
|
+
function buildMessage(resource, results, limit, page, total) {
|
|
50
|
+
if (!results || results.length === 0) {
|
|
51
|
+
return resource.msg_no_data_found;
|
|
52
|
+
} else {
|
|
53
|
+
if (!page) {
|
|
54
|
+
page = 1;
|
|
55
|
+
}
|
|
56
|
+
var fromIndex = (page - 1) * limit + 1;
|
|
57
|
+
var toIndex = fromIndex + results.length - 1;
|
|
58
|
+
var pageTotal = getPageTotal(limit, total);
|
|
59
|
+
if (pageTotal > 1) {
|
|
60
|
+
var msg2 = formatText(resource.msg_search_result_page_sequence, fromIndex, toIndex, total, page, pageTotal);
|
|
61
|
+
return msg2;
|
|
62
|
+
} else {
|
|
63
|
+
var msg3 = formatText(resource.msg_search_result_sequence, fromIndex, toIndex);
|
|
64
|
+
return msg3;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.buildMessage = buildMessage;
|
|
25
69
|
function buildPages(pageSize, total) {
|
|
26
70
|
var pageTotal = getPageTotal(pageSize, total);
|
|
27
71
|
if (pageTotal <= 1) {
|
|
@@ -131,7 +175,8 @@ function renderSort(field, sort) {
|
|
|
131
175
|
return et;
|
|
132
176
|
}
|
|
133
177
|
exports.renderSort = renderSort;
|
|
134
|
-
function buildSortSearch(search, fields,
|
|
178
|
+
function buildSortSearch(search, fields, sortStr) {
|
|
179
|
+
var sort = buildSort(sortStr);
|
|
135
180
|
search = removeSort(search);
|
|
136
181
|
var sorts = {};
|
|
137
182
|
var prefix = search.length > 0 ? '?' + search + '&' : '?';
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/search.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Request, Response } from 'express';
|
|
|
2
2
|
import { minimizeArray, query } from './http';
|
|
3
3
|
import { ViewService } from './LoadController';
|
|
4
4
|
import { Attribute, Attributes } from './metadata';
|
|
5
|
-
import { resources } from './resources';
|
|
5
|
+
import { resources, StringMap } from './resources';
|
|
6
6
|
|
|
7
7
|
const et = '';
|
|
8
8
|
|
|
@@ -54,6 +54,44 @@ export function getPageTotal(pageSize?: number, total?: number): number {
|
|
|
54
54
|
return Math.floor(total / pageSize + 1);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
+
export function formatText(...args: any[]): string {
|
|
58
|
+
let formatted = args[0];
|
|
59
|
+
if (!formatted || formatted === '') {
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
if (args.length > 1 && Array.isArray(args[1])) {
|
|
63
|
+
const params = args[1];
|
|
64
|
+
for (let i = 0; i < params.length; i++) {
|
|
65
|
+
const regexp = new RegExp('\\{' + i + '\\}', 'gi');
|
|
66
|
+
formatted = formatted.replace(regexp, params[i]);
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
for (let i = 1; i < args.length; i++) {
|
|
70
|
+
const regexp = new RegExp('\\{' + (i - 1) + '\\}', 'gi');
|
|
71
|
+
formatted = formatted.replace(regexp, args[i]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return formatted;
|
|
75
|
+
}
|
|
76
|
+
export function buildMessage<T>(resource: StringMap, results: T[], limit: number, page: number | undefined, total?: number): string {
|
|
77
|
+
if (!results || results.length === 0) {
|
|
78
|
+
return resource.msg_no_data_found;
|
|
79
|
+
} else {
|
|
80
|
+
if (!page) {
|
|
81
|
+
page = 1;
|
|
82
|
+
}
|
|
83
|
+
const fromIndex = (page - 1) * limit + 1;
|
|
84
|
+
const toIndex = fromIndex + results.length - 1;
|
|
85
|
+
const pageTotal = getPageTotal(limit, total);
|
|
86
|
+
if (pageTotal > 1) {
|
|
87
|
+
const msg2 = formatText(resource.msg_search_result_page_sequence, fromIndex, toIndex, total, page, pageTotal);
|
|
88
|
+
return msg2;
|
|
89
|
+
} else {
|
|
90
|
+
const msg3 = formatText(resource.msg_search_result_sequence, fromIndex, toIndex);
|
|
91
|
+
return msg3;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
57
95
|
export function buildPages(pageSize?: number, total?: number): number[] {
|
|
58
96
|
const pageTotal = getPageTotal(pageSize, total);
|
|
59
97
|
if (pageTotal <= 1) {
|
|
@@ -162,7 +200,8 @@ export function renderSort(field: string, sort: Sort): string {
|
|
|
162
200
|
}
|
|
163
201
|
return et;
|
|
164
202
|
}
|
|
165
|
-
export function buildSortSearch(search: string, fields: string[],
|
|
203
|
+
export function buildSortSearch(search: string, fields: string[], sortStr?: string): SortMap {
|
|
204
|
+
const sort = buildSort(sortStr);
|
|
166
205
|
search = removeSort(search);
|
|
167
206
|
let sorts: SortMap = {};
|
|
168
207
|
const prefix = search.length > 0 ? '?' + search + '&' : '?';
|