Skip to content

Commit a781ec5

Browse files
author
Donovan Vernon
committed
Search Tips Link Implementation
1 parent bf06444 commit a781ec5

4 files changed

Lines changed: 149 additions & 0 deletions

File tree

_includes/current-projects.html

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ <h3 class="filters-title">
2828
Apply
2929
</button>
3030
</div>
31+
<!-- Add Search Tip Link for Desktop -->
32+
<div class="search-tip-link">
33+
<a href="#" id="search-tip-link">Search Tips</a>
34+
</div>
3135
</div>
3236
</nav>
3337

@@ -51,7 +55,33 @@ <h3 class="filters-title">
5155
</div>
5256
<div class="no-results-message"></div>
5357
</div>
58+
<!-- Modal Structure -->
59+
<div class="overlay" id="search-tip-modal">
60+
<div class="search-tip-modal-container">
61+
<div class="top-buffer"></div>
62+
<div class="project-card">
63+
<img class="overlay-close-icon" src="/assets/images/wins-page/x.svg" alt="Close">
64+
<div class="search-tip-card center-screen">
65+
<div class="search-tip-card-top">
66+
<div class="search-card-title project-card-inner">
67+
<span id="overlay-name" class="search-tip-card-name">Blank</span>
68+
</div>
69+
</div>
70+
<div class="search-tip-card-bottom">
71+
<div class="project-inner overlay-card-text">
72+
<p id="search-tip-overview">Blank</p>
73+
<p id="search-tip-and">Blank</p>
74+
<p id="search-tip-or">Blank</p>
75+
<p id="search-tip-not">Blank</p>
76+
</div>
77+
</div>
78+
</div>
79+
</div>
80+
<div class="bottom-buffer"></div>
81+
</div>
82+
</div>
5483
</section>
5584

85+
5686
<script src="/assets/js/current-projects.js"></script>
5787
<script src="../assets/js/elements/noResultsMessageFilter.js"></script>
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
.search-tip-link {
2+
text-decoration: underline;
3+
cursor: pointer;
4+
display: block;
5+
margin: 10px 0;
6+
padding: 10px 0;
7+
border-top: solid 1px #cccccc;
8+
}
9+
10+
11+
// page
12+
.search-tip-card{
13+
padding: 45px;
14+
display: flex;
15+
position: relative;
16+
flex-direction: column;
17+
overflow: visible;
18+
}
19+
20+
.search-tip-card-top{
21+
display: flex;
22+
}
23+
24+
.search-tip-card-title{
25+
display: flex;
26+
justify-content: space-between;
27+
}
28+
29+
.search-tip-card-name{
30+
font-size: 19px;
31+
line-height: 22px;
32+
}
33+
34+
35+
//modal overlay
36+
.overlay {
37+
display: none;
38+
z-index: 1;
39+
position: fixed;
40+
left: 0px;
41+
top: 0px;
42+
width: calc(100vw + 17px);
43+
height: 100%;
44+
background-color: rgba(70, 70, 70, 0.5);
45+
padding: 10px;
46+
overflow-y: auto;
47+
overflow-x: hidden;
48+
}
49+
50+
.top-buffer{
51+
height: 20vh;
52+
}
53+
.bottom-buffer {
54+
height: 5vh;
55+
}
56+
.search-tip-modal-container{
57+
position: absolute;
58+
width: 60%;
59+
left: 20%;
60+
}
61+
.overlay-close-icon {
62+
float: right;
63+
padding: 20px 20px 0 0;
64+
cursor: pointer;
65+
}
66+
.center-screen {
67+
opacity: 1;
68+
}
69+
.overlay-card-text{
70+
padding-top: 40px;
71+
}
72+
73+
@media screen and (max-width: 768px) {
74+
.search-tip-modal-container {
75+
width: 90%;
76+
left: 5%;
77+
}
78+
}

_sass/main.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
@import 'elements/dropdown_filters';
3838
@import 'elements/old_dropdown_filters';
3939
@import 'elements/search-bar';
40+
@import 'elements/search-tip-modal';
4041

4142
// /**
4243
// * Components

assets/js/current-projects.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@ document.addEventListener("DOMContentLoaded",function(){
9494
})
9595
document.querySelector(".cancel-mobile-filters").addEventListener("click", cancelMobileFiltersEventHandler)
9696
document.addEventListener('keydown', tabFocusedKeyDownHandler);
97+
98+
// Event listener for search tip modal
99+
openSearchTipsModal();
100+
101+
// Close Search Tips Modal.
102+
closeSearchTipsModal();
97103

98104
//events related to search bar
99105
document.querySelector("#search").addEventListener("focus",searchOnFocusEventHandler);
@@ -859,4 +865,38 @@ function toggleNoResultMsgIfNoMatch(filtersParams,querySelector) {
859865
} else {
860866
document.querySelector(".no-results-message").innerHTML = ""
861867
}
868+
}
869+
870+
function openSearchTipsModal() {
871+
document.getElementById('search-tip-link').addEventListener('click', function(event) {
872+
event.preventDefault();
873+
updateSearchTipsModal();
874+
});
875+
}
876+
877+
function updateSearchTipsModal() {
878+
// Update the modal content with data
879+
document.getElementById('overlay-name').innerHTML = "Seach Tips";
880+
document.getElementById('search-tip-overview').innerHTML = "Overview of search tips for effective filtering.";
881+
document.getElementById('search-tip-and').innerHTML = "<strong>AND</strong>: Limit results - <em>React AND Node</em> (Search for project cards that contain both React and Node.)";
882+
document.getElementById('search-tip-or').innerHTML = "<strong>OR</strong>: One term OR another - <em>Python OR Javascript</em> (Search for project cards that contains Python OR JavaScript.)";
883+
document.getElementById('search-tip-not').innerHTML = "<strong>-</strong>: Exclude a term from the search - <em>React -Django</em> (Limits project card results to only those with React and not the term Django.)";
884+
885+
// Show the modal
886+
document.getElementById('search-tip-modal').style.display = 'flex';
887+
}
888+
889+
function closeSearchTipsModal() {
890+
// Close the modal
891+
document.querySelector('.overlay-close-icon').addEventListener('click', function() {
892+
document.getElementById('search-tip-modal').style.display = 'none';
893+
});
894+
895+
// Close modal when clicking outside of it
896+
window.addEventListener('click', function(event) {
897+
const modal = this.document.getElementById('search-tip-modal');
898+
if (event.target === modal) {
899+
modal.style.display = 'none';
900+
}
901+
});
862902
}

0 commit comments

Comments
 (0)