Merge remote-tracking branch 'upstream/main' into nyaaa

This commit is contained in:
Jędrzej Tomaszewski 2022-08-18 12:45:14 +02:00
commit 1d8fca7c1d
5 changed files with 70 additions and 23 deletions

3
.gitignore vendored
View file

@ -5,6 +5,9 @@
# Intelij-IDEA
/.idea
# Sublime Text
/*.sublime-*
# nano
.swp

View file

@ -7,40 +7,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
This changelog covers changes since Misskey v12.111.1, the version prior to the FoundKey fork.
For older Misskey versions, see [CHANGELOG-OLD.md](./CHANGELOG-OLD.md).
## [Unreleased]
## Unreleased
### Added
- Client: Readded group pages
- Client: add re-collapsing to quoted notes
### Changed
- Client: Use consistent date formatting based on language setting
- Client: Add threshold to reduce occurances of "future" timestamps
### Removed
- Okteto config and Helm chart
- Client: acrylic styling
### Fixed
- Server: Blocking remote accounts
## 13.0.0-preview1 - 2022-08-05
### Added
- Server: Replies can now be fetched recursively.
### Changed
- Server: Replies/quotes cannot have a more open visibility than the parent post
- Client: Searching in the emoji picker is now case insensitive
- Client: MFM search button changed to a no-op
- Client: Fix URL-encoded routing
- Server: Allow GET method for some endpoints
- Server: Add rate limit to i/notifications
- Server: Improve performance
- Server: Supports IPv6 on Redis transport
IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`
- Server: Mutes and blocks now apply recursively to replies and renotes
- Server: Admins can now delete accounts
- Client: Improve control panel
- Client: Show warning in control panel when there is an unresolved abuse report
- Client: For notes with specified visibility, show recipients when hovering over visibility symbol.
- Client: Add rss-ticker widget
- Client: Removing entries from a clip
- Client: Searching in the emoji picker is now case insensitive
- Client: MFM search button changed to a no-op
- Client: Fix URL-encoded routing
- Client: Poll highlights in explore page
- Make possible to delete an account by admin
- Improve player detection in URL preview
- Add Badge Image to Push Notification
- Server: Improve performance
- Server: Supports IPv6 on Redis transport.
IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`.
- Custom Emoji pages have been merged into the Instance Info page
- Mutes and blocks now apply recursively to replies and renotes.
- Client: Improve player detection in URL preview
- Client: Add Badge Image to Push Notification
- Client: Custom Emoji pages have been merged into the Instance Info page
### Removed
- Ability to show advertisements
- Server: ID generation methods other than `aid`
- Client: Ability to show advertisements
### Fixed
- Server: Video thumbnails are now generated properly
- Server: Ensure temp directory cleanup
- Favicons of remote instances now show up
- Client: Favicons of remote instances now show up
- Client: Fix switch to receive email notifications
- Client: Page freezes when trying to open configuration page of existing webhooks
- Client: Fix a bug where new chat messages don't show up
@ -48,4 +64,4 @@ For older Misskey versions, see [CHANGELOG-OLD.md](./CHANGELOG-OLD.md).
- Client: Add padding to pages
### Security
- Hide metadata of private notes
- Server: Hide metadata of private notes

View file

@ -9,22 +9,26 @@
<script lang="ts" setup>
import { onUnmounted } from 'vue';
import { i18n } from '@/i18n';
import { lang } from '@/config';
const props = withDefaults(defineProps<{
time: Date | string;
format?: 'both' | 'date' | 'time';
mode?: 'relative' | 'absolute' | 'detail';
utc?: boolean;
}>(), {
format: 'both',
mode: 'relative',
utc: false,
});
const _time = typeof props.time === 'string' ? new Date(props.time) : props.time;
const absolute = ((): string => {
const options = props.utc ? { timeZone: 'UTC' } : {};
switch (props.format) {
case 'date': return _time.toLocaleDateString();
case 'time': return _time.toLocaleTimeString();
default: return _time.toLocaleString();
case 'date': return _time.toLocaleDateString(lang ?? 'en-US', options);
case 'time': return _time.toLocaleTimeString(lang ?? 'en-US', options);
default: return _time.toLocaleString(lang ?? 'en-US', options);
}
})();

View file

@ -1,5 +1,5 @@
<template>
<div class="wrmlmaau" :class="{ collapsed }">
<div class="wrmlmaau" :class="{ collapsed, isLong }">
<div class="body">
<span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span>
<MkA v-if="note.replyId" class="reply" :to="`/notes/${note.replyId}`"><i class="fas fa-reply"></i></MkA>
@ -14,9 +14,12 @@
<summary>{{ i18n.ts.poll }}</summary>
<XPoll :note="note"/>
</details>
<button v-if="collapsed" class="fade _button" @click="collapsed = false">
<button v-if="isLong && collapsed" class="fade _button" @click="collapsed = false">
<span>{{ i18n.ts.showMore }}</span>
</button>
<button v-if="isLong && !collapsed" class="showLess _button" @click="collapsed = true">
<span>{{ i18n.ts.showLess }}</span>
</button>
</div>
</template>
@ -30,11 +33,14 @@ const props = defineProps<{
note: misskey.entities.Note;
}>();
const collapsed = $ref(
const isLong = (
props.note.cw == null && props.note.text != null && (
(props.note.text.split('\n').length > 9) ||
(props.note.text.length > 500)
));
)
);
const collapsed = $ref(props.note.cw == null && isLong);
</script>
<style lang="scss" scoped>
@ -84,5 +90,23 @@ const collapsed = $ref(
}
}
}
&.isLong {
> .showLess {
width: 100%;
margin-top: 1em;
position: sticky;
bottom: 1em;
> span {
display: inline-block;
background: var(--panel);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
box-shadow: 0 0 7px 7px var(--bg);
}
}
}
}
</style>

View file

@ -51,7 +51,7 @@
</dl>
<dl v-if="user.birthday" class="field">
<dt class="name"><i class="fas fa-birthday-cake fa-fw"></i> {{ i18n.ts.birthday }}</dt>
<dd class="value"><MkTime format="date" mode="detail" :time="user.birthday"/></dd>
<dd class="value"><MkTime format="date" mode="detail" :time="user.birthday" :utc="true"/></dd>
</dl>
<dl class="field">
<dt class="name"><i class="fas fa-calendar-alt fa-fw"></i> {{ i18n.ts.registeredDate }}</dt>