@@ -0,0 +1,9 | |||||
|
1 | class AddWikiPagesParentId < ActiveRecord::Migration | |||
|
2 | def self.up | |||
|
3 | add_column :wiki_pages, :parent_id, :integer, :default => nil | |||
|
4 | end | |||
|
5 | ||||
|
6 | def self.down | |||
|
7 | remove_column :wiki_pages, :parent_id | |||
|
8 | end | |||
|
9 | end |
@@ -147,6 +147,7 class WikiController < ApplicationController | |||||
147 | :joins => "LEFT JOIN #{WikiContent.table_name} ON #{WikiContent.table_name}.page_id = #{WikiPage.table_name}.id", |
|
147 | :joins => "LEFT JOIN #{WikiContent.table_name} ON #{WikiContent.table_name}.page_id = #{WikiPage.table_name}.id", | |
148 | :order => 'title' |
|
148 | :order => 'title' | |
149 | @pages_by_date = @pages.group_by {|p| p.updated_on.to_date} |
|
149 | @pages_by_date = @pages.group_by {|p| p.updated_on.to_date} | |
|
150 | @pages_by_parent_id = @pages.group_by(&:parent_id) | |||
150 | # export wiki to a single html file |
|
151 | # export wiki to a single html file | |
151 | when 'export' |
|
152 | when 'export' | |
152 | @pages = @wiki.pages.find :all, :order => 'title' |
|
153 | @pages = @wiki.pages.find :all, :order => 'title' |
@@ -177,7 +177,8 module ApplicationHelper | |||||
177 | end |
|
177 | end | |
178 |
|
178 | |||
179 | def breadcrumb(*args) |
|
179 | def breadcrumb(*args) | |
180 | content_tag('p', args.join(' » ') + ' » ', :class => 'breadcrumb') |
|
180 | elements = args.flatten | |
|
181 | elements.any? ? content_tag('p', args.join(' » ') + ' » ', :class => 'breadcrumb') : nil | |||
181 | end |
|
182 | end | |
182 |
|
183 | |||
183 | def html_title(*args) |
|
184 | def html_title(*args) |
@@ -17,6 +17,22 | |||||
17 |
|
17 | |||
18 | module WikiHelper |
|
18 | module WikiHelper | |
19 |
|
19 | |||
|
20 | def render_page_hierarchy(pages, node=nil) | |||
|
21 | content = '' | |||
|
22 | if pages[node] | |||
|
23 | content << "<ul class=\"pages-hierarchy\">\n" | |||
|
24 | pages[node].each do |page| | |||
|
25 | content << "<li>" | |||
|
26 | content << link_to(h(page.pretty_title), {:action => 'index', :page => page.title}, | |||
|
27 | :title => l(:label_updated_time, distance_of_time_in_words(Time.now, page.updated_on))) | |||
|
28 | content << "\n" + render_page_hierarchy(pages, page.id) if pages[page.id] | |||
|
29 | content << "</li>\n" | |||
|
30 | end | |||
|
31 | content << "</ul>\n" | |||
|
32 | end | |||
|
33 | content | |||
|
34 | end | |||
|
35 | ||||
20 | def html_diff(wdiff) |
|
36 | def html_diff(wdiff) | |
21 | words = wdiff.words.collect{|word| h(word)} |
|
37 | words = wdiff.words.collect{|word| h(word)} | |
22 | words_add = 0 |
|
38 | words_add = 0 |
@@ -22,6 +22,7 class WikiPage < ActiveRecord::Base | |||||
22 | belongs_to :wiki |
|
22 | belongs_to :wiki | |
23 | has_one :content, :class_name => 'WikiContent', :foreign_key => 'page_id', :dependent => :destroy |
|
23 | has_one :content, :class_name => 'WikiContent', :foreign_key => 'page_id', :dependent => :destroy | |
24 | has_many :attachments, :as => :container, :dependent => :destroy |
|
24 | has_many :attachments, :as => :container, :dependent => :destroy | |
|
25 | acts_as_tree :order => 'title' | |||
25 |
|
26 | |||
26 | acts_as_event :title => Proc.new {|o| "#{l(:label_wiki)}: #{o.title}"}, |
|
27 | acts_as_event :title => Proc.new {|o| "#{l(:label_wiki)}: #{o.title}"}, | |
27 | :description => :text, |
|
28 | :description => :text, | |
@@ -110,6 +111,24 class WikiPage < ActiveRecord::Base | |||||
110 | def editable_by?(usr) |
|
111 | def editable_by?(usr) | |
111 | !protected? || usr.allowed_to?(:protect_wiki_pages, wiki.project) |
|
112 | !protected? || usr.allowed_to?(:protect_wiki_pages, wiki.project) | |
112 | end |
|
113 | end | |
|
114 | ||||
|
115 | def parent_title | |||
|
116 | @parent_title || (self.parent && self.parent.pretty_title) | |||
|
117 | end | |||
|
118 | ||||
|
119 | def parent_title=(t) | |||
|
120 | @parent_title = t | |||
|
121 | parent_page = t.blank? ? nil : self.wiki.find_page(t) | |||
|
122 | self.parent = parent_page | |||
|
123 | end | |||
|
124 | ||||
|
125 | protected | |||
|
126 | ||||
|
127 | def validate | |||
|
128 | errors.add(:parent_title, :activerecord_error_invalid) if !@parent_title.blank? && parent.nil? | |||
|
129 | errors.add(:parent_title, :activerecord_error_circular_dependency) if parent && (parent == self || parent.ancestors.include?(self)) | |||
|
130 | errors.add(:parent_title, :activerecord_error_not_same_project) if parent && (parent.wiki_id != wiki_id) | |||
|
131 | end | |||
113 | end |
|
132 | end | |
114 |
|
133 | |||
115 | class WikiDiff |
|
134 | class WikiDiff |
@@ -4,8 +4,9 | |||||
4 |
|
4 | |||
5 | <% labelled_tabular_form_for :wiki_page, @page, :url => { :action => 'rename' } do |f| %> |
|
5 | <% labelled_tabular_form_for :wiki_page, @page, :url => { :action => 'rename' } do |f| %> | |
6 | <div class="box"> |
|
6 | <div class="box"> | |
7 |
<p><%= f.text_field :title, :required => true, :size => |
|
7 | <p><%= f.text_field :title, :required => true, :size => 100 %></p> | |
8 | <p><%= f.check_box :redirect_existing_links %></p> |
|
8 | <p><%= f.check_box :redirect_existing_links %></p> | |
|
9 | <p><%= f.text_field :parent_title, :size => 100 %></p> | |||
9 | </div> |
|
10 | </div> | |
10 | <%= submit_tag l(:button_rename) %> |
|
11 | <%= submit_tag l(:button_rename) %> | |
11 | <% end %> |
|
12 | <% end %> |
@@ -10,6 +10,8 | |||||
10 | <%= link_to(l(:label_history), {:action => 'history', :page => @page.title}, :class => 'icon icon-history') %> |
|
10 | <%= link_to(l(:label_history), {:action => 'history', :page => @page.title}, :class => 'icon icon-history') %> | |
11 | </div> |
|
11 | </div> | |
12 |
|
12 | |||
|
13 | <%= breadcrumb(@page.ancestors.reverse.collect {|parent| link_to h(parent.pretty_title), {:page => parent.title}}) %> | |||
|
14 | ||||
13 | <% if @content.version != @page.content.version %> |
|
15 | <% if @content.version != @page.content.version %> | |
14 | <p> |
|
16 | <p> | |
15 | <%= link_to(('« ' + l(:label_previous)), :action => 'index', :page => @page.title, :version => (@content.version - 1)) + " - " if @content.version > 1 %> |
|
17 | <%= link_to(('« ' + l(:label_previous)), :action => 'index', :page => @page.title, :version => (@content.version - 1)) + " - " if @content.version > 1 %> |
@@ -4,11 +4,7 | |||||
4 | <p class="nodata"><%= l(:label_no_data) %></p> |
|
4 | <p class="nodata"><%= l(:label_no_data) %></p> | |
5 | <% end %> |
|
5 | <% end %> | |
6 |
|
6 | |||
7 | <ul><% @pages.each do |page| %> |
|
7 | <%= render_page_hierarchy(@pages_by_parent_id) %> | |
8 | <li><%= link_to page.pretty_title, {:action => 'index', :page => page.title}, |
|
|||
9 | :title => l(:label_updated_time, distance_of_time_in_words(Time.now, page.updated_on)) %> |
|
|||
10 | </li> |
|
|||
11 | <% end %></ul> |
|
|||
12 |
|
8 | |||
13 | <% content_for :sidebar do %> |
|
9 | <% content_for :sidebar do %> | |
14 | <%= render :partial => 'sidebar' %> |
|
10 | <%= render :partial => 'sidebar' %> |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -637,3 +637,4 label_generate_key: Generate a key | |||||
637 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
637 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
638 | setting_mail_handler_api_key: API key |
|
638 | setting_mail_handler_api_key: API key | |
639 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
639 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
640 | field_parent_title: Parent page |
@@ -634,3 +634,4 label_generate_key: Generate a key | |||||
634 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
634 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
635 | setting_mail_handler_api_key: API key |
|
635 | setting_mail_handler_api_key: API key | |
636 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
636 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
637 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -182,6 +182,7 field_time_zone: Time zone | |||||
182 | field_searchable: Searchable |
|
182 | field_searchable: Searchable | |
183 | field_default_value: Default value |
|
183 | field_default_value: Default value | |
184 | field_comments_sorting: Display comments |
|
184 | field_comments_sorting: Display comments | |
|
185 | field_parent_title: Parent page | |||
185 |
|
186 | |||
186 | setting_app_title: Application title |
|
187 | setting_app_title: Application title | |
187 | setting_app_subtitle: Application subtitle |
|
188 | setting_app_subtitle: Application subtitle |
@@ -635,3 +635,4 label_generate_key: Generate a key | |||||
635 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
635 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
636 | setting_mail_handler_api_key: API key |
|
636 | setting_mail_handler_api_key: API key | |
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
638 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -183,6 +183,7 field_time_zone: Fuseau horaire | |||||
183 | field_searchable: Utilisé pour les recherches |
|
183 | field_searchable: Utilisé pour les recherches | |
184 | field_default_value: Valeur par défaut |
|
184 | field_default_value: Valeur par défaut | |
185 | field_comments_sorting: Afficher les commentaires |
|
185 | field_comments_sorting: Afficher les commentaires | |
|
186 | field_parent_title: Page parent | |||
186 |
|
187 | |||
187 | setting_app_title: Titre de l'application |
|
188 | setting_app_title: Titre de l'application | |
188 | setting_app_subtitle: Sous-titre de l'application |
|
189 | setting_app_subtitle: Sous-titre de l'application |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Kulcs generálása | |||||
633 | setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez |
|
633 | setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez | |
634 | setting_mail_handler_api_key: API kulcs |
|
634 | setting_mail_handler_api_key: API kulcs | |
635 | text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/email.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen." |
|
635 | text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/email.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen." | |
|
636 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Genera una chiave | |||||
632 | setting_mail_handler_api_enabled: Abilita WS per le e-mail in arrivo |
|
632 | setting_mail_handler_api_enabled: Abilita WS per le e-mail in arrivo | |
633 | setting_mail_handler_api_key: chiave API |
|
633 | setting_mail_handler_api_key: chiave API | |
634 | text_email_delivery_not_configured: "La consegna via e-mail non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/email.yml e riavvia l'applicazione per abilitarle." |
|
634 | text_email_delivery_not_configured: "La consegna via e-mail non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/email.yml e riavvia l'applicazione per abilitarle." | |
|
635 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -635,3 +635,4 setting_mail_handler_api_enabled: Įgalinti WS įeinantiems laiškams | |||||
635 | setting_mail_handler_api_key: API raktas |
|
635 | setting_mail_handler_api_key: API raktas | |
636 |
|
636 | |||
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
638 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -632,3 +632,4 label_generate_key: Generate a key | |||||
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
632 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
633 | setting_mail_handler_api_key: API key |
|
633 | setting_mail_handler_api_key: API key | |
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
634 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
635 | field_parent_title: Parent page |
@@ -636,3 +636,4 label_generate_key: Сгенерировать ключ | |||||
636 | setting_mail_handler_api_enabled: Включить веб-сервис для входящих сообщений |
|
636 | setting_mail_handler_api_enabled: Включить веб-сервис для входящих сообщений | |
637 | setting_mail_handler_api_key: API ключ |
|
637 | setting_mail_handler_api_key: API ключ | |
638 | text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для вашего SMTP сервера вы можете в файле config/email.yml. Для применения изменений перезапустите приложение." |
|
638 | text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для вашего SMTP сервера вы можете в файле config/email.yml. Для применения изменений перезапустите приложение." | |
|
639 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -633,3 +633,4 label_generate_key: Generate a key | |||||
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
633 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
634 | setting_mail_handler_api_key: API key |
|
634 | setting_mail_handler_api_key: API key | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -635,3 +635,4 label_generate_key: Generate a key | |||||
635 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
635 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
636 | setting_mail_handler_api_key: API key |
|
636 | setting_mail_handler_api_key: API key | |
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
637 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
638 | field_parent_title: Parent page |
@@ -634,3 +634,4 label_generate_key: Generate a key | |||||
634 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
634 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
635 | setting_mail_handler_api_key: API key |
|
635 | setting_mail_handler_api_key: API key | |
636 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
636 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
637 | field_parent_title: Parent page |
@@ -633,3 +633,4 default_activity_development: 開發 | |||||
633 | enumeration_issue_priorities: 項目優先權 |
|
633 | enumeration_issue_priorities: 項目優先權 | |
634 | enumeration_doc_categories: 文件分類 |
|
634 | enumeration_doc_categories: 文件分類 | |
635 | enumeration_activities: 活動 (時間追蹤) |
|
635 | enumeration_activities: 活動 (時間追蹤) | |
|
636 | field_parent_title: Parent page |
@@ -633,3 +633,4 enumeration_issue_priorities: 问题优先级 | |||||
633 | enumeration_doc_categories: 文档类别 |
|
633 | enumeration_doc_categories: 文档类别 | |
634 | enumeration_activities: 活动(时间跟踪) |
|
634 | enumeration_activities: 活动(时间跟踪) | |
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." |
|
635 | text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." | |
|
636 | field_parent_title: Parent page |
@@ -5,22 +5,26 wiki_pages_001: | |||||
5 | id: 1 |
|
5 | id: 1 | |
6 | wiki_id: 1 |
|
6 | wiki_id: 1 | |
7 |
protected: true |
|
7 | protected: true | |
|
8 | parent_id: | |||
8 | wiki_pages_002: |
|
9 | wiki_pages_002: | |
9 | created_on: 2007-03-08 00:18:07 +01:00 |
|
10 | created_on: 2007-03-08 00:18:07 +01:00 | |
10 | title: Another_page |
|
11 | title: Another_page | |
11 | id: 2 |
|
12 | id: 2 | |
12 | wiki_id: 1 |
|
13 | wiki_id: 1 | |
13 | protected: false |
|
14 | protected: false | |
|
15 | parent_id: | |||
14 | wiki_pages_003: |
|
16 | wiki_pages_003: | |
15 | created_on: 2007-03-08 00:18:07 +01:00 |
|
17 | created_on: 2007-03-08 00:18:07 +01:00 | |
16 | title: Start_page |
|
18 | title: Start_page | |
17 | id: 3 |
|
19 | id: 3 | |
18 | wiki_id: 2 |
|
20 | wiki_id: 2 | |
19 | protected: false |
|
21 | protected: false | |
|
22 | parent_id: | |||
20 | wiki_pages_004: |
|
23 | wiki_pages_004: | |
21 | created_on: 2007-03-08 00:18:07 +01:00 |
|
24 | created_on: 2007-03-08 00:18:07 +01:00 | |
22 | title: Page_with_an_inline_image |
|
25 | title: Page_with_an_inline_image | |
23 | id: 4 |
|
26 | id: 4 | |
24 | wiki_id: 1 |
|
27 | wiki_id: 1 | |
25 | protected: false |
|
28 | protected: false | |
|
29 | parent_id: 1 | |||
26 | No newline at end of file |
|
30 |
@@ -163,8 +163,16 class WikiControllerTest < Test::Unit::TestCase | |||||
163 | pages = assigns(:pages) |
|
163 | pages = assigns(:pages) | |
164 | assert_not_nil pages |
|
164 | assert_not_nil pages | |
165 | assert_equal Project.find(1).wiki.pages.size, pages.size |
|
165 | assert_equal Project.find(1).wiki.pages.size, pages.size | |
166 | assert_tag :tag => 'a', :attributes => { :href => '/wiki/ecookbook/CookBook_documentation' }, |
|
166 | ||
167 | :content => /CookBook documentation/ |
|
167 | assert_tag :ul, :attributes => { :class => 'pages-hierarchy' }, | |
|
168 | :child => { :tag => 'li', :child => { :tag => 'a', :attributes => { :href => '/wiki/ecookbook/CookBook_documentation' }, | |||
|
169 | :content => 'CookBook documentation' }, | |||
|
170 | :child => { :tag => 'ul', | |||
|
171 | :child => { :tag => 'li', | |||
|
172 | :child => { :tag => 'a', :attributes => { :href => '/wiki/ecookbook/Page_with_an_inline_image' }, | |||
|
173 | :content => 'Page with an inline image' } } } }, | |||
|
174 | :child => { :tag => 'li', :child => { :tag => 'a', :attributes => { :href => '/wiki/ecookbook/Another_page' }, | |||
|
175 | :content => 'Another page' } } | |||
168 | end |
|
176 | end | |
169 |
|
177 | |||
170 | def test_not_found |
|
178 | def test_not_found |
@@ -48,6 +48,50 class WikiPageTest < Test::Unit::TestCase | |||||
48 | assert page.new_record? |
|
48 | assert page.new_record? | |
49 | end |
|
49 | end | |
50 |
|
50 | |||
|
51 | def test_parent_title | |||
|
52 | page = WikiPage.find_by_title('Another_page') | |||
|
53 | assert_nil page.parent_title | |||
|
54 | ||||
|
55 | page = WikiPage.find_by_title('Page_with_an_inline_image') | |||
|
56 | assert_equal 'CookBook documentation', page.parent_title | |||
|
57 | end | |||
|
58 | ||||
|
59 | def test_assign_parent | |||
|
60 | page = WikiPage.find_by_title('Another_page') | |||
|
61 | page.parent_title = 'CookBook documentation' | |||
|
62 | assert page.save | |||
|
63 | page.reload | |||
|
64 | assert_equal WikiPage.find_by_title('CookBook_documentation'), page.parent | |||
|
65 | end | |||
|
66 | ||||
|
67 | def test_unassign_parent | |||
|
68 | page = WikiPage.find_by_title('Page_with_an_inline_image') | |||
|
69 | page.parent_title = '' | |||
|
70 | assert page.save | |||
|
71 | page.reload | |||
|
72 | assert_nil page.parent | |||
|
73 | end | |||
|
74 | ||||
|
75 | def test_parent_validation | |||
|
76 | page = WikiPage.find_by_title('CookBook_documentation') | |||
|
77 | ||||
|
78 | # A page that doesn't exist | |||
|
79 | page.parent_title = 'Unknown title' | |||
|
80 | assert !page.save | |||
|
81 | assert_equal :activerecord_error_invalid, page.errors.on(:parent_title) | |||
|
82 | # A child page | |||
|
83 | page.parent_title = 'Page_with_an_inline_image' | |||
|
84 | assert !page.save | |||
|
85 | assert_equal :activerecord_error_circular_dependency, page.errors.on(:parent_title) | |||
|
86 | # The page itself | |||
|
87 | page.parent_title = 'CookBook_documentation' | |||
|
88 | assert !page.save | |||
|
89 | assert_equal :activerecord_error_circular_dependency, page.errors.on(:parent_title) | |||
|
90 | ||||
|
91 | page.parent_title = 'Another_page' | |||
|
92 | assert page.save | |||
|
93 | end | |||
|
94 | ||||
51 | def test_destroy |
|
95 | def test_destroy | |
52 | page = WikiPage.find(1) |
|
96 | page = WikiPage.find(1) | |
53 | page.destroy |
|
97 | page.destroy |
General Comments 0
You need to be logged in to leave comments.
Login now