-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOurTeam.js
97 lines (76 loc) · 3.13 KB
/
OurTeam.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import wixWindow from 'wix-window';
import {checkItemProperties} from 'public/shared.js'
const BACKUPIMAGE = "https://static.wixstatic.com/media/c6776b_35c58bbf6dda4263ad8fd90b077a2592~mv2.png"
// Indexes to differentiate similar repeaters, item IDs, and other relevant elements of the page
const POST_DOCTORAL_FELLOWS = "PDF";
const PHD_STUDENTS = "PHD";
const MASC_STUDENTS = "MAS";
const UNDERGRADUATES = "UND";
const ALUMNI = "ALM";
const HIGHLIGHTED_MEMBERS = [POST_DOCTORAL_FELLOWS, PHD_STUDENTS, MASC_STUDENTS, UNDERGRADUATES]
$w.onReady(function () {
// Set up image repeaters for each member type
HIGHLIGHTED_MEMBERS.forEach((memberType) => {
$w("#Dataset" + memberType).onReady(() => setUpImgRepeater(memberType)); // set up repeater for each member type
});
// Set up alumni repeater
$w("#Dataset" + ALUMNI).onReady(() => setUpAlumniRepeater());
});
export function collapseAnchorMenuButton_click(event) {
if ($w("#anchorMenu").hidden) {
$w("#anchorMenu").show("float", { direction: "right" });
} else {
$w("#anchorMenu").hide("float", { direction: "right" });
}
}
/**
* Set up image repeaters, those for non-alumni, featuring a headshot above their name and no description below their name
*/
function setUpImgRepeater(memberType) {
const requiredProperties = ["name", "memberType"]
$w("#Repeater" + memberType).forEachItem(($item, itemData, index) => {
checkItemProperties(itemData, requiredProperties);
if (itemData.memberType.length > 1) {
throw new Error("Following member has more than one member type: " + itemData.name)
}
if (itemData.image === undefined) {
$item("#memberImage" + memberType).src = BACKUPIMAGE;
}
});
}
/**
* Set up repeater for alumni, no headshot for anyone, description is placed below their name
*/
function setUpAlumniRepeater() {
const requiredProperties = ["name", "alumnus", "memberType", "startTime", "endTime"]
$w("#Repeater" + ALUMNI).forEachItem(($item, itemData, index) => {
checkItemProperties(itemData, requiredProperties);
if (itemData.memberType.length > 1) {
throw new Error("Following member has more than one member type: " + itemData.name)
}
let startDate = new Date(itemData.startTime);
let endDate = new Date(itemData.endTime);
if (startDate > endDate) {
throw new Error("Following member has end date after start date: " + itemData.name)
}
let memberType = itemData.memberType[0];
if (memberType === "Ph.D. Student") {
memberType = "Ph.D"
}
let optionalNewLine = wixWindow.formFactor === "Mobile" ? "\n" : ""
// throw errors about missing start/end dates if no override is present
let startYear = startDate.getFullYear();
let endYear = endDate.getFullYear();
let alumnusDescription = "";
if (!itemData.adtOverride) {
if (startYear === endYear) {
alumnusDescription = memberType + optionalNewLine + " (" + startYear.toString() + ")";
} else {
alumnusDescription = memberType + optionalNewLine + " (" + startYear.toString() + " - " + endYear.toString() + ")";
}
} else {
alumnusDescription = memberType + optionalNewLine + " (" + itemData.adtOverride + ")";
}
$item("#alumnusDescription").text = alumnusDescription;
})
}