Page MenuHomeSoftware Heritage

D5939.id21348.diff
No OneTemporary

D5939.id21348.diff

diff --git a/assets/src/bundles/browse/browse-utils.js b/assets/src/bundles/browse/browse-utils.js
--- a/assets/src/bundles/browse/browse-utils.js
+++ b/assets/src/bundles/browse/browse-utils.js
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2018-2020 The Software Heritage developers
+ * Copyright (C) 2018-2021 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
@@ -65,8 +65,8 @@
$('#swh-branch-search-form').submit(function(e) {
var searchParams = new URLSearchParams(window.location.search);
- const searchString = $('#swh-branch-search-string').val().trim();
- searchParams.set('branch_name_include', searchString);
+ searchParams.set('name_include',
+ $('#swh-branch-search-string').val().trim());
window.location.search = searchParams.toString();
e.preventDefault();
});
diff --git a/cypress/integration/origin-browse.spec.js b/cypress/integration/origin-browse.spec.js
--- a/cypress/integration/origin-browse.spec.js
+++ b/cypress/integration/origin-browse.spec.js
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2020 The Software Heritage developers
+ * Copyright (C) 2020-2021 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
@@ -100,19 +100,19 @@
cy.get('#swh-branch-serach-button').click();
cy.location('search')
- .should('include', 'branch_name_include=mas');
+ .should('include', 'name_include=mas');
cy.get('table').contains('td', 'master').should('be.visible');
cy.get('#swh-branch-search-string').should('have.value', 'mas');
});
- it('should empty search show all branches', function() {
+ it('should show all the branches for empty search', function() {
cy.get('#swh-branch-search-string').clear();
cy.get('#swh-branch-serach-button').click();
cy.location('search')
- .should('include', 'branch_name_include=');
+ .should('include', 'name_include=');
cy.get('table').contains('td', 'master').should('be.visible');
@@ -125,3 +125,44 @@
cy.get('table').contains('td', 'No branch names containing random have been found!').should('be.visible');
});
});
+
+describe('Test browse releases', function() {
+ beforeEach(function() {
+ const url = `${this.Urls.browse_origin_releases()}?origin_url=${this.origin[1].url}`;
+ cy.visit(url);
+ });
+
+ it('should have the v2 release in the list', function() {
+ cy.get('table').contains('td', 'v2.0').should('be.visible');
+ });
+
+ it('should search inside the releases', function() {
+ cy.get('#swh-branch-search-string').type('v2.4');
+ cy.get('#swh-branch-serach-button').click();
+
+ cy.location('search')
+ .should('include', 'name_include=v2.4');
+
+ cy.get('table').contains('td', 'v2.4').should('be.visible');
+
+ cy.get('#swh-branch-search-string').should('have.value', 'v2.4');
+ });
+
+ it('should show all the releases for empty search', function() {
+ cy.get('#swh-branch-search-string').clear();
+ cy.get('#swh-branch-serach-button').click();
+
+ cy.location('search')
+ .should('include', 'name_include=');
+
+ cy.get('table').contains('td', 'v2.0').should('be.visible');
+
+ cy.get('#swh-branch-search-string').should('have.value', '');
+ });
+
+ it('should show no release exists message on failed search', function() {
+ cy.get('#swh-branch-search-string').type('random{enter}');
+
+ cy.get('table').contains('td', 'No release names containing random have been found!').should('be.visible');
+ });
+});
diff --git a/swh/web/browse/snapshot_context.py b/swh/web/browse/snapshot_context.py
--- a/swh/web/browse/snapshot_context.py
+++ b/swh/web/browse/snapshot_context.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2020 The Software Heritage developers
+# Copyright (C) 2018-2021 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information
@@ -1326,7 +1326,11 @@
def browse_snapshot_releases(
- request, snapshot_id=None, origin_url=None, timestamp=None
+ request,
+ snapshot_id=None,
+ origin_url=None,
+ timestamp=None,
+ release_name_include=None,
):
"""
Django view implementation for browsing a list of releases in a snapshot
@@ -1354,8 +1358,11 @@
rel_from,
PER_PAGE + 1,
target_types=["release", "alias"],
+ branch_name_include_substring=release_name_include,
)
- _, displayed_releases, _ = process_snapshot_branches(snapshot)
+ displayed_releases = []
+ if snapshot:
+ _, displayed_releases, _ = process_snapshot_branches(snapshot)
for release in displayed_releases:
query_params_tgt = {"snapshot": snapshot_id}
@@ -1426,7 +1433,7 @@
browse_view_name, url_args=url_args, query_params=query_params
)
- if snapshot["next_branch"] is not None:
+ if snapshot and snapshot["next_branch"] is not None:
query_params_next = dict(query_params)
next_rel = displayed_releases[-1]["branch_name"]
del displayed_releases[-1]
@@ -1458,5 +1465,6 @@
"snapshot_context": snapshot_context,
"vault_cooking": None,
"show_actions": False,
+ "search_string": release_name_include or "",
},
)
diff --git a/swh/web/browse/views/origin.py b/swh/web/browse/views/origin.py
--- a/swh/web/browse/views/origin.py
+++ b/swh/web/browse/views/origin.py
@@ -161,7 +161,7 @@
origin_url=request.GET.get("origin_url"),
snapshot_id=request.GET.get("snapshot"),
timestamp=request.GET.get("timestamp"),
- branch_name_include=request.GET.get("branch_name_include"),
+ branch_name_include=request.GET.get("name_include"),
)
@@ -202,6 +202,7 @@
origin_url=request.GET.get("origin_url"),
snapshot_id=request.GET.get("snapshot"),
timestamp=request.GET.get("timestamp"),
+ release_name_include=request.GET.get("name_include"),
)
diff --git a/swh/web/templates/browse/branches.html b/swh/web/templates/browse/branches.html
--- a/swh/web/templates/browse/branches.html
+++ b/swh/web/templates/browse/branches.html
@@ -13,15 +13,7 @@
{% block swh-browse-content %}
<div class="table-responsive mt-3 mb-3">
<div class="form-group row float-right">
- <form class="form-horizontal d-none d-md-flex input-group" id="swh-branch-search-form">
- <input class="form-control" placeholder="Search in branch names"
- id="swh-branch-search-string" value="{{search_string}}" type="text" />
- <div class="input-group-append">
- <button class="btn btn-primary" type="submit" id="swh-branch-serach-button">
- <i class="swh-search-icon mdi mdi-24px mdi-magnify" aria-hidden="true"></i>
- </button>
- </div>
- </form>
+ {% include "includes/branch-search.html" %}
</div>
<table class="table swh-table swh-table-striped">
<thead>
diff --git a/swh/web/templates/browse/releases.html b/swh/web/templates/browse/releases.html
--- a/swh/web/templates/browse/releases.html
+++ b/swh/web/templates/browse/releases.html
@@ -1,7 +1,7 @@
{% extends "./browse.html" %}
{% comment %}
-Copyright (C) 2017-2019 The Software Heritage developers
+Copyright (C) 2017-2021 The Software Heritage developers
See the AUTHORS file at the top-level directory of this distribution
License: GNU Affero General Public License version 3, or any later version
See top-level LICENSE file for more information
@@ -10,8 +10,10 @@
{% load swh_templatetags %}
{% block swh-browse-content %}
-{% if displayed_releases|length > 0 %}
<div class="table-responsive mt-3 mb-3">
+ <div class="form-group row float-right">
+ {% include "includes/branch-search.html" %}
+ </div>
<table class="table swh-table swh-table-striped">
<thead>
<tr>
@@ -22,53 +24,62 @@
</tr>
</thead>
<tbody>
- {% for release in displayed_releases %}
- <tr class="swh-release-entry swh-tr-hover-highlight">
- <td class="swh-release-name">
- <a href="{{ release.release_url }}">
- {% if release.alias %}
- <i class="{{ swh_object_icons.alias }} mdi-fw" aria-hidden="true"></i>
- {% else %}
- <i class="{{ swh_object_icons.release }} mdi-fw" aria-hidden="true"></i>
- {% endif %}
- {{ release.name }}
- </a>
- </td>
- <td class="swh-release-target">
- <a href="{{ release.target_url }}">
- <i class="{{ swh_object_icons|key_value:release.target_type }} mdi-fw" aria-hidden="true" title="{{ release.tooltip }}"></i>{{ release.target|slice:":7" }}
- </a>
- </td>
- <td class="swh-log-entry-message swh-release-message swh-table-cell-text-overflow" title="{{ release.message }}">
- {{ release.message }}
- </td>
- <td class="swh-release-date">
- {{ release.date }}
+ {% if displayed_releases|length > 0 %}
+ {% for release in displayed_releases %}
+ <tr class="swh-release-entry swh-tr-hover-highlight">
+ <td class="swh-release-name">
+ <a href="{{ release.release_url }}">
+ {% if release.alias %}
+ <i class="{{ swh_object_icons.alias }} mdi-fw" aria-hidden="true"></i>
+ {% else %}
+ <i class="{{ swh_object_icons.release }} mdi-fw" aria-hidden="true"></i>
+ {% endif %}
+ {{ release.name }}
+ </a>
+ </td>
+ <td class="swh-release-target">
+ <a href="{{ release.target_url }}">
+ <i class="{{ swh_object_icons|key_value:release.target_type }} mdi-fw" aria-hidden="true" title="{{ release.tooltip }}"></i>{{ release.target|slice:":7" }}
+ </a>
+ </td>
+ <td class="swh-log-entry-message swh-release-message swh-table-cell-text-overflow" title="{{ release.message }}">
+ {{ release.message }}
+ </td>
+ <td class="swh-release-date">
+ {{ release.date }}
+ </td>
+ </tr>
+ {% endfor %}
+ {% else %}
+ <tr>
+ <td>
+ {% if search_string %}
+ No release names containing {{search_string}} have been found!
+ {% else %}
+ The list of releases is empty!
+ {% endif %}
</td>
</tr>
- {% endfor %}
+ {% endif %}
</tbody>
</table>
</div>
-{% else %}
- <i>The list of releases is empty !</i>
-{% endif %}
{% endblock %}
{% block swh-browse-after-content %}
-{% if prev_releases_url or next_releases_url %}
- <ul class="pagination justify-content-center">
- {% if prev_releases_url %}
- <li class="page-item"><a class="page-link" href="{{ prev_releases_url }}">Previous</a></li>
- {% else %}
- <li class="page-item disabled"><a class="page-link">Previous</a></li>
- {% endif %}
+ {% if prev_releases_url or next_releases_url %}
+ <ul class="pagination justify-content-center">
+ {% if prev_releases_url %}
+ <li class="page-item"><a class="page-link" href="{{ prev_releases_url }}">Previous</a></li>
+ {% else %}
+ <li class="page-item disabled"><a class="page-link">Previous</a></li>
+ {% endif %}
- {% if next_releases_url %}
- <li class="page-item"><a class="page-link" href="{{ next_releases_url }}">Next</a></li>
- {% else %}
- <li class="page-item disabled"><a class="page-link">Next</a></li>
- {% endif %}
- </ul>
-{% endif %}
+ {% if next_releases_url %}
+ <li class="page-item"><a class="page-link" href="{{ next_releases_url }}">Next</a></li>
+ {% else %}
+ <li class="page-item disabled"><a class="page-link">Next</a></li>
+ {% endif %}
+ </ul>
+ {% endif %}
{% endblock %}
diff --git a/swh/web/templates/includes/branch-search.html b/swh/web/templates/includes/branch-search.html
new file mode 100644
--- /dev/null
+++ b/swh/web/templates/includes/branch-search.html
@@ -0,0 +1,16 @@
+{% comment %}
+Copyright (C) 2021 The Software Heritage developers
+See the AUTHORS file at the top-level directory of this distribution
+License: GNU Affero General Public License version 3, or any later version
+See top-level LICENSE file for more information
+{% endcomment %}
+
+<form class="form-horizontal d-none d-md-flex input-group" id="swh-branch-search-form">
+ <input class="form-control" placeholder="Search in names"
+ id="swh-branch-search-string" value="{{search_string}}" type="text" />
+ <div class="input-group-append">
+ <button class="btn btn-primary" type="submit" id="swh-branch-serach-button">
+ <i class="swh-search-icon mdi mdi-24px mdi-magnify" aria-hidden="true"></i>
+ </button>
+ </div>
+</form>

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 17, 7:47 PM (2 d, 16 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224412

Event Timeline