Commit e102c1242bb74c3b92b717b302e600fd70aaa0ef
1 parent
b0727510
Exists in
master
and in
5 other branches
incomplete_registration: New visualization to percentage of profile complete regeistration.
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Parley Martins <parley@outlook.com>
Showing
4 changed files
with
40 additions
and
47 deletions
Show diff stats
lib/mpog_software_plugin.rb
... | ... | @@ -150,17 +150,14 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
150 | 150 | person.has_permission_without_plugins?(permission, target) |
151 | 151 | end |
152 | 152 | |
153 | - | |
154 | - def body_middle | |
153 | + def incomplete_registration | |
155 | 154 | return if context.session[:user].nil? or context.session[:hide_incomplete_percentage] == true |
156 | 155 | |
157 | 156 | person = Person.where(:user_id=>context.session[:user]).first |
158 | 157 | |
159 | 158 | unless person.nil? |
160 | - @profile_edit_link = link_to _("Complete your registration"), "/myprofile/#{person.identifier}/profile_editor/edit" | |
161 | - @profile_empty_fields = profile_required_empty_list person | |
159 | + @profile_edit_link = link_to _("Complete your profile"), "/myprofile/#{person.identifier}/profile_editor/edit" | |
162 | 160 | @percentege = calc_percentage_registration(person) |
163 | - | |
164 | 161 | if @percentege >= 0 and @percentege <= 100 |
165 | 162 | expanded_template('incomplete_registration.html.erb') |
166 | 163 | end |
... | ... | @@ -178,7 +175,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
178 | 175 | required_list = profile_required_list |
179 | 176 | empty_fields = profile_required_empty_list person |
180 | 177 | |
181 | - percentege = (empty_fields.count*100)/required_list.count | |
178 | + percentege = 100 - ((empty_fields.count*100)/required_list.count) | |
182 | 179 | person.percentage_incomplete = percentege |
183 | 180 | person.save(validate: false) |
184 | 181 | percentege | ... | ... |
public/mpog-incomplete-registration.js
... | ... | @@ -3,11 +3,25 @@ function hide_incomplete_percentage(evt) { |
3 | 3 | |
4 | 4 | jQuery.get("/plugin/mpog_software/hide_registration_incomplete_percentage", {hide:true}, function(response){ |
5 | 5 | if( response == true ) |
6 | - jQuery("#incomplete_registration").fadeOut(); | |
6 | + jQuery("#complete_registration").fadeOut(); | |
7 | 7 | }); |
8 | 8 | } |
9 | 9 | |
10 | +function show_complete_progressbar() { | |
11 | + var percentage = jQuery("#complete_registration_message span").html(); | |
12 | + var canvas_tag = document.getElementById("complete_registration_percentage"); | |
13 | + var context = canvas_tag.getContext("2d"); | |
14 | + | |
15 | + percentage = canvas_tag.width*(percentage/100.0); | |
16 | + | |
17 | + context.beginPath(); | |
18 | + context.rect(0, 0, percentage, canvas_tag.height); | |
19 | + context.fillStyle = '#00FF00'; | |
20 | + context.fill(); | |
21 | +} | |
10 | 22 | |
11 | 23 | jQuery(document).ready(function(){ |
12 | 24 | jQuery(".hide-incomplete-percentage").click(hide_incomplete_percentage); |
25 | + | |
26 | + show_complete_progressbar(); | |
13 | 27 | }); | ... | ... |
public/style.css
... | ... | @@ -114,22 +114,23 @@ |
114 | 114 | width: 180px; |
115 | 115 | } |
116 | 116 | |
117 | -#incomplete_registration { | |
118 | - position: relative; | |
119 | - border: solid 2px #000; | |
117 | +#complete_registration { | |
120 | 118 | padding: 5px; |
119 | + width: 100%; | |
120 | + background-color: #fff; | |
121 | 121 | } |
122 | 122 | |
123 | -#incomplete_percentage { | |
124 | - text-align: center; | |
125 | - margin-bottom: 15px; | |
126 | - font-size: 18px; | |
123 | +#complete_registration a { | |
124 | + text-decoration: none; | |
127 | 125 | } |
128 | 126 | |
129 | -#profile_empty_fields span { | |
130 | - margin-left: 15px; | |
127 | +#complete_registration a:hover { | |
128 | + font-weight: bold; | |
131 | 129 | } |
132 | 130 | |
133 | -#profile_links table tr td { | |
134 | - text-align: center; | |
135 | -} | |
131 | +#complete_registration_percentage { | |
132 | + width: 100%; | |
133 | + height: 20px; | |
134 | + background: #fff; | |
135 | + border: solid 1px #000; | |
136 | +} | |
136 | 137 | \ No newline at end of file | ... | ... |
views/incomplete_registration.html.erb
1 | -<div id='incomplete_registration'> | |
2 | - <div id="incomplete_percentage"> | |
3 | - <%= _("Incomplete registration percentage")+":#{@percentege}%" %> | |
1 | +<div id='complete_registration'> | |
2 | + <div id="complete_registration_message"> | |
3 | + <div><%= _("Complete Profile")+": <span>#{@percentege}</span>%" %></div> | |
4 | + <canvas id="complete_registration_percentage" width="100%" height="20"></canvas> | |
5 | + <div> | |
6 | + <%= @profile_edit_link %> | | |
7 | + <%= link_to _("Hide"), "#", :class=>"hide-incomplete-percentage" %> | |
8 | + </div> | |
4 | 9 | </div> |
5 | - | |
6 | - <div id="profile_empty_fields"> | |
7 | - <span><%= _("List with fields to be filled")+":" %></span> | |
8 | - <ul> | |
9 | - <% @profile_empty_fields.each do |field|%> | |
10 | - <li> | |
11 | - <%= field %> | |
12 | - </li> | |
13 | - <% end %> | |
14 | - </ul> | |
15 | - </div> | |
16 | - | |
17 | - <div id="profile_links"> | |
18 | - <table> | |
19 | - <tr> | |
20 | - <td> | |
21 | - <%= @profile_edit_link %> | |
22 | - </td> | |
23 | - <td> | |
24 | - <%= link_to _("Hide this message"), "#", :class=>"hide-incomplete-percentage" %></a> | |
25 | - </td> | |
26 | - </tr> | |
27 | - </table> | |
28 | - </div> | |
29 | -</div> | |
10 | +</div> | |
30 | 11 | \ No newline at end of file | ... | ... |