name: queue_import_history
label: Data Import History
icon: product_consumed
enable_files: false
hidden: true
version: 2
fields:
  object_name:
    type: lookup
    reference_to: objects
    reference_to_field: name
  queue_import:
    type: master_detail
    write_requires_master_read: true
    label: queue import
    required: true
    # 这里不能配置depend_on属性，因为用户在导入数据界面选择模板时需要使用lookup pick模式而不是select下拉模式选择模板，这样就可以在选项列表点击下载按钮下载模板
    # 已经测试过下面的filtersFunction中是能拿到初始的values.object_name值的，而且界面object_name字段是隐藏的，所以并不需要支持object_name变更的情况
    # depend_on:
    #   - object_name
    reference_to: queue_import
    filtersFunction: !!js/function |
      function(filters, values){
        if(!values.object_name){
          return filters
        }
        return ['object_name', '=', values.object_name]
      }
  success_count:
    label: Number of Successful Records
    type: number
    readonly: true
    name: success_count
    visible_on: "{{global.mode ==='read' ? true : false}}"
  failure_count:
    label: Number of Failed Records
    type: number
    readonly: true
    name: failure_count
    visible_on: "{{global.mode ==='read' ? true : false}}"
  total_count:
    label: Total Number
    type: number
    readonly: true
    name: total_count
    visible_on: "{{global.mode ==='read' ? true : false}}"
  start_time:
    label: Start Time
    type: datetime
    readonly: true
    name: start_time
    visible_on: "{{global.mode ==='read' ? true : false}}"
  end_time:
    label: End Time
    type: datetime
    readonly: true
    name: end_time
    visible_on: "{{global.mode ==='read' ? true : false}}"
  state:
    label: State
    type: select
    readonly: true
    name: state
    filterable: true
    options:
      - label: Finished
        value: finished
    visible_on: "{{global.mode ==='read' ? true : false}}"
  error:
    label: Error Message
    type: html
    is_wide: true
    readonly: true
    name: error
    visible_on: "{{global.mode ==='read' ? true : false}}"
  file:
    label: Excel File
    type: file
    name: file
    required: true
list_views:
  all:
    label: All Queues
    columns:
      - queue_import
      - success_count
      - failure_count
      - total_count
      - start_time
      - end_time
      - state
      - created_by
    filter_scope: space
    sort: [["start_time", "desc"]]
permission_set:
  user:
    allowCreate: true
    allowDelete: false
    allowEdit: true
    allowRead: true
    modifyAllRecords: false
    viewAllRecords: false
  admin:
    allowCreate: true
    allowDelete: true
    allowEdit: true
    allowRead: true
    modifyAllRecords: true
    viewAllRecords: true
form:
  initialValues: !!js/function |
    function(){
      console.log(this)
      if (this.master && this.master.record && this.master.record.object_name) {
        return {
          object_name: this.master.record.object_name
        }
      }
      return {
        queue_import: ''
      }
    }