Page MenuHomeSoftware Heritage

D8560.diff
No OneTemporary

D8560.diff

diff --git a/cypress/e2e/add-forge-now-request-create.cy.js b/cypress/e2e/add-forge-now-request-create.cy.js
--- a/cypress/e2e/add-forge-now-request-create.cy.js
+++ b/cypress/e2e/add-forge-now-request-create.cy.js
@@ -108,6 +108,45 @@
expect(rows.length).to.eq(2 + 1);
});
});
+
+ it('should display search link when first forge origin has been loaded', function() {
+ const forgeUrl = 'https://cgit.example.org';
+ cy.intercept(this.listAddForgeRequestsUrl + '**', {body: {
+ 'recordsTotal': 1,
+ 'draw': 1,
+ 'recordsFiltered': 1,
+ 'data': [
+ {
+ 'id': 1,
+ 'inbound_email_address': 'add-forge-now+15.yPalKD34nGJ-FYHwKXdmPQVkQ2c@example.org',
+ 'status': 'FIRST_ORIGIN_LOADED',
+ 'submission_date': '2022-09-22T05:31:47.566000Z',
+ 'submitter_name': 'johndoe',
+ 'submitter_email': 'johndoe@example.org',
+ 'submitter_forward_username': true,
+ 'forge_type': 'cgit',
+ 'forge_url': forgeUrl,
+ 'forge_contact_email': 'admin@example.org',
+ 'forge_contact_name': 'Admin',
+ 'last_modified_date': '2022-09-22T05:31:47.576000Z'
+ }
+ ]
+ }}).as('addForgeRequestsList');
+
+ cy.visit(this.addForgeNowUrl);
+
+ cy.get('#swh-add-forge-requests-list-tab').click();
+
+ cy.wait('@addForgeRequestsList');
+
+ let originsSearchUrl = `${this.Urls.browse_search()}?q=${encodeURIComponent(forgeUrl)}`;
+ originsSearchUrl += '&with_visit=true&with_content=true';
+
+ cy.get('.swh-search-forge-origins')
+ .should('have.attr', 'href', originsSearchUrl);
+
+ });
+
});
describe('Test add-forge-request creation', function() {
diff --git a/cypress/e2e/add-forge-now-requests-moderation.cy.js b/cypress/e2e/add-forge-now-requests-moderation.cy.js
--- a/cypress/e2e/add-forge-now-requests-moderation.cy.js
+++ b/cypress/e2e/add-forge-now-requests-moderation.cy.js
@@ -117,4 +117,45 @@
});
});
+ it('should display useful links in requests table', function() {
+ const forgeUrl = 'https://cgit.example.org';
+ const requestId = 1;
+ cy.intercept(this.listAddForgeRequestsUrl + '**', {body: {
+ 'recordsTotal': 1,
+ 'draw': 1,
+ 'recordsFiltered': 1,
+ 'data': [
+ {
+ 'id': requestId,
+ 'inbound_email_address': 'add-forge-now+15.yPalKD34nGJ-FYHwKXdmPQVkQ2c@example.org',
+ 'status': 'FIRST_ORIGIN_LOADED',
+ 'submission_date': '2022-09-22T05:31:47.566000Z',
+ 'submitter_name': 'johndoe',
+ 'submitter_email': 'johndoe@example.org',
+ 'submitter_forward_username': true,
+ 'forge_type': 'cgit',
+ 'forge_url': forgeUrl,
+ 'forge_contact_email': 'admin@example.org',
+ 'forge_contact_name': 'Admin',
+ 'last_modified_date': '2022-09-22T05:31:47.576000Z',
+ 'last_moderator': 'foo@softwareheritage.org'
+ }
+ ]
+ }}).as('addForgeRequestsList');
+
+ cy.addForgeModeratorLogin();
+ cy.visit(this.addForgeModerationUrl);
+
+ cy.wait('@addForgeRequestsList');
+
+ let originsSearchUrl = `${this.Urls.browse_search()}?q=${encodeURIComponent(forgeUrl)}`;
+ originsSearchUrl += '&with_visit=true&with_content=true';
+
+ cy.get('.swh-forge-request-dashboard-link')
+ .should('have.attr', 'href', this.Urls.add_forge_now_request_dashboard(requestId));
+
+ cy.get('.swh-search-forge-origins')
+ .should('have.attr', 'href', originsSearchUrl);
+ });
+
});
diff --git a/swh/web/add_forge_now/assets/create-request.js b/swh/web/add_forge_now/assets/create-request.js
--- a/swh/web/add_forge_now/assets/create-request.js
+++ b/swh/web/add_forge_now/assets/create-request.js
@@ -119,6 +119,19 @@
render: function(data, type, row, meta) {
return swh.add_forge_now.formatRequestStatusName(data);
}
+ },
+ {
+ render: (data, type, row) => {
+ if (row.status === 'FIRST_ORIGIN_LOADED') {
+ const sanitizedURL = $.fn.dataTable.render.text().display(row.forge_url);
+ let originsSearchUrl = `${Urls.browse_search()}?q=${encodeURIComponent(sanitizedURL)}`;
+ originsSearchUrl += '&with_visit=true&with_content=true';
+ return `<a href="${originsSearchUrl}" target="_blank" rel="noopener noreferrer" ` +
+ 'class="swh-search-forge-origins" title="Search for origins listed from that forge">' +
+ '<i class="mdi mdi-magnify" aria-hidden="true"></i></a>';
+ }
+ return '';
+ }
}
],
order: [[0, 'desc']]
diff --git a/swh/web/add_forge_now/assets/moderation-dashboard.js b/swh/web/add_forge_now/assets/moderation-dashboard.js
--- a/swh/web/add_forge_now/assets/moderation-dashboard.js
+++ b/swh/web/add_forge_now/assets/moderation-dashboard.js
@@ -68,6 +68,24 @@
render: function(data, type, row, meta) {
return swh.add_forge_now.formatRequestStatusName(data);
}
+ },
+ {
+ render: (data, type, row) => {
+ let html = '<div class="d-flex">';
+ const dashboardUrl = Urls.add_forge_now_request_dashboard(row.id);
+ html += `<a class="swh-forge-request-dashboard-link" href="${dashboardUrl}" title="Go to request dashboard">` +
+ '<i class="mdi mdi-square-edit-outline" aria-hidden="true"></i></a>';
+ if (row.status === 'FIRST_ORIGIN_LOADED') {
+ const sanitizedURL = $.fn.dataTable.render.text().display(row.forge_url);
+ let originsSearchUrl = `${Urls.browse_search()}?q=${encodeURIComponent(sanitizedURL)}`;
+ originsSearchUrl += '&with_visit=true&with_content=true';
+ html += `<a href="${originsSearchUrl}" target="_blank" rel="noopener noreferrer" ` +
+ 'class="swh-search-forge-origins" title="Search for origins listed from that forge">' +
+ '<i class="mdi mdi-magnify" aria-hidden="true"></i></a>';
+ }
+ html += '</div>';
+ return html;
+ }
}
],
order: [[0, 'desc']]
diff --git a/swh/web/add_forge_now/templates/add-forge-list.html b/swh/web/add_forge_now/templates/add-forge-list.html
--- a/swh/web/add_forge_now/templates/add-forge-list.html
+++ b/swh/web/add_forge_now/templates/add-forge-list.html
@@ -16,6 +16,7 @@
<th>Forge type</th>
<th>Forge URL</th>
<th>Status</th>
+ <th></th>
</tr>
</thead>
</table>
diff --git a/swh/web/add_forge_now/templates/add-forge-requests-moderation.html b/swh/web/add_forge_now/templates/add-forge-requests-moderation.html
--- a/swh/web/add_forge_now/templates/add-forge-requests-moderation.html
+++ b/swh/web/add_forge_now/templates/add-forge-requests-moderation.html
@@ -33,6 +33,7 @@
<th>Moderator Name</th>
<th>Last Modified Date</th>
<th>Status</th>
+ <th></th>
</tr>
</thead>
</table>

File Metadata

Mime Type
text/plain
Expires
Dec 17 2024, 1:30 PM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3215967

Event Timeline