wip
This commit is contained in:
parent
120d43a234
commit
355d9dbb73
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
export class RemoteNotesCleaning1753863104203 {
|
||||
name = 'RemoteNotesCleaning1753863104203'
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "enableRemoteNotesCleaning" boolean NOT NULL DEFAULT true`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "remoteNotesCleaningMaxDurationInMinutes" integer NOT NULL DEFAULT '60'`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "remoteNotesCleaningMaxDurationInMinutes"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableRemoteNotesCleaning"`);
|
||||
}
|
||||
}
|
||||
|
|
@ -571,6 +571,14 @@ export const meta = {
|
|||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
enableRemoteNotesCleaning: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
remoteNotesCleaningMaxDurationInMinutes: {
|
||||
type: 'number',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
|
@ -722,6 +730,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
proxyRemoteFiles: instance.proxyRemoteFiles,
|
||||
signToActivityPubGet: instance.signToActivityPubGet,
|
||||
allowExternalApRedirect: instance.allowExternalApRedirect,
|
||||
enableRemoteNotesCleaning: instance.enableRemoteNotesCleaning,
|
||||
remoteNotesCleaningMaxDurationInMinutes: instance.remoteNotesCleaningMaxDurationInMinutes,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -205,6 +205,8 @@ export const paramDef = {
|
|||
proxyRemoteFiles: { type: 'boolean' },
|
||||
signToActivityPubGet: { type: 'boolean' },
|
||||
allowExternalApRedirect: { type: 'boolean' },
|
||||
enableRemoteNotesCleaning: { type: 'boolean' },
|
||||
remoteNotesCleaningMaxDurationInMinutes: { type: 'number' },
|
||||
},
|
||||
required: [],
|
||||
} as const;
|
||||
|
|
@ -723,6 +725,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
set.allowExternalApRedirect = ps.allowExternalApRedirect;
|
||||
}
|
||||
|
||||
if (ps.enableRemoteNotesCleaning !== undefined) {
|
||||
set.enableRemoteNotesCleaning = ps.enableRemoteNotesCleaning;
|
||||
}
|
||||
|
||||
if (ps.remoteNotesCleaningMaxDurationInMinutes !== undefined) {
|
||||
set.remoteNotesCleaningMaxDurationInMinutes = ps.remoteNotesCleaningMaxDurationInMinutes;
|
||||
}
|
||||
|
||||
const before = await this.metaService.fetch(true);
|
||||
|
||||
await this.metaService.update(set);
|
||||
|
|
|
|||
|
|
@ -116,6 +116,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<template #label>{{ i18n.ts.enable }}<span v-if="remoteNotesCleaningForm.modifiedStates.enableRemoteNotesCleaning" class="_modified">{{ i18n.ts.modified }}</span></template>
|
||||
<template #caption>{{ i18n.ts._serverSettings.remoteNotesCleaning_description }}</template>
|
||||
</MkSwitch>
|
||||
|
||||
<template v-if="remoteNotesCleaningForm.state.enableRemoteNotesCleaning">
|
||||
<MkInput v-model="remoteNotesCleaningForm.state.remoteNotesCleaningMaxDurationInMinutes" type="number">
|
||||
<template #label>remoteNotesCleaningMaxDurationInMinutes<span v-if="remoteNotesCleaningForm.modifiedStates.remoteNotesCleaningMaxDurationInMinutes" class="_modified">{{ i18n.ts.modified }}</span></template>
|
||||
</MkInput>
|
||||
</template>
|
||||
</div>
|
||||
</MkFolder>
|
||||
</div>
|
||||
|
|
@ -215,9 +221,11 @@ const rbtForm = useForm({
|
|||
|
||||
const remoteNotesCleaningForm = useForm({
|
||||
enableRemoteNotesCleaning: meta.enableRemoteNotesCleaning,
|
||||
remoteNotesCleaningMaxDurationInMinutes: meta.remoteNotesCleaningMaxDurationInMinutes,
|
||||
}, async (state) => {
|
||||
await os.apiWithDialog('admin/update-meta', {
|
||||
enableRemoteNotesCleaning: state.enableRemoteNotesCleaning,
|
||||
remoteNotesCleaningMaxDurationInMinutes: state.remoteNotesCleaningMaxDurationInMinutes,
|
||||
});
|
||||
fetchInstance(true);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -9370,6 +9370,8 @@ export interface operations {
|
|||
proxyRemoteFiles: boolean;
|
||||
signToActivityPubGet: boolean;
|
||||
allowExternalApRedirect: boolean;
|
||||
enableRemoteNotesCleaning: boolean;
|
||||
remoteNotesCleaningMaxDurationInMinutes: number;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -12599,6 +12601,8 @@ export interface operations {
|
|||
proxyRemoteFiles?: boolean;
|
||||
signToActivityPubGet?: boolean;
|
||||
allowExternalApRedirect?: boolean;
|
||||
enableRemoteNotesCleaning?: boolean;
|
||||
remoteNotesCleaningMaxDurationInMinutes?: number;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue