annotate src/app/result-type.ts @ 47:b65a031c4967 ng2-final

first step to angular2-final (2.4) version of the query browser.
author casties
date Fri, 17 Mar 2017 20:16:52 +0100
parents app/result-type.ts@7578b21cdf2e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
1 import {ResultColumn} from './result-column';
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
2
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
3 export class ResultType {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
4 public name: string;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
5 public idAttribute: string;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
6 public allowedAttributes: string[];
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
7 public deniedAttributes: string[];
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
8
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
9 constructor (name: string, idAttribute: string, allowedAttributes: string[]=[], deniedAttributes: string[]=[]) {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
10 this.name = name;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
11 this.idAttribute = idAttribute;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
12 this.allowedAttributes = allowedAttributes;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
13 this.deniedAttributes = deniedAttributes;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
14 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
15
39
7578b21cdf2e make relation types configurable.
casties
parents: 31
diff changeset
16 /**
7578b21cdf2e make relation types configurable.
casties
parents: 31
diff changeset
17 * Return columns for the given list of attributes.
7578b21cdf2e make relation types configurable.
casties
parents: 31
diff changeset
18 */
7578b21cdf2e make relation types configurable.
casties
parents: 31
diff changeset
19 getColumns(attributes: string[], allAttributes=true): ResultColumn[] {
30
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
20 let atts = attributes.slice();
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
21 let cols = [];
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
22 // allowed attributes
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
23 this.allowedAttributes.forEach(att => {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
24 let idx = atts.indexOf(att);
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
25 if (idx > -1) {
31
4926885f8a99 selectable result columns. nicer cypher query output.
casties
parents: 30
diff changeset
26 cols.push(new ResultColumn(att, att, '', true));
30
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
27 atts[idx] = null;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
28 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
29 });
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
30 // then other attributes
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
31 if (allAttributes) {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
32 atts.forEach(att => {
31
4926885f8a99 selectable result columns. nicer cypher query output.
casties
parents: 30
diff changeset
33 if (att != null && att[0] != '_' && this.deniedAttributes.indexOf(att) < 0) {
4926885f8a99 selectable result columns. nicer cypher query output.
casties
parents: 30
diff changeset
34 cols.push(new ResultColumn(att, att, '', false));
30
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
35 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
36 });
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
37 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
38 return cols;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
39 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
40
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
41 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
42
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
43 export function getResultType(name: string, resultTypes: {[name:string]: ResultType}): ResultType {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
44 let rt = resultTypes[name];
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
45 if (rt == null) {
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
46 rt = resultTypes['*'];
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
47 }
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
48 return rt;
193271b6b9d2 configure attributes per result type. select number of items per result page.
casties
parents:
diff changeset
49 }