Like what you see? Have a play with our trial version.

Error rendering macro 'rw-search'

null

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

 

Overview

The following sections outline sample dashboard content developed with DashXML and Yellowfin content. It will explore each of the avilalbe widget types, how they were set up in the XML, and how they were styled through custom CSS. 

Note: this is merely a guide in order to walk you through using the DashXML framework for your own dashboard requirements.

The main XML widget types consist of the following:

<application-definition>
	<sourcefilter></sourcefilter>
	<dashboard>
		<text></text>
		<exportlist>
			<export><export>
		</exportlist>
		<filter>
			<options>
				<summary><summary>
			</options>
		</filter>
		<report>
			<modal>
				<subcontent></subcontent>
			</modal>
			<filterMap></filterMap>
		</report>
		<modal>
			<subcontent></subcontent>
		</modal>
		<customhtml>
			<replacements></replacements>
		</customhtml>
		<subtab>
			<options>
				<subcontent></subcontent>
				<summary></summary>
			</options>
		<subtab>
	</dashboard>
</application-definition>

 

The full XML structure is outlined on the Widget XML page.

 

Dashboard Widget

Sub Tab Widget

Text Widget

Export Button Widget

Filter Widget

These can be implemented using the <filter> XML widget. Each filter widget requires at least one option to be defined, allowing the user to select a value to apply. This particular filter has four options; Custom, Year, Month, and All Time. The Year, Month, and All Time filters have been set up using pre-defined date ranges, while the Custom option was specified as user prompt in order to allow users to specify a custom range.

Example Output


Example Elements

<filter>

ChildValueDescription

sync

trueSetting this to true allows the values of this filter to be passed to other dashboards.
datatypeDATEThis specifies that the filter options need to return a date type in order to be applied.
namedateFilterThis contains the name of the filter, to be used to identify it for the <filterMap> node used on reports receiving the values.  
operatorBETWEEN

This specifies the operator for the filter, and must be compatible with the operators used in reports you wish to pass the filter values to.

BETWEEN means two values are expected. This option should be used for operators defined in the report including, but not limited to; Between, Not Between.

styleClasstopFilterThis contains a CSS class name used to apply styling to the component.
options This contains nodes to define the contents of the display and possible values. Each option to be presented to the user will need to have its own <option> node. In this example we’ve used a Year, Month, and Custom option. See <options> node description.

 

<options> (Custom)

ChildValueDescription
titleCustomThis is the label displayed on the filter. A text name describing the value that will be applied.
prompttrueThis specifies that the option doesn’t have a value predefined, but rather will ask the user to provide it. In this example, as we are using a prompt, there is no need for a <value> node. As the filter is defined as a date, the user will be presented with a calendar picker (which can be styled using css).

 

<options> (Year)

ChildValueDescription
title YearThis is the label displayed on the filter. A text name describing the value that will be applied.
typecodePREDEF This defines that the option will use a predefined filter, such as a predefined date range. You will then have to specify which definition to use in the <value> node.
valueYEARTODATE YEARTODATE uses the predefined date range that is the first date of the current year, to the current date.


<options> (Month)

ChildValueDescription
title MonthThis is the label displayed on the filter. A text name describing the value that will be applied.
typecodePREDEF This defines that the option will use a predefined filter, such as a predefined date range. You will then have to specify which definition to use in the <value> node.
valueMONTHTODATE MONTHTODATE uses the predefined date range that is the first date of the current month, to the current date.


<options> (All Time)

ChildValueDescription
title All Time This is the label displayed on the filter. A text name describing the value that will be applied.
value1900-01-01\|2100-01-01 This defines that the date range will be from 1st Jan 1900 to 1st Jan 2100, effectively covering all the data in this dataset.
defaultOption trueThis specifies this option as the default selection for the dashboard. Only one <option> node can be the default, the rest should be false or omit this node.


Example XML

<!-- Year Filters -->
<filter>
	<sync>true</sync>
	<datatype>DATE</datatype>
	<name>dateFilter</name>
	<operator>BETWEEN</operator>
	<styleClass>topFilter</styleClass>
	<options>
		<title>All Time</title>
		<value>1900-01-01\|2100-01-01</value>
		<defaultOption>true</defaultOption>
	</options>
	<options>
		<title>Year</title>
		<typeCode>PREDEF</typeCode>
		<value>YEARTODATE</value>
	</options>
	<options>
		<title>Month</title>
		<typeCode>PREDEF</typeCode>
		<value>MONTHTODATE</value>
	</options>
	<options>
		<title>Custom</title>
		<prompt>true</prompt>
	</options>
</filter>

 

Example CSS

/* Date Filters */
.topFilter {
    height: 24px;
    line-height: 24px;
    padding-top: 14px;
}

.topFilter .filterOption {
    text-align: center;
    float: right;
    color: #393737;
    cursor: pointer;
    width: 70px;
    margin-left: 5px;
    font-weight: bold;
}

.topFilter .selected {
    background-color: #393737;
    color: #FFFFFF;
}

.topFilter .filterOption .customEntry {
    background-color : #393737;
    color: #FFFFFF;
    position: absolute;
    overflow: hidden;
    z-index: 100;
    margin-top: 5px;
    width: 115px;
}

.topFilter .filterOption .customEntry  input{
    background-color : #FFFFFF;
    border: 0px;
    font-family: sourceSansPro, sans-serif;
    font-size: 14px;
    color: #393737;
    height: 24px;
    width: 70px;
    line-height: 24px;
    margin: 12px 12px 0px 12px;
    padding: 0px 10px;
    text-align: center;
}


/* Date Entry */
.submitCustom {
    float: left;
    line-height: normal;
    margin: 10px 3px 10px 12px;
}

.cancelCustom {
    float: right;
    line-height: normal;
    margin: 10px 12px 10px 3px;
}

/* Date Picker */
.ui-datepicker {
    background-color : #FFFFFF;
    border: 1px solid #393737;
    color: #393737;
    font-family: sourceSansPro, sans-serif;
    font-size: 14px;
    margin-top: 5px;
}

.ui-datepicker a{
    color: #393737;
}

.ui-datepicker .ui-datepicker-prev {
    left: 10px;
    top: 6px;
}

.ui-datepicker .ui-datepicker-next {
    right: 10px;
    top: 6px;
}

.ui-datepicker .ui-datepicker-prev:before {
    content: "\f104";
    color: #393737;
    display: inline-flex;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 18px;
    cursor: pointer;
}

.ui-datepicker .ui-datepicker-next:before {
    content: "\f105";
    color: #393737;
    display: inline-flex;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 18px;
    cursor: pointer;
}

.ui-datepicker .ui-datepicker-prev-hover:before {
    content: "\f104";
    color: #393737;
    display: inline-flex;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 18px;
    cursor: pointer;
}
.ui-datepicker .ui-datepicker-next-hover:before {
    content: "\f105";
    color: #393737;
    display: inline-flex;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 18px;
    cursor: pointer;
    text-align: right;
}

.ui-datepicker .ui-datepicker-prev-hover {
    left: 10px;
    top: 6px;
}

.ui-datepicker .ui-datepicker-next {
    text-align: right;
}

.ui-datepicker .ui-datepicker-next-hover {
    right: 10px;
    top: 6px;
    text-align: right;
}

 

/* Date Filters */ 

.topFilter { 

    height: 24px; 

    line-height: 24px; 

    padding-top: 14px; 

} 

 

.topFilter .filterOption { 

    text-align: center; 

    float: right; 

    color: #393737; 

    cursor: pointer; 

    width: 70px; 

    margin-left: 5px; 

    font-weight: bold; 

} 

 

.topFilter .selected { 

    background-color: #393737; 

    color: #FFFFFF; 

} 

 

.topFilter .filterOption .customEntry { 

    background-color : #393737; 

    color: #FFFFFF; 

    position: absolute; 

    overflow: hidden; 

    z-index: 100; 

    margin-top: 5px; 

    width: 115px; 

} 

 

.topFilter .filterOption .customEntry  input{ 

    background-color : #FFFFFF; 

    border: 0px; 

    font-family: sourceSansPro, sans-serif; 

    font-size: 14px; 

    color: #393737; 

    height: 24px; 

    width: 70px; 

    line-height: 24px; 

    margin: 12px 12px 0px 12px; 

    padding: 0px 10px; 

    text-align: center; 

} 

 

 

/* Date Entry */ 

.submitCustom { 

    float: left; 

    line-height: normal; 

    margin: 10px 3px 10px 12px; 

} 

 

.cancelCustom { 

    float: right; 

    line-height: normal; 

    margin: 10px 12px 10px 3px; 

}

 

/* Date Picker */ 

.ui-datepicker { 

    background-color : #FFFFFF; 

    border: 1px solid #393737; 

    color: #393737; 

    font-family: sourceSansPro, sans-serif; 

    font-size: 14px; 

    margin-top: 5px; 

} 

 

.ui-datepicker a{ 

    color: #393737; 

} 

 

.ui-datepicker .ui-datepicker-prev { 

    left: 10px; 

    top: 6px; 

} 

 

.ui-datepicker .ui-datepicker-next { 

    right: 10px; 

    top: 6px; 

} 

 

.ui-datepicker .ui-datepicker-prev:before { 

    content: "\f104"; 

    color: #393737; 

    display: inline-flex; 

    font-family: FontAwesome; 

    font-style: normal; 

    font-weight: normal; 

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale; 

    font-size: 18px; 

    cursor: pointer; 

} 

 

.ui-datepicker .ui-datepicker-next:before { 

    content: "\f105"; 

    color: #393737; 

    display: inline-flex; 

    font-family: FontAwesome; 

    font-style: normal; 

    font-weight: normal; 

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale; 

    font-size: 18px; 

    cursor: pointer; 

} 

 

.ui-datepicker .ui-datepicker-prev-hover:before { 

    content: "\f104"; 

    color: #393737; 

    display: inline-flex; 

    font-family: FontAwesome; 

    font-style: normal; 

    font-weight: normal; 

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale; 

    font-size: 18px; 

    cursor: pointer; 

} 

.ui-datepicker .ui-datepicker-next-hover:before { 

    content: "\f105"; 

    color: #393737; 

    display: inline-flex; 

    font-family: FontAwesome; 

    font-style: normal; 

    font-weight: normal; 

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale; 

    font-size: 18px; 

    cursor: pointer; 

    text-align: right; 

} 

 

.ui-datepicker .ui-datepicker-prev-hover { 

    left: 10px; 

    top: 6px; 

} 

 

.ui-datepicker .ui-datepicker-next { 

    text-align: right; 

} 

 

.ui-datepicker .ui-datepicker-next-hover { 

    right: 10px; 

    top: 6px; 

    text-align: right; 

}

Report Widget

Modal Window Widget

Custom HTML Widget

  • No labels