Skip to content

Commit

Permalink
Merge branch 'tweet-new-project'
Browse files Browse the repository at this point in the history
Conflicts:
	db/schema.rb
  • Loading branch information
dzaporozhets committed Feb 16, 2015
2 parents 26d594f + 67afb5b commit 2ad00f5
Show file tree
Hide file tree
Showing 27 changed files with 236 additions and 151 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Expand Up @@ -53,6 +53,7 @@ v 7.8.0 (unreleased)
- Show assignees in merge request index page (Kelvin Mutuma)
- Link head panel titles to relevant root page.
- Allow users that signed up via OAuth to set their password in order to use Git over HTTP(S).
- Show users button to share their newly created public or internal projects on twitter

v 7.7.2
- Update GitLab Shell to version 2.4.2 that fixes a bug when developers can push to protected branch
Expand Down
4 changes: 4 additions & 0 deletions app/assets/stylesheets/sections/events.scss
Expand Up @@ -64,6 +64,10 @@

.md {
font-size: 13px;

iframe.twitter-share-button {
vertical-align: bottom;
}
}

pre {
Expand Down
1 change: 1 addition & 0 deletions app/controllers/admin/application_settings_controller.rb
Expand Up @@ -26,6 +26,7 @@ def application_setting_params
:signup_enabled,
:signin_enabled,
:gravatar_enabled,
:twitter_sharing_enabled,
:sign_in_text,
:home_page_url
)
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/projects/tags_controller.rb
Expand Up @@ -27,7 +27,7 @@ def destroy
tag = @repository.find_tag(params[:id])

if tag && @repository.rm_tag(tag.name)
Event.create_ref_event(@project, current_user, tag, 'rm', 'refs/tags')
EventCreateService.new.push_ref(@project, current_user, tag, 'rm', 'refs/tags')
end

respond_to do |format|
Expand Down
4 changes: 4 additions & 0 deletions app/helpers/application_settings_helper.rb
Expand Up @@ -3,6 +3,10 @@ def gravatar_enabled?
current_application_settings.gravatar_enabled?
end

def twitter_sharing_enabled?
current_application_settings.twitter_sharing_enabled?
end

def signup_enabled?
current_application_settings.signup_enabled?
end
Expand Down
53 changes: 32 additions & 21 deletions app/helpers/events_helper.rb
Expand Up @@ -10,11 +10,15 @@ def link_to_author(event)
end

def event_action_name(event)
target = if event.target_type
event.target_type.titleize.downcase
else
'project'
end
target = if event.target_type
if event.note?
event.note_target_type
else
event.target_type.titleize.downcase
end
else
'project'
end

[event.action_name, target].join(" ")
end
Expand Down Expand Up @@ -42,21 +46,30 @@ def icon_for_event
end

def event_feed_title(event)
if event.issue?
"#{event.author_name} #{event.action_name} issue ##{event.target_iid}: #{event.issue_title} at #{event.project_name}"
elsif event.merge_request?
"#{event.author_name} #{event.action_name} MR ##{event.target_iid}: #{event.merge_request_title} at #{event.project_name}"
elsif event.push?
"#{event.author_name} #{event.push_action_name} #{event.ref_type} #{event.ref_name} at #{event.project_name}"
elsif event.membership_changed?
"#{event.author_name} #{event.action_name} #{event.project_name}"
elsif event.note? && event.note_commit?
"#{event.author_name} commented on #{event.note_target_type} #{event.note_short_commit_id} at #{event.project_name}"
elsif event.note?
"#{event.author_name} commented on #{event.note_target_type} ##{truncate event.note_target_iid} at #{event.project_name}"
else
""
words = []
words << event.author_name
words << event_action_name(event)

if event.push?
words << event.ref_type
words << event.ref_name
words << "at"
elsif event.commented?
if event.note_commit?
words << event.note_short_commit_id
else
words << "##{truncate event.note_target_iid}"
end
words << "at"
elsif event.target
words << "##{event.target_iid}:"
words << event.target.title if event.target.respond_to?(:title)
words << "at"
end

words << event.project_name

words.join(" ")
end

def event_feed_url(event)
Expand Down Expand Up @@ -96,8 +109,6 @@ def event_feed_summary(event)
render "events/event_push", event: event
elsif event.merge_request?
render "events/event_merge_request", merge_request: event.merge_request
elsif event.push?
render "events/event_push", event: event
elsif event.note?
render "events/event_note", note: event.note
end
Expand Down
2 changes: 2 additions & 0 deletions app/models/application_setting.rb
Expand Up @@ -8,6 +8,7 @@
# signup_enabled :boolean
# signin_enabled :boolean
# gravatar_enabled :boolean
# twitter_sharing_enabled :boolean
# sign_in_text :text
# created_at :datetime
# updated_at :datetime
Expand All @@ -30,6 +31,7 @@ def self.create_from_defaults
default_branch_protection: Settings.gitlab['default_branch_protection'],
signup_enabled: Settings.gitlab['signup_enabled'],
signin_enabled: Settings.gitlab['signin_enabled'],
twitter_sharing_enabled: Settings.gitlab['twitter_sharing_enabled'],
gravatar_enabled: Settings.gravatar['enabled'],
sign_in_text: Settings.extra['sign_in_text'],
)
Expand Down
107 changes: 53 additions & 54 deletions app/models/event.rb
Expand Up @@ -49,29 +49,6 @@ class Event < ActiveRecord::Base
scope :in_projects, ->(project_ids) { where(project_id: project_ids).recent }

class << self
def create_ref_event(project, user, ref, action = 'add', prefix = 'refs/heads')
commit = project.repository.commit(ref.target)

if action.to_s == 'add'
before = '00000000'
after = commit.id
else
before = commit.id
after = '00000000'
end

Event.create(
project: project,
action: Event::PUSHED,
data: {
ref: "#{prefix}/#{ref.name}",
before: before,
after: after
},
author_id: user.id
)
end

def reset_event_cache_for(target)
Event.where(target_id: target.id, target_type: target.class.to_s).
order('id DESC').limit(100).
Expand All @@ -84,6 +61,8 @@ def proper?
true
elsif membership_changed?
true
elsif created_project?
true
else
(issue? || merge_request? || note? || milestone?) && target
end
Expand All @@ -98,25 +77,51 @@ def project_name
end

def target_title
if target && target.respond_to?(:title)
target.title
end
target.title if target && target.respond_to?(:title)
end

def created?
action == CREATED
end

def push?
action == self.class::PUSHED && valid_push?
action == PUSHED && valid_push?
end

def merged?
action == self.class::MERGED
action == MERGED
end

def closed?
action == self.class::CLOSED
action == CLOSED
end

def reopened?
action == self.class::REOPENED
action == REOPENED
end

def joined?
action == JOINED
end

def left?
action == LEFT
end

def commented?
action == COMMENTED
end

def membership_changed?
joined? || left?
end

def created_project?
created? && !target
end

def created_target?
created? && target
end

def milestone?
Expand All @@ -135,39 +140,43 @@ def merge_request?
target_type == "MergeRequest"
end

def joined?
action == JOINED
end

def left?
action == LEFT
end

def membership_changed?
joined? || left?
def milestone
target if milestone?
end

def issue
target if target_type == "Issue"
target if issue?
end

def merge_request
target if target_type == "MergeRequest"
target if merge_request?
end

def note
target if target_type == "Note"
target if note?
end

def action_name
if closed?
if push?
if new_ref?
"pushed new"
elsif rm_ref?
"deleted"
else
"pushed to"
end
elsif closed?
"closed"
elsif merged?
"accepted"
elsif joined?
'joined'
elsif left?
'left'
elsif commented?
"commented on"
elsif created_project?
"created"
else
"opened"
end
Expand Down Expand Up @@ -236,16 +245,6 @@ def ref_type
tag? ? "tag" : "branch"
end

def push_action_name
if new_ref?
"pushed new"
elsif rm_ref?
"deleted"
else
"pushed to"
end
end

def push_with_commits?
md_ref? && commits.any? && commit_from && commit_to
end
Expand Down
23 changes: 10 additions & 13 deletions app/models/members/project_member.rb
Expand Up @@ -114,13 +114,11 @@ def owner?
end

def post_create_hook
Event.create(
project_id: self.project.id,
action: Event::JOINED,
author_id: self.user.id
)

notification_service.new_team_member(self) unless owner?
unless owner?
event_service.join_project(self.project, self.user)
notification_service.new_team_member(self)
end

system_hook_service.execute_hooks_for(self, :create)
end

Expand All @@ -129,15 +127,14 @@ def post_update_hook
end

def post_destroy_hook
Event.create(
project_id: self.project.id,
action: Event::LEFT,
author_id: self.user.id
)

event_service.leave_project(self.project, self.user)
system_hook_service.execute_hooks_for(self, :destroy)
end

def event_service
EventCreateService.new
end

def notification_service
NotificationService.new
end
Expand Down
2 changes: 1 addition & 1 deletion app/services/create_branch_service.rb
Expand Up @@ -17,7 +17,7 @@ def execute(branch_name, ref)
new_branch = repository.find_branch(branch_name)

if new_branch
Event.create_ref_event(project, current_user, new_branch, 'add')
EventCreateService.new.push_ref(project, current_user, new_branch, 'add')
return success(new_branch)
else
return error('Invalid reference name')
Expand Down
2 changes: 1 addition & 1 deletion app/services/create_tag_service.rb
Expand Up @@ -26,7 +26,7 @@ def execute(tag_name, ref, message)
project.gitlab_ci_service.async_execute(push_data)
end

Event.create_ref_event(project, current_user, new_tag, 'add', 'refs/tags')
EventCreateService.new.push_ref(project, current_user, new_tag, 'add', 'refs/tags')
success(new_tag)
else
error('Invalid reference name')
Expand Down
2 changes: 1 addition & 1 deletion app/services/delete_branch_service.rb
Expand Up @@ -25,7 +25,7 @@ def execute(branch_name)
end

if repository.rm_branch(branch_name)
Event.create_ref_event(project, current_user, branch, 'rm')
EventCreateService.new.push_ref(project, current_user, branch, 'rm')
success('Branch was removed')
else
return error('Failed to remove branch')
Expand Down

0 comments on commit 2ad00f5

Please sign in to comment.