Skip to content

Commit

Permalink
feat: Use default relative period defined in system settings (DHIS2-8…
Browse files Browse the repository at this point in the history
…841) (#706)
  • Loading branch information
turban authored May 20, 2020
1 parent 0bf154a commit 222c397
Show file tree
Hide file tree
Showing 20 changed files with 176 additions and 164 deletions.
5 changes: 5 additions & 0 deletions src/actions/user.js → src/actions/settings.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import * as types from '../constants/actionTypes';

export const setSystemSettings = settings => ({
type: types.SYSTEM_SETTINGS_SET,
payload: settings,
});

// Set user settings
export const setUserSettings = settings => ({
type: types.USER_SETTINGS_SET,
Expand Down
13 changes: 4 additions & 9 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@ import Root from './components/Root';
import { configI18n } from './util/i18n';
import { loadOrgUnitTree } from './actions/orgUnits';
import { loadExternalLayers } from './actions/externalLayers';
import { setUserSettings } from './actions/user';
import { setSystemSettings, setUserSettings } from './actions/settings';
import { resizeScreen } from './actions/ui';
import { loadFavorite } from './actions/favorites';
import { getAnalyticalObject } from './actions/analyticalObject';
import { setBingMapsApiKey } from './actions/basemap';
import { getUrlParameter } from './util/requests';
import { getUrlParameter, getSystemSettings } from './util/requests';

log.setLevel(
process.env.NODE_ENV === 'production' ? log.levels.INFO : log.levels.TRACE
Expand Down Expand Up @@ -65,13 +64,9 @@ getManifest('manifest.webapp')
return userSettings;
})
.then(configI18n)
.then(getSystemSettings)
.then(systemSettings => store.dispatch(setSystemSettings(systemSettings)))
.then(init)
.then(d2 =>
d2.system.settings.get('keyBingMapsApiKey').then(key => {
store.dispatch(setBingMapsApiKey(key));
return d2;
})
)
.then(
d2 => {
const mapId = getUrlParameter('id');
Expand Down
6 changes: 1 addition & 5 deletions src/components/edit/BoundaryDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import OrgUnitLevelSelect from '../orgunits/OrgUnitLevelSelect';
import UserOrgUnitsSelect from '../orgunits/UserOrgUnitsSelect';
import Checkbox from '../core/Checkbox';
import FontStyle from '../core/FontStyle';
import { layerDialogStyles } from './LayerDialogStyles';
import layerDialogStyles from './LayerDialogStyles';

import {
setOrgUnitLevels,
Expand Down Expand Up @@ -56,10 +56,6 @@ const styles = {
marginLeft: 12,
width: 127,
},
error: {
marginTop: 10,
color: 'red',
},
};

class BoundaryDialog extends Component {
Expand Down
2 changes: 1 addition & 1 deletion src/components/edit/EarthEngineDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import LegendItem from '../layers/legend/LegendItem';
import { setParams, setFilter, setPeriodName } from '../../actions/layerEdit';
import { getColorScale, getColorPalette } from '../../util/colors';
import { createLegend } from '../../loaders/earthEngineLoader';
import { layerDialogStyles } from './LayerDialogStyles';
import layerDialogStyles from './LayerDialogStyles';
import legendStyle from '../layers/legend/legendStyle';

const getDatasets = () => ({
Expand Down
62 changes: 17 additions & 45 deletions src/components/edit/EventDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import TextField from '../core/TextField';
import ProgramSelect from '../program/ProgramSelect';
import ProgramStageSelect from '../program/ProgramStageSelect';
import RelativePeriodSelect from '../periods/RelativePeriodSelect';
import DatePicker from '../core/DatePicker';
import StartEndDates from '../periods/StartEndDates';
import Checkbox from '../core/Checkbox';
import FilterGroup from '../filter/FilterGroup';
import ImageSelect from '../core/ImageSelect';
Expand All @@ -19,13 +19,11 @@ import OrgUnitTree from '../orgunits/OrgUnitTree';
import UserOrgUnitsSelect from '../orgunits/UserOrgUnitsSelect';
import SelectedOrgUnits from '../orgunits/SelectedOrgUnits';
import {
DEFAULT_START_DATE,
DEFAULT_END_DATE,
EVENT_COLOR,
EVENT_RADIUS,
EVENT_BUFFER,
} from '../../constants/layers';
import { layerDialogStyles } from './LayerDialogStyles';
import layerDialogStyles from './LayerDialogStyles';

import {
setProgram,
Expand All @@ -38,8 +36,6 @@ import {
setUserOrgUnits,
toggleOrgUnit,
setPeriod,
setStartDate,
setEndDate,
setAreaRadius,
} from '../../actions/layerEdit';

Expand Down Expand Up @@ -68,16 +64,13 @@ const styles = {
paddingTop: 8,
lineHeight: '22px',
},
error: {
marginTop: 10,
color: 'red',
},
};

export class EventDialog extends Component {
static propTypes = {
areaRadius: PropTypes.number,
columns: PropTypes.array,
defaultPeriod: PropTypes.string,
endDate: PropTypes.string,
eventClustering: PropTypes.bool,
eventCoordinateField: PropTypes.string,
Expand All @@ -103,8 +96,6 @@ export class EventDialog extends Component {
setUserOrgUnits: PropTypes.func.isRequired,
toggleOrgUnit: PropTypes.func.isRequired,
setPeriod: PropTypes.func.isRequired,
setStartDate: PropTypes.func.isRequired,
setEndDate: PropTypes.func.isRequired,
setAreaRadius: PropTypes.func.isRequired,
validateLayer: PropTypes.bool.isRequired,
};
Expand All @@ -121,11 +112,9 @@ export class EventDialog extends Component {
const {
rows,
filters,
startDate,
endDate,
setStartDate,
setEndDate,
defaultPeriod,
setOrgUnitRoot,
setPeriod,
} = this.props;

const orgUnits = getOrgUnitNodesFromRows(rows);
Expand All @@ -136,10 +125,11 @@ export class EventDialog extends Component {
setOrgUnitRoot();
}

if (!period && !startDate && !endDate) {
// Set default period (last year)
setStartDate(DEFAULT_START_DATE);
setEndDate(DEFAULT_END_DATE);
// Set default period from system settings
if (!period && defaultPeriod) {
setPeriod({
id: defaultPeriod,
});
}
}

Expand Down Expand Up @@ -185,8 +175,6 @@ export class EventDialog extends Component {
setUserOrgUnits,
toggleOrgUnit,
setPeriod,
setStartDate,
setEndDate,
setAreaRadius,
} = this.props;

Expand Down Expand Up @@ -254,27 +242,13 @@ export class EventDialog extends Component {
onChange={setPeriod}
style={styles.select}
/>
{period.id === 'START_END_DATES' && [
<DatePicker
key="startdate"
label={i18n.t('Start date')}
value={startDate}
onChange={setStartDate}
style={styles.select}
/>,
<DatePicker
key="enddate"
label={i18n.t('End date')}
value={endDate}
onChange={setEndDate}
style={styles.select}
/>,
]}
{periodError ? (
<div key="error" style={styles.error}>
{periodError}
</div>
) : null}
{period && period.id === 'START_END_DATES' && (
<StartEndDates
startDate={startDate}
endDate={endDate}
errorText={periodError}
/>
)}
</div>
)}
{tab === 'orgunits' && (
Expand Down Expand Up @@ -491,8 +465,6 @@ export default connect(
setUserOrgUnits,
toggleOrgUnit,
setPeriod,
setStartDate,
setEndDate,
setAreaRadius,
},
null,
Expand Down
6 changes: 1 addition & 5 deletions src/components/edit/FacilityDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import OrgUnitTree from '../orgunits/OrgUnitTree';
import OrgUnitGroupSelect from '../orgunits/OrgUnitGroupSelect';
import OrgUnitLevelSelect from '../orgunits/OrgUnitLevelSelect';
import UserOrgUnitsSelect from '../orgunits/UserOrgUnitsSelect';
import { layerDialogStyles } from './LayerDialogStyles';
import layerDialogStyles from './LayerDialogStyles';

import {
setOrganisationUnitGroupSet,
Expand Down Expand Up @@ -61,10 +61,6 @@ const styles = {
marginTop: 10,
fontSize: 14,
},
error: {
marginTop: 10,
color: 'red',
},
};

class FacilityDialog extends Component {
Expand Down
8 changes: 7 additions & 1 deletion src/components/edit/LayerDialogStyles.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const layerDialogStyles = {
const layerDialogStyles = {
select: {
width: 'auto',
maxWidth: 300,
Expand Down Expand Up @@ -33,4 +33,10 @@ export const layerDialogStyles = {
flex: 1,
margin: 8,
},
error: {
marginTop: 10,
color: 'red',
},
};

export default layerDialogStyles;
9 changes: 6 additions & 3 deletions src/components/edit/LayerEdit.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const styles = {
class LayerEdit extends Component {
static propTypes = {
layer: PropTypes.object,
defaultPeriod: PropTypes.string,
loadLayer: PropTypes.func.isRequired,
cancelLayer: PropTypes.func.isRequired,
setLayerLoading: PropTypes.func.isRequired,
Expand Down Expand Up @@ -88,7 +89,7 @@ class LayerEdit extends Component {
};

render() {
const { layer, cancelLayer, classes } = this.props;
const { layer, defaultPeriod, cancelLayer, classes } = this.props;

if (!layer) {
return null;
Expand All @@ -114,6 +115,7 @@ class LayerEdit extends Component {
<DialogContent className={classes.content}>
<LayerDialog
{...layer}
defaultPeriod={defaultPeriod}
validateLayer={this.state.validateLayer}
onLayerValidation={this.onLayerValidation}
/>
Expand Down Expand Up @@ -152,8 +154,9 @@ class LayerEdit extends Component {
}

export default connect(
state => ({
layer: state.layerEdit,
({ layerEdit, settings }) => ({
layer: layerEdit,
defaultPeriod: settings.system.keyAnalysisRelativePeriod,
}),
{ loadLayer, cancelLayer, setLayerLoading }
)(withStyles(styles)(LayerEdit));
30 changes: 6 additions & 24 deletions src/components/edit/TrackedEntityDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import Tabs from '../core/Tabs';
import Tab from '../core/Tab';
import TextField from '../core/TextField';
import SelectField from '../core/SelectField';
import DatePicker from '../core/DatePicker';
import Checkbox from '../core/Checkbox';
import TrackedEntityTypeSelect from '../trackedEntity/TrackedEntityTypeSelect';
import ProgramSelect from '../program/ProgramSelect';
import StartEndDates from '../periods/StartEndDates';
import OrgUnitTree from '../orgunits/OrgUnitTree';
import SelectedOrgUnits from '../orgunits/SelectedOrgUnits';
import ColorPicker from '../core/ColorPicker';
Expand All @@ -24,7 +24,7 @@ import {
TEI_RELATIONSHIP_LINE_COLOR,
TEI_RELATED_RADIUS,
} from '../../constants/layers';
import { layerDialogStyles } from './LayerDialogStyles';
import layerDialogStyles from './LayerDialogStyles';

import {
setTrackedEntityType,
Expand Down Expand Up @@ -63,10 +63,6 @@ const styles = {
indent: {
marginLeft: 24,
},
error: {
marginTop: 12,
color: 'red',
},
};

export class TrackedEntityDialog extends Component {
Expand Down Expand Up @@ -194,8 +190,6 @@ export class TrackedEntityDialog extends Component {
setProgramStatus,
setFollowUpStatus,
setTrackedEntityRelationshipType,
setStartDate,
setEndDate,
toggleOrgUnit,
setOrgUnitMode,
setEventPointColor,
Expand Down Expand Up @@ -366,23 +360,11 @@ export class TrackedEntityDialog extends Component {
<div style={{ margin: '12px 0', fontSize: 14 }}>
{periodHelp}:
</div>
<DatePicker
key="startdate"
label={i18n.t('Start date')}
value={startDate}
onChange={setStartDate}
style={styles.select}
/>
<DatePicker
key="enddate"
label={i18n.t('End date')}
value={endDate}
onChange={setEndDate}
style={styles.select}
<StartEndDates
startDate={startDate}
endDate={endDate}
errorText={periodError}
/>
{periodError ? (
<div style={styles.error}>{periodError}</div>
) : null}
</div>
)}

Expand Down
Loading

0 comments on commit 222c397

Please sign in to comment.