From 8317ac1525dd97b6c614f02491316bffb3776c2d Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Fri, 10 Dec 2010 13:57:54 -0200 Subject: [PATCH 01/10] corrigido retweeted_user_spec que estava falhando no most_retweeted_for --- config/database.yml.example | 51 ------------------------------ spec/models/retweeted_user_spec.rb | 8 ++--- 2 files changed, 4 insertions(+), 55 deletions(-) delete mode 100644 config/database.yml.example diff --git a/config/database.yml.example b/config/database.yml.example deleted file mode 100644 index 1fd7123..0000000 --- a/config/database.yml.example +++ /dev/null @@ -1,51 +0,0 @@ -# MySQL. Versions 4.1 and 5.0 are recommended. -# -# Install the MySQL driver: -# gem install mysql -# On Mac OS X: -# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql -# On Mac OS X Leopard: -# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config -# This sets the ARCHFLAGS environment variable to your native architecture -# On Windows: -# gem install mysql -# Choose the win32 build. -# Install MySQL and put its /bin directory on your path. -# -# And be sure to use new-style password hashing: -# http://dev.mysql.com/doc/refman/5.0/en/old-client.html -development: - adapter: mysql2 - encoding: utf8 - reconnect: false - database: poliglota_development - pool: 5 - username: root - password: - socket: /tmp/mysql.sock - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: &test - adapter: mysql2 - encoding: utf8 - reconnect: false - database: poliglota_test - pool: 5 - username: root - password: - socket: /tmp/mysql.sock - -production: - adapter: mysql2 - encoding: utf8 - reconnect: false - database: poliglota_production - pool: 5 - username: root - password: - socket: /tmp/mysql.sock - -cucumber: - <<: *test \ No newline at end of file diff --git a/spec/models/retweeted_user_spec.rb b/spec/models/retweeted_user_spec.rb index 0456e6f..c329d66 100644 --- a/spec/models/retweeted_user_spec.rb +++ b/spec/models/retweeted_user_spec.rb @@ -58,8 +58,8 @@ end end - describe '#most_retweeted_for' do - it 'should return only 5 retweeteds within the last 7 days' do + describe '#most_retweeted_for' do + it 'should return only 5 retweeteds within the last 7 days' do group = TagGroup.create :name=>'#ruby' (1..10).each do |i| user_in_range = User.create :twitter_id=>"Baba#{i}" @@ -70,7 +70,7 @@ retweeteds = RetweetedUser.most_retweeted_for(group) retweeteds.should_not =~ user_out_range - retweeteds[0].user.twitter_id.should == 'Baba1' + retweeteds[4].user.twitter_id.should == 'Baba1' #esta falhando aki! está chegando baba4 retweeteds.size.should == 5 end @@ -88,4 +88,4 @@ retweeteds[4].user.twitter_id == 'Baba1' end end -end \ No newline at end of file +end From 1ab0e7dbdfd86eafa3a3035345cf7a0046946419 Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Sun, 12 Dec 2010 21:26:12 -0200 Subject: [PATCH 02/10] incluido JS para esconder e mostrar grupos de tag. --- app/controllers/home_controller.rb | 1 + app/controllers/home_controller.rb~ | 44 ++ app/views/home/index.html.erb | 25 +- app/views/home/index.html.erb~ | 39 + app/views/layouts/application.html.erb | 11 +- app/views/layouts/application.html.erb~ | 69 ++ config/database.yml~ | 51 ++ public/images/hide_button.gif | Bin 0 -> 644 bytes public/javascripts/application.js | 69 ++ public/javascripts/application.js~ | 53 ++ public/stylesheets/screen.css | 95 +-- public/stylesheets/screen.css~ | 948 ++++++++++++++++++++++++ spec/models/retweeted_user_spec.rb | 2 +- spec/models/retweeted_user_spec.rb~ | 91 +++ 14 files changed, 1414 insertions(+), 84 deletions(-) create mode 100644 app/controllers/home_controller.rb~ create mode 100644 app/views/home/index.html.erb~ create mode 100644 app/views/layouts/application.html.erb~ create mode 100644 config/database.yml~ create mode 100644 public/images/hide_button.gif create mode 100644 public/javascripts/application.js~ create mode 100644 public/stylesheets/screen.css~ create mode 100644 spec/models/retweeted_user_spec.rb~ diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 79ceaf1..54b65f4 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -4,6 +4,7 @@ class HomeController < ApplicationController def index page = 1 @tag_groups = TagGroup.all + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. @tweets = {} @links = {} @retweeted_users = {} diff --git a/app/controllers/home_controller.rb~ b/app/controllers/home_controller.rb~ new file mode 100644 index 0000000..933fe47 --- /dev/null +++ b/app/controllers/home_controller.rb~ @@ -0,0 +1,44 @@ +class HomeController < ApplicationController + caches_page :index, :support + + def index + page = 1 + @tag_groups = TagGroup.all + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} + @tweets = {} + @links = {} + @retweeted_users = {} + load_tweets_and_links_for @tag_groups, page + end + + def see_more + @page = params[:page].to_i ||= 1 + @tag_group = TagGroup.find(params[:tag_group].to_i) + @tweets = retrieve_tweets_for @tag_group, @page + has_more_pages(@tag_group) + + render :layout => false + end + + def support + end + + private + + def has_more_pages(tag_group) + total_tweets = Tweet.amount_of_tweets_for @tag_group + @has_more_pages = (total_tweets > @page * Tweet::TWEETS_PER_PAGE) + end + + def load_tweets_and_links_for(tag_groups, page) + tag_groups.each do |tag_group| + @tweets[tag_group.name] = retrieve_tweets_for tag_group, page + @retweeted_users[tag_group.name] = RetweetedUser.most_retweeted_for(tag_group) + @links[tag_group.name] = Link.most_popular_for tag_group + end + end + + def retrieve_tweets_for(tag_group, page) + Tweet.last_tweets_for tag_group, :page=> page + end +end diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 3a96b98..a936d26 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -1,8 +1,11 @@
<% @tag_groups.each do |tag_group| %> -
+

<%=tag_group.name%>

+
+ Botão de esconder linguagem +

Top links

- \ No newline at end of file diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ new file mode 100644 index 0000000..ceeefda --- /dev/null +++ b/app/views/home/index.html.erb~ @@ -0,0 +1,39 @@ +
+ <% @tag_groups.each do |tag_group| %> +
+

<%=tag_group.name%>

+
+
+ Botão de esconder linguagem +
+
+

Top links

+ +
+
    + <% @tweets[tag_group.name].each do |t| %> + <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> + <% end %> +
+
+ <%= next_page_link(1, tag_group.id) %> +
+
+

Mais retweetados em <%=tag_group.name %>

+ <% @retweeted_users[tag_group.name].each do |ru| %> + + <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> + + <% end %> +
+
+
+ <% end %> + Alguma linguagem faltando? Solicite mais linguagens. +
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 1249555..e871bc4 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,7 +4,7 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js' %> <%= csrf_meta_tag %> @@ -17,6 +17,13 @@
  • Programador
    Poliglota
  • Apoie o
    movimento
  • +
    + +

    Programador Poliglota

    @@ -44,7 +51,7 @@
    + + diff --git a/config/database.yml~ b/config/database.yml~ new file mode 100644 index 0000000..1fd7123 --- /dev/null +++ b/config/database.yml~ @@ -0,0 +1,51 @@ +# MySQL. Versions 4.1 and 5.0 are recommended. +# +# Install the MySQL driver: +# gem install mysql +# On Mac OS X: +# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql +# On Mac OS X Leopard: +# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config +# This sets the ARCHFLAGS environment variable to your native architecture +# On Windows: +# gem install mysql +# Choose the win32 build. +# Install MySQL and put its /bin directory on your path. +# +# And be sure to use new-style password hashing: +# http://dev.mysql.com/doc/refman/5.0/en/old-client.html +development: + adapter: mysql2 + encoding: utf8 + reconnect: false + database: poliglota_development + pool: 5 + username: root + password: + socket: /tmp/mysql.sock + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: &test + adapter: mysql2 + encoding: utf8 + reconnect: false + database: poliglota_test + pool: 5 + username: root + password: + socket: /tmp/mysql.sock + +production: + adapter: mysql2 + encoding: utf8 + reconnect: false + database: poliglota_production + pool: 5 + username: root + password: + socket: /tmp/mysql.sock + +cucumber: + <<: *test \ No newline at end of file diff --git a/public/images/hide_button.gif b/public/images/hide_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..cecc263d7df1457d35c22fdd9941e751e3023c7b GIT binary patch literal 644 zcmZ?wbhEHb6k-r!c*el+=g*&Czkbb`Gv~pB2cJKG-n@D9ym|9>@8138%a;!yK5W>q zVdl)4OP4OafB*iBX;W6NT>0qHql*_WE?>TU_Uzev_Uw7{=FN%~D|YSL_4x7QxpU{P zS+i!-rcLwb&)>0Q$GUav?%lh4;r#h++qUiAxpVr|DJPB}`}XbIt5>ghyv~m5BBS%)PS~X+()EU#KzkK;}=FAy;cJI1y{@j%-SAP8X@%#7h zpFe;8`}gnf-@ntRPoFw<>a=OoX3UuJ|Nno6p$rs%vVfhh10q3j!odEp!NStQ!9hZV zUs94^M548+rIm%%e(JQTtSk-|=2ljsY||Invx!<+TCpr#yoilu-ju1*iqmNSg-*38BR$C!le z-oBMmeX7aF_fA;oot+fNO@^BaUvGKtc+kgeUu?4Bt-`~1hZxGG85lAI4!3v6Fxc&o zW^ib<7T2ij$+*7gSZ5g*!vhb61?{J&8^m&X2q?JoN$Msa5=l6;?Ceyol3gJVm!I`6 XW-KsyaUkI!6Pv8m6`Lw$0S0RTf-C5; literal 0 HcmV?d00001 diff --git a/public/javascripts/application.js b/public/javascripts/application.js index fe45776..8da4b60 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1,2 +1,71 @@ // Place your application-specific JavaScript functions and classes here // This file is automatically included by javascript_include_tag :defaults + + +//função para mostrar mais twits + $(function() { + registerEvent(); + }); + + function registerEvent() { + $(".ver_mais").click(function() { + elemento = $(this); + url = $(this).attr('href'); + $.get(url, function(data) { + div = elemento.parent().parent(); + div.find('.ver_mais').remove(); + div.find('.bloco_ver_mais').remove(); + div.find('.newsLang').replaceWith(data); + registerEvent(); + }); + return false; + }); + } + +$(document).ready(function(){ + $('#lang01 a.hide').click(function(){ + $('div#lang01').hide(); + }); + $('#lang02 a.hide').click(function(){ + $('div#lang02').hide(); + }); + $('#lang03 a.hide').click(function(){ + $('div#lang03').hide(); + }); + $('#lang04 a.hide').click(function(){ + $('div#lang04').hide(); + }); + $('#lang05 a.hide').click(function(){ + $('div#lang05').hide(); + }); + $('#lang06 a.hide').click(function(){ + $('div#lang06').hide(); + }); + $('#lang07 a.hide').click(function(){ + $('div#lang07').hide(); + }); +}); + +$(document).ready(function(){ + $('#link01').click(function(){ + $('div#lang01').show(); + }); + $('#link02').click(function(){ + $('div#lang02').show(); + }); + $('#link03').click(function(){ + $('div#lang03').show(); + }); + $('#link04').click(function(){ + $('div#lang04').show(); + }); + $('#link05').click(function(){ + $('div#lang05').show(); + }); + $('#link06').click(function(){ + $('div#lang06').show(); + }); + $('#link07').click(function(){ + $('div#lang07').show(); + }); +}); diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ new file mode 100644 index 0000000..f3910df --- /dev/null +++ b/public/javascripts/application.js~ @@ -0,0 +1,53 @@ +// Place your application-specific JavaScript functions and classes here +// This file is automatically included by javascript_include_tag :defaults + + +//função para mostrar mais twits + $(function() { + registerEvent(); + }); + + function registerEvent() { + $(".ver_mais").click(function() { + elemento = $(this); + url = $(this).attr('href'); + $.get(url, function(data) { + div = elemento.parent().parent(); + div.find('.ver_mais').remove(); + div.find('.bloco_ver_mais').remove(); + div.find('.newsLang').replaceWith(data); + registerEvent(); + }); + return false; + }); + } + +$(document).ready(function(){ + $('#lang01 a.hide').click(function(){ + $('div#lang01').hide(); + }); + $('#lang02 a.hide').click(function(){ + $('div#lang02').hide(); + }); + $('#lang03 a.hide').click(function(){ + $('div#lang03').hide(); + }); + $('#lang04 a.hide').click(function(){ + $('div#lang04').hide(); + }); + $('#lang05 a.hide').click(function(){ + $('div#lang05').hide(); + }); + $('#lang06 a.hide').click(function(){ + $('div#lang06').hide(); + }); + $('#lang07 a.hide').click(function(){ + $('div#lang07').hide(); + }); +}); + +$(document).ready(function(){ + $('#link01').click(function(){ + $('div#lang01').show(); + }); +}); diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index a4d40e5..ac8843d 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -1,62 +1,5 @@ /* css reset*/ -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -font, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -dd, -dl, -dt, -li, -ol, -ul, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td { +* { margin: 0; padding: 0; border: 0; @@ -67,6 +10,8 @@ td { font-family: inherit; text-align: left; } + +/* table { border-collapse: collapse; border-spacing: 0; @@ -83,6 +28,7 @@ blockquote:after { a img, :link img, :visited img { border: none; } +*/ /*end css reset*/ /*colorscheme*/ /*colorscheme*/ @@ -247,6 +193,7 @@ body { display: block; position: relative; overflow: hidden; + } #contentWrap #contentPP { display: block; @@ -310,7 +257,7 @@ body { padding: 0px 5px 5px 5px; margin: 0px; left: 10px; - top: 0px; + top: -2px; font-size: 25px; font-weight: 700; color: #505050; @@ -323,7 +270,7 @@ body { width: 100%; height: auto; margin-top: 12px; - padding-top: 20px; + padding-top:10px; z-index: 500; border-radius: 4px; -webikit-border-radius: 4px; @@ -967,3 +914,31 @@ body { float: right; } /*grid less*/ + +#hideLang { +padding-right:10px; +text-align:right ; +position:relative; +top:-10px; +padding-top:4px; +} +#menuLang{ + display: block; + position: relative; + overflow: hidden; + float: right; + margin-top: 12px; +width:260px; +} +#menuLang li{ +display:inline-block; +padding:5px; +} +.linkLang{ +color:white; +text-decoration:none; +} +.linkLang:hover{ +color:black; +background:white; +} diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ new file mode 100644 index 0000000..c319f91 --- /dev/null +++ b/public/stylesheets/screen.css~ @@ -0,0 +1,948 @@ +/* css reset*/ +* { + margin: 0; + padding: 0; + border: 0; + font-weight: normal; + font-style: normal; + font-size: 100%; + line-height: 1; + font-family: inherit; + text-align: left; +} + +/* +table { + border-collapse: collapse; + border-spacing: 0; +} +ol, ul { + list-style: none; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +a img, :link img, :visited img { + border: none; +} +*/ +/*end css reset*/ +/*colorscheme*/ +/*colorscheme*/ +.blockR { + display: block; + position: relative; + overflow: hidden; +} +.blockA { + display: block; + position: absolute; + oveflow: hidden; +} +body { + background: #646464 url('img/bgSite.png'); + font-family: 'Lucida Grande',sans-serif +} +#headerWrap { + background: #1e1e1e url('img/csg-4c80248723095.png') repeat-x 0 0; + width: 100%; + height: 103px; + display: block; + position: relative; + overflow: hidden; +} +#headerWrap a#twitterPageTurn { + background: url('img/csg-4c80248723095.png') no-repeat 0px -916px; + width: 132px; + height: 103px; + display: block; + position: absolute; + oveflow: hidden; + top: 0px; + left: 0px; + z-index: 800; +} +#headerWrap a#twitterPageTurn:hover { + background-position: 0 -1039px; +} +#headerWrap a#twitterPageTurn span { + display: none; +} +#headerWrap #headerPP { + display: block; + position: relative; + overflow: hidden; + margin: 0px auto; + z-index: 700; + height: auto; +} +#headerWrap #headerPP h1#logoPP { + background: url('img/csg-4c80248723095.png') no-repeat 0 -793px; + display: block; + position: relative; + overflow: hidden; + float: left; + width: 313px; + height: 103px; +} +#headerWrap #headerPP h1#logoPP a { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: 100%; + background: url('img/csg-4c810f0a3c172.png') no-repeat top left; + width: 275px; + height: 76px; + text-decoration: none; + cursos: pointer; + margin-left: 25px; + margin-top: 5px; +} +#headerWrap #headerPP h1#logoPP a:hover { + background-position: 0 -96px; + width: 275px; + height: 76px; +} +#headerWrap #headerPP h1#logoPP a span { + display: none; +} +#headerWrap #headerPP #menu { + display: block; + position: relative; + overflow: hidden; + float: right; + margin-top: 12px; +} +#headerWrap #headerPP #menu li { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; + margin-right: 20px; +} +#headerWrap #headerPP #menu li a { + background: url('img/csg-4c80248723095.png') no-repeat; + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; + cursor: pointer; + text-decoration: none; +} +#headerWrap #headerPP #menu li a:hover { + background-color: #ffffff; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + -webikit-border-top-left-radius: 4px; + -webikit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; +} +#headerWrap #headerPP #menu li a span { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + padding: 1px; + font-size: 16px; + z-index: 600; +} +#headerWrap #headerPP #menu li a#menuHomePP { + background-position: 8px -355px; + padding: 15px 10px 15px 60px; + color: #ffffff; + /*width: 46px; height: 48px;*/ +} +#headerWrap #headerPP #menu li a#menuHomePP:hover { + background-position: 8px -423px; + color: #1e1e1e; +} +#headerWrap #headerPP #menu li a#menuApoiePP { + background-position: 5px -166px; + padding: 15px 10px 15px 60px; + color: #ffffff; + /*width: 48px; height: 48px;*/ +} +#headerWrap #headerPP #menu li a#menuApoiePP:hover { + background-position: 5px -234px; + color: #1e1e1e; +} +#headerWrap #headerPP #menu li a#menuSobrePP { + background-position: 10px -543px; + padding: 15px 10px 15px 60px; + color: #ffffff; + /*width: 44px; height: 48px;*/ +} +#headerWrap #headerPP #menu li a#menuSobrePP:hover { + background-position: 10px -611px; + color: #1e1e1e; +} +#contentWrap { + background: #ffffff; + width: 100%; + height: auto; + display: block; + position: relative; + overflow: hidden; + +} +#contentWrap #contentPP { + display: block; + position: relative; + overflow: hidden; + margin: 0px auto; + padding: 0px; + height: auto; + /*Structural Scheme*/ + + /*Color Scheme*/ + +} +#contentWrap #contentPP .moreLangOptions { + display: block; + position: relative; + overflow: hidden; + height: auto; + margin-bottom: 10px; + background: #646464; + clear: both; + text-decoration: none; + text-align: center; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; +} +#contentWrap #contentPP .moreLangOptions:hover { + background: #1e1e1e; +} +#contentWrap #contentPP .moreLangOptions span { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + margin: 20px auto; + font-weight: bold; + font-size: 16px; + text-align: center; + text-transform: uppercase; + color: #ffffff; +} +#contentWrap #contentPP .lang01, +#contentWrap #contentPP .lang02, +#contentWrap #contentPP .lang03, +#contentWrap #contentPP .lang04, +#contentWrap #contentPP .lang05, +#contentWrap #contentPP .lang06, +#contentWrap #contentPP .lang07 { + display: block; + position: relative; +} +#contentWrap #contentPP .headerLang { + display: block; + position: absolute; + oveflow: hidden; + width: auto; + height: auto; + background: #ffffff; + padding: 0px 5px 5px 5px; + margin: 0px; + left: 10px; + top: -2px; + font-size: 25px; + font-weight: 700; + color: #505050; + z-index: 600; +} +#contentWrap #contentPP .shapeLang { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: auto; + margin-top: 12px; + padding-top:10px; + z-index: 500; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; +} +#contentWrap #contentPP .shapeLang .newsLang { + display: block; + position: relative; + overflow: hidden; + width: 95%; + height: auto; + clear: both; + margin: 0px auto; +} +#contentWrap #contentPP .shapeLang .newsLang li { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: auto; + font-size: 13px; + padding: 0px 0px 5px 0px; + margin: 0px 0px 5px 0px; + border-bottom: 1px solid #000068; +} +#contentWrap #contentPP .shapeLang .newsLang li img { + display: block; + position: relative; + overflow: hidden; + float: left; + width: auto; + height: auto; +} +#contentWrap #contentPP .shapeLang .newsLang .twitter_time a { + color: #999999; + font-size: 11px; +} + +#contentWrap #contentPP .shapeLang .newsLang .tweet_text { + font-size: 12px; +} + +.twitter_photo { + width: 48px; + height: 48px; +} + +#contentWrap #contentPP .shapeLang .newsLang li p { + display: block; + position: relative; + overflow: hidden; + float: left; + width: 74%; + height: auto; + margin-left: 5px; + padding: 2px 0px; + line-height: 14px; +} +#contentWrap #contentPP .shapeLang .newsLang li a { + text-decoration: none; + font-weight: bold; + color: #2e35cc; + padding: 0px; +} +#contentWrap #contentPP .shapeLang .newsLang li a:hover { + color: #646464; + text-decoration: underline; +} +#contentWrap #contentPP .shapeLang .btnMoreTweets { + /*display: block;*/ + position: relative; + overflow: hidden; + width: 80px; + height: auto; + /*float: right;*/ + text-align: center; + text-decoration: none; + text-transform: uppercase; + margin: 0px 5px 10px 0px; + padding: 5px 10px; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; +} +#contentWrap #contentPP .shapeLang .linkLang { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: auto; + margin: 0px; + padding: 0px; +} +#contentWrap #contentPP .shapeLang .linkLang h3 { + display: block; + position: relative; + overflow: hidden; + width: 100%; + height: auto; + float: left; + font-size: 16px; + font-weight: bold; + margin: 0px; + padding: 10px 0px 10px 5px; +} +#contentWrap #contentPP .shapeLang .linkLang ul { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; +} +#contentWrap #contentPP .shapeLang .linkLang ul li { + display: block; + position: relative; + overflow: hidden; + width: 95%; + height: auto; + font-size: 11px; + padding-bottom: 5px; + margin: 0px auto 5px auto; +} +#contentWrap #contentPP .shapeLang .linkLang ul li a { + text-decoration: none; +} +#contentWrap #contentPP .shapeLang .linkLang .btnMore { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: right; + text-decoration: none; + text-transform: uppercase; + margin: 0px 5px 10px 0px; + padding: 5px 10px; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; +} +#contentWrap #contentPP .lang01 .shapeLang { + border: #ff6666 solid 2px; +} +#contentWrap #contentPP .lang01 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang01 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang { + background-color: #ff6666; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #9b0202; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang li a { + color: #9b0202; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang li a:hover { + color: #646464; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang .btnMore { + background: #b92020; + color: #ffffff; +} +#contentWrap #contentPP .lang01 .shapeLang .linkLang .btnMore:hover { + color: #b92020; + background: #ffffff; +} +#contentWrap #contentPP .lang02 .shapeLang { + border: #2e35cc solid 2px; +} +#contentWrap #contentPP .lang02 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang02 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang { + background-color: #2e35cc; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #000068; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang li a { + color: #8fd6fe; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang .btnMore { + background: #000086; + color: #ffffff; +} +#contentWrap #contentPP .lang02 .shapeLang .linkLang .btnMore:hover { + color: #000086; + background: #ffffff; +} +#contentWrap #contentPP .lang03 .shapeLang { + border: #6699ff solid 2px; +} +#contentWrap #contentPP .lang03 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang03 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang { + background-color: #6699ff; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #02359b; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang li a { + color: #02359b; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang .btnMore { + background: #2053b9; + color: #ffffff; +} +#contentWrap #contentPP .lang03 .shapeLang .linkLang .btnMore:hover { + color: #2053b9; + background: #ffffff; +} + +#contentWrap #contentPP .lang01 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #FF6666; +} +#contentWrap #contentPP .lang02 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #2E35CC; +} +#contentWrap #contentPP .lang05 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #2F6600; +} +#contentWrap #contentPP .lang03 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #6699FF; +} +#contentWrap #contentPP .lang04 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #59597A; +} +#contentWrap #contentPP .lang06 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #398F41; +} +#contentWrap #contentPP .lang07 .retweetedPeopleLang { + padding: 4px; + text-align: center; + background-color: #b9c849; +} + +.retweetedPeopleLang h3 { + text-align: center; + padding-bottom: 4px; + color: #FFFFFF; +} +#contentWrap #contentPP .lang04 .shapeLang { + border: #59597a solid 2px; +} +#contentWrap #contentPP .lang04 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang04 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang { + background-color: #59597a; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #000016; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang li a { + color: #000016; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang .btnMore { + background: #131334; + color: #ffffff; +} +#contentWrap #contentPP .lang04 .shapeLang .linkLang .btnMore:hover { + color: #131334; + background: #ffffff; +} +#contentWrap #contentPP .lang05 .shapeLang { + border: #2f6f00 solid 2px; +} +#contentWrap #contentPP .lang05 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang05 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang { + background-color: #2f6f00; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #000b00; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang li a { + color: #000b00; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang .btnMore { + background: #002900; + color: #ffffff; +} +#contentWrap #contentPP .lang05 .shapeLang .linkLang .btnMore:hover { + color: #002900; + background: #ffffff; +} +#contentWrap #contentPP .lang06 .shapeLang { + border: #398f41 solid 2px; +} +#contentWrap #contentPP .lang06 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang06 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang { + background-color: #398f41; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #002b00; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang li a { + color: #002b00; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang .btnMore { + background: #004900; + color: #ffffff; +} +#contentWrap #contentPP .lang06 .shapeLang .linkLang .btnMore:hover { + color: #004900; + background: #ffffff; +} +#contentWrap #contentPP .lang07 .shapeLang { + border: #b9c849 solid 2px; +} +#contentWrap #contentPP .lang07 .shapeLang .btnMoreTweets { + background-color: #646464; + color: #ffffff; +} +#contentWrap #contentPP .lang07 .shapeLang .btnMoreTweets:hover { + background-color: #1017ae; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang { + background-color: #b9c849; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang h3 { + color: #ffffff; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang li { + color: #ffffff; + border-bottom: 1px solid #002b00; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang li a { + color: #002b00; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang li a:hover { + color: #ffffff; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang .btnMore { + background: #004900; + color: #ffffff; +} +#contentWrap #contentPP .lang07 .shapeLang .linkLang .btnMore:hover { + color: #004900; + background: #ffffff; +} + +#contentWrap #supportPP { + margin:40px; +} +#contentWrap #supportPP p { + padding: 10px; + line-height: 30px; +} +#contentWrap #supportPP a { + text-decoration: none; + font-weight: bold; + color: #2e35cc; + padding: 0px; +} +#contentWrap #supportPP a:hover { + color: #646464; + text-decoration: underline; +} +#contentWrap #supportPP h2 { + color:#1E829F; + font-size:30px; + font-weight:bold; + letter-spacing:-1px; + line-height:30px; + margin-bottom:10px; +} +#contentWrap #supportPP h3 { + color:#666666; + font-size:20px; + font-weight:bold; + letter-spacing:-1px; + line-height:20px; + margin-bottom:20px; +} +#contentWrap #supportPP pre { + -moz-background-clip:border; + -moz-background-inline-policy:continuous; + -moz-background-origin:padding; + background:#F6F6F6 repeat-y scroll left top; + color:#333344; + font-family:"Courier New",fixed; + font-size:80%; + line-height:20px; + margin:20px 40px 20px 20px; + padding:10px 10px 10px 30px; + white-space:pre; + width: 700px; +} + +#footerWrap { + width: 100%; + height: auto; + display: block; + position: relative; + overflow: hidden; +} +#footerWrap #footerPP { + display: block; + position: relative; + overflow: hidden; + height: auto; + margin: 0 auto; +} +#footerWrap #footerPP #socialFooter { + display: block; + position: relative; + overflow: hidden; + float: left; + width: auto; + height: auto; + margin-top: 10px; + font-size: 16px; + text-transform: uppercase; +} +#footerWrap #footerPP #socialFooter p { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; + font-weight: 700; + color: #ffffff; +} +#footerWrap #footerPP #socialFooter p span { + display: block; + position: relative; + overflow: hidden; + float: left; + margin-top: 6px; + margin-right: 10px; +} +#footerWrap #footerPP #socialFooter p a { + background: url('img/csg-4c80248723095.png') repeat-x left top; + display: block; + position: relative; + overflow: hidden; + float: left; + margin-right: 10px; +} +#footerWrap #footerPP #socialFooter p a span { + display: none; +} +#footerWrap #footerPP #socialFooter p #facebookFooter { + background-position: 0 -689px; + width: 32px; + height: 32px; +} +#footerWrap #footerPP #socialFooter p #facebookFooter:hover { + background-position: 0 -741px; + width: 32px; + height: 32px; +} +#footerWrap #footerPP #socialFooter p #twitterFooter { + background-position: 0 -1162px; + width: 31px; + height: 32px; +} +#footerWrap #footerPP #socialFooter p #twitterFooter:hover { + background-position: 0 -1214px; + width: 31px; + height: 32px; +} +#footerWrap #footerPP #menuFooter { + display: block; + position: relative; + overflow: hidden; + float: right; +} +#footerWrap #footerPP #menuFooter li { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; + margin-right: 20px; +} +#footerWrap #footerPP #menuFooter li a { + background: #ffffff url('img/csg-4c80248723095.png') no-repeat; + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + float: left; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + -webikit-border-bottom-left-radius: 4px; + -webikit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + cursor: pointer; + text-decoration: none; +} +#footerWrap #footerPP #menuFooter li a:hover { + color: blue; +} +#footerWrap #footerPP #menuFooter li a span { + display: block; + position: relative; + overflow: hidden; + width: auto; + height: auto; + padding: 1px; + font-size: 11px; + font-weight: bold; + z-index: 600; +} +#footerWrap #footerPP #menuFooter li #menuFooterHomePP { + background-position: 3px -310px; + padding: 5px 10px 10px 40px; +} +#footerWrap #footerPP #menuFooter li #menuFooterSobrePP { + background-position: 3px -499px; + padding: 5px 10px 10px 40px; +} +#footerWrap #footerPP #menuFooter li #menuFooterApoiePP { + background-position: 3px -121px; + padding: 5px 10px 10px 40px; +} + +.bloco_ver_mais { + padding: 5px; + margin-bottom: 5px; + display:block; +} + +/*grid less*/ +.size1 { + width: 960px; +} +.size1_null { + width: 944px; + margin-right: 20px; +} +.size2 { + width: 460px; + margin-right: 20px; +} +.size3 { + width: 300px; + margin-right: 20px; + min-height: 650px; +} +.size4 { + width: 220px; + margin-right: 20px; +} +.last { + margin-right: 0; +} +.bSpace01 { + margin-bottom: 10px; +} +.fLeft { + float: left; +} +.fRight { + float: right; +} +/*grid less*/ + +#hideLang { +padding-right:10px; +text-align:right ; +position:relative; +top:-10px; +padding-top:4px; +} + +#menuLang{ + display: block; + position: relative; + overflow: hidden; + float: right; + margin-top: 12px; +width:260px; +} + +#menuLang li{ +display:inline-block; +padding:5px; +} + +.linkLang{ +color:white; +text-decoration:none; +} + +.linkLang:hover{ +color:black; +background:white; +} diff --git a/spec/models/retweeted_user_spec.rb b/spec/models/retweeted_user_spec.rb index c329d66..ac9a415 100644 --- a/spec/models/retweeted_user_spec.rb +++ b/spec/models/retweeted_user_spec.rb @@ -70,7 +70,7 @@ retweeteds = RetweetedUser.most_retweeted_for(group) retweeteds.should_not =~ user_out_range - retweeteds[4].user.twitter_id.should == 'Baba1' #esta falhando aki! está chegando baba4 + retweeteds[4].user.twitter_id.should == 'Baba1' #é 4 por que o metodo organiza de maneira decrescente retweeteds.size.should == 5 end diff --git a/spec/models/retweeted_user_spec.rb~ b/spec/models/retweeted_user_spec.rb~ new file mode 100644 index 0000000..c329d66 --- /dev/null +++ b/spec/models/retweeted_user_spec.rb~ @@ -0,0 +1,91 @@ +require 'spec_helper' + +describe RetweetedUser do + describe '#scan_for_retweeteds' do + it 'should find the retweeted user when there is only one RT on the message' do + found = RetweetedUser.scan_for_retweeteds 'RT @adrianoalmeida7: this is a RT' + + found.size.should == 1 + found[0].should == 'adrianoalmeida7' + end + + it 'should find the two retweeted users when there are two RT on the message' do + found = RetweetedUser.scan_for_retweeteds 'RT @adrianoalmeida7: RT @lucasas: this is double a RT' + + found.size.should == 2 + found[0].should == 'adrianoalmeida7' + found[1].should == 'lucasas' + end + end + + describe '#extract_retweets_from' do + it 'should create a new retweeted user when a user who wasnt retweeted before is found' do + user = User.create :twitter_id=>'adrianoalmeida7' + tag = TagGroup.create :name=>'#java' + tweet = Tweet.new :text=>'RT @adrianoalmeida7: a tweet', :tag_group=>tag + + RetweetedUser.extract_retweets_from tweet + + RetweetedUser.count.should == 1 + end + + it 'should create another retweeted user when one was previously created' do + user = User.create :twitter_id=>'adrianoalmeida7' + tag = TagGroup.create :name=>'#java' + RetweetedUser.create :user=>user, :tag_group=>tag + tweet = Tweet.new :text=>'RT @adrianoalmeida7: a tweet', :tag_group=>tag + + RetweetedUser.extract_retweets_from tweet + + RetweetedUser.count.should == 2 + end + + it 'should create new retweeted user for different tag groups' do + user = User.create :twitter_id=>'adrianoalmeida7' + java_tag = TagGroup.create :name=>'#java' + ruby_tag = TagGroup.create :name=>'#ruby' + RetweetedUser.create :user=>user, :tag_group=>java_tag + tweet = Tweet.new :text=>'RT @adrianoalmeida7: a tweet', :tag_group=>ruby_tag + + RetweetedUser.extract_retweets_from tweet + + ruby_rts = RetweetedUser.find_all_by_user_id_and_tag_group_id(user.id, ruby_tag.id) + ruby_rts.size.should == 1 + + java_rts = RetweetedUser.find_all_by_user_id_and_tag_group_id(user.id, java_tag.id) + java_rts.size.should == 1 + + end + end + + describe '#most_retweeted_for' do + it 'should return only 5 retweeteds within the last 7 days' do + group = TagGroup.create :name=>'#ruby' + (1..10).each do |i| + user_in_range = User.create :twitter_id=>"Baba#{i}" + RetweetedUser.create :user=>user_in_range, :tag_group=>group, :created_at => 2.days.ago + end + user_out_range = User.create :twitter_id=>'Lili' + RetweetedUser.create :user=>user_out_range, :tag_group=>group, :created_at => 8.days.ago + + retweeteds = RetweetedUser.most_retweeted_for(group) + retweeteds.should_not =~ user_out_range + retweeteds[4].user.twitter_id.should == 'Baba1' #esta falhando aki! está chegando baba4 + retweeteds.size.should == 5 + end + + it 'should return the 5 most retweeted users ordered by the amount of RTs' do + group = TagGroup.create :name=>'#ruby' + (1..5).each do |i| + user_in_range = User.create :twitter_id=>"Baba#{i}" + i.times do + RetweetedUser.create :user=>user_in_range, :tag_group=>group, :created_at => 2.days.ago + end + end + + retweeteds = RetweetedUser.most_retweeted_for(group) + retweeteds[0].user.twitter_id == 'Baba5' + retweeteds[4].user.twitter_id == 'Baba1' + end + end +end From a7ae8dad50cbbaf7d04c2d96547874286b8db0ff Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Mon, 13 Dec 2010 14:17:27 -0200 Subject: [PATCH 03/10] incluido cookies para lembrar preferencias na exibicao de grupos de tags --- app/controllers/home_controller.rb | 9 ++- app/controllers/home_controller.rb~ | 11 ++- app/views/home/index.html.erb~ | 2 +- app/views/layouts/application.html.erb | 4 +- app/views/layouts/application.html.erb~ | 4 +- public/javascripts/application.js | 67 +++++++---------- public/javascripts/application.js~ | 49 +++++++------ public/javascripts/jquery.cookie.js | 96 +++++++++++++++++++++++++ 8 files changed, 172 insertions(+), 70 deletions(-) create mode 100644 public/javascripts/jquery.cookie.js diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 54b65f4..d8604bc 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,10 +1,10 @@ class HomeController < ApplicationController caches_page :index, :support + before_filter :load_tag_groups, :only=> [:support,:index] + def index page = 1 - @tag_groups = TagGroup.all - @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. @tweets = {} @links = {} @retweeted_users = {} @@ -41,4 +41,9 @@ def load_tweets_and_links_for(tag_groups, page) def retrieve_tweets_for(tag_group, page) Tweet.last_tweets_for tag_group, :page=> page end + + def load_tag_groups + @tag_groups = TagGroup.all + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. + end end diff --git a/app/controllers/home_controller.rb~ b/app/controllers/home_controller.rb~ index 933fe47..47670bb 100644 --- a/app/controllers/home_controller.rb~ +++ b/app/controllers/home_controller.rb~ @@ -1,10 +1,12 @@ class HomeController < ApplicationController caches_page :index, :support + before_filter :load_tag_groups + def index page = 1 @tag_groups = TagGroup.all - @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. @tweets = {} @links = {} @retweeted_users = {} @@ -21,6 +23,8 @@ class HomeController < ApplicationController end def support + @tag_groups = TagGroup.all + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. end private @@ -41,4 +45,9 @@ class HomeController < ApplicationController def retrieve_tweets_for(tag_group, page) Tweet.last_tweets_for tag_group, :page=> page end + + def load_tag_groups + @tag_groups = TagGroup.all + @tag_g = @tag_groups.sort {|a,b| a[:name].length <=> b[:name].length} #organiza pelo comprimento do nome para caber no cabeçalho do site. + end end diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index ceeefda..a936d26 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -1,6 +1,6 @@
    <% @tag_groups.each do |tag_group| %> -
    +

    <%=tag_group.name%>

    diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index e871bc4..923548c 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,7 +4,7 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js','jquery.cookie.js' %> <%= csrf_meta_tag %> @@ -20,7 +20,7 @@ diff --git a/app/views/layouts/application.html.erb~ b/app/views/layouts/application.html.erb~ index 70b7a83..2f82436 100644 --- a/app/views/layouts/application.html.erb~ +++ b/app/views/layouts/application.html.erb~ @@ -4,7 +4,7 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js','jquery.cookie.js' %> <%= csrf_meta_tag %> @@ -20,7 +20,7 @@
    diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 8da4b60..c8467ec 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -22,50 +22,37 @@ }); } +// recupera todos os cookies e mostra os grupos de tags de acordo com os valores dos cookies $(document).ready(function(){ - $('#lang01 a.hide').click(function(){ - $('div#lang01').hide(); - }); - $('#lang02 a.hide').click(function(){ - $('div#lang02').hide(); - }); - $('#lang03 a.hide').click(function(){ - $('div#lang03').hide(); - }); - $('#lang04 a.hide').click(function(){ - $('div#lang04').hide(); - }); - $('#lang05 a.hide').click(function(){ - $('div#lang05').hide(); - }); - $('#lang06 a.hide').click(function(){ - $('div#lang06').hide(); - }); - $('#lang07 a.hide').click(function(){ - $('div#lang07').hide(); - }); + var i=0; + for (i=1;i<=7;i++) { + var id = 'lang0'+i; + if ($.cookie(id) == null) //cookie sem valor, mostra todas as linguagens + $('div#lang0'+i).show(); + else if ($.cookie(id) == 1) + // Exibimos + $('div#lang0'+i).show(); + else if ($.cookie(id) == 0) + $('div#lang0'+i).hide(); + } }); +//esconde grupode de tags e grava cookie $(document).ready(function(){ - $('#link01').click(function(){ - $('div#lang01').show(); - }); - $('#link02').click(function(){ - $('div#lang02').show(); + $('a.hide').click(function(){ + var id = $(this).parent().parent().parent().attr('id'); + $('div#'+id).hide(function(){ + $.cookie(id, 0, {expires: 365}); + }); }); - $('#link03').click(function(){ - $('div#lang03').show(); - }); - $('#link04').click(function(){ - $('div#lang04').show(); - }); - $('#link05').click(function(){ - $('div#lang05').show(); - }); - $('#link06').click(function(){ - $('div#lang06').show(); - }); - $('#link07').click(function(){ - $('div#lang07').show(); +}); + +//mostra grupo de tags e grava cookie +$(document).ready(function(){ + $('a.linkLang').click(function(){ + var id = 'lang0'+$(this).attr('id'); + $('div#'+id).show('fast',function(){ + $.cookie(id, 1, {expires: 365}); }); + }); }); diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ index f3910df..6fe5966 100644 --- a/public/javascripts/application.js~ +++ b/public/javascripts/application.js~ @@ -22,32 +22,37 @@ }); } +// recupera todos os cookies e mostra os grupos de tags de acordo com os valores dos cookies $(document).ready(function(){ - $('#lang01 a.hide').click(function(){ - $('div#lang01').hide(); - }); - $('#lang02 a.hide').click(function(){ - $('div#lang02').hide(); - }); - $('#lang03 a.hide').click(function(){ - $('div#lang03').hide(); - }); - $('#lang04 a.hide').click(function(){ - $('div#lang04').hide(); - }); - $('#lang05 a.hide').click(function(){ - $('div#lang05').hide(); - }); - $('#lang06 a.hide').click(function(){ - $('div#lang06').hide(); - }); - $('#lang07 a.hide').click(function(){ - $('div#lang07').hide(); + var i=0; + for (i=1;i<=7;i++) { + var id = 'lang0'+i; + if ($.cookie(id) == null) //cookie sem valor, mostra todas as linguagens + $('div#lang0'+i).show(); + else if ($.cookie(id) == 1) + // Exibimos + $('div#lang0'+i).show(); + else if ($.cookie(id) == 0) + $('div#lang0'+i).hide(); + } +}); + +//esconde grupode de tags e grava cookie +$(document).ready(function(){ + $('a.hide').click(function(){ + var id = $(this).parent().parent().parent().attr('id'); + $('div#'+id).hide(function(){ + $.cookie(id, 0, {expires: 365}); + }); }); }); +//mostra grupo de tags e grava cookie $(document).ready(function(){ - $('#link01').click(function(){ - $('div#lang01').show(); + $('a.linkLang').click(function(){ + var id = $(this).attr('id'); + $('div#'+id).show('fast',function(){ + $.cookie(id, 1, {expires: 365}); + }); }); }); diff --git a/public/javascripts/jquery.cookie.js b/public/javascripts/jquery.cookie.js new file mode 100644 index 0000000..6df1fac --- /dev/null +++ b/public/javascripts/jquery.cookie.js @@ -0,0 +1,96 @@ +/** + * Cookie plugin + * + * Copyright (c) 2006 Klaus Hartl (stilbuero.de) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +/** + * Create a cookie with the given name and value and other optional parameters. + * + * @example $.cookie('the_cookie', 'the_value'); + * @desc Set the value of a cookie. + * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); + * @desc Create a cookie with all available options. + * @example $.cookie('the_cookie', 'the_value'); + * @desc Create a session cookie. + * @example $.cookie('the_cookie', null); + * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain + * used when the cookie was set. + * + * @param String name The name of the cookie. + * @param String value The value of the cookie. + * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. + * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. + * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. + * If set to null or omitted, the cookie will be a session cookie and will not be retained + * when the the browser exits. + * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). + * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). + * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will + * require a secure protocol (like HTTPS). + * @type undefined + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ + +/** + * Get the value of a cookie with the given name. + * + * @example $.cookie('the_cookie'); + * @desc Get the value of a cookie. + * + * @param String name The name of the cookie. + * @return The value of the cookie. + * @type String + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ +jQuery.cookie = function(name, value, options) { + if (typeof value != 'undefined') { // name and value given, set cookie + options = options || {}; + if (value === null) { + value = ''; + options.expires = -1; + } + var expires = ''; + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { + var date; + if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); + } else { + date = options.expires; + } + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE + } + // CAUTION: Needed to parenthesize options.path and options.domain + // in the following expressions, otherwise they evaluate to undefined + // in the packed version for some reason... + var path = options.path ? '; path=' + (options.path) : ''; + var domain = options.domain ? '; domain=' + (options.domain) : ''; + var secure = options.secure ? '; secure' : ''; + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); + } else { // only name given, get cookie + var cookieValue = null; + if (document.cookie && document.cookie != '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) == (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } +}; \ No newline at end of file From 51bf7b1e711fac27c7ba07031f6accf7daf9657a Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Mon, 13 Dec 2010 15:58:25 -0200 Subject: [PATCH 04/10] Incluido drag and dropg, sem cookie, falta estilizar o placeHolder --- app/views/home/index.html.erb | 70 +++++++++++++------------ app/views/home/index.html.erb~ | 70 +++++++++++++------------ app/views/layouts/application.html.erb | 3 +- app/views/layouts/application.html.erb~ | 2 +- public/javascripts/application.js | 13 +++++ public/javascripts/application.js~ | 15 +++++- public/stylesheets/screen.css | 10 ++++ public/stylesheets/screen.css~ | 12 +++-- 8 files changed, 120 insertions(+), 75 deletions(-) diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index a936d26..e4e5345 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -1,39 +1,41 @@
    <% @tag_groups.each do |tag_group| %> -
    -

    <%=tag_group.name%>

    -
    -
    - Botão de esconder linguagem -
    -
    -

    Top links

    - -
    -
      - <% @tweets[tag_group.name].each do |t| %> - <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> - <% end %> -
    -
    - <%= next_page_link(1, tag_group.id) %> -
    -
    -

    Mais retweetados em <%=tag_group.name %>

    - <% @retweeted_users[tag_group.name].each do |ru| %> - - <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> - - <% end %> -
    -
    -
    +
    +
    +

    <%=tag_group.name%>

    +
    +
    + Botão de esconder linguagem +
    +
    +

    Top links

    + +
    +
      + <% @tweets[tag_group.name].each do |t| %> + <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> + <% end %> +
    +
    + <%= next_page_link(1, tag_group.id) %> +
    +
    +

    Mais retweetados em <%=tag_group.name %>

    + <% @retweeted_users[tag_group.name].each do |ru| %> + + <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> + + <% end %> +
    +
    +
    +
    <% end %> Alguma linguagem faltando? Solicite mais linguagens.
    diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index a936d26..467b68f 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -1,39 +1,41 @@
    <% @tag_groups.each do |tag_group| %> -
    -

    <%=tag_group.name%>

    -
    -
    - Botão de esconder linguagem -
    -
    -

    Top links

    - -
    -
      - <% @tweets[tag_group.name].each do |t| %> - <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> - <% end %> -
    -
    - <%= next_page_link(1, tag_group.id) %> -
    -
    -

    Mais retweetados em <%=tag_group.name %>

    - <% @retweeted_users[tag_group.name].each do |ru| %> - - <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> - - <% end %> -
    -
    -
    +
    asas +
    +

    <%=tag_group.name%>

    +
    +
    + Botão de esconder linguagem +
    +
    +

    Top links

    + +
    +
      + <% @tweets[tag_group.name].each do |t| %> + <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> + <% end %> +
    +
    + <%= next_page_link(1, tag_group.id) %> +
    +
    +

    Mais retweetados em <%=tag_group.name %>

    + <% @retweeted_users[tag_group.name].each do |ru| %> + + <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> + + <% end %> +
    +
    +
    +
    <% end %> Alguma linguagem faltando? Solicite mais linguagens.
    diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 923548c..b72b5ab 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,7 +4,8 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js','jquery.cookie.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js', + 'jquery.cookie.js','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js' %> <%= csrf_meta_tag %> diff --git a/app/views/layouts/application.html.erb~ b/app/views/layouts/application.html.erb~ index 2f82436..923548c 100644 --- a/app/views/layouts/application.html.erb~ +++ b/app/views/layouts/application.html.erb~ @@ -20,7 +20,7 @@
    diff --git a/public/javascripts/application.js b/public/javascripts/application.js index c8467ec..b9276c4 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -56,3 +56,16 @@ $(document).ready(function(){ }); }); }); + +$(function(){ + // configura drag and drop + $(".dragWrap").sortable({ + connectWith: ['.dragWrap'], + placeholder: 'placeHolder', + scroll: true, + revert: true + //stop: function( e, ui ) { + //salvaCookie(); + //} + }); +}); diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ index 6fe5966..b9276c4 100644 --- a/public/javascripts/application.js~ +++ b/public/javascripts/application.js~ @@ -50,9 +50,22 @@ $(document).ready(function(){ //mostra grupo de tags e grava cookie $(document).ready(function(){ $('a.linkLang').click(function(){ - var id = $(this).attr('id'); + var id = 'lang0'+$(this).attr('id'); $('div#'+id).show('fast',function(){ $.cookie(id, 1, {expires: 365}); }); }); }); + +$(function(){ + // configura drag and drop + $(".dragWrap").sortable({ + connectWith: ['.dragWrap'], + placeholder: 'placeHolder', + scroll: true, + revert: true + //stop: function( e, ui ) { + //salvaCookie(); + //} + }); +}); diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index ac8843d..a6b510f 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -262,6 +262,7 @@ body { font-weight: 700; color: #505050; z-index: 600; + } #contentWrap #contentPP .shapeLang { display: block; @@ -942,3 +943,12 @@ text-decoration:none; color:black; background:white; } +.dragWrap{} +.placeHolder{ +min-height: 650px; +width: 300px; +background-color:green; +float: left; +margin-right: 20px; + +} diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ index c319f91..210128d 100644 --- a/public/stylesheets/screen.css~ +++ b/public/stylesheets/screen.css~ @@ -262,6 +262,7 @@ body { font-weight: 700; color: #505050; z-index: 600; + } #contentWrap #contentPP .shapeLang { display: block; @@ -922,7 +923,6 @@ position:relative; top:-10px; padding-top:4px; } - #menuLang{ display: block; position: relative; @@ -931,18 +931,22 @@ padding-top:4px; margin-top: 12px; width:260px; } - #menuLang li{ display:inline-block; padding:5px; } - .linkLang{ color:white; text-decoration:none; } - .linkLang:hover{ color:black; background:white; } +.dragWrap{} +.placeHolder{ +width:280px; +height:400px; +background-color:green; +float: left; +} From 31759a6c7cf8c25266d1ab0dd37f2f483f7a4d72 Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Tue, 14 Dec 2010 12:53:41 -0200 Subject: [PATCH 05/10] alguns ajustes --- app/views/home/index.html.erb~ | 4 ++-- app/views/layouts/application.html.erb | 4 ++-- app/views/layouts/application.html.erb~ | 3 ++- public/images/hide_button.gif | Bin 644 -> 666 bytes public/images/hide_button.png | Bin 0 -> 560 bytes public/javascripts/application.js | 7 +++++-- public/javascripts/application.js~ | 7 +++++-- public/stylesheets/screen.css~ | 6 ++++-- 8 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 public/images/hide_button.png diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index 467b68f..a9b997d 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -1,11 +1,11 @@
    <% @tag_groups.each do |tag_group| %> -
    asas +

    <%=tag_group.name%>

    - Botão de esconder linguagem + Botão de esconder linguagem

    Top links

    diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b72b5ab..efe1c2e 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,8 +4,8 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js', - 'jquery.cookie.js','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', + 'jquery.cookie.js','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js','application.js' %> <%= csrf_meta_tag %> diff --git a/app/views/layouts/application.html.erb~ b/app/views/layouts/application.html.erb~ index 923548c..b72b5ab 100644 --- a/app/views/layouts/application.html.erb~ +++ b/app/views/layouts/application.html.erb~ @@ -4,7 +4,8 @@ Programador Poliglota <%= stylesheet_link_tag :all %> - <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js','jquery.cookie.js' %> + <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','application.js', + 'jquery.cookie.js','https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js' %> <%= csrf_meta_tag %> diff --git a/public/images/hide_button.gif b/public/images/hide_button.gif index cecc263d7df1457d35c22fdd9941e751e3023c7b..bf4dd9581679f19391c54732f164b128163156e7 100644 GIT binary patch delta 290 zcmV+-0p0$D1)2p6M@dFFIbjq46adCSu?&O(e*p>re*i210000K02BZK2ls$Lf`f#G zhJ_du4;dK`6c~ayIXH#|KbM%71q47iH-r@inWH}j6*@VDqNJk+1UiG3mm49O3@RL& zus{$zz8*R{5xy@7IxD_B5P}EE4>-XQEXF!E$p?ZK$vg)EJ3BYu0}II(f&$yzINv)1 ze={)20)i7h_4OJh>?sZo_7j2nJB~{#PEz^BToxsJp%~nfC!Kv1N*}U3rhIEQPUq2*nPDYhvqx^8;2wPr zEA2ft0_?~5E%xgiwlX`$E_Td@ozdFb{3bK^F)^mA*DP*YGaDNmV-mJ|Tl!W?^{FNw z-#cNUcXm=7HyLg!e7)tl<3S&@eX+@gw+av69bzb#W?;w=INaVL!(g{Vn!%ybT3n;9 zC*%5}W1VGO3=cdM7POz9ZV=1mA)w&SC#jo!NF?FVva?gUN_K@fTz=NOn6bd*#esx_ POl-1JS8S@31sJRWlQLFR diff --git a/public/images/hide_button.png b/public/images/hide_button.png new file mode 100644 index 0000000000000000000000000000000000000000..47879a0812e598ee82c8f2a8b1225b20c35bd389 GIT binary patch literal 560 zcmV-00?+-4P)xN#00001b5ch_0Itp) z=>Px#!%$3AMg08y`uh5uoSfj`;PdnIv$M0Fo}RnAyY%$*@bK`ku&|k#nWd$r-{0Su zmXxWfsp8_|(b3VTr>C2no4mZd?Ck8QsHnQSy5r;Hot>SmtgN!KvY(%yxVX5kuCCtR z-O$g^wzjsrxw)5>l*q@%_V)Jb>guPaq{qj{(9qAt#l_j#*{iFovazqk#Kfwqs+gCR zn3tF7>FJr7n7q5X(9h1))YSO+`1||&`T6<&{{H>_{g;=Qm6es2mX?^9nE(I(?g3)c z00001VoOIv0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^RV3=R!D2^Z+g z6aWAK=1D|BR2b83(ARRpFcbt(Nv61BLMK2-@4cy9Mb`g+RaOdQoSE#)-90nbgPH#) z?B^^d^>SHH7TznZcGzup>2|!55vRT8H@&IR5nBfBn1JEi)k%Qzc8wPT4z0CE#vEAt zl$tw?A+V2IE9iY{%qK=4IJ2Q}B1x1K=rf?OQ5C`7o>2vG>_QGNfH#8y>KHhRmJ%_d z Date: Tue, 14 Dec 2010 13:00:19 -0200 Subject: [PATCH 06/10] arquivos adicionados --- app/views/home/index.html.erb | 1 + app/views/home/index.html.erb~ | 2 +- public/javascripts/application.js | 4 ++-- public/javascripts/application.js~ | 1 - public/stylesheets/screen.css | 22 ++++++++++++++++------ public/stylesheets/screen.css~ | 8 +++++++- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index e4e5345..8c074f7 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -8,6 +8,7 @@ Botão de esconder linguagem
    +

    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    Top links

      <% @links[tag_group.name].each do |l| %> diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index a9b997d..e4e5345 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -5,7 +5,7 @@

      <%=tag_group.name%>

      - Botão de esconder linguagem + Botão de esconder linguagem

      Top links

      diff --git a/public/javascripts/application.js b/public/javascripts/application.js index a5a98a8..bf79082 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -44,7 +44,6 @@ $(document).ready(function(){ $('a.hide').click(function(){ var id = $(this).parent().parent().parent().attr('id'); $('div#'+id).hide('fast',function(){ - alert(id); $.cookie(id, 0, {expires: 365}); }); }); @@ -65,7 +64,8 @@ $(function(){ $(".dragWrap").sortable({ connectWith: ['.dragWrap'], placeholder: 'placeHolder', - scroll: true, + scroll: true, + opacity: 0.8, revert: true //stop: function( e, ui ) { //salvaCookie(); diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ index a5a98a8..c72fcca 100644 --- a/public/javascripts/application.js~ +++ b/public/javascripts/application.js~ @@ -44,7 +44,6 @@ $(document).ready(function(){ $('a.hide').click(function(){ var id = $(this).parent().parent().parent().attr('id'); $('div#'+id).hide('fast',function(){ - alert(id); $.cookie(id, 0, {expires: 365}); }); }); diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index a6b510f..01187a2 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -945,10 +945,20 @@ background:white; } .dragWrap{} .placeHolder{ -min-height: 650px; -width: 300px; -background-color:green; -float: left; -margin-right: 20px; - + min-height: 780px; + width: 300px; + margin-top: 10px; + background-color:#ecbcc5; + float: left; + margin-right: 20px; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; +} +.dragBar{ + cursor:move; + color:white +} +.dragBar:hover{ + color:lightgrey; } diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ index a6b510f..4ffa254 100644 --- a/public/stylesheets/screen.css~ +++ b/public/stylesheets/screen.css~ @@ -950,5 +950,11 @@ width: 300px; background-color:green; float: left; margin-right: 20px; - +} +.dragBar{ + cursor:move; + color:white +} +.dragBar:hover{ + color:lightgrey; } From 7b065bf7a9064c5ec0b0b257062a6f45b2634dec Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Tue, 14 Dec 2010 18:08:21 -0200 Subject: [PATCH 07/10] =?UTF-8?q?quase=20funcionando=20perfeitamente,mas?= =?UTF-8?q?=20jah=20memoriza=20as=20posi=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/application.js | 13 ++++++++++--- public/javascripts/application.js~ | 16 ++++++++++++---- public/stylesheets/screen.css~ | 16 ++++++++++------ 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/public/javascripts/application.js b/public/javascripts/application.js index bf79082..9653c64 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -67,8 +67,15 @@ $(function(){ scroll: true, opacity: 0.8, revert: true - //stop: function( e, ui ) { - //salvaCookie(); - //} + }); + $( ".dragWrap" ).sortable({ + stop: function(event, ui) { salvaCookie();} }); }); + var salvaCookie = function(){ + order = ""; + $('.headerLang').each(function(){ + order += $(this).parent().attr('id'); + }); + alert(order); + }; diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ index c72fcca..40d28d5 100644 --- a/public/javascripts/application.js~ +++ b/public/javascripts/application.js~ @@ -64,10 +64,18 @@ $(function(){ $(".dragWrap").sortable({ connectWith: ['.dragWrap'], placeholder: 'placeHolder', - scroll: true, + scroll: true, + opacity: 0.8, revert: true - //stop: function( e, ui ) { - //salvaCookie(); - //} + }); + $( ".dragWrap" ).sortable({ + stop: function(event, ui) { salvaCookie();} }); }); + var salvaCookie = function(){ + order = ""; + $('.headerLang').each(function(){ + order += $('.headerLang').parent().attr('id'); + }); + alert(order); + }; diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ index 4ffa254..6de63c0 100644 --- a/public/stylesheets/screen.css~ +++ b/public/stylesheets/screen.css~ @@ -499,7 +499,7 @@ body { } #contentWrap #contentPP .lang03 .shapeLang .linkLang li { color: #ffffff; - border-bottom: 1px solid #02359b; + border-bottom: 0px solid #02359b; } #contentWrap #contentPP .lang03 .shapeLang .linkLang li a { color: #02359b; @@ -945,11 +945,15 @@ background:white; } .dragWrap{} .placeHolder{ -min-height: 650px; -width: 300px; -background-color:green; -float: left; -margin-right: 20px; + min-height: 780px; + width: 300px; + margin-top: 10px; + background-color:#ecbcc5; + float: left; + margin-right: 20px; + border-radius: 4px; + -webikit-border-radius: 4px; + -moz-border-radius: 4px; } .dragBar{ cursor:move; From 6a619e9180f6aacf02f8e77665bd19dea09afa4b Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Tue, 14 Dec 2010 20:33:41 -0200 Subject: [PATCH 08/10] cookies de posicionamento funcionando --- app/views/home/index.html.erb | 2 +- app/views/home/index.html.erb~ | 3 ++- public/javascripts/application.js | 15 ++++++++++++++- public/javascripts/application.js~ | 15 ++++++++++++++- public/stylesheets/screen.css | 2 +- public/stylesheets/screen.css~ | 2 +- 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 8c074f7..685eb25 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -1,6 +1,6 @@
      <% @tag_groups.each do |tag_group| %> -
      +

      <%=tag_group.name%>

      diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index e4e5345..6bc01f9 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -1,6 +1,6 @@
      <% @tag_groups.each do |tag_group| %> -
      +

      <%=tag_group.name%>

      @@ -8,6 +8,7 @@ Botão de esconder linguagem
      +

      ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

      Top links

        <% @links[tag_group.name].each do |l| %> diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 9653c64..bb99f5b 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -71,11 +71,24 @@ $(function(){ $( ".dragWrap" ).sortable({ stop: function(event, ui) { salvaCookie();} }); + // recupera cookie para dispor os grupos de tags na ordem, caso haja cookie + if( $.cookie('order') ) { + var ordem = $.cookie('order').split(','); + + // ordena grupos de tags + for( i = 0; i<= ordem.length; i++ ){ + $('#contentPP').append($('#wrap'+ordem[i])); + } + + } else { + $.cookie('order', '', { expires: 7, path: '/' }); + } }); var salvaCookie = function(){ order = ""; $('.headerLang').each(function(){ - order += $(this).parent().attr('id'); + order += $(this).parent().attr('id')+','; }); + $.cookie('order',order, {expires: 365}); alert(order); }; diff --git a/public/javascripts/application.js~ b/public/javascripts/application.js~ index 40d28d5..bb99f5b 100644 --- a/public/javascripts/application.js~ +++ b/public/javascripts/application.js~ @@ -71,11 +71,24 @@ $(function(){ $( ".dragWrap" ).sortable({ stop: function(event, ui) { salvaCookie();} }); + // recupera cookie para dispor os grupos de tags na ordem, caso haja cookie + if( $.cookie('order') ) { + var ordem = $.cookie('order').split(','); + + // ordena grupos de tags + for( i = 0; i<= ordem.length; i++ ){ + $('#contentPP').append($('#wrap'+ordem[i])); + } + + } else { + $.cookie('order', '', { expires: 7, path: '/' }); + } }); var salvaCookie = function(){ order = ""; $('.headerLang').each(function(){ - order += $('.headerLang').parent().attr('id'); + order += $(this).parent().attr('id')+','; }); + $.cookie('order',order, {expires: 365}); alert(order); }; diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index 01187a2..5853a0c 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -945,7 +945,7 @@ background:white; } .dragWrap{} .placeHolder{ - min-height: 780px; + min-height: 740px; width: 300px; margin-top: 10px; background-color:#ecbcc5; diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ index 6de63c0..01187a2 100644 --- a/public/stylesheets/screen.css~ +++ b/public/stylesheets/screen.css~ @@ -499,7 +499,7 @@ body { } #contentWrap #contentPP .lang03 .shapeLang .linkLang li { color: #ffffff; - border-bottom: 0px solid #02359b; + border-bottom: 1px solid #02359b; } #contentWrap #contentPP .lang03 .shapeLang .linkLang li a { color: #02359b; From 6512c41bd1a3294a042089b673b8efc342f05f1a Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Tue, 14 Dec 2010 21:21:56 -0200 Subject: [PATCH 09/10] posicionamento com cookies funcionando --- app/views/home/index.html.erb | 78 ++++++++++++++++--------------- app/views/home/index.html.erb~ | 78 ++++++++++++++++--------------- public/javascripts/application.js | 1 - public/stylesheets/screen.css | 13 +++--- public/stylesheets/screen.css~ | 15 +++--- 5 files changed, 95 insertions(+), 90 deletions(-) diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 685eb25..479c209 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -1,42 +1,44 @@ -
        - <% @tag_groups.each do |tag_group| %> -
        -
        -

        <%=tag_group.name%>

        -
        -
        - Botão de esconder linguagem +
        +
        + <% @tag_groups.each do |tag_group| %> +
        +
        +

        <%=tag_group.name%>

        +
        +
        + Botão de esconder linguagem +
        +
        +

        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

        +

        Top links

        + +
        +
          + <% @tweets[tag_group.name].each do |t| %> + <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> + <% end %> +
        +
        + <%= next_page_link(1, tag_group.id) %> +
        +
        +

        Mais retweetados em <%=tag_group.name %>

        + <% @retweeted_users[tag_group.name].each do |ru| %> + + <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> + + <% end %> +
        +
        -
        -

        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

        -

        Top links

        - -
        -
          - <% @tweets[tag_group.name].each do |t| %> - <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> - <% end %> -
        -
        - <%= next_page_link(1, tag_group.id) %> -
        -
        -

        Mais retweetados em <%=tag_group.name %>

        - <% @retweeted_users[tag_group.name].each do |ru| %> - - <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> - - <% end %> -
        -
        + <% end %>
        - <% end %> - Alguma linguagem faltando? Solicite mais linguagens. + Alguma linguagem faltando? Solicite mais linguagens.
        diff --git a/app/views/home/index.html.erb~ b/app/views/home/index.html.erb~ index 6bc01f9..4173b0f 100644 --- a/app/views/home/index.html.erb~ +++ b/app/views/home/index.html.erb~ @@ -1,42 +1,44 @@ -
        - <% @tag_groups.each do |tag_group| %> -
        -
        -

        <%=tag_group.name%>

        -
        -
        - Botão de esconder linguagem +
        +
        + <% @tag_groups.each do |tag_group| %> +
        +
        +

        <%=tag_group.name%>

        +
        +
        + Botão de esconder linguagem +
        +
        +

        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

        +

        Top links

        + +
        +
          + <% @tweets[tag_group.name].each do |t| %> + <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> + <% end %> +
        +
        + <%= next_page_link(1, tag_group.id) %> +
        +
        +

        Mais retweetados em <%=tag_group.name %>

        + <% @retweeted_users[tag_group.name].each do |ru| %> + + <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> + + <% end %> +
        +
        -
        -

        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

        -

        Top links

        - -
        -
          - <% @tweets[tag_group.name].each do |t| %> - <%= render :partial=>'tweet_information', :locals=>{:tweet => t} %> - <% end %> -
        -
        - <%= next_page_link(1, tag_group.id) %> -
        -
        -

        Mais retweetados em <%=tag_group.name %>

        - <% @retweeted_users[tag_group.name].each do |ru| %> - - <%= image_tag image_url_of(ru.user), :class=>'twitter_photo' %> - - <% end %> -
        -
        + <% end %>
        - <% end %> - Alguma linguagem faltando? Solicite mais linguagens. + Alguma linguagem faltando? Solicite mais linguagens.
        diff --git a/public/javascripts/application.js b/public/javascripts/application.js index bb99f5b..bb1730b 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -90,5 +90,4 @@ $(function(){ order += $(this).parent().attr('id')+','; }); $.cookie('order',order, {expires: 365}); - alert(order); }; diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css index 5853a0c..1a75cc3 100644 --- a/public/stylesheets/screen.css +++ b/public/stylesheets/screen.css @@ -195,7 +195,7 @@ body { overflow: hidden; } -#contentWrap #contentPP { +#contentPP { display: block; position: relative; overflow: hidden; @@ -207,7 +207,7 @@ body { /*Color Scheme*/ } -#contentWrap #contentPP .moreLangOptions { +.moreLangOptions { display: block; position: relative; overflow: hidden; @@ -221,10 +221,10 @@ body { -webikit-border-radius: 4px; -moz-border-radius: 4px; } -#contentWrap #contentPP .moreLangOptions:hover { +#contentWrap .moreLangOptions:hover { background: #1e1e1e; } -#contentWrap #contentPP .moreLangOptions span { +#contentWrap .moreLangOptions span { display: block; position: relative; overflow: hidden; @@ -377,7 +377,7 @@ body { margin: 0px; padding: 10px 0px 10px 5px; } -#contentWrap #contentPP .shapeLang .linkLang ul { +#contentPP .shapeLang .linkLang ul { display: block; position: relative; overflow: hidden; @@ -385,7 +385,7 @@ body { height: auto; float: left; } -#contentWrap #contentPP .shapeLang .linkLang ul li { +#contentPP .shapeLang .linkLang ul li { display: block; position: relative; overflow: hidden; @@ -962,3 +962,4 @@ background:white; .dragBar:hover{ color:lightgrey; } +.center1{width:900px;margin: 0px auto;} diff --git a/public/stylesheets/screen.css~ b/public/stylesheets/screen.css~ index 01187a2..a119f0c 100644 --- a/public/stylesheets/screen.css~ +++ b/public/stylesheets/screen.css~ @@ -195,7 +195,7 @@ body { overflow: hidden; } -#contentWrap #contentPP { +#contentPP { display: block; position: relative; overflow: hidden; @@ -207,7 +207,7 @@ body { /*Color Scheme*/ } -#contentWrap #contentPP .moreLangOptions { +.moreLangOptions { display: block; position: relative; overflow: hidden; @@ -221,10 +221,10 @@ body { -webikit-border-radius: 4px; -moz-border-radius: 4px; } -#contentWrap #contentPP .moreLangOptions:hover { +#contentWrap .moreLangOptions:hover { background: #1e1e1e; } -#contentWrap #contentPP .moreLangOptions span { +#contentWrap .moreLangOptions span { display: block; position: relative; overflow: hidden; @@ -377,7 +377,7 @@ body { margin: 0px; padding: 10px 0px 10px 5px; } -#contentWrap #contentPP .shapeLang .linkLang ul { +#contentPP .shapeLang .linkLang ul { display: block; position: relative; overflow: hidden; @@ -385,7 +385,7 @@ body { height: auto; float: left; } -#contentWrap #contentPP .shapeLang .linkLang ul li { +#contentPP .shapeLang .linkLang ul li { display: block; position: relative; overflow: hidden; @@ -945,7 +945,7 @@ background:white; } .dragWrap{} .placeHolder{ - min-height: 780px; + min-height: 740px; width: 300px; margin-top: 10px; background-color:#ecbcc5; @@ -962,3 +962,4 @@ background:white; .dragBar:hover{ color:lightgrey; } +.center1{margin: 0px auto;} From a553565294180d899f0dd9a956c90f0f8b77720f Mon Sep 17 00:00:00 2001 From: Marco Antonio Date: Wed, 15 Dec 2010 01:03:58 -0200 Subject: [PATCH 10/10] testes passando, drang n drop funcionando --- public/images/hide_button.png | Bin 560 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/images/hide_button.png diff --git a/public/images/hide_button.png b/public/images/hide_button.png deleted file mode 100644 index 47879a0812e598ee82c8f2a8b1225b20c35bd389..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)xN#00001b5ch_0Itp) z=>Px#!%$3AMg08y`uh5uoSfj`;PdnIv$M0Fo}RnAyY%$*@bK`ku&|k#nWd$r-{0Su zmXxWfsp8_|(b3VTr>C2no4mZd?Ck8QsHnQSy5r;Hot>SmtgN!KvY(%yxVX5kuCCtR z-O$g^wzjsrxw)5>l*q@%_V)Jb>guPaq{qj{(9qAt#l_j#*{iFovazqk#Kfwqs+gCR zn3tF7>FJr7n7q5X(9h1))YSO+`1||&`T6<&{{H>_{g;=Qm6es2mX?^9nE(I(?g3)c z00001VoOIv0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^RV3=R!D2^Z+g z6aWAK=1D|BR2b83(ARRpFcbt(Nv61BLMK2-@4cy9Mb`g+RaOdQoSE#)-90nbgPH#) z?B^^d^>SHH7TznZcGzup>2|!55vRT8H@&IR5nBfBn1JEi)k%Qzc8wPT4z0CE#vEAt zl$tw?A+V2IE9iY{%qK=4IJ2Q}B1x1K=rf?OQ5C`7o>2vG>_QGNfH#8y>KHhRmJ%_d z