diff --git a/cypress/integration/vault.spec.js b/cypress/integration/vault.spec.js --- a/cypress/integration/vault.spec.js +++ b/cypress/integration/vault.spec.js @@ -246,7 +246,7 @@ }).as('fetchCookedArchive'); cy.get(`#vault-task-${this.directory} .vault-origin a`) - .should('have.text', this.origin[0].url) + .should('contain', this.origin[0].url) .should('have.attr', 'href', `${this.Urls.browse_origin()}?origin_url=${this.origin[0].url}`); cy.get(`#vault-task-${this.directory} .vault-object-info a`) diff --git a/swh/web/assets/src/bundles/vault/vault-table-row.ejs b/swh/web/assets/src/bundles/vault/vault-table-row.ejs new file mode 100644 --- /dev/null +++ b/swh/web/assets/src/bundles/vault/vault-table-row.ejs @@ -0,0 +1,56 @@ +<%# + Copyright (C) 2020 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 +%> + +<% if (cookingTask.object_type === 'directory') { %> + +<% } else { %> + +<% } %> + +
+ + + + <% if (cookingTask.origin) { %> + + + <%= cookingTask.origin %> + + + <% } else { %> + unknown + <% } %> + + + <%= cookingTask.object_type %> + + + id: <%= cookingTask.object_id %> + <% if (cookingTask.path) { %> +
path: <%= cookingTask.path %> + <% } %> + + <%- progressBar.outerHTML %> + + <% if (cookingTask.status === 'done') { %> + + <% } %> + + \ No newline at end of file diff --git a/swh/web/assets/src/bundles/vault/vault-ui.js b/swh/web/assets/src/bundles/vault/vault-ui.js --- a/swh/web/assets/src/bundles/vault/vault-ui.js +++ b/swh/web/assets/src/bundles/vault/vault-ui.js @@ -6,6 +6,7 @@ */ import {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions'; +import vaultTableRowTemplate from './vault-table-row.ejs'; let progress = `
@@ -152,8 +153,7 @@ } for (let i = 0; i < vaultCookingTasks.length; ++i) { let cookingTask = vaultCookingTasks[i]; - - let rowTask = $('#vault-task-' + cookingTask.object_id); + let rowTask = $(`#vault-task-${cookingTask.object_id}`); if (!rowTask.length) { @@ -169,53 +169,13 @@ let progressBar = $.parseHTML(progress)[0]; let progressBarContent = $(progressBar).find('.progress-bar'); updateProgressBar(progressBarContent, cookingTask); - let tableRow; - if (cookingTask.object_type === 'directory') { - tableRow = - ``; - } else { - tableRow = - `'; - } - tableRow += '
'; - tableRow += - '`; - tableRow += - '`; - if (cookingTask.origin) { - tableRow += `` + - `` + - `${cookingTask.origin}`; - } else { - tableRow += `unknown`; - } - tableRow += - `` + - `${cookingTask.object_type}`; - tableRow += `` + - `id: ${cookingTask.object_id}`; - if (cookingTask.path) { - tableRow += `
path: ${cookingTask.path}`; - } - tableRow += ''; - tableRow += `${progressBar.outerHTML}`; - let downloadLink = ''; - if (cookingTask.status === 'done') { - downloadLink = - ''; - } - tableRow += `${downloadLink}`; - tableRow += ''; - table.prepend(tableRow); + table.prepend(vaultTableRowTemplate({ + browseUrl: browseUrl, + cookingTask: cookingTask, + progressBar: progressBar, + Urls: Urls, + swh: swh + })); } else { let progressBar = rowTask.find('.progress-bar'); updateProgressBar(progressBar, cookingTask);