@(region: Option[Region], custom: Option[CustomRegion])(implicit req: RequestHeader)
@import org.joda.time.DateTimeZone
@import views.Utils
@import helper._
@import forms._
@import views.forms.FormHelpers.bootstrap
@import ru.yandex.tours.geo.base.region.Types
@import ru.yandex.tours.model.MapRectangle
@import ru.yandex.tours.model.Languages
@views.html.regions.region_js_actions()
@header(text: String) = {
}
@render_general(form: Form[CustomRegion]) = {
@header("Общее")
@static(form("id"), region.fold("0")(_.id.toString), '_label -> "ID")
@static(form("is_new"), region.isEmpty.toString, '_label -> "Новый")
@enumSelect(form("custom_region.type"), Types.values,
'_label -> "Тип региона",
'_default -> region.fold("")(r => s"Default: ${r.`type`}"),
'class -> "form-control"
)
@regionSelect(
form("custom_region.parent_id"),
custom.flatMap(_.partialRegion.parentId).flatMap(Utils.tree.region),
region.map(_.parentId).flatMap(Utils.tree.region),
'_label -> "Родитель",
'class -> "form-control"
)
@select(
form("custom_region.time_zone"),
DateTimeZone.getAvailableIDs.toSeq.map(id => id -> id),
'_label -> "Тайм зона",
'_default -> region.flatMap(_.timeZone).fold("")(tz => s"Default: ${tz.getID}"),
'class -> "form-control"
)
@inputText(form("children"),
'_label -> "Дети",
'class -> "form-control",
'placeholder -> region.fold("")(_.childrenIds.mkString(","))
)
}
@render_naming(form: Form[CustomRegion]) = {
@header("Имя")
@hidden(form("custom_region.name[0].lang").copy(value = Some("ru")))
@inputText(
form("custom_region.name[0].name"),
'_label -> "Русское имя",
'class -> "form-control",
'placeholder -> region.flatMap(_.name.get(Languages.ru)).getOrElse("")
)
@hidden(form("custom_region.name[1].lang").copy(value = Some("en")))
@inputText(
form("custom_region.name[1].name"),
'_label -> "Английское имя",
'class -> "form-control",
'placeholder -> region.flatMap(_.name.get(Languages.en)).getOrElse("")
)
@inputText(
form("custom_region.synonyms"),
'_label -> "Синонимы",
'class -> "form-control",
'placeholder -> region.fold("")(_.synonyms.mkString(", "))
)
@inputText(
form("custom_region.genitive"), '_label -> "Откуда?", 'class -> "form-control",
'placeholder -> region.fold("")(_.genitive)
)
@inputText(
form("custom_region.dative"), '_label -> "По чему?", 'class -> "form-control",
'placeholder -> region.fold("")(_.dative)
)
@inputText(
form("custom_region.accusative"), '_label -> "Куда?", 'class -> "form-control",
'placeholder -> region.fold("")(_.accusative)
)
@inputText(
form("custom_region.locative"), '_label -> "Где?", 'class -> "form-control",
'placeholder -> region.fold("")(_.locative)
)
@inputText(
form("custom_region.preposition"), '_label -> "Предлог", 'class -> "form-control",
'placeholder -> region.fold("")(_.preposition)
)
}
@render_location(form: Form[CustomRegion]) = {
@inputText(
form("custom_region.longitude"), '_label -> "Долгота", 'class -> "form-control",
'placeholder -> region.fold("")(_.longitude.toString)
)
@inputText(
form("custom_region.latitude"), '_label -> "Широта", 'class -> "form-control",
'placeholder -> region.fold("")(_.latitude.toString)
)
@inputText(
form("custom_region.bounding_box").copy(value = custom.flatMap(_.partialRegion.boundingBox).map(_.toString)),
'_label -> "B-Box",
'class -> "form-control",
'placeholder -> region.fold("")(_.boundingBox.toString)
)
@hidden(form("custom_region.bounding_box.min_lon"))
@hidden(form("custom_region.bounding_box.min_lat"))
@hidden(form("custom_region.bounding_box.max_lon"))
@hidden(form("custom_region.bounding_box.max_lat"))
}
@render_submit = {
}
@render_form = {
@form(routes.RegionsController.save, 'class -> "form-horizontal") {
@defining(custom.fold(CustomRegionForm.form)(CustomRegionForm.form.fill)) { form =>
@render_general(form)
@render_naming(form)
@render_location(form)
}
}
}
@main("Редактирование региона") {
@render_form
@* TODO: DELETE *@
@region.getOrElse("")
@custom.getOrElse("")
}