From 632c3ef1eefd3fe24f0a781fd1a22e04ece91be6 Mon Sep 17 00:00:00 2001 From: Narendra Singh Rathore <29217-NarendraR@users.noreply.drupalcode.org> Date: Wed, 21 Aug 2024 14:51:35 +0000 Subject: [PATCH] Issue #3467911 by narendrar, phenaproxima, chrisfromredfin: Refactor URL construction to use window.location instead of Drupal.url --- sveltejs/public/build/bundle.js | Bin 302849 -> 302727 bytes sveltejs/public/build/bundle.js.map | Bin 280427 -> 280298 bytes sveltejs/src/App.svelte | 3 ++- sveltejs/src/Filter.svelte | 3 ++- sveltejs/src/ModulePage.svelte | 5 +++-- sveltejs/src/Project/ActionButton.svelte | 6 ++---- sveltejs/src/Project/AddInstallButton.svelte | 20 +++++++------------ sveltejs/src/Project/Project.svelte | 4 ++-- sveltejs/src/ProjectBrowser.svelte | 5 ++--- sveltejs/src/constants.js | 3 ++- 10 files changed, 22 insertions(+), 27 deletions(-) diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js index ec94da1cc9c8ba37f4f428c77239e165d9d0b92f..a02e401a38171b2ce7c54a58b1c78de9f10f0d15 100644 GIT binary patch delta 1282 zcmaJ=YfO`86wW#CX%VDc>ZQbT=^`54pd$TR+j5CGoSV9#GJlY`@l~jTt1XlgMp)yB z8yBbYqsz`*HeFma!lFn>Jek=Lek}73gk@ouxGc;cCJW0<c1dQo#eKz?Kp?(<-kdz= zea>^9bKdSTYws7<>)!4YJF04T)*n2u*HPin3%fd+!;O&+XDHGTh&4yT&X#B-7HNot z;#;;X1)Cymv3OxuW3;^`5ULHvV$I>BZO)cJtjT#e&=x!x4LP21EQcmj_C<q7nqQBD zo+#=r$S_Jj7Gf|aK7O;nay-)59tzecbL0AGclURBP&!(7VZs8QQTx@(ReYAPkZW#$ zcXVcaIz4?MMPg*q4*JQdNtv32%<cSgF<Rw;1#?xFGY}3(+QSXOP1W<dd2=@YAY?^d z$&od9$Cju$XO^SIm~CD}$$A;)^F<fh<faR6(GqYYf9l26GVaAuSO&c0$F;ViG>36g zlV_paB=^R=Kub%gQ-4wlSCnB|&XZD#L6?Ctd}F;y^ZHADJdp!7zWyhqN=ZHbL*S93 zM(iMy$Ln{w7NEDAuzUq*Vrs?I72uN0P8=rm_+&hef0+#6#!2ia*ecum@Hn8`E5rTx zRXVx--p%~*G_8MB<nnv?mI*bV6n%(iElXV3z;lCWmy{v&CKiLxMyvT)g|bUeg^HVb zU>%hw^jRz4*+VPkP_>%F<sanAz%C`W#PnU_WA$neXgu}_RPpV1lua^p^*-QM4+n-Z z2i!anP<80i=0nyFs}cTt5VD0D6qdm@Njb0P$Y}nLi|RlMx_q*0NOdak%EVQ5PZ{1_ z8BxU+rTMja=j8sFdM;CyJPvE7)I)+&srg2A*%zz*_BW-;%KPeGCAj7HVu}&p+^;PB zpItfl$K5KMuer%AL#6Z+8Up&=^b|lTLmsS>F%M0nF@XUeeNM)`w~}_7!NW$pmS44~ zLf%(PBs0}?o|MNB^HL?*<jf0{o4Hs-(qqs$w_N3OsD!e`R7d-Bz{OQ}m50x?lG8A+ zHA?Ha;1Fc-Y#NyP*H&7S{1E(_Kq{9+>C2^@se0L?wT|<|XPC#=2GJ}#+UNqvFEQ%D zOzo9Ti?+SLgWPhfgDxdK4R%ps()3d&=<Aeu{UiPOwDk27C%bl>q8TKge_M$>I8Anw zNi+OjuyWknOIG=}2h6}(-$S{)*a!I_@-8WpG4Y>!)CQhCM{o1<moY;UAJ7$)XFsAb F_#cxqphW-x delta 1298 zcma)+ZA_b06vuPVJ#DwrN>*CRU~^^Q+9EA|d*GqaZpOX%mT5F08l9!1xTzHilrXZ% zU}!qf7-JL8hRl^k$%2`oX|n4F?Ibh%Fk^>Nvn*!17eiu<#P~+yV&+pi4cp@4{c`i< zf9|>G{LcSAiH{9KS;LGxl>Bt4q-b+@Z!8>j_I5{Y$<*LF-AkR3-e`L$7LM<>XI33J zzm~Z(KOCLaGb!`_iC_r@=edRcLa3(fNhW8u%+Bd_%W_zgmAMMA+J^%<5y-LPO<KRD zAXmG^BX@z58>`*Ua7RaHZ%13Z?H`FoSHT6HqQq_1`#WRLw?}Bw0A=D;0|YrJM^BsJ z8*?(WsG>KEm^xpDNxb6#vwHdEtu*TeiP^;;UO0ufC^GmJ<(do`cAK(+F8QIf%wDUt zC~IYYE$@kDW!P|cI2MccTkjZC73=JYhyF((Wt%{wU=nAVU|*F=a``=t<UR`)u`2}E zkjbJg0)41zaQVI7f^dB|G_PRwqPYuJuHceiCS3yU#7EIUpEsh0q61(ONBf}#p}{Q{ zUxwdRO88I1FoNjyyS?=DFc`%f2cd;wy{mA(Mi@rnZ5?Y6AB;gprIFlzpWV_t)()j& zU;=vdx1qX+)=xu)LNYK7a?)H^Qvg*{XK9P?dD^#Q$w{p=6ySA~-VY^II|voxVt_xU zrimH0oxZh$n&uux6{RY%n$A53da||R6GFR%?}9rgT-eG>>45{VPF&i?Uorpdg>s67 z_@hiB$Ghx4`tUVw7P?k`h=JEbq2sKK)zhgke@fY&J<e8>XD3gq3w2XynynVU?c~s; zKwmt<e?;aJSC8?>HQ;lJhH2i<S))jw;PYIebSTXodIi3ZCQZyNzRU8h#av-l_}rM| z*O7U}#xMEaikr!uS>Qee+Mf%2KB!!9*@1B+(Zcm~af)jx^#WH>%!zd(<-zm7JYtW8 zl}yPsUXNEn*#{c&qkQhBAU>pC8vmf4%i@#Gcnp^c3Ix$C_C1Jeif?7;E)2z*AByp< z_l)ARC$Xc9`N(~R*Hf$uoz(LTyEnOMQBCK%&~)=Nqwl-$tL4oU^5o5Xp&QS#8z9AG z91lXdw8QpamXP~U645@K;xw0KTCrv?R-n?UydS^NFiB_=csk!{ZUnyut?X}b+w-r{ zLg_K65_7NPFN%*F71lFj;2<f12JvEosTrkyWzCcw2aVXC#Bw!_Ug7I$^e~Q)oc~#! doabwWYa9>5jV@{}(avy$W{bE{T%N!w_BV$Ns80X@ diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map index b45b4630b052b9bfd62de5184e40fbb6f6629225..824e39092505c97f2c56c6852c77d3739ad2722c 100644 GIT binary patch delta 1917 zcma)6ZERCj7|uEG>1eyIEBlm{u_D{}Sm|I6X0tGNdfU|jV~jBZaf5artQ}oj+Kzo? zf<Z$j84L+~Rn#RIFa%JD;)#g_Sd4K-CvibZ(6Ap)6Ep-Ben2#OZ<lS|Tnznj(|gbJ zywCeS&wKB$N9Nz{n}6UV(k<<`@oLAenk^em>rAff?sl)gG0<-D1sdEDZ@_N}h60g5 zL%`RQpa0)OPaquW$?k3pwFTY2>ZVA<>u(NQg6@dNQtu8o)r5SeJkwmK3S@JrX}7nd zhq!Q$M3(4f?a5B$l6c)tvJzSYjcvZBT?)F#B|ekLcsky*P_5Q92{qvn2U&mzG}MHx zoupPQttIz#y4Yg4*h`GWB}%-+RHvCFn(^ozQXr0gPTrk213qw*EW*YSk}eL8kWFm% zSuQ4wk`%o7EivMiQKH7d5t1nCMoBN34K1JjAUDe$4Ej1<=32jL>KEIpteuPB+$7qJ z|Hr5so5GP$pwlImd`DU}(?bb)sNJgBx;bbWCq_{<PI6bMCk?<OVUmy5OuA59OQcW3 z3=-Z;qDw?lGJPj=iXhIeq9@feVcV^=5Q=O47;L8{c;Rni5aU*QYUSK1o!Chm@V91q za&hd??#5QHKYt?XaDII#&>n7biL)NMf;<84p_e|d!>neiiSM3cE7Zcdk3OI?yLNWc z6(ZD0OQ`syn<l-OT*Y~n*~z)nEO9QG9h^JxrAv^CrytNnHhmiyly4h2Z$R=P&Cn?S zq71yzM^gu0rwmKKpei&BQ%3id<9!{Z>lL;+DxlQHx<@nv|9M397(YxkB#23m>DMG8 z#vaq5RMxhBjUBI@k(D<l!$R@B0TQ(kTJJ=|LCD3iR#-0FMp&lR?%-0FEm{_TKM%>c z=_=^rCsnw)0IP~v3U1y43>Te%1nj*EDdMjjc!kR4>T&)`S;930OuW4eF7L#ReN->p zhaihi%xy?zD)jvViFmFT_F>IknktH3h3gd0=vk`J_d$fho(;S4SU+Tl!K3g7Wku_Y z?D)Y?kcBV21{YPu<=ojNtjA#((kc{}xZ*3HvSO8lnF!0{isey44pD{h2YqTTV4h?y z#4LoRam8*fMauBln=q6mv+Ad6ar3j20$#hhlJiRJm*d+egZ$Ix%eF*O%0*G#62ot{ zE4|HivUZwNTr3Y&UM7rh!8j#df($|!NSkOo1y|Hy-B78FpCKyGK>=AX*C>1K<~?>a zp`4{F3>wuAUhOFpx6Xq!k6E294qW{ym~ivQ@Fx~rhB{&w{g>fJj<HkXj*f}AC!E}C zQ`&9dydB-^m=OmqfgZ1&2c5Wo8-4_1pzH|=acGd3T7<_S!dNx0X%WfeaGZ$ueunI1 z(ki}s1h;f?&unY4nJaMQ0%YRCAxITJ#Ie!1Ib$uf;cx=8#LEUde2(Z#rEF-n$kVg4 zX`};hX0sN;MQIK*Xh@@|vanul(kdITUoFMt5tvxu(jrJu$$552!fa(PtD;-A74K|^ zbbMICP*cvOt<k-j*jxDpRpnN2UJ+X=>Q!ut8@MwliQCUHPUfw(NgkWWj)pJg+4{#o zm0ljhEsS!T<!c@u2tyj)w}58A0$S`}4oO&g8g>Ysjjf^7*@Yz<mWKP^2aPyvXWOX0 W$mX}1Ym^U)@@YYSn5G~&nde`>s$W|G delta 1684 zcma)6e@xV67~lIo?{RSa5WM5(p_~L9hX=w8kXXih-|vNRokS!>GXfmQuMiGUp)^~y zMJ~1BdR%B><<dee2fl4u6I)|#IZT&rnhV;nR;%Uu$JDmo_j@<w4_4hD@80kGd_JG& zc|Omx`{nhxU-!iA8Yj<b7^xF$q#o$+ZtTqK4|HbZxiXT5KAl7omv~YqbBP%DBH1Z! zY$U%&MJ)h2ai)#fsnaFywh_nEm^MQS@Z@G{7WGr)pxL$ny0Ob){2DO-3R#XB(<Cw6 z9ei|&(rL1uB`kt=I1GFip1DkHmJr_IaEa;5<P1q!l%djuSZBW__ocYzX)3aS;#8$% zIU2jWI|rQqj>@<H2OtYauMo3x;^-CfY=n?bG@BOhf8QJ_yVv@~Ig*uwTmL4xA~%+< zg@yJuVB-a1!`)W8L=NIDD}8&JC@-M<!xtC+sf6BtPuTtd{WBLQW=Riz*h=><)O8xV zs@SL6XbxFCbflfGi^6j*%0%imdYdjpHDLN6&7rOxc=DJmd~lG)(r|Zr&|5L|Jhkq` z1Gi`tiWab8&mEd>Dy`sJD;~N-FOY!fxJ%E+LvLjv@<Nt?-`OBlG%bZC7U-+=VR990 z7hj}8wk27T20d;s=iKdAM>Xfw?i$W(@RJn~k6%wwOKOpa^CFL1Q}OwuROM^;iV`Qh zPocZA30It!g#3PB;x89W)SEYO?)AB=#rUh>q)CRfU-7kI5_OZ0c=I(F0(CiT2dmh- z8z!moIs1zIY~BNXlx!1M_rV0ET|Rtc7``#d%v(LGiwxDZw@Yl^4_^UJw1Cy3^@b|# z#}`JxiI3((n5B+;TXlCc=gl~#vuyG10r-*{c(c}Q^n^P`z-53<jocg1acl(6XDLfP zZePfqQ1#`UmrIT|patDnqY`DCYPh#p$H^%gA6F!MD+)$SYq+*O^xUCy-k}>L^&CRm zR!a2B5V};^TG6hHTL)o|(p8ms^9Uro`6)yTIto=l2E=3U!Dr#L^$`&_27Y2R5vjF> zYU$8%*9c_cOfgvS<6K~-I=*4GE<QRAnwhq)6Mu|DfROcK(`mSvDUI~5_Tcn2NWrUn z!4gxaI^CoW*`yzPF3E}Jb%8mO4}@Ip@!(_;v*PdwSTTPBqQpzz!*yUv34832fDe8E z*%AL=qwEKW5vOLLk4cT{CS$5hdKnNob1+QA*&C2)4c}7xges{VV|B3OOc_Lo=-Y5S zDy+D+-Q)J-;S;b-Tn}SEhlQqE9h~a5XqFe8Y8@{x*2Iz+b}2#rh5neq+KDFonJhMf zw21mVHe?Cw(0Eg^hR@g_X{lzUQzDwXSMGnW2jf<;G~gw=NGoA4oA9?S(&Dr#SRST! zu+@V{*Rm7L&$Y*qBuj_Zj#4w8YJudWAV0V)Qjp6b`*?YQF5Y>FagtaecT8@liUhqk zZZ(+qIV43G6PX`Iq_KNzBw(|KD>%y#Wt<(OR14s2CbOZtN>1g_7{p-dn5xdgB7{X} MwUiWM<HKy|A2l%nssI20 diff --git a/sveltejs/src/App.svelte b/sveltejs/src/App.svelte index 005f3f679..591a3a407 100644 --- a/sveltejs/src/App.svelte +++ b/sveltejs/src/App.svelte @@ -3,6 +3,7 @@ import ModulePage from './ModulePage.svelte'; import Loading from './Loading.svelte'; import { activeTab } from './stores'; + import { BASE_URL } from './constants'; const matches = window.location.pathname.match( /\/admin\/modules\/browse\/(.+)/, @@ -35,7 +36,7 @@ {#if !projectId} <ProjectBrowser /> {:else} - {#await load(Drupal.url(`drupal-org-proxy/project?id=${projectId}`))} + {#await load(`${BASE_URL}drupal-org-proxy/project?id=${projectId}`)} {#if loading} <Loading /> {/if} diff --git a/sveltejs/src/Filter.svelte b/sveltejs/src/Filter.svelte index a53a6e2b3..b77d70d83 100644 --- a/sveltejs/src/Filter.svelte +++ b/sveltejs/src/Filter.svelte @@ -6,6 +6,7 @@ activeTab, } from './stores'; import { normalizeOptions, shallowCompare } from './util'; + import { BASE_URL } from './constants'; const { Drupal } = window; const dispatch = createEventDispatcher(); @@ -124,7 +125,7 @@ } async function fetchAllCategories() { - const response = await fetch(Drupal.url('drupal-org-proxy/categories')); + const response = await fetch(`${BASE_URL}drupal-org-proxy/categories`); if (response.ok) { return response.json(); } diff --git a/sveltejs/src/ModulePage.svelte b/sveltejs/src/ModulePage.svelte index f16f24258..244cda18e 100644 --- a/sveltejs/src/ModulePage.svelte +++ b/sveltejs/src/ModulePage.svelte @@ -6,6 +6,7 @@ import { moduleCategoryFilter, page } from './stores'; import ProjectIcon from './Project/ProjectIcon.svelte'; import { numberFormatter } from './util'; + import { BASE_URL } from './constants'; // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export export let project; @@ -14,7 +15,7 @@ function filterByCategory(id) { $moduleCategoryFilter = [id]; $page = 0; - window.location.href = Drupal.url('admin/modules/browse'); + window.location.href = `${BASE_URL}admin/modules/browse`; } onMount(() => { @@ -27,7 +28,7 @@ }); </script> -<a class="action-link" href={Drupal.url('admin/modules/browse')}> +<a class="action-link" href={`${BASE_URL}admin/modules/browse`}> <span aria-hidden="true">〈 </span> {Drupal.t('Back to Browsing')} </a> diff --git a/sveltejs/src/Project/ActionButton.svelte b/sveltejs/src/Project/ActionButton.svelte index 963f314c0..98e94f05a 100644 --- a/sveltejs/src/Project/ActionButton.svelte +++ b/sveltejs/src/Project/ActionButton.svelte @@ -1,6 +1,6 @@ <script> import { onMount } from 'svelte'; - import { PACKAGE_MANAGER } from '../constants'; + import { BASE_URL, PACKAGE_MANAGER } from '../constants'; import Loading from '../Loading.svelte'; import { openPopup, getCommandsPopupMessage } from '../popup'; import AddInstallButton from './AddInstallButton.svelte'; @@ -32,9 +32,7 @@ * Return is not used, but is a promise due to this being async. */ const showStatus = async (initiate = false) => { - const url = Drupal.url( - `admin/modules/project_browser/install_in_progress/${project.id}`, - ); + const url = `${BASE_URL}admin/modules/project_browser/install_in_progress/${project.id}`; // /** diff --git a/sveltejs/src/Project/AddInstallButton.svelte b/sveltejs/src/Project/AddInstallButton.svelte index c5ab0edf1..b18c5a444 100644 --- a/sveltejs/src/Project/AddInstallButton.svelte +++ b/sveltejs/src/Project/AddInstallButton.svelte @@ -1,6 +1,6 @@ <script> import { openPopup } from '../popup'; - import { PACKAGE_MANAGER } from '../constants'; + import { BASE_URL, PACKAGE_MANAGER } from '../constants'; import ProjectButtonBase from './ProjectButtonBase.svelte'; export let project; @@ -59,9 +59,7 @@ */ async function activateProject() { loading = true; - const url = Drupal.url( - `admin/modules/project_browser/activate/${project.id}`, - ); + const url = `${BASE_URL}admin/modules/project_browser/activate/${project.id}`; const installResponse = await fetch(url); if (!installResponse.ok) { handleError(installResponse); @@ -99,9 +97,7 @@ */ async function doRequests() { loading = true; - const beginInstallUrl = Drupal.url( - `admin/modules/project_browser/install-begin/${project.id}`, - ); + const beginInstallUrl = `${BASE_URL}admin/modules/project_browser/install-begin/${project.id}`; const beginInstallResponse = await fetch(beginInstallUrl); if (!beginInstallResponse.ok) { await handleError(beginInstallResponse); @@ -112,12 +108,10 @@ // with their own endpoint. When one stage completes, the next one is // requested. const installSteps = [ - Drupal.url( - `admin/modules/project_browser/install-require/${project.id}`, - ), - Drupal.url('admin/modules/project_browser/install-apply'), - Drupal.url('admin/modules/project_browser/install-post_apply'), - Drupal.url('admin/modules/project_browser/install-destroy'), + `${BASE_URL}admin/modules/project_browser/install-require/${project.id}`, + `${BASE_URL}admin/modules/project_browser/install-apply`, + `${BASE_URL}admin/modules/project_browser/install-post_apply`, + `${BASE_URL}admin/modules/project_browser/install-destroy`, ]; // eslint-disable-next-line no-restricted-syntax,guard-for-in diff --git a/sveltejs/src/Project/Project.svelte b/sveltejs/src/Project/Project.svelte index 79370b574..6232328eb 100644 --- a/sveltejs/src/Project/Project.svelte +++ b/sveltejs/src/Project/Project.svelte @@ -7,7 +7,7 @@ import Categories from './Categories.svelte'; import ProjectIcon from './ProjectIcon.svelte'; import { focusedElement, mediaQueryValues } from '../stores'; - import { FULL_MODULE_PATH } from '../constants'; + import { BASE_URL, FULL_MODULE_PATH } from '../constants'; const { Drupal } = window; @@ -33,7 +33,7 @@ <a id="{project.project_machine_name}_title" class="pb-project__link" - href={Drupal.url(`admin/modules/browse/${project.id}`)} + href={`${BASE_URL}admin/modules/browse/${project.id}`} rel="noreferrer">{project.title}</a > </h3> diff --git a/sveltejs/src/ProjectBrowser.svelte b/sveltejs/src/ProjectBrowser.svelte index 8bf58aa2f..648f03c41 100644 --- a/sveltejs/src/ProjectBrowser.svelte +++ b/sveltejs/src/ProjectBrowser.svelte @@ -28,6 +28,7 @@ ALL_VALUES_ID, DEFAULT_SOURCE_ID, CURRENT_SOURCES_KEYS, + BASE_URL, FULL_MODULE_PATH, SORT_OPTIONS, ACTIVE_PLUGINS, @@ -102,9 +103,7 @@ ); } - const url = Drupal.url( - `drupal-org-proxy/project?${searchParams.toString()}`, - ); + const url = `${BASE_URL}drupal-org-proxy/project?${searchParams.toString()}`; const res = await fetch(url); if (res.ok) { diff --git a/sveltejs/src/constants.js b/sveltejs/src/constants.js index f2aace5f4..c70fba462 100644 --- a/sveltejs/src/constants.js +++ b/sveltejs/src/constants.js @@ -14,7 +14,8 @@ export const DEFAULT_SOURCE_ID = drupalSettings.project_browser.default_plugin_id; export const CURRENT_SOURCES_KEYS = drupalSettings.project_browser.current_sources_keys; -export const FULL_MODULE_PATH = Drupal.url(drupalSettings.project_browser.module_path); +export const BASE_URL = `${window.location.protocol}//${window.location.host}${drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix}`; +export const FULL_MODULE_PATH = `${BASE_URL}${drupalSettings.project_browser.module_path}`; export const DARK_COLOR_SCHEME = matchMedia('(forced-colors: active)').matches && matchMedia('(prefers-color-scheme: dark)').matches; -- GitLab