rustploy-gui 0.1.13

Rustploy — desktop client (glacier-ui) for the Rustploy PaaS daemon
// Sub-aba Git do provider: URL/imagem crua; corpo do `if @provider_tab == "git"` de general.gvb.
component {
  text(
    class = u-label-cap,
    content = "SOURCE — REPOSITORY URL / IMAGE",
  )

  input(
    class = field__input,
    form_control = service_form_repo_url,
    :value = service_form_repo_url,
    on_change = field:service_form_repo_url,
    placeholder = "github.com/user/repo  ou  nginx:latest",
  )

  text(
    class = u-muted,
    content = """
      URL de repositório vira Git; caso contrário é imagem de
      registry.
    """,
  )

  row(class = healthcheck__grid) {
    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "BRANCH")

      input(
        class = field__input,
        form_control = service_form_branch,
        :value = service_form_branch,
        on_change = field:service_form_branch,
        placeholder = main,
      )
    }

    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "PORT")

      input(
        class = field__input,
        form_control = service_form_general_port,
        :value = service_form_general_port,
        on_change = field:service_form_general_port,
        placeholder = 80,
      )

      text(
        if = @error_service_form_general_port,
        not_equals = "",
        class = u-error,
        content = "@error_service_form_general_port",
      )
    }
  }

  row(class = healthcheck__grid) {
    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "USERNAME")

      input(
        class = field__input,
        form_control = service_form_username,
        :value = service_form_username,
        on_change = field:service_form_username,
        placeholder = "(opcional)",
      )
    }

    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "CREDENTIALS (secret)")

      input(
        class = field__input,
        form_control = service_form_credentials,
        :value = service_form_credentials,
        on_change = field:service_form_credentials,
        placeholder = "(opcional)",
      )

      text(
        class = u-muted,
        content = """
          Nome de um secret do projeto (aba Secrets), puro — sem
          <secret:>. Usado para clonar repositório Git privado
          via HTTPS; não tem efeito com URL SSH.
        """,
      )
    }
  }

  text(class = u-label-cap, content = "BUILD PATH (root)")

  input(
    class = field__input,
    form_control = service_form_build_path,
    :value = service_form_build_path,
    on_change = field:service_form_build_path,
    placeholder = .,
  )

  text(
    class = u-label-cap,
    content = "WATCH PATHS (separados por vírgula)",
  )

  input(
    class = field__input,
    form_control = service_form_watch_paths,
    :value = service_form_watch_paths,
    on_change = field:service_form_watch_paths,
    placeholder = "src, Cargo.toml",
  )

  toggle(
    :checked = service_form_submodules,
    on_toggle = field:service_form_submodules,
    label = " Enable submodules",
  )

  text(class = u-label-cap, content = "BUILD ENGINE: DOCKERFILE")

  row(class = healthcheck__grid) {
    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "DOCKERFILE")

      input(
        class = field__input,
        form_control = service_form_dockerfile,
        :value = service_form_dockerfile,
        on_change = field:service_form_dockerfile,
        placeholder = Dockerfile,
      )
    }

    column(class = healthcheck__field) {
      text(class = u-label-cap, content = "CONTEXT PATH")

      input(
        class = field__input,
        form_control = service_form_context_path,
        :value = service_form_context_path,
        on_change = field:service_form_context_path,
        placeholder = .,
      )
    }
  }

  text(class = u-label-cap, content = "BUILD STAGE (opcional)")

  input(
    class = field__input,
    form_control = service_form_build_stage,
    :value = service_form_build_stage,
    on_change = field:service_form_build_stage,
    placeholder = "(multi-stage target)",
  )

  row(class = env__add) {
    button(
      class = "btn btn--primary",
      on_click = general_save,
      disabled = @busy_general_save,
      text = Save,
    )

    text(class = u-muted, content = "@service_action_message")
  }
}