function getActionList()

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',
      },
    ];
  }