@plusscommunities/pluss-maintenance-web-feedback 1.1.38 → 1.1.40

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/index.cjs.js CHANGED
@@ -80,6 +80,7 @@ const values = {
80
80
  svgPathGridIconViewBox: '0 0 256 256',
81
81
  menuOrder: 10,
82
82
  optionOnlyForResidents: 'onlyForResidentsMaintenanceFeedback',
83
+ optionDisableAddressAutoPopulate: 'disableAddressAutoPopulateMaintenanceFeedback',
83
84
  textEmptyDescription: 'allows your users to submit Feedback.',
84
85
  textEmptyExample: 'Example might be; General Feedback form, Complaint form, Compliment form.',
85
86
  textEmptyJobTypes: 'Please add the different forms.',
@@ -120,7 +121,7 @@ const FeatureConfig = {
120
121
  key: values.featureKey,
121
122
  aliases: values.aliases,
122
123
  singularName: values.textSingularName,
123
- description: 'Submit maintenance requests and track the progress.',
124
+ description: "Submit maintenance requests and track the progress.",
124
125
  emptyText: values.textYourRequestHere,
125
126
  widgetOptions: [{
126
127
  key: values.featureKey,
@@ -128,10 +129,22 @@ const FeatureConfig = {
128
129
  main: true,
129
130
  hideOnTabNumbers: [],
130
131
  optionKey: values.optionOnlyForResidents,
131
- type: 'toggle',
132
+ type: "toggle",
132
133
  inverseOption: false,
133
- title: 'Limit Admins to Only Submit on Behalf of Primary Users',
134
- description: 'This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.',
134
+ title: "Limit Admins to Only Submit on Behalf of Primary Users",
135
+ description: "This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.",
136
+ defaultNew: false,
137
+ default: false
138
+ }, {
139
+ key: values.featureKey,
140
+ widget: true,
141
+ main: true,
142
+ hideOnTabNumbers: [],
143
+ optionKey: values.optionDisableAddressAutoPopulate,
144
+ type: "toggle",
145
+ inverseOption: false,
146
+ title: "Do not auto-fill the user's address",
147
+ description: "When enabled, the address field will not be pre-filled from the user's profile when submitting a new ".concat(values.textSingularName, ". It must be entered manually each time."),
135
148
  defaultNew: false,
136
149
  default: false
137
150
  }],
@@ -144,20 +157,20 @@ const FeatureConfig = {
144
157
  url: values.routeRequestsHub,
145
158
  countProps: null,
146
159
  visibleExps: {
147
- type: 'and',
160
+ type: "and",
148
161
  exps: [{
149
- type: 'feature',
162
+ type: "feature",
150
163
  value: values.featureKey
151
164
  }, {
152
- type: 'or',
165
+ type: "or",
153
166
  exps: [{
154
- type: 'permission',
167
+ type: "permission",
155
168
  value: values.permissionMaintenanceTracking
156
169
  }, {
157
- type: 'permission',
170
+ type: "permission",
158
171
  value: values.permissionMaintenanceTypes
159
172
  }, {
160
- type: 'permission',
173
+ type: "permission",
161
174
  value: values.permissionMaintenanceAssignment
162
175
  }]
163
176
  }]
@@ -216,21 +229,21 @@ const FeatureConfig = {
216
229
  exact: true
217
230
  }],
218
231
  env: {
219
- baseStage: '',
220
- baseAPIUrl: '',
221
- baseUploadsUrl: '',
222
- uploadBucket: '',
223
- colourBrandingMain: '',
224
- colourBrandingOff: '',
225
- colourBrandingApp: '',
226
- defaultProfileImage: '',
227
- utcOffset: '',
232
+ baseStage: "",
233
+ baseAPIUrl: "",
234
+ baseUploadsUrl: "",
235
+ uploadBucket: "",
236
+ colourBrandingMain: "",
237
+ colourBrandingOff: "",
238
+ colourBrandingApp: "",
239
+ defaultProfileImage: "",
240
+ utcOffset: "",
228
241
  hasAvailableNews: false,
229
242
  newsHaveTags: true,
230
243
  defaultAllowComments: true,
231
- makeApiKey: '',
232
- logo: '',
233
- clientName: ''
244
+ makeApiKey: "",
245
+ logo: "",
246
+ clientName: ""
234
247
  },
235
248
  init: environment => {
236
249
  FeatureConfig.env = environment;
@@ -582,7 +595,6 @@ const stringActions = Apis$2.stringActions;
582
595
  var jobStatusOptions = [
583
596
  {
584
597
  text: "Open",
585
- alias: "Unassigned",
586
598
  order: 0,
587
599
  color: "#d5dde4",
588
600
  category: "Not Actioned"
@@ -779,16 +791,15 @@ class JobList extends React.Component {
779
791
  } = this.props;
780
792
  const params = {};
781
793
 
782
- // Status filter: translate "All Incomplete" into the actual incomplete statuses.
783
- // Expand each status to include its `alias` so legacy DB values (e.g. "Unassigned"
784
- // for "Open") still match the filter.
794
+ // Status filter: translate "All Incomplete" into the actual incomplete statuses
785
795
  if (selectedStatusFilter) {
786
- const selectedStatusTypes = selectedStatusFilter === STATUS_IMCOMPLETE ? statusTypes.filter(s => s.category !== STATUS_COMPLETED) : statusTypes.filter(s => s.text === selectedStatusFilter);
787
- const expanded = ___default["default"].uniq(selectedStatusTypes.flatMap(s => s.alias ? [s.text, s.alias] : [s.text]));
788
- if (expanded.length > 0) {
789
- params.status = expanded.join(',');
790
- } else if (selectedStatusFilter !== STATUS_IMCOMPLETE) {
791
- // Fallback if the status isn't in statusTypes (shouldn't happen normally)
796
+ if (selectedStatusFilter === STATUS_IMCOMPLETE) {
797
+ // Exclude completed statuses - pass all non-completed status texts
798
+ const incompleteStatuses = statusTypes.filter(s => s.category !== STATUS_COMPLETED).map(s => s.text);
799
+ if (incompleteStatuses.length > 0) {
800
+ params.status = incompleteStatuses.join(',');
801
+ }
802
+ } else {
792
803
  params.status = selectedStatusFilter;
793
804
  }
794
805
  }
@@ -4300,7 +4311,7 @@ class AddJob extends React.Component {
4300
4311
  if (response.data.user.phoneNumber) {
4301
4312
  contactUpdate.phone = response.data.user.phoneNumber;
4302
4313
  }
4303
- if (response.data.user.unit) {
4314
+ if (!this.props.disableAddressAutoPopulate && response.data.user.unit) {
4304
4315
  contactUpdate.room = response.data.user.unit;
4305
4316
  }
4306
4317
  // Update contact fields when data arrives
@@ -5136,7 +5147,8 @@ const mapStateToProps$2 = state => {
5136
5147
  return {
5137
5148
  auth,
5138
5149
  strings: state.strings && state.strings.config || {},
5139
- optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents)
5150
+ optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents),
5151
+ disableAddressAutoPopulate: Helper$1.getSiteSettingFromState(state, values.optionDisableAddressAutoPopulate)
5140
5152
  };
5141
5153
  };
5142
5154
  var AddJob$1 = reactRedux.connect(mapStateToProps$2, {
package/dist/index.esm.js CHANGED
@@ -49,6 +49,7 @@ const values = {
49
49
  svgPathGridIconViewBox: '0 0 256 256',
50
50
  menuOrder: 10,
51
51
  optionOnlyForResidents: 'onlyForResidentsMaintenanceFeedback',
52
+ optionDisableAddressAutoPopulate: 'disableAddressAutoPopulateMaintenanceFeedback',
52
53
  textEmptyDescription: 'allows your users to submit Feedback.',
53
54
  textEmptyExample: 'Example might be; General Feedback form, Complaint form, Compliment form.',
54
55
  textEmptyJobTypes: 'Please add the different forms.',
@@ -89,7 +90,7 @@ const FeatureConfig = {
89
90
  key: values.featureKey,
90
91
  aliases: values.aliases,
91
92
  singularName: values.textSingularName,
92
- description: 'Submit maintenance requests and track the progress.',
93
+ description: "Submit maintenance requests and track the progress.",
93
94
  emptyText: values.textYourRequestHere,
94
95
  widgetOptions: [{
95
96
  key: values.featureKey,
@@ -97,10 +98,22 @@ const FeatureConfig = {
97
98
  main: true,
98
99
  hideOnTabNumbers: [],
99
100
  optionKey: values.optionOnlyForResidents,
100
- type: 'toggle',
101
+ type: "toggle",
101
102
  inverseOption: false,
102
- title: 'Limit Admins to Only Submit on Behalf of Primary Users',
103
- description: 'This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.',
103
+ title: "Limit Admins to Only Submit on Behalf of Primary Users",
104
+ description: "This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.",
105
+ defaultNew: false,
106
+ default: false
107
+ }, {
108
+ key: values.featureKey,
109
+ widget: true,
110
+ main: true,
111
+ hideOnTabNumbers: [],
112
+ optionKey: values.optionDisableAddressAutoPopulate,
113
+ type: "toggle",
114
+ inverseOption: false,
115
+ title: "Do not auto-fill the user's address",
116
+ description: "When enabled, the address field will not be pre-filled from the user's profile when submitting a new ".concat(values.textSingularName, ". It must be entered manually each time."),
104
117
  defaultNew: false,
105
118
  default: false
106
119
  }],
@@ -113,20 +126,20 @@ const FeatureConfig = {
113
126
  url: values.routeRequestsHub,
114
127
  countProps: null,
115
128
  visibleExps: {
116
- type: 'and',
129
+ type: "and",
117
130
  exps: [{
118
- type: 'feature',
131
+ type: "feature",
119
132
  value: values.featureKey
120
133
  }, {
121
- type: 'or',
134
+ type: "or",
122
135
  exps: [{
123
- type: 'permission',
136
+ type: "permission",
124
137
  value: values.permissionMaintenanceTracking
125
138
  }, {
126
- type: 'permission',
139
+ type: "permission",
127
140
  value: values.permissionMaintenanceTypes
128
141
  }, {
129
- type: 'permission',
142
+ type: "permission",
130
143
  value: values.permissionMaintenanceAssignment
131
144
  }]
132
145
  }]
@@ -185,21 +198,21 @@ const FeatureConfig = {
185
198
  exact: true
186
199
  }],
187
200
  env: {
188
- baseStage: '',
189
- baseAPIUrl: '',
190
- baseUploadsUrl: '',
191
- uploadBucket: '',
192
- colourBrandingMain: '',
193
- colourBrandingOff: '',
194
- colourBrandingApp: '',
195
- defaultProfileImage: '',
196
- utcOffset: '',
201
+ baseStage: "",
202
+ baseAPIUrl: "",
203
+ baseUploadsUrl: "",
204
+ uploadBucket: "",
205
+ colourBrandingMain: "",
206
+ colourBrandingOff: "",
207
+ colourBrandingApp: "",
208
+ defaultProfileImage: "",
209
+ utcOffset: "",
197
210
  hasAvailableNews: false,
198
211
  newsHaveTags: true,
199
212
  defaultAllowComments: true,
200
- makeApiKey: '',
201
- logo: '',
202
- clientName: ''
213
+ makeApiKey: "",
214
+ logo: "",
215
+ clientName: ""
203
216
  },
204
217
  init: environment => {
205
218
  FeatureConfig.env = environment;
@@ -551,7 +564,6 @@ const stringActions = Apis$2.stringActions;
551
564
  var jobStatusOptions = [
552
565
  {
553
566
  text: "Open",
554
- alias: "Unassigned",
555
567
  order: 0,
556
568
  color: "#d5dde4",
557
569
  category: "Not Actioned"
@@ -748,16 +760,15 @@ class JobList extends Component {
748
760
  } = this.props;
749
761
  const params = {};
750
762
 
751
- // Status filter: translate "All Incomplete" into the actual incomplete statuses.
752
- // Expand each status to include its `alias` so legacy DB values (e.g. "Unassigned"
753
- // for "Open") still match the filter.
763
+ // Status filter: translate "All Incomplete" into the actual incomplete statuses
754
764
  if (selectedStatusFilter) {
755
- const selectedStatusTypes = selectedStatusFilter === STATUS_IMCOMPLETE ? statusTypes.filter(s => s.category !== STATUS_COMPLETED) : statusTypes.filter(s => s.text === selectedStatusFilter);
756
- const expanded = _.uniq(selectedStatusTypes.flatMap(s => s.alias ? [s.text, s.alias] : [s.text]));
757
- if (expanded.length > 0) {
758
- params.status = expanded.join(',');
759
- } else if (selectedStatusFilter !== STATUS_IMCOMPLETE) {
760
- // Fallback if the status isn't in statusTypes (shouldn't happen normally)
765
+ if (selectedStatusFilter === STATUS_IMCOMPLETE) {
766
+ // Exclude completed statuses - pass all non-completed status texts
767
+ const incompleteStatuses = statusTypes.filter(s => s.category !== STATUS_COMPLETED).map(s => s.text);
768
+ if (incompleteStatuses.length > 0) {
769
+ params.status = incompleteStatuses.join(',');
770
+ }
771
+ } else {
761
772
  params.status = selectedStatusFilter;
762
773
  }
763
774
  }
@@ -4269,7 +4280,7 @@ class AddJob extends Component {
4269
4280
  if (response.data.user.phoneNumber) {
4270
4281
  contactUpdate.phone = response.data.user.phoneNumber;
4271
4282
  }
4272
- if (response.data.user.unit) {
4283
+ if (!this.props.disableAddressAutoPopulate && response.data.user.unit) {
4273
4284
  contactUpdate.room = response.data.user.unit;
4274
4285
  }
4275
4286
  // Update contact fields when data arrives
@@ -5105,7 +5116,8 @@ const mapStateToProps$2 = state => {
5105
5116
  return {
5106
5117
  auth,
5107
5118
  strings: state.strings && state.strings.config || {},
5108
- optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents)
5119
+ optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents),
5120
+ disableAddressAutoPopulate: Helper$1.getSiteSettingFromState(state, values.optionDisableAddressAutoPopulate)
5109
5121
  };
5110
5122
  };
5111
5123
  var AddJob$1 = connect(mapStateToProps$2, {
package/dist/index.umd.js CHANGED
@@ -69,6 +69,7 @@
69
69
  svgPathGridIconViewBox: '0 0 256 256',
70
70
  menuOrder: 10,
71
71
  optionOnlyForResidents: 'onlyForResidentsMaintenanceFeedback',
72
+ optionDisableAddressAutoPopulate: 'disableAddressAutoPopulateMaintenanceFeedback',
72
73
  textEmptyDescription: 'allows your users to submit Feedback.',
73
74
  textEmptyExample: 'Example might be; General Feedback form, Complaint form, Compliment form.',
74
75
  textEmptyJobTypes: 'Please add the different forms.',
@@ -109,7 +110,7 @@
109
110
  key: values.featureKey,
110
111
  aliases: values.aliases,
111
112
  singularName: values.textSingularName,
112
- description: 'Submit maintenance requests and track the progress.',
113
+ description: "Submit maintenance requests and track the progress.",
113
114
  emptyText: values.textYourRequestHere,
114
115
  widgetOptions: [{
115
116
  key: values.featureKey,
@@ -117,10 +118,22 @@
117
118
  main: true,
118
119
  hideOnTabNumbers: [],
119
120
  optionKey: values.optionOnlyForResidents,
120
- type: 'toggle',
121
+ type: "toggle",
121
122
  inverseOption: false,
122
- title: 'Limit Admins to Only Submit on Behalf of Primary Users',
123
- description: 'This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.',
123
+ title: "Limit Admins to Only Submit on Behalf of Primary Users",
124
+ description: "This will limit admins to only make a submission on behalf of a primary users in the site. Otherwise they can also submit on behalf of other admins/staff users.",
125
+ defaultNew: false,
126
+ default: false
127
+ }, {
128
+ key: values.featureKey,
129
+ widget: true,
130
+ main: true,
131
+ hideOnTabNumbers: [],
132
+ optionKey: values.optionDisableAddressAutoPopulate,
133
+ type: "toggle",
134
+ inverseOption: false,
135
+ title: "Do not auto-fill the user's address",
136
+ description: "When enabled, the address field will not be pre-filled from the user's profile when submitting a new ".concat(values.textSingularName, ". It must be entered manually each time."),
124
137
  defaultNew: false,
125
138
  default: false
126
139
  }],
@@ -133,20 +146,20 @@
133
146
  url: values.routeRequestsHub,
134
147
  countProps: null,
135
148
  visibleExps: {
136
- type: 'and',
149
+ type: "and",
137
150
  exps: [{
138
- type: 'feature',
151
+ type: "feature",
139
152
  value: values.featureKey
140
153
  }, {
141
- type: 'or',
154
+ type: "or",
142
155
  exps: [{
143
- type: 'permission',
156
+ type: "permission",
144
157
  value: values.permissionMaintenanceTracking
145
158
  }, {
146
- type: 'permission',
159
+ type: "permission",
147
160
  value: values.permissionMaintenanceTypes
148
161
  }, {
149
- type: 'permission',
162
+ type: "permission",
150
163
  value: values.permissionMaintenanceAssignment
151
164
  }]
152
165
  }]
@@ -205,21 +218,21 @@
205
218
  exact: true
206
219
  }],
207
220
  env: {
208
- baseStage: '',
209
- baseAPIUrl: '',
210
- baseUploadsUrl: '',
211
- uploadBucket: '',
212
- colourBrandingMain: '',
213
- colourBrandingOff: '',
214
- colourBrandingApp: '',
215
- defaultProfileImage: '',
216
- utcOffset: '',
221
+ baseStage: "",
222
+ baseAPIUrl: "",
223
+ baseUploadsUrl: "",
224
+ uploadBucket: "",
225
+ colourBrandingMain: "",
226
+ colourBrandingOff: "",
227
+ colourBrandingApp: "",
228
+ defaultProfileImage: "",
229
+ utcOffset: "",
217
230
  hasAvailableNews: false,
218
231
  newsHaveTags: true,
219
232
  defaultAllowComments: true,
220
- makeApiKey: '',
221
- logo: '',
222
- clientName: ''
233
+ makeApiKey: "",
234
+ logo: "",
235
+ clientName: ""
223
236
  },
224
237
  init: environment => {
225
238
  FeatureConfig.env = environment;
@@ -571,7 +584,6 @@
571
584
  var jobStatusOptions = [
572
585
  {
573
586
  text: "Open",
574
- alias: "Unassigned",
575
587
  order: 0,
576
588
  color: "#d5dde4",
577
589
  category: "Not Actioned"
@@ -768,16 +780,15 @@
768
780
  } = this.props;
769
781
  const params = {};
770
782
 
771
- // Status filter: translate "All Incomplete" into the actual incomplete statuses.
772
- // Expand each status to include its `alias` so legacy DB values (e.g. "Unassigned"
773
- // for "Open") still match the filter.
783
+ // Status filter: translate "All Incomplete" into the actual incomplete statuses
774
784
  if (selectedStatusFilter) {
775
- const selectedStatusTypes = selectedStatusFilter === STATUS_IMCOMPLETE ? statusTypes.filter(s => s.category !== STATUS_COMPLETED) : statusTypes.filter(s => s.text === selectedStatusFilter);
776
- const expanded = ___default["default"].uniq(selectedStatusTypes.flatMap(s => s.alias ? [s.text, s.alias] : [s.text]));
777
- if (expanded.length > 0) {
778
- params.status = expanded.join(',');
779
- } else if (selectedStatusFilter !== STATUS_IMCOMPLETE) {
780
- // Fallback if the status isn't in statusTypes (shouldn't happen normally)
785
+ if (selectedStatusFilter === STATUS_IMCOMPLETE) {
786
+ // Exclude completed statuses - pass all non-completed status texts
787
+ const incompleteStatuses = statusTypes.filter(s => s.category !== STATUS_COMPLETED).map(s => s.text);
788
+ if (incompleteStatuses.length > 0) {
789
+ params.status = incompleteStatuses.join(',');
790
+ }
791
+ } else {
781
792
  params.status = selectedStatusFilter;
782
793
  }
783
794
  }
@@ -4289,7 +4300,7 @@
4289
4300
  if (response.data.user.phoneNumber) {
4290
4301
  contactUpdate.phone = response.data.user.phoneNumber;
4291
4302
  }
4292
- if (response.data.user.unit) {
4303
+ if (!this.props.disableAddressAutoPopulate && response.data.user.unit) {
4293
4304
  contactUpdate.room = response.data.user.unit;
4294
4305
  }
4295
4306
  // Update contact fields when data arrives
@@ -5125,7 +5136,8 @@
5125
5136
  return {
5126
5137
  auth,
5127
5138
  strings: state.strings && state.strings.config || {},
5128
- optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents)
5139
+ optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents),
5140
+ disableAddressAutoPopulate: Helper$1.getSiteSettingFromState(state, values.optionDisableAddressAutoPopulate)
5129
5141
  };
5130
5142
  };
5131
5143
  var AddJob$1 = reactRedux.connect(mapStateToProps$2, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-web-feedback",
3
- "version": "1.1.38",
3
+ "version": "1.1.40",
4
4
  "description": "Extension package to enable maintenance on Pluss Communities Platform",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",