port to bitty 7.0.0-rc1
This commit is contained in:
@@ -10,10 +10,10 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<link rel="stylesheet" href="{{ ("/static/css/%s.css" % get_prefers_theme()) | cachebust }}">
|
<link rel="stylesheet" href="{{ ("/static/css/%s.css" % get_prefers_theme()) | cachebust }}">
|
||||||
<link rel="icon" type="image/png" href="/static/favicon.png">
|
<link rel="icon" type="image/png" href="/static/favicon.png">
|
||||||
<script src="{{ '/static/js/vnd/bitty-6.0.0-rc3.min.js' | cachebust }}" type="module"></script>
|
<script src="{{ '/static/js/vnd/bitty-7.0.0-rc1.min.js' | cachebust }}" type="module"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<bitty-6-0 data-connect="{{ '/static/js/bitties/pyrom-bitty.js' | cachebust }}">
|
<bitty-7-0 data-connect="{{ '/static/js/bitties/pyrom-bitty.js' | cachebust }}">
|
||||||
{% include 'common/topnav.html' %}
|
{% include 'common/topnav.html' %}
|
||||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
@@ -24,6 +24,6 @@
|
|||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
{% include 'common/footer.html' %}
|
{% include 'common/footer.html' %}
|
||||||
</bitty-6-0>
|
</bitty-7-0>
|
||||||
<script src="{{ "/static/js/ui.js" | cachebust }}"></script>
|
<script src="{{ "/static/js/ui.js" | cachebust }}"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1382,7 +1382,7 @@ footer {
|
|||||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
padding: 0 10px;
|
padding: 0 20px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
.bookmark-dropdown-item.selected {
|
.bookmark-dropdown-item.selected {
|
||||||
|
|||||||
@@ -1382,7 +1382,7 @@ footer {
|
|||||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
padding: 0 10px;
|
padding: 0 20px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
.bookmark-dropdown-item.selected {
|
.bookmark-dropdown-item.selected {
|
||||||
|
|||||||
@@ -1382,7 +1382,7 @@ footer {
|
|||||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%221.5%22%20y%3D%221.5%22%20width%3D%2221%22%20height%3D%2221%22%20rx%3D%223%22%20stroke%3D%22currentColor%22%20stroke-width%3D%223%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
padding: 0 6px;
|
padding: 0 24px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
.bookmark-dropdown-item.selected {
|
.bookmark-dropdown-item.selected {
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ const delay = ms => {return new Promise(resolve => setTimeout(resolve, ms))}
|
|||||||
|
|
||||||
export default class {
|
export default class {
|
||||||
async showBookmarkMenu(ev, el) {
|
async showBookmarkMenu(ev, el) {
|
||||||
if ((ev.sender.dataset.bookmarkId === el.getString('bookmarkId')) && el.childElementCount === 0) {
|
if ((el.sender.dataset.bookmarkId === el.ds('bookmarkId')) && el.childElementCount === 0) {
|
||||||
const searchParams = new URLSearchParams({
|
const searchParams = new URLSearchParams({
|
||||||
'id': ev.sender.dataset.conceptId,
|
'id': el.sender.dataset.conceptId,
|
||||||
'require_reload': el.dataset.requireReload,
|
'require_reload': el.dataset.requireReload,
|
||||||
});
|
});
|
||||||
const bookmarkMenuHref = `${bookmarkMenuHrefTemplate}/${ev.sender.dataset.bookmarkType}?${searchParams}`;
|
const bookmarkMenuHref = `${bookmarkMenuHrefTemplate}/${el.sender.dataset.bookmarkType}?${searchParams}`;
|
||||||
const res = await this.api.getHTML(bookmarkMenuHref);
|
const res = await this.api.getHTML(bookmarkMenuHref);
|
||||||
if (res.error) {
|
if (res.error) {
|
||||||
return;
|
return;
|
||||||
@@ -49,9 +49,9 @@ export default class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectBookmarkCollection(ev, el) {
|
selectBookmarkCollection(ev, el) {
|
||||||
const clicked = ev.sender;
|
const clicked = el.sender;
|
||||||
|
|
||||||
if (ev.sender === el) {
|
if (el.sender === el) {
|
||||||
if (clicked.classList.contains('selected')) {
|
if (clicked.classList.contains('selected')) {
|
||||||
clicked.classList.remove('selected');
|
clicked.classList.remove('selected');
|
||||||
} else {
|
} else {
|
||||||
@@ -63,7 +63,7 @@ export default class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async saveBookmarks(ev, el) {
|
async saveBookmarks(ev, el) {
|
||||||
const bookmarkHref = el.getString('bookmarkEndpoint');
|
const bookmarkHref = el.ds('bookmarkEndpoint');
|
||||||
const collection = el.querySelector('.bookmark-dropdown-item.selected');
|
const collection = el.querySelector('.bookmark-dropdown-item.selected');
|
||||||
let data = {};
|
let data = {};
|
||||||
if (collection) {
|
if (collection) {
|
||||||
@@ -72,7 +72,7 @@ export default class {
|
|||||||
data['memo'] = el.querySelector('.bookmark-memo-input').value;
|
data['memo'] = el.querySelector('.bookmark-memo-input').value;
|
||||||
} else {
|
} else {
|
||||||
data['operation'] = 'remove';
|
data['operation'] = 'remove';
|
||||||
data['collection_id'] = el.getString('originallyContainedIn');
|
data['collection_id'] = el.ds('originallyContainedIn');
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = {
|
const options = {
|
||||||
@@ -82,7 +82,7 @@ export default class {
|
|||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
const requireReload = el.getInt('requireReload') !== 0;
|
const requireReload = el.dsInt('requireReload') !== 0;
|
||||||
el.remove();
|
el.remove();
|
||||||
await fetch(bookmarkHref, options);
|
await fetch(bookmarkHref, options);
|
||||||
if (requireReload) {
|
if (requireReload) {
|
||||||
@@ -103,10 +103,10 @@ export default class {
|
|||||||
toggleAccordion(ev, el) {
|
toggleAccordion(ev, el) {
|
||||||
const accordion = el;
|
const accordion = el;
|
||||||
const header = accordion.querySelector('.accordion-header');
|
const header = accordion.querySelector('.accordion-header');
|
||||||
if (!header.contains(ev.sender)){
|
if (!header.contains(el.sender)){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const btn = ev.sender;
|
const btn = el.sender;
|
||||||
const content = el.querySelector('.accordion-content');
|
const content = el.querySelector('.accordion-content');
|
||||||
// these are all meant to be in sync
|
// these are all meant to be in sync
|
||||||
accordion.classList.toggle('hidden');
|
accordion.classList.toggle('hidden');
|
||||||
@@ -116,15 +116,15 @@ export default class {
|
|||||||
|
|
||||||
toggleTab(ev, el) {
|
toggleTab(ev, el) {
|
||||||
const tabButtonsContainer = el.querySelector('.tab-buttons');
|
const tabButtonsContainer = el.querySelector('.tab-buttons');
|
||||||
if (!el.contains(ev.sender)) {
|
if (!el.contains(el.sender)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev.sender.classList.contains('active')) {
|
if (el.sender.classList.contains('active')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const targetId = ev.sender.getString('targetId');
|
const targetId = el.senderDs('targetId');
|
||||||
const contents = el.querySelectorAll('.tab-content');
|
const contents = el.querySelectorAll('.tab-content');
|
||||||
for (let content of contents) {
|
for (let content of contents) {
|
||||||
if (content.id === targetId) {
|
if (content.id === targetId) {
|
||||||
@@ -144,7 +144,7 @@ export default class {
|
|||||||
|
|
||||||
#previousMarkup = null;
|
#previousMarkup = null;
|
||||||
async babycodePreview(ev, el) {
|
async babycodePreview(ev, el) {
|
||||||
if (ev.sender.classList.contains('active')) {
|
if (el.sender.classList.contains('active')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,9 +199,9 @@ export default class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
insertBabycodeTag(ev, el) {
|
insertBabycodeTag(ev, el) {
|
||||||
const tagStart = ev.sender.getString('tag');
|
const tagStart = el.senderDs('tag');
|
||||||
const breakLine = 'breakLine' in ev.sender.dataset;
|
const breakLine = 'breakLine' in el.sender.dataset;
|
||||||
const prefill = 'prefill' in ev.sender.dataset ? ev.sender.dataset.prefill : '';
|
const prefill = 'prefill' in el.sender.dataset ? el.sender.dataset.prefill : '';
|
||||||
|
|
||||||
const hasAttr = tagStart[tagStart.length - 1] === '=';
|
const hasAttr = tagStart[tagStart.length - 1] === '=';
|
||||||
let tagEnd = tagStart;
|
let tagEnd = tagStart;
|
||||||
@@ -249,13 +249,13 @@ export default class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addQuote(ev, el) {
|
addQuote(ev, el) {
|
||||||
el.value += ev.sender.value;
|
el.value += el.sender.value;
|
||||||
el.scrollIntoView();
|
el.scrollIntoView();
|
||||||
el.focus();
|
el.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
convertTimestamps(ev, el) {
|
convertTimestamps(ev, el) {
|
||||||
const timestamp = el.getInt('utc');
|
const timestamp = el.dsInt('utc');
|
||||||
if (!isNaN(timestamp)) {
|
if (!isNaN(timestamp)) {
|
||||||
const date = new Date(timestamp * 1000);
|
const date = new Date(timestamp * 1000);
|
||||||
el.textContent = date.toLocaleString();
|
el.textContent = date.toLocaleString();
|
||||||
@@ -272,7 +272,7 @@ export default class {
|
|||||||
this.#currentUsername = userInfo.value.user.username;
|
this.#currentUsername = userInfo.value.user.username;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (el.getString('username') === this.#currentUsername) {
|
if (el.ds('username') === this.#currentUsername) {
|
||||||
el.classList.add('me');
|
el.classList.add('me');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1
data/static/js/vnd/bitty-6.0.0-rc3.min.js
vendored
1
data/static/js/vnd/bitty-6.0.0-rc3.min.js
vendored
File diff suppressed because one or more lines are too long
1
data/static/js/vnd/bitty-7.0.0-rc1.min.js
vendored
Normal file
1
data/static/js/vnd/bitty-7.0.0-rc1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1306,7 +1306,7 @@ $bookmark_dropdown_item_background_hover: $BUTTON_COLOR_HOVER !default;
|
|||||||
$bookmark_dropdown_item_background_selected: $BUTTON_COLOR_2 !default;
|
$bookmark_dropdown_item_background_selected: $BUTTON_COLOR_2 !default;
|
||||||
$bookmark_dropdown_item_background_selected_hover: $BUTTON_COLOR_2_HOVER !default;
|
$bookmark_dropdown_item_background_selected_hover: $BUTTON_COLOR_2_HOVER !default;
|
||||||
$bookmark_dropdown_item_icon_size: 24px !default;
|
$bookmark_dropdown_item_icon_size: 24px !default;
|
||||||
$bookmark_dropdown_item_icon_padding: 0 $MEDIUM_PADDING !default;
|
$bookmark_dropdown_item_icon_padding: 0 $BIG_PADDING !default;
|
||||||
.bookmark-dropdown-item {
|
.bookmark-dropdown-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ $br: 16px;
|
|||||||
|
|
||||||
$pagebutton_min_width: 36px,
|
$pagebutton_min_width: 36px,
|
||||||
$quote_background_color: #0002,
|
$quote_background_color: #0002,
|
||||||
|
|
||||||
|
$bookmark_dropdown_item_icon_padding: 0 24px,
|
||||||
);
|
);
|
||||||
|
|
||||||
#topnav {
|
#topnav {
|
||||||
|
|||||||
Reference in New Issue
Block a user