rustploy-gui 0.1.53

Rustploy — desktop client (glacier-ui) for the Rustploy PaaS daemon
// Atualizações: pergunta ao daemon se há release mais nova (Command::CheckUpdate).
// Só consulta — instalar é manual por enquanto (docs/plano-updaters-daemon-e-gui.md).
component {
  scrollable(direction = vertical, class = u-fill-all) {
    column(class = form-panel) {
      text("{t('settings_updates.daemon')}", class = u-label-cap)

      row(class = kv-list__row) {
        text("{t('settings_updates.installed_version')}", class = kv-list__key)
        text("@update_current_version", class = "kv-list__val kv-list__val--compact")
      }

      row(class = kv-list__row) {
        text("{t('settings_updates.latest_version')}", class = kv-list__key)
        text("@update_latest_version", class = "kv-list__val kv-list__val--compact")
      }

      row(class = kv-list__row) {
        text("{t('settings_updates.checked_at')}", class = kv-list__key)
        text("@update_checked_at_label", class = "kv-list__val kv-list__val--compact")
      }

      row(class = healthcheck__grid) {
        button(
          class = "btn btn--ghost btn--sm",
          on_click = update_check_now,
          text = "{t('settings_updates.check_for_updates')}",
        )
      }

      text("@update_message", class = u-muted)

      if @update_is_helper_available == "true" {
        text("{t('settings_updates.update_from_the_app')}", class = u-label-cap)

        text(
          "{t('settings_updates.the_daemon_downloads_the_new_version')}",
          class = u-muted,
        )

        row(class = healthcheck__grid) {
          if @update_is_available == "true" {
            button(
              class = "btn btn--primary btn--sm",
              on_click = update_apply,
              text = "{t('settings_updates.update_daemon')}",
            )
          }

          button(
            class = "btn btn--ghost btn--sm",
            on_click = update_rollback,
            text = "{t('settings_updates.roll_back_to_the_previous')}",
          )
        }
      }

      text("@update_progress_message", class = u-muted)

      if @update_app_current_version != "" {
        text("{t('settings_updates.desktop_app')}", class = u-label-cap)

        row(class = kv-list__row) {
          text("{t('settings_updates.installed_version')}", class = kv-list__key)
          text("@update_app_current_version", class = "kv-list__val kv-list__val--compact")
        }

        row(class = kv-list__row) {
          text("{t('settings_updates.latest_version')}", class = kv-list__key)
          text("@update_app_latest_version", class = "kv-list__val kv-list__val--compact")
        }

        text("@update_app_message", class = u-muted)

        if @update_app_is_available == "true" {
          if @update_app_can_update == "true" {
            row(class = healthcheck__grid) {
              button(
                class = "btn btn--primary btn--sm",
                on_click = update_app_apply,
                text = "{t('settings_updates.update_app')}",
              )
            }

            progressbar(if = @update_app_running, equals = true, :value = update_app_percent)

            row(class = healthcheck__grid) {
              button(
                class = "btn btn--ghost btn--sm",
                on_click = update_app_cancel,
                if = @update_app_running,
                equals = true,
                text = "{t('common.cancel')}",
              )
            }

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

          if @update_app_can_update == "false" {
            text(
              "{t('settings_updates.this_app_was_not_installed')}",
              class = u-muted,
            )

            row(class = kv-list__row) {
              text("@update_app_manual_command", class = "kv-list__val kv-list__val--compact")

              button(
                class = "btn btn--ghost btn--xs",
                on_click = copy_ctx:update_app_manual_command,
                text = "{t('common.copy')}",
              )
            }
          }
        }
      }

      if @update_is_available == "true" {
        text("{t('settings_updates.how_to_update_by_hand')}", class = u-label-cap)

        text(
          "{t('settings_updates.there_is_a_new_version_for')}",
          class = u-muted,
        )

        row(class = kv-list__row) {
          text("@update_install_command", class = "kv-list__val kv-list__val--compact")

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:update_install_command,
            text = "{t('common.copy')}",
          )
        }

        row(class = kv-list__row) {
          text("{t('settings_updates.release_notes')}", class = kv-list__key)
          text("@update_release_url", class = "kv-list__val kv-list__val--compact")

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:update_release_url,
            text = "{t('common.copy')}",
          )
        }
      }
    }
  }
}