sr-npm 1.2.45 → 1.2.47

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.
@@ -1,4 +1,5 @@
1
1
  const CAREERS_MULTI_BOXES_PAGE_CONSTS={
2
+ JOBS_DATASET: '#jobsDataset',
2
3
  FILTER_REPEATER: '#filterReapter',
3
4
  JOBS_REPEATER: '#jobsReapter',
4
5
  JOBS_REPEATER_ITEM_TITLE: '#jobTitle',
@@ -30,11 +31,16 @@ const CAREERS_MULTI_BOXES_PAGE_CONSTS={
30
31
  PRIMARY_SEARCH_CATEGORY_BUTTON: '#primarySearchCategoryButton',
31
32
  RESULTS_CONTAINER: '#resultsContainer',
32
33
  PRIMARY_SEARCH_BUTTON: '#primarySearchButton',
34
+ }
33
35
 
36
+ const JOBS_COLLECTION_FIELDS={
37
+ LINK_JOBS_TITLE: 'link-jobs-title',
38
+ LINK_JOBS_REF_ID_SLUG: 'link-jobs-refId-slug',
34
39
  }
35
40
 
36
41
  const CATEGORY_CUSTOM_FIELD_ID_IN_CMS='5cd8c873c9e77c0008aa7d23';
37
42
 
43
+ // used for filters - don't add anything else here
38
44
  const fieldTitlesInCMS={
39
45
  "brand": "Brands",
40
46
  category: "Category",
@@ -74,4 +80,5 @@ module.exports = {
74
80
  fieldTitlesInCMS,
75
81
  CATEGORY_CUSTOM_FIELD_ID_IN_CMS,
76
82
  possibleUrlParams,
83
+ JOBS_COLLECTION_FIELDS,
77
84
  }
package/backend/utils.js CHANGED
@@ -61,7 +61,8 @@ function normalizeString(str) {
61
61
  return str
62
62
  .normalize('NFD')
63
63
  .replace(/\p{Diacritic}/gu, '')
64
- .replace(/[^A-Za-z0-9-]/g, '')
64
+ .replace(/-/g, '') // remove all hyphens
65
+ .replace(/[^A-Za-z0-9]/g, '') // allow only alphanumerics (no hyphens now)
65
66
  .trim();
66
67
  }
67
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sr-npm",
3
- "version": "1.2.45",
3
+ "version": "1.2.47",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -6,18 +6,17 @@ async function boardPeoplePageOnReady(_$w,) {
6
6
  }
7
7
 
8
8
  async function bindBoardPeopleRepeaters(_$w) {
9
-
10
9
  _$w('#directorsRepeaterItem').onClick((event) => {
11
10
  const $item = _$w.at(event.context);
12
11
  const clickedItemData = $item('#dynamicDataset').getCurrentItem();
13
- location.to(`/${clickedItemData['link-board-people-title_fld']}`);
12
+ location.to(`${clickedItemData['link-board-people-title_fld']}`);
14
13
 
15
14
  });
16
15
 
17
16
  _$w('#executivesRepeaterItem').onClick((event) => {
18
17
  const $item = _$w.at(event.context);
19
18
  const clickedItemData = $item('#dataset1').getCurrentItem();
20
- location.to(`/${clickedItemData['link-board-people-title_fld']}`);
19
+ location.to(`${clickedItemData['link-board-people-title_fld']}`);
21
20
 
22
21
  });
23
22
  }
@@ -4,8 +4,25 @@ const { CAREERS_PAGE_SELECTORS } = require('../public/selectors');
4
4
  const { window } = require('@wix/site-window');
5
5
  const { queryParams,onChange} = require('wix-location-frontend');
6
6
  const { location } = require("@wix/site-location");
7
- const {CAREERS_MULTI_BOXES_PAGE_CONSTS,FiltersIds,fieldTitlesInCMS,possibleUrlParams} = require('../backend/careersMultiBoxesPageIds');
8
- const { groupValuesByField, debounce, getAllRecords, getFieldById, getFieldByTitle,getCorrectOption,getOptionIndexFromCheckBox,loadPrimarySearchRepeater,bindPrimarySearch,primarySearch } = require('./pagesUtils');
7
+ const {
8
+ CAREERS_MULTI_BOXES_PAGE_CONSTS,
9
+ FiltersIds,
10
+ fieldTitlesInCMS,
11
+ possibleUrlParams,
12
+ JOBS_COLLECTION_FIELDS
13
+ } = require('../backend/careersMultiBoxesPageIds');
14
+ const { groupValuesByField,
15
+ debounce,
16
+ getAllRecords,
17
+ getFieldById,
18
+ getFieldByTitle,
19
+ getCorrectOption,
20
+ getOptionIndexFromCheckBox,
21
+ loadPrimarySearchRepeater,
22
+ bindPrimarySearch,
23
+ primarySearch,
24
+ getAllDatasetItems
25
+ } = require('./pagesUtils');
9
26
 
10
27
 
11
28
  let dontUpdateThisCheckBox;
@@ -134,18 +151,9 @@ async function handleUrlParams(_$w,urlParams,handleBackAndForth=false) {
134
151
  if(urlParams.keyword) {
135
152
  applyFiltering = await primarySearch(_$w, decodeURIComponent(urlParams.keyword));
136
153
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value = decodeURIComponent(urlParams.keyword);
137
-
138
- await _$w("#jobsDataset").onReadyAsync();
139
154
 
140
- let items = [];
141
- let data = await _$w("#jobsDataset").getItems(0, 1000);
142
- items.push(...data.items);
155
+ const items = await getAllDatasetItems(_$w, CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_DATASET);
143
156
 
144
- while (_$w("#jobsDataset").hasNextPage()) {
145
- const nextItems = await _$w("#jobsDataset").nextPage();
146
- items.push(...nextItems);
147
- }
148
-
149
157
  currentJobs = items;
150
158
  keywordAllJobs = items;
151
159
  }
@@ -310,7 +318,7 @@ async function loadJobsRepeater(_$w) {
310
318
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER).onItemReady(($item, itemData) => {
311
319
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_TITLE).text = itemData.title;
312
320
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_TITLE).onClick(() => {
313
- location.to(itemData["link-jobs-title"] || itemData["link-jobs-refId-slug"]);
321
+ location.to(itemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || itemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
314
322
  });
315
323
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_LOCATION).text=itemData.location.fullLocation
316
324
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_EMPLOYMENT_TYPE).text=itemData.employmentType
@@ -496,7 +504,7 @@ function getValueFromValueId(valueIds, value) {
496
504
  }
497
505
  else{
498
506
  //if it is not location then we check if selecred values (which is an array) have one of the job values (whcih is also an array)
499
- if(job[JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES].some(value=>values.includes(value._id))) {
507
+ if(job[JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES].some(value=>values.includes(value.valueId))) {
500
508
  if(!addedJobsIds.has(job._id)) {
501
509
  tempFilteredJobs.push(job);
502
510
  addedJobsIds.add(job._id);
@@ -1,6 +1,6 @@
1
1
  const { items: wixData } = require('@wix/data');
2
2
  const { JOBS_COLLECTION_FIELDS,COLLECTIONS } = require('../backend/collectionConsts');
3
- const { CAREERS_MULTI_BOXES_PAGE_CONSTS,CATEGORY_CUSTOM_FIELD_ID_IN_CMS } = require('../backend/careersMultiBoxesPageIds');
3
+ const { CAREERS_MULTI_BOXES_PAGE_CONSTS, CATEGORY_CUSTOM_FIELD_ID_IN_CMS, JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
4
  const { location } = require("@wix/site-location");
5
5
  const { normalizeString } = require('../backend/utils');
6
6
  const { getFilter } = require('../public/filterUtils');
@@ -16,248 +16,261 @@ function groupValuesByField(values, refKey) {
16
16
  });
17
17
  }
18
18
  return map;
19
- }
19
+ }
20
20
 
21
- const debounce = (fn, ms = 150) => {
22
- let t;
23
- return (...args) => {
24
- clearTimeout(t);
25
- t = setTimeout(() => fn(...args), ms);
26
- };
21
+ const debounce = (fn, ms = 150) => {
22
+ let t;
23
+ return (...args) => {
24
+ clearTimeout(t);
25
+ t = setTimeout(() => fn(...args), ms);
27
26
  };
27
+ };
28
28
 
29
- async function getAllRecords(collectionId) {
30
- const q = wixData.query(collectionId).include(JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES)
31
-
32
-
33
- const items = [];
34
- let res = await q.limit(1000).find();
35
- items.push(...res.items);
36
-
37
- while (res.hasNext()) {
38
- res = await res.next();
39
- items.push(...res.items);
40
- }
41
- return items;
29
+ async function getAllDatasetItems(_$w, datasetSelector) {
30
+ await _$w(datasetSelector).onReadyAsync();
31
+
32
+ let items = [];
33
+ let data = await _$w(datasetSelector).getItems(0, 1000);
34
+ items.push(...data.items);
35
+
36
+ while (_$w(datasetSelector).hasNextPage()) {
37
+ const nextItems = await _$w(datasetSelector).nextPage();
38
+ items.push(...nextItems);
42
39
  }
43
40
 
44
- async function getAllRecordsWithoutMultiRef(collectionId) {
45
- const q = wixData.query(collectionId)
46
-
47
-
48
- const items = [];
49
- let res = await q.limit(1000).find();
41
+ return items;
42
+ }
43
+
44
+ async function getAllRecords(collectionId) {
45
+ const q = wixData.query(collectionId).include(JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES)
46
+
47
+
48
+ const items = [];
49
+ let res = await q.limit(1000).find();
50
+ items.push(...res.items);
51
+
52
+ while (res.hasNext()) {
53
+ res = await res.next();
50
54
  items.push(...res.items);
51
-
52
- while (res.hasNext()) {
53
- res = await res.next();
54
- items.push(...res.items);
55
- }
56
- return items;
57
55
  }
56
+ return items;
57
+ }
58
+
59
+ async function getAllRecordsWithoutMultiRef(collectionId) {
60
+ const q = wixData.query(collectionId)
58
61
 
59
- function getFieldById(fieldId,allFields) {
60
- return allFields.find(field=>field._id===fieldId);
61
- }
62
62
 
63
- function getFieldByTitle(title,allFields) {
64
- return allFields.find(field=>field.title===title);
63
+ const items = [];
64
+ let res = await q.limit(1000).find();
65
+ items.push(...res.items);
66
+
67
+ while (res.hasNext()) {
68
+ res = await res.next();
69
+ items.push(...res.items);
65
70
  }
71
+ return items;
72
+ }
66
73
 
67
- function getCorrectOption(value,options,param) {
68
- const standardizedValue = normalizeString(value.toLowerCase())
69
- if(param==="employmenttype") //employmenttype have a problematic value
70
- {
71
- return options.find(option=>normalizeString(option.value.toLowerCase())===standardizedValue);
72
- }
73
- return options.find(option=>normalizeString(option.label.toLowerCase())===standardizedValue);
74
+ function getFieldById(fieldId,allFields) {
75
+ return allFields.find(field=>field._id===fieldId);
76
+ }
77
+
78
+ function getFieldByTitle(title,allFields) {
79
+ return allFields.find(field=>field.title===title);
80
+ }
81
+
82
+ function getCorrectOption(value,options,param) {
83
+ const standardizedValue = normalizeString(value.toLowerCase())
84
+ if(param==="employmenttype") //employmenttype have a problematic value
85
+ {
86
+ return options.find(option=>normalizeString(option.value.toLowerCase())===standardizedValue);
74
87
  }
88
+ return options.find(option=>normalizeString(option.label.toLowerCase())===standardizedValue);
89
+ }
75
90
 
76
- function getOptionIndexFromCheckBox(options,value) {
77
- const normalizedValue=normalizeString(value.toLowerCase());
78
- for(let index=0;index<options.length;index++) {
79
- if(normalizeString(options[index].value.toLowerCase())===normalizedValue) {
80
- return index;
81
- }
91
+ function getOptionIndexFromCheckBox(options,value) {
92
+ const normalizedValue=normalizeString(value.toLowerCase());
93
+ for(let index=0;index<options.length;index++) {
94
+ if(normalizeString(options[index].value.toLowerCase())===normalizedValue) {
95
+ return index;
82
96
  }
83
97
  }
98
+ }
84
99
 
85
100
  function loadPrimarySearchRepeater(_$w) {
86
101
 
102
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
103
+ $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
104
+ });
105
+
87
106
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER_ITEM).onClick((event) => {
88
107
  const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data;
89
108
  const clickedItemData = data.find(
90
109
  (item) => item._id === event.context.itemId,
91
110
 
92
111
  );
93
-
94
- // 'link-jobs-title' or 'link-copy-of-jobs-title'
95
- const linkKey = Object.keys(clickedItemData).find(
96
- key => key.startsWith('link') && key.includes('jobs') && key.includes('title')
97
- );
98
- if (linkKey && clickedItemData[linkKey] ) {
99
- if(clickedItemData[linkKey].includes("copy-of-jobs")) {
100
- clickedItemData[linkKey]=clickedItemData[linkKey].replace("copy-of-jobs","jobs")
101
- }
102
- location.to(clickedItemData[linkKey]);
112
+ if(!clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] && !clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]) {
113
+ console.error("clickedItemData does not have link-jobs-title or link-jobs-refId-slug");
114
+ return;
103
115
  }
104
116
 
105
- });
106
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
107
- $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
108
- });
117
+ location.to(clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE]||clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
118
+
109
119
 
110
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER_ITEM).onClick(async (event) => {
111
- const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data;
112
- const clickedItemData = data.find(
113
- (item) => item._id === event.context.itemId,
114
- );
115
- const baseUrl = await location.baseUrl();
116
- const encodedCategory=encodeURIComponent(clickedItemData._id);
117
- location.to(`${baseUrl}/search?category=${encodedCategory}`);
118
- });
120
+ });
121
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
122
+ $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
123
+ });
124
+
125
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER_ITEM).onClick(async (event) => {
126
+ const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data;
127
+ const clickedItemData = data.find(
128
+ (item) => item._id === event.context.itemId,
129
+ );
130
+ const baseUrl = await location.baseUrl();
131
+ const encodedCategory=encodeURIComponent(clickedItemData._id);
132
+ location.to(`${baseUrl}/search?category=${encodedCategory}`);
133
+ });
119
134
 
120
135
  }
121
136
 
122
137
  function bindPrimarySearch(_$w, allvaluesobjects) {
123
138
 
124
- const handleSearchInput = async () => {
125
- const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
126
- await primarySearch(_$w, query);
127
- }
139
+ const handleSearchInput = async () => {
140
+ const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
141
+ await primarySearch(_$w, query);
142
+ }
128
143
 
129
- const primarySearchDebounced = debounce(() => handleSearchInput(), 400);
144
+ const primarySearchDebounced = debounce(() => handleSearchInput(), 400);
130
145
 
131
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
132
- await primarySearchDebounced();
133
- });
146
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
147
+ await primarySearchDebounced();
148
+ });
134
149
 
135
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
136
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
137
-
138
- if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
139
- const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
140
- await primarySearch(_$w, query);
141
- }
142
- else {
143
- await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
144
- }
145
- });
150
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
151
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
146
152
 
147
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
148
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
149
- });
150
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
151
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
152
- });
153
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
154
+ const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
155
+ await primarySearch(_$w, query);
156
+ }
157
+ else {
158
+ await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
159
+ }
160
+ });
153
161
 
154
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
155
- if( event.key === 'Enter') {
156
- if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
157
- // _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
158
- const baseUrl = await location.baseUrl();
159
- location.to(`${baseUrl}/search`);
160
-
161
- }
162
- else {
163
- let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
164
- const baseUrl = await location.baseUrl();
165
- location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
166
- }
167
- }
168
- });
162
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
163
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
164
+ });
169
165
 
170
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
166
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
167
+ if( event.key === 'Enter') {
171
168
  if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
169
+ // _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
172
170
  const baseUrl = await location.baseUrl();
173
171
  location.to(`${baseUrl}/search`);
174
- }
172
+
173
+ }
175
174
  else {
176
175
  let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
177
176
  const baseUrl = await location.baseUrl();
178
177
  location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
179
178
  }
180
- });
179
+ }
180
+ });
181
+
182
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
183
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
184
+ const baseUrl = await location.baseUrl();
185
+ location.to(`${baseUrl}/search`);
186
+ }
187
+ else {
188
+ let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
189
+ const baseUrl = await location.baseUrl();
190
+ location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
191
+ }
192
+ });
181
193
  }
182
194
 
183
195
  async function loadCategoriesListPrimarySearch(_$w, allvaluesobjects) {
184
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
185
-
186
- let categoryValues=[]
187
- for(const value of allvaluesobjects) {
188
- if(value.customField === CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
189
- categoryValues.push({title: value.title+` (${value.count})` , _id: value.valueId});
190
- }
196
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
197
+
198
+ let categoryValues=[]
199
+ for(const value of allvaluesobjects) {
200
+ if(value.customField === CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
201
+ categoryValues.push({title: value.title+` (${value.count})` , _id: value.valueId});
191
202
  }
192
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
203
+ }
204
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
193
205
  }
194
206
 
195
207
  async function primarySearch(_$w, query) {
196
- if(query === undefined || query === '') {
197
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
198
- return false;
199
- }
208
+ if(query === undefined || query === '') {
209
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
210
+ return false;
211
+ }
200
212
 
201
- const searchByTitle = [{field: 'title', searchTerm: query}];
202
- const searchByCity = [{field: 'location.fullLocation', searchTerm: query}];
213
+ const searchByTitle = [{field: 'title', searchTerm: query}];
214
+ const searchByCity = [{field: 'location.fullLocation', searchTerm: query}];
203
215
 
204
- let filter = await getFilter(searchByTitle);
216
+ let filter = await getFilter(searchByTitle);
205
217
 
218
+ await _$w('#jobsDataset').setFilter(filter);
219
+ await _$w('#jobsDataset').refresh();
220
+
221
+ let count = _$w('#jobsDataset').getTotalCount();
222
+
223
+ if( count > 0 ) {
224
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
225
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
226
+ }
227
+ else {
228
+ filter = await getFilter(searchByCity);
206
229
  await _$w('#jobsDataset').setFilter(filter);
207
230
  await _$w('#jobsDataset').refresh();
208
231
 
209
- let count = _$w('#jobsDataset').getTotalCount();
210
-
211
- if( count > 0 ) {
232
+ count = _$w('#jobsDataset').getTotalCount();
233
+ if (count > 0) {
212
234
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
213
235
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
214
236
  }
215
- else {
216
- filter = await getFilter(searchByCity);
217
- await _$w('#jobsDataset').setFilter(filter);
218
- await _$w('#jobsDataset').refresh();
219
-
220
- count = _$w('#jobsDataset').getTotalCount();
221
- if (count > 0) {
222
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
223
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
224
- }
225
- else{
226
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
227
- }
237
+ else{
238
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
228
239
  }
240
+ }
229
241
 
230
- return count > 0;
242
+ return count > 0;
231
243
  }
232
244
 
233
245
  async function getValueFromValueId(valueId) {
234
- const result = await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
235
- console.log("result: ",result);
236
- console.log("valueId: ",valueId);
246
+ const result = await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
247
+ console.log("result: ",result);
248
+ console.log("valueId: ",valueId);
237
249
 
238
- return result.find(value => value.valueId === valueId);
250
+ return result.find(value => value.valueId === valueId);
239
251
  }
240
252
 
241
- async function getLatestJobsByValue(Value) {
242
- const jobs=Value.multiRefJobsCustomValues;
243
- const latestJobs = jobs
244
- .sort((a, b) => new Date(b.releasedDate) - new Date(a.releasedDate))
245
- .slice(0, 5);
246
- return latestJobs;
247
- }
253
+ async function getLatestJobsByValue(Value) {
254
+ const jobs=Value.multiRefJobsCustomValues;
255
+ const latestJobs = jobs
256
+ .sort((a, b) => new Date(b.releasedDate) - new Date(a.releasedDate))
257
+ .slice(0, 5);
258
+ return latestJobs;
259
+ }
248
260
 
249
- module.exports = {
250
- groupValuesByField,
251
- debounce,
252
- getAllRecords,
253
- getFieldById,
254
- getFieldByTitle,
255
- getCorrectOption,
256
- getOptionIndexFromCheckBox,
257
- loadPrimarySearchRepeater,
258
- bindPrimarySearch,
259
- primarySearch,
260
- getLatestJobsByValue,
261
- getValueFromValueId,
262
- getAllRecordsWithoutMultiRef
261
+ module.exports = {
262
+ groupValuesByField,
263
+ debounce,
264
+ getAllRecords,
265
+ getFieldById,
266
+ getFieldByTitle,
267
+ getCorrectOption,
268
+ getOptionIndexFromCheckBox,
269
+ loadPrimarySearchRepeater,
270
+ bindPrimarySearch,
271
+ primarySearch,
272
+ getLatestJobsByValue,
273
+ getValueFromValueId,
274
+ getAllRecordsWithoutMultiRef,
275
+ getAllDatasetItems
263
276
  }
@@ -1,6 +1,7 @@
1
1
  const { query } = require("wix-location-frontend");
2
2
  const { getPositionWithMultiRefField } = require('../backend/queries');
3
3
  const { COLLECTIONS,JOBS_COLLECTION_FIELDS,CUSTOM_FIELDS_COLLECTION_FIELDS } = require('../backend/collectionConsts');
4
+ const { JOBS_COLLECTION_FIELDS: TWG_JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
5
  const { items: wixData } = require('@wix/data');
5
6
  const { location } = require("@wix/site-location");
6
7
  const{isElementExistOnPage} = require('psdev-utils');
@@ -73,7 +74,7 @@ async function getCategoryValue(customValues) {
73
74
  const clickedItemData = data.find(
74
75
  (item) => item._id === event.context.itemId,
75
76
  );
76
- location.to(clickedItemData["link-jobs-title"]);
77
+ location.to(clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
77
78
  });
78
79
  }
79
80
  if(isElementExistOnPage(_$w('#relatedJobsDataset')))
@@ -1,6 +1,7 @@
1
1
  const { getLatestJobsByValue, getValueFromValueId } = require('./pagesUtils');
2
2
  const { location } = require("@wix/site-location");
3
3
  const { supportTeamsPageIds,supportTeamsPageSections } = require('../backend/consts');
4
+ const { JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
5
  const { getAllRecordsWithoutMultiRef } = require('./pagesUtils');
5
6
 
6
7
  let currentItem;
@@ -60,7 +61,7 @@ async function handleRecentJobsSection(_$w) {
60
61
  const clickedItemData = data.find(
61
62
  (item) => item._id === event.context.itemId,
62
63
  );
63
- location.to(clickedItemData["link-jobs-title"]);
64
+ location.to(clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
64
65
  });
65
66
 
66
67
  _$w(supportTeamsPageIds.RECENT_JOBS_BUTTON).onClick( () => {