There is a space in the URL below that is used to create a mailto link in the body of an email, which will not work. I have tried adding %20 to compensate; however, that does not work. Any suggestion on getting this URL corrected so a user can click on the link as advised in the email? Thank you!
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "div",
"children": [
{
"elmType": "span",
"style": {
"padding-right": "8px"
},
"txtContent": "#currentField.title"
},
{
"elmType": "a",
"attributes": {
"iconName": "Mail",
"class": "sp-field-quickActions",
"href": {
"operator": "+",
"operands": [
"mailto:",
"#currentField.email",
"?subject=Task status&body=Hello, how is your task coming along?.\r\n---\r\n",
"#currentField.title",
"\r\nClick this link for more info. https://somesite.sharepoint.com/Information Technology/Lists/Projects/AllItems.aspx?ID=",
"[$ID]"
]
}
}
}
]
}
Related
I am trying to make a hyperlink column to appear "NA" if empty but if a hyperlink is inputted to show as a clickable "View MSA".
I am able to achieve the latter as a clickable link but can't seem to get the if empty/blank working using IF statement.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"attributes": {
"href": "#currentField",
"target": "_blank"
},
"txtContent": "View MSA"
}
Outcome
Someone provided me with a solution;
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"attributes": {
"href": "#currentField",
"target": "_blank"
},
"txtContent": "=if(#currentField == '', 'NA','View MSA')"
}
I'm trying to include a button to conditionally launch a flow on an item of a SharePoint List.
I have a list with multiple columns, such as Status, Approval and Created_By. I want the Approval column to show buttons that can launch a Power Automate Flow on the list item. And these buttons should be different in the following situations:
When the field in the Status column equals 'Draft' -> Show button to start Flow 1
When the field in the Status column equals 'Approved' -> Show button to start Flow 2
When the person who views the list is not the creator of the item -> Show no button
The method to include a button to launch a flow, using a formatted column, can be found here. However the example does not include conditional statements, see code below:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "{\"id\": \"edf627d9-20f4-45ba-8bc9-4494bf2ff1be\"}"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"
},
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "Flow"
},
"style": {
"padding-right": "6px"
}
},
{
"elmType": "span",
"txtContent": "Send to Manager"
}
]
}
I found that it is possible to include if statements in the JSON code. The Status can be checked with the following code: "=if([$Status] == 'Approved','','')".
Whether the person who is viewing the list is the same as the person who created the item should be possible to check with something like this (although this specific piece of code does not work..): "=if(#me == [$Created_x0020_By.email],'','')"
I'm not really known with JSON so I don't know how to insert these conditions into the code above. So I'd like to ask your help!
Solved thanks to Michael Han_MSFT! My resulting code is:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "=if(#me == [$Author.email], if([$Status]=='Draft', '{\"id\": \"d4ebc660-16fd-4320-a69c-d91d51277666\"}', if([$Status]=='Approved', '{\"id\": \"94233841-9c32-4e90-9018-479e72c33385\"}', 'null')), 'null')"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"
},
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "=if(#me == [$Author.email],'Flow','')"
},
"style": {
"padding-right": "6px"
}
},
{
"elmType": "span",
"txtContent": "=if(#me == [$Author.email], if([$Status]=='Draft','Start approval', if([$Status]=='Approved','Cancel', '')), '')"
}
]
}
1.The Statu can be checked in the "actionParams" with the following code, different id for different flows:
"actionParams": "=if([$Status]=='Approved','{\"id\": \"a04b0180-7d32-471c-8ff6-49497d229b23\"}','{\"id\": \"1f922b63-a66b-4177-9aa6-f4c37c4d6f27\"}')"
2.You need to use [$Author.email] instead of [$Created_x0020_By.email].
Below example code for your reference:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "=if([$Status]=='Approved','{\"id\": \"a04b0180-7d32-471c-8ff6-49497d229b23\"}','{\"id\": \"1f922b63-a66b-4177-9aa6-f4c37c4d6f27\"}')"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"
},
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "=if(#me == [$Author.email],'Flow','')"
},
"style": {
"padding-right": "6px"
}
},
{
"elmType": "span",
"txtContent": "=if(#me == [$Author.email], if([$Status]=='Approved','Flow1','Flow2'), '')"
}
]
}
Test result:
I need your help with something and Id be very grateful.
Lets say I'm having a SharePoint list with different list elements. Every list element has a specific ID.
What I am trying to do is for example I'm having a column formatted as a text field. I'm trying to write a .json code that appends the value of the ID of the list element to a link
I did try it with the following code
{ "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json", "debugMode": true, "elmType": "div", "children": [ { "elmType": "a", "attributes": { "target": "_blank", "href": { "operator": "+", "operands": [ "http://anywebsite?ID='", "[$ID]" ] } }, "txtContent": "Some text" } ] }
But when I click ok then in the SharePoint column it gives me an error:
Failure: Cannot read property 'valueOf' of null
Now what can I do to append the ID to a Link in a different column ?
I appreciate your help.
I test Hyperlink filed, there is one ' which doesn't need in your json.
{ "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json", "debugMode": true, "elmType": "div", "children": [ { "elmType": "a", "attributes": { "target": "_blank", "href": { "operator": "+", "operands": [ "http://anywebsite?ID=", "[$ID]" ] } }, "txtContent": "Some text" } ] }
I am attempting to include a link to a specific SharePoint List Item in an email using JSON formatting, but the URL contains spaces, which I can't seem to include in the hyperlink.
I have tried using "%20" as well as "x0020" in place of the space, but this is just read as a space.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "div",
"children": [
{
"elmType": "span",
"style": {
"padding-right": "8px"
},
"txtContent": "#currentField.title"
},
{
"elmType": "a",
"attributes": {
"iconName": "Mail",
"class": "sp-field-quickActions",
"href": {
"operator": "+",
"operands": [
"mailto:",
"#currentField.email",
"?subject=Task status&body=Hi ","#currentField.title",", Please see below link to a Shared Services Team Task which requires your attention.\r\n\r\n---\r\n",
"\r\nClick this link for more info. https://MyCompany.sharepoint.com/sites/SharedServicesDepartment/Lists/Task Management Register/DispForm.aspx?ID=",
"[$ID]"
]
}
}
}
]
}
What I am trying to achieve is a hyperlink of
https://MyCompany.sharepoint.com/sites/SharedServicesDepartment/Lists/Task Management Register/DispForm.aspx?ID=
But it cuts the hyperlink off at the first Space and leaves the last part as just text.
https://MyCompany.sharepoint.com/sites/SharedServicesDepartment/Lists/Task
Management Register/DispForm.aspx?ID=
We can use the JSON formatting below to achieve it.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "div",
"children": [
{
"elmType": "span",
"style": {
"padding-right": "8px"
},
"txtContent": "#currentField.title"
},
{
"elmType": "a",
"attributes": {
"iconName": "Mail",
"class": "sp-field-quickActions",
"href": {
"operator": "+",
"operands": [
"mailto:",
"#currentField.email",
"?subject=Task status&body=Hi ","#currentField.title",", Please see below link to a Shared Services Team Task which requires your attention.\r\n\r\n---\r\n",
"\r\nClick this link for more info. <https://MyCompany.sharepoint.com/sites/SharedServicesDepartment/Lists/Task Management Register/DispForm.aspx?ID=",
"[$ID]",
">"
]
}
}
}
]
}
Reference: Add links containing spaces to an e-mail message
I am using SharePoint online and would like to use row formatting on a document library.
Ideally i like the tile view for the documents. However, it only shows the "name" of the file. I would like to use the Title instead of the Name and i prefer to keep the same tile view style.
Any ideas how to do this?
Thanks.
We can't use view formatting for the default Tiles style view, we need create following view formatting for List style view.
{
"schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"hideSelection": "true",
"hideColumnHeader": "true",
"rowFormatter": {
"elmType": "a",
"attributes": {
"href": "[$FileRef]",
"target": "'_blank'"
},
"style": {
"float": "left"
},
"children": [
{
"elmType": "div",
"attributes": {
"class": "ms-bgColor-themeLighterAlt ms-bgColor-themePrimary--hover ms-fontColor-white--hover"
},
"style": {
"display": "flex",
"flex-wrap": "wrap",
"min-width": "180px",
"min-height": "150px",
"margin-right": "10px",
"margin-top": "10px",
"box-shadow": "2px 2px 4px darkgrey"
},
"children": [
{
"elmType": "div",
"style": {
"text-align": "center",
"margin": "auto"
},
"children": [
{
"elmType": "div",
"attributes": {
"class": "sp-row-title "
},
"txtContent": "[$Title]"
},
{
"elmType": "div",
"attributes": {
"iconName": "Test",
"class": "ms-fontSize-su"
}
}
]
}
]
}
]
}
}
Refer to: sp-dev-list-formatting>generic-tile-format