@plusscommunities/pluss-maintenance-app-forms 6.0.12-beta.0 → 7.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/actions/JobActions.js +1 -44
- package/dist/module/actions/JobActions.js.map +1 -1
- package/dist/module/actions/types.js +0 -3
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/index.js +0 -2
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/apis/maintenanceActions.js +6 -21
- package/dist/module/apis/maintenanceActions.js.map +1 -1
- package/dist/module/components/FilterPopupMenu.js +18 -34
- package/dist/module/components/FilterPopupMenu.js.map +1 -1
- package/dist/module/components/MaintenanceList.js +56 -47
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/components/MaintenanceListItem.js +27 -40
- package/dist/module/components/MaintenanceListItem.js.map +1 -1
- package/dist/module/components/MaintenanceWidgetItem.js +13 -13
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
- package/dist/module/components/StatusSelectorPopup.js +14 -9
- package/dist/module/components/StatusSelectorPopup.js.map +1 -1
- package/dist/module/components/WidgetSmall.js +3 -7
- package/dist/module/components/WidgetSmall.js.map +1 -1
- package/dist/module/helper.js +25 -39
- package/dist/module/helper.js.map +1 -1
- package/dist/module/reducers/JobsReducer.js +2 -31
- package/dist/module/reducers/JobsReducer.js.map +1 -1
- package/dist/module/screens/JobTypePicker.js +1 -1
- package/dist/module/screens/JobTypePicker.js.map +1 -1
- package/dist/module/screens/RequestDetail.js +19 -91
- package/dist/module/screens/RequestDetail.js.map +1 -1
- package/dist/module/screens/RequestNotes.js +20 -336
- package/dist/module/screens/RequestNotes.js.map +1 -1
- package/dist/module/screens/ServiceRequest.js +1 -1
- package/dist/module/screens/ServiceRequest.js.map +1 -1
- package/dist/module/values.config.a.js +1 -6
- package/dist/module/values.config.a.js.map +1 -1
- package/dist/module/values.config.default.js +1 -6
- package/dist/module/values.config.default.js.map +1 -1
- package/dist/module/values.config.forms.js +1 -6
- package/dist/module/values.config.forms.js.map +1 -1
- package/dist/module/values.config.js +1 -6
- package/dist/module/values.config.js.map +1 -1
- package/package.json +9 -8
- package/src/actions/JobActions.js +1 -53
- package/src/actions/types.js +0 -4
- package/src/apis/index.js +0 -4
- package/src/apis/maintenanceActions.js +6 -18
- package/src/components/FilterPopupMenu.js +21 -40
- package/src/components/MaintenanceList.js +47 -38
- package/src/components/MaintenanceListItem.js +22 -36
- package/src/components/MaintenanceWidgetItem.js +13 -17
- package/src/components/StatusSelectorPopup.js +14 -8
- package/src/components/WidgetSmall.js +3 -5
- package/src/helper.js +21 -50
- package/src/reducers/JobsReducer.js +1 -25
- package/src/screens/JobTypePicker.js +1 -1
- package/src/screens/RequestDetail.js +25 -88
- package/src/screens/RequestNotes.js +22 -342
- package/src/screens/ServiceRequest.js +2 -2
- package/src/values.config.a.js +0 -5
- package/src/values.config.default.js +0 -5
- package/src/values.config.forms.js +0 -5
- package/src/values.config.js +0 -5
- package/dist/module/components/PrioritySelectorPopup.js +0 -82
- package/dist/module/components/PrioritySelectorPopup.js.map +0 -1
- package/src/components/PrioritySelectorPopup.js +0 -79
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","maintenanceActions","jobsLoaded","jobStatusesUpdate","jobHideSeenUpdate","MaintenanceWidgetItem","Services","Colours","Components","values","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","strings","featureKey","textFeatureTitle","userCategory","EmptyText","emptyRequestsStaff","emptyRequestsUser","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","screenMaintenance","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","_state$strings","user","notifications","reducerKey","getMainBrandingColourFromState","orderBy","category","updateKey","config","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded, jobStatusesUpdate, jobHideSeenUpdate } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components } from '../core.config';\nimport { values } from '../values.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.props.jobStatusesUpdate(this.props.site);\n this.props.jobHideSeenUpdate(this.props.site);\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await maintenanceActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate(values.screenMaintenance, { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, notifications } = state;\n const jobs = state[values.reducerKey];\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated[values.updateKey],\n strings: state.strings?.config || {},\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded, jobStatusesUpdate, jobHideSeenUpdate }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","maintenanceActions","jobsLoaded","MaintenanceWidgetItem","Services","Colours","Components","Config","values","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","strings","featureKey","textFeatureTitle","userCategory","EmptyText","emptyRequestsStaff","emptyRequestsUser","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","screenMaintenance","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","_state$strings","user","notifications","reducerKey","getMainBrandingColourFromState","orderBy","category","updateKey","config","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components, Config } from '../core.config';\nimport { values } from '../values.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await maintenanceActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate(values.screenMaintenance, { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, notifications } = state;\n const jobs = state[values.reducerKey];\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated[values.updateKey],\n strings: state.strings?.config || {},\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
|
package/dist/module/helper.js
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
|
+
import { label } from 'aws-amplify';
|
|
1
2
|
import { Colours } from './core.config';
|
|
2
|
-
const STATUS_NOT_ACTIONED = 'Not Actioned';
|
|
3
|
-
const STATUS_IN_PROGRESS = 'In Progress';
|
|
4
|
-
const STATUS_COMPLETED = 'Completed';
|
|
5
3
|
const jobStatusOptions = [{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
color: Colours.LINEGREY
|
|
9
|
-
category: STATUS_NOT_ACTIONED
|
|
4
|
+
name: 'Unassigned',
|
|
5
|
+
label: 'Open',
|
|
6
|
+
color: Colours.LINEGREY
|
|
10
7
|
}, {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
color: Colours.COLOUR_TEAL
|
|
14
|
-
category: STATUS_IN_PROGRESS
|
|
8
|
+
name: 'In Progress',
|
|
9
|
+
label: 'In Progress',
|
|
10
|
+
color: Colours.COLOUR_TEAL
|
|
15
11
|
}, {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
color: Colours.COLOUR_GREEN_LIGHT
|
|
19
|
-
category: STATUS_COMPLETED
|
|
12
|
+
name: 'Completed',
|
|
13
|
+
label: 'Completed',
|
|
14
|
+
color: Colours.COLOUR_GREEN_LIGHT
|
|
20
15
|
}];
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
color:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}, {
|
|
29
|
-
label: 'High',
|
|
30
|
-
color: Colours.COLOUR_RED
|
|
31
|
-
}];
|
|
32
|
-
const getJobStatusOptions = props => {
|
|
33
|
-
var _props$statusTypes;
|
|
34
|
-
return props !== null && props !== void 0 && (_props$statusTypes = props.statusTypes) !== null && _props$statusTypes !== void 0 && _props$statusTypes.length ? props === null || props === void 0 ? void 0 : props.statusTypes : jobStatusOptions;
|
|
16
|
+
const getJobStatusColour = status => {
|
|
17
|
+
const option = jobStatusOptions.find(item => item.name === status);
|
|
18
|
+
return option ? option.color : jobStatusOptions[0].color;
|
|
19
|
+
};
|
|
20
|
+
const getJobStatusLabel = status => {
|
|
21
|
+
const option = jobStatusOptions.find(item => item.name === status);
|
|
22
|
+
return option ? option.label : jobStatusOptions[0].label;
|
|
35
23
|
};
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return statusOption || getDefaultJobStatuses(props)[0];
|
|
24
|
+
const getJobStatusProps = status => {
|
|
25
|
+
const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;
|
|
26
|
+
const statusColor = getJobStatusColour(statusText);
|
|
27
|
+
return {
|
|
28
|
+
statusText,
|
|
29
|
+
statusColor
|
|
30
|
+
};
|
|
44
31
|
};
|
|
45
|
-
|
|
46
|
-
export { jobStatusOptions, jobPriorityOptions, getJobStatusOptions, getDefaultJobStatuses, getIncompleteJobStatuses, getJobStatus, getJobPriority };
|
|
32
|
+
export { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };
|
|
47
33
|
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["label","Colours","jobStatusOptions","name","color","LINEGREY","COLOUR_TEAL","COLOUR_GREEN_LIGHT","getJobStatusColour","status","option","find","item","getJobStatusLabel","getJobStatusProps","statusText","statusColor"],"sources":["helper.js"],"sourcesContent":["import { label } from 'aws-amplify';\nimport { Colours } from './core.config';\n\nconst jobStatusOptions = [\n {\n name: 'Unassigned',\n label: 'Open',\n color: Colours.LINEGREY,\n },\n {\n name: 'In Progress',\n label: 'In Progress',\n color: Colours.COLOUR_TEAL,\n },\n {\n name: 'Completed',\n label: 'Completed',\n color: Colours.COLOUR_GREEN_LIGHT,\n },\n];\n\nconst getJobStatusColour = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.color : jobStatusOptions[0].color;\n};\n\nconst getJobStatusLabel = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.label : jobStatusOptions[0].label;\n};\n\nconst getJobStatusProps = status => {\n const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;\n const statusColor = getJobStatusColour(statusText);\n\n return { statusText, statusColor };\n};\n\nexport { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,OAAO,QAAQ,eAAe;AAEvC,MAAMC,gBAAgB,GAAG,CACvB;EACEC,IAAI,EAAE,YAAY;EAClBH,KAAK,EAAE,MAAM;EACbI,KAAK,EAAEH,OAAO,CAACI;AACjB,CAAC,EACD;EACEF,IAAI,EAAE,aAAa;EACnBH,KAAK,EAAE,aAAa;EACpBI,KAAK,EAAEH,OAAO,CAACK;AACjB,CAAC,EACD;EACEH,IAAI,EAAE,WAAW;EACjBH,KAAK,EAAE,WAAW;EAClBI,KAAK,EAAEH,OAAO,CAACM;AACjB,CAAC,CACF;AAED,MAAMC,kBAAkB,GAAGC,MAAM,IAAI;EACnC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACN,KAAK,GAAGF,gBAAgB,CAAC,CAAC,CAAC,CAACE,KAAK;AAC1D,CAAC;AAED,MAAMS,iBAAiB,GAAGJ,MAAM,IAAI;EAClC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACV,KAAK,GAAGE,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;AAC1D,CAAC;AAED,MAAMc,iBAAiB,GAAGL,MAAM,IAAI;EAClC,MAAMM,UAAU,GAAGF,iBAAiB,CAACJ,MAAM,CAAC,IAAIP,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;EACzE,MAAMgB,WAAW,GAAGR,kBAAkB,CAACO,UAAU,CAAC;EAElD,OAAO;IAAEA,UAAU;IAAEC;EAAY,CAAC;AACpC,CAAC;AAED,SAASd,gBAAgB,EAAEM,kBAAkB,EAAEM,iBAAiB,EAAED,iBAAiB","ignoreList":[]}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
2
|
import _ from 'lodash';
|
|
3
3
|
import { REHYDRATE } from 'redux-persist';
|
|
4
|
-
import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED
|
|
4
|
+
import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';
|
|
5
5
|
import { ActionTypes } from '../core.config';
|
|
6
6
|
import { values } from '../values.config';
|
|
7
7
|
const REDUCER_KEY = values.reducerKey;
|
|
8
8
|
const INITIAL_STATE = {
|
|
9
|
-
jobs: []
|
|
10
|
-
jobstatuses: [],
|
|
11
|
-
hideSeen: false,
|
|
12
|
-
jobfilters: {
|
|
13
|
-
status: '',
|
|
14
|
-
statusText: '',
|
|
15
|
-
priority: '',
|
|
16
|
-
type: '',
|
|
17
|
-
assignee: '',
|
|
18
|
-
assigneeName: ''
|
|
19
|
-
}
|
|
9
|
+
jobs: []
|
|
20
10
|
};
|
|
21
11
|
export default (state = INITIAL_STATE, action) => {
|
|
22
12
|
let updateJobs = [];
|
|
23
13
|
let index = 0;
|
|
24
|
-
let jobstatuses = [];
|
|
25
14
|
switch (action.type) {
|
|
26
15
|
case ActionTypes.LOGOUT:
|
|
27
16
|
case ActionTypes.CHANGE_ROLE:
|
|
@@ -58,24 +47,6 @@ export default (state = INITIAL_STATE, action) => {
|
|
|
58
47
|
...state,
|
|
59
48
|
jobs: updateJobs
|
|
60
49
|
};
|
|
61
|
-
case JOBS_STATUSES_LOADED:
|
|
62
|
-
jobstatuses = _.orderBy(_.unionWith(action.payload, state.jobstatuses, (v1, v2) => {
|
|
63
|
-
return v1 != null && v2 != null && v1.text === v2.text;
|
|
64
|
-
}), 'order', 'asc');
|
|
65
|
-
return {
|
|
66
|
-
...state,
|
|
67
|
-
jobstatuses
|
|
68
|
-
};
|
|
69
|
-
case JOBS_HIDE_SEEN:
|
|
70
|
-
return {
|
|
71
|
-
...state,
|
|
72
|
-
hideSeen: action.payload
|
|
73
|
-
};
|
|
74
|
-
case JOB_FILTER_LOADED:
|
|
75
|
-
return {
|
|
76
|
-
...state,
|
|
77
|
-
jobfilters: action.payload
|
|
78
|
-
};
|
|
79
50
|
case REHYDRATE:
|
|
80
51
|
if (!action.payload) return state;
|
|
81
52
|
if (action.payload[REDUCER_KEY]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","
|
|
1
|
+
{"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","ActionTypes","values","REDUCER_KEY","reducerKey","INITIAL_STATE","jobs","state","action","updateJobs","index","type","LOGOUT","CHANGE_ROLE","payload","map","job","title","description","unionWith","j1","j2","id","findIndex","item","push"],"sources":["JobsReducer.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport _ from 'lodash';\nimport { REHYDRATE } from 'redux-persist';\nimport { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';\nimport { ActionTypes } from '../core.config';\nimport { values } from '../values.config';\n\nconst REDUCER_KEY = values.reducerKey;\n\nconst INITIAL_STATE = {\n jobs: [],\n};\n\nexport default (state = INITIAL_STATE, action) => {\n let updateJobs = [];\n let index = 0;\n\n switch (action.type) {\n case ActionTypes.LOGOUT:\n case ActionTypes.CHANGE_ROLE:\n return INITIAL_STATE;\n case JOBS_LOADED:\n return { ...state, jobs: action.payload.map(job => ({ title: job.title || job.description, ...job })) };\n case JOBS_ADDED:\n updateJobs = action.payload.map(job => ({ title: job.title || job.description, ...job }));\n updateJobs = _.unionWith(updateJobs, state.jobs, (j1, j2) => {\n return j1.id === j2.id;\n });\n return { ...state, jobs: updateJobs };\n case JOB_ADDED:\n updateJobs = [...state.jobs];\n index = updateJobs.findIndex(item => item.id === action.payload.id);\n if (index > -1) {\n updateJobs[index] = action.payload;\n } else {\n updateJobs.push(action.payload);\n }\n return { ...state, jobs: updateJobs };\n case REHYDRATE:\n if (!action.payload) return state;\n if (action.payload[REDUCER_KEY]) {\n if (action.payload[REDUCER_KEY].jobs == null) {\n action.payload[REDUCER_KEY].jobs = [];\n }\n return action.payload[REDUCER_KEY];\n }\n return state;\n default:\n return state;\n }\n};\n"],"mappings":"AAAA;AACA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,QAAQ,kBAAkB;AACrE,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,WAAW,GAAGD,MAAM,CAACE,UAAU;AAErC,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,CAACC,KAAK,GAAGF,aAAa,EAAEG,MAAM,KAAK;EAChD,IAAIC,UAAU,GAAG,EAAE;EACnB,IAAIC,KAAK,GAAG,CAAC;EAEb,QAAQF,MAAM,CAACG,IAAI;IACjB,KAAKV,WAAW,CAACW,MAAM;IACvB,KAAKX,WAAW,CAACY,WAAW;MAC1B,OAAOR,aAAa;IACtB,KAAKP,WAAW;MACd,OAAO;QAAE,GAAGS,KAAK;QAAED,IAAI,EAAEE,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;UAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;UAAE,GAAGF;QAAI,CAAC,CAAC;MAAE,CAAC;IACzG,KAAKhB,UAAU;MACbS,UAAU,GAAGD,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;QAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;QAAE,GAAGF;MAAI,CAAC,CAAC,CAAC;MACzFP,UAAU,GAAGb,CAAC,CAACuB,SAAS,CAACV,UAAU,EAAEF,KAAK,CAACD,IAAI,EAAE,CAACc,EAAE,EAAEC,EAAE,KAAK;QAC3D,OAAOD,EAAE,CAACE,EAAE,KAAKD,EAAE,CAACC,EAAE;MACxB,CAAC,CAAC;MACF,OAAO;QAAE,GAAGf,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKV,SAAS;MACZU,UAAU,GAAG,CAAC,GAAGF,KAAK,CAACD,IAAI,CAAC;MAC5BI,KAAK,GAAGD,UAAU,CAACc,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACF,EAAE,KAAKd,MAAM,CAACM,OAAO,CAACQ,EAAE,CAAC;MACnE,IAAIZ,KAAK,GAAG,CAAC,CAAC,EAAE;QACdD,UAAU,CAACC,KAAK,CAAC,GAAGF,MAAM,CAACM,OAAO;MACpC,CAAC,MAAM;QACLL,UAAU,CAACgB,IAAI,CAACjB,MAAM,CAACM,OAAO,CAAC;MACjC;MACA,OAAO;QAAE,GAAGP,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKZ,SAAS;MACZ,IAAI,CAACW,MAAM,CAACM,OAAO,EAAE,OAAOP,KAAK;MACjC,IAAIC,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,EAAE;QAC/B,IAAIK,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,CAACG,IAAI,IAAI,IAAI,EAAE;UAC5CE,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,CAACG,IAAI,GAAG,EAAE;QACvC;QACA,OAAOE,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC;MACpC;MACA,OAAOI,KAAK;IACd;MACE,OAAOA,KAAK;EAChB;AACF,CAAC","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import React, { Component } from 'react';
|
|
|
5
5
|
import _ from 'lodash';
|
|
6
6
|
import { TouchableOpacity, View, ScrollView, Text } from 'react-native';
|
|
7
7
|
import { connect } from 'react-redux';
|
|
8
|
-
import { Icon } from '
|
|
8
|
+
import { Icon } from '@rneui/themed';
|
|
9
9
|
import { Services } from '../feature.config';
|
|
10
10
|
import { Components, Colours } from '../core.config';
|
|
11
11
|
class JobTypePicker extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","_","TouchableOpacity","View","ScrollView","Text","connect","Icon","Services","Components","Colours","JobTypePicker","constructor","args","_defineProperty","currentType","UNSAFE_componentWillMount","setState","props","onPressBack","navigation","goBack","onTypePress","type","onSelectType","setTimeout","renderMain","isEmpty","types","createElement","style","marginTop","Spinner","FormCard","renderOptions","map","rep","index","key","onPress","bind","typeName","FormCardSection","label","labelStyle","height","margin","hasUnderline","hasContent","styles","labelContainer","labelText","name","iconStyle","color","fontSize","state","COLOUR_GREEN","description","render","container","Header","leftIcon","onPressLeft","text","flex","position","backgroundColor","row","flexDirection","alignItems","minHeight","fontFamily","TEXT_DARK","justifyContent"],"sources":["JobTypePicker.js"],"sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { TouchableOpacity, View, ScrollView, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from '
|
|
1
|
+
{"version":3,"names":["React","Component","_","TouchableOpacity","View","ScrollView","Text","connect","Icon","Services","Components","Colours","JobTypePicker","constructor","args","_defineProperty","currentType","UNSAFE_componentWillMount","setState","props","onPressBack","navigation","goBack","onTypePress","type","onSelectType","setTimeout","renderMain","isEmpty","types","createElement","style","marginTop","Spinner","FormCard","renderOptions","map","rep","index","key","onPress","bind","typeName","FormCardSection","label","labelStyle","height","margin","hasUnderline","hasContent","styles","labelContainer","labelText","name","iconStyle","color","fontSize","state","COLOUR_GREEN","description","render","container","Header","leftIcon","onPressLeft","text","flex","position","backgroundColor","row","flexDirection","alignItems","minHeight","fontFamily","TEXT_DARK","justifyContent"],"sources":["JobTypePicker.js"],"sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { TouchableOpacity, View, ScrollView, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from '@rneui/themed';\nimport { Services } from '../feature.config';\nimport { Components, Colours } from '../core.config';\n\nclass JobTypePicker extends Component {\n state = {\n currentType: null,\n };\n\n UNSAFE_componentWillMount() {\n this.setState({ currentType: this.props.currentType });\n }\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onTypePress(type) {\n this.props.onSelectType(type);\n this.setState({ currentType: type });\n setTimeout(() => {\n this.onPressBack();\n }, 200);\n }\n\n renderMain() {\n if (_.isEmpty(this.props.types)) {\n return (\n <View style={{ marginTop: 16 }}>\n <Components.Spinner />\n </View>\n );\n }\n\n return <Components.FormCard style={{ marginTop: 16 }}>{this.renderOptions()}</Components.FormCard>;\n }\n\n renderOptions() {\n return this.props.types.map((rep, index) => {\n return (\n <TouchableOpacity key={index} onPress={this.onTypePress.bind(this, rep.typeName)}>\n <Components.FormCardSection label={rep.typeName} labelStyle={{ height: 0, margin: 0 }} hasUnderline hasContent>\n <View style={styles.labelContainer}>\n <Text style={styles.labelText}>{rep.typeName}</Text>\n <Icon\n name=\"check-circle\"\n //style={styles.uploadButtonInner}\n type=\"font-awesome\"\n iconStyle={[{ color: '#d5d9e0', fontSize: 20 }, rep.typeName === this.state.currentType && { color: Colours.COLOUR_GREEN }]}\n />\n </View>\n {!_.isEmpty(rep.description) && <Text style={styles.description}>{rep.description}</Text>}\n </Components.FormCardSection>\n </TouchableOpacity>\n );\n });\n }\n\n render() {\n return (\n <View style={styles.container}>\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack.bind(this)} text=\"Select type\" />\n <ScrollView style={{ flex: 1 }}>{this.renderMain()}</ScrollView>\n </View>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: 22,\n },\n text: {\n flex: 1,\n fontFamily: 'sf-regular',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n },\n labelContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n labelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n color: Colours.TEXT_DARK,\n },\n description: {\n marginTop: 5,\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n },\n};\n\nexport default connect(null, {})(JobTypePicker);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,15 +4,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
4
4
|
import React, { Component } from 'react';
|
|
5
5
|
import { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground, Platform } from 'react-native';
|
|
6
6
|
import DateTimePicker from 'react-native-modal-datetime-picker';
|
|
7
|
-
import { Icon } from '
|
|
7
|
+
import { Icon } from '@rneui/themed';
|
|
8
8
|
import _ from 'lodash';
|
|
9
9
|
import moment from 'moment';
|
|
10
10
|
import { connect } from 'react-redux';
|
|
11
11
|
import { maintenanceActions } from '../apis';
|
|
12
|
-
import { jobAdded
|
|
12
|
+
import { jobAdded } from '../actions';
|
|
13
13
|
import StatusSelectorPopup from '../components/StatusSelectorPopup';
|
|
14
|
-
import
|
|
15
|
-
import { getJobStatus, getJobPriority } from '../helper';
|
|
14
|
+
import { jobStatusOptions, getJobStatusProps } from '../helper';
|
|
16
15
|
import { Services } from '../feature.config';
|
|
17
16
|
import { Colours, Helper, Components, Config } from '../core.config';
|
|
18
17
|
import { values } from '../values.config';
|
|
@@ -25,7 +24,6 @@ class RequestDetail extends Component {
|
|
|
25
24
|
}, async () => {
|
|
26
25
|
try {
|
|
27
26
|
const res = await maintenanceActions.getJob(this.props.job.site, this.props.job.id);
|
|
28
|
-
// console.log('getJob', JSON.stringify(res.data, null, 2));
|
|
29
27
|
this.props.jobAdded(res.data);
|
|
30
28
|
this.updateJobState(res.data);
|
|
31
29
|
} catch (error) {
|
|
@@ -138,23 +136,6 @@ class RequestDetail extends Component {
|
|
|
138
136
|
}
|
|
139
137
|
});
|
|
140
138
|
});
|
|
141
|
-
_defineProperty(this, "updateJobPriority", () => {
|
|
142
|
-
this.setState({
|
|
143
|
-
loading: true
|
|
144
|
-
}, async () => {
|
|
145
|
-
try {
|
|
146
|
-
const res = await maintenanceActions.editJobPriority(this.props.job.id, this.state.priority);
|
|
147
|
-
this.props.jobAdded(res.data.job);
|
|
148
|
-
this.getJob();
|
|
149
|
-
} catch (error) {
|
|
150
|
-
console.log('updateJobPriority error', error);
|
|
151
|
-
} finally {
|
|
152
|
-
this.setState({
|
|
153
|
-
loading: false
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
139
|
_defineProperty(this, "onPressBack", () => {
|
|
159
140
|
Services.navigation.goBack();
|
|
160
141
|
});
|
|
@@ -169,7 +150,6 @@ class RequestDetail extends Component {
|
|
|
169
150
|
});
|
|
170
151
|
});
|
|
171
152
|
_defineProperty(this, "onSelectStatus", status => {
|
|
172
|
-
if (this.state.loading) return;
|
|
173
153
|
this.setState({
|
|
174
154
|
status,
|
|
175
155
|
showStatusPopup: false
|
|
@@ -177,25 +157,6 @@ class RequestDetail extends Component {
|
|
|
177
157
|
this.updateJobStatus();
|
|
178
158
|
});
|
|
179
159
|
});
|
|
180
|
-
_defineProperty(this, "onOpenPriorityPicker", () => {
|
|
181
|
-
this.setState({
|
|
182
|
-
showPriorityPopup: true
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
_defineProperty(this, "onClosePriorityPopup", () => {
|
|
186
|
-
this.setState({
|
|
187
|
-
showPriorityPopup: false
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
_defineProperty(this, "onSelectPriority", priority => {
|
|
191
|
-
if (this.state.loading) return;
|
|
192
|
-
this.setState({
|
|
193
|
-
priority,
|
|
194
|
-
showPriorityPopup: false
|
|
195
|
-
}, () => {
|
|
196
|
-
this.updateJobPriority();
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
160
|
_defineProperty(this, "openStaffNotes", () => {
|
|
200
161
|
Services.navigation.navigate(values.screenRequestNotes, {
|
|
201
162
|
job: this.state.job,
|
|
@@ -319,13 +280,11 @@ class RequestDetail extends Component {
|
|
|
319
280
|
isDateTimePickerVisible: false,
|
|
320
281
|
popUpType: '',
|
|
321
282
|
status: '',
|
|
322
|
-
priority: '',
|
|
323
283
|
expectedDate: null,
|
|
324
284
|
expectedDateText: '',
|
|
325
285
|
seen: false,
|
|
326
286
|
showMore: true,
|
|
327
287
|
showStatusPopup: false,
|
|
328
|
-
showPriorityPopup: false,
|
|
329
288
|
loading: false,
|
|
330
289
|
showFullscreenVideo: false,
|
|
331
290
|
currentVideoUrl: '',
|
|
@@ -339,8 +298,6 @@ class RequestDetail extends Component {
|
|
|
339
298
|
this.commentSection = /*#__PURE__*/React.createRef();
|
|
340
299
|
}
|
|
341
300
|
componentDidMount() {
|
|
342
|
-
this.props.jobStatusesUpdate(this.props.job.site);
|
|
343
|
-
this.props.jobHideSeenUpdate(this.props.job.site);
|
|
344
301
|
this.getJob();
|
|
345
302
|
this.updateJobState(this.props.job);
|
|
346
303
|
this.getAssignees();
|
|
@@ -386,11 +343,12 @@ class RequestDetail extends Component {
|
|
|
386
343
|
status,
|
|
387
344
|
job
|
|
388
345
|
} = this.state;
|
|
389
|
-
const
|
|
390
|
-
|
|
346
|
+
const {
|
|
347
|
+
statusText,
|
|
348
|
+
statusColor
|
|
349
|
+
} = getJobStatusProps(status);
|
|
391
350
|
const canEdit = this.hasPermission();
|
|
392
|
-
const
|
|
393
|
-
const showSeen = !status || status === getJobStatus(null, this.props).text;
|
|
351
|
+
const showSeen = !status || status === jobStatusOptions[0].name;
|
|
394
352
|
return /*#__PURE__*/React.createElement(View, {
|
|
395
353
|
style: {
|
|
396
354
|
...Helper.getShadowStyle()
|
|
@@ -414,7 +372,7 @@ class RequestDetail extends Component {
|
|
|
414
372
|
color: this.props.colourBrandingMain
|
|
415
373
|
}],
|
|
416
374
|
numberOfLines: 2
|
|
417
|
-
}, job.type)),
|
|
375
|
+
}, job.type)), showSeen && this.state.seen && /*#__PURE__*/React.createElement(View, {
|
|
418
376
|
style: styles.jobSeenContainer
|
|
419
377
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
420
378
|
name: "check",
|
|
@@ -435,8 +393,6 @@ class RequestDetail extends Component {
|
|
|
435
393
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
436
394
|
style: styles.textSectionText
|
|
437
395
|
}, moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A'))))), /*#__PURE__*/React.createElement(View, {
|
|
438
|
-
style: styles.jobInfoContainer
|
|
439
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
440
396
|
style: styles.jobStatusExpectedContainer
|
|
441
397
|
}, /*#__PURE__*/React.createElement(View, {
|
|
442
398
|
style: styles.jobStatusOuterContainer
|
|
@@ -446,11 +402,11 @@ class RequestDetail extends Component {
|
|
|
446
402
|
onPress: canEdit ? this.onOpenStatusPicker : null
|
|
447
403
|
}, /*#__PURE__*/React.createElement(View, {
|
|
448
404
|
style: [styles.jobStatusContainer, {
|
|
449
|
-
backgroundColor:
|
|
405
|
+
backgroundColor: statusColor
|
|
450
406
|
}]
|
|
451
407
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
452
408
|
style: styles.jobStatusText
|
|
453
|
-
},
|
|
409
|
+
}, statusText)))), this.hasPermission() && /*#__PURE__*/React.createElement(View, {
|
|
454
410
|
style: styles.jobStatusOuterContainer
|
|
455
411
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
456
412
|
style: styles.jobStatusHeading
|
|
@@ -466,19 +422,7 @@ class RequestDetail extends Component {
|
|
|
466
422
|
iconStyle: styles.jobStatusIcon
|
|
467
423
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
468
424
|
style: styles.jobStatusText
|
|
469
|
-
}, "Notes (", (job.Notes || []).length, ")")))))
|
|
470
|
-
style: styles.jobPriorityOuterContainer
|
|
471
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
472
|
-
style: styles.jobStatusHeading
|
|
473
|
-
}, "PRIORITY"), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
474
|
-
onPress: canEdit ? this.onOpenPriorityPicker : null
|
|
475
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
476
|
-
style: [styles.jobStatusContainer, {
|
|
477
|
-
backgroundColor: priority.color
|
|
478
|
-
}]
|
|
479
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
480
|
-
style: styles.jobStatusText
|
|
481
|
-
}, priority.label))))));
|
|
425
|
+
}, "Notes (", (job.Notes || []).length, ")"))))));
|
|
482
426
|
}
|
|
483
427
|
renderPlayableImageUrl(images, index, containerStyle, showMore) {
|
|
484
428
|
const url = images[index || 0];
|
|
@@ -718,13 +662,6 @@ class RequestDetail extends Component {
|
|
|
718
662
|
onSelect: this.onSelectStatus
|
|
719
663
|
});
|
|
720
664
|
}
|
|
721
|
-
renderPriorityPopup() {
|
|
722
|
-
if (!this.state.showPriorityPopup) return null;
|
|
723
|
-
return /*#__PURE__*/React.createElement(PrioritySelectorPopup, {
|
|
724
|
-
onClose: this.onClosePriorityPopup,
|
|
725
|
-
onSelect: this.onSelectPriority
|
|
726
|
-
});
|
|
727
|
-
}
|
|
728
665
|
render() {
|
|
729
666
|
if (this.state.forbidden) {
|
|
730
667
|
return /*#__PURE__*/React.createElement(Components.Forbidden, null);
|
|
@@ -746,7 +683,7 @@ class RequestDetail extends Component {
|
|
|
746
683
|
}
|
|
747
684
|
}, /*#__PURE__*/React.createElement(View, {
|
|
748
685
|
style: styles.innerContainer
|
|
749
|
-
}, this.renderTop(), this.renderAssignee(), this.rendeDetails(), this.renderMessages())), this.renderMessagesReply(), this.renderStatusPopup(), this.
|
|
686
|
+
}, this.renderTop(), this.renderAssignee(), this.rendeDetails(), this.renderMessages())), this.renderMessagesReply(), this.renderStatusPopup(), this.renderImagePopup(), /*#__PURE__*/React.createElement(DateTimePicker, {
|
|
750
687
|
isVisible: this.state.isDateTimePickerVisible,
|
|
751
688
|
onConfirm: this.onDateSelected,
|
|
752
689
|
onCancel: this.onCloseDatePicker,
|
|
@@ -815,17 +752,15 @@ const styles = StyleSheet.create({
|
|
|
815
752
|
fontSize: 13,
|
|
816
753
|
color: Colours.TEXT_LIGHT
|
|
817
754
|
},
|
|
818
|
-
|
|
755
|
+
jobStatusExpectedContainer: {
|
|
756
|
+
flexDirection: 'row',
|
|
757
|
+
alignItems: 'flex-start',
|
|
758
|
+
justifyContent: 'space-between',
|
|
819
759
|
borderTopWidth: 1,
|
|
820
760
|
borderTopColor: Colours.LINEGREY,
|
|
821
761
|
paddingVertical: 14,
|
|
822
762
|
paddingHorizontal: 12
|
|
823
763
|
},
|
|
824
|
-
jobStatusExpectedContainer: {
|
|
825
|
-
flexDirection: 'row',
|
|
826
|
-
alignItems: 'flex-start',
|
|
827
|
-
justifyContent: 'space-between'
|
|
828
|
-
},
|
|
829
764
|
jobStatusOuterContainer: {
|
|
830
765
|
// marginRight: 50,
|
|
831
766
|
},
|
|
@@ -857,9 +792,6 @@ const styles = StyleSheet.create({
|
|
|
857
792
|
flex: 1,
|
|
858
793
|
textAlign: 'center'
|
|
859
794
|
},
|
|
860
|
-
jobPriorityOuterContainer: {
|
|
861
|
-
marginTop: 12
|
|
862
|
-
},
|
|
863
795
|
jobExpectedDateContainer: {
|
|
864
796
|
backgroundColor: Colours.BOXGREY,
|
|
865
797
|
flexDirection: 'row',
|
|
@@ -1038,14 +970,10 @@ const mapStateToProps = state => {
|
|
|
1038
970
|
return {
|
|
1039
971
|
user: state.user,
|
|
1040
972
|
colourBrandingMain: Colours.getMainBrandingColourFromState(state),
|
|
1041
|
-
jobs: state[values.reducerKey].jobs
|
|
1042
|
-
statusTypes: state[values.reducerKey].jobstatuses,
|
|
1043
|
-
hideSeen: state[values.reducerKey].hideSeen
|
|
973
|
+
jobs: state[values.reducerKey].jobs
|
|
1044
974
|
};
|
|
1045
975
|
};
|
|
1046
976
|
export default connect(mapStateToProps, {
|
|
1047
|
-
jobAdded
|
|
1048
|
-
jobStatusesUpdate,
|
|
1049
|
-
jobHideSeenUpdate
|
|
977
|
+
jobAdded
|
|
1050
978
|
})(RequestDetail);
|
|
1051
979
|
//# sourceMappingURL=RequestDetail.js.map
|