diff --git a/demo/app/cases/editors/ContextEditor.js b/demo/app/cases/editors/ContextEditor.js
index a26bdbede..9caa0919c 100644
--- a/demo/app/cases/editors/ContextEditor.js
+++ b/demo/app/cases/editors/ContextEditor.js
@@ -9,7 +9,7 @@ export default function() {
'oa.1': [
{
instanceTypeId: 'cmw.instanceProperty',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'ID',
displayAttribute: false,
@@ -21,7 +21,7 @@ export default function() {
alias: 'id_alias'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Last Modifier',
displayAttribute: false,
@@ -46,7 +46,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -59,7 +59,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'refToCol',
displayAttribute: false,
@@ -95,7 +95,7 @@ export default function() {
alias: 'isDisabled_alias'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Creator',
displayAttribute: false,
@@ -120,7 +120,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'sdfsf',
displayAttribute: false,
@@ -133,7 +133,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -169,7 +169,7 @@ export default function() {
alias: 'id_alias'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Process Initiator',
displayAttribute: false,
diff --git a/demo/app/cases/editors/MultiEditorEditor.js b/demo/app/cases/editors/MultiEditorEditor.js
index 16534e5ad..92eb018f2 100644
--- a/demo/app/cases/editors/MultiEditorEditor.js
+++ b/demo/app/cases/editors/MultiEditorEditor.js
@@ -20,7 +20,7 @@ export default function() {
'oa.1': [
{
instanceTypeId: 'cmw.instanceProperty',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'ID',
displayAttribute: false,
@@ -31,7 +31,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Last Modifier',
displayAttribute: false,
@@ -54,7 +54,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -66,7 +66,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'refToCol',
displayAttribute: false,
@@ -99,7 +99,7 @@ export default function() {
id: 'isDisabled'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Creator',
displayAttribute: false,
@@ -122,7 +122,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'sdfsf',
displayAttribute: false,
@@ -134,7 +134,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -167,7 +167,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Process Initiator',
displayAttribute: false,
diff --git a/demo/app/cases/list/compactGrid.js b/demo/app/cases/list/compactGrid.js
index ad6ae2b77..d1f9a5eaa 100644
--- a/demo/app/cases/list/compactGrid.js
+++ b/demo/app/cases/list/compactGrid.js
@@ -36,7 +36,7 @@ export default function() {
{
key: 'textCell',
type: 'Datalist',
- dataType: 'Instance',
+ dataType: Core.meta.objectPropertyTypes.INSTANCE,
title: 'TextCell',
sorting: 'asc',
editable: true,
@@ -79,7 +79,7 @@ export default function() {
},
{
key: 'documentCell',
- type: 'Document',
+ type: Core.meta.objectPropertyTypes.DOCUMENT,
title: 'Document Cell',
editable: true,
width: 100
@@ -109,7 +109,7 @@ export default function() {
'oa.1': [
{
instanceTypeId: 'cmw.instanceProperty',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'ID',
displayAttribute: false,
@@ -120,7 +120,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Last Modifier',
displayAttribute: false,
@@ -143,7 +143,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -155,7 +155,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'refToCol',
displayAttribute: false,
@@ -188,7 +188,7 @@ export default function() {
id: 'isDisabled'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Creator',
displayAttribute: false,
@@ -211,7 +211,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'sdfsf',
displayAttribute: false,
@@ -223,7 +223,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -256,7 +256,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Process Initiator',
displayAttribute: false,
diff --git a/demo/app/cases/list/complexGrid.js b/demo/app/cases/list/complexGrid.js
index ba04cba4f..dd489fd6c 100644
--- a/demo/app/cases/list/complexGrid.js
+++ b/demo/app/cases/list/complexGrid.js
@@ -42,7 +42,7 @@ export default function() {
case 5:
return 'Reference';
case 6:
- return 'Document';
+ return Core.meta.objectPropertyTypes.DOCUMENT;
case 7:
return 'Boolean';
case 0:
@@ -197,12 +197,12 @@ export default function() {
title: 'Reference Cell',
helpText: 'Reference Cell',
editable: true,
- dataType: 'Instance',
+ dataType: Core.meta.objectPropertyTypes.INSTANCE,
width: 100
},
{
key: 'documentCell',
- type: 'Document',
+ type: Core.meta.objectPropertyTypes.DOCUMENT,
title: 'Document Cell',
helpText: 'Document Cell',
editable: true,
@@ -254,7 +254,7 @@ export default function() {
'oa.1': [
{
instanceTypeId: 'cmw.instanceProperty',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'ID',
displayAttribute: false,
@@ -265,7 +265,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Last Modifier',
displayAttribute: false,
@@ -288,7 +288,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -300,7 +300,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'refToCol',
displayAttribute: false,
@@ -333,7 +333,7 @@ export default function() {
id: 'isDisabled'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Creator',
displayAttribute: false,
@@ -356,7 +356,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'sdfsf',
displayAttribute: false,
@@ -368,7 +368,7 @@ export default function() {
},
{
instanceTypeId: 'oa.1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
format: 'Undefined',
name: 'coll',
displayAttribute: false,
@@ -401,7 +401,7 @@ export default function() {
id: 'id'
},
{
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
format: 'Undefined',
name: 'Process Initiator',
displayAttribute: false,
diff --git a/demo/app/cases/list/editableGrid.js b/demo/app/cases/list/editableGrid.js
index 0564ac105..caf550c1f 100644
--- a/demo/app/cases/list/editableGrid.js
+++ b/demo/app/cases/list/editableGrid.js
@@ -139,16 +139,16 @@ export default () => {
{
key: 'documentCell',
type: 'Datalist',
- dataType: 'Document',
+ dataType: Core.meta.objectPropertyTypes.DOCUMENT,
format: 'document',
- title: 'Document',
+ title: Core.meta.objectPropertyTypes.DOCUMENT,
editable: true,
autocommit: true
},
{
key: 'referenceCell',
type: 'Datalist',
- dataType: 'Instance',
+ dataType: Core.meta.objectPropertyTypes.INSTANCE,
title: 'Reference Cell',
required: true,
controller: new Core.form.editors.reference.controllers.DemoReferenceEditorController({
@@ -165,7 +165,7 @@ export default () => {
{
key: 'userCell',
type: 'Datalist',
- dataType: 'Account',
+ dataType: Core.meta.objectPropertyTypes.ACCOUNT,
title: 'User Cell',
required: true,
controller: new Core.form.editors.reference.controllers.DemoReferenceEditorController({
diff --git a/demo/app/cases/list/grid.js b/demo/app/cases/list/grid.js
index 494f2ac6e..dd5238c60 100644
--- a/demo/app/cases/list/grid.js
+++ b/demo/app/cases/list/grid.js
@@ -1,82 +1,82 @@
-
-
-import ListCanvasView from 'demoPage/views/ListCanvasView';
-
-export default function() {
- // 1. Get some data
- const dataArray = [];
- // for (let i = 0; i < 1000; i++) {
- // dataArray.push({
- // textCell: `Text Cell ${i}`,
- // numberCell: i + 1,
- // dateTimeCell: '2015-07-24T08:13:13.847Z',
- // durationCell: 'P12DT5H42M',
- // booleanCell: true,
- // userCell: [{ id: 'user.1', columns: ['J. J.'] }],
- // referenceCell: { name: 'Ref 1' },
- // enumCell: { valueExplained: ['123'] },
- // documentCell: [{ id: '1', columns: ['Doc 1', 'url'] }, { id: '2', columns: ['Doc 2', 'url2'] }]
- // });
- // }
-
- // 2. Create columns
- const columns = [
- {
- key: 'textCell',
- type: 'String',
- title: 'Hidden Column',
- sorting: 'desc',
- isHidden: true
- },
- {
- key: 'numberCell',
- type: 'Double',
- title: 'Number Cell'
- },
- {
- key: 'dateTimeCell',
- type: 'DateTime',
- title: 'DateTime Cell'
- },
- // {
- // key: 'durationCell',
- // type: 'Duration',
- // title: 'Duration Cell'
- // },
- // {
- // key: 'booleanCell',
- // type: 'Boolean',
- // title: 'Boolean Cell'
- // },
- // {
- // key: 'referenceCell',
- // type: 'Instance',
- // title: 'Reference Cell'
- // },
- // {
- // key: 'documentCell',
- // type: 'Document',
- // title: 'Document Cell'
- // }
- ];
-
- const collection = new Backbone.Collection();
- // 4. Create grid
- const gridView = Core.list.factory.createDefaultGrid({
- gridViewOptions: {
- columns,
- showToolbar: true,
- childHeight: 35,
- useDefaultRowView: true,
- minimumVisibleRows: 100
- },
- collection
- });
-
- gridView.on('execute', () => collection.add({}));
-
- // 7. Show created views
- return new ListCanvasView({
- content: gridView
- });
-}
+
+
+import ListCanvasView from 'demoPage/views/ListCanvasView';
+
+export default function() {
+ // 1. Get some data
+ const dataArray = [];
+ // for (let i = 0; i < 1000; i++) {
+ // dataArray.push({
+ // textCell: `Text Cell ${i}`,
+ // numberCell: i + 1,
+ // dateTimeCell: '2015-07-24T08:13:13.847Z',
+ // durationCell: 'P12DT5H42M',
+ // booleanCell: true,
+ // userCell: [{ id: 'user.1', columns: ['J. J.'] }],
+ // referenceCell: { name: 'Ref 1' },
+ // enumCell: { valueExplained: ['123'] },
+ // documentCell: [{ id: '1', columns: ['Doc 1', 'url'] }, { id: '2', columns: ['Doc 2', 'url2'] }]
+ // });
+ // }
+
+ // 2. Create columns
+ const columns = [
+ {
+ key: 'textCell',
+ type: 'String',
+ title: 'Hidden Column',
+ sorting: 'desc',
+ isHidden: true
+ },
+ {
+ key: 'numberCell',
+ type: 'Double',
+ title: 'Number Cell'
+ },
+ {
+ key: 'dateTimeCell',
+ type: 'DateTime',
+ title: 'DateTime Cell'
+ },
+ // {
+ // key: 'durationCell',
+ // type: 'Duration',
+ // title: 'Duration Cell'
+ // },
+ // {
+ // key: 'booleanCell',
+ // type: 'Boolean',
+ // title: 'Boolean Cell'
+ // },
+ // {
+ // key: 'referenceCell',
+ // type: Core.meta.objectPropertyTypes.INSTANCE,
+ // title: 'Reference Cell'
+ // },
+ // {
+ // key: 'documentCell',
+ // type: Core.meta.objectPropertyTypes.DOCUMENT,
+ // title: 'Document Cell'
+ // }
+ ];
+
+ const collection = new Backbone.Collection();
+ // 4. Create grid
+ const gridView = Core.list.factory.createDefaultGrid({
+ gridViewOptions: {
+ columns,
+ showToolbar: true,
+ childHeight: 35,
+ useDefaultRowView: true,
+ minimumVisibleRows: 100
+ },
+ collection
+ });
+
+ gridView.on('execute', () => collection.add({}));
+
+ // 7. Show created views
+ return new ListCanvasView({
+ content: gridView
+ });
+}
diff --git a/demo/app/cases/list/gridSearchAndSelection.js b/demo/app/cases/list/gridSearchAndSelection.js
index 7e24f8024..9f65d5b73 100644
--- a/demo/app/cases/list/gridSearchAndSelection.js
+++ b/demo/app/cases/list/gridSearchAndSelection.js
@@ -9,11 +9,11 @@ export default function() {
numberCell: i + 1,
dateTimeCell: '2015-07-24T08:13:13.847Z',
durationCell: 'P12DT5H42M',
- booleanCell: true,
+ booleanCell: '',
userCell:
i > 4
? [{ id: 'user.1', name: 'Nicola Tesla', avatarUrl: 'images/image2.jpg' }]
- : [{ id: 'user.1', name: 'Nicola Tesla', avatarUrl: 'images/image2.jpg' }, { id: 'user.2', name: 'Thomas Edison' }],
+ : null,
referenceCell: i > 4 ? [{ id: '1', name: 'Ref 1', url: 'url2' }] : [{ id: '1', name: 'Ref 1' }, { id: '2', name: 'Ref 2', url: 'url2' }],
documentCell: i > 4 ? [{ id: '1', name: 'Doc 1', url: 'url1' }] : [{ id: '1', name: 'Doc1.jpg', url: 'url1' }, { id: '2', name: 'Doc 2', url: 'url2' }],
enumCell: { valueExplained: ['123'] },
@@ -28,7 +28,6 @@ export default function() {
: [{ id: 'user.1', name: 'Nicola Tesla', avatarUrl: 'images/image2.jpg' }, { id: 'user.2', name: 'Thomas Edison' }],
referenceCell1: i > 400 ? [{ id: '1', name: 'Ref 1', url: 'url2' }] : [{ id: '1', name: 'Ref 1' }, { id: '2', name: 'Ref 2', url: 'url2' }],
documentCell1: i > 400 ? [{ id: '1', name: 'Doc 1', url: 'url1' }] : [{ id: '1', name: 'Doc1.jpg', url: 'url1' }, { id: '2', name: 'Doc 2', url: 'url2' }],
- enumCell: { valueExplained: ['123'] }
});
}
@@ -56,7 +55,7 @@ export default function() {
},
{
key: 'userCell',
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
title: 'User'
},
{
@@ -66,12 +65,12 @@ export default function() {
},
{
key: 'referenceCell',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
title: 'Reference Cell'
},
{
key: 'documentCell',
- type: 'Document',
+ type: Core.meta.objectPropertyTypes.DOCUMENT,
title: 'Document Cell'
},
{
@@ -96,7 +95,7 @@ export default function() {
},
{
key: 'userCell1',
- type: 'Account',
+ type: Core.meta.objectPropertyTypes.ACCOUNT,
title: 'User'
},
{
@@ -106,12 +105,12 @@ export default function() {
},
{
key: 'referenceCell1',
- type: 'Instance',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
title: 'Reference Cell'
},
{
key: 'documentCell1',
- type: 'Document',
+ type: Core.meta.objectPropertyTypes.DOCUMENT,
title: 'Document Cell'
}
];
diff --git a/demo/app/cases/list/treeGrid.js b/demo/app/cases/list/treeGrid.js
index 6e5e51174..7aaba05aa 100644
--- a/demo/app/cases/list/treeGrid.js
+++ b/demo/app/cases/list/treeGrid.js
@@ -1,103 +1,104 @@
-import CanvasView from 'demoPage/views/CanvasView';
-
-// 1. Get some data
-export default function () {
- const data = [];
- const childLength = 3;
- const treeHeight = 4;
-
- const createTree = (parentCollection, level, parent = null) => {
- for (let i = 0; i < childLength; i++) {
- const item = {
- textCell: `Text Cell ${i}`,
- numberCell: i + 1,
- dateTimeCell: '2015-07-24T08:13:13.847Z',
- durationCell: 'P12DT5H42M',
- booleanCell: true,
- userCell: [{ id: 'user.1', columns: ['J. J.'] }],
- referenceCell: { name: 'Ref 1' },
- enumCell: { valueExplained: ['123'] },
- documentCell: [{ id: '1', columns: ['Doc 1', 'url'] }, { id: '2', columns: ['Doc 2', 'url2'] }]
- };
- item.parent = parent;
- if (level > 0) {
- const children = [];
- createTree(children, level - 1, item);
- item.children = children;
- }
- parentCollection.push(item);
- }
- };
-
- createTree(data, treeHeight);
-
- // 2. Create columns
- const columns = [
- {
- key: 'textCell',
- type: 'String',
- title: 'TextCell',
- sorting: 'asc',
- width: 300
- },
- {
- key: 'numberCell',
- type: 'Double',
- title: 'Number Cell',
- width: 100
- },
- {
- key: 'dateTimeCell',
- type: 'DateTime',
- title: 'DateTime Cell',
- width: 100
- },
- {
- key: 'durationCell',
- type: 'Duration',
- title: 'Duration Cell',
- width: 100
- },
- {
- key: 'booleanCell',
- type: 'Boolean',
- title: 'Boolean Cell',
- width: 100
- },
- {
- key: 'referenceCell',
- type: 'Instance',
- title: 'Reference Cell',
- width: 100
- },
- {
- key: 'documentCell',
- type: 'Document',
- title: 'Document Cell',
- width: 100
- }
- ];
-
- // 3. Create grid
- const nativeGridView = Core.list.factory.createDefaultGrid({
- gridViewOptions: {
- columns,
- selectableBehavior: 'multi',
- isTree: true,
- childrenAttribute: 'children'
- },
- collection: data
- });
-
- // 4. Show created views
- return new CanvasView({
- view: nativeGridView,
- canvas: {
- height: '250px',
- width: '400px'
- },
- region: {
- float: 'left'
- }
- });
-}
+import CanvasView from 'demoPage/views/CanvasView';
+
+// 1. Get some data
+export default function () {
+ const data = [];
+ const childLength = 3;
+ const treeHeight = 4;
+
+ const createTree = (parentCollection, level, parent = null) => {
+ for (let i = 0; i < childLength; i++) {
+ const item = {
+ textCell: `Text Cell ${i}`,
+ numberCell: i + 1,
+ dateTimeCell: '2015-07-24T08:13:13.847Z',
+ durationCell: 'P12DT5H42M',
+ booleanCell: true,
+ userCell: [{ id: 'user.1', columns: ['J. J.'] }],
+ referenceCell: { name: 'Ref 1' },
+ enumCell: { valueExplained: ['123'] },
+ documentCell: [{ id: '1', columns: ['Doc 1', 'url'] }, { id: '2', columns: ['Doc 2', 'url2'] }]
+ };
+ item.parent = parent;
+ if (level > 0) {
+ const children = [];
+ createTree(children, level - 1, item);
+ item.children = children;
+ }
+ parentCollection.push(item);
+ }
+ };
+
+ createTree(data, treeHeight);
+
+ // 2. Create columns
+ const columns = [
+ {
+ key: 'textCell',
+ type: 'String',
+ title: 'TextCell',
+ sorting: 'asc',
+ width: 300
+ },
+ {
+ key: 'numberCell',
+ type: 'Double',
+ title: 'Number Cell',
+ width: 100
+ },
+ {
+ key: 'dateTimeCell',
+ type: 'DateTime',
+ title: 'DateTime Cell',
+ width: 100
+ },
+ {
+ key: 'durationCell',
+ type: 'Duration',
+ title: 'Duration Cell',
+ width: 100
+ },
+ {
+ key: 'booleanCell',
+ type: 'Boolean',
+ title: 'Boolean Cell',
+ width: 100
+ },
+ {
+ key: 'referenceCell',
+ type: Core.meta.objectPropertyTypes.INSTANCE,
+ title: 'Reference Cell',
+ width: 100
+ },
+ {
+ key: 'documentCell',
+ type: Core.meta.objectPropertyTypes.DOCUMENT,
+ title: 'Document Cell',
+ width: 100
+ }
+ ];
+
+ // 3. Create grid
+ const nativeGridView = Core.list.factory.createDefaultGrid({
+ gridViewOptions: {
+ columns,
+ selectableBehavior: 'multi',
+ isTree: true,
+ showSearch: true,
+ childrenAttribute: 'children'
+ },
+ collection: data
+ });
+
+ // 4. Show created views
+ return new CanvasView({
+ view: nativeGridView,
+ canvas: {
+ height: '250px',
+ width: '400px'
+ },
+ region: {
+ float: 'left'
+ }
+ });
+}
diff --git a/src/Meta.ts b/src/Meta.ts
index 2836592f8..68c05b572 100644
--- a/src/Meta.ts
+++ b/src/Meta.ts
@@ -9,22 +9,22 @@ const meta = {
formRoot: 'window',
reference: 'link',
instance: 'link',
- instanceproperty: 'link',
- tablayout: 'folders',
- tabpanel: 'folder',
+ instanceProperty: 'link',
+ tabLayout: 'folders',
+ tabPanel: 'folder',
member: 'user',
account: 'user',
- accountproperty: 'user',
+ accountProperty: 'user',
image: 'image',
document: 'paperclip',
- documentproperty: 'paperclip',
+ documentProperty: 'paperclip',
enum: 'list-radio',
enums: 'list-ul',
contextIconType: 'list-ul',
- grouppanel: 'list-alt',
- horizontallayout: 'columns',
+ groupPanel: 'list-alt',
+ horizontalLayout: 'columns',
integer: 'superscript',
- staticcontent: 'stream',
+ staticContent: 'stream',
date: 'calendar-alt',
datetime: 'calendar-alt',
duration: 'stopwatch',
@@ -32,9 +32,10 @@ const meta = {
number: 'superscript',
action: 'hand-pointer',
role: 'address-card',
+ roleProperty: 'address-card',
orgStructureTemplate: 'sitemap',
orgStructure: 'sitemap',
- actionbutton: 'hand-pointer',
+ actionButton: 'hand-pointer',
text: 'font',
string: 'font',
boolean: 'check-square',
@@ -43,7 +44,7 @@ const meta = {
undefined: 'dot-circle',
task: 'tasks',
record: 'list-alt',
- recordtemplate: 'list-alt',
+ recordTemplate: 'list-alt',
process: 'cogs',
case: 'cube',
list: 'align-justify',
@@ -54,7 +55,7 @@ const meta = {
};
Object.entries(meta).forEach(([key, value]) => {
- const keyUp = key[0].toUpperCase() + key.slice(1);
+ const keyUp = _.capitalize(value);
meta[keyUp] = value;
});
@@ -62,21 +63,23 @@ export const contextIconType = meta;
export const objectPropertyTypes = {
STRING: 'String',
- EXTENDED_STRING: 'ExtendedString',
BOOLEAN: 'Boolean',
DATETIME: 'DateTime',
DURATION: 'Duration',
DECIMAL: 'Decimal',
INTEGER: 'Integer',
DOUBLE: 'Double',
- ACCOUNT: 'Account',
- DOCUMENT: 'Document',
- IMAGE: 'Image',
- INSTANCE: 'Instance',
- ENUM: 'Enum',
- ROLE: 'Role',
- ORGANIZATION_UNIT: 'OrganizationalUnit',
- URI: 'Uri'
+ ACCOUNT: 'AccountProperty',
+ DOCUMENT: 'DocumentProperty',
+ IMAGE: 'ImageProperty',
+ INSTANCE: 'InstanceProperty',
+ ROLE: 'RoleProperty',
+ ENUM: 'EnumProperty',
+ ORGANIZATIONAL_UNIT: 'OrganizationalUnit',
+ CONVERSATION: 'Conversation',
+ URI: 'UriProperty',
+ COMPLEX: 'ComplexProperty',
+ EXTENDED_STRING: 'ExtendedString'
};
export const fieldTypes = {
diff --git a/src/layout/group/GroupView.js b/src/layout/group/GroupView.js
index c0020752d..52dc9cc04 100644
--- a/src/layout/group/GroupView.js
+++ b/src/layout/group/GroupView.js
@@ -98,9 +98,8 @@ export default Marionette.View.extend({
},
onClickToggleButton(e) {
- if (this.ui.toggleCollapseButtons.get(0) === e.currentTarget) {
- this.toggleCollapse();
- }
+ e.stopPropagation();
+ this.toggleCollapse();
},
toggleCollapse(collapse = !this.model.get('collapsed')) {
diff --git a/src/list/CellViewFactory.ts b/src/list/CellViewFactory.ts
index de6033e0f..4763b5814 100644
--- a/src/list/CellViewFactory.ts
+++ b/src/list/CellViewFactory.ts
@@ -84,7 +84,7 @@ class CellViewFactory implements ICellViewFactory {
case objectPropertyTypes.EXTENDED_STRING:
return this.__createContextString({ values, column: columnWithExtension, model });
case objectPropertyTypes.ENUM:
- case objectPropertyTypes.ORGANIZATION_UNIT:
+ case objectPropertyTypes.ORGANIZATIONAL_UNIT:
case objectPropertyTypes.ROLE:
case objectPropertyTypes.INSTANCE:
return this.__getReferenceCell({ values, column: columnWithExtension, model });
diff --git a/src/list/collections/DatasetViewReferenceCollection.js b/src/list/collections/DatasetViewReferenceCollection.js
deleted file mode 100644
index b20de6da3..000000000
--- a/src/list/collections/DatasetViewReferenceCollection.js
+++ /dev/null
@@ -1,46 +0,0 @@
-//TODO: Remove after reference editor refactoring
-/**
- * @param {containerId} options.containerId Container ID to get reference collection's data.
- * @param {searchId} options.searchId Reference id to request initial editor's value.
- */
-import BaseReferenceCollection from '../../form/editors/impl/datalist/collections/BaseReferenceCollection';
-
-export default BaseReferenceCollection.extend({
- initialize(collection, options) {
- this.options = options;
- },
-
- url: 'DatasetData/QueryAutocompleteData',
-
- fetch(options = { data: {} }) {
- const config = options;
-
- config.type = 'POST';
-
- if (config.reset === undefined) {
- config.reset = true;
- }
-
- config.data.datasource = this.options.datasourceId;
- config.data.query = this.options.query;
-
- if (config.data.query) {
- config.data.query.datasetId = config.data.query.id;
- }
- if (!this.models[0] || !this.models[0].get('text')) {
- config.data.searchId = this.options.searchId;
- } else {
- config.data.searchId = null;
- }
-
- config.processData = false;
-
- return Backbone.Collection.prototype.fetch.call(this, {
- data: JSON.stringify(config.data),
- type: 'POST',
- dataType: 'json',
- contentType: 'application/json',
- traditional: true
- });
- }
-});
diff --git a/src/list/meta.ts b/src/list/meta.ts
index b782a7836..e30f75d84 100644
--- a/src/list/meta.ts
+++ b/src/list/meta.ts
@@ -1,61 +1,9 @@
-import { objectPropertyTypes } from '../Meta';
-
export const contextTypes = {
void: 'void',
any: 'any',
one: 'one'
};
-export const queryBuilderActions = {
- sort: 'sort',
- group: 'group',
- filter: 'filters',
- aggregation: 'aggregation'
-};
-
-export const sortDirection = {
- ascending: 'Asc',
- descending: 'Desc'
-};
-
-export const columnTypes = {
- STRING: 'string',
- NUMBER: 'number',
- BOOLEAN: 'boolean',
- DATETIME: 'dateTime',
- HTML: 'html',
- DOCUMENT: 'document',
- decimal: 'Decimal',
- integer: 'Integer',
- datetime: 'DateTime',
- duration: 'Duration',
- string: 'String',
- boolean: 'Boolean',
- users: 'AccountProperty',
- role: 'RoleProperty',
- reference: 'InstanceProperty',
- enumerable: 'EnumProperty',
- document: 'DocumentProperty',
- id: 'id'
-};
-
-export const columnType = columnTypes;
-
-export const columnWidthByType = {
- [objectPropertyTypes.ACCOUNT]: 120,
- [objectPropertyTypes.BOOLEAN]: 120,
- [objectPropertyTypes.DATETIME]: 120,
- [objectPropertyTypes.DECIMAL]: 120,
- [objectPropertyTypes.DOCUMENT]: 120,
- [objectPropertyTypes.DOUBLE]: 120,
- [objectPropertyTypes.DURATION]: 120,
- [objectPropertyTypes.ENUM]: 120,
- [objectPropertyTypes.EXTENDED_STRING]: 120,
- [objectPropertyTypes.INSTANCE]: 120,
- [objectPropertyTypes.INTEGER]: 120,
- [objectPropertyTypes.STRING]: 120
-};
-
export const getDefaultActions = () => [
{
id: 'add',
@@ -117,21 +65,6 @@ export const pageSize = {
1000000000: 'ALL'
};
-export const enabledFilterEditor = model => {
- const operator = model.get('operator');
- return ![filterPredicates.set, filterPredicates.notSet].includes(operator);
-};
-
-export const pagingControlsTypes = {
- firstPage: 'fp',
- previousPage: 'pp',
- twoPagesBefore: 'tpb',
- currentPage: 'cp',
- nextPage: 'np',
- twoPagesNext: 'tpn',
- lastPage: 'lp'
-};
-
export const configurationConstants = {
VISIBLE_COLLECTION_RESERVE: 2,
VISIBLE_COLLECTION_RESERVE_HALF: 1,
@@ -174,7 +107,6 @@ export const classes = {
export default {
pageSize,
contextTypes,
- columnTypes,
getDefaultActions,
classes,
configurationConstants
diff --git a/src/list/services/FilterEditorsFactory.js b/src/list/services/FilterEditorsFactory.js
deleted file mode 100644
index af81ac3a7..000000000
--- a/src/list/services/FilterEditorsFactory.js
+++ /dev/null
@@ -1,316 +0,0 @@
-import { objectPropertyFormats as dateFormats } from '../../Meta';
-import DatasetViewReferenceCollection from '../collections/DatasetViewReferenceCollection';
-import { filterPredicates, aggregationPredicates, booleanDropdown, columnType, enabledFilterEditor } from '../meta';
-import formatService from 'services/FormatService';
-
-const constants = {
- aggregationCountClass: 'icon-aggregation',
- aggregationSumClass: 'icon-sum'
-};
-
-export default {
- getFilterEditorOptions(filtersConfigurationModel, model, parentModel) {
- const editorColumnType = filtersConfigurationModel.get('columnType');
-
- const requiredValidator = Core.form.repository.validators.required();
- const requiredIfEnabled = function required(value) {
- return enabledFilterEditor(parentModel) ? requiredValidator(value) : undefined;
- };
-
- switch (editorColumnType) {
- case columnType.decimal:
- return {
- type: 'Number',
- model,
- key: 'value',
- changeMode: 'keydown',
- autocommit: true,
- validators: [requiredIfEnabled],
- min: null,
- max: null,
- allowFloat: true
- };
- case columnType.integer:
- return {
- type: 'Number',
- model,
- key: 'value',
- changeMode: 'keydown',
- autocommit: true,
- validators: [requiredIfEnabled],
- min: null,
- max: null,
- allowFloat: false
- };
- case columnType.datetime: {
- const dateDisplayFormat = formatService.getDateDisplayFormat(filtersConfigurationModel.get('dataFormat'));
- const filterDateFormat = filtersConfigurationModel.get('dataFormat');
- if (
- filterDateFormat === dateFormats.SHORT_DATE ||
- filterDateFormat === dateFormats.SHORT_TIME ||
- filterDateFormat === dateFormats.CONDENSED_DATE ||
- filterDateFormat === dateFormats.MONTH_DAY ||
- filterDateFormat === dateFormats.YEAR_MONTH
- ) {
- return {
- type: 'Date',
- dateDisplayFormat,
- model,
- key: 'value',
- validators: [requiredIfEnabled],
- changeMode: 'keydown',
- autocommit: true
- };
- }
- return {
- type: 'DateTime',
- dateDisplayFormat,
- model,
- key: 'value',
- changeMode: 'keydown',
- validators: [requiredIfEnabled],
- autocommit: true
- };
- }
- case columnType.duration:
- return {
- type: 'Duration',
- model,
- key: 'value',
- changeMode: 'keydown',
- validators: [requiredIfEnabled],
- autocommit: true,
- showEmptyParts: true
- };
- case columnType.boolean:
- return {
- type: 'BooleanGroup',
- model,
- key: 'value',
- changeMode: 'keydown',
- autocommit: true,
- items: [
- {
- id: booleanDropdown.yes,
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.YES')
- },
- {
- id: booleanDropdown.no,
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.NO')
- },
- {
- id: booleanDropdown.null,
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.NULL')
- }
- ]
- };
- case columnType.document:
- return {
- type: 'RadioGroup',
- model,
- key: 'value',
- changeMode: 'keydown',
- autocommit: true,
- radioOptions: [
- {
- id: true,
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.EXIST')
- },
- {
- id: false,
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.NOTEXIST'),
- isCancel: true
- }
- ]
- };
- case columnType.string:
- return {
- type: 'Text',
- model,
- key: 'value',
- validators: [requiredIfEnabled],
- autocommit: true,
- changeMode: 'keydown'
- };
- case columnType.id:
- case columnType.users:
- case columnType.reference:
- case columnType.role:
- case columnType.enumerable: {
- const datasourceId = filtersConfigurationModel.get('datasourceId');
- model.set('datasourceId', datasourceId, { silent: true });
- let searchId = null;
- const editorValue = model.get('value');
-
- if (typeof editorValue === 'string' || typeof editorValue === 'number') {
- searchId = editorValue;
- }
- return {
- type: 'Datalist',
- model,
- key: 'value',
- autocommit: true,
- controller: new Core.form.editors.reference.controllers.BaseReferenceEditorController({
- collection: new DatasetViewReferenceCollection([], { datasourceId, searchId, query: filtersConfigurationModel.get('query') })
- }),
- textFilterDelay: 1000,
- showCheckboxes: true,
- validators: [requiredIfEnabled],
- maxQuantitySelected: Infinity,
- valueType: 'id'
- };
- }
- default:
- throw new Error(`Creation of filter's editor failed: Unknown column type ${editorColumnType}`);
- }
- },
-
- getAggregationPredicates(inputColumnType, model) {
- const aggregationMethodsList = [
- {
- id: aggregationPredicates.count,
- title: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.COUNT'),
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.COUNT')
- }
- ];
-
- switch (inputColumnType) {
- case columnType.decimal:
- case columnType.integer:
- case columnType.duration:
- aggregationMethodsList.push({
- id: aggregationPredicates.sum,
- title: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.SUM'),
- displayText: Localizer.get('PROCESS.DATASET.EDITORPREDICATES.SUM')
- });
- break;
- default:
- break;
- }
-
- return new Core.form.editors.RadioGroupEditor({
- model,
- key: 'aggregationMethod',
- changeMode: 'keydown',
- autocommit: true,
- radioOptions: aggregationMethodsList
- });
- },
-
- getFilterPredicates(inputColumnType, model) {
- let filterPredicateCollection;
-
- switch (inputColumnType) {
- case columnType.decimal:
- case columnType.integer:
- case columnType.duration:
- case columnType.datetime:
- filterPredicateCollection = new Backbone.Collection(
- [
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.EQUALTO'),
- id: filterPredicates.equal
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTEQUALTO'),
- id: filterPredicates.notEqual
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.GREATERTHAN'),
- id: filterPredicates.greaterThan
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.LESSTHAN'),
- id: filterPredicates.lessThan
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.BETWEEN'),
- id: filterPredicates.between
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.SET'),
- id: filterPredicates.set
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTSET'),
- id: filterPredicates.notSet
- }
- ],
- { comparator: null }
- );
- break;
- case columnType.string:
- filterPredicateCollection = new Backbone.Collection(
- [
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.SUBSTRINGOF'),
- id: filterPredicates.substringOf
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTSUBSTRINGOF'),
- id: filterPredicates.notSubstringOf
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.STARTSWITH'),
- id: filterPredicates.startsWith
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.ENDSWITH'),
- id: filterPredicates.endsWith
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.EQUALTO'),
- id: filterPredicates.equal
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTEQUALTO'),
- id: filterPredicates.notEqual
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.SET'),
- id: filterPredicates.set
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTSET'),
- id: filterPredicates.notSet
- }
- ],
- { comparator: null }
- );
- break;
- case columnType.users:
- case columnType.reference:
- case columnType.enumerable:
- case columnType.role:
- filterPredicateCollection = new Backbone.Collection(
- [
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.EQUALTO'),
- id: filterPredicates.equal
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.SET'),
- id: filterPredicates.set
- },
- {
- text: Localizer.get('PROCESS.DATASET.EDITORVALUES.NOTSET'),
- id: filterPredicates.notSet
- }
- ],
- { comparator: null }
- );
- break;
- default:
- break;
- }
-
- return new Core.form.editors.DatalistEditor({
- model,
- key: 'operator',
- collection: filterPredicateCollection,
- allowEmptyValue: false,
- valueType: 'id',
- autocommit: true
- });
- }
-};
diff --git a/src/list/services/FilterGetterService.js b/src/list/services/FilterGetterService.js
deleted file mode 100644
index b02ebb373..000000000
--- a/src/list/services/FilterGetterService.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- getGridFilterFromConfigurationModel() {}
-};
diff --git a/src/list/views/ConfigurationPanel.js b/src/list/views/ConfigurationPanel.js
deleted file mode 100644
index c628a79a9..000000000
--- a/src/list/views/ConfigurationPanel.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import template from '../templates/gridColumnConfigTabPanel.html';
-import PanelView from './сonfigurationPanel/GridColumnConfigPanelView';
-
-const constants = {
- animationTime: 100,
- contentRegion: '.js-content-region'
-};
-
-export default Marionette.View.extend({
- initialize(options) {
- this.panelViewModel = new Backbone.Model({
- columnModel: new Backbone.Model()
- });
-
- this.isOpen = false;
- this.panelView = this.__createPanelView(options.panelView, options.panelViewOptions);
- },
-
- template: Handlebars.compile(template),
-
- className: 'columns-filters js-columns-filters dev-columns-filters',
-
- events: {
- mouseleave: '__handleMouseLeave'
- },
-
- triggers: {
- mouseenter: 'mouseenter'
- },
-
- regions: {
- tabPanelRegion: '.js-tab-panel-region'
- },
-
- onRender() {
- const panelView = new PanelView();
- this.showChildView('tabPanelRegion', panelView);
-
- this.listenTo(Core.services.GlobalEventService, 'window:mousedown:captured', target => this.__handleGlobalMousedown(target, panelView));
- },
-
- updatePanelConfiguration(level, viewData) {
- this.panelViewModel.set({
- columnType: this.columnModel.get('columnType'),
- filtersConfigurationModel: new Backbone.Model({
- datasourceId: this.datasourceId,
- columnType: this.columnModel.get('columnType'),
- dataFormat: this.columnModel.get('dataFormat'),
- query: this.columnModel.get('queryConfiguration')
- }),
- level,
- columnModel: viewData
- });
- },
-
- __handleGlobalMousedown(target, panelView) {
- if (!this.__isNestedInPanel(target) && !this.__isNestedInButton(target, panelView)) {
- this.trigger('mouseDown', true);
- }
- },
-
- __isNestedInButton(target, panelView) {
- return this.el === target || this.el.contains(target) || panelView.el.contains(target);
- },
-
- __isNestedInPanel(testedEl) {
- return testedEl.closest('.js-core-ui__global-popup-region') || testedEl.closest('.js-grid-header-region');
- },
-
- __createPanelView(panelView, options) {
- return new panelView(options);
- },
-
- __handleMouseLeave(event) {
- if (event.toElement.closest(constants.contentRegion)) {
- this.trigger('mouseleave');
- }
- }
-});
diff --git a/src/list/views/GridView.ts b/src/list/views/GridView.ts
index 60ca37dd5..4eab7a135 100644
--- a/src/list/views/GridView.ts
+++ b/src/list/views/GridView.ts
@@ -14,7 +14,6 @@ import ActionMenuView from '../../components/toolbar/views/ActionMenuView';
import MobileService from '../../services/MobileService';
import LoadingBehavior from '../../views/behaviors/LoadingBehavior';
import SearchBarView from '../../views/SearchBarView';
-import ConfigurationPanel from './ConfigurationPanel';
import EmptyGridView from './EmptyGridView';
import LayoutBehavior from '../../layout/behaviors/LayoutBehavior';
import { getDefaultActions, classes, configurationConstants, contextTypes } from '../meta';
@@ -853,10 +852,6 @@ export default Marionette.View.extend({
return this.isRendered() && !this.isDestroyed();
},
- __initializeConfigurationPanel() {
- this.__configurationPanel = new ConfigurationPanel();
- },
-
__onSearch(text) {
if (this.options.isTree) {
this.trigger('toggle:collapse:all', !text && !this.options.expandOnShow);
diff --git a/src/list/views/PagingView.js b/src/list/views/PagingView.js
deleted file mode 100644
index 378d903ea..000000000
--- a/src/list/views/PagingView.js
+++ /dev/null
@@ -1,194 +0,0 @@
-import template from '../templates/paging.html';
-import { pageSize, pagingControlsTypes } from '../meta';
-
-export default Marionette.View.extend({
- initialize() {
- this.model.set('pageControls', this.__getPageControlsConfig());
- },
-
- updateView(newModel) {
- this.model.set(newModel.attributes);
- this.__updatePagination();
- },
-
- setSelectedRowsCount(count) {
- this.view.model.set('selectedRowsCount', count);
- this.view.render();
- },
-
- template: Handlebars.compile(template),
-
- className: 'dataset-footer',
-
- events() {
- return {
- 'click .js-first-button': () => this.__switchPageTo(pagingControlsTypes.firstPage),
- 'click .js-first-page-button': () => this.__switchPageTo(pagingControlsTypes.firstPage),
- 'click .js-previous-button': () => this.__switchPageTo(pagingControlsTypes.previousPage),
- 'click .js-prevPage-button': () => this.__switchPageTo(pagingControlsTypes.previousPage),
- 'click .js-doublePrev-button': () => this.__switchPageTo(pagingControlsTypes.twoPagesBefore),
- 'click .js-currentPage-button': () => this.__switchPageTo(pagingControlsTypes.currentPage),
- 'click .js-nextPage-button': () => this.__switchPageTo(pagingControlsTypes.nextPage),
- 'click .js-doubleNext-button': () => this.__switchPageTo(pagingControlsTypes.twoPagesNext),
- 'click .js-next-button': () => this.__switchPageTo(pagingControlsTypes.nextPage),
- 'click .js-last-button': () => this.__switchPageTo(pagingControlsTypes.lastPage),
- 'click .js-last-page-button': () => this.__switchPageTo(pagingControlsTypes.lastPage)
- };
- },
-
- regions: {
- recordsPerPageRegion: '.js-records-per-page-region'
- },
-
- onRender() {
- const recordsPerPageView = this.__createRecordsPerPageView();
-
- this.showChildView('recordsPerPageRegion', recordsPerPageView);
- this.listenTo(recordsPerPageView, 'execute', this.__switchRecordsOnPage);
- },
-
- __createRecordsPerPageView() {
- const menuItems = Object.entries(pageSize).map(entrie => ({
- id: entrie[0],
- name: entrie[1]
- }));
-
- const sizeSelected = menuItems.find(num => num.id === this.model.get('size').toString());
-
- return Core.dropdown.factory.createMenu({
- text: `${Localizer.get('PROCESS.LISTS.LISTCONTEXT.PAGESIZE')}: ${sizeSelected.name}`,
- items: menuItems,
- direction: 'up',
- popoutFlow: 'left'
- });
- },
-
- __getPageControlsConfig() {
- const currentPageSize = +this.model.get('size');
- this.currentPage = this.model.get('page') || 1;
-
- if (isNaN(currentPageSize) || currentPageSize === 0 || this.model.get('totalRowsCount') === 0) {
- this.pageCount = 1;
- } else {
- this.pageCount = Math.ceil(this.model.get('totalRowsCount') / currentPageSize);
- }
-
- const countCurrentPageDiff = this.pageCount - this.currentPage;
-
- const pageControlsConfig = {
- currentPage: this.currentPage,
- firstPage: null,
- prevPage: null,
- doublePrevPage: null,
- nextPage: null,
- doubleNext: null,
- lastPage: null,
- hasPrevItems: false,
- hasPostItems: false
- };
-
- if (countCurrentPageDiff >= 0) {
- switch (this.currentPage) {
- case 1:
- break;
- case 4:
- pageControlsConfig.doublePrevPage = this.currentPage - 2;
- case 3:
- pageControlsConfig.prevPage = this.currentPage - 1;
- case 2:
- pageControlsConfig.firstPage = 1;
- break;
- default:
- pageControlsConfig.firstPage = 1;
- pageControlsConfig.prevPage = this.currentPage - 1;
- pageControlsConfig.doublePrevPage = this.currentPage - 2;
- pageControlsConfig.hasPrevItems = true;
- break;
- }
-
- switch (countCurrentPageDiff) {
- case 0:
- break;
- case 3:
- pageControlsConfig.doubleNext = this.currentPage + 2;
- case 2:
- pageControlsConfig.nextPage = this.currentPage + 1;
- case 1:
- pageControlsConfig.lastPage = this.pageCount;
- break;
- default:
- pageControlsConfig.lastPage = this.pageCount;
- pageControlsConfig.nextPage = this.currentPage + 1;
- pageControlsConfig.doubleNext = this.currentPage + 2;
- pageControlsConfig.hasPostItems = true;
- break;
- }
- }
-
- this.lastPage = this.pageCount;
-
- return pageControlsConfig;
- },
-
- __switchRecordsOnPage(menuItemId) {
- this.model.set({ size: menuItemId });
- this.trigger('paging:change:size');
- },
-
- __switchPageTo(pageType) {
- const newPageNumber = this.__getPageNumberFromEvent(pageType);
-
- if (this.model.get('page') !== newPageNumber) {
- this.model.set({ page: newPageNumber });
- this.trigger('paging:change:page');
- }
- },
-
- __updatePagination() {
- this.view.model.set('pageControls', this.__getPageControlsConfig());
- this.view.render();
- },
-
- __getPageNumberFromEvent(pageType) {
- let nextPage;
-
- if (this.pageCount > 1) {
- switch (pageType) {
- case pagingControlsTypes.firstPage:
- nextPage = 1;
- break;
- case pagingControlsTypes.previousPage:
- nextPage = this.currentPage - 1;
- break;
- case pagingControlsTypes.twoPagesBefore:
- nextPage = this.currentPage - 2;
- break;
- case pagingControlsTypes.currentPage:
- nextPage = this.currentPage;
- break;
- case pagingControlsTypes.nextPage:
- nextPage = this.currentPage + 1;
- break;
- case pagingControlsTypes.twoPagesNext:
- nextPage = this.currentPage + 2;
- break;
- case pagingControlsTypes.lastPage:
- nextPage = this.lastPage;
- break;
- default:
- nextPage = this.currentPage;
- break;
- }
- } else {
- nextPage = this.currentPage;
- }
-
- if (nextPage < 1) {
- nextPage = 1;
- } else if (nextPage > this.lastPage) {
- nextPage = this.lastPage;
- }
-
- return nextPage;
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/ConfigPanelAggregationView.js" "b/src/list/views/\321\201onfigurationPanel/ConfigPanelAggregationView.js"
deleted file mode 100644
index 66a9d088b..000000000
--- "a/src/list/views/\321\201onfigurationPanel/ConfigPanelAggregationView.js"
+++ /dev/null
@@ -1,27 +0,0 @@
-import template from '../../templates/filterPanel/configPanelAggregation.html';
-import FilterEditorsFactory from '../../services/FilterEditorsFactory';
-
-export default Marionette.View.extend({
- //todo make it functional component
- initialize() {
- if (this.model.get('columnModel')) {
- this.listenTo(this.model, 'change', () => this.render());
- }
- },
-
- className: 'dev-aggregation-view',
-
- regions: {
- dropdownRegion: '.js-dropdown-region'
- },
-
- template: Handlebars.compile(template),
-
- onRender() {
- this.getRegion('dropdownRegion').show(this.__createView());
- },
-
- __createView() {
- return FilterEditorsFactory.getAggregationPredicates(this.model.get('columnType'), this.model.get('columnModel').get('aggregation'));
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/ConfigPanelFilterView.js" "b/src/list/views/\321\201onfigurationPanel/ConfigPanelFilterView.js"
deleted file mode 100644
index 516cc4c4c..000000000
--- "a/src/list/views/\321\201onfigurationPanel/ConfigPanelFilterView.js"
+++ /dev/null
@@ -1,75 +0,0 @@
-import template from '../../templates/filterPanel/configPanelFilter.html';
-import FilterItemView from './FilterItemView';
-import { columnType } from '../../meta';
-
-export default Marionette.CollectionView.extend({
- initialize() {
- if (this.model.get('columnModel') && !this.model.get('columnModel').has('filters')) {
- this.listenTo(this.model, 'change', this.__updateCollection);
- }
-
- this.__updateCollection();
- },
-
- templateContext() {
- return {
- showAddButton: this.model.get('columnType') !== columnType.boolean
- };
- },
-
- template: Handlebars.compile(template),
-
- childView: FilterItemView,
-
- childViewEvents: {
- 'click:removeButton': '__onClickRemoveButton',
- attach: '__updateAddFilterButton',
- change: '__updateAddFilterButton'
- },
-
- childViewContainer: '.js-config-panel-filter',
-
- triggers: {
- 'click .js-apply-button': 'apply:filter',
- 'click .js-add-filter-button': 'add:filter'
- },
-
- childViewOptions() {
- return {
- filtersConfigurationModel: this.model.get('filtersConfigurationModel')
- };
- },
-
- ui: {
- addFilterButton: '.js-add-filter-button'
- },
-
- __updateAddFilterButton() {
- this.ui.addFilterButton.toggle(!this.children.some(child => child.isEmptyValue && child.isEmptyValue()));
- },
-
- validate() {
- const errors = this.children.reduce((res, child) => {
- const childErrors = child.validate();
- if (childErrors.length) {
- res.push(...childErrors);
- }
- return res;
- }, []);
-
- return errors.length;
- },
-
- __updateCollection() {
- this.collection = this.model.get('columnModel').get('filters');
- this.render();
- },
-
- __onClickRemoveButton(view) {
- this.model
- .get('columnModel')
- .get('filters')
- .remove(view.model);
- this.render();
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/ConfigPanelGroupView.js" "b/src/list/views/\321\201onfigurationPanel/ConfigPanelGroupView.js"
deleted file mode 100644
index 10320a5eb..000000000
--- "a/src/list/views/\321\201onfigurationPanel/ConfigPanelGroupView.js"
+++ /dev/null
@@ -1,55 +0,0 @@
-import template from '../../templates/filterPanel/configPanelGroup.html';
-
-const constants = {
- groupByClass: 'icon-group',
- subGroupByClass: 'icon-subgroup',
- groupByCollumnId: 'groupByCollumn',
- subGroupByCollumnId: 'subGroupByCollumn'
-};
-
-export default Marionette.View.extend({
- initialize() {
- if (this.model.get('columnModel')) {
- this.listenTo(this.model, 'change', () => this.render());
- }
- },
-
- template: Handlebars.compile(template),
-
- regions: {
- groupRadioRegion: '.js-button-group'
- },
-
- onRender() {
- const groupRadioButton = this.__createGroupByColumn();
-
- this.showChildView('groupRadioRegion', groupRadioButton);
- this.listenTo(groupRadioButton, 'change', item => this.trigger(item.value));
- },
-
- __createGroupByColumn() {
- const radioOptions = [
- {
- id: constants.groupByCollumnId,
- title: Localizer.get('PROCESS.DATASET.QUERYBUILDER.GROUPBY'),
- displayText: Localizer.get('PROCESS.DATASET.QUERYBUILDER.GROUPBY')
- }
- ];
-
- if (this.model.get('level') > 0 && this.model.get('columnModel').get('group').columnlevel !== 1) {
- radioOptions.push({
- id: constants.subGroupByCollumnId,
- title: Localizer.get('PROCESS.DATASET.QUERYBUILDER.SUBGROUPBY'),
- displayText: Localizer.get('PROCESS.DATASET.QUERYBUILDER.SUBGROUPBY')
- });
- }
-
- return new Core.form.editors.RadioGroupEditor({
- model: this.model.get('columnModel').get('group'),
- key: 'groupings',
- changeMode: 'keydown',
- autocommit: true,
- radioOptions
- });
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/ConfigPanelSortView.js" "b/src/list/views/\321\201onfigurationPanel/ConfigPanelSortView.js"
deleted file mode 100644
index 4b2356dca..000000000
--- "a/src/list/views/\321\201onfigurationPanel/ConfigPanelSortView.js"
+++ /dev/null
@@ -1,68 +0,0 @@
-import { sortDirection } from '../../meta';
-import template from '../../templates/filterPanel/configPanelSort.html';
-
-export default Marionette.View.extend({
- initialize() {
- if (this.model.get('columnModel')) {
- this.listenTo(this.model, 'change', () => this.render());
- }
- },
-
- template: Handlebars.compile(template),
-
- regions: {
- sortDirectionRegion: '.js-sort-direction-region',
- changeNullPositionRegion: '.js-change-null-position-region'
- },
-
- onRender() {
- if (this.model.get('columnModel').has('sort')) {
- const nullOnTopCheckBox = this.__createNullOnTopCheckBox();
- const view = this.__createSortDirectionRadioGroup();
-
- this.showChildView('sortDirectionRegion', view);
- this.showChildView('changeNullPositionRegion', nullOnTopCheckBox);
-
- if (
- !this.model
- .get('columnModel')
- .get('sort')
- .has('direction')
- ) {
- nullOnTopCheckBox.setEnabled(false);
- }
- }
- },
-
- __createSortDirectionRadioGroup() {
- return new Core.form.editors.RadioGroupEditor({
- model: this.model.get('columnModel').get('sort'),
- key: 'direction',
- changeMode: 'keydown',
- autocommit: true,
- radioOptions: [
- {
- id: sortDirection.ascending,
- title: Localizer.get('PROCESS.DATASET.SORTINGVALUES.ASCENDING'),
- displayText: Localizer.get('PROCESS.DATASET.SORTINGVALUES.ASCENDING')
- },
- {
- id: sortDirection.descending,
- title: Localizer.get('PROCESS.DATASET.SORTINGVALUES.DESCENDING'),
- displayText: Localizer.get('PROCESS.DATASET.SORTINGVALUES.DESCENDING')
- }
- ]
- });
- },
-
- __createNullOnTopCheckBox() {
- return new Core.form.editors.BooleanEditor({
- model: this.model.get('columnModel').get('sort'),
- key: 'nullValuesOnTop',
- changeMode: 'keydown',
- autocommit: true,
- title: Localizer.get('PROCESS.DATASET.SORTINGVALUES.NULLONTOP'),
- displayText: Localizer.get('PROCESS.DATASET.SORTINGVALUES.NULLONTOP')
- });
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/FilterItemView.js" "b/src/list/views/\321\201onfigurationPanel/FilterItemView.js"
deleted file mode 100644
index 2c559c1fd..000000000
--- "a/src/list/views/\321\201onfigurationPanel/FilterItemView.js"
+++ /dev/null
@@ -1,127 +0,0 @@
-import template from '../../templates/filterPanel/filterItem.html';
-import { columnType, enabledFilterEditor } from '../../meta';
-import FilterValueItemView from './FilterValueItemView';
-import FilterEditorsFactory from '../../services/FilterEditorsFactory';
-
-export default Marionette.View.extend({
- initialize(options) {
- this.__createFilterCompositeView(options.filtersConfigurationModel.get('columnType'));
- },
-
- regions: {
- filterRegion: '.js-filter-region',
- predicateDropdownRegion: '.js-predicate-dropdown-region'
- },
-
- ui: {
- removeButton: '.js-remove-button'
- },
-
- triggers: {
- 'pointerdown @ui.removeButton': 'click:removeButton'
- },
-
- template: Handlebars.compile(template),
-
- templateContext() {
- return {
- isPredicateDropdownExist: !!this.filterPredicateDropdown
- };
- },
-
- className: 'dataset-options-filters',
-
- onRender() {
- this.showChildView('filterRegion', this.filterView);
- this.listenTo(this.filterView, 'change', () => this.trigger('change'));
- this.listenTo(this.filterView, 'keyup:editor', this.__applyFilterChange);
- if (this.filterPredicateDropdown) {
- this.showChildView('predicateDropdownRegion', this.filterPredicateDropdown);
- this.listenTo(this.filterPredicateDropdown, 'change', this.__applyFilterPredicateChange);
- }
- this.__adjustRemoveFilterButtonVisibility();
- this.__applyEditorVisibility(this.model.get('operator'));
- },
-
- isEmptyValue() {
- return this.filterView.children.some(child => child.editor.isEmptyValue());
- },
-
- validate() {
- return this.filterView.children.reduce((res, child) => {
- const error = child.validate && child.validate();
- if (error) {
- res.push(error);
- }
- return res;
- }, []);
- },
-
- __createFilterView() {
- return new FilterValueItemView({
- filtersConfigurationModel: this.getOption('filtersConfigurationModel'),
- collection: this.model.get('values'),
- parentModel: this.model
- });
- },
-
- __createFilterPredicateDropdown(predicateColumnType, model) {
- return FilterEditorsFactory.getFilterPredicates(predicateColumnType, model);
- },
-
- __createFilterCompositeView(filterType) {
- switch (filterType) {
- case columnType.string:
- case columnType.integer:
- case columnType.decimal:
- case columnType.datetime:
- case columnType.duration:
- case columnType.users:
- case columnType.reference:
- case columnType.role:
- this.filterView = this.__createFilterView();
- this.filterPredicateDropdown = this.__createFilterPredicateDropdown(this.getOption('filtersConfigurationModel').get('columnType'), this.model);
- this.el.classList.remove('filters_settings-inline-after');
- break;
- case columnType.id:
- case columnType.enumerable:
- case columnType.boolean:
- case columnType.document:
- this.filterView = this.__createFilterView();
- this.el.classList.add('filters_settings-inline-after');
- break;
- default:
- throw new Error(`Unknown filter type ${filterType}`);
- }
- },
-
- __applyFilterPredicateChange() {
- this.__applyEditorVisibility();
- },
-
- __applyFilterChange() {
- this.trigger('apply:editorChanges', this.model);
- },
-
- __adjustRemoveFilterButtonVisibility() {
- switch (this.getOption('filtersConfigurationModel').get('columnType')) {
- case columnType.enumerable:
- case columnType.users:
- case columnType.document:
- case columnType.boolean:
- this.ui.removeButton.hide();
- break;
- default:
- this.ui.removeButton.show();
- }
- },
-
- __applyEditorVisibility() {
- const region = this.getRegion('filterRegion');
- if (enabledFilterEditor(this.model)) {
- delete region.el.style.display;
- } else {
- region.el.style.display = 'none';
- }
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/FilterValueItemView.js" "b/src/list/views/\321\201onfigurationPanel/FilterValueItemView.js"
deleted file mode 100644
index 127887cbb..000000000
--- "a/src/list/views/\321\201onfigurationPanel/FilterValueItemView.js"
+++ /dev/null
@@ -1,32 +0,0 @@
-import form from 'form';
-import FilterEditorsFactory from '../../services/FilterEditorsFactory';
-
-export default Marionette.CollectionView.extend({
- className: 'dataset-options-editor dev-dataset-options-editor',
-
- childViewEvents: {
- render: '__onChildRender',
- destroy: '__onChildDestroy'
- },
-
- __onChildRender(fieldView) {
- this.listenTo(fieldView.editor, 'change', () => this.trigger('change'));
- },
-
- __onChildDestroy(fieldView) {
- this.stopListening(fieldView.editor, 'change');
- },
-
- childView() {
- return form.Field;
- },
-
- childViewOptions(model) {
- const filtersConfigurationModel = this.getOption('filtersConfigurationModel');
- const editorOptions = FilterEditorsFactory.getFilterEditorOptions(filtersConfigurationModel, model, this.options.parentModel);
- return {
- schema: editorOptions,
- ...editorOptions
- };
- }
-});
diff --git "a/src/list/views/\321\201onfigurationPanel/GridColumnConfigPanelView.js" "b/src/list/views/\321\201onfigurationPanel/GridColumnConfigPanelView.js"
deleted file mode 100644
index 212e358a8..000000000
--- "a/src/list/views/\321\201onfigurationPanel/GridColumnConfigPanelView.js"
+++ /dev/null
@@ -1,52 +0,0 @@
-import ConfigPanelSortView from './ConfigPanelSortView';
-import ConfigPanelGroupView from './ConfigPanelGroupView';
-import ConfigPanelFilterView from './ConfigPanelFilterView';
-import ConfigPanelAggregationView from './ConfigPanelAggregationView';
-
-export default function(options = {}) {
- const TabView = Core.layout.TabLayout.extend({
- triggers: {
- mouseleave: 'mouseleave',
- mouseenter: 'mouseenter'
- }
- });
- return new TabView({
- bodyClass: 'dataset-configuration-panel',
- tabs: [
- {
- name: '',
- description: Localizer.get('PROCESS.DATASET.FILTERTOOLTIPS.SORTING'),
- id: 'sort',
- view: new ConfigPanelSortView({ model: options.model })
- },
- {
- name: '',
- description: Localizer.get('PROCESS.DATASET.FILTERTOOLTIPS.FILTRATION'),
- id: 'filter',
- view: new ConfigPanelFilterView({
- filtersConfigurationModel: options.model.get('filtersConfigurationModel'),
- columnType: options.model.get('columnType'),
- model: options.model
- })
- },
- {
- name: '',
- description: Localizer.get('PROCESS.DATASET.FILTERTOOLTIPS.GROUPING'),
- id: 'group',
- view: new ConfigPanelGroupView({
- level: options.model.get('level'),
- model: options.model
- })
- },
- {
- name: '',
- description: Localizer.get('PROCESS.DATASET.FILTERTOOLTIPS.AGGREGATION'),
- id: 'Aggregation',
- view: new ConfigPanelAggregationView({
- columnType: options.model.get('columnType'),
- model: options.model
- })
- }
- ]
- });
-}