logilogi-svn Mailing List for LogiLogi - Software Libre for the Web
Status: Beta
Brought to you by:
wybow
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(7) |
Apr
(18) |
May
(59) |
Jun
(73) |
Jul
(31) |
Aug
(19) |
Sep
(18) |
Oct
(31) |
Nov
(9) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(30) |
Feb
(62) |
Mar
(70) |
Apr
(75) |
May
(139) |
Jun
(85) |
Jul
(28) |
Aug
(33) |
Sep
(145) |
Oct
(45) |
Nov
(76) |
Dec
(48) |
2009 |
Jan
(12) |
Feb
(39) |
Mar
(5) |
Apr
(6) |
May
(23) |
Jun
(44) |
Jul
(17) |
Aug
(15) |
Sep
(49) |
Oct
(28) |
Nov
(14) |
Dec
(6) |
2010 |
Jan
(22) |
Feb
(24) |
Mar
(14) |
Apr
(3) |
May
(2) |
Jun
(30) |
Jul
(9) |
Aug
(9) |
Sep
(10) |
Oct
(1) |
Nov
|
Dec
(1) |
2011 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <wy...@us...> - 2011-03-01 13:35:35
|
Revision: 1784 http://logilogi.svn.sourceforge.net/logilogi/?rev=1784&view=rev Author: wybow Date: 2011-03-01 13:35:29 +0000 (Tue, 01 Mar 2011) Log Message: ----------- Cleanup Modified Paths: -------------- trunk/app/models/global_config.rb trunk/app/models/logi.rb trunk/app/models/tag.rb trunk/app/models/used_tag.rb trunk/test/unit/user_test.rb Modified: trunk/app/models/global_config.rb =================================================================== --- trunk/app/models/global_config.rb 2011-03-01 08:17:28 UTC (rev 1783) +++ trunk/app/models/global_config.rb 2011-03-01 13:35:29 UTC (rev 1784) @@ -197,7 +197,8 @@ def #{kind.to_s}_tag_string=(string) tag = Tag.from_s(string) self.#{kind.to_s}_tag = tag - UsedTag.use(tag) + UsedTag.use(tag#{(kind.to_s == "main_page" ? + "" : ", :cloud_visibility => false")}) end EOS end Modified: trunk/app/models/logi.rb =================================================================== --- trunk/app/models/logi.rb 2011-03-01 08:17:28 UTC (rev 1783) +++ trunk/app/models/logi.rb 2011-03-01 13:35:29 UTC (rev 1784) @@ -478,7 +478,11 @@ end end self.tags.each do |t| - UsedTag.use(t) + if self.tags.size == 2 and self.tags[1].home_page? + UsedTag.use(t, :cloud_visibility => false) + else + UsedTag.use(t) + end end end return true Modified: trunk/app/models/tag.rb =================================================================== --- trunk/app/models/tag.rb 2011-03-01 08:17:28 UTC (rev 1783) +++ trunk/app/models/tag.rb 2011-03-01 13:35:29 UTC (rev 1784) @@ -181,7 +181,7 @@ # def system? return (self == Tag.replace or self == Tag.untagged or - self == Tag.sandbox) + self == Tag.sandbox or self == Tag.blog) end # Parsing Modified: trunk/app/models/used_tag.rb =================================================================== --- trunk/app/models/used_tag.rb 2011-03-01 08:17:28 UTC (rev 1783) +++ trunk/app/models/used_tag.rb 2011-03-01 13:35:29 UTC (rev 1784) @@ -88,11 +88,10 @@ # # If needed, creates a UsedTag for it. # - def self.use(tag) + def self.use(tag, options = {}) u_t = UsedTag.or_new_from_tag(tag) - # TODO make more efficient - if tag.name? or tag.home_page? or tag.system? - u_t.cloud_visibility = false + if !options[:cloud_visibility].nil? + u_t.cloud_visibility = options[:cloud_visibility] end u_t.increment u_t.save Modified: trunk/test/unit/user_test.rb =================================================================== --- trunk/test/unit/user_test.rb 2011-03-01 08:17:28 UTC (rev 1783) +++ trunk/test/unit/user_test.rb 2011-03-01 13:35:29 UTC (rev 1784) @@ -52,9 +52,11 @@ u = User.new(:openid_identifier => 'http://top.castle.com', :name => 'Bo Bény', :email => 'to...@ca...') assert u.save - assert_equal Tag.from_s("Bo_Bény"), u.home_page_tag + t = Tag.from_s("Bo_Bény") + assert_equal t, u.home_page_tag assert_equal "Bo_Bény", u.default_prefs_profile.name assert_volatile_to_logi('Bo_Bény/' + Tag.user.to_s) + assert !UsedTag.or_new_from_tag(t).cloud_visibility end def test_name_validation This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2011-03-01 08:17:34
|
Revision: 1783 http://logilogi.svn.sourceforge.net/logilogi/?rev=1783&view=rev Author: wybow Date: 2011-03-01 08:17:28 +0000 (Tue, 01 Mar 2011) Log Message: ----------- Improved efficiency of homepage Modified Paths: -------------- trunk/app/models/used_tag.rb trunk/db/schema.rb Added Paths: ----------- trunk/db/migrate/20110301070022_used_tag_cloud_visibility.rb Modified: trunk/app/models/used_tag.rb =================================================================== --- trunk/app/models/used_tag.rb 2011-01-04 21:33:59 UTC (rev 1782) +++ trunk/app/models/used_tag.rb 2011-03-01 08:17:28 UTC (rev 1783) @@ -41,21 +41,13 @@ # def self.top_used_tags(options = {}) if options.delete(:no_special) - if options[:limit] - limit = options[:limit] - options[:limit] = options[:limit] * 2 + if !options[:conditions] + options[:conditions] = [] end - toppers = UsedTag.find(:all, options.merge( - :order => "use_count DESC")).reject {|t| - t.tag.name? or t.tag.home_page? or t.tag.system? } - if !options[:limit] - limit = toppers.size - end - return toppers[0...limit].sort_by {|used_tag| used_tag.tag} - else - return UsedTag.find(:all, options.merge( - :order => "use_count DESC")).sort_by {|used_tag| used_tag.tag} + options[:conditions].push('cloud_visibility = true') end + return UsedTag.find(:all, options.merge( + :order => "use_count DESC")).sort_by {|used_tag| used_tag.tag} end ### Parsing @@ -98,6 +90,10 @@ # def self.use(tag) u_t = UsedTag.or_new_from_tag(tag) + # TODO make more efficient + if tag.name? or tag.home_page? or tag.system? + u_t.cloud_visibility = false + end u_t.increment u_t.save end Added: trunk/db/migrate/20110301070022_used_tag_cloud_visibility.rb =================================================================== --- trunk/db/migrate/20110301070022_used_tag_cloud_visibility.rb (rev 0) +++ trunk/db/migrate/20110301070022_used_tag_cloud_visibility.rb 2011-03-01 08:17:28 UTC (rev 1783) @@ -0,0 +1,25 @@ +class UsedTagCloudVisibility < ActiveRecord::Migration + def self.up + add_column :used_tags, :cloud_visibility, :boolean, :default => true, :null => false + + if GlobalConfig.available? + UsedTagCloudVisibility.update + end + end + + def self.down + raise 'No way back' + end + + def self.update + # Change language as needed + UsedTag.find(:all).each {|t| + if t.tag.name? or t.tag.home_page? or t.tag.system? + t.cloud_visibility = false + else + t.cloud_visibility = true + end + t.save + } + end +end Modified: trunk/db/schema.rb =================================================================== --- trunk/db/schema.rb 2011-01-04 21:33:59 UTC (rev 1782) +++ trunk/db/schema.rb 2011-03-01 08:17:28 UTC (rev 1783) @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20100923165007) do +ActiveRecord::Schema.define(:version => 20110301070022) do create_table "acts_as_xapian_jobs", :force => true do |t| t.string "model", :null => false @@ -261,8 +261,9 @@ add_index "steps", ["path_id"], :name => "index_steps_on_path_id" create_table "used_tags", :force => true do |t| - t.string "string", :limit => 80, :null => false - t.integer "use_count", :default => 0, :null => false + t.string "string", :limit => 80, :null => false + t.integer "use_count", :default => 0, :null => false + t.boolean "cloud_visibility", :default => true, :null => false end add_index "used_tags", ["string"], :name => "index_used_tags_on_string" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2011-01-04 21:34:05
|
Revision: 1782 http://logilogi.svn.sourceforge.net/logilogi/?rev=1782&view=rev Author: wybow Date: 2011-01-04 21:33:59 +0000 (Tue, 04 Jan 2011) Log Message: ----------- Further cleanup Modified Paths: -------------- trunk/public/javascripts/magick_corners.js Modified: trunk/public/javascripts/magick_corners.js =================================================================== --- trunk/public/javascripts/magick_corners.js 2011-01-04 21:21:19 UTC (rev 1781) +++ trunk/public/javascripts/magick_corners.js 2011-01-04 21:33:59 UTC (rev 1782) @@ -34,13 +34,13 @@ initialize: function(args) { options = new Hash(args); - if (options !== null) { + if (options != null) { this.path_prefix = options.unset('path_prefix'); } if (options.keys.size > 0) { alert('Misspelled option given'); } - this.path_prefix = this.path_prefix !== null ? this.path_prefix + '/' : ''; + this.path_prefix = this.path_prefix != null ? this.path_prefix + '/' : ''; }, // // Public Methods @@ -147,12 +147,12 @@ // // Set the image url format = 'png'; - if (options.scaled_image !== null ) { + if (options.scaled_image != null ) { image_url = 'url(/' + this.path_prefix + 'magick_corners/scaled_image.' + image_size.limit + '.' + options.scaled_dimension + '.' + options.scaled_image + '.' + format + ')'; } else { - if (options.image !== null) { + if (options.image != null) { image_url = 'url(/' + this.path_prefix + 'magick_corners/image.' + image_size.width + '.' + image_size.height + '.' + options.image + '.' + options.corner_size + '.' + options.image_start_corner + '.' + format + ')'; @@ -296,7 +296,7 @@ width = element_vars.full_width; height = element_vars.full_height; } - if (options.scaled_image !== null) { + if (options.scaled_image != null) { if (options.scaled_dimension == 'height') { limit = height; } else { @@ -315,7 +315,7 @@ harvest_args: function(args) { var corner_size, stretch_side, image, image_start_corner; options = new Hash(args); - if (options !== null) { + if (options != null) { // image and box settings corner_size = options.unset('corner_size'); stretch_side = options.unset('stretch_side'); @@ -332,11 +332,11 @@ if (options.keys.size > 0) { alert('Misspelled option given'); } - corner_size = corner_size !== null ? corner_size : this.DefaultCornerSize; - stretch_side = stretch_side !== null ? stretch_side : 'bottom'; - image_start_corner = image_start_corner !== null ? image_start_corner : 'north_west'; - reference_size = reference_size !== null ? reference_size : 40; - scaled_dimension = scaled_dimension !== null ? scaled_dimension : 'height'; + corner_size = corner_size != null ? corner_size : this.DefaultCornerSize; + stretch_side = stretch_side != null ? stretch_side : 'bottom'; + image_start_corner = image_start_corner != null ? image_start_corner : 'north_west'; + reference_size = reference_size != null ? reference_size : 40; + scaled_dimension = scaled_dimension != null ? scaled_dimension : 'height'; return {corner_size : corner_size, stretch_side : stretch_side, @@ -360,7 +360,7 @@ background_color = this.get_color_style(element, 'backgroundColor'); border_width = this.get_int_style(element, 'borderTopWidth'); - if (!isNaN(border_width) && (border_width !== 0)) { + if (!isNaN(border_width) && (border_width != 0)) { border_color = this.get_color_style(element, 'borderTopColor'); } else { border_width = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2011-01-04 21:21:25
|
Revision: 1781 http://logilogi.svn.sourceforge.net/logilogi/?rev=1781&view=rev Author: wybow Date: 2011-01-04 21:21:19 +0000 (Tue, 04 Jan 2011) Log Message: ----------- Cleanup of magick corners, temporarily disabled mailers Modified Paths: -------------- trunk/lib/tasks/daemons.rake trunk/public/javascripts/magick_corners.js Modified: trunk/lib/tasks/daemons.rake =================================================================== --- trunk/lib/tasks/daemons.rake 2010-12-21 15:26:45 UTC (rev 1780) +++ trunk/lib/tasks/daemons.rake 2011-01-04 21:21:19 UTC (rev 1781) @@ -47,7 +47,7 @@ PeerGroupMembership.drop_the_powerless if GlobalConfig.use_log_log - LogLogSubscription.send_out_alerts('daily') +# LogLogSubscription.send_out_alerts('daily') end ActiveRecord::Base.logger.info "Daily finished at #{Time.now}.\n" @@ -60,7 +60,7 @@ ActiveRecord::Base.logger.info "Weekly started at #{Time.now}.\n" if GlobalConfig.use_log_log - LogLogSubscription.send_out_alerts('weekly') +# LogLogSubscription.send_out_alerts('weekly') end ActiveRecord::Base.logger.info "Weekly finished at #{Time.now}.\n" Modified: trunk/public/javascripts/magick_corners.js =================================================================== --- trunk/public/javascripts/magick_corners.js 2010-12-21 15:26:45 UTC (rev 1780) +++ trunk/public/javascripts/magick_corners.js 2011-01-04 21:21:19 UTC (rev 1781) @@ -16,7 +16,7 @@ */ Prototype.Browser.IE6 = Prototype.Browser.IE && - parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 5)) == 6; + parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 5), 10) == 6; var MagickCorners = Class.create({ // // Constants @@ -34,25 +34,26 @@ initialize: function(args) { options = new Hash(args); - if (options != null) { + if (options !== null) { this.path_prefix = options.unset('path_prefix'); } if (options.keys.size > 0) { alert('Misspelled option given'); } - this.path_prefix = this.path_prefix != null ? this.path_prefix + '/' : '' + this.path_prefix = this.path_prefix !== null ? this.path_prefix + '/' : ''; }, // // Public Methods add: function(selector, args) { + var options = null; // not (yet) working in Opera and Safari if (Prototype.Browser.Opera || Prototype.Browser.MobileSafari) { return; } // // Harvest config variables - var options = this.harvest_args(args); + options = this.harvest_args(args); this.add_run('mcdone', [selector, options]); @@ -124,32 +125,34 @@ }, now_to_element: function(element, options, done_tag) { + var element_vars, css_options, image_size, outer_css_options, + stretch_css_options, format, image_url, outer_element, + stretch_element, tempClassName; if (this.not_done(element, done_tag)) { - var element_vars = this.get_element_vars(element, options); + element_vars = this.get_element_vars(element, options); // // Prepare the options - var css_options = new Hash(); + css_options = new Hash(); //css_options.set('overflow', 'auto'); css_options.set('backgroundRepeat', 'no-repeat'); - var image_size = this.get_image_size(options, element_vars); + image_size = this.get_image_size(options, element_vars); if (options.stretch_side != 'none') { - var outer_css_options = new Hash(); - var stretch_css_options = new Hash(); + outer_css_options = new Hash(); + stretch_css_options = new Hash(); this.prepare_options_for_stretch(css_options, outer_css_options, stretch_css_options, options, element_vars, image_size); } // // Set the image url - var format = 'png'; - var image_url; - if (options.scaled_image != null ) { + format = 'png'; + if (options.scaled_image !== null ) { image_url = 'url(/' + this.path_prefix + 'magick_corners/scaled_image.' + image_size.limit + '.' + options.scaled_dimension + '.' + options.scaled_image + '.' + format + ')'; } else { - if (options.image != null) { + if (options.image !== null) { image_url = 'url(/' + this.path_prefix + 'magick_corners/image.' + image_size.width + '.' + image_size.height + '.' + options.image + '.' + options.corner_size + '.' + options.image_start_corner + '.' + format + ')'; @@ -166,9 +169,6 @@ } if (options.stretch_side != 'none') { - // // Create new elements - var outer_element, stretch_element; - // Create the new outer-element outer_element = new Element('div'); if (element.getAttribute('id')) { @@ -188,7 +188,7 @@ } }); - var tempClassName = element.className; + tempClassName = element.className; element.setAttribute('class',''); element.className = ''; // The mcdone is needed to prevent double borders @@ -215,13 +215,18 @@ } element.setStyle2(css_options); if (options.stretch_side != 'none') { - stretch_element.setStyle2(stretch_css_options) + stretch_element.setStyle2(stretch_css_options); } } }, prepare_options_for_stretch: function(css_options, outer_css_options, stretch_css_options, options, element_vars, image_size) { + var remaining_adjustment = 0, + stretch_sides = ['top', 'right', 'bottom', 'left'], // same order + stretch_side_index = stretch_sides.indexOf(options.stretch_side), + new_stretch_padding = element_vars.full_padding_values[stretch_side_index] - image_size.corner_size; + // block and overflow outer_css_options.set('display', 'block'); //outer_css_options.set('overflow', 'auto'); @@ -241,14 +246,6 @@ outer_css_options.set('width', element_vars.full_width + 'px'); outer_css_options.set('height', element_vars.full_height + 'px'); - // // Settings dependent on side - - // padding adjustment - var remaining_adjustment = 0; - var stretch_sides = ['top', 'right', 'bottom', 'left']; // same order as padding sides - var stretch_side_index = stretch_sides.indexOf(options.stretch_side); - - var new_stretch_padding = element_vars.full_padding_values[stretch_side_index] - image_size.corner_size; if (new_stretch_padding < 0) { remaining_adjustment = new_stretch_padding * -1; new_stretch_padding = 0; @@ -299,11 +296,11 @@ width = element_vars.full_width; height = element_vars.full_height; } - if (options.scaled_image != null) { + if (options.scaled_image !== null) { if (options.scaled_dimension == 'height') { - limit = height + limit = height; } else { - limit = width + limit = width; } corner_size = Math.floor((limit / options.reference_size) * options.corner_size); } else { @@ -318,7 +315,7 @@ harvest_args: function(args) { var corner_size, stretch_side, image, image_start_corner; options = new Hash(args); - if (options != null) { + if (options !== null) { // image and box settings corner_size = options.unset('corner_size'); stretch_side = options.unset('stretch_side'); @@ -328,18 +325,18 @@ image_start_corner = options.unset('image_start_corner'); // scaled image settings - reference_size = options.unset('reference_size') + reference_size = options.unset('reference_size'); scaled_image = options.unset('scaled_image'); - scaled_dimension = options.unset('scaled_dimension') + scaled_dimension = options.unset('scaled_dimension'); } if (options.keys.size > 0) { alert('Misspelled option given'); } - corner_size = corner_size != null ? corner_size : this.DefaultCornerSize; - stretch_side = stretch_side != null ? stretch_side : 'bottom'; - image_start_corner = image_start_corner != null ? image_start_corner : 'north_west'; - reference_size = reference_size != null ? reference_size : 40; - scaled_dimension = scaled_dimension != null ? scaled_dimension : 'height'; + corner_size = corner_size !== null ? corner_size : this.DefaultCornerSize; + stretch_side = stretch_side !== null ? stretch_side : 'bottom'; + image_start_corner = image_start_corner !== null ? image_start_corner : 'north_west'; + reference_size = reference_size !== null ? reference_size : 40; + scaled_dimension = scaled_dimension !== null ? scaled_dimension : 'height'; return {corner_size : corner_size, stretch_side : stretch_side, @@ -352,7 +349,7 @@ get_element_vars: function(element, options) { var full_width, full_height, width, height, - background_color, border_width, border_color, full_padding_values + background_color, border_width, border_color, full_padding_values; // // Get the current sizes and colors full_width = element.getWidth(); full_height = element.getHeight(); @@ -363,8 +360,7 @@ background_color = this.get_color_style(element, 'backgroundColor'); border_width = this.get_int_style(element, 'borderTopWidth'); - border_color; - if (!isNaN(border_width) && (border_width != 0)) { + if (!isNaN(border_width) && (border_width !== 0)) { border_color = this.get_color_style(element, 'borderTopColor'); } else { border_width = 0; @@ -408,11 +404,11 @@ }, get_int_style: function(outer_element, style) { - var str = outer_element.getStyle(style) + var str = outer_element.getStyle(style); if (str.match(/em/)) { - return parseInt(parseFloat(str.gsub('em','')) * this.Emsize); + return parseInt(parseFloat(str.gsub('em','')) * this.Emsize, 10); } else { - return parseInt(parseFloat(str.gsub('px',''))); + return parseInt(parseFloat(str.gsub('px','')), 10); } }, @@ -423,16 +419,16 @@ var arr = str.split(', '); return this.to_hex(arr[0]) + this.to_hex(arr[1]) + this.to_hex(arr[2]); } else { - return str + return str; } }, to_hex: function(N) { - if (N == null) { + if (N === null) { return "00"; } - N = parseInt(N); - if (N == 0 || isNaN(N)) { + N = parseInt(N, 10); + if (N === 0 || isNaN(N)) { return "00"; } N = Math.max(0,N); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-12-21 15:26:53
|
Revision: 1780 http://logilogi.svn.sourceforge.net/logilogi/?rev=1780&view=rev Author: wybow Date: 2010-12-21 15:26:45 +0000 (Tue, 21 Dec 2010) Log Message: ----------- Introduced graceful failure if log.logilogi.org is not running Modified Paths: -------------- trunk/app/models/log_log_message.rb trunk/app/models/log_log_subscription.rb trunk/db/schema.rb Modified: trunk/app/models/log_log_message.rb =================================================================== --- trunk/app/models/log_log_message.rb 2010-10-11 22:54:26 UTC (rev 1779) +++ trunk/app/models/log_log_message.rb 2010-12-21 15:26:45 UTC (rev 1780) @@ -20,5 +20,14 @@ end end + alias __save__ save + def save + begin + self.__save__ + rescue + ActiveRecord::Base.logger.error "Error: LogLog enabled, but not found.\n" + end + end + self.initialize_global_config end Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-10-11 22:54:26 UTC (rev 1779) +++ trunk/app/models/log_log_subscription.rb 2010-12-21 15:26:45 UTC (rev 1780) @@ -20,22 +20,26 @@ def self.send_out_alerts(period) sent_to = [] - LogLogSubscription.find_each(:conditions => ['period = ?', period]) do |lls| - url = URI.parse(GlobalConfig.log_log_site + - "/channels/" + lls.channel + "/periods/" + period + ".txt") - begin - page = Net::HTTP.get_response(url) - periodical = page.body - if periodical =~ /[^\s]/ - if lls.channel == "logis" - Notifier.deliver_logis_log(lls.user, period, periodical) - else - Notifier.deliver_personalized_log(lls.user, period, periodical) + begin + LogLogSubscription.find_each(:conditions => ['period = ?', period]) do |lls| + url = URI.parse(GlobalConfig.log_log_site + + "/channels/" + lls.channel + "/periods/" + period + ".txt") + begin + page = Net::HTTP.get_response(url) + periodical = page.body + if periodical =~ /[^\s]/ + if lls.channel == "logis" + Notifier.deliver_logis_log(lls.user, period, periodical) + else + Notifier.deliver_personalized_log(lls.user, period, periodical) + end + sent_to << lls.user.name end - sent_to << lls.user.name + rescue end - rescue end + rescue + ActiveRecord::Base.logger.error "LogLog enabled, but not found.\n" end if sent_to.empty? sent_to = ['Nobody'] @@ -51,4 +55,13 @@ "Sent personalized #{period} to: " + sent_to.join(', ')) end end + + alias __save__ save + def save + begin + self.__save__ + rescue + ActiveRecord::Base.logger.error "Error: LogLog enabled, but not found.\n" + end + end end Modified: trunk/db/schema.rb =================================================================== --- trunk/db/schema.rb 2010-10-11 22:54:26 UTC (rev 1779) +++ trunk/db/schema.rb 2010-12-21 15:26:45 UTC (rev 1780) @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20100810165341) do +ActiveRecord::Schema.define(:version => 20100923165007) do create_table "acts_as_xapian_jobs", :force => true do |t| t.string "model", :null => false @@ -20,11 +20,11 @@ add_index "acts_as_xapian_jobs", ["model", "model_id"], :name => "index_acts_as_xapian_jobs_on_model_and_model_id", :unique => true create_table "annotations", :force => true do |t| - t.integer "logi_id", :null => false - t.integer "user_id", :null => false - t.string "message", :null => false - t.string "position_ranges_string", :limit => 80, :null => false - t.datetime "created_at", :null => false + t.integer "logi_id", :null => false + t.integer "user_id", :null => false + t.string "message", :null => false + t.string "position_ranges_string", :limit => 2048, :null => false + t.datetime "created_at", :null => false end add_index "annotations", ["logi_id"], :name => "index_annotations_on_logi_id" @@ -40,12 +40,12 @@ add_index "commentings", ["to_logi_id"], :name => "index_commentings_on_to_logi_id" create_table "external_links", :force => true do |t| - t.integer "logi_id", :null => false - t.integer "user_id", :null => false - t.string "text", :null => false - t.string "url", :null => false - t.string "position_ranges_string", :limit => 80, :null => false - t.datetime "created_at", :null => false + t.integer "logi_id", :null => false + t.integer "user_id", :null => false + t.string "text", :null => false + t.string "url", :null => false + t.string "position_ranges_string", :limit => 2048, :null => false + t.datetime "created_at", :null => false end add_index "external_links", ["logi_id"], :name => "index_external_links_on_logi_id" @@ -113,16 +113,16 @@ add_index "link_matches", ["logi_id"], :name => "index_link_matches_on_logi_id" create_table "links", :force => true do |t| - t.integer "user_id", :null => false - t.integer "from_logi_id", :null => false + t.integer "user_id", :null => false + t.integer "from_logi_id", :null => false t.integer "to_logi_id" t.integer "to_logi_version_nr" t.string "requested_tags_string", :limit => 120 t.string "received_tags_string", :limit => 120 - t.string "position_ranges_string", :limit => 512, :null => false - t.integer "stance", :null => false - t.datetime "created_at", :null => false - t.boolean "re_resolve", :default => false, :null => false + t.string "position_ranges_string", :limit => 2048, :null => false + t.integer "stance", :null => false + t.datetime "created_at", :null => false + t.boolean "re_resolve", :default => false, :null => false end add_index "links", ["from_logi_id", "to_logi_id"], :name => "index_links_on_from_logi_id_and_to_logi_id" @@ -139,11 +139,11 @@ add_index "log_log_subscriptions", ["user_id"], :name => "index_log_log_subscriptions_on_user_id" create_table "logi_versions", :force => true do |t| - t.integer "logi_id", :null => false - t.integer "editor_user_id", :null => false - t.integer "nr", :null => false - t.string "position_ranges_string", :limit => 8192, :null => false - t.datetime "created_at", :null => false + t.integer "logi_id", :null => false + t.integer "editor_user_id", :null => false + t.integer "nr", :null => false + t.string "position_ranges_string", :limit => 16384, :null => false + t.datetime "created_at", :null => false end add_index "logi_versions", ["logi_id", "nr"], :name => "index_logi_versions_on_logi_id_and_nr", :unique => true This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-10-11 22:54:32
|
Revision: 1779 http://logilogi.svn.sourceforge.net/logilogi/?rev=1779&view=rev Author: wybow Date: 2010-10-11 22:54:26 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Fixed small deployment problem Modified Paths: -------------- projects/loglog/trunk/config/deploy.rb Modified: projects/loglog/trunk/config/deploy.rb =================================================================== --- projects/loglog/trunk/config/deploy.rb 2010-09-30 09:18:30 UTC (rev 1778) +++ projects/loglog/trunk/config/deploy.rb 2010-10-11 22:54:26 UTC (rev 1779) @@ -13,6 +13,8 @@ set :remote_user, "wybo" set :keep_releases, 5 +default_run_options[:pty] = true + # If you aren't using Subversion to manage your source code, specify # your SCM below: # set :scm, :subversion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-30 09:18:36
|
Revision: 1778 http://logilogi.svn.sourceforge.net/logilogi/?rev=1778&view=rev Author: wybow Date: 2010-09-30 09:18:30 +0000 (Thu, 30 Sep 2010) Log Message: ----------- Added poster-mode to b-rex Modified Paths: -------------- tools/b-rex/b-rex Modified: tools/b-rex/b-rex =================================================================== --- tools/b-rex/b-rex 2010-09-23 18:12:37 UTC (rev 1777) +++ tools/b-rex/b-rex 2010-09-30 09:18:30 UTC (rev 1778) @@ -52,6 +52,8 @@ # -a, --assemble Follows all includes and makes it a single file # -e, --expand Assembles and expands to normal tex (does not # turn it into a pdf yet) +# -p, --poster-mode Uses lists with narrower margins, instead of +# latexes 'itemize' # # == Requirements # Ruby (inc rdoc, not included in Debian & Ubuntu, needs ruby and rdoc @@ -85,8 +87,8 @@ @options.process = false @options.assemble = false @options.expand = false - @options.list_margin = '1.9em' - @options.list_squeeze = false + @options.poster = false + # more options in preprocess_options end # Parse options, check arguments, then process the command @@ -109,12 +111,13 @@ def parsed_options? # Specify options opts = OptionParser.new - opts.on('-v', '--version') { output_version ; exit 0 } - opts.on('-h', '--help') { output_help } - opts.on('-V', '--verbose') { @options.verbose = true } - opts.on('-b', '--bibclean') { @options.bibclean = true } - opts.on('-a', '--assemble') { @options.assemble = true } - opts.on('-e', '--expand') { @options.expand = true } + opts.on('-v', '--version') { output_version ; exit 0 } + opts.on('-h', '--help') { output_help } + opts.on('-V', '--verbose') { @options.verbose = true } + opts.on('-b', '--bibclean') { @options.bibclean = true } + opts.on('-a', '--assemble') { @options.assemble = true } + opts.on('-e', '--expand') { @options.expand = true } + opts.on('-p', '--poster-mode') { @options.poster = true } opts.parse!(@arguments) rescue return false @options.filename = @arguments[0] @@ -145,6 +148,10 @@ @options.bibclean = @options.assemble = @options.expand = @options.make = true end + if @options.poster + @options.list_margin = '1.9em' + @options.list_squeeze = false + end end def output_help @@ -182,9 +189,11 @@ else bibtex_filename = bibtex_extract_file_name(BASE_PATH, filename) end - contents = bibtex_clean_file(BASE_PATH, bibtex_filename) - File.open(BASE_PATH + '/' + bibtex_filename, 'w') do |target| - target.write(contents) + if bibtex_filename + contents = bibtex_clean_file(BASE_PATH, bibtex_filename) + File.open(BASE_PATH + '/' + bibtex_filename, 'w') do |target| + target.write(contents) + end end end @@ -234,7 +243,7 @@ if match return match[2] + '.bib' else - raise 'No bibliography{.*} found in texfile' + return nil end end @@ -295,7 +304,7 @@ return lines.join("\n") end - NESTING_TYPES = {'*' => 'list', '#' => 'enumerate'} + NESTING_TYPES = {'*' => 'itemize', '#' => 'enumerate'} def expand_item_lists(contents) lines = contents.split("\n") @@ -312,9 +321,9 @@ whitespaces_in_line = match[1].size if whitespaces_in_line > whitespaces_in_last_line nesting = NESTING_TYPES[match[2]] - item_nestings.push(nesting) - if nesting == "list" - line_begin += ' ' * whitespaces_in_line + '\begin{list}{\labelitemi}{\leftmargin=' + self.options.list_margin + '}' + "\n" + if nesting == "itemize" and self.options.poster + nesting = "list" + line_begin += ' ' * whitespaces_in_line + '\begin{' + nesting + '}{\labelitemi}{\leftmargin=' + self.options.list_margin + '}' + "\n" if self.options.list_squeeze line_begin += '\setlength{\itemsep}{0pt}' + "\n" + '\setlength{\parskip}{0pt}' + "\n" + @@ -323,6 +332,7 @@ else line_begin += ' ' * whitespaces_in_line + '\begin{' + nesting + '}' + "\n" end + item_nestings.push(nesting) elsif whitespaces_in_line < whitespaces_in_last_line and item_nestings.size > 0 nesting = item_nestings.pop @@ -447,12 +457,18 @@ done_line_sub = false begin subbed = false - subbed = line.sub!(/~((-|\w|\s)*?)~\{(.*?)\}/,'\hl{\1}{\3}') + subbed = line.sub!(/~((-|\w|\s)*?)~\{(.*?)\}/) {|match| + self.highlight($1, $3) + } if !subbed if done_line_sub - subbed = line.sub!(/~(.*?)~/,'\hl{\1}{0.0em}') + subbed = line.sub!(/~(.*?)~/) {|match| + self.highlight($1, '0.0em') + } else - subbed = line.sub!(/~(.*?)~/,'\hl{\1}{-0.2em}') + subbed = line.sub!(/~(.*?)~/) {|match| + self.highlight($1, '-0.2em') + } end end done_line_sub = (subbed ? true : false) @@ -462,6 +478,11 @@ return lines.join("\n") end + def highlight(sentence, spacing) + return '\vspace{-0.2em}\colorbox[cmyk]{0,0,0.4,0.0}{\hspace{-3pt}' + + sentence + '\hspace{-3pt}}\vspace{' + spacing + '}' + end + def frame_default(title, options = {}) if options[:open] '\begin{frame}[fragile]' + "\n" + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-23 18:12:43
|
Revision: 1777 http://logilogi.svn.sourceforge.net/logilogi/?rev=1777&view=rev Author: wybow Date: 2010-09-23 18:12:37 +0000 (Thu, 23 Sep 2010) Log Message: ----------- Increased range-lenghts, fixed loglog bug, improved redirects Modified Paths: -------------- trunk/app/controllers/application_controller.rb trunk/app/controllers/invitations_controller.rb trunk/app/controllers/password_resets_controller.rb trunk/app/controllers/user_sessions_controller.rb trunk/app/controllers/users_controller.rb trunk/app/models/log_log_subscription.rb Added Paths: ----------- trunk/db/migrate/20100923165007_increase_ranges_string_size_again.rb Modified: trunk/app/controllers/application_controller.rb =================================================================== --- trunk/app/controllers/application_controller.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/controllers/application_controller.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -63,9 +63,13 @@ # def append_return_url session[:return_urls] ||= [] - if params[:action] != "create" and params[:action] != "update" and - params[:action] != "destroy" + if params[:action] == "create" or params[:action] == "update" or + params[:action] == "destroy" or + (params[:controller] == "user" and params[:action] == "new") + # do nothing + else if session[:return_urls].last == request.url + # Takes double out in redirect, single in back session[:return_urls].pop else referrer = request.env["HTTP_REFERER"] @@ -89,6 +93,16 @@ session[:return_url] = session[:return_urls].last end + # Redirects to the last visited url + # + def redirect_to_return_url_or_default(default_url = nil) + url = return_url_or_default(default_url) + # Adds an extra copy of the last url which will be popped again + # in append_return_url + session[:return_urls].push(url) + redirect_to url + end + # Returns the last visited url # def return_url_or_default(default_url = nil) @@ -727,7 +741,7 @@ def require_no_login if !self.current_user.anonymous? flash[:warning] = t 'c.application.must_not_be_logged_in' - redirect_to return_url_or_default(user_url(current_user)) + redirect_to_return_url_or_default(user_url(current_user)) return false end end Modified: trunk/app/controllers/invitations_controller.rb =================================================================== --- trunk/app/controllers/invitations_controller.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/controllers/invitations_controller.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -41,7 +41,7 @@ flash[:notice] = t 'c.invitations.sent_to', :user => @invitation.user.name end - redirect_to return_url_or_default # same form again for another invite + redirect_to_return_url_or_default # same form again for another invite else @invitation = Invitation.new flash[:error] = t 'c.invitations.error_creating' @@ -81,7 +81,7 @@ end unless @invitation flash[:notice] = t 'c.invitations.url_issues' - redirect_to return_url_or_default + redirect_to_return_url_or_default end end Modified: trunk/app/controllers/password_resets_controller.rb =================================================================== --- trunk/app/controllers/password_resets_controller.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/controllers/password_resets_controller.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -33,7 +33,7 @@ if @user @user.deliver_password_reset_instructions! flash[:notice] = t 'c.password_resets.instructions_emailed' - redirect_to return_url_or_default + redirect_to_return_url_or_default else @user = User.new flash[:error] = t 'c.password_resets.error_not_found' @@ -63,7 +63,7 @@ @user = User.find_using_perishable_token(params[:id]) unless @user flash[:notice] = t 'c.password_resets.url_issues' - redirect_to return_url_or_default + redirect_to_return_url_or_default end end end Modified: trunk/app/controllers/user_sessions_controller.rb =================================================================== --- trunk/app/controllers/user_sessions_controller.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/controllers/user_sessions_controller.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -45,7 +45,7 @@ if session[:invitation].nil? flash.now[:notice] = t 'c.user_sessions.logged_in' shift_return_url - redirect_to return_url_or_default(user_url(@user_session.user)) + redirect_to_return_url_or_default(user_url(@user_session.user)) else flash.now[:notice] = t 'c.user_sessions.logged_in_accept_invitation' redirect_to edit_invitation_url(session[:invitation]) @@ -63,7 +63,7 @@ def destroy self.current_user_session.destroy flash[:notice] = t 'c.user_sessions.logged_out' - redirect_to root_url + redirect_to_return_url_or_default end ### Tabbed methods Modified: trunk/app/controllers/users_controller.rb =================================================================== --- trunk/app/controllers/users_controller.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/controllers/users_controller.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -70,15 +70,13 @@ @user.deliver_welcome! if session[:invitation].nil? flash[:notice] = t 'c.users.created' - shift_return_url - redirect_to return_url_or_default + redirect_to_return_url_or_default else flash[:notice] = t 'c.users.created_accept_invitation' redirect_to edit_invitation_url(session[:invitation]) end else flash.now[:error] = t 'c.users.error_creating' - shift_return_url if !@user.openid_identifier.nil? @selected = "openid" end @@ -105,7 +103,7 @@ @user.save do |result| if result flash[:notice] = t 'c.users.updated' - redirect_to return_url_or_default(user_url(@user)) + redirect_to_return_url_or_default(user_url(@user)) else flash[:error] = t 'c.users.error_updating' render :action => :edit @@ -117,7 +115,7 @@ params[:prefs_profile][:default_peer_group_id]) if @prefs_profile.save flash[:notice] = t 'c.users.settings_updated' - redirect_to return_url_or_default(user_url(@user)) + redirect_to_return_url_or_default(user_url(@user)) else flash[:error] = t 'c.users.error_updating_settings' render :action => 'edit' @@ -138,7 +136,7 @@ end end flash[:notice] = t 'c.users.settings_updated' - redirect_to return_url_or_default(user_url(@user)) + redirect_to_return_url_or_default(user_url(@user)) end end Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-09-13 21:11:01 UTC (rev 1776) +++ trunk/app/models/log_log_subscription.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -28,11 +28,11 @@ periodical = page.body if periodical =~ /[^\s]/ if lls.channel == "logis" - Notifier.deliver_logis_log(user, period, periodical) + Notifier.deliver_logis_log(lls.user, period, periodical) else - Notifier.deliver_personalized_log(user, period, periodical) + Notifier.deliver_personalized_log(lls.user, period, periodical) end - sent_to << user.name + sent_to << lls.user.name end rescue end Added: trunk/db/migrate/20100923165007_increase_ranges_string_size_again.rb =================================================================== --- trunk/db/migrate/20100923165007_increase_ranges_string_size_again.rb (rev 0) +++ trunk/db/migrate/20100923165007_increase_ranges_string_size_again.rb 2010-09-23 18:12:37 UTC (rev 1777) @@ -0,0 +1,11 @@ +class IncreaseRangesStringSizeAgain < ActiveRecord::Migration + def self.up + change_column :logi_versions, :position_ranges_string, :string, :limit => 16384 + change_column :annotations, :position_ranges_string, :string, :limit => 2048 + change_column :external_links, :position_ranges_string, :string, :limit => 2048 + change_column :links, :position_ranges_string, :string, :limit => 2048 + end + + def self.down + end +end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-13 21:11:07
|
Revision: 1776 http://logilogi.svn.sourceforge.net/logilogi/?rev=1776&view=rev Author: wybow Date: 2010-09-13 21:11:01 +0000 (Mon, 13 Sep 2010) Log Message: ----------- Fixed small bug in subscriptions Modified Paths: -------------- trunk/app/models/commenting.rb trunk/app/models/external_link.rb trunk/app/models/log_log_subscription.rb Modified: trunk/app/models/commenting.rb =================================================================== --- trunk/app/models/commenting.rb 2010-09-13 20:04:07 UTC (rev 1775) +++ trunk/app/models/commenting.rb 2010-09-13 21:11:01 UTC (rev 1776) @@ -46,7 +46,7 @@ m = LogLogMessage.new( :kind => "Reply", :channel_names => channels.join(','), - :title => 'Received:' + self.to_logi.current_title, + :title => 'Received: ' + self.to_logi.current_title, :author => self.user.name, :text => self.to_logi.current_snippet, :url => GlobalConfig.site_url + self.to_logi.link.to_s) @@ -56,7 +56,7 @@ :kind => "Reply", :channel_name => 'for_' + self.to_logi.creator.unix_name, - :title => 'To:' + self.from_logi.current_title, + :title => 'To: ' + self.from_logi.current_title, :author => self.user.name, :text => self.from_logi.current_snippet, :url => GlobalConfig.site_url + self.from_logi.link.to_s) Modified: trunk/app/models/external_link.rb =================================================================== --- trunk/app/models/external_link.rb 2010-09-13 20:04:07 UTC (rev 1775) +++ trunk/app/models/external_link.rb 2010-09-13 21:11:01 UTC (rev 1776) @@ -85,7 +85,7 @@ :kind => "External link", :channel_names => ['all', 'external_links', 'for_' + self.logi.creator.unix_name].join(','), - :title => 'In:' + self.logi.current_title, + :title => 'In: ' + self.logi.current_title, :author => self.user.name, :text => self.text + '\n' + self.url, :url => GlobalConfig.site_url + self.logi.link.to_s) Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-09-13 20:04:07 UTC (rev 1775) +++ trunk/app/models/log_log_subscription.rb 2010-09-13 21:11:01 UTC (rev 1776) @@ -20,7 +20,7 @@ def self.send_out_alerts(period) sent_to = [] - LogLogSubscription.find_each(:conditions => ['period = "?"', period]) do |lls| + LogLogSubscription.find_each(:conditions => ['period = ?', period]) do |lls| url = URI.parse(GlobalConfig.log_log_site + "/channels/" + lls.channel + "/periods/" + period + ".txt") begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-13 20:04:13
|
Revision: 1775 http://logilogi.svn.sourceforge.net/logilogi/?rev=1775&view=rev Author: wybow Date: 2010-09-13 20:04:07 +0000 (Mon, 13 Sep 2010) Log Message: ----------- Added delayed screencast disabling, and fixed small bug in medals Modified Paths: -------------- trunk/app/controllers/logis_controller.rb trunk/app/views/changes/_recently_changed_logis.html.erb trunk/config/deploy.rb.tmpl trunk/doc/CONTRIBUTORS trunk/lib/laurel_builder.rb Modified: trunk/app/controllers/logis_controller.rb =================================================================== --- trunk/app/controllers/logis_controller.rb 2010-09-12 10:42:53 UTC (rev 1774) +++ trunk/app/controllers/logis_controller.rb 2010-09-13 20:04:07 UTC (rev 1775) @@ -343,7 +343,8 @@ end def screencast - if !current_context.link? and current_user.anonymous? + if !current_context.link? and (current_user.anonymous? or + current_user.created_at < 10.days.ago) return true end end Modified: trunk/app/views/changes/_recently_changed_logis.html.erb =================================================================== --- trunk/app/views/changes/_recently_changed_logis.html.erb 2010-09-12 10:42:53 UTC (rev 1774) +++ trunk/app/views/changes/_recently_changed_logis.html.erb 2010-09-13 20:04:07 UTC (rev 1775) @@ -11,7 +11,7 @@ :id => "recent_changes"} do %> <div class="index_list"> <!-- <%= link_to 'Jump', 'http://logi-manta.org:3001/?user_id=' + current_user.id.to_s + '&perishable_token=' + current_user.perishable_token %> --> - <%= render :partial => 'list', :locals => {:logis => @logis, :title_lenght => 150} %> + <%= render :partial => 'list', :locals => {:logis => @logis, :title_lenght => 67} %> </div> <% end %> Modified: trunk/config/deploy.rb.tmpl =================================================================== --- trunk/config/deploy.rb.tmpl 2010-09-12 10:42:53 UTC (rev 1774) +++ trunk/config/deploy.rb.tmpl 2010-09-13 20:04:07 UTC (rev 1775) @@ -13,6 +13,8 @@ # servers (which is the default), you can specify the actual location # via the :deploy_to variable: +default_run_options[:pty] = true + case stage when "production" set :deploy_to_base_dir, "/var/www/#{application}" Modified: trunk/doc/CONTRIBUTORS =================================================================== --- trunk/doc/CONTRIBUTORS 2010-09-12 10:42:53 UTC (rev 1774) +++ trunk/doc/CONTRIBUTORS 2010-09-13 20:04:07 UTC (rev 1775) @@ -8,6 +8,8 @@ - PDF-export plugin Allan van Hulst - WYSIWYG-editor based on TinyMCE +Martine Hornby +- Tested LogiLogi extensively at the LIRMM lab Bart Leusink - Second-best bughunter in the Gip2 bug-hunt Miguel Lezama @@ -18,6 +20,8 @@ - Fixed most bugs in the Gip2 bug-hunt, good coder Roel van Rijswijck - Good bughunter +Jean Sallantin +- Tested, supported, and used LogiLogi at the LIRMM lab Bruno Sarlo - Scaling CSS implementation, design of new UI together with Miguel Thierry Stamper @@ -44,3 +48,6 @@ Radboud University Nijmegen - supported Manta development as a Gip-project twice + +LIRMM Lab of the university of Montpellier +- provided help with testing and development for a week in September 2009 Modified: trunk/lib/laurel_builder.rb =================================================================== --- trunk/lib/laurel_builder.rb 2010-09-12 10:42:53 UTC (rev 1774) +++ trunk/lib/laurel_builder.rb 2010-09-13 20:04:07 UTC (rev 1775) @@ -17,7 +17,7 @@ # Creates the badge with ImageMagick # def self.build_badge(name, pg_name, percentile, at, helpers) - percentile = percentile.round + percentile = self.round_percentile(percentile) category = helpers.percentile_category(percentile) if category > 1 l_nr = ((category - 6) * -1).to_s @@ -70,7 +70,7 @@ # Creates the medal with ImageMagick # def self.build_medal(percentile, helpers) - percentile = percentile.round + percentile = self.round_percentile(percentile) category = helpers.percentile_category(percentile) if category > 1 l_nr = ((category - 6) * -1).to_s @@ -97,4 +97,11 @@ Magick::OverCompositeOp) return img end + + def self.round_percentile(percentile) + if percentile < 0 or percentile > 100 + raise 'Error, percentile out of bounds' + end + return percentile.round + end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-12 10:42:59
|
Revision: 1774 http://logilogi.svn.sourceforge.net/logilogi/?rev=1774&view=rev Author: wybow Date: 2010-09-12 10:42:53 +0000 (Sun, 12 Sep 2010) Log Message: ----------- bib-rewriting in b-rex and error notice in t-llre Modified Paths: -------------- tools/b-rex/b-rex tools/t-llre/t-llre Modified: tools/b-rex/b-rex =================================================================== --- tools/b-rex/b-rex 2010-09-09 17:21:30 UTC (rev 1773) +++ tools/b-rex/b-rex 2010-09-12 10:42:53 UTC (rev 1774) @@ -48,6 +48,7 @@ # -h, --help Displays help message # -v, --version Display the version, then exit # -V, --verbose Verbose output +# -b, --bibclean Cleans the bibtex file # -a, --assemble Follows all includes and makes it a single file # -e, --expand Assembles and expands to normal tex (does not # turn it into a pdf yet) @@ -111,6 +112,7 @@ opts.on('-v', '--version') { output_version ; exit 0 } opts.on('-h', '--help') { output_help } opts.on('-V', '--verbose') { @options.verbose = true } + opts.on('-b', '--bibclean') { @options.bibclean = true } opts.on('-a', '--assemble') { @options.assemble = true } opts.on('-e', '--expand') { @options.expand = true } @@ -139,8 +141,9 @@ def preprocess_options if @options.expand @options.assemble = true - elsif !@options.assemble - @options.assemble = @options.expand = @options.make = true + elsif !@options.bibclean and !@options.assemble + @options.bibclean = @options.assemble = @options.expand = + @options.make = true end end @@ -158,6 +161,9 @@ end def run_app + if @options.bibclean + bibclean(@options.filename) + end if @options.assemble assemble(@options.filename) end @@ -169,6 +175,19 @@ end end + def bibclean(filename) + check_filename_argument(filename, 'latex-file or bibtex-file') + if filename !~ /\.tex$/ + bibtex_filename = filename + else + bibtex_filename = bibtex_extract_file_name(BASE_PATH, filename) + end + contents = bibtex_clean_file(BASE_PATH, bibtex_filename) + File.open(BASE_PATH + '/' + bibtex_filename, 'w') do |target| + target.write(contents) + end + end + def assemble(filename) check_filename_argument(filename, 'latex-file') contents = assemble_text_file(BASE_PATH, filename) @@ -208,7 +227,43 @@ # Sub-sub-functions - def assemble_text_file(base_path,filename) + def bibtex_extract_file_name(base_path, filename) + contents = File.open(File.expand_path(filename, base_path)).read + contents =~ /(^|\n)[ \t]*\\bibliography\{(.*?)\}(\n|$)/ + match = $~ + if match + return match[2] + '.bib' + else + raise 'No bibliography{.*} found in texfile' + end + end + + def bibtex_clean_file(base_path, filename) + contents = File.open(File.expand_path(filename, base_path)).read + lines = contents.split("\n") + new_lines = [] + lines.collect! do |line| + if line !~ /^[ \t]*howpublished\s*=\s*\{.*$/ and + line !~ /^[ \t]*shorttitle\s*=\s*\{.*$/ and + line !~ /^[ \t]*isbn\s*=\s*\{.*$/ and + line !~ /^[ \t]*abstract\s*=\s*\{.*$/ and + line !~ /^[ \t]*doi\s*=\s*\{.*$/ and + line !~ /^[ \t]*issn\s*=\s*\{.*$/ and + line !~ /^[ \t]*number\s*=\s*\{.*$/ + line.gsub!("–",'--') + line.gsub!("“",'``') + line.gsub!("”","''") + if line =~ /^[ \t]*pages\s*=\s*\{p(\d*)\}/ + new_lines << " pages = {#{$~[1]}}" + else + new_lines << line + end + end + end + return new_lines.join("\n") + end + + def assemble_text_file(base_path, filename) if !File.directory?(base_path) base_path = File.dirname(base_path) end @@ -501,8 +556,8 @@ end def check_filename_argument(filename, file_text) - if filename.nil? - puts "Needs filename-argument. The name of the #{file_text}\n" + if filename.nil? or !File.exists?(filename) + puts "Needs filename-argument for a file that exists. The name of the #{file_text}\n" output_usage exit end Modified: tools/t-llre/t-llre =================================================================== --- tools/t-llre/t-llre 2010-09-09 17:21:30 UTC (rev 1773) +++ tools/t-llre/t-llre 2010-09-12 10:42:53 UTC (rev 1774) @@ -200,6 +200,9 @@ :body => body, :level => level} end + if parsed_logis.empty? + @errors << "no logis parsed. Check format %ll:/Tags" + end return parsed_logis end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-09 17:21:40
|
Revision: 1773 http://logilogi.svn.sourceforge.net/logilogi/?rev=1773&view=rev Author: wybow Date: 2010-09-09 17:21:30 +0000 (Thu, 09 Sep 2010) Log Message: ----------- Removed kerning from medal Modified Paths: -------------- trunk/lib/laurel_builder.rb Modified: trunk/lib/laurel_builder.rb =================================================================== --- trunk/lib/laurel_builder.rb 2010-09-08 20:50:25 UTC (rev 1772) +++ trunk/lib/laurel_builder.rb 2010-09-09 17:21:30 UTC (rev 1773) @@ -89,7 +89,6 @@ } text.annotate(new, 0, 0, 31, 40, percentile.to_s) { self.pointsize = 26 - self.kerning = 0 self.gravity = Magick::NorthWestGravity } new = new.shade(true, 310, 70) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-08 20:50:36
|
Revision: 1772 http://logilogi.svn.sourceforge.net/logilogi/?rev=1772&view=rev Author: wybow Date: 2010-09-08 20:50:25 +0000 (Wed, 08 Sep 2010) Log Message: ----------- Updated translations Modified Paths: -------------- trunk/app/controllers/users_controller.rb trunk/app/views/logis/_snippets_list.html.erb trunk/app/views/users/_activity.html.erb trunk/app/views/users/edit.html.erb trunk/config/locales/de.yml trunk/config/locales/en.yml trunk/config/locales/es.yml trunk/config/locales/nl.yml Modified: trunk/app/controllers/users_controller.rb =================================================================== --- trunk/app/controllers/users_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/app/controllers/users_controller.rb 2010-09-08 20:50:25 UTC (rev 1772) @@ -243,7 +243,7 @@ def build_save_and_send_badge(user_name, normalized_name, pg_name, pg_normalized_name, percentile) img = LaurelBuilder.build_badge(user_name, pg_name, percentile, - "at", self.helpers) + t('c.users.at'), self.helpers) dir = "#{RAILS_ROOT}/public/do/users/#{normalized_name}/badge" file = "#{dir}/#{pg_normalized_name}.png" self.save_and_send_image(img, dir, file) Modified: trunk/app/views/logis/_snippets_list.html.erb =================================================================== --- trunk/app/views/logis/_snippets_list.html.erb 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/app/views/logis/_snippets_list.html.erb 2010-09-08 20:50:25 UTC (rev 1772) @@ -1,10 +1,4 @@ -<% if logis.empty? %> - <center> - <p class="one_line"> - <i><%= t 'defaults.none' %></i> - </p> - </center> -<% else %> +<% if !logis.empty? %> <% logis.each do |logi| %> <%= render :partial => 'logis/snippet', :locals => {:logi => logi, :action => local_assigns[:action]} %> Modified: trunk/app/views/users/_activity.html.erb =================================================================== --- trunk/app/views/users/_activity.html.erb 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/app/views/users/_activity.html.erb 2010-09-08 20:50:25 UTC (rev 1772) @@ -10,7 +10,7 @@ <% if user == current_user %> <% url_and_title = [edit_user_url(current_user) + '#badge', - {:title => _("Put your badge on your blog")}] %> + {:title => y('v.users.get_badge')}] %> <% else %> <% url_and_title = [user_url(user), {:title => user.name}] %> @@ -22,7 +22,7 @@ *url_and_title)%> <% if user == current_user %> <div class="smallprint"> - <%= link_to("Get your badge for your blog", *url_and_title) %> + <%= link_to(t('v.users.get_badge'), *url_and_title) %> </div> <% end %> Modified: trunk/app/views/users/edit.html.erb =================================================================== --- trunk/app/views/users/edit.html.erb 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/app/views/users/edit.html.erb 2010-09-08 20:50:25 UTC (rev 1772) @@ -89,12 +89,12 @@ <a name="badge"></a> <% render :layout => 'application/panel_with_header', :locals => { :title => t('v.users.badge'), :id => "user_badge"} do %> - <p><%= _("You can add this badge with your ranking to the side-bar of your blog:") %></p> + <p><%= t 'v.users.can_add_badge' %></p> <%= image_tag( badge_url(:id => @user.home_page_tag_string, :peer_group_name => current_prefs.peer_group.home_page_tag_string, :format => 'png'), :size => '120x60') %> - <p><%= _("You can do this by inserting the following html where you please:") %></p> + <p><%= t 'v.users.can_insert_html' %></p> <%= text_area_tag 'badge_field', '<a href="' + user_url(@user) + '">' + image_tag(badge_url(:id => @user.home_page_tag_string, :peer_group_name => current_prefs.peer_group.home_page_tag_string, Modified: trunk/config/locales/de.yml =================================================================== --- trunk/config/locales/de.yml 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/config/locales/de.yml 2010-09-08 20:50:25 UTC (rev 1772) @@ -2,15 +2,15 @@ de: activerecord: attributes: - annotation: + annotation: message: Mitteilung logi: body: Text + selection: Markierung title: Titel - selection: Markierung - peer_group: + peer_group: name: Name - remark: + remark: message: Mitteilung user: email: Mail Modified: trunk/config/locales/en.yml =================================================================== --- trunk/config/locales/en.yml 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/config/locales/en.yml 2010-09-08 20:50:25 UTC (rev 1772) @@ -177,6 +177,7 @@ logged_in_accept_invitation: "Logged you in. Now you can accept your invitation." logged_out: "Logged you out." users: + at: "at" confirm_delete: "Are you sure you want to delete your account?" created: "Your account has been created." created_accept_invitation: "Your account has been created. Now you can accept your invitation." @@ -449,7 +450,7 @@ invitation_join: "{{name}} invites you to join the {{group}} peergroup on {{domain}}." notifier: "LogiLogi Notifier <{{email}}>." password_reset: "Password reset instructions." - update_for: "Update for {{name}} on {{domain}}." + update_personalized: "Update for {{name}} on {{domain}}." update_logis: "{{period}} new logis on {{domain}}." welcome: "Welcome to {{domain}} {{name}}." peer_group: @@ -922,6 +923,8 @@ api_key: "API key" api_key_is_label: "Your API-key is:" badge: "Badge" + can_add_badge: "You can add this badge with your ranking to the side-bar of your blog:" + can_insert_html: "You can do this by inserting the following html where you please:" change_account_settings: "You can change your account settings." create_edit_invite_peer_groups: "Create, edit and invite people to peergroups." created_logis_label: "Created logis:" @@ -937,6 +940,7 @@ email_label: "Email:" enter_new: "Enter your full name, your email and a password." full_name_label: "Full name:" + get_badge: "Get your badge for your blog" subscribe: "Subscribe" feed_label: "RSS feed:" index: "Users index" Modified: trunk/config/locales/es.yml =================================================================== --- trunk/config/locales/es.yml 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/config/locales/es.yml 2010-09-08 20:50:25 UTC (rev 1772) @@ -1,186 +1,212 @@ -# Spanish translations for Rails -# by Francisco Fernando García Nieto (ffg...@gm...) - -es: - number: - # Used in number_with_delimiter() - # These are also the defaults for 'currency', 'percentage', 'precision', and 'human' - format: - # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5) - separator: "," - # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three) - delimiter: "." - # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00) - precision: 3 - - # Used in number_to_currency() - currency: - format: - # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00) - format: "%n %u" - unit: "€" - # These three are to override number.format and are optional - separator: "," - delimiter: "." - precision: 2 - - # Used in number_to_percentage() - percentage: - format: - # These three are to override number.format and are optional - # separator: - delimiter: "" - # precision: - - # Used in number_to_precision() - precision: - format: - # These three are to override number.format and are optional - # separator: - delimiter: "" - # precision: - - # Used in number_to_human_size() - human: - format: - # These three are to override number.format and are optional - # separator: - delimiter: "" - precision: 1 - # Rails <= v2.2.2 - # storage_units: [Bytes, KB, MB, GB, TB] - # Rails >= v2.3 - storage_units: - format: "%n %u" - units: - byte: - one: "Byte" - other: "Bytes" - kb: "KB" - mb: "MB" - gb: "GB" - tb: "TB" - - # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words() - datetime: - distance_in_words: - half_a_minute: "medio minuto" - less_than_x_seconds: - one: "menos de 1 segundo" - other: "menos de {{count}} segundos" - x_seconds: - one: "1 segundo" - other: "{{count}} segundos" - less_than_x_minutes: - one: "menos de 1 minuto" - other: "menos de {{count}} minutos" - x_minutes: - one: "1 minuto" - other: "{{count}} minutos" - about_x_hours: - one: "alrededor de 1 hora" - other: "alrededor de {{count}} horas" - x_days: - one: "1 día" - other: "{{count}} días" - about_x_months: - one: "alrededor de 1 mes" - other: "alrededor de {{count}} meses" - x_months: - one: "1 mes" - other: "{{count}} meses" - about_x_years: - one: "alrededor de 1 año" - other: "alrededor de {{count}} años" - over_x_years: - one: "más de 1 año" - other: "más de {{count}} años" - almost_x_years: - one: "casi 1 año" - other: "casi {{count}} años" - prompts: - year: "Año" - month: "Mes" - day: "Día" - hour: "Hora" - minute: "Minutos" - second: "Segundos" - - activerecord: - errors: - template: - header: - one: "no se pudo guardar este {{model}} porque se encontró 1 error" - other: "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" - # The variable :count is also available - body: "Se encontraron problemas con los siguientes campos:" - - # The values :model, :attribute and :value are always available for interpolation - # The value :count is available when applicable. Can be used for pluralization. - messages: - inclusion: "no está incluido en la lista" - exclusion: "está reservado" - invalid: "no es válido" +--- +es: + activerecord: + attributes: + annotation: + message: "" + logi: + body: "" + selection: "" + title: "" + peer_group: + name: "" + remark: + message: "" + user: + email: "" + name: "" + password: "" + password_confirmation: "" + user_session: + email: "" + name: "" + password: "" + password_confirmation: "" + errors: + attributes: ~ + full_messages: + format: "" + messages: + accepted: "debe ser aceptado" + blank: "no puede estar en blanco" confirmation: "no coincide con la confirmación" - accepted: "debe ser aceptado" empty: "no puede estar vacío" - blank: "no puede estar en blanco" - too_long: "es demasiado largo ({{count}} caracteres máximo)" - too_short: "es demasiado corto ({{count}} caracteres mínimo)" - wrong_length: "no tiene la longitud correcta ({{count}} caracteres exactos)" - taken: "ya está en uso" - not_a_number: "no es un número" + equal_to: "debe ser igual a {{count}}" + even: "debe ser par" + exclusion: "está reservado" greater_than: "debe ser mayor que {{count}}" greater_than_or_equal_to: "debe ser mayor que o igual a {{count}}" - equal_to: "debe ser igual a {{count}}" + inclusion: "no está incluido en la lista" + invalid: "no es válido" less_than: "debe ser menor que {{count}}" less_than_or_equal_to: "debe ser menor que o igual a {{count}}" + not_a_number: "no es un número" odd: "debe ser impar" - even: "debe ser par" record_invalid: "La validación falló: {{errors}}" - # Append your own errors here or at the model/attributes scope. - - models: - # Overrides default messages - - attributes: - # Overrides model and default messages. - - date: - formats: - # Use the strftime parameters for formats. - # When no format has been given, it uses default. - # You can provide other formats here if you like! + taken: "ya está en uso" + too_long: "es demasiado largo ({{count}} caracteres máximo)" + too_short: "es demasiado corto ({{count}} caracteres mínimo)" + wrong_length: "no tiene la longitud correcta ({{count}} caracteres exactos)" + models: ~ + template: + body: "Se encontraron problemas con los siguientes campos:" + header: + one: "no se pudo guardar este {{model}} porque se encontró 1 error" + other: "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" + models: + annotation: "" + logi: "" + logi_version: "" + remark: "" + user: "" + user_session: "" + authlogic: + error_messages: + consecutive_failed_logins_limit_exceeded: "" + email_invalid: "" + login_blank: "" + login_invalid: "" + login_not_found: "" + no_authentication_details: "" + date: + abbr_day_names: + - Dom + - Lun + - Mar + - Mie + - Jue + - Vie + - Sab + abbr_month_names: + - ~ + - Ene + - Feb + - Mar + - Abr + - May + - Jun + - Jul + - Ago + - Sep + - Oct + - Nov + - Dic + day_names: + - Domingo + - Lunes + - Martes + - Miércoles + - Jueves + - Viernes + - Sábado + formats: default: "%e/%m/%Y" - short: "%e de %b" - long: "%e de %B de %Y" - - day_names: [Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado] - abbr_day_names: [Dom, Lun, Mar, Mie, Jue, Vie, Sab] - - # Don't forget the nil at the beginning; there's no such thing as a 0th month - month_names: [~, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre] - abbr_month_names: [~, Ene, Feb, Mar, Abr, May, Jun, Jul, Ago, Sep, Oct, Nov, Dic] - # Used in date_select and datime_select. - order: [ :day, :month, :year ] - - time: - formats: + long: "%e de %B de %Y" + short: "%e de %b" + month_names: + - ~ + - Enero + - Febrero + - Marzo + - Abril + - Mayo + - Junio + - Julio + - Agosto + - Septiembre + - Octubre + - Noviembre + - Diciembre + order: + - !ruby/symbol day + - !ruby/symbol month + - !ruby/symbol year + datetime: + distance_in_words: + about_x_hours: + one: "alrededor de 1 hora" + other: "alrededor de {{count}} horas" + about_x_months: + one: "alrededor de 1 mes" + other: "alrededor de {{count}} meses" + about_x_years: + one: "alrededor de 1 año" + other: "alrededor de {{count}} años" + almost_x_years: + one: "casi 1 año" + other: "casi {{count}} años" + half_a_minute: "medio minuto" + less_than_x_minutes: + one: "menos de 1 minuto" + other: "menos de {{count}} minutos" + less_than_x_seconds: + one: "menos de 1 segundo" + other: "menos de {{count}} segundos" + over_x_years: + one: "más de 1 año" + other: "más de {{count}} años" + x_days: + one: "1 día" + other: "{{count}} días" + x_minutes: + one: "1 minuto" + other: "{{count}} minutos" + x_months: + one: "1 mes" + other: "{{count}} meses" + x_seconds: + one: "1 segundo" + other: "{{count}} segundos" + prompts: + day: Día + hour: Hora + minute: Minutos + month: Mes + second: Segundos + year: Año + number: + currency: + format: + delimiter: "." + format: "%n %u" + precision: 2 + separator: "," + unit: € + format: + delimiter: "." + precision: 3 + separator: "," + human: + format: + delimiter: "" + precision: 1 + storage_units: + format: "%n %u" + units: + byte: + one: Byte + other: Bytes + gb: GB + kb: KB + mb: MB + tb: TB + percentage: + format: + delimiter: "" + precision: + format: + delimiter: "" + support: + array: + last_word_connector: " y " + two_words_connector: " y " + words_connector: ", " + select: + prompt: "Por favor seleccione" + time: + am: am + formats: default: "%A, %e de %B de %Y %H:%M:%S %z" - short: "%e de %b %H:%M" - long: "%e de %B de %Y %H:%M" - am: "am" - pm: "pm" - -# Used in array.to_sentence. - support: - select: - # default value for :prompt => true in FormOptionsHelper - prompt: "Por favor seleccione" - array: - # Rails <= v.2.2.2 - # sentence_connector: "y" - # Rails >= v.2.3 - words_connector: ", " - two_words_connector: " y " - last_word_connector: " y " + long: "%e de %B de %Y %H:%M" + short: "%e de %b %H:%M" + pm: pm Modified: trunk/config/locales/nl.yml =================================================================== --- trunk/config/locales/nl.yml 2010-09-08 18:31:56 UTC (rev 1771) +++ trunk/config/locales/nl.yml 2010-09-08 20:50:25 UTC (rev 1772) @@ -1,173 +1,204 @@ -# Dutch translation in YML by Ariejan de Vroom <ar...@ar...> -# - Sponsored by Kabisa ICT - http://kabisa.nl -# -# Fully compatible with Translate (the Rails translation plugin) -# - http://developer.newsdesk.se/2009/01/21/translate-new-rails-i18n-plugin-with-a-nice-web-ui/ --- nl: - number: - format: - separator: "," - precision: 2 - delimiter: . - human: - storage_units: - format: "%n %u" - units: - kb: KB - tb: TB - gb: GB - byte: - one: Byte - other: Bytes - mb: MB - currency: - format: - format: "%u %n" - unit: !binary | - 4oKs - - separator: "," - precision: 2 - delimiter: . activerecord: + attributes: + annotation: + message: "" + logi: + body: "" + selection: "" + title: "" + peer_group: + name: "" + remark: + message: "" + user: + email: "" + name: "" + password: "" + password_confirmation: "" + user_session: + email: "" + name: "" + password: "" + password_confirmation: "" errors: + full_messages: + format: "" messages: - greater_than_or_equal_to: moet groter of gelijk zijn aan {{count}} - less_than_or_equal_to: moet minder of gelijk zijn aan {{count}} - confirmation: komt niet met de bevestiging overeen - blank: moet opgegeven zijn - exclusion: is niet beschikbaar - invalid: is ongeldig - record_invalid: is ongeldig - odd: moet oneven zijn - too_short: is te kort (niet minder dan {{count}} tekens) - wrong_length: heeft niet de juiste lengte (moet {{count}} tekens lang zijn) - empty: moet opgegeven zijn - even: moet even zijn - less_than: moet minder zijn dan {{count}} - equal_to: moet gelijk zijn aan {{count}} - greater_than: moet groter zijn dan {{count}} - accepted: moet worden geaccepteerd - too_long: is te lang (niet meer dan {{count}} tekens) - taken: is niet beschikbaar - inclusion: is niet in de lijst opgenomen - not_a_number: is geen getal + accepted: "moet worden geaccepteerd" + blank: "moet opgegeven zijn" + confirmation: "komt niet met de bevestiging overeen" + empty: "moet opgegeven zijn" + equal_to: "moet gelijk zijn aan {{count}}" + even: "moet even zijn" + exclusion: "is niet beschikbaar" + greater_than: "moet groter zijn dan {{count}}" + greater_than_or_equal_to: "moet groter of gelijk zijn aan {{count}}" + inclusion: "is niet in de lijst opgenomen" + invalid: "is ongeldig" + less_than: "moet minder zijn dan {{count}}" + less_than_or_equal_to: "moet minder of gelijk zijn aan {{count}}" + not_a_number: "is geen getal" + odd: "moet oneven zijn" + record_invalid: "is ongeldig" + taken: "is niet beschikbaar" + too_long: "is te lang (niet meer dan {{count}} tekens)" + too_short: "is te kort (niet minder dan {{count}} tekens)" + wrong_length: "heeft niet de juiste lengte (moet {{count}} tekens lang zijn)" template: body: "Controleer alstublieft de volgende velden:" header: one: "Kon dit {{model}} object niet opslaan: 1 fout." other: "Kon dit {{model}} niet opslaan: {{count}} fouten." - time: - am: "'s ochtends" - formats: - default: "%a %d %b %Y %H:%M:%S %Z" - time: "%H:%M" - short: "%d %b %H:%M" - only_second: "%S" - datetime: - formats: - default: "%d-%m-%YT%H:%M:%S%Z" - long: "%d %B %Y %H:%M" - pm: "'s middags" + models: + annotation: "" + logi: "" + logi_version: "" + remark: "" + user: "" + user_session: "" + authlogic: + error_messages: + consecutive_failed_logins_limit_exceeded: "" + email_invalid: "" + login_blank: "" + login_invalid: "" + login_not_found: "" + no_authentication_details: "" date: - month_names: - - - - januari - - februari - - maart - - april - - mei - - juni - - juli - - augustus - - september - - oktober - - november - - december abbr_day_names: - - zon - - maa - - din - - woe - - don - - vri - - zat - order: - - :day - - :month - - :year + - zon + - maa + - din + - woe + - don + - vri + - zat + abbr_month_names: + - ~ + - jan + - feb + - mar + - apr + - mei + - jun + - jul + - aug + - sep + - okt + - nov + - dec + day_names: + - zondag + - maandag + - dinsdag + - woensdag + - donderdag + - vrijdag + - zaterdag formats: + default: "%d/%m/%Y" + long: "%e %B %Y" only_day: "%e" - default: "%d/%m/%Y" short: "%e %b" - long: "%e %B %Y" - day_names: - - zondag - - maandag - - dinsdag - - woensdag - - donderdag - - vrijdag - - zaterdag - abbr_month_names: - - - - jan - - feb - - mar - - apr - - mei - - jun - - jul - - aug - - sep - - okt - - nov - - dec - support: - array: - words_connector: "," - last_word_connector: ", en" - two_words_connector: en + month_names: + - ~ + - januari + - februari + - maart + - april + - mei + - juni + - juli + - augustus + - september + - oktober + - november + - december + order: + - !ruby/symbol day + - !ruby/symbol month + - !ruby/symbol year datetime: + distance_in_words: + about_x_hours: + one: "ongeveer één uur" + other: "ongeveer {{count}} uur" + about_x_months: + one: "ongeveer één maand" + other: "ongeveer {{count}} maanden" + about_x_years: + one: "ongeveer één jaar" + other: "ongeveer {{count}} jaren" + half_a_minute: "halve minuut" + less_than_x_minutes: + one: "minder dan één minuut" + other: "minder dan {{count}} minuten" + less_than_x_seconds: + one: "minder dan één seconde" + other: "minder dan {{count}} seconden" + over_x_years: + one: "langer dan één jaar" + other: "langer {{count}} jaar" + x_days: + one: "1 dag" + other: "{{count}} dagen" + x_minutes: + one: "1 minuut" + other: "{{count}} minuten" + x_months: + one: "1 maand" + other: "{{count}} maanden" + x_seconds: + one: "1 seconde" + other: "{{count}} seconden" format: default: "%Y-%m-%dT%H:%M:%S%Z" prompts: + day: dag + hour: uur minute: minuut + month: maand second: seconden - month: maand - hour: uur - day: dag year: jaar - distance_in_words: - less_than_x_minutes: - one: "minder dan \xC3\xA9\xC3\xA9n minuut" - other: minder dan {{count}} minuten - x_days: - one: 1 dag - other: "{{count}} dagen" - x_seconds: - one: 1 seconde - other: "{{count}} seconden" - about_x_hours: - one: "ongeveer \xC3\xA9\xC3\xA9n uur" - other: ongeveer {{count}} uur - less_than_x_seconds: - one: "minder dan \xC3\xA9\xC3\xA9n seconde" - other: minder dan {{count}} seconden - x_months: - one: 1 maand - other: "{{count}} maanden" - x_minutes: - one: 1 minuut - other: "{{count}} minuten" - about_x_years: - one: "ongeveer \xC3\xA9\xC3\xA9n jaar" - other: ongeveer {{count}} jaren - about_x_months: - one: "ongeveer \xC3\xA9\xC3\xA9n maand" - other: ongeveer {{count}} maanden - over_x_years: - one: "langer dan \xC3\xA9\xC3\xA9n jaar" - other: langer {{count}} jaar - half_a_minute: halve minuut + number: + currency: + format: + delimiter: "." + format: "%u %n" + precision: 2 + separator: "," + unit: € + format: + delimiter: "." + precision: 2 + separator: "," + human: + storage_units: + format: "%n %u" + units: + byte: + one: Byte + other: Bytes + gb: GB + kb: KB + mb: MB + tb: TB + support: + array: + last_word_connector: ", en" + two_words_connector: en + words_connector: "," + time: + am: "'s ochtends" + formats: + datetime: + formats: + default: "%d-%m-%YT%H:%M:%S%Z" + default: "%a %d %b %Y %H:%M:%S %Z" + long: "%d %B %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + pm: "'s middags" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-08 18:32:06
|
Revision: 1771 http://logilogi.svn.sourceforge.net/logilogi/?rev=1771&view=rev Author: wybow Date: 2010-09-08 18:31:56 +0000 (Wed, 08 Sep 2010) Log Message: ----------- Updated copyright notices for 2010 Modified Paths: -------------- trunk/app/controllers/annotations_controller.rb trunk/app/controllers/application_controller.rb trunk/app/controllers/cache_controller.rb trunk/app/controllers/changes_controller.rb trunk/app/controllers/comments_controller.rb trunk/app/controllers/external_links_controller.rb trunk/app/controllers/invitations_controller.rb trunk/app/controllers/linked_logis_controller.rb trunk/app/controllers/links_controller.rb trunk/app/controllers/logi_extras_controller.rb trunk/app/controllers/logi_inserts_controller.rb trunk/app/controllers/logi_versions_controller.rb trunk/app/controllers/logis_controller.rb trunk/app/controllers/password_resets_controller.rb trunk/app/controllers/paths_controller.rb trunk/app/controllers/peer_group_admin_memberships_controller.rb trunk/app/controllers/peer_group_memberships_controller.rb trunk/app/controllers/peer_groups_controller.rb trunk/app/controllers/perma_links_controller.rb trunk/app/controllers/prefs_profiles_controller.rb trunk/app/controllers/rankings_controller.rb trunk/app/controllers/ratings_controller.rb trunk/app/controllers/remarks_controller.rb trunk/app/controllers/remote_users_controller.rb trunk/app/controllers/searches_controller.rb trunk/app/controllers/steps_controller.rb trunk/app/controllers/used_tags_controller.rb trunk/app/controllers/user_groups_controller.rb trunk/app/controllers/user_sessions_controller.rb trunk/app/controllers/users_controller.rb trunk/app/controllers/votes_controller.rb trunk/app/helpers/application_helper.rb trunk/app/models/annotation.rb trunk/app/models/commenting.rb trunk/app/models/context.rb trunk/app/models/external_link.rb trunk/app/models/global_config.rb trunk/app/models/invitation.rb trunk/app/models/link.rb trunk/app/models/link_match.rb trunk/app/models/log_log_message.rb trunk/app/models/log_log_subscription.rb trunk/app/models/logi.rb trunk/app/models/logi_version.rb trunk/app/models/notifier.rb trunk/app/models/path.rb trunk/app/models/peer_group.rb trunk/app/models/peer_group_membership.rb trunk/app/models/prefs_profile.rb trunk/app/models/rating.rb trunk/app/models/remark.rb trunk/app/models/step.rb trunk/app/models/tag.rb trunk/app/models/used_tag.rb trunk/app/models/user.rb trunk/app/models/user_group.rb trunk/app/models/user_group_membership.rb trunk/app/models/user_session.rb trunk/app/models/vote.rb trunk/app/views/layouts/_de_footer.html.erb trunk/app/views/layouts/_footer.html.erb trunk/config/config.rb.tmpl trunk/config/environment.rb trunk/config/initializers/array.rb trunk/config/initializers/association_collection.rb trunk/config/initializers/cgi.rb trunk/config/initializers/fixtures.rb trunk/config/initializers/hash.rb trunk/config/initializers/nil_class.rb trunk/config/initializers/object.rb trunk/config/initializers/string.rb trunk/config/initializers/uri.rb trunk/config/routes.rb trunk/db/migrate/001_initial_schema.rb trunk/db/migrate/003_add_unique_indices.rb trunk/lib/browser_language_code.rb trunk/lib/error/existence_error.rb trunk/lib/error/hash_error.rb trunk/lib/error/language_error.rb trunk/lib/error/link_cluster_error.rb trunk/lib/error/link_error.rb trunk/lib/error/parsing_error.rb trunk/lib/location/geo_location.rb trunk/lib/logi_logi_xapian.rb trunk/lib/modules/cache_methods_module.rb trunk/lib/modules/constant_named_scopes_module.rb trunk/lib/modules/home_page_module.rb trunk/lib/modules/insert_position_range_list_extension_module.rb trunk/lib/modules/order_by_module.rb trunk/lib/modules/tags_strings_module.rb trunk/lib/modules/unix_name_module.rb trunk/lib/task_helper.rb trunk/public/javascripts/magick_corners.js trunk/test/functional/annotations_controller_test.rb trunk/test/functional/application_controller_test.rb trunk/test/functional/cache_controller_test.rb trunk/test/functional/changes_controller_test.rb trunk/test/functional/comments_controller_test.rb trunk/test/functional/external_links_controller_test.rb trunk/test/functional/invitations_controller_test.rb trunk/test/functional/linked_logi_controller_test.rb trunk/test/functional/links_controller_test.rb trunk/test/functional/logi_inserts_controller_test.rb trunk/test/functional/logi_versions_controller_test.rb trunk/test/functional/logis_controller_test.rb trunk/test/functional/password_resets_controller_test.rb trunk/test/functional/peer_group_admin_memberships_controller_test.rb trunk/test/functional/peer_groups_controller_test.rb trunk/test/functional/perma_links_controller_test.rb trunk/test/functional/prefs_profiles_controller_test.rb trunk/test/functional/ratings_controller_test.rb trunk/test/functional/remarks_controller_test.rb trunk/test/functional/user_groups_controller_test.rb trunk/test/functional/user_sessions_controller_test.rb trunk/test/functional/users_controller_test.rb trunk/test/functional/votes_controller_test.rb trunk/test/test_helper.rb trunk/test/unit/annotation_test.rb trunk/test/unit/commenting_test.rb trunk/test/unit/context_test.rb trunk/test/unit/extensions/array_test.rb trunk/test/unit/extensions/cgi_test.rb trunk/test/unit/extensions/hash_test.rb trunk/test/unit/extensions/nil_class_test.rb trunk/test/unit/extensions/string_test.rb trunk/test/unit/external_link_test.rb trunk/test/unit/global_config_test.rb trunk/test/unit/invitation_test.rb trunk/test/unit/link_match_test.rb trunk/test/unit/link_test.rb trunk/test/unit/logi_test.rb trunk/test/unit/logi_version_test.rb trunk/test/unit/notifier_test.rb trunk/test/unit/path_test.rb trunk/test/unit/peer_group_membership_test.rb trunk/test/unit/peer_group_test.rb trunk/test/unit/prefs_profile_test.rb trunk/test/unit/rating_test.rb trunk/test/unit/remark_test.rb trunk/test/unit/step_test.rb trunk/test/unit/tag_test.rb trunk/test/unit/used_tag_test.rb trunk/test/unit/user_group_membership_test.rb trunk/test/unit/user_group_test.rb trunk/test/unit/user_test.rb trunk/test/unit/vote_test.rb trunk/vendor/plugins/body_builder/README trunk/vendor/plugins/body_builder/lib/body_builder.rb trunk/vendor/plugins/magick_corners/README trunk/vendor/plugins/magick_corners/generators/magick_corners/magick_corners_generator.rb trunk/vendor/plugins/magick_corners/generators/magick_corners/templates/javascripts/magick_corners.js trunk/vendor/plugins/magick_corners/lib/app/controllers/magick_corners_controller.rb trunk/vendor/plugins/magick_corners/lib/magick_corners/config.rb trunk/vendor/plugins/magick_corners/lib/magick_corners/routes.rb trunk/vendor/plugins/magick_corners/lib/magick_corners.rb trunk/vendor/plugins/magick_corners/test/functional/magick_corners_controller_test.rb trunk/vendor/plugins/thorny_form/README trunk/vendor/plugins/thorny_form/lib/thorny_form.rb trunk/vendor/plugins/thorny_form/lib/thorny_form_helper.rb trunk/vendor/plugins/thorny_form/lib/thorny_form_test_helper.rb Modified: trunk/app/controllers/annotations_controller.rb =================================================================== --- trunk/app/controllers/annotations_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/annotations_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/application_controller.rb =================================================================== --- trunk/app/controllers/application_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/application_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/cache_controller.rb =================================================================== --- trunk/app/controllers/cache_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/cache_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/changes_controller.rb =================================================================== --- trunk/app/controllers/changes_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/changes_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/comments_controller.rb =================================================================== --- trunk/app/controllers/comments_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/comments_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/external_links_controller.rb =================================================================== --- trunk/app/controllers/external_links_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/external_links_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/invitations_controller.rb =================================================================== --- trunk/app/controllers/invitations_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/invitations_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/linked_logis_controller.rb =================================================================== --- trunk/app/controllers/linked_logis_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/linked_logis_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/links_controller.rb =================================================================== --- trunk/app/controllers/links_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/links_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/logi_extras_controller.rb =================================================================== --- trunk/app/controllers/logi_extras_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/logi_extras_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/logi_inserts_controller.rb =================================================================== --- trunk/app/controllers/logi_inserts_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/logi_inserts_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/logi_versions_controller.rb =================================================================== --- trunk/app/controllers/logi_versions_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/logi_versions_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/logis_controller.rb =================================================================== --- trunk/app/controllers/logis_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/logis_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/password_resets_controller.rb =================================================================== --- trunk/app/controllers/password_resets_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/password_resets_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/paths_controller.rb =================================================================== --- trunk/app/controllers/paths_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/paths_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/peer_group_admin_memberships_controller.rb =================================================================== --- trunk/app/controllers/peer_group_admin_memberships_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/peer_group_admin_memberships_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/peer_group_memberships_controller.rb =================================================================== --- trunk/app/controllers/peer_group_memberships_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/peer_group_memberships_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/peer_groups_controller.rb =================================================================== --- trunk/app/controllers/peer_groups_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/peer_groups_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/perma_links_controller.rb =================================================================== --- trunk/app/controllers/perma_links_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/perma_links_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/prefs_profiles_controller.rb =================================================================== --- trunk/app/controllers/prefs_profiles_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/prefs_profiles_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/rankings_controller.rb =================================================================== --- trunk/app/controllers/rankings_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/rankings_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/ratings_controller.rb =================================================================== --- trunk/app/controllers/ratings_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/ratings_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/remarks_controller.rb =================================================================== --- trunk/app/controllers/remarks_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/remarks_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/remote_users_controller.rb =================================================================== --- trunk/app/controllers/remote_users_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/remote_users_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/searches_controller.rb =================================================================== --- trunk/app/controllers/searches_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/searches_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/steps_controller.rb =================================================================== --- trunk/app/controllers/steps_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/steps_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/used_tags_controller.rb =================================================================== --- trunk/app/controllers/used_tags_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/used_tags_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/user_groups_controller.rb =================================================================== --- trunk/app/controllers/user_groups_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/user_groups_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/user_sessions_controller.rb =================================================================== --- trunk/app/controllers/user_sessions_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/user_sessions_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/users_controller.rb =================================================================== --- trunk/app/controllers/users_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/users_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/controllers/votes_controller.rb =================================================================== --- trunk/app/controllers/votes_controller.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/controllers/votes_controller.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/helpers/application_helper.rb =================================================================== --- trunk/app/helpers/application_helper.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/helpers/application_helper.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/annotation.rb =================================================================== --- trunk/app/models/annotation.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/annotation.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/commenting.rb =================================================================== --- trunk/app/models/commenting.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/commenting.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/context.rb =================================================================== --- trunk/app/models/context.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/context.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/external_link.rb =================================================================== --- trunk/app/models/external_link.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/external_link.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/global_config.rb =================================================================== --- trunk/app/models/global_config.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/global_config.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/invitation.rb =================================================================== --- trunk/app/models/invitation.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/invitation.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/link.rb =================================================================== --- trunk/app/models/link.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/link.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/link_match.rb =================================================================== --- trunk/app/models/link_match.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/link_match.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/log_log_message.rb =================================================================== --- trunk/app/models/log_log_message.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/log_log_message.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/log_log_subscription.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/logi.rb =================================================================== --- trunk/app/models/logi.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/logi.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/logi_version.rb =================================================================== --- trunk/app/models/logi_version.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/logi_version.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/notifier.rb =================================================================== --- trunk/app/models/notifier.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/notifier.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/path.rb =================================================================== --- trunk/app/models/path.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/path.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/peer_group.rb =================================================================== --- trunk/app/models/peer_group.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/peer_group.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/peer_group_membership.rb =================================================================== --- trunk/app/models/peer_group_membership.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/peer_group_membership.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/prefs_profile.rb =================================================================== --- trunk/app/models/prefs_profile.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/prefs_profile.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/rating.rb =================================================================== --- trunk/app/models/rating.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/rating.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/remark.rb =================================================================== --- trunk/app/models/remark.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/remark.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/step.rb =================================================================== --- trunk/app/models/step.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/step.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/tag.rb =================================================================== --- trunk/app/models/tag.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/tag.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/used_tag.rb =================================================================== --- trunk/app/models/used_tag.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/used_tag.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/user.rb =================================================================== --- trunk/app/models/user.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/user.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/user_group.rb =================================================================== --- trunk/app/models/user_group.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/user_group.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/user_group_membership.rb =================================================================== --- trunk/app/models/user_group_membership.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/user_group_membership.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/user_session.rb =================================================================== --- trunk/app/models/user_session.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/user_session.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/models/vote.rb =================================================================== --- trunk/app/models/vote.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/models/vote.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/app/views/layouts/_de_footer.html.erb =================================================================== --- trunk/app/views/layouts/_de_footer.html.erb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/views/layouts/_de_footer.html.erb 2010-09-08 18:31:56 UTC (rev 1771) @@ -16,7 +16,7 @@ </div> <div class="copyright"> <div class="panel_content_padding"> - © 2007-2009 <a href="http://foundation.logilogi.org"><%= t 'v.layouts.logi_logi_foundation' %></a>. + © 2006-2010 <a href="http://foundation.logilogi.org"><%= t 'v.layouts.logi_logi_foundation' %></a>. <%= t('v.layouts.free_software_licensed', :free_open => '<a href="http://en.logilogi.org/Development/Logi_Logi=Wybo_Wiersma_32">', :affero_open => '<a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">', Modified: trunk/app/views/layouts/_footer.html.erb =================================================================== --- trunk/app/views/layouts/_footer.html.erb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/app/views/layouts/_footer.html.erb 2010-09-08 18:31:56 UTC (rev 1771) @@ -23,7 +23,7 @@ <% end %> <div class="copyright"> <div class="panel_content_padding"> - © 2007-2009 <a href="http://foundation.logilogi.org"><%= t 'v.layouts.logi_logi_foundation' %></a>. + © 2006-2010 <a href="http://foundation.logilogi.org"><%= t 'v.layouts.logi_logi_foundation' %></a>. <%= t('v.layouts.free_software_licensed', :free_open => '<a href="http://en.logilogi.org/Development/Logi_Logi=Wybo_Wiersma_32">', :affero_open => '<a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">', Modified: trunk/config/config.rb.tmpl =================================================================== --- trunk/config/config.rb.tmpl 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/config.rb.tmpl 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,3 +1,16 @@ +#--# +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> +# +# License: +# This file is part of the LogiLogi program. LogiLogi is Free Software. +# You can run/distribute/modify LogiLogi under the terms of the GNU Affero +# General Public License version 3. The Affero GPL states that running a +# modified version or a derivative work also requires you to make the source +# code of that work available to everyone that can interact with it. We +# chose the Affero GPL to ensure that LogiLogi remains open and libre +# (doc/LICENSE contains the full text of the legally binding license). +#++# + module InitialGlobalConfig # If there is a subdomain, and it is different from the # language_code, you can set it here. Modified: trunk/config/environment.rb =================================================================== --- trunk/config/environment.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/environment.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,3 +1,16 @@ +#--# +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> +# +# License: +# This file is part of the LogiLogi program. LogiLogi is Free Software. +# You can run/distribute/modify LogiLogi under the terms of the GNU Affero +# General Public License version 3. The Affero GPL states that running a +# modified version or a derivative work also requires you to make the source +# code of that work available to everyone that can interact with it. We +# chose the Affero GPL to ensure that LogiLogi remains open and libre +# (doc/LICENSE contains the full text of the legally binding license). +#++# + # Be sure to restart your web server when you modify this file. # Uncomment below to force Rails into production mode when Modified: trunk/config/initializers/array.rb =================================================================== --- trunk/config/initializers/array.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/array.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/association_collection.rb =================================================================== --- trunk/config/initializers/association_collection.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/association_collection.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/cgi.rb =================================================================== --- trunk/config/initializers/cgi.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/cgi.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/fixtures.rb =================================================================== --- trunk/config/initializers/fixtures.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/fixtures.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/hash.rb =================================================================== --- trunk/config/initializers/hash.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/hash.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/nil_class.rb =================================================================== --- trunk/config/initializers/nil_class.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/nil_class.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/object.rb =================================================================== --- trunk/config/initializers/object.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/object.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/string.rb =================================================================== --- trunk/config/initializers/string.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/string.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/initializers/uri.rb =================================================================== --- trunk/config/initializers/uri.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/initializers/uri.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/config/routes.rb =================================================================== --- trunk/config/routes.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/config/routes.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,3 +1,16 @@ +#--# +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> +# +# License: +# This file is part of the LogiLogi program. LogiLogi is Free Software. +# You can run/distribute/modify LogiLogi under the terms of the GNU Affero +# General Public License version 3. The Affero GPL states that running a +# modified version or a derivative work also requires you to make the source +# code of that work available to everyone that can interact with it. We +# chose the Affero GPL to ensure that LogiLogi remains open and libre +# (doc/LICENSE contains the full text of the legally binding license). +#++# + ActionController::Routing::Routes.draw do |map| # The priority is based upon order of creation: first created -> highest priority. Modified: trunk/db/migrate/001_initial_schema.rb =================================================================== --- trunk/db/migrate/001_initial_schema.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/db/migrate/001_initial_schema.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/db/migrate/003_add_unique_indices.rb =================================================================== --- trunk/db/migrate/003_add_unique_indices.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/db/migrate/003_add_unique_indices.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,16 +1,3 @@ -#--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> -# -# License: -# This file is part of the LogiLogi program. LogiLogi is Free Software. -# You can run/distribute/modify LogiLogi under the terms of the GNU Affero -# General Public License version 3. The Affero GPL states that running a -# modified version or a derivative work also requires you to make the source -# code of that work available to everyone that can interact with it. We -# chose the Affero GPL to ensure that LogiLogi remains open and libre -# (doc/LICENSE contains the full text of the legally binding license). -#++# - class AddUniqueIndices < ActiveRecord::Migration # Needed because of concurrent sessions which # validates_uniqueness_of cannot handle. Modified: trunk/lib/browser_language_code.rb =================================================================== --- trunk/lib/browser_language_code.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/browser_language_code.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/existence_error.rb =================================================================== --- trunk/lib/error/existence_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/existence_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/hash_error.rb =================================================================== --- trunk/lib/error/hash_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/hash_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/language_error.rb =================================================================== --- trunk/lib/error/language_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/language_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/link_cluster_error.rb =================================================================== --- trunk/lib/error/link_cluster_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/link_cluster_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/link_error.rb =================================================================== --- trunk/lib/error/link_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/link_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/error/parsing_error.rb =================================================================== --- trunk/lib/error/parsing_error.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/error/parsing_error.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/location/geo_location.rb =================================================================== --- trunk/lib/location/geo_location.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/location/geo_location.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/logi_logi_xapian.rb =================================================================== --- trunk/lib/logi_logi_xapian.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/logi_logi_xapian.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/cache_methods_module.rb =================================================================== --- trunk/lib/modules/cache_methods_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/cache_methods_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/constant_named_scopes_module.rb =================================================================== --- trunk/lib/modules/constant_named_scopes_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/constant_named_scopes_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/home_page_module.rb =================================================================== --- trunk/lib/modules/home_page_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/home_page_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/insert_position_range_list_extension_module.rb =================================================================== --- trunk/lib/modules/insert_position_range_list_extension_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/insert_position_range_list_extension_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/order_by_module.rb =================================================================== --- trunk/lib/modules/order_by_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/order_by_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/tags_strings_module.rb =================================================================== --- trunk/lib/modules/tags_strings_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/tags_strings_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/modules/unix_name_module.rb =================================================================== --- trunk/lib/modules/unix_name_module.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/modules/unix_name_module.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/lib/task_helper.rb =================================================================== --- trunk/lib/task_helper.rb 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/lib/task_helper.rb 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ #--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> # # License: # This file is part of the LogiLogi program. LogiLogi is Free Software. Modified: trunk/public/javascripts/magick_corners.js =================================================================== --- trunk/public/javascripts/magick_corners.js 2010-09-08 18:01:47 UTC (rev 1770) +++ trunk/public/javascripts/magick_corners.js 2010-09-08 18:31:56 UTC (rev 1771) @@ -1,5 +1,5 @@ /** - * Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> + * Copyright: (c) 2006-2010 The LogiLogi Foundation <fou...@lo...> * * License: * This file is part of the Magick Corners Rails Plugin. Magick Modified: trunk/test/functional/annotations_controller_test.rb ==================... [truncated message content] |
From: <wy...@us...> - 2010-09-08 18:01:53
|
Revision: 1770 http://logilogi.svn.sourceforge.net/logilogi/?rev=1770&view=rev Author: wybow Date: 2010-09-08 18:01:47 +0000 (Wed, 08 Sep 2010) Log Message: ----------- Added maintenance for badges Modified Paths: -------------- trunk/lib/tasks/pub.rake trunk/lib/tasks/server.rake Modified: trunk/lib/tasks/pub.rake =================================================================== --- trunk/lib/tasks/pub.rake 2010-09-08 16:42:33 UTC (rev 1769) +++ trunk/lib/tasks/pub.rake 2010-09-08 18:01:47 UTC (rev 1770) @@ -5,4 +5,11 @@ sh "rm -rf public/pub/cache/*" end end + + namespace :users do + desc "Clears the badges cache" + task :clear do + sh "rm -rf public/do/users/*" + end + end end Modified: trunk/lib/tasks/server.rake =================================================================== --- trunk/lib/tasks/server.rake 2010-09-08 16:42:33 UTC (rev 1769) +++ trunk/lib/tasks/server.rake 2010-09-08 18:01:47 UTC (rev 1770) @@ -99,6 +99,7 @@ " and log rotation" task :www do Rake::Task["pub:cache:clear"].invoke + Rake::Task["pub:users:clear"].invoke Rake::Task["log:rotate"].invoke end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-09-08 16:42:42
|
Revision: 1769 http://logilogi.svn.sourceforge.net/logilogi/?rev=1769&view=rev Author: wybow Date: 2010-09-08 16:42:33 +0000 (Wed, 08 Sep 2010) Log Message: ----------- Added badges, fixed bug in tags Modified Paths: -------------- trunk/app/controllers/application_controller.rb trunk/app/controllers/users_controller.rb trunk/app/helpers/application_helper.rb trunk/app/models/const/rating.rb trunk/app/models/peer_group_membership.rb trunk/app/views/layouts/_header.html.erb trunk/app/views/logis/_screencast.html.erb trunk/app/views/rankings/_list.html.erb trunk/app/views/tags/_edit.html.erb trunk/app/views/users/_activity.html.erb trunk/app/views/users/_side_panel.html.erb trunk/app/views/users/edit.html.erb trunk/config/environment.rb trunk/config/locales/en.yml trunk/config/routes.rb trunk/public/javascripts/taglist.js trunk/public/stylesheets/logilogi.css Added Paths: ----------- trunk/lib/laurel_builder.rb trunk/lib/tasks/statistics.rake trunk/public/images/badge1.png trunk/public/images/badge1.svg trunk/public/images/badge2.png trunk/public/images/badge2.svg trunk/public/images/badge3.png trunk/public/images/badge3.svg trunk/public/images/badge4.png trunk/public/images/badge4.svg trunk/public/images/medal1.png trunk/public/images/medal1.svg trunk/public/images/medal2.png trunk/public/images/medal2.svg trunk/public/images/medal3.png trunk/public/images/medal3.svg trunk/public/images/medal4.png trunk/public/images/medal4.svg trunk/public/images/sources/ trunk/public/images/sources/laurel1.png trunk/public/images/sources/laurel2.png trunk/public/images/sources/laurel3.png trunk/public/images/sources/laurel4.png Removed Paths: ------------- trunk/public/images/laurel1.png trunk/public/images/laurel1.svg trunk/public/images/laurel2.png trunk/public/images/laurel2.svg trunk/public/images/laurel3.png trunk/public/images/laurel3.svg trunk/public/images/star.png trunk/public/images/star.svg trunk/public/images/svgs/ Modified: trunk/app/controllers/application_controller.rb =================================================================== --- trunk/app/controllers/application_controller.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/controllers/application_controller.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -287,8 +287,12 @@ browse_logis_url(tag.to_s) end + alias :original_edit_user_url :edit_user_url + def edit_user_url(user, options = {}) + original_edit_user_url({:id => user.home_page_tag_string}, options) + end + alias :original_user_url :user_url - def user_url(user, options = {}) original_user_url({:id => user.home_page_tag_string}, options) end Modified: trunk/app/controllers/users_controller.rb =================================================================== --- trunk/app/controllers/users_controller.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/controllers/users_controller.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -18,9 +18,11 @@ ### Filters - before_filter :find, :find_users_logi, + before_filter :find, + :only => [:badge, :medal, :show, :edit, :update, :destroy] + before_filter :find_users_logi, :only => [:show] - before_filter :find, :require_login, :require_current, + before_filter :require_login, :require_current, :only => [:edit, :update, :destroy] before_filter :require_no_login, :only => :create @@ -125,7 +127,8 @@ @subscriptions.each_pair do |name, subscription| if params[:log_log_subscription][name] if !subscription - channel = (name == :personalized_log ? "for_" + @user.unix_name : "logis") + channel = (name == :personalized_log ? "for_" + @user.unix_name : + "logis") ll_s = LogLogSubscription.new(:user => @user, :channel => channel, :period => (name == :personalized_log ? "daily" : "weekly")) ll_s.save @@ -176,6 +179,27 @@ :limit => 10, :order => ["created_at DESC"]) end + def badge + peer_group = current_prefs.peer_group + membership = peer_group.membership_for(@user) + percentile = membership.capped_percentile + respond_to do |format| + format.png do + build_save_and_send_badge(@user.name, @user.home_page_tag_string, + GlobalConfig.domain, peer_group.home_page_tag_string, + percentile) + end + end + end + + def medal + respond_to do |format| + format.png do + build_save_and_send_medal(params[:percentile].to_i) + end + end + end + ### Filter-methods protected @@ -207,9 +231,46 @@ def read_log_log_subscriptions @subscriptions = {} [:personalized_log, :logis_log].each do |name| - channel = (name == :personalized_log ? "for_" + @user.unix_name : "logis") + channel = (name == :personalized_log ? "for_" + @user.unix_name : + "logis") @subscriptions[name] = LogLogSubscription.find_by_user_id_and_channel( @user, channel) end end + + ### Helper methods + + def build_save_and_send_badge(user_name, normalized_name, pg_name, pg_normalized_name, + percentile) + img = LaurelBuilder.build_badge(user_name, pg_name, percentile, + "at", self.helpers) + dir = "#{RAILS_ROOT}/public/do/users/#{normalized_name}/badge" + file = "#{dir}/#{pg_normalized_name}.png" + self.save_and_send_image(img, dir, file) + end + + def build_save_and_send_medal(percentile) + img = LaurelBuilder.build_medal(percentile, self.helpers) + dir = "#{RAILS_ROOT}/public/do/medals" + file = "#{dir}/#{percentile.to_s}.png" + self.save_and_send_image(img, dir, file) + end + + def save_and_send_image(img, dir, file) + system "mkdir -p '#{dir}'" + img.write(file) # Next time the saved image will be used. + img.destroy! + send_file file, :disposition => 'inline', + :type => 'image/png' + end + + def helpers + Helper.instance + end + + class Helper + include Singleton + include ApplicationHelper + include ActionView::Helpers::TextHelper + end end Modified: trunk/app/helpers/application_helper.rb =================================================================== --- trunk/app/helpers/application_helper.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/helpers/application_helper.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -395,6 +395,26 @@ end end + def percentile_in_words(percentile) + category = percentile_category(percentile) + if category < 2 + # I18n because called from lib + return I18n.t('m.const.just_began') + else + return I18n.t(Const::Rating::SCORES[category]) + end + end + + def percentile_category(percentile) + if percentile < 50 + return 1 + elsif percentile < 95 + return ((percentile - 20) / 15.0).floor + else + return 5 + end + end + # cloud def tag_cloud(objects, classes, &proc) @@ -474,18 +494,11 @@ # Score images - def score_image(position_nr) - if position_nr < 4 - return '<div class="score_image score_image_laurel' + position_nr.to_s + '">' + - image_tag('laurel' + position_nr.to_s + '.png', :class => 'score', :size => '90x90') + - '</div>' - else - image = 'star' - # Below is a hack for the DXImageTransform IE CSS hack - return '<div class="score_image score_image_' + image + '">' + - image_tag(image + '.png', :class => 'score', :size => '90x90') + - '</div>' - end + def medal(percentile) + return '<div class="score_image score_image_laurel1">' + + image_tag(medal_url(:percentile => percentile.to_i, + :format => 'png'), :size => '90x90') + + '</div>' end # Time ago @@ -812,6 +825,10 @@ html_options.merge(:class => ' user_link') end + def edit_user_url(user, options = {}) + @controller.edit_user_url(user, options) + end + def user_url(user, options = {}) @controller.user_url(user, options) end Modified: trunk/app/models/const/rating.rb =================================================================== --- trunk/app/models/const/rating.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/models/const/rating.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -7,10 +7,10 @@ -1 => 'm.const.off_topic', 0 => 'm.const.neutral', 1 => 'm.const.fair', - 2 => 'm.const.ok', - 3 => 'm.const.good', + 2 => 'm.const.good', + 3 => 'm.const.very_good', 4 => 'm.const.excellent', - 5 => 'm.const.exceptional' + 5 => 'm.const.unsurpassed' } end end Modified: trunk/app/models/peer_group_membership.rb =================================================================== --- trunk/app/models/peer_group_membership.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/models/peer_group_membership.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -112,6 +112,20 @@ end end + # Getting + + # Caps the percentile, so < 10 and > 99 do not occur. + # + def capped_percentile + if self.percentile < 20 + return 20 + elsif self.percentile > 99 + return 99 + else + return self.percentile + end + end + ### Filter-functions protected Modified: trunk/app/views/layouts/_header.html.erb =================================================================== --- trunk/app/views/layouts/_header.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/layouts/_header.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -45,7 +45,7 @@ </div> <div id="title_line"> <% if local_assigns[:user_page] %> - <%= by_author(@user) %> + <%= by_author(@user, :no_you => true) %> <% else %> <%= t 'v.layouts.title_line' %> <% end %> Modified: trunk/app/views/logis/_screencast.html.erb =================================================================== --- trunk/app/views/logis/_screencast.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/logis/_screencast.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -1,6 +1,6 @@ <% render :layout => 'application/panel', :locals => {:id => "screencast"} do %> - <object width="460" height="283"><param name="movie" value="http://www.youtube.com/v/19HuVgvFPOE&hl=en&fs=1"></param><param name="allowFullScreen" -value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/19HuVgvFPOE&hl=en&fs=1" + <object width="460" height="283"><param name="movie" value="http://www.youtube.com/v/n2-3xu1Vuzk&hl=en&fs=1"></param><param name="allowFullScreen" +value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/n2-3xu1Vuzk&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="460" height="283"></embed></object> <% end %> Modified: trunk/app/views/rankings/_list.html.erb =================================================================== --- trunk/app/views/rankings/_list.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/rankings/_list.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -1,31 +1,13 @@ <% @memberships.each do |membership| %> <div class="user inner_panel"> <div class="panel_content_padding"> - <% - if membership.percentile >= 99 - nr = 1 - elsif membership.percentile > 90 - nr = 2 - elsif membership.percentile > 70 - nr = 3 - else - nr = 4 - end - %> - <%= score_image(nr) %> - <div class="score"> - <% if membership.percentile >= 99 %> - <%= number_to_percentage(99, - :precision => 0) %> - <% else %> - <%= number_to_percentage(membership.percentile, - :precision => 0) %> - <% end %> - </div> + <%= medal(membership.capped_percentile) %> <div class="user_avatar"> <%= link_to gravatar_for(membership.user, :size => 80), user_url(membership.user) %> </div> <%= user_link(membership.user, :no_you => true, :length => 15) %> + <br /> + <p><%= percentile_in_words(membership.capped_percentile) %></p> </div> </div> <% end %> Modified: trunk/app/views/tags/_edit.html.erb =================================================================== --- trunk/app/views/tags/_edit.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/tags/_edit.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -1,7 +1,7 @@ <% render :layout => 'application/panel', :locals => {:id => name} do %> <label><%= t('v.tags.tags_label') %></label> <%= render :partial => 'logis/tag_list', :locals => {:name => name + '_list', - :link => link, - :param_name => 'check_ll_link_string', :without_form => true} %> + :link => link, :param_name => 'check_ll_link_string', + :without_form => true} %> <div class="spacer"></div> <% end %> Modified: trunk/app/views/users/_activity.html.erb =================================================================== --- trunk/app/views/users/_activity.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/users/_activity.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -4,8 +4,28 @@ <dl class="statistics"> <dt><%= t 'v.users.created_logis_label' %></dt><dd><%= user.created_logis.count %></dd> <dt><%= t 'v.users.edited_logis_label' %></dt><dd><%= user.edited_logi_versions.count %></dd> - <dt><%= t 'defaults.percentile' %>:</dt><dd><%= number_to_percentage(PeerGroup.public.membership_for(user).percentile, :precision => 0) %></dd> + <dt><%= t 'defaults.percentile' %>:</dt><dd><%= number_to_percentage( + PeerGroup.public.membership_for(user).capped_percentile, :precision => 0) %></dd> </dl> + + <% if user == current_user %> + <% url_and_title = [edit_user_url(current_user) + '#badge', + {:title => _("Put your badge on your blog")}] %> + <% else %> + <% url_and_title = [user_url(user), + {:title => user.name}] %> + <% end %> + <%= link_to(image_tag(badge_url(:id => user.home_page_tag_string, + :peer_group_name => current_prefs.peer_group.home_page_tag_string, + :format => 'png'), :size => '120x60', + :id => (user == current_user ? 'current' : '')), + *url_and_title)%> + <% if user == current_user %> + <div class="smallprint"> + <%= link_to("Get your badge for your blog", *url_and_title) %> + </div> + <% end %> + <!-- <h3>Status</h3> <table class="rankings"> <tr> @@ -14,7 +34,7 @@ <% user.peer_group_memberships.order_by_percentile.each do |membership| %> <tr> <td class="group"><%= peer_group_ll_link(membership.peer_group) %></td> - <td class="percentile"><%= number_to_percentage(membership.percentile, :precision => 0) %></td> + <td class="percentile"><%= number_to_percentage(membership.capped_percentile, :precision => 0) %></td> </tr> <% end %> </table> --> Modified: trunk/app/views/users/_side_panel.html.erb =================================================================== --- trunk/app/views/users/_side_panel.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/users/_side_panel.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -10,7 +10,9 @@ <%= render :partial => "activity", :locals => {:user => @user} %> </div> - <div id="feed"> - <%= render :partial => "feed", :locals => {:user => @user} %> - </div> + <% if GlobalConfig.use_log_log? %> + <div id="feed"> + <%= render :partial => "feed", :locals => {:user => @user} %> + </div> + <% end %> </div> Modified: trunk/app/views/users/edit.html.erb =================================================================== --- trunk/app/views/users/edit.html.erb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/app/views/users/edit.html.erb 2010-09-08 16:42:33 UTC (rev 1769) @@ -2,7 +2,7 @@ <% render :layout => 'application/panel_with_header', :locals => { :title => t('v.users.edit_account')} do %> <ul> -<!-- <li><%= t('v.users.select_default_peer_group') %></li> --> +<!-- <li><%= t('v.users.select_default_peer_group') %></li> --> <!-- <li><%= t('v.users.create_edit_invite_peer_groups') %></li> --> <li><%= t('v.users.change_account_settings') %></li> </ul> @@ -35,11 +35,34 @@ peer_group_admin_memberships_url()) %></p> <% end %> --> + <% if GlobalConfig.use_log_log? %> + <% render :layout => 'application/panel_with_header', :locals => { + :title => t('v.users.personal_rss'), :id => "personal_rss"} do %> + <p><%= t('v.users.your_rss_updated') %></p> + <div class="your_feed"><p><%= t 'v.users.link_label' %></p></div> <%= + log_log_feed_link(:channel => 'for_' + current_user.unix_name) %> + <% end %> + <% end %> + <% render :layout => 'application/panel_with_header', :locals => { - :title => t('v.users.personal_rss'), :id => "personal_rss"} do %> - <p><%= t('v.users.your_rss_updated') %></p> - <div class="your_feed"><p><%= t 'v.users.link_label' %></p></div> <%= - log_log_feed_link(:channel => 'for_' + current_user.unix_name) %> + :title => t('v.users.settings')} do %> + <% form_for(@user, :html => {:id => "settings_form"}) do |form| %> + <p><%= t('v.users.set_avatar') + ' ' + link_to(t('defaults.click_here'), + "http://gravatar.com/signup") %></p> + <p><%= t('v.users.leave_blank') %></p> + <%= form.text_field :email, + :label => t('defaults.email_label'), :tabindex => 4 %> + <%= form.password_field :password, + :label => t('defaults.password_label'), :tabindex => 5 %> + <%= form.password_field :password_confirmation, + :label => t('defaults.password_confirmation_label'), :tabindex => 6 %> + <%= form.text_field :openid_identifier, + :label => t('defaults.openid_label'), :tabindex => 7 %> + <%= form.text_field :blog_title, + :label => t('defaults.blog_title_label'), :tabindex => 8 %> + <%= form.submit t('defaults.save'), :tabindex => 9 %> + <%= cancel_button %> + <% end %> <% end %> <% render :layout => 'application/panel_with_header', :locals => { @@ -63,25 +86,20 @@ <% end %> <% end %> + <a name="badge"></a> <% render :layout => 'application/panel_with_header', :locals => { - :title => t('v.users.settings')} do %> - <% form_for(@user, :html => {:id => "settings_form"}) do |form| %> - <p><%= t('v.users.set_avatar') + ' ' + link_to(t('defaults.click_here'), - "http://gravatar.com/signup") %></p> - <p><%= t('v.users.leave_blank') %></p> - <%= form.text_field :email, - :label => t('defaults.email_label'), :tabindex => 4 %> - <%= form.password_field :password, - :label => t('defaults.password_label'), :tabindex => 5 %> - <%= form.password_field :password_confirmation, - :label => t('defaults.password_confirmation_label'), :tabindex => 6 %> - <%= form.text_field :openid_identifier, - :label => t('defaults.openid_label'), :tabindex => 7 %> - <%= form.text_field :blog_title, - :label => t('defaults.blog_title_label'), :tabindex => 8 %> - <%= form.submit t('defaults.save'), :tabindex => 9 %> - <%= cancel_button %> - <% end %> + :title => t('v.users.badge'), :id => "user_badge"} do %> + <p><%= _("You can add this badge with your ranking to the side-bar of your blog:") %></p> + <%= image_tag( + badge_url(:id => @user.home_page_tag_string, + :peer_group_name => current_prefs.peer_group.home_page_tag_string, + :format => 'png'), :size => '120x60') %> + <p><%= _("You can do this by inserting the following html where you please:") %></p> + <%= text_area_tag 'badge_field', '<a href="' + user_url(@user) + '">' + + image_tag(badge_url(:id => @user.home_page_tag_string, + :peer_group_name => current_prefs.peer_group.home_page_tag_string, + :format => 'png'), :alt => @user.name, :size => '120x60') + + '</a>' %> <% end %> <% render :layout => 'application/panel_with_header', :locals => { Modified: trunk/config/environment.rb =================================================================== --- trunk/config/environment.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/config/environment.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -111,6 +111,8 @@ # And at last load the configuration require File.join(RAILS_ROOT, 'config', 'config') +Mime::Type.register "image/png", :png + # To prevent api bug module Mime class Type Modified: trunk/config/locales/en.yml =================================================================== --- trunk/config/locales/en.yml 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/config/locales/en.yml 2010-09-08 16:42:33 UTC (rev 1769) @@ -399,13 +399,14 @@ bad: bad everyone_edit: "Everyone can edit" excellent: excellent - exceptional: exceptional + unsurpassed: unsurpassed fair: fair good: good + just_began: "just began" neutral: neutral off_topic: "off topic" - ok: ok owner_edit: "Only the owner can edit" + very_good: "very good" context: ~ external_link: html_tags_not_allowed: "html tags are not allowed inside external links." @@ -920,6 +921,7 @@ activity: Activity api_key: "API key" api_key_is_label: "Your API-key is:" + badge: "Badge" change_account_settings: "You can change your account settings." create_edit_invite_peer_groups: "Create, edit and invite people to peergroups." created_logis_label: "Created logis:" Modified: trunk/config/routes.rb =================================================================== --- trunk/config/routes.rb 2010-08-23 14:04:01 UTC (rev 1768) +++ trunk/config/routes.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -3,8 +3,8 @@ map.with_options(:controller => 'translate') do |t| t.translate_list 'do/translate' - t.translate 'do/translate/translate', :action => 'translate' - t.translate_reload 'do/translate/reload', :action => 'reload' + t.translate 'do/translate/translate', :action => 'translate' + t.translate_reload 'do/translate/reload', :action => 'reload' end #enable javascript gzip-compression for all.js @@ -21,7 +21,8 @@ # For OpenID logins map.resource :user_session, :path_prefix => 'do' - map.resources :changes, :rankings, :password_resets, :remote_users, :used_tags, + map.resources :changes, :rankings, :password_resets, + :remote_users, :used_tags, :path_prefix => 'do' # Most logis-routes are derouted in application.rb @@ -40,16 +41,22 @@ :name_prefix => '_hidden_', :requirements => { :ll_link_string => /.*/ } map.resource :links, :ratings, :logi_settings, :logi_inserts, :logi_extras, - :logi_versions, :remarks, :annotations, :external_links, :perma_links, - :linked_logis, :comments, + :logi_versions, :remarks, :annotations, :external_links, + :perma_links, :linked_logis, :comments, :path_prefix => ':ll_link_string/do', :name_prefix => '_hidden_', :requirements => { :ll_link_string => /.*/ } + map.badge 'do/users/:id/badge/:peer_group_name.:format', + :controller => 'users', + :action => 'badge' + map.medal 'do/medals/:percentile.:format', + :controller => 'users', + :action => 'medal' map.resources :users, :requirements => { :id => /.*/ } map.resources :peer_group_admin_memberships, :peer_group_memberships, :user_groups, :prefs_profiles, :invitations, :votes, :remarks, - :annotations, :links, :linked_logis, :comments, :ratings, :paths, + :annotations, :links, :linked_logis, :comments, :ratings, :paths, :steps, :path_prefix => 'do' map.resources :peer_groups, @@ -62,7 +69,8 @@ # :requirements => { :ll_link_string => /.*/ } # Popover clouds with links - map.links_listing_for_remove 'do/links/listing_for_remove/:ids/:not_deleted_ids', + map.links_listing_for_remove 'do/links/listing_for_remove/:ids/' + + ':not_deleted_ids', :controller => 'links', :action => 'listing_for_remove', :requirements => { @@ -87,7 +95,8 @@ :action => 'select' # Source - map.source_cache 'do/code/source.zip', :controller => 'cache', :action => 'source' + map.source_cache 'do/code/source.zip', + :controller => 'cache', :action => 'source' # Magick Corners MagickCorners::Routes.draw(map, :path_prefix => 'do') Added: trunk/lib/laurel_builder.rb =================================================================== --- trunk/lib/laurel_builder.rb (rev 0) +++ trunk/lib/laurel_builder.rb 2010-09-08 16:42:33 UTC (rev 1769) @@ -0,0 +1,101 @@ +#--# +# Copyright: (c) 2007-2010 The LogiLogi Foundation <fou...@lo...> +# +# License: +# This file is part of the OgOg program. OgOg is Free Software. You can run/ +# distribute/modify OgOg under the terms of the GNU Affero General Public +# License version 3 or any later version. The Affero GPL states that running +# a modified version or a derivative work also requires you to make the +# sourcecode of that work available to everyone that can interact with it. +# We chose the Affero GPL to ensure that OgOg remains open and libre +# (doc/LICENSE.txt contains the full text of the legally binding license). +#++# +# +# For creating badges and medals. + +class LaurelBuilder + # Creates the badge with ImageMagick + # + def self.build_badge(name, pg_name, percentile, at, helpers) + percentile = percentile.round + category = helpers.percentile_category(percentile) + if category > 1 + l_nr = ((category - 6) * -1).to_s + else + l_nr = '4' + end + img = Magick::Image.read("#{RAILS_ROOT}/public/images/badge" + + l_nr + ".png").first + + text = Magick::Draw.new + + text.font_family = 'verdana' + + text.annotate(img, 0, 0, 10, 5, helpers.truncate(name, 18,'..')) { + self.pointsize = 10 + self.gravity = Magick::NorthWestGravity + } + text.annotate(img, 0,0,((category < 3 or category > 4) ? 52 : + (category != 3 ? 65 : 58)), -5, helpers.percentile_in_words( + percentile)) { + self.pointsize = (category != 2 ? 13 : 15) + self.kerning = (category != 2 ? -0.7 : 0) + self.gravity = Magick::WestGravity + } + text.annotate(img, 0, 0, 80, 8, at) { + self.pointsize = 10 + self.kerning = 0 + self.gravity = Magick::WestGravity + } + text.annotate(img, 0,0,3,3, helpers.truncate(pg_name, 14, '..')) { + self.pointsize = 10 + self.kerning = -0.5 + self.gravity = Magick::SouthEastGravity + } + new = Magick::Image.new(120, 60) { + self.background_color = 'white' + } + text.annotate(new, 0, 0, 17, 26, percentile.to_s) { + self.pointsize = 18 + self.kerning = 0 + self.gravity = Magick::NorthWestGravity + } + new = new.shade(true, 310, 70) + new = new.matte_replace(0,0) + img = img.composite(new, Magick::SouthWestGravity, 0, 0, + Magick::OverCompositeOp) + return img + end + + # Creates the medal with ImageMagick + # + def self.build_medal(percentile, helpers) + percentile = percentile.round + category = helpers.percentile_category(percentile) + if category > 1 + l_nr = ((category - 6) * -1).to_s + else + l_nr = '4' + end + img = Magick::Image.read("#{RAILS_ROOT}/public/images/medal" + + l_nr + ".png").first + + text = Magick::Draw.new + + text.font_family = 'verdana' + + new = Magick::Image.new(90, 90) { + self.background_color = 'white' + } + text.annotate(new, 0, 0, 31, 40, percentile.to_s) { + self.pointsize = 26 + self.kerning = 0 + self.gravity = Magick::NorthWestGravity + } + new = new.shade(true, 310, 70) + new = new.matte_replace(0,0) + img = img.composite(new, Magick::SouthWestGravity, 0, 0, + Magick::OverCompositeOp) + return img + end +end Added: trunk/lib/tasks/statistics.rake =================================================================== --- trunk/lib/tasks/statistics.rake (rev 0) +++ trunk/lib/tasks/statistics.rake 2010-09-08 16:42:33 UTC (rev 1769) @@ -0,0 +1,20 @@ +STATS_DIRECTORIES = [ + %w(Controllers app/controllers), + %w(Helpers app/helpers), + %w(Models app/models), + %w(Libraries lib/), + %w(APIs app/apis), + %w(Integration\ tests test/integration), + %w(Functional\ tests test/functional), + %w(Plugins\ body_buil vendor/plugins/body_builder), + %w(Plugins\ magick_co vendor/plugins/magick_corners), + %w(Plugins\ thorny_fo vendor/plugins/thorny_form), + %w(Unit\ tests test/unit) + +].collect { |name, dir| [ name, "#{RAILS_ROOT}/#{dir}" ] }.select { |name, dir| File.directory?(dir) } + +desc "Report code statistics (KLOCs, etc) from the application" +task :stats do + require 'code_statistics' + CodeStatistics.new(*STATS_DIRECTORIES).to_s +end Added: trunk/public/images/badge1.png =================================================================== (Binary files differ) Property changes on: trunk/public/images/badge1.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/public/images/badge1.svg =================================================================== --- trunk/public/images/badge1.svg (rev 0) +++ trunk/public/images/badge1.svg 2010-09-08 16:42:33 UTC (rev 1769) @@ -0,0 +1,229 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="120" + height="60" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="badge1.svg" + inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/badge1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <inkscape:perspective + id="perspective2884" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective2982" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3008" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3099" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2760" + id="radialGradient22779" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + cx="177.1467" + cy="258.64297" + fx="177.1467" + fy="258.64297" + r="82.478981" /> + <linearGradient + id="linearGradient2760"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop7221" /> + <stop + id="stop7217" + offset="1" + style="stop-color:yellow;stop-opacity:1;" /> + </linearGradient> + <radialGradient + r="82.478981" + fy="258.64297" + fx="177.1467" + cy="258.64297" + cx="177.1467" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + gradientUnits="userSpaceOnUse" + id="radialGradient3108" + xlink:href="#linearGradient2760" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective3625" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3647" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4444" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4477" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3308" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6" + inkscape:cx="41.447001" + inkscape:cy="29.06221" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1366" + inkscape:window-height="719" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-992.36218)"> + <path + style="fill:#e9ebf7;fill-opacity:1;stroke:#f1f2fa;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 93.664876,1047.6748 c 0.459629,-2.3385 -23.991119,-8.0833 -36.689772,-10.8945 -13.072549,-2.8944 -13.226371,-2.9069 -19.97239,-4.1096 -7.635445,-1.3613 -11.979161,-2.133 -15.841435,-3.5617 -2.224501,-1.241 -3.697814,-0.6774 -3.580506,-4.8775 0.07834,-2.8072 0.0928,-8.67 0.0324,-13.029 -0.295887,-21.27715 -0.188072,-30.02937 0.391963,-31.85054 0.349054,-1.09563 0.337352,-6.90011 -0.02521,-12.89878 -0.363408,-5.99872 -0.465433,-12.28074 -0.226604,-13.96091 0.238761,-1.67951 0.385649,-8.5462 0.326411,-15.25799 -0.05929,-6.71255 0.209676,-15.64369 0.59764,-19.84774 l 0.705567,-7.64364 -6.758356,-3.78279 c -9.9720959,-5.77156 -13.7333485,-2.42476 -13.20315968,7.62816 -0.32295315,24.09317 1.39389536,48.3373 0.56786425,72.40907 -0.2512498,3.69513 -0.20358495,11.64283 0.10612131,17.66146 0.54753634,10.6477 0.5271774,15.3524 -0.11720322,27.1384 -0.30553365,5.589 -0.20856417,5.7387 4.91425884,7.5682 4.4482303,1.5882 13.9622745,2.8492 34.6392405,4.5907 2.299568,0.1924 7.244721,0.7438 10.989185,1.2229 8.346625,1.0674 23.246459,2.224 24.458114,2.4242 5.811164,0.9606 18.530636,1.8677 18.687071,1.0716 z" + id="path5319" + sodipodi:nodetypes="cssssssssscccssssssssc" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <path + style="fill:#ebedf8;fill-opacity:1;stroke:#f4f5fb;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 110.84276,1047.9021 c -0.98144,-2.5488 -11.670888,-9.2169 -42.172598,-25.6222 -11.785245,-6.339 -14.066595,-6.7833 -13.867816,-13.4056 1.624206,-54.10965 1.546338,-114.21234 -0.150981,-116.61254 -3.122505,-4.41421 -18.075156,-10.35953 -19.561433,-7.77784 -0.658748,1.14474 -1.28055,12.63962 -1.381931,25.54467 -0.101369,12.90567 -0.227714,29.57495 -0.280412,37.04342 -0.05286,7.46836 -0.153209,20.05336 -0.222983,27.96618 -0.27508,31.20731 0.10108,47.83381 1.107804,48.97921 0.579829,0.6597 4.700252,1.7325 9.156515,2.3832 7.772389,1.1358 15.775359,4.2654 44.463211,13.8757 6.241999,2.0913 23.860974,10.0934 22.910584,7.6258 z" + id="path5394" + sodipodi:nodetypes="cssssssssssc" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <path + style="fill:#e7f0e2;fill-opacity:1;stroke:#f4f8f2;stroke-width:0.37085490999999998;stroke-opacity:1" + d="m 120.95559,979.69636 -0.2239,-68.45143 -6.53189,-8.29343 c -12.4074,-15.75283 -35.38906,-33.28743 -39.217429,-29.92179 -0.920449,0.80905 -1.662105,6.37932 -1.648211,12.37786 0.127778,55.03795 0.383173,109.44882 0.545121,116.09253 l 0.197615,8.1143 7.343144,4.2068 c 9.850326,5.6428 20.06518,14.3917 29.94112,25.6443 4.48955,5.1153 8.53519,9.1618 8.99029,8.9921 0.45524,-0.1738 0.72692,-31.1126 0.60383,-68.76124 z" + id="path5439" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <rect + style="fill:none;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="rect1905" + width="118.97239" + height="59" + x="0.5" + y="992.86218" /> + <path + d="m 226.42857,334.50503 -49.29191,-26.13405 -49.29966,26.11942 9.62292,-54.95526 -40.075474,-38.81542 55.239204,-7.83016 24.53165,-50.10867 24.51678,50.11595 55.23687,7.84656 -40.08699,38.80352 9.60661,54.95811 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.5709448" + sodipodi:arg1="0.94262621" + sodipodi:r2="41.723091" + sodipodi:r1="83.866997" + sodipodi:cy="266.64789" + sodipodi:cx="177.14285" + sodipodi:sides="5" + id="path22767" + style="fill:url(#radialGradient3108);fill-opacity:1;stroke:#cccccc;stroke-width:1.87219572;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + sodipodi:type="star" + transform="matrix(0.25615406,0,0,0.26932296,-19.587513,957.4877)" /> + <text + xml:space="preserve" + style="font-size:30.87376022px;font-style:normal;font-weight:normal;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.36363639;stroke-dasharray:none;font-family:Bitstream Vera Sans" + x="9.3169937" + y="1081.83" + id="text1901" + transform="scale(1.0424253,0.95930135)"><tspan + sodipodi:role="line" + id="tspan1903" + x="9.3169937" + y="1081.83" + style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.36363639;stroke-dasharray:none">%</tspan></text> + <image + xlink:href="file:///home/wybo/projects/ogog/mess/laurel_1.png" + width="51.796947" + height="41.005917" + id="image3615" + x="0.5" + y="1010.3563" /> + </g> +</svg> Added: trunk/public/images/badge2.png =================================================================== (Binary files differ) Property changes on: trunk/public/images/badge2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/public/images/badge2.svg =================================================================== --- trunk/public/images/badge2.svg (rev 0) +++ trunk/public/images/badge2.svg 2010-09-08 16:42:33 UTC (rev 1769) @@ -0,0 +1,236 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="120" + height="60" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="badge2.svg" + inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/badge2.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <inkscape:perspective + id="perspective2884" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective2982" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3008" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3099" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2760" + id="radialGradient22779" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + cx="177.1467" + cy="258.64297" + fx="177.1467" + fy="258.64297" + r="82.478981" /> + <linearGradient + id="linearGradient2760"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop7221" /> + <stop + id="stop7217" + offset="1" + style="stop-color:yellow;stop-opacity:1;" /> + </linearGradient> + <radialGradient + r="82.478981" + fy="258.64297" + fx="177.1467" + cy="258.64297" + cx="177.1467" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + gradientUnits="userSpaceOnUse" + id="radialGradient3108" + xlink:href="#linearGradient2760" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective3625" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3647" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4444" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4477" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3308" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4238" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6" + inkscape:cx="41.447001" + inkscape:cy="29.06221" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1366" + inkscape:window-height="719" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-992.36218)"> + <path + style="fill:#e9ebf7;fill-opacity:1;stroke:#f1f2fa;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 93.664876,1047.6748 c 0.459629,-2.3385 -23.991119,-8.0833 -36.689772,-10.8945 -13.072549,-2.8944 -13.226371,-2.9069 -19.97239,-4.1096 -7.635445,-1.3613 -11.979161,-2.133 -15.841435,-3.5617 -2.224501,-1.241 -3.697814,-0.6774 -3.580506,-4.8775 0.07834,-2.8072 0.0928,-8.67 0.0324,-13.029 -0.295887,-21.27715 -0.188072,-30.02937 0.391963,-31.85054 0.349054,-1.09563 0.337352,-6.90011 -0.02521,-12.89878 -0.363408,-5.99872 -0.465433,-12.28074 -0.226604,-13.96091 0.238761,-1.67951 0.385649,-8.5462 0.326411,-15.25799 -0.05929,-6.71255 0.209676,-15.64369 0.59764,-19.84774 l 0.705567,-7.64364 -6.758356,-3.78279 c -9.9720959,-5.77156 -13.7333485,-2.42476 -13.20315968,7.62816 -0.32295315,24.09317 1.39389536,48.3373 0.56786425,72.40907 -0.2512498,3.69513 -0.20358495,11.64283 0.10612131,17.66146 0.54753634,10.6477 0.5271774,15.3524 -0.11720322,27.1384 -0.30553365,5.589 -0.20856417,5.7387 4.91425884,7.5682 4.4482303,1.5882 13.9622745,2.8492 34.6392405,4.5907 2.299568,0.1924 7.244721,0.7438 10.989185,1.2229 8.346625,1.0674 23.246459,2.224 24.458114,2.4242 5.811164,0.9606 18.530636,1.8677 18.687071,1.0716 z" + id="path5319" + sodipodi:nodetypes="cssssssssscccssssssssc" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <path + style="fill:#ebedf8;fill-opacity:1;stroke:#f4f5fb;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 110.84276,1047.9021 c -0.98144,-2.5488 -11.670888,-9.2169 -42.172598,-25.6222 -11.785245,-6.339 -14.066595,-6.7833 -13.867816,-13.4056 1.624206,-54.10965 1.546338,-114.21234 -0.150981,-116.61254 -3.122505,-4.41421 -18.075156,-10.35953 -19.561433,-7.77784 -0.658748,1.14474 -1.28055,12.63962 -1.381931,25.54467 -0.101369,12.90567 -0.227714,29.57495 -0.280412,37.04342 -0.05286,7.46836 -0.153209,20.05336 -0.222983,27.96618 -0.27508,31.20731 0.10108,47.83381 1.107804,48.97921 0.579829,0.6597 4.700252,1.7325 9.156515,2.3832 7.772389,1.1358 15.775359,4.2654 44.463211,13.8757 6.241999,2.0913 23.860974,10.0934 22.910584,7.6258 z" + id="path5394" + sodipodi:nodetypes="cssssssssssc" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <path + style="fill:#e7f0e2;fill-opacity:1;stroke:#f4f8f2;stroke-width:0.37085490999999998;stroke-opacity:1" + d="m 120.95559,979.69636 -0.2239,-68.45143 -6.53189,-8.29343 c -12.4074,-15.75283 -35.38906,-33.28743 -39.217429,-29.92179 -0.920449,0.80905 -1.662105,6.37932 -1.648211,12.37786 0.127778,55.03795 0.383173,109.44882 0.545121,116.09253 l 0.197615,8.1143 7.343144,4.2068 c 9.850326,5.6428 20.06518,14.3917 29.94112,25.6443 4.48955,5.1153 8.53519,9.1618 8.99029,8.9921 0.45524,-0.1738 0.72692,-31.1126 0.60383,-68.76124 z" + id="path5439" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <rect + style="fill:none;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="rect1905" + width="118.97239" + height="59" + x="0.5" + y="992.86218" /> + <path + d="m 226.42857,334.50503 -49.29191,-26.13405 -49.29966,26.11942 9.62292,-54.95526 -40.075474,-38.81542 55.239204,-7.83016 24.53165,-50.10867 24.51678,50.11595 55.23687,7.84656 -40.08699,38.80352 9.60661,54.95811 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.5709448" + sodipodi:arg1="0.94262621" + sodipodi:r2="41.723091" + sodipodi:r1="83.866997" + sodipodi:cy="266.64789" + sodipodi:cx="177.14285" + sodipodi:sides="5" + id="path22767" + style="fill:url(#radialGradient3108);fill-opacity:1;stroke:#cccccc;stroke-width:1.87219572;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + sodipodi:type="star" + transform="matrix(0.25615406,0,0,0.26932296,-19.587513,957.48776)" /> + <text + xml:space="preserve" + style="font-size:30.87376022px;font-style:normal;font-weight:normal;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.36363639;stroke-dasharray:none;font-family:Bitstream Vera Sans" + x="9.3169928" + y="1081.8301" + id="text1901" + transform="scale(1.0424253,0.95930135)"><tspan + sodipodi:role="line" + id="tspan1903" + x="9.3169928" + y="1081.8301" + style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.36363639;stroke-dasharray:none">%</tspan></text> + <image + y="1010.3562" + x="0.5" + id="image4755" + height="41.006001" + width="51.797001" + xlink:href="file:///home/wybo/projects/ogog/mess/laurel_2.png" /> + </g> +</svg> Added: trunk/public/images/badge3.png =================================================================== (Binary files differ) Property changes on: trunk/public/images/badge3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/public/images/badge3.svg =================================================================== --- trunk/public/images/badge3.svg (rev 0) +++ trunk/public/images/badge3.svg 2010-09-08 16:42:33 UTC (rev 1769) @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="120" + height="60" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="badge3.svg" + inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/badge3.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <inkscape:perspective + id="perspective2884" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective2982" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3008" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3099" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2760" + id="radialGradient22779" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + cx="177.1467" + cy="258.64297" + fx="177.1467" + fy="258.64297" + r="82.478981" /> + <linearGradient + id="linearGradient2760"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop7221" /> + <stop + id="stop7217" + offset="1" + style="stop-color:yellow;stop-opacity:1;" /> + </linearGradient> + <radialGradient + r="82.478981" + fy="258.64297" + fx="177.1467" + cy="258.64297" + cx="177.1467" + gradientTransform="matrix(1,0,0,0.952713,0,12.23045)" + gradientUnits="userSpaceOnUse" + id="radialGradient3108" + xlink:href="#linearGradient2760" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective3625" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3647" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4444" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4477" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective3308" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4238" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4308" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6" + inkscape:cx="41.447001" + inkscape:cy="29.06221" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1366" + inkscape:window-height="719" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-992.36218)"> + <path + style="fill:#e9ebf7;fill-opacity:1;stroke:#f1f2fa;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 93.664876,1047.6748 c 0.459629,-2.3385 -23.991119,-8.0833 -36.689772,-10.8945 -13.072549,-2.8944 -13.226371,-2.9069 -19.97239,-4.1096 -7.635445,-1.3613 -11.979161,-2.133 -15.841435,-3.5617 -2.224501,-1.241 -3.697814,-0.6774 -3.580506,-4.8775 0.07834,-2.8072 0.0928,-8.67 0.0324,-13.029 -0.295887,-21.27715 -0.188072,-30.02937 0.391963,-31.85054 0.349054,-1.09563 0.337352,-6.90011 -0.02521,-12.89878 -0.363408,-5.99872 -0.465433,-12.28074 -0.226604,-13.96091 0.238761,-1.67951 0.385649,-8.5462 0.326411,-15.25799 -0.05929,-6.71255 0.209676,-15.64369 0.59764,-19.84774 l 0.705567,-7.64364 -6.758356,-3.78279 c -9.9720959,-5.77156 -13.7333485,-2.42476 -13.20315968,7.62816 -0.32295315,24.09317 1.39389536,48.3373 0.56786425,72.40907 -0.2512498,3.69513 -0.20358495,11.64283 0.10612131,17.66146 0.54753634,10.6477 0.5271774,15.3524 -0.11720322,27.1384 -0.30553365,5.589 -0.20856417,5.7387 4.91425884,7.5682 4.4482303,1.5882 13.9622745,2.8492 34.6392405,4.5907 2.299568,0.1924 7.244721,0.7438 10.989185,1.2229 8.346625,1.0674 23.246459,2.224 24.458114,2.4242 5.811164,0.9606 18.530636,1.8677 18.687071,1.0716 z" + id="path5319" + sodipodi:nodetypes="cssssssssscccssssssssc" + inkscape:export-filename="/home/wybo/logilogi/docs/logo/book_logo.png" + inkscape:export-xdpi="299.92236" + inkscape:export-ydpi="299.92236" /> + <path + style="fill:#ebedf8;fill-opacity:1;stroke:#f4f5fb;stroke-width:0.37085477000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 110.84276,1047.9021 c -0.98144,-2.5488 -11.670888,-9.216... [truncated message content] |
From: <wy...@us...> - 2010-08-23 14:04:12
|
Revision: 1768 http://logilogi.svn.sourceforge.net/logilogi/?rev=1768&view=rev Author: wybow Date: 2010-08-23 14:04:01 +0000 (Mon, 23 Aug 2010) Log Message: ----------- Small fix in readme, and site link support for local mode Modified Paths: -------------- trunk/app/models/global_config.rb trunk/config/config.rb.tmpl trunk/doc/README_FOR_APP Modified: trunk/app/models/global_config.rb =================================================================== --- trunk/app/models/global_config.rb 2010-08-16 09:35:23 UTC (rev 1767) +++ trunk/app/models/global_config.rb 2010-08-23 14:04:01 UTC (rev 1768) @@ -331,7 +331,8 @@ ### Composites def site_url(options = {}) - return self.protocol + '://' + self.site_host(options) + '/' + return self.protocol + '://' + self.site_host(options) + + (RAILS_ENV == "development" ? ":3000" : "") + '/' end def site_host(options = {}) Modified: trunk/config/config.rb.tmpl =================================================================== --- trunk/config/config.rb.tmpl 2010-08-16 09:35:23 UTC (rev 1767) +++ trunk/config/config.rb.tmpl 2010-08-23 14:04:01 UTC (rev 1768) @@ -54,7 +54,7 @@ # # The domain_levels setting is derived from this one. # - :site_domain => 'edge.LogiLogi.org', + :site_domain => 'logi-manta.org', # The language this site is in. # Modified: trunk/doc/README_FOR_APP =================================================================== --- trunk/doc/README_FOR_APP 2010-08-16 09:35:23 UTC (rev 1767) +++ trunk/doc/README_FOR_APP 2010-08-23 14:04:01 UTC (rev 1768) @@ -95,8 +95,7 @@ except rack. This last gem could not be included because Rails will not allow -you to (some starting issue). You can install it in the following -way: +one to to (a bug). You can install it in the following way: gem install rack (with the '-v 1.0.1' option currently) All done. Skip to step 2. @@ -117,8 +116,8 @@ LogiLogi Manta requires Rails[http://www.rubyonrails.org]. -You can install Rails with (gem1.8, or gem<version number> on some -OSses): +You can install Rails with ruby gems (gem1.8, or gem<version number> +on some OSses): gem install rails (as root, if gem command is not found you might have to type gem1.8 instead) @@ -202,7 +201,7 @@ To get going with the GUI you should add something like the following to your /etc/hosts: - 0.0.0.0 en.logi-manta.org de.logi-manta.org + 0.0.0.0 logi-manta.org en.logi-manta.org de.logi-manta.org Then start the included WEBRick server with script/server from the trunk directory. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-16 09:35:30
|
Revision: 1767 http://logilogi.svn.sourceforge.net/logilogi/?rev=1767&view=rev Author: wybow Date: 2010-08-16 09:35:23 +0000 (Mon, 16 Aug 2010) Log Message: ----------- Added Chrome support notice Modified Paths: -------------- trunk/app/views/layouts/_footer.html.erb trunk/config/locales/en.yml Modified: trunk/app/views/layouts/_footer.html.erb =================================================================== --- trunk/app/views/layouts/_footer.html.erb 2010-08-15 22:13:05 UTC (rev 1766) +++ trunk/app/views/layouts/_footer.html.erb 2010-08-16 09:35:23 UTC (rev 1767) @@ -6,7 +6,7 @@ <%= t 'v.layouts.best_viewed_with', :link_open => '<a href="http://www.mozilla.com/firefox/">', :link_close => '</a>' %> | - <a href="http://foundation.logilogi.org/2008/5/6/logilogi-manta-in-public-beta"><%= t 'v.layouts.about_logi_logi' %></a> | + <a href="http://foundation.logilogi.org"><%= t 'v.layouts.about_logi_logi' %></a> | <a href="mailto:fou...@lo..."><%= t 'v.layouts.contact_us' %></a> </div> </div> @@ -14,11 +14,11 @@ <div class="panel_content_padding"> Supported / sponsored by: </div> - <%= link_to image_tag('logilogi_foundation.png', :size => "156x40"), "http://foundation.logilogi.org" %> + <%= link_to image_tag('zylon.png', :size => "156x40"), "http://www.zylon.net" %> <%= link_to image_tag('university_of_groningen.png', :size => "156x40"), "http://www.rug.nl" %> <%= link_to image_tag('esf.png', :size => "74x40"), "http://foundation.logilogi.org/2010/7/12/at-digital-humanities-2010" %> <%= link_to image_tag('ofset.png', :size => "156x40"), "http://www.ofset.org" %> - <%= link_to image_tag('zylon.png', :size => "156x40"), "http://www.zylon.net" %> + <%= link_to image_tag('logilogi_foundation.png', :size => "156x40"), "http://foundation.logilogi.org" %> </div> <% end %> <div class="copyright"> Modified: trunk/config/locales/en.yml =================================================================== --- trunk/config/locales/en.yml 2010-08-15 22:13:05 UTC (rev 1766) +++ trunk/config/locales/en.yml 2010-08-16 09:35:23 UTC (rev 1767) @@ -618,7 +618,7 @@ login: Login logout: Logout means_available: "This means that the source code is {{link}}." - needs_javascript: "{{link}} needs Javascript enabled, and only works in {{firefox_open}}Firefox 3{{link_close}}, and in Internet Explorer 7." + needs_javascript: "{{link}} needs Javascript enabled, and only works in {{firefox_open}}Firefox 3{{link_close}}, Internet Explorer (7 and 8), and Google Chrome." new: New preferences: Preferences rankings: Rankings This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-15 22:13:12
|
Revision: 1766 http://logilogi.svn.sourceforge.net/logilogi/?rev=1766&view=rev Author: wybow Date: 2010-08-15 22:13:05 +0000 (Sun, 15 Aug 2010) Log Message: ----------- Chrome support and logi & remark attach buttons Modified Paths: -------------- trunk/app/controllers/annotations_controller.rb trunk/app/controllers/comments_controller.rb trunk/app/controllers/logi_inserts_controller.rb trunk/app/controllers/logis_controller.rb trunk/app/controllers/perma_links_controller.rb trunk/app/views/annotations/_new.html.erb trunk/app/views/layouts/_header.html.erb trunk/app/views/logis/_comments.html.erb trunk/app/views/logis/_remarks.html.erb trunk/app/views/logis/_snippet.html.erb trunk/app/views/logis/_snippets_list.html.erb trunk/app/views/logis/_snippets_pagination.html.erb trunk/app/views/perma_links/_new.html.erb trunk/app/views/remarks/_list.html.erb trunk/config/locales/en.yml trunk/public/stylesheets/logilogi.css trunk/test/fixtures/remarks.yml trunk/test/functional/annotations_controller_test.rb trunk/test/functional/perma_links_controller_test.rb trunk/test/functional/remarks_controller_test.rb Added Paths: ----------- trunk/test/functional/logi_inserts_controller_test.rb Modified: trunk/app/controllers/annotations_controller.rb =================================================================== --- trunk/app/controllers/annotations_controller.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/controllers/annotations_controller.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -22,6 +22,11 @@ ### Bodies def create + if params[:insert_remark_id] and !params[:insert_remark_id].empty? + @remark = Remark.find(params[:insert_remark_id]) + else + @remark = nil + end new_annotation_position_range_list = self.weave_out_annotations( params[:body_with_inserts], @logi_version, @logi) if new_annotation_position_range_list.empty? @@ -42,12 +47,16 @@ if @logi.errors.empty? and @annotation.valid? and self.thorny_form_free_of_spam? @annotation.save + if @remark and @remark.user == current_user + @remark.destroy + end flash[:notice] = t 'c.annotations.added' if !params[:and_attach] or params[:and_attach].empty? redirect_to logi_url(@logi) else @annotation = Annotation.new @selected = 'annotation' + @remark = nil render :template => 'logi_inserts/new' end else Modified: trunk/app/controllers/comments_controller.rb =================================================================== --- trunk/app/controllers/comments_controller.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/controllers/comments_controller.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -22,7 +22,7 @@ ### REST-methods def new - @from_blog = (params[:from_blog] ? true : false) + @from_blog = (params[:from_blog] == "true" ? true : false) @selected = params[:selected] || 'new_logi' @commenting_logi = Logi.new_with(:creator => current_user, :user_group => current_prefs.user_group) Modified: trunk/app/controllers/logi_inserts_controller.rb =================================================================== --- trunk/app/controllers/logi_inserts_controller.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/controllers/logi_inserts_controller.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -25,6 +25,16 @@ def new @selected = params[:selected] @link_selected = params[:link_selected] + if params[:insert_remark_id] and !params[:insert_remark_id].empty? + @remark = Remark.find(params[:insert_remark_id]) + @annotation = Annotation.new(:message => @remark.message) + else + @perma_link = params[:perma_link] + if @perma_link + @check_link = Link.new_from_s(@perma_link.dup) + @check_link.resolve + end + end @new_logi = Logi.new_with(:creator => current_user, :user_group => current_prefs.user_group) Modified: trunk/app/controllers/logis_controller.rb =================================================================== --- trunk/app/controllers/logis_controller.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/controllers/logis_controller.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -258,15 +258,14 @@ def check @check_link = Link.new_from_s(params[:check_ll_link_string]) @check_link.resolve - if @check_link.errors.empty? - respond_to do |format| - format.js do - render :template => 'logis/check.js.rjs', :locals => { - :name => params[:name]} + respond_to do |format| + format.js do + if !@check_link.errors.empty? + @check_link = nil end + render :template => 'logis/check.js.rjs', :locals => { + :name => params[:name]} end - else - render :nothing => true end end Modified: trunk/app/controllers/perma_links_controller.rb =================================================================== --- trunk/app/controllers/perma_links_controller.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/controllers/perma_links_controller.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -37,6 +37,9 @@ flash[:error] = t 'c.perma_links.error_adding' @selected = 'link' @link_selected = 'perma_link' + @perma_link = params[:perma_link] + @check_link = Link.new_from_s(@perma_link.dup) + @check_link.resolve render :template => 'logi_inserts/new' end end Modified: trunk/app/views/annotations/_new.html.erb =================================================================== --- trunk/app/views/annotations/_new.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/annotations/_new.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -1,6 +1,7 @@ <% render :layout => 'application/panel', :locals => { :title => t('v.annotations.adding'), :id => "annotation_panel"} do %> <label><%= t('v.annotations.annotation_label') %></label> + <%= hidden_field_tag :insert_remark_id, (@remark ? @remark.id : nil) %> <%= text_area :annotation, :message, :onkeyup => "logiMessagesCheckLength('annotation_message', 'annotation_length_warning')", :onkeydown => "logiMessagesCheckLength('annotation_message', 'annotation_length_warning')" %> Modified: trunk/app/views/layouts/_header.html.erb =================================================================== --- trunk/app/views/layouts/_header.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/layouts/_header.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -52,18 +52,17 @@ </div> </div> </div> + <div id="header_box"> <% if !local_assigns[:user_page] %> - <div id="top_search"> - <% form_for(:search, nil, :url => browse_logis_url(:ll_link_string => ''), - :html => {:method => :get}) do |form| %> - <%= form.text_field :ll_link_string, :name => :top_ll_link_string, :value => @query, - :no_label => true, :id => 'top_search_query' %> - <%= form.submit t('v.searches.search'), :id => 'top_search_button', - :class => 'go_button' %> - <% end %> - </div> + <% form_for(:search, nil, :url => browse_logis_url(:ll_link_string => ''), + :html => {:method => :get}) do |form| %> + <%= form.submit t('v.searches.search'), :id => 'top_search_button', + :class => 'go_button' %> + <%= form.text_field :ll_link_string, :name => :top_ll_link_string, :value => @query, + :no_label => true, :id => 'top_search_query' %> + <% end %> <% end %> - <div id="sessions"> + <div id="header_links"> <% if current_user.anonymous? %> <%= link_to t('v.layouts.signup'), new_user_url %> | <%= link_to t('v.layouts.login'), new_user_session_url %><%= (local_assigns[:user_page] ? '' : ' |') %> @@ -72,6 +71,7 @@ <%= link_to t('v.layouts.preferences'), edit_user_url(current_user) %> | <%= link_to t('v.layouts.logout'), user_session_path, :method => :delete %><%= (local_assigns[:user_page] ? '' : ' |') %> <% end %> + </div> </div> <% if !local_assigns[:tabs_disabled] %> <%= render :partial => 'layouts/tabs' %> Modified: trunk/app/views/logis/_comments.html.erb =================================================================== --- trunk/app/views/logis/_comments.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/logis/_comments.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -3,5 +3,5 @@ </div> <% if !logis.empty? %> <%= render :partial => 'snippets_pagination', :locals => { - :logis => logis, :selected => 'comments'} %> + :logis => logis, :selected => 'comments', :action => :view} %> <% end %> Modified: trunk/app/views/logis/_remarks.html.erb =================================================================== --- trunk/app/views/logis/_remarks.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/logis/_remarks.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -17,7 +17,7 @@ <%= show_errors 'remark' %> <%= render :partial => 'remarks/list.html.erb', :locals => { - :remarks => @remarks} %> + :remarks => @remarks, :action => :view} %> <% javascript_tag do -%> logiMessagesInitEditor('remark_length_warning', Modified: trunk/app/views/logis/_snippet.html.erb =================================================================== --- trunk/app/views/logis/_snippet.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/logis/_snippet.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -33,12 +33,18 @@ <%= logi.current_snippet %><%= link_to t('v.logis.read_on'), logi_url(logi.link) %> </p> - <div class="spacer"></div> <% if !logi.untagged? %> <span class="tags"><em><%= t 'v.logis.tags_label' %></em> <%= browse_ll_link(logi.link, :step => -1, :length => 78) %> </span> <% end %> + <% if local_assigns[:action] == :view and + !logi.link_matches.collect {|m| m.logi}.include?(@logi) %> + <%= button_to(t('v.logis.insert_this_logi'), + new_logi_logi_inserts_url(@logi, :selected => 'link', :link_selected => 'perma_link', + :perma_link => perma_logi_ll_url(logi)), :class => 'insert_button insert_this_button', + :tabindex => 1) %> + <% end %> <div class="spacer"></div> <% end %> </div> Modified: trunk/app/views/logis/_snippets_list.html.erb =================================================================== --- trunk/app/views/logis/_snippets_list.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/logis/_snippets_list.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -6,6 +6,7 @@ </center> <% else %> <% logis.each do |logi| %> - <%= render :partial => 'logis/snippet', :locals => {:logi => logi} %> + <%= render :partial => 'logis/snippet', :locals => {:logi => logi, + :action => local_assigns[:action]} %> <% end %> <% end %> Modified: trunk/app/views/logis/_snippets_pagination.html.erb =================================================================== --- trunk/app/views/logis/_snippets_pagination.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/logis/_snippets_pagination.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -8,7 +8,7 @@ <div class="index_list"> <%= render :partial => 'logis/snippets_list', :locals => { - :logis => logis} %> + :logis => logis, :action => local_assigns[:action]} %> </div> <%= will_paginate logis, :params => {:selected => selected}, Modified: trunk/app/views/perma_links/_new.html.erb =================================================================== --- trunk/app/views/perma_links/_new.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/perma_links/_new.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -1,8 +1,8 @@ <% render :layout => 'application/panel', :locals => {:id => 'link_perma_id'} do %> <label id="perma_link_label"><%= t 'v.perma_links.permanent_link_label' %></label> - <%= text_field_tag 'perma_link', nil, :id => "perma_link", :autocomplete => "off" %> + <%= text_field_tag 'perma_link', @perma_link, :id => "perma_link", :autocomplete => "off" %> <%= observe_field 'perma_link', :url => {:controller => 'logis', :action => 'check', :name => 'perma'}, - :method => "get", :with => "check_ll_link_string" %> + :method => "get", :frequency => 0.25, :with => "check_ll_link_string" %> <% end %> <%= render :partial => 'logis/check', :locals => {:name => 'perma'} %> Modified: trunk/app/views/remarks/_list.html.erb =================================================================== --- trunk/app/views/remarks/_list.html.erb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/app/views/remarks/_list.html.erb 2010-08-15 22:13:05 UTC (rev 1766) @@ -5,6 +5,12 @@ <%= gravatar_for(remark.user, :class => 'avatar') %> <%= by_author(remark.user, :length => 13) %> <p><%= remark.message %></p> + <% if current_user == remark.user and local_assigns[:action] == :view %> + <%= button_to(t('v.logis.insert_this_remark'), + new_logi_logi_inserts_url(@logi, :selected => 'annotation', + :insert_remark_id => remark.id), + :class => 'insert_button insert_this_button', :tabindex => 1) %> + <% end %> <div class="spacer"></div> </div> </div> Modified: trunk/config/locales/en.yml =================================================================== --- trunk/config/locales/en.yml 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/config/locales/en.yml 2010-08-15 22:13:05 UTC (rev 1766) @@ -751,8 +751,10 @@ has_different_tagset: "Logi has a different tag-set." in_depth_response: "Want to give a more in-depth response?" incoming_to_tags: "Incoming links to tags" - insert_into: "Attach something to phrase" + insert_into: "Attach something to a phrase" insert_or_remove: "Attach or detach?" + insert_this_logi: "Attach this logi to a phrase" + insert_this_remark: "Attach as annotation" like_tree: "Tags are like a location in a tree, start by setting the most important tag above. If no tag is set, the 'Sandbox' tag will be used." load_editor: "Expand reply editor" new_for_tags: "Create a new logi for these tags." Modified: trunk/public/stylesheets/logilogi.css =================================================================== --- trunk/public/stylesheets/logilogi.css 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/public/stylesheets/logilogi.css 2010-08-15 22:13:05 UTC (rev 1766) @@ -568,11 +568,12 @@ #header_content { float: left; + width: 35em; /* for Chrome */ padding-top: 0em; } #header_content img { float: left; - padding: 1em 0 0 1.4em; + padding: 0.8em 0 0 1.4em; margin: -0.15em 0.8em 0em 0.5em; } #users_show #header_content img { @@ -596,7 +597,7 @@ float: left; clear: left; font-size: 1.3em; - margin-bottom: -1em; + margin: 0.1em 0em -1em 0em; word-spacing: 0.1em; letter-spacing: 0.05em; font-variant: small-caps; @@ -610,33 +611,33 @@ font-style: italic; color: white; } -#sessions { +#header_box { +} +#header_links { float: right; padding: 0.2em; - margin-right: 0.4em; + margin-right: 0em; font-size: 1.4em; color: white; white-space: nowrap; } -#sessions a { +#header_links a { border-bottom: solid 1px; color: white; border-color: white; } #top_search { - margin-right: 1em; +} +#top_search_query { float: right; -} -#top_search #top_search_query { - margin-top: 0.4em; - padding: 0.3em; - float: left; + margin: 0.4em 0.5em 0em 0.3em; + padding: 0.35em; width: 8em; } -#top_search #top_search_button { +#top_search_button { + float: right; margin-top: 0.35em; - margin-left: 0.5em; - float: left; + margin-right: 1em; } /* primary tabs, based on the great ala's sliding doors 2 */ @@ -1367,11 +1368,16 @@ width: 6em; } .remark p { - padding-top: 0.8em; + padding: 0.8em 0em 0em 0em; font-size: 1.2em; line-height: 1.3em; text-align: left; } +.insert_this_button { + font-size: 0.7em; + margin: 0.5em -0.3em 0em 0em; +} + /* also see logi for remark color */ /* comments */ Modified: trunk/test/fixtures/remarks.yml =================================================================== --- trunk/test/fixtures/remarks.yml 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/test/fixtures/remarks.yml 2010-08-15 22:13:05 UTC (rev 1766) @@ -8,6 +8,11 @@ user: john_johnson message: 'neat, really! this is the way to go' created_at: <%= 2.days.ago.to_s(:db) %> +logi_logi_really_nice: + logi: logi_logi + user_id: <%= User.anonymous.id %> + message: 'Really nice!' + created_at: <%= 1.day.ago.to_s(:db) %> michel_foucault_politics_medieval_peter_abelard_economics_did_you_consider: logi: michel_foucault_politics_medieval_peter_abelard_economics user: john_johnson Modified: trunk/test/functional/annotations_controller_test.rb =================================================================== --- trunk/test/functional/annotations_controller_test.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/test/functional/annotations_controller_test.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -44,6 +44,23 @@ assert_equal l_v.raw_title.size + 63, ll_annotation.position_ranges.first.last end + def test_create + l = logis(:logi_logi) + r_nice_id = remarks(:logi_logi_really_nice).id + nr_of_r = l.annotations.size + l_v = l.current_logi_version + b_t = l_v.body + l_r = "LL With Super Cow Powers :)" + new_b_t = b_t[0...49] + '<a class="selection" target="' + l_r + '">' + + b_t[49...63] + "</a>" + b_t[63...-1] + post :create, {:ll_link_string => l.link.to_s, + :body_with_inserts => new_b_t, + :insert_remark_id => r_nice_id}.merge(self.thorny_ok_hash) + assert_response :redirect + assert_equal nr_of_r + 1, l.annotations.size + assert !Remark.find_by_id(r_nice_id) + end + def test_create_ender i = logis(:eduard_edison_user) assert_insert_annotation(i,'Kuku','<p>I am Eduard, ','I have created','.</p>',36,50) Added: trunk/test/functional/logi_inserts_controller_test.rb =================================================================== --- trunk/test/functional/logi_inserts_controller_test.rb (rev 0) +++ trunk/test/functional/logi_inserts_controller_test.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -0,0 +1,43 @@ +#--# +# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> +# +# License: +# This file is part of the LogiLogi program. LogiLogi is Free Software. +# You can run/distribute/modify LogiLogi under the terms of the GNU Affero +# General Public License version 3. The Affero GPL states that running a +# modified version or a derivative work also requires you to make the source +# code of that work available to everyone that can interact with it. We +# chose the Affero GPL to ensure that LogiLogi remains open and libre +# (doc/LICENSE contains the full text of the legally binding license). +#++# + +require File.dirname(__FILE__) + '/../test_helper' +require 'logi_inserts_controller' + +class LogiInsertsControllerTest < ActionController::TestCase + fixtures :all + + def setup + @controller = LogiInsertsController.new + setup_request + end + + ### Actions + + # REST-methods + + def test_new + get :new, :ll_link_string => logis(:logi_logi).link.to_s + assert_response :success + + get :new, :ll_link_string => logis(:logi_logi).link.to_s, + :selected => "link", :link_selected => "perma_link", + :perma_link => logis(:lubber_sailing).link.to_s + assert_response :success + + get :new, :ll_link_string => logis(:logi_logi).link.to_s, + :insert_remark_id => remarks(:logi_logi_neat).id.to_s, + :selected => "annotation" + assert_response :success + end +end Modified: trunk/test/functional/perma_links_controller_test.rb =================================================================== --- trunk/test/functional/perma_links_controller_test.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/test/functional/perma_links_controller_test.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -26,7 +26,6 @@ # REST-methods - def test_create l = logis(:logi_logi) nr_of_l = l.from_links.size @@ -39,7 +38,8 @@ b_t[49...63] + "</a>" + b_t[63...-1] post :create, {:ll_link_string => l.link.to_s, - :body_with_inserts => new_b_t}.merge(self.thorny_ok_hash) + :body_with_inserts => new_b_t, + :perma_link => l_l}.merge(self.thorny_ok_hash) assert_response :redirect assert_equal nr_of_l + 1, l.from_links.size @@ -61,7 +61,8 @@ b_t[49...63] + "</a>" + b_t[63...-1] post :create, {:ll_link_string => l.link.to_s, - :body_with_inserts => new_b_t}.merge(self.thorny_ok_hash) + :body_with_inserts => new_b_t, + :perma_link => l_l}.merge(self.thorny_ok_hash) assert_equal nr_of_l, l.from_links.size # no new link end Modified: trunk/test/functional/remarks_controller_test.rb =================================================================== --- trunk/test/functional/remarks_controller_test.rb 2010-08-15 09:08:14 UTC (rev 1765) +++ trunk/test/functional/remarks_controller_test.rb 2010-08-15 22:13:05 UTC (rev 1766) @@ -27,12 +27,14 @@ # REST-methods def test_create - assert true - # TODO - end + l = logis(:logi_logi) + nr_of_r = l.remarks.size - def test_destroy - assert true - # TODO + post :create, {:ll_link_string => l.link.to_s, + :remark => {:message => "Testing remark992"} + }.merge(self.thorny_ok_hash) + + assert_response :success + assert_equal nr_of_r + 1, l.remarks.size end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-15 09:08:20
|
Revision: 1765 http://logilogi.svn.sourceforge.net/logilogi/?rev=1765&view=rev Author: wybow Date: 2010-08-15 09:08:14 +0000 (Sun, 15 Aug 2010) Log Message: ----------- Small fix to admin report Modified Paths: -------------- trunk/app/models/log_log_subscription.rb Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-08-14 09:31:55 UTC (rev 1764) +++ trunk/app/models/log_log_subscription.rb 2010-08-15 09:08:14 UTC (rev 1765) @@ -46,7 +46,8 @@ "Sent #{period} to: " + sent_to.join(', ') + "\n" + "There were #{l_count} new logis") else - Notifier.deliver_admin_log(period, sent_to.size, + s_count = (sent_to == ['Nobody'] ? 0 : sent_to.size) + Notifier.deliver_admin_log(period, s_count, "Sent personalized #{period} to: " + sent_to.join(', ')) end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-14 09:32:02
|
Revision: 1764 http://logilogi.svn.sourceforge.net/logilogi/?rev=1764&view=rev Author: wybow Date: 2010-08-14 09:31:55 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Fix if not using LogLog Modified Paths: -------------- trunk/app/helpers/application_helper.rb Modified: trunk/app/helpers/application_helper.rb =================================================================== --- trunk/app/helpers/application_helper.rb 2010-08-14 08:04:46 UTC (rev 1763) +++ trunk/app/helpers/application_helper.rb 2010-08-14 09:31:55 UTC (rev 1764) @@ -352,17 +352,21 @@ end def log_log_link(options = {}) - if options[:controller] == 'feed' and options[:channel] - GlobalConfig.log_log_site + "/channels/" + options[:channel] + - "/feed.atom" - else - raise 'Missing attr' + if GlobalConfig.use_log_log? + if options[:controller] == 'feed' and options[:channel] + GlobalConfig.log_log_site + "/channels/" + options[:channel] + + "/feed.atom" + else + raise 'Missing attr' + end end end def log_log_feed_link(options = {}) - url = log_log_link(options.merge(:controller => 'feed')) - '<div class="rss_link">' + link_to(image_tag('rss.png'), url) + '</div>' + if GlobalConfig.use_log_log? + url = log_log_link(options.merge(:controller => 'feed')) + '<div class="rss_link">' + link_to(image_tag('rss.png'), url) + '</div>' + end end def crosses_title(score) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-14 08:04:52
|
Revision: 1763 http://logilogi.svn.sourceforge.net/logilogi/?rev=1763&view=rev Author: wybow Date: 2010-08-14 08:04:46 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Fixed some bugs in the Notifier Modified Paths: -------------- trunk/app/models/log_log_subscription.rb trunk/app/models/notifier.rb trunk/app/views/notifier/admin_log.erb trunk/config/config.rb.tmpl Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-08-12 20:40:22 UTC (rev 1762) +++ trunk/app/models/log_log_subscription.rb 2010-08-14 08:04:46 UTC (rev 1763) @@ -20,7 +20,7 @@ def self.send_out_alerts(period) sent_to = [] - LogLogSubscription.find_each_by_period(period) do |lls| + LogLogSubscription.find_each(:conditions => ['period = "?"', period]) do |lls| url = URI.parse(GlobalConfig.log_log_site + "/channels/" + lls.channel + "/periods/" + period + ".txt") begin @@ -40,7 +40,7 @@ if sent_to.empty? sent_to = ['Nobody'] end - if lls.channel == "logis" + if period == "weekly" l_count = Logi.count(:conditions => 'created_at > "' + 1.week.ago.to_s(:db) + '"') Notifier.deliver_admin_log(period, sent_to.size, "Sent #{period} to: " + sent_to.join(', ') + "\n" + Modified: trunk/app/models/notifier.rb =================================================================== --- trunk/app/models/notifier.rb 2010-08-12 20:40:22 UTC (rev 1762) +++ trunk/app/models/notifier.rb 2010-08-14 08:04:46 UTC (rev 1763) @@ -37,7 +37,7 @@ end def admin_log(period, s_count, periodical) - subject t("#{s_count} mailings, #{period} admin update for #{GlobalConfig.site_host}") + subject "#{s_count} mailings, #{period} admin update for #{GlobalConfig.site_host}" from t('m.notifier.notifier', :email => GlobalConfig.noreply_email) recipients User.admin.email sent_on Time.now Modified: trunk/app/views/notifier/admin_log.erb =================================================================== --- trunk/app/views/notifier/admin_log.erb 2010-08-12 20:40:22 UTC (rev 1762) +++ trunk/app/views/notifier/admin_log.erb 2010-08-14 08:04:46 UTC (rev 1763) @@ -1,8 +1,3 @@ <%= t 'v.notifier.dear', :name => User.admin.name %> -<%= t 'v.notifier.hereby_personalized', :period => @period, - :domain => GlobalConfig.site_host %> - -<%= t 'v.notifier.only_happened' %> - <%= @periodical %> Modified: trunk/config/config.rb.tmpl =================================================================== --- trunk/config/config.rb.tmpl 2010-08-12 20:40:22 UTC (rev 1762) +++ trunk/config/config.rb.tmpl 2010-08-14 08:04:46 UTC (rev 1763) @@ -114,7 +114,7 @@ # The following setting is resolved from this one: # :daily_fraction # - :half_life => 7, + :half_life => 28, # The age in days at which memberships that have no power from # posts anymore are dropped. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-12 20:40:28
|
Revision: 1762 http://logilogi.svn.sourceforge.net/logilogi/?rev=1762&view=rev Author: wybow Date: 2010-08-12 20:40:22 +0000 (Thu, 12 Aug 2010) Log Message: ----------- Small fixes, and auto-subscribe on signup. Modified Paths: -------------- trunk/app/models/user.rb trunk/app/views/notifier/logis_log.erb trunk/app/views/notifier/personalized_log.erb Modified: trunk/app/models/user.rb =================================================================== --- trunk/app/models/user.rb 2010-08-11 20:50:25 UTC (rev 1761) +++ trunk/app/models/user.rb 2010-08-12 20:40:22 UTC (rev 1762) @@ -57,7 +57,7 @@ validate :name_not_reserved, :normalize_openid_identifier before_create :assert_persistence_token, :set_blog_title after_create :create_personal_user_group, :create_prefs_profiles, - :create_home_page, :log_create_to_log_log + :create_home_page, :create_subscriptions, :log_create_to_log_log before_destroy :reset_dependents after_destroy :destroy_home_pages @@ -264,6 +264,17 @@ return true end + # Subscribes the user to the daily and weekly mailings + # + def create_subscriptions + ll_s_w = LogLogSubscription.new(:user => self, + :channel => "logis", :period => "weekly") + ll_s_w.save + ll_s_d = LogLogSubscription.new(:user => self, + :channel => "for_" + self.unix_name, :period => "daily") + ll_s_d.save + end + # Logs creation to log.logilogi.org # def log_create_to_log_log Modified: trunk/app/views/notifier/logis_log.erb =================================================================== --- trunk/app/views/notifier/logis_log.erb 2010-08-11 20:50:25 UTC (rev 1761) +++ trunk/app/views/notifier/logis_log.erb 2010-08-12 20:40:22 UTC (rev 1762) @@ -8,4 +8,4 @@ --- <%= t 'v.notifier.unsubscribe', :period => @period %> -<%= edit_user_url(current_user) %> +<%= edit_user_url(@user, :host => GlobalConfig.site_host) %> Modified: trunk/app/views/notifier/personalized_log.erb =================================================================== --- trunk/app/views/notifier/personalized_log.erb 2010-08-11 20:50:25 UTC (rev 1761) +++ trunk/app/views/notifier/personalized_log.erb 2010-08-12 20:40:22 UTC (rev 1762) @@ -6,3 +6,8 @@ <%= t 'v.notifier.only_happened' %> <%= @periodical %> + +--- + +<%= t 'v.notifier.unsubscribe', :period => @period %> +<%= edit_user_url(@user, :host => GlobalConfig.site_host) %> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-11 20:50:33
|
Revision: 1761 http://logilogi.svn.sourceforge.net/logilogi/?rev=1761&view=rev Author: wybow Date: 2010-08-11 20:50:25 +0000 (Wed, 11 Aug 2010) Log Message: ----------- Added loglog subscriptions to preferences, and numerous smaller fixes Modified Paths: -------------- trunk/app/controllers/comments_controller.rb trunk/app/controllers/logis_controller.rb trunk/app/controllers/users_controller.rb trunk/app/models/commenting.rb trunk/app/models/log_log_subscription.rb trunk/app/models/logi.rb trunk/app/models/notifier.rb trunk/app/models/peer_group_membership.rb trunk/app/models/remark.rb trunk/app/models/user.rb trunk/app/models/vote.rb trunk/app/views/changes/_new_logis.html.erb trunk/app/views/changes/_recently_changed_logis.html.erb trunk/app/views/layouts/user_page.html.erb trunk/app/views/logis/_new_logis.html.erb trunk/app/views/users/_unfoldable_editor.html.erb trunk/app/views/users/edit.html.erb trunk/config/locales/de.yml trunk/config/locales/en.yml trunk/db/schema.rb trunk/lib/tasks/server.rake trunk/public/stylesheets/logilogi.css trunk/test/fixtures/peer_group_memberships.yml trunk/test/fixtures/ratings.yml trunk/test/fixtures/votes.yml trunk/test/functional/comments_controller_test.rb trunk/test/functional/users_controller_test.rb trunk/test/unit/notifier_test.rb trunk/test/unit/peer_group_membership_test.rb trunk/test/unit/rating_test.rb Added Paths: ----------- trunk/app/views/notifier/admin_log.erb trunk/app/views/notifier/logis_log.erb trunk/app/views/notifier/personalized_log.erb trunk/app/views/users/_feed.html.erb trunk/app/views/users/_side_panel.html.erb trunk/db/migrate/20100731183726_add_log_log_subscriptions.rb trunk/db/migrate/20100810151704_redo_indices.rb trunk/db/migrate/20100810165341_restore_public_peergroup_memberships.rb trunk/lib/tasks/log.rake Removed Paths: ------------- trunk/app/controllers/main_page_controller.rb trunk/app/views/notifier/for_log.erb trunk/app/views/users/_remarks_and_activity.html.erb Modified: trunk/app/controllers/comments_controller.rb =================================================================== --- trunk/app/controllers/comments_controller.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/controllers/comments_controller.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -34,7 +34,7 @@ alias :show :new def create - @from_blog = (params[:from_blog] ? true : false) + @from_blog = (params[:from_blog] == "true" ? true : false) if params[:perma_link] @link = Link.new_from_s(params[:perma_link]) @link.resolve Modified: trunk/app/controllers/logis_controller.rb =================================================================== --- trunk/app/controllers/logis_controller.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/controllers/logis_controller.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -351,8 +351,8 @@ def new_logis if !current_context.link? - @new_logis_count = Logi.count(:conditions => 'created_at > "' + - 1.week.ago.to_s(:db) + '"') + @new_logis_count = Logi.count(:conditions => + 'created_at > "' + 1.week.ago.to_s(:db) + '"') @logis = Logi.recent.presentable.paginate(:page => params[:page], :per_page => 7) end Deleted: trunk/app/controllers/main_page_controller.rb =================================================================== --- trunk/app/controllers/main_page_controller.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/controllers/main_page_controller.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,112 +0,0 @@ -#--# -# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...> -# -# License: -# This file is part of the LogiLogi program. LogiLogi is Free Software. -# You can run/distribute/modify LogiLogi under the terms of the GNU Affero -# General Public License version 3. The Affero GPL states that running a -# modified version or a derivative work also requires you to make the source -# code of that work available to everyone that can interact with it. We -# chose the Affero GPL to ensure that LogiLogi remains open and libre -# (doc/LICENSE contains the full text of the legally binding license). -#++# - -class MainPageController < ApplicationController - ### Layout - - layout 'main' - - ### Filters - - before_filter :page_name - - ### Bodies - - # see the BodyBuilder plugin. - # - # :head and :side are already set in application - - body_parts :content - - content_body :description, :new_logis, - :only => :index - side_body :tags, :new_users, - :only => :index - - ### REST-methods - - def index - @selected = params[:selected] - respond_to do |format| - format.html - format.js do - select_body(@selected) - end - end - end - - ### Tabbed methods - - def tags - @used_tags = UsedTag.top_used_tags(:limit => 57, - :no_special => true) - render_ajax_body :partial => 'cloud.html.erb', - :locals => {:selected => @selected} - end - - def users - @top_users = User.top_users(:limit => 57) - render_ajax_body :partial => 'cloud.html.erb', - :locals => {:selected => @selected} - end - - def groups - @top_peer_groups = PeerGroup.top_peer_groups(:limit => 57) - render_ajax_body :partial => 'cloud.html.erb', - :locals => {:selected => @selected} - end - - def recently_changed_logis - @recently_changed_logis_count = LogiVersion.count( - :conditions => 'created_at > "' + 1.week.ago.to_s(:db) + '"') - @logis = Logi.paginate_recent_changes(:page => params[:page], - :per_page => 15) - render_ajax_body :partial => 'recent_or_new_logis.html.erb', - :locals => {:selected => @selected} - end - - def new_logis - @new_logis_count = Logi.count(:conditions => 'created_at > "' + - 1.week.ago.to_s(:db) + '"') - @logis = Logi.recent.presentable.paginate(:page => params[:page], - :per_page => 7) - render_ajax_body :partial => 'recent_or_new_logis.html.erb', - :locals => {:selected => @selected} - end - - def new_users - @users = User.find(:all, :order => 'created_at DESC', :limit => 15) - @new_users_count = User.count(:conditions => 'created_at > "' + - 1.week.ago.to_s(:db) + '"') - render_ajax_body :partial => 'new_users_or_groups.html.erb', - :locals => {:selected => @selected} - end - - def new_groups - @peer_groups = PeerGroup.find(:all, :order => 'created_at DESC', - :limit => 10) - @new_groups_count = PeerGroup.count(:conditions => 'created_at > "' + - 1.month.ago.to_s(:db) + '"') - render_ajax_body :partial => 'new_users_or_groups.html.erb', - :locals => {:selected => @selected} - end - - ### Body-methods - - protected - - def description - render_body 'logis/small_snippet', - :locals => {:logi => Logi.main_page, :id => 'site_description'} - end -end Modified: trunk/app/controllers/users_controller.rb =================================================================== --- trunk/app/controllers/users_controller.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/controllers/users_controller.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -30,13 +30,13 @@ # :head, :top and :side are already set in application - side_body :about, :remarks_and_activity, + side_body :about, :side_panel, :only => :show ### Methods def show - @logis = Logi.recent.presentable.created_by_user(@user).paginate( + @logis = Logi.recent.created_by_user(@user).paginate( :page => params[:page], :per_page => 9) respond_to do |format| format.html do @@ -87,6 +87,7 @@ def edit @prefs_profile = @user.default_prefs_profile + self.read_log_log_subscriptions end def update @@ -119,6 +120,22 @@ flash[:error] = t 'c.users.error_updating_settings' render :action => 'edit' end + elsif params[:log_log_subscription] + self.read_log_log_subscriptions + @subscriptions.each_pair do |name, subscription| + if params[:log_log_subscription][name] + if !subscription + channel = (name == :personalized_log ? "for_" + @user.unix_name : "logis") + ll_s = LogLogSubscription.new(:user => @user, :channel => channel, + :period => (name == :personalized_log ? "daily" : "weekly")) + ll_s.save + end # else do nothing + elsif subscription + subscription.destroy + end + end + flash[:notice] = t 'c.users.settings_updated' + redirect_to return_url_or_default(user_url(@user)) end end @@ -153,7 +170,7 @@ :locals => {:logi => @logi, :id => 'site_description'} end - def remarks_and_activity + def side_panel @remark = Remark.new @remarks = @logi.remarks.find(:all, :limit => 10, :order => ["created_at DESC"]) @@ -184,4 +201,15 @@ return false end end + + ### Helper methods + + def read_log_log_subscriptions + @subscriptions = {} + [:personalized_log, :logis_log].each do |name| + channel = (name == :personalized_log ? "for_" + @user.unix_name : "logis") + @subscriptions[name] = LogLogSubscription.find_by_user_id_and_channel( + @user, channel) + end + end end Modified: trunk/app/models/commenting.rb =================================================================== --- trunk/app/models/commenting.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/commenting.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -36,10 +36,16 @@ def log_create_to_log_log if GlobalConfig.use_log_log # Has reply + # four previous replyers and logi creator receive notice + comments = self.from_logi.commenting_logis.find(:all, + :limit => 5, :order => ["created_at DESC"]) + names = [self.from_logi.creator.unix_name] + + comments[1..-1].collect {|l| l.creator.unix_name} + channels = ['all', 'replies'] + + names.uniq.collect {|n| 'for_' + n} m = LogLogMessage.new( :kind => "Reply", - :channel_names => ['all', 'replies', - 'for_' + self.from_logi.creator.unix_name].join(','), + :channel_names => channels.join(','), :title => 'Received:' + self.to_logi.current_title, :author => self.user.name, :text => self.to_logi.current_snippet, Modified: trunk/app/models/log_log_subscription.rb =================================================================== --- trunk/app/models/log_log_subscription.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/log_log_subscription.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -20,14 +20,18 @@ def self.send_out_alerts(period) sent_to = [] - User.find_each do |user| + LogLogSubscription.find_each_by_period(period) do |lls| url = URI.parse(GlobalConfig.log_log_site + - "/channels/for_" + user.unix_name + "/periods/" + period + ".txt") + "/channels/" + lls.channel + "/periods/" + period + ".txt") begin page = Net::HTTP.get_response(url) periodical = page.body if periodical =~ /[^\s]/ - Notifier.deliver_for_log(user, period, periodical) + if lls.channel == "logis" + Notifier.deliver_logis_log(user, period, periodical) + else + Notifier.deliver_personalized_log(user, period, periodical) + end sent_to << user.name end rescue @@ -36,7 +40,14 @@ if sent_to.empty? sent_to = ['Nobody'] end - Notifier.deliver_for_log(User.admin, period, - 'Sent to: ' + sent_to.join(', ')) + if lls.channel == "logis" + l_count = Logi.count(:conditions => 'created_at > "' + 1.week.ago.to_s(:db) + '"') + Notifier.deliver_admin_log(period, sent_to.size, + "Sent #{period} to: " + sent_to.join(', ') + "\n" + + "There were #{l_count} new logis") + else + Notifier.deliver_admin_log(period, sent_to.size, + "Sent personalized #{period} to: " + sent_to.join(', ')) + end end end Modified: trunk/app/models/logi.rb =================================================================== --- trunk/app/models/logi.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/logi.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -94,7 +94,8 @@ named_scope :recent, :order => 'created_at DESC' if GlobalConfig.available? named_scope :presentable, - :conditions => 'tags_string != "' + Tag.sandbox.to_s + '"' + :conditions => 'kind = ' + Const::Logi::KINDS[:normal].to_s + ' ' + + 'AND tags_string != "' + Tag.sandbox.to_s + '"' end ###### Filters @@ -497,11 +498,10 @@ # Logs creation to log.logilogi.org # def log_create_to_log_log - if GlobalConfig.use_log_log + if GlobalConfig.use_log_log and !self.home_page? m = LogLogMessage.new( :kind => "Logi", :channel_names => ['all','logis', - 'for_' + self.creator.unix_name, 'by_' + self.creator.unix_name].join(','), :title => self.current_title, :author => self.creator.name, Modified: trunk/app/models/notifier.rb =================================================================== --- trunk/app/models/notifier.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/notifier.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -14,8 +14,8 @@ class Notifier < ActionMailer::Base ### Mailers - def for_log(user, period, periodical) - subject t('m.notifier.update_for', :name => user.name, + def personalized_log(user, period, periodical) + subject t('m.notifier.update_personalized', :name => user.name, :domain => GlobalConfig.site_host) from t('m.notifier.notifier', :email => GlobalConfig.noreply_email) recipients user.email @@ -25,6 +25,26 @@ :periodical => periodical end + def logis_log(user, period, periodical) + subject t('m.notifier.update_logis', :period => period.humanize, + :domain => GlobalConfig.site_host) + from t('m.notifier.notifier', :email => GlobalConfig.noreply_email) + recipients user.email + sent_on Time.now + body :user => user, + :period => period, + :periodical => periodical + end + + def admin_log(period, s_count, periodical) + subject t("#{s_count} mailings, #{period} admin update for #{GlobalConfig.site_host}") + from t('m.notifier.notifier', :email => GlobalConfig.noreply_email) + recipients User.admin.email + sent_on Time.now + body :period => period, + :periodical => periodical + end + def welcome(user) subject t('m.notifier.welcome', :name => user.name, :domain => GlobalConfig.site_host) Modified: trunk/app/models/peer_group_membership.rb =================================================================== --- trunk/app/models/peer_group_membership.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/peer_group_membership.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -78,12 +78,11 @@ # def self.drop_the_powerless PeerGroupMembership.find_each( - :conditions => 'power <= ' + PeerGroupMembership.member_power.to_s + + :conditions => 'peer_group_id != ' + PeerGroup.public.id.to_s + + ' AND power <= ' + PeerGroupMembership.member_power.to_s + ' AND updated_at > "' + GlobalConfig.powerless_age.days.ago.to_s(:db) + '"') do |membership| - if membership.user != User.anonymous - membership.destroy - end + membership.destroy end end Modified: trunk/app/models/remark.rb =================================================================== --- trunk/app/models/remark.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/remark.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -42,10 +42,16 @@ # def log_create_to_log_log if GlobalConfig.use_log_log + # four previous replyers and logi creator receive notice + remarks = self.logi.remarks.find(:all, + :limit => 5, :order => ["created_at DESC"]) + names = [self.logi.creator.unix_name] + + remarks[1..-1].collect {|r| r.user.unix_name} + channels = ['all', 'remarks'] + + names.uniq.collect {|n| 'for_' + n} m = LogLogMessage.new( :kind => "Remark", - :channel_names => ['all', 'remarks', - 'for_' + self.logi.creator.unix_name].join(','), + :channel_names => channels.join(','), :author => self.user.name, :title => 'On: ' + self.logi.current_title, :text => self.message, Modified: trunk/app/models/user.rb =================================================================== --- trunk/app/models/user.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/user.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -48,6 +48,7 @@ has_many :invitations, :dependent => :destroy has_many :user_groups, :through => :user_group_memberships has_many :peer_groups, :through => :peer_group_memberships + has_many :log_log_subscriptions ### Filters @@ -55,7 +56,8 @@ # see HomePageModule and UnixNameModule validate :name_not_reserved, :normalize_openid_identifier before_create :assert_persistence_token, :set_blog_title - after_create :create_personal_user_group, :create_prefs_profiles, :create_home_page + after_create :create_personal_user_group, :create_prefs_profiles, + :create_home_page, :log_create_to_log_log before_destroy :reset_dependents after_destroy :destroy_home_pages @@ -262,6 +264,23 @@ return true end + # Logs creation to log.logilogi.org + # + def log_create_to_log_log + if GlobalConfig.use_log_log + m = LogLogMessage.new( + :kind => "User", + :channel_names => ['all','users', + 'by_' + self.unix_name].join(','), + :title => 'Welcome: ' + self.name, + :author => self, + :text => self.name + ' created an account.', + :url => GlobalConfig.site_url + "users/" + + self.home_page_tag_string) + m.save + end + end + # Destroys the home of the user. # def destroy_home_pages Modified: trunk/app/models/vote.rb =================================================================== --- trunk/app/models/vote.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/models/vote.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -28,7 +28,6 @@ # for validation messages I18n.locale = GlobalConfig.language_code if GlobalConfig.available? - validates_uniqueness_of :user_id, :scope => :rating_id validates_inclusion_of :score, :in => -2..5, :message => t('defaults.error_bounds') ### Filters Modified: trunk/app/views/changes/_new_logis.html.erb =================================================================== --- trunk/app/views/changes/_new_logis.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/changes/_new_logis.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,6 +1,7 @@ <div id="new_logis"> <% render :layout => 'application/panel_with_header', :locals => {:title => t('v.changes.new_logis'), + :link => log_log_feed_link(:channel => 'logis'), :id => "recenting"} do %> <%= will_paginate @logis, :params => {:selected => 'new_logis'}, :class => 'pagination' %> Modified: trunk/app/views/changes/_recently_changed_logis.html.erb =================================================================== --- trunk/app/views/changes/_recently_changed_logis.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/changes/_recently_changed_logis.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,6 +1,7 @@ <div id="recently_changed_logis"> <% render :layout => 'application/panel_with_header', :locals => {:title => t('v.changes.recent_changes'), + :link => log_log_feed_link(:channel => 'changes'), :id => "recenting"} do %> <%= will_paginate @logis, :params => {:selected => 'recently_changed_logis'}, :class => 'pagination' %> Modified: trunk/app/views/layouts/user_page.html.erb =================================================================== --- trunk/app/views/layouts/user_page.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/layouts/user_page.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -7,6 +7,7 @@ <%= yield :top_body %> <div class="main_column"> + <%= show_flash %> <%= yield %> </div> Modified: trunk/app/views/logis/_new_logis.html.erb =================================================================== --- trunk/app/views/logis/_new_logis.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/logis/_new_logis.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,6 +1,7 @@ <% render :layout => 'application/panel_with_header', :locals => {:title => t('v.main_page.logis_just'), - :id => "recenting"} do %> + :link => log_log_feed_link(:channel => 'logis'), + :id => "recenting"} do %> <p class="one_line"> <%= link_to t('v.main_page.view_all_new_logis'), changes_url(:selected => :new_logis) %> Added: trunk/app/views/notifier/admin_log.erb =================================================================== --- trunk/app/views/notifier/admin_log.erb (rev 0) +++ trunk/app/views/notifier/admin_log.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,8 @@ +<%= t 'v.notifier.dear', :name => User.admin.name %> + +<%= t 'v.notifier.hereby_personalized', :period => @period, + :domain => GlobalConfig.site_host %> + +<%= t 'v.notifier.only_happened' %> + +<%= @periodical %> Deleted: trunk/app/views/notifier/for_log.erb =================================================================== --- trunk/app/views/notifier/for_log.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/notifier/for_log.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,8 +0,0 @@ -<%= t 'v.notifier.dear', :name => @user.name %> - -<%= t 'v.notifier.hereby_personalized', :period => @period, - :domain => GlobalConfig.site_host %> - -<%= t 'v.notifier.only_happened' %> - -<%= @periodical %> Added: trunk/app/views/notifier/logis_log.erb =================================================================== --- trunk/app/views/notifier/logis_log.erb (rev 0) +++ trunk/app/views/notifier/logis_log.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,11 @@ +<%= t 'v.notifier.dear', :name => @user.name %> + +<%= t 'v.notifier.hereby_logis', :period => @period, + :domain => GlobalConfig.site_host %> + +<%= @periodical %> + +--- + +<%= t 'v.notifier.unsubscribe', :period => @period %> +<%= edit_user_url(current_user) %> Copied: trunk/app/views/notifier/personalized_log.erb (from rev 1758, trunk/app/views/notifier/for_log.erb) =================================================================== --- trunk/app/views/notifier/personalized_log.erb (rev 0) +++ trunk/app/views/notifier/personalized_log.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,8 @@ +<%= t 'v.notifier.dear', :name => @user.name %> + +<%= t 'v.notifier.hereby_personalized', :period => @period, + :domain => GlobalConfig.site_host %> + +<%= t 'v.notifier.only_happened' %> + +<%= @periodical %> Added: trunk/app/views/users/_feed.html.erb =================================================================== --- trunk/app/views/users/_feed.html.erb (rev 0) +++ trunk/app/views/users/_feed.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,5 @@ +<% render :layout => 'application/panel_with_header', :locals => { + :title => t('v.users.subscribe'), :id => "user_rss"} do %> + <div class="user_feed"><p><%= t 'v.users.feed_label' %></p></div> <%= + log_log_feed_link(:channel => 'by_' + @user.unix_name) %> +<% end %> Deleted: trunk/app/views/users/_remarks_and_activity.html.erb =================================================================== --- trunk/app/views/users/_remarks_and_activity.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/users/_remarks_and_activity.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -1,12 +0,0 @@ -<div class="spacer"></div> -<div class="sub_column_one"> - <div id="remarks"> - <%= render :partial => "logis/remarks" %> - </div> -</div> - -<div class="sub_column_two"> - <div id="votes"> - <%= render :partial => "activity", :locals => {:user => @user} %> - </div> -</div> Copied: trunk/app/views/users/_side_panel.html.erb (from rev 1758, trunk/app/views/users/_remarks_and_activity.html.erb) =================================================================== --- trunk/app/views/users/_side_panel.html.erb (rev 0) +++ trunk/app/views/users/_side_panel.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,16 @@ +<div class="spacer"></div> +<div class="sub_column_one"> + <div id="remarks"> + <%= render :partial => "logis/remarks" %> + </div> +</div> + +<div class="sub_column_two"> + <div id="activity"> + <%= render :partial => "activity", :locals => {:user => @user} %> + </div> + + <div id="feed"> + <%= render :partial => "feed", :locals => {:user => @user} %> + </div> +</div> Modified: trunk/app/views/users/_unfoldable_editor.html.erb =================================================================== --- trunk/app/views/users/_unfoldable_editor.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/users/_unfoldable_editor.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -6,7 +6,7 @@ <div class="spacer"></div> <%= toggle_button_to_remote t('v.logis.load_editor'), { :update => "comment_area", :url => new_logi_comments_url(@logi, - :from_blog => 'true'), :method => :get}, + :from_blog => true), :method => :get}, :class => 'unfold_button', :disabled => local_assigns[:unfold_disabled], :tabindex => 3 %> <% javascript_tag do -%> Modified: trunk/app/views/users/edit.html.erb =================================================================== --- trunk/app/views/users/edit.html.erb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/app/views/users/edit.html.erb 2010-08-11 20:50:25 UTC (rev 1761) @@ -36,34 +36,55 @@ <% end %> --> <% render :layout => 'application/panel_with_header', :locals => { + :title => t('v.users.personal_rss'), :id => "personal_rss"} do %> + <p><%= t('v.users.your_rss_updated') %></p> + <div class="your_feed"><p><%= t 'v.users.link_label' %></p></div> <%= + log_log_feed_link(:channel => 'for_' + current_user.unix_name) %> + <% end %> + + <% render :layout => 'application/panel_with_header', :locals => { + :title => t('v.users.mail_alerts')} do %> + <% form_for(@user, :html => {:id => "alerts_form"}) do |form| %> + <%= hidden_field_tag "log_log_subscription[updating]", true %> + <div class="field"> + <%= check_box_tag "log_log_subscription[personalized_log]", 1, + (@subscriptions[:personalized_log] ? "true" : nil), :tabindex => 1 %> + <label><%= t 'v.users.daily_mailing_field' %></label><br /> + <p><%= t 'v.users.daily_personalized' %></p> + </div> + <div class="field"> + <%= check_box_tag "log_log_subscription[logis_log]", 1, + (@subscriptions[:logis_log] ? "true" : nil), :tabindex => 2 %> + <label><%= t 'v.users.weekly_mailing_field' %></label><br /> + <p><%= t 'v.users.weekly_logis' %></p> + </div> + <%= form.submit t('defaults.save'), :tabindex => 3 %> + <%= cancel_button %> + <% end %> + <% end %> + + <% render :layout => 'application/panel_with_header', :locals => { :title => t('v.users.settings')} do %> - <% form_for(@user, :html => {:id => "email_form"}) do |form| %> + <% form_for(@user, :html => {:id => "settings_form"}) do |form| %> <p><%= t('v.users.set_avatar') + ' ' + link_to(t('defaults.click_here'), "http://gravatar.com/signup") %></p> <p><%= t('v.users.leave_blank') %></p> <%= form.text_field :email, - :label => t('defaults.email_label'), :tabindex => 1 %> + :label => t('defaults.email_label'), :tabindex => 4 %> <%= form.password_field :password, - :label => t('defaults.password_label'), :tabindex => 2 %> + :label => t('defaults.password_label'), :tabindex => 5 %> <%= form.password_field :password_confirmation, - :label => t('defaults.password_confirmation_label'), :tabindex => 3 %> + :label => t('defaults.password_confirmation_label'), :tabindex => 6 %> <%= form.text_field :openid_identifier, - :label => t('defaults.openid_label'), :tabindex => 4 %> + :label => t('defaults.openid_label'), :tabindex => 7 %> <%= form.text_field :blog_title, - :label => t('defaults.blog_title_label'), :tabindex => 5 %> - <%= form.submit t('defaults.save'), :tabindex => 6 %> + :label => t('defaults.blog_title_label'), :tabindex => 8 %> + <%= form.submit t('defaults.save'), :tabindex => 9 %> <%= cancel_button %> <% end %> <% end %> <% render :layout => 'application/panel_with_header', :locals => { - :title => t('v.users.personal_rss'), :id => "personal_rss"} do %> - <p><%= t('v.users.your_rss_updated') %></p> - <div class="your_feed"><p><%= t 'v.users.link_label' %></p></div> <%= - log_log_feed_link(:channel => 'for_' + current_user.unix_name) %> - <% end %> - - <% render :layout => 'application/panel_with_header', :locals => { :title => t('v.users.api_key')} do %> <p><%= t('v.users.use_api') %></p> <p><%= t('v.users.api_key_is_label') %> <%= current_user.single_access_token %></p> Modified: trunk/config/locales/de.yml =================================================================== --- trunk/config/locales/de.yml 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/config/locales/de.yml 2010-08-11 20:50:25 UTC (rev 1761) @@ -456,7 +456,7 @@ notifier: "Benachrichtigung durch LogiLogi: <{{email}}>." password_reset: "Beschreibung, um das Kennwort zurückzusetzen." sir_madam: Frau/Herr - update_for: "Änderung für {{name}} auf ((domain))." + update_for: "Änderung für {{name}} auf {{domain}}." welcome: "Willkommen bei {{domain}} {{name}}." peer_group: home_body: "Dies ist das Logi der Gruppe {{name}}." Modified: trunk/config/locales/en.yml =================================================================== --- trunk/config/locales/en.yml 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/config/locales/en.yml 2010-08-11 20:50:25 UTC (rev 1761) @@ -292,7 +292,7 @@ all: All are_you_sure: "Are you sure?" back: Back - blog_title_label: "Logi blog title" + blog_title_label: "Logi blog title:" cancel: Cancel check_length_exeeded: "You've exceeded the maximum length by {{size}} characters!" check_length_max: "The maximum length is {{max}} characters. You already use {{size}}." @@ -449,6 +449,7 @@ notifier: "LogiLogi Notifier <{{email}}>." password_reset: "Password reset instructions." update_for: "Update for {{name}} on {{domain}}." + update_logis: "{{period}} new logis on {{domain}}." welcome: "Welcome to {{domain}} {{name}}." peer_group: home_body: "This is the homepage of the {{name}} peergroup." @@ -813,6 +814,7 @@ for_information_visit: "For more information on the {{group_name}} peergroup, visit its group page on:" happy_welcome: "We are happy to welcome you to {{domain}}." hereby_personalized: "Hereby your personalized {{period}} update for {{domain}}." + hereby_logis: "Hereby the {{period}} listing of new logis available on {{domain}}." invited_co_founder: "{{creator_name}} has invited you to become co-founder of the {{group_name}} peergroup on {{domain}}." invited_join: "{{creator_name}} has invited you to join the {{group_name}} peergroup on {{domain}}." like_accept: "If you would like to accept this invitation, then visit:" @@ -828,6 +830,7 @@ please_contact: "If you encounter any problem please contact us at {{admin_email}}." reset_request: "A request to reset your password for {{domain}} has been made." sir_madam: Sir/Madam + unsubscribe: "If you want to unsubscribe from this {{period}} mailing, you can do so at:" user_page_is: "Your user-page on LogiLogi is:" password_resets: be_emailed: "Instructions to reset your password will be emailed to you." @@ -918,6 +921,8 @@ change_account_settings: "You can change your account settings." create_edit_invite_peer_groups: "Create, edit and invite people to peergroups." created_logis_label: "Created logis:" + daily_personalized: "Mailing when your logis are rated, annotated or receive comments. Sent daily at most." + daily_mailing_field: "Personal alerts" default_peer_group: "Default peergroup" delete_account: "Delete your account" delete_account_anonymous: "If you delete your account, your logis will become anonymous." @@ -928,12 +933,15 @@ email_label: "Email:" enter_new: "Enter your full name, your email and a password." full_name_label: "Full name:" + subscribe: "Subscribe" + feed_label: "RSS feed:" index: "Users index" invite_to_peer_groups: "You can invite people to peergroups that you're a member of." leave_blank: "Leave blank/unchanged any field you don't want to change." link_label: "Link:" new_logi: "New logi" normal: Normal + mail_alerts: "Mail alerts" openid_here: "If you don't have an {{explain_open}}OpenID{{link_close}} yet, you can sign up for one {{signup_open}}here{{link_close}}" or_signup_openid: "Or signup with OpenID." password_confirmation_label: "Password confirmation:" @@ -948,6 +956,8 @@ signup_new: "Signup for a new account." signup_openid: "Signup with an OpenID." use_api: "You can use our API to remotely post and update logis." + weekly_logis: "Weekly listing of new logis" + weekly_mailing_field: "Weekly update" with_openid: "With OpenID" your_rss_updated: "Your RSS-feed is updated whenever something happens related to your logis (annotations, votes, updates, ...)." votes: Added: trunk/db/migrate/20100731183726_add_log_log_subscriptions.rb =================================================================== --- trunk/db/migrate/20100731183726_add_log_log_subscriptions.rb (rev 0) +++ trunk/db/migrate/20100731183726_add_log_log_subscriptions.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,30 @@ +class AddLogLogSubscriptions < ActiveRecord::Migration + def self.up + create_table :log_log_subscriptions do |t| + t.references :user, :null => false + t.string :channel, :null => false + t.string :period, :null => false + end + + if GlobalConfig.available? + AddLogLogSubscriptions.update + end + end + + def self.down + raise "No way back" + end + + def self.update + User.find_each do |user| + personal_lls = LogLogSubscription.new(:user => user, + :channel => "for_" + user.unix_name, + :period => "daily") + personal_lls.save + logis_lls = LogLogSubscription.new(:user => user, + :channel => "logis", + :period => "weekly") + logis_lls.save + end + end +end Added: trunk/db/migrate/20100810151704_redo_indices.rb =================================================================== --- trunk/db/migrate/20100810151704_redo_indices.rb (rev 0) +++ trunk/db/migrate/20100810151704_redo_indices.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,35 @@ +class RedoIndices < ActiveRecord::Migration + def self.up + remove_index(:votes, :name => "index_votes_on_user_id_and_rating_id") + add_index(:annotations, :logi_id) + add_index(:commentings, [:from_logi_id, :to_logi_id]) + add_index(:commentings, :from_logi_id) + add_index(:commentings, :to_logi_id) + add_index(:external_links, :logi_id) + add_index(:invitations, :user_id) + add_index(:link_matches, :logi_id) + add_index(:links, [:from_logi_id, :to_logi_id]) + add_index(:links, :from_logi_id) + add_index(:links, :to_logi_id) + add_index(:log_log_subscriptions, :user_id) + add_index(:log_log_subscriptions, :period) + add_index(:logi_versions, :logi_id) + add_index(:logis, :tags_string) + add_index(:logis, [:creator_user_id, :created_at]) + add_index(:peer_group_memberships, :user_id) + add_index(:prefs_profiles, :user_id) + add_index(:ratings, :logi_id) + add_index(:remarks, :logi_id) + add_index(:steps, :path_id) + add_index(:steps, :logi_id) + add_index(:used_tags, :string) + add_index(:user_group_memberships, :user_id) + add_index(:users, :unix_name) + add_index(:users, :single_access_token) + add_index(:votes, [:user_id, :rating_id], :unique => false) # without unique + add_index(:votes, :rating_id) + end + + def self.down + end +end Added: trunk/db/migrate/20100810165341_restore_public_peergroup_memberships.rb =================================================================== --- trunk/db/migrate/20100810165341_restore_public_peergroup_memberships.rb (rev 0) +++ trunk/db/migrate/20100810165341_restore_public_peergroup_memberships.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,20 @@ +class RestorePublicPeergroupMemberships < ActiveRecord::Migration + def self.up + if GlobalConfig.available? + RestorePublicPeergroupMemberships.update + end + end + + def self.down + end + + def self.update + User.find_each do |u| + m = PeerGroup.public.membership_for(u) + if m.new_record? + m.power = PeerGroupMembership.member_power + m.save + end + end + end +end Modified: trunk/db/schema.rb =================================================================== --- trunk/db/schema.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/db/schema.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20100626115750) do +ActiveRecord::Schema.define(:version => 20100810165341) do create_table "acts_as_xapian_jobs", :force => true do |t| t.string "model", :null => false @@ -27,12 +27,18 @@ t.datetime "created_at", :null => false end + add_index "annotations", ["logi_id"], :name => "index_annotations_on_logi_id" + create_table "commentings", :force => true do |t| t.integer "user_id", :null => false t.integer "from_logi_id", :null => false t.integer "to_logi_id", :null => false end + add_index "commentings", ["from_logi_id", "to_logi_id"], :name => "index_commentings_on_from_logi_id_and_to_logi_id" + add_index "commentings", ["from_logi_id"], :name => "index_commentings_on_from_logi_id" + add_index "commentings", ["to_logi_id"], :name => "index_commentings_on_to_logi_id" + create_table "external_links", :force => true do |t| t.integer "logi_id", :null => false t.integer "user_id", :null => false @@ -42,6 +48,8 @@ t.datetime "created_at", :null => false end + add_index "external_links", ["logi_id"], :name => "index_external_links_on_logi_id" + create_table "global_configs", :force => true do |t| t.integer "progress", :default => 0, :null => false t.string "domain", :null => false @@ -94,12 +102,15 @@ t.datetime "created_at", :null => false end + add_index "invitations", ["user_id"], :name => "index_invitations_on_user_id" + create_table "link_matches", :force => true do |t| t.integer "link_id", :null => false t.integer "logi_id", :null => false end add_index "link_matches", ["link_id", "logi_id"], :name => "index_link_matches_on_link_id_and_logi_id", :unique => true + add_index "link_matches", ["logi_id"], :name => "index_link_matches_on_logi_id" create_table "links", :force => true do |t| t.integer "user_id", :null => false @@ -114,6 +125,19 @@ t.boolean "re_resolve", :default => false, :null => false end + add_index "links", ["from_logi_id", "to_logi_id"], :name => "index_links_on_from_logi_id_and_to_logi_id" + add_index "links", ["from_logi_id"], :name => "index_links_on_from_logi_id" + add_index "links", ["to_logi_id"], :name => "index_links_on_to_logi_id" + + create_table "log_log_subscriptions", :force => true do |t| + t.integer "user_id", :null => false + t.string "channel", :null => false + t.string "period", :null => false + end + + add_index "log_log_subscriptions", ["period"], :name => "index_log_log_subscriptions_on_period" + add_index "log_log_subscriptions", ["user_id"], :name => "index_log_log_subscriptions_on_user_id" + create_table "logi_versions", :force => true do |t| t.integer "logi_id", :null => false t.integer "editor_user_id", :null => false @@ -123,6 +147,7 @@ end add_index "logi_versions", ["logi_id", "nr"], :name => "index_logi_versions_on_logi_id_and_nr", :unique => true + add_index "logi_versions", ["logi_id"], :name => "index_logi_versions_on_logi_id" create_table "logis", :force => true do |t| t.string "perma_id", :null => false @@ -138,7 +163,9 @@ t.integer "kind", :null => false end + add_index "logis", ["creator_user_id", "created_at"], :name => "index_logis_on_creator_user_id_and_created_at" add_index "logis", ["perma_id"], :name => "index_logis_on_perma_id", :unique => true + add_index "logis", ["tags_string"], :name => "index_logis_on_tags_string" create_table "open_id_authentication_associations", :force => true do |t| t.integer "issued" @@ -171,6 +198,7 @@ end add_index "peer_group_memberships", ["user_id", "peer_group_id"], :name => "index_peer_group_memberships_on_user_id_and_peer_group_id", :unique => true + add_index "peer_group_memberships", ["user_id"], :name => "index_peer_group_memberships_on_user_id" create_table "peer_groups", :force => true do |t| t.string "name", :limit => 80, :null => false @@ -190,6 +218,7 @@ end add_index "prefs_profiles", ["user_id", "name"], :name => "index_prefs_profiles_on_user_id_and_name", :unique => true + add_index "prefs_profiles", ["user_id"], :name => "index_prefs_profiles_on_user_id" create_table "ratings", :force => true do |t| t.integer "peer_group_id", :null => false @@ -200,6 +229,7 @@ end add_index "ratings", ["logi_id", "peer_group_id"], :name => "index_ratings_on_logi_id_and_peer_group_id", :unique => true + add_index "ratings", ["logi_id"], :name => "index_ratings_on_logi_id" create_table "remarks", :force => true do |t| t.integer "logi_id", :null => false @@ -208,6 +238,8 @@ t.datetime "created_at", :null => false end + add_index "remarks", ["logi_id"], :name => "index_remarks_on_logi_id" + create_table "sessions", :force => true do |t| t.string "session_id", :null => false t.text "data" @@ -225,11 +257,16 @@ t.integer "position", :null => false end + add_index "steps", ["logi_id"], :name => "index_steps_on_logi_id" + add_index "steps", ["path_id"], :name => "index_steps_on_path_id" + create_table "used_tags", :force => true do |t| t.string "string", :limit => 80, :null => false t.integer "use_count", :default => 0, :null => false end + add_index "used_tags", ["string"], :name => "index_used_tags_on_string" + create_table "user_group_memberships", :force => true do |t| t.integer "user_group_id", :null => false t.integer "user_id", :null => false @@ -237,6 +274,7 @@ end add_index "user_group_memberships", ["user_id", "user_group_id"], :name => "index_user_group_memberships_on_user_id_and_user_group_id", :unique => true + add_index "user_group_memberships", ["user_id"], :name => "index_user_group_memberships_on_user_id" create_table "user_groups", :force => true do |t| t.string "name", :limit => 80, :null => false @@ -271,6 +309,8 @@ add_index "users", ["email"], :name => "index_users_on_email", :unique => true add_index "users", ["openid_identifier"], :name => "index_users_on_openid_identifier" add_index "users", ["perishable_token"], :name => "index_users_on_perishable_token" + add_index "users", ["single_access_token"], :name => "index_users_on_single_access_token" + add_index "users", ["unix_name"], :name => "index_users_on_unix_name" create_table "votes", :force => true do |t| t.integer "rating_id", :null => false @@ -282,6 +322,7 @@ t.datetime "created_at", :null => false end - add_index "votes", ["user_id", "rating_id"], :name => "index_votes_on_user_id_and_rating_id", :unique => true + add_index "votes", ["rating_id"], :name => "index_votes_on_rating_id" + add_index "votes", ["user_id", "rating_id"], :name => "index_votes_on_user_id_and_rating_id" end Added: trunk/lib/tasks/log.rake =================================================================== --- trunk/lib/tasks/log.rake (rev 0) +++ trunk/lib/tasks/log.rake 2010-08-11 20:50:25 UTC (rev 1761) @@ -0,0 +1,13 @@ +namespace :log do + desc "Rotates the logs" + task :rotate do + # create, migrate, load & fill the development-db & index + ["log/production.log", "log/access.log", "log/logilogi.rb.log"].each do |file| + if File.exists?(file) + # Will lose some log-data, but simple and effective + sh "cp #{file} #{file}.#{Time.now.strftime("%y%m%d%H%M%S")}" + sh "cat /dev/null > #{file}" + end + end + end +end Modified: trunk/lib/tasks/server.rake =================================================================== --- trunk/lib/tasks/server.rake 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/lib/tasks/server.rake 2010-08-11 20:50:25 UTC (rev 1761) @@ -87,12 +87,20 @@ end namespace :maintenance do - desc "Runs daily maintenance tasks, like backups, cleaning cache and" + - " sessions. Pass in options for sub-tasks" - task :daily do - Rake::Task["server:db:backup"].invoke - Rake::Task["pub:cache:clear"].invoke - Rake::Task["db:sessions:clean"].invoke + namespace :daily do + desc "Runs daily maintenance tasks as the normal user: backups and" + + " cleaning sessions" + task :user do + Rake::Task["server:db:backup"].invoke + Rake::Task["db:sessions:clean"].invoke + end + + desc "Runs daily maintenance tasks as the www user: cleaning cache" + + " and log rotation" + task :www do + Rake::Task["pub:cache:clear"].invoke + Rake::Task["log:rotate"].invoke + end end end Modified: trunk/public/stylesheets/logilogi.css =================================================================== --- trunk/public/stylesheets/logilogi.css 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/public/stylesheets/logilogi.css 2010-08-11 20:50:25 UTC (rev 1761) @@ -786,6 +786,11 @@ float: left; width: 33.7em; } +input#log_log_subscription_personalized_log, +input#log_log_subscription_logis_log { + float: left; + margin: 0.3em 0.5em 0 0; +} #navigation_bar input.tag_list { font-size: 1.2em; margin-right: 0.2em; @@ -1388,10 +1393,12 @@ float: right; padding-top: -2em; } -#personal_rss .your_feed { +#personal_rss .your_feed, +#user_rss .user_feed { float: left; } -#personal_rss .rss_link { +#personal_rss .rss_link, +#user_rss .rss_link { float: left; padding-left: 0.5em; padding-top: 0.2em; Modified: trunk/test/fixtures/peer_group_memberships.yml =================================================================== --- trunk/test/fixtures/peer_group_memberships.yml 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/fixtures/peer_group_memberships.yml 2010-08-11 20:50:25 UTC (rev 1761) @@ -10,8 +10,22 @@ user: john_johnson role: <%= Const::PeerGroupMembership::MEMBER %> power: 13 + percentile: 83.3333333333333 + updated_at: <%= 10.days.ago.to_s(:db) %> +johnny_runner_public_peer_group: + peer_group_id: <%= PeerGroup.public.id %> + user: johnny_runner + role: <%= Const::PeerGroupMembership::MEMBER %> + power: 1 percentile: 50 - updated_at: <%= 10.days.ago.to_s(:db) %> + updated_at: <%= 1.hour.ago.to_s(:db) %> +eddy_crawler_public_peer_group: + peer_group_id: <%= PeerGroup.public.id %> + user: eddy_crawler + role: <%= Const::PeerGroupMembership::MEMBER %> + power: 1 + percentile: 33.3333333333333 + updated_at: <%= 3.hours.ago.to_s(:db) %> john_johnson_biologers: peer_group: biologers user: john_johnson Modified: trunk/test/fixtures/ratings.yml =================================================================== --- trunk/test/fixtures/ratings.yml 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/fixtures/ratings.yml 2010-08-11 20:50:25 UTC (rev 1761) @@ -52,7 +52,7 @@ score: 4.0 weight: 1.0 updated_at: <%= 2.days.ago.to_s(:db) %> -manta_public_peer_group: +logi_logi_manta_public_peer_group: peer_group_id: <%= PeerGroup.public.id %> logi: logi_logi_manta score: 2.0 Modified: trunk/test/fixtures/votes.yml =================================================================== --- trunk/test/fixtures/votes.yml 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/fixtures/votes.yml 2010-08-11 20:50:25 UTC (rev 1761) @@ -37,4 +37,12 @@ score: 2.0 ip_address: '127.0.0.1' kind: <%= Const::Vote::USER %> - created_at: <%= 6.days.ago.to_s(:db) %> + created_at: <%= 20.days.ago.to_s(:db) %> +anonymous_from_public_peer_group_on_logi_logi_manta: + rating: logi_logi_manta_public_peer_group + user_id: <%= User.anonymous.id %> + weight: 0.1 + score: 2.0 + ip_address: '127.0.0.1' + kind: <%= Const::Vote::USER %> + created_at: <%= 2.days.ago.to_s(:db) %> Modified: trunk/test/functional/comments_controller_test.rb =================================================================== --- trunk/test/functional/comments_controller_test.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/functional/comments_controller_test.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -45,7 +45,7 @@ nr_of_c_l = l.commenting_logis.size post :create, {:ll_link_string => l.link.to_s, - :logi => {:title => 'K', + :from_blog => "false", :logi => {:title => 'K', :body => '<p>akatu</p>'}}.merge(self.thorny_ok_hash) assert_response :success @@ -57,4 +57,23 @@ assert c_l assert_equal [Tag.untagged], c_l.tags end + + def test_create_new_logi_from_blog + l = logis(:logi_logi) + nr_of_c_l = l.commenting_logis.size + + post :create, {:ll_link_string => l.link.to_s, + :from_blog => "true", :logi => {:title => 'K', + :body => '<p>akiiatu</p>'}}.merge(self.thorny_ok_hash) + + assert_response :success + l.reload + assert_equal l.commenting_logis.size, nr_of_c_l # no comment + c_ls = Logi.find_all_by_text_stack('<h1>K</h1> <p>akiiatu</p>') + assert_equal 1, c_ls.size + c_l = c_ls.first + assert c_l + assert_equal [Tag.from_s( + User.anonymous.home_page_tag_string), Tag.blog], c_l.tags + end end Modified: trunk/test/functional/users_controller_test.rb =================================================================== --- trunk/test/functional/users_controller_test.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/functional/users_controller_test.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -95,6 +95,22 @@ # assert_equal 'du...@pe...', u.email # assert_equal 'http://your.openid.net/', u.openid_identifier + # log log subscriptions, enable + post :update, :id => u.id, :log_log_subscription => { + :personalized_log => 1, :logis_log => 1, :updating => true} + assert_response :redirect + u.reload + assert LogLogSubscription.find_by_user_id_and_channel(u.id, "logis") + assert LogLogSubscription.find_by_user_id_and_channel(u.id, "for_" + u.unix_name) + + # disable personalized_log + post :update, :id => u.id, :log_log_subscription => { + :logis_log => 1, :updating => true} + assert_response :redirect + u.reload + assert LogLogSubscription.find_by_user_id_and_channel(u.id, "logis") + assert !LogLogSubscription.find_by_user_id_and_channel(u.id, "for_" + u.unix_name) + # prefs post :update, :id => u.id, :user => nil, :prefs_profile => {:default_peer_group_id => p_g.id} assert_response :redirect Modified: trunk/test/unit/notifier_test.rb =================================================================== --- trunk/test/unit/notifier_test.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/unit/notifier_test.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -24,10 +24,12 @@ @expected = TMail::Mail.new end - def test_for_log + def test_log_log u = users(:eduard_edison) - assert Notifier.create_for_log(u, "for_eduard_edison", "~ Moo ~\n Cows\n Boy!") + assert Notifier.create_personalized_log(u, "daily", "~ Moo ~\n Cows\n Boy!") + assert Notifier.create_logis_log(u, "weekly", "~ Moo ~\n Cows\n Boy!") + assert Notifier.create_admin_log("weekly", 20, "~ Moo ~\n Cows\n Boy!") end def test_welcome Modified: trunk/test/unit/peer_group_membership_test.rb =================================================================== --- trunk/test/unit/peer_group_membership_test.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/unit/peer_group_membership_test.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -38,16 +38,16 @@ eduards_m = peer_group_memberships(:eduard_edison_public_peer_group) assert_equal 100, eduards_m.percentile.round johns_m = peer_group_memberships(:john_johnson_public_peer_group) - assert_equal 75, johns_m.percentile.round + assert_equal 83, johns_m.percentile.round end def test_drop_the_powerless - eduards_m = peer_group_memberships(:eduard_edison_public_peer_group) - eduards_m.power = PeerGroupMembership.member_power - eduards_m.save! + johns_m = peer_group_memberships(:john_johnson_biologers) + johns_m.power = PeerGroupMembership.member_power + johns_m.save! PeerGroupMembership.drop_the_powerless - assert_equal nil, PeerGroupMembership.find_by_id(eduards_m.id) - assert peer_group_memberships(:john_johnson_public_peer_group) + assert_equal nil, PeerGroupMembership.find_by_id(johns_m.id) + assert peer_group_memberships(:johnny_runner_biologers) end ### Methods Modified: trunk/test/unit/rating_test.rb =================================================================== --- trunk/test/unit/rating_test.rb 2010-08-07 09:51:32 UTC (rev 1760) +++ trunk/test/unit/rating_test.rb 2010-08-11 20:50:25 UTC (rev 1761) @@ -41,11 +41,18 @@ end def test_vote_for - # Get two existing votes + # Get an existing vote r = ratings(:peter_abelard_public_peer_group) vote = r.vote_for(users(:john_johnson), '1.1.1.1') assert !vote.new_record? + + # Get a new anonymous vote vote = r.vote_for(User.anonymous, '127.0.0.1') + assert vote.new_record? # more than a week old + + # Get an old anonymous vote + r = ratings(:logi_logi_manta_public_peer_group) + vote = r.vote_for(User.anonymous, '127.0.0.1') assert !vote.new_record? # Get a new, and an old vote @@ -78,10 +85,8 @@ john = users(:john_johnson) johns_power = PeerGroup.public.membership_for(john).power - extra_attributes = {:logi => logis(:michel_foucault), - :peer_group => PeerGroup.public} - - r = Rating.new({:score => 5, :weight => 30}.merge!(extra_attributes)) + r = Rating.new({:score => 5, :weight => 30, + :logi => logis(:michel_foucault), :peer_group => PeerGroup.public}) old_power_income = r.power_income vote = r.vote_for(u, nil) vote.score = 3 @@ -107,13 +112,30 @@ end def test_vote_anonymous + # not voted before i = logis(:nederland) p_g = PeerGroup.public r = i.rating_for(p_g) + assert r.new_record? vote = r.vote_for(User.anonymous, '127.0.0.1') vote.score = 5 r.vote(vote) + r.reload assert_equal 5, r.score + + # voted more than a week ago + i = logis(:peter_abelard) + p_g = PeerGroup.public + r = i.rating_for(p_g) + assert !r.new_record? + r_v_c = r.votes.size + vote = r.vote_for(User.anonymous, '127.0.0.1') + assert vote.new_record? + vote.score = 5 + r.vote(vote) + r.reload + assert_equal r_v_c + 1, r.votes.size + assert_equal 4.1, r.weight end def test_vote_errors @@ -127,7 +149,9 @@ # voting twice vote.score = 5 - assert r.vote(vote) + r.vote(vote) + vote.reload + assert !vote.new_record? assert_raise(RuntimeError) { r.vote(vote) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wy...@us...> - 2010-08-07 09:51:43
|
Revision: 1760 http://logilogi.svn.sourceforge.net/logilogi/?rev=1760&view=rev Author: wybow Date: 2010-08-07 09:51:32 +0000 (Sat, 07 Aug 2010) Log Message: ----------- Cleaned up poster Added Paths: ----------- docs/posters/DH2010/ docs/posters/DH2010/baposter.cls docs/posters/DH2010/header.tex docs/posters/DH2010/images/ docs/posters/DH2010/poster.bib docs/posters/DH2010/poster.pdf docs/posters/DH2010/poster.tex Removed Paths: ------------- docs/posters/DH2010/images/logo.pdf docs/posters/DH2010/images/msrlogo.pdf docs/posters/baposter.cls docs/posters/header.tex docs/posters/images/ docs/posters/poster.bib docs/posters/poster.pdf docs/posters/poster.tex Copied: docs/posters/DH2010/baposter.cls (from rev 1756, docs/posters/baposter.cls) =================================================================== --- docs/posters/DH2010/baposter.cls (rev 0) +++ docs/posters/DH2010/baposter.cls 2010-08-07 09:51:32 UTC (rev 1760) @@ -0,0 +1,837 @@ +%% +%% This is file `baposter.cls' +%% +%% An relatively comfortable latex class to produce posters with a grid based +%% layout. It comes with a number of combinable styles and is (maybe only for +%% the writer) easy to extend, as all the graphics is based on pgf. +%% +%% It is meant to be used with pdftex, but might also work with pslatex if you +%% are not interested in things like transparency. +%% +%% Copyright (C) 2007 Brian Amberg +%% +%% 10. June 2010 Added option to set the number of columns +%% - added a class option to set the number of columns +%% - columns=5: sets the number of columns to 5, possible values are 1..6, default is 3 in portrait and 4 in landscape format +%% 29. April 2009 Incorporated Patches by Arne Henningsen +%% - added some class options +%% - a4shrink: shrink the paper to A4 size (for printing drafts or handouts) +%% - movebody=Xpt: move the text/poster body Xpt to the right +%% (or to the left if Xpt is negative), +%% e.g. for manually centering the poster on the page +%% - showframe: use the "showframe" option of the "geometry" package +%% - a0paper (default): set paper size to A0 +%% - archE: set paper size to Arch E +%% - setting "background" can be "none" now (otherwise the "showframe" +%% option has no effect) +%% - the page number has been removed (it was mostly not visible before) +%% - the "margin=" option works now +%% 04. December 2008 +%% - Mainly an update to the landscape example +%% 14. November 2008 +%% - Actually center the title when eyecatcher is used. +%% 04. November 2008 +%% - Fixed bug with eyecatcher not working. +%% 26. June 2008 +%% - Fixed bug with plain background mode. +%% 14. June 2008 +%% - Support for portrait/landscape switching. +%% - Some smaller bugfixes. +%% 01. June 2007 +%% - First version released. +%% +%% Use this class with pdflatex +%% +%% I have confirmed that this package works with +%% - texlive 2007 and +%% - miktex 2.7 +%% +%% It does not seem to work with +%% - miktex 2.2 +%% - some old versions of tetex +%% +%% Licence: GPL +\ProvidesClass{baposter}[2010/06/10 v1.04 baposter class] +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\LoadClass{article} +\typeout{baposter: Brian Amberg, 2007, 2008, 2009 | http://www.brian-amberg.de/uni/poster/} + +%% Define lengths only once on inclusion, such that we can make multiple posters +\newlength{\baposter@basepaperwidth} +\newlength{\baposter@basepaperheight} +\newlength{\baposter@basemargin} +\newlength{\headerheight}% +\newlength{\colwidth}% +\newlength{\colheight}% +\newlength{\baposter@@colspacing}% +\newlength{\boxstartx}% +\newlength{\boxstarty}% +\newlength{\boxwidth}% +\newlength{\boxheight}% +\newlength{\baposter@titleimage@left@width}% +\newlength{\baposter@titleimage@right@width}% +\newlength{\baposter@titleimage@textwidth}% +\newbox\baposter@content% +\newbox\baposter@titleimage@left% +\newbox\baposter@titleimage@title% +\newbox\baposter@titleimage@right% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Packages +%------------------------------------------------------------------------------- +% The only ``weird'' dependency of this package is pgf. All the rest should be +% installed on any decent system. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{Use Packages} +\usepackage{xkeyval} +\usepackage{calc} +\usepackage[cmyk]{xcolor} +\usepackage{tikz} +\usepackage{pgf} +\usepackage{ifthen} +\usepackage[T1]{fontenc} + +\usetikzlibrary{snakes} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TODO: Add package options +\typeout{Setup} + +% Choose a smaller value for larger fonts +\newcommand{\baposter@fontscale}{0.292} +% Landscape versus portrait +\newcommand{\baposter@format}{} +% default paper size +\newcommand{\baposter@papersize}{a0paper} +% use the ``showframe'' option of the ``geometry'' package? +\newcommand{\baposter@showframe}{false} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Zoom +%------------------------------------------------------------------------------- +% We scale the page from fontscale * a0 up to a0 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{Zoom} + +\DeclareOption{landscape}{\renewcommand{\baposter@format}{landscape}} +\DeclareOption{portrait}{\renewcommand{\baposter@format}{}} +\DeclareOption{archE}{\renewcommand{\baposter@papersize}{archE}} +\DeclareOption{a0paper}{\renewcommand{\baposter@papersize}{a0paper}} +\DeclareOption{a4shrink}{\newcommand{\baposter@finalpapersize}{a4paper}} +\DeclareOption{showframe}{\renewcommand{\baposter@showframe}{true}} +\ProcessOptions + +\ifthenelse{\equal{\baposter@papersize}{archE}}{ + \setlength{\baposter@basepaperwidth} {91.44cm} + \setlength{\baposter@basepaperheight}{121.92cm} + \setlength{\baposter@basemargin}{1.5cm} +}{ + \setlength{\baposter@basepaperwidth} {83.96cm} + \setlength{\baposter@basepaperheight}{118.82cm} + \setlength{\baposter@basemargin}{1.5cm} +} +\ifthenelse{\equal{\baposter@format}{landscape}}{ + \setlength{\baposter@basepaperwidth} {118.82cm} + \setlength{\baposter@basepaperheight}{83.96cm} + \setlength{\baposter@basemargin}{1.5cm} +}{ + \setlength{\baposter@basepaperwidth} {83.96cm} + \setlength{\baposter@basepaperheight}{118.82cm} + \setlength{\baposter@basemargin}{1.5cm} +} + +\DeclareOptionX{fontscale}[0.292]{\renewcommand{\baposter@fontscale}{#1}} +\DeclareOptionX{margin} [1.5cm] {\setlength{\baposter@basemargin}{#1}} +% move text/poster body to the right (or to the left if negative) +\newlength{\baposter@movebody} +\setlength{\baposter@movebody}{0cm} +\DeclareOptionX{movebody}[0cm]{\setlength{\baposter@movebody}{#1}} +\ProcessOptionsX + +\setlength{\baposter@basepaperwidth} {\baposter@fontscale\baposter@basepaperwidth } +\setlength{\baposter@basepaperheight}{\baposter@fontscale\baposter@basepaperheight} +\setlength{\baposter@basemargin} {\baposter@fontscale\baposter@basemargin} +\newlength{\baposter@basemarginright} +\setlength{\baposter@basemarginright}{\baposter@basemargin} +\addtolength{\baposter@basemarginright}{-\baposter@fontscale\baposter@movebody} +\newlength{\baposter@basemarginleft} +\setlength{\baposter@basemarginleft}{\baposter@basemargin} +\addtolength{\baposter@basemarginleft}{\baposter@fontscale\baposter@movebody} + +\usepackage[ + paperwidth=\baposter@basepaperwidth, + paperheight=\baposter@basepaperheight, + tmargin=\baposter@basemargin, + bmargin=\baposter@basemargin, + lmargin=\baposter@basemarginleft, + rmargin=\baposter@basemarginright, + showframe=\baposter@showframe]{geometry} + +\ifthenelse{ \isundefined\baposter@finalpapersize }{ + \newcommand{\baposter@finalpapersize}{\baposter@papersize}}{} + +\usepackage{pgfpages} +\define@key{pgfpagesuselayoutoption}{archE}[]% + {\def\pgfpageoptionheight{121.92cm} \def\pgfpageoptionwidth{91.44cm}} +\pgfpagesuselayout{resize to}[\baposter@finalpapersize,\baposter@format] + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% New Version, with specified size +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% TODO: Use choose-keys +\typeout{Keys} +\define@cmdkey[ba]{poster}[baposter@]{grid} [no] {} +\define@cmdkey[ba]{poster}[baposter@]{eyecatcher} [yes] {} +\define@cmdkey[ba]{poster}[baposter@]{columns} [{}] {} +\define@cmdkey[ba]{poster}[baposter@]{textborder} [faded] {} +\define@cmdkey[ba]{poster}[baposter@]{headerborder} [none] {} +\define@cmdkey[ba]{poster}[baposter@]{headershape} [roundedright]{} +\define@cmdkey[ba]{poster}[baposter@]{colspacing} [1em] {} +\define@cmdkey[ba]{poster}[baposter@]{headerheight} [0.1\textheight]{} +\define@cmdkey[ba]{poster}[baposter@]{headershade} [shade-lr] {} +\define@cmdkey[ba]{poster}[baposter@]{boxshade} [none] {} + +\definecolor{baposter@silver}{cmyk}{0,0,0,0.7} +\define@cmdkey[ba]{poster}[baposter@]{color} [orange] {} +\define@cmdkey[ba]{poster}[baposter@]{colortwo} [white] {} +\define@cmdkey[ba]{poster}[baposter@]{bgColorOne} [baposter@silver]{} +\define@cmdkey[ba]{poster}[baposter@]{bgColorTwo} [green] {} +\define@cmdkey[ba]{poster}[baposter@]{borderColor} [yellow] {} +\define@cmdkey[ba]{poster}[baposter@]{headerColorOne} [red] {} +\define@cmdkey[ba]{poster}[baposter@]{headerColorTwo} [brown] {} +\define@cmdkey[ba]{poster}[baposter@]{headerFontColor} [black] {} +\define@cmdkey[ba]{poster}[baposter@]{boxColorOne} [magenta] {} +\define@cmdkey[ba]{poster}[baposter@]{boxColorTwo} [cyan] {} + +\define@cmdkey[ba]{poster}[baposter@]{background} [plain] {} +\define@cmdkey[ba]{poster}[baposter@]{headerfont} [\sc\Large] {} +\define@cmdkey[ba]{poster}[baposter@]{textfont} [{}] {} + +\define@cmdkey[ba]{poster}[baposter@]{linewidth} [2pt] {} + +\define@cmdkey[ba]{posterbox}[baposter@box@]{below} [notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{above} [notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{aligned}[notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{bottomaligned}[notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{column} [0] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{row} [0] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{span} [1] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{height} [auto] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{name} [noname]{} + +\newcommand{\baposter@backgroundCmd}{\error{No background command defined. Use \background{...} to define background}} +\newcommand{\background}[1]{\renewcommand{\baposter@backgroundCmd}{#1}} + +\presetkeys[ba]{poster}{ + % Debug grid + grid=no, + % Is there an eyecatcher image + eyecatcher=yes, + columns={}, + % Colours + bgColorOne=baposter@silver, + bgColorTwo=green, + borderColor=yellow, + headerColorOne=red, + headerColorTwo=brown, + headerFontColor=black, + boxColorOne=magenta, + boxColorTwo=cyan, + % Style + headerborder=none, + colspacing=1em, + headerheight=0.1\textheight, + background=shade-lr, + headershade=shade-lr, + boxshade=none, + headerfont=\sc\Large,% or headerfont=\color{white}\textsf\textbf + textfont={}, + linewidth=2pt +}{} +\presetkeys[ba]{posterbox}{ + % Position + column=0,row=0,span=1, + below=notset,above=notset, + bottomaligned=notset, + aligned=notset, + height=auto, + % Name + name=noname, +}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% The main poster environment +%%% \begin{baposter}{settings}{Eye Catcher}{Title}{Author}{University Logo} +%%%----------------------------------------------------------------------------- +%%% The settings are +%%% - grid=yes,[no]: Show grid to help with alignment +%%% - colspacing=0.7em: Column spacing +%%% - columns=4: number of columns (default 4 in landscape and 3 in portrait format) (maximum number is 6) +%%% - color=[orange]: xcolor color definition used as the main color of the poster +%%% - colortwo=[white]: The other color for gradient based layouts +%%% - textborder=none,bars,coils,triangles,rectangle,rounded,small-rounded,roundedleft,roundedright,[faded] +%%% The style of the box around the text area +%%% - headerborder=none,closed,open +%%% No extra border around box header, full border around box header or border that is open below. +%%% - headershape=rectangle,rounded,roundedleft,roundedright +%%% Shape of the box-header region +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newenvironment{poster}[5]{% + \typeout{Poster Starts}% + \setkeys[ba]{poster}{#1}% +% + % Parse Keys% + \colorlet{bgColorOne}{\baposter@bgColorOne} + \colorlet{bgColorTwo}{\baposter@bgColorTwo} + \colorlet{borderColor}{\baposter@borderColor} + \colorlet{headerColorOne}{\baposter@headerColorOne} + \colorlet{headerColorTwo}{\baposter@headerColorTwo} + \colorlet{headerFontColor}{\baposter@headerFontColor} + \colorlet{boxColorOne}{\baposter@boxColorOne} + \colorlet{boxColorTwo}{\baposter@boxColorTwo} +% + %% Boxes% + \setlength{\headerheight}{\baposter@headerheight}% + \setlength{\colheight}{\textheight-\baposter@headerheight}% +% + \typeout{Format}% + \ifthenelse{\equal{\baposter@format}{landscape}}{% + \ifthenelse{\equal{\baposter@columns}{}}{\renewcommand{\baposter@columns}{4}}{} + }{% + \ifthenelse{\equal{\baposter@columns}{}}{\renewcommand{\baposter@columns}{3}}{} + }% +% + \typeout{Columns: \baposter@columns}% + \setlength{\baposter@@colspacing}{\baposter@colspacing}% + \typeout{1}% + \setlength{\colwidth}{\textwidth}% + \typeout{2}% + \addtolength{\colwidth}{-\baposter@columns\baposter@@colspacing}\addtolength{\colwidth}{\baposter@@colspacing}% + \typeout{3}% + \ifthenelse{\equal{\baposter@columns}{1}}{ + \setlength{\colwidth}{\colwidth}% + }{ + \ifthenelse{\equal{\baposter@columns}{2}}{ + \setlength{\colwidth}{0.5\colwidth}% + }{ + \ifthenelse{\equal{\baposter@columns}{3}}{ + \setlength{\colwidth}{0.3333333333333\colwidth}% + }{ + \ifthenelse{\equal{\baposter@columns}{4}}{ + \setlength{\colwidth}{0.25\colwidth}% + }{ + \ifthenelse{\equal{\baposter@columns}{5}}{ + \setlength{\colwidth}{0.2\colwidth}% + }{ + \ifthenelse{\equal{\baposter@columns}{6}}{ + \setlength{\colwidth}{0.16666666666\colwidth}% + }{ + \error{You do not want so many columns} + } + } + } + } + } + } +% + % Background image% + \newcommand{\baposterShadedBG}{% + \ifthenelse{\equal{\baposter@background}{shade-lr}}{% + \begin{tikzpicture}[remember picture,overlay]% + \shade [shading=axis,right color=bgColorOne,left color=bgColorTwo] (current page.north west) rectangle(current page.south east); + \typeout{BAPOSTER: Using shade left right background.} + \end{tikzpicture}% + }{% + \ifthenelse{\equal{\baposter@background}{shade-tb}}{% + \typeout{BAPOSTER: Using shade top to bottom background.} + \begin{tikzpicture}[remember picture,overlay]% + \shade [shading=axis,top color=bgColorOne,bottom color=bgColorTwo] (current page.north west) rectangle(current page.south east); + \end{tikzpicture}% + }{% + \ifthenelse{\equal{\baposter@background}{plain}}{% + \typeout{BAPOSTER: Using plain background.} + \begin{tikzpicture}[remember picture,overlay]% + \fill [fill=bgColorOne] (current page.north west) rectangle(current page.south east); + \end{tikzpicture}% + }{% + \ifthenelse{\equal{\baposter@background}{user}}{% + \typeout{BAPOSTER: Using user background.} + \baposter@backgroundCmd% + }{% + \ifthenelse{\equal{\baposter@background}{none}}{% + \typeout{BAPOSTER: Using no background.} + }{% + \error{Unknown background, use shade-lr, shade-tb, plain, none, or user. If user is used, you also have to define \background{...} }% + }% + }% + }% + }% + }% + }% +% + \newcommand{\baposter@reference}{north west}% +% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % A box with a header and some content. The basic unit of the poster% + %---------------------------------------------------------------------------% + % Each box has a name and can be placed absolutely or relatively.% + % The only inconvenience is that you can only specify a relative position % + % towards an already declared box. So if you have a box attached to the % + % bottom, one to the top and a third one which should be inbetween, you % + % have to specify the top and bottom boxes before you specify the middle % + % box.% + %% + % below= name of other node% + % above= name of other node% + % aligned=name of other node% + % bottomaligned=name of other node% + % column= [0] % + % row= [0] % + % span= [1] % + % height= <size in percent of column height>,[auto]% + % name= [noname]% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \newcommand{\headerbox}[3]{% + \typeout{##2}% + \setkeys[ba]{posterbox}{##2}% +% +% + %% The columns is always given absolute + % boxstartx = \baposter@box@column * colwidth + (\baposter@box@column-1) * baposter@@colspacing + \setlength{\boxstartx}{\baposter@box@column\colwidth}% + \addtolength{\boxstartx}{\baposter@box@column\baposter@@colspacing}% +% + %% The width is gvien absolute + % Box Width = \baposter@box@span * colwidth + (\baposter@box@span-1) * baposter@@colspacing + \setlength{\boxwidth}{\baposter@box@span\colwidth} % + \addtolength{\boxwidth}{\baposter@box@span\baposter@@colspacing}% + \addtolength{\boxwidth}{-\baposter@@colspacing}% +% + %% Measure the content of the box% + \setbox\baposter@content=\hbox{% + \begin{pgfinterruptpicture}% + \hspace{0.2em}\begin{minipage}[t]{\boxwidth-2em}% + \vspace{0.2em} + \baposter@textfont{##3}% + \end{minipage}% + \end{pgfinterruptpicture}% + }% + \setlength{\boxheight}{\ht\baposter@content}\addtolength{\boxheight}{\dp\baposter@content}% + \addtolength{\boxheight}{2em} % Header% + \addtolength{\boxheight}{1em} % Inner Sep% +% + \ifthenelse{\equal{\baposter@box@height}{bottom}}{% + }{\ifthenelse{\equal{\baposter@box@height}{auto}}{% + }{ % Neither auto nor bottom% + \setlength{\boxheight}{\baposter@box@height\colheight}% + }}% +% + %% Determine the box position% + \typeout{Setting Coordinates}% + \typeout{Upper Right}% + \typeout{\baposter@box@name}% +% + %%% Upper Right Corner% + \ifthenelse{\not\equal{\baposter@box@below}{notset} }{% + %% Below% + \typeout{Below}% + \path[shape=coordinate] (\boxstartx,0pt |- \baposter@box@below se) ++(0pt,-\baposter@@colspacing) coordinate(\baposter@box@name nw);% + }{% + \ifthenelse{\not\equal{\baposter@box@aligned}{notset} }{% + %% Aligned% + \typeout{Aligned: \baposter@box@aligned}% + \path[shape=coordinate] (\boxstartx,0pt |- \baposter@box@aligned nw) coordinate(\baposter@box@name nw);% + }{% + %% Fixed% + \typeout{Fixed}% + \setlength{\boxstarty}{\baposter@box@row\colheight}% + \path[shape=coordinate] (\boxstartx,\colheight-\boxstarty) coordinate(\baposter@box@name nw);% + }}% +% + %% Lower Left Corner% + \typeout{Lower Left}% + \ifthenelse{\equal{\baposter@box@above}{bottom}}{% + %% Above = Bottom% + \typeout{Above bottom}% + \ifthenelse{\equal{\baposter@box@below}{notset} \and \equal{\baposter@box@aligned}{notset}}{% + \path[shape=coordinate] (\boxstartx,\boxheight) coordinate(\baposter@box@name nw);% + }{}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\baposter@box@name se);% + }{\ifthenelse{\not \equal{\baposter@box@bottomaligned}{notset}}{% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \baposter@box@bottomaligned se) coordinate(\baposter@box@name se);% + }{{\ifthenelse{\not \equal{\baposter@box@above}{notset}}{% + %% Above = Node% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \baposter@box@above nw) +(0pt,\baposter@@colspacing) coordinate(\baposter@box@name se);% + }{% + %% Above = notset% + \typeout{Above=not set}% + \ifthenelse{\equal{\baposter@box@height}{bottom}}{% + %% height=bottom% + \typeout{height=bottom}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\baposter@box@name se);% + }{ %% height=auto or fixed% + \typeout{height=auto or fixed}% + \path[shape=coordinate] (\baposter@box@name nw) ++(\boxwidth,-\boxheight) coordinate(\baposter@box@name se);% + }}}}}% +% + % + % Set coordinates relative to nw,se% + \typeout{Fixing Coordinates}% + \path[shape=coordinate]% + (\baposter@box@name nw) +(0pt,-2em) coordinate(\baposter@box@name tnw)% + (\baposter@box@name nw |- \baposter@box@name se) coordinate(\baposter@box@name sw)% + (\baposter@box@name se |- \baposter@box@name nw) coordinate(\baposter@box@name ne)% + (\baposter@box@name ne) +(0pt,-2em) coordinate(\baposter@box@name tne)% +% + (\baposter@box@name nw) +(-0.025em,0pt) coordinate(\baposter@box@name outer nw)% + (\baposter@box@name tnw) +(-0.025em,0pt) coordinate(\baposter@box@name outer tnw)% + (\baposter@box@name sw) +(-0.025em,0pt) coordinate(\baposter@box@name outer sw)% +% + (\baposter@box@name ne) +( 0.025em,0pt) coordinate(\baposter@box@name outer ne)% + (\baposter@box@name tne) +( 0.025em,0pt) coordinate(\baposter@box@name outer tne)% + (\baposter@box@name se) +( 0.025em,0pt) coordinate(\baposter@box@name outer se);% +% + \ifthenelse{\equal{\baposter@headershade}{shade-lr}}{% + \typeout{Header-Shade: Shade Left - Right} + \tikzstyle{header colors}=[% + color=borderColor,% + shading=axis,% + left color=headerColorOne,% + right color=headerColorTwo% + ]% + }{\ifthenelse{\equal{\baposter@headershade}{shade-tb}}{% + \typeout{Header-Shade: Shade Top - Bottom} + \tikzstyle{header colors}=[% + color=borderColor,% + shading=axis,% + top color=headerColorOne,% + bottom color=headerColorTwo% + ]% + }{\ifthenelse{\equal{\baposter@headershade}{shade-tb-inverse}}{% + \tikzstyle{header colors}=[% + top color=headerColorOne!75!headerColorTwo,% + bottom color=headerColorTwo!100!headerColorOne,% + shading angle=20% + ]% + \colorlet{baposterHeaderFontColor}{white}% + }{\ifthenelse{\equal{\baposter@headershade}{plain}}{% + \typeout{Header-Shade: Plain} + \tikzstyle{header colors}=[% + color=borderColor,% + fill=headerColorOne% + ]% + }{% + \typeout{Header-Shade: Unknown Style: \baposter@headershade} + \PackageError{baposter.cls}{Unknown header shade style \baposter@headershade}{Edit your file to choose a valid option}{}% + }}}}% + \typeout{Box-Shade: \baposter@boxshade} + \ifthenelse{\equal{\baposter@boxshade}{shade-lr}}{% + \tikzstyle{box colors}=[% + shading=axis,% + left color=boxColorOne,% + right color=boxColorTwo% + ]% + }{% + \ifthenelse{\equal{\baposter@boxshade}{shade-tb}}{% + \tikzstyle{box colors}=[% + shading=axis,% + top color=boxColorOne,% + bottom color=boxColorTwo% + ]% + }{% + \ifthenelse{\equal{\baposter@boxshade}{plain}}{% + \tikzstyle{box colors}=[% + fill=boxColorOne% + ]% + }{% + \ifthenelse{\equal{\baposter@boxshade}{none}}{% + \tikzstyle{box colors}=[]% + }{% + \PackageError{baposter.cls}{Unknown box shade style \baposter@boxshade}{Edit your file to choose a valid option}{}% + }% + }% + }% + }% + \tikzstyle{rc}=[rounded corners=1em];% + \tikzstyle{src}=[rounded corners=0.5em];% +% + \begin{scope}[line width=\baposter@linewidth] + \typeout{Header}% + \typeout{Header-Shape: \baposter@headershape}% + %% Header% + \ifthenelse {\equal{\baposter@headershape}{rectangle}} {% + %%% + \ifthenelse{\equal{\baposter@headerborder}{open}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) -- (\baposter@box@name ne) -- (\baposter@box@name tne);% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) -- (\baposter@box@name ne) -- (\baposter@box@name tne);% + } + }{\ifthenelse{\equal{\baposter@headerborder}{closed}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) -- (\baposter@box@name ne) -- (\baposter@box@name tne) -- cycle;% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) -- (\baposter@box@name ne) -- (\baposter@box@name tne) -- cycle;% + } + }{\ifthenelse{\equal{\baposter@headerborder}{none}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \fill [style=header colors] (\baposter@box@name outer tnw) -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne) -- (\baposter@box@name outer tne) -- cycle;% + }{ + \shade [style=header colors] (\baposter@box@name outer tnw) -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne) -- (\baposter@box@name outer tne) -- cycle;% + } + }{\PackageError{baposter.cls}{Unknown header border \baposter@headerborder}{Edit your file to choose a valid option}}}}{}% + \path (\baposter@box@name nw) +(0em,-1em) node[anchor=west,inner sep=0.4em] {\color{headerFontColor}\baposter@headerfont{##1}};% + %%% + }{\ifthenelse{\equal{\baposter@headershape}{small-rounded}} {% + %%% + \ifthenelse{\equal{\baposter@headerborder}{open}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + } + }{\ifthenelse{\equal{\baposter@headerborder}{closed}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filledraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + } + }{\ifthenelse{\equal{\baposter@headerborder}{none}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \fill [style=header colors] (\baposter@box@name outer tnw) {[rc] -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + }{ + \shade [style=header colors] (\baposter@box@name outer tnw) {[rc] -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + } + }{\PackageError{baposter.cls}{Unknown header border \baposter@headerborder}{Edit your file to choose a valid option}}}}{}% + \path (\baposter@box@name nw) +(0.5\boxwidth,-1em) node[anchor=center] {\color{headerFontColor}\baposter@headerfont{##1}};% + %%% + }{\ifthenelse{\equal{\baposter@headershape}{roundedright}}{% + %%% + \ifthenelse{\equal{\baposter@headerborder}{open}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) {[rc] -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) {[rc] -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + } + }{\ifthenelse{\equal{\baposter@headerborder}{closed}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) {[rc] -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) -- (\baposter@box@name nw) {[rc] -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + } + }{\ifthenelse{\equal{\baposter@headerborder}{none}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \fill [style=header colors] (\baposter@box@name outer tnw) -- (\baposter@box@name outer nw) {[rc] -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + }{ + \shade [style=header colors] (\baposter@box@name outer tnw) -- (\baposter@box@name outer nw) {[rc] -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + } + }{\PackageError{baposter.cls}{Unknown header border \baposter@headerborder}{Edit your file to choose a valid option}}}}{}% + \path (\baposter@box@name nw) +(0em,-1em) node[anchor=west,inner sep=0.4em,text depth=0.0em] {\color{headerFontColor}\baposter@headerfont{##1}};% + %%% + }{\ifthenelse{\equal{\baposter@headershape}{roundedleft}}{% + %%% + \ifthenelse{\equal{\baposter@headerborder}{open}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors,color=borderColor] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name nw) } -- (\baposter@box@name ne) -- (\baposter@box@name tne);% + }{ + \shadedraw [style=header colors,color=borderColor] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name nw) } -- (\baposter@box@name ne) -- (\baposter@box@name tne);% + } + }{\ifthenelse{\equal{\baposter@headerborder}{closed}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors,color=borderColor] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name nw) } -- (\baposter@box@name ne) -- (\baposter@box@name tne) -- cycle;% + }{ + \shadedraw [style=header colors,color=borderColor] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name nw) } -- (\baposter@box@name ne) -- (\baposter@box@name tne) -- cycle;% + } + }{\ifthenelse{\equal{\baposter@headerborder}{none}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \fill [style=header colors,color=borderColor] (\baposter@box@name outer tnw) {[rc]-- (\baposter@box@name outer nw) } -- (\baposter@box@name outer ne) -- (\baposter@box@name outer tne) -- cycle;% + }{ + \shade [style=header colors,color=borderColor] (\baposter@box@name outer tnw) {[rc]-- (\baposter@box@name outer nw) } -- (\baposter@box@name outer ne) -- (\baposter@box@name outer tne) -- cycle;% + } + }{\PackageError{baposter.cls}{Unknown header border \baposter@headerborder}{Edit your file to choose a valid option}}}}{}% + \path (\baposter@box@name nw) +(0em,-1em) node[anchor=west,inner sep=0.4em] {\color{headerFontColor}\baposter@headerfont{##1}};% + %%% + }{\ifthenelse{\equal{\baposter@headershape}{rounded}} {% + %%% + \ifthenelse{\equal{\baposter@headerborder}{open}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne);% + } + }{\ifthenelse{\equal{\baposter@headerborder}{closed}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \filldraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + }{ + \shadedraw [style=header colors] (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- (\baposter@box@name ne) } -- (\baposter@box@name tne) -- cycle;% + } + }{\ifthenelse{\equal{\baposter@headerborder}{none}}{% + \ifthenelse{\equal{\baposter@headershade}{plain}}{ + \fill [style=header colors] (\baposter@box@name outer tnw) {[rc] -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + }{ + \shade [style=header colors] (\baposter@box@name outer tnw) {[rc] -- (\baposter@box@name outer nw) -- (\baposter@box@name outer ne)} -- (\baposter@box@name outer tne) -- cycle;% + } + }{\PackageError{baposter.cls}{Unknown header border \baposter@headerborder}{Edit your file to choose a valid option}}}}{}% + \path (\baposter@box@name nw) +(0.5\boxwidth,-1em) node[anchor=center] {\color{headerFontColor}\baposter@headerfont{##1}};% + %%% + }{% + \typeout{Unknown header style \baposter@headershape} + \PackageError{baposter.cls}{Unknown header style \baposter@headershape}{Edit your file to choose a valid option}{}% + }}}}}% + % + \typeout{Sidebars}% + %% Sidebars% + \ifthenelse {\equal{\baposter@textborder}{none}} {% + }{\ifthenelse{\equal{\baposter@textborder}{bars}}{% + \begin{scope}[color=borderColor]% + \draw (\baposter@box@name tne) -- (\baposter@box@name se);% + \draw (\baposter@box@name tnw) -- (\baposter@box@name sw);% + \end{scope}% + }{\ifthenelse{\equal{\baposter@textborder}{coils}}{% + \begin{scope}[color=borderColor,segment amplitude=0.35em,segment length=0.4em,snake=coil]% + \draw (\baposter@box@name tne) -- (\baposter@box@name se);% + \draw (\baposter@box@name tnw) -- (\baposter@box@name sw);% + \end{scope}% + }{\ifthenelse{\equal{\baposter@textborder}{triangles}}{% + \begin{scope}[color=borderColor,segment amplitude=0.2em,segment length=0.4em,snake=triangles]% + \draw [snake=triangles] (\baposter@box@name tne) -- (\baposter@box@name se);% + \draw [snake=triangles] (\baposter@box@name tnw) -- (\baposter@box@name sw);% + \end{scope}% + }{\ifthenelse{\equal{\baposter@textborder}{rectangle}}{% + \begin{scope}[color=borderColor]% + \ifthenelse{\equal{\baposter@boxshade}{none}}{% + }{ + \fill[box colors,rc] (\baposter@box@name tnw) -- (\baposter@box@name sw) -- (\baposter@box@name se) -- (\baposter@box@name tne);% + } + \draw[color=borderColor,rc] (\baposter@box@name tnw) -- (\baposter@box@name sw) -- (\baposter@box@name se) -- (\baposter@box@name tne);% + \end{scope}% + }{\ifthenelse{\equal{\baposter@textborder}{rounded}} {% + \ifthenelse{\equal{\baposter@boxshade}{none}}{% + }{ + \fill[box colors,rc] (\baposter@box@name tnw) -- (\baposter@box@name sw) -- (\baposter@box@name se) -- (\baposter@box@name tne);% + } + \draw[color=borderColor,rc] (\baposter@box@name tnw) -- (\baposter@box@name sw) -- (\baposter@box@name se) -- (\baposter@box@name tne);% + }{\ifthenelse{\equal{\baposter@textborder}{roundedleft}} {% + \ifthenelse{\equal{\baposter@boxshade}{none}}{% + }{ + \fill[box colors] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name sw)} -- (\baposter@box@name se) -- (\baposter@box@name tne) -- cycle;% + } + \draw[color=borderColor,box colors] (\baposter@box@name tnw) {[rc]-- (\baposter@box@name sw)} -- (\baposter@box@name se) -- (\baposter@box@name tne);% + }{\ifthenelse{\equal{\baposter@textborder}{faded}}{% + \tikzstyle{west faded bar}=[color=borderColor]% + \tikzstyle{east faded bar}=[color=borderColor]% + \begin{scope}[west faded bar,x={(\baposter@box@name tnw)},y={(\baposter@box@name sw)}]% + \draw [draw opacity=1.0,west faded bar] (1.0,0.0) -- (0.9,0.1);% + \draw [draw opacity=0.9] (0.9,0.1) -- (0.8,0.2);% + \draw [draw opacity=0.8] (0.8,0.2) -- (0.7,0.3);% + \draw [draw opacity=0.7] (0.7,0.3) -- (0.6,0.4);% + \draw [draw opacity=0.6] (0.6,0.4) -- (0.5,0.5);% + \draw [draw opacity=0.5] (0.5,0.5) -- (0.4,0.6);% + \draw [draw opacity=0.4] (0.4,0.6) -- (0.3,0.7);% + \draw [draw opacity=0.3] (0.3,0.7) -- (0.2,0.8);% + \draw [draw opacity=0.2] (0.2,0.8) -- (0.1,0.9);% + \draw [draw opacity=0.1] (0.1,0.9) -- (0.0,1.0);% + \end{scope}% + % + \begin{scope}[east faded bar,x={(\baposter@box@name tne)},y={(\baposter@box@name se)}]% + \draw [draw opacity=1.0] (1.0,0.0) -- (0.9,0.1);% + \draw [draw opacity=0.9] (0.9,0.1) -- (0.8,0.2);% + \draw [draw opacity=0.8] (0.8,0.2) -- (0.7,0.3);% + \draw [draw opacity=0.7] (0.7,0.3) -- (0.6,0.4);% + \draw [draw opacity=0.6] (0.6,0.4) -- (0.5,0.5);% + \draw [draw opacity=0.5] (0.5,0.5) -- (0.4,0.6);% + \draw [draw opacity=0.4] (0.4,0.6) -- (0.3,0.7);% + \draw [draw opacity=0.3] (0.3,0.7) -- (0.2,0.8);% + \draw [draw opacity=0.2] (0.2,0.8) -- (0.1,0.9);% + \draw [draw opacity=0.1] (0.1,0.9) -- (0.0,1.0);% + \end{scope}% + }{\ifthenelse{\equal{\baposter@textborder}{rounded-small}} {% + \begin{scope}[color=borderColor,src]% + \draw (\baposter@box@name tnw) -- (\baposter@box@name sw) -- (\baposter@box@name se) -- (\baposter@box@name tne);% + \end{scope}% + }{% + \PackageError{baposter.cls}{Unknown text-box style \baposter@headerborder}{Edit your file to choose a valid option}}{} + }}}}}}}}% + % + \typeout{Drawing Text}% + %% Text Box% + \path (\baposter@box@name tnw) node(text) [anchor=north west,outer sep=-0.000em,text width=\boxwidth-1em,inner sep=0.5em,text justified] {\usebox{\baposter@content}};% + \end{scope} + }% +% + %% Background% + \baposterShadedBG% + \hspace{-1.5em}% + \begin{tikzpicture}[inner sep=0pt,outer sep=0pt,line width=0.05em]% + \useasboundingbox (0em,0em) rectangle(\textwidth,\textheight);% + \path[shape=coordinate]% + (0pt,\colheight) coordinate(north west) (\textwidth,\colheight) coordinate(north east)% + (0pt,0pt) coordinate(south west) (\textwidth,0pt) coordinate(south east);% +% + \ifthenelse{\equal{\baposter@eyecatcher}{no}}{ % Has no eye catcher + \setbox\baposter@titleimage@left=\hbox{}% + }{ % Has eye catcher% + \setbox\baposter@titleimage@left=\hbox{#2}% + }% + \setlength{\baposter@titleimage@left@width}{\wd\baposter@titleimage@left}% + \setbox\baposter@titleimage@right=\hbox{#5}% + \setlength{\baposter@titleimage@right@width}{\wd\baposter@titleimage@right}% + \setlength{\baposter@titleimage@textwidth}{\textwidth}% + \addtolength{\baposter@titleimage@textwidth}{-\baposter@titleimage@left@width}% + \addtolength{\baposter@titleimage@textwidth}{-\baposter@titleimage@right@width}% + + \typeout{#3} + % + % + % % Draw Header% + \draw (north west) +(0em,1em+0.5\headerheight) node(image)[anchor=west] { {\usebox{\baposter@titleimage@left }} };% + \draw (north east) +(0em,1em+0.5\headerheight) node(logo) [anchor=east] { {\usebox{\baposter@titleimage@right}} };% + \ifthenelse{\equal{\baposter@eyecatcher}{no}}{ % Has no eye catcher + \draw (image.east) node(title)[anchor=west] { {\begin{minipage}{\baposter@titleimage@textwidth}{\bf\Huge #3}\\{\Large #4}\end{minipage}} };% + }{ % Has eye catcher% + \draw (image.east) node(title)[anchor=west,text width=\baposter@titleimage@textwidth]{% + \begin{minipage}{\baposter@titleimage@textwidth}% + \begin{center}% + \textbf{\Huge #3}\\% + {\Large #4}% + \end{center}% + \end{minipage} + };% + }% + }% +% The body + {% + % The end, draw gridlines if neccesary + \ifthenelse{\equal{\baposter@grid}{yes}}{ % TODO: Understand boolean options declaration% + \draw[draw=green,draw opacity=0.7] % + (0\colwidth,0pt) -- (0\colwidth,\colheight)% + (1\colwidth,0pt) -- (1\colwidth,\colheight)% + (1\colwidth+1\baposter@@colspacing,0pt) -- (1\colwidth+1\baposter@@colspacing,\colheight)% + (2\colwidth+1\baposter@@colspacing,0pt) -- (2\colwidth+1\baposter@@colspacing,\colheight)% + (2\colwidth+2\baposter@@colspacing,0pt) -- (2\colwidth+2\baposter@@colspacing,\colheight)% + (3\colwidth+2\baposter@@colspacing,0pt) -- (3\colwidth+2\baposter@@colspacing,\colheight)% + (3\colwidth+3\baposter@@colspacing,0pt) -- (3\colwidth+3\baposter@@colspacing,\colheight)% + (4\colwidth+3\baposter@@colspacing,0pt) -- (4\colwidth+3\baposter@@colspacing,\colheight)% + % + (0pt,0.0\colheight) -- (\textwidth,0.0\colheight) node[anchor=west] {1.0}% + (0pt,0.1\colheight) -- (\textwidth,0.1\colheight) node[anchor=west] {0.9}% + (0pt,0.2\colheight) -- (\textwidth,0.2\colheight) node[anchor=west] {0.8}% + (0pt,0.3\colheight) -- (\textwidth,0.3\colheight) node[anchor=west] {0.7}% + (0pt,0.4\colheight) -- (\textwidth,0.4\colheight) node[anchor=west] {0.6}% + (0pt,0.5\colheight) -- (\textwidth,0.5\colheight) node[anchor=west] {0.5}% + (0pt,0.6\colheight) -- (\textwidth,0.6\colheight) node[anchor=west] {0.4}% + (0pt,0.7\colheight) -- (\textwidth,0.7\colheight) node[anchor=west] {0.3}% + (0pt,0.8\colheight) -- (\textwidth,0.8\colheight) node[anchor=west] {0.2}% + (0pt,0.9\colheight) -- (\textwidth,0.9\colheight) node[anchor=west] {0.1}% + (0pt,1.0\colheight) -- (\textwidth,1.0\colheight) node[anchor=west] {0.0};% + }{% + } + \end{tikzpicture}% + % \xkvview{} + }% Copied: docs/posters/DH2010/header.tex (from rev 1756, docs/posters/header.tex) =================================================================== --- docs/posters/DH2010/header.tex (rev 0) +++ docs/posters/DH2010/header.tex 2010-08-07 09:51:32 UTC (rev 1760) @@ -0,0 +1,170 @@ +\documentclass[portrait,final]{baposter} +%\documentclass[a4shrink,portrait,final]{baposter} +% Usa a4shrink for an a4 sized paper. + +% A0 poster board, 841 x 1189mm + +\tracingstats=2 + +\usepackage{times} +\usepackage{calc} +\usepackage{graphicx} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{relsize} +\usepackage{multirow} +\usepackage{bm} +\usepackage[style=verbose-ibid]{biblatex} +\bibliography{poster} + +\usepackage{graphicx} +\usepackage{multicol} + +\usepackage{pgfbaselayers} +\pgfdeclarelayer{background} +\pgfdeclarelayer{foreground} +\pgfsetlayers{background,main,foreground} + +\usepackage{helvet} +%\usepackage{bookman} +\usepackage{palatino} +\newcommand{\hl}[2]{\vspace{-0.2em}\colorbox{lightyellow}{\hspace{-3pt}#1\hspace{-3pt}}\vspace{#2}} + +\newcommand{\captionfont}{\footnotesize} + +\selectcolormodel{cmyk} + +\graphicspath{{images/}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Some math symbols used in the text +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format +\newcommand{\Matrix}[1]{\begin{bmatrix} #1 \end{bmatrix}} +\newcommand{\Vector}[1]{\Matrix{#1}} +\newcommand*{\SET}[1] {\ensuremath{\mathcal{#1}}} +\newcommand*{\MAT}[1] {\ensuremath{\mathbf{#1}}} +\newcommand*{\VEC}[1] {\ensuremath{\bm{#1}}} +\newcommand*{\CONST}[1]{\ensuremath{\mathit{#1}}} +\newcommand*{\norm}[1]{\mathopen\| #1 \mathclose\|}% use instead of $\|x\|$ +\newcommand*{\abs}[1]{\mathopen| #1 \mathclose|}% use instead of $\|x\|$ +\newcommand*{\absLR}[1]{\left| #1 \right|}% use instead of $\|x\|$ + +\def\norm#1{\mathopen\| #1 \mathclose\|}% use instead of $\|x\|$ +\newcommand{\normLR}[1]{\left\| #1 \right\|}% use instead of $\|x\|$ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Multicol Settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\columnsep}{0.7em} +\setlength{\columnseprule}{0mm} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Save space in lists. Use this after the opening of the list +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\compresslist}{% +\setlength{\itemsep}{1pt}% +\setlength{\parskip}{0pt}% +\setlength{\parsep}{0pt}% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Begin of Document +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Here starts the poster +%%%--------------------------------------------------------------------------- +%%% Format it to your taste with the options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Define some colors +\definecolor{silver}{cmyk}{0,0,0,0.3} +\definecolor{yellow}{cmyk}{0,0,0.9,0.0} +\definecolor{reddishyellow}{cmyk}{0,0.22,1.0,0.0} +\definecolor{black}{cmyk}{0,0,0.0,1.0} +\definecolor{darkYellow}{cmyk}{0,0,1.0,0.5} +\definecolor{darkSilver}{cmyk}{0,0,0,0.1} + +%\definecolor{darkerblue}{cmyk}{0.46,0.35,0,0.38} +\definecolor{darkerblue}{cmyk}{0.29,0.27,0,0.16} +\definecolor{darkestblue}{cmyk}{0.72,0.68,0,0.66} +\definecolor{lighterblue}{cmyk}{0.08,0.07,0,0.05} +%\definecolor{lighterblue}{cmyk}{0.29,0.27,0,0.16} +\definecolor{lightestblue}{cmyk}{0.02,0.02,0,0} +\definecolor{lightyellow}{cmyk}{0,0,0.3,0.0} +\definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} +\definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0} +\definecolor{lightestyellow}{cmyk}{0,0,0.05,0.0} + +\renewcommand{\refname}{} +\renewcommand{\bibfont}{\smaller} + +%% +\typeout{Poster Starts} +\background{ + \begin{tikzpicture}[remember picture,overlay]% + \draw (current page.north west)+(-2em,2em) node[anchor=north west] {\includegraphics[height=1.1\textheight]{silhouettes_background}}; + \end{tikzpicture}% +} + +\newlength{\leftimgwidth} +\begin{poster}% + % Poster Options + { + % Color style + bgColorOne=lightestblue, + bgColorTwo=lightestyellow, + headerColorOne=lighterblue, + borderColor=lighterblue, + headerFontColor=black, + boxColorOne=lightyellow, + boxColorTwo=lighteryellow, + % Format of textbox + textborder=faded, + % Format of text header + headerborder=open, + headerheight=0.08\textheight, + colspacing=0.7em, + headershape=rounded, +% headershape=roundedright, + headershade=plain, + headerfont=\Large\textsf, %Sans Serif + headerFontColor=darkestblue, + boxshade=plain, + background=plain, + eyecatcher=yes, + linewidth=2pt + } + % Poster Options +% { + % Show grid to help with alignment +% grid=no, + % Column spacing +% colspacing=1em, + % Color style +% bgColorOne=lighteryellow, +% bgColorTwo=lightestyellow, +% borderColor=reddishyellow, +% headerColorOne=yellow, +% headerColorTwo=reddishyellow, +% headerFontColor=black, +% boxColorOne=lightyellow, +% boxColorTwo=lighteryellow, + % Format of textbox +% textborder=roundedleft, + % Format of text header +% eyecatcher=no, +% headerborder=open, +% headerheight=0.08\textheight, +% headershape=roundedright, +% headershade=plain, +% headerfont=\Large\textsf, %Sans Serif +% boxshade=plain, +% background=shade-tb, +% background=plain, +% linewidth=2pt +% } Deleted: docs/posters/DH2010/images/logo.pdf =================================================================== (Binary files differ) Deleted: docs/posters/DH2010/images/msrlogo.pdf =================================================================== --- docs/posters/images/msrlogo.pdf 2010-07-12 16:17:08 UTC (rev 1756) +++ docs/posters/DH2010/images/msrlogo.pdf 2010-08-07 09:51:32 UTC (rev 1760) @@ -1,186 +0,0 @@ -%PDF-1.3 -%\xC7쏢 -6 0 obj -<</Length 7 0 R/Filter /FlateDecode>> -stream -x\x9Cm\x9C[\x8E%\xBD\xAE\x9C\xDFkk˩[J\x86\xCF\xCB@\xDB\xDBp\xB5\x81 -\xCFp|AI\xB9\xBA\xFAG?TK\x95\x89\xA4HF\x90Y\xFFy]\xEF\xF4\xBA\xF8\xB7~\xFE\xFA\xFD\xF5?\xFEk\xBC\xFE\xD7\xFF\xFB\xFA\xCF\xD7\xF5\xEAw\x8F6_\xBF\xBF\xF8\xDD\xF7W\xEE-\xBFk\xFB\xE3\xFF\xFB\x9A\xEF\xAF\xFF~\xFD__w\xBD\xD2\xEB\xFF|\xA5\xD7\xFF\xFEJ\xD7h\xEF\xDA_\xF7\x9C\x9E\xB3g\xFA\x95\xDE)\x95\x97\xC7W\xD68\xBFs\xF7\xB8\xBES\x8C\xE7\xBC_\xBF\xB8\xA3\xE8R͔\xF7H7W\xA4w\x99\xD7w\xCE]\xE3>r\x8F\xB9\xA37\xBD\xEE\xCC|\x9F\x99{\xD6w\xBF\xD6\xCC|\xF7?&\xF4\x9AV\xCF̳\xF4\xFB]\xAE\xF9\xFA\xB9\x95__\xFF\xD6=\xF3z\x8F\xFBu\xEBYw\xB1\xBD\x9B\xC5\xEE\x99\xF5\=\xEF\xD6/Jk1\x93\xDE-kF+H\xED\xE5\xA5\xF0\x94ɾZlHo\xDC\xE3_ˏ\x99\x8F -}\xBC\xA7\xEB\xA9\xE3f\xB4\x9Bw\x9Bco\xBA\xDE\xCCɹ\x9E\xEF\xD2\xF7\xDC[\xD8\xFD]PW{gI\xC7ꐸ\xAD\x8Dy\xF9\xBDﶾRg\x8C\x98\xF4<_\xBF&\xB4\xA9{\xDDpU˵\x96oв\xA7\xCC`,}\xDF\xEF\xC6 -\xE5\xDD\xCB\x8Bl>\xBFG\xC9//\xB9u\x8F\xCB]\xE2\x8E3\x93\xB5=oKVT,\xB0a\x91j[7W\xC8\xCE\xFB\xDA\xE8\xFA\xD7_\x8A\xFC\xE5ν\x8E\x92C\xB9{f\xC8\xE2y\xEA\xEC\xEF;dQo\x8F\xCBfj\xF7~n\xD2I\x8F\xAFK\xBC\xB7\xAC;e\xDD\xE8u]2\xD13\xB6\xAA\xAB\x96\xF0qE\xBF\xE2\xF6²oQ\x8E\xA4\xD8\xFA\x9D}\xB9\x96\xB6s_\x96\xE6x\xF7ٟal\xC1\xD7{B\xEF7\xB2\xD4\xED]\xB2\xF5+\xF1\x82eVe\xC4\xBAV(u\xC9\xDB\xEBC]\xA7\xB1?;\xD8\xE3__ۄ\x9E+\x90\xC1z\x82\xF5\x89\x94\xE2\xB5\xC5yE\x8E#V\xE1B\xCCƕ^?ᓗ\xF0\x9E\xAA\xF2A\xBF\xCFz\x9D\xDAH\xBA\xAE8u2\xCB\xECE4\x89P/\xED\xEFYg\xDA\xCB\xEC\xD5&!ٲ\xCCd\xF0\xC6|\x92clQhG\xF9\xE3\x8A{\xBCo?@vư\xE2yE\xEFe[\xEF\xD4qsiâ\xC2\xEA\xF23\xD4\x96\xDB\xDA\x8C/\xE0\xF6b7\xD6z\x8D\xE89\xFD\x92rG\x88Z+\xE8\xDD\xC62g\xE5Hb\xF2*\xB2\xEB\xB5Il\x8F\xD7\xE1\xAA\xF5\xE3 -IA\xA77\x9F>\x8B\xA9s\xFCuFo\x9C\2\xBC\xEB\xAC\xE9u/\xDF\xC5\xE9\xFDS\xBF\xBE\xFE\xF5\x95z~\xB5.ü\xAC\xE4\xA2\xFD\xEC\x99\xEF3\x83\xAF:\xC2ό\xF7*\xEFʘ\xF5tGX\x90]\xCA4z\xB9\xF6ɺ9\xD0\xF9\xCC\xF0\xE9A+\xEC9\xBF\xAF\xA2\x95\xDE m\xF1;& 3\xCB\xDB"\xABv!\x9D\x91\x84==\xEB\xE2T0\x9E\x99\x8C\x97m(\xBD\xAB֣{\xA5b \x96\xD1_9ɘ\xB52\xFD\xE4\x96,i5I\xF2c\xA52^^\xF8\xAC4sb\xF4V\xCA Ѹ\xDD>\xF3I\x86Q\xCE\xF1\xDC\xF6O{\xE6Y\xD8\xF5\xC7\xFF{ӕ\xF1lm -W\xF1\xCC\xC8^UV\x98\xB5\xB9Y\xCBg\˝t\xAD6\xFDV\xBD/\xA3@\x8E\xD5ҳ\xA5s\x96x\xE6\x9E\xF9\xFE\x92\xEFY\xBB%L\xDB\xD6\xC0\xF1\x92t\x8A\x8Fl\xB2\xB5\xDCZN\xD6!\x92dۓl\xE1\xACk\xD9\xC9_Ͼ\xFE%\xF1\x87\xD8cʒ"z\xFFPњ!m\xA5\xC5]\xCF<w\xFD[s:d"u\xCAE\x93\xE3<3R\xADNtn\xC5\xBAW9\xBD\x81\xA7\xF8\xF7\x95\xB2\xAB\\x87\xFDd/\xF7{\xEA\xE8fݙ\xD8e\x91uʟ檀\x8D6\xD6Xw\x94n\x9D\x9E+\x8Aߖ-\x91\xC6\xE9ݛ_Q30\xE7\xE9\xA3\xD9\xF5\xA8ykQ\xE8Q\x91\x98Ef\x85\x96g\xDB\xE0\x8E5\xA3\xE5_2\xBC\xF3\x84v\xFB\x8A\xFD\x8A\xB6\xDD\xC8Y\x83N\xF5\xAC\x91\xD8"՜]\xAC1\xFB^\xFB<W,9\xEC'lI=\xEFز܋زދ\xFC\xA1 -<I\x91\xE3̅:\xEC |