Merge branch 'develop' of https://codeberg.org/calckey/calckey into upstream/develop
This commit is contained in:
commit
63255b5641
|
@ -68,5 +68,5 @@ body:
|
|||
options:
|
||||
- label: I agree to follow this project's Contribution Guidelines
|
||||
required: true
|
||||
- label: I have searched the issue tracker for similar issues, and this is not a duplicate.
|
||||
- label: I have searched the issue tracker for similar issues, and this is not a duplicate.
|
||||
required: true
|
||||
|
|
|
@ -68,5 +68,5 @@ body:
|
|||
options:
|
||||
- label: I agree to follow this project's Contribution Guidelines
|
||||
required: true
|
||||
- label: I have searched the issue tracker for similar requests, and this is not a duplicate.
|
||||
- label: I have searched the issue tracker for similar requests, and this is not a duplicate.
|
||||
required: true
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "calckey",
|
||||
"version": "14.0.0-dev44",
|
||||
"version": "14.0.0-dev46",
|
||||
"codename": "aqua",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
"check:connect": "node ./check_connect.js",
|
||||
"build": "pnpm swc src -d built -D",
|
||||
"watch": "pnpm swc src -d built -D -w",
|
||||
"lint": "pnpm rome check \"src/**/*.ts\"",
|
||||
"lint": "pnpm rome check --apply *",
|
||||
"mocha": "cross-env NODE_ENV=test TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
|
||||
"test": "pnpm run mocha",
|
||||
"format": "pnpm rome format * --write && pnpm rome check --apply *"
|
||||
"format": "pnpm rome format * --write"
|
||||
},
|
||||
"resolutions": {
|
||||
"chokidar": "^3.3.1"
|
||||
|
|
|
@ -3,7 +3,7 @@ import { Meta } from "@/models/entities/meta.js";
|
|||
|
||||
let cache: Meta;
|
||||
|
||||
export function metaToPugArgs(meta: Meta) : object {
|
||||
export function metaToPugArgs(meta: Meta): object {
|
||||
let motd = ["Loading..."];
|
||||
if (meta.customMOTD.length > 0) {
|
||||
motd = meta.customMOTD;
|
||||
|
@ -26,7 +26,7 @@ export function metaToPugArgs(meta: Meta) : object {
|
|||
themeColor: meta.themeColor,
|
||||
randomMOTD: motd[Math.floor(Math.random() * motd.length)],
|
||||
privateMode: meta.privateMode,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchMeta(noCache = false): Promise<Meta> {
|
||||
|
|
|
@ -367,7 +367,7 @@ const userPage: Router.Middleware = async (ctx, next) => {
|
|||
profile,
|
||||
me,
|
||||
avatarUrl: await Users.getAvatarUrl(user),
|
||||
sub: subParam
|
||||
sub: subParam,
|
||||
};
|
||||
|
||||
await ctx.render("user", userDetail);
|
||||
|
@ -446,7 +446,7 @@ router.get("/posts/:note", async (ctx, next) => {
|
|||
await Users.findOneByOrFail({ id: note.userId }),
|
||||
),
|
||||
// TODO: Let locale changeable by instance setting
|
||||
summary: getNoteSummary(_note)
|
||||
summary: getNoteSummary(_note),
|
||||
});
|
||||
|
||||
ctx.set("Cache-Control", "public, max-age=15");
|
||||
|
@ -482,7 +482,7 @@ router.get("/@:user/pages/:page", async (ctx, next) => {
|
|||
profile,
|
||||
avatarUrl: await Users.getAvatarUrl(
|
||||
await Users.findOneByOrFail({ id: page.userId }),
|
||||
)
|
||||
),
|
||||
});
|
||||
|
||||
if (["public"].includes(page.visibility)) {
|
||||
|
@ -514,7 +514,7 @@ router.get("/clips/:clip", async (ctx, next) => {
|
|||
profile,
|
||||
avatarUrl: await Users.getAvatarUrl(
|
||||
await Users.findOneByOrFail({ id: clip.userId }),
|
||||
)
|
||||
),
|
||||
});
|
||||
|
||||
ctx.set("Cache-Control", "public, max-age=15");
|
||||
|
@ -539,7 +539,7 @@ router.get("/gallery/:post", async (ctx, next) => {
|
|||
profile,
|
||||
avatarUrl: await Users.getAvatarUrl(
|
||||
await Users.findOneByOrFail({ id: post.userId }),
|
||||
)
|
||||
),
|
||||
});
|
||||
|
||||
ctx.set("Cache-Control", "public, max-age=15");
|
||||
|
@ -561,7 +561,7 @@ router.get("/channels/:channel", async (ctx, next) => {
|
|||
const meta = await fetchMeta();
|
||||
await ctx.render("channel", {
|
||||
...metaToPugArgs(meta),
|
||||
channel: _channel
|
||||
channel: _channel,
|
||||
});
|
||||
|
||||
ctx.set("Cache-Control", "public, max-age=15");
|
||||
|
@ -614,7 +614,7 @@ router.get("(.*)", async (ctx) => {
|
|||
const meta = await fetchMeta();
|
||||
|
||||
await ctx.render("base", {
|
||||
...metaToPugArgs(meta)
|
||||
...metaToPugArgs(meta),
|
||||
});
|
||||
ctx.set("Cache-Control", "public, max-age=3");
|
||||
});
|
||||
|
|
|
@ -102,7 +102,7 @@ function isMe(message): boolean {
|
|||
opacity: 0.8;
|
||||
}
|
||||
|
||||
&:not(.isMe):not(.isRead) {
|
||||
&:not(.isRead) {
|
||||
background-color: var(--accentedBg);
|
||||
}
|
||||
|
||||
|
@ -175,13 +175,6 @@ function isMe(message): boolean {
|
|||
|
||||
&.max-width_400px {
|
||||
> .message {
|
||||
&:not(.isMe):not(.isRead) {
|
||||
> div {
|
||||
background-image: none;
|
||||
border-left: solid 4px #3aa2dc;
|
||||
}
|
||||
}
|
||||
|
||||
> div {
|
||||
padding: 16px;
|
||||
font-size: 0.9em;
|
||||
|
|
|
@ -128,7 +128,11 @@
|
|||
<button
|
||||
v-else-if="!item.hidden"
|
||||
class="_button item"
|
||||
:class="{ danger: item.danger, active: item.active }"
|
||||
:class="{
|
||||
danger: item.danger,
|
||||
accent: item.accent,
|
||||
active: item.active,
|
||||
}"
|
||||
:disabled="item.active"
|
||||
@click="clicked(item.action, $event)"
|
||||
@mouseenter.passive="onItemMouseEnter(item)"
|
||||
|
@ -398,6 +402,26 @@ onBeforeUnmount(() => {
|
|||
}
|
||||
}
|
||||
|
||||
&.accent {
|
||||
color: var(--accent);
|
||||
|
||||
&:hover {
|
||||
color: var(--accent);
|
||||
|
||||
&:before {
|
||||
background: var(--accentedBg);
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: var(--fgOnAccent);
|
||||
|
||||
&:before {
|
||||
background: var(--accent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: var(--fgOnAccent);
|
||||
opacity: 1;
|
||||
|
|
|
@ -14,7 +14,10 @@
|
|||
:title="i18n.ts.delete"
|
||||
@click="del"
|
||||
>
|
||||
<i style="color: var(--accentLighten)" class="ph-x-circle ph-fill ph-lg"></i>
|
||||
<i
|
||||
style="color: var(--accentLighten)"
|
||||
class="ph-x-circle ph-fill ph-lg"
|
||||
></i>
|
||||
</button>
|
||||
<div v-if="!message.isDeleted" class="content">
|
||||
<Mfm
|
||||
|
|
|
@ -262,13 +262,6 @@ export function getNoteMenu(props: {
|
|||
null,
|
||||
]
|
||||
: []),
|
||||
instance.features.postEditing && isAppearAuthor
|
||||
? {
|
||||
icon: "ph-pencil-line ph-bold ph-lg",
|
||||
text: i18n.ts.edit,
|
||||
action: edit,
|
||||
}
|
||||
: undefined,
|
||||
{
|
||||
icon: "ph-clipboard-text ph-bold ph-lg",
|
||||
text: i18n.ts.copyContent,
|
||||
|
@ -372,33 +365,45 @@ export function getNoteMenu(props: {
|
|||
}]
|
||||
: []
|
||||
),*/
|
||||
...(!isAppearAuthor
|
||||
? [
|
||||
null,
|
||||
{
|
||||
icon: "ph-warning-circle ph-bold ph-lg",
|
||||
text: i18n.ts.reportAbuse,
|
||||
action: () => {
|
||||
const u =
|
||||
appearNote.url ||
|
||||
appearNote.uri ||
|
||||
`${url}/notes/${appearNote.id}`;
|
||||
os.popup(
|
||||
defineAsyncComponent(
|
||||
() => import("@/components/MkAbuseReportWindow.vue"),
|
||||
),
|
||||
{
|
||||
user: appearNote.user,
|
||||
initialComment: `Note: ${u}\n-----\n`,
|
||||
},
|
||||
{},
|
||||
"closed",
|
||||
);
|
||||
},
|
||||
null,
|
||||
!isAppearAuthor
|
||||
? {
|
||||
icon: "ph-warning-circle ph-bold ph-lg",
|
||||
text: i18n.ts.reportAbuse,
|
||||
action: () => {
|
||||
const u =
|
||||
appearNote.url ||
|
||||
appearNote.uri ||
|
||||
`${url}/notes/${appearNote.id}`;
|
||||
os.popup(
|
||||
defineAsyncComponent(
|
||||
() => import("@/components/MkAbuseReportWindow.vue"),
|
||||
),
|
||||
{
|
||||
user: appearNote.user,
|
||||
initialComment: `Note: ${u}\n-----\n`,
|
||||
},
|
||||
{},
|
||||
"closed",
|
||||
);
|
||||
},
|
||||
]
|
||||
: []),
|
||||
|
||||
}
|
||||
: undefined,
|
||||
instance.features.postEditing && isAppearAuthor
|
||||
? {
|
||||
icon: "ph-pencil-line ph-bold ph-lg",
|
||||
text: i18n.ts.edit,
|
||||
accent: true,
|
||||
action: edit,
|
||||
}
|
||||
: undefined,
|
||||
isAppearAuthor
|
||||
? {
|
||||
icon: "ph-eraser ph-bold ph-lg",
|
||||
text: i18n.ts.deleteAndEdit,
|
||||
action: delEdit,
|
||||
}
|
||||
: undefined,
|
||||
isAppearAuthor || isModerator
|
||||
? {
|
||||
icon: "ph-trash ph-bold ph-lg",
|
||||
|
@ -407,14 +412,6 @@ export function getNoteMenu(props: {
|
|||
action: del,
|
||||
}
|
||||
: undefined,
|
||||
|
||||
isAppearAuthor
|
||||
? {
|
||||
icon: "ph-eraser ph-bold ph-lg",
|
||||
text: i18n.ts.deleteAndEdit,
|
||||
action: delEdit,
|
||||
}
|
||||
: undefined,
|
||||
].filter((x) => x !== undefined);
|
||||
} else {
|
||||
menu = [
|
||||
|
|
|
@ -51,6 +51,7 @@ export type MenuButton = {
|
|||
icon?: string;
|
||||
indicate?: boolean;
|
||||
danger?: boolean;
|
||||
accent?: boolean;
|
||||
active?: boolean;
|
||||
hidden?: boolean;
|
||||
avatar?: Misskey.entities.User;
|
||||
|
|
Loading…
Reference in New Issue