parlement 0.11 → 0.12

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,8 +1,17 @@
1
1
  - parlement changelog
2
2
 
3
+ == Version 0.12
4
+
5
+ Internationalization
6
+
7
+ * links
8
+ * i18n with gettext, english and french
9
+ * better blind up and down for login and logout
10
+ * better spam fighting against posts with numerous links
11
+
3
12
  == Version 0.11
4
13
 
5
- Most active forums presented first
14
+ Most active forums presented first. Passage to rails 1.2
6
15
 
7
16
  * Corrected a small javascript error displaying subscriptionLink
8
17
  * last_activity field added to elts
data/README CHANGED
@@ -28,6 +28,9 @@ And then:
28
28
  Only if you expect to develop and do any release:
29
29
  # gem install meta_project
30
30
 
31
+ For i18n:
32
+ # apt-get install ruby1.8-dev
33
+ # gem install gettext
31
34
 
32
35
  The database is setup for user "manu", you may need to change the file
33
36
  config/database.yml for your own settings.
data/Rakefile CHANGED
@@ -177,3 +177,16 @@ task :publish_news => [:verify_env_vars] do
177
177
  """
178
178
  end
179
179
 
180
+ desc "Update pot/po files."
181
+ task :updatepo do
182
+ require 'gettext/utils'
183
+ GetText.update_pofiles(PKG_NAME, Dir.glob("{app}/**/*.{rb,rhtml}"), "#{PKG_NAME} #{PKG_VERSION}")
184
+ end
185
+
186
+ desc "Create mo-files"
187
+ task :makemo do
188
+ require 'gettext/utils'
189
+ #GetText.create_mofiles(true)
190
+ GetText.create_mofiles(true, "po", "locale") # This is for "Ruby on Rails".
191
+ end
192
+
@@ -8,7 +8,8 @@ class ApplicationController < ActionController::Base
8
8
  include LoginEngine
9
9
  include Term::ANSIColor
10
10
 
11
- before_filter :set_charset
11
+ init_gettext "parlement"
12
+
12
13
  before_filter :set_login_from_cookie
13
14
  after_filter :fix_unicode_for_safari
14
15
  after_filter OutputCompressionFilter
@@ -22,11 +23,6 @@ class ApplicationController < ActionController::Base
22
23
  end
23
24
  end
24
25
 
25
- def set_charset
26
- #@headers["Content-Type"] = "text/html; charset=iso-8859-15"
27
- headers["Content-Type"] = "text/html; charset=utf-8"
28
- end
29
-
30
26
  def set_login_from_cookie
31
27
  unless session[:person]
32
28
  if (person = Person.find_by_name(cookies[:person_name])) and \
@@ -17,7 +17,7 @@ class EltController < ApplicationController
17
17
  render :layout => 'top'
18
18
 
19
19
  rescue ActiveRecord::RecordNotFound => e
20
- flash[:error] = "Element '#{params[:id]}' does not exist"
20
+ flash[:error] = _("Element %s does not exist") % params[:id]
21
21
  headers["Status"] = "301 Moved Permanently"
22
22
  redirect_to '/'
23
23
  end
@@ -67,7 +67,7 @@ class EltController < ApplicationController
67
67
 
68
68
  if !session[:person] and \
69
69
  (@elt.subject =~ /([<>\/]|href)/ \
70
- or @elt.body =~ /(.*(http|href).*){3}/ \
70
+ or @elt.body =~ /(.*(http|href)(.*\n)*){3}/ \
71
71
  or @elt.body =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i \
72
72
  or @elt.body =~ /([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,}.*){3}/i) then
73
73
  logger.error red { underline { "SPAM! '#{@elt.subject}'" } }
@@ -23,17 +23,17 @@ module EltHelper
23
23
  .gsub(/^(\d\d:\d\d\s)/, '* \\1') \
24
24
  .gsub(/^\s\*(.*)\*/, '*\\1*') \
25
25
  .gsub(/^\b(.{2,50})$(\n)\b/, '\\1<br/>\\2') \
26
- .gsub(/\n*^\b(position:\s*(\d*(\.\d+)?))\s*$\n*/, ' <span class="position">\1</span>') \
26
+ .gsub(/\n*^\b(position\s*:\s*(\d*(\.\d+)?))\s*$\n*/, ' <span class="position">\1</span>') \
27
27
  if data != nil
28
28
 
29
29
  # Only show the n first paragraphs
30
30
  text.gsub!(/((?:(\n)(?:^.+$\n)*){#{NB_PARAGRAPH_TO_DISPLAY}})((?:.|\n)*)/,
31
- '\1\2<a class="readMore" href="#" onclick="Element.hide(this); Element.removeClassName(this.parentNode.nextSibling, \'tooLarge\'); return false;">Read more...</a>\2<div class="tooLarge">\2\3\2</div>') \
31
+ '\1\2<a class="readMore" href="#" onclick="Element.hide(this); Element.removeClassName(this.parentNode.nextSibling, \'tooLarge\'); return false;">Read more... / Lire plus...</a>\2<div class="tooLarge">\2\3\2</div>') \
32
32
  if data and text.strip =~ /((?:(\n)(?:^.+$\n)*){#{NB_PARAGRAPH_TO_DISPLAY+2}})/
33
33
 
34
34
  # Only show the n*2 first list items
35
35
  text.gsub!(/((?:^\*\s+.+$\n){#{NB_PARAGRAPH_TO_DISPLAY*2}})((?:.|\n)*)(\n)/,
36
- '\1\3\3* <a class="readMore" href="#" onclick="Element.hide(this.parentNode.parentNode); Element.removeClassName(this.parentNode.parentNode.nextSibling.nextSibling, \'tooLarge\'); return false;">Read more...</a>\3\3<div class="tooLarge">\3\3\2</div>') \
36
+ '\1\3\3* <a class="readMore" href="#" onclick="Element.hide(this.parentNode.parentNode); Element.removeClassName(this.parentNode.parentNode.nextSibling.nextSibling, \'tooLarge\'); return false;">Read more... / Lire plus...</a>\3\3<div class="tooLarge">\3\3\2</div>') \
37
37
  if data and text.strip =~ /(?:(?:^\*\s+.+$\n){#{NB_PARAGRAPH_TO_DISPLAY*2+2}})/
38
38
 
39
39
  #hard_breaks = true
data/app/models/elt.rb CHANGED
@@ -65,7 +65,7 @@ class Elt < ActiveRecord::Base
65
65
  def publish
66
66
  logger.info "Publish #{subject}"
67
67
 
68
- self.position = Regexp.last_match(1) if body =~ /^\s*position:\s*(\d+(\.\d+)?)(\s|$)/
68
+ self.position = Regexp.last_match(1) if body =~ /^\s*position\s*:\s*(\d+(\.\d+)?)(\s|$)/
69
69
 
70
70
  build_mail(:elt => self) unless mail
71
71
  mail.publish
@@ -14,7 +14,7 @@
14
14
  :style => "display:none") %>
15
15
 
16
16
  <div style="display:none" class="help" id="help_<%= divId %>">
17
- <%= link_to_function("Help:",
17
+ <%= link_to_function(_('Help')+":",
18
18
  visual_effect(:Shrink, "help_#{divId}")+
19
19
  visual_effect(:Shrink, "help_close_#{divId}_link")+
20
20
  visual_effect(:Grow, "help_#{divId}_link"),
@@ -1,12 +1,12 @@
1
1
  <% form_remote_tag(
2
2
  :update => 'identity',
3
3
  :url => { :controller => 'account', :action => 'login', :elt => @elt },
4
- :before => visual_effect(:BlindUp, 'identity')+";resetChoices();",
5
- :loaded => visual_effect(:BlindDown, 'identity')) do %>
4
+ :before => visual_effect(:BlindUp, 'identity', { :queue => 'login' })+";resetChoices();",
5
+ :loaded => visual_effect(:BlindDown, 'identity', { :queue => 'login' })+visual_effect(:BlindDown, 'subscriptionLink')) do %>
6
6
 
7
- <div class="login">Please, choose a pseudo</div>
7
+ <div class="login"><%= _('Please, choose a pseudo') %></div>
8
8
 
9
- <label for="person_name">Pseudo:
9
+ <label for="person_name"><%= _('Pseudo') %>:
10
10
  <%= text_field "person", "name", :size => 10 %>
11
11
  <script type="text/javascript">Form.focusFirstElement(document.forms[0]);</script>
12
12
  </label>
@@ -16,9 +16,9 @@
16
16
  +visual_effect(:Grow, 'user_password_identity') \
17
17
  +"Form.focusFirstElement(document.forms[0])") %>
18
18
 
19
- <span style="display: none;" id="user_password_identity">
19
+ <span id="user_password_identity" style="display: none">
20
20
  <br/>
21
- <label for="user_password">Password:
21
+ <label for="user_password"><%= _('Password') %>:
22
22
  <%= password_field "user", "password", :size => 10 %>
23
23
  </label>
24
24
 
@@ -28,35 +28,15 @@
28
28
  +"Form.focusFirstElement(document.forms[0])") %>
29
29
  </span>
30
30
 
31
- <span style="display: none;" id="person_email_identity">
31
+ <span id="person_email_identity" style="display: none">
32
32
  <br/>
33
- <label for="person_email">Email (or check key):</label>
33
+ <label for="person_email"><%= _('Email (or check key)') %>:</label>
34
34
  <%= text_field "person", "email", :size => 20 %>
35
35
  </span>
36
36
 
37
37
  <%= submit_tag 'OK' %>
38
38
 
39
39
  <%= render :partial => '/help',
40
- :locals => { :divId => 'login', :content => '
41
- <p>You can participate with:</p>
42
- <ul>
43
- <li>no pseudo</li>
44
- <li>an unprotected pseudo</li>
45
- <li>a password protected pseudo (click on "<span class="icon">&gt;&gt;</span>")</li>
46
- <li>a password protected and email verified pseudo</li>
47
- </ul>
48
- <p>
49
- The last method is the only secure way to protect a nickname on
50
- <strong>this</strong> server.
51
- </p>
52
- <p>
53
- If a pseudo is not protected <strong>and</strong> verified, anybody
54
- else can protect it for themselves if they at least supply a password
55
- <em>and</em> an email.
56
- </p>
57
- <p>
58
- A login must contain [3..40] characters, a password [5..40].
59
- </p>
60
- ' } %>
40
+ :locals => { :divId => 'login', :content => _('<p>You can participate with:</p> <ul><li>no pseudo</li> <li>an unprotected pseudo</li> <li>a password protected pseudo (click on "<span class="icon">&gt;&gt;</span>")</li> <li>a password protected and email verified pseudo</li></ul> <p> The last method is the only secure way to protect a nickname on <strong>this</strong> server.</p> <p>If a pseudo is not protected <strong>and</strong> verified, anybody else can protect it for themselves if they at least supply a password <em>and</em> an email.</p> <p>A login must contain [3..40] characters, a password [5..40].</p>') } %>
61
41
  <% end %>
62
42
 
@@ -15,17 +15,17 @@
15
15
  };
16
16
  updateChoices(choices_to_update);
17
17
  </script>
18
- <script language="JavaScript">Element.show($('subscriptionLink'));</script>
19
18
  </span>
20
19
  <% end %>
21
20
 
22
21
  <% if @person = session[:person] %>
22
+ <script language="JavaScript">Element.show($('subscriptionLink'));</script>
23
23
  <span class="logout">
24
24
  <%= link_to_remote('[X]',
25
25
  { :update => 'identity',
26
26
  :url => { :controller => 'account', :action => 'logout', :elt => @elt },
27
- :before => visual_effect(:BlindUp, 'identity')+visual_effect(:BlindUp, 'subscriptionLink')+";resetChoices();",
28
- :loaded => visual_effect(:BlindDown, 'identity') },
27
+ :before => visual_effect(:BlindUp, 'identity', { :queue => 'login' })+visual_effect(:BlindUp, 'subscriptionLink', { :queue => 'login' })+";resetChoices();",
28
+ :loaded => visual_effect(:BlindDown, 'identity', { :queue => 'login' }) },
29
29
  { :href => url_for(:controller => 'account', :action => 'logout') }) %>
30
30
  </span>
31
31
  <span class="author">
@@ -40,13 +40,14 @@
40
40
  :id => "person_avatar", :class => "avatar" %>
41
41
  </div>
42
42
 
43
- <fieldset id="edit"><legend>Edit</legend>
43
+ <fieldset id="edit">
44
+ <legend><%= _('Edit') %></legend>
44
45
  <% form_remote_tag(
45
46
  :update => 'identity',
46
47
  :url => { :controller => 'account', :action => 'setPassword' },
47
48
  :before => visual_effect(:BlindUp, 'identity'),
48
49
  :loaded => visual_effect(:BlindDown, 'identity')) do %>
49
- <label for="user_password">Password:</label>
50
+ <label for="user_password"><%= _('Password') %>:</label>
50
51
  <%= password_field "user", "password", :size => 12 %>
51
52
  <%= submit_tag 'OK' %>
52
53
  <% end %>
@@ -56,14 +57,14 @@
56
57
  :url => { :controller => 'account', :action => 'setEmail' },
57
58
  :before => visual_effect(:BlindUp, 'identity'),
58
59
  :loaded => visual_effect(:BlindDown, 'identity')) do %>
59
- <label for="person_email">Email:</label>
60
+ <label for="person_email"><%= _('Email') %>:</label>
60
61
  <%= text_field "person", "email", :size => 16 %>
61
62
  <%= submit_tag 'OK' %>
62
63
  <% end %>
63
64
 
64
65
  <% form_tag( { :controller => "account", :action => "setAvatar"},
65
66
  :multipart => true, :target => "avatar", :class => "setAvatar") do %>
66
- <label>Avatar:</label>
67
+ <label><%= _('Avatar') %>:</label>
67
68
  <%= file_field "person", "image", :onchange => "submit()", :size => 3 %>
68
69
  <%= submit_tag 'OK' %>
69
70
  <% end %>
@@ -58,7 +58,7 @@
58
58
 
59
59
  <span class="eltMore" id="eltMore_<%= elt.id %>"
60
60
  <%= 'style="display: none"' if (eltTop or elt.elts_count < SUB_THREAD_LENGTH) %>>
61
- <%= link_to_remote(elt.elts_count.to_s+' more...',
61
+ <%= link_to_remote(n_('%s message...', '%s messages...', elt.elts_count) % elt.elts_count,
62
62
  { :update => 'eltSubs_'+elt.id.to_s,
63
63
  :url => { :controller => 'elt', :action => 'list', :id => elt },
64
64
  :before => visual_effect(:BlindUp, "eltMore_#{elt.id.to_s}")+
@@ -79,7 +79,7 @@
79
79
  <span <%= 'style="display: none"' unless (elt.elts_count > 0 and (eltTop or elt.elts_count < SUB_THREAD_LENGTH)) %>
80
80
  id="eltSubsClose_<%= elt.id %>" title="<%= elt.created_on %>"
81
81
  class="eltSubsClose">
82
- <%= link_to_function('<span class="icon">&lt;&lt;</span> Close',
82
+ <%= link_to_function('<span class="icon">&lt;&lt;</span> '+_('Close'),
83
83
  visual_effect(:BlindUp, "eltNew_#{elt.id}")+
84
84
  visual_effect(:BlindUp, "eltSubsClose_#{elt.id}")+
85
85
  visual_effect(:BlindUp, "eltSubs_#{elt.id}")+
@@ -15,14 +15,14 @@
15
15
  <%= hidden_field 'elt', 'parent_id' %></p>
16
16
 
17
17
  <p style="display:<%= 'none' if @person.name != nil %>">
18
- <label for="person_name">Proposed by</label>
18
+ <label for="person_name"><%= _('Proposed by') %></label>
19
19
  <%= text_field 'person', 'name' %>
20
20
  </p>
21
21
 
22
22
  <!-- <p><label for="elt_subject">Title</label><br/> -->
23
23
  <%= text_field 'elt', 'subject' %>
24
24
 
25
- <label for="elt_position">Position</label>
25
+ <label for="elt_position"><%= _('Position') %></label>
26
26
  <%= text_field 'elt', 'position', 'size' => 1, 'align' => 'right' %>
27
27
 
28
28
  <label for="elt_body"></label><br/>
@@ -1,4 +1,4 @@
1
- <% @flash.each do |key, value| %>
1
+ <% flash.each do |key, value| %>
2
2
  <div class="<%= key %>"><%= value %></div>
3
3
  <% end %>
4
4
 
@@ -18,68 +18,21 @@
18
18
  <%= text_field 'elt', 'subject' %>
19
19
 
20
20
  <%= render :partial => '/help',
21
- :locals => { :divId => 'title'+@elt.parent_id, :content => '
22
- This is the title of your proposition.
23
- <br/>
24
- If you leave it as it is then it won\'t be displayed (recommanded if your
25
- text is short, like in a conversation).
26
- ' } %>
21
+ :locals => { :divId => 'title'+@elt.parent_id, :content => _('This is the title of your proposition.<br/>If you leave it as it is then it won\'t be displayed (recommanded if your text is short, like in a conversation).') } %>
27
22
  </h2>
28
23
 
29
24
  <%= text_area 'elt', 'body' %>
30
25
 
31
26
  <div class="eltNewButtons">
32
- <%= render :partial => '/help',
33
- :locals => { :divId => 'body'+@elt.parent_id, :content => '
34
- _<em>emphasis</em>_ *<strong>strong</strong>* -<span
35
- style="text-decoration:line-through;">strike-through</span>- +added+
36
- ^<sup>sup</sup>^ ~<sub>sub</sub>~
37
- <div>bg. blockquote =&gt; </div>
38
- <blockquote>blockquote</blockquote>
39
- "Google":http://google.com =&gt; <a href="http://google.com">Google</a>
40
- <br/>
41
- <pre>@code@</pre>
42
- <div style="float:left">
43
- ordered list
44
- <br/>
45
- # first item
46
- <br/>
47
- # second item
48
- <br/>
49
- # third item
50
- </div>
51
- <div style="margin-left:10em">
52
- <ol>ordered list
53
- <li>first item</li>
54
- <li>second item</li>
55
- <li>third item</li>
56
- </ol>
57
- </div>
58
- <div style="float:left">
59
- unordered list
60
- <br/>
61
- * item
62
- <br/>
63
- * item
64
- <br/>
65
- * item
66
- </div>
67
- <div style="margin-left:10em">
68
- <ul>unordered list
69
- <li>item</li>
70
- <li>item</li>
71
- <li>item</li>
72
- </ul>
73
- </div>
74
- <a href="http://hobix.com/textile/quick.html">Textile Reference</a>
75
- ' } %>
76
-
77
- <%= submit_to_remote('Preview', 'preview',
27
+ <%= submit_to_remote(_('Preview'), _('Preview'),
78
28
  :update => "eltNewPreview_"+@elt.parent_id,
79
29
  :url => { :action => "create", :id => @elt.parent, :submit => "preview" },
80
30
  :loading => visual_effect(:BlindDown, 'eltNewPreview_'+@elt.parent_id)) %>
81
31
 
82
- <%= submit_tag 'Propose!' %>
32
+ <%= submit_tag _('Propose!') %>
33
+
34
+ <%= render :partial => '/help',
35
+ :locals => { :divId => 'body'+@elt.parent_id, :content => _('_<em>emphasis</em>_ *<strong>strong</strong>* -<span style="text-decoration: line-through;">strike-through</span>- +added+^<sup>sup</sup>^ ~<sub>sub</sub>~<div>bg. blockquote =&gt; </div><blockquote>blockquote</blockquote> "Google":http://google.com =&gt; <a href="http://google.com">Google</a><br/><pre>@code@</pre><div style="float:left">ordered list<br/># first item<br/># second item<br/># third item</div><div style="margin-left:10em"><ol>ordered list<li>first item</li><li>second item</li><li>third item</li></ol></div><div style="float:left">unordered list<br/>* item<br/>* item<br/>* item</div><div style="margin-left:10em"><ul>unordered list<li>item</li><li>item</li><li>item</li></ul></div><a href="http://hobix.com/textile/quick.html">Textile Reference</a>') } %>
83
36
  </div>
84
37
  <% end %>
85
38
 
@@ -1,11 +1,11 @@
1
1
  <% voters = Choice.count :select => 'person_id', :distinct => true %>
2
2
  <div class="sidebar">
3
- <h3 class="boxTitle">Identity</h3>
3
+ <h3 class="boxTitle"><%= _('Identity')%></h3>
4
4
  <div class="box" id="identity"><%= render :partial => 'account/show' %></div>
5
5
 
6
- <h3 class="boxTitle">Filter</h3>
6
+ <h3 class="boxTitle"><%= _('Filter') %></h3>
7
7
  <div class="box">
8
- <div>All voters: <span class="result"><%= voters %></span></div>
8
+ <div><%= _('All voters:') %> <span class="result"><%= voters %></span></div>
9
9
  <form id="filterForm" name="filterForm">
10
10
  <a onclick="return decrementFilter()" href="#" accesskey="<">&lt;</a>
11
11
  <select id="filter" name="filter"
@@ -19,16 +19,46 @@
19
19
  <script>setFilterFromCookie();</script>
20
20
  </div>
21
21
 
22
- <h3 class="boxTitle">Subscribers</h3>
22
+ <h3 class="boxTitle"><%= _('Subscribers') %></h3>
23
23
  <div class="box"><%= render :partial => '/subscriber/list' %></div>
24
24
 
25
- <h3 class="boxTitle">Highest posts</h3>
25
+ <h3 class="boxTitle"><%= _('Highest posts') %></h3>
26
26
  <div class="box listByVote"><%= render :partial => '/elt/listByVote' %></div>
27
27
 
28
- <h3 class="boxTitle">Latest posts</h3>
28
+ <h3 class="boxTitle"><%= _('Latest posts') %></h3>
29
29
  <div class="box listByDate"><%= render :partial => '/elt/listByDate' %></div>
30
30
 
31
- <h3 class="boxTitle">Search</h3>
31
+ <h3 class="boxTitle"><%= _('Links') %></h3>
32
+ <div class="box">
33
+ <h4><%= _('Personal') %></h4>
34
+ <div class="boxLine"><a href="http://www.alivrouvert.com">
35
+ À Livr&#8217; Ouvert</a></div>
36
+ <div class="boxLine"><a href="http://www.baratissus.com">
37
+ Le bar à tissus</a></div>
38
+
39
+ <div class="boxLine"><a href="http://echarp.org/blog">
40
+ echarp's blog</a></div>
41
+ <div class="boxLine"><a href="http://www-inf.int-evry.fr/~olberger/weblog/">
42
+ Olivier's</a></div>
43
+ <div class="boxLine"><a href="http://www.couchet.org/blog/">
44
+ mad&#8217;s</a></div>
45
+ <div class="boxLine"><a href="http://www.grassouille.org/blog/">
46
+ benj&#8217;s</a></div>
47
+
48
+ <h4><%= _('Democracy') %></h4>
49
+ <div class="boxLine"><a href="http://worldblu.com">
50
+ World BLU</a></div>
51
+ <div class="boxLine"><a href="http://groups.google.com/group/top-politics">
52
+ top politics</a></div>
53
+ <div class="boxLine"><a href="http://www.tdge.org">
54
+ world Parliament Experiment</a></div>
55
+ <div class="boxLine"><a href="http://groups.google.com/group/worldcit">
56
+ The Community of World Citizens</a></div>
57
+ <div class="boxLine"><a href="http://world-wide.democracy.net">
58
+ Worldwide Direct Democracy Movement</a></div>
59
+ </div>
60
+
61
+ <h3 class="boxTitle"><%= _('Search') %></h3>
32
62
  <div class="box">
33
63
  <form action="http://google.com/search">
34
64
  <input type="hidden" name="q"
@@ -37,6 +67,55 @@
37
67
  <%= submit_tag 'OK' %>
38
68
  </form>
39
69
  </div>
70
+
71
+ <!--
72
+ <table width="100%" bgcolor="#FFFFFF" style="font-size: smaller">
73
+ <tr>
74
+ <td align="center">
75
+ <img src="http://www.acthum.net/directdemocracy/images/dd-sml.gif">
76
+ </td>
77
+ <td colspan="3">
78
+ <b><font size="3">DIRECT DEMOCRACY</font></b>
79
+ <br/>
80
+ <font size="4">Web Ring</font>
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td align="center">
85
+ <a href="http://www.acthum.net/directdemocracy/">
86
+ <font color="#0000FF">Home</font>
87
+ </a>
88
+ </td>
89
+ <td width="47%" align="center" colspan="2">
90
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/rand.pl?ringid=common1;siteid=parlement">
91
+ <font color="#0000FF">Random Site</font></a>
92
+ </td>
93
+ <td width="23%" align="center">
94
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/list.pl?ringid=common1;siteid=parlement">
95
+ <font color="#0000FF">Site List</font>
96
+ </a>
97
+ </td>
98
+ </tr>
99
+ <tr>
100
+ <td align="center">
101
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/prev.pl?ringid=common1;siteid=parlement">
102
+ <font color="#0000FF">Previous</font></a>
103
+ </td>
104
+ <td width="24%" align="center">
105
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/next.pl?ringid=common1;siteid=parlement">
106
+ <font color="#0000FF">Next</font></a>
107
+ </td>
108
+ <td width="23%" align="center">
109
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/prev5.pl?ringid=common1;siteid=parlement">
110
+ <font color="#0000FF">Previous 5</font></a>
111
+ </td>
112
+ <td width="23%" align="center">
113
+ <a href="http://www.software-zone.com/cgi-bin/ringlink/next5.pl?ringid=common1;siteid=parlement">
114
+ <font color="#0000FF">Next 5</font></a>
115
+ </td>
116
+ </tr>
117
+ </table>
118
+ -->
40
119
  </div>
41
120
 
42
121
  <% flash.each do |key, value| %>
@@ -50,7 +50,7 @@
50
50
  <div class="links">
51
51
  <a class="title" href="http://leparlement.org">Parlement</a>
52
52
  <span class="signets">
53
- <a href="/people">people</a>
53
+ <a href="/people"><%= _('people') %></a>
54
54
  <a href="http://rubyforge.org/projects/parlement">forge</a>
55
55
  <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>
56
56
  <a id="fr" href="/fr">fr</a>
@@ -48,7 +48,7 @@
48
48
  <% for elt in e[0...PAGE_LENGTH] %>
49
49
  <li class="elt">
50
50
  <span class="author">&lt;<%= elt.created_on.strftime('%d/%m %H:%M') %>&gt;</span>
51
- <%= link_to elt.subject.gsub(/\[.*\]/, ''), :controller => 'elt', :action => 'show', :id => elt %>
51
+ <%= link_to elt.subject.gsub(/\[.*\]/, ''), :id => elt, :controller => 'elt', :action => 'show' %>
52
52
  (<%= elt.children.size %> sub element(s))
53
53
  <span class="choice result"><%= sprintf("%+d", elt.result) %></span>
54
54
  <% "&#160;"*22 %>
@@ -1,24 +1,11 @@
1
- Welcome to <%= @app_name %>, <%= @name %>.
1
+ <%= _('Welcome to %s') % @app_name %>, <%= @name %>.
2
2
 
3
- Please click on the following link to confirm your email:
4
- <a href="<%= @url%>">Click me!</a>
3
+ <%= _('Please click on the following link to confirm your email:') %>
4
+ <a href="<%= @url%>"><%= _('Click me!') %></a>
5
5
 
6
6
  <%= @url %>
7
7
 
8
- If you received this email by mistake, just ignore it.
8
+ <%= _('If you received this email by mistake, just ignore it.') %>
9
9
 
10
- Thank you
11
-
12
- ====================================================================
13
-
14
- Bienvenue à <%= @app_name %>, <%= @name %>.
15
-
16
- Veuillez cliquer sur le lien ci dessous pour confirmer votre email:
17
- <a href="<%= @url%>">cliquez moi</a>
18
-
19
- <%= @url %>
20
-
21
- Si vous avez reçu ce mail par erreur, ignorez le tout simplement.
22
-
23
- Merci
10
+ <%= _('Thank you') %>
24
11
 
@@ -8,11 +8,11 @@
8
8
 
9
9
  <div id="subscriptionLink" class="boxLineR"
10
10
  <%= "style='display: none'" unless session[:person] %> >
11
- <%= link_to_remote 'Add/remove me!',
11
+ <%= link_to_remote _('Add/remove me!'),
12
12
  :update => 'subscription',
13
13
  :url => { :controller => 'subscriber', :action => 'subscribe', :id => @elt },
14
- :before => visual_effect(:BlindUp, 'subscription'),
15
- :loaded => visual_effect(:BlindDown, 'subscription') %>
14
+ :before => visual_effect(:BlindUp, 'subscription', { :queue => 'end' }),
15
+ :loaded => visual_effect(:BlindDown, 'subscription', { :queue => 'end' }) %>
16
16
  </div>
17
17
  </div>
18
18
 
@@ -64,6 +64,8 @@ require 'rails_file_column'
64
64
  require 'jcode'
65
65
  $KCODE = 'u'
66
66
 
67
+ require 'gettext/rails'
68
+
67
69
  # What is the name of a quick anonymous poster
68
70
  ANONYMOUS_POSTER = 'anon'
69
71
 
@@ -110,5 +112,5 @@ end
110
112
 
111
113
  Rubaidh::GoogleAnalytics.tracker_id = 'UA-317241-1'
112
114
 
113
- PARLEMENT_VERSION='0.11'
115
+ PARLEMENT_VERSION='0.12'
114
116
 
data/config/routes.rb CHANGED
@@ -19,19 +19,20 @@ ActionController::Routing::Routes.draw do |map|
19
19
  map.connect ':id//index.rss', :controller => 'elt', :action => 'rss'
20
20
  map.connect ':id//vote.rss', :controller => 'elt', :action => 'vote_rss'
21
21
 
22
- map.connect 'perso/:id', :controller => 'elt', :action => 'show'
23
- map.connect 'perso/:id/index.rss', :controller => 'elt', :action => 'rss'
24
- map.connect 'perso/blog/:id', :controller => 'elt'
25
- map.connect 'perso/blog/:id/index.rss', :controller => 'elt', :action => 'rss'
26
- map.connect 'perso/blog/:id/vote.rss', :controller => 'elt', :action => 'vote_rss'
27
-
28
22
  # Allow downloading Web Service WSDL as a file with an extension
29
23
  # instead of a file named 'wsdl'
30
24
  #map.connect ':controller/service.wsdl', :action => 'wsdl'
31
25
 
26
+ map.connect ':id', :controller => 'elt', :action => 'rss', :requirements => { :id => /.*\.rss/ }
27
+ map.connect ':id', :controller => 'elt', :action => 'show'
28
+
32
29
  # Install the default route as the lowest priority.
33
30
  map.connect ':controller/:action/:id'
34
31
 
35
- map.connect ':id', :controller => 'elt', :action => 'rss', :requirements => { :id => /.*\.rss/ }
36
- map.connect ':id', :controller => 'elt', :action => 'show'
32
+ map.connect 'perso/:id', :controller => 'elt', :action => 'show'
33
+ map.connect 'perso/:id/index.rss', :controller => 'elt', :action => 'rss'
34
+ map.connect 'perso/blog/:id', :controller => 'elt'
35
+ map.connect 'perso/blog/:id/index.rss', :controller => 'elt', :action => 'rss'
36
+ map.connect 'perso/blog/:id/vote.rss', :controller => 'elt', :action => 'vote_rss'
37
37
  end
38
+
@@ -70,7 +70,7 @@ h1 input {
70
70
  #elt_fr > * > h1 a {
71
71
  display: none; }
72
72
 
73
- a:link, select, input[type='Button'], input[type='submit'] { color: #3b76ae; }
73
+ legend, a:link, select, input[type='Button'], input[type='submit'] { color: #3b76ae; }
74
74
  a:visited { color: #1b568e; }
75
75
  a:hover, a:active, select:hover, input[type='Button']:hover, input[type='submit']:hover { color: purple; }
76
76
  a:active, input[type='Button']:active, input[type='submit']:active { color: orange; }
@@ -195,14 +195,13 @@ h1 .help {
195
195
  font-weight: bolder; }
196
196
 
197
197
  #identity form { display: block; }
198
- #identity form.setAvatar, #identity #edit, #identity iframe { display: none; }
199
- #identity:hover form.setAvatar, #identity:hover #edit { display: block; }
198
+ #identity #edit, #identity iframe { display: none; }
199
+ #identity:hover #edit { display: block; }
200
200
  #identity fieldset#edit {
201
201
  border: solid thin yellow;
202
202
  padding: 0.5em 0;
203
203
  margin: 0.5em 0; }
204
204
  #identity fieldset#edit label { color: #3b76ae; }
205
- #identity fieldset#edit legend { color: #333; }
206
205
  img.avatar {
207
206
  float: left;
208
207
  width: auto;
@@ -240,6 +239,12 @@ div#listByDate .result, div#listByVote .result {
240
239
 
241
240
  div#subscription + .boxLine + .boxLineR { font-size: smaller; }
242
241
 
242
+ .box h4 {
243
+ margin: 0;
244
+ padding: 0;
245
+ color: #333;
246
+ font-style: italic; }
247
+
243
248
  /* _ _
244
249
  ___| | |_
245
250
  / _ \ | __|
@@ -2,14 +2,14 @@ module Rubaidh # :nodoc:
2
2
  module GoogleAnalyticsMixin
3
3
  def google_analytics_code(request = nil)
4
4
  return unless GoogleAnalytics.enabled?
5
- GoogleAnalytics.new.google_analytics_code(request)
5
+ GoogleAnalytics.google_analytics_code(request)
6
6
  end
7
7
 
8
8
  # An after_filter to automatically add the analytics code.
9
9
  def add_google_analytics_code
10
10
  code = google_analytics_code(request)
11
11
  return if code.blank?
12
- response.body.gsub! '</body>', code + '</body>'
12
+ response.body.gsub! '</body>', code + '</body>' if response.body.respond_to?(:gsub!)
13
13
  end
14
14
  end
15
15
 
@@ -49,7 +49,7 @@ module Rubaidh # :nodoc:
49
49
  not analytics_url.blank?)
50
50
  end
51
51
 
52
- def google_analytics_code(request = nil)
52
+ def self.google_analytics_code(request = nil)
53
53
  extra_code = domain_name.blank? ? nil : "_udn = \"#{domain_name}\";"
54
54
  url = (not request.blank? and request.ssl?) ? analytics_ssl_url : analytics_url
55
55
 
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2006 Sean Treadway
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,42 @@
1
+ RespondsToParent
2
+ ================
3
+
4
+ Adds responds_to_parent to your controller to respond to the parent document of your page.
5
+ Make Ajaxy file uploads by posting the form to a hidden iframe, and respond with
6
+ RJS to the parent window.
7
+
8
+ Example
9
+ =======
10
+
11
+ Controller:
12
+
13
+ class Test < ActionController::Base
14
+ def main
15
+ end
16
+
17
+ def form_action
18
+ # Do stuff with params[:uploaded_file]
19
+
20
+ responds_to_parent do
21
+ render :update do |page|
22
+ page << "alert($('stuff').innerHTML)"
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ main.rhtml:
29
+
30
+ <html>
31
+ <body>
32
+ <div id="stuff">Here is some stuff</div>
33
+
34
+ <form target="frame" action="form_action">
35
+ <input type="file" name="uploaded_file"/>
36
+ <input type="submit"/>
37
+ </form>
38
+
39
+ <iframe id='frame' name="frame"></iframe>
40
+ </body>
41
+ </html>
42
+
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ desc 'Default: run unit tests.'
6
+ task :default => :test
7
+
8
+ desc 'Test the responds_to_parent plugin.'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.pattern = 'test/**/*_test.rb'
12
+ t.verbose = true
13
+ end
14
+
15
+ desc 'Generate documentation for the responds_to_parent plugin.'
16
+ Rake::RDocTask.new(:rdoc) do |rdoc|
17
+ rdoc.rdoc_dir = 'rdoc'
18
+ rdoc.title = 'RespondsToParent'
19
+ rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.rdoc_files.include('README')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
@@ -0,0 +1 @@
1
+ ActionController::Base.send :include, RespondsToParent
@@ -0,0 +1,46 @@
1
+ # Module containing the methods useful for child IFRAME to parent window communication
2
+ module RespondsToParent
3
+
4
+ # Executes the response body as JavaScript in the context of the parent window.
5
+ # Use this method of you are posting a form to a hidden IFRAME or if you would like
6
+ # to use IFRAME base RPC.
7
+ def responds_to_parent(&block)
8
+ yield
9
+
10
+ if performed?
11
+ # We're returning HTML instead of JS or XML now
12
+ response.headers['Content-Type'] = 'text/html; charset=UTF-8'
13
+
14
+ # Either pull out a redirect or the request body
15
+ script = if location = erase_redirect_results
16
+ "document.location.href = #{location.to_s.inspect}"
17
+ else
18
+ response.body
19
+ end
20
+
21
+ # Escape quotes, linebreaks and slashes, maintaining previously escaped slashes
22
+ # Suggestions for improvement?
23
+ script = (script || '').
24
+ gsub('\\', '\\\\\\').
25
+ gsub(/\r\n|\r|\n/, '\\n').
26
+ gsub(/['"]/, '\\\\\&').
27
+ gsub('</script>','</scr"+"ipt>')
28
+
29
+ # Clear out the previous render to prevent double render
30
+ erase_results
31
+
32
+ # Eval in parent scope and replace document location of this frame
33
+ # so back button doesn't replay action on targeted forms
34
+ # loc = document.location to be set after parent is updated for IE
35
+ # with(window.parent) - pull in variables from parent window
36
+ # setTimeout - scope the execution in the windows parent for safari
37
+ # window.eval - legal eval for Opera
38
+ render :text => "<html><body><script type='text/javascript' charset='utf-8'>
39
+ var loc = document.location;
40
+ with(window.parent) { setTimeout(function() { window.eval('#{script}'); loc.replace('about:blank'); }, 1) }
41
+ </script></body></html>"
42
+ end
43
+ end
44
+ alias respond_to_parent responds_to_parent
45
+ end
46
+
@@ -0,0 +1,115 @@
1
+ require File.dirname(__FILE__) + '/../../../../config/environment'
2
+ require 'test/unit'
3
+ require 'test_help'
4
+
5
+ class IFrameController < ActionController::Base
6
+ def normal
7
+ render :update do |page|
8
+ page.alert "foo"
9
+ end
10
+ end
11
+
12
+ def aliased
13
+ respond_to_parent do
14
+ render :text => 'woot'
15
+ end
16
+ end
17
+
18
+ def redirect
19
+ responds_to_parent do
20
+ redirect_to '/another/place'
21
+ end
22
+ end
23
+
24
+ def no_block
25
+ responds_to_parent
26
+ end
27
+
28
+ def empty_render
29
+ responds_to_parent do
30
+ end
31
+
32
+ render :text => ''
33
+ end
34
+
35
+ def quotes
36
+ responds_to_parent do
37
+ render :text => %(single' double" qs\\' qd\\" escaped\\\' doubleescaped\\\\')
38
+ end
39
+ end
40
+
41
+ def newlines
42
+ responds_to_parent do
43
+ render :text => "line1\nline2\\nline2"
44
+ end
45
+ end
46
+
47
+ def update
48
+ responds_to_parent do
49
+ render :update do |page|
50
+ page.alert 'foo'
51
+ page.alert 'bar'
52
+ end
53
+ end
54
+ end
55
+
56
+ def rescue_action(e)
57
+ raise e
58
+ end
59
+ end
60
+
61
+ class RespondsToParentTest < Test::Unit::TestCase
62
+ def setup
63
+ @controller = IFrameController.new
64
+ @request = ActionController::TestRequest.new
65
+ @response = ActionController::TestResponse.new
66
+ end
67
+
68
+ def test_normal
69
+ get :normal
70
+ assert_match /alert\("foo"\)/, @response.body
71
+ assert_no_match /window\.parent/, @response.body
72
+ end
73
+
74
+ def test_quotes_should_be_escaped
75
+ render :quotes
76
+ assert_match %r{eval\('single\\' double\\" qs\\\\\\' qd\\\\\\" escaped\\\\\\' doubleescaped\\\\\\\\\\'}, @response.body
77
+ end
78
+
79
+ def test_newlines_should_be_escaped
80
+ render :newlines
81
+ assert_match %r{eval\('line1\\nline2\\\\nline2'\)}, @response.body
82
+ end
83
+
84
+ def test_no_block_should_raise
85
+ assert_raises LocalJumpError do
86
+ get :no_block
87
+ end
88
+ end
89
+
90
+ def test_empty_render_should_not_expand_javascript
91
+ get :empty_render
92
+ assert_equal '', @response.body
93
+ end
94
+
95
+ def test_update_should_perform_combined_rjs
96
+ render :update
97
+ assert_match /alert\(\\"foo\\"\);\\nalert\(\\"bar\\"\)/, @response.body
98
+ end
99
+
100
+ def test_aliased_method_should_not_raise
101
+ assert_nothing_raised do
102
+ render :aliased
103
+ assert_match /eval\('woot'\)/, @response.body
104
+ end
105
+ end
106
+
107
+ protected
108
+
109
+ def render(action)
110
+ get action
111
+ assert_match /<script type='text\/javascript'/, @response.body
112
+ assert_match /with\(window\.parent\)/, @response.body
113
+ assert_match /document\.location\.replace\('about:blank'\)/, @response.body
114
+ end
115
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: parlement
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.11"
7
- date: 2007-02-24 00:00:00 +01:00
6
+ version: "0.12"
7
+ date: 2007-04-21 00:00:00 +02:00
8
8
  summary: Trusted Direct Democracy on a forum
9
9
  require_paths:
10
10
  - lib
@@ -35,10 +35,6 @@ files:
35
35
  - CHANGES
36
36
  - MEMORY
37
37
  - app/models
38
- - app/controllers
39
- - app/apis
40
- - app/views
41
- - app/helpers
42
38
  - app/models/mail_notify.rb
43
39
  - app/models/user_notify.rb
44
40
  - app/models/person.rb
@@ -49,30 +45,31 @@ files:
49
45
  - app/models/person_mail.rb
50
46
  - app/models/person_notify.rb
51
47
  - app/models/user.rb
48
+ - app/controllers
52
49
  - app/controllers/account_controller.rb
53
50
  - app/controllers/application.rb
54
51
  - app/controllers/subscriber_controller.rb
55
52
  - app/controllers/person_controller.rb
56
53
  - app/controllers/elt_controller.rb
54
+ - app/apis
55
+ - app/views
57
56
  - app/views/_help.rhtml
58
57
  - app/views/person
59
- - app/views/account
60
- - app/views/mail_notify
61
- - app/views/layouts
62
- - app/views/elt
63
- - app/views/subscriber
64
- - app/views/person_notify
65
58
  - app/views/person/_listElts.rhtml
66
59
  - app/views/person/show.rhtml
60
+ - app/views/account
67
61
  - app/views/account/welcome.rhtml
68
62
  - app/views/account/logout.rhtml
69
63
  - app/views/account/_show.rhtml
70
64
  - app/views/account/_login.rhtml
71
65
  - app/views/account/signup.rhtml
66
+ - app/views/mail_notify
72
67
  - app/views/mail_notify/publish.text.html.rhtml
73
68
  - app/views/mail_notify/publish.text.plain.rhtml
69
+ - app/views/layouts
74
70
  - app/views/layouts/scaffold.rhtml
75
71
  - app/views/layouts/top.rhtml
72
+ - app/views/elt
76
73
  - app/views/elt/vote_rss.rxml
77
74
  - app/views/elt/show_tree.rhtml
78
75
  - app/views/elt/_listByVote.rhtml
@@ -85,8 +82,11 @@ files:
85
82
  - app/views/elt/show.rhtml
86
83
  - app/views/elt/_listByDate.rhtml
87
84
  - app/views/elt/_form.rhtml
85
+ - app/views/subscriber
88
86
  - app/views/subscriber/_list.rhtml
87
+ - app/views/person_notify
89
88
  - app/views/person_notify/setEmail.rhtml
89
+ - app/helpers
90
90
  - app/helpers/mailman.rb
91
91
  - app/helpers/elt_helper.rb
92
92
  - app/helpers/subscriber_helper.rb
@@ -95,40 +95,35 @@ files:
95
95
  - app/helpers/live_tree.rb
96
96
  - app/helpers/person_helper.rb
97
97
  - config/environments
98
- - config/database.yml
99
- - config/routes.rb
100
- - config/boot.rb
101
- - config/environment.rb
102
98
  - config/environments/development.rb
103
99
  - config/environments/production.rb
104
100
  - config/environments/test.rb
105
101
  - config/environments/user_environment.rb
102
+ - config/database.yml
103
+ - config/routes.rb
104
+ - config/boot.rb
105
+ - config/environment.rb
106
106
  - db/schema.sql
107
107
  - db/migrate
108
- - db/ROOT
109
- - db/development_structure.sql
110
- - db/schema.rb
111
108
  - db/migrate/005_filter_mail.rb
112
109
  - db/migrate/001_create_choices.rb
113
110
  - db/migrate/002_nested_set.rb
114
111
  - db/migrate/003_elt_children_count.rb
115
112
  - db/migrate/004_people_image.rb
116
113
  - db/migrate/006_last_activity.rb
114
+ - db/ROOT
117
115
  - db/ROOT/perso
118
116
  - db/ROOT/parlement.txt
119
117
  - db/ROOT/parlement
120
- - db/ROOT/parleR.txt
121
- - db/ROOT/fr.txt
122
- - db/ROOT/mail.txt
123
118
  - db/ROOT/parlement/ddRing.txt
124
119
  - db/ROOT/parlement/our-constitution.txt
125
120
  - db/ROOT/parlement/test.txt
126
121
  - db/ROOT/parlement/Security
122
+ - db/ROOT/parlement/Security/anonymity.txt
127
123
  - db/ROOT/parlement/top-politics.txt
128
124
  - db/ROOT/parlement/security.txt
129
125
  - db/ROOT/parlement/news.txt
130
126
  - db/ROOT/parlement/News
131
- - db/ROOT/parlement/Security/anonymity.txt
132
127
  - db/ROOT/parlement/News/Version_01.txt
133
128
  - db/ROOT/parlement/News/Version_02.txt
134
129
  - db/ROOT/parlement/News/Version_07.txt
@@ -137,6 +132,11 @@ files:
137
132
  - db/ROOT/parlement/News/Version_06.txt
138
133
  - db/ROOT/parlement/News/Version_05.txt
139
134
  - db/ROOT/parlement/News/Version_03.txt
135
+ - db/ROOT/parleR.txt
136
+ - db/ROOT/fr.txt
137
+ - db/ROOT/mail.txt
138
+ - db/development_structure.sql
139
+ - db/schema.rb
140
140
  - lib/user_system.rb
141
141
  - lib/data_import.rb
142
142
  - lib/localizer.rb
@@ -206,30 +206,11 @@ files:
206
206
  - script/console
207
207
  - vendor/plugins
208
208
  - vendor/plugins/engines
209
- - vendor/plugins/file_column
210
- - vendor/plugins/google_analytics
211
- - vendor/plugins/output_compression
212
- - vendor/plugins/login_engine
213
209
  - vendor/plugins/engines/Rakefile
214
210
  - vendor/plugins/engines/lib
215
- - vendor/plugins/engines/about.yml
216
- - vendor/plugins/engines/UPGRADING
217
- - vendor/plugins/engines/CHANGELOG
218
- - vendor/plugins/engines/README
219
- - vendor/plugins/engines/init.rb
220
- - vendor/plugins/engines/install.rb
221
- - vendor/plugins/engines/tasks
222
- - vendor/plugins/engines/generators
223
- - vendor/plugins/engines/MIT-LICENSE
224
211
  - vendor/plugins/engines/lib/engines
225
- - vendor/plugins/engines/lib/engines.rb
226
212
  - vendor/plugins/engines/lib/engines/plugin.rb
227
213
  - vendor/plugins/engines/lib/engines/rails_extensions
228
- - vendor/plugins/engines/lib/engines/testing.rb
229
- - vendor/plugins/engines/lib/engines/plugin_migrator.rb
230
- - vendor/plugins/engines/lib/engines/deprecated_config_support.rb
231
- - vendor/plugins/engines/lib/engines/rails_extensions.rb
232
- - vendor/plugins/engines/lib/engines/plugin_list.rb
233
214
  - vendor/plugins/engines/lib/engines/rails_extensions/routing.rb
234
215
  - vendor/plugins/engines/lib/engines/rails_extensions/rails_initializer.rb
235
216
  - vendor/plugins/engines/lib/engines/rails_extensions/templates.rb
@@ -238,95 +219,118 @@ files:
238
219
  - vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb
239
220
  - vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb
240
221
  - vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb
222
+ - vendor/plugins/engines/lib/engines/testing.rb
223
+ - vendor/plugins/engines/lib/engines/plugin_migrator.rb
224
+ - vendor/plugins/engines/lib/engines/deprecated_config_support.rb
225
+ - vendor/plugins/engines/lib/engines/rails_extensions.rb
226
+ - vendor/plugins/engines/lib/engines/plugin_list.rb
227
+ - vendor/plugins/engines/lib/engines.rb
228
+ - vendor/plugins/engines/about.yml
229
+ - vendor/plugins/engines/UPGRADING
230
+ - vendor/plugins/engines/CHANGELOG
231
+ - vendor/plugins/engines/README
232
+ - vendor/plugins/engines/init.rb
233
+ - vendor/plugins/engines/install.rb
234
+ - vendor/plugins/engines/tasks
241
235
  - vendor/plugins/engines/tasks/engines.rake
236
+ - vendor/plugins/engines/generators
242
237
  - vendor/plugins/engines/generators/plugin_migration
243
238
  - vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb
244
239
  - vendor/plugins/engines/generators/plugin_migration/USAGE
245
240
  - vendor/plugins/engines/generators/plugin_migration/templates
246
241
  - vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb
242
+ - vendor/plugins/engines/MIT-LICENSE
243
+ - vendor/plugins/file_column
247
244
  - vendor/plugins/file_column/Rakefile
248
245
  - vendor/plugins/file_column/test
249
- - vendor/plugins/file_column/lib
250
- - vendor/plugins/file_column/CHANGELOG
251
- - vendor/plugins/file_column/README
252
- - vendor/plugins/file_column/init.rb
253
- - vendor/plugins/file_column/TODO
254
246
  - vendor/plugins/file_column/test/magick_test.rb
255
247
  - vendor/plugins/file_column/test/fixtures
256
- - vendor/plugins/file_column/test/magick_view_only_test.rb
257
- - vendor/plugins/file_column/test/file_column_helper_test.rb
258
- - vendor/plugins/file_column/test/public
259
- - vendor/plugins/file_column/test/abstract_unit.rb
260
- - vendor/plugins/file_column/test/connection.rb
261
- - vendor/plugins/file_column/test/file_column_test.rb
262
248
  - vendor/plugins/file_column/test/fixtures/invalid-image.jpg
263
249
  - vendor/plugins/file_column/test/fixtures/mysql.sql
264
250
  - vendor/plugins/file_column/test/fixtures/entry.rb
265
251
  - vendor/plugins/file_column/test/fixtures/kerb.jpg
266
252
  - vendor/plugins/file_column/test/fixtures/skanthak.png
267
253
  - vendor/plugins/file_column/test/fixtures/schema.rb
254
+ - vendor/plugins/file_column/test/magick_view_only_test.rb
255
+ - vendor/plugins/file_column/test/file_column_helper_test.rb
256
+ - vendor/plugins/file_column/test/public
257
+ - vendor/plugins/file_column/test/abstract_unit.rb
258
+ - vendor/plugins/file_column/test/connection.rb
259
+ - vendor/plugins/file_column/test/file_column_test.rb
260
+ - vendor/plugins/file_column/lib
268
261
  - vendor/plugins/file_column/lib/file_column.rb
269
262
  - vendor/plugins/file_column/lib/file_column_helper.rb
270
263
  - vendor/plugins/file_column/lib/validations.rb
271
264
  - vendor/plugins/file_column/lib/rails_file_column.rb
272
265
  - vendor/plugins/file_column/lib/magick_file_column.rb
273
266
  - vendor/plugins/file_column/lib/file_compat.rb
267
+ - vendor/plugins/file_column/CHANGELOG
268
+ - vendor/plugins/file_column/README
269
+ - vendor/plugins/file_column/init.rb
270
+ - vendor/plugins/file_column/TODO
271
+ - vendor/plugins/google_analytics
274
272
  - vendor/plugins/google_analytics/Rakefile
275
273
  - vendor/plugins/google_analytics/test
276
- - vendor/plugins/google_analytics/lib
277
- - vendor/plugins/google_analytics/README
278
- - vendor/plugins/google_analytics/init.rb
279
274
  - vendor/plugins/google_analytics/test/google_analytics_test.rb
275
+ - vendor/plugins/google_analytics/lib
280
276
  - vendor/plugins/google_analytics/lib/rubaidh
281
277
  - vendor/plugins/google_analytics/lib/rubaidh/google_analytics.rb
278
+ - vendor/plugins/google_analytics/README
279
+ - vendor/plugins/google_analytics/init.rb
280
+ - vendor/plugins/responds_to_parent
281
+ - vendor/plugins/responds_to_parent/Rakefile
282
+ - vendor/plugins/responds_to_parent/test
283
+ - vendor/plugins/responds_to_parent/test/responds_to_parent_test.rb
284
+ - vendor/plugins/responds_to_parent/lib
285
+ - vendor/plugins/responds_to_parent/lib/responds_to_parent.rb
286
+ - vendor/plugins/responds_to_parent/README
287
+ - vendor/plugins/responds_to_parent/init.rb
288
+ - vendor/plugins/responds_to_parent/MIT-LICENSE
289
+ - vendor/plugins/output_compression
282
290
  - vendor/plugins/output_compression/test
291
+ - vendor/plugins/output_compression/test/test_helper.rb
292
+ - vendor/plugins/output_compression/test/test_controller.rb
293
+ - vendor/plugins/output_compression/test/output_test.rb
283
294
  - vendor/plugins/output_compression/lib
295
+ - vendor/plugins/output_compression/lib/output_compression.rb
284
296
  - vendor/plugins/output_compression/rakefile
285
297
  - vendor/plugins/output_compression/CHANGELOG
286
298
  - vendor/plugins/output_compression/README
287
299
  - vendor/plugins/output_compression/init.rb
288
300
  - vendor/plugins/output_compression/MIT-LICENSE
289
- - vendor/plugins/output_compression/test/test_helper.rb
290
- - vendor/plugins/output_compression/test/test_controller.rb
291
- - vendor/plugins/output_compression/test/output_test.rb
292
- - vendor/plugins/output_compression/lib/output_compression.rb
301
+ - vendor/plugins/login_engine
293
302
  - vendor/plugins/login_engine/test
294
- - vendor/plugins/login_engine/lib
295
- - vendor/plugins/login_engine/CHANGELOG
296
- - vendor/plugins/login_engine/README
297
- - vendor/plugins/login_engine/app
298
- - vendor/plugins/login_engine/install.rb
299
- - vendor/plugins/login_engine/db
300
- - vendor/plugins/login_engine/public
301
- - vendor/plugins/login_engine/init_engine.rb
302
303
  - vendor/plugins/login_engine/test/fixtures
304
+ - vendor/plugins/login_engine/test/fixtures/users.yml
303
305
  - vendor/plugins/login_engine/test/test_helper.rb
304
306
  - vendor/plugins/login_engine/test/unit
305
- - vendor/plugins/login_engine/test/mocks
306
- - vendor/plugins/login_engine/test/functional
307
- - vendor/plugins/login_engine/test/fixtures/users.yml
308
307
  - vendor/plugins/login_engine/test/unit/user_test.rb
308
+ - vendor/plugins/login_engine/test/mocks
309
309
  - vendor/plugins/login_engine/test/mocks/time.rb
310
310
  - vendor/plugins/login_engine/test/mocks/mail.rb
311
+ - vendor/plugins/login_engine/test/functional
311
312
  - vendor/plugins/login_engine/test/functional/user_controller_test.rb
313
+ - vendor/plugins/login_engine/lib
312
314
  - vendor/plugins/login_engine/lib/login_engine.rb
313
315
  - vendor/plugins/login_engine/lib/login_engine
314
316
  - vendor/plugins/login_engine/lib/login_engine/authenticated_system.rb
315
317
  - vendor/plugins/login_engine/lib/login_engine/authenticated_user.rb
318
+ - vendor/plugins/login_engine/CHANGELOG
319
+ - vendor/plugins/login_engine/README
320
+ - vendor/plugins/login_engine/app
316
321
  - vendor/plugins/login_engine/app/models
317
- - vendor/plugins/login_engine/app/controllers
318
- - vendor/plugins/login_engine/app/views
319
- - vendor/plugins/login_engine/app/helpers
320
322
  - vendor/plugins/login_engine/app/models/user_notify.rb
321
323
  - vendor/plugins/login_engine/app/models/user.rb
324
+ - vendor/plugins/login_engine/app/controllers
322
325
  - vendor/plugins/login_engine/app/controllers/user_controller.rb
326
+ - vendor/plugins/login_engine/app/views
323
327
  - vendor/plugins/login_engine/app/views/user_notify
324
- - vendor/plugins/login_engine/app/views/user
325
328
  - vendor/plugins/login_engine/app/views/user_notify/pending_delete.rhtml
326
329
  - vendor/plugins/login_engine/app/views/user_notify/delete.rhtml
327
330
  - vendor/plugins/login_engine/app/views/user_notify/change_password.rhtml
328
331
  - vendor/plugins/login_engine/app/views/user_notify/forgot_password.rhtml
329
332
  - vendor/plugins/login_engine/app/views/user_notify/signup.rhtml
333
+ - vendor/plugins/login_engine/app/views/user
330
334
  - vendor/plugins/login_engine/app/views/user/login.rhtml
331
335
  - vendor/plugins/login_engine/app/views/user/home.rhtml
332
336
  - vendor/plugins/login_engine/app/views/user/edit.rhtml
@@ -336,11 +340,16 @@ files:
336
340
  - vendor/plugins/login_engine/app/views/user/_edit.rhtml
337
341
  - vendor/plugins/login_engine/app/views/user/signup.rhtml
338
342
  - vendor/plugins/login_engine/app/views/user/_password.rhtml
343
+ - vendor/plugins/login_engine/app/helpers
339
344
  - vendor/plugins/login_engine/app/helpers/user_helper.rb
345
+ - vendor/plugins/login_engine/install.rb
346
+ - vendor/plugins/login_engine/db
340
347
  - vendor/plugins/login_engine/db/migrate
341
348
  - vendor/plugins/login_engine/db/migrate/001_initial_schema.rb
349
+ - vendor/plugins/login_engine/public
342
350
  - vendor/plugins/login_engine/public/stylesheets
343
351
  - vendor/plugins/login_engine/public/stylesheets/login_engine.css
352
+ - vendor/plugins/login_engine/init_engine.rb
344
353
  test_files:
345
354
  - test/unit/attachment_test.rb
346
355
  - test/unit/mail_notify_test.rb