feat(frontend): Add Clone Button To Role Page
This commit is contained in:
parent
ebf21b474a
commit
6d98c9068c
7 changed files with 96 additions and 0 deletions
|
|
@ -51,6 +51,7 @@ copyContent: "Copy contents"
|
||||||
copyLink: "Copy link"
|
copyLink: "Copy link"
|
||||||
copyRemoteLink: "Copy remote link"
|
copyRemoteLink: "Copy remote link"
|
||||||
copyLinkRenote: "Copy renote link"
|
copyLinkRenote: "Copy renote link"
|
||||||
|
clone: "Clone"
|
||||||
delete: "Delete"
|
delete: "Delete"
|
||||||
deleteAndEdit: "Delete and edit"
|
deleteAndEdit: "Delete and edit"
|
||||||
deleteAndEditConfirm: "Are you sure you want to redraft this note? This means you will lose all reactions, renotes, and replies to it."
|
deleteAndEditConfirm: "Are you sure you want to redraft this note? This means you will lose all reactions, renotes, and replies to it."
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton primary rounded @click="edit"><i class="ti ti-pencil"></i> {{ i18n.ts.edit }}</MkButton>
|
<MkButton primary rounded @click="edit"><i class="ti ti-pencil"></i> {{ i18n.ts.edit }}</MkButton>
|
||||||
|
<MkButton secondary rounded @click="clone"><i class="ti ti-copy"></i> {{ i18n.ts.clone }}</MkButton>
|
||||||
<MkButton danger rounded @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
|
<MkButton danger rounded @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
|
|
@ -97,6 +98,13 @@ function edit() {
|
||||||
router.push('/admin/roles/' + role.id + '/edit');
|
router.push('/admin/roles/' + role.id + '/edit');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function clone() {
|
||||||
|
const newRole = await misskeyApi('admin/roles/clone', {
|
||||||
|
roleId: role.id,
|
||||||
|
});
|
||||||
|
router.push('/admin/roles/' + newRole.id + '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
async function del() {
|
async function del() {
|
||||||
const { canceled } = await os.confirm({
|
const { canceled } = await os.confirm({
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
|
|
|
||||||
|
|
@ -326,6 +326,12 @@ type AdminResolveAbuseUserReportRequest = operations['admin___resolve-abuse-user
|
||||||
// @public (undocumented)
|
// @public (undocumented)
|
||||||
type AdminRolesAssignRequest = operations['admin___roles___assign']['requestBody']['content']['application/json'];
|
type AdminRolesAssignRequest = operations['admin___roles___assign']['requestBody']['content']['application/json'];
|
||||||
|
|
||||||
|
// @public (undocumented)
|
||||||
|
type AdminRolesCloneRequest = operations['admin___roles___clone']['requestBody']['content']['application/json'];
|
||||||
|
|
||||||
|
// @public (undocumented)
|
||||||
|
type AdminRolesCloneResponse = operations['admin___roles___clone']['responses']['200']['content']['application/json'];
|
||||||
|
|
||||||
// @public (undocumented)
|
// @public (undocumented)
|
||||||
type AdminRolesCreateRequest = operations['admin___roles___create']['requestBody']['content']['application/json'];
|
type AdminRolesCreateRequest = operations['admin___roles___create']['requestBody']['content']['application/json'];
|
||||||
|
|
||||||
|
|
@ -1585,6 +1591,8 @@ declare namespace entities {
|
||||||
AdminResetPasswordResponse,
|
AdminResetPasswordResponse,
|
||||||
AdminResolveAbuseUserReportRequest,
|
AdminResolveAbuseUserReportRequest,
|
||||||
AdminRolesAssignRequest,
|
AdminRolesAssignRequest,
|
||||||
|
AdminRolesCloneRequest,
|
||||||
|
AdminRolesCloneResponse,
|
||||||
AdminRolesCreateRequest,
|
AdminRolesCreateRequest,
|
||||||
AdminRolesCreateResponse,
|
AdminRolesCreateResponse,
|
||||||
AdminRolesDeleteRequest,
|
AdminRolesDeleteRequest,
|
||||||
|
|
|
||||||
|
|
@ -856,6 +856,17 @@ declare module '../api.js' {
|
||||||
credential?: string | null,
|
credential?: string | null,
|
||||||
): Promise<SwitchCaseResponseType<E, P>>;
|
): Promise<SwitchCaseResponseType<E, P>>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* No description provided.
|
||||||
|
*
|
||||||
|
* **Credential required**: *Yes* / **Permission**: *write:admin:roles*
|
||||||
|
*/
|
||||||
|
request<E extends 'admin/roles/clone', P extends Endpoints[E]['req']>(
|
||||||
|
endpoint: E,
|
||||||
|
params: P,
|
||||||
|
credential?: string | null,
|
||||||
|
): Promise<SwitchCaseResponseType<E, P>>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* No description provided.
|
* No description provided.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,8 @@ import type {
|
||||||
AdminResetPasswordResponse,
|
AdminResetPasswordResponse,
|
||||||
AdminResolveAbuseUserReportRequest,
|
AdminResolveAbuseUserReportRequest,
|
||||||
AdminRolesAssignRequest,
|
AdminRolesAssignRequest,
|
||||||
|
AdminRolesCloneRequest,
|
||||||
|
AdminRolesCloneResponse,
|
||||||
AdminRolesCreateRequest,
|
AdminRolesCreateRequest,
|
||||||
AdminRolesCreateResponse,
|
AdminRolesCreateResponse,
|
||||||
AdminRolesDeleteRequest,
|
AdminRolesDeleteRequest,
|
||||||
|
|
@ -738,6 +740,7 @@ export type Endpoints = {
|
||||||
'admin/reset-password': { req: AdminResetPasswordRequest; res: AdminResetPasswordResponse };
|
'admin/reset-password': { req: AdminResetPasswordRequest; res: AdminResetPasswordResponse };
|
||||||
'admin/resolve-abuse-user-report': { req: AdminResolveAbuseUserReportRequest; res: EmptyResponse };
|
'admin/resolve-abuse-user-report': { req: AdminResolveAbuseUserReportRequest; res: EmptyResponse };
|
||||||
'admin/roles/assign': { req: AdminRolesAssignRequest; res: EmptyResponse };
|
'admin/roles/assign': { req: AdminRolesAssignRequest; res: EmptyResponse };
|
||||||
|
'admin/roles/clone': { req: AdminRolesCloneRequest; res: AdminRolesCloneResponse };
|
||||||
'admin/roles/create': { req: AdminRolesCreateRequest; res: AdminRolesCreateResponse };
|
'admin/roles/create': { req: AdminRolesCreateRequest; res: AdminRolesCreateResponse };
|
||||||
'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse };
|
'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse };
|
||||||
'admin/roles/list': { req: EmptyRequest; res: AdminRolesListResponse };
|
'admin/roles/list': { req: EmptyRequest; res: AdminRolesListResponse };
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,8 @@ export type AdminResetPasswordRequest = operations['admin___reset-password']['re
|
||||||
export type AdminResetPasswordResponse = operations['admin___reset-password']['responses']['200']['content']['application/json'];
|
export type AdminResetPasswordResponse = operations['admin___reset-password']['responses']['200']['content']['application/json'];
|
||||||
export type AdminResolveAbuseUserReportRequest = operations['admin___resolve-abuse-user-report']['requestBody']['content']['application/json'];
|
export type AdminResolveAbuseUserReportRequest = operations['admin___resolve-abuse-user-report']['requestBody']['content']['application/json'];
|
||||||
export type AdminRolesAssignRequest = operations['admin___roles___assign']['requestBody']['content']['application/json'];
|
export type AdminRolesAssignRequest = operations['admin___roles___assign']['requestBody']['content']['application/json'];
|
||||||
|
export type AdminRolesCloneRequest = operations['admin___roles___clone']['requestBody']['content']['application/json'];
|
||||||
|
export type AdminRolesCloneResponse = operations['admin___roles___clone']['responses']['200']['content']['application/json'];
|
||||||
export type AdminRolesCreateRequest = operations['admin___roles___create']['requestBody']['content']['application/json'];
|
export type AdminRolesCreateRequest = operations['admin___roles___create']['requestBody']['content']['application/json'];
|
||||||
export type AdminRolesCreateResponse = operations['admin___roles___create']['responses']['200']['content']['application/json'];
|
export type AdminRolesCreateResponse = operations['admin___roles___create']['responses']['200']['content']['application/json'];
|
||||||
export type AdminRolesDeleteRequest = operations['admin___roles___delete']['requestBody']['content']['application/json'];
|
export type AdminRolesDeleteRequest = operations['admin___roles___delete']['requestBody']['content']['application/json'];
|
||||||
|
|
|
||||||
|
|
@ -711,6 +711,15 @@ export type paths = {
|
||||||
*/
|
*/
|
||||||
post: operations['admin___roles___assign'];
|
post: operations['admin___roles___assign'];
|
||||||
};
|
};
|
||||||
|
'/admin/roles/clone': {
|
||||||
|
/**
|
||||||
|
* admin/roles/clone
|
||||||
|
* @description No description provided.
|
||||||
|
*
|
||||||
|
* **Credential required**: *Yes* / **Permission**: *write:admin:roles*
|
||||||
|
*/
|
||||||
|
post: operations['admin___roles___clone'];
|
||||||
|
};
|
||||||
'/admin/roles/create': {
|
'/admin/roles/create': {
|
||||||
/**
|
/**
|
||||||
* admin/roles/create
|
* admin/roles/create
|
||||||
|
|
@ -10385,6 +10394,60 @@ export type operations = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* admin/roles/clone
|
||||||
|
* @description No description provided.
|
||||||
|
*
|
||||||
|
* **Credential required**: *Yes* / **Permission**: *write:admin:roles*
|
||||||
|
*/
|
||||||
|
admin___roles___clone: {
|
||||||
|
requestBody: {
|
||||||
|
content: {
|
||||||
|
'application/json': {
|
||||||
|
/** Format: misskey:id */
|
||||||
|
roleId: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
responses: {
|
||||||
|
/** @description OK (with results) */
|
||||||
|
200: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Role'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/** @description Client error */
|
||||||
|
400: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Error'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/** @description Authentication error */
|
||||||
|
401: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Error'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/** @description Forbidden error */
|
||||||
|
403: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Error'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/** @description I'm Ai */
|
||||||
|
418: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Error'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/** @description Internal server error */
|
||||||
|
500: {
|
||||||
|
content: {
|
||||||
|
'application/json': components['schemas']['Error'];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* admin/roles/create
|
* admin/roles/create
|
||||||
* @description No description provided.
|
* @description No description provided.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue