diff --git a/README.rdoc b/README.rdoc
new file mode 100644
index 0000000..41fe96a
--- /dev/null
+++ b/README.rdoc
@@ -0,0 +1,25 @@
+=Redmine Issue Template Plugin
+
+==About
+
+Allows to manage templates of issues, and adding them to a new issue body.
+
+==Install
+
+# Follow the Redmine plugin installation steps at: www.redmine.org/wiki/redmine/Plugins
+# Make sure the plugin is installed to +vendor/plugins/redmine-issues-template+
+# Setup the database using the migrations. +rake db:migrate_plugins RAILS_ENV=production+
+# Add a new *issue template* by clicking at *issue templates* menu under Administration Area
+
+==Roadmap
+
+* Each issue template need to be scoped by project
+
+==Authors
+
+* 'undev.ru' http://undev.ru'
+* Otávio Sampaio, otaviofcs@gmail.com
+
+
+
+
diff --git a/app/controllers/issue_templates_controller.rb b/app/controllers/issue_templates_controller.rb
index 365cf2f..0a67031 100644
--- a/app/controllers/issue_templates_controller.rb
+++ b/app/controllers/issue_templates_controller.rb
@@ -1,6 +1,7 @@
class IssueTemplatesController < ApplicationController
- before_filter :find_issue_template, :except => [:index, :new, :create]
- before_filter :require_admin
+ unloadable
+ before_filter :find_issue_template, :except => [:index, :new, :create, :show]
+ before_filter :require_admin, :except => [:show]
def index
@issue_templates = IssueTemplate.all(:order => "created_at DESC")
@@ -34,6 +35,13 @@ def destroy
redirect_to issue_templates_url
end
+ def show
+ @issue_template = IssueTemplate.find(params[:issue_template_id])
+ respond_to do |type|
+ type.js { render }
+ end
+ end
+
private
def find_issue_template
diff --git a/app/helpers/issue_templates_helper.rb b/app/helpers/issue_templates_helper.rb
index 36cc164..9c71548 100644
--- a/app/helpers/issue_templates_helper.rb
+++ b/app/helpers/issue_templates_helper.rb
@@ -1,6 +1,6 @@
module IssueTemplatesHelper
def issue_templates_options
- options_from_collection_for_select(IssueTemplate.all, 'content', 'title')
+ options_from_collection_for_select(IssueTemplate.all, 'id', 'title')
end
end
diff --git a/app/views/issue_templates/_issue_template_control.html.erb b/app/views/issue_templates/_issue_template_control.html.erb
index 754f761..4bdaba7 100644
--- a/app/views/issue_templates/_issue_template_control.html.erb
+++ b/app/views/issue_templates/_issue_template_control.html.erb
@@ -1,18 +1,17 @@
<% html = capture do %>
-
+<% if @issue.new_record? && IssueTemplate.count > 0 %>
+
+<% form_remote_tag :html => {:method => :get}, :url => { :controller => 'issue_templates', :action => 'show'} do %>
-
<% end %>
+<% end %>
<% javascript_tag do %>
- $('issue_description').insert({after: '<%= escape_javascript(html) %>'});
- var head = $$('head')[0];
- if (head) {
- script = new Element('script', { type: 'text/javascript', src: '/plugin_assets/redmine_issue_template/javascripts/issue_templates.js'});
- head.appendChild(script);
- }
+ $('issue_description').insert({before: '<%= escape_javascript(html) %>'});
<% end %>
diff --git a/app/views/issue_templates/show.js.rjs b/app/views/issue_templates/show.js.rjs
new file mode 100644
index 0000000..3d7e83d
--- /dev/null
+++ b/app/views/issue_templates/show.js.rjs
@@ -0,0 +1 @@
+page.replace_html :issue_description, :text => @issue_template.content
diff --git a/assets/javascripts/issue_templates.js b/assets/javascripts/issue_templates.js
deleted file mode 100644
index 03f231c..0000000
--- a/assets/javascripts/issue_templates.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-function insertTemplate(selectId, textareaId) {
- var value = $(selectId).value;
- var textarea = $(textareaId);
- insertAtCursor(textarea, value);
-}
-
-function insertAtCursor(myField, myValue) {
- //IE support
- if (document.selection) {
- myField.focus();
- sel = document.selection.createRange();
- sel.text = myValue;
- }
- //MOZILLA/NETSCAPE support
- else if (myField.selectionStart || myField.selectionStart == '0') {
- var startPos = myField.selectionStart;
- var endPos = myField.selectionEnd;
- myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
- } else {
- myField.value += myValue;
- }
-}
-
-
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 9709cb4..20f1124 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -4,4 +4,5 @@ en:
label_issue_template_new: New issue template
label_issue_template_edit: Edit issue template
label_issue_template_insert: Insert template
+ label_issue_template_insert_button: Insert
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
new file mode 100644
index 0000000..47feca3
--- /dev/null
+++ b/config/locales/pt-BR.yml
@@ -0,0 +1,8 @@
+pt-BR:
+ label_issue_template: Modelo de Tarefa
+ label_issue_template_plural: Modelo de Tarefas
+ label_issue_template_new: Novo Modelo de Tarefa
+ label_issue_template_edit: Edição de Modelo de Tarefa
+ label_issue_template_insert: Inserir Modelo
+ label_issue_template_insert_button: Inserir
+
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 2ce0ac2..eb8f269 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -4,4 +4,5 @@ ru:
label_issue_template_new: Новый шаблон задачи
label_issue_template_edit: Редактирование шаблона задачи
label_issue_template_insert: Вставить шаблон
+ label_issue_template_insert_button: Вставить