mirror of
https://iceshrimp.dev/crimekillz/trashposs
synced 2024-11-23 17:29:05 +01:00
Release is default docker-compose version now, fix more dead links and missing texts....
This commit is contained in:
parent
f1ab8211c9
commit
aa273ccf21
@ -7,8 +7,8 @@
|
||||
5. # corepack enable && corepack prepare --activate && yarn --immutable
|
||||
6. Log into your docker registry (for ex. iceshrimp.dev)
|
||||
7. # docker login iceshrimp.dev
|
||||
8. Replace v2023.12.5-trash with however you want the docker tag to be named
|
||||
9. # docker build . -t iceshrimp.dev/crimekillz/trashposs:v2023.12.5-poss
|
||||
10. # docker push iceshrimp.dev/crimekillz/trashposs:v2023.12.5-poss
|
||||
8. Replace v2024.04.1 with however you want the docker tag to be named
|
||||
9. # docker build . -t iceshrimp.dev/crimekillz/trashposs:v2024.04.1
|
||||
10. # docker push iceshrimp.dev/crimekillz/trashposs:v2024.04.1
|
||||
11. Congratulations! You can now refer to that image in your docker-compose.yml
|
||||
|
||||
|
@ -2,7 +2,7 @@ version: "3"
|
||||
|
||||
services:
|
||||
web:
|
||||
image: iceshrimp.dev/crimekillz/trashposs:dev
|
||||
image: iceshrimp.dev/crimekillz/trashposs:release
|
||||
### If you want to build the image locally
|
||||
# build: .
|
||||
### If you want to build the image locally AND use Docker 20.10
|
||||
@ -19,7 +19,6 @@ services:
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- trashnet
|
||||
# - web
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
volumes:
|
||||
@ -78,6 +77,3 @@ services:
|
||||
|
||||
networks:
|
||||
trashnet:
|
||||
# web:
|
||||
# external:
|
||||
# name: web
|
||||
|
@ -1364,8 +1364,8 @@ _tutorial:
|
||||
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
|
||||
Nutzerkonten sehen kannst, denen du folgst."
|
||||
step5_4: "In der {Icon} Local-Timeline kannst du die Beiträge von jedem/jeder sehen
|
||||
der/die auf diesem Server registriert ist."
|
||||
step5_4: "In der {icon} Local-Timeline kannst du die Beiträge von allen sehen
|
||||
die auf diesem Server registriert sind."
|
||||
step5_5: "Die Social-Timeline {icon} ist eine Kombination aus der Home-Timeline
|
||||
und der Local-Timeline."
|
||||
step5_6: "In der Empfohlen-Timeline {icon} kannst du Posts sehen, die von den Admins
|
||||
|
@ -5,7 +5,7 @@ export class instancePinnedPages1605585339718 implements MigrationInterface {
|
||||
}
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
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> {
|
||||
|
@ -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 "privateMode" 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 "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.'`);
|
||||
|
@ -23,7 +23,7 @@ export const navbarItemDef = reactive({
|
||||
icon: "ph-tornado ph-bold ph-lg",
|
||||
show: computed(() => $i != null),
|
||||
indicated: computed(() => $i?.hasUnreadMessagingMessage || $i?.hasUnreadAnnouncement),
|
||||
to: "/my/messaging",
|
||||
to: "/my/messenger",
|
||||
},
|
||||
drive: {
|
||||
title: "drive",
|
||||
|
@ -144,6 +144,10 @@ import "swiper/scss";
|
||||
import "swiper/scss/virtual";
|
||||
import { useRouter } from "@/router.js";
|
||||
|
||||
const props = defineProps<{
|
||||
tab?: string;
|
||||
}>();
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const tabs = ["users", "featured", "channels", "pages", "reel"];
|
||||
@ -248,6 +252,7 @@ function setSwiperRef(swiper) {
|
||||
|
||||
function onSlideChange() {
|
||||
tab = tabs[swiperRef.activeIndex];
|
||||
window.history.pushState(null, null, '/discover/' + tab);
|
||||
}
|
||||
|
||||
function syncSlide(index) {
|
||||
@ -255,7 +260,8 @@ function syncSlide(index) {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
syncSlide(tabs.indexOf(swiperRef.activeIndex));
|
||||
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
|
@ -121,7 +121,7 @@
|
||||
</template>
|
||||
|
||||
<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 { Virtual } from "swiper/modules";
|
||||
import { Swiper, SwiperSlide } from "swiper/vue";
|
||||
@ -141,6 +141,10 @@ import { defaultStore } from "@/store";
|
||||
import "swiper/scss";
|
||||
import "swiper/scss/virtual";
|
||||
|
||||
const props = defineProps<{
|
||||
tab?: string;
|
||||
}>();
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
let messages = $ref([]);
|
||||
@ -294,6 +298,7 @@ function setSwiperRef(swiper) {
|
||||
|
||||
function onSlideChange() {
|
||||
tab = tabs[swiperRef.activeIndex];
|
||||
window.history.pushState(null, null, '/my/messenger/' + tab);
|
||||
}
|
||||
|
||||
function syncSlide(index) {
|
||||
@ -301,7 +306,8 @@ function syncSlide(index) {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
syncSlide(tabs.indexOf(swiperRef.activeIndex));
|
||||
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
|
||||
connection = markRaw(stream.useChannel("messagingIndex"));
|
||||
|
||||
@ -325,6 +331,10 @@ onMounted(() => {
|
||||
);
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
if (connection) connection.dispose();
|
||||
});
|
||||
|
@ -102,7 +102,7 @@
|
||||
</template>
|
||||
|
||||
<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 { Swiper, SwiperSlide } from "swiper/vue";
|
||||
import MkPagination from "@/components/MkPagination.vue";
|
||||
@ -123,6 +123,10 @@ import { deviceKind } from "@/scripts/device-kind";
|
||||
import "swiper/scss";
|
||||
import "swiper/scss/virtual";
|
||||
|
||||
const props = defineProps<{
|
||||
tab?: string;
|
||||
}>();
|
||||
|
||||
const tabs = ["favorites", "clips", "reactions"];
|
||||
let tab = $ref(tabs[0]);
|
||||
watch($$(tab), () => syncSlide(tabs.indexOf(tab)));
|
||||
@ -212,6 +216,7 @@ function setSwiperRef(swiper) {
|
||||
|
||||
function onSlideChange() {
|
||||
tab = tabs[swiperRef.activeIndex];
|
||||
window.history.pushState(null, null, '/my/snippets/' + tab);
|
||||
}
|
||||
|
||||
function syncSlide(index) {
|
||||
@ -219,7 +224,12 @@ function syncSlide(index) {
|
||||
}
|
||||
|
||||
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({
|
||||
|
@ -137,7 +137,8 @@
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
syncSlide(tabs.indexOf(props.tab ?? swiperRef.activeIndex));
|
||||
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
|
@ -128,6 +128,10 @@ import { defaultStore } from "@/store";
|
||||
import "swiper/scss";
|
||||
import "swiper/scss/virtual";
|
||||
|
||||
const props = defineProps<{
|
||||
tab?: string;
|
||||
}>();
|
||||
|
||||
const paginationAntenna = {
|
||||
endpoint: "antennas/list" as const,
|
||||
limit: 250,
|
||||
@ -209,6 +213,7 @@ function setSwiperRef(swiper) {
|
||||
|
||||
function onSlideChange() {
|
||||
tab = tabs[swiperRef.activeIndex];
|
||||
window.history.pushState(null, null, '/news/' + tab);
|
||||
}
|
||||
|
||||
function syncSlide(index) {
|
||||
@ -216,10 +221,12 @@ function syncSlide(index) {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
syncSlide(tabs.indexOf(swiperRef.activeIndex));
|
||||
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
refresh();
|
||||
});
|
||||
|
||||
|
@ -51,7 +51,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, watch } from "vue";
|
||||
import { computed, ref, watch, onMounted, onActivated } from "vue";
|
||||
import { Virtual } from "swiper/modules";
|
||||
import { Swiper, SwiperSlide } from "swiper/vue";
|
||||
import { notificationTypes } from "trashposs-js";
|
||||
@ -65,6 +65,10 @@ import { defaultStore } from "@/store";
|
||||
import "swiper/scss";
|
||||
import "swiper/scss/virtual";
|
||||
|
||||
const props = defineProps<{
|
||||
tab?: string;
|
||||
}>();
|
||||
|
||||
const tabs = ["all", "unread", "mentions", "directNotes"];
|
||||
let tab = $ref(tabs[0]);
|
||||
watch($$(tab), () => syncSlide(tabs.indexOf(tab)));
|
||||
@ -181,9 +185,19 @@ function setSwiperRef(swiper) {
|
||||
|
||||
function onSlideChange() {
|
||||
tab = tabs[swiperRef.activeIndex];
|
||||
window.history.pushState(null, null, '/my/notifications/' + tab);
|
||||
}
|
||||
|
||||
function syncSlide(index) {
|
||||
swiperRef.slideTo(index);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
tab = tabs[tabs.indexOf(props.tab ?? swiperRef.activeIndex)] ?? tab;
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
syncSlide(tabs.indexOf(tab));
|
||||
});
|
||||
</script>
|
||||
|
@ -577,7 +577,7 @@ export const routes = [
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/my/notifications",
|
||||
path: "/my/notifications/:tab?",
|
||||
component: page(() => import("./pages/notifications.vue")),
|
||||
loginRequired: true,
|
||||
},
|
||||
@ -588,7 +588,7 @@ export const routes = [
|
||||
},
|
||||
{
|
||||
name: "messaging",
|
||||
path: "/my/messaging",
|
||||
path: "/my/messenger/:tab?",
|
||||
component: page(() => import("./pages/messaging/index.vue")),
|
||||
loginRequired: true,
|
||||
},
|
||||
|
@ -86,7 +86,7 @@
|
||||
:aria-label="i18n.t('messaging')"
|
||||
class="button messaging _button"
|
||||
@click="
|
||||
mainRouter.push('/my/messaging');
|
||||
mainRouter.push('/my/messenger');
|
||||
updateButtonState();
|
||||
"
|
||||
>
|
||||
@ -238,7 +238,7 @@ function updateButtonState(): void {
|
||||
buttonAnimIndex.value = 1;
|
||||
return;
|
||||
}
|
||||
if (routerState.includes("/my/messaging")) {
|
||||
if (routerState.includes("/my/messaging") || routerState.includes("/my/messenger")) {
|
||||
buttonAnimIndex.value = 2;
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user