Commit f4ec3dbba34370edd3edc200fa8228812197eb65
1 parent
63f0dc1e
Exists in
master
and in
23 other branches
ActionItem183: lot of things; ActionItem166: quase pronto
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1521 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
22 changed files
with
357 additions
and
30 deletions
Show diff stats
app/helpers/application_helper.rb
| ... | ... | @@ -355,22 +355,24 @@ module ApplicationHelper |
| 355 | 355 | # generates a image tag for the profile. |
| 356 | 356 | # |
| 357 | 357 | # If the profile has no image set yet, then a default image is used. |
| 358 | - def profile_image(profile) | |
| 359 | - image_tag(profile_icon(profile), :alt => profile.name(), :title => '' ) | |
| 358 | + def profile_image(profile, size=:portrait, opt={}) | |
| 359 | + opt[:alt] ||= profile.name() | |
| 360 | + opt[:title] ||= '' | |
| 361 | + image_tag(profile_icon(profile, size), opt ) | |
| 360 | 362 | end |
| 361 | 363 | |
| 362 | - def profile_icon(profile) | |
| 364 | + def profile_icon( profile, size=:portrait ) | |
| 363 | 365 | if profile.image |
| 364 | - profile.image.public_filename(:minor) | |
| 366 | + profile.image.public_filename( size ) | |
| 365 | 367 | else |
| 366 | 368 | if profile.organization? |
| 367 | 369 | if profile.kind_of?(Community) |
| 368 | - 'icons-app/users.png' | |
| 370 | + '/images/icons-app/users_size-'+ size.to_s() +'.png' | |
| 369 | 371 | else |
| 370 | - 'icons-app/gnome-home.png' | |
| 372 | + '/images/icons-app/gnome-home_size-'+ size.to_s() +'.png' | |
| 371 | 373 | end |
| 372 | 374 | else |
| 373 | - 'icons-app/user_icon.png' | |
| 375 | + '/images/icons-app/user_icon_size-'+ size.to_s() +'.png' | |
| 374 | 376 | end |
| 375 | 377 | end |
| 376 | 378 | |
| ... | ... | @@ -378,8 +380,8 @@ module ApplicationHelper |
| 378 | 380 | |
| 379 | 381 | # displays a link to the profile homepage with its image (as generated by |
| 380 | 382 | # #profile_image) and its name below it. |
| 381 | - def profile_image_link(profile) | |
| 382 | - link_to( '<div>'+ profile_image(profile) +'</div><span>'+ profile.name() +'</span>', profile.url, | |
| 383 | + def profile_image_link(profile, size=:portrait) | |
| 384 | + link_to( '<div>'+ profile_image(profile, size) +'</div><span>'+ profile.name() +'</span>', profile.url, | |
| 383 | 385 | :help => _('Click on this icon to go to the <b>%s</b>\'s home page') % profile.name ) |
| 384 | 386 | end |
| 385 | 387 | ... | ... |
app/models/image.rb
| ... | ... | @@ -5,7 +5,10 @@ class Image < ActiveRecord::Base |
| 5 | 5 | :storage => :file_system, |
| 6 | 6 | :max_size => 500.kilobytes, |
| 7 | 7 | :resize_to => '320x200>', |
| 8 | - :thumbnails => { :thumb => '100x100>', :minor => '64x64>', :portrait => 'x95' , :icon => '20x20'} | |
| 8 | + :thumbnails => { :thumb => '100x100', | |
| 9 | + :portrait => '64x64', | |
| 10 | + :minor => '50x50', | |
| 11 | + :icon => '20x20!' } | |
| 9 | 12 | |
| 10 | 13 | validates_as_attachment |
| 11 | 14 | end | ... | ... |
app/views/blocks/profile_info.rhtml
| 1 | 1 | <h2><%= block.owner.name %></h2> |
| 2 | 2 | |
| 3 | -<div class="profile-info-picture"><%= profile_image(block.owner) %></div> | |
| 3 | +<div class="profile-info-picture"><%= profile_image(block.owner, :thumb) %></div> | |
| 4 | 4 | |
| 5 | 5 | <ul class="profile-info-data"> |
| 6 | 6 | <li><%= _('Since %{year}/%{month}') % { :year => block.owner.created_at.year, :month => block.owner.created_at.month } %></li> | ... | ... |
app/views/content_viewer/_comment.rhtml
| 1 | -<div class'comment'> | |
| 1 | +<div class="article-comment<%= | |
| 2 | + ' comment-from-owner' if ( @page.profile.name == comment.author.name ) %>"> | |
| 3 | + <%= link_to content_tag( 'span', comment.author.name() ), comment.author.url, | |
| 4 | + :class => 'comment-picture', | |
| 5 | + :style => 'background-image:url(%s)' % profile_icon(comment.author, :minor) %> | |
| 2 | 6 | <h4><%= comment.title %></h4> |
| 3 | - <div><%= _('By %{author} on %{date}') % { :author => (comment.author ? comment.author.identifier : comment.name), :date => comment.created_on } %></div> | |
| 4 | - <div> | |
| 7 | + <div class="comment-info"> | |
| 8 | + <%= _('By %{author} on %{date}') % { | |
| 9 | + :author => link_to( | |
| 10 | + (comment.author ? comment.author.identifier : comment.name), | |
| 11 | + comment.author.url), | |
| 12 | + :date => comment.created_on } %> | |
| 13 | + </div> | |
| 14 | + <div class="comment-text"> | |
| 5 | 15 | <%= comment.body %> |
| 6 | 16 | </div> |
| 7 | 17 | </div> | ... | ... |
app/views/content_viewer/_comment_form.rhtml
| ... | ... | @@ -5,7 +5,8 @@ |
| 5 | 5 | class="post_comment_box closed" |
| 6 | 6 | onclick="f=$(<%= comment_form_id %>); f.style.display='block'; |
| 7 | 7 | this.className = this.className.replace(/closed/,'opened'); |
| 8 | - f.commit.focus(); f['comment[title]'].focus()"> | |
| 8 | + f.commit.focus(); f['comment[title]'].focus(); | |
| 9 | + this.onclick=null"> | |
| 9 | 10 | |
| 10 | 11 | <h4><%= _('Post a comment') %></h4> |
| 11 | 12 | ... | ... |
app/views/content_viewer/view_page.rhtml
| 1 | +<div class="article"> | |
| 2 | + | |
| 1 | 3 | <h2><%= @page.title %></h2> |
| 2 | 4 | |
| 3 | -<div> | |
| 4 | - <%= _('Tags: %s') % (@page.tags.map { |t| link_to(t, tag_url(:tag => t.name)) }.join(', ')) %> | |
| 5 | +<% if logged_in? && current_user.person.has_permission?('post_content', profile) %> | |
| 6 | +<div class="article-actions"> | |
| 7 | + <%= link_to content_tag( 'span', _('Edit') ), | |
| 8 | + { :controller => 'cms', :action => 'edit', :id => @page }, | |
| 9 | + :class => 'button with-text icon-edit' %> | |
| 10 | +</div> | |
| 11 | +<% end %> | |
| 12 | + | |
| 13 | +<div class="article-tags"> | |
| 14 | +<%= @page.tags.map { |t| link_to(t, tag_url(:tag => t.name)) }.join("\n") %> | |
| 5 | 15 | </div> |
| 6 | 16 | |
| 7 | 17 | <% if @page.parent && !@page.parent.path.blank? %> |
| 18 | +<div class="article-parent"> | |
| 8 | 19 | <%= link_to_document(@page.parent, _('Up')) %> |
| 20 | +</div> | |
| 9 | 21 | <% end %> |
| 10 | -<% if logged_in? && current_user.person.has_permission?('post_content', profile) %> | |
| 11 | - <%= link_to _('Edit'), :controller => 'cms', :action => 'edit', :id => @page %> | |
| 12 | -<% end %> | |
| 13 | - | |
| 14 | -<hr/> | |
| 15 | 22 | |
| 16 | 23 | <%= @page.to_html %> |
| 17 | 24 | |
| ... | ... | @@ -25,10 +32,13 @@ |
| 25 | 32 | <% end %> |
| 26 | 33 | --> |
| 27 | 34 | |
| 28 | -<h3><%= _('Categories') %></h3> | |
| 29 | - | |
| 30 | -<%= @page.categories.map {|item| link_to_category(item) }.join(', ') %> | |
| 35 | +<div class="article-cat"> | |
| 36 | + <h3><%= _('Categories') %></h3> | |
| 37 | + <%= @page.categories.map {|item| link_to_category(item) }.join(', ') %> | |
| 38 | +</div> | |
| 31 | 39 | |
| 32 | 40 | <h3><%= @comments.size == 0 ? _('No comments yet') : (n_('One comment', '%{comments} comments', @comments.size)) % { :comments => @comments.size} %></h3> |
| 33 | 41 | <%= render :partial => 'comment', :collection => @comments %> |
| 34 | 42 | <%= render :partial => 'comment_form' %> |
| 43 | + | |
| 44 | +</div><!-- end class="article" --> | ... | ... |
public/designs/icons/default/style.css
public/designs/themes/default/stylesheets/blocks/environment-statistics-block.css
0 → 100644
| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | + | |
| 2 | +#content .environment-statistics-block .block-title { | |
| 3 | + padding-left: 30px; | |
| 4 | + font-size: 12px; | |
| 5 | +} | |
| 6 | + | |
| 7 | +#content .environment-statistics-block ul { | |
| 8 | + margin: 0px 0px 0px 5px; | |
| 9 | +} | |
| 10 | +.msie #content .environment-statistics-block ul { | |
| 11 | + margin: 0px 0px 0px 45px; | |
| 12 | +} | ... | ... |
public/designs/themes/default/stylesheets/blocks/main-block.css
0 → 100644
| ... | ... | @@ -0,0 +1,91 @@ |
| 1 | +.article { | |
| 2 | + position: relative; | |
| 3 | + text-align: justify; | |
| 4 | +} | |
| 5 | + | |
| 6 | +.article-tags { | |
| 7 | + text-align: right; | |
| 8 | + font-size: 10px; | |
| 9 | + margin-top: -9px; | |
| 10 | + padding-right: 15px; | |
| 11 | +} | |
| 12 | + | |
| 13 | +.article-tags a { | |
| 14 | + color: #729FCF; | |
| 15 | + border: 1px solid #B8CFE7; | |
| 16 | + text-decoration: none; | |
| 17 | + padding: 0px 2px 1px 2px; | |
| 18 | +} | |
| 19 | +.article-tags a:hover { | |
| 20 | + color: #FFF; | |
| 21 | + border: 1px solid #3465A4; | |
| 22 | + background: #729FCF; | |
| 23 | +} | |
| 24 | + | |
| 25 | +.article-actions { | |
| 26 | + position: absolute; | |
| 27 | + top: -5px; | |
| 28 | + right: 0px; | |
| 29 | + padding-right: 15px; | |
| 30 | +} | |
| 31 | + | |
| 32 | +.article-parent { | |
| 33 | + text-align: right; | |
| 34 | + padding-right: 15px; | |
| 35 | +} | |
| 36 | + | |
| 37 | +.article-cat { | |
| 38 | + position: relative; | |
| 39 | + border: 1px dotted #B8CFE7; | |
| 40 | + margin-top: 10px; | |
| 41 | + padding: 10px; | |
| 42 | +} | |
| 43 | + | |
| 44 | +#content .article-cat h3 { | |
| 45 | + margin: 0px 0px 5px 0px; | |
| 46 | +} | |
| 47 | + | |
| 48 | +/* * * Comments * * */ | |
| 49 | + | |
| 50 | +.article-comment { | |
| 51 | + position: relative; | |
| 52 | + border: 1px solid #B8CFE7; | |
| 53 | + margin-bottom: 10px; | |
| 54 | + padding: 10px; | |
| 55 | +} | |
| 56 | + | |
| 57 | +.comment-from-owner { | |
| 58 | + border: 1px solid #3465A4; | |
| 59 | + background: #B8CFE7; | |
| 60 | +} | |
| 61 | + | |
| 62 | +#content .article-comment h4 { | |
| 63 | + font-size: 14px; | |
| 64 | + margin: 0px; | |
| 65 | +} | |
| 66 | + | |
| 67 | +.comment-picture { | |
| 68 | + position: relative; | |
| 69 | + display: block; | |
| 70 | + width: 50px; | |
| 71 | + height: 50px; | |
| 72 | + background-repeat: no-repeat; | |
| 73 | + background-position: 50% 50%; | |
| 74 | + margin-right: 10px; | |
| 75 | + float: left; | |
| 76 | +} | |
| 77 | +.comment-picture span { | |
| 78 | + display: none; | |
| 79 | +} | |
| 80 | + | |
| 81 | +.comment-info { | |
| 82 | + font-size: 10px; | |
| 83 | + color: #999; | |
| 84 | +} | |
| 85 | +.comment-from-owner .comment-info { | |
| 86 | + color: #729FCF; | |
| 87 | +} | |
| 88 | + | |
| 89 | +.comment-text { | |
| 90 | + clear: left; | |
| 91 | +} | ... | ... |
public/designs/themes/default/stylesheets/blocks/profile-info-block.css
public/designs/themes/default/stylesheets/blocks/recent-documents-block.css
0 → 100644
| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | + | |
| 2 | +#content .recent-documents-block .block-title { | |
| 3 | + padding-left: 30px; | |
| 4 | + font-size: 12px; | |
| 5 | +} | |
| 6 | + | |
| 7 | +#content .recent-documents-block ul { | |
| 8 | + margin: 0px 0px 0px 5px; | |
| 9 | +} | |
| 10 | +.msie #content .recent-documents-block ul { | |
| 11 | + margin: 0px 0px 0px 45px; | |
| 12 | +} | ... | ... |
900 Bytes
2.79 KB
3.44 KB
8.12 KB
4.96 KB
8.62 KB
| ... | ... | @@ -0,0 +1,137 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
| 2 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> | |
| 3 | +<svg | |
| 4 | + xmlns:dc="http://purl.org/dc/elements/1.1/" | |
| 5 | + xmlns:cc="http://creativecommons.org/ns#" | |
| 6 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
| 7 | + xmlns:svg="http://www.w3.org/2000/svg" | |
| 8 | + xmlns="http://www.w3.org/2000/svg" | |
| 9 | + xmlns:xlink="http://www.w3.org/1999/xlink" | |
| 10 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
| 11 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
| 12 | + width="200" | |
| 13 | + height="200" | |
| 14 | + id="svg2" | |
| 15 | + sodipodi:version="0.32" | |
| 16 | + inkscape:version="0.45+devel" | |
| 17 | + version="1.0" | |
| 18 | + sodipodi:docname="bg-tags.svg" | |
| 19 | + inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
| 20 | + inkscape:export-filename="/home/aurium/noosfero/public/img-source/bg-tags.png" | |
| 21 | + inkscape:export-xdpi="90" | |
| 22 | + inkscape:export-ydpi="90"> | |
| 23 | + <defs | |
| 24 | + id="defs4"> | |
| 25 | + <linearGradient | |
| 26 | + inkscape:collect="always" | |
| 27 | + id="linearGradient3179"> | |
| 28 | + <stop | |
| 29 | + style="stop-color:#ffffff;stop-opacity:1" | |
| 30 | + offset="0" | |
| 31 | + id="stop3181" /> | |
| 32 | + <stop | |
| 33 | + style="stop-color:#000000;stop-opacity:1" | |
| 34 | + offset="1" | |
| 35 | + id="stop3183" /> | |
| 36 | + </linearGradient> | |
| 37 | + <linearGradient | |
| 38 | + inkscape:collect="always" | |
| 39 | + id="linearGradient3169"> | |
| 40 | + <stop | |
| 41 | + style="stop-color:#3465a4;stop-opacity:0.6" | |
| 42 | + offset="0" | |
| 43 | + id="stop3171" /> | |
| 44 | + <stop | |
| 45 | + style="stop-color:#729fcf;stop-opacity:0;" | |
| 46 | + offset="1" | |
| 47 | + id="stop3173" /> | |
| 48 | + </linearGradient> | |
| 49 | + <inkscape:perspective | |
| 50 | + sodipodi:type="inkscape:persp3d" | |
| 51 | + inkscape:vp_x="-50 : 600 : 1" | |
| 52 | + inkscape:vp_y="0 : 1000 : 0" | |
| 53 | + inkscape:vp_z="700 : 600 : 1" | |
| 54 | + inkscape:persp3d-origin="300 : 400 : 1" | |
| 55 | + id="perspective10" /> | |
| 56 | + <linearGradient | |
| 57 | + inkscape:collect="always" | |
| 58 | + xlink:href="#linearGradient3169" | |
| 59 | + id="linearGradient3175" | |
| 60 | + x1="0" | |
| 61 | + y1="200" | |
| 62 | + x2="137" | |
| 63 | + y2="200" | |
| 64 | + gradientUnits="userSpaceOnUse" /> | |
| 65 | + <linearGradient | |
| 66 | + inkscape:collect="always" | |
| 67 | + xlink:href="#linearGradient3179" | |
| 68 | + id="linearGradient3185" | |
| 69 | + x1="0" | |
| 70 | + y1="200" | |
| 71 | + x2="133" | |
| 72 | + y2="200" | |
| 73 | + gradientUnits="userSpaceOnUse" /> | |
| 74 | + <linearGradient | |
| 75 | + inkscape:collect="always" | |
| 76 | + xlink:href="#linearGradient3179" | |
| 77 | + id="linearGradient3197" | |
| 78 | + gradientUnits="userSpaceOnUse" | |
| 79 | + x1="0" | |
| 80 | + y1="200" | |
| 81 | + x2="133" | |
| 82 | + y2="200" /> | |
| 83 | + <mask | |
| 84 | + maskUnits="userSpaceOnUse" | |
| 85 | + id="mask3193"> | |
| 86 | + <rect | |
| 87 | + style="opacity:1;fill:url(#linearGradient3197);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" | |
| 88 | + id="rect3195" | |
| 89 | + width="200" | |
| 90 | + height="200" | |
| 91 | + x="0" | |
| 92 | + y="0" /> | |
| 93 | + </mask> | |
| 94 | + </defs> | |
| 95 | + <sodipodi:namedview | |
| 96 | + id="base" | |
| 97 | + pagecolor="#ffffff" | |
| 98 | + bordercolor="#666666" | |
| 99 | + borderopacity="1.0" | |
| 100 | + inkscape:pageopacity="0.0" | |
| 101 | + inkscape:pageshadow="2" | |
| 102 | + inkscape:zoom="1" | |
| 103 | + inkscape:cx="100" | |
| 104 | + inkscape:cy="100" | |
| 105 | + inkscape:document-units="px" | |
| 106 | + inkscape:current-layer="layer1" | |
| 107 | + showgrid="false" | |
| 108 | + inkscape:window-width="1024" | |
| 109 | + inkscape:window-height="708" | |
| 110 | + inkscape:window-x="0" | |
| 111 | + inkscape:window-y="26" /> | |
| 112 | + <metadata | |
| 113 | + id="metadata7"> | |
| 114 | + <rdf:RDF> | |
| 115 | + <cc:Work | |
| 116 | + rdf:about=""> | |
| 117 | + <dc:format>image/svg+xml</dc:format> | |
| 118 | + <dc:type | |
| 119 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
| 120 | + </cc:Work> | |
| 121 | + </rdf:RDF> | |
| 122 | + </metadata> | |
| 123 | + <g | |
| 124 | + inkscape:label="Camada 1" | |
| 125 | + inkscape:groupmode="layer" | |
| 126 | + id="layer1"> | |
| 127 | + <rect | |
| 128 | + style="opacity:1;fill:url(#linearGradient3175);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" | |
| 129 | + id="rect2389" | |
| 130 | + width="250" | |
| 131 | + height="198" | |
| 132 | + x="1" | |
| 133 | + y="1" | |
| 134 | + ry="10" | |
| 135 | + mask="url(#mask3193)" /> | |
| 136 | + </g> | |
| 137 | +</svg> | ... | ... |
public/stylesheets/blocks/profile-info-block.css
public/stylesheets/blocks/profile-list-block.css
public/stylesheets/common.css
| ... | ... | @@ -336,6 +336,11 @@ body.category4 #content h4, body.category4 #content h5, body.category4 #content |
| 336 | 336 | margin: 0px 0px 10px 0px; |
| 337 | 337 | } |
| 338 | 338 | |
| 339 | +#content ul li { | |
| 340 | + list-style: url(/images/list-dot.gif); | |
| 341 | +} | |
| 342 | + | |
| 343 | + | |
| 339 | 344 | #better-browser-promotion { |
| 340 | 345 | position: absolute; |
| 341 | 346 | top: 100px; | ... | ... |
| ... | ... | @@ -0,0 +1,43 @@ |
| 1 | +#!/bin/bash | |
| 2 | + | |
| 3 | +if ! cd public/images/0000; then | |
| 4 | + echo " | |
| 5 | + Rode esse script na raiz do Noosfero para ele redimensionar as | |
| 6 | + imagens dos usuarios. | |
| 7 | + " | |
| 8 | + exit 1 | |
| 9 | +fi | |
| 10 | + | |
| 11 | +echo " | |
| 12 | + Ok! We are on $(pwd) | |
| 13 | +" | |
| 14 | + | |
| 15 | +thumb='100x100' | |
| 16 | +portrait='64x64' | |
| 17 | +minor='50x50' | |
| 18 | +icon='20x20!' | |
| 19 | +lista='thumb | |
| 20 | +portrait | |
| 21 | +minor' | |
| 22 | +# Padrao: <nome>_<tamanho>.<ext> | |
| 23 | + | |
| 24 | +for s in $lista icon; do | |
| 25 | + echo "Deletando tamanho $s" | |
| 26 | + find . -name "*_$s.*" | xargs -L 1 -I{} rm '{}' | |
| 27 | +done | |
| 28 | + | |
| 29 | +find . -type f | | |
| 30 | +while read img; do | |
| 31 | + for s in $lista; do | |
| 32 | + sN=$( eval "echo \$$s" ) | |
| 33 | + echo "Criando tamanho $s ($sN) para $img" | |
| 34 | + name=$( echo "$img" | sed 's/^\(.*\)\.[^\.]\+$/\1/' ) | |
| 35 | + ext=$( echo "$img" | sed 's/^.*\.\([^\.]\+\)$/\1/' ) | |
| 36 | + convert "$img" -resize $sN "${name}_${s}.$ext" | |
| 37 | + done | |
| 38 | + echo "Criando tamanho icon ($icon) para $img" | |
| 39 | + convert -size $thumb xc:black -gravity Center \ | |
| 40 | + -draw "image over 0,0 0,0 '${name}_thumb.$ext'" \ | |
| 41 | + -resize $icon "${name}_icon.$ext" | |
| 42 | +done | |
| 43 | + | ... | ... |