summaryrefslogtreecommitdiff
path: root/client/components/Tasks/TaskListView.jsx
blob: b93ecc325ebe31c8cbc5fb04e3322922d7283c87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import { h, Component } from 'preact'

import format from '../../vendor/format.js'
import FileLink from '../../containers/fileLink.js'

export default function TaskListView (props) {
  const tasks = (props.tasks || []).map( (task, i) => {
    const created_at = format.verboseDate(task.created_at)
    let files = []
    let cancel
    if (task.content_file) {
      files.push(
        <span class='name'><FileLink file={task.content_file} /></span>
      )
    }
    if (task.style_file) {
      files.push(
        <span class='name'><FileLink file={task.style_file} /></span>
      )
    }
    if (! task.output_file && ! task.processing) {
      cancel = (
        <span class='cancel' onClick={() => props.cancelTask(task)}>x</span>
      )
    }
    const completed = task.completed ? 'completed' : ''
    let filename = task.output_file ? task.output_file.name :
                   task.processing ? '(processing)' : '(waiting)'
    return (
      <div key={i}>
        <div class='row'>
          <span class='date'>{created_at.date}</span>
          <span class='time'>{created_at.time}</span>
          <span class={'name output ' + completed}><FileLink file={task.output_file}>{filename}</FileLink></span>
          {cancel}
        </div>
        <div class='row'>
          <span class='alpha'>α={task.alpha}</span>
          {files}
        </div>
      </div>
    )
        // <span class='name'>{task.result_file.name}</span>
  })
  return (
    <div class='tasks list'>
      {tasks}
    </div>
  )
}