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 | ... | ... |