sr-npm 1.2.46 → 1.2.47

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.
@@ -31,11 +31,16 @@ const CAREERS_MULTI_BOXES_PAGE_CONSTS={
31
31
  PRIMARY_SEARCH_CATEGORY_BUTTON: '#primarySearchCategoryButton',
32
32
  RESULTS_CONTAINER: '#resultsContainer',
33
33
  PRIMARY_SEARCH_BUTTON: '#primarySearchButton',
34
+ }
34
35
 
36
+ const JOBS_COLLECTION_FIELDS={
37
+ LINK_JOBS_TITLE: 'link-jobs-title',
38
+ LINK_JOBS_REF_ID_SLUG: 'link-jobs-refId-slug',
35
39
  }
36
40
 
37
41
  const CATEGORY_CUSTOM_FIELD_ID_IN_CMS='5cd8c873c9e77c0008aa7d23';
38
42
 
43
+ // used for filters - don't add anything else here
39
44
  const fieldTitlesInCMS={
40
45
  "brand": "Brands",
41
46
  category: "Category",
@@ -75,4 +80,5 @@ module.exports = {
75
80
  fieldTitlesInCMS,
76
81
  CATEGORY_CUSTOM_FIELD_ID_IN_CMS,
77
82
  possibleUrlParams,
83
+ JOBS_COLLECTION_FIELDS,
78
84
  }
package/backend/utils.js CHANGED
@@ -61,7 +61,8 @@ function normalizeString(str) {
61
61
  return str
62
62
  .normalize('NFD')
63
63
  .replace(/\p{Diacritic}/gu, '')
64
- .replace(/[^A-Za-z0-9-]/g, '')
64
+ .replace(/-/g, '') // remove all hyphens
65
+ .replace(/[^A-Za-z0-9]/g, '') // allow only alphanumerics (no hyphens now)
65
66
  .trim();
66
67
  }
67
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sr-npm",
3
- "version": "1.2.46",
3
+ "version": "1.2.47",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -6,18 +6,17 @@ async function boardPeoplePageOnReady(_$w,) {
6
6
  }
7
7
 
8
8
  async function bindBoardPeopleRepeaters(_$w) {
9
-
10
9
  _$w('#directorsRepeaterItem').onClick((event) => {
11
10
  const $item = _$w.at(event.context);
12
11
  const clickedItemData = $item('#dynamicDataset').getCurrentItem();
13
- location.to(`/${clickedItemData['link-board-people-title_fld']}`);
12
+ location.to(`${clickedItemData['link-board-people-title_fld']}`);
14
13
 
15
14
  });
16
15
 
17
16
  _$w('#executivesRepeaterItem').onClick((event) => {
18
17
  const $item = _$w.at(event.context);
19
18
  const clickedItemData = $item('#dataset1').getCurrentItem();
20
- location.to(`/${clickedItemData['link-board-people-title_fld']}`);
19
+ location.to(`${clickedItemData['link-board-people-title_fld']}`);
21
20
 
22
21
  });
23
22
  }
@@ -4,7 +4,13 @@ const { CAREERS_PAGE_SELECTORS } = require('../public/selectors');
4
4
  const { window } = require('@wix/site-window');
5
5
  const { queryParams,onChange} = require('wix-location-frontend');
6
6
  const { location } = require("@wix/site-location");
7
- const {CAREERS_MULTI_BOXES_PAGE_CONSTS,FiltersIds,fieldTitlesInCMS,possibleUrlParams} = require('../backend/careersMultiBoxesPageIds');
7
+ const {
8
+ CAREERS_MULTI_BOXES_PAGE_CONSTS,
9
+ FiltersIds,
10
+ fieldTitlesInCMS,
11
+ possibleUrlParams,
12
+ JOBS_COLLECTION_FIELDS
13
+ } = require('../backend/careersMultiBoxesPageIds');
8
14
  const { groupValuesByField,
9
15
  debounce,
10
16
  getAllRecords,
@@ -312,7 +318,7 @@ async function loadJobsRepeater(_$w) {
312
318
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER).onItemReady(($item, itemData) => {
313
319
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_TITLE).text = itemData.title;
314
320
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_TITLE).onClick(() => {
315
- location.to(itemData["link-jobs-title"] || itemData["link-jobs-refId-slug"]);
321
+ location.to(itemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || itemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
316
322
  });
317
323
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_LOCATION).text=itemData.location.fullLocation
318
324
  $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_REPEATER_ITEM_EMPLOYMENT_TYPE).text=itemData.employmentType
@@ -498,7 +504,7 @@ function getValueFromValueId(valueIds, value) {
498
504
  }
499
505
  else{
500
506
  //if it is not location then we check if selecred values (which is an array) have one of the job values (whcih is also an array)
501
- if(job[JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES].some(value=>values.includes(value._id))) {
507
+ if(job[JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES].some(value=>values.includes(value.valueId))) {
502
508
  if(!addedJobsIds.has(job._id)) {
503
509
  tempFilteredJobs.push(job);
504
510
  addedJobsIds.add(job._id);
@@ -1,6 +1,6 @@
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 } = require('../backend/careersMultiBoxesPageIds');
3
+ const { CAREERS_MULTI_BOXES_PAGE_CONSTS, CATEGORY_CUSTOM_FIELD_ID_IN_CMS, JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
4
  const { location } = require("@wix/site-location");
5
5
  const { normalizeString } = require('../backend/utils');
6
6
  const { getFilter } = require('../public/filterUtils');
@@ -98,24 +98,24 @@ function getOptionIndexFromCheckBox(options,value) {
98
98
  }
99
99
 
100
100
  function loadPrimarySearchRepeater(_$w) {
101
-
102
- _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER_ITEM).onClick((event) => {
103
- const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data;
104
- const clickedItemData = data.find(
105
- (item) => item._id === event.context.itemId,
106
-
107
- );
108
101
 
109
- // 'link-jobs-title' or 'link-copy-of-jobs-title'
110
- const linkKey = Object.keys(clickedItemData).find(
111
- key => key.startsWith('link') && key.includes('jobs') && key.includes('title')
112
- );
113
- if (linkKey && clickedItemData[linkKey] ) {
114
- if(clickedItemData[linkKey].includes("copy-of-jobs")) {
115
- clickedItemData[linkKey]=clickedItemData[linkKey].replace("copy-of-jobs","jobs")
102
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
103
+ $item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_POSITION_BUTTON).label = itemData.title || '';
104
+ });
105
+
106
+ _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER_ITEM).onClick((event) => {
107
+ const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data;
108
+ const clickedItemData = data.find(
109
+ (item) => item._id === event.context.itemId,
110
+
111
+ );
112
+ if(!clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] && !clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]) {
113
+ console.error("clickedItemData does not have link-jobs-title or link-jobs-refId-slug");
114
+ return;
116
115
  }
117
- location.to(clickedItemData[linkKey]);
118
- }
116
+
117
+ location.to(clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE]||clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
118
+
119
119
 
120
120
  });
121
121
  _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
@@ -1,6 +1,7 @@
1
1
  const { query } = require("wix-location-frontend");
2
2
  const { getPositionWithMultiRefField } = require('../backend/queries');
3
3
  const { COLLECTIONS,JOBS_COLLECTION_FIELDS,CUSTOM_FIELDS_COLLECTION_FIELDS } = require('../backend/collectionConsts');
4
+ const { JOBS_COLLECTION_FIELDS: TWG_JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
5
  const { items: wixData } = require('@wix/data');
5
6
  const { location } = require("@wix/site-location");
6
7
  const{isElementExistOnPage} = require('psdev-utils');
@@ -73,7 +74,7 @@ async function getCategoryValue(customValues) {
73
74
  const clickedItemData = data.find(
74
75
  (item) => item._id === event.context.itemId,
75
76
  );
76
- location.to(clickedItemData["link-jobs-title"]);
77
+ location.to(clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || clickedItemData[TWG_JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
77
78
  });
78
79
  }
79
80
  if(isElementExistOnPage(_$w('#relatedJobsDataset')))
@@ -1,6 +1,7 @@
1
1
  const { getLatestJobsByValue, getValueFromValueId } = require('./pagesUtils');
2
2
  const { location } = require("@wix/site-location");
3
3
  const { supportTeamsPageIds,supportTeamsPageSections } = require('../backend/consts');
4
+ const { JOBS_COLLECTION_FIELDS } = require('../backend/careersMultiBoxesPageIds');
4
5
  const { getAllRecordsWithoutMultiRef } = require('./pagesUtils');
5
6
 
6
7
  let currentItem;
@@ -60,7 +61,7 @@ async function handleRecentJobsSection(_$w) {
60
61
  const clickedItemData = data.find(
61
62
  (item) => item._id === event.context.itemId,
62
63
  );
63
- location.to(clickedItemData["link-jobs-title"]);
64
+ location.to(clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_TITLE] || clickedItemData[JOBS_COLLECTION_FIELDS.LINK_JOBS_REF_ID_SLUG]);
64
65
  });
65
66
 
66
67
  _$w(supportTeamsPageIds.RECENT_JOBS_BUTTON).onClick( () => {