typo 5.4 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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