Commit e102c1242bb74c3b92b717b302e600fd70aaa0ef

Authored by Fabio Teixeira
1 parent b0727510

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>
lib/mpog_software_plugin.rb
@@ -150,17 +150,14 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -150,17 +150,14 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
150 person.has_permission_without_plugins?(permission, target) 150 person.has_permission_without_plugins?(permission, target)
151 end 151 end
152 152
153 -  
154 - def body_middle 153 + def incomplete_registration
155 return if context.session[:user].nil? or context.session[:hide_incomplete_percentage] == true 154 return if context.session[:user].nil? or context.session[:hide_incomplete_percentage] == true
156 155
157 person = Person.where(:user_id=>context.session[:user]).first 156 person = Person.where(:user_id=>context.session[:user]).first
158 157
159 unless person.nil? 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 @percentege = calc_percentage_registration(person) 160 @percentege = calc_percentage_registration(person)
163 -  
164 if @percentege >= 0 and @percentege <= 100 161 if @percentege >= 0 and @percentege <= 100
165 expanded_template('incomplete_registration.html.erb') 162 expanded_template('incomplete_registration.html.erb')
166 end 163 end
@@ -178,7 +175,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -178,7 +175,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
178 required_list = profile_required_list 175 required_list = profile_required_list
179 empty_fields = profile_required_empty_list person 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 person.percentage_incomplete = percentege 179 person.percentage_incomplete = percentege
183 person.save(validate: false) 180 person.save(validate: false)
184 percentege 181 percentege
public/mpog-incomplete-registration.js
@@ -3,11 +3,25 @@ function hide_incomplete_percentage(evt) { @@ -3,11 +3,25 @@ function hide_incomplete_percentage(evt) {
3 3
4 jQuery.get("/plugin/mpog_software/hide_registration_incomplete_percentage", {hide:true}, function(response){ 4 jQuery.get("/plugin/mpog_software/hide_registration_incomplete_percentage", {hide:true}, function(response){
5 if( response == true ) 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 jQuery(document).ready(function(){ 23 jQuery(document).ready(function(){
12 jQuery(".hide-incomplete-percentage").click(hide_incomplete_percentage); 24 jQuery(".hide-incomplete-percentage").click(hide_incomplete_percentage);
  25 +
  26 + show_complete_progressbar();
13 }); 27 });
public/style.css
@@ -114,22 +114,23 @@ @@ -114,22 +114,23 @@
114 width: 180px; 114 width: 180px;
115 } 115 }
116 116
117 -#incomplete_registration {  
118 - position: relative;  
119 - border: solid 2px #000; 117 +#complete_registration {
120 padding: 5px; 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 \ No newline at end of file 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 </div> 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 \ No newline at end of file 11 \ No newline at end of file