--- loncom/interface/lonhtmlcommon.pm 2023/09/27 14:52:26 1.410 +++ loncom/interface/lonhtmlcommon.pm 2024/06/03 20:41:06 1.413 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.410 2023/09/27 14:52:26 raeburn Exp $ +# $Id: lonhtmlcommon.pm,v 1.413 2024/06/03 20:41:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -231,15 +231,16 @@ sub dependencycheck_js { $link = '/adm/dependencies?symb='.&HTML::Entities::encode($symb,'<>&"'); } elsif ($folderpath) { $link = '/adm/dependencies?folderpath='.&HTML::Entities::encode($folderpath,'<>&"'); - $url = $uri; + $url = $uri; } elsif ($uri =~ m{^/public/$match_domain/$match_courseid/syllabus$}) { $link = '/adm/dependencies'; } - $link .= (($link=~/\?/)?'&':'?').'title='. + $link .= (($link=~/\?/)?'&':'?').'title='. &HTML::Entities::encode($title,'<>&"'); if ($url) { $link .= '&url='.&HTML::Entities::encode($url,'<>&"'); } + &js_escape(\$link); return < // - - + + + @@ -1849,13 +1850,19 @@ sub dash_to_minus_js { document.addEventListener("DOMContentLoaded", (event) => { const numresp = document.querySelectorAll("input.LC_numresponse_text"); if (numresp.length > 0) { - numresp.forEach((el) => { + Array.from(numresp).forEach((el) => { el.addEventListener("paste", (e) => { e.preventDefault(); e.stopPropagation(); let p = (e.clipboardData || window.clipboardData).getData("text"); p.toString(); - p = p.replace(/\p{Dash}/gu, '-'); + var regex; + try + { + regex = new RegExp ("\\p{Dash}", "gu"); + } + catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); } + p = p.replace(regex,'-'); putInText(p); }); });