sr-npm 1.7.766 → 1.7.768

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.
@@ -27,6 +27,7 @@ const CAREERS_MULTI_BOXES_PAGE_CONSTS={
27
27
  PRIMARY_SEARCH_POSITION_BUTTON: '#primarySearechPositionButton',
28
28
  PRIMARY_SEARCH_CATEGORY_BUTTON: '#primarySearchCategoryButton',
29
29
  RESULTS_CONTAINER: '#resultsContainer',
30
+ PRIMARY_SEARCH_BUTTON: '#primarySearchButton',
30
31
 
31
32
  }
32
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sr-npm",
3
- "version": "1.7.766",
3
+ "version": "1.7.768",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -72,6 +72,7 @@ async function loadPrimarySearchRepeater(_$w) {
72
72
 
73
73
  async function handleUrlParams(_$w,urlParams) {
74
74
  let applyFiltering=false;
75
+ let keyword=false
75
76
  console.log("handleUrlParams urlParams: ", urlParams);
76
77
  if(urlParams.brand) {
77
78
  applyFiltering=await handleParams(_$w,"brand",urlParams.brand)
@@ -80,10 +81,11 @@ async function handleUrlParams(_$w,urlParams) {
80
81
  applyFiltering=await handleParams(_$w,"category",urlParams.category)
81
82
  }
82
83
  if(urlParams.keyword) {
83
- console.log("keyword urlparam handling coming soon...")
84
+ await primarySearch(_$w, decodeURIComponent(urlParams.keyword));
85
+ keyword=true;
84
86
  }
85
87
  if(applyFiltering) {
86
- await updateJobsAndNumbersAndFilters(_$w);
88
+ await updateJobsAndNumbersAndFilters(_$w,false,keyword);
87
89
  }
88
90
  if(urlParams.page) {
89
91
  if(Number.isNaN(Number(urlParams.page)) || Number(urlParams.page)<=1 || Number(urlParams.page)>Math.ceil(currentJobs.length/pagination.pageSize)) {
@@ -281,8 +283,8 @@ async function loadJobsRepeater(_$w) {
281
283
 
282
284
 
283
285
 
284
- async function updateJobsAndNumbersAndFilters(_$w,clearAll=false) {
285
- await applyJobFilters(_$w); // re-query jobs
286
+ async function updateJobsAndNumbersAndFilters(_$w,clearAll=false,keyword=false) {
287
+ await applyJobFilters(_$w,keyword); // re-query jobs
286
288
  await refreshFacetCounts(_$w,clearAll); // recompute and update counts in all lists
287
289
  await updateSelectedValuesRepeater(_$w);
288
290
  updateTotalJobsCountText(_$w);
@@ -322,16 +324,17 @@ async function loadJobsRepeater(_$w) {
322
324
  clearAll? prevSelected=[]:prevSelected= _$w(`#${FiltersIds[fieldTitle]}CheckBox`).value;
323
325
  const visibleSet = new Set(filtered.map(o => o.value));
324
326
  const preserved = prevSelected.filter(v => visibleSet.has(v));
325
-
326
327
  _$w(`#${FiltersIds[fieldTitle]}CheckBox`).options = filtered;
327
328
  _$w(`#${FiltersIds[fieldTitle]}CheckBox`).value = preserved;
328
-
329
329
  }
330
330
 
331
- async function applyJobFilters(_$w) {
331
+ async function applyJobFilters(_$w,keyword=false) {
332
332
  let tempFilteredJobs=[];
333
333
  let finalFilteredJobs=[];
334
334
  secondarySearchIsFilled? finalFilteredJobs=allsecondarySearchJobs:finalFilteredJobs=alljobs;
335
+ if(keyword) {
336
+ finalFilteredJobs=currentJobs
337
+ }
335
338
  let addedJobsIds=[]
336
339
  // AND across categories, OR within each category
337
340
  for (const [key, values] of selectedByField.entries()) {
@@ -452,16 +455,13 @@ async function primarySearch(_$w,query) {
452
455
  let filteredJobs=alljobs.filter(job=>job.title.toLowerCase().includes(query));
453
456
  console.log("filteredJobs.length: ", filteredJobs.length);
454
457
  if(filteredJobs.length>0) {
455
- alljobs=filteredJobs;
458
+ currentJobs=filteredJobs;
456
459
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
457
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = alljobs
460
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = currentJobs
458
461
  }
459
462
  else {
460
463
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
461
-
462
464
  }
463
-
464
-
465
465
  }
466
466
  async function secondarySearch(_$w,query) {
467
467
  if(query.length===0 || query===undefined || query==='') {
@@ -496,19 +496,54 @@ async function secondarySearch(_$w,query) {
496
496
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value || '').toLowerCase().trim();
497
497
  await primarySearch(_$w, query);
498
498
  }, 150);
499
+
499
500
  const secondarySearchDebounced = debounce(async () => {
500
501
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).value || '').toLowerCase().trim();
501
502
  await secondarySearch(_$w, query);
502
503
  }, 150);
504
+
503
505
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
504
506
  await primarySearchDebounced();
505
507
  });
506
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
507
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
508
- await loadCategoriesListPrimarySearch(_$w);
509
- });
510
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).onInput(secondarySearchDebounced);
511
508
 
509
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
510
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
511
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
512
+ await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
513
+ }
514
+ else {
515
+ await loadCategoriesListPrimarySearch(_$w);
516
+ }
517
+ });
518
+
519
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
520
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
521
+ });
522
+
523
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
524
+ if( event.key==='Enter') {
525
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
526
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
527
+ }
528
+ else {
529
+ let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
530
+ queryParams.add({ keyword:encodedKeyWord });
531
+ await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
532
+ }
533
+ }
534
+ });
535
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).onInput(secondarySearchDebounced);
536
+
537
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
538
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
539
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
540
+ }
541
+ else {
542
+ let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
543
+ queryParams.add({ keyword:encodedKeyWord });
544
+ await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
545
+ }
546
+ });
512
547
  }
513
548
 
514
549
  async function loadCategoriesListPrimarySearch(_$w) {