From 2251df91526e5693b42dee3092426c0849d28106 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 29 Oct 2024 15:37:13 -0400 Subject: [PATCH 01/44] Search page origin skeleton --- src/indra_cogex/apps/search/__init__.py | 6 ++++++ src/indra_cogex/apps/search/search.py | 10 ++++++++++ src/indra_cogex/apps/templates/home.html | 15 +++++++++++++++ .../apps/templates/search/search_page.html | 11 +++++++++++ src/indra_cogex/apps/wsgi.py | 3 ++- 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/indra_cogex/apps/search/__init__.py create mode 100644 src/indra_cogex/apps/search/search.py create mode 100644 src/indra_cogex/apps/templates/search/search_page.html diff --git a/src/indra_cogex/apps/search/__init__.py b/src/indra_cogex/apps/search/__init__.py new file mode 100644 index 000000000..40b1fcf1c --- /dev/null +++ b/src/indra_cogex/apps/search/__init__.py @@ -0,0 +1,6 @@ + +from .search import search_blueprint + +__all__ = [ + "search_blueprint", +] diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py new file mode 100644 index 000000000..52ebca607 --- /dev/null +++ b/src/indra_cogex/apps/search/search.py @@ -0,0 +1,10 @@ +from flask import Blueprint, render_template + +__all__ = ["search_blueprint"] + +search_blueprint = Blueprint("search", __name__, url_prefix="/search") + +@search_blueprint.route("/") +def search(): + # Render main page template + return render_template("search/search_page.html") \ No newline at end of file diff --git a/src/indra_cogex/apps/templates/home.html b/src/indra_cogex/apps/templates/home.html index 27ea3c5dc..9d6e687b0 100644 --- a/src/indra_cogex/apps/templates/home.html +++ b/src/indra_cogex/apps/templates/home.html @@ -84,6 +84,21 @@

INDRA Biomedical Discovery Engine

+ +

Search

+
+
+ +
+
Search App
+

+ This is the search page. +

+
+ {{ start_button('search.search', '/search/') }} +
+
+
{# TODO: see https://getbootstrap.com/docs/4.4/components/card/#grid-cards #}

Apps and Services using INDRA CoGEx

diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html new file mode 100644 index 000000000..879d7af53 --- /dev/null +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -0,0 +1,11 @@ + + + + + Search Page + + +

Search page header

+

search page description

+ + \ No newline at end of file diff --git a/src/indra_cogex/apps/wsgi.py b/src/indra_cogex/apps/wsgi.py index 0c8867ca9..419e5f375 100644 --- a/src/indra_cogex/apps/wsgi.py +++ b/src/indra_cogex/apps/wsgi.py @@ -25,7 +25,7 @@ from indra_cogex.apps.rest_api import api from indra_cogex.client.neo4j_client import Neo4jClient from indra_cogex.client.enrichment.utils import build_caches - +from indra_cogex.apps.search import search_blueprint logger = logging.getLogger(__name__) @@ -38,6 +38,7 @@ app.register_blueprint(data_display_blueprint) app.register_blueprint(explorer_blueprint) app.register_blueprint(chat_blueprint) +app.register_blueprint(search_blueprint) api.init_app(app) app.extensions[INDRA_COGEX_EXTENSION] = Neo4jClient() From 3f19d9d1c91b30ea9d61612a28b40a633e53ea6d Mon Sep 17 00:00:00 2001 From: haohangyan Date: Wed, 30 Oct 2024 17:10:59 -0400 Subject: [PATCH 02/44] Initial working page of search --- src/indra_cogex/apps/search/search.py | 37 +++++++++++++++++-- .../apps/templates/search/search_page.html | 16 +++----- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 52ebca607..c7a7936a8 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -1,10 +1,39 @@ -from flask import Blueprint, render_template +from flask import Blueprint, render_template, request +from flask_jwt_extended import jwt_required +from flask_wtf import FlaskForm +from wtforms import StringField, SubmitField +from wtforms.validators import DataRequired +from indra_cogex.apps.utils import render_statements, format_stmts +from indra_cogex.client.queries import * __all__ = ["search_blueprint"] search_blueprint = Blueprint("search", __name__, url_prefix="/search") -@search_blueprint.route("/") +class SearchForm(FlaskForm): + agent_name = StringField("Agent Name", validators=[DataRequired()]) + agent_role = StringField("Agent Role") + source_type = StringField("Source Type") + rel_type = StringField("Relationship Type") + submit = SubmitField("Search") + +@search_blueprint.route("/", methods=['GET','POST']) +@jwt_required(optional=True) def search(): - # Render main page template - return render_template("search/search_page.html") \ No newline at end of file + form = SearchForm() + if form.validate_on_submit(): + agent_name = form.agent_name.data + agent_role = form.agent_role.data + source_type = form.source_type.data + rel_type = form.rel_type.data + print(agent_name) + statements = get_statements_mix( + agent_name=agent_name, + agent_role=agent_role, + stmt_source=source_type, + rel_type=rel_type, + limit=10 + ) + return render_statements(stmts=statements) + + return render_template("search/search_page.html", form=form) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 879d7af53..f27a13d7f 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -1,11 +1,5 @@ - - - - - Search Page - - -

Search page header

-

search page description

- - \ No newline at end of file +{% extends "base_form.html" %} + +{% block header %}Statement Search{% endblock %} +{% block lead %}Search for statements by specifying agent, source, and relationship type.{% endblock %} + From e6590a75a8f1b6dca8909fbedef6e07643b34b10 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 31 Oct 2024 15:51:58 -0400 Subject: [PATCH 03/44] Removed print() --- src/indra_cogex/apps/search/search.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index c7a7936a8..861ed683a 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -26,7 +26,6 @@ def search(): agent_role = form.agent_role.data source_type = form.source_type.data rel_type = form.rel_type.data - print(agent_name) statements = get_statements_mix( agent_name=agent_name, agent_role=agent_role, From a88ad716ae734b813dea83294f3450f570e78a04 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Wed, 13 Nov 2024 13:33:37 -0500 Subject: [PATCH 04/44] Changed get_statement variable value --- src/indra_cogex/apps/search/search.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 861ed683a..e488e8de5 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -25,14 +25,16 @@ def search(): agent_name = form.agent_name.data agent_role = form.agent_role.data source_type = form.source_type.data - rel_type = form.rel_type.data - statements = get_statements_mix( - agent_name=agent_name, + rel_type = form.rel_type.data + statements, evidence_count = get_statements( + agent=agent_name, agent_role=agent_role, - stmt_source=source_type, - rel_type=rel_type, - limit=10 + stmt_sources=source_type, + rel_types=rel_type, + limit=50, + evidence_limit=2000, + return_evidence_counts=True ) - return render_statements(stmts=statements) + return render_statements(stmts=statements, evidence_count=evidence_count) return render_template("search/search_page.html", form=form) From f6984c68c57affe9f98cbaedea3a3ad57a81bc16 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 10:26:24 -0500 Subject: [PATCH 05/44] Changed Search layout with arrows and tabs --- src/indra_cogex/apps/search/search.py | 31 +++++-- .../apps/templates/search/search_page.html | 82 ++++++++++++++++++- 2 files changed, 106 insertions(+), 7 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index e488e8de5..5c48244e4 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -2,6 +2,7 @@ from flask_jwt_extended import jwt_required from flask_wtf import FlaskForm from wtforms import StringField, SubmitField +from wtforms.fields.simple import BooleanField from wtforms.validators import DataRequired from indra_cogex.apps.utils import render_statements, format_stmts @@ -13,25 +14,45 @@ class SearchForm(FlaskForm): agent_name = StringField("Agent Name", validators=[DataRequired()]) agent_role = StringField("Agent Role") + other_agent = StringField("Other Agent") + other_agent_role = StringField("Other Agent Role") source_type = StringField("Source Type") rel_type = StringField("Relationship Type") + left_arrow = BooleanField("⇐") + right_arrow = BooleanField("➔") + both_arrow = BooleanField("⇔") submit = SubmitField("Search") + @search_blueprint.route("/", methods=['GET','POST']) @jwt_required(optional=True) def search(): form = SearchForm() if form.validate_on_submit(): - agent_name = form.agent_name.data - agent_role = form.agent_role.data + agent = form.agent_name.data + other_agent = form.other_agent.data source_type = form.source_type.data - rel_type = form.rel_type.data + rel_type = form.rel_type.data + agent_role = None + other_role = None + + if form.right_arrow.data: + agent_role = 'subject' + other_role = 'object' + elif form.left_arrow.data: + agent_role = 'object' + other_role = 'subject' + elif form.both_arrow.data: + agent_role = None + other_role = None statements, evidence_count = get_statements( - agent=agent_name, + agent=agent, agent_role=agent_role, + other_agent=other_agent, + other_role=other_role, stmt_sources=source_type, rel_types=rel_type, - limit=50, + limit=1000, evidence_limit=2000, return_evidence_counts=True ) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index f27a13d7f..858ef52d6 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -1,5 +1,83 @@ {% extends "base_form.html" %} -{% block header %}Statement Search{% endblock %} -{% block lead %}Search for statements by specifying agent, source, and relationship type.{% endblock %} +{% block container %} +
+

{% block header %}Statement Search{% endblock %}

+

{% block lead %}Search for statements by specifying agent, source, and relationship type.{% endblock %}

+ + + + +
+ +
+
+
+ +
+ + +
+ + +
+ + + + +
+ + + +
+ + + +
+ + +
+ + +
+
+ +
+
+ + +
+
+
+ + +
+
+ + +
+ +
+
+
+
+{% endblock %} From 32001bf2ecf0eece705f732ccf07a751252b924a Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 12:47:57 -0500 Subject: [PATCH 06/44] Changed the arrows layout and functions --- src/indra_cogex/apps/search/search.py | 13 +--- .../apps/templates/search/search_page.html | 66 ++++++++++++++++++- 2 files changed, 65 insertions(+), 14 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 5c48244e4..e2cb11bfa 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -33,18 +33,9 @@ def search(): other_agent = form.other_agent.data source_type = form.source_type.data rel_type = form.rel_type.data - agent_role = None - other_role = None + agent_role = form.agent_role.data + other_role = form.other_agent_role.data - if form.right_arrow.data: - agent_role = 'subject' - other_role = 'object' - elif form.left_arrow.data: - agent_role = 'object' - other_role = 'subject' - elif form.both_arrow.data: - agent_role = None - other_role = None statements, evidence_count = get_statements( agent=agent, agent_role=agent_role, diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 858ef52d6..7c6922f42 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -1,5 +1,33 @@ {% extends "base_form.html" %} +{% block head %} + + {{ super() }} +{% endblock %} + {% block container %}

{% block header %}Statement Search{% endblock %}

@@ -39,19 +67,49 @@

{% block header %}Statement Search{% endblock %}

- - -
+ + +
@@ -81,3 +139,5 @@

{% block header %}Statement Search{% endblock %}

{% endblock %} + + From 72b413e00c8bddb6bbb13c613d51248eebb7d140 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 14:07:45 -0500 Subject: [PATCH 07/44] Relation type dropdown list and block alignment --- src/indra_cogex/apps/search/search.py | 12 +- .../apps/templates/search/search_page.html | 135 ++++++++++-------- 2 files changed, 89 insertions(+), 58 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index e2cb11bfa..7d64b4753 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -1,6 +1,9 @@ +import json + from flask import Blueprint, render_template, request from flask_jwt_extended import jwt_required from flask_wtf import FlaskForm +from indra.statements import get_all_descendants, Statement from wtforms import StringField, SubmitField from wtforms.fields.simple import BooleanField from wtforms.validators import DataRequired @@ -27,7 +30,12 @@ class SearchForm(FlaskForm): @search_blueprint.route("/", methods=['GET','POST']) @jwt_required(optional=True) def search(): + stmt_types = {c.__name__ for c in get_all_descendants(Statement)} + stmt_types -= {"Influence", "Event", "Unresolved"} + stmt_types_json = json.dumps(sorted(list(stmt_types))) + form = SearchForm() + if form.validate_on_submit(): agent = form.agent_name.data other_agent = form.other_agent.data @@ -49,4 +57,6 @@ def search(): ) return render_statements(stmts=statements, evidence_count=evidence_count) - return render_template("search/search_page.html", form=form) + return render_template("search/search_page.html", + form=form, + stmt_types_json=stmt_types_json) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 7c6922f42..2868cda83 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -24,7 +24,20 @@ background-color: gray; border-color: gray; } + + .form-control { + padding: 0.375rem 0.75rem; + } + + #rel-type { + padding-top: 0.375rem 0.75rem; + margin: 0; + } + {{ super() }} {% endblock %} @@ -48,76 +61,86 @@

{% block header %}Statement Search{% endblock %}

+
-
+
- +
- + - - -
- - - -
- - - - - -
-
+
+ + +
+
+ + + +
+
+ + + + + +
@@ -138,6 +161,4 @@

{% block header %}Statement Search{% endblock %}

-{% endblock %} - - +{% endblock %} \ No newline at end of file From 82536858e458c5c58fb6911019611e8a25d945f0 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 14:39:03 -0500 Subject: [PATCH 08/44] Placeholder for multiple rels in tags --- src/indra_cogex/apps/search/search.py | 4 +- .../apps/templates/search/search_page.html | 97 +++++++++++++++++-- 2 files changed, 89 insertions(+), 12 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 7d64b4753..108d73599 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -40,7 +40,7 @@ def search(): agent = form.agent_name.data other_agent = form.other_agent.data source_type = form.source_type.data - rel_type = form.rel_type.data + rel_types = json.loads(form.rel_type.data) agent_role = form.agent_role.data other_role = form.other_agent_role.data @@ -50,7 +50,7 @@ def search(): other_agent=other_agent, other_role=other_role, stmt_sources=source_type, - rel_types=rel_type, + rel_types=rel_types, limit=1000, evidence_limit=2000, return_evidence_counts=True diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 2868cda83..f41b7eb19 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -33,6 +33,27 @@ padding-top: 0.375rem 0.75rem; margin: 0; } + + /* Styling for tags inside the container */ + #relTypeContainer { + display: flex; + flex-wrap: wrap; + gap: 5px; + min-height: 40px; + align-items: center; + } + .rel-tag { + display: flex; + align-items: center; + padding: 5px 8px; + background-color: #e0e0e0; + border-radius: 15px; + } + .rel-tag .remove-tag { + margin-left: 5px; + cursor: pointer; + color: #888; + } From 562f8d828e815c4b758164e898a32d7b4126d191 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 15:09:32 -0500 Subject: [PATCH 09/44] Removed rel type container block --- .../apps/templates/search/search_page.html | 29 +++++-------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index f41b7eb19..16beba3de 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -25,29 +25,15 @@ border-color: gray; } - .form-control { - padding: 0.375rem 0.75rem; - } - - #rel-type { - padding-top: 0.375rem 0.75rem; - margin: 0; - } - - /* Styling for tags inside the container */ - #relTypeContainer { - display: flex; - flex-wrap: wrap; - gap: 5px; - min-height: 40px; - align-items: center; - } + /* Style for individual relationship tags */ .rel-tag { - display: flex; + display: inline-flex; align-items: center; + margin: 5px; padding: 5px 8px; background-color: #e0e0e0; border-radius: 15px; + font-size: 0.9rem; } .rel-tag .remove-tag { margin-left: 5px; @@ -90,17 +76,18 @@

{% block header %}Statement Search{% endblock %}

- +
- -
+ +
From 016b1129d49c1c6ac2ef1158b1958451d4c533b9 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 15:39:35 -0500 Subject: [PATCH 10/44] Removed tabs to one page --- src/indra_cogex/apps/search/search.py | 6 + .../apps/templates/search/search_page.html | 296 ++++++++---------- 2 files changed, 140 insertions(+), 162 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 108d73599..a9ceb6855 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -24,6 +24,8 @@ class SearchForm(FlaskForm): left_arrow = BooleanField("⇐") right_arrow = BooleanField("➔") both_arrow = BooleanField("⇔") + paper_id = StringField("Paper ID") + mesh_terms = StringField("MeSH Terms") submit = SubmitField("Search") @@ -43,6 +45,8 @@ def search(): rel_types = json.loads(form.rel_type.data) agent_role = form.agent_role.data other_role = form.other_agent_role.data + paper_id = form.paper_id.data + mesh_terms = form.mesh_terms.data statements, evidence_count = get_statements( agent=agent, @@ -51,6 +55,8 @@ def search(): other_role=other_role, stmt_sources=source_type, rel_types=rel_types, + paper_term=paper_id, + mesh_term=mesh_terms, limit=1000, evidence_limit=2000, return_evidence_counts=True diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 16beba3de..1baf1f0ea 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -31,14 +31,14 @@ align-items: center; margin: 5px; padding: 5px 8px; - background-color: #e0e0e0; + background-color: light gray; border-radius: 15px; font-size: 0.9rem; } .rel-tag .remove-tag { margin-left: 5px; cursor: pointer; - color: #888; + color: medium gray; } - - -
+ function updateTags() { + relTypeContainer.innerHTML = ""; + selectedTypes.forEach(type => { + const tag = document.createElement("span"); + tag.classList.add("rel-tag"); + tag.textContent = type; + + const removeButton = document.createElement("span"); + removeButton.classList.add("remove-tag"); + removeButton.innerHTML = "×"; + removeButton.onclick = () => { + selectedTypes = selectedTypes.filter(t => t !== type); + updateTags(); + updateHiddenInput(); + }; - -
-
-
- - -
-
- - -
- -
+ tag.appendChild(removeButton); + relTypeContainer.appendChild(tag); + }); + } + + function updateHiddenInput() { + relTypeInput.value = JSON.stringify(selectedTypes); + } + }); + + + +
+ +
-
+
+ + +
+ + +
{% endblock %} \ No newline at end of file From 1e662a3cc55e0d0ba995a9245373c9631e3611ee Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 14 Nov 2024 15:55:06 -0500 Subject: [PATCH 11/44] Fixed the rel tags color --- src/indra_cogex/apps/templates/search/search_page.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 1baf1f0ea..c1ff7b141 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -31,14 +31,14 @@ align-items: center; margin: 5px; padding: 5px 8px; - background-color: light gray; + background-color: #e0e0e0; border-radius: 15px; font-size: 0.9rem; } .rel-tag .remove-tag { margin-left: 5px; cursor: pointer; - color: medium gray; + color: #888; } From 186abcc333c0df7e9e638efc3d790c5c1f6755ec Mon Sep 17 00:00:00 2001 From: haohangyan Date: Mon, 18 Nov 2024 13:58:06 -0500 Subject: [PATCH 13/44] Example button to clickable text --- src/indra_cogex/apps/templates/search/search_page.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 9a1b16f0c..0baa4b58f 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -63,8 +63,7 @@

{% block header %}Statement Search{% endblock %}

{% block lead %}Search for statements by specifying agent, source, and relationship type.{% endblock %}

- - +

Example: MEK Phosphorylates ERK

@@ -215,7 +214,7 @@

{% block header %}Statement Search{% endblock %}

} // Attach fillExample function to a button or event if needed - document.getElementById("example-button").onclick = fillExample; // Example button to trigger fillExample + document.getElementById("example-text").onclick = fillExample; // Example button to trigger fillExample }); From bf745f6a131bd8dfe8aaa73bfbb8d717fc58d819 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Mon, 18 Nov 2024 16:36:17 -0500 Subject: [PATCH 14/44] Relationship type multiselect list and optional other agent --- .../apps/templates/search/search_page.html | 272 ++++++------------ 1 file changed, 88 insertions(+), 184 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 0baa4b58f..2b41a092a 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -1,15 +1,14 @@ {% extends "base_form.html" %} {% block head %} + - {{ super() }} {% endblock %} {% block container %}
-

{% block header %}Statement Search{% endblock %}

-

- {% block lead %}Search for statements by specifying agent, source, and relationship type.{% endblock %} -

-

Example: MEK Phosphorylates ERK

- - -
- -
- - -
- - -
- - - -
- -
- - - +

Statement Search

+

Search for statements by specifying agent, relationship types, and roles.

- - -
+ + +
+ + +
- -
- - -
+ +
+ + + +
- -
+ +
+
- - - + + +
+ +
- - - - - - - -
- - -
-
- - + + - +
+ + + {% endblock %} \ No newline at end of file From f80965a35bd07120a2550c67b4f8574f887eb175 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 19 Nov 2024 09:34:44 -0500 Subject: [PATCH 15/44] Scrolling rel type dropdown and autoclose for option selection --- .../apps/templates/search/search_page.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 2b41a092a..d88b9992d 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -36,6 +36,12 @@ .mt-4 { margin-top: 1.5rem; } + + /* Add scrollbar to the dropdown to show all elements */ + .choices__list--dropdown { + max-height: 300px; /* Adjust the height to your preference */ + overflow-y: auto; /* Enable vertical scrolling */ + } {{ super() }} {% endblock %} @@ -92,9 +98,8 @@

Statement Search

// Initialize Choices.js const choices = new Choices(selectElement, { removeItemButton: true, - maxItemCount: 5, - searchResultLimit: 5, - renderChoiceLimit: 5 + searchResultLimit: stmtTypes.length, + renderChoiceLimit: stmtTypes.length, }); // Add options to Choices.js dynamically @@ -107,6 +112,11 @@

Statement Search

const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string }); + + // Close the dropdown after selecting an option + selectElement.addEventListener('choice', function () { + choices.hideDropdown(); + }); }); // Handle role selection From 7c1a87ee2b4fce5b25569622cb5a7285d62380db Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 19 Nov 2024 13:29:16 -0500 Subject: [PATCH 16/44] Implemented Cytoscape graph in the role button --- src/indra_cogex/apps/search/search.py | 4 +- .../apps/templates/search/search_page.html | 322 +++++++++++++----- 2 files changed, 235 insertions(+), 91 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index a9ceb6855..697166bb7 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -42,7 +42,9 @@ def search(): agent = form.agent_name.data other_agent = form.other_agent.data source_type = form.source_type.data - rel_types = json.loads(form.rel_type.data) + if form.rel_type.data: + rel_types = json.loads(form.rel_type.data) + else: rel_types = None agent_role = form.agent_role.data other_role = form.other_agent_role.data paper_id = form.paper_id.data diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index d88b9992d..88ccfb6cb 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -1,101 +1,140 @@ {% extends "base_form.html" %} {% block head %} + + + {{ super() }} {% endblock %} {% block container %} -
-

Statement Search

-

Search for statements by specifying agent, relationship types, and roles.

- -
- -
- - -
- -
- - - - -
+
+

Statement Search

+

Search for statements by specifying agent, relationship types, and roles.

- -
- -
- - - -
- - + + +
+ + +
+ + +
+
+
+
+
+
+
+
+
+
- - + +
+ + + +
- - + + // Role Button Click Handlers + roleButtons.forEach(button => { + button.addEventListener('click', function () { + // Remove 'active' class from all buttons + roleButtons.forEach(btn => btn.classList.remove('active')); + + // Add 'active' class to the clicked button + this.classList.add('active'); + + // Determine role based on the clicked button + const role = this.dataset.role; + + // Update agent and other agent roles based on the role + if (role === 'subject') { + agentRoleInput.value = 'subject'; + otherAgentRoleInput.value = 'object'; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; + } else if (role === 'object') { + agentRoleInput.value = 'object'; + otherAgentRoleInput.value = 'subject'; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; + } else { + agentRoleInput.value = ''; + otherAgentRoleInput.value = ''; + } + + }); + }); + + agentNameInput.addEventListener('input', function () { + const agentLabel = agentNameInput.value || 'Agent'; + const otherLabel = otherAgentInput.value || 'Other'; + updateGraphs(agentLabel, otherLabel); + }); + + // Update Other Agent Name in Graph + otherAgentInput.addEventListener('input', function () { + const agentLabel = agentNameInput.value || 'Agent'; + const otherLabel = otherAgentInput.value || 'Other'; + updateGraphs(agentLabel, otherLabel); + }); + }); + + {% endblock %} \ No newline at end of file From c5947f3d56d8d1a395ffcb5174e149c469b5e431 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Thu, 21 Nov 2024 16:35:44 -0500 Subject: [PATCH 17/44] Use static role button with image --- .../apps/templates/search/search_page.html | 127 ++---------------- 1 file changed, 9 insertions(+), 118 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 88ccfb6cb..cf836c272 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -4,12 +4,6 @@ @@ -68,7 +75,11 @@

Statement Search

- +
+ + + +
@@ -115,36 +126,64 @@

Statement Search

const agentRoleInput = document.getElementById('agent-role'); const otherAgentRoleInput = document.getElementById('other-agent-role'); const otherAgentContainer = document.getElementById('other-agent-container'); + const agentSelect = document.getElementById('agent-select'); + const stmtTypes = {{ stmt_types_json | safe }}; const selectElement = document.getElementById('choices-multiple-remove-button'); const hiddenInput = document.getElementById('rel-type-hidden'); + const groundAgentButton = document.getElementById('ground-agent-button'); - // Initialize Choices.js - const choices = new Choices(selectElement, { - removeItemButton: true, - searchResultLimit: stmtTypes.length, - renderChoiceLimit: stmtTypes.length, - }); - - // Add options to Choices.js dynamically - stmtTypes.forEach(type => { - choices.setChoices([{ value: type, label: type, selected: false }], 'value', 'label', false); - }); - // Update the hidden input whenever selections change - selectElement.addEventListener('change', function () { - const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); - hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string + groundAgentButton.addEventListener('click', async function () { + const agentText = agentNameInput.value.trim(); + if (!agentText) { + alert("Please enter an agent name to ground."); + return; + } + try { + const response = await fetch('/search/gilda_ground', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ agent: agentText }), }); - - // Close the dropdown after selecting an option - selectElement.addEventListener('choice', function () { - choices.hideDropdown(); + if (!response.ok) throw new Error('Failed to ground the agent.'); + const data = await response.json(); + + if (!data || data.length === 0) { + alert("No grounding results found."); + return; + } + agentSelect.innerHTML = ''; + data.forEach(result => { + const option = document.createElement('option'); + option.value = JSON.stringify({ + source_db: result.term.source_db, + source_id: result.term.source_id, + }); + option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; + agentSelect.appendChild(option); }); + agentNameInput.style.display = 'none'; + agentSelect.style.display = 'block'; + } catch (error) { + console.error("Error grounding agent:", error); + alert("An error occurred while grounding the agent."); + } + }); - + agentSelect.addEventListener('change', function () { + const selectedOption = agentSelect.options[agentSelect.selectedIndex]; + if (selectedOption) { + const { source_db, source_id } = JSON.parse(selectedOption.value); + agentNameInput.value = `(${source_db}, ${source_id})`; + agentSelect.style.display = 'none'; + agentNameInput.style.display = 'block'; + } + }); // Role Button Click Handlers roleButtons.forEach(button => { button.addEventListener('click', function () { @@ -175,6 +214,28 @@

Statement Search

}); }); + // Initialize Choices.js + const choices = new Choices(selectElement, { + removeItemButton: true, + searchResultLimit: stmtTypes.length, + renderChoiceLimit: stmtTypes.length, + }); + + // Add options to Choices.js dynamically + stmtTypes.forEach(type => { + choices.setChoices([{ value: type, label: type, selected: false }], 'value', 'label', false); + }); + + // Update the hidden input whenever selections change + selectElement.addEventListener('change', function () { + const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); + hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string + }); + + // Close the dropdown after selecting an option + selectElement.addEventListener('choice', function () { + choices.hideDropdown(); + }); }); From b5b7de3a01bb634ecee7e8131c9703c6c38ee911 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Mon, 25 Nov 2024 16:29:50 -0500 Subject: [PATCH 19/44] Made js and html seperate files --- .../apps/static/search/js/search.js | 119 ++++++++++++++++ .../apps/templates/search/search_page.html | 133 ++---------------- 2 files changed, 130 insertions(+), 122 deletions(-) create mode 100644 src/indra_cogex/apps/static/search/js/search.js diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js new file mode 100644 index 000000000..ec551ed9c --- /dev/null +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -0,0 +1,119 @@ +document.addEventListener('DOMContentLoaded', function () { + const agentNameInput = document.getElementById('agent-name'); + const otherAgentInput = document.getElementById('other-agent-name'); + const roleButtons = document.querySelectorAll('.btn-role'); + const agentRoleInput = document.getElementById('agent-role'); + const otherAgentRoleInput = document.getElementById('other-agent-role'); + const otherAgentContainer = document.getElementById('other-agent-container'); + const agentSelect = document.getElementById('agent-select'); + + + + const stmtTypes = JSON.parse(document.getElementById('stmt-types-json').textContent); + console.log('stmt-types-json element:', stmtTypes); + const selectElement = document.getElementById('choices-multiple-remove-button'); + const hiddenInput = document.getElementById('rel-type-hidden'); + const groundAgentButton = document.getElementById('ground-agent-button'); + + + groundAgentButton.addEventListener('click', async function () { + const agentText = agentNameInput.value.trim(); + if (!agentText) { + alert("Please enter an agent name to ground."); + return; + } + try { + const response = await fetch('/search/gilda_ground', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ agent: agentText }), + }); + if (!response.ok) throw new Error('Failed to ground the agent.'); + const data = await response.json(); + + if (!data || data.length === 0) { + alert("No grounding results found."); + return; + } + agentSelect.innerHTML = ''; + data.forEach(result => { + const option = document.createElement('option'); + option.value = JSON.stringify({ + source_db: result.term.source_db, + source_id: result.term.source_id, + }); + option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; + agentSelect.appendChild(option); + }); + agentNameInput.style.display = 'none'; + agentSelect.style.display = 'block'; + } catch (error) { + console.error("Error grounding agent:", error); + alert("An error occurred while grounding the agent."); + } + }); + + agentSelect.addEventListener('change', function () { + const selectedOption = agentSelect.options[agentSelect.selectedIndex]; + if (selectedOption) { + const { source_db, source_id } = JSON.parse(selectedOption.value); + agentNameInput.value = `(${source_db}, ${source_id})`; + agentSelect.style.display = 'none'; + agentNameInput.style.display = 'block'; + } + }); + // Role Button Click Handlers + roleButtons.forEach(button => { + button.addEventListener('click', function () { + // Remove 'active' class from all buttons + roleButtons.forEach(btn => btn.classList.remove('active')); + + // Add 'active' class to the clicked button + this.classList.add('active'); + + // Determine role based on the clicked button + const role = this.dataset.role; + + // Update agent and other agent roles based on the role + if (role === 'subject') { + agentRoleInput.value = 'subject'; + otherAgentRoleInput.value = 'object'; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; + } else if (role === 'object') { + agentRoleInput.value = 'object'; + otherAgentRoleInput.value = 'subject'; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; + } else { + agentRoleInput.value = ''; + otherAgentRoleInput.value = ''; + } + + }); + }); + // Initialize Choices.js + const choices = new Choices(selectElement, { + removeItemButton: true, + searchResultLimit: stmtTypes.length, + renderChoiceLimit: stmtTypes.length, + }); + + // Add options to Choices.js dynamically + stmtTypes.forEach(type => { + choices.setChoices([{ value: type, label: type, selected: false }], 'value', 'label', false); + }); + + // Update the hidden input whenever selections change + selectElement.addEventListener('change', function () { + const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); + hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string + }); + + // Close the dropdown after selecting an option + selectElement.addEventListener('choice', function () { + choices.hideDropdown(); + }); + }); \ No newline at end of file diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 28e065d51..584f7b5a1 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -60,8 +60,7 @@ width: 100%; } - - + {{ super() }} {% endblock %} @@ -118,125 +117,15 @@

Statement Search

- -{% endblock %} \ No newline at end of file +{% endblock %} + +{% block scripts %} +{{ super() }} + + + +{% endblock %} From 82968697c209113d911c9a2ce83a90aed840fe30 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 26 Nov 2024 09:46:25 -0500 Subject: [PATCH 20/44] Dropdown list and endpoint hidden input for tuple --- src/indra_cogex/apps/search/search.py | 4 ++++ .../apps/static/search/js/search.js | 19 ++++++++++++++----- .../apps/templates/search/search_page.html | 3 ++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index c6f06a5e6..87f673b9e 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -40,6 +40,10 @@ def search(): if form.validate_on_submit(): agent = form.agent_name.data + agent_tuple = request.form.get('agent_tuple') # This is a JSON string + if agent_tuple: + source_db, source_id = json.loads(agent_tuple) + agent = (source_db,source_id) other_agent = form.other_agent.data source_type = form.source_type.data if form.rel_type.data: diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index ec551ed9c..bb6fa65e1 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -41,8 +41,8 @@ document.addEventListener('DOMContentLoaded', function () { data.forEach(result => { const option = document.createElement('option'); option.value = JSON.stringify({ - source_db: result.term.source_db, - source_id: result.term.source_id, + source_db: result.term.db, + source_id: result.term.id, }); option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; agentSelect.appendChild(option); @@ -55,15 +55,24 @@ document.addEventListener('DOMContentLoaded', function () { } }); - agentSelect.addEventListener('change', function () { + agentSelect.addEventListener('input', function () { const selectedOption = agentSelect.options[agentSelect.selectedIndex]; if (selectedOption) { const { source_db, source_id } = JSON.parse(selectedOption.value); - agentNameInput.value = `(${source_db}, ${source_id})`; + + // Update the display text in the input box + agentNameInput.value = selectedOption.textContent; + agentNameInput.readOnly = true; + + // Update the hidden input with the tuple value + document.getElementById('agent-tuple').value = JSON.stringify([source_db, source_id]); + + // Hide the dropdown and show the text box agentSelect.style.display = 'none'; agentNameInput.style.display = 'block'; } - }); + }); + // Role Button Click Handlers roleButtons.forEach(button => { button.addEventListener('click', function () { diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 584f7b5a1..d1b1175b3 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -110,7 +110,8 @@

Statement Search

- + + From 73b92e5d798427cb44b67c099e9c741f0ea7819b Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 26 Nov 2024 14:08:55 -0500 Subject: [PATCH 21/44] Mesh constraint and button images --- src/indra_cogex/apps/search/search.py | 4 + .../apps/static/search/js/search.js | 163 ++++++++++++++---- .../apps/templates/search/search_page.html | 36 +++- 3 files changed, 168 insertions(+), 35 deletions(-) diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 87f673b9e..718a08951 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -53,6 +53,10 @@ def search(): other_role = form.other_agent_role.data paper_id = form.paper_id.data mesh_terms = form.mesh_terms.data + mesh_tuple = request.form.get('mesh_tuple') + if mesh_tuple: + source_db, source_id = json.loads(mesh_tuple) + mesh_terms = (source_db, source_id) statements, evidence_count = get_statements( agent=agent, diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index bb6fa65e1..6a2851f6f 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -6,6 +6,10 @@ document.addEventListener('DOMContentLoaded', function () { const otherAgentRoleInput = document.getElementById('other-agent-role'); const otherAgentContainer = document.getElementById('other-agent-container'); const agentSelect = document.getElementById('agent-select'); + const meshSelect = document.getElementById('mesh-select'); + + const meshNameInput = document.getElementById('mesh-name'); + @@ -14,6 +18,8 @@ document.addEventListener('DOMContentLoaded', function () { const selectElement = document.getElementById('choices-multiple-remove-button'); const hiddenInput = document.getElementById('rel-type-hidden'); const groundAgentButton = document.getElementById('ground-agent-button'); + const groundMeshButton = document.getElementById('ground-mesh-button'); + groundAgentButton.addEventListener('click', async function () { @@ -38,6 +44,12 @@ document.addEventListener('DOMContentLoaded', function () { return; } agentSelect.innerHTML = ''; + const placeholderOption = document.createElement('option'); + placeholderOption.textContent = 'Grounded Results...'; + placeholderOption.value = ''; + placeholderOption.hidden = true; // non-selectable + placeholderOption.selected = true; // Show as default selected + agentSelect.appendChild(placeholderOption); data.forEach(result => { const option = document.createElement('option'); option.value = JSON.stringify({ @@ -55,22 +67,17 @@ document.addEventListener('DOMContentLoaded', function () { } }); - agentSelect.addEventListener('input', function () { - const selectedOption = agentSelect.options[agentSelect.selectedIndex]; - if (selectedOption) { - const { source_db, source_id } = JSON.parse(selectedOption.value); + agentSelect.addEventListener('change', function () { + const selectedOption = agentSelect.options[agentSelect.selectedIndex]; + if (selectedOption) { + const { source_db, source_id } = JSON.parse(selectedOption.value); - // Update the display text in the input box - agentNameInput.value = selectedOption.textContent; - agentNameInput.readOnly = true; + // Update the display text in the input box + agentNameInput.value = selectedOption.textContent; + agentNameInput.readOnly = true; - // Update the hidden input with the tuple value - document.getElementById('agent-tuple').value = JSON.stringify([source_db, source_id]); - - // Hide the dropdown and show the text box - agentSelect.style.display = 'none'; - agentNameInput.style.display = 'block'; - } + document.getElementById('agent-tuple').value = JSON.stringify([source_db, source_id]); + } }); // Role Button Click Handlers @@ -104,25 +111,117 @@ document.addEventListener('DOMContentLoaded', function () { }); }); // Initialize Choices.js - const choices = new Choices(selectElement, { - removeItemButton: true, - searchResultLimit: stmtTypes.length, - renderChoiceLimit: stmtTypes.length, - }); + const choices = new Choices(selectElement, { + removeItemButton: true, + searchResultLimit: stmtTypes.length, + renderChoiceLimit: stmtTypes.length, + }); - // Add options to Choices.js dynamically - stmtTypes.forEach(type => { - choices.setChoices([{ value: type, label: type, selected: false }], 'value', 'label', false); - }); + // Add options to Choices.js dynamically + stmtTypes.forEach(type => { + choices.setChoices([{ value: type, label: type, selected: false }], 'value', 'label', false); + }); - // Update the hidden input whenever selections change - selectElement.addEventListener('change', function () { - const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); - hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string - }); + // Update the hidden input whenever selections change + selectElement.addEventListener('change', function () { + const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); + hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string + }); - // Close the dropdown after selecting an option - selectElement.addEventListener('choice', function () { - choices.hideDropdown(); - }); + // Close the dropdown after selecting an option + selectElement.addEventListener('choice', function () { + choices.hideDropdown(); + }); + + + + + groundMeshButton.addEventListener('click', async function () { + const meshText = meshNameInput.value.trim(); + if (!meshText) { + alert("Please enter a Mesh name to ground."); + return; + } + try { + const response = await fetch('/search/gilda_ground', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ agent: meshText }), + }); + if (!response.ok) throw new Error('Failed to ground the Mesh.'); + const data = await response.json(); + + if (!data || data.length === 0) { + alert("No grounding results found."); + return; + } + + // Filter results to include only those where result.term.db === "MESH" + const meshResults = data.filter(result => result.term.db === "MESH"); + if (meshResults.length === 0) { + alert("No Mesh grounding results found."); + return; + } + + // Populate dropdown with filtered results + meshSelect.innerHTML = ''; + const placeholderOption = document.createElement('option'); + placeholderOption.textContent = 'Grounded Results...'; + placeholderOption.value = ''; + placeholderOption.hidden = true; // non-selectable + placeholderOption.selected = true; // Show as default selected + meshSelect.appendChild(placeholderOption); + + meshResults.forEach(result => { + const option = document.createElement('option'); + option.value = JSON.stringify({ + source_db: result.term.db, + source_id: result.term.id, + }); + option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; + meshSelect.appendChild(option); + }); + + // Show the dropdown + meshNameInput.style.display = 'none'; + meshSelect.style.display = 'block'; + } catch (error) { + console.error("Error grounding Mesh:", error); + alert("An error occurred while grounding the Mesh."); + } + }); + + meshSelect.addEventListener('change', function () { + const selectedOption = meshSelect.options[meshSelect.selectedIndex]; + if (selectedOption) { + const { source_db, source_id } = JSON.parse(selectedOption.value); + + meshNameInput.value = selectedOption.textContent; + meshNameInput.readOnly = true; + + document.getElementById('mesh-tuple').value = JSON.stringify([source_db, source_id]); + } + }); + + window.addEventListener('pageshow', function () { + // Reload the page when navigating back + const agentNameInput = document.getElementById('agent-name'); + const agentSelect = document.getElementById('agent-select'); + const hiddenInput = document.getElementById('agent-tuple'); + + // Reset input box and hidden input + agentNameInput.value = ''; + hiddenInput.value = ''; + + // Clear the dropdown and add placeholder option + agentSelect.innerHTML = ''; + const placeholderOption = document.createElement('option'); + placeholderOption.textContent = 'Grounding Result'; + placeholderOption.value = ''; + placeholderOption.hidden = true; + placeholderOption.selected = true; + agentSelect.appendChild(placeholderOption); + }); }); \ No newline at end of file diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index d1b1175b3..363b13bb5 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -5,8 +5,8 @@ {{ super() }} @@ -77,7 +89,7 @@

Statement Search

- +
@@ -86,10 +98,13 @@

Statement Search

+ Subject
+ Subject
+ Subject
@@ -107,12 +122,27 @@

Statement Search

+ + +
+ +
+ + + + +
+
+ + + + From 1c7a01529a57ec0e16e0469dc446d4dde805a62c Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 26 Nov 2024 14:46:04 -0500 Subject: [PATCH 22/44] Fix for endpoint constraint on mesh/paper --- src/indra_cogex/client/queries.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/indra_cogex/client/queries.py b/src/indra_cogex/client/queries.py index a7b5ed81d..930524bc5 100644 --- a/src/indra_cogex/client/queries.py +++ b/src/indra_cogex/client/queries.py @@ -1225,7 +1225,7 @@ def get_statements( if paper_term: paper_param, paper_clause = generate_paper_clause(paper_term) else: - paper_clause = None + paper_clause = "" if mesh_term or paper_term: query = (f"MATCH (e:Evidence)-[:has_citation]->" @@ -1308,6 +1308,7 @@ def get_statements( logger.info(f"Running query with constraints: rel_type={rel_types}, " f"source={stmt_sources}, agent={agent}, other_agent={other_agent}, " + f"mesh = {mesh_all_term}" f"agent_role={agent_role}, other_role={other_role}, limit={limit}") logger.info(query) rels = client.query_tx(query, **params) From 22c2c92dcdca10dc763415720f32611f34e2e2cb Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 26 Nov 2024 15:00:14 -0500 Subject: [PATCH 23/44] Page refresh when back from stmts results --- .../apps/static/search/js/search.js | 21 +++++-------------- .../apps/templates/search/search_page.html | 2 +- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index 6a2851f6f..b664e4e16 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -7,16 +7,11 @@ document.addEventListener('DOMContentLoaded', function () { const otherAgentContainer = document.getElementById('other-agent-container'); const agentSelect = document.getElementById('agent-select'); const meshSelect = document.getElementById('mesh-select'); - const meshNameInput = document.getElementById('mesh-name'); - - - - const stmtTypes = JSON.parse(document.getElementById('stmt-types-json').textContent); console.log('stmt-types-json element:', stmtTypes); const selectElement = document.getElementById('choices-multiple-remove-button'); - const hiddenInput = document.getElementById('rel-type-hidden'); + const RelhiddenInput = document.getElementById('rel-type-hidden'); const groundAgentButton = document.getElementById('ground-agent-button'); const groundMeshButton = document.getElementById('ground-mesh-button'); @@ -89,7 +84,6 @@ document.addEventListener('DOMContentLoaded', function () { // Add 'active' class to the clicked button this.classList.add('active'); - // Determine role based on the clicked button const role = this.dataset.role; // Update agent and other agent roles based on the role @@ -125,7 +119,7 @@ document.addEventListener('DOMContentLoaded', function () { // Update the hidden input whenever selections change selectElement.addEventListener('change', function () { const selectedValues = Array.from(selectElement.selectedOptions).map(option => option.value); - hiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string + RelhiddenInput.value = JSON.stringify(selectedValues); // Store as a JSON string }); // Close the dropdown after selecting an option @@ -158,14 +152,12 @@ document.addEventListener('DOMContentLoaded', function () { return; } - // Filter results to include only those where result.term.db === "MESH" const meshResults = data.filter(result => result.term.db === "MESH"); if (meshResults.length === 0) { alert("No Mesh grounding results found."); return; } - // Populate dropdown with filtered results meshSelect.innerHTML = ''; const placeholderOption = document.createElement('option'); placeholderOption.textContent = 'Grounded Results...'; @@ -206,14 +198,11 @@ document.addEventListener('DOMContentLoaded', function () { }); window.addEventListener('pageshow', function () { - // Reload the page when navigating back - const agentNameInput = document.getElementById('agent-name'); - const agentSelect = document.getElementById('agent-select'); - const hiddenInput = document.getElementById('agent-tuple'); - // Reset input box and hidden input agentNameInput.value = ''; - hiddenInput.value = ''; + document.getElementById('agent-tuple').value = ''; + meshNameInput.value = ''; + document.getElementById('mesh-tuple').value = ''; // Clear the dropdown and add placeholder option agentSelect.innerHTML = ''; diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 363b13bb5..44854bf11 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -128,7 +128,7 @@

Statement Search

- +
From 0b1e2d9b3a75fca6992b7a5a9d71f994d08358b8 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 3 Dec 2024 13:09:18 -0500 Subject: [PATCH 24/44] Clickable example for MEK phosphorylate ERK --- src/indra_cogex/apps/search/search.py | 2 +- .../static/search/images/role_button1.png | Bin 0 -> 36227 bytes .../static/search/images/role_button2.png | Bin 0 -> 36168 bytes .../static/search/images/role_button3.png | Bin 0 -> 27409 bytes .../apps/static/search/js/search.js | 42 +++++++++++++++++- .../apps/templates/search/search_page.html | 10 ++++- 6 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/indra_cogex/apps/static/search/images/role_button1.png create mode 100644 src/indra_cogex/apps/static/search/images/role_button2.png create mode 100644 src/indra_cogex/apps/static/search/images/role_button3.png diff --git a/src/indra_cogex/apps/search/search.py b/src/indra_cogex/apps/search/search.py index 718a08951..b42389158 100644 --- a/src/indra_cogex/apps/search/search.py +++ b/src/indra_cogex/apps/search/search.py @@ -68,7 +68,7 @@ def search(): paper_term=paper_id, mesh_term=mesh_terms, limit=1000, - evidence_limit=2000, + evidence_limit=1000, return_evidence_counts=True ) return render_statements(stmts=statements, evidence_count=evidence_count) diff --git a/src/indra_cogex/apps/static/search/images/role_button1.png b/src/indra_cogex/apps/static/search/images/role_button1.png new file mode 100644 index 0000000000000000000000000000000000000000..4f51aba76249c71781323382bbb88d3a73b4fd05 GIT binary patch literal 36227 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 literal 0 HcmV?d00001 diff --git a/src/indra_cogex/apps/static/search/images/role_button2.png b/src/indra_cogex/apps/static/search/images/role_button2.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e94ad5ade6ae7805bfde27f791777a0405101a GIT binary patch literal 36168 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 B%W41s literal 0 HcmV?d00001 diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index b664e4e16..4908bdc11 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -9,12 +9,14 @@ document.addEventListener('DOMContentLoaded', function () { const meshSelect = document.getElementById('mesh-select'); const meshNameInput = document.getElementById('mesh-name'); const stmtTypes = JSON.parse(document.getElementById('stmt-types-json').textContent); - console.log('stmt-types-json element:', stmtTypes); const selectElement = document.getElementById('choices-multiple-remove-button'); const RelhiddenInput = document.getElementById('rel-type-hidden'); const groundAgentButton = document.getElementById('ground-agent-button'); const groundMeshButton = document.getElementById('ground-mesh-button'); + const exampleText = document.getElementById('clickable-text'); + + groundAgentButton.addEventListener('click', async function () { @@ -129,6 +131,44 @@ document.addEventListener('DOMContentLoaded', function () { + exampleText.addEventListener('click', function () { + // Update agent and other agent + agentNameInput.value = 'MEK'; + agentNameInput.readOnly = true; + otherAgentInput.value = 'ERK'; + otherAgentInput.readOnly = true; + + // Update roles (select the second button) + roleButtons.forEach(button => button.classList.remove('active')); + const subjectButton = document.getElementById('btn-subject'); + subjectButton.classList.add('active'); + agentRoleInput.value = 'subject'; + otherAgentRoleInput.value = 'object'; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; + // Update relationship type + + + console.log('Available options:', Array.from(selectElement.options).map(option => option.value)); + choices.setChoiceByValue('Phosphorylation'); + + + // Ensure the hidden input is updated with the selected value + const selectedValues = ['Phosphorylation']; + RelhiddenInput.value = JSON.stringify(selectedValues); // Convert to JSON string + + // Debugging logs + console.log('Updated RelhiddenInput:', RelhiddenInput.value); + console.log('Phosphorylation option selected.'); + + + // Log updates for debugging + console.log('Agent:', agentNameInput.value); + console.log('Other Agent:', otherAgentInput.value); + console.log('Agent Role:', agentRoleInput.value); + console.log('Other Agent Role:', otherAgentRoleInput.value); + console.log('Rel Types:', JSON.parse(RelhiddenInput.value)); + }); groundMeshButton.addEventListener('click', async function () { const meshText = meshNameInput.value.trim(); diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 44854bf11..3e490a044 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -83,6 +83,12 @@

Statement Search

Search for statements by specifying agent, relationship types, and roles.

+
+ +

+ MEK phosphorylates ERK +

+
@@ -98,10 +104,10 @@

Statement Search

- Subject + Subject
- Subject + Subject
Subject From 6ce5bba4a33fc2485f798ef7f6b291bc85368ab0 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 3 Dec 2024 15:09:22 -0500 Subject: [PATCH 25/44] Info box for Find Identifier button --- .../apps/static/search/js/search.js | 119 ++++++++++-------- .../apps/templates/search/search_page.html | 84 ++++++++++++- 2 files changed, 144 insertions(+), 59 deletions(-) diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index 4908bdc11..b3e61339f 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -16,53 +16,56 @@ document.addEventListener('DOMContentLoaded', function () { const exampleText = document.getElementById('clickable-text'); + const infoIcon = document.getElementById('info-icon'); + const tooltip = document.getElementById('tooltip'); - groundAgentButton.addEventListener('click', async function () { - const agentText = agentNameInput.value.trim(); - if (!agentText) { - alert("Please enter an agent name to ground."); - return; - } - try { - const response = await fetch('/search/gilda_ground', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ agent: agentText }), - }); - if (!response.ok) throw new Error('Failed to ground the agent.'); - const data = await response.json(); - if (!data || data.length === 0) { - alert("No grounding results found."); + groundAgentButton.addEventListener('click', async function () { + const agentText = agentNameInput.value.trim(); + if (!agentText) { + alert("Please enter an agent name to ground."); return; } - agentSelect.innerHTML = ''; - const placeholderOption = document.createElement('option'); - placeholderOption.textContent = 'Grounded Results...'; - placeholderOption.value = ''; - placeholderOption.hidden = true; // non-selectable - placeholderOption.selected = true; // Show as default selected - agentSelect.appendChild(placeholderOption); - data.forEach(result => { - const option = document.createElement('option'); - option.value = JSON.stringify({ - source_db: result.term.db, - source_id: result.term.id, + try { + const response = await fetch('/search/gilda_ground', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ agent: agentText }), }); - option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; - agentSelect.appendChild(option); - }); - agentNameInput.style.display = 'none'; - agentSelect.style.display = 'block'; - } catch (error) { - console.error("Error grounding agent:", error); - alert("An error occurred while grounding the agent."); - } - }); + if (!response.ok) throw new Error('Failed to ground the agent.'); + const data = await response.json(); + + if (!data || data.length === 0) { + alert("No grounding results found."); + return; + } + agentSelect.innerHTML = ''; + const placeholderOption = document.createElement('option'); + placeholderOption.textContent = 'Grounded Results...'; + placeholderOption.value = ''; + placeholderOption.hidden = true; // non-selectable + placeholderOption.selected = true; // Show as default selected + agentSelect.appendChild(placeholderOption); + data.forEach(result => { + const option = document.createElement('option'); + option.value = JSON.stringify({ + source_db: result.term.db, + source_id: result.term.id, + }); + option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; + agentSelect.appendChild(option); + }); + agentNameInput.style.display = 'none'; + agentSelect.style.display = 'block'; + } catch (error) { + console.error("Error grounding agent:", error); + alert("An error occurred while grounding the agent."); + } + }); agentSelect.addEventListener('change', function () { const selectedOption = agentSelect.options[agentSelect.selectedIndex]; @@ -149,25 +152,13 @@ document.addEventListener('DOMContentLoaded', function () { // Update relationship type - console.log('Available options:', Array.from(selectElement.options).map(option => option.value)); - choices.setChoiceByValue('Phosphorylation'); + choices.setChoiceByValue('Phosphorylation'); // Ensure the hidden input is updated with the selected value - const selectedValues = ['Phosphorylation']; - RelhiddenInput.value = JSON.stringify(selectedValues); // Convert to JSON string - - // Debugging logs - console.log('Updated RelhiddenInput:', RelhiddenInput.value); - console.log('Phosphorylation option selected.'); - + const selectedValues = ['Phosphorylation']; + RelhiddenInput.value = JSON.stringify(selectedValues); - // Log updates for debugging - console.log('Agent:', agentNameInput.value); - console.log('Other Agent:', otherAgentInput.value); - console.log('Agent Role:', agentRoleInput.value); - console.log('Other Agent Role:', otherAgentRoleInput.value); - console.log('Rel Types:', JSON.parse(RelhiddenInput.value)); }); groundMeshButton.addEventListener('click', async function () { @@ -237,6 +228,24 @@ document.addEventListener('DOMContentLoaded', function () { } }); + + // Show/hide tooltip when the icon is clicked + infoIcon.addEventListener('click', function (event) { + event.stopPropagation(); // Prevent clicks from propagating + if (tooltip.style.display === 'none' || tooltip.style.display === '') { + tooltip.style.display = 'block'; + } else { + tooltip.style.display = 'none'; + } + }); + + // Hide the tooltip when clicking outside + document.addEventListener('click', function (event) { + if (!infoIcon.contains(event.target) && !tooltip.contains(event.target)) { + tooltip.style.display = 'none'; + } + }); + window.addEventListener('pageshow', function () { // Reset input box and hidden input agentNameInput.value = ''; diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 3e490a044..3f194d061 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -71,6 +71,64 @@ #ground-mesh-button { width: 200px; } + + /* Circle for the question mark */ + .info-icon { + font-size: 12px; + color: #fff; + background: #007bff; + border-radius: 50%; + width: 18px; + height: 18px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + position: relative; + } + + /* Tooltip box */ + .tooltip-box { + display: none; + position: absolute; + bottom: 19px; /* Increase this value to move the box down */ + right: -100px; /* horizontal alignment */ + background: #f8f9fa; + color: #333; /* Ensure text is visible */ + border: 1px solid #ddd; + border-radius: 5px; + padding: 10px; + font-size: 14px; + width: 240px; + z-index: 1000; + } + + /* Arrow for tooltip */ + .tooltip-box::before { + content: ''; + position: absolute; + top: -6px; /* Adjust arrow to align with the mark */ + left: 20px; + border-width: 6px; + border-style: solid; + border-color: transparent transparent #ddd transparent; + } + + .tooltip-box::after { + content: ''; + position: absolute; + top: -5px; + left: 20px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #f8f9fa transparent; + } + + /* Keep tooltip visible on hover */ + .info-icon:hover + .tooltip-box, + .tooltip-box:hover { + display: block; + } {{ super() }} @@ -92,10 +150,19 @@

Statement Search

-
+
- +
@@ -132,11 +199,20 @@

Statement Search

-
+
- +
From c8e1f788708d156c721ccd07eef1b339b862a79b Mon Sep 17 00:00:00 2001 From: haohangyan Date: Fri, 6 Dec 2024 14:02:25 -0500 Subject: [PATCH 26/44] Fixed the clickable text area being too big and some wording --- src/indra_cogex/apps/templates/search/search_page.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 3f194d061..4251cf143 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -142,8 +142,8 @@

Statement Search

- -

+ +

MEK phosphorylates ERK

@@ -198,7 +198,7 @@

Statement Search

- +
From 688517f2d04538b41fa5b038af8e73ecfb0901b8 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 10 Dec 2024 11:42:32 -0500 Subject: [PATCH 27/44] Additional box for agent intput after pressing grounding button --- src/indra_cogex/apps/static/search/js/search.js | 13 +++++++++---- .../apps/templates/search/search_page.html | 11 +++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index b3e61339f..08dae4525 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -18,6 +18,8 @@ document.addEventListener('DOMContentLoaded', function () { const infoIcon = document.getElementById('info-icon'); const tooltip = document.getElementById('tooltip'); + const tooltipLink = document.getElementById('tooltip-link'); + @@ -59,7 +61,9 @@ document.addEventListener('DOMContentLoaded', function () { option.textContent = `${result.term.entry_name} (${result.term.db}, Score: ${result.score.toFixed(2)})`; agentSelect.appendChild(option); }); - agentNameInput.style.display = 'none'; +// const fixedWidth = "300px"; +// agentNameInput.style.width = fixedWidth; +// agentSelect.style.width = fixedWidth; agentSelect.style.display = 'block'; } catch (error) { console.error("Error grounding agent:", error); @@ -72,9 +76,6 @@ document.addEventListener('DOMContentLoaded', function () { if (selectedOption) { const { source_db, source_id } = JSON.parse(selectedOption.value); - // Update the display text in the input box - agentNameInput.value = selectedOption.textContent; - agentNameInput.readOnly = true; document.getElementById('agent-tuple').value = JSON.stringify([source_db, source_id]); } @@ -239,6 +240,10 @@ document.addEventListener('DOMContentLoaded', function () { } }); + tooltipLink.addEventListener('click', function (event) { + event.stopPropagation(); // Stops the event from propagating to the button + }); + // Hide the tooltip when clicking outside document.addEventListener('click', function (event) { if (!infoIcon.contains(event.target) && !tooltip.contains(event.target)) { diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 4251cf143..67ff33e64 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -151,15 +151,18 @@

Statement Search

- - - From 5b6dd788c295477282532a6dffa40dfb8afd7642 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 10 Dec 2024 12:04:15 -0500 Subject: [PATCH 28/44] Added and modified role button text --- .../apps/templates/search/search_page.html | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 67ff33e64..dd5ac774b 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -129,6 +129,28 @@ .tooltip-box:hover { display: block; } + + .role-buttons-container { + display: flex; + justify-content: space-around; /* Spread buttons evenly */ + width: 100%; + } + + .btn-role { + display: flex; + width: 120px; + height: 90px; + background-color: #fff; + } + + .btn-role img { + max-width: 80%; + } + + .role-text { + font-size: 14px; + color: #333; + } {{ super() }} @@ -171,16 +193,19 @@

Statement Search

- +
+
+ Either +
Subject/Object
+
Subject +
Subject
- Subject -
-
- Subject + Object +
Object
From 0baf3d82ceaf90cfd544e435af825e501e3ff3e5 Mon Sep 17 00:00:00 2001 From: haohangyan Date: Tue, 10 Dec 2024 13:35:52 -0500 Subject: [PATCH 29/44] Fixed tooltip and button overlapping problem and showing the other agent for one of the role button --- .../apps/static/search/js/search.js | 19 +++++++++----- .../apps/templates/search/search_page.html | 25 +++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/indra_cogex/apps/static/search/js/search.js b/src/indra_cogex/apps/static/search/js/search.js index 08dae4525..abd8eece8 100644 --- a/src/indra_cogex/apps/static/search/js/search.js +++ b/src/indra_cogex/apps/static/search/js/search.js @@ -18,7 +18,7 @@ document.addEventListener('DOMContentLoaded', function () { const infoIcon = document.getElementById('info-icon'); const tooltip = document.getElementById('tooltip'); - const tooltipLink = document.getElementById('tooltip-link'); +// const tooltipLink = document.getElementById('tooltip-link'); @@ -26,6 +26,9 @@ document.addEventListener('DOMContentLoaded', function () { groundAgentButton.addEventListener('click', async function () { const agentText = agentNameInput.value.trim(); + if (event.target.closest('.tooltip-box')) { + return; + } if (!agentText) { alert("Please enter an agent name to ground."); return; @@ -106,6 +109,8 @@ document.addEventListener('DOMContentLoaded', function () { } else { agentRoleInput.value = ''; otherAgentRoleInput.value = ''; + otherAgentContainer.style.display = 'block'; + otherAgentContainer.style.marginTop = '10px'; } }); @@ -137,7 +142,7 @@ document.addEventListener('DOMContentLoaded', function () { exampleText.addEventListener('click', function () { // Update agent and other agent - agentNameInput.value = 'MEK'; + agentNameInput.value = 'MEK'; agentNameInput.readOnly = true; otherAgentInput.value = 'ERK'; otherAgentInput.readOnly = true; @@ -164,6 +169,9 @@ document.addEventListener('DOMContentLoaded', function () { groundMeshButton.addEventListener('click', async function () { const meshText = meshNameInput.value.trim(); + if (event.target.closest('.tooltip-box')) { + return; + } if (!meshText) { alert("Please enter a Mesh name to ground."); return; @@ -209,7 +217,6 @@ document.addEventListener('DOMContentLoaded', function () { }); // Show the dropdown - meshNameInput.style.display = 'none'; meshSelect.style.display = 'block'; } catch (error) { console.error("Error grounding Mesh:", error); @@ -240,9 +247,9 @@ document.addEventListener('DOMContentLoaded', function () { } }); - tooltipLink.addEventListener('click', function (event) { - event.stopPropagation(); // Stops the event from propagating to the button - }); +// tooltipLink.addEventListener('click', function (event) { +// event.stopPropagation(); // Stops the event from propagating to the button +// }); // Hide the tooltip when clicking outside document.addEventListener('click', function (event) { diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index dd5ac774b..0f10fabf8 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -143,14 +143,14 @@ background-color: #fff; } - .btn-role img { - max-width: 80%; - } - - .role-text { - font-size: 14px; - color: #333; - } + .btn-role img { + max-width: 80%; + } + + .role-text { + font-size: 14px; + color: #333; + } {{ super() }} @@ -227,11 +227,14 @@

Statement Search

-
+
- -
+
@@ -264,7 +280,8 @@

Statement Search

@@ -292,6 +309,7 @@

Statement Search

+ From bdb61132fa628de55790f69ca36b5be6777d895c Mon Sep 17 00:00:00 2001 From: haohangyan Date: Mon, 16 Dec 2024 15:30:34 -0500 Subject: [PATCH 33/44] New image for button and add dots after labels --- .../static/search/images/role_button1.png | Bin 36227 -> 20348 bytes .../static/search/images/role_button2.png | Bin 36168 -> 20490 bytes .../static/search/images/role_button3.png | Bin 27409 -> 26141 bytes .../apps/templates/search/search_page.html | 17 ++++++++++++++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/indra_cogex/apps/static/search/images/role_button1.png b/src/indra_cogex/apps/static/search/images/role_button1.png index 4f51aba76249c71781323382bbb88d3a73b4fd05..82b6b3eb2e1fd48155e3de3bdd103e2eea46f2d1 100644 GIT binary patch literal 20348 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 diff --git a/src/indra_cogex/apps/static/search/images/role_button2.png b/src/indra_cogex/apps/static/search/images/role_button2.png index e6e94ad5ade6ae7805bfde27f791777a0405101a..073abb950457c5fa18c64b2e6f54a44e42ed5b92 100644 GIT binary patch literal 20490 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 MJ$`_aF@5&`0YTR9oB#j- literal 36168 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 literal 27409 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 B%W41s diff --git a/src/indra_cogex/apps/templates/search/search_page.html b/src/indra_cogex/apps/templates/search/search_page.html index 498fafe53..c2374d041 100644 --- a/src/indra_cogex/apps/templates/search/search_page.html +++ b/src/indra_cogex/apps/templates/search/search_page.html @@ -44,7 +44,20 @@ flex-direction: column; margin-bottom: 20px; } - + .blue-dot { + width: 12px; + height: 12px; + background-color: #6fa8dcff; + border-radius: 50%; + display: inline-block; + } + .orange-dot { + width: 12px; + height: 12px; + background-color: #ff9900ff; + border-radius: 50%; + display: inline-block; + } .choices__list--dropdown { max-height: 300px; overflow-y: auto; @@ -187,6 +200,7 @@

Statement Search