diff --git a/cypress/integration/deposit-admin.spec.js b/cypress/integration/deposit-admin.spec.js --- a/cypress/integration/deposit-admin.spec.js +++ b/cypress/integration/deposit-admin.spec.js @@ -142,6 +142,10 @@ if (deposit.swhid !== null) { cy.contains(deposit.swhid).should('be.visible'); cy.contains(deposit.swhid_context).should('be.visible'); + // check SWHID link text formatting + cy.contains(deposit.swhid_context).then(elt => { + expect(elt[0].innerHTML).to.equal(deposit.swhid_context.replace(/;/g, ';
')); + }); } }); }); diff --git a/cypress/integration/persistent-identifiers.spec.js b/cypress/integration/persistent-identifiers.spec.js --- a/cypress/integration/persistent-identifiers.spec.js +++ b/cypress/integration/persistent-identifiers.spec.js @@ -117,7 +117,7 @@ .should('be.visible'); cy.get(`#swhid-tab-${td.objectType} .swhid`) - .contains(td.objectSWHIDs[0]) + .should('have.text', td.objectSWHIDs[0].replace(/;/g, ';\n')) .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); } @@ -134,7 +134,7 @@ .click(); cy.get(`#swhid-tab-${td.objectType} .swhid`) - .contains(td.objectSWHIDs[0]) + .should('have.text', td.objectSWHIDs[0].replace(/;/g, ';\n')) .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); cy.get(`#swhid-tab-${td.objectType} .swhid-option`) @@ -148,7 +148,7 @@ .click(); cy.get(`#swhid-tab-${td.objectType} .swhid`) - .contains(td.objectSWHIDs[0]) + .should('have.text', td.objectSWHIDs[0].replace(/;/g, ';\n')) .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); } diff --git a/swh/web/assets/src/bundles/admin/deposit.js b/swh/web/assets/src/bundles/admin/deposit.js --- a/swh/web/assets/src/bundles/admin/deposit.js +++ b/swh/web/assets/src/bundles/admin/deposit.js @@ -8,8 +8,9 @@ function genSwhLink(data, type) { if (type === 'display') { if (data && data.startsWith('swh')) { - let browseUrl = Urls.browse_swhid(data); - return `${data}`; + const browseUrl = Urls.browse_swhid(data); + const formattedSWHID = data.replace(/;/g, ';
'); + return `${formattedSWHID}`; } } return data; diff --git a/swh/web/assets/src/bundles/browse/swhid-utils.js b/swh/web/assets/src/bundles/browse/swhid-utils.js --- a/swh/web/assets/src/bundles/browse/swhid-utils.js +++ b/swh/web/assets/src/bundles/browse/swhid-utils.js @@ -23,8 +23,8 @@ let swhIdWithContextUrl = $(event.target).data('swhid-with-context-url'); let currentSwhId = swhIdElt.text(); if ($(event.target).prop('checked')) { - currentSwhId = swhIdWithContext; swhIdElt.attr('href', swhIdWithContextUrl); + currentSwhId = swhIdWithContext.replace(/;/g, ';\n'); } else { const pos = currentSwhId.indexOf(';'); if (pos !== -1) { @@ -39,7 +39,7 @@ function addLinesInfo() { let swhIdElt = $('#swhid-tab-content').find('.swhid'); - let currentSwhId = swhIdElt.text(); + let currentSwhId = swhIdElt.text().replace(/;\n/g, ';'); let lines = []; let linesPart = ';lines='; let linesRegexp = new RegExp(/L(\d+)/g); @@ -61,7 +61,7 @@ currentSwhId += linesPart; } - swhIdElt.text(currentSwhId); + swhIdElt.text(currentSwhId.replace(/;/g, ';\n')); swhIdElt.attr('href', '/' + currentSwhId + '/'); } } @@ -70,7 +70,7 @@ new ClipboardJS('.btn-swhid-copy', { text: trigger => { let swhId = $(trigger).closest('.swhid-ui').find('.swhid').text(); - return swhId; + return swhId.replace(/;\n/g, ';'); } });