Java Play 2 — Обновление вручную

Twitter только что выпустил bootstrap 2.1, и я хочу обновить хелперы play2.

текущие правила: https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/views/helper/twitterBootstrap/twitterBootstrapFieldConstructor.scala.html

Я пошел в C:\play\framework\src\play\src\main\scala\views\helper\twitterBootstrap

и изменил его на: (правила можно найти здесь: http://twitter.github.com/bootstrap/base-css.html#forms )

@(elements: views.html.helper.FieldElements)

@import play.api.i18n._
@import views.html.helper._

@**************************************************
* Generate input according twitter bootsrap rules *
**************************************************@

<div class="control-group error">
 <label class="control-label" for="@elements.id">@elements.label(elements.lang)</label>
 <div class="controls">
        @elements.input
        <span class="help-inline">@elements.errors(elements.lang).mkString(", ")</span>
        <span class="help-block">@elements.infos(elements.lang).mkString(", ")</span> 
    </div>
</div>

Но я не знаю, как обновить мой проект.

я сделал

play
clean
run

Но он по-прежнему использует старые правила, есть идеи?

редактировать:

Как использовать твиттер-хелпер из просмотров?

@(signupForm: Form[User])

@import helper._


@title = {
    Sign Up
}

@main(title, nav = "signup") {

    @helper.form(action = routes.SignUp.submit) {

        <fieldset>
            <legend>Account informations</legend>

            @inputText(
                signupForm("username"), 
                '_label -> "Username", 
                '_help -> "Please choose a valid username.",
                '_error -> signupForm.globalError
            )

person Maik Klein    schedule 22.08.2012    source источник


Ответы (3)


Недавно я столкнулся с похожими проблемами и в итоге создал для этой цели своего собственного помощника.

Содержание app/views/Helpers/bootstrapInput.scala.html:

@(elements: helper.FieldElements)

@*****************************************************
* Generate input according to twitter bootsrap rules *
******************************************************@
<div class="control-group @if(elements.hasErrors) {error}">
  <label class="control-label" for="@elements.id">@elements.label</label>
  <div class="controls">
    @elements.input
    <span class="help-inline">@elements.errors(elements.lang).mkString(", ")</span>
  </div>
</div>

И чтобы использовать его, поместите это на свой взгляд (сверху, сразу после объявления параметров):

@implicitField = @{ FieldConstructor(views.html.Helpers.bootstrapInput.f) }
person Hagen    schedule 24.08.2012

Вы обновили Play! исходный код, но вы его не компилировали и не упаковывали.

Лучший способ изменить помощников — использовать их в своем собственном проекте:

  1. Поместите новых помощников в каталог app/view
  2. Используйте их прямо в своих представлениях без добавления импорта
person ndeverge    schedule 22.08.2012
comment
Хорошо, спасибо, но как мне их использовать? (Я обновил свой пост.) Я просто хочу отображать ошибки, если пользователь допустил ошибку. Так что мне нужно сказать игре, эй, используй помощника по ошибкам из представлений! - person Maik Klein; 22.08.2012
comment
Покажите, пожалуйста, куда вы положили свои новые шаблоны? Если он находится в папке app/views, вам не нужен оператор @import helper._ в вашем представлении. - person ndeverge; 23.08.2012
comment
мы должны создать плагин для bootstrap2 с игрой - person Shrey; 04.09.2012

На Github также был pull request для исправления этого в Play framework. Кто-то может использовать эту фиксацию.

person sjudǝʊ    schedule 30.08.2012