diff --git a/openbis_ng_ui/src/js/components/common/grid/GridController.js b/openbis_ng_ui/src/js/components/common/grid/GridController.js index 2d7f14fce10e90a18a7cca313ed9f43b444bcd89..7cbb895a66da0854b470695f4020f3cb869de35b 100644 --- a/openbis_ng_ui/src/js/components/common/grid/GridController.js +++ b/openbis_ng_ui/src/js/components/common/grid/GridController.js @@ -13,6 +13,8 @@ export default class GridController { } init(context) { + const props = context.getProps() + context.initState({ loaded: false, loading: false, @@ -29,8 +31,10 @@ export default class GridController { allRows: [], selectedRow: null, multiselectedRows: {}, - sort: null, - sortDirection: null, + sort: props.sort, + sortDirection: props.sortDirection + ? props.sortDirection + : GridSortingOptions.ASC, totalCount: 0, exportOptions: { columns: GridExportOptions.VISIBLE_COLUMNS, @@ -127,15 +131,6 @@ export default class GridController { newState.columnsVisibility = newColumnsVisibility newState.columnsSorting = newColumnsSorting - if (!state.loaded && !settings) { - newState.allColumns.forEach(column => { - if (column.sort) { - newState.sort = column.name - newState.sortDirection = column.sort - } - }) - } - newState.allRows = result.rows newState.filteredRows = this._filterRows( newState.allRows, diff --git a/openbis_ng_ui/src/js/components/tools/common/PluginsGrid.jsx b/openbis_ng_ui/src/js/components/tools/common/PluginsGrid.jsx index b40ff28f385d73d8cbeced800a433ca8326c0f99..e87d2f38a7e56dfd97b172d99a7603c4510f33fe 100644 --- a/openbis_ng_ui/src/js/components/tools/common/PluginsGrid.jsx +++ b/openbis_ng_ui/src/js/components/tools/common/PluginsGrid.jsx @@ -25,11 +25,11 @@ class PluginsGrid extends React.PureComponent { id={id} controllerRef={controllerRef} header={this.getHeader()} + sort='name' columns={[ { name: 'name', label: messages.get(messages.NAME), - sort: 'asc', getValue: ({ row }) => row.name.value, renderValue: ({ row }) => { return ( diff --git a/openbis_ng_ui/src/js/components/tools/common/QueriesGrid.jsx b/openbis_ng_ui/src/js/components/tools/common/QueriesGrid.jsx index ec2cdb9ce16f9d7188f32a3d3b533bf9b2e5ce2f..b64fbdc9adac3a0ffd33c4293a812805c953aef0 100644 --- a/openbis_ng_ui/src/js/components/tools/common/QueriesGrid.jsx +++ b/openbis_ng_ui/src/js/components/tools/common/QueriesGrid.jsx @@ -18,11 +18,11 @@ class QueriesGrid extends React.PureComponent { id={id} controllerRef={controllerRef} header={messages.get(messages.QUERIES)} + sort='name' columns={[ { name: 'name', label: messages.get(messages.NAME), - sort: 'asc', getValue: ({ row }) => row.name.value, renderValue: ({ value }) => { return <QueryLink queryName={value} /> diff --git a/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx b/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx index 0c2f210994ec0f4a97e7e0bbe09b222aae261357..c9c2d58a45943d71ec5b4e73c9973637052981b8 100644 --- a/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx +++ b/openbis_ng_ui/src/js/components/types/common/TypesGrid.jsx @@ -20,6 +20,7 @@ class TypesGrid extends React.PureComponent { header={this.getHeader()} columns={this.getColumns()} rows={rows} + sort='code' selectable={true} selectedRowId={selectedRowId} onSelectedRowChange={onSelectedRowChange} @@ -48,7 +49,6 @@ class TypesGrid extends React.PureComponent { columns.push({ name: 'code', label: messages.get(messages.CODE), - sort: 'asc', getValue: ({ row }) => row.code, renderValue: ({ row }) => { return <TypeLink typeCode={row.code} typeKind={kind} /> diff --git a/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx b/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx index b0075b5f40d37b90e9cad2050e91d574e85df797..ab7ee679c7a986a9d573366fb03f2a3c4cc0eb51 100644 --- a/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx +++ b/openbis_ng_ui/src/js/components/types/common/VocabulariesGrid.jsx @@ -20,7 +20,6 @@ class VocabulariesGrid extends React.PureComponent { { name: 'code', label: messages.get(messages.CODE), - sort: 'asc', getValue: ({ row }) => row.code, renderValue: ({ row }) => { return <VocabularyLink vocabularyCode={row.code} /> @@ -38,6 +37,7 @@ class VocabulariesGrid extends React.PureComponent { } ]} rows={rows} + sort='code' selectable={true} selectedRowId={selectedRowId} onSelectedRowChange={onSelectedRowChange} diff --git a/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx b/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx index 479e6cc4f83738d95604532a9c2b217bb87078ac..dd6985f7036b90c444253e6f0115a5cf4573edbd 100644 --- a/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx +++ b/openbis_ng_ui/src/js/components/types/form/VocabularyForm.jsx @@ -23,7 +23,6 @@ const columns = [ { name: 'code', label: messages.get(messages.CODE), - sort: 'asc', getValue: ({ row }) => row.code.value }, { @@ -117,6 +116,7 @@ class VocabularyForm extends React.PureComponent { header={messages.get(messages.TERMS)} columns={columns} rows={terms} + sort='code' selectable={true} selectedRowId={ selection && selection.type === VocabularyFormSelectionType.TERM diff --git a/openbis_ng_ui/src/js/components/users/common/RolesGrid.jsx b/openbis_ng_ui/src/js/components/users/common/RolesGrid.jsx index fdafcdffdefbb5c28a58bd79cfc8e9c73af1870d..175a1b9602dbf05d47d2213ee22d027959d9edde 100644 --- a/openbis_ng_ui/src/js/components/users/common/RolesGrid.jsx +++ b/openbis_ng_ui/src/js/components/users/common/RolesGrid.jsx @@ -55,6 +55,7 @@ class RolesGrid extends React.PureComponent { header={this.getHeader()} columns={columns} rows={rows} + sort={this.getSort()} selectable={true} selectedRowId={selectedRowId} onSelectedRowChange={onSelectedRowChange} @@ -77,14 +78,25 @@ class RolesGrid extends React.PureComponent { return messages.get(message) } - getColumns() { + getSort() { const { id } = this.props + if (id === ids.ROLES_OF_USERS_GRID_ID) { + return 'user' + } else if (id === ids.ROLES_OF_GROUPS_GRID_ID) { + return 'group' + } else if (id === ids.ROLES_OF_USER_GRID_ID) { + return 'inheritedFrom' + } else if (id === ids.ROLES_OF_GROUP_GRID_ID) { + return 'level' + } + } + + getColumns() { return [ { name: 'user', label: messages.get(messages.USER), - sort: id === ids.ROLES_OF_USERS_GRID_ID ? 'asc' : null, getValue: this.getUserValue, renderValue: this.renderUserValue, compareValue: params => { @@ -102,7 +114,6 @@ class RolesGrid extends React.PureComponent { { name: 'group', label: messages.get(messages.GROUP), - sort: id === ids.ROLES_OF_GROUPS_GRID_ID ? 'asc' : null, getValue: this.getGroupValue, renderValue: this.renderGroupValue, compareValue: params => { @@ -120,7 +131,6 @@ class RolesGrid extends React.PureComponent { { name: 'inheritedFrom', label: messages.get(messages.INHERITED_FROM), - sort: id === ids.ROLES_OF_USER_GRID_ID ? 'asc' : null, getValue: this.getInheritedFromValue, renderValue: this.renderInheritedFromValue, compareValue: params => { @@ -137,7 +147,6 @@ class RolesGrid extends React.PureComponent { { name: 'level', label: messages.get(messages.LEVEL), - sort: id === ids.ROLES_OF_GROUP_GRID_ID ? 'asc' : null, getValue: this.getLevelValue, renderValue: this.renderLevelValue, compareValue: params => { diff --git a/openbis_ng_ui/src/js/components/users/common/UserGroupsGrid.jsx b/openbis_ng_ui/src/js/components/users/common/UserGroupsGrid.jsx index 7158fc330f88b46a892a843a16f5e208857aff22..6db0a3228913f10688811aa722c4cbcc80f39a95 100644 --- a/openbis_ng_ui/src/js/components/users/common/UserGroupsGrid.jsx +++ b/openbis_ng_ui/src/js/components/users/common/UserGroupsGrid.jsx @@ -16,11 +16,11 @@ export default class GroupsGrid extends React.PureComponent { id={id} controllerRef={controllerRef} header={messages.get(messages.GROUPS)} + sort='code' columns={[ { name: 'code', label: messages.get(messages.CODE), - sort: 'asc', getValue: ({ row }) => row.code.value, renderValue: ({ value }) => { if (value) { diff --git a/openbis_ng_ui/src/js/components/users/common/UsersGrid.jsx b/openbis_ng_ui/src/js/components/users/common/UsersGrid.jsx index 9ccf9675f039acb776527067e1b15802848ef0bd..97f4a0c49a3d0a5d2d8881a27147214716bcdb2b 100644 --- a/openbis_ng_ui/src/js/components/users/common/UsersGrid.jsx +++ b/openbis_ng_ui/src/js/components/users/common/UsersGrid.jsx @@ -26,11 +26,11 @@ class UsersGrid extends React.PureComponent { id={id} controllerRef={controllerRef} header={messages.get(messages.USERS)} + sort='userId' columns={[ { name: 'userId', label: messages.get(messages.USER_ID), - sort: 'asc', getValue: ({ row }) => row.userId.value, renderValue: ({ value }) => { return <UserLink userId={value} />