Hi,
I have a text field where user is entering website. I am using below line of code to provide a link to the user to navigate to the website.
Issue is when user to try to enter link "www.google.com" or "google.com" and when they came to the link and hit it is throwing an error.
if( a!isNotNullOrEmpty(ri!site), a!richTextItem( text: ri!site, link: a!safeLink(uri: ri!site,openLinkIn: "NEW_TAB") ), "" )
Any suggestions from anyone.
Discussion posts and replies are publicly visible
I believe you need the full URL e.g. for your example this needs to be: https://www.google.co.uk/.
You'll need to examine the value entered by a user and validate it (which you should be doing anyway) and perhaps add the https:// prefix if they haven't already provided it. Or you could simply insist that a fully qualified url is provided.
How to insist that a fully qualified url entered by the user. Is there a way to use any kind of function to do this in Appian.
concat("https://", local!yourUrl)
But before you do this, make sure to check if the URL already consists of this. You can do this using like() function.
I have to find whether user entered "http://" or "https://" then in this case also, I can use like() function?
You will need to verify it one way or another - there are numerous Appian text functions which you could use to do this, depending on how strong the need will be - you could use like(), left(), regexMatch, etc.
To simplify the data entry of a fully qualified url, I would simply replace any existing occurrences with an empty string and then normalize it at the end. You should also validate it to make sure it is a valid URL, I would suggest using a regular expression for this. https://community.appian.com/b/appmarket/posts/regular-expression-functions.
a!localVariables( local!value: "https://google.com", concat( "https://", reduce( fn!substitute, local!value, merge({ "http://", "https://" }, { "", "" }) ) ) )
Thank you all for your suggestions. Really appreciate.