From f8b42ed972d0c4110ffe9b846ae0ccd76bf42659 Mon Sep 17 00:00:00 2001
From: Utkarsh_33 <utkarsh_33@3727088.no-reply.drupal.org>
Date: Fri, 16 Sep 2022 14:27:18 +0000
Subject: [PATCH] Issue #3306162 by Utkarsh_33, srishtiiee, pflora: Adding
 target blank to all the links in Module description page

---
 sveltejs/public/build/bundle.js               | Bin 83637 -> 83825 bytes
 sveltejs/public/build/bundle.js.map           | Bin 225984 -> 226460 bytes
 sveltejs/src/ModulePage.svelte                |  12 +++++++++++-
 tests/fixtures/projects_fixture.json          |   2 +-
 .../ProjectBrowserUiTest.php                  |  16 ++++++++++++++++
 5 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js
index b2a95f0fabc0b06af78f0969add5c47522f888b8..246671df37039ae07e083e334cc64939aca8685a 100644
GIT binary patch
delta 159
zcmdnm%lfg8wP6cmh^e%bj#6fdl8#bJYH@N=W<g12ex7c5QDQ+sYSDIoQ^r%Q%uyN|
z)Bh_os_A1<qNJ&po?7CXlbV~FS5oX$8IqXpmzbNXp_HhkIr*Hkl$N$;YII4gUU6!P
sV@XL-W>RShP_iVk2&fBaX?#*nVqUhAX04{C&g47a<hNT`GuCng0Je8HK>z>%

delta 31
ncmey^$GWwbwP6cmi0SqcQ^upLlk>uPC;vYvwEc@UV=XrT)P@Z1

diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map
index 0ed147e5baefe29720581fd8d9b37fc682746705..4b1b211b0d8d5920f9fb5e1ae04cc282a184c196 100644
GIT binary patch
delta 661
zcmZutzi-n(7?pjZzz`uJpj0iAiG-Y%BS6zMpi;zl7dLSsjY0@Pq7_^cW866YadBD&
zsVW0A66$bE7ybZXLGsGXj$mVAVBlXs_>uriZ}?8%d++<+yZiJbb@(&&@|E&YoeRaC
z+v+8e($%x^^-x_<#jh=8#%}vwKhl`je(v+WwyJgf_Mm5Z(Wa-3PS&;}!?h$thGr+D
zcdUM!J3-|5-j!X>g23YX{1NIt89re42J2ZFo#_W}VQy;da-gi8&rJ*;J6qYl6+skn
zr!|NYX~cNqsAElk(sG&C)#q2n%lE{0TbYiXzWV0mjOKJ!H`7N%5o|%7j!*5WpRZk*
zc%*Uq{~P|Liod*5zs2e<iQikOaST0tVTh`aW{>*>t`>J_oav%lio#>dMNgH}H;TO$
zHUOZEyA-&QE5=`YXrL%{vEifKeqrq<4Jj@GR15cU9qKM|%cB-IfzoA%$mvG%i3v$t
z!)<~s01FQY&}WP5I3xfe!7S+_KGK?Upaim-;TWn(stQn}*aYg*zcA+)iS#Nh8p#G=
zi3K$9auFUCq#Zb9X+s?P$Wd%D6`<F%K9z8t;tJ3mibD#9Nu?9>#D@T_oax<_`)nCx
zKst#GARqq@P+rM8%?VWlGa}nfIW|fOm)9lJND95zt;nmK7mTBGCzdKw)yRu|j^GbV
CM9=yF

delta 260
zcmbR9lJ~$<-i8*&Ele_n+Z_v;?3tz?i(};5-crIek#oC29n*b-?FQ?au54#a-p-cJ
z9Lma+=R7?ohgpd+WqU&ovkfC-!S=nm%n6J_h0eK2I<Ah6jvhMM&W=T{InLYl^O;K-
znKPV{rpM(lOHV&oz$`9Z;8x^R=&a-J=;&`Aq*LkQ=pLdI?C6;3Wad1*qL4Y0F?0H(
zLgqfk?CFI?%#w^*)4Pk9twl1uK|0c%fEJWGrRewqtufqwtBBc@Q9wHkDi!GHS>mK0
sHeJ4iSxhb67bxoNVOR*#;^=4*0#f7%GzQ2^cQWt=(V>RZqf3|_0aYJRL;wH)

diff --git a/sveltejs/src/ModulePage.svelte b/sveltejs/src/ModulePage.svelte
index 323dd9d18..a810ea5a2 100644
--- a/sveltejs/src/ModulePage.svelte
+++ b/sveltejs/src/ModulePage.svelte
@@ -1,4 +1,5 @@
 <script>
+  import { onMount } from 'svelte';
   import ActionButton from './Project/ActionButton.svelte';
   import Image from './Project/Image.svelte';
   import ImageCarousel from './ImageCarousel.svelte';
@@ -14,6 +15,15 @@
     $page = 0;
     window.location.href = `${ORIGIN_URL}/admin/modules/browse`;
   }
+
+  onMount(() => {
+    const anchors = document
+      .getElementById('description-wrapper')
+      .getElementsByTagName('a');
+    for (let i = 0; i < anchors.length; i++) {
+      anchors[i].setAttribute('target', '_blank');
+    }
+  });
 </script>
 
 <ol class="pb-breadcrumb">
@@ -90,7 +100,7 @@
         <ImageCarousel sources={project.project_images} />
       </div>
     {/if}
-    <div>{@html project.body.value}</div>
+    <div id="description-wrapper">{@html project.body.value}</div>
   </div>
 </div>
 
diff --git a/tests/fixtures/projects_fixture.json b/tests/fixtures/projects_fixture.json
index 8324db4e9..d19db3777 100644
--- a/tests/fixtures/projects_fixture.json
+++ b/tests/fixtures/projects_fixture.json
@@ -475,7 +475,7 @@
     "status": "1",
     "project_data": {
       "body": {
-        "summary": "<p>Text here for fake summary content.</p>"
+        "summary": "<p>Text here for fake summary content. <a href=\"http://example.com\">Example</a></p>"
       },
       "field_project_images": [],
       "field_project_machine_name": "helvetica",
diff --git a/tests/src/FunctionalJavascript/ProjectBrowserUiTest.php b/tests/src/FunctionalJavascript/ProjectBrowserUiTest.php
index bde981d9f..5d96d1a41 100644
--- a/tests/src/FunctionalJavascript/ProjectBrowserUiTest.php
+++ b/tests/src/FunctionalJavascript/ProjectBrowserUiTest.php
@@ -216,6 +216,22 @@ class ProjectBrowserUiTest extends WebDriverTestBase {
     $this->assertTrue($assert_session->waitForText('23 Results'));
   }
 
+  /**
+   * Tests the Target blank functionality.
+   */
+  public function testTargetBlank(): void {
+    $page = $this->getSession()->getPage();
+    $assert_session = $this->assertSession();
+    $this->drupalGet('admin/modules/browse');
+    $this->svelteInitHelper('text', 'Helvetica');
+    $page->clickLink('Helvetica');
+    $this->assertTrue($assert_session->waitForText('Categories:'));
+    $link = $page->find('css', '.box-2 a');
+    $target = $link->getAttribute('target');
+    $this->assertEquals('_blank', $target);
+
+  }
+
   /**
    * Tests paging through results.
    */
-- 
GitLab