From 61ff8e52b1a3d2b2c2ffae93341f74cbeeb86917 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Mon, 23 Jan 2023 00:22:27 +0100 Subject: [PATCH] DEV: Upgrade routes --- .../discourse/routes/upgrade-index.js | 26 +++---- .../discourse/routes/upgrade-processes.js | 6 +- .../discourse/routes/upgrade-show.js | 78 +++++++++---------- 3 files changed, 54 insertions(+), 56 deletions(-) diff --git a/assets/javascripts/discourse/routes/upgrade-index.js b/assets/javascripts/discourse/routes/upgrade-index.js index 3939857..eeda195 100644 --- a/assets/javascripts/discourse/routes/upgrade-index.js +++ b/assets/javascripts/discourse/routes/upgrade-index.js @@ -1,34 +1,34 @@ import Repo from "discourse/plugins/docker_manager/discourse/models/repo"; import Route from "@ember/routing/route"; -export default Route.extend({ +export default class UpgradeIndex extends Route { model() { return Repo.findAll(); - }, + } - loadRepos(list) { + async loadRepos(list) { if (list.length === 0) { return; } - this.loadRepo(list.shift()).then(() => this.loadRepos(list)); - }, - loadRepo(repo) { - return repo.findLatest(); - }, + await list.shift().findLatest(); + + this.loadRepos(list); + } setupController(controller, model) { const upgradeController = this.controllerFor("upgrade"); - controller.setProperties({ model, upgrading: null }); + controller.model = model; + controller.upgrading = null; model.forEach((repo) => { if (repo.upgrading) { - controller.set("upgrading", repo); + controller.upgrading = repo; } // Special case: Upgrade docker manager first if (repo.id === "docker_manager") { - controller.set("managerRepo", repo); + controller.managerRepo = repo; } // Special case: If the branch is "main" warn user @@ -43,5 +43,5 @@ export default Route.extend({ }); this.loadRepos(model.slice(0)); - }, -}); + } +} diff --git a/assets/javascripts/discourse/routes/upgrade-processes.js b/assets/javascripts/discourse/routes/upgrade-processes.js index d5717da..55a18f8 100644 --- a/assets/javascripts/discourse/routes/upgrade-processes.js +++ b/assets/javascripts/discourse/routes/upgrade-processes.js @@ -1,11 +1,11 @@ import ProcessList from "discourse/plugins/docker_manager/discourse/models/process-list"; import Route from "@ember/routing/route"; -export default Route.extend({ +export default class UpgradeProcesses extends Route { async model() { const processes = new ProcessList(); await processes.refresh(); return processes; - }, -}); + } +} diff --git a/assets/javascripts/discourse/routes/upgrade-show.js b/assets/javascripts/discourse/routes/upgrade-show.js index b8b7825..ccef001 100644 --- a/assets/javascripts/discourse/routes/upgrade-show.js +++ b/assets/javascripts/discourse/routes/upgrade-show.js @@ -1,61 +1,59 @@ import Repo from "discourse/plugins/docker_manager/discourse/models/repo"; import Route from "@ember/routing/route"; -import { Promise } from "rsvp"; +import { tracked } from "@glimmer/tracking"; + +export default class UpgradeShow extends Route { + @tracked progress; -export default Route.extend({ model(params) { if (params.id === "all") { return Repo.findAll(); } + return Repo.find(params.id); - }, + } - afterModel(model) { + async afterModel(model) { if (Array.isArray(model)) { - return Repo.findLatestAll().then((response) => { - JSON.parse(response).repos.forEach((repoData) => { - const repo = model.find((_repo) => _repo.path === repoData.path); - if (!repo) { - return; - } - delete repoData.path; + const response = await Repo.findLatestAll(); - for (const [key, value] of Object.entries(repoData)) { - repo.latest[key] = value; - } - }); + for (const repoData of JSON.parse(response).repos) { + const repo = model.find((_repo) => _repo.path === repoData.path); + if (!repo) { + return; + } - return Repo.findAllProgress( - model.filter((repo) => !repo.upToDate) - ).then((progress) => { - this.set("progress", JSON.parse(progress).progress); - }); - }); + delete repoData.path; + + for (const [key, value] of Object.entries(repoData)) { + repo.latest[key] = value; + } + } + + const progress = await Repo.findAllProgress( + model.filter((repo) => !repo.upToDate) + ); + + this.progress = JSON.parse(progress).progress; + return; } - return Repo.findUpgrading().then((u) => { - if (u && u !== model) { - return Promise.reject("wat"); - } - return model.findLatest().then(() => { - return model.findProgress().then((progress) => { - this.set("progress", progress); - }); - }); - }); - }, + await Repo.findUpgrading(); + await model.findLatest(); + + const progress = await model.findProgress(); + this.progress = progress; + } setupController(controller, model) { controller.reset(); - controller.setProperties({ - model: Array.isArray(model) ? model : [model], - output: this.get("progress.logs"), - percent: this.get("progress.percentage"), - }); + controller.model = Array.isArray(model) ? model : [model]; + controller.output = this.progress.logs; + controller.percent = this.progress.percentage; controller.startBus(); - }, + } deactivate() { this.controllerFor("upgrade.show").stopBus(); - }, -}); + } +}