Skip to content

Commit

Permalink
More accurate default label, help and placeholder attributes for fiel…
Browse files Browse the repository at this point in the history
…ds that using preside object bindings in form layouts
  • Loading branch information
DominicWatson committed May 18, 2015
1 parent 4f82486 commit 4cdc209
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 26 deletions.
3 changes: 3 additions & 0 deletions support/tests/integration/api/forms/FormsServiceTest.cfc
Expand Up @@ -133,6 +133,9 @@
, sourceObject = "security_user"
, binding = "security_user.known_as"
, rules = []
, label = "preside-objects.security_user:field.known_as.title"
, placeholder = "preside-objects.security_user:field.known_as.placeholder"
, help = "preside-objects.security_user:field.known_as.help"
} ]
}]

Expand Down
58 changes: 32 additions & 26 deletions system/services/forms/FormsService.cfc
Expand Up @@ -934,49 +934,55 @@ component {
private void function _applyDefaultLabellingToForm( required string formName, struct frm=getForm( arguments.formName ) ) {
var baseI18nUri = _getDefaultI18nBaseUriForForm( arguments.formName );

if ( !Len( Trim( baseI18nUri ) ) ) {
return;
}

var tabs = frm.tabs ?: [];

for( var tab in tabs ) {
tab.autoGeneratedAttributes = [];
if ( Len( Trim( tab.id ?: "" ) ) ) {
if ( !Len( Trim( tab.title ?: "" ) ) ) {
tab.title = baseI18nUri & "tab.#tab.id#.title";
tab.autoGeneratedAttributes.append( "title" );
}
if ( !Len( Trim( tab.description ?: "" ) ) ) {
tab.description = baseI18nUri & "tab.#tab.id#.description";
tab.autoGeneratedAttributes.append( "description" );
if ( Len( Trim( baseI18nUri ) ) ) {
tab.autoGeneratedAttributes = [];
if ( Len( Trim( tab.id ?: "" ) ) ) {
if ( !Len( Trim( tab.title ?: "" ) ) ) {
tab.title = baseI18nUri & "tab.#tab.id#.title";
tab.autoGeneratedAttributes.append( "title" );
}
if ( !Len( Trim( tab.description ?: "" ) ) ) {
tab.description = baseI18nUri & "tab.#tab.id#.description";
tab.autoGeneratedAttributes.append( "description" );
}
}
}
var fieldsets = tab.fieldsets ?: [];
for( var fieldset in fieldsets ) {
fieldset.autoGeneratedAttributes = [];
if ( Len( Trim( fieldset.id ?: "" ) ) ) {
if ( !Len( Trim( fieldset.title ?: "" ) ) ) {
fieldset.title = baseI18nUri & "fieldset.#fieldset.id#.title";
fieldset.autoGeneratedAttributes.append( "title" );
}
if ( !Len( Trim( fieldset.description ?: "" ) ) ) {
fieldset.description = baseI18nUri & "fieldset.#fieldset.id#.description";
fieldset.autoGeneratedAttributes.append( "description" );
if ( Len( Trim( baseI18nUri ) ) ) {
fieldset.autoGeneratedAttributes = [];
if ( Len( Trim( fieldset.id ?: "" ) ) ) {
if ( !Len( Trim( fieldset.title ?: "" ) ) ) {
fieldset.title = baseI18nUri & "fieldset.#fieldset.id#.title";
fieldset.autoGeneratedAttributes.append( "title" );
}
if ( !Len( Trim( fieldset.description ?: "" ) ) ) {
fieldset.description = baseI18nUri & "fieldset.#fieldset.id#.description";
fieldset.autoGeneratedAttributes.append( "description" );
}
}
}

var fields = fieldset.fields ?: [];
for( var field in fields ) {
if ( Len( Trim( field.name ?: "" ) ) ) {
var fieldBaseI18n = "";
if ( ListLen( field.binding ?: "", "." ) == 2 ) {
fieldBaseI18n = "preside-objects.#ListFirst( field.binding, "." )#:";
} else {
fieldBaseI18n = baseI18nUri;
}
if ( Len( Trim( fieldBaseI18n ) ) && Len( Trim( field.name ?: "" ) ) ) {
if ( !Len( Trim( field.label ?: "" ) ) ) {
field.label = baseI18nUri & "field.#field.name#.title";
field.label = fieldBaseI18n & "field.#field.name#.title";
}
if ( !Len( Trim( field.placeholder ?: "" ) ) ) {
field.placeholder = baseI18nUri & "field.#field.name#.placeholder";
field.placeholder = fieldBaseI18n & "field.#field.name#.placeholder";
}
if ( !Len( Trim( field.help ?: "" ) ) ) {
field.help = baseI18nUri & "field.#field.name#.help";
field.help = fieldBaseI18n & "field.#field.name#.help";
}
}
}
Expand Down

0 comments on commit 4cdc209

Please sign in to comment.