Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions agent/app/dto/request/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ type WebsiteDelete struct {
DeleteApp bool `json:"deleteApp"`
DeleteBackup bool `json:"deleteBackup"`
ForceDelete bool `json:"forceDelete"`
DeleteDB bool `json:"deleteDB"`
}

type WebsiteOp struct {
Expand Down
30 changes: 30 additions & 0 deletions agent/app/service/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,36 @@ func (w WebsiteService) DeleteWebsite(req request.WebsiteDelete) error {
return buserr.WithName("ErrParentWebsite", strings.Join(names, ","))
}
}

if website.Type == constant.Runtime && req.DeleteDB && website.DbID != 0 {
switch website.DbType {
case constant.AppMysql, constant.AppMariaDB:
mysqlDB, _ := mysqlRepo.Get(repo.WithByID(website.DbID))
if mysqlDB.ID > 0 {
deleteReq := dto.MysqlDBDelete{
ID: mysqlDB.ID,
Database: mysqlDB.MysqlName,
ForceDelete: req.ForceDelete,
}
if err = NewIMysqlService().Delete(context.TODO(), deleteReq); err != nil && !req.ForceDelete {
return err
}
}
case constant.AppPostgresql, constant.AppPostgres:
pgDB, _ := postgresqlRepo.Get(repo.WithByID(website.DbID))
if pgDB.ID > 0 {
deleteReq := dto.PostgresqlDBDelete{
ID: pgDB.ID,
ForceDelete: req.ForceDelete,
Database: pgDB.PostgresqlName,
}
if err = NewIPostgresqlService().Delete(context.TODO(), deleteReq); err != nil && !req.ForceDelete {
return err
}
}
}
}

if err = delNginxConfig(website, req.ForceDelete); err != nil {
return err
}
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2347,6 +2347,7 @@ const message = {
'Force deletion will ignore errors during the deletion process and eventually delete metadata.',
deleteAppHelper: 'Delete associated applications and application backups at the same time',
deleteBackupHelper: 'Also delete website backups.',
deleteDatabaseHelper: 'Also delete the database associated with the website',
deleteConfirmHelper: `The delete operation can't be undone. Enter <span style="color:red"> "{0}" </span> to confirm deletion.`,
staticPath: 'The corresponding main directory is ',
limit: 'Scheme',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/es-es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2336,6 +2336,7 @@ const message = {
forceDeleteHelper: 'La eliminación forzada ignorará errores y eliminará metadatos igualmente.',
deleteAppHelper: 'Eliminar también aplicaciones y backups asociados',
deleteBackupHelper: 'Eliminar también copias de seguridad del sitio',
deleteDatabaseHelper: 'También eliminar la base de datos asociada al sitio web',
deleteConfirmHelper: `Esta acción es irreversible. Escribe <span style="color:red"> "{0}" </span> para confirmar.`,
staticPath: 'El directorio principal correspondiente es ',
limit: 'Esquema',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2262,6 +2262,7 @@ const message = {
forceDeleteHelper: 'フォース削除は、削除プロセス中のエラーを無視し、最終的にメタデータを削除します。',
deleteAppHelper: '関連するアプリケーションとアプリケーションのバックアップを同時に削除する',
deleteBackupHelper: 'また、Webサイトのバックアップを削除します。',
deleteDatabaseHelper: 'ウェブサイトに関連付けられたデータベースも削除します',
deleteConfirmHelper:
'削除操作を元に戻すことはできません。<span style = "color:red"> "{0}" </span>を入力して、削除を確認します。',
staticPath: '対応するメインディレクトリはです',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2223,6 +2223,7 @@ const message = {
forceDeleteHelper: '강제 삭제는 삭제 과정에서 발생하는 오류를 무시하고 최종적으로 메타데이터를 삭제합니다.',
deleteAppHelper: '관련 애플리케이션 및 애플리케이션 백업을 동시에 삭제합니다.',
deleteBackupHelper: '웹사이트 백업도 삭제합니다.',
deleteDatabaseHelper: '웹사이트와 연결된 데이터베이스도 삭제합니다',
deleteConfirmHelper:
'삭제 작업은 되돌릴 수 없습니다. 확인하려면 <span style=\'color:red\'>"{0}"</span>을(를) 입력하세요.',
staticPath: '해당 주요 디렉터리는',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2316,6 +2316,7 @@ const message = {
forceDeleteHelper: 'Padam paksa akan mengabaikan ralat semasa proses pemadaman dan akhirnya memadam metadata.',
deleteAppHelper: 'Padam aplikasi yang berkaitan dan sandaran aplikasi pada masa yang sama',
deleteBackupHelper: 'Juga padamkan sandaran laman web.',
deleteDatabaseHelper: 'Juga hapuskan pangkalan data yang berkaitan dengan laman web',
deleteConfirmHelper: `Operasi pemadaman tidak boleh dibatalkan. Masukkan <span style="color:red"> "{0}" </span> untuk mengesahkan pemadaman.`,
staticPath: 'Direktori utama yang sepadan ialah ',
limit: 'Skim',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/pt-br.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2317,6 +2317,7 @@ const message = {
forceDeleteHelper: 'A exclusão forçada ignorará erros durante o processo de exclusão e excluirá os metadados.',
deleteAppHelper: 'Excluir aplicativos associados e backups de aplicativos ao mesmo tempo',
deleteBackupHelper: 'Excluir também backups do site.',
deleteDatabaseHelper: 'Também excluir o banco de dados associado ao site',
deleteConfirmHelper: `A operação de exclusão não pode ser desfeita. Digite <span style="color:red"> "{0}" </span> para confirmar a exclusão.`,
staticPath: 'O diretório principal correspondente é ',
limit: 'Plano',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2314,6 +2314,7 @@ const message = {
'Принудительное удаление будет игнорировать ошибки во время процесса удаления и в итоге удалит метаданные.',
deleteAppHelper: 'Удалить связанные приложения и резервные копии приложений одновременно',
deleteBackupHelper: 'Также удалить резервные копии веб-сайта.',
deleteDatabaseHelper: 'Также удалить базу данных, связанную с веб-сайтом',
deleteConfirmHelper:
'Операцию удаления нельзя отменить. Введите <span style="color:red"> "{0}" </span> для подтверждения удаления.',
staticPath: 'Соответствующая основная директория - ',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2376,6 +2376,7 @@ const message = {
'Zorla silme, silme işlemi sırasında oluşan hataları yok sayar ve nihayetinde meta verileri siler.',
deleteAppHelper: 'İlgili uygulamaları ve uygulama yedeklerini aynı anda sil',
deleteBackupHelper: 'Web sitesi yedeklerini de sil.',
deleteDatabaseHelper: 'Ayrıca web sitesi ile ilişkili veritabanını da sil',
deleteConfirmHelper:
'Silme işlemi geri alınamaz. Silmeyi onaylamak için <span style="color:red"> "{0}" </span> yazın.',
staticPath: 'Karşılık gelen ana dizin ',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/zh-Hant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2187,6 +2187,7 @@ const message = {
forceDeleteHelper: '強制刪除,會忽略刪除過程中產生的錯誤並最終刪除中繼資料',
deleteAppHelper: '同時刪除關聯應用、資料庫以及應用備份',
deleteBackupHelper: '同時刪除網站備份',
deleteDatabaseHelper: '同時刪除網站關聯資料庫',
deleteConfirmHelper: '刪除操作無法回滾,請輸入 <span style="color:red"> "{0}" </span> 刪除',
staticPath: '對應主目錄:',
limit: '限制方案',
Expand Down
1 change: 1 addition & 0 deletions frontend/src/lang/modules/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2178,6 +2178,7 @@ const message = {
forceDeleteHelper: '强制删除,会忽略删除过程中产生的错误并最终删除元数据',
deleteAppHelper: '同时删除关联应用、数据库以及应用备份',
deleteBackupHelper: '同时删除网站备份',
deleteDatabaseHelper: '同时删除网站关联数据库',
deleteConfirmHelper: '删除操作无法回滚,请输入 <span style="color:red"> "{0}" </span> 删除',
staticPath: '对应主目录:',
limit: '限制方案',
Expand Down
23 changes: 21 additions & 2 deletions frontend/src/views/host/process/process/detail/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
</el-descriptions>
</el-tab-pane>
<el-tab-pane :label="$t('process.openFiles')" name="openFiles">
<el-table :data="data.openFiles" border style="width: 100%">
<el-table max-height="800px" :data="data.openFiles" border class="w-full">
<el-table-column prop="path" :label="$t('menu.files')" />
<el-table-column prop="fd" label="fd" width="100px" />
</el-table>
Expand All @@ -61,7 +61,7 @@
></CodemirrorPro>
</el-tab-pane>
<el-tab-pane :label="$t('process.net')" name="net">
<el-table :data="data.connects" border style="width: 100%">
<el-table max-height="800px" :data="data.connects" border class="w-full">
<el-table-column prop="localaddr" :label="$t('process.laddr')">
<template #default="{ row }">
<span>{{ row.localaddr.ip }}</span>
Expand Down Expand Up @@ -90,6 +90,25 @@ const open = ref(false);
const data = ref({
name: '',
envs: [] as string[],
status: '',
PID: 0,
PPID: 0,
numThreads: 0,
numConnections: 0,
diskRead: '',
diskWrite: '',
username: '',
startTime: '',
cmdLine: '',
rss: '',
swap: '',
vms: '',
hwm: '',
data: '',
stack: '',
locked: '',
openFiles: [],
connects: [],
});
const resourceName = ref('');
const activeName = ref('basic');
Expand Down
24 changes: 13 additions & 11 deletions frontend/src/views/website/website/delete/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,18 @@
{{ $t('website.deleteAppHelper') }}
</span>
</el-form-item>

<el-form-item>
<el-checkbox v-model="deleteReq.deleteBackup" :label="$t('website.deleteBackup')" />
<span class="input-help">
{{ $t('website.deleteBackupHelper') }}
</span>
</el-form-item>
<el-form-item v-if="type === 'runtime'">
<el-checkbox v-model="deleteReq.deleteDB" :label="$t('app.deleteDB')" />
<span class="input-help">
{{ $t('website.deleteDatabaseHelper') }}
</span>
</el-form-item>
<el-form-item v-if="subSites != ''">
<span class="input-help text-red-500">
{{ $t('website.deleteSubsite', [subSites]) }}
Expand Down Expand Up @@ -51,15 +56,17 @@ import { ref } from 'vue';
import { Website } from '@/api/interface/website';
import { MsgSuccess } from '@/utils/message';

const key = 1;
const open = ref(false);
const loading = ref(false);
const deleteReq = ref({
const initData = () => ({
id: 0,
deleteApp: false,
deleteBackup: false,
forceDelete: false,
deleteDB: false,
});
const key = 1;
const open = ref(false);
const loading = ref(false);
const deleteReq = ref(initData());
const type = ref('');
const em = defineEmits(['close']);
const deleteForm = ref<FormInstance>();
Expand All @@ -74,12 +81,7 @@ const handleClose = () => {
};

const acceptParams = async (website: Website.WebsiteDTO) => {
deleteReq.value = {
id: 0,
deleteApp: false,
deleteBackup: false,
forceDelete: false,
};
deleteReq.value = initData();

subSites.value = '';
if (website.childSites && website.childSites.length > 0) {
Expand Down
Loading