Skip to content

Commit

Permalink
refactor: working lists
Browse files Browse the repository at this point in the history
  • Loading branch information
JoakimSM committed Feb 26, 2020
1 parent 608e558 commit 874602f
Show file tree
Hide file tree
Showing 154 changed files with 3,246 additions and 1,867 deletions.
28 changes: 20 additions & 8 deletions i18n/en.pot
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2020-01-22T07:56:34.947Z\n"
"PO-Revision-Date: 2020-01-22T07:56:34.947Z\n"
"POT-Creation-Date: 2020-02-21T09:38:52.654Z\n"
"PO-Revision-Date: 2020-02-21T09:38:52.655Z\n"

msgid "Please provide a valid date"
msgstr ""
Expand Down Expand Up @@ -224,12 +224,6 @@ msgstr ""
msgid "Min"
msgstr ""

msgid "greater than or equal to"
msgstr ""

msgid "less than or equal to"
msgstr ""

msgid "Contains text"
msgstr ""

Expand Down Expand Up @@ -356,6 +350,12 @@ msgstr ""
msgid "before or equal to {{date}}"
msgstr ""

msgid "greater than or equal to"
msgstr ""

msgid "less than or equal to"
msgstr ""

msgid "More filters"
msgstr ""

Expand Down Expand Up @@ -386,6 +386,15 @@ msgstr ""
msgid "Rows per page"
msgstr ""

msgid "Working list could not be loaded"
msgstr ""

msgid "an error occurred loading working lists"
msgstr ""

msgid "Registered events"
msgstr ""

msgid "Active"
msgstr ""

Expand Down Expand Up @@ -688,6 +697,9 @@ msgstr ""
msgid "Could not save event. See log for details"
msgstr ""

msgid "Could not delete event"
msgstr ""

msgid "Organisation unit search failed. See log for details"
msgstr ""

Expand Down
10 changes: 9 additions & 1 deletion jsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
{
"exclude": [
"node_modules",
"**/node_modules/*"
"**/node_modules/*",
"build",
"buildzip",
"coverage",
"docs",
"flow",
"flow-typed",
"i18n",
"public"
]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
"eslint-import-resolver-webpack": "^0.11.1",
"eslint-plugin-import": "^2.17.3",
"expose-loader": "^0.7.5",
"flow-bin": "^0.87.0",
"flow-bin": "^0.118.0",
"jsdoc": "^3.6.2",
"jsdoc-babel": "^0.5.0",
"jsdoc-export-default-interop": "^0.3.1",
Expand Down
2 changes: 2 additions & 0 deletions src/core_modules/capture-core/HOC/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// @flow

export { default as withTransformPropName } from './withTransformPropName';
export { default as withLoadingIndicator } from './withLoadingIndicator';
export { default as withErrorMessageHandler } from './withErrorMessageHandler';
29 changes: 19 additions & 10 deletions src/core_modules/capture-core/components/App/isSelectionsEqual.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,34 @@
// @flow
/*
The first argument must be a complete selections set
*/

const CATEGORIES_KEY = 'categories';
const COMPLETE_KEY = 'complete';

const isSelectionsEqual = (completeSet1: Object, set2: Object) =>
Object
.keys(completeSet1)
.filter(key => key !== COMPLETE_KEY && completeSet1[key] != null)
const isSelectionsEqual = (set1: Object, set2: Object) => {
const set1Keys = Object
.keys(set1)
.filter(key =>
key !== COMPLETE_KEY && set1[key] && (typeof set1[key] !== 'object' || Object.keys(set1[key]).length > 0));

const set2Keys = Object
.keys(set2)
.filter(key =>
key !== COMPLETE_KEY && set2[key] && (typeof set2[key] !== 'object' || Object.keys(set2[key]).length > 0));

if (set1Keys.length !== set2Keys.length) {
return false;
}

return set1Keys
.every((key) => {
const value1 = completeSet1[key];
const value1 = set1[key];
const value2 = set2[key];

if (key === CATEGORIES_KEY) {
const isCategoriesEqual = isSelectionsEqual(completeSet1.categories, set2.categories);
return isCategoriesEqual;
return isSelectionsEqual(set1.categories, set2.categories);
}

return value1 === value2;
});
};

export default isSelectionsEqual;
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import i18n from '@dhis2/d2-i18n';
import { SelectionBoxes, orientations } from '../../FormFields/New';
import { UserField } from '../../FormFields/UserField';
import { getModeOptions, modeKeys } from './modeOptions';
import { getAssigneeFilterData } from './assigneeFilterData';
import { getAssigneeFilterData } from './assigneeFilterDataGetter';
import type { UpdatableFilterContent } from '../filters.types';

const getStyles = (theme: Theme) => ({
Expand All @@ -21,7 +21,7 @@ const getStyles = (theme: Theme) => ({

type Value = ?{
mode: string,
provided: string,
provided: ?Object,
};

type Props = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// @flow
import * as React from 'react';
import AssigneeFilter from './AssigneeFilter.component';
import type { AssigneeFilterData } from '../filters.types';

type Props = {
filter: ?AssigneeFilterData,
filterTypeRef: ?Function,
};

type State = {
value?: ?{
mode?: ?string,
provided?: ?Object,
},
};

class AssigneeFilterManager extends React.Component<Props, State> {
static calculateDefaultValueState(filter: ?AssigneeFilterData) {
if (!filter) {
return undefined;
}

return {
mode: filter.assignedUserMode,
provided: filter.assignedUser,
};
}

constructor(props: Props) {
super(props);
this.state = {
value: AssigneeFilterManager.calculateDefaultValueState(this.props.filter),
};
}

handleCommitValue = (value: ?Object) => {
this.setState({
value,
});
}

render() {
const { filter, filterTypeRef, ...passOnProps } = this.props;

return (
<AssigneeFilter
value={this.state.value}
innerRef={filterTypeRef}
onCommitValue={this.handleCommitValue}
{...passOnProps}
/>
);
}
}

export default AssigneeFilterManager;

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// @flow
import type { AssigneeFilterData } from '../filters.types';

export function getAssigneeFilterData(value: Object): AssigneeFilterData {
return {
assignedUserMode: value.mode,
assignedUser: value.provided,
};
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @flow
export { default as AssigneeFilter } from './AssigneeFilter.component';
export { getAssigneeFilterData } from './assigneeFilterData';
export { default as AssigneeFilter } from './AssigneeFilterManager.component';
export { getAssigneeFilterData } from './assigneeFilterDataGetter';
export { modeKeys } from './modeOptions';
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { withStyles } from '@material-ui/core/styles';
import elementTypes from '../../../metaData/DataElement/elementTypes';
import D2TrueFalse from '../../FormFields/Generic/D2TrueFalse.component';
import { orientations } from '../../FormFields/Options/MultiSelectBoxes/multiSelectBoxes.const';
import getBooleanFilterData from './getBooleanFilterData';
import { getBooleanFilterData } from './booleanFilterDataGetter';
import type { UpdatableFilterContent } from '../filters.types';

const getStyles = (theme: Theme) => ({
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// @flow
import * as React from 'react';
import BooleanFilter from './BooleanFilter.component';
import type { BooleanFilterData } from '../filters.types';

type Props = {
filter: ?BooleanFilterData,
filterTypeRef: Function,
};

type State = {
value: ?Array<string>,
};

class BooleanFilterManager extends React.Component<Props, State> {
static calculateDefaultValueState(filter: ?BooleanFilterData): ?Array<string> {
if (!filter) {
return undefined;
}

return filter
.values
.map(value => (value ? 'true' : 'false'));
}

constructor(props: Props) {
super(props);
this.state = {
value: BooleanFilterManager.calculateDefaultValueState(this.props.filter),
};
}

handleCommitValue = (value: ?Array<string>) => {
this.setState({
value,
});
}

render() {
const { filter, filterTypeRef, ...passOnProps } = this.props;

return (
<BooleanFilter
value={this.state.value}
innerRef={filterTypeRef}
onCommitValue={this.handleCommitValue}
{...passOnProps}
/>
);
}
}

export default BooleanFilterManager;
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// @flow
import type { BooleanFilterData } from '../filters.types';

export function getBooleanFilterData(
values: Array<string>,
): BooleanFilterData {
return {
values: values
.map(value => (value === 'true')),
};
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// @flow
export { default as BooleanFilter } from './BooleanFilterManager.component';
Loading

0 comments on commit 874602f

Please sign in to comment.