<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.limesurvey.org/index.php?action=history&amp;feed=atom&amp;title=GSOC09_dashboard_project</id>
	<title>GSOC09 dashboard project - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.limesurvey.org/index.php?action=history&amp;feed=atom&amp;title=GSOC09_dashboard_project"/>
	<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=GSOC09_dashboard_project&amp;action=history"/>
	<updated>2026-08-17T11:00:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=GSOC09_dashboard_project&amp;diff=31903&amp;oldid=prev</id>
		<title>C schmitz: Text replace - &quot;Limesurvey&quot; to &quot;LimeSurvey&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=GSOC09_dashboard_project&amp;diff=31903&amp;oldid=prev"/>
		<updated>2013-06-06T13:16:09Z</updated>

		<summary type="html">&lt;p&gt;Text replace - &amp;quot;Limesurvey&amp;quot; to &amp;quot;LimeSurvey&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:16, 6 June 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-=Widgets for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Limesurvey &lt;/del&gt;2!=-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-=Widgets for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LimeSurvey &lt;/ins&gt;2!=-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{cookie}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{cookie}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key c1manual-lsmw_:diff:1.41:old-1434:rev-31903:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>C schmitz</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=GSOC09_dashboard_project&amp;diff=1434&amp;oldid=prev</id>
		<title>Macduy at 11:50, 25 May 2009</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=GSOC09_dashboard_project&amp;diff=1434&amp;oldid=prev"/>
		<updated>2009-05-25T11:50:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;&amp;lt;center&amp;gt;img/wiki_up/ls2_dashboard_ui.jpg &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aim of the project is to create a widget-based customisable dashboard for LimeSurvey2 administrators, allowing them to get an overview of any information inside LimeSurvey2. The widgets, from which the dashboard is constructed from, will be customizable, interactive, reusable and have a consistent design.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-=Widgets for Limesurvey 2!=-&lt;br /&gt;
&lt;br /&gt;
{cookie}&lt;br /&gt;
&lt;br /&gt;
= Implementation Ideas=&lt;br /&gt;
&lt;br /&gt;
== Paradigms==&lt;br /&gt;
&lt;br /&gt;
The widget UI will be based on the following paradigms:&lt;br /&gt;
*Display information concisely and cleanly&lt;br /&gt;
*Dynamic content - allow sorting of tables, display extra information in mouse tooltips etc.&lt;br /&gt;
*Multi-content capable, i.e. be able to switch between related content within one widget, using AJAX (see below)&lt;br /&gt;
*Minimal &amp;quot;chrome&amp;quot;: each widget has a title, control box, a first-level navigation, second-level navigation and optionally a third-level *navigation, giving the user a powerful ways to navigate information without too much interface clutter (see mockup).&lt;br /&gt;
*remember which information it has been displaying last time&lt;br /&gt;
*work uniformly in major browsers (IE6+, FF2+, Safari 3+, Chrome, Opera 9+)&lt;br /&gt;
&lt;br /&gt;
== Implementation notes==&lt;br /&gt;
&lt;br /&gt;
Some ideas and notes about the implementation:&lt;br /&gt;
*In the MVC pattern, the Widget will be a Model, with a View implementation that display different modes of the widgets (not different views!), i.e. most likely the settings mode and the display mode. This basic view will also draw the chrome. Each widget will thus be built using this Base View.&lt;br /&gt;
*Each specific widget then subclasses the base Widget model, specifying the navigation links and other widget-specific options&lt;br /&gt;
*Each of these links then displays content that corresponds to a LimeSurvey View, e.g. &amp;quot;display all surveys&amp;quot; View etc. Access is automatically controlled by the ACL. By clicking these links, the widget will request them using AJAX.&lt;br /&gt;
*Content, that will be displayed by the widget might need certain pre-processing, hence WidgetAdapters will be created to &amp;quot;mash&amp;quot; retrieved information from a View into widget-friendly format. (Alternatively, each Model could provide certain Views specially designed for display in widgets)&lt;br /&gt;
*The widget provides interface to interact with information, e.g. filter them or display extra information on demand. WidgetAdapters here will act the other way, converting these actions into URL requests and processing the result.&lt;br /&gt;
&lt;br /&gt;
=NAU Diagram (Not A UML Diagram)=&lt;br /&gt;
&lt;br /&gt;
[[File:Dashboard.png]]&lt;br /&gt;
&lt;br /&gt;
=Implementation Description=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; Despite the diagram above, implementation details are likely to change during the development stage.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==Widget Base Class==&lt;br /&gt;
&lt;br /&gt;
Widget base class is the Model-View-Controller trio, that implements the widget behaviour and data storage. Two tables will be created: &amp;#039;&amp;#039;&amp;#039;Widgets&amp;#039;&amp;#039;&amp;#039; for keeping track of individual widgets existing inside the system and &amp;#039;&amp;#039;&amp;#039;WidgetTypes&amp;#039;&amp;#039;&amp;#039; the different widget types available in the system.&lt;br /&gt;
&lt;br /&gt;
==Dashboard Class==&lt;br /&gt;
&lt;br /&gt;
Dashboard acts as a container for the widgets, retrieving and managing them.&lt;br /&gt;
&lt;br /&gt;
=Action Plan=&lt;br /&gt;
&lt;br /&gt;
== Outline==&lt;br /&gt;
&lt;br /&gt;
Main deliverables:&lt;br /&gt;
*Context-free dashboard (do not depend on the current page - admin&amp;#039;s dashboard)&lt;br /&gt;
*Context-sensitive dashboard (widget display depends on the current view)&lt;br /&gt;
*Implement widgets for administration and survey management&lt;br /&gt;
*Integration with other modules (e.g. statistics)&lt;br /&gt;
*External dashboard, for placing widgets outside LimeSurvey&lt;br /&gt;
&lt;br /&gt;
== Milestones==&lt;br /&gt;
&lt;br /&gt;
More detailed plan for coding. More coding will be done during in the second half of GSOC, due to study constraints in the first half.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039; (approx) || &amp;#039;&amp;#039;&amp;#039;Milestone&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|31th May||Complete a basic skeleton framework loading dashboards and widgets&lt;br /&gt;
|-&lt;br /&gt;
|7th June||Implement few basic widgets, as replacement for the current Admin page&lt;br /&gt;
|-&lt;br /&gt;
|14th June||Context-sensitive dashboard&lt;br /&gt;
|-&lt;br /&gt;
|21th June||Skinning, cross-browser&lt;br /&gt;
|-&lt;br /&gt;
|28th June||**EXAMS**&lt;br /&gt;
|-&lt;br /&gt;
|5th July||Implementing widgets, wrap up scripts and code for presentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039; (approx) || &amp;#039;&amp;#039;&amp;#039;Milestone&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|12th July||Implementing widgets&lt;br /&gt;
|-&lt;br /&gt;
|19th July||Widget &amp;#039;back-side&amp;#039;: widget and dashboard options, customization; External Dashboard&lt;br /&gt;
|-&lt;br /&gt;
|26th July||Develop External dashboards and widgets&lt;br /&gt;
|-&lt;br /&gt;
|2th August||Integration with other modules (Statistics)&lt;br /&gt;
|-&lt;br /&gt;
|9th August||Integration/doing the odd bits :)&lt;br /&gt;
|-&lt;br /&gt;
|16th August|| Wrap up&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testing and documentation will be done throughout the development.&lt;br /&gt;
&lt;br /&gt;
==Development Log==&lt;br /&gt;
&lt;br /&gt;
News and updates on development of this feature are recorded on [[GSOC Dashboard Project Development Log]]. Production timeline is logged on [https://www.ohloh.net/accounts/macduy/messages/timeline ohloh]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://socghop.appspot.com/student_proposal/show/google/gsoc2009/macduy/t123850575163 Original proposal]&lt;br /&gt;
*[http://micron.me.uk/test/ls2_widgets/index.html First (Basic) Prototype]&lt;/div&gt;</summary>
		<author><name>Macduy</name></author>
	</entry>
</feed>