rustploy-gui 0.1.53

Rustploy — desktop client (glacier-ui) for the Rustploy PaaS daemon
// Aba Jobs do projeto.
component {
  resources {
    component(name = SemJobsNoProjeto) {
      text("{t('common.no_jobs_registered_yet')}", class = u-muted)
    }
  }

  row(class = env__head) {
    text("{t('project_jobs.job_s', project_jobs_count=project_jobs_count)}", class = "u-muted u-fill")

    button(
      class = "btn btn--primary btn--sm",
      on_click = open_new_job_window,
      disabled = @busy_open_new_job_window,
      text = "{t('common.new_job')}",
    )
  }

  scrollable(direction = vertical, class = u-fill-all) {
    column(class = kv-list) {
      each @project_jobs as j (fallback = SemJobsNoProjeto) {
        row(class = kv-list__row) {
          text("@j.name", class = env__key)
          text("@j.recurrence", class = "u-muted table__col-dur")

          StateCell(
            kind = @j.last_run_kind,
            label = @j.last_run_label,
          )

          text(
            "→ @j.next_run_at",
            class = "u-muted kv-list__val kv-list__val--compact",
          )

          StateCell(kind = @j.warm_kind, label = @j.warm_label)

          JobActions(
            job_id = @j.id,
            job_name = @j.name_full,
            running = @j.running,
            enabled = @j.enabled,
            enabled_label = @j.enabled_label,
            last_run_id = @j.last_run_id,
            is_warm = @j.is_warm,
            is_warming = @j.is_warming,
            warm_kind = @j.warm_kind,
            warm_label = @j.warm_label,
            warm_reason = @j.warm_reason,
            warmed_at_label = @j.warmed_at_label,
          )
        }
      }
    }
  }
}