diff --git a/docs/source/index.rst b/docs/source/index.rst index 3d917407..14f2e4d7 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -30,6 +30,7 @@ workflow. reference/settings-example reference/local-settings reference/deployment + reference/migration Indices and tables diff --git a/docs/source/reference/migration.rst b/docs/source/reference/migration.rst new file mode 100644 index 00000000..32640246 --- /dev/null +++ b/docs/source/reference/migration.rst @@ -0,0 +1,30 @@ +.. _migration_reference: + +Migration +========= + +Migrating to v0.3.0 +------------------- + +v0.3.0 introduces a fresh styling for the DGPF portal. You can migrate to the +new design by changing the following in your own `settings.py`. + +.. code-block:: python + + # Changing base_template from v2 to v3 + BASE_TEMPLATES = 'globus-portal-framework/v3/' + +You can overwrite the existing templates for the v3 version by replacing the template +files (.html) and styling (.css) in `templates/globus-portal-framework/v3/` and +`static/globus-portal-framework/v3/` respectively. + +.. note:: + + In case you want to revert back to the `v2` styling, simply undo the + `BASE_TEMPLATES` value in your `settings.py`. + +.. warning:: + + Breadcrumbs have been removed as part of the default `v3` styling, but users + are encouraged to add their own styling (if their use cases require the breadcrumb) and + uncomment the breadcrumb code segment in `templates/globus-portal-framework/v3/base.html`. \ No newline at end of file diff --git a/globus_portal_framework/static/globus-portal-framework/images/bg-header.svg b/globus_portal_framework/static/globus-portal-framework/images/bg-header.svg new file mode 100644 index 00000000..87c59140 --- /dev/null +++ b/globus_portal_framework/static/globus-portal-framework/images/bg-header.svg @@ -0,0 +1,60 @@ + + +AAAsaGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAACxCanVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46dXVpZDpmOTk5NjEwZi0zNTllLTRhMTItYTFmZC0zMTA1MDM3NzUxMGIAAAABqGp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAMpqdW1iAAAAJmp1bWRjYm9yABEAEIAAAKoAOJtxA2MycGEuYWN0aW9ucwAAAACcY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmtjMnBhLmVkaXRlZG1zb2Z0d2FyZUFnZW50bUFkb2JlIEZpcmVmbHlxZGlnaXRhbFNvdXJjZVR5cGV4Rmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAACtanVtYgAAAChqdW1kY2JvcgARABCAAACqADibcQNjMnBhLmhhc2guZGF0YQAAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQGHZmxlbmd0aBk7OGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggf2nFy9KWGdiwIrqZC3ttL07KvPuRr1y6P0vDEiI+WVtjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJGp1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0AAAAB32Nib3KoaGRjOnRpdGxlb0dlbmVyYXRlZCBJbWFnZWlkYzpmb3JtYXRtaW1hZ2Uvc3ZnK3htbGppbnN0YW5jZUlEeCx4bXA6aWlkOmUyY2Q1ZTFiLWFkYzItNDk5MS1iYmI2LTU0ZjQ2NDc1MDBjZm9jbGFpbV9nZW5lcmF0b3J4NkFkb2JlX0lsbHVzdHJhdG9yLzI4LjAgYWRvYmVfYzJwYS8wLjcuNiBjMnBhLXJzLzAuMjUuMnRjbGFpbV9nZW5lcmF0b3JfaW5mb4G/ZG5hbWVxQWRvYmUgSWxsdXN0cmF0b3JndmVyc2lvbmQyOC4w/2lzaWduYXR1cmV4GXNlbGYjanVtYmY9YzJwYS5zaWduYXR1cmVqYXNzZXJ0aW9uc4KiY3VybHgnc2VsZiNqdW1iZj1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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/globus_portal_framework/static/globus-portal-framework/images/login.svg b/globus_portal_framework/static/globus-portal-framework/images/login.svg new file mode 100644 index 00000000..8f13f393 --- /dev/null +++ b/globus_portal_framework/static/globus-portal-framework/images/login.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/globus_portal_framework/static/globus-portal-framework/images/logout.svg b/globus_portal_framework/static/globus-portal-framework/images/logout.svg new file mode 100644 index 00000000..2fd33295 --- /dev/null +++ b/globus_portal_framework/static/globus-portal-framework/images/logout.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/globus_portal_framework/static/globus-portal-framework/v3/search.css b/globus_portal_framework/static/globus-portal-framework/v3/search.css new file mode 100644 index 00000000..6ee51080 --- /dev/null +++ b/globus_portal_framework/static/globus-portal-framework/v3/search.css @@ -0,0 +1,321 @@ +/* General */ +html, +body { + font-family: 'IBM Plex Sans', sans-serif; + font-weight: 300; + font-size: 14px; + color: #333; +} + +.badge-primary { + background-color: #337ab7; +} + + +/************************* + Main +*************************/ +/* search bar */ + +#search-form { + display: flex; + flex-direction: row; + border: none; +} + +#search-form #search-input, +#search-form #search-btn { + font-size: 17px; + height: 42px; + text-indent: 10px; + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; +} + +#search-form #search-btn { + color: #22bbff; + background-color: #00264c; +} + +.title { + color: white; + font-weight: bold; + font-size: xx-large; +} + +#search-form #search-input { + flex-grow: 2; + margin-right: -42px; + border: none; + border-style: solid; + border-color: #22bbff; + border-width: 1px; + border-radius: 10px; +} + +#results #search-result .result-item em { + font-weight: bold; +} + +/* Media Queries */ +@media (min-width: 768px) { + #search-form .input-group-btn { + display: none; + } + + #search-form #search-input { + border-radius: 10px; + } +} + +/* sidebar */ +#sidebar .card { + border-style: solid; + border-color: #cccccc; + border-width: 1px; +} + +#sidebar .card-body { + color: #222222; +} + +#sidebar .card-header { + color: #00264c; + font-size: 18px; + background-color: #eaeaea; + border: 0; +} + +#sidebar .badge-secondary { + background-color: #777777; + font-size: 12px; +} + +legend { + font-size: 16px; +} + +fieldset.facet-fieldset legend { + border-bottom: 1px solid #ccc; +} + +.fieldset-container { + max-height: 300px; +} + +.navbar { + padding: 0px; + margin: 0px; + height: 116px; +} + +.navbar-brand { + height: 116px; + padding-right: 0px; + padding-left: 0px; + padding-top: 15px; + padding-bottom: 10px; + margin: 0px; + margin-left: 50px; +} + +.top-nav { + background-color: #00264c; +} + +.nav-link-search { + width: 100px; + padding: 0px; + margin: 0px; + border-radius: 0; +} + +.login { + height: 116px; + background-color: #004177; + color: white; +} + +.navbar-image { + height: 100%; + color: green; +} + +#navbarSupportedContent { + height: 86px; +} + +.inverse { + filter: invert(100%); +} + +.subnav { + background-image: url("/static/globus-portal-framework/images/bg-header.svg"); + background-repeat: repeat-x; + background-size: cover; + height: 120px; + position: relative; +} + +.subnav-button { + color: white; + margin-bottom: 0; + margin-top: 50%; +} + +.active { + color: #004177 !important; + background-color: white !important; + font-size: 20px; + box-shadow: none !important; +} + +.squared { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-bottom: 0; + background-color: #00264c; + font-size: 20px; + margin-left: 10px; +} + +.tag { + color: white; + font-size: 30px; + height: 29px; + padding-left: 50px; + padding-top: 20px; + position: relative; + top: 35px; +} + +.nav-tabs { + height: 120px; + border-bottom: 0; + padding-bottom: 0; +} + +#globe { + height: 50px; + width: 50px; +} + +.list-group-item { + font-size: 16px; + color: #222222; +} + +#results-header { + color: #00264c; + font-size: 28px; +} + +#datasets-header { + color: #777777; + font-size: 16px; +} + +#about { + font-size: 16px; +} + +#content .card { + border: 0; + padding-bottom: 25px; +} + +#content .card-header { + font-size: 18px; + color: #0076bf !important; + background-color: white; + border-left-color: #22bbff; + border-left-width: 3px; + border-bottom-color: #cccccc; + border-bottom-width: 1px; + border-right: 0; + border-top: 0; + border-style: solid; +} + +#content .card-header a { + text-decoration: none; + color: #0076bf; +} + +#content .card-body { + border-left-width: 3px; + border-left-color: #cccccc; + border-left-style: solid; + border-right-width: 0px; + border-top-width: 0px; + border-bottom-width: 0px; + padding-bottom: 0; +} + +#content .card-body th { + color: #777777; + font-size: 14px; +} + +#content .card-body td { + color: #222222; + font-size: 14px; +} + +.table { + color: #222222; + font-size: 16px; +} + +.fa-mag-glass { + content: ''; + background: url("/static/globus-portal-framework/images/mag_glass.svg"); + width: 32px; + height: 32px; + display: inline-block; +} + +.borderless td, +.borderless th { + border: none; +} + +#logo { + height: 100%; +} + +#caption-top { + caption-side: top; +} + +#details .card-header { + font-size: 18px; + color: #0076bf !important; + background-color: white; + border-left-color: #22bbff; + border-left-width: 3px; + border-bottom-color: #cccccc; + border-bottom-width: 1px; + border-right: 0; + border-top: 0; + border-style: solid; +} + +#details { + border-top: 0; +} + +#details .card-body { + border-left-width: 3px; + border-left-color: #cccccc; + border-left-style: solid; + border-right-width: 0px; + border-top-width: 0px; + border-bottom-width: 0px; + padding-bottom: 0; +} + +#details .card { + border: 0; + padding-bottom: 25px; +} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/allowed-groups.html b/globus_portal_framework/templates/globus-portal-framework/v3/allowed-groups.html new file mode 100644 index 00000000..ad484a68 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/allowed-groups.html @@ -0,0 +1,59 @@ +{%extends "globus-portal-framework/v3/base.html"%} + +{% load static %} +{% load index_template %} + +{%block headextras%} + +{% endblock %} + +{%block title%}Request Groups Access{%endblock%} + +{%block body%} + +
+ +
+ {% index_template 'components/messages.html' as it_mess %} + {% include it_mess %} +
+ +
+
+ You may request access to the following groups +
+
+
    + {% block allowed_groups_list %} + {% for group in allowed_groups|dictsort:'name' %} +
  • + {{group.name}} + {% if group.is_member == True %} + {% block is_member_of_group %} + You are a member + {% endblock %} + {% else %} + {% block is_not_member_of_group %} + Request Access + {% endblock %} + {% endif %} +
  • + {% empty %} + {% block no_group_configured %} +
  • No allowed groups configured, this portal does not restrict which users can login.
  • + {% endblock %} + {% endfor %} + {% endblock %} +
+ {% if not request.user.is_authenticated %} +

+ If you are already a member of a group above, you can Login Now +

+ {% endif %} +
+
+ +
+{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/base.html b/globus_portal_framework/templates/globus-portal-framework/v3/base.html new file mode 100644 index 00000000..fd9cbdb7 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/base.html @@ -0,0 +1,73 @@ +{% load static index_template is_active %} + + + + + + + + + + {% block base_styling %} + + + + + + + + + + {% endblock %} + + {% block search_head %}{% endblock %} + + {# Extras #} + {%block headextras%} + {% index_template 'globus-portal-framework/v3/components/base-head-extras.html' as bhe %} + {% include bhe %} + {%endblock%} + + {%block title%}{%endblock%} + + + + + + {% block base_nav %} + {% index_template 'globus-portal-framework/v3/components/base-nav.html' as base_nav %} + {% include base_nav %} + {% endblock %} + + + {% block breadcrumbs %} + + {% endblock %} + + {% block main_nav %}{% endblock %} + + {%block base_messages %} +
+ {% index_template 'globus-portal-framework/v3/components/messages.html' as it_messages %} + {% include it_messages %} +
+ {%endblock%} + + + {%block body%} + {%endblock%} + + + {% index_template 'globus-portal-framework/v3/components/footer.html' as it_footer %} + {% include it_footer %} + + + \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/base-head-extras.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/base-head-extras.html new file mode 100644 index 00000000..6eea223d --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/base-head-extras.html @@ -0,0 +1,4 @@ +{% comment %} +If you have anything else you would like to include in the html +section, you can specify it here. +{% endcomment %} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/base-nav.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/base-nav.html new file mode 100644 index 00000000..4e2917b6 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/base-nav.html @@ -0,0 +1,37 @@ +{% load static %} + + \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/copy-to-clipboard.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/copy-to-clipboard.html new file mode 100644 index 00000000..9b07ad20 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/copy-to-clipboard.html @@ -0,0 +1,19 @@ +
+
+
Copy to Clipboard
+ +
+
\ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-dc-metadata.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-dc-metadata.html new file mode 100644 index 00000000..74d9b61f --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-dc-metadata.html @@ -0,0 +1,62 @@ + + + {% block detail_overview_datacite %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% endblock %} + +
Creators + {% for creator in dc.creators %} + {{creator.creatorName}}
+ {% endfor %} +
Contributors + {% for contributor in dc.contributors %} + {{contributor.contributorName}}
+ {% endfor %} +
Dates + {% for d in dc.dates %} + {{d.dateType}}: {{d.date|date}}
+ {% endfor %} +
Formats + {% for format in dc.formats %} + {{format}}
+ {% endfor %} +
Publication Year{{dc.publicationYear}}
Publisher{{dc.publisher}}
Resource Type{{dc.resourceType.resourceType}}
Subjects + {% for sub in dc.subjects %} + {{sub.subject}}
+ {% endfor %} +
Version{{dc.version}}
\ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-general-metadata.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-general-metadata.html new file mode 100644 index 00000000..5cb08d23 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-general-metadata.html @@ -0,0 +1,16 @@ + +{% block detail_general_metadata %} +{% for key, value in project_metadata.items %} +
+ +

{{key}}

+
+ + + + + +
{{value}}
+ +{% endfor %} +{% endblock %} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-nav.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-nav.html new file mode 100644 index 00000000..4d82535c --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/detail-nav.html @@ -0,0 +1,61 @@ +{% comment %} + +Requires the following fields: +* https_url +* title +* globus_app_link +{% endcomment %} + +
+ +
\ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/footer.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/footer.html new file mode 100644 index 00000000..1a29d72a --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/footer.html @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/message.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/message.html new file mode 100644 index 00000000..9a0b8d03 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/message.html @@ -0,0 +1,16 @@ +{% comment %} +Note Django Messages vs Bootstrap Alerts: +https://docs.djangoproject.com/en/2.0/ref/contrib/messages/#django.contrib.messages.storage.base.Message +https://getbootstrap.com/docs/4.0/components/alerts/ +{% endcomment %} + \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/messages.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/messages.html new file mode 100644 index 00000000..55af61ef --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/messages.html @@ -0,0 +1,11 @@ +{% load index_template %} +{% if messages %} +{% for message in messages %} +
+
+ {% index_template "globus-portal-framework/v3/components/message.html" as it_message %} + {% include it_message %} +
+
+{% endfor %} +{% endif %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/search-facets.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-facets.html new file mode 100644 index 00000000..de5ccdb0 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-facets.html @@ -0,0 +1,37 @@ +{% load static %} + +{% for facet in search.facets %} +
+ {{facet.name}} +
+ {% if facet.buckets %} + {% for field in facet.buckets %} +
+ + {% if field.filter_type == 'year' %} + {{field.datetime|date:'Y'}} + {% elif field.filter_type == 'month' %} + {{field.datetime|date:'F Y'}} + {% elif field.filter_type == 'day' %} + {{field.datetime|date:'M d Y'}} + {% elif field.filter_type in 'hour minute second' %} + {{field.datetime|date:'M d Y H:i:s T'}} + {% else %} + {{field.value}} + {% endif %} + ({{field.count}}) +
+ {% empty %} +
No Data
+ {% endfor %} + {% elif facet.value %} +
+ {% if facet.type == 'avg' %} Average {% elif facet.type == 'sum' %} Sum {% endif %} + ({{facet.value}}) +
+ {% endif %} +
+
+{% endfor %} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/search-nav.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-nav.html new file mode 100644 index 00000000..09511831 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-nav.html @@ -0,0 +1,14 @@ +{% load static is_active %} + + \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/components/search-results.html b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-results.html new file mode 100644 index 00000000..71aff494 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/components/search-results.html @@ -0,0 +1,49 @@ +{% load static %} + +{% block headextras %} + +{% endblock %} + +
+
+

Results

+ {% if search.total %} +
{{search.total}} datasets found
+ {% endif %} +
+
+ +
+ {% for result in search.search_results %} +
+ +
+ + + + {% for name in result.all.0.keys|slice:"0:5" %} + + {% endfor %} + + + {% for value in result.all.0.values|slice:"0:2" %} + + {% endfor %} + + +
{{name}}
Present
+

Override this template by creating the following file:

+
+
+                templates/globus-portal-framework/v/components/search-results.html
+              
+
+
+
+ {% endfor %} +
diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/detail-base.html b/globus_portal_framework/templates/globus-portal-framework/v3/detail-base.html new file mode 100644 index 00000000..5c0e552e --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/detail-base.html @@ -0,0 +1,62 @@ +{%extends "globus-portal-framework/v3/base.html"%} +{% load static index_template %} + +{%block title%}Detail{%endblock%} + +{% block headextras %} +{% block detail_head %} + + + + +{% endblock %} +{{block.super}} +{% endblock %} + +{% block breadcrumb_items %} +{{block.super}} + +{% endblock %} + +{% block body %} + +{% block detail_back_to_search %} +{% if request.session.search %} +
+
+ +
+
+{% endif %} +{% endblock %} + +{% block body_content %} +
+
+
+ {% block detail_nav %} + {% index_template 'globus-portal-framework/v3/components/detail-nav.html' as it_detail_nav %} + {% include it_detail_nav %} + {% endblock %} +
+ {% block copy_to_clipboard %} + {% include 'globus-portal-framework/v3/components/copy-to-clipboard.html' %} + {% endblock %} +
+ {%block detail_body %} + {%endblock%} +
+
+
+
+
+{% endblock %} + + +{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/detail-overview.html b/globus_portal_framework/templates/globus-portal-framework/v3/detail-overview.html new file mode 100644 index 00000000..2663f38c --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/detail-overview.html @@ -0,0 +1,51 @@ +{% extends 'globus-portal-framework/v3/detail-base.html' %} + + +{% block breadcrumb_items %} + + + +{% endblock %} + + +{% block detail_body %} + +
+
+ + {% block detail_search_content %} + {% if result.dc or result.files or result.project_metadata %} +

General Info

+ {% with all|first as result %} +
+
+ {% include 'globus-portal-framework/v3/components/detail-dc-metadata.html' %} +
+
+ {% include 'globus-portal-framework/v3/components/detail-general-metadata.html' %} +
+
+ {% endwith %} + + {% else %} + +

+ This the default built-in detail page for Globus Portal Framework. + Create a file named templates/globus-portal-framework/v3/components/detail-overview.html + to override this template with your own, so you can customize this page to your liking. +

+ Also, checkout the docs on 'fields' for Globus Portal Framework, which will tell you + how to configure the Transfer/Download/Link buttons above. +

+

Default Detail Page

+ {% with all|first as project_metadata %} + {% include 'globus-portal-framework/v3/components/detail-general-metadata.html' %} + {% endwith %} + {% endif %} + {% endblock %} + + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/detail-preview.html b/globus_portal_framework/templates/globus-portal-framework/v3/detail-preview.html new file mode 100644 index 00000000..a311a7bb --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/detail-preview.html @@ -0,0 +1,43 @@ +{%extends "detail-base.html"%} + +{% load index_template %} + +{# Silence regular messages so we can display them closer to preview #} +{% block detail_messages %} +{% endblock %} + +{% block detail_body %} + +
+
+ +
+
{{title|default:'Result'}} -- Preview of initial {{globus_portal_framework.preview_data_size}}
+
+ {% if globus_http_access == 'disabled' %} + + {% endif %} + {% if not request.user.is_authenticated %} + + {% else %} +
{{preview_data|default:'No Data to Display'}}
+ {% endif %} +
+ +
+ +
+
+{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/detail-transfer.html b/globus_portal_framework/templates/globus-portal-framework/v3/detail-transfer.html new file mode 100644 index 00000000..0483b36f --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/detail-transfer.html @@ -0,0 +1,62 @@ +{%extends "detail-base.html"%} +{% load index_template %} + + +{% block detail_body %} + +{# Silence regular messages so we can display them closer to the transfer button #} +{% block detail_messages %} +{% endblock %} + +
+
+ + {% if transfer_link %} + + {% endif %} + +
+
{{title|default:'Result'}}
+
+ {% for man in remote_file_manifest %} +
Filename:

{{man.filename}}

+
Length:

{{man.length}}

+
URL:

{{man.url}}

+
MD5:

{{man.md5}}

+
SHA256:

{{man.sha256}}

+
+ {% empty %} +
No files have been listed for this search entry.
+ {% endfor %} +
+ + +
+
+
+{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/index-selection.html b/globus_portal_framework/templates/globus-portal-framework/v3/index-selection.html new file mode 100644 index 00000000..8198e340 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/index-selection.html @@ -0,0 +1,55 @@ +{%extends "globus-portal-framework/v3/base.html"%} +{% load static %} + +{%block headextras%} + +{% endblock %} + + +{% block body %} + +
+
+

{{project_title}}

+
+
+ +{% block list_indexes %} +{% for index, index_data in search_indexes.items %} +
+
+
+ + {% if index_data.test_index %} + + {% endif %} + + {% block allowed_groups %} + {% if forloop.first and allowed_groups %} + + {% endif %} + {% endblock %} + + {% block index %} +

+ {{index_data.name|default:index}} +

+ {% endblock %} +
+
+
+{% endfor %} +{% endblock %} + +{% endblock %} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/landing-page.html b/globus_portal_framework/templates/globus-portal-framework/v3/landing-page.html new file mode 100644 index 00000000..6609d425 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/landing-page.html @@ -0,0 +1,52 @@ +{%extends "globus-portal-framework/v3/base.html"%} +{% load static is_active %} + +{%block headextras%} + +{% endblock %} + +{% block breadcrumb_items %} + + +{% endblock %} + + +{% block body %} + +
+
+

{{project_title}}

+
+
+ + +
+
+
+ +
+

Project Foo

+

+ Here is a good place to talk about your project. More to come! +

+

Continue Reading about Terra

+
+
+

Globus Search

+

+ Globus Search is a service which allows users to store data with visibility + controls based on Globus Identities and Groups. Data may be public, or only + visible to certain sets of users. The primary features of the service are + APIs for storing and managing data, and visibility-filtered query APIs. +

+

+ + Continue reading about Globus Search + +

+
+
+
+
+ +{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/search-about.html b/globus_portal_framework/templates/globus-portal-framework/v3/search-about.html new file mode 100644 index 00000000..2943eef9 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/search-about.html @@ -0,0 +1,43 @@ +{% extends "globus-portal-framework/v3/search-base.html" %} +{% load is_active index_template is_active %} + +{% block breadcrumb_items %} +{{block.super}} + +{% endblock %} + +{% block body %} + +
+
+

{{project_title}}

+
+
+ + +
+
+
+ +
+

About

+ {% block landing_page_about %} + Add something about your project here, in the landing_page_about block! + {% endblock %} +
+
+

Data Access

+ {% block landing_page_data_access %} +

Search results are limited to members of the {{project_title}} Group.

+ + Request Access to {{project_title}} Group + + {% endblock %} +
+
+
+
+ +{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/search-base.html b/globus_portal_framework/templates/globus-portal-framework/v3/search-base.html new file mode 100644 index 00000000..f5e62104 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/search-base.html @@ -0,0 +1,20 @@ +{%extends "globus-portal-framework/v3/base.html"%} +{% load static index_template is_active %} + +{%block title%}Search{%endblock%} + +{% block headextras %} +{% block search_head %} + +{% endblock %} +{{block.super}} +{% endblock %} + +{% block main_nav %} + {% block search_nav %} + {% index_template 'globus-portal-framework/v3/components/search-nav.html' as search_nav %} + {% include search_nav %} + {% endblock %} +{% endblock %} + +{% block body %}{%endblock%} \ No newline at end of file diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/search-debug-detail.html b/globus_portal_framework/templates/globus-portal-framework/v3/search-debug-detail.html new file mode 100644 index 00000000..6f43bfc9 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/search-debug-detail.html @@ -0,0 +1,50 @@ +{%extends "base.html"%} +{% load static %} +{% load index_template %} + +{%block title%}Detail{%endblock%} + +{%block headextras%} + + +{%endblock%} + +{%block body%} + +{% if request.session.search %} +
+
+
+ +
+
+
+{% endif %} + +{%block detail_messages %} +
+ {% index_template "components/messages.html" as it_messages %} + {% include it_messages %} +
+{%endblock%} + + +
+ +
+
+

Search Index: {{globus_portal_framework.index}}

+
+ +
+ {% for field_name, data in django_portal_framework_debug_fields.items %} +
{{field_name}}:
+
{{data}}
+ {% endfor %} +
+
+ +
+{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/search-debug.html b/globus_portal_framework/templates/globus-portal-framework/v3/search-debug.html new file mode 100644 index 00000000..326401d4 --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/search-debug.html @@ -0,0 +1,55 @@ +{%extends "base.html"%} +{% load static %} +{% load index_template %} + + +{%block title%}Detail{%endblock%} + +{%block headextras%} + + +{%endblock%} + +{%block body%} + +{% if request.session.search %} +
+
+
+ +
+
+
+{% endif %} + +{%block detail_messages %} +
+ {% index_template "components/messages.html" as it_messages %} + {% include it_messages %} +
+{%endblock%} + + +
+ +
+
+

Debugging Data For {{globus_portal_framework.index}}

+
+ +
+
Results
+ {% for result in search.search_results %} +
+ {{result.subject}} +
+ {% endfor %} +
Facets
+
{{facets}}
+
+
+ +
+{% endblock %} diff --git a/globus_portal_framework/templates/globus-portal-framework/v3/search.html b/globus_portal_framework/templates/globus-portal-framework/v3/search.html new file mode 100644 index 00000000..befa94ee --- /dev/null +++ b/globus_portal_framework/templates/globus-portal-framework/v3/search.html @@ -0,0 +1,90 @@ +{% extends 'globus-portal-framework/v3/search-base.html' %} +{% load static index_template is_active %} + +{% block headextras %} +{%block search_head%} +{{block.super}} + +{%endblock%} +{{block.super}} +{% endblock %} + +{% block breadcrumb_items %} +{{block.super}} + +{% endblock %} + +{%block body%} +
+ + {% block search_form %} +
+ + +
+ {% endblock %} + +
+ {% block search_facets %} + + {% endblock %} + +
+ +
+ {% index_template 'globus-portal-framework/v3/components/search-results.html' as it_search_results %} + {% include it_search_results %} + + {% block search_pagination %} +
+ +
+ {% endblock %} + +
+
+
+
+{% endblock %}