diff --git a/integ_tests/test_sharing_login.py b/integ_tests/test_sharing_login.py index fad534be..b8bdaefd 100644 --- a/integ_tests/test_sharing_login.py +++ b/integ_tests/test_sharing_login.py @@ -19,6 +19,7 @@ Integration tests for sharing (login/logout specific) """ import pathlib +import re from typing import Any, Generator import pytest @@ -71,7 +72,7 @@ def test_incoming_shares(page: Page, radicale_server: str, permissions: str) -> page.locator( "tr[data-name='incomingsharerowtemplate']:not(.hidden) input[data-name='pathortoken']" ) - ).to_have_value("mapped") + ).to_have_value(re.compile(r".*mapped/")) # 5. Max enables and shows the share # Initially, it's disabled and not shown (security by default) diff --git a/radicale/web/internal_data/css/main.css b/radicale/web/internal_data/css/main.css index acb75fd6..403244b4 100644 --- a/radicale/web/internal_data/css/main.css +++ b/radicale/web/internal_data/css/main.css @@ -412,6 +412,65 @@ input:focus-visible { border-width: 1px !important; } +.url-input-wrapper { + position: relative; + width: 100%; + margin-bottom: 0; + display: flex; + align-items: center; + clear: both; +} + +.url-input-wrapper input { + flex: 1; + min-width: 0; + padding-right: 45px !important; + box-sizing: border-box; + width: 100% !important; + margin-bottom: 0 !important; +} + +#collectionsscene article .url-input-wrapper { + margin-bottom: 15px; +} + +.copy-btn { + flex: none; + margin-left: -38px; + background: transparent; + border: none; + color: #2494fe; + font-size: 1.25em; + cursor: pointer; + padding: 0; + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: background-color 0.2s, color 0.2s, transform 0.1s; + line-height: 1; + z-index: 2; + float: none; + margin-bottom: 0; + margin-top: 0; + margin-right: 8px; +} + +.copy-btn:hover { + background-color: #f0f7ff; + color: #055fb5; +} + +.copy-btn:active { + transform: scale(0.9); +} + +.copy-btn.copied { + color: #4e9a06; +} + input[type=radio], input[type=checkbox] { width: auto; @@ -507,21 +566,21 @@ button.inline { } .pill { - display: inline-block; - padding: 0.25em 0.6em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.375rem; - background-color: #6c757d; - color: #fff; - margin: 0 2px; - width: 1.4em; + display: inline-block; + padding: 0.25em 0.6em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.375rem; + background-color: #6c757d; + color: #fff; + margin: 0 2px; + width: 1.4em; } .hidden { display: none !important; -} +} \ No newline at end of file diff --git a/radicale/web/internal_data/index.html b/radicale/web/internal_data/index.html index d7d6c4ef..baa242c7 100644 --- a/radicale/web/internal_data/index.html +++ b/radicale/web/internal_data/index.html @@ -71,7 +71,7 @@

Title

- + Address book Calendar, journal and tasks Calendar and journal @@ -83,7 +83,10 @@ Webcal - +
+ + +

Description