sr-npm 1.7.927 → 1.7.928

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sr-npm",
3
- "version": "1.7.927",
3
+ "version": "1.7.928",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,15 +23,13 @@ const pagination = {
23
23
  };
24
24
  async function careersMultiBoxesPageOnReady(_$w,urlParams) {
25
25
  await loadData(_$w);
26
-
27
- await Promise.all([
28
- loadJobsRepeater(_$w),
29
- loadPrimarySearchRepeater(_$w),
30
- loadFilters(_$w),
31
- loadSelectedValuesRepeater(_$w),
32
- bindSearchInput(_$w),
33
- loadPaginationButtons(_$w)
34
- ]);
26
+ loadJobsRepeater(_$w);
27
+ loadPrimarySearchRepeater(_$w);
28
+ await loadFilters(_$w);
29
+ loadSelectedValuesRepeater(_$w);
30
+ bindSearchInput(_$w);
31
+ loadPaginationButtons(_$w);
32
+
35
33
  await handleUrlParams(_$w, urlParams);
36
34
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CLEAR_ALL_BUTTON_ID).onClick(async () => {
37
35
  await clearAll(_$w);
@@ -121,7 +119,7 @@ async function handleParams(_$w,param,value) {
121
119
  return applyFiltering;
122
120
  }
123
121
 
124
- async function loadPaginationButtons(_$w) {
122
+ function loadPaginationButtons(_$w) {
125
123
  try {
126
124
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PAGE_BUTTON_NEXT).onClick(async () => {
127
125
  let nextPageJobs=currentJobs.slice(pagination.pageSize*pagination.currentPage,pagination.pageSize*(pagination.currentPage+1));
@@ -143,7 +141,7 @@ async function loadPaginationButtons(_$w) {
143
141
  }
144
142
  }
145
143
 
146
- async function loadSelectedValuesRepeater(_$w) {
144
+ function loadSelectedValuesRepeater(_$w) {
147
145
  try {
148
146
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SELECTED_VALUES_REPEATER).onItemReady(($item, itemData) => {
149
147
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.SELECTED_VALUES_REPEATER_ITEM_LABEL).text = itemData.label || '';
@@ -170,7 +168,7 @@ async function loadSelectedValuesRepeater(_$w) {
170
168
  await updateJobsAndNumbersAndFilters(_$w);
171
169
  });
172
170
  });
173
- await updateSelectedValuesRepeater(_$w);
171
+ updateSelectedValuesRepeater(_$w);
174
172
  } catch (error) {
175
173
  console.error('Failed to load selected values repeater:', error);
176
174
  }
@@ -494,9 +492,9 @@ async function secondarySearch(_$w,query) {
494
492
  await refreshFacetCounts(_$w);
495
493
  return allsecondarySearchJobs;
496
494
  }
497
- async function bindSearchInput(_$w) {
495
+ function bindSearchInput(_$w) {
498
496
  try {
499
- await bindPrimarySearch(_$w,allvaluesobjects,alljobs);
497
+ bindPrimarySearch(_$w,allvaluesobjects,alljobs);
500
498
 
501
499
  const secondarySearchDebounced = debounce(async () => {
502
500
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.SECONDARY_SEARCH_INPUT).value || '').toLowerCase().trim();
package/pages/homePage.js CHANGED
@@ -18,13 +18,13 @@ async function homePageOnReady(_$w,thisObject=null) {
18
18
  if(siteconfig.categorySearch==="true") {
19
19
  const allJobs=await getAllRecords(COLLECTIONS.JOBS);
20
20
  const allvaluesobjects=await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
21
- await Promise.all([
22
- bindPrimarySearch(_$w,allvaluesobjects,allJobs),
23
- loadPrimarySearchRepeater(_$w),
24
- bindTeamRepeater(_$w),
25
- bindViewAllButton(_$w),
21
+
22
+ bindPrimarySearch(_$w,allvaluesobjects,allJobs);
23
+ loadPrimarySearchRepeater(_$w)
24
+ bindTeamRepeater(_$w)
25
+ bindViewAllButton(_$w)
26
26
 
27
- ]);
27
+
28
28
  }
29
29
  else{
30
30
 
@@ -60,8 +60,8 @@ function groupValuesByField(values, refKey) {
60
60
  }
61
61
  }
62
62
 
63
- async function loadPrimarySearchRepeater(_$w) {
64
- try {
63
+ function loadPrimarySearchRepeater(_$w) {
64
+
65
65
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
66
66
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
67
67
  });
@@ -87,12 +87,9 @@ async function loadPrimarySearchRepeater(_$w) {
87
87
  location.to(`${baseUrl}/search?category=${encodedCategory}`);
88
88
  });
89
89
 
90
- } catch (error) {
91
- console.error('Failed to load primary search repeater:', error);
92
- }
93
90
  }
94
91
 
95
- async function bindPrimarySearch(_$w,allvaluesobjects,alljobs) {
92
+ function bindPrimarySearch(_$w,allvaluesobjects,alljobs) {
96
93
 
97
94
  const primarySearchDebounced = debounce(async () => {
98
95
  const query = (_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value || '').toLowerCase().trim();
@@ -89,7 +89,8 @@ async function getCategoryValueId(customValues) {
89
89
  function handleApplyButton(_$w,item) {
90
90
  try{
91
91
  _$w('#applyButton').target="_blank";//so it can open in new tab
92
- const url=appendQueryParams(item.applyLink,query);
92
+
93
+ const url=buildApplyLinkWithQueryParams(item.applyLink,query);
93
94
  _$w('#applyButton').link=url; //so it can be clicked
94
95
  }
95
96
  catch(error){
@@ -99,6 +100,20 @@ async function getCategoryValueId(customValues) {
99
100
  }
100
101
  }
101
102
 
103
+ function buildApplyLinkWithQueryParams(url, query) {
104
+ if (!url || typeof url !== 'string' || !url.startsWith('http')) {
105
+ console.warn(`Invalid URL ${url}, button link will not be set`);
106
+ return null;
107
+ }
108
+
109
+ if (!query || typeof query !== 'object') {
110
+ console.warn(`Invalid query params ${query}, button link will not be set`);
111
+ return null;
112
+ }
113
+
114
+ return appendQueryParams(url, query);
115
+ }
116
+
102
117
  async function getRelatedJobs({ categoryValueId, itemId, limit = 1000 }) {
103
118
 
104
119