diff --git a/cypress/integration/origin-save.spec.js b/cypress/integration/origin-save.spec.js --- a/cypress/integration/origin-save.spec.js +++ b/cypress/integration/origin-save.spec.js @@ -216,7 +216,7 @@ assert.equal($(cells[1]).text(), this.originSaveJSON.data[i].visit_type); let html = ''; if (saveStatus === 'succeed') { - let browseOriginUrl = `${this.Urls.browse_origin()}?origin_url=${this.originSaveJSON.data[i].origin_url}`; + let browseOriginUrl = `${this.Urls.browse_origin()}?origin_url=${encodeURIComponent(this.originSaveJSON.data[i].origin_url)}`; browseOriginUrl += `&timestamp=${encodeURIComponent(this.originSaveJSON.data[i].visit_date)}`; html += `${this.originSaveJSON.data[i].origin_url}`; } else { @@ -250,7 +250,7 @@ cy.get('#swh-origin-save-requests-list-tab').click(); cy.get('tbody tr').then(rows => { const firstRowCells = rows[0].cells; - const browseOriginUrl = `${this.Urls.browse_origin()}?origin_url=${originUrl}`; + const browseOriginUrl = `${this.Urls.browse_origin()}?origin_url=${encodeURIComponent(originUrl)}`; const browseOriginLink = `${originUrl}`; expect($(firstRowCells[2]).html()).to.have.string(browseOriginLink); }); diff --git a/cypress/integration/origin-search.spec.js b/cypress/integration/origin-search.spec.js --- a/cypress/integration/origin-search.spec.js +++ b/cypress/integration/origin-search.spec.js @@ -66,6 +66,10 @@ .should('have.class', 'mdi-check-bold') .and('have.attr', 'title', 'Software origin has been archived by Software Heritage'); + + const browseOriginUrl = `${this.Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`; + cy.get('tr a') + .should('have.attr', 'href', browseOriginUrl); }); it('should show not found message when no repo matches', function() { diff --git a/swh/web/assets/src/bundles/admin/origin-save.js b/swh/web/assets/src/bundles/admin/origin-save.js --- a/swh/web/assets/src/bundles/admin/origin-save.js +++ b/swh/web/assets/src/bundles/admin/origin-save.js @@ -84,7 +84,7 @@ let html = ''; const sanitizedURL = $.fn.dataTable.render.text().display(data); if (row.save_task_status === 'succeed') { - let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${sanitizedURL}`; + let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(sanitizedURL)}`; if (row.visit_date) { browseOriginUrl += `&timestamp=${encodeURIComponent(row.visit_date)}`; } diff --git a/swh/web/assets/src/bundles/browse/origin-search.js b/swh/web/assets/src/bundles/browse/origin-search.js --- a/swh/web/assets/src/bundles/browse/origin-search.js +++ b/swh/web/assets/src/bundles/browse/origin-search.js @@ -35,7 +35,7 @@ clearOriginSearchResultsTable(); let table = $('#origin-search-results tbody'); for (let [i, origin] of origins.entries()) { - let browseUrl = `${Urls.browse_origin()}?origin_url=${origin.url}`; + let browseUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`; let tableRow = ``; tableRow += @@ -44,7 +44,7 @@ 'Checking'; tableRow += '' + - `${encodeURI(origin.url)}`; + `${origin.url}`; tableRow += `` + '' + diff --git a/swh/web/assets/src/bundles/save/index.js b/swh/web/assets/src/bundles/save/index.js --- a/swh/web/assets/src/bundles/save/index.js +++ b/swh/web/assets/src/bundles/save/index.js @@ -89,7 +89,7 @@ let html = ''; const sanitizedURL = $.fn.dataTable.render.text().display(data); if (row.save_task_status === 'succeed') { - let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${sanitizedURL}`; + let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(sanitizedURL)}`; if (row.visit_date) { browseOriginUrl += `&timestamp=${encodeURIComponent(row.visit_date)}`; } diff --git a/swh/web/assets/src/bundles/vault/vault-table-row.ejs b/swh/web/assets/src/bundles/vault/vault-table-row.ejs --- a/swh/web/assets/src/bundles/vault/vault-table-row.ejs +++ b/swh/web/assets/src/bundles/vault/vault-table-row.ejs @@ -28,7 +28,7 @@ <% if (cookingTask.origin) { %> - <%= cookingTask.origin %> + <%= decodeURIComponent(cookingTask.origin) %> <% } else { %> diff --git a/swh/web/templates/includes/show-swhids.html b/swh/web/templates/includes/show-swhids.html --- a/swh/web/templates/includes/show-swhids.html +++ b/swh/web/templates/includes/show-swhids.html @@ -57,7 +57,7 @@
{% if snapshot_context and snapshot_context.origin_info %} {% endif %} {% if swhid_info.object_id %} diff --git a/swh/web/templates/includes/snapshot-context.html b/swh/web/templates/includes/snapshot-context.html --- a/swh/web/templates/includes/snapshot-context.html +++ b/swh/web/templates/includes/snapshot-context.html @@ -10,7 +10,7 @@
{% if snapshot_context.origin_info %} - + {{ snapshot_context.origin_info.url }} {% if snapshot_context.origin_info.url|slice:"0:4" == "http" %}