Release is default docker-compose version now, fix more dead links and missing texts....

This commit is contained in:
Crimekillz 2024-06-30 11:34:59 +02:00
parent f1ab8211c9
commit aa273ccf21
14 changed files with 70 additions and 26 deletions

View File

@ -7,8 +7,8 @@
5. # corepack enable && corepack prepare --activate && yarn --immutable 5. # corepack enable && corepack prepare --activate && yarn --immutable
6. Log into your docker registry (for ex. iceshrimp.dev) 6. Log into your docker registry (for ex. iceshrimp.dev)
7. # docker login iceshrimp.dev 7. # docker login iceshrimp.dev
8. Replace v2023.12.5-trash with however you want the docker tag to be named 8. Replace v2024.04.1 with however you want the docker tag to be named
9. # docker build . -t iceshrimp.dev/crimekillz/trashposs:v2023.12.5-poss 9. # docker build . -t iceshrimp.dev/crimekillz/trashposs:v2024.04.1
10. # docker push iceshrimp.dev/crimekillz/trashposs:v2023.12.5-poss 10. # docker push iceshrimp.dev/crimekillz/trashposs:v2024.04.1
11. Congratulations! You can now refer to that image in your docker-compose.yml 11. Congratulations! You can now refer to that image in your docker-compose.yml

View File

@ -2,11 +2,11 @@ version: "3"
services: services:
web: web:
image: iceshrimp.dev/crimekillz/trashposs:dev image: iceshrimp.dev/crimekillz/trashposs:release
### If you want to build the image locally ### If you want to build the image locally
# build: . # build: .
### If you want to build the image locally AND use Docker 20.10 ### If you want to build the image locally AND use Docker 20.10
# build: # build:
# context: . # context: .
# args: # args:
# DOCKER_BUILDKIT: 1 # DOCKER_BUILDKIT: 1
@ -19,7 +19,6 @@ services:
- "3000:3000" - "3000:3000"
networks: networks:
- trashnet - trashnet
# - web
environment: environment:
NODE_ENV: production NODE_ENV: production
volumes: volumes:
@ -78,6 +77,3 @@ services:
networks: networks:
trashnet: trashnet:
# web:
# external:
# name: web

View File

@ -1364,8 +1364,8 @@ _tutorial:
step5_2: "Dein Server hat {timelines} verschiedene Timelines aktiviert." step5_2: "Dein Server hat {timelines} verschiedene Timelines aktiviert."
step5_3: "Die {icon} Home-Timeline ist die Timeline, in der du die Beiträge der step5_3: "Die {icon} Home-Timeline ist die Timeline, in der du die Beiträge der
Nutzerkonten sehen kannst, denen du folgst." Nutzerkonten sehen kannst, denen du folgst."
step5_4: "In der {Icon} Local-Timeline kannst du die Beiträge von jedem/jeder sehen step5_4: "In der {icon} Local-Timeline kannst du die Beiträge von allen sehen
der/die auf diesem Server registriert ist." die auf diesem Server registriert sind."
step5_5: "Die Social-Timeline {icon} ist eine Kombination aus der Home-Timeline step5_5: "Die Social-Timeline {icon} ist eine Kombination aus der Home-Timeline
und der Local-Timeline." und der Local-Timeline."
step5_6: "In der Empfohlen-Timeline {icon} kannst du Posts sehen, die von den Admins step5_6: "In der Empfohlen-Timeline {icon} kannst du Posts sehen, die von den Admins

View File

@ -5,7 +5,7 @@ export class instancePinnedPages1605585339718 implements MigrationInterface {
} }
async up(queryRunner: QueryRunner): Promise<void> { async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/discover", "/pages", "/about-misskey"}'::varchar[]`, `ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/discover", "/about-trashposs"}'::varchar[]`,
); );
} }
async down(queryRunner: QueryRunner): Promise<void> { async down(queryRunner: QueryRunner): Promise<void> {

View File

@ -15,7 +15,7 @@ export class ResyncWithOrm1697289658422 implements MigrationInterface {
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "secureMode" SET NOT NULL`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "secureMode" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "privateMode" SET NOT NULL`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "privateMode" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "allowedHosts" SET NOT NULL`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "allowedHosts" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "pinnedPages" SET DEFAULT '{/featured,/channels,/discover,/pages,/about-trashposs}'`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "pinnedPages" SET DEFAULT '{/featured,/discover,/about-trashposs}'`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "repositoryUrl" SET DEFAULT 'https://iceshrimp.dev/Crimekillz/trashposs'`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "repositoryUrl" SET DEFAULT 'https://iceshrimp.dev/Crimekillz/trashposs'`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "feedbackUrl" SET DEFAULT 'https://iceshrimp.dev/Crimekillz/trashposs/issues/new'`); await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "feedbackUrl" SET DEFAULT 'https://iceshrimp.dev/Crimekillz/trashposs/issues/new'`);
await queryRunner.query(`COMMENT ON COLUMN "renote_muting"."createdAt" IS 'The created date of the Muting.'`); await queryRunner.query(`COMMENT ON COLUMN "renote_muting"."createdAt" IS 'The created date of the Muting.'`);

View File

@ -23,7 +23,7 @@ export const navbarItemDef = reactive({
icon: "ph-tornado ph-bold ph-lg", icon: "ph-tornado ph-bold ph-lg",
show: computed(() => $i != null), show: computed(() => $i != null),
indicated: computed(() => $i?.hasUnreadMessagingMessage || $i?.hasUnreadAnnouncement), indicated: computed(() => $i?.hasUnreadMessagingMessage || $i?.hasUnreadAnnouncement),
to: "/my/messaging", to: "/my/messenger",
}, },
drive: { drive: {
title: "drive", title: "drive",

View File

@ -144,6 +144,10 @@ import "swiper/scss";
import "swiper/scss/virtual"; import "swiper/scss/virtual";
import { useRouter } from "@/router.js"; import { useRouter } from "@/router.js";
const props = defineProps<{
tab?: string;
}>();
const router = useRouter(); const router = useRouter();
const tabs = ["users", "featured", "channels", "pages", "reel"]; const tabs = ["users", "featured", "channels", "pages", "reel"];
@ -248,6 +252,7 @@ function setSwiperRef(swiper) {
function onSlideChange() { function onSlideChange() {
tab = tabs[swiperRef.activeIndex]; tab = tabs[swiperRef.activeIndex];
window.history.pushState(null, null, '/discover/' + tab);
} }
function syncSlide(index) { function syncSlide(index) {
@ -255,7 +260,8 @@ function syncSlide(index) {
} }
onMounted(() => { onMounted(() => {
syncSlide(tabs.indexOf(swiperRef.activeIndex)); tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
}); });
onActivated(() => { onActivated(() => {

View File

@ -121,7 +121,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, markRaw, onMounted, onUnmounted, watch } from "vue"; import { ref, markRaw, onMounted, onActivated, onUnmounted, watch } from "vue";
import * as Acct from "trashposs-js/built/acct"; import * as Acct from "trashposs-js/built/acct";
import { Virtual } from "swiper/modules"; import { Virtual } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
@ -141,6 +141,10 @@ import { defaultStore } from "@/store";
import "swiper/scss"; import "swiper/scss";
import "swiper/scss/virtual"; import "swiper/scss/virtual";
const props = defineProps<{
tab?: string;
}>();
const router = useRouter(); const router = useRouter();
let messages = $ref([]); let messages = $ref([]);
@ -294,6 +298,7 @@ function setSwiperRef(swiper) {
function onSlideChange() { function onSlideChange() {
tab = tabs[swiperRef.activeIndex]; tab = tabs[swiperRef.activeIndex];
window.history.pushState(null, null, '/my/messenger/' + tab);
} }
function syncSlide(index) { function syncSlide(index) {
@ -301,7 +306,8 @@ function syncSlide(index) {
} }
onMounted(() => { onMounted(() => {
syncSlide(tabs.indexOf(swiperRef.activeIndex)); tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
connection = markRaw(stream.useChannel("messagingIndex")); connection = markRaw(stream.useChannel("messagingIndex"));
@ -325,6 +331,10 @@ onMounted(() => {
); );
}); });
onActivated(() => {
syncSlide(tabs.indexOf(tab));
});
onUnmounted(() => { onUnmounted(() => {
if (connection) connection.dispose(); if (connection) connection.dispose();
}); });

View File

@ -102,7 +102,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, defineAsyncComponent } from "vue"; import { ref, onMounted, onActivated, watch, defineAsyncComponent } from "vue";
import { Virtual } from "swiper/modules"; import { Virtual } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
import MkPagination from "@/components/MkPagination.vue"; import MkPagination from "@/components/MkPagination.vue";
@ -123,6 +123,10 @@ import { deviceKind } from "@/scripts/device-kind";
import "swiper/scss"; import "swiper/scss";
import "swiper/scss/virtual"; import "swiper/scss/virtual";
const props = defineProps<{
tab?: string;
}>();
const tabs = ["favorites", "clips", "reactions"]; const tabs = ["favorites", "clips", "reactions"];
let tab = $ref(tabs[0]); let tab = $ref(tabs[0]);
watch($$(tab), () => syncSlide(tabs.indexOf(tab))); watch($$(tab), () => syncSlide(tabs.indexOf(tab)));
@ -212,6 +216,7 @@ function setSwiperRef(swiper) {
function onSlideChange() { function onSlideChange() {
tab = tabs[swiperRef.activeIndex]; tab = tabs[swiperRef.activeIndex];
window.history.pushState(null, null, '/my/snippets/' + tab);
} }
function syncSlide(index) { function syncSlide(index) {
@ -219,7 +224,12 @@ function syncSlide(index) {
} }
onMounted(() => { onMounted(() => {
syncSlide(tabs.indexOf(swiperRef.activeIndex)); tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
});
onActivated(() => {
syncSlide(tabs.indexOf(tab));
}); });
definePageMetadata({ definePageMetadata({

View File

@ -137,7 +137,8 @@
} }
onMounted(() => { onMounted(() => {
syncSlide(tabs.indexOf(props.tab ?? swiperRef.activeIndex)); tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
}); });
onActivated(() => { onActivated(() => {

View File

@ -128,6 +128,10 @@ import { defaultStore } from "@/store";
import "swiper/scss"; import "swiper/scss";
import "swiper/scss/virtual"; import "swiper/scss/virtual";
const props = defineProps<{
tab?: string;
}>();
const paginationAntenna = { const paginationAntenna = {
endpoint: "antennas/list" as const, endpoint: "antennas/list" as const,
limit: 250, limit: 250,
@ -209,6 +213,7 @@ function setSwiperRef(swiper) {
function onSlideChange() { function onSlideChange() {
tab = tabs[swiperRef.activeIndex]; tab = tabs[swiperRef.activeIndex];
window.history.pushState(null, null, '/news/' + tab);
} }
function syncSlide(index) { function syncSlide(index) {
@ -216,10 +221,12 @@ function syncSlide(index) {
} }
onMounted(() => { onMounted(() => {
syncSlide(tabs.indexOf(swiperRef.activeIndex)); tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
}); });
onActivated(() => { onActivated(() => {
syncSlide(tabs.indexOf(tab));
refresh(); refresh();
}); });

View File

@ -51,7 +51,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed, ref, watch } from "vue"; import { computed, ref, watch, onMounted, onActivated } from "vue";
import { Virtual } from "swiper/modules"; import { Virtual } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
import { notificationTypes } from "trashposs-js"; import { notificationTypes } from "trashposs-js";
@ -65,6 +65,10 @@ import { defaultStore } from "@/store";
import "swiper/scss"; import "swiper/scss";
import "swiper/scss/virtual"; import "swiper/scss/virtual";
const props = defineProps<{
tab?: string;
}>();
const tabs = ["all", "unread", "mentions", "directNotes"]; const tabs = ["all", "unread", "mentions", "directNotes"];
let tab = $ref(tabs[0]); let tab = $ref(tabs[0]);
watch($$(tab), () => syncSlide(tabs.indexOf(tab))); watch($$(tab), () => syncSlide(tabs.indexOf(tab)));
@ -181,9 +185,19 @@ function setSwiperRef(swiper) {
function onSlideChange() { function onSlideChange() {
tab = tabs[swiperRef.activeIndex]; tab = tabs[swiperRef.activeIndex];
window.history.pushState(null, null, '/my/notifications/' + tab);
} }
function syncSlide(index) { function syncSlide(index) {
swiperRef.slideTo(index); swiperRef.slideTo(index);
} }
onMounted(() => {
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
syncSlide(tabs.indexOf(tab));
});
onActivated(() => {
syncSlide(tabs.indexOf(tab));
});
</script> </script>

View File

@ -577,7 +577,7 @@ export const routes = [
], ],
}, },
{ {
path: "/my/notifications", path: "/my/notifications/:tab?",
component: page(() => import("./pages/notifications.vue")), component: page(() => import("./pages/notifications.vue")),
loginRequired: true, loginRequired: true,
}, },
@ -588,7 +588,7 @@ export const routes = [
}, },
{ {
name: "messaging", name: "messaging",
path: "/my/messaging", path: "/my/messenger/:tab?",
component: page(() => import("./pages/messaging/index.vue")), component: page(() => import("./pages/messaging/index.vue")),
loginRequired: true, loginRequired: true,
}, },

View File

@ -86,7 +86,7 @@
:aria-label="i18n.t('messaging')" :aria-label="i18n.t('messaging')"
class="button messaging _button" class="button messaging _button"
@click=" @click="
mainRouter.push('/my/messaging'); mainRouter.push('/my/messenger');
updateButtonState(); updateButtonState();
" "
> >
@ -238,7 +238,7 @@ function updateButtonState(): void {
buttonAnimIndex.value = 1; buttonAnimIndex.value = 1;
return; return;
} }
if (routerState.includes("/my/messaging")) { if (routerState.includes("/my/messaging") || routerState.includes("/my/messenger")) {
buttonAnimIndex.value = 2; buttonAnimIndex.value = 2;
return; return;
} }