Hi All,
we need a macro or plugin which enables us to create conditional fields. Just like Excel does: based on the value of a field, another field will be set to a custom value. More specifically our management likes the green-yellow-red status macro and we'd like to implement that based on the value of a field then the status will change to green (good) or red (bad). Is it somehow poosible?
Thanks in advance,
Rumi
Hi @Rumceisz
Thank you for sharing your use case!
Ig you're open to third party apps, I can recommend you Elements Spreadsheet, which I think will cover your need through the Project Tables macro. It looks exactly like a Confluence table, it is very user-friendly and requires no learning curve.
Let's consider the following use case:
- I have 2 columns in my table, one for tracking the allocated budget, another for tracking the actual cost
- Now, I want to track the remaining budget status (Under the line/Budget met) for each row based on the following calculation: Allocated budget - Actual Cost. I can capture that information by configuring a calculation-type column:
Here is a sneak peak of the Remaining budget column formula. You can adapt the formula to anything that you'd like. You can use specific thresholds if that works best for you, e.g. IF({Allocated budget} > 30.000, "pass condition", "fail condition").
- Now if you'd like to apply a specific color code for each of these status values (Under the line/Budget met), you can use the conditional coloring feature:
And that's it.
I hope this helps! Feel free to reach out if you need further assistance!
PS: I am the Product Manager of the app
Hi guys,
The Table Filter, Charts & Spreadsheets app (that is our add-on) has been already mentioned in this thread regarding native Confluence tables: the Table Transformer macro allows you to set colorful statuses based on different conditions.
But if you prefer an Excel-like functionality, you may also use the Table Spreadsheet macro that is also provided by the app. With the help of this macro, you’ll be able to set statuses automatically using cell formulas and apply familiar Excel-like conditional formatting via a user-friendly UI.
Please book a live demo from our team – we’ll be happy to arrange it and discuss your cases.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What do you mean by field? Is this something that is enetered by a user, is it changed automatically by some system, is it getting it from a web service? How is the "field" data changing?
As far as the status maco is concerned you could change that on-the-fly with Javascript after page load by simply adding or removing a CSS class to the element.
Color CSS Classes ---------------------------------------------------------- Grey status-macro aui-lozenge Red status-macro aui-lozenge aui-lozenge-error Yellow status-macro aui-lozenge aui-lozenge-current Green status-macro aui-lozenge aui-lozenge-success Blue status-macro aui-lozenge aui-lozenge-complete
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Davin,
I mean that I would have a table in Confluence. There is a cell where I add number value. Based on this number another field would have various value: e.g. if the number cell has value of 100 then the other value gets text value: Good, if the number cell has value of 30 then the text cell gets value of Bad.
Sorra for confusing you with fields. In fact there are no fields in Confluence, it's JIRA:). I talk about a table in Confluence.
Thanks in advance,
Rumi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Does the value entered need to persist over page reloads, or would it be enetered everytime the page is accessed?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
So, just to be clear would you be editing the page(in edit mode) and putting data into a table. When the page is saved based on the data in the table you want to have a status macro updated to reflect a formula calculation?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This could be done then with a user macro and a little bit of javascript. Here is a down and dirty example. You will have to fill out the formula logic yourself.
Macro Name:
macro_name
Macro Title:
Macro Title
Macro Body Processing:
Rendered
Template:
## Developed by: Davin Studer ## Date created: 07/08/2014 ## @noparams #set( $id = $action.dateFormatter.calendar.timeInMillis ) <div id="table$id"> $body <p> <ac:structured-macro ac:name="status"> <ac:parameter ac:name="colour">Grey</ac:parameter> <ac:parameter ac:name="title">Grey</ac:parameter> </ac:structured-macro> </p> </div> <script type="text/javascript"> AJS.toInit(function(){ var results = 0; ///////////////////////////////////////////////////////////////////////////////// // Code here to set the results variable based on your formula. // ///////////////////////////////////////////////////////////////////////////////// switch (results) { case 1: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-error'); //Red AJS.$('#table$id span.status-macro.aui-lozenge').text('Red Text'); break; case 2: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-current'); //Yellow AJS.$('#table$id span.status-macro.aui-lozenge').text('Yellow Text'); break; case 3: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-success'); //Green AJS.$('#table$id span.status-macro.aui-lozenge').text('Green Text'); break; case 4: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-complete'); //Blue AJS.$('#table$id span.status-macro.aui-lozenge').text('Blue Text'); break; } }); </script>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Does something like this meet your needs?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Well, you have to fill out the code to calculate the formula to change the macro class. Aside from that it should work.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is it possible to convert JIRA data to colors when presented in Confluence using a similar script, or does the above script only work if you manually enter data into a table in Confluence?
Example: We have a JIRA field 'Health' = At Risk, which would be associated as a YELLOW. Our Confluence page uses JIRA Filter Results to present a status report that includes several fields, including Health. We need to show the Health as Yellow on the Confluence page without manual data entry – just rely on the JIRA data.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Davin Studer , how do you add your macro to a confluence page? I'm looking for the following logic below, if a table cell contains 'PASS' then make it green, 'FAIL', then make it red etc.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The above code is a start for a user macro. You have to create the user macro in Confluence Admin -> User Macro. Also, the cloud offering of Confluence does not support user macros. So, you need to have server or data center. Once you create the user macro you can put it on a page just like any other macro. It will show up in the macro browser. Here is an example of the above code edited to look at the contents of a table. It will scan all the table cells and if it finds any that have the word fail in them then the status macro will be turned red. Otherwise it will be green.
## Developed by: Davin Studer ## Date created: 07/08/2014 ## @noparams #set( $id = $action.dateFormatter.calendar.timeInMillis ) <div id="table$id"> $body <p> <ac:structured-macro ac:name="status"> <ac:parameter ac:name="colour">Grey</ac:parameter> <ac:parameter ac:name="title">Grey</ac:parameter> </ac:structured-macro> </p> </div> <script type="text/javascript"> AJS.toInit(function(){ var results = 0; AJS.$('#table$id td').each(function(){ if(AJS.$(this).text().toLowerCase() == "fail") { results = 1; return false; } }); switch (results) { case 0: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-success'); //Green AJS.$('#table$id span.status-macro.aui-lozenge').text('Green Text'); break; case 1: AJS.$('#table$id span.status-macro.aui-lozenge').addClass('aui-lozenge-error'); //Red AJS.$('#table$id span.status-macro.aui-lozenge').text('Red Text'); break; } }); /script>
This is what the page looks like in edit mode.
This is what it looks like when the page is viewed
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This can be done with the Table Transformer macro: see examples.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Andrey Khaneev _StiltSoft_ I dont see a table transformer macro in the market place.
Your link goes to table filter and charts(which i have), and the example references a different macro all together. Please clarify.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ah I see, I figured it out. Thanks for making such a useful addon.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.