name: lockout
label: Lockout
'on': record_only
type: amis_button
amis_schema: |-
  {
    "type": "service",
    "data": {
      "lockout": ""
    },
    "body": [{
      "type": "service",
      "api": {
        "url": "/service/api/space_users/is_lockout",
        "method": "post",
        "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
        "adaptor": ""
      },
      "body": [
        {
          "type": "button",
          "label": "${'CustomAction.space_users.lockout' | t}",
          "id": "u:lockout",
          "confirmText": "${'CustomLabels.space_users_actions_lockout_confirmText' | t}",
          "onEvent": {
            "click": {
              "weight": 0,
              "actions": [
                {
                  "actionType": "ajax",
                  "api": {
                    "url": "/service/api/space_users/lockout",
                    "method": "post",
                    "requestAdaptor": "api.data={suId: context.recordId}\n\n\nreturn api;",
                    "adaptor": "return payload.success ? {data: {...payload}, status: 0, msg: t('CustomLabels.space_users_actions_lockout_success')} : {...payload, status: 1, msg: t('CustomLabels.space_users_actions_lockout_failed')};"
                  }
                },
                {
                  "actionType": "broadcast",
                  "args": {
                    "eventName": "@data.changed.space_users"
                  },
                  "data": {
                    "objectName": "space_users",
                    "displayAs": "${displayAs}"
                  }
                },
                {
                  "actionType": "refresh"
                }
              ]
            }
          },
          "visibleOn": "context.user.is_space_admin == true && invite_state != 'refused' && invite_state != 'pending'  && context.user.spaceUserId != context.recordId && lockout != true"
        }
      ],
      "regions": [
        "body"
      ],
      "bodyClassName": "p-0",
      "id": "u:6d7a34bd662e",
      "dsType": "api"
    }]
  }