summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgitlabhq <m@gitlabhq.com>2011-10-25 07:34:02 +0300
committergitlabhq <m@gitlabhq.com>2011-10-25 07:34:02 +0300
commit9afee5ad5298dc4c89ec74c5fda44adfc91de1b2 (patch)
tree857e88a2cabb73297e13eb940156c82258cebc0c
parentafe98ae74ab13d11908e74ada1d10dccc333228b (diff)
downloadgitlab-ce-9afee5ad5298dc4c89ec74c5fda44adfc91de1b2.tar.gz
Add critical status to issues
-rw-r--r--app/assets/stylesheets/projects.css.scss34
-rw-r--r--app/controllers/issues_controller.rb2
-rw-r--r--app/models/issue.rb11
-rw-r--r--app/views/issues/_form.html.haml12
-rw-r--r--app/views/issues/_issues.html.haml7
-rw-r--r--app/views/issues/_show.html.haml20
-rw-r--r--db/migrate/20111025134235_add_high_label_to_issue.rb5
-rw-r--r--db/schema.rb3
8 files changed, 84 insertions, 10 deletions
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 8caa2810e78..3e7633a6ae2 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -647,3 +647,37 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
background: none repeat scroll 0 0 #FFBBBB
}
}
+
+.tag {
+ @include round-borders-all(4px);
+ padding:2px 4px;
+ border:none;
+
+ &.high {
+ background: #D12F19;
+ color:white;
+ }
+
+ &.today {
+ background: #44aa22;
+ color:white;
+ }
+
+ &.yours {
+ background: #4466cc;
+ color:white;
+ }
+ &.notes {
+ background: #2c5c66;
+ color:white;
+ }
+}
+
+#issues-table .issue {
+ &.critical {
+ td {
+ //background: #D12F19;
+ //color:#fff;
+ }
+ }
+}
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index cf8e1ebe661..757ada94767 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -12,7 +12,7 @@ class IssuesController < ApplicationController
def index
@issues = case params[:f].to_i
- when 1 then @project.issues.all
+ when 1 then @project.issues
when 2 then @project.issues.closed
when 3 then @project.issues.opened.assigned(current_user)
else @project.issues.opened
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 556cdc1c1c9..904965ac7e5 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -18,11 +18,22 @@ class Issue < ActiveRecord::Base
:presence => true,
:length => { :within => 0..2000 }
+ scope :critical, where(:critical => true)
+ scope :non_critical, where(:critical => false)
+
scope :opened, where(:closed => false)
scope :closed, where(:closed => true)
scope :assigned, lambda { |u| where(:assignee_id => u.id)}
acts_as_list
+
+ def today?
+ Date.today == created_at.to_date
+ end
+
+ def new?
+ today? && created_at == updated_at
+ end
end
# == Schema Information
#
diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml
index 71acdba1895..eae0ee0f52c 100644
--- a/app/views/issues/_form.html.haml
+++ b/app/views/issues/_form.html.haml
@@ -5,17 +5,21 @@
- @issue.errors.full_messages.each do |msg|
%li= msg
- .span-6
+ .span-8
= f.label :title
= f.text_field :title, :style => "width:450px"
- .span-6
+ .span-8
= f.label :content
= f.text_area :content, :style => "width:450px; height:130px"
- .span-6.append-bottom
+ .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" })
+ .span-1
+ = f.label :critical, "Critical"
+ %br
+ = f.check_box :critical
- unless @issue.new_record?
- .span-3.right
+ .span-2.right
= f.label :closed
%br
= f.check_box :closed
diff --git a/app/views/issues/_issues.html.haml b/app/views/issues/_issues.html.haml
index d3e21940346..42e8371a0ba 100644
--- a/app/views/issues/_issues.html.haml
+++ b/app/views/issues/_issues.html.haml
@@ -1,10 +1,15 @@
%table.round-borders#issues-table
%tr
+ - if can?(current_user, :admin_issue, @project) && !params[:f] || params[:f] == "0"
+ %th
%th Assignee
%th ID
%th Title
%th Closed?
%th
- - @issues.each do |issue|
+ - @issues.critical.each do |issue|
+ = render(:partial => 'show', :locals => {:issue => issue})
+
+ - @issues.non_critical.each do |issue|
= render(:partial => 'show', :locals => {:issue => issue})
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index 30157257ff5..fcac006e81c 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -1,10 +1,24 @@
-%tr{ :id => dom_id(issue), :class => "issue", :url => project_issue_path(@project, issue) }
+%tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(@project, issue) }
+ - if can?(current_user, :admin_issue, @project) && !params[:f] || params[:f] == "0"
+ %td
+ = image_tag "move.png" , :class => [:handle, :left]
%td
- = image_tag "move.png" , :class => [:handle, :left]
= image_tag gravatar_icon(issue.assignee.email), :class => "left", :width => 40, :style => "padding:0 5px;"
= truncate issue.assignee.name, :lenght => 20
%td ##{issue.id}
- %td= html_escape issue.title
+ %td
+ = html_escape issue.title
+ %br
+ - if issue.critical
+ %span.tag.high critical
+ - if issue.today?
+ %span.tag.today today
+ -#- if issue.author == current_user
+ -#%span.tag.yours yours
+ -#- if issue.notes.count > 0
+ -#%span.tag.notes
+ -#= issue.notes.count
+ -#notes
%td
- if can? current_user, :write_issue, @project
= form_for([@project, issue], :remote => true) do |f|
diff --git a/db/migrate/20111025134235_add_high_label_to_issue.rb b/db/migrate/20111025134235_add_high_label_to_issue.rb
new file mode 100644
index 00000000000..676eaaf8c1b
--- /dev/null
+++ b/db/migrate/20111025134235_add_high_label_to_issue.rb
@@ -0,0 +1,5 @@
+class AddHighLabelToIssue < ActiveRecord::Migration
+ def change
+ add_column :issues, :critical, :boolean, :default => false, :null => false
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index cc805990a8b..21c224d4a90 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 => 20111021101550) do
+ActiveRecord::Schema.define(:version => 20111025134235) do
create_table "issues", :force => true do |t|
t.string "title"
@@ -23,6 +23,7 @@ ActiveRecord::Schema.define(:version => 20111021101550) do
t.datetime "updated_at"
t.boolean "closed", :default => false, :null => false
t.integer "position", :default => 0
+ t.boolean "critical", :default => false, :null => false
end
create_table "keys", :force => true do |t|