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