typo 5.4 → 5.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/CHANGELOG +23 -30
  2. data/Typo users guide.pdf +0 -0
  3. data/app/controllers/admin/content_controller.rb +28 -36
  4. data/app/controllers/admin/tags_controller.rb +4 -4
  5. data/app/controllers/articles_controller.rb +119 -1
  6. data/app/controllers/comments_controller.rb +0 -7
  7. data/app/controllers/content_controller.rb +1 -0
  8. data/app/helpers/admin/content_helper.rb +9 -28
  9. data/app/helpers/admin/themes_helper.rb +4 -6
  10. data/app/helpers/articles_helper.rb +4 -0
  11. data/app/models/article.rb +21 -12
  12. data/app/models/blog.rb +0 -1
  13. data/app/models/category.rb +1 -6
  14. data/app/models/content.rb +10 -6
  15. data/app/models/feedback/states.rb +6 -6
  16. data/app/models/tag.rb +8 -8
  17. data/app/views/admin/content/_drafts.html.erb +1 -1
  18. data/app/views/admin/content/_form.html.erb +7 -4
  19. data/app/views/admin/content/index.html.erb +3 -3
  20. data/app/views/admin/feedback/index.html.erb +4 -4
  21. data/app/views/admin/settings/feedback.html.erb +8 -7
  22. data/app/views/admin/settings/write.html.erb +71 -72
  23. data/app/views/admin/tags/index.html.erb +4 -4
  24. data/app/views/admin/themes/editor.html.erb +13 -10
  25. data/app/views/articles/_article.html.erb +6 -4
  26. data/bin/typo +25 -0
  27. data/config/initializers/access_rules.rb +4 -0
  28. data/config/routes.rb +2 -2
  29. data/db/schema.rb +32 -26
  30. data/db/schema.sqlite3.sql +3 -0
  31. data/lang/fr_FR.rb +46 -44
  32. data/lib/tasks/release.rake +1 -1
  33. data/lib/typo_version.rb +1 -1
  34. data/public/images/admin/loading.gif +0 -0
  35. data/public/images/closelabel.gif +0 -0
  36. data/public/stylesheets/administration.css +28 -8
  37. data/spec/controllers/admin/content_controller_spec.rb +91 -7
  38. data/spec/controllers/articles_controller_spec.rb +209 -0
  39. data/spec/controllers/comments_controller_spec.rb +0 -17
  40. data/spec/controllers/xml_controller_spec.rb +0 -5
  41. data/spec/factories.rb +8 -3
  42. data/spec/models/article_spec.rb +31 -4
  43. data/spec/models/configuration_spec.rb +0 -4
  44. data/spec/models/user_spec.rb +13 -0
  45. data/spec/spec_helper.rb +13 -0
  46. data/spec/views/articles/index_spec.rb +9 -11
  47. data/spec/views/articles/read_spec.rb +3 -5
  48. data/test/fixtures/blogs.yml +0 -1
  49. data/themes/dirtylicious/views/articles/_article.html.erb +6 -4
  50. data/themes/scribbish/views/articles/_article.html.erb +6 -4
  51. data/themes/standard_issue/views/articles/_article.html.erb +6 -4
  52. data/themes/true-blue-3/views/articles/_article.html.erb +8 -6
  53. data/themes/true-blue-3/views/categories/_article.html.erb +1 -1
  54. data/themes/typographic/views/articles/_article.html.erb +7 -5
  55. metadata +6 -8
  56. data/app/controllers/admin/previews_controller.rb +0 -10
  57. data/app/controllers/previews_controller.rb +0 -10
  58. data/app/controllers/redirect_controller.rb +0 -143
  59. data/app/helpers/redirect_helper.rb +0 -13
  60. data/spec/controllers/previews_controller_spec.rb +0 -28
  61. data/spec/controllers/redirect_controller_spec.rb +0 -165
@@ -27,14 +27,14 @@
27
27
  <td colspan="5">
28
28
  <select onchange='window.location=this.options[this.selectedIndex].value;'>
29
29
  <option value=''><%= _("All comments")%></option>
30
- <option value='?ham=f' <%= 'selected' if params[:ham] %>><%= _("Limit to ham") %></option>
31
- <option value='?confirmed=f' <%= 'selected' if params[:confirmed] %>><%= _("Unapproved comments") %></option>
32
- <option value='?published=f' <%= 'selected' if params[:published] %>><%= _("Limit to spam")%></option>
30
+ <option value='?ham=f' <%= 'selected' if params[:ham] == 'f' %>><%= _("Limit to ham") %></option>
31
+ <option value='?confirmed=f' <%= 'selected' if params[:confirmed] == 'f' %>><%= _("Unapproved comments") %></option>
32
+ <option value='?published=f' <%= 'selected' if params[:published] == 'f' %>><%= _("Limit to spam")%></option>
33
33
  </select>
34
34
  </td>
35
35
  </tr>
36
36
  <%= render_void_table(@feedback.size, 9) %>
37
-
37
+
38
38
  <%= render :partial => 'item', :collection => @feedback %>
39
39
  <%= display_pagination(@feedback, 6)%>
40
40
  </table>
@@ -17,6 +17,14 @@
17
17
  <%= check_box(:setting, :default_allow_comments)%>
18
18
  </p>
19
19
  </div>
20
+ <div>
21
+ <label for="comment_text_filter" class="float large"><%= _("Comments filter")%></label>
22
+ <p class='input_text_title'>
23
+ <select name="setting[comment_text_filter]" id="comment_text_filter">
24
+ <%= options_for_select text_filter_options, TextFilter.find_by_name(this_blog.comment_text_filter) %>
25
+ </select>
26
+ </p>
27
+ </div>
20
28
  <div>
21
29
  <label class="float large" for="setting_use_gravatar"><%= _("Enable gravatars")%></label>
22
30
  <p class='input_text_title'>
@@ -73,13 +81,6 @@
73
81
  <%= text_field(:setting, :sp_akismet_key, {:class => 'small', :size => 25}) %>
74
82
  </p>
75
83
  </div>
76
- <div>
77
- <p><%= _("You can optionally disable non-Ajax comments. Typo will always use Ajax for comment submission if Javascript is enabled, so non-Ajax comments are either from spammers or users without Javascript.")%></p>
78
- <label for="setting_sp_allow_non_ajax_comments" class="float"><%= _("Allow non-ajax comments") %></label>
79
- <p class='input_text_title'>
80
- <%= check_box(:setting, :sp_allow_non_ajax_comments)%>
81
- </p>
82
- </div>
83
84
  <div>
84
85
  <label for="setting_sp_article_auto_close" class="float"><%= _("Disable comments after")%></label>
85
86
  <p class='input_text_title'>
@@ -1,81 +1,80 @@
1
- <% @page_heading = _('Write') %>
2
- <% subtabs_for(:settings) %>
3
-
4
- <% form_tag :action => 'update' do %>
1
+ <% @page_heading = _('Write') %>
2
+ <% subtabs_for(:settings) %>
5
3
 
6
- <div class="admin">
7
- <fieldset id="write" class="set">
8
- <legend><%= _("Write")%></legend>
9
- <ul>
10
- <li>
11
- <label for="comment_text_filter" class="float"><%= _("Comments filter")%></label>
12
- <select name="setting[comment_text_filter]" id="comment_text_filter">
13
- <%= options_for_select text_filter_options, TextFilter.find_by_name(this_blog.comment_text_filter) %>
14
- </select>
15
- </li>
16
- </ul>
17
- </fieldset>
18
-
19
- <fieldset id="publish" class="set">
20
- <legend><%= _("Publish")%></legend>
21
- <ul>
22
- <li>
23
- <%= _("When publishing articles, Typo can send trackbacks to websites that you link to. This should be disabled for private blogs as it will leak non-public information to sites that you're discussing. For public blogs, there's no real point in disabling this.")%>
24
- </li>
25
- <li class="checkbox">
26
- <label class="float" for="setting_send_outbound_pings"><%= _("Send trackbacks")%></label>
27
- <%= check_box(:setting, :send_outbound_pings) %>
28
- </li>
29
- <li>
30
- <label class="float" for="setting_ping_urls"><%= _("URLs to ping automatically")%></label>
31
- <%= text_area(:setting, :ping_urls, :cols => 40, :rows => 5) %>
32
- </li>
33
- <li>
34
- <label class="float" for="setting_geourl_location"><%= _("Latitude, Longitude")%></label>
35
- <%= text_field(:setting, :geourl_location, :size => 20)%>
36
- <span class="float"><%= _("Display")%> <a href="http://geourl.org"><%= _("your lattitude and longitude")%></a> (<%= _("exemple")%> <tt>47.774,-122.201</tt>)</span>
37
- </li>
4
+ <% form_tag :action => 'update' do %>
38
5
 
39
- </ul>
6
+ <fieldset>
7
+ <legend><%= _("Publish")%></legend>
8
+ <div>
9
+ <label class="float" for="setting_send_outbound_pings"><%= _("Send trackbacks")%></label>
10
+ <p class='input_text_title'>
11
+ <%= check_box(:setting, :send_outbound_pings) %>
12
+ </p>
13
+ <p><%= _("When publishing articles, Typo can send trackbacks to websites that you link to. This should be disabled for private blogs as it will leak non-public information to sites that you're discussing. For public blogs, there's no real point in disabling this.")%></p>
14
+ </div>
15
+ <div>
16
+ <label class="float" for="setting_ping_urls"><%= _("URLs to ping automatically")%></label>
17
+ <p class='input_text_title ml140'>
18
+ <%= text_area(:setting, :ping_urls, :rows => 3, :class => 'small medium') %>
19
+ </p>
20
+ </div>
21
+ <div>
22
+ <label class="float" for="setting_geourl_location"><%= _("Latitude, Longitude")%></label>
23
+ <p class='input_text_title ml140'>
24
+ <%= text_field(:setting, :geourl_location, { :class => 'small medium'})%><br />
25
+ <small><%= _("Display")%> <a href="http://geourl.org"><%= _("your lattitude and longitude")%></a> (<%= _("exemple")%> <tt>47.774,-122.201</tt>)</small>
26
+ </p>
27
+ </div>
40
28
  </fieldset>
41
-
42
- <fieldset id="resources" class="set">
29
+
30
+ <fieldset>
43
31
  <legend><%= _("Podcasts")%></legend>
44
- <ul>
45
- <li><%= _("The below settings act as defaults when you choose to publish an enclosure with iTunes metadata")%>.</li>
46
- <li>
47
- <label for="setting_itunes_author" class="float"><%= _("Author")%></label>
48
- <%= text_field(:setting, :itunes_author, :size => 25) %>
49
- </li>
50
- <li>
51
- <label for="setting_itunes_subtitle" class="float"><%= _("Subtitle")%> <span class="mandatory">*</span></label>
52
- <%= text_field(:setting, :itunes_subtitle, :size => 25) %>
53
- </li>
54
- <li>
55
- <label class="float" for="setting_itunes_summary"><%= _("Summary")%> <span class="mandatory">*</span></label>
56
- <%= text_area :setting, :itunes_summary, :cols => 40, :rows => 3 %>
57
- <span class="float mandatory">* <%= _("Setting for channel")%></span>
58
- </li>
59
- <li>
60
- <label class="float" for="setting_itunes_email"><%= _("Email")%> <span class="mandatory">**</span></label>
61
- <%= text_field(:setting, :itunes_email, :size => 25) %>
62
- </li>
63
- <li>
64
- <label class="float" for="setting_itunes_name"><%= _("Optional Name")%> <span class="mandatory">**</span></label>
65
- <%= text_field(:setting, :itunes_name, :size => 25) %>
66
- <span class="float mandatory">** <%= _("Not published by Apple")%></span>
67
- </li>
68
- <li>
69
- <label class="float" for="setting_itunes_copyright"><%= _("Copyright Information")%></label>
70
- <%= text_field(:setting, :itunes_copyright, :size => 25) %>
71
- </li>
72
- <li class="checkbox">
73
- <label class="float" for="setting_itunes_explicit"><%= _("Explicit")%></label>
32
+ <div>
33
+ <p><%= _("The below settings act as defaults when you choose to publish an enclosure with iTunes metadata")%>.</p>
34
+ <label for="setting_itunes_author" class="float"><%= _("Author")%></label>
35
+ <p class='input_text_title'>
36
+ <%= text_field(:setting, :itunes_author, { :class => 'small medium'}) %>
37
+ </p>
38
+ </div>
39
+ <div>
40
+ <label for="setting_itunes_subtitle" class="float"><%= _("Subtitle")%> <span class="mandatory">*</span></label>
41
+ <p class='input_text_title'>
42
+ <%= text_field(:setting, :itunes_subtitle, { :class => 'small medium'}) %>
43
+ </p>
44
+ </div>
45
+ <div>
46
+ <label class="float" for="setting_itunes_summary"><%= _("Summary")%> <span class="mandatory">*</span></label>
47
+ <p class='input_text_title ml140'>
48
+ <%= text_area :setting, :itunes_summary, :rows => 3, :class => 'small medium' %>
49
+ </p>
50
+ </div>
51
+ <div>
52
+ <label class="float" for="setting_itunes_email"><%= _("Email")%> <span class="mandatory">**</span></label>
53
+ <p class='input_text_title'>
54
+ <%= text_field(:setting, :itunes_email, {:class => 'small medium'}) %>
55
+ </p>
56
+ </div>
57
+ <div>
58
+ <label class="float" for="setting_itunes_name"><%= _("Optional Name")%> <span class="mandatory">**</span></label>
59
+ <p class='input_text_title'>
60
+ <%= text_field(:setting, :itunes_name, {:class => 'small medium'}) %><br />
61
+ <small>** <%= _("Not published by Apple")%></small>
62
+ </p>
63
+ </div>
64
+ <div>
65
+ <label class="float" for="setting_itunes_copyright"><%= _("Copyright Information")%></label>
66
+ <p class='input_text_title'>
67
+ <%= text_field(:setting, :itunes_copyright, {:class => 'small medium'}) %>
68
+ </p>
69
+ </div>
70
+ <div>
71
+ <label class="float" for="setting_itunes_explicit"><%= _("Explicit")%></label>
72
+ <p class='input_text_title'>
74
73
  <%= check_box(:setting, :itunes_explicit)%>
75
- </li>
76
- </ul>
74
+ </p>
75
+ </div>
77
76
  </fieldset>
78
77
  <%= hidden_field_tag 'from', 'write' %>
79
78
  <%= render :partial => 'submit' %>
80
79
  </div>
81
- <% end %>
80
+ <% end %>
@@ -1,6 +1,6 @@
1
1
  <% @page_heading = _('Manage tags') %>
2
2
  <% subtabs_for(:content) %>
3
-
3
+
4
4
  <table cellspacing="1" cellpadding="0">
5
5
  <tr>
6
6
  <th><%= _("Display Name") %></th>
@@ -12,8 +12,8 @@
12
12
  <tr <%= alternate_class %>>
13
13
  <td> <%= link_to_edit tag.display_name, tag %></td>
14
14
  <td><%= tag.name %></td>
15
- <td><%= link_to_permalink tag, tag.articles.count %></td>
16
- </tr>
15
+ <td><%= link_to_permalink tag, tag.published_articles.count %></td>
16
+ </tr>
17
17
  <% end %>
18
- <%= display_pagination(@tags, 3)%>
18
+ <%= display_pagination(@tags, 3)%>
19
19
  </table>
@@ -1,7 +1,8 @@
1
1
  <% @page_heading = _('Theme editor') %>
2
2
  <% subtabs_for(:themes) %>
3
3
 
4
- <div id="theme_list">
4
+ <% form_tag do %>
5
+ <div id='editor-right'>
5
6
  <h3>Stylesheets</h3>
6
7
  <div class="theme-filer">
7
8
  <%= fetch_stylesheets %>
@@ -11,16 +12,18 @@
11
12
  <div class="theme-filer">
12
13
  <%= fetch_layouts %>
13
14
  </div>
14
-
15
+
15
16
  </div>
16
17
 
17
- <% form_tag do %>
18
- <div id="theme_editor">
19
- <textarea name="theme_body">
20
- <%= @file %>
21
- </textarea>
22
- <%= hidden_field_tag 'type', params[:type] %>
23
- <%= hidden_field_tag 'file', params[:file] %>
18
+ <div id="editor-left">
19
+ <textarea id="theme_body" name="theme_body" class='large' rows='25'>
20
+ <%= @file %>
21
+ </textarea>
22
+ <%= hidden_field_tag 'type', params[:type] %>
23
+ <%= hidden_field_tag 'file', params[:file] %>
24
+ </div>
25
+ </div>
26
+ <p class='right'>
27
+ <%= cancel_or_save %>
24
28
  </div>
25
- <div class="paginate r" style="clear: both; margin-top: 15px"><input type="submit" class="submit" value="<%= _('save') %>" />
26
29
  <% end %>
@@ -1,14 +1,16 @@
1
1
  <h2><%= link_to_permalink article,article.title %></h2>
2
2
  <p class="auth"><%= _("Posted by")%> <%= author_link(article) %>
3
3
  <%= js_distance_of_time_in_words_to_now article.published_at %></p>
4
- <% if controller.action_name == 'show' or controller.action_name == 'index' %>
4
+ <% unless controller.action_name == 'redirect' %>
5
5
  <% if article.excerpt? %>
6
6
  <%= article.excerpt %>
7
7
  <% else %>
8
8
  <%= article.html(:body) %>
9
- <div class="extended">
10
- <p><%= link_to_permalink article, _("Continue reading...") %></p>
11
- </div>
9
+ <% if article.extended? %>
10
+ <div class="extended">
11
+ <p><%= link_to_permalink article, _("Continue reading...") %></p>
12
+ </div>
13
+ <% end %>
12
14
  <% end %>
13
15
  <% else %>
14
16
  <%= article.html(:body) %>
data/bin/typo CHANGED
@@ -27,6 +27,31 @@ require 'rails-installer'
27
27
  }
28
28
  end
29
29
  end
30
+
31
+ class Sqlite3 < RailsInstaller::Database
32
+ # The name of the sqlite database file
33
+ def self.db_file(installer)
34
+ File.join(installer.install_directory,'db','database.sqlite')
35
+ end
36
+
37
+ def self.yml(installer)
38
+ %q{
39
+ login: &login
40
+ adapter: sqlite3
41
+ database: db/database.sqlite
42
+
43
+ development:
44
+ <<: *login
45
+
46
+ production:
47
+ <<: *login
48
+
49
+ test:
50
+ database: ":memory"
51
+ <<: *login
52
+ }
53
+ end
54
+ end
30
55
 
31
56
  class TypoInstaller < RailsInstaller
32
57
  application_name 'typo'
@@ -47,7 +47,11 @@ AccessControl.map :require => [ :admin, :publisher, :contributor ] do |map|
47
47
  map.permission "admin/cache"
48
48
  map.permission "admin/dashboard"
49
49
  map.permission "admin/textfilters"
50
+ # FIXME: For previews, during production 'previews' is needed, during
51
+ # test, 'articles' is needed. Proposed solution: move previews to
52
+ # ArticlesController
50
53
  map.permission "previews"
54
+ map.permission "articles"
51
55
 
52
56
  map.project_module :write, nil do |project|
53
57
  project.menu "Write", { :controller => "admin/content", :action => "new" }
data/config/routes.rb CHANGED
@@ -85,7 +85,7 @@ ActionController::Routing::Routes.draw do |map|
85
85
  :controller => 'textfilter', :action => 'public_action'
86
86
  end
87
87
 
88
- map.connect 'previews/:id', :controller => 'previews', :action => 'index'
88
+ map.connect 'previews/:id', :controller => 'articles', :action => 'preview'
89
89
 
90
90
  # Work around the Bad URI bug
91
91
  %w{ accounts backend files sidebar textfilter xml }.each do |i|
@@ -100,7 +100,7 @@ ActionController::Routing::Routes.draw do |map|
100
100
  map.connect "/admin/#{i}/:action/:id", :controller => "admin/#{i}", :action => nil, :id => nil
101
101
  end
102
102
 
103
- map.connect '*from', :controller => 'redirect', :action => 'redirect'
103
+ map.connect '*from', :controller => 'articles', :action => 'redirect'
104
104
 
105
105
  map.connect(':controller/:action/:id') do |default_route|
106
106
  class << default_route
data/db/schema.rb CHANGED
@@ -17,12 +17,10 @@ ActiveRecord::Schema.define(:version => 86) do
17
17
  end
18
18
 
19
19
  create_table "blacklist_patterns", :force => true do |t|
20
- t.string "type"
20
+ t.string "type", :limit => 15
21
21
  t.string "pattern"
22
22
  end
23
23
 
24
- add_index "blacklist_patterns", ["pattern"], :name => "index_blacklist_patterns_on_pattern"
25
-
26
24
  create_table "blogs", :force => true do |t|
27
25
  t.text "settings"
28
26
  t.string "base_url"
@@ -38,14 +36,14 @@ ActiveRecord::Schema.define(:version => 86) do
38
36
 
39
37
  create_table "categories", :force => true do |t|
40
38
  t.string "name"
41
- t.integer "position"
39
+ t.integer "position", :default => 0, :null => false
42
40
  t.string "permalink"
43
41
  t.text "keywords"
44
42
  t.text "description"
45
43
  t.integer "parent_id"
46
44
  end
47
45
 
48
- add_index "categories", ["permalink"], :name => "index_categories_on_permalink"
46
+ add_index "categories", ["permalink"], :name => "categories_permalink_index"
49
47
 
50
48
  create_table "categorizations", :force => true do |t|
51
49
  t.integer "article_id"
@@ -77,8 +75,8 @@ ActiveRecord::Schema.define(:version => 86) do
77
75
  t.integer "parent_id"
78
76
  end
79
77
 
80
- add_index "contents", ["published"], :name => "index_contents_on_published"
81
- add_index "contents", ["text_filter_id"], :name => "index_contents_on_text_filter_id"
78
+ add_index "contents", ["published"], :name => "contents_published_index"
79
+ add_index "contents", ["text_filter_id"], :name => "contents_text_filter_id_index"
82
80
 
83
81
  create_table "feedback", :force => true do |t|
84
82
  t.string "type"
@@ -103,8 +101,8 @@ ActiveRecord::Schema.define(:version => 86) do
103
101
  t.boolean "status_confirmed"
104
102
  end
105
103
 
106
- add_index "feedback", ["article_id"], :name => "index_feedback_on_article_id"
107
- add_index "feedback", ["text_filter_id"], :name => "index_feedback_on_text_filter_id"
104
+ add_index "feedback", ["article_id"], :name => "feedback_article_id_index"
105
+ add_index "feedback", ["text_filter_id"], :name => "feedback_text_filter_id_index"
108
106
 
109
107
  create_table "notifications", :force => true do |t|
110
108
  t.integer "content_id"
@@ -114,10 +112,10 @@ ActiveRecord::Schema.define(:version => 86) do
114
112
  end
115
113
 
116
114
  create_table "page_caches", :force => true do |t|
117
- t.string "name"
115
+ t.string "name", :null => false
118
116
  end
119
117
 
120
- add_index "page_caches", ["name"], :name => "index_page_caches_on_name"
118
+ add_index "page_caches", ["name"], :name => "name"
121
119
 
122
120
  create_table "pings", :force => true do |t|
123
121
  t.integer "article_id"
@@ -125,7 +123,7 @@ ActiveRecord::Schema.define(:version => 86) do
125
123
  t.datetime "created_at"
126
124
  end
127
125
 
128
- add_index "pings", ["article_id"], :name => "index_pings_on_article_id"
126
+ add_index "pings", ["article_id"], :name => "article_id"
129
127
 
130
128
  create_table "profiles", :force => true do |t|
131
129
  t.string "label"
@@ -166,19 +164,20 @@ ActiveRecord::Schema.define(:version => 86) do
166
164
  end
167
165
 
168
166
  create_table "sessions", :force => true do |t|
169
- t.string "sessid"
167
+ t.string "sessid", :limit => 32
170
168
  t.text "data"
171
- t.datetime "created_at"
172
169
  t.datetime "updated_at"
173
170
  end
174
171
 
175
- add_index "sessions", ["sessid"], :name => "index_sessions_on_sessid"
172
+ add_index "sessions", ["sessid"], :name => "sessid", :unique => true
173
+ add_index "sessions", ["sessid"], :name => "sessions_sessid_index"
176
174
 
177
175
  create_table "sidebars", :force => true do |t|
178
- t.integer "active_position"
179
- t.text "config"
180
- t.integer "staged_position"
181
- t.string "type"
176
+ t.integer "active_position"
177
+ t.text "config"
178
+ t.integer "staged_position"
179
+ t.datetime "updated_at"
180
+ t.string "type"
182
181
  end
183
182
 
184
183
  create_table "sitealizer", :force => true do |t|
@@ -206,6 +205,11 @@ ActiveRecord::Schema.define(:version => 86) do
206
205
  t.text "params"
207
206
  end
208
207
 
208
+ create_table "text_link_ads_rss", :force => true do |t|
209
+ t.string "html", :limit => 1024
210
+ t.integer "post_id"
211
+ end
212
+
209
213
  create_table "triggers", :force => true do |t|
210
214
  t.integer "pending_item_id"
211
215
  t.string "pending_item_type"
@@ -214,10 +218,10 @@ ActiveRecord::Schema.define(:version => 86) do
214
218
  end
215
219
 
216
220
  create_table "users", :force => true do |t|
217
- t.string "login"
218
- t.string "password"
219
- t.text "email"
220
- t.text "name"
221
+ t.string "login", :limit => 80
222
+ t.string "password", :limit => 40
223
+ t.string "name", :limit => 80
224
+ t.string "email", :limit => 80
221
225
  t.boolean "notify_via_email"
222
226
  t.boolean "notify_on_new_articles"
223
227
  t.boolean "notify_on_comments"
@@ -226,9 +230,9 @@ ActiveRecord::Schema.define(:version => 86) do
226
230
  t.integer "profile_id"
227
231
  t.string "remember_token"
228
232
  t.datetime "remember_token_expires_at"
229
- t.string "text_filter_id", :default => "1"
230
- t.string "editor", :default => "simple"
231
- t.string "state", :default => "active"
233
+ t.string "text_filter_id", :default => "1"
234
+ t.string "editor", :default => "simple"
235
+ t.string "state", :default => "active"
232
236
  t.string "firstname"
233
237
  t.string "lastname"
234
238
  t.string "nickname"
@@ -247,4 +251,6 @@ ActiveRecord::Schema.define(:version => 86) do
247
251
  t.datetime "last_connection"
248
252
  end
249
253
 
254
+ add_index "users", ["login"], :name => "login", :unique => true
255
+
250
256
  end