mirror of
https://github.com/penpot/penpot.git
synced 2026-09-19 10:26:14 +00:00
Move SPA routing out of the URL fragment into the normal query string. The screen travels in a reserved `screen` key holding the route name (`?screen=workspace&team-id=…`); every other param keeps its name. `rt/nav` and `rt/resolve` keep their signatures. This deletes the fragment-mirroring URL surgery, simplifies link-preview (the server sees everything) and nginx (single path, no SPA fallback rules needed), and migrates OIDC redirects, email links, e2e helpers and plugin test utils to the new format. Legacy `#/…` URLs translate client-side for one Penpot version (`legacy-routes`, marked TODO(next-version)); non-SPA paths are untouched. AI-assisted-by: muse-spark-1.3-contributor
255 lines
9.4 KiB
HTML
255 lines
9.4 KiB
HTML
<!doctype html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"
|
|
xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
|
|
<head>
|
|
<title>
|
|
</title>
|
|
<!--[if !mso]><!-- -->
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<!--<![endif]-->
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<style type="text/css">
|
|
#outlook a {
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
-webkit-text-size-adjust: 100%;
|
|
-ms-text-size-adjust: 100%;
|
|
}
|
|
|
|
table,
|
|
td {
|
|
border-collapse: collapse;
|
|
mso-table-lspace: 0pt;
|
|
mso-table-rspace: 0pt;
|
|
}
|
|
|
|
img {
|
|
border: 0;
|
|
height: auto;
|
|
line-height: 100%;
|
|
outline: none;
|
|
text-decoration: none;
|
|
-ms-interpolation-mode: bicubic;
|
|
}
|
|
|
|
p {
|
|
display: block;
|
|
margin: 13px 0;
|
|
}
|
|
</style>
|
|
<!--[if mso]>
|
|
<xml>
|
|
<o:OfficeDocumentSettings>
|
|
<o:AllowPNG/>
|
|
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
</o:OfficeDocumentSettings>
|
|
</xml>
|
|
<![endif]-->
|
|
<!--[if lte mso 11]>
|
|
<style type="text/css">
|
|
.mj-outlook-group-fix { width:100% !important; }
|
|
</style>
|
|
<![endif]-->
|
|
<!--[if !mso]><!-->
|
|
<link href="https://fonts.googleapis.com/css?family=Source%20Sans%20Pro" rel="stylesheet" type="text/css">
|
|
<style type="text/css">
|
|
@import url(https://fonts.googleapis.com/css?family=Source%20Sans%20Pro);
|
|
</style>
|
|
<!--<![endif]-->
|
|
<style type="text/css">
|
|
@media only screen and (min-width:480px) {
|
|
.mj-column-per-100 {
|
|
width: 100% !important;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.mj-column-px-425 {
|
|
width: 425px !important;
|
|
max-width: 425px;
|
|
}
|
|
}
|
|
</style>
|
|
<style type="text/css">
|
|
@media only screen and (max-width:480px) {
|
|
table.mj-full-width-mobile {
|
|
width: 100% !important;
|
|
}
|
|
|
|
td.mj-full-width-mobile {
|
|
width: auto !important;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body style="background-color:#E5E5E5;">
|
|
<div style="background-color:#E5E5E5;">
|
|
<!--[if mso | IE]>
|
|
<table
|
|
align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:600px;" width="600"
|
|
>
|
|
<tr>
|
|
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
|
|
<![endif]-->
|
|
<div style="margin:0px auto;max-width:600px;">
|
|
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;">
|
|
<tbody>
|
|
<tr>
|
|
<td style="direction:ltr;font-size:0px;padding:0;text-align:center;">
|
|
<!--[if mso | IE]>
|
|
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
|
|
|
|
<tr>
|
|
|
|
<td
|
|
class="" style="vertical-align:top;width:600px;"
|
|
>
|
|
<![endif]-->
|
|
<div class="mj-column-per-100 mj-outlook-group-fix"
|
|
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
|
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;"
|
|
width="100%">
|
|
<tr>
|
|
<td align="left" style="font-size:0px;padding:16px;word-break:break-word;">
|
|
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
|
|
style="border-collapse:collapse;border-spacing:0px;">
|
|
<tbody>
|
|
<tr>
|
|
<td style="width:97px;">
|
|
<img height="32" src="{{ public-uri }}/images/email/logo-penpot.svg"
|
|
style="border:0;display:block;outline:none;text-decoration:none;height:32px;width:100%;font-size:13px;"
|
|
width="97" />
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<!--[if mso | IE]>
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
<![endif]-->
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!--[if mso | IE]>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table
|
|
align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:600px;" width="600"
|
|
>
|
|
<tr>
|
|
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
|
|
<![endif]-->
|
|
<div style="background:#FFFFFF;background-color:#FFFFFF;margin:0px auto;max-width:600px;">
|
|
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
|
|
style="background:#FFFFFF;background-color:#FFFFFF;width:100%;">
|
|
<tbody>
|
|
<tr>
|
|
<td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
|
|
<!--[if mso | IE]>
|
|
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
|
|
|
|
<tr>
|
|
|
|
<td
|
|
class="" style="vertical-align:top;width:600px;"
|
|
>
|
|
<![endif]-->
|
|
<div class="mj-column-per-100 mj-outlook-group-fix"
|
|
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
|
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;"
|
|
width="100%">
|
|
<tr>
|
|
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
|
<div
|
|
style="font-family:Source Sans Pro, sans-serif;font-size:24px;font-weight:600;line-height:150%;text-align:left;color:#000000;">
|
|
Hello!</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
|
<div
|
|
style="font-family:Source Sans Pro, sans-serif;font-size:16px;line-height:150%;text-align:left;color:#000000;">
|
|
<p>
|
|
{{requested-by|abbreviate:25}} ({{requested-by-email}}) wants to have view-only access to the
|
|
file named “{{file-name|abbreviate:25}}”.
|
|
</p>
|
|
<p>
|
|
Since this file is in your Personal Projects, you can provide access by sending a view-only link.
|
|
This will allow {{requested-by|abbreviate:25}} to view the content without making any changes.
|
|
</p>
|
|
<p>To proceed, please click the button below to generate and send the view-only link:</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" vertical-align="middle"
|
|
style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
|
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
|
|
style="border-collapse:separate;line-height:100%">
|
|
<tr>
|
|
<td align="center" bgcolor="#6911d4" role="presentation"
|
|
style="border:none;border-radius:8px;cursor:auto;mso-padding-alt:10px 25px;background:#6911d4;"
|
|
valign="middle">
|
|
<a href="{{ public-uri }}/?screen=viewer&file-id={{file-id}}&page-id={{page-id}}§ion=interactions&index=0&share=true"
|
|
style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;"
|
|
target="_blank"> SEND A VIEW-ONLY LINK </a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
|
<div
|
|
style="font-family:Source Sans Pro, sans-serif;font-size:16px;line-height:150%;text-align:left;color:#000000;">
|
|
<p>If you do not wish to grant access at this time, you can simply disregard this email.</p>
|
|
<p>Thank you</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
|
<div
|
|
style="font-family:Source Sans Pro, sans-serif;font-size:16px;line-height:150%;text-align:left;color:#000000;">
|
|
The Penpot team.</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<!--[if mso | IE]>
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
<![endif]-->
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
{% include "app/email/includes/footer.html" %}
|
|
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|