This page demonstrates how to calculate totals, average and sums, and standard deviation (by use of ConfiForms REST API)
ConfiForms (FormView) Registrations Control |
---|
restrictions | confluence-administrators |
---|
embedded | true |
---|
|
|
ConfiForms Form Definition |
---|
formName | f |
---|
allowReads | true |
---|
export | true |
---|
|
ddfalse[1=one|2=two|3=tre|4=four|]selecttrue |
...
HTML |
---|
<p>Standard deviation: <span id="confiReport"></span></p>
<script type="application/javascript">
function calculateStandardDeviation(array) {
const n = array.length;
const mean = array.reduce((a,b) => a+b)/n;
return Math.sqrt(array.map(x => Math.pow(x-mean,2)).reduce((a,b) => a+b)/n);
}
AJS.toInit(function() {
var isPageEdit = AJS.$('#content').hasClass('page edit');
if (!isPageEdit) {
var url = 'https://wiki.vertuna.com/ajax/confiforms/rest/filter.action?pageId=52625840&f=f&q=';
var xhr = AJS.$.ajax({
url: url,
timeout: 10000, // 10 sec
success: function (data) {
var arr = [];
var rows = data.list.entry;
for (i=0;i<rows.length;i++) {
arr[i] = rows[i].fields.d;
}
AJS.$('#confiReport').append(calculateStandardDeviation(arr));
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('request to get data from ConfiForms has failed... ' + textStatus);
}
});
}
});
</script>
|
Code for the demo is here:
Code Block |
---|
<ac:structured-macro ac:macro-id="c221d30d-8349-441f-8d7a-1f42c9a6112f" ac:name="confiform-entry-register" ac:schema-version="1">
<ac:parameter ac:name="embedded">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="bb37bde6-f2ce-4953-b852-33f215a4d5d7" ac:name="confiform" ac:schema-version="1">
<ac:parameter ac:name="formName">f1</ac:parameter>
<ac:parameter ac:name="allowReads">true</ac:parameter>
<ac:parameter ac:name="export">true</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
<p>
<ac:structured-macro ac:macro-id="c7d16d0d-29b9-4eea-8dfc-f83e3b80c7af" ac:name="confiform-field-definition" ac:schema-version="1">
<ac:parameter ac:name="fieldName">d</ac:parameter>
<ac:parameter ac:name="fieldLabel">d</ac:parameter>
<ac:parameter ac:name="values">false[1=one|2=two|3=tre|4=four|]</ac:parameter>
<ac:parameter ac:name="type">select</ac:parameter>
<ac:parameter ac:name="required">true</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<p>All rows</p>
<ac:structured-macro ac:macro-id="114580e2-3c29-4bc2-a822-a491540201d8" ac:name="confiform-table" ac:schema-version="1">
<ac:parameter ac:name="formName">f1</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="755e0e54-fef2-416e-9591-3852d18c9cfc" ac:name="confiform-field" ac:schema-version="1">
<ac:parameter ac:name="overrideLabel">(ID of d)</ac:parameter>
<ac:parameter ac:name="fieldName">d.id</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="a921da18-107a-42f8-a6fc-32311c625749" ac:name="confiform-field" ac:schema-version="1">
<ac:parameter ac:name="fieldName">d</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<p>Rows: <ac:structured-macro ac:macro-id="d0323d13-c6d6-4bf9-93c2-8e25eb47e57a" ac:name="confiform-value" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Rows:([total])</ac:parameter>
<ac:parameter ac:name="formName">f1</ac:parameter>
</ac:structured-macro>
</p>
<p>Total: <ac:structured-macro ac:macro-id="e139194f-9ae6-4eea-bf09-d59acdb3eb69" ac:name="confiform-value" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Total:([entry.d])</ac:parameter>
<ac:parameter ac:name="formName">f1</ac:parameter>
</ac:structured-macro>
</p>
<p>Average: <ac:structured-macro ac:macro-id="e536712c-00cf-4da8-a66a-0bc49addbac0" ac:name="confiform-value" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Average:([entry.d]/[total])</ac:parameter>
<ac:parameter ac:name="formName">f1</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="0fb8923e-370d-46db-bfab-2f50d025f487" ac:name="html" ac:schema-version="1">
<ac:plain-text-body><![CDATA[<p>Standard deviation: <span id="confiReport"></span></p>
<script type="application/javascript">
function calculateStandardDeviation(array) {
const n = array.length;
const mean = array.reduce((a,b) => a+b)/n;
return Math.sqrt(array.map(x => Math.pow(x-mean,2)).reduce((a,b) => a+b)/n);
}
AJS.toInit(function() {
var isPageEdit = AJS.$('#content').hasClass('page edit');
if (!isPageEdit) {
var url = 'https://wiki.vertuna.com/ajax/confiforms/rest/filter.action?pageId=52625840&f=f1&q=';
var xhr = AJS.$.ajax({
url: url,
timeout: 10000, // 10 sec
success: function (data) {
var arr = [];
var rows = data.list.entry;
for (i=0;i<rows.length;i++) {
arr[i] = rows[i].fields.d;
}
AJS.$('#confiReport').append(calculateStandardDeviation(arr));
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('request to get data from ConfiForms has failed... ' + textStatus);
}
});
}
});
</script>
]]></ac:plain-text-body>
</ac:structured-macro> |