sr-npm 1.2.52 → 1.2.53
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.
|
@@ -35,7 +35,7 @@ const TWG_JOBS_COLLECTION_FIELDS={
|
|
|
35
35
|
LINK_JOBS_REF_ID_SLUG: 'link-jobs-refId-slug',
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
const CATEGORY_CUSTOM_FIELD_ID_IN_CMS='5cd8c873c9e77c0008aa7d23';
|
|
38
|
+
const CATEGORY_CUSTOM_FIELD_ID_IN_CMS = '5cd8c873c9e77c0008aa7d23';
|
|
39
39
|
|
|
40
40
|
// used for filters - don't add anything else here
|
|
41
41
|
const fieldTitlesInCMS={
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sr-npm",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.53",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@eslint/js": "^9.39.0",
|
|
33
33
|
"eslint": "^9.38.0",
|
|
34
34
|
"globals": "^16.4.0",
|
|
35
|
-
"prettier": "^3.
|
|
35
|
+
"prettier": "^3.7.3",
|
|
36
36
|
"rewire": "^9.0.1"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -18,11 +18,9 @@ const { groupValuesByField,
|
|
|
18
18
|
getFieldByTitle,
|
|
19
19
|
getCorrectOption,
|
|
20
20
|
getOptionIndexFromCheckBox,
|
|
21
|
-
loadPrimarySearchRepeater,
|
|
22
|
-
bindPrimarySearch,
|
|
23
|
-
primarySearch,
|
|
24
21
|
getAllDatasetItems
|
|
25
22
|
} = require('./pagesUtils');
|
|
23
|
+
const { loadPrimarySearchRepeater, bindPrimarySearch, filterPrimarySearchResults } = require('../public/primarySearchUtil');
|
|
26
24
|
|
|
27
25
|
|
|
28
26
|
let dontUpdateThisCheckBox;
|
|
@@ -149,7 +147,7 @@ async function handleUrlParams(_$w,urlParams,handleBackAndForth=false) {
|
|
|
149
147
|
let currentApplyFilterFlag=false;
|
|
150
148
|
//apply this first to determine all jobs
|
|
151
149
|
if(urlParams.keyword) {
|
|
152
|
-
applyFiltering = await
|
|
150
|
+
applyFiltering = await filterPrimarySearchResults(_$w, decodeURIComponent(urlParams.keyword));
|
|
153
151
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value = decodeURIComponent(urlParams.keyword);
|
|
154
152
|
|
|
155
153
|
const items = await getAllDatasetItems(_$w, GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET);
|
|
@@ -642,7 +640,8 @@ async function secondarySearch(_$w,query) {
|
|
|
642
640
|
await refreshFacetCounts(_$w);
|
|
643
641
|
return allsecondarySearchJobs;
|
|
644
642
|
}
|
|
645
|
-
|
|
643
|
+
|
|
644
|
+
function bindSearchInput(_$w) {
|
|
646
645
|
try {
|
|
647
646
|
bindPrimarySearch(_$w, allvaluesobjects);
|
|
648
647
|
|
package/pages/homePage.js
CHANGED
|
@@ -5,7 +5,8 @@ const { location } = require('@wix/site-location');
|
|
|
5
5
|
const {wixData} = require('wix-data');
|
|
6
6
|
const { COLLECTIONS } = require('../backend/collectionConsts');
|
|
7
7
|
const { GLOBAL_SECTIONS_SELECTORS } = require('../public/selectors');
|
|
8
|
-
const {
|
|
8
|
+
const { getAllRecords } = require('./pagesUtils');
|
|
9
|
+
const { bindPrimarySearch, loadPrimarySearchRepeater } = require('../public/primarySearchUtil');
|
|
9
10
|
|
|
10
11
|
let thisObjectVar;
|
|
11
12
|
let searchByCityFlag=false;
|
package/pages/pagesUtils.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
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
|
|
3
|
+
const { CAREERS_MULTI_BOXES_PAGE_CONSTS, CATEGORY_CUSTOM_FIELD_ID_IN_CMS } = require('../backend/careersMultiBoxesPageIds');
|
|
4
4
|
const { GLOBAL_SECTIONS_SELECTORS} = require('../public/selectors');
|
|
5
|
-
const { location } = require("@wix/site-location");
|
|
6
5
|
const { normalizeString } = require('../backend/utils');
|
|
7
|
-
const { getFilter } = require('../public/filterUtils');
|
|
8
6
|
|
|
9
7
|
function groupValuesByField(values, refKey) {
|
|
10
8
|
const map = new Map();
|
|
@@ -98,153 +96,6 @@ function getOptionIndexFromCheckBox(options,value) {
|
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
98
|
|
|
101
|
-
function loadPrimarySearchRepeater(_$w) {
|
|
102
|
-
|
|
103
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
104
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER_ITEM).onClick((event) => {
|
|
108
|
-
const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data;
|
|
109
|
-
const clickedItemData = data.find(
|
|
110
|
-
(item) => item._id === event.context.itemId,
|
|
111
|
-
|
|
112
|
-
);
|
|
113
|
-
if(!clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] && !clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]) {
|
|
114
|
-
console.error("clickedItemData does not have link-jobs-title or link-jobs-refId-slug");
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
location.to( clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE]|| clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
});
|
|
122
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
123
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER_ITEM).onClick(async (event) => {
|
|
127
|
-
const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data;
|
|
128
|
-
const clickedItemData = data.find(
|
|
129
|
-
(item) => item._id === event.context.itemId,
|
|
130
|
-
);
|
|
131
|
-
const baseUrl = await location.baseUrl();
|
|
132
|
-
const encodedCategory=encodeURIComponent(clickedItemData._id);
|
|
133
|
-
location.to(`${baseUrl}/search?category=${encodedCategory}`);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
async function bindPrimarySearch(_$w, allvaluesobjects) {
|
|
139
|
-
// wait for the jobs dataset to be ready
|
|
140
|
-
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).onReadyAsync();
|
|
141
|
-
|
|
142
|
-
const handleSearchInput = async () => {
|
|
143
|
-
const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
|
|
144
|
-
await primarySearch(_$w, query);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const primarySearchDebounced = debounce(() => handleSearchInput(), 400);
|
|
148
|
-
|
|
149
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
|
|
150
|
-
await primarySearchDebounced();
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
|
|
154
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
155
|
-
|
|
156
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
|
|
157
|
-
const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
|
|
158
|
-
await primarySearch(_$w, query);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
166
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).collapse();
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
170
|
-
if( event.key === 'Enter') {
|
|
171
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
172
|
-
// _$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).collapse();
|
|
173
|
-
const baseUrl = await location.baseUrl();
|
|
174
|
-
location.to(`${baseUrl}/search`);
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
179
|
-
const baseUrl = await location.baseUrl();
|
|
180
|
-
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
|
|
186
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
187
|
-
const baseUrl = await location.baseUrl();
|
|
188
|
-
location.to(`${baseUrl}/search`);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
192
|
-
const baseUrl = await location.baseUrl();
|
|
193
|
-
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
async function loadCategoriesListPrimarySearch(_$w, allvaluesobjects) {
|
|
199
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.CATEGORY_RESULTS);
|
|
200
|
-
|
|
201
|
-
let categoryValues=[]
|
|
202
|
-
for(const value of allvaluesobjects) {
|
|
203
|
-
if(value.customField === CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
|
|
204
|
-
categoryValues.push({title: value.title+` (${value.count})` , _id: value.valueId});
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
async function primarySearch(_$w, query) {
|
|
211
|
-
if(query === undefined || query === '') {
|
|
212
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.CATEGORY_RESULTS);
|
|
213
|
-
return false;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const searchByTitle = [{field: 'title', searchTerm: query}];
|
|
217
|
-
const searchByCity = [{field: 'location.fullLocation', searchTerm: query}];
|
|
218
|
-
|
|
219
|
-
let filter = await getFilter(searchByTitle);
|
|
220
|
-
|
|
221
|
-
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).setFilter(filter);
|
|
222
|
-
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).refresh();
|
|
223
|
-
|
|
224
|
-
let count = _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).getTotalCount();
|
|
225
|
-
|
|
226
|
-
if( count > 0 ) {
|
|
227
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
228
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.JOB_RESULTS);
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
filter = await getFilter(searchByCity);
|
|
232
|
-
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).setFilter(filter);
|
|
233
|
-
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).refresh();
|
|
234
|
-
|
|
235
|
-
count = _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).getTotalCount();
|
|
236
|
-
if (count > 0) {
|
|
237
|
-
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
238
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.JOB_RESULTS);
|
|
239
|
-
}
|
|
240
|
-
else{
|
|
241
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.NO_RESULTS);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return count > 0;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
99
|
async function getValueFromValueId(valueId) {
|
|
249
100
|
const result = await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
|
|
250
101
|
console.log("result: ",result);
|
|
@@ -269,9 +120,6 @@ module.exports = {
|
|
|
269
120
|
getFieldByTitle,
|
|
270
121
|
getCorrectOption,
|
|
271
122
|
getOptionIndexFromCheckBox,
|
|
272
|
-
loadPrimarySearchRepeater,
|
|
273
|
-
bindPrimarySearch,
|
|
274
|
-
primarySearch,
|
|
275
123
|
getLatestJobsByValue,
|
|
276
124
|
getValueFromValueId,
|
|
277
125
|
getAllRecordsWithoutMultiRef,
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
const { location } = require("@wix/site-location");
|
|
2
|
+
const { CAREERS_MULTI_BOXES_PAGE_CONSTS, TWG_JOBS_COLLECTION_FIELDS, CATEGORY_CUSTOM_FIELD_ID_IN_CMS } = require('../backend/careersMultiBoxesPageIds');
|
|
3
|
+
const { GLOBAL_SECTIONS_SELECTORS} = require('../public/selectors');
|
|
4
|
+
const { getFilter } = require('../public/filterUtils');
|
|
5
|
+
const { debounce } = require('../public/filterUtils');
|
|
6
|
+
|
|
7
|
+
function loadPrimarySearchRepeater(_$w) {
|
|
8
|
+
|
|
9
|
+
_$w("jobResultsRepeater").onClick((event) => {
|
|
10
|
+
const $item = _$w.at(event.context);
|
|
11
|
+
const clickedItemData = $item(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).getCurrentItem();
|
|
12
|
+
|
|
13
|
+
if(!clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] && !clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]) {
|
|
14
|
+
console.error("clickedItemData does not have link-jobs-title or link-jobs-refId-slug");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
location.to(clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
22
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER_ITEM).onClick(async (event) => {
|
|
26
|
+
const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data;
|
|
27
|
+
const clickedItemData = data.find(
|
|
28
|
+
(item) => item._id === event.context.itemId,
|
|
29
|
+
);
|
|
30
|
+
const baseUrl = await location.baseUrl();
|
|
31
|
+
const encodedCategory=encodeURIComponent(clickedItemData._id);
|
|
32
|
+
location.to(`${baseUrl}/search?category=${encodedCategory}`);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function getPrimarySearchInputValue(_$w) {
|
|
38
|
+
return _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async function bindPrimarySearch(_$w, allvaluesobjects) {
|
|
42
|
+
// wait for the jobs dataset to be ready
|
|
43
|
+
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).onReadyAsync();
|
|
44
|
+
|
|
45
|
+
const handleSearchInput = async () => {
|
|
46
|
+
const query = getPrimarySearchInputValue(_$w);
|
|
47
|
+
await filterPrimarySearchResults(_$w, query);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
|
|
51
|
+
await debounce(() => handleSearchInput(), 300);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
|
|
55
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
56
|
+
|
|
57
|
+
const query = getPrimarySearchInputValue(_$w);
|
|
58
|
+
if( query !== '') {
|
|
59
|
+
await filterPrimarySearchResults(_$w, query);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
67
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).collapse();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
71
|
+
if( event.key === 'Enter') {
|
|
72
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
73
|
+
// _$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).collapse();
|
|
74
|
+
const baseUrl = await location.baseUrl();
|
|
75
|
+
location.to(`${baseUrl}/search`);
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
80
|
+
const baseUrl = await location.baseUrl();
|
|
81
|
+
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
|
|
87
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
88
|
+
const baseUrl = await location.baseUrl();
|
|
89
|
+
location.to(`${baseUrl}/search`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
93
|
+
const baseUrl = await location.baseUrl();
|
|
94
|
+
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async function filterPrimarySearchResults(_$w, query) {
|
|
100
|
+
if(query === undefined || query === '') {
|
|
101
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.CATEGORY_RESULTS);
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const searchByTitle = [{field: 'title', searchTerm: query}];
|
|
106
|
+
const searchByCity = [{field: 'location.fullLocation', searchTerm: query}];
|
|
107
|
+
|
|
108
|
+
let filter = await getFilter(searchByTitle);
|
|
109
|
+
|
|
110
|
+
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).setFilter(filter);
|
|
111
|
+
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).refresh();
|
|
112
|
+
|
|
113
|
+
let count = _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).getTotalCount();
|
|
114
|
+
|
|
115
|
+
if( count > 0 ) {
|
|
116
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
117
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.JOB_RESULTS);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
filter = await getFilter(searchByCity);
|
|
121
|
+
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).setFilter(filter);
|
|
122
|
+
await _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).refresh();
|
|
123
|
+
|
|
124
|
+
count = _$w(GLOBAL_SECTIONS_SELECTORS.JOBS_DATASET).getTotalCount();
|
|
125
|
+
if (count > 0) {
|
|
126
|
+
_$w(GLOBAL_SECTIONS_SELECTORS.RESULTS_CONTAINER).expand();
|
|
127
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.JOB_RESULTS);
|
|
128
|
+
}
|
|
129
|
+
else{
|
|
130
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.NO_RESULTS);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return count > 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async function loadCategoriesListPrimarySearch(_$w, allvaluesobjects) {
|
|
138
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState(GLOBAL_SECTIONS_SELECTORS.CATEGORY_RESULTS);
|
|
139
|
+
|
|
140
|
+
let categoryValues=[]
|
|
141
|
+
for(const value of allvaluesobjects) {
|
|
142
|
+
if(value.customField === CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
|
|
143
|
+
categoryValues.push({title: value.title+` (${value.count})` , _id: value.valueId});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
module.exports = {
|
|
150
|
+
loadPrimarySearchRepeater,
|
|
151
|
+
bindPrimarySearch,
|
|
152
|
+
filterPrimarySearchResults,
|
|
153
|
+
}
|