Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
task-list.component.html 5.67 KiB
<div class="content">
  <div class="list is-hoverable" [ngClass]="{ 'text-normal': drugstoneConfig.smallStyle }">
    <a
      *ngFor="let task of analysis.tasks"
      class="list-item box small-box"
      [class.is-active]="task.token === token"
    >
      <div *ngIf="!task.info.startedAt">
        <div class="columns mb-0">
          <div class="column is-8">
            <span class="is-capitalized"
              ><i
                class="fa"
                [class.fa-capsules]="task.info.target === 'drug'"
                [class.fa-crosshairs]="task.info.target === 'drug-target'"
              ></i>
              {{ algorithmNames[task.info.algorithm] }}</span
            >
          </div>
          <div class="column is-2">
            <span class="icon is-pulled-right"
              ><i class="fas fa-pause" aria-hidden="true"></i
            ></span>
          </div>
        </div>
        <div class="columns mb-0">
          <div class="column is-8 pt-0 pb-0">
            <small
              *ngIf="
                task.stats.queueLength > 0 && task.stats.queuePosition === 1
              "
            >
              Queued: 1 other task to finish
            </small>
            <small
              *ngIf="task.stats.queueLength > 0 && task.stats.queuePosition > 1"
            >
              Queued: {{ task.stats.queuePosition }} other tasks to finish
            </small>
            <small
              *ngIf="
                task.stats.queueLength === 0 || task.stats.queuePosition === 0
              "
            >
              Execution imminent...
            </small>
          </div>
          <div class="column is-2 pt-0 pb-0">
            <a (click)="analysis.removeTask(task.token)" class="text-danger is-pulled-right">
              <span class="icon">
                <i class="fa fa-trash"></i>
              </span>
            </a>
          </div>
        </div>
      </div>
      <div *ngIf="!task.info.done && !task.info.failed && task.info.startedAt">
        <div class="columns mb-0">
          <div class="column is-8">
            <span class="is-capitalized"
              ><i
                class="fa"
                [class.fa-capsules]="task.info.target === 'drug'"
                [class.fa-crosshairs]="task.info.target === 'drug-target'"
              ></i>
              {{ algorithmNames[task.info.algorithm] }}</span
            >
          </div>
          <div class="column is-2">
            <span class="icon is-pulled-right"
              ><i class="fas fa-spinner fa-spin" aria-hidden="true"></i
            ></span>
          </div>
        </div>
        <div class="columns mb-0">
          <div class="column is-8 pt-0 pb-0">
            <small>Started {{ task.info.startedAt | date: "short" }}</small>
          </div>
          <div class="column is-2 pt-0 pb-0">
            <a
              (click)="analysis.removeTask(task.token)"
              class="text-danger is-pulled-right"
            >
              <span class="icon">
                <i class="fa fa-trash"></i>
              </span>
            </a>
          </div>
        </div>
        <progress
          class="progress is-success"
          [value]="task.info.progress * 100"
          max="100"
        ></progress>
      </div>
      <div
        *ngIf="task.info.done"
        (click)="open(task.token)"
        pTooltip="Show analysis results"
        [tooltipStyleClass]="'drgstn drgstn-tooltip'"
        tooltipPosition="top"
      >
        <div class="columns mb-0">
          <div class="column is-8">
            <span class="is-capitalized"
              ><i
                class="fa"
                [class.fa-capsules]="task.info.target === 'drug'"
                [class.fa-crosshairs]="task.info.target === 'drug-target'"
              ></i>
              {{ algorithmNames[task.info.algorithm] }}</span
            >
          </div>
          <div class="column is-2">
            <span class="icon is-pulled-right"
              ><i class="fas fa-check" aria-hidden="true"></i
            ></span>
          </div>
        </div>
        <div class="columns mb-0">
          <div class="column is-8 pt-0 pb-0">
            <small>Finished {{ task.info.finishedAt | date: "short" }}</small>
          </div>
          <div class="column is-2 pt-0 pb-0">
            <a (click)="analysis.removeTask(task.token)" class="text-danger is-pulled-right">
              <span class="icon">
                <i class="fa fa-trash"></i>
              </span>
            </a>
          </div>
        </div>
      </div>
      <div *ngIf="task.info.failed">
        <div class="columns mb-0">
          <div class="column is-8">
            <span class="is-capitalized"
              ><i
                class="fa"
                [class.fa-capsules]="task.info.target === 'drug'"
                [class.fa-crosshairs]="task.info.target === 'drug-target'"
              ></i>
              {{ algorithmNames[task.info.algorithm] }}</span
            >
          </div>
          <div class="column is-2">
            <span class="icon is-pulled-right"
              ><i class="fas fa-exclamation-triangle" aria-hidden="true"></i
            ></span>
          </div>
        </div>
        <div class="columns mb-0">
          <div class="column is-8 pt-0 pb-0 text-danger">
            <small class="status-field">{{ task.info.status }}</small>
          </div>
          <div class="column is-2 pt-0 pb-0">
            <a
              (click)="analysis.removeTask(task.token)"
              class="text-danger is-pulled-right"
            >
              <span class="icon  ">
                <i class="fa fa-trash"></i>
              </span>
            </a>
          </div>
        </div>
      </div>
    </a>
  </div>
</div>