diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb
index c68f15a..511d037 100644
--- a/app/controllers/wiki_controller.rb
+++ b/app/controllers/wiki_controller.rb
@@ -60,6 +60,13 @@ class WikiController < ApplicationController
@pages_by_date = @pages.group_by {|p| p.updated_on.to_date}
end
+ def new
+ @page = WikiPage.new(:wiki => @wiki)
+ unless User.current.allowed_to?(:edit_wiki_pages, @project) && editable?
+ render_403
+ end
+ end
+
# display a page (in editing mode if it doesn't exist)
def show
if params[:version] && !User.current.allowed_to?(:view_wiki_edits, @project)
diff --git a/app/views/wiki/new.html.erb b/app/views/wiki/new.html.erb
new file mode 100644
index 0000000..480036e
--- /dev/null
+++ b/app/views/wiki/new.html.erb
@@ -0,0 +1,18 @@
+
<%= l(:label_wiki_page_new) %>
+
+<%= labelled_form_for :page, @page,
+ :url => {:action => 'show'},
+ :html => {:method => :get} do |f| %>
+
+
+
+ <%= f.text_field :title, :name => 'id', :size => 60, :required => true %>
+ <%= l(:text_unallowed_characters) %>: , . / ? ; : |
+
+
+
+ <%= submit_tag(l(:button_continue)) %>
+
+<% end %>
+
+<% html_title l(:label_wiki_page_new) %>
diff --git a/app/views/wiki/show.html.erb b/app/views/wiki/show.html.erb
index 3ff7d04..0533d52 100644
--- a/app/views/wiki/show.html.erb
+++ b/app/views/wiki/show.html.erb
@@ -1,4 +1,5 @@
+<%= link_to_if_authorized(l(:label_wiki_page_new), {:action => 'new'}, :class => 'icon icon-add') %>
<% if @editable %>
<% if @content.current_version? %>
<%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 8fa1a36..7776003 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -167,6 +167,7 @@ de:
button_copy_and_follow: Kopieren und Ticket anzeigen
button_create: Anlegen
button_create_and_continue: Anlegen und weiter
+ button_continue: Weiter
button_delete: Löschen
button_delete_my_account: Mein Benutzerkonto löschen
button_download: Download
@@ -792,6 +793,7 @@ de:
label_wiki_edit_plural: Wiki-Bearbeitungen
label_wiki_page: Wiki-Seite
label_wiki_page_plural: Wiki-Seiten
+ label_wiki_page_new: Neue Wiki-Seite
label_workflow: Workflow
label_x_closed_issues_abbr:
zero: 0 geschlossen
diff --git a/config/locales/en.yml b/config/locales/en.yml
index f9b4595..5f25bbc 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -727,6 +727,7 @@ en:
label_wiki_edit_plural: Wiki edits
label_wiki_page: Wiki page
label_wiki_page_plural: Wiki pages
+ label_wiki_page_new: New wiki page
label_index_by_title: Index by title
label_index_by_date: Index by date
label_current_version: Current version
@@ -919,6 +920,7 @@ en:
button_delete: Delete
button_create: Create
button_create_and_continue: Create and continue
+ button_continue: Continue
button_test: Test
button_edit: Edit
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
diff --git a/config/routes.rb b/config/routes.rb
index 040aba2..7d1abae 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -151,7 +151,7 @@ RedmineApp::Application.routes.draw do
end
match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
- resources :wiki, :except => [:index, :new, :create], :as => 'wiki_page' do
+ resources :wiki, :except => [:index, :create], :as => 'wiki_page' do
member do
get 'rename'
post 'rename'
diff --git a/lib/redmine.rb b/lib/redmine.rb
index b66753f..a08950c 100644
--- a/lib/redmine.rb
+++ b/lib/redmine.rb
@@ -152,7 +152,7 @@ Redmine::AccessControl.map do |map|
end
map.project_module :wiki do |map|
- map.permission :manage_wiki, {:wikis => [:edit, :destroy]}, :require => :member
+ map.permission :manage_wiki, {:wiki => :new, :wikis => [:edit, :destroy]}, :require => :member
map.permission :rename_wiki_pages, {:wiki => :rename}, :require => :member
map.permission :delete_wiki_pages, {:wiki => [:destroy, :destroy_version]}, :require => :member
map.permission :view_wiki_pages, {:wiki => [:index, :show, :special, :date_index]}, :read => true