Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 10x 10x 8x 8x 8x 8x 8x 8x 8x 8x 5x 5x 15x 5x 5x 5x 5x 10x 13x 11x 28x 6x 6x | import { SERVER_URL } from '@config/base';
import { SearchConditionProps, SearchConditions, SearchValue, TableMetaProps } from '@props/RecordProps';
import { getDefaultMatcher } from "@kernel/ServerSideSearcherMapping";
/**
* Set finder condition user inputed to session storage User inputed conditions
* contains only value, and this method will transfer them to valid search
* condition object, and set to session storage
* @param domainName domain name
* @param conditions conditions
* @param columns columns meta of the to search domain
*/
export function setFinderCondition(domainName: string,
conditions: {
[propName: string]: SearchValue
}, columns: Array<TableMetaProps>): void {
const searchConditions: SearchConditions = {} as SearchConditions;
for (const property in conditions) {
Iif (!Object.prototype.hasOwnProperty.call(conditions, property)) {
continue;
}
const val = conditions[property];
const isNonEmptyString = (typeof val === 'string' && val !== '');
const isNonEmptyNumber = (typeof val === 'number' && !isNaN(val));
const isBoolean = (typeof val === 'boolean');
const notNull = (val != null);
const isNonEmptyArray = (Array.isArray(val) && (val as Array<unknown>).length > 0);
if (notNull && (isNonEmptyString || isNonEmptyArray || isNonEmptyNumber || isBoolean)) {
const condition: SearchConditionProps = {} as SearchConditionProps;
condition.columnKey = property;
const columnMeta = columns.find(column => column.key === property);
Eif (columnMeta != null) {
condition.matchMode = getDefaultMatcher(columnMeta);
condition.value = val;
searchConditions[property] = condition;
}
}
}
saveFinderConditionsToCache(domainName, searchConditions);
}
/**
* Save finder conditions to session storage cache
* @param domainName domain to search
* @param conditions Conditions
*/
export function saveFinderConditionsToCache(domainName: string, conditions: SearchConditions): void {
if (conditions != null) {
sessionStorage.setItem(
getFinderConditionKey(domainName), JSON.stringify(conditions)
);
}
}
export function getFinderConditionKey(domainName: string): string {
return `${domainName}_${SERVER_URL}_finderConditions`;
}
/**
* clear finder conditions from sessionStorage
* @param domainName name of the domain to clear
*/
export function clearFinderConditions(domainName: string): void {
sessionStorage.removeItem(getFinderConditionKey(domainName));
}
export function getFinderConditions(domainName: string): SearchConditions {
const cache = sessionStorage.getItem(getFinderConditionKey(domainName));
return (cache == null)? cache: JSON.parse(cache);
}
|