Commit cdad6671005cfbd3d87af0bcd5f78c7aa0cf46bd
1 parent
7c861d61
Exists in
master
and in
29 other branches
Inprove block code.
- change lambda to proc in block's content method. - remove unnecessary code. - add block's css Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com> Signed-off-by: Dylan Guedes <djmgguedes@gmail.com>
Showing
9 changed files
with
84 additions
and
353 deletions
Show diff stats
app/controllers/my_profile/profile_editor_controller.rb
| ... | ... | @@ -18,6 +18,7 @@ class ProfileEditorController < MyProfileController |
| 18 | 18 | @profile_data = profile |
| 19 | 19 | @possible_domains = profile.possible_domains |
| 20 | 20 | if request.post? |
| 21 | + puts "$"*80, params[:profile_data] | |
| 21 | 22 | params[:profile_data][:fields_privacy] ||= {} if profile.person? && params[:profile_data].is_a?(Hash) |
| 22 | 23 | Profile.transaction do |
| 23 | 24 | Image.transaction do | ... | ... |
plugins/profile_description_block/lib/profile_description_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,41 @@ |
| 1 | +class ProfileDescriptionBlock < Block | |
| 2 | + settings_items :show_name, :type => :boolean, | |
| 3 | + :default => false | |
| 4 | + | |
| 5 | + attr_accessor :show_name | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Profile Description') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('this block displays the description field of the profile') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def default_title | |
| 16 | + _('PROFILE DESCRIPTION') | |
| 17 | + end | |
| 18 | + | |
| 19 | + def content(args={}) | |
| 20 | + description = if self.owner.description.blank? | |
| 21 | + "Description field is empty or | |
| 22 | + not enabled on enviroment" | |
| 23 | + else | |
| 24 | + self.owner.description | |
| 25 | + end | |
| 26 | + block = self | |
| 27 | + s = show_name | |
| 28 | + proc do | |
| 29 | + render( | |
| 30 | + :file => 'blocks/profile_description', | |
| 31 | + :locals => { :block => block, :show_name => s , | |
| 32 | + :description => description} | |
| 33 | + ) | |
| 34 | + end | |
| 35 | + end | |
| 36 | + | |
| 37 | + def cacheable? | |
| 38 | + false | |
| 39 | + end | |
| 40 | + | |
| 41 | +end | ... | ... |
plugins/profile_description_block/lib/profile_description_block_plugin.rb
0 → 100644
| ... | ... | @@ -0,0 +1,24 @@ |
| 1 | +class ProfileDescriptionBlockPlugin < Noosfero::Plugin | |
| 2 | + | |
| 3 | + def self.plugin_name | |
| 4 | + # FIXME | |
| 5 | + "Profile Description Block" | |
| 6 | + end | |
| 7 | + | |
| 8 | + def self.extra_blocks | |
| 9 | + { | |
| 10 | + ProfileDescriptionBlock => { :type => [Community, Person] } | |
| 11 | + } | |
| 12 | + end | |
| 13 | + | |
| 14 | + | |
| 15 | + def self.plugin_description | |
| 16 | + # FIXME | |
| 17 | + _("A plugin that adds a block that show the profile description") | |
| 18 | + end | |
| 19 | + | |
| 20 | + def stylesheet? | |
| 21 | + true | |
| 22 | + end | |
| 23 | + | |
| 24 | +end | ... | ... |
plugins/profile_description_block/views/blocks/profile_description.html.erb
0 → 100644
plugins/profile_fields_block/lib/profile_fields_block.rb
| ... | ... | @@ -1,53 +0,0 @@ |
| 1 | -class ProfileFieldsBlock < Block | |
| 2 | - | |
| 3 | - settings_items :profile_description, :type => :string, :default => "" | |
| 4 | - settings_items :show_name, :type => :boolean, :default => false | |
| 5 | - attr_accessor :show_name | |
| 6 | - | |
| 7 | - | |
| 8 | - def self.description | |
| 9 | - _('Profile Fields ') | |
| 10 | - end | |
| 11 | - | |
| 12 | - def profile_description | |
| 13 | - self.settings[:profile_description] | |
| 14 | - end | |
| 15 | - | |
| 16 | - def help | |
| 17 | - _('This block display the description of the community') | |
| 18 | - end | |
| 19 | - | |
| 20 | - def content(args={}) | |
| 21 | - self.profile_description = retrive_description_profile_field | |
| 22 | - block_content = self.profile_description | |
| 23 | - block = self | |
| 24 | - s = show_name | |
| 25 | - lambda do |object| | |
| 26 | - render( | |
| 27 | - :file => 'blocks/profile_fields', | |
| 28 | - :locals => { :block => block, :show_name => s , | |
| 29 | - :description => block_content} | |
| 30 | - ) | |
| 31 | - end | |
| 32 | - end | |
| 33 | - | |
| 34 | - def cacheable? | |
| 35 | - false | |
| 36 | - end | |
| 37 | - | |
| 38 | - | |
| 39 | - private | |
| 40 | - | |
| 41 | - def retrive_description_profile_field | |
| 42 | - box_id = self.box_id | |
| 43 | - owner_id = Box.find(box_id).owner_id | |
| 44 | - description = Profile.find(owner_id).description | |
| 45 | - if description.blank? | |
| 46 | - "Description field are empty or | |
| 47 | - not enabled in enviroment" | |
| 48 | - else | |
| 49 | - description | |
| 50 | - end | |
| 51 | - end | |
| 52 | - | |
| 53 | -end |
plugins/profile_fields_block/lib/profile_fields_block_plugin.rb
| ... | ... | @@ -1,24 +0,0 @@ |
| 1 | -class ProfileFieldsBlockPlugin < Noosfero::Plugin | |
| 2 | - | |
| 3 | - def self.plugin_name | |
| 4 | - # FIXME | |
| 5 | - "ProfileFieldsBlockPlugin" | |
| 6 | - end | |
| 7 | - | |
| 8 | - def self.extra_blocks | |
| 9 | - { | |
| 10 | - ProfileFieldsBlock => { :type => [Community] } | |
| 11 | - } | |
| 12 | - end | |
| 13 | - | |
| 14 | - | |
| 15 | - def self.plugin_description | |
| 16 | - # FIXME | |
| 17 | - _("A plugin that include a generic block") | |
| 18 | - end | |
| 19 | - | |
| 20 | - def stylesheet? | |
| 21 | - true | |
| 22 | - end | |
| 23 | - | |
| 24 | -end |
plugins/profile_fields_block/public/style.css
| ... | ... | @@ -1,270 +0,0 @@ |
| 1 | -.mpog_hidden_field { | |
| 2 | - display: none; | |
| 3 | -} | |
| 4 | - | |
| 5 | -#signup-form small#secondary-email-balloon , | |
| 6 | -#signup-form small#area-interest-balloon { | |
| 7 | - display: none; | |
| 8 | - width: 142px; | |
| 9 | - height: 69px; | |
| 10 | - color: #FFFFFF; | |
| 11 | - font-weight: bold; | |
| 12 | - font-size: 11px; | |
| 13 | - padding: 5px 10px 45px 10px; | |
| 14 | - margin: 0; | |
| 15 | - line-height: 1.5em; | |
| 16 | - background: transparent url(/images/gray-balloon.png) bottom center no-repeat; | |
| 17 | - position: absolute; | |
| 18 | - z-index: 2; | |
| 19 | - right: -150px; | |
| 20 | -} | |
| 21 | - | |
| 22 | -#signup-form #signup-secondary-email, | |
| 23 | -#signup-form #signup-area-interest { | |
| 24 | - position: relative; | |
| 25 | -} | |
| 26 | - | |
| 27 | -#signup-form small#secondary-email-balloon, | |
| 28 | -#signup-form small#area-interest-balloon { | |
| 29 | - top: -80px; | |
| 30 | -} | |
| 31 | - | |
| 32 | -.dynamic-table { | |
| 33 | - border: solid 1px #000; | |
| 34 | - margin-top: 5px; | |
| 35 | - margin-bottom: 15px; | |
| 36 | -} | |
| 37 | -.dynamic-table td, .dynamic-table tr { | |
| 38 | - border: none; | |
| 39 | -} | |
| 40 | -.dynamic-table input { | |
| 41 | - width: 220px; | |
| 42 | -} | |
| 43 | - | |
| 44 | -.mpog-incomplete-percentage img { | |
| 45 | - margin-left: 5px; | |
| 46 | -} | |
| 47 | - | |
| 48 | -.mpog-incomplete-percentage img:hover { | |
| 49 | - cursor: pointer; | |
| 50 | -} | |
| 51 | - | |
| 52 | -#institution_dialog { | |
| 53 | - display: none; | |
| 54 | -} | |
| 55 | - | |
| 56 | -.errorExplanation { | |
| 57 | - color: red; | |
| 58 | - margin-left: 10px; | |
| 59 | -} | |
| 60 | - | |
| 61 | -.hide-field { | |
| 62 | - display: none !important; | |
| 63 | -} | |
| 64 | - | |
| 65 | -.show-field { | |
| 66 | - display: block !important; | |
| 67 | -} | |
| 68 | - | |
| 69 | -#user_filter_content { | |
| 70 | - display: block; | |
| 71 | - width: 100%; | |
| 72 | - height: auto; | |
| 73 | -} | |
| 74 | - | |
| 75 | -.mpog_search_form_fields { | |
| 76 | - margin-top: 10px; | |
| 77 | - width: 80%; | |
| 78 | - height: auto; | |
| 79 | - position: relative; | |
| 80 | - float: left; | |
| 81 | -} | |
| 82 | - | |
| 83 | -.mpog_search_form_button { | |
| 84 | - margin-top: 10px; | |
| 85 | -} | |
| 86 | - | |
| 87 | -.mpog_search_form_fields input[type='text'] { | |
| 88 | - width: 90%; | |
| 89 | - | |
| 90 | -} | |
| 91 | - | |
| 92 | -.mpog_search_form_table tr td:first-child { | |
| 93 | - width: 22%; | |
| 94 | -} | |
| 95 | - | |
| 96 | -.formfieldline { | |
| 97 | - margin-top: 10px; | |
| 98 | -} | |
| 99 | -.formfieldline input[type="text"] { | |
| 100 | - width: 180px; | |
| 101 | -} | |
| 102 | - | |
| 103 | -#complete_registration { | |
| 104 | - padding: 5px; | |
| 105 | - width: 100%; | |
| 106 | - background-color: #fff; | |
| 107 | -} | |
| 108 | - | |
| 109 | -#complete_registration a { | |
| 110 | - text-decoration: none; | |
| 111 | -} | |
| 112 | - | |
| 113 | -#complete_registration a:hover { | |
| 114 | - font-weight: bold; | |
| 115 | -} | |
| 116 | - | |
| 117 | -#complete_registration_percentage { | |
| 118 | - width: 100%; | |
| 119 | - height: 20px; | |
| 120 | - background: #fff; | |
| 121 | - border: solid 1px #000; | |
| 122 | -} | |
| 123 | - | |
| 124 | -#profile-data .invalid { | |
| 125 | - border-color: rgb(127, 0, 0); | |
| 126 | - box-shadow: 0px 0px 7px red; | |
| 127 | -} | |
| 128 | - | |
| 129 | -#profile-data .validated { | |
| 130 | - box-shadow: 0px 0px 7px green; | |
| 131 | - border-color: rgb(0, 80, 0) | |
| 132 | -} | |
| 133 | - | |
| 134 | -#software-name-field | |
| 135 | -{ | |
| 136 | - padding-bottom: 10px; | |
| 137 | -} | |
| 138 | - | |
| 139 | -#software-hostname | |
| 140 | -{ | |
| 141 | - float: left; | |
| 142 | - display: inline-block; | |
| 143 | - vertical-align: middle; | |
| 144 | - | |
| 145 | - background: #EEE; | |
| 146 | - border: 1px solid #CFCFCF; | |
| 147 | - | |
| 148 | - line-height: 22px; | |
| 149 | - padding: 0px 7px; | |
| 150 | - color: #4A4A4A; | |
| 151 | - font-size: 20px; | |
| 152 | - text-transform: lowercase; | |
| 153 | - min-width: 190px; | |
| 154 | - border-spacing: 20px; | |
| 155 | -} | |
| 156 | - | |
| 157 | -.mandatory::after | |
| 158 | -{ | |
| 159 | - color: red; | |
| 160 | - content: ' (*)' | |
| 161 | -} | |
| 162 | - | |
| 163 | -.autocomplete_validation_message { | |
| 164 | - color: red; | |
| 165 | -} | |
| 166 | - | |
| 167 | - | |
| 168 | -#content .institutions-block ul, | |
| 169 | -#content .softwares-block ul { | |
| 170 | - min-width: 196px; | |
| 171 | - width: 192px; | |
| 172 | - margin: 0px 0px 0px -3px; | |
| 173 | - padding: 0px; | |
| 174 | -} | |
| 175 | - | |
| 176 | -#content .box-1 .institutions-block ul, | |
| 177 | -#content .box-1 .softwares-block ul { | |
| 178 | - width: auto; | |
| 179 | - display: block; | |
| 180 | -} | |
| 181 | - | |
| 182 | -#content .institutions-block .block-footer-content a, | |
| 183 | -#content .softwares-block .block-footer-content a { | |
| 184 | - position: absolute; | |
| 185 | - top: 2px; | |
| 186 | - right: 0px; | |
| 187 | - font-size: 11px; | |
| 188 | - color: #000; | |
| 189 | - text-decoration: none; | |
| 190 | - padding-right: 15px; | |
| 191 | -} | |
| 192 | - | |
| 193 | -#content .institutions-block .block-footer-content a, | |
| 194 | -#content .lock-footer-content a { | |
| 195 | - background: url(../../../designs/themes/base/imgs/arrow-right-p.png) 100% 50% no-repeat; | |
| 196 | -} | |
| 197 | - | |
| 198 | -.improve_input_size { | |
| 199 | - width: 315px !important; | |
| 200 | -} | |
| 201 | - | |
| 202 | -.search-community-content-block span { | |
| 203 | - width: auto; | |
| 204 | -} | |
| 205 | - | |
| 206 | -#catalog-list ul li { | |
| 207 | - display: inline; | |
| 208 | - margin-right: 5px; | |
| 209 | - font-size: 14px; | |
| 210 | - padding: 5px; | |
| 211 | - } | |
| 212 | - | |
| 213 | -#catalog-list ul li span { | |
| 214 | - cursor: pointer; | |
| 215 | - margin-left: 5px; | |
| 216 | -} | |
| 217 | - | |
| 218 | -.catalog-remove-item { | |
| 219 | - padding: 3px; | |
| 220 | - border: solid 1px #999; | |
| 221 | - border-radius: 3px; | |
| 222 | -} | |
| 223 | - | |
| 224 | -.category_box { | |
| 225 | - font-size: 11px; | |
| 226 | - border:1px solid #e9e8ed; | |
| 227 | - border-radius:8px; | |
| 228 | - background-color:#e9e8ed; | |
| 229 | - padding:3px 6px; | |
| 230 | - margin: 10px 3px; | |
| 231 | - color: blue; | |
| 232 | -} | |
| 233 | - | |
| 234 | -.search-results-type-software_info li { | |
| 235 | - width: 100% !important; | |
| 236 | - display: block !important; | |
| 237 | -} | |
| 238 | - | |
| 239 | -/* Start software block main area definitions */ | |
| 240 | -.software-block { | |
| 241 | - position: relative; | |
| 242 | - float: left; | |
| 243 | - margin: 0px 10px 10px 0px; | |
| 244 | - width: 30%; | |
| 245 | - height: 200px; | |
| 246 | - word-wrap: break-word; | |
| 247 | - overflow: hidden; | |
| 248 | -} | |
| 249 | - | |
| 250 | -.software-block-logo { | |
| 251 | - width: 150px; | |
| 252 | - height: 150px; | |
| 253 | - margin: 0px auto; | |
| 254 | -} | |
| 255 | - | |
| 256 | -.software-block-content, .software-block-finality { | |
| 257 | - width: 100%; | |
| 258 | - height: 100%; | |
| 259 | - position: absolute; | |
| 260 | - top: 0px; | |
| 261 | - left: 0px; | |
| 262 | -} | |
| 263 | - | |
| 264 | -.software-block-finality { | |
| 265 | - background-color: #fff; | |
| 266 | - top: 100%; | |
| 267 | - display: block; | |
| 268 | - background-color:rgba(255, 255, 255, 0.9); | |
| 269 | -} | |
| 270 | -/* End software block main area definitions */ |