I've just uploaded 0.0.2.0 that should fix all reported bugs and finish the implementation of the main panel (though not all the fields).
This release includes a significant improvement in ContactFX functions, so I thought I better explain how they work...
Functions are defined within {} and must be prefaced with an "=" (like field links). Functions have the general form of { FunctionName 'optional constant' functionObject }. To use a function just type it into the appropriate text box, eg:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
={UCASE "mowbray"}
would display as "MOWBRAY".
Functions generally comprise:
- a function name: case insensitive
- an optional function constant: defined within ''
- a function object, that can be:
- a string: defined within ""
- a path to a field, eg: id#fieldnumber or id#fieldname
- a function: defined within {}
- an array of function objects: defined within []
Current FunctionsInitialise:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ INITIALISE name.additional }
If the text in the Additional Name field is "perry" the above function will return "P."
UCase:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ UCASE 1#name.family }
If the text in the Family Name field of Contact #1 is "mowbray" the above function will return "MOWBRAY"
Join:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ JOIN ', ' [ "me" , name.additional , { UCASE name.additional(2) } ] }
This is a conditional join: if the object being joined is non-blank then it is joined to the previous joined result with the constant. If the text in the first Additional Name is "myself" and the text in the second Additional Name field is "i" then the above function will return "me, myself, I"
Ternary:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ name.additional ?? 'Additional Name is empty' }
Well, like a ternary... if the Object is blank then the constant is returned otherwise the Object is returned. For example: If the Additional Name field is empty then the above function will return the constant "Additional Name is empty".
If the Additional Name field has the text "Samuel" then the above function will return "Samuel".
Conditional Pad:
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ 'Mr. ' && name.family}
If the text in the Family Name field is empty the above function will return an empty string "".
If the Family Name field has the text "Mowbray" the above function will return "Mr. Mowbray"
Formatted for
Ruby with the GeSHI Syntax Highlighter [
copy or print]
{ name.family && ' esq.'}
If the text in the Family Name field is empty the above function will return an empty string "".
If the Family Name field has the text "Mowbray" the above function will return "Mowbray esq."
This userField:
JimsDisplayName.zip has a definition that will modify the default displayName field:
Formatted for
XML with the GeSHI Syntax Highlighter [
copy or print]
<fielddefinition>
<name value="displayname" />
<source value="= { { JOIN ' ' [ name.given , { INITIALISE name.additional } , { UCASE name.family } ] } ?? 'New Entry' }" />
</fielddefinition>
When unzipped into the userFields subDirectory the displayName field display:
Given Name = "Perry"
Additional Name = ""
Family Name = "Mowbray"
Display Name = "Perry MOWBRAY"
Given Name = "Sandra"
Additional Name = "Jane"
Family Name = "Mowbray"
Display Name = "Sandra J. MOWBRAY"
The easiest way to link between contacts is to drag the field to be
linked to, onto the the field to be
linked from holding down the ALT key. Linked fields can be referenced by Contact.ID or Contact.GUID and Field.ID or Field.Name, although they are always displayed as Contact.ID#Field.ID.
Next stop... list Panel
