Merge branches 'develop' and 'develop' of codeberg.org:calckey/calckey into develop
This commit is contained in:
commit
e615ff5ebd
|
@ -226,6 +226,8 @@ _mfm:
|
|||
play: Posar en marxa MFM
|
||||
warn: MFM pot contenir animacions cridaneres o que es mouen ràpidament
|
||||
alwaysPlay: Reprodueix automàticament tots els MFM animats
|
||||
fade: Esvair
|
||||
fadeDescription: Esvaeix el contingut cap a dintre i cap en fora.
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Menció"
|
||||
|
@ -712,6 +714,9 @@ _notification:
|
|||
pollEnded: Es resultat de la enquesta ja està disponible
|
||||
emptyPushNotificationMessage: Les notificacions push s'han actualitzat
|
||||
youWereInvitedToGroup: "{userName} t'ha convidat a un grup"
|
||||
reacted: Ha reaccionat a la teva publicació
|
||||
renoted: Ha impulsat la teva publicació
|
||||
voted: Ha votat a la teva enquesta
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Notificacions"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1962,6 +1962,9 @@ _notification:
|
|||
youWereInvitedToGroup: "{userName} invited you to a group"
|
||||
pollEnded: "Poll results have become available"
|
||||
emptyPushNotificationMessage: "Push notifications have been updated"
|
||||
reacted: "reacted to your post"
|
||||
renoted: "boosted your post"
|
||||
voted: "voted on your poll"
|
||||
_types:
|
||||
all: "All"
|
||||
follow: "New followers"
|
||||
|
|
|
@ -102,7 +102,7 @@ unfollow: "Ontvolgen"
|
|||
followRequestPending: "Wachten op goedkeuring volgverzoek"
|
||||
enterEmoji: "Voer een emoji in"
|
||||
renote: "Boost"
|
||||
unrenote: "Stop herdelen"
|
||||
unrenote: "Boost intrekken"
|
||||
renoted: "Boosted."
|
||||
cantRenote: "Dit bericht kan niet worden geboost."
|
||||
cantReRenote: "Een boost kan niet worden geboost."
|
||||
|
@ -145,7 +145,7 @@ autoAcceptFollowed: "Accepteer verzoeken om jezelf te volgen vanzelf als je de v
|
|||
al volgt"
|
||||
addAccount: "Account toevoegen"
|
||||
loginFailed: "Aanmelding mislukt."
|
||||
showOnRemote: "Toon op de externe instantie."
|
||||
showOnRemote: "Bekijk op de externe server"
|
||||
general: "Algemeen"
|
||||
wallpaper: "Achtergrond"
|
||||
setWallpaper: "Achtergrond instellen"
|
||||
|
@ -164,7 +164,7 @@ selectUser: "Kies een gebruiker"
|
|||
recipient: "Ontvanger(s)"
|
||||
annotation: "Reacties"
|
||||
federation: "Federatie"
|
||||
instances: "Server"
|
||||
instances: "Servers"
|
||||
registeredAt: "Geregistreerd op"
|
||||
latestRequestSentAt: "Laatste aanvraag verstuurd"
|
||||
latestRequestReceivedAt: "Laatste aanvraag ontvangen"
|
||||
|
@ -189,8 +189,8 @@ instanceInfo: "Serverinformatie"
|
|||
statistics: "Statistieken"
|
||||
clearQueue: "Wachtrij wissen"
|
||||
clearQueueConfirmTitle: "Weet je zeker dat je de wachtrji leeg wil maken?"
|
||||
clearQueueConfirmText: "Niet-bezorgde biljetten die nog in de wachtrij staan, worden
|
||||
niet gefedereerd. Meestal is deze operatie niet nodig."
|
||||
clearQueueConfirmText: "Niet-bezorgde posts die nog in de wachtrij staan, worden niet
|
||||
gefedereerd. Meestal is deze operatie niet nodig."
|
||||
clearCachedFiles: "Cache opschonen"
|
||||
clearCachedFilesConfirm: "Weet je zeker dat je alle externe bestanden in de cache
|
||||
wilt verwijderen?"
|
||||
|
@ -519,3 +519,117 @@ renoteUnmute: Ontdemp boosts
|
|||
jumpToPrevious: Spring naar vorige
|
||||
caseSensitive: Hoofdlettergevoelig
|
||||
cw: Inhoudswaarschuwing
|
||||
recaptcha: reCAPTCHA
|
||||
enableRecaptcha: reCAPTCHA inschakelen
|
||||
recaptchaSiteKey: Site sleutel
|
||||
notFoundDescription: Een pagina met deze URL kon niet worden gevonden.
|
||||
uploadFolder: Standaard map voor uploads
|
||||
markAsReadAllNotifications: Markeer alle notificaties als gelezen
|
||||
text: Tekst
|
||||
enable: Inschakelen
|
||||
or: Of
|
||||
language: Taal
|
||||
securityKey: Veiligheidssleutel
|
||||
groupInvited: Je bent voor een groep uitgenodigd
|
||||
docSource: Bron van dit document
|
||||
createAccount: Maak account aan
|
||||
groupName: Groepsnaam
|
||||
members: Leden
|
||||
messagingWithUser: Privé chat
|
||||
messagingWithGroup: Groepschat
|
||||
title: Titel
|
||||
createGroup: Maak een groep
|
||||
ownedGroups: Beheerde groepen
|
||||
invites: Uitnodigingen
|
||||
useOsNativeEmojis: Gebruik je standaard besturingssysteem Emojis
|
||||
disableDrawer: Gebruik niet de lade-stijl menus
|
||||
joinOrCreateGroup: Krijg een uitnodiging voor een groep of maak er zelf eentje aan.
|
||||
noHistory: Geen geschiedenis beschikbaar
|
||||
signinHistory: Inloggeschiedenis
|
||||
available: Beschikbaar
|
||||
unavailable: Niet beschikbaar
|
||||
tooShort: Te kort
|
||||
signinFailed: Niet gelukt om in te loggen. Gebruikersnaam of wachtwoord is incorrect.
|
||||
tapSecurityKey: Tik je veiligheidssleutel aan
|
||||
recaptchaSecretKey: Geheime sleutel
|
||||
antennas: Antennes
|
||||
antennaUsersDescription: Zet één gebruikersnaam per regel neer
|
||||
notesAndReplies: Posts en antwoorden
|
||||
withFiles: Met bestanden
|
||||
popularUsers: Populaire gebruikers
|
||||
recentlyUpdatedUsers: Recente actieve gebruikers
|
||||
recentlyRegisteredUsers: Nieuwe gebruikers
|
||||
recentlyDiscoveredUsers: Nieuwe ontdekte gebruikers
|
||||
exploreUsersCount: Er zijn {count} gebruikers
|
||||
about: Over
|
||||
exploreFediverse: Ontdek de Fediverse
|
||||
popularTags: Populaire labels
|
||||
moderation: Moderatie
|
||||
nUsersMentioned: Genoemd door {n} gebruikers
|
||||
markAsReadAllUnreadNotes: Markeer alle posts als gelezen
|
||||
markAsReadAllTalkMessages: Markeer alle berichten als gelezen
|
||||
help: Help
|
||||
inputMessageHere: Schrijf hier je bericht
|
||||
close: Sluiten
|
||||
group: Groep
|
||||
groups: Groepen
|
||||
newMessageExists: Er zijn nieuwe berichten
|
||||
next: Volgende
|
||||
noteOf: Post door {user}
|
||||
inviteToGroup: Nodig uit voor de groep
|
||||
quoteAttached: Quote
|
||||
noMessagesYet: Nog geen berichten
|
||||
weakPassword: Zwak wachtwoord
|
||||
normalPassword: Middelmatig wachtwoord
|
||||
strongPassword: Sterk wachtwoord
|
||||
onlyOneFileCanBeAttached: Je kan maar één bestand toevoegen aan je bericht
|
||||
invitationCode: Uitnodigingscode
|
||||
checking: Controleren...
|
||||
uiLanguage: Gebruikersinterface taal
|
||||
aboutX: Over {x}
|
||||
youHaveNoGroups: Je hebt geen groepen
|
||||
disableAnimatedMfm: Schakel MFM met animaties uit
|
||||
passwordMatched: Komt overeen
|
||||
passwordNotMatched: Komt niet overeen
|
||||
signinWith: Log in met {x}
|
||||
fontSize: Tekstgrootte
|
||||
openImageInNewTab: Open afbeeldingen in een nieuwe tab
|
||||
category: Categorie
|
||||
tags: Labels
|
||||
existingAccount: Bestaand account
|
||||
regenerate: Hernieuwen
|
||||
dayOverDayChanges: Verschillen met gisteren
|
||||
appearance: Uiterlijk
|
||||
local: Lokaal
|
||||
remote: Extern
|
||||
total: Totaal
|
||||
weekOverWeekChanges: Verschillen met vorige week
|
||||
hcaptcha: hCaptcha
|
||||
enableHcaptcha: hCaptcha inschakelen
|
||||
hcaptchaSiteKey: Site sleutel
|
||||
hcaptchaSecretKey: Geheime sleutel
|
||||
withReplies: Met antwoorden
|
||||
twoStepAuthentication: Tweefactorauthenticatie
|
||||
moderator: Moderator
|
||||
invitations: Uitnodigingen
|
||||
tooLong: Te lang
|
||||
doing: Verwerken...
|
||||
silencedInstances: Gedempte Servers
|
||||
cacheRemoteFilesDescription: Als deze instelling is uitgeschakeld, worden externe
|
||||
bestanden direct van de externe server geladen. Het uitschakelen zal opslagruimte
|
||||
verminderen, maar verkeer zal toenemen, omdat er geen thumbnails gemaakt zullen
|
||||
worden.
|
||||
flagSpeakAsCatDescription: Je posts zullen worden ge-'nyanified' als je in kat-modus
|
||||
zit
|
||||
avoidMultiCaptchaConfirm: Het gebruik van meerdere Captcha systemen kan voor storing
|
||||
zorgen tussen ze. Wil je de andere actieve Captcha systemen uitschakelen? Als je
|
||||
ze ingeschakeld wilt houden, klik op annuleren.
|
||||
silence: Dempen
|
||||
silenceConfirm: Weet je zeker dat je deze gebruiker wilt dempen?
|
||||
unsilence: Ontdempen
|
||||
unsilenceConfirm: Weet je zeker dat je het dempen van deze gebruiker ongedaan wilt
|
||||
maken?
|
||||
silenceThisInstance: Demp deze server
|
||||
silenced: Gedempt
|
||||
disablingTimelinesInfo: Beheerders en moderators zullen altijd toegang hebben tot
|
||||
alle tijdlijnen, zelfs als deze uitgeschakeld zijn.
|
||||
|
|
|
@ -2,6 +2,7 @@ import define from "../../../define.js";
|
|||
import { Emojis } from "@/models/index.js";
|
||||
import { toPuny } from "@/misc/convert-host.js";
|
||||
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin"],
|
||||
|
@ -106,7 +107,9 @@ export default define(meta, paramDef, async (ps) => {
|
|||
}
|
||||
|
||||
if (ps.query) {
|
||||
q.andWhere("emoji.name like :query", { query: `%${ps.query}%` });
|
||||
q.andWhere("emoji.name like :query", {
|
||||
query: `%${sqlLikeEscape(ps.query)}%`,
|
||||
});
|
||||
}
|
||||
|
||||
const emojis = await q.orderBy("emoji.id", "DESC").take(ps.limit).getMany();
|
||||
|
|
|
@ -2,6 +2,7 @@ import define from "../../../define.js";
|
|||
import { Emojis } from "@/models/index.js";
|
||||
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
|
||||
import type { Emoji } from "@/models/entities/emoji.js";
|
||||
//import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin"],
|
||||
|
@ -96,7 +97,7 @@ export default define(meta, paramDef, async (ps) => {
|
|||
let emojis: Emoji[];
|
||||
|
||||
if (ps.query) {
|
||||
//q.andWhere('emoji.name ILIKE :q', { q: `%${ps.query}%` });
|
||||
//q.andWhere('emoji.name ILIKE :q', { q: `%${sqlLikeEscape(ps.query)}%` });
|
||||
//const emojis = await q.take(ps.limit).getMany();
|
||||
|
||||
emojis = await q.getMany();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { Users } from "@/models/index.js";
|
||||
import define from "../../define.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin"],
|
||||
|
@ -106,7 +107,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
|
||||
if (ps.username) {
|
||||
query.andWhere("user.usernameLower like :username", {
|
||||
username: `${ps.username.toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.username.toLowerCase())}%`,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ import config from "@/config/index.js";
|
|||
import define from "../../define.js";
|
||||
import { Instances } from "@/models/index.js";
|
||||
import { fetchMeta } from "@/misc/fetch-meta.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["federation"],
|
||||
|
@ -178,7 +179,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
|
||||
if (ps.host) {
|
||||
query.andWhere("instance.host like :host", {
|
||||
host: `%${ps.host.toLowerCase()}%`,
|
||||
host: `%${sqlLikeEscape(ps.host.toLowerCase())}%`,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import define from "../../define.js";
|
||||
import { Hashtags } from "@/models/index.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["hashtags"],
|
||||
|
@ -31,7 +32,9 @@ export const paramDef = {
|
|||
|
||||
export default define(meta, paramDef, async (ps) => {
|
||||
const hashtags = await Hashtags.createQueryBuilder("tag")
|
||||
.where("tag.name like :q", { q: `${ps.query.toLowerCase()}%` })
|
||||
.where("tag.name like :q", {
|
||||
q: `${sqlLikeEscape(ps.query.toLowerCase())}%`,
|
||||
})
|
||||
.orderBy("tag.count", "DESC")
|
||||
.groupBy("tag.id")
|
||||
.take(ps.limit)
|
||||
|
|
|
@ -9,6 +9,7 @@ import { makePaginationQuery } from "../../common/make-pagination-query.js";
|
|||
import { generateVisibilityQuery } from "../../common/generate-visibility-query.js";
|
||||
import { generateMutedUserQuery } from "../../common/generate-muted-user-query.js";
|
||||
import { generateBlockedUserQuery } from "../../common/generate-block-query.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["notes"],
|
||||
|
@ -77,7 +78,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
}
|
||||
|
||||
query
|
||||
.andWhere("note.text ILIKE :q", { q: `%${ps.query}%` })
|
||||
.andWhere("note.text ILIKE :q", { q: `%${sqlLikeEscape(ps.query)}%` })
|
||||
.innerJoinAndSelect("note.user", "user")
|
||||
.leftJoinAndSelect("user.avatar", "avatar")
|
||||
.leftJoinAndSelect("user.banner", "banner")
|
||||
|
|
|
@ -3,6 +3,7 @@ import { Followings, Users } from "@/models/index.js";
|
|||
import { USER_ACTIVE_THRESHOLD } from "@/const.js";
|
||||
import type { User } from "@/models/entities/user.js";
|
||||
import define from "../../define.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["users"],
|
||||
|
@ -44,11 +45,13 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
if (ps.host) {
|
||||
const q = Users.createQueryBuilder("user")
|
||||
.where("user.isSuspended = FALSE")
|
||||
.andWhere("user.host LIKE :host", { host: `${ps.host.toLowerCase()}%` });
|
||||
.andWhere("user.host LIKE :host", {
|
||||
host: `${sqlLikeEscape(ps.host.toLowerCase())}%`,
|
||||
});
|
||||
|
||||
if (ps.username) {
|
||||
q.andWhere("user.usernameLower LIKE :username", {
|
||||
username: `${ps.username.toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.username.toLowerCase())}%`,
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -71,7 +74,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
.andWhere("user.id != :meId", { meId: me.id })
|
||||
.andWhere("user.isSuspended = FALSE")
|
||||
.andWhere("user.usernameLower LIKE :username", {
|
||||
username: `${ps.username.toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.username.toLowerCase())}%`,
|
||||
})
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
|
@ -95,7 +98,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
.andWhere("user.id != :meId", { meId: me.id })
|
||||
.andWhere("user.isSuspended = FALSE")
|
||||
.andWhere("user.usernameLower LIKE :username", {
|
||||
username: `${ps.username.toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.username.toLowerCase())}%`,
|
||||
})
|
||||
.andWhere("user.updatedAt IS NOT NULL");
|
||||
|
||||
|
@ -112,7 +115,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
users = await Users.createQueryBuilder("user")
|
||||
.where("user.isSuspended = FALSE")
|
||||
.andWhere("user.usernameLower LIKE :username", {
|
||||
username: `${ps.username.toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.username.toLowerCase())}%`,
|
||||
})
|
||||
.andWhere("user.updatedAt IS NOT NULL")
|
||||
.orderBy("user.updatedAt", "DESC")
|
||||
|
|
|
@ -2,6 +2,7 @@ import { Brackets } from "typeorm";
|
|||
import { UserProfiles, Users } from "@/models/index.js";
|
||||
import type { User } from "@/models/entities/user.js";
|
||||
import define from "../../define.js";
|
||||
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["users"],
|
||||
|
@ -50,7 +51,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
if (isUsername) {
|
||||
const usernameQuery = Users.createQueryBuilder("user")
|
||||
.where("user.usernameLower LIKE :username", {
|
||||
username: `${ps.query.replace("@", "").toLowerCase()}%`,
|
||||
username: `${sqlLikeEscape(ps.query.replace("@", "").toLowerCase())}%`,
|
||||
})
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
|
@ -77,12 +78,14 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
const nameQuery = Users.createQueryBuilder("user")
|
||||
.where(
|
||||
new Brackets((qb) => {
|
||||
qb.where("user.name ILIKE :query", { query: `%${ps.query}%` });
|
||||
qb.where("user.name ILIKE :query", {
|
||||
query: `%${sqlLikeEscape(ps.query)}%`,
|
||||
});
|
||||
|
||||
// Also search username if it qualifies as username
|
||||
if (Users.validateLocalUsername(ps.query)) {
|
||||
qb.orWhere("user.usernameLower LIKE :username", {
|
||||
username: `%${ps.query.toLowerCase()}%`,
|
||||
username: `%${sqlLikeEscape(ps.query.toLowerCase())}%`,
|
||||
});
|
||||
}
|
||||
}),
|
||||
|
@ -113,7 +116,7 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
const profQuery = UserProfiles.createQueryBuilder("prof")
|
||||
.select("prof.userId")
|
||||
.where("prof.description ILIKE :query", {
|
||||
query: `%${ps.query}%`,
|
||||
query: `%${sqlLikeEscape(ps.query)}%`,
|
||||
});
|
||||
|
||||
if (ps.origin === "local") {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
v-show="!isDeleted"
|
||||
ref="el"
|
||||
v-hotkey="keymap"
|
||||
v-size="{ max: [500, 450, 350, 300] }"
|
||||
v-size="{ max: [500, 450, 350] }"
|
||||
class="tkcbzcuz note-container"
|
||||
:tabindex="!isDeleted ? '-1' : null"
|
||||
:class="{ renote: isRenote }"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<div
|
||||
ref="elRef"
|
||||
v-size="{ max: [500, 600] }"
|
||||
class="qglefbjs"
|
||||
v-size="{ max: [500, 450] }"
|
||||
class="qglefbjs notification"
|
||||
:class="notification.type"
|
||||
>
|
||||
<div class="head">
|
||||
|
@ -114,6 +114,7 @@
|
|||
:to="notePage(notification.note)"
|
||||
:title="getNoteSummary(notification.note)"
|
||||
>
|
||||
<span>{{ i18n.ts._notification.reacted }}</span>
|
||||
<i class="ph-quotes ph-fill ph-lg"></i>
|
||||
<Mfm
|
||||
:text="getNoteSummary(notification.note)"
|
||||
|
@ -129,6 +130,7 @@
|
|||
:to="notePage(notification.note)"
|
||||
:title="getNoteSummary(notification.note.renote)"
|
||||
>
|
||||
<span>{{ i18n.ts._notification.renoted }}</span>
|
||||
<i class="ph-quotes ph-fill ph-lg"></i>
|
||||
<Mfm
|
||||
:text="getNoteSummary(notification.note.renote)"
|
||||
|
@ -183,6 +185,7 @@
|
|||
:to="notePage(notification.note)"
|
||||
:title="getNoteSummary(notification.note)"
|
||||
>
|
||||
<span>{{ i18n.ts._notification.voted }}</span>
|
||||
<i class="ph-quotes ph-fill ph-lg"></i>
|
||||
<Mfm
|
||||
:text="getNoteSummary(notification.note)"
|
||||
|
@ -210,7 +213,7 @@
|
|||
<span
|
||||
v-if="notification.type === 'follow'"
|
||||
class="text"
|
||||
style="opacity: 0.6"
|
||||
style="opacity: 0.7"
|
||||
>{{ i18n.ts.youGotNewFollower }}
|
||||
<div v-if="full">
|
||||
<MkFollowButton
|
||||
|
@ -221,13 +224,13 @@
|
|||
<span
|
||||
v-if="notification.type === 'followRequestAccepted'"
|
||||
class="text"
|
||||
style="opacity: 0.6"
|
||||
style="opacity: 0.7"
|
||||
>{{ i18n.ts.followRequestAccepted }}</span
|
||||
>
|
||||
<span
|
||||
v-if="notification.type === 'receiveFollowRequest'"
|
||||
class="text"
|
||||
style="opacity: 0.6"
|
||||
style="opacity: 0.7"
|
||||
>{{ i18n.ts.receiveFollowRequest }}
|
||||
<div v-if="full && !followRequestDone">
|
||||
<button class="_textButton" @click="acceptFollowRequest()">
|
||||
|
@ -242,7 +245,7 @@
|
|||
<span
|
||||
v-if="notification.type === 'groupInvited'"
|
||||
class="text"
|
||||
style="opacity: 0.6"
|
||||
style="opacity: 0.7"
|
||||
>{{ i18n.ts.groupInvited }}:
|
||||
<b>{{ notification.invitation.group.name }}</b>
|
||||
<div v-if="full && !groupInviteDone">
|
||||
|
@ -389,14 +392,13 @@ useTooltip(reactionRef, (showing) => {
|
|||
display: flex;
|
||||
contain: content;
|
||||
|
||||
&.max-width_600px {
|
||||
padding: 16px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
&.max-width_500px {
|
||||
padding: 12px;
|
||||
font-size: 0.85em;
|
||||
padding-block: 16px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
&.max-width_450px {
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
> .head {
|
||||
|
@ -509,9 +511,17 @@ useTooltip(reactionRef, (showing) => {
|
|||
|
||||
> .text {
|
||||
white-space: nowrap;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
> span:first-child {
|
||||
opacity: .7;
|
||||
&::after { content: ": " }
|
||||
}
|
||||
|
||||
> i {
|
||||
vertical-align: super;
|
||||
font-size: 50%;
|
||||
|
|
|
@ -361,7 +361,7 @@ onMounted(() => {
|
|||
> span {
|
||||
font-size: 1em;
|
||||
color: var(--accent);
|
||||
:global(span) {
|
||||
:deep(span) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue