source: trunk/grails-app/views/visualize/index.gsp @ 2061

Last change on this file since 2061 was 2061, checked in by tjeerd@…, 11 years ago

VIS-39, added a message to inform users that in this prototype samples are required. Also some small code improvements are present in this changeset

File size: 9.3 KB
Line 
1<html>
2<head>
3        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
4        <meta name="layout" content="main"/>
5        <title>Visualization</title>
6       
7        <!--[if lt IE 9]><g:javascript src="jqplot/excanvas.js" /><![endif]-->
8        <g:javascript src="jqplot/jquery.jqplot.min.js" />
9        <link rel="stylesheet" type="text/css" href="<g:resource dir='css' file='jquery.jqplot.min.css' />" />
10       
11        <!-- jqPlot plugins -->
12        <g:javascript src="jqplot/plugins/jqplot.barRenderer.min.js" />
13        <g:javascript src="jqplot/plugins/jqplot.categoryAxisRenderer.min.js" />
14        <g:javascript src="jqplot/plugins/jqplot.pointLabels.min.js" />
15        <g:javascript src="jqplot/plugins/jqplot.canvasTextRenderer.min.js" /> 
16        <g:javascript src="jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js" />
17    <g:javascript src="jqplot/plugins/jqplot.ohlcRenderer.min.js" />
18    <g:javascript src="jqplot/plugins/jqplot.highlighter.min.js" />
19
20        <g:javascript src="visualization.js" />
21        <link rel="stylesheet" type="text/css" href="<g:resource dir='css' file='visualization.css' />" />
22    <style type="text/css">
23        /** NEEDED FOR RESOURCES PLUGIN **/
24        .menu_seperator {background-image: url(${resource(dir: 'images/visualization', file: 'seperator.gif')}); }
25        .message_error { background: #ffe0e0 url(${fam.icon( name: 'exclamation' )}) 10px 5px no-repeat; }
26        .message_warning { background: #eee url(${fam.icon( name: 'information' )}) 10px 5px no-repeat; }
27    </style>
28       
29        <script type="text/javascript">
30                // We store urls here because they depend on the grails configuration.
31                // This way, the URLs are always correct
32                var visualizationUrls = {
33                        "getStudies": "<g:createLink action="getStudies" />",
34                        "getFields": "<g:createLink action="getFields" />",
35                        "getVisualizationTypes": "<g:createLink action="getVisualizationTypes" />",
36                        "getData": "<g:createLink action="getData" />"
37                };
38        </script>
39</head>
40<body>
41
42    <div id="data">
43        <form id="visualizationForm">
44            <div id="top_container">
45
46                <span class="menu_seperator">&nbsp;</span>
47
48                <span class="topmenu_item" id="menu_study">
49                    <div class="topmenu_item_label"><img src="${fam.icon( name: 'report' )}" style="vertical-align: text-bottom; display: inline-block;"/>&nbsp;Study<img src="${resource(dir: 'images', file: 'spinner.gif')}" class="spinner" />:</div>
50                    <div class="topmenu_item_info">no study selected</div>
51                    <img src="${fam.icon( name: 'bullet_arrow_down' )}" style="vertical-align: text-bottom; display: inline-block;"/>
52                    <div class="formulier">
53                        <p class="info">Select a study from the list below.</p>
54                        <p>
55                            <g:select from="${studies}" size="10" optionKey="id" optionValue="title" name="study" onChange="changeStudy();"/>
56                        </p>
57                    </div>
58                </span>
59
60                <span class="menu_seperator">&nbsp;</span>
61
62                <span class="topmenu_item" id="menu_aggregation">
63                    <span class="topmenu_item_label"><img src="${fam.icon( name: 'server_chart' )}" style="vertical-align: text-bottom; display: inline-block;"/>&nbsp;Aggregation:</span>
64                    <span class="topmenu_item_info">AVERAGE</span>
65                    <img src="${fam.icon( name: 'bullet_arrow_down' )}" style="vertical-align: text-bottom; display: inline-block;"/>
66                    <div class="formulier">
67                        <p class="info">Select a way to aggregate the data.</p>
68                        <p>
69                            <select name="aggregation" size="5" onchange="$('#menu_aggregation').children('.topmenu_item_info').html($(this).val().toUpperCase()); changeVis();">
70                                <option value="average" SELECTED>Average</option>
71                                <option value="count">Count</option>
72                                <option value="median">Median</option>
73                                <option value="none" disabled>No aggregation</option>
74                                <option value="sum">Sum</option>
75                            </select>
76                        </p>
77                    </div>
78                </span>
79
80                <span class="menu_seperator">&nbsp;</span>
81
82                <span class="topmenu_item" id="menu_advanced">
83                    <span class="topmenu_item_label"><img src="${fam.icon( name: 'cog' )}" style="vertical-align: text-bottom; display: inline-block;"/>&nbsp;Advanced settings</span>
84                    <img src="${fam.icon( name: 'bullet_arrow_down' )}" style="vertical-align: text-bottom; display: inline-block;"/>
85                    <div class="formulier">
86                        <table>
87                            <tr>
88                                <td><label for="autovis">Visualize the data as soon as enough parameters are known.</label></td>
89                                <td><input type="checkbox" name="autovis" id="autovis" CHECKED/></td>
90                            </tr>
91                            <tr>
92                                <td><label for="errorbars">Show errorbars in graph.<br />(only available with aggregation set to average)</label></td>
93                                <td><input type="checkbox" name="errorbars" id="errorbars" CHECKED/></td>
94                            </tr>
95                            <tr>
96                                <td><label for="showvalues">Always show values in the graph.<br />(if this box is unchecked, value's are only shown when you hover over a datapoint)</label></td>
97                                <td><input type="checkbox" name="showvalues" id="showvalues" onClick="changeVis();"/></td>
98                            </tr>
99                        </table>
100                    </div>
101                </span>
102
103                <span class="menu_seperator">&nbsp;</span>
104
105                <span class="topmenu_item" id="message_counter" onClick="; return false;">
106                    <span class="topmenu_item_label"><img src="${fam.icon( name: 'email_error' )}" style="vertical-align: text-bottom; display: inline-block;"/>&nbsp;Messages:</span>
107                    <span class="topmenu_item_info">0</span>
108                    <img src="${fam.icon( name: 'bullet_arrow_down' )}" style="vertical-align: text-bottom; display: inline-block;"/>
109                    <div class="formulier">
110                        <p class="info">Messages:</p>
111                        <div id="message_container">
112                        <g:if test="${flash.error}">
113                            <div class="message_box message_error">
114                                ${flash.error.toString().encodeAsHTML()}
115                            </div>
116                        </g:if>
117                        <g:if test="${flash.message}">
118                            <div class="message_box message_warning">
119                                ${flash.message.toString().encodeAsHTML()}
120                            </div>
121                        </g:if>
122                        </div>
123                    </div>
124                </span>
125
126                <span class="menu_seperator">&nbsp;</span>
127                   
128            </div>
129
130            <div id="bottom_container">
131
132                <div id="menu_container">
133                    <div class="menu_item" id="menu_column">
134                        <div class="menu_item_label">X-Axis <img src="${resource(dir: 'images', file: 'spinner.gif')}" class="spinner" /></div>
135                        <p class="info">Select a field for the X-Axis from the list below. This field will be visible as columns in the table visualization.</p>
136                        <p>
137                            <select id="columns" name="columns" size="6" onChange="changeFields('menu_column');"></select>
138                        </p>
139                    </div>
140                    <div class="menu_item" id="menu_row">
141                        <div class="menu_item_label">Y-Axis <img src="${resource(dir: 'images', file: 'spinner.gif')}" class="spinner" /></div>
142                        <p class="info">Select a field for the Y-Axis from the list below. This field will be visible as rows in the table visualization.</p>
143                        <p>
144                            <select id="rows" name="rows" size="6" onChange="changeFields('menu_row');"></select>
145                        </p>
146                    </div>
147                    <div class="menu_item" id="menu_vis">
148                        <div class="menu_item_label">Type <img src="${resource(dir: 'images', file: 'spinner.gif')}" class="spinner" /></div>
149                        <p class="info">Select visualization type.</p>
150                        <p>
151                            <select id="types" name="types"  size="3" onChange="changeVis();"></select>
152                        </p>
153                    </div>
154                    <div class="menu_item" id="menu_go">
155                        <button id="button_visualize" onClick="visualize(); return false;" >
156                            VISUALIZE
157                        </button>
158                    </div>
159                </div>
160               
161                <div id="visualization_container">
162                    <div id="visualization"><div style="padding: 30px">Select a study to start.</div>
163                    </div>
164                </div>
165
166                <br clear="all"/>
167
168            </div>
169        </form>
170    </div>
171</body>
172</html>
173
174
175
Note: See TracBrowser for help on using the repository browser.