From 2048afeb8744476bfd5ab307d8d64ca14f0ca2cc Mon Sep 17 00:00:00 2001 From: Marco Vermeulen Date: Wed, 7 Oct 2015 13:22:08 +0100 Subject: [PATCH] FEATURE #371 - Rename and refactor list versions serverside functionality. [MV|FF] --- src/main/templates/list.gtpl | 29 ------------------- .../{list_2.gtpl => list_versions.gtpl} | 0 src/main/vertx/server.groovy | 25 ++++++++-------- 3 files changed, 12 insertions(+), 42 deletions(-) delete mode 100644 src/main/templates/list.gtpl rename src/main/templates/{list_2.gtpl => list_versions.gtpl} (100%) diff --git a/src/main/templates/list.gtpl b/src/main/templates/list.gtpl deleted file mode 100644 index dd0393a7..00000000 --- a/src/main/templates/list.gtpl +++ /dev/null @@ -1,29 +0,0 @@ - -============================================================ -Available ${candidate.capitalize()} Versions -============================================================ -<% - if(local){ - local.each { version -> - if(current == version) { - println " > + ${version}" - } else { - println " + ${version}" - } - } - } - available.each { version -> - if(current == version) { - println " > * ${version}" - } else if(installed.contains(version)){ - println " * ${version}" - } else { - println " ${version}" - } - } -%> -============================================================ -+ - local version -* - installed -> - currently in use -============================================================ diff --git a/src/main/templates/list_2.gtpl b/src/main/templates/list_versions.gtpl similarity index 100% rename from src/main/templates/list_2.gtpl rename to src/main/templates/list_versions.gtpl diff --git a/src/main/vertx/server.groovy b/src/main/vertx/server.groovy index 0b7dd3bc..27b79912 100644 --- a/src/main/vertx/server.groovy +++ b/src/main/vertx/server.groovy @@ -41,8 +41,8 @@ def templateEngine = new SimpleTemplateEngine() def templateBase = "build/templates" -def listTemplateFile = "${templateBase}/list_2.gtpl" as File -def listTemplate = templateEngine.createTemplate(listTemplateFile) +def listVersionsTemplateFile = "${templateBase}/list_versions.gtpl" as File +def listVersionsTemplate = templateEngine.createTemplate(listVersionsTemplateFile) def broadcastTemplateFile = "${templateBase}/broadcast.gtpl" as File def broadcastTemplate = templateEngine.createTemplate(broadcastTemplateFile) @@ -126,26 +126,26 @@ rm.get("/candidates/:candidate/default") { req -> rm.get("/candidates/:candidate/list") { req -> def candidate = req.params['candidate'] - def current = req.params['current'] ?: '' - def installed = req.params['installed'] ? req.params['installed'].tokenize(',') : [] + def currentVersion = req.params['current'] ?: '' + def installedVersions = req.params['installed'] ? req.params['installed'].tokenize(',') : [] def cmd = [action:"find", collection:"versions", matcher:[candidate:candidate], keys:["version":1], sort:["version":-1]] vertx.eventBus.send("mongo-persistor", cmd){ msg -> - def available = msg.body.results.collect { it.version } + def availableVersions = msg.body.results.collect { it.version } - def combined = combine(available, installed) - def local = determineLocal(available, installed) + def combinedVersions = combineVersions(availableVersions, installedVersions) + def localVersions = determineLocalVersions(availableVersions, installedVersions) - def content = prepareListView(combined, current, installed, local, COLUMN_LENGTH) + def content = prepareVersionListView(combinedVersions, currentVersion, installedVersions, localVersions, COLUMN_LENGTH) def binding = [candidate: candidate, content:content] - def template = listTemplate.make(binding) + def template = listVersionsTemplate.make(binding) addPlainTextHeader req req.response.end template.toString() } } -private prepareListView(combined, current, installed, local, colLength){ +private prepareVersionListView(combined, current, installed, local, colLength){ def builder = new StringBuilder() for (i in (0..(colLength-1))){ def versionColumn1 = prepareVersion(combined[i], current, installed, local) @@ -176,18 +176,17 @@ private markCurrent(isCurrent){ isCurrent ? '>' : ' ' } - private markStatus(isInstalled, isLocalOnly){ if(isInstalled && isLocalOnly) '+' else if(isInstalled) '*' else ' ' } -private determineLocal(available, installed){ +private determineLocalVersions(available, installed){ installed.findAll { ! available.contains(it) } } -private combine(available, installed){ +private combineVersions(available, installed){ def combined = [] as TreeSet combined.addAll installed combined.addAll available