sr-npm 1.7.767 → 1.7.769

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.767",
3
+ "version": "1.7.769",
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,12 @@ 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
+ applyFiltering=await primarySearch(_$w, decodeURIComponent(urlParams.keyword));
85
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value=decodeURIComponent(urlParams.keyword);
86
+ keyword=true;
84
87
  }
85
88
  if(applyFiltering) {
86
- await updateJobsAndNumbersAndFilters(_$w);
89
+ await updateJobsAndNumbersAndFilters(_$w,false,keyword);
87
90
  }
88
91
  if(urlParams.page) {
89
92
  if(Number.isNaN(Number(urlParams.page)) || Number(urlParams.page)<=1 || Number(urlParams.page)>Math.ceil(currentJobs.length/pagination.pageSize)) {
@@ -281,8 +284,8 @@ async function loadJobsRepeater(_$w) {
281
284
 
282
285
 
283
286
 
284
- async function updateJobsAndNumbersAndFilters(_$w,clearAll=false) {
285
- await applyJobFilters(_$w); // re-query jobs
287
+ async function updateJobsAndNumbersAndFilters(_$w,clearAll=false,keyword=false) {
288
+ await applyJobFilters(_$w,keyword); // re-query jobs
286
289
  await refreshFacetCounts(_$w,clearAll); // recompute and update counts in all lists
287
290
  await updateSelectedValuesRepeater(_$w);
288
291
  updateTotalJobsCountText(_$w);
@@ -322,16 +325,17 @@ async function loadJobsRepeater(_$w) {
322
325
  clearAll? prevSelected=[]:prevSelected= _$w(`#${FiltersIds[fieldTitle]}CheckBox`).value;
323
326
  const visibleSet = new Set(filtered.map(o => o.value));
324
327
  const preserved = prevSelected.filter(v => visibleSet.has(v));
325
-
326
328
  _$w(`#${FiltersIds[fieldTitle]}CheckBox`).options = filtered;
327
329
  _$w(`#${FiltersIds[fieldTitle]}CheckBox`).value = preserved;
328
-
329
330
  }
330
331
 
331
- async function applyJobFilters(_$w) {
332
+ async function applyJobFilters(_$w,keyword=false) {
332
333
  let tempFilteredJobs=[];
333
334
  let finalFilteredJobs=[];
334
335
  secondarySearchIsFilled? finalFilteredJobs=allsecondarySearchJobs:finalFilteredJobs=alljobs;
336
+ if(keyword) {
337
+ finalFilteredJobs=currentJobs
338
+ }
335
339
  let addedJobsIds=[]
336
340
  // AND across categories, OR within each category
337
341
  for (const [key, values] of selectedByField.entries()) {
@@ -443,25 +447,22 @@ async function refreshFacetCounts(_$w,clearAll=false) {
443
447
  async function primarySearch(_$w,query) {
444
448
  console.log("primary search query: ", query);
445
449
  if(query.length===0 || query===undefined || query==='') {
446
- //await loadCategoriesListPrimarySearch(_$w);
447
- console.log("loading categories list primary search");
448
450
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
449
- return;
451
+ return false;
450
452
  }
451
453
 
452
454
  let filteredJobs=alljobs.filter(job=>job.title.toLowerCase().includes(query));
453
455
  console.log("filteredJobs.length: ", filteredJobs.length);
454
456
  if(filteredJobs.length>0) {
455
- alljobs=filteredJobs;
457
+ currentJobs=filteredJobs;
456
458
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
457
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = alljobs
459
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data = currentJobs
460
+ return true;
458
461
  }
459
462
  else {
460
463
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
461
-
464
+ return false;
462
465
  }
463
-
464
-
465
466
  }
466
467
  async function secondarySearch(_$w,query) {
467
468
  if(query.length===0 || query===undefined || query==='') {
@@ -496,27 +497,55 @@ async function secondarySearch(_$w,query) {
496
497
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value || '').toLowerCase().trim();
497
498
  await primarySearch(_$w, query);
498
499
  }, 150);
500
+
499
501
  const secondarySearchDebounced = debounce(async () => {
500
502
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).value || '').toLowerCase().trim();
501
503
  await secondarySearch(_$w, query);
502
504
  }, 150);
505
+
503
506
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
504
507
  await primarySearchDebounced();
505
508
  });
506
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
507
- if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapsed) {
508
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
509
- await loadCategoriesListPrimarySearch(_$w);
509
+
510
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
511
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
512
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
513
+ await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
514
+ }
515
+ else {
516
+ await loadCategoriesListPrimarySearch(_$w);
517
+ }
518
+ });
519
+
520
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
521
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
522
+ });
523
+
524
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
525
+ if( event.key==='Enter') {
526
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
527
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
510
528
  }
511
529
  else {
512
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
530
+ let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
531
+ queryParams.add({ keyword:encodedKeyWord });
532
+ handleUrlParams(_$w,{keyword:encodedKeyWord});
533
+ // await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
513
534
  }
514
- });
515
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
516
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
517
- });
518
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).onInput(secondarySearchDebounced);
535
+ }
536
+ });
537
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).onInput(secondarySearchDebounced);
519
538
 
539
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
540
+ if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
541
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
542
+ }
543
+ else {
544
+ let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
545
+ queryParams.add({ keyword:encodedKeyWord });
546
+ await primarySearch(_$w, _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim());
547
+ }
548
+ });
520
549
  }
521
550
 
522
551
  async function loadCategoriesListPrimarySearch(_$w) {