Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions core-play27/app/views/bs/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -33,30 +33,30 @@ package object bs {
val argsMap: Map[Symbol, Any] = Args.withoutNones(args).toMap

/* Id of the input */
val id: String = argsMap.get('id).map(_.toString).getOrElse(field.id)
val id: String = argsMap.get(Symbol("id")).map(_.toString).getOrElse(field.id)

/* Id of the form-group */
val idFormField: String = argsMap.get('_id).map(_.toString).getOrElse(id + "_field")
val idFormField: String = argsMap.get(Symbol("_id")).map(_.toString).getOrElse(id + "_field")

/* The optional label */
val labelOpt: Option[Any] = argsMap.get('_label).orElse(argsMap.get('_hiddenLabel))
val labelOpt: Option[Any] = argsMap.get(Symbol("_label")).orElse(argsMap.get(Symbol("_hiddenLabel")))

/* Indicates if the label must be hidden */
val hideLabel: Boolean = isTrue(argsMap, '_hideLabel) || argsMap.contains('_hiddenLabel)
val hideLabel: Boolean = isTrue(argsMap, Symbol("_hideLabel")) || argsMap.contains(Symbol("_hiddenLabel"))

/* Name of the input */
def name: String = field.name

/* Value of the input */
val value: Option[String] = field.value.orElse(argsMap.get('value).map(_.toString))
val value: Option[String] = field.value.orElse(argsMap.get(Symbol("value")).map(_.toString))

/* List with every error and its corresponding ARIA id. Ex: ("foo_error_0" -> "foo error") */
val errors: Seq[(String, Any)] = BSFieldInfo.errors(Some(field), argsMap, msgsProv).zipWithIndex.map {
case (error, i) => (id + "_error_" + i, error)
}

/* Indicates if there is any error */
val hasErrors: Boolean = !errors.isEmpty || ArgsMap.isNotFalse(argsMap, '_error)
val hasErrors: Boolean = !errors.isEmpty || ArgsMap.isNotFalse(argsMap, Symbol("_error"))

/* The optional validation state ("success", "warning" or "error") */
lazy val status: Option[String] = BSFieldInfo.status(hasErrors, argsMap)
Expand All @@ -74,30 +74,30 @@ package object bs {

/* List with every error */
def errors(maybeField: Option[Field], argsMap: Map[Symbol, Any], msgsProv: MessagesProvider): Seq[Any] = {
argsMap.get('_error).filter(!_.isInstanceOf[Boolean]).map {
argsMap.get(Symbol("_error")).filter(!_.isInstanceOf[Boolean]).map {
_ match {
case Some(FormError(_, message, args)) => Seq(msgsProv.messages(message, args.map(a => translate(a)(msgsProv)): _*))
case FormError(_, message, args) => Seq(msgsProv.messages(message, args.map(a => translate(a)(msgsProv)): _*))
case message => Seq(translate(message)(msgsProv))
}
}.getOrElse {
maybeField.filter(_ => argsMap.get('_showErrors) != Some(false)).map { field =>
maybeField.filter(_ => argsMap.get(Symbol("_showErrors")) != Some(false)).map { field =>
field.errors.map { e => msgsProv.messages(e.message, e.args.map(a => translate(a)(msgsProv)): _*) }
}.getOrElse(Nil)
}
}

/* List with every "feedback info" except "errors" */
def feedbackInfosButErrors(argsMap: Map[Symbol, Any], msgsProv: MessagesProvider): Seq[Any] = {
argsMap.get('_warning).filter(!_.isInstanceOf[Boolean]).map(m => Seq(translate(m)(msgsProv))).getOrElse(
argsMap.get('_success).filter(!_.isInstanceOf[Boolean]).map(m => Seq(translate(m)(msgsProv))).getOrElse(Nil)
argsMap.get(Symbol("_warning")).filter(!_.isInstanceOf[Boolean]).map(m => Seq(translate(m)(msgsProv))).getOrElse(
argsMap.get(Symbol("_success")).filter(!_.isInstanceOf[Boolean]).map(m => Seq(translate(m)(msgsProv))).getOrElse(Nil)
)
}

/* List with every "help info", i.e. a help text or constraints */
def helpInfos(maybeField: Option[Field], argsMap: Map[Symbol, Any], msgsProv: MessagesProvider): Seq[Any] = {
argsMap.get('_help).map(m => Seq(translate(m)(msgsProv))).getOrElse {
maybeField.filter(_ => argsMap.get('_showConstraints) == Some(true)).map { field =>
argsMap.get(Symbol("_help")).map(m => Seq(translate(m)(msgsProv))).getOrElse {
maybeField.filter(_ => argsMap.get(Symbol("_showConstraints")) == Some(true)).map { field =>
field.constraints.map(c => msgsProv.messages(c._1, c._2.map(a => translate(a)(msgsProv)): _*)) ++ field.format.map(f => msgsProv.messages(f._1, f._2.map(a => translate(a)(msgsProv)): _*))
}.getOrElse(Nil)
}
Expand All @@ -107,24 +107,24 @@ package object bs {
def status(hasErrors: Boolean, argsMap: Map[Symbol, Any]): Option[String] = {
if (hasErrors)
Some("error")
else if (ArgsMap.isNotFalse(argsMap, '_warning))
else if (ArgsMap.isNotFalse(argsMap, Symbol("_warning")))
Some("warning")
else if (ArgsMap.isNotFalse(argsMap, '_success))
else if (ArgsMap.isNotFalse(argsMap, Symbol("_success")))
Some("success")
else
None
}

/* Generates automatically the input attributes for the constraints of a field */
def constraintsArgs(field: Field, msgsProv: MessagesProvider): Seq[(Symbol, Any)] = field.constraints.map {
case ("constraint.required", params) => Some(('required -> true))
case ("constraint.min", params: Seq[Any]) => Some(('min -> msgsProv.messages(params.head.toString)))
case ("constraint.max", params: Seq[Any]) => Some(('max -> msgsProv.messages(params.head.toString)))
case ("constraint.minLength", params: Seq[Any]) => Some(('minlength -> msgsProv.messages(params.head.toString)))
case ("constraint.maxLength", params: Seq[Any]) => Some(('maxlength -> msgsProv.messages(params.head.toString)))
case ("constraint.required", params) => Some((Symbol("required") -> true))
case ("constraint.min", params: Seq[Any]) => Some((Symbol("min") -> msgsProv.messages(params.head.toString)))
case ("constraint.max", params: Seq[Any]) => Some((Symbol("max") -> msgsProv.messages(params.head.toString)))
case ("constraint.minLength", params: Seq[Any]) => Some((Symbol("minlength") -> msgsProv.messages(params.head.toString)))
case ("constraint.maxLength", params: Seq[Any]) => Some((Symbol("maxlength") -> msgsProv.messages(params.head.toString)))
case ("constraint.pattern", params: Seq[Any]) => params.head match {
case str: String => Some(('pattern -> msgsProv.messages(str)))
case func: Function0[_] => Some(('pattern -> msgsProv.messages(func.asInstanceOf[() => scala.util.matching.Regex]().toString)))
case str: String => Some((Symbol("pattern") -> msgsProv.messages(str)))
case func: Function0[_] => Some((Symbol("pattern") -> msgsProv.messages(func.asInstanceOf[() => scala.util.matching.Regex]().toString)))
case _ => None
}
case _ => None
Expand Down Expand Up @@ -154,7 +154,7 @@ package object bs {
}

/* Indicates if there is any error */
val hasErrors: Boolean = !errors.isEmpty || ArgsMap.isNotFalse(argsMap, '_error)
val hasErrors: Boolean = !errors.isEmpty || ArgsMap.isNotFalse(argsMap, Symbol("_error"))

/* The optional validation state ("success", "warning" or "error") */
lazy val status: Option[String] = BSFieldInfo.status(hasErrors, argsMap)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@(fieldInfo: b3.B3FieldInfo, inputHtml: Html)(wrap: Html => Html)(implicit fc: b3.B3FieldConstructor)
<div class="form-group @fieldInfo.argsMap.get('_class) @fieldInfo.statusWithFeedback" id="@fieldInfo.idFormField">
<div class="form-group @fieldInfo.argsMap.get(Symbol("_class")) @fieldInfo.statusWithFeedback" id="@fieldInfo.idFormField">
@wrap {
@inputHtml
@fieldInfo.errorsAndInfos.map { case (id, text) =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
@(contentHtml: Html, argsMap: Map[Symbol, Any])(wrap: Html => Html)(implicit messages: MessagesProvider)
@defining(argsMap.get('_id).map(_.toString).orElse(argsMap.get('id).map(_.toString + "_field"))) { idFormField =>
<div class="form-group @argsMap.get('_class)" @idFormField.map{id=>id="@id"}>
@defining(argsMap.get(Symbol("_id")).map(_.toString).orElse(argsMap.get(Symbol("id")).map(_.toString + "_field"))) { idFormField =>
<div class="form-group @argsMap.get(Symbol("_class"))" @idFormField.map{id=>id="@id"}>
@wrap {
@contentHtml
@argsMap.get('_help).map { help =>
@argsMap.get(Symbol("_help")).map { help =>
<span class="help-block">@bs.Args.msg(help)(messages)</span>
}
}
Expand Down
14 changes: 7 additions & 7 deletions play27-bootstrap3/module/app/views/b3/checkbox.scala.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
@(field: Field, args: (Symbol,Any)*)(implicit fc: b3.B3FieldConstructor, messages: MessagesProvider)
@defining({
val argsMap = args.toMap
val value = argsMap.get('value).getOrElse("true").toString
val checked = argsMap.get('checked).orElse(field.value.map(_ == value).orElse(argsMap.get('_default))).map(_.toString == "true").getOrElse(false)
val containsReadonly = argsMap.contains('readonly)
val readonly = bs.ArgsMap.isTrue(argsMap, 'readonly)
val disabled = readonly || bs.ArgsMap.isTrue(argsMap, 'disabled)
val value = argsMap.get(Symbol("value")).getOrElse("true").toString
val checked = argsMap.get(Symbol("checked")).orElse(field.value.map(_ == value).orElse(argsMap.get(Symbol("_default")))).map(_.toString == "true").getOrElse(false)
val containsReadonly = argsMap.contains(Symbol("readonly"))
val readonly = bs.ArgsMap.isTrue(argsMap, Symbol("readonly"))
val disabled = readonly || bs.ArgsMap.isTrue(argsMap, Symbol("disabled"))
(argsMap, value, checked, containsReadonly, readonly, disabled)
}){ case (argsMap, value, checked, containsReadonly, readonly, disabled) =>
@inputFormGroup(field, withFeedback = false, withLabelFor = false, bs.Args.withDefault(args.filterNot(_._1 == 'checked), 'checked -> checked, 'disabled -> disabled)) { fieldInfo =>
@inputFormGroup(field, withFeedback = false, withLabelFor = false, bs.Args.withDefault(args.filterNot(_._1 == Symbol("checked")), Symbol("checked") -> checked, Symbol("disabled") -> disabled)) { fieldInfo =>
<div class="checkbox@if(containsReadonly){ checkbox-group}@if(disabled){ disabled}">
<label for="@fieldInfo.id">
<input type="checkbox" id="@fieldInfo.id" name="@fieldInfo.name" value="@value" @toHtmlArgs(fieldInfo.innerArgsMap)>
@argsMap.get('_text).map(bs.Args.msg(_)(messages))
@argsMap.get(Symbol("_text")).map(bs.Args.msg(_)(messages))
</label>
@if(containsReadonly) {
<input type="hidden" name="@fieldInfo.name" value="@{fieldInfo.value.getOrElse(if (checked) value else "")}"@if(!disabled){ disabled}/>
Expand Down
4 changes: 2 additions & 2 deletions play27-bootstrap3/module/app/views/b3/clear/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ package object clear {
* *********************************************************************************************************************************
*/
def form(action: Call, args: (Symbol, Any)*)(body: ClearFieldConstructor => Html) = {
val cfc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, '_feedbackIcons))
val cfc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, Symbol("_feedbackIcons")))
views.html.b3.form(action, inner(args): _*)(body(cfc))(cfc)
}
def formCSRF(action: Call, args: (Symbol, Any)*)(body: ClearFieldConstructor => Html)(implicit request: RequestHeader) = {
val cfc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, '_feedbackIcons))
val cfc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, Symbol("_feedbackIcons")))
views.html.b3.formCSRF(action, inner(args): _*)(body(cfc))(cfc, request)
}

Expand Down
2 changes: 1 addition & 1 deletion play27-bootstrap3/module/app/views/b3/form.scala.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@(action: Call, args: (Symbol, Any)*)(body: => Html)(implicit fc: b3.B3FieldConstructor)
<form action="@action.toString" method="@action.method" class="@fc.formClass @bs.Args.get(args, 'class)" @toHtmlArgs(bs.Args.remove(bs.Args.inner(args, 'role -> "form"), 'class).toMap)>
<form action="@action.toString" method="@action.method" class="@fc.formClass @bs.Args.get(args, Symbol("class"))" @toHtmlArgs(bs.Args.remove(bs.Args.inner(args, Symbol("role") -> "form"), Symbol("class")).toMap)>
@body
</form>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@(contentHtml: Html, argsMap: Map[Symbol, Any], colLabel: String, colOffset: String, colInput: String)(implicit messages: MessagesProvider)
@b3.bsFormGroupCommon(contentHtml, argsMap) { content =>
@argsMap.get('_label).map { label =>
<label class="control-label @colLabel@if(bs.ArgsMap.isTrue(argsMap, '_hideLabel)){ sr-only}">@bs.Args.msg(label)(messages)</label>
@argsMap.get(Symbol("_label")).map { label =>
<label class="control-label @colLabel@if(bs.ArgsMap.isTrue(argsMap, Symbol("_hideLabel"))){ sr-only}">@bs.Args.msg(label)(messages)</label>
<div class="@colInput">
@content
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ package object horizontal {
* *********************************************************************************************************************************
*/
def form(action: Call, colLabel: String, colInput: String, args: (Symbol, Any)*)(body: HorizontalFieldConstructor => Html) = {
val hfc = fieldConstructorSpecific(colLabel, colInput, withFeedbackIcons = isTrue(args, '_feedbackIcons))
val hfc = fieldConstructorSpecific(colLabel, colInput, withFeedbackIcons = isTrue(args, Symbol("_feedbackIcons")))
views.html.b3.form(action, inner(args): _*)(body(hfc))(hfc)
}
def formCSRF(action: Call, colLabel: String, colInput: String, args: (Symbol, Any)*)(body: HorizontalFieldConstructor => Html)(implicit request: RequestHeader) = {
val hfc = fieldConstructorSpecific(colLabel, colInput, withFeedbackIcons = isTrue(args, '_feedbackIcons))
val hfc = fieldConstructorSpecific(colLabel, colInput, withFeedbackIcons = isTrue(args, Symbol("_feedbackIcons")))
views.html.b3.formCSRF(action, inner(args): _*)(body(hfc))(hfc, request)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@(contentHtml: Html, argsMap: Map[Symbol, Any])(implicit messages: MessagesProvider)
@b3.bsFormGroupCommon(contentHtml, argsMap) { content =>
@argsMap.get('_label).map { label =>
<label class="control-label@if(bs.ArgsMap.isTrue(argsMap, '_hideLabel)){ sr-only}">@bs.Args.msg(label)(messages)</label>
@argsMap.get(Symbol("_label")).map { label =>
<label class="control-label@if(bs.ArgsMap.isTrue(argsMap, Symbol("_hideLabel"))){ sr-only}">@bs.Args.msg(label)(messages)</label>
}
@content
}
4 changes: 2 additions & 2 deletions play27-bootstrap3/module/app/views/b3/inline/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ package object inline {
* *********************************************************************************************************************************
*/
def form(action: Call, args: (Symbol, Any)*)(body: InlineFieldConstructor => Html) = {
val ifc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, '_feedbackTooltip))
val ifc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, Symbol("_feedbackTooltip")))
views.html.b3.form(action, inner(args): _*)(body(ifc))(ifc)
}
def formCSRF(action: Call, args: (Symbol, Any)*)(body: InlineFieldConstructor => Html)(implicit request: RequestHeader) = {
val ifc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, '_feedbackTooltip))
val ifc = fieldConstructorSpecific(withFeedbackIcons = isTrue(args, Symbol("_feedbackTooltip")))
views.html.b3.formCSRF(action, inner(args): _*)(body(ifc))(ifc, request)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@(inputType: String, field: Field, args: (Symbol,Any)*)(inputGroup: Html => Html)(implicit fc: b3.B3FieldConstructor, messages: MessagesProvider)
@inputFormGroup(field, withFeedback = true, withLabelFor = true, bs.Args.withAddingStringValue(args, 'class, "form-control")) { fieldInfo =>
@inputFormGroup(field, withFeedback = true, withLabelFor = true, bs.Args.withAddingStringValue(args, Symbol("class"), "form-control")) { fieldInfo =>
@inputGroup {
<input type="@inputType" id="@fieldInfo.id" name="@fieldInfo.name" value="@fieldInfo.value" @toHtmlArgs(fieldInfo.innerArgsMap)>
@if(fieldInfo.hasFeedback) {
Expand Down
Loading