sr-npm 1.7.799 → 1.7.800
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/package.json +1 -1
- package/pages/careersMultiBoxesPage.js +107 -111
- package/pages/homePage.js +1 -18
- package/pages/pagesUtils.js +0 -123
- package/pages/positionPage.js +4 -0
- package/tests/multiSearchBoxCareers.spec.js +5 -6
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const { COLLECTIONS,CUSTOM_VALUES_COLLECTION_FIELDS,JOBS_COLLECTION_FIELDS } = require('../backend/collectionConsts');
|
|
2
2
|
const { queryParams} = require('wix-location-frontend');
|
|
3
3
|
const { location } = require("@wix/site-location");
|
|
4
|
-
const {CAREERS_MULTI_BOXES_PAGE_CONSTS,FiltersIds,fieldTitlesInCMS} = require('../backend/careersMultiBoxesPageIds');
|
|
5
|
-
const { groupValuesByField, debounce, getAllRecords, getFieldById, getFieldByTitle,getCorrectOption,getOptionIndexFromCheckBox
|
|
4
|
+
const {CAREERS_MULTI_BOXES_PAGE_CONSTS,FiltersIds,fieldTitlesInCMS,CATEGORY_CUSTOM_FIELD_ID_IN_CMS} = require('../backend/careersMultiBoxesPageIds');
|
|
5
|
+
const { groupValuesByField, debounce, getAllRecords, getFieldById, getFieldByTitle,getCorrectOption,getOptionIndexFromCheckBox } = require('./pagesUtils');
|
|
6
6
|
|
|
7
7
|
let dontUpdateThisCheckBox;
|
|
8
8
|
const selectedByField = new Map(); // fieldId -> array of selected value IDs
|
|
@@ -54,28 +54,30 @@ async function clearAll(_$w) {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
async function loadPrimarySearchRepeater(_$w) {
|
|
58
|
+
try {
|
|
59
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
60
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
|
|
61
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).onClick(async () => {
|
|
62
|
+
console.log("primary search position button clicked: ", itemData);
|
|
63
|
+
await location.to(itemData["link-jobs-title"]);
|
|
64
|
+
})
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
69
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
|
|
70
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).onClick(async () => {
|
|
71
|
+
await clearAll(_$w);
|
|
72
|
+
let encodedCategory=encodeURIComponent(itemData._id);
|
|
73
|
+
queryParams.add({ category:encodedCategory });
|
|
74
|
+
await handleUrlParams(_$w,{category:encodedCategory});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
} catch (error) {
|
|
78
|
+
console.error('Failed to load primary search repeater:', error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
79
81
|
|
|
80
82
|
async function handleUrlParams(_$w,urlParams) {
|
|
81
83
|
try {
|
|
@@ -89,7 +91,7 @@ async function handleUrlParams(_$w,urlParams) {
|
|
|
89
91
|
applyFiltering=await handleParams(_$w,"category",urlParams.category)
|
|
90
92
|
}
|
|
91
93
|
if(urlParams.keyword) {
|
|
92
|
-
applyFiltering=await primarySearch(_$w, decodeURIComponent(urlParams.keyword)
|
|
94
|
+
applyFiltering=await primarySearch(_$w, decodeURIComponent(urlParams.keyword));
|
|
93
95
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value=decodeURIComponent(urlParams.keyword);
|
|
94
96
|
keyword=true;
|
|
95
97
|
}
|
|
@@ -483,26 +485,26 @@ async function refreshFacetCounts(_$w,clearAll=false) {
|
|
|
483
485
|
}
|
|
484
486
|
|
|
485
487
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
488
|
+
async function primarySearch(_$w,query) {
|
|
489
|
+
console.log("primary search query: ", query);
|
|
490
|
+
if(query.length===0 || query===undefined || query==='') {
|
|
491
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
let filteredJobs=alljobs.filter(job=>job.title.toLowerCase().includes(query));
|
|
496
|
+
console.log("filteredJobs.length: ", filteredJobs.length);
|
|
497
|
+
if(filteredJobs.length>0) {
|
|
498
|
+
currentJobs=filteredJobs;
|
|
499
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
|
|
500
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = currentJobs
|
|
501
|
+
return true;
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
506
508
|
async function secondarySearch(_$w,query) {
|
|
507
509
|
if(query.length===0 || query===undefined || query==='') {
|
|
508
510
|
secondarySearchIsFilled=false;
|
|
@@ -533,86 +535,80 @@ async function secondarySearch(_$w,query) {
|
|
|
533
535
|
}
|
|
534
536
|
async function bindSearchInput(_$w) {
|
|
535
537
|
try {
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
// await primarySearch(_$w, query);
|
|
541
|
-
// }, 150);
|
|
538
|
+
const primarySearchDebounced = debounce(async () => {
|
|
539
|
+
const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value || '').toLowerCase().trim();
|
|
540
|
+
await primarySearch(_$w, query);
|
|
541
|
+
}, 150);
|
|
542
542
|
|
|
543
543
|
const secondarySearchDebounced = debounce(async () => {
|
|
544
544
|
const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).value || '').toLowerCase().trim();
|
|
545
545
|
await secondarySearch(_$w, query);
|
|
546
546
|
}, 150);
|
|
547
547
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
// }
|
|
583
|
-
// });
|
|
548
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
|
|
549
|
+
await primarySearchDebounced();
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
|
|
553
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
554
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
|
|
555
|
+
await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
await loadCategoriesListPrimarySearch(_$w);
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
|
|
562
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
563
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
567
|
+
if( event.key==='Enter') {
|
|
568
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
569
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
570
|
+
await updateJobsAndNumbersAndFilters(_$w);
|
|
571
|
+
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
575
|
+
queryParams.add({ keyword:encodedKeyWord });
|
|
576
|
+
handleUrlParams(_$w,{keyword:encodedKeyWord});
|
|
577
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
578
|
+
// await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
});
|
|
584
582
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).onInput(secondarySearchDebounced);
|
|
585
583
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
// }
|
|
599
|
-
// });
|
|
584
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
|
|
585
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
586
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
587
|
+
await updateJobsAndNumbersAndFilters(_$w);
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
591
|
+
queryParams.add({ keyword:encodedKeyWord });
|
|
592
|
+
await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
|
|
593
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
594
|
+
}
|
|
595
|
+
});
|
|
600
596
|
} catch (error) {
|
|
601
597
|
console.error('Failed to bind search input:', error);
|
|
602
598
|
}
|
|
603
599
|
}
|
|
604
600
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
601
|
+
async function loadCategoriesListPrimarySearch(_$w) {
|
|
602
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
603
|
+
let categoryValues=[]
|
|
604
|
+
for(const value of allvaluesobjects) {
|
|
605
|
+
if(value.customField===CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
|
|
606
|
+
categoryValues.push({title:value.title+` (${value.totalJobs})` ,_id:value._id});
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
console.log("categoryValues: ", categoryValues);
|
|
610
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
|
|
611
|
+
}
|
|
616
612
|
|
|
617
613
|
module.exports = {
|
|
618
614
|
careersMultiBoxesPageOnReady,
|
package/pages/homePage.js
CHANGED
|
@@ -5,29 +5,12 @@ const {
|
|
|
5
5
|
const { handleOnLocationClick } = require('../public/mapUtils');
|
|
6
6
|
const { filterBrokenMarkers } = require('../public/utils');
|
|
7
7
|
const { location } = require('@wix/site-location');
|
|
8
|
-
const {wixData} = require('wix-data');
|
|
9
|
-
const { COLLECTIONS } = require('../backend/collectionConsts');
|
|
10
|
-
const { bindPrimarySearch,getAllRecords,loadPrimarySearchRepeater } = require('./pagesUtils');
|
|
11
8
|
let thisObjectVar;
|
|
12
9
|
let searchByCityFlag=false;
|
|
13
|
-
async function homePageOnReady(_$w,thisObject
|
|
14
|
-
|
|
15
|
-
const queryResult = await wixData.query(COLLECTIONS.SITE_CONFIGS).find();
|
|
16
|
-
const siteconfig = queryResult.items[0];
|
|
17
|
-
if(siteconfig.categorySearch==="true") {
|
|
18
|
-
const allJobs=await getAllRecords(COLLECTIONS.JOBS);
|
|
19
|
-
const allvaluesobjects=await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
|
|
20
|
-
Promise.all([
|
|
21
|
-
bindPrimarySearch(_$w,allvaluesobjects,allJobs),
|
|
22
|
-
loadPrimarySearchRepeater(_$w)
|
|
23
|
-
]);
|
|
24
|
-
}
|
|
25
|
-
else{
|
|
26
|
-
|
|
10
|
+
async function homePageOnReady(_$w,thisObject) {
|
|
27
11
|
thisObjectVar=thisObject;
|
|
28
12
|
await bind(_$w);
|
|
29
13
|
await init(_$w);
|
|
30
|
-
}
|
|
31
14
|
|
|
32
15
|
}
|
|
33
16
|
|
package/pages/pagesUtils.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
const { items: wixData } = require('@wix/data');
|
|
2
2
|
const { JOBS_COLLECTION_FIELDS } = require('../backend/collectionConsts');
|
|
3
|
-
const { CAREERS_MULTI_BOXES_PAGE_CONSTS,CATEGORY_CUSTOM_FIELD_ID_IN_CMS } = require('../backend/careersMultiBoxesPageIds');
|
|
4
|
-
const { location } = require("@wix/site-location");
|
|
5
3
|
|
|
6
4
|
function groupValuesByField(values, refKey) {
|
|
7
5
|
const map = new Map();
|
|
@@ -60,124 +58,6 @@ function groupValuesByField(values, refKey) {
|
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
60
|
|
|
63
|
-
async function loadPrimarySearchRepeater(_$w) {
|
|
64
|
-
try {
|
|
65
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
66
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
|
|
67
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).onClick(async () => {
|
|
68
|
-
await location.to(itemData["link-jobs-title"]);
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
74
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
|
|
75
|
-
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).onClick(async () => {
|
|
76
|
-
const baseUrl = await location.baseUrl();
|
|
77
|
-
const encodedCategory=encodeURIComponent(itemData._id);
|
|
78
|
-
await location.to(`${baseUrl}/search?category=${encodedCategory}`);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error('Failed to load primary search repeater:', error);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
async function bindPrimarySearch(_$w,allvaluesobjects,alljobs) {
|
|
87
|
-
|
|
88
|
-
const primarySearchDebounced = debounce(async () => {
|
|
89
|
-
const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value || '').toLowerCase().trim();
|
|
90
|
-
await primarySearch(_$w, query, alljobs);
|
|
91
|
-
}, 150);
|
|
92
|
-
|
|
93
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
|
|
94
|
-
await primarySearchDebounced();
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
|
|
98
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
99
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
|
|
100
|
-
await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim(), alljobs);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
108
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
112
|
-
if( event.key==='Enter') {
|
|
113
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
114
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
115
|
-
// await updateJobsAndNumbersAndFilters(_$w);
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
120
|
-
const baseUrl = await location.baseUrl();
|
|
121
|
-
await location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
122
|
-
// queryParams.add({ keyword:encodedKeyWord });
|
|
123
|
-
// handleUrlParams(_$w,{keyword:encodedKeyWord});
|
|
124
|
-
// _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
125
|
-
// await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
|
|
131
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
132
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
133
|
-
//await updateJobsAndNumbersAndFilters(_$w);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
137
|
-
const baseUrl = await location.baseUrl();
|
|
138
|
-
await location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
139
|
-
// queryParams.add({ keyword:encodedKeyWord });
|
|
140
|
-
// await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
|
|
141
|
-
// _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
async function loadCategoriesListPrimarySearch(_$w,allvaluesobjects) {
|
|
149
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
150
|
-
let categoryValues=[]
|
|
151
|
-
for(const value of allvaluesobjects) {
|
|
152
|
-
if(value.customField===CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
|
|
153
|
-
categoryValues.push({title:value.title+` (${value.totalJobs})` ,_id:value._id});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
console.log("categoryValues: ", categoryValues);
|
|
157
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
async function primarySearch(_$w,query,alljobs) {
|
|
161
|
-
console.log("primary search query: ", query);
|
|
162
|
-
if(query.length===0 || query===undefined || query==='') {
|
|
163
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
let filteredJobs=alljobs.filter(job=>job.title.toLowerCase().includes(query));
|
|
168
|
-
console.log("filteredJobs.length: ", filteredJobs.length);
|
|
169
|
-
if(filteredJobs.length>0) {
|
|
170
|
-
//currentJobs=filteredJobs;
|
|
171
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
|
|
172
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = filteredJobs
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
61
|
module.exports = {
|
|
182
62
|
groupValuesByField,
|
|
183
63
|
debounce,
|
|
@@ -186,7 +66,4 @@ async function primarySearch(_$w,query,alljobs) {
|
|
|
186
66
|
getFieldByTitle,
|
|
187
67
|
getCorrectOption,
|
|
188
68
|
getOptionIndexFromCheckBox,
|
|
189
|
-
loadPrimarySearchRepeater,
|
|
190
|
-
bindPrimarySearch,
|
|
191
|
-
primarySearch,
|
|
192
69
|
}
|
package/pages/positionPage.js
CHANGED
|
@@ -24,6 +24,10 @@ const {
|
|
|
24
24
|
_$w('#responsibilitiesText').text = htmlToText(item.jobDescription.jobDescription.text);
|
|
25
25
|
_$w('#qualificationsText').text = htmlToText(item.jobDescription.qualifications.text);
|
|
26
26
|
_$w('#relatedJobsTitleText').text = `More ${item.department} Positions`;
|
|
27
|
+
if(_$w('#additionalInfoText'))
|
|
28
|
+
{
|
|
29
|
+
_$w('#additionalInfoText').text = htmlToText(item.jobDescription.additionalInformation.text);
|
|
30
|
+
}
|
|
27
31
|
});
|
|
28
32
|
|
|
29
33
|
_$w('#relatedJobsDataset').onReady(() => {
|
|
@@ -28,14 +28,13 @@ Module.prototype.require = function(id) {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
const careersMultiBoxesPage = rewire('../pages/careersMultiBoxesPage');
|
|
31
|
-
const pagesUtils = rewire('../pages/pagesUtils');
|
|
32
31
|
|
|
33
32
|
// Restore original require
|
|
34
33
|
Module.prototype.require = originalRequire;
|
|
35
34
|
|
|
36
35
|
const secondarySearch = careersMultiBoxesPage.__get__('secondarySearch');
|
|
37
|
-
const primarySearch =
|
|
38
|
-
const loadCategoriesListPrimarySearch =
|
|
36
|
+
const primarySearch = careersMultiBoxesPage.__get__('primarySearch');
|
|
37
|
+
const loadCategoriesListPrimarySearch = careersMultiBoxesPage.__get__('loadCategoriesListPrimarySearch');
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
|
|
@@ -166,7 +165,7 @@ describe('primarySearch function tests', () => {
|
|
|
166
165
|
});
|
|
167
166
|
careersMultiBoxesPage.__set__('alljobs', mockJobs);
|
|
168
167
|
|
|
169
|
-
await primarySearch(mockW, 'product'
|
|
168
|
+
await primarySearch(mockW, 'product');
|
|
170
169
|
|
|
171
170
|
expect(mockprimarySearchMultiBox.changeState).toHaveBeenCalledWith('jobResults');
|
|
172
171
|
expect(mockprimarySearcJobResult.data).toHaveLength(11);
|
|
@@ -179,7 +178,7 @@ describe('primarySearch function tests', () => {
|
|
|
179
178
|
});
|
|
180
179
|
careersMultiBoxesPage.__set__('alljobs', mockJobs);
|
|
181
180
|
|
|
182
|
-
await primarySearch(mockW, 'unicorn hunter'
|
|
181
|
+
await primarySearch(mockW, 'unicorn hunter');
|
|
183
182
|
|
|
184
183
|
expect(mockprimarySearchMultiBox.changeState).toHaveBeenCalledWith('noResults');
|
|
185
184
|
expect(mockprimarySearcJobResult.data).toBeNull();
|
|
@@ -194,7 +193,7 @@ describe('primarySearch function tests', () => {
|
|
|
194
193
|
|
|
195
194
|
careersMultiBoxesPage.__set__('allvaluesobjects', mockCategoryValues);
|
|
196
195
|
|
|
197
|
-
await loadCategoriesListPrimarySearch(mockW
|
|
196
|
+
await loadCategoriesListPrimarySearch(mockW);
|
|
198
197
|
|
|
199
198
|
expect(mockprimarySearchMultiBox.changeState).toHaveBeenCalledWith('categoryResults');
|
|
200
199
|
expect(mockCategoryResultsRepeater.data).toHaveLength(3);
|