Skip to content

Commit

Permalink
Fix dynamic tooltips behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
arkid15r committed Sep 21, 2024
1 parent 2d778b3 commit b520639
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 22 deletions.
2 changes: 1 addition & 1 deletion backend/apps/owasp/api/search/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ def get_projects(query, attributes=None, limit=25):
"attributesToRetrieve": attributes
or [
"idx_contributors_count",
"idx_created_at",
"idx_forks_count",
"idx_leaders",
"idx_level",
Expand All @@ -22,6 +21,7 @@ def get_projects(query, attributes=None, limit=25):
"idx_summary",
"idx_topics",
"idx_type",
"idx_updated_at",
"idx_url",
],
"hitsPerPage": limit,
Expand Down
2 changes: 0 additions & 2 deletions backend/apps/owasp/index/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ class ProjectIndex(AlgoliaIndex):
fields = (
"idx_companies",
"idx_contributors_count",
"idx_created_at",
"idx_description",
"idx_forks_count",
"idx_languages",
Expand All @@ -41,7 +40,6 @@ class ProjectIndex(AlgoliaIndex):
"desc(idx_contributors_count)",
"desc(idx_forks_count)",
"desc(idx_updated_at)",
"desc(idx_create_at)",
],
"ranking": [
"typo",
Expand Down
5 changes: 0 additions & 5 deletions backend/apps/owasp/models/mixins/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@ def idx_companies(self):
"""Return companies for indexing."""
return join_values(fields=(o.company for o in self.organizations.all()))

@property
def idx_created_at(self):
"""Return created at for indexing."""
return self.created_at

@property
def idx_contributors_count(self):
"""Return contributors count for indexing."""
Expand Down
20 changes: 16 additions & 4 deletions backend/apps/owasp/templates/search/issue.html
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ <h5>How to tackle it</h5>
},
methods: {
async getIssues() {
this.removeTooltips();

const response = await fetch(`/api/v1/owasp/search/issue?q=${this.searchQuery}`)
.then(res => res.json())
.then(json => {
Expand All @@ -194,12 +196,22 @@ <h5>How to tackle it</h5>
this.issues = json;
})
.catch(err => console.error("There was an error! ", err));
this.reinitializeTooltips();

this.addTooltips();
},
addTooltips() {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.forEach(function(tooltipTriggerEl) {
new bootstrap.Tooltip(tooltipTriggerEl);
});
},
reinitializeTooltips() {
removeTooltips() {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function(tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
tooltipTriggerList.forEach(function(tooltipTriggerEl) {
const tooltipInstance = bootstrap.Tooltip.getInstance(tooltipTriggerEl);
if (tooltipInstance) {
tooltipInstance.dispose();
}
});
},
showIssueDetails(issue) {
Expand Down
28 changes: 20 additions & 8 deletions backend/apps/owasp/templates/search/project.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@
<div class="d-flex flex-row text-muted">
<div data-bs-toggle="tooltip"
data-bs-placement="top"
title="Creation date"
title="Last update date"
class="d-flex flex-column align-items-center justify-content-center border border-light pt-2"
style="width: 125px">
<div class="px-2">${project.created_at} ago</div>
<div class="px-2">${project.updated_at} ago</div>
<div class="px-2">
<i class="fa-regular fa-clock"></i>
<i class="fa-solid fa-arrows-rotate"></i>
</div>
</div>
<div data-bs-toggle="tooltip"
Expand Down Expand Up @@ -165,24 +165,36 @@ <h4 class="px-1">
},
methods: {
async getProjects() {
this.removeTooltips();

const response = await fetch(`/api/v1/owasp/search/project?q=${this.searchQuery}`)
.then(res => res.json())
.then(json => {
json.forEach(project => {
project.created_at = dayjs.unix(project.idx_created_at || '').fromNow(true);
project.level = project.idx_level.charAt(0).toUpperCase() + project.idx_level.slice(1).toLowerCase();
project.summary = marked.parse(project.idx_summary || '');
project.topics = project.idx_topics ? project.idx_topics.sort(() => Math.random() - 0.5).slice(0, 20) : [];
project.updated_at = dayjs.unix(project.idx_updated_at || '').fromNow(true);
});
this.projects = json;
})
.catch(err => console.error("There was an error! ", err));
this.reinitializeTooltips();

this.addTooltips();
},
addTooltips() {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.forEach(function(tooltipTriggerEl) {
new bootstrap.Tooltip(tooltipTriggerEl);
});
},
reinitializeTooltips() {
removeTooltips() {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function(tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
tooltipTriggerList.forEach(function(tooltipTriggerEl) {
const tooltipInstance = bootstrap.Tooltip.getInstance(tooltipTriggerEl);
if (tooltipInstance) {
tooltipInstance.dispose();
}
});
},
showProjectDetails(project) {
Expand Down
4 changes: 2 additions & 2 deletions backend/apps/slack/commands/projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ def handler(ack, command, client):

attributes = [
"idx_contributors_count",
"idx_created_at",
"idx_forks_count",
"idx_leaders",
"idx_level",
"idx_name",
"idx_stars_count",
"idx_summary",
"idx_updated_at",
"idx_url",
]
if projects := get_projects(search_query, attributes=attributes, limit=10):
Expand Down Expand Up @@ -79,7 +79,7 @@ def handler(ack, command, client):
blocks.append(
markdown(
f"\n*{idx + 1}.* <{project['idx_url']}|*{name_truncated}*>\n"
f"_Created {natural_date(project['idx_created_at'])}"
f"_Updated {natural_date(project['idx_updated_at'])}"
f"{stars_count}{forks_count}{contributors_count}_\n"
f"_{project['idx_level'].capitalize()} project. "
f"Leader{pluralize(len(leaders))}: {', '.join(leaders)}_\n"
Expand Down

0 comments on commit b520639

Please sign in to comment.