in streampark-console/streampark-console-webapp/src/views/spark/app/hooks/useSparkTableAction.ts [55:170]
function getActionList(record: SparkApplication, currentPageNo: number): ActionItem[] {
return [
{
tooltip: { title: t('spark.app.operation.edit') },
auth: 'app:update',
icon: 'clarity:note-edit-line',
onClick: handleEdit.bind(null, record, currentPageNo),
},
{
tooltip: { title: t('spark.app.operation.release') },
ifShow:
!isNullAndUnDef(record.release) &&
[
ReleaseStateEnum.FAILED,
ReleaseStateEnum.NEED_RELEASE,
ReleaseStateEnum.NEED_ROLLBACK,
].includes(record.release) &&
record['optionState'] == OptionStateEnum.NONE,
auth: 'app:release',
icon: 'ant-design:cloud-upload-outlined',
onClick: handleCheckReleaseApp.bind(null, record),
},
{
tooltip: { title: t('spark.app.operation.releaseDetail') },
ifShow:
(!isNullAndUnDef(record.release) &&
[ReleaseStateEnum.FAILED, ReleaseStateEnum.RELEASING].includes(record.release)) ||
record['optionState'] == OptionStateEnum.RELEASING,
auth: 'app:release',
icon: 'ant-design:container-outlined',
onClick: () => openBuildDrawer(true, { appId: record.id }),
},
{
tooltip: { title: t('spark.app.operation.start') },
ifShow: handleIsStart(record, optionApps),
auth: 'app:start',
icon: 'ant-design:play-circle-outlined',
onClick: handleAppCheckStart.bind(null, record),
},
{
tooltip: { title: t('spark.app.operation.cancel') },
ifShow:
(record.state == AppStateEnum.ACCEPTED ||
record.state == AppStateEnum.RUNNING ||
record.state == AppStateEnum.SUBMITTED) &&
record['optionState'] == OptionStateEnum.NONE,
auth: 'app:cancel',
icon: 'ant-design:pause-circle-outlined',
popConfirm: {
title: t('spark.app.operation.cancel'),
placement: 'left',
confirm: handleCancel.bind(null, record),
},
},
{
tooltip: { title: t('spark.app.operation.detail') },
auth: 'app:detail',
icon: 'carbon:data-view-alt',
onClick: handleDetail.bind(null, record),
},
// {
// tooltip: { title: t('spark.app.operation.startLog') },
// auth: 'app:detail',
// icon: 'ant-design:code-outlined',
// onClick: () => openLogModal(true, { app: record }),
// },
{
tooltip: { title: t('spark.app.operation.abort') },
ifShow: handleCanStop(record),
auth: 'app:cancel',
icon: 'ant-design:pause-circle-outlined',
onClick: handleAbort.bind(null, record),
},
{
label: t('spark.app.operation.copy'),
auth: 'app:copy',
icon: 'ant-design:copy-outlined',
onClick: handleCopy.bind(null, record),
},
{
label: t('spark.app.operation.remapping'),
ifShow: [
AppStateEnum.ADDED,
AppStateEnum.FAILED,
AppStateEnum.STOPPING,
AppStateEnum.KILLED,
AppStateEnum.SUCCEEDED,
AppStateEnum.FINISHED,
AppStateEnum.LOST,
].includes(record.state as AppStateEnum),
auth: 'app:mapping',
icon: 'ant-design:deployment-unit-outlined',
onClick: handleMapping.bind(null, record),
},
{
popConfirm: {
title: t('spark.app.operation.deleteTip'),
confirm: handleDelete.bind(null, record),
},
label: t('common.delText'),
ifShow:
!isNullAndUnDef(record.state) &&
[
AppStateEnum.ADDED,
AppStateEnum.FAILED,
AppStateEnum.FINISHED,
AppStateEnum.LOST,
AppStateEnum.SUCCEEDED,
AppStateEnum.KILLED,
].includes(record.state),
auth: 'app:delete',
icon: 'ant-design:delete-outlined',
color: 'error',
},
];
}