The Utils module provides several utility methods, such as those for number formatting.
Members
-
<inner> cookie :Utils/Utils.Cookie
-
Type:
Methods
-
<static> addNumberSeparators(numberString, numberGroupSeparator, decimalSeparator)
-
Adds number separators to a number string.
Parameters:
Name Type Description numberString
string String of number to be modified of the format nn.nnn.
numberGroupSeparator
string Character separator for number groups of 3 digits to the left of the decimal to add.
decimalSeparator
string Character to replace decimal in arg number with.
Returns:
numberString
with the appropriate separators added.- Type
- string
-
<static> areBeanValuesEqual(value1, value2)
-
Checks to see if values in beans are equal to each other.
Parameters:
Name Type Description value1
* The first value.
value2
* The second value.
Returns:
true
if the values are equal;false
otherwise.- Type
- boolean
-
<static> buildUrl(url)
-
Builds a good url based on
siteUrl
from configuration.It is ready for the several use cases that
siteUrl
can have:- relative path (aka context);
- full path;
- empty path.
Parameters:
Name Type Description url
string The full url or a relative url without the prepended
/
.Returns:
The constructed URL.
- Type
- string
-
<static> capitalize(s)
-
Capitalizes a string.
Parameters:
Name Type Description s
string The string to capitalize.
Returns:
s
capitalized, or an empty string ifs
isundefined
ornull
.- Type
- string
-
<static> capitalizeHyphenated(s)
-
Capitalizes a hyphenated string and removes the hyphens. The first letter, and all letters after a hyphen, are capitalized, so
"my-string"
becomes"MyString"
.Parameters:
Name Type Description s
string The string to capitalize.
Returns:
s
capitalized or an empty string ifs
isundefined
ornull
.- Type
- string
-
<static> classify(s)
-
Capitalizes an underscored string and removes the underscores. The first letter, and all letters after an underscore, are capitalized, so
"my_string"
becomes"MyString"
.Parameters:
Name Type Description s
string The string to capitalize.
Returns:
s
capitalized or an empty string ifs
isundefined
ornull
.- Type
- string
-
<static> compareBeans(beanA, beanB)
-
Compare field values in the first bean with the second bean and return the field names that have different values.
Parameters:
Name Type Description beanA
Data/Bean The first bean.
beanB
Data/Bean The second bean.
Returns:
A list of names of fields whose values differ between
beanA
andbeanB
.- Type
- Array.<string>
-
<static> convertNumericType(value, type)
-
Converts provided value to provided type. Intended to convert numbers stored as strings using the appropriate conversion function.
Parameters:
Name Type Description value
string The value to convert
type
string Abbreviated type to be converted to
Returns:
Value converted to provided type
- Type
- number
-
<static> deepCopy(obj)
-
Creates a deep clone of an object.
Parameters:
Name Type Description obj
* The object to clone.
Returns:
A value of the same type as the input.
- Type
- *
-
<static> doWhen(condition, callback [, params] [, scope])
-
Based on YUI's onAvailable, but will use any boolean function instead of an ID. Once the given condition is met, the callback function will be executed.
// Execute a callback once an Object is defined Utils.doWhen('SUGAR.ObjectToWaitFor', function(){ // Use the object here console.log(SUGAR.ObjectToWaitFor); }); // Use a function for condition and set parameters for the callback var el = $('#myId'); var cond = function(){return el.hasClass('foo')}; var callback = function(params) { this.log(params.msg); el.html(params.html); }; Utils.doWhen(cond, callback, { msg: 'Hello World', html: '<h1>Exists!</h1>' }, console);
Parameters:
Name Type Argument Description condition
function | string Function/evaluatable string which must return a boolean value.
callback
function Function to execute when
condition
is met.params
Object <optional>
Object to pass to
callback
.scope
Object <optional>
Object to use as
this
when executingcallback
. -
<static> extendClass(cache, defaultBase, className, controller, platformNamespace)
-
Extends a Class based on the given controller.
If the controller has an
extendsFrom
property, it will be used to define its parent class. It should be defined as a string in order for the system to detect if there is any customization on that parent (normally prefixed withCustom
likeCustom<ClassName>
).If the parent class defined in the
extendsFrom
property doesn't exist or the controller isn't specifying one, it will fallback to the supplieddefaultBase
param which has it's own set of fallback strategy defined by the components that call this method. See View.ViewManager and Data.DataManager.Parameters:
Name Type Description cache
Object Object cache to add controller to.
defaultBase
Object Class to be extended from if no override (
extendsFrom
) is defined in the controller.className
string Class name to be used for new Class.
controller
Object Properties for new Class.
platformNamespace
string Platform name.
Returns:
The new extended class.
- Type
- Object
-
<static> extendFrom(subc, superc, overrides)
-
Forces one class to extend from another and optionally overrides specific properties.
Parameters:
Name Type Description subc
function Constructor for the subclass.
superc
function Constructor for the superclass.
overrides
Object Properties to override on
subc
's prototype. -
<static> formatName(params, format)
-
Formats a full name with the provided locale format.
Parameters:
Name Type Description params
Object Name property values.
Properties
Name Type Description first_name
string First name.
last_name
string Last name.
salutation
string Salutation.
format
string Locale format (i.e. [f l s], [s l, f]).
Returns:
Formatted string.
- Type
- string
-
<static> formatNameLocale(params)
-
Formats a full name according to the user's locale format.
Parameters:
Name Type Description params
Object Name property values.
Properties
Name Type Description first_name
string First name.
last_name
string Last name.
salutation
string Salutation.
Returns:
Formatted string.
- Type
- string
-
<static> formatNameModel(module, data [, format])
-
Formats a record's name (ie. full name) according to the name format passed in parameters or defined in the user preferences.
Format you can pass:
'f l s' will output: `FirstName LastName Salutation`, 's l, f' will output: `Salutation LastName FirstName`.
The module defines a
nameFormat
object that maps a letter to a field.{ s: 'salutation', f: 'first_name', l: 'last_name' }
Parameters:
Name Type Argument Default Description module
string The module name the record belongs to.
data
Object The record attributes.
format
string <optional>
User.getPreference('default_locale_name_format') The format definition.
Returns:
The formatted full name string.
- Type
- string
-
<static> formatNumber(value, round, precision, numberGroupSeparator, decimalSeparator, toStringOnly)
-
Formats a number.
Parameters:
Name Type Description value
number Number to be formatted eg 2.134.
round
number number of digits to right of decimal to round at.
precision
number number of digits to right of decimal to take precision at.
numberGroupSeparator
string Character separator for number groups of 3 digits to the left of the decimal to add.
decimalSeparator
string Character to replace decimal in arg number with.
toStringOnly
boolean Flag for integer type field if
true
, convert integer to string value, else rounds it.Returns:
Formatted number string OR original value if it is not a number.
- Type
- string
-
<static> formatNumberLocale(value)
-
Formats a number according to the current user locale.
Parameters:
Name Type Description value
number Value to format.
Returns:
Formatted number.
- Type
- string
-
<static> formatString(format, args)
-
Replaces tokens like {0}, {1}, etc. with the provided arguments.
Parameters:
Name Type Description format
string String to format.
args
string Arguments to replace.
Returns:
Formatted string.
- Type
- string
-
<static> generateUUID()
-
Generates and returns a UUID according to RFC 4122.
Returns:
A UUID.
- Type
- string
-
<static> getChangedProps(data1, data2 [, strict])
-
Gets the diff between
data1
anddata2
. Intended for comparing objects with the same properties.Parameters:
Name Type Argument Default Description data1
Object Changed object
data2
Object Original object
strict
boolean <optional>
false By default values are compared property by property via non-strict comparison.
Returns:
Hash of fields from
data1
which are different fromdata2
.- Type
- Object
-
<static> getParentLayout(component)
-
Gets the layout container for the given component.
Parameters:
Name Type Description component
View/Component The component whose layout you want.
Returns:
The layout container for the given
component
.- Type
- View/Layout
-
<static> getTimestamp( [dateValue] [, options])
-
Returns ISO8601 timestamp in UTC time.
Parameters:
Name Type Argument Default Description dateValue
string | number <optional>
new Date() Date string or raw msec number.
options
Object <optional>
{} Extra parameters.
Properties
Name Type Argument Default Description msecPrecision
boolean <optional>
false If
true
, include milliseconds in the output.Returns:
Passed date or current date converted to UTC timezone.
- Type
- string
-
<static> hardRefresh()
-
Performs a hard refresh of the current page.
-
<static> hasDefaultValueChanged(attribute, bean)
-
Checks to see if the default value has changed.
Parameters:
Name Type Description attribute
string The bean attribute you are interested in.
bean
Data/Bean The bean to check the value of.
Returns:
true
if the value ofattribute
forbean
is different than its default value;false
otherwise.- Type
- boolean
-
<static> isConnectivityError(ajaxError)
-
Checks if the AJAX error is a network connectivity error: timeout, DNS, etc.
Parameters:
Name Type Description ajaxError
Api.HttpError AJAX error.
Returns:
true
if the error is a network error;false
otherwise.- Type
- boolean
-
<static> isDirectionRTL(value)
-
Checks if the value should be rendered in RTL.
Parameters:
Name Type Description value
string The value to check.
Returns:
true
if the string is in a RTL language.- Type
- boolean
-
<static> isSortable(module, fieldViewdef)
-
Determines if a given module is sortable on a certain field when in a particular view.
Parameters:
Name Type Description module
string The module to check.
fieldViewdef
Object Viewdef for the field to consider.
Properties
Name Type Argument Description name
string Name of the field; used to look up vardefs.
sortable
boolean <optional>
If not
undefined
, determines whether the module is sortable or not, regardless of vardefs.Returns:
true
ifmodule
can be sorted by the field given byfieldViewdef
;false
otherwise.- Type
- boolean
-
<static> isValidEmailAddress(address)
-
Checks if an email address is valid.
Only performs a very basic validation because the complexity of the server-side regular expression is too great to mirror on the client, both in terms of maintenance and difficulty in porting to a different engine. Even if the light-weight validation passes, the server-side validation may fail.
Parameters:
Name Type Description address
string The email address to check.
Returns:
false
if this is definitely an invalid email address. A return value oftrue
does not guarantee that this is a valid email address.- Type
- boolean
-
<static> regexEscape(string)
-
Escapes a given string for use in a JavaScript regex.
Parameters:
Name Type Description string
string The string to escape.
Returns:
string
escaped.- Type
- string
-
<static> stripHttpPrefix(url)
-
Returns a URL without the http(s):// prefix.
Parameters:
Name Type Description url
string Input url.
Returns:
url
without the http(s):// prefix.- Type
- string
-
<static> unformatNumberString(numberString, numberGroupSeparator, decimalSeparator [, toFloat])
-
Unformats number strings.
Parameters:
Name Type Argument Default Description numberString
string The number string to unformat.
numberGroupSeparator
string The thousands separator.
decimalSeparator
string The string between number and decimals.
toFloat
boolean <optional>
false If
true
, convert string to float value.Returns:
Formatted number string.
- Type
- string
-
<static> unformatNumberStringLocale(value [, toFloat])
-
Unformats a number string based on the current user's locale.
Parameters:
Name Type Argument Default Description value
string The number string to unformat.
toFloat
boolean <optional>
false If
true
, convert string to float value.Returns:
The formatted value.
- Type
- string
-
<static> versionCompare(v1, v2 [, operator])
-
Compares two version strings.
Example:
Utils.versionCompare('8.2.5rc', '8.2.5a'); // 1 Utils.versionCompare('8.2.50', '8.2.52', '<') // true Utils.versionCompare('5.3.0-dev', '5.3.0') === -1 Utils.versionCompare('4.1.0.52','4.01.0.51') === 1
Parameters:
Name Type Argument Description v1
string First version.
v2
string Second version.
operator
string <optional>
Operator argument, if specified, test for a particular relationship. The possible operators are:
<
,lt
,<=
,le
,>
,gt
,>=
,ge
,==
,=
,eq
,!=
,<>
, andne
. This parameter is case-sensitive, values should be lowercase.Returns:
By default, returns -1 if the first version is lower than the second, 0 if they are equal, and 1 if the second is lower. When using the optional operator argument, the function will return
true
if the relationship is the one specified by the operator,false
otherwise.- Type
- number | boolean