@* * Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0 * See accompanying LICENSE file. *@ @import scalaz.{\/} @(cluster: String, topic: String, errorOrForm: kafka.manager.ApiError \/ (Form[models.form.GenerateAssignment], kafka.manager.model.ClusterContext), errorOrCurrentAssignments: kafka.manager.ApiError \/ kafka.manager.model.ActorModel.GeneratedPartitionAssignments )(implicit af: features.ApplicationFeatures, messages: play.api.i18n.Messages, menus: models.navigation.Menus, request:RequestHeader) @theMenu = { @views.html.navigation.clusterMenu(cluster,"Topic","Confirm Assignment",menus.clusterMenus(cluster)( errorOrForm.toOption.map(_._2.clusterFeatures).getOrElse(kafka.manager.features.ClusterFeatures.default))) } @renderForm(confirmForm: Form[models.form.GenerateAssignment]) = {

Choose brokers to reassign topic @topic to:

@b4.vertical.form(routes.ReassignPartitions.handleGenerateAssignment(cluster,topic)) { implicit fc =>
Brokers Replication


@helper.repeat(confirmForm("brokers"), min = 1) { brokerSelectForm => @b4.hidden(brokerSelectForm("id").name,brokerSelectForm("id").value.getOrElse(-1)) @b4.hidden(brokerSelectForm("host").name,brokerSelectForm("host").value.getOrElse("")) @b4.checkbox(brokerSelectForm("selected"), '_text -> s"${brokerSelectForm("id").value.getOrElse(-1)} - ${brokerSelectForm("host").value.getOrElse("")}") }
@b4.number(confirmForm("replicationFactor"), '_label -> "Replication factor (optional)")
Cancel @b4.submit('class -> "btn btn-primary"){ Generate Partition Assignments } } } @renderAssignments(gpa: kafka.manager.model.ActorModel.GeneratedPartitionAssignments) = {

Current Assignments

@for((partNum, replicas) <- gpa.assignments.toList.sortBy(_._1) ) { }
PartitionReplicas
@partNum @replicas.mkString("(", ",", ")")
} @main( "Confirm Assignment", menu = theMenu, breadcrumbs=views.html.navigation.breadCrumbs(models.navigation.BreadCrumbs.withNamedViewAndCluster("Topic View",cluster,topic))) {

Confirm Assignment

@errorOrForm.fold( views.html.errors.onApiError(_), t => renderForm(t._1))
@errorOrCurrentAssignments.fold( views.html.errors.onApiError(_), t => renderAssignments(t))
}