summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/stylesheets/projects.css.scss4
-rw-r--r--app/controllers/issues_controller.rb2
-rw-r--r--app/models/issue.rb6
-rw-r--r--app/views/issues/_form.html.haml8
-rw-r--r--app/views/issues/_show.html.haml2
-rw-r--r--app/views/issues/index.html.haml2
-rw-r--r--app/views/issues/show.html.haml20
-rw-r--r--app/views/issues/update.js.haml2
-rw-r--r--db/migrate/20111027152724_issue_conten_to_note.rb34
-rw-r--r--db/schema.rb2
-rw-r--r--spec/factories.rb1
-rw-r--r--spec/requests/issues_spec.rb19
12 files changed, 84 insertions, 18 deletions
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index f9c7592bd91..bde9aa5d15f 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -662,6 +662,10 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
background: #4466cc;
color:white;
}
+ &.normal {
+ background: #2c5ca6;
+ color:white;
+ }
&.notes {
background: #2c5c66;
color:white;
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 26e4a5734c2..d0fad8ed647 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -34,7 +34,7 @@ class IssuesController < ApplicationController
end
def show
- @notes = @issue.notes
+ @notes = @issue.notes.order("created_at ASC")
@note = @project.notes.new(:noteable => @issue)
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index ca1c5eaf52d..9fb7ef3060a 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -14,9 +14,9 @@ class Issue < ActiveRecord::Base
:presence => true,
:length => { :within => 0..255 }
- validates :content,
- :presence => true,
- :length => { :within => 0..2000 }
+ #validates :content,
+ #:presence => true,
+ #:length => { :within => 0..2000 }
scope :critical, where(:critical => true)
scope :non_critical, where(:critical => false)
diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml
index eae0ee0f52c..80f19d627f4 100644
--- a/app/views/issues/_form.html.haml
+++ b/app/views/issues/_form.html.haml
@@ -7,10 +7,10 @@
.span-8
= f.label :title
- = f.text_field :title, :style => "width:450px"
- .span-8
- = f.label :content
- = f.text_area :content, :style => "width:450px; height:130px"
+ = f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255
+ -#.span-8
+ -#= f.label :content
+ -#= f.text_area :content, :style => "width:450px; height:130px"
.span-8.append-bottom
= f.label :assignee_id
= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index ebcaae29ef5..94cc03d17ae 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -7,7 +7,7 @@
= truncate issue.assignee.name, :lenght => 20
%td ##{issue.id}
%td
- = html_escape issue.title
+ = truncate(html_escape(issue.title), :length => 60)
%br
- if issue.critical
%span.tag.high critical
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index 56042fa2446..a70c65d47c6 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -45,7 +45,7 @@
});
$('.delete-issue').live('ajax:success', function() {
- $(this).closest('tr').fadeOut(); });
+ $(this).closest('tr').fadeOut(); updatePage();});
function setSortable(){
$('#issues-table>tbody').sortable({
diff --git a/app/views/issues/show.html.haml b/app/views/issues/show.html.haml
index 29b6f3f7b84..c61052839f9 100644
--- a/app/views/issues/show.html.haml
+++ b/app/views/issues/show.html.haml
@@ -1,8 +1,7 @@
%h2
- = "Issue ##{@issue.id} - #{@issue.title}"
-
+ = "Issue ##{@issue.id} - #{html_escape(@issue.title)}"
.span-15
- = simple_format html_escape(@issue.content)
+ -#= simple_format html_escape(@issue.content)
.issue_notes= render "notes/notes"
.span-8.right
.span-8
@@ -29,6 +28,16 @@
%td
= image_tag gravatar_icon(@issue.assignee.email), :class => "left", :width => 40, :style => "padding:0 5px;"
= @issue.assignee.name
+ %tr
+ %td Tags
+ %td
+ - if @issue.critical
+ %span.tag.high critical
+ - else
+ %span.tag.normal normal
+
+ - if @issue.today?
+ %span.tag.today today
%tr
%td Closed?
%td
@@ -39,5 +48,10 @@
- else
= check_box_tag "closed", 1, @issue.closed, :disabled => true
+
+ - if can?(current_user, :admin_issue, @issue)
+ .clear
+ = link_to 'Edit', edit_project_issue_path(@project, @issue), :class => "lbutton positive", :remote => true
+ .right= link_to 'Destroy', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-issue negative", :id => "destroy_issue_#{@issue.id}"
.clear
diff --git a/app/views/issues/update.js.haml b/app/views/issues/update.js.haml
index 30fca38c38e..137dba3cc71 100644
--- a/app/views/issues/update.js.haml
+++ b/app/views/issues/update.js.haml
@@ -6,7 +6,7 @@
- if @issue.valid?
:plain
$("#edit_issue_dialog").dialog("close");
- $.ajax({type: "GET", url: location.href, dataType: "script"});
+ updatePage();
- else
:plain
$("#edit_issue_dialog").empty();
diff --git a/db/migrate/20111027152724_issue_conten_to_note.rb b/db/migrate/20111027152724_issue_conten_to_note.rb
new file mode 100644
index 00000000000..c151a9317ff
--- /dev/null
+++ b/db/migrate/20111027152724_issue_conten_to_note.rb
@@ -0,0 +1,34 @@
+class IssueContenToNote < ActiveRecord::Migration
+ def up
+ puts "Issue content is deprecated -> move to notes"
+ Issue.find_each(:batch_size => 100) do |issue|
+ next if issue.content.blank?
+ note = Note.new(
+ :note => issue.content,
+ :project_id => issue.project_id,
+ :noteable => issue,
+ :created_at => issue.created_at,
+ :updated_at => issue.created_at
+ )
+ note.author_id = issue.author_id
+
+ if note.save
+ issue.update_attributes(:content => nil)
+ print "."
+ else
+ print "F"
+ end
+ end
+
+ total = Issue.where("content is not null").count
+
+ if total > 0
+ puts "content of #{total} issues were not migrated"
+ else
+ puts "Done"
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 1ac90a9b400..13c4db0cc49 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20111027142641) do
+ActiveRecord::Schema.define(:version => 20111027152724) do
create_table "issues", :force => true do |t|
t.string "title"
diff --git a/spec/factories.rb b/spec/factories.rb
index cc0cd4e5e8f..36aa4fc9454 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -32,7 +32,6 @@ end
Factory.add(:issue, Issue) do |obj|
obj.title = Faker::Lorem.sentence
- obj.content = Faker::Lorem.sentences
end
Factory.add(:snippet, Snippet) do |obj|
diff --git a/spec/requests/issues_spec.rb b/spec/requests/issues_spec.rb
index 184f82931b7..b13e43adc6c 100644
--- a/spec/requests/issues_spec.rb
+++ b/spec/requests/issues_spec.rb
@@ -80,7 +80,6 @@ describe "Issues" do
describe "fill in" do
before do
fill_in "issue_title", :with => "bug 345"
- fill_in "issue_content", :with => "app bug 345"
click_link "Select user"
click_link @user.name
end
@@ -112,6 +111,23 @@ describe "Issues" do
end
end
+ describe "Show issue" do
+ before do
+ @issue = Factory :issue,
+ :author => @user,
+ :assignee => @user,
+ :project => project
+
+ visit project_issue_path(project, @issue)
+ end
+
+ it "should have valid show page for issue" do
+ page.should have_content @issue.title
+ page.should have_content @user.name
+ page.should have_content "today"
+ end
+ end
+
describe "Edit issue", :js => true do
before do
@issue = Factory :issue,
@@ -129,7 +145,6 @@ describe "Issues" do
describe "fill in" do
before do
fill_in "issue_title", :with => "bug 345"
- fill_in "issue_content", :with => "app bug 345"
end
it { expect { click_button "Save" }.to_not change {Issue.count} }