source: trunk/grails-app/views/home/index.gsp @ 1590

Last change on this file since 1590 was 1590, checked in by work@…, 9 years ago
  • fixing remaining test issues
  • Property svn:keywords set to Rev Author Date
File size: 10.8 KB
Line 
1<html>
2<head>
3        <title>Generic Study Capture Framework</title>
4        <meta property="og:title" content="Generic Study Capture Framework"/>
5        <meta property="og:description" content="A generic tool for planning scientific studies, and capturing study meta-data, integrating with analysis platform(s) / LIMS systems and searching relevant studies."/>
6        <meta name="layout" content="main"/>
7        <g:if test="${showstats}"><script type="text/javascript" src="${resource(dir: 'js', file: 'highcharts.js')}"></script></g:if>
8        <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.ui.autocomplete.html.js', plugin: 'gdt')}"></script>
9        <script type="text/javascript">
10                $(document).ready(function() {
11<g:if test="${showstats}">
12                        Highcharts.theme = { colors: ['#4572A7'] };
13                        var highchartsOptions = Highcharts.getOptions();
14                        var studiesPieChart, dailyStatistics;
15
16                        studiesPieChart = new Highcharts.Chart({
17                                chart: {
18                                        renderTo: 'studies-pie',
19                                        plotBackgroundColor: null,
20                                        plotBorderWidth: null,
21                                        plotShadow: false
22                                },
23                                title: {
24                                        text: '${studyCount} Studies'
25                                },
26                                tooltip: {
27                                        formatter: function() {
28                                                return '<b>' + this.point.name + '</b>: ' + this.y + ' ' + ((this.y == 1) ? 'study' : 'studies');
29                                        }
30                                },
31                                plotOptions: {
32                                        pie: {
33                                                allowPointSelect: true,
34                                                cursor: 'pointer',
35                                                dataLabels: {
36                                                        enabled: true,
37                                                        color: Highcharts.theme.textColor || '#000000',
38                                                        connectorColor: Highcharts.theme.textColor || '#000000',
39                                                        formatter: function() {
40                                                                return '<b>' + this.point.name + '</b>: ' + this.y + ' ' + ((this.y == 1) ? 'study' : 'studies');
41                                                        }
42                                                }
43                                        }
44                                },
45                                series: [
46                                        {
47                                                type: 'pie',
48                                                name: 'Your statistics',<sec:ifLoggedIn>
49                                                size: '45%',
50                                                innerSize: '25%',
51                                                </sec:ifLoggedIn><sec:ifNotLoggedIn>
52                                                innerSize: '45%',
53                                                </sec:ifNotLoggedIn>
54                                                data: [
55                                                        { name: 'Public', y: ${publicStudyCount}, color: '#89A54E' },
56                                                        { name: 'Private', y: ${privateStudyCount}, color: '#AA4643' }
57                                                ],
58                                                dataLabels: {
59                                                        enabled: <sec:ifLoggedIn>false</sec:ifLoggedIn><sec:ifNotLoggedIn>true</sec:ifNotLoggedIn>,
60                                                }
61                                        },
62                                        {
63                                                type: 'pie',
64                                                name: 'Your statistics',<sec:ifLoggedIn>
65                                                size: '25%',
66                                                innerSize: '10%',
67                                                </sec:ifLoggedIn><sec:ifNotLoggedIn>
68                                                size: '45%',
69                                                </sec:ifNotLoggedIn>
70                                                data: [
71                                                        { name: 'Published public', y: ${publishedPublicStudyCount}, color: '#89A54E' },
72                                                        { name: 'Unpublished Public', y: ${unPublishedPublicStudyCount}, color: '#bbc695' },
73                                                        { name: 'Published Private', y: ${publishedPrivateStudyCount}, color: '#AA4643' },
74                                                        { name: 'Unpublished Private', y: ${unPublishedPrivateStudyCount}, color: '#ae6e6c' }
75                                                ],
76                                                dataLabels: {
77                                                        enabled: false
78                                                }
79                                        }
80                                        <sec:ifLoggedIn>
81                                        ,
82                                        {
83                                                type: 'pie',
84                                                name: 'Total statistics',
85
86                                                innerSize: '45%',
87                                                data: [
88                                                        { name: 'Read only', y: ${readOnlyStudyCount}, color: '#80699B' },
89                                                        { name: 'Readable & writable', y: ${readWriteStudyCount}, color: '#89A54E' },
90                                                        { name: 'Not accessible', y: ${noAccessStudyCount}, color: '#AA4643' }
91                                                ],
92                                                dataLabels: {
93                                                        enabled: true
94                                                }
95                                        },
96                                        </sec:ifLoggedIn>
97                                ]
98                        });
99
100                        <g:if test="${startDate && dailyStatistics?.size()}">
101                        dailyStatistics = new Highcharts.Chart({
102                                chart: {
103                                        renderTo: 'daily-statistics',
104                                        zoomType: 'x',
105                                        spacingRight: 20
106                                },
107                                title: {
108                                        text: 'Users, studies and templates'
109                                },
110                                subtitle: {
111                                        text: document.ontouchstart === undefined ?
112                                                'Click and drag in the plot area to zoom in' :
113                                                'Drag your finger over the plot to zoom in'
114                                },
115                                xAxis: {
116                                        type: 'datetime',
117                                        maxZoom: 14 * 24 * 3600000, // fourteen days
118                                        title: {
119                                                text: null
120                                        }
121                                },
122                                yAxis: {
123                                        title: {
124                                                text: 'Total'
125                                        },
126                                        min: 0,
127                                        startOnTick: false,
128                                        showFirstLabel: false
129                                },
130                                tooltip: {
131                                        shared: true
132                                },
133                                legend: {
134                                        enabled: false
135                                },
136                                plotOptions: {
137                                        area: {
138
139                                                lineWidth: 1,
140                                                marker: {
141                                                        enabled: false,
142                                                        states: {
143                                                                hover: {
144                                                                        enabled: true,
145                                                                        radius: 5
146                                                                }
147                                                        }
148                                                },
149                                                shadow: false,
150                                                states: {
151                                                        hover: {
152                                                                lineWidth: 1
153                                                        }
154                                                }
155                                        }
156                                },
157
158                                series: [
159                                        {
160                                                type: 'area',
161                                                name: 'Studies',
162                                                pointInterval: 24 * 3600 * 1000,
163                                                pointStart: Date.UTC(${startDate.year+1900}, ${startDate.month}, ${startDate.date}),
164                                                data: [
165                                                        <g:each var="day" in="${dailyStatistics}">${day.value.studyTotal},</g:each>
166                                                ]
167                                        },
168                                        {
169                                                type: 'area',
170                                                name: 'Templates',
171                                                pointInterval: 24 * 3600 * 1000,
172                                                pointStart: Date.UTC(${startDate.year+1900}, ${startDate.month}, ${startDate.date}),
173                                                data: [
174                                                        <g:each var="day" in="${dailyStatistics}">${day.value.templateTotal},</g:each>
175                                                ]
176                                        },
177                                        {
178                                                type: 'area',
179                                                name: 'Users',
180                                                pointInterval: 24 * 3600 * 1000,
181                                                pointStart: Date.UTC(${startDate.year+1900}, ${startDate.month}, ${startDate.date}),
182                                                data: [
183                                                        <g:each var="day" in="${dailyStatistics}">${day.value.userTotal},</g:each>
184                                                ]
185                                        }
186                                ]
187                        });
188                        </g:if>
189</g:if>
190                        $("#search_term").autocomplete({
191                                source: function(request, response) {
192                                        $.ajax({
193                                                //url: "http://ws.geonames.org/searchJSON",
194                                                url: "${createLink(action:'ajaxQuickSearch')}",
195                                                dataType: "jsonp",
196                                                data: {
197                                                        featureClass: "P",
198                                                        style: "full",
199                                                        maxRows: 12,
200                                                        name_startsWith: request.term
201                                                },
202                                                success: function(data) {
203                                                        response($.map(data.data, function(item) {
204                                                                return {
205                                                                        label           : '<span class="about">'+item.category+'</div> <span class="from">'+item.name+'</span>',
206                                                                        value           : item.link
207                                                                }
208                                                        }));
209                                                }
210                                        });
211                                },
212                                minLength: 2,
213                                select: function(event, ui) {
214                                        // redirect
215                                        window.location = ui.item.value;
216                                },
217                                open: function() {
218                                        $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
219                                },
220                                close: function() {
221                                        $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
222                                },
223                                html: true
224                        });
225                });
226        </script>
227        <style type="text/css">
228        #simpleQuery {
229        }
230
231        #simpleQuery .search {
232                display: block;
233                height: 30px;
234                margin-bottom: 10px;
235                zoom: 1; /* IE 6 & 7 hack */
236                *display: inline; /* IE 6 & 7 hack */
237        }
238
239        #simpleQuery .search .begin {
240                margin: 0px;
241                padding: 0px;
242                display: inline-block;
243                background-image: url(${resource(dir: 'images', file: 'simpleQuery/spotlight-begin.png')});
244                height: 30px;
245                width: 140px;
246                vertical-align: top;
247                text-align: right;
248                zoom: 1; /* IE 6 & 7 hack */
249                *display: inline; /* IE 6 & 7 hack */
250        }
251
252        #simpleQuery .search .begin .label {
253                color: #fff;
254                font-face: Arial;
255                line-height: 30px;
256                text-shadow: 0px 0px 1px #006DBA;
257                font-size: 12px;
258                margin-right: 23px;
259        }
260
261        #simpleQuery .search .middle {
262                margin: 0px 0px -20px 0px;
263                padding: 0;
264                display: inline-block;
265                background-image: url(${resource(dir: 'images', file: 'simpleQuery/spotlight-middle.png')});
266                height: 30px;
267                width: 300px;
268                vertical-align: top;
269                zoom: 1; /* IE 6 & 7 hack */
270                *display: inline; /* IE 6 & 7 hack */
271        }
272
273        #simpleQuery .search .searchfield {
274                vertical-align: middle;
275                width: 100%;
276                height: 100%;
277                color: #006DBA;
278                border-width: 0px;
279                border: none;
280                background-color: Transparent;
281                zoom: 1; /* IE 6 & 7 hack */
282                *display: inline; /* IE 6 & 7 hack */
283        }
284
285        #simpleQuery .search .end {
286                margin: 0px;
287                padding: 0px;
288                display: inline-block;
289                background-image: url(${resource(dir: 'images', file: 'simpleQuery/spotlight-end.png')});
290                height: 30px;
291                width: 28px;
292                zoom: 1; /* IE 6 & 7 hack */
293                *display: inline; /* IE 6 & 7 hack */
294        }
295
296        </style>
297</head>
298<body>
299
300<div style="clear:both;display:block;">
301        <div style="margin:2px;width:476px;display:inline-block;float:left;zoom:1;*display:inline;">
302                <h1>Lorem ipsum 1</h1>
303                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut tincidunt auctor suscipit. Nam ultricies condimentum pulvinar. In magna orci, eleifend sit amet tincidunt eget, ultricies a justo. Vestibulum purus lorem, laoreet sit amet rutrum et, sollicitudin eget augue. Nulla consequat, mauris eget ornare fringilla, arcu enim mattis odio, rhoncus rutrum ante turpis vitae nulla. Sed et turpis vel urna venenatis sagittis. Sed sagittis vestibulum felis, vel ultricies tellus dictum ac. Nunc non massa et ligula gravida rutrum. Fusce porttitor, eros ac dictum suscipit, risus lacus aliquam justo, ut lobortis erat nulla sit amet risus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse fermentum ultricies ipsum, at consequat elit pharetra auctor.
304        </div>
305        <div style="margin:2px;width:476px;display:inline-block;float:left;zoom:1;*display:inline;">
306                <h1>Quicksearch</h1>
307                <div id="simpleQuery" class="simplequery">
308                <g:form action="pages" name="simpleQueryForm" id="simpleQueryForm">
309                        <g:if test="${search_term}"><g:set var="preterm" value="${search_term}"/></g:if>
310                        <div class="searchContainer">
311                                <div class="search">
312                                        <div class="begin"><span class="label">Search term</span></div><div class="middle"><g:textField name="search_term" id="search_term" class="searchfield" value="${preterm}"/></div><div class="end"><a onClick="$('#search_term').val('');"><img src="${resource(dir: 'images', file: 'simpleQuery/spotlight-end.png')}" value="Reset" alt="Reset" border="0"></a></div>
313                                </div>
314                        </div>
315                        </g:form>
316                        <h1>Lorem ipsum 2</h1>
317                        Vivamus varius ullamcorper neque, sit amet mollis lacus accumsan vel. Pellentesque in augue a arcu pretium egestas vel at elit. Duis nunc odio, mollis et faucibus vel, aliquam vel quam. Sed laoreet pharetra urna, venenatis porttitor neque sagittis et. Aenean at nisl nunc, in mattis mauris. Proin iaculis nunc in erat rhoncus consectetur. Nullam sit amet risus vitae eros condimentum pellentesque. Vestibulum sollicitudin turpis id felis viverra a bibendum magna varius. Ut tristique pellentesque convallis. Maecenas id sollicitudin lacus.
318                </div>
319        </div>
320</div>
321
322<g:if test="${showstats}">
323<div style="clear:both;display:block;padding-top:10px;">
324        <h1>Usage Statistics</h1>
325        <div id="graphs" style="display:block;border:1px solid #6c6f70;width:100%;height:300px;">
326                <div id="studies-pie" style="margin:2px;width:476px;height:296px;display:inline-block;float:left;zoom:1;*display:inline;"></div>
327                <div id="daily-statistics" style="margin:2px;width:476px;height:296px;display:inline-block;float:left;zoom:1;*display:inline;"></div>
328        </div>
329</div>
330</g:if>
331
332</body>
333</html>
Note: See TracBrowser for help on using the repository browser.