Skip to content

Commit

Permalink
#1381 Next UI predefined validation stamps
Browse files Browse the repository at this point in the history
  • Loading branch information
dcoraboeuf committed Jan 26, 2025
1 parent 0a5b082 commit 95909f5
Show file tree
Hide file tree
Showing 41 changed files with 1,552 additions and 410 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package net.nemerosa.ontrack.extension.casc.context.core.admin

import net.nemerosa.ontrack.common.Document
import net.nemerosa.ontrack.common.getOrNull
import net.nemerosa.ontrack.extension.casc.AbstractCascTestSupport
import net.nemerosa.ontrack.extension.scm.service.TestSCMExtension
import net.nemerosa.ontrack.json.asJson
Expand Down Expand Up @@ -69,7 +68,7 @@ class PredefinedValidationStampsCascIT : AbstractCascTestSupport() {
)
// Checks that the new predefined element is created
assertNotNull(
predefinedValidationStampService.findPredefinedValidationStampByName(name).getOrNull(),
predefinedValidationStampService.findPredefinedValidationStampByName(name),
"$name predefined VS has been created"
) {
assertEquals("Sample predefined test called $name", it.description)
Expand Down Expand Up @@ -100,14 +99,14 @@ class PredefinedValidationStampsCascIT : AbstractCascTestSupport() {
)
// Checks that the new predefined element is created
assertNotNull(
predefinedValidationStampService.findPredefinedValidationStampByName(name).getOrNull(),
predefinedValidationStampService.findPredefinedValidationStampByName(name),
"$name predefined VS has been created"
) {
assertEquals("Sample predefined test called $name", it.description)
}
// Checks that the existing PVS is not present any longer
assertNull(
predefinedValidationStampService.findPredefinedValidationStampByName(existing).getOrNull(),
predefinedValidationStampService.findPredefinedValidationStampByName(existing),
"Existing PVS have been removed"
)
}
Expand Down Expand Up @@ -142,7 +141,7 @@ class PredefinedValidationStampsCascIT : AbstractCascTestSupport() {
)
// Checks that the new predefined element is still there
assertNotNull(
predefinedValidationStampService.findPredefinedValidationStampByName(existing).getOrNull(),
predefinedValidationStampService.findPredefinedValidationStampByName(existing),
"$existing predefined VS has been kept"
) {
assertEquals("Sample predefined test called $existing", it.description)
Expand Down Expand Up @@ -179,7 +178,7 @@ class PredefinedValidationStampsCascIT : AbstractCascTestSupport() {
)
// Checks that the new predefined element is created
assertNotNull(
predefinedValidationStampService.findPredefinedValidationStampByName(name).getOrNull(),
predefinedValidationStampService.findPredefinedValidationStampByName(name),
"$name predefined VS has been created"
) {
assertEquals("Sample predefined test called $name", it.description)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ public AutoValidationStampPropertyType(GeneralExtensionFeature extensionFeature,
@Override
public Optional<ValidationStamp> getOrCreateValidationStamp(AutoValidationStampProperty value, Branch branch, String validationStampName) {
if (value.isAutoCreate()) {
Optional<PredefinedValidationStamp> oPredefinedValidationStamp = predefinedValidationStampService.findPredefinedValidationStampByName(validationStampName);
if (oPredefinedValidationStamp.isPresent()) {
PredefinedValidationStamp oPredefinedValidationStamp = predefinedValidationStampService.findPredefinedValidationStampByName(validationStampName);
if (oPredefinedValidationStamp != null) {
// Creates the validation stamp
return Optional.of(
securityService.asAdmin(() ->
structureService.newValidationStampFromPredefined(
branch,
oPredefinedValidationStamp.get()
oPredefinedValidationStamp
)
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,23 @@ package net.nemerosa.ontrack.extension.general.validation

import com.fasterxml.jackson.databind.JsonNode
import net.nemerosa.ontrack.extension.general.GeneralExtensionFeature
import net.nemerosa.ontrack.json.*
import net.nemerosa.ontrack.json.getIntField
import net.nemerosa.ontrack.json.getRequiredEnum
import net.nemerosa.ontrack.json.parse
import net.nemerosa.ontrack.json.toJson
import net.nemerosa.ontrack.model.form.Form
import net.nemerosa.ontrack.model.form.selection
import net.nemerosa.ontrack.model.structure.AbstractValidationDataType
import net.nemerosa.ontrack.model.structure.MetricsColors
import net.nemerosa.ontrack.model.structure.NumericValidationDataType
import net.nemerosa.ontrack.model.structure.ValidationRunStatusID
import org.springframework.stereotype.Component
import kotlin.Double
import kotlin.IllegalArgumentException
import kotlin.Int
import kotlin.String
import kotlin.let
import kotlin.to
import net.nemerosa.ontrack.model.form.Int as IntField

/**
Expand Down Expand Up @@ -67,11 +76,11 @@ class CHMLValidationDataType(
CHMLValidationDataTypeConfig(
warningLevel = CHMLLevel(
node.getRequiredEnum("warningLevel"),
node.getInt("warningValue") ?: 0
node.getIntField("warningValue") ?: 0
),
failedLevel = CHMLLevel(
node.getRequiredEnum("failedLevel"),
node.getInt("failedValue") ?: 0
node.getIntField("failedValue") ?: 0
)
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -586,12 +586,12 @@ abstract class AbstractDSLTestSupport : AbstractServiceTestSupport() {
* Creation of a predefined validation stamp
*/
protected fun predefinedValidationStamp(
name: String,
name: String = uid("VS"),
description: String = "",
image: Boolean = false,
dataType: ValidationDataTypeConfig<*>? = null
) {
asAdmin {
): PredefinedValidationStamp {
return asAdmin {
val pps = predefinedValidationStampService.newPredefinedValidationStamp(
PredefinedValidationStamp.of(
NameDescription.nd(name, description)
Expand All @@ -604,6 +604,7 @@ abstract class AbstractDSLTestSupport : AbstractServiceTestSupport() {
document
)
}
pps
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package net.nemerosa.ontrack.model.settings

import net.nemerosa.ontrack.common.Document
import net.nemerosa.ontrack.model.Ack
import net.nemerosa.ontrack.model.structure.ID
import net.nemerosa.ontrack.model.structure.PredefinedValidationStamp

/**
* Management of predefined validation stamps.
*/
interface PredefinedValidationStampService {
/**
* Gets the list of predefined validation stamps.
*/
val predefinedValidationStamps: List<PredefinedValidationStamp>

/**
* Gets the list of predefined validation stamps filtered with a name part
*/
fun findPredefinedValidationStamps(name: String): List<PredefinedValidationStamp>

/**
* Creates a new predefined validation stamp.
*/
fun newPredefinedValidationStamp(stamp: PredefinedValidationStamp): PredefinedValidationStamp

/**
* Gets a predefined validation stamp using its ID
*/
fun getPredefinedValidationStamp(id: ID): PredefinedValidationStamp

/**
* Gets the image for a predefined validation stamp
*/
fun getPredefinedValidationStampImage(id: ID): Document

/**
* Gets a predefined validation stamp using its name
*/
fun findPredefinedValidationStampByName(name: String): PredefinedValidationStamp?

/**
* Updates the predefined validation stamp
*/
fun savePredefinedValidationStamp(stamp: PredefinedValidationStamp)

/**
* Deletes a predefined validation stamp
*/
fun deletePredefinedValidationStamp(predefinedValidationStampId: ID): Ack

/**
* Sets the image for a predefined validation stamp
*/
fun setPredefinedValidationStampImage(predefinedValidationStampId: ID, document: Document)
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class PredefinedPromotionLevelJdbcRepository(dataSource: DataSource) :
ORDER BY ORDERNB
""",
mapOf("name" to "%$name%"),
) { rs: ResultSet, rowNum: Int -> toPredefinedPromotionLevel(rs) }
) { rs: ResultSet, _: Int -> toPredefinedPromotionLevel(rs) }
}

override fun findPredefinedPromotionLevelByName(name: String): PredefinedPromotionLevel? {
Expand Down

This file was deleted.

Loading

0 comments on commit 95909f5

Please sign in to comment.