Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-03-04 17:35:15 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-03-04 17:35:15 +0400
commit0727edd8a0c68b640b95fabce21472b04a806562 (patch)
tree5337e8f6b546806e4c4697048ff695a6b6f05697 /app
parent3fe9d2972f37f408f403a98a3bdde16174163350 (diff)
Removed issues,mr delete buttons. Refactored models
Diffstat (limited to 'app')
-rw-r--r--app/controllers/merge_requests_controller.rb2
-rw-r--r--app/models/key.rb2
-rw-r--r--app/models/key_observer.rb9
-rw-r--r--app/models/project.rb78
-rw-r--r--app/models/project_observer.rb9
-rw-r--r--app/views/issues/_form.html.haml12
-rw-r--r--app/views/issues/_show.html.haml2
-rw-r--r--app/views/merge_requests/_form.html.haml11
-rw-r--r--app/views/projects/index.html.haml40
9 files changed, 54 insertions, 111 deletions
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb
index cfb9e6dcbb7..1cf75876426 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -30,7 +30,7 @@ class MergeRequestsController < ApplicationController
else @merge_requests.opened
end
- @merge_requests = @merge_requests.includes(:author, :project)
+ @merge_requests = @merge_requests.includes(:author, :project).order("created_at desc")
end
def show
diff --git a/app/models/key.rb b/app/models/key.rb
index c1bcc348f12..1d7aae359f4 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -14,8 +14,6 @@ class Key < ActiveRecord::Base
before_save :set_identifier
before_validation :strip_white_space
- after_save :update_repository
- after_destroy :repository_delete_key
delegate :name, :email, :to => :user, :prefix => true
validate :unique_key
diff --git a/app/models/key_observer.rb b/app/models/key_observer.rb
new file mode 100644
index 00000000000..fac53a67925
--- /dev/null
+++ b/app/models/key_observer.rb
@@ -0,0 +1,9 @@
+class KeyObserver < ActiveRecord::Observer
+ def after_save(key)
+ key.update_repository
+ end
+
+ def after_destroy(key)
+ key.repository_delete_key
+ end
+end
diff --git a/app/models/project.rb b/app/models/project.rb
index 7a99ee6f7ad..32b244597f3 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -3,19 +3,17 @@ require "grit"
class Project < ActiveRecord::Base
belongs_to :owner, :class_name => "User"
- has_many :events, :dependent => :destroy
+ has_many :users, :through => :users_projects
+ has_many :events, :dependent => :destroy
has_many :merge_requests, :dependent => :destroy
- has_many :issues, :dependent => :destroy, :order => "position"
+ has_many :issues, :dependent => :destroy, :order => "position"
has_many :users_projects, :dependent => :destroy
- has_many :users, :through => :users_projects
- has_many :notes, :dependent => :destroy
- has_many :snippets, :dependent => :destroy
- has_many :deploy_keys, :dependent => :destroy, :foreign_key => "project_id", :class_name => "Key"
- has_many :web_hooks, :dependent => :destroy
+ has_many :notes, :dependent => :destroy
+ has_many :snippets, :dependent => :destroy
+ has_many :deploy_keys, :dependent => :destroy, :foreign_key => "project_id", :class_name => "Key"
+ has_many :web_hooks, :dependent => :destroy
+ has_many :wikis, :dependent => :destroy
has_many :protected_branches, :dependent => :destroy
- has_many :wikis, :dependent => :destroy
-
- acts_as_taggable
validates :name,
:uniqueness => true,
@@ -39,15 +37,10 @@ class Project < ActiveRecord::Base
:message => "only letters, digits & '_' '-' '.' allowed" },
:length => { :within => 3..255 }
- validates :owner,
- :presence => true
-
+ validates :owner, :presence => true
validate :check_limit
validate :repo_name
- after_destroy :destroy_repository
- after_save :update_repository
-
attr_protected :private_flag, :owner_id
scope :public_only, where(:private_flag => false)
@@ -163,18 +156,6 @@ class Project < ActiveRecord::Base
users_projects.find_by_user_id(user_id)
end
- def fresh_merge_requests(n)
- merge_requests.includes(:project, :author).order("created_at desc").first(n)
- end
-
- def fresh_issues(n)
- issues.includes(:project, :author).order("created_at desc").first(n)
- end
-
- def fresh_notes(n)
- notes.inc_author_project.order("created_at desc").first(n)
- end
-
def common_notes
notes.where(:noteable_type => ["", nil]).inc_author_project
end
@@ -277,9 +258,7 @@ class Project < ActiveRecord::Base
end
def last_activity
- events.last
- rescue
- nil
+ events.last || nil
end
def last_activity_date
@@ -294,43 +273,6 @@ class Project < ActiveRecord::Base
last_activity_date
end
- # Get project updates from cache
- # or calculate.
- def cached_updates(limit, expire = 2.minutes)
- activities_key = "project_#{id}_activities"
- cached_activities = Rails.cache.read(activities_key)
- if cached_activities
- activities = cached_activities
- else
- activities = updates(limit)
- Rails.cache.write(activities_key, activities, :expires_in => expire)
- end
-
- activities
- end
-
- # Get 20 events for project like
- # commits, issues or notes
- def updates(n = 3)
- [
- fresh_commits(n),
- fresh_issues(n),
- fresh_notes(n)
- ].compact.flatten.sort do |x, y|
- y.created_at <=> x.created_at
- end[0...n]
- end
-
- def activities(n=3)
- [
- fresh_issues(n),
- fresh_merge_requests(n),
- notes.inc_author_project.where("noteable_type is not null").order("created_at desc").first(n)
- ].compact.flatten.sort do |x, y|
- y.created_at <=> x.created_at
- end[0...n]
- end
-
def check_limit
unless owner.can_create_project?
errors[:base] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it")
diff --git a/app/models/project_observer.rb b/app/models/project_observer.rb
new file mode 100644
index 00000000000..135959ab738
--- /dev/null
+++ b/app/models/project_observer.rb
@@ -0,0 +1,9 @@
+class ProjectObserver < ActiveRecord::Observer
+ def after_save(project)
+ project.update_repository
+ end
+
+ def after_destroy(project)
+ project.destroy_repository
+ end
+end
diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml
index 3b379198aed..1635590bf1f 100644
--- a/app/views/issues/_form.html.haml
+++ b/app/views/issues/_form.html.haml
@@ -9,6 +9,10 @@
%li= msg
.clearfix
+ = f.label :title
+ .input= f.text_area :title, :maxlength => 255, :class => "xxlarge"
+
+ .clearfix
= f.label :assignee_id
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
@@ -21,9 +25,6 @@
= f.label :closed
.input= f.check_box :closed
- .clearfix
- = f.label :title
- .input= f.text_area :title, :maxlength => 255, :class => "xxlarge"
.actions
= f.submit 'Save', :class => "primary btn"
@@ -34,8 +35,3 @@
= link_to "Cancel", project_issues_path(@project), :class => "btn"
- else
= link_to "Cancel", project_issue_path(@project, @issue), :class => "btn"
-
-
- - unless @issue.new_record?
- .right
- = link_to 'Remove', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "danger btn"
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index 9d86a5ff01b..b8031e929b6 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -6,8 +6,6 @@
- else
= link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "success btn small", :remote => true
= link_to 'Edit', edit_project_issue_path(issue.project, issue), :class => "btn small edit-issue-link", :remote => true
- -#- if can?(current_user, :admin_issue, @project) || issue.author == current_user
- = link_to 'Remove', [issue.project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "danger btn small delete-issue", :id => "destroy_issue_#{issue.id}"
= image_tag gravatar_icon(issue.assignee_email), :class => "avatar"
%span.update-author
assigned to
diff --git a/app/views/merge_requests/_form.html.haml b/app/views/merge_requests/_form.html.haml
index cab517dc3d5..c0440e07275 100644
--- a/app/views/merge_requests/_form.html.haml
+++ b/app/views/merge_requests/_form.html.haml
@@ -6,6 +6,9 @@
%li= msg
.clearfix
+ = f.label :title
+ .input= f.text_area :title, :class => "xxlarge", :maxlength => 255, :rows => 5
+ .clearfix
= f.label :source_branch, "From"
.input= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
.clearfix
@@ -15,9 +18,6 @@
= f.label :assignee_id, "Assign to"
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
- .clearfix
- = f.label :title
- .input= f.text_area :title, :class => "xlarge", :maxlength => 255, :rows => 5
.actions
= f.submit 'Save', :class => "primary btn"
- if @merge_request.new_record?
@@ -26,11 +26,6 @@
- else
= link_to project_merge_request_path(@project, @merge_request), :class => "btn" do
Cancel
- &nbsp;
- - unless @merge_request.new_record?
- .right
- = link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
-
diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml
index e70b9f0d8d7..20f4f510cdd 100644
--- a/app/views/projects/index.html.haml
+++ b/app/views/projects/index.html.haml
@@ -1,25 +1,21 @@
-- unless @projects.empty?
- .row
- .span4
- %div.leftbar.ui-box
- %h5
- Projects
- - if current_user.can_create_project?
- %span.right
- = link_to new_project_path, :class => "btn very_small info" do
- New Project
- .content_list
- - @projects.each do |project|
- = link_to project_path(project), :remote => true, :class => dom_class(project) do
- %h4
- %span.ico.project
- = truncate(project.name, :length => 22)
- .span12.right
- .show_holder.ui-box.padded
- .loading
-
-- else
- %h2 Nothing here
+.row
+ .span4
+ %div.leftbar.ui-box
+ %h5
+ Projects
+ - if current_user.can_create_project?
+ %span.right
+ = link_to new_project_path, :class => "btn very_small info" do
+ New Project
+ .content_list
+ - @projects.each do |project|
+ = link_to project_path(project), :remote => true, :class => dom_class(project) do
+ %h4
+ %span.ico.project
+ = truncate(project.name, :length => 22)
+ .span12.right
+ .show_holder.ui-box.padded
+ .loading
:javascript