Commit cfc42d5bd36cb21122457b0ae51550815576d191

Authored by Tássia Camões Araújo
1 parent b6c00f52
Exists in master and in 1 other branch add_vagrant

Web interface cleaning/fixing for AppRecommender server and survey.

src/web/static/css/apprec.css
  1 +#upload-slide {
  2 +display: block;
  3 +position: absolute;
  4 +top: 0px;
  5 +left: 0px;
  6 +padding: 0px;
  7 +}
1 8  
2   -/*
3   - * Result Recommendation
4   - */
  9 +#header,
  10 +#recommender-box {
  11 +height: 40px;
  12 +}
  13 +
  14 +#submit-button {
  15 +height: 42px;
  16 +}
  17 +
  18 +#tip-upload {
  19 +top: 40px;
  20 +width: 420px;
  21 +}
  22 +
  23 +#wrap {
  24 +max-width: 780px;
  25 +}
  26 +
  27 +body.apprec #wrap {
  28 +padding-top: 20px;
  29 +}
  30 +
  31 +
  32 +#recommender-box #upfile,
  33 +#advanced-button,
  34 +#pkgs_list {
  35 +display: none;
  36 +}
5 37  
6 38 #result-thumbnail .item {
7 39 display: block;
... ... @@ -11,6 +43,7 @@ overflow: hidden;
11 43 float: left;
12 44 text-align: center;
13 45 border-radius: 5px;
  46 +margin-left: 30px;
14 47 }
15 48  
16 49 #result-thumbnail .item:hover {
... ... @@ -25,7 +58,6 @@ color: gray;
25 58  
26 59  
27 60 a.link-thumb img {
28   -height: 100px;
29 61 margin: 5px;
30 62 border-radius: 4px;
31 63 box-shadow: 0 1px 2px gray;
... ... @@ -83,6 +115,7 @@ cursor: pointer;
83 115 #debresources_box {
84 116 float: left;
85 117 margin-top: 20px;
  118 +padding: 10px;
86 119 }
87 120  
88 121 #debresources_box li {
... ...
src/web/static/css/facebox.css
... ... @@ -20,8 +20,8 @@
20 20  
21 21 #facebox .content {
22 22 display:table;
23   - width: 370px;
24   - padding: 10px;
  23 + width: 650px;
  24 + padding: 20px;
25 25 background: #fff;
26 26 -webkit-border-radius:4px;
27 27 -moz-border-radius:4px;
... ...
src/web/static/css/style.css
... ... @@ -151,7 +151,7 @@ float: right;
151 151 }
152 152  
153 153 .innertube {
154   -margin: 15px;
  154 +margin: 30px;
155 155 }
156 156  
157 157 #footer {
... ... @@ -294,7 +294,8 @@ background-image: url('../images/admon-note.png');
294 294  
295 295 /* Recommender BOX */
296 296  
297   -#recommender-box {
  297 +#recommender-box {
  298 +height: 43px;
298 299 position: relative;
299 300 margin:0;
300 301 vertical-align: top;
... ... @@ -325,8 +326,9 @@ z-index: 1;
325 326 }
326 327  
327 328 #pkgs_list, #input-box {
  329 +padding:10px;
328 330 position: relative;
329   -width: 400px;
  331 +width: auto;
330 332 }
331 333  
332 334 #pkgs_list {
... ...
src/web/static/css/survey.css
... ... @@ -67,7 +67,7 @@ min-height: 200px;
67 67  
68 68 body.survey #wrap {
69 69 padding-top: 0px;
70   -min-height: 200px;
  70 +min-height: 400px;
71 71 position: relative;
72 72 }
73 73  
... ...
src/web/static/images/apprec.png 0 → 100644

57.4 KB

src/web/static/images/diaappr.png

44.3 KB

src/web/templates/about.html
1 1 $var title: About
  2 +$var url_base: /
2 3 $var mod = 'about';
  4 +$var action: RECOMMENDATION
3 5 $var cssfiles: static/css/facebox.css
4 6 $var jsfiles: static/js/facebox.js
5 7  
... ... @@ -15,29 +17,24 @@ $var jsfiles: static/js/facebox.js
15 17 <div id="maincontent">
16 18 <div class="innertube">
17 19  
18   -<h1>AppRecommender Survey</h1>
  20 +<h1>AppRecommender</h1>
19 21 <h2>About</h2>
20 22  
21   -<p align="justify">This experiment aims to compare and validate automated application
22   -recommendations produced by different strategies and algorithms tuning. We
23   -believe that real users evaluation regarding the relevance of recommendations is
24   -the most accurate data source for computing recommender system effectiveness.</p>
25   -<br/>
  23 +<p align="justify"><a href="http://github.com/tassia/AppRecommender">AppRecommender</a>
  24 +is a free recommender system for GNU/Linux applications developed as part of a
  25 +Master's project. It was initially developed using the Debian Project
  26 +infrasctructure, but the solution is essentially distro-independent and can
  27 +be adapted to other environments given that there is available data sources for
  28 +computing recommendations.</p>
26 29  
27   -<p align="justify">The engine that is being tested is a free software called <a
28   -href="http://github.com/tassia/AppRecommender">AppRecommender</a>. It was
29   -initially developed using the Debian Project infrasctructure, but the solution
30   -is essentially distro-independent and can even be adapted to non GNU/Linux
31   -systems given that there is available data for that.</p>
32   -
33   -<a rel="facebox" href="static/images/diaappr.png" title="AppRecommender Diagram">
  30 +<a rel="facebox" href="static/images/apprec.png" title="AppRecommender Diagram">
34 31 <img style="float: right; margin: 10px;" alt="AppRecommender dataflow"
35   -src="static/images/diaappr.png" width="230px" /></a>
  32 +src="static/images/apprec.png" width="230px" /></a>
36 33 <br />
37 34  
38 35 <p align="justify">The picture on the right gives an idea of the data workflow
39   -for AppRecommender. The user provides a set of applications installed in his
40   -system and the recommender suggests a set of programs that he might also
  36 +for AppRecommender. The user provides a set of applications installed in her/his
  37 +system and the recommender suggests a set of programs that she/he might also
41 38 be interested in, based on the profile deduced from the his previous choices
42 39 and other similar users choices. The recommendations are composed using
43 40 classification and information retrieval techniques using
... ...
src/web/templates/about_survey.html 0 → 100755
... ... @@ -0,0 +1,52 @@
  1 +$var title: About
  2 +$var url_base: /survey/
  3 +$var action: START
  4 +$var mod = 'about';
  5 +$var cssfiles: static/css/facebox.css
  6 +$var jsfiles: static/js/facebox.js
  7 +
  8 +<script type="text/javascript">
  9 + $$(document).ready(function() {
  10 + $$('a[rel*=facebox]').facebox({
  11 + loadingImage : 'static/images/loading.gif',
  12 + closeImage : 'static/images/closelabel.png'
  13 + });
  14 + });
  15 +</script>
  16 +
  17 +<div id="maincontent">
  18 +<div class="innertube">
  19 +
  20 +<h1>AppRecommender Survey</h1>
  21 +<h2>About</h2>
  22 +
  23 +<p align="justify">This experiment aims to compare and validate automated application
  24 +recommendations produced by different strategies and algorithms tuning. We
  25 +believe that real users evaluation regarding the relevance of recommendations is
  26 +the most accurate data source for computing recommender system effectiveness.</p>
  27 +<br/>
  28 +
  29 +<p align="justify">The engine that is being tested is a free software called <a
  30 +href="http://github.com/tassia/AppRecommender">AppRecommender</a>. It was
  31 +initially developed using the Debian Project infrasctructure, but the solution
  32 +is essentially distro-independent and can even be adapted to non GNU/Linux
  33 +systems given that there is available data for that.</p>
  34 +
  35 +<a rel="facebox" href="static/images/apprec.png" title="AppRecommender Diagram">
  36 +<img style="float: right; margin: 10px;" alt="AppRecommender dataflow"
  37 +src="static/images/apprec.png" width="230px" /></a>
  38 +<br />
  39 +
  40 +<p align="justify">The picture on the right gives an idea of the data workflow
  41 +for AppRecommender. The user provides a set of applications installed in his
  42 +system and the recommender suggests a set of programs that he might also
  43 +be interested in, based on the profile deduced from the his previous choices
  44 +and other similar users choices. The recommendations are composed using
  45 +classification and information retrieval techniques using
  46 +<a href="http://wiki.debian.org/Debtags">debtags</a>,
  47 +<a href="http://www.enricozini.org/sw/apt-xapian-index/">apt-xapian-index</a>,
  48 +<a href="http://popcon.debian.org/">Popcon</a> and <a
  49 +href="http://udd.debian.org/">UDD</a> as data sources.</p>
  50 +
  51 +</div><!-- id="innertube" -->
  52 +</div><!-- id="maincontent" -->
... ...
src/web/templates/apprec.html
1   -$def with (recommends, pkg_summaries, request)
2   -$var title: Feedback
3   -$var mod = 'feedback';
4   -$var cssfiles: static/css/apprec.css static/css/facebox.css static/css/voting.css
  1 +$def with (pkgs_details)
  2 +$var title: AppRecommender
  3 +$var url_base: /
  4 +$var action: RECOMMENDATION
  5 +$var mod = 'apprec';
  6 +$var cssfiles: static/css/apprec.css static/css/facebox.css static/css/voting.css static/css/survey.css
5 7 $var jsfiles: static/js/facebox.js
6 8  
7 9 <script type="application/x-javascript">
... ... @@ -41,44 +43,26 @@ $$(document).ready(function() {
41 43 });
42 44 </script>
43 45  
44   -<div id="sidebar">
45   -<div class="innertube">
46   -
47   -<div id="details_box" class="graybox align-left vert-grad">
48   -<h2>Recommendation strategy details</h2>
49   - <ul class="toc">
50   - $for key, value in request.get_details().items():
51   -
52   - <li><b>$key:</b> $value</li>
53   -
54   -</div>
55   -
56   -</div><!-- class="innertube" -->
57   -<br style="clear: both">
58   -</div><!-- id="sidebar" -->
59   -
60 46 <div id="maincontent">
61 47 <div class="innertube">
62 48  
63   -<h1>Recomendation</h1>
  49 +<center>
  50 +<h1>Recommended applications</h1>
  51 +</center>
64 52  
65 53 <form action="thanks" method="post" enctype="multipart/form-data">
66 54  
67 55 <div id="result-thumbnail">
68   -$for strategy, result in recommends.items():
69   - <!--<h2><a name="$strategy" id="$strategy">$strategy</a></h2>-->
70   - $ count = 0
71   - $for pkg in result:
72   - $ count = count + 1
  56 +$for pkg in pkgs_details:
73 57 <div class="item">
74   - <h3><a href="package/$pkg" rel="facebox" title="General information for package $pkg">$pkg</a></h3>
75   - <a class="link-thumb" rel="facebox" href="http://screenshots.debian.net/screenshot/$pkg?.jpg" title="Screenshot of package $pkg">
76   - <img src="http://screenshots.debian.net/thumbnail/$pkg" alt="Screenshot $pkg" />
  58 + <h3><a href="package/$pkg.name" rel="facebox" class="thickbox" title="General information for package $pkg.name">$pkg.name</a></h3>
  59 + <a class="link-thumb" rel="facebox"
  60 + href="http://screenshots.debian.net/screenshot/$pkg.name?.jpg" title="Screenshot of package $pkg.name"
  61 + alt="Click to enlarge screenshot">
  62 + <img src="http://screenshots.debian.net/thumbnail/$pkg.name" alt="Screenshot $pkg.name" />
77 63 </a>
78   - <p class="thumb-caption"><a href="package/$pkg" rel="facebox" title="General information for package $pkg"> $pkg_summaries[pkg] </a></p>
  64 + <p class="thumb-caption">$pkg.summary</p>
79 65 </div>
80   - $if count == 5:
81   - $ count = 0
82 66  
83 67 </div><!-- id="result-thumbnail" -->
84 68 </form>
... ...
src/web/templates/error.html
1   -$def with (error_msgs)
  1 +$def with (error_msgs,url_base,action)
2 2 $var title: Error
  3 +$var url_base: $url_base
  4 +$var action: $action
3 5 $var mod = 'error';
4 6 $var cssfiles: static/css/facebox.css static/css/facebox.css static/css/survey.css
5 7 $var jsfiles: static/js/facebox.js
... ... @@ -10,21 +12,20 @@ $var jsfiles: static/js/facebox.js
10 12  
11 13  
12 14 <div class="index_include">
13   -<center>
14   - <h1>Welcome to AppRecommender</h1>
15   -</center>
  15 +
  16 +<h1>AppRecommender</h1>
  17 +<h2>Unexpected error</h2>
16 18  
17 19 Your request could not be proccessed due to the following error(s):
18 20  
19   -<div class="warning">
20 21 <p><ul>
21 22 $for e in error_msgs:
22 23 <b><li>$e</li></b>
23 24 </ul></p>
24   -</div>
25 25  
26   -<p><a href="/">Go back</a> and try again. If you believe it is a bug, please report to <a
27   -href="mailto:tassia@gamil.com">tassia@gmail.com</a>.</p>
  26 +<br />
  27 +<p>If you believe it is a bug, please report this error along with the uploaded file to <a
  28 +href="mailto:tassia@ime.usp.br">tassia@ime.usp.br</a>.</p>
28 29  
29 30 </div>
30 31  
... ...
src/web/templates/error_survey.html
... ... @@ -1,20 +0,0 @@
1   -$var title: Error
2   -$var mod = 'error';
3   -$var cssfiles: static/css/facebox.css static/css/facebox.css static/css/survey.css
4   -$var jsfiles: static/js/facebox.js
5   -
6   -
7   -<div id="maincontent">
8   -<div class="innertube">
9   -
10   -<center>
11   -<div class="index_include">
12   - <h1>AppRecommender Survey</h1>
13   -<p>Unfortunately your request could not be proccessed.</p>
14   -<p>Please report this error along with the submitted <br />file to <a href="mailto:tassia@gamil.com">tassia@gmail.com</a>.</p>
15   -</center>
16   -
17   -</div>
18   -
19   -</div><!-- id="innertube" -->
20   -</div><!-- id="maincontent" -->
src/web/templates/fake.html 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +$var title: Home
  2 +$var mod = 'index';
  3 +<p>Fixing bugs...</p>
... ...
src/web/templates/index.html
1 1 $var title: Home
  2 +$var url_base: /
  3 +$var action: RECOMMENDATION
2 4 $var mod = 'index';
3   -$var cssfiles: static/css/tabs.css static/css/debtags.css static/css/facebox.css
  5 +$var cssfiles: static/css/tabs.css static/css/debtags.css static/css/facebox.css static/css/apprec.css
4 6 $var jsfiles: static/js/facebox.js
5 7  
6 8  
... ... @@ -604,9 +606,40 @@ function showtags(tagid) {
604 606  
605 607 </div><!-- id="box-three" -->
606 608  
  609 + <div id="tab-one" class="tabs">
  610 +
  611 +<h2>Most popular (<a href="#">all</a>)</h2>
  612 + <ul>
  613 + <li><a href="#">app...1</a></li>
  614 + <li><a href="#">app...2</a></li>
  615 + <li><a href="#">app...3</a></li>
  616 + <li><a href="#">app...4</a></li>
  617 + <li><a href="#">app...5</a></li>
  618 + </ul>
  619 +
  620 +<h2>Most voted (<a href="#">all</a>)</h2>
  621 + <ul>
  622 + <li><a href="#">app...1</a></li>
  623 + <li><a href="#">app...2</a></li>
  624 + <li><a href="#">app...3</a></li>
  625 + <li><a href="#">app...4</a></li>
  626 + <li><a href="#">app...5</a></li>
  627 + </ul>
  628 +
  629 +<h2>Most searched (<a href="#">all</a>)</h2>
  630 + <ul>
  631 + <li><a href="#">app...1</a></li>
  632 + <li><a href="#">app...2</a></li>
  633 + <li><a href="#">app...3</a></li>
  634 + <li><a href="#">app...4</a></li>
  635 + <li><a href="#">app...5</a></li>
  636 + </ul>
  637 +
  638 + </div> <!-- id="tab-one" -->
  639 +
607 640 <div id="tab-two" class="tabs">
608 641  
609   -<h2>Atualizados recentemente</h2>
  642 +<h2>Recently updated</h2>
610 643 <ul>
611 644 <li><a href="#">Recents...1</a></li>
612 645 <li><a href="#">Recents...2</a></li>
... ... @@ -622,40 +655,6 @@ function showtags(tagid) {
622 655  
623 656 </div><!-- id="box-two" -->
624 657  
625   - <div id="tab-one" class="tabs">
626   -
627   -<h2>Os mais usados</h2>
628   - <ul>
629   - <li><a href="#">Lista...1</a></li>
630   - <li><a href="#">Lista...2</a></li>
631   - <li><a href="#">Lista...3</a></li>
632   - <li><a href="#">Lista...4</a></li>
633   - <li><a href="#">Lista...5</a></li>
634   - </ul>
635   - <a href="#">Listar todos nessa ordem</a>
636   -
637   -<h2>Os mais votados</h2>
638   - <ul>
639   - <li><a href="#">Lista...</a></li>
640   - <li><a href="#">Lista...</a></li>
641   - <li><a href="#">Lista...</a></li>
642   - <li><a href="#">Lista...</a></li>
643   - <li><a href="#">Lista...</a></li>
644   - </ul>
645   - <a href="#">Listar todos nessa ordem</a>
646   -
647   -<h2>Os mais pesquisados</h2>
648   - <ul>
649   - <li><a href="#">Lista...</a></li>
650   - <li><a href="#">Lista...</a></li>
651   - <li><a href="#">Lista...</a></li>
652   - <li><a href="#">Lista...</a></li>
653   - <li><a href="#">Lista...</a></li>
654   - </ul>
655   - <a href="#">Listar todos nessa ordem</a>
656   -
657   - </div> <!-- id="tab-one" -->
658   -
659 658 </div><!-- id="tab-wrap" -->
660 659 </div><!-- id="tab-area" -->
661 660  
... ... @@ -667,13 +666,19 @@ function showtags(tagid) {
667 666 <div class="innertube">
668 667  
669 668 <div class="textbox">
670   -<h1>You might also like...</h1>
671   -
672   -<p>Provide a popcon submission's file and you'll get
673   -a list of suggested packages automatically computed by AppRecommender.
674   -</p>
  669 +<h1>AppRecommender</h1>
  670 +<h2>You might also like...</h2>
675 671  
676   -<p>This is a tentative web interface for the recommender, if you have any suggestion about it, please get in touch.</p>
  672 +<p align="justify"> Provide the list of packages installed in your
  673 +system and a set of applications will be suggested for you.
  674 +</p><br />
  675 +<p align="justify">Upload a popularity-contest submission file
  676 +(usually located at '/var/log/popularity-contest') or run the
  677 +following command and upload the generated 'packages.list' file.<br />
  678 +<code> # dpkg-query --show > packages.list </code>
  679 +</p><br />
  680 +<p>This is a tentative web interface for AppRecommender, if you have any
  681 +suggestion about it, please get in touch!</p>
677 682  
678 683 </div>
679 684  
... ...
src/web/templates/index_survey.html 0 → 100755
... ... @@ -0,0 +1,36 @@
  1 +$var title: Survey
  2 +$var url_base: /survey/
  3 +$var action: START
  4 +$var mod = 'index';
  5 +$var cssfiles: static/css/survey.css
  6 +$var jsfiles:
  7 +
  8 +<!-- Dynamic form -->
  9 +<script type="application/x-javascript">
  10 +window.onload = function() {
  11 + setupDependencies('weboptions'); //name of form(s). Seperate each with a comma (ie: 'weboptions', 'myotherform' )
  12 + };
  13 +</script>
  14 +
  15 +<div id="maincontent">
  16 +<div class="innertube">
  17 +
  18 +<div class="textbox">
  19 +<h1>AppRecommender Survey</h1>
  20 +<h2>Help us learn your needs</h2>
  21 +
  22 +<p>Participate in this survey and contribute for the development of
  23 +<a href="http://github.com/tassia/AppRecommender">AppRecommender</a>,
  24 +a recommender system for GNU/Linux applications.</p><br />
  25 + <p align="justify"> Given a list of packages installed in a real
  26 + running system and a set of applications will be suggested for it.
  27 + Upload a popularity-contest submission file (usually located at
  28 + '/var/log/popularity-contest') or run the following command and
  29 + upload the generated 'packages.list' file.</p><br />
  30 + <p><code> # dpkg-query --show > packages.list </code></p>
  31 +</div>
  32 +
  33 +</div><!-- class="innertube" -->
  34 +</div><!-- id="maincontent" -->
  35 +
  36 +
... ...
src/web/templates/layout.html
1 1 $def with (content)
2   -$ url_base = "/"
  2 +$ url_base = "/survey/"
3 3 <!--Force IE6 into quirks mode with this comment tag-->
4 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5 5 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
... ... @@ -8,16 +8,16 @@ $ url_base = &quot;/&quot;
8 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9 9 <title>AppRecommender - $content.title</title>
10 10 <link rev="made" href="mailto:tassia@gmail.com" />
11   - <link rel="shortcut icon" href="$(url_base)static/favicon.ico" />
  11 + <link rel="shortcut icon" href="$(content.url_base)static/favicon.ico" />
12 12  
13   - <link href="$(url_base)static/css/style.css" rel="stylesheet" type="text/css" media="screen" charset="utf-8" />
  13 + <link href="$(content.url_base)static/css/style.css" rel="stylesheet" type="text/css" media="screen" charset="utf-8" />
14 14  
15 15 $if content.has_key('cssfiles'):
16 16 $for css in content.cssfiles.split():
17   - <link href="$(url_base)$css" rel="stylesheet" type="text/css" media="screen" charset="utf-8" />
  17 + <link href="$(content.url_base)$css" rel="stylesheet" type="text/css" media="screen" charset="utf-8" />
18 18  
19   - <script src="$(url_base)static/js/jquery.js" type="text/javascript"></script>
20   - <script src="$(url_base)static/js/FormManager.js" type="text/javascript"></script>
  19 + <script src="$(content.url_base)static/js/jquery.js" type="text/javascript"></script>
  20 + <script src="$(content.url_base)static/js/FormManager.js" type="text/javascript"></script>
21 21  
22 22 $if content.has_key('jsfiles'):
23 23 $for js in content.jsfiles.split():
... ... @@ -61,12 +61,12 @@ function validateForm()
61 61  
62 62 <div id="wrap" class="vert-grad">
63 63 <div id="header" class="glass">
64   - <a href="$url_base" title="AppRecommender"><h1 id="logo"><span>AppRecommender</span></h1></a>
  64 + <a href="$content.url_base" title="AppRecommender"><h1 id="logo"><span>AppRecommender</span></h1></a>
65 65 <div id="recommender-box">
66   - <form action="/survey/apprec" enctype="multipart/form-data" method="post" name="weboptions" onsubmit="return validateForm()">
  66 + <form action="$(content.url_base)apprec" enctype="multipart/form-data" method="post" name="weboptions" onsubmit="return validateForm()">
67 67 <fieldset>
68 68 <div id="submit-box">
69   - <input type="submit" value="START" id="submit-button" class="glass"><br />
  69 + <input type="submit" value="$content.action" id="submit-button" class="glass"><br />
70 70 <a id="advanced-button">advanced query?</a>
71 71 </div>
72 72 <div id="input-box">
... ... @@ -85,7 +85,7 @@ function validateForm()
85 85 </p>
86 86 <div id="tip-upload" class="tip important">
87 87 <p>
88   - File format: each line begins with a packages name or the popularity-contest format.
  88 + Format: one package per line or the popularity-contest log file.
89 89 </div><!-- id="tip-upload" -->
90 90 </fieldset>
91 91 </div><!-- id="upload-slide" -->
... ... @@ -160,8 +160,8 @@ $:content
160 160  
161 161 <div id="navbar">
162 162 <ul>
163   - <li><a href="$url_base">Home</a></li>
164   - <li><a href="$(url_base)about">About</a></li>
  163 + <li><a href="$content.url_base">Home</a></li>
  164 + <li><a href="$(content.url_base)about">About</a></li>
165 165 <li><a href="http://github.com/tassia/AppRecommender">Development</a></li>
166 166 </ul>
167 167 </div><!-- id="navbar" -->
... ...
src/web/templates/package.html
1 1 $def with (pkg)
  2 +$var url_base: /
2 3  
3 4 <div class="align-left" id="voting_box">
4 5 <button type="button" class="like_button" onclick=";return false;" id="like" >
... ... @@ -16,12 +17,12 @@ $def with (pkg)
16 17 </div>
17 18 </div><!-- id="voting_box" -->
18 19  
19   -<h1 id="title_pkg">$pkg['package'] <br /><span>$pkg['description']</span></h1>
  20 +<h2 id="title_pkg">$pkg.name <br /><span>$pkg.summary</span></h2>
20 21  
21 22 <div id="debtags_box" class="graybox horiz-grad">
22 23 <h2>Debtags</h2>
23 24 <ul id="debtags_pkg">
24   -$for facet, tags in pkg['tag'].items():
  25 +$for facet, tags in pkg.tags.items():
25 26 <li> $facet
26 27 <ul>
27 28 $for tag in tags:
... ... @@ -35,32 +36,33 @@ $for facet, tags in pkg[&#39;tag&#39;].items():
35 36 <h2>Details</h2>
36 37  
37 38 <ul>
38   - <li><b>Description</b>: <br />$:pkg['long_description']</li>
39   - $if pkg['homepage']:
40   - <li><b>Homepage</b>:<a href="$pkg['homepage']">$pkg['homepage']</a></li>
41   - $if pkg['task']:
42   - <li><b>Tasks</b>: $pkg['task']</li>
43   - <li><b>Section</b>: $pkg['section']</li>
44   - $if pkg['recommends']:
45   - <li><b>Recommends</b>: $pkg['recommends']</li>
46   - $if pkg['suggests']:
47   - <li><b>Suggests</b>: $pkg['suggests']</li>
48   - $if pkg['origin']:
49   - <li><b>Origin</b>: $pkg['origin']</li>
50   - <li><b>Maintainer</b>: $pkg['maintainer']</li>
  39 + $if hasattr(pkg, 'description'):
  40 + <li><b>Description:</b> <br />$:pkg.description</li>
  41 + $if hasattr(pkg, 'maintainer'):
  42 + <li><b>Maintainer:</b> $pkg.maintainer</li>
  43 + $if hasattr(pkg, 'homepage'):
  44 + <li><b>Homepage:</b> <a href="$pkg.homepage">$pkg.homepage</a></li>
  45 + $if hasattr(pkg,'section'):
  46 + <li><b>Section:</b> $pkg.section</li>
  47 + $if hasattr(pkg,'recommends'):
  48 + <li><b>Recommends:</b> $pkg.recommends</li>
  49 + $if hasattr(pkg,'suggests'):
  50 + <li><b>Suggests:</b> $pkg.suggests</li>
  51 + $if hasattr(pkg,'origin'):
  52 + <li><b>Origin:</b> $pkg.origin</li>
51 53 </ul>
52 54  
53 55 </p>
54 56  
55 57 <div id="debresources_box" class="graybox vert-grad">
56   -<h2>Debian resources:</h2>
  58 +<h2>Debian resources</h2>
57 59 <ul>
58   - <li><a href="http://packages.debian.org/$pkg['package']">Package page on debian.org</a></li>
59   - <li><a href="http://bugs.debian.org/$pkg['package']">Debian bug tracking system (BTS)</a></li>
60   - <li><a href="http://packages.qa.debian.org/$pkg['package']">Debian package tracking system (PTS)</a></li>
61   - <li><a href="http://qa.debian.org/popcon.php?package=$pkg['package']">Popularity contest statistics (Popcon)</a></li>
62   - <li><a href="http://patch-tracker.debian.org/package/$pkg['package']">Debian patch tracking system</a></li>
63   - <li><a href="http://screenshots.debian.net/package/$pkg['package']">Screenshots</a></li>
  60 + <li><a href="http://packages.debian.org/$pkg.name">Package page on debian.org</a></li>
  61 + <li><a href="http://bugs.debian.org/$pkg.name">Debian bug tracking system (BTS)</a></li>
  62 + <li><a href="http://packages.qa.debian.org/$pkg.name">Debian package tracking system (PTS)</a></li>
  63 + <li><a href="http://qa.debian.org/popcon.php?package=$pkg.name">Popularity contest statistics (Popcon)</a></li>
  64 + <li><a href="http://patch-tracker.debian.org/package/$pkg.name">Debian patch tracking system</a></li>
  65 + <li><a href="http://screenshots.debian.net/package/$pkg.name">Screenshots</a></li>
64 66 </ul>
65 67 </div><!-- id="debresources_box -->
66 68  
... ...
src/web/templates/survey.html
1 1 $def with (pkgs_details, request)
2 2 $var title: Survey
  3 +$var url_base: /survey/
  4 +$var action: START
3 5 $var mod = 'survey';
4 6 $var cssfiles: static/coda-slider-2.0/stylesheets/coda-slider-2.0.css static/css/facebox.css static/css/survey.css
5 7 $var jsfiles: /static/coda-slider-2.0/javascripts/jquery-1.3.2.min.js /static/coda-slider-2.0/javascripts/jquery.coda-slider-2.0.js /static/coda-slider-2.0/javascripts/jquery.easing.1.3.js /static/js/facebox.js
... ... @@ -27,9 +29,7 @@ $var jsfiles: /static/coda-slider-2.0/javascripts/jquery-1.3.2.min.js /static/co
27 29 <div class="show-end" style="display: none;">
28 30  
29 31 <p>
30   -You have completed this round of evaluations. If you have time to do some more,
31   -please do so. Otherwise, please conclude your participation clicking in the
32   -button below.
  32 +If you have any comment regarding this set of suggestions, please write in the form below. Choose <i>Continue</i> if you can perform another round of evaluations, or <i>Finish</i> to conclude your participation.
33 33 </p>
34 34  
35 35 </div>
... ... @@ -38,24 +38,25 @@ button below.
38 38  
39 39 <input type="hidden" name="user_id" value=$request.user.user_id>
40 40 <input type="hidden" name="strategy" value=$request.strategy>
41   -<div id="controls-form" style="display: none;" class="show-end"><!-- display show in the end form -->
42   -<label for="finish_button" id="tip-finish">
43   - <!--<div class="tip important">
44   - <p>Conclude your participation in this survey</p>
45   - </div>-->
  41 +
  42 +<div style="display: none; width: 400px; margin-left: 150px; margin-top: 10px;" class="show-end"><!-- display show in the end form -->
  43 +<p align="center">
  44 +<label for="comments">
  45 + <b>Comments</b><br />
  46 + <textarea name="comments" value="" rows="4" cols="48"></textarea> <br />
  47 +</label>
  48 +</p>
  49 +<label for="finish_button">
46 50 <input id="finish-button" name="finish_button" type="submit" value="Finish" class="glass" />
47 51 </label>
48   -<label for="continue_button" id="tip-continue">
49   - <!--<div class="tip tip">
50   - <p>Evaluate more suggestions </p>
51   - </div>-->
  52 +<label for="continue_button">
52 53 <input id="continue-button" name="continue_button" type="submit" value="Continue" class="glass" />
53 54 </label>
54 55 </div><!-- id="controls-form" -->
55 56  
56 57 <div class="coda-slider-wrapper hide-end">
57 58 <div class="coda-slider preload" id="coda-slider-1">
58   - <h5 style="float: right;">How do you evaluate this recommendation?</h5> <br />
  59 + <h5 style="float: right;"><b>How do you evaluate this recommendation?</b></h5> <br />
59 60 $for pkg in pkgs_details:
60 61 <div class="panel">
61 62 <div id="panel-controls" class="glass">
... ... @@ -92,7 +93,7 @@ $for pkg in pkgs_details:
92 93 $if hasattr(pkg,'maintainer'):
93 94 <li><pre> Maintained by $:pkg.maintainer</pre></li>
94 95 $if hasattr(pkg,'homepage'):
95   - <li><pre> Homepage is $:pkg.homepage</pre></li>
  96 + <li><pre> Homepage: $:pkg.homepage</pre></li>
96 97 </ul>
97 98 </div><!-- id="content-pkg" -->
98 99 </div><!-- .panel-wrapper -->
... ...
src/web/templates/survey_index.html
... ... @@ -1,35 +0,0 @@
1   -$var title: Survey
2   -$var mod = 'index';
3   -$var cssfiles: static/css/survey.css
4   -$var jsfiles:
5   -
6   -<!-- Dynamic form -->
7   -<script type="application/x-javascript">
8   -window.onload = function() {
9   - setupDependencies('weboptions'); //name of form(s). Seperate each with a comma (ie: 'weboptions', 'myotherform' )
10   - };
11   -</script>
12   -
13   -<div id="maincontent">
14   -<div class="innertube">
15   -
16   -<div class="textbox">
17   -<h1>AppRecommender Survey</h1>
18   -<h2>Help us learn your needs</h2>
19   -
20   -<p>Participate in this survey and contribute for the development of
21   -<a href="http://github.com/tassia/AppRecommender">AppRecommender</a>,
22   -a recommender system for GNU/Linux applications.</p><br />
23   - <p align="justify"> Provide a list of packages installed in a real
24   - running system and a set of applications will be suggested for it. You can
25   - upload a popularity-contest submission file (usually located at
26   - '/var/log/popularity-contest') or any other file with packages name as first
27   - field of each line. For instance, you can run the following command and
28   - upload the generated 'packages.list' file.</p><br />
29   - <p><code> # dpkg-query --show > packages.list </code></p>
30   -</div>
31   -
32   -</div><!-- class="innertube" -->
33   -</div><!-- id="maincontent" -->
34   -
35   -
src/web/templates/thanks.html
1 1 $def with (user_id)
  2 +$var url_base: /survey/
  3 +$var action: START
2 4 $var title: Thanks
3 5 $var mod = 'thanks';
4 6 $var cssfiles: static/css/survey.css
... ... @@ -11,302 +13,31 @@ $var cssfiles: static/css/survey.css
11 13 <div id="maincontent">
12 14 <div class="innertube">
13 15  
14   -<center>
15   -<h1>Thanks!</h1>
16   -<p>Thank you very much for participating in this survey. Your help is very much
17   -appreciated!</p><br />
18   -
19   -<div id="optionalform">
20   -<center>
21   -<h2>Optional Info</h2>
22   -<p>
23   - Provide your name or nick if you agree with that being published in our
24   - thanks page and final report. If you also provide a valid e-mail address we'll
25   - be able to send you the survey report as soon as it is ready.
  16 +<h1>AppRecommender Survey</h1>
  17 +<p>Thank you very much for participating in this survey, you help is very much
  18 +appreciated! Identify yourself if you want to be mentioned in our thanks page
  19 +and final report.
26 20 </p><br />
27   -</center>
28 21  
29   - <form action="thanks" method="post" enctype="multipart/form-data" name="identification_form">
30   - <label>
31   - <input type="hidden" name="user_id" value=$user_id>
32   - Name: <input class="text" type="text" name="name" value="" size="40">
33   - </label></p>
34   - <p>
35   - <label>
36   - E-mail: <input class="text" type="text" name="email" value="" size="40">
37   - </label></p><!--
38   - <p>
39   - <label>
40   - Country: <select name="Country">
41   - <option value="" selected="selected">--- Select ---</option>
42   - <option value="United States">United States</option>
43   - <option value="United Kingdom">United Kingdom</option>
44   - <option value="Afghanistan">Afghanistan</option>
45   - <option value="Albania">Albania</option>
46   - <option value="Algeria">Algeria</option>
47   - <option value="American Samoa">American Samoa</option>
48   - <option value="Andorra">Andorra</option>
49   - <option value="Angola">Angola</option>
50   - <option value="Anguilla">Anguilla</option>
51   - <option value="Antarctica">Antarctica</option>
52   - <option value="Antigua and Barbuda">Antigua and Barbuda</option>
53   - <option value="Argentina">Argentina</option>
54   - <option value="Armenia">Armenia</option>
55   - <option value="Aruba">Aruba</option>
56   - <option value="Australia">Australia</option>
57   - <option value="Austria">Austria</option>
58   - <option value="Azerbaijan">Azerbaijan</option>
59   - <option value="Bahamas">Bahamas</option>
60   - <option value="Bahrain">Bahrain</option>
61   - <option value="Bangladesh">Bangladesh</option>
62   - <option value="Barbados">Barbados</option>
63   - <option value="Belarus">Belarus</option>
64   - <option value="Belgium">Belgium</option>
65   - <option value="Belize">Belize</option>
66   - <option value="Benin">Benin</option>
67   - <option value="Bermuda">Bermuda</option>
68   - <option value="Bhutan">Bhutan</option>
69   - <option value="Bolivia">Bolivia</option>
70   - <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
71   - <option value="Botswana">Botswana</option>
72   - <option value="Bouvet Island">Bouvet Island</option>
73   - <option value="Brazil">Brazil</option>
74   - <option value="British Indian Ocean Territory">British Indian Ocean
75   - Territory</option>
76   - <option value="Brunei Darussalam">Brunei Darussalam</option>
77   - <option value="Bulgaria">Bulgaria</option>
78   - <option value="Burkina Faso">Burkina Faso</option>
79   - <option value="Burundi">Burundi</option>
80   - <option value="Cambodia">Cambodia</option>
81   - <option value="Cameroon">Cameroon</option>
82   - <option value="Canada">Canada</option>
83   - <option value="Cape Verde">Cape Verde</option>
84   - <option value="Cayman Islands">Cayman Islands</option>
85   - <option value="Central African Republic">Central African Republic</option>
86   - <option value="Chad">Chad</option>
87   - <option value="Chile">Chile</option>
88   - <option value="China">China</option>
89   - <option value="Christmas Island">Christmas Island</option>
90   - <option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
91   - <option value="Colombia">Colombia</option>
92   - <option value="Comoros">Comoros</option>
93   - <option value="Congo">Congo</option>
94   - <option value="Congo, The Democratic Republic of The">Congo, The Democratic
95   - Republic of The</option>
96   - <option value="Cook Islands">Cook Islands</option>
97   - <option value="Costa Rica">Costa Rica</option>
98   - <option value="Cote D'ivoire">Cote D'ivoire</option>
99   - <option value="Croatia">Croatia</option>
100   - <option value="Cuba">Cuba</option>
101   - <option value="Cyprus">Cyprus</option>
102   - <option value="Czech Republic">Czech Republic</option>
103   - <option value="Denmark">Denmark</option>
104   - <option value="Djibouti">Djibouti</option>
105   - <option value="Dominica">Dominica</option>
106   - <option value="Dominican Republic">Dominican Republic</option>
107   - <option value="Ecuador">Ecuador</option>
108   - <option value="Egypt">Egypt</option>
109   - <option value="El Salvador">El Salvador</option>
110   - <option value="Equatorial Guinea">Equatorial Guinea</option>
111   - <option value="Eritrea">Eritrea</option>
112   - <option value="Estonia">Estonia</option>
113   - <option value="Ethiopia">Ethiopia</option>
114   - <option value="Falkland Islands (Malvinas)">Falkland Islands
115   - (Malvinas)</option>
116   - <option value="Faroe Islands">Faroe Islands</option>
117   - <option value="Fiji">Fiji</option>
118   - <option value="Finland">Finland</option>
119   - <option value="France">France</option>
120   - <option value="French Guiana">French Guiana</option>
121   - <option value="French Polynesia">French Polynesia</option>
122   - <option value="French Southern Territories">French Southern
123   - Territories</option>
124   - <option value="Gabon">Gabon</option>
125   - <option value="Gambia">Gambia</option>
126   - <option value="Georgia">Georgia</option>
127   - <option value="Germany">Germany</option>
128   - <option value="Ghana">Ghana</option>
129   - <option value="Gibraltar">Gibraltar</option>
130   - <option value="Greece">Greece</option>
131   - <option value="Greenland">Greenland</option>
132   - <option value="Grenada">Grenada</option>
133   - <option value="Guadeloupe">Guadeloupe</option>
134   - <option value="Guam">Guam</option>
135   - <option value="Guatemala">Guatemala</option>
136   - <option value="Guinea">Guinea</option>
137   - <option value="Guinea-bissau">Guinea-bissau</option>
138   - <option value="Guyana">Guyana</option>
139   - <option value="Haiti">Haiti</option>
140   - <option value="Heard Island and Mcdonald Islands">Heard Island and Mcdonald
141   - Islands</option>
142   - <option value="Holy See (Vatican City State)">Holy See (Vatican City
143   - State)</option>
144   - <option value="Honduras">Honduras</option>
145   - <option value="Hong Kong">Hong Kong</option>
146   - <option value="Hungary">Hungary</option>
147   - <option value="Iceland">Iceland</option>
148   - <option value="India">India</option>
149   - <option value="Indonesia">Indonesia</option>
150   - <option value="Iran, Islamic Republic of">Iran, Islamic Republic
151   - of</option>
152   - <option value="Iraq">Iraq</option>
153   - <option value="Ireland">Ireland</option>
154   - <option value="Israel">Israel</option>
155   - <option value="Italy">Italy</option>
156   - <option value="Jamaica">Jamaica</option>
157   - <option value="Japan">Japan</option>
158   - <option value="Jordan">Jordan</option>
159   - <option value="Kazakhstan">Kazakhstan</option>
160   - <option value="Kenya">Kenya</option>
161   - <option value="Kiribati">Kiribati</option>
162   - <option value="Korea, Democratic People's Republic of">Korea, Democratic
163   - People's Republic of</option>
164   - <option value="Korea, Republic of">Korea, Republic of</option>
165   - <option value="Kuwait">Kuwait</option>
166   - <option value="Kyrgyzstan">Kyrgyzstan</option>
167   - <option value="Lao People's Democratic Republic">Lao People's Democratic
168   - Republic</option>
169   - <option value="Latvia">Latvia</option>
170   - <option value="Lebanon">Lebanon</option>
171   - <option value="Lesotho">Lesotho</option>
172   - <option value="Liberia">Liberia</option>
173   - <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
174   - <option value="Liechtenstein">Liechtenstein</option>
175   - <option value="Lithuania">Lithuania</option>
176   - <option value="Luxembourg">Luxembourg</option>
177   - <option value="Macao">Macao</option>
178   - <option value="Macedonia, The Former Yugoslav Republic of">Macedonia, The
179   - Former Yugoslav Republic of</option>
180   - <option value="Madagascar">Madagascar</option>
181   - <option value="Malawi">Malawi</option>
182   - <option value="Malaysia">Malaysia</option>
183   - <option value="Maldives">Maldives</option>
184   - <option value="Mali">Mali</option>
185   - <option value="Malta">Malta</option>
186   - <option value="Marshall Islands">Marshall Islands</option>
187   - <option value="Martinique">Martinique</option>
188   - <option value="Mauritania">Mauritania</option>
189   - <option value="Mauritius">Mauritius</option>
190   - <option value="Mayotte">Mayotte</option>
191   - <option value="Mexico">Mexico</option>
192   - <option value="Micronesia, Federated States of">Micronesia, Federated
193   - States of</option>
194   - <option value="Moldova, Republic of">Moldova, Republic of</option>
195   - <option value="Monaco">Monaco</option>
196   - <option value="Mongolia">Mongolia</option>
197   - <option value="Montserrat">Montserrat</option>
198   - <option value="Morocco">Morocco</option>
199   - <option value="Mozambique">Mozambique</option>
200   - <option value="Myanmar">Myanmar</option>
201   - <option value="Namibia">Namibia</option>
202   - <option value="Nauru">Nauru</option>
203   - <option value="Nepal">Nepal</option>
204   - <option value="Netherlands">Netherlands</option>
205   - <option value="Netherlands Antilles">Netherlands Antilles</option>
206   - <option value="New Caledonia">New Caledonia</option>
207   - <option value="New Zealand">New Zealand</option>
208   - <option value="Nicaragua">Nicaragua</option>
209   - <option value="Niger">Niger</option>
210   - <option value="Nigeria">Nigeria</option>
211   - <option value="Niue">Niue</option>
212   - <option value="Norfolk Island">Norfolk Island</option>
213   - <option value="Northern Mariana Islands">Northern Mariana Islands</option>
214   - <option value="Norway">Norway</option>
215   - <option value="Oman">Oman</option>
216   - <option value="Pakistan">Pakistan</option>
217   - <option value="Palau">Palau</option>
218   - <option value="Palestinian Territory, Occupied">Palestinian Territory,
219   - Occupied</option>
220   - <option value="Panama">Panama</option>
221   - <option value="Papua New Guinea">Papua New Guinea</option>
222   - <option value="Paraguay">Paraguay</option>
223   - <option value="Peru">Peru</option>
224   - <option value="Philippines">Philippines</option>
225   - <option value="Pitcairn">Pitcairn</option>
226   - <option value="Poland">Poland</option>
227   - <option value="Portugal">Portugal</option>
228   - <option value="Puerto Rico">Puerto Rico</option>
229   - <option value="Qatar">Qatar</option>
230   - <option value="Reunion">Reunion</option>
231   - <option value="Romania">Romania</option>
232   - <option value="Russian Federation">Russian Federation</option>
233   - <option value="Rwanda">Rwanda</option>
234   - <option value="Saint Helena">Saint Helena</option>
235   - <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
236   - <option value="Saint Lucia">Saint Lucia</option>
237   - <option value="Saint Pierre and Miquelon">Saint Pierre and
238   - Miquelon</option>
239   - <option value="Saint Vincent and The Grenadines">Saint Vincent and The
240   - Grenadines</option>
241   - <option value="Samoa">Samoa</option>
242   - <option value="San Marino">San Marino</option>
243   - <option value="Sao Tome and Principe">Sao Tome and Principe</option>
244   - <option value="Saudi Arabia">Saudi Arabia</option>
245   - <option value="Senegal">Senegal</option>
246   - <option value="Serbia and Montenegro">Serbia and Montenegro</option>
247   - <option value="Seychelles">Seychelles</option>
248   - <option value="Sierra Leone">Sierra Leone</option>
249   - <option value="Singapore">Singapore</option>
250   - <option value="Slovakia">Slovakia</option>
251   - <option value="Slovenia">Slovenia</option>
252   - <option value="Solomon Islands">Solomon Islands</option>
253   - <option value="Somalia">Somalia</option>
254   - <option value="South Africa">South Africa</option>
255   - <option value="South Georgia and The South Sandwich Islands">South Georgia
256   - and The South Sandwich Islands</option>
257   - <option value="Spain">Spain</option>
258   - <option value="Sri Lanka">Sri Lanka</option>
259   - <option value="Sudan">Sudan</option>
260   - <option value="Suriname">Suriname</option>
261   - <option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
262   - <option value="Swaziland">Swaziland</option>
263   - <option value="Sweden">Sweden</option>
264   - <option value="Switzerland">Switzerland</option>
265   - <option value="Syrian Arab Republic">Syrian Arab Republic</option>
266   - <option value="Taiwan, Province of China">Taiwan, Province of
267   - China</option>
268   - <option value="Tajikistan">Tajikistan</option>
269   - <option value="Tanzania, United Republic of">Tanzania, United Republic
270   - of</option>
271   - <option value="Thailand">Thailand</option>
272   - <option value="Timor-leste">Timor-leste</option>
273   - <option value="Togo">Togo</option>
274   - <option value="Tokelau">Tokelau</option>
275   - <option value="Tonga">Tonga</option>
276   - <option value="Trinidad and Tobago">Trinidad and Tobago</option>
277   - <option value="Tunisia">Tunisia</option>
278   - <option value="Turkey">Turkey</option>
279   - <option value="Turkmenistan">Turkmenistan</option>
280   - <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
281   - <option value="Tuvalu">Tuvalu</option>
282   - <option value="Uganda">Uganda</option>
283   - <option value="Ukraine">Ukraine</option>
284   - <option value="United Arab Emirates">United Arab Emirates</option>
285   - <option value="United Kingdom">United Kingdom</option>
286   - <option value="United States">United States</option>
287   - <option value="United States Minor Outlying Islands">United States Minor
288   - Outlying Islands</option>
289   - <option value="Uruguay">Uruguay</option>
290   - <option value="Uzbekistan">Uzbekistan</option>
291   - <option value="Vanuatu">Vanuatu</option>
292   - <option value="Venezuela">Venezuela</option>
293   - <option value="Viet Nam">Viet Nam</option>
294   - <option value="Virgin Islands, British">Virgin Islands, British</option>
295   - <option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
296   - <option value="Wallis and Futuna">Wallis and Futuna</option>
297   - <option value="Western Sahara">Western Sahara</option>
298   - <option value="Yemen">Yemen</option>
299   - <option value="Zambia">Zambia</option>
300   - <option value="Zimbabwe">Zimbabwe</option>
301   - </select>
302   - </label></p><br />-->
303   - <p> <label class="text-left">
304   - Comments:<br />
305   - <textarea name="comments" value="" rows="2" cols="50"></textarea>
306   - </label></p>
307   - <p><input type="submit" name="send_button" value="Submit" class="glass"
308   - id="finish-button"><p>
309   - </form>
  22 +<div style="margin-left:150px;" id="optionalform">
  23 +<center>
  24 +<form action="thanks" method="post" enctype="multipart/form-data" name="identification_form">
  25 + <p>
  26 + <label>
  27 + <input type="hidden" name="user_id" value=$user_id>
  28 + Name <input class="text" type="text" name="name" value="" size="40">
  29 + </label></p>
  30 + <p>
  31 + <label>
  32 + E-mail <input class="text" type="text" name="email" value="" size="40">
  33 + </label></p>
  34 + <p>
  35 + <label style="align:left">
  36 + General comments or suggestions<br />
  37 + <textarea name="comments" value="" rows="2" cols="50"></textarea>
  38 + </label></p>
  39 + <p><input type="submit" name="send_button" value="Submit" class="glass" id="finish-button"><p>
  40 +</form>
310 41  
311 42 <div><!-- optionalform -->
312 43 </center>
... ...
src/web/templates/thanks_id.html
1   -$var title: Feedback
  1 +$var title: Thanks
  2 +$var url_base: /survey/
  3 +$var action: START
2 4 $var mod = 'thanks';
3 5 $var cssfiles: static/css/survey.css
4 6  
... ...