diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/javascripts/gfm_auto_complete.js.coffee | 2 | ||||
| -rw-r--r-- | app/controllers/projects/issues_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/projects_controller.rb | 2 | ||||
| -rw-r--r-- | app/helpers/events_helper.rb | 2 | ||||
| -rw-r--r-- | app/helpers/issues_helper.rb | 10 | ||||
| -rw-r--r-- | app/models/concerns/issuable.rb | 12 | ||||
| -rw-r--r-- | app/models/event.rb | 12 | ||||
| -rw-r--r-- | app/models/merge_request.rb | 4 | ||||
| -rw-r--r-- | app/models/project.rb | 2 | ||||
| -rw-r--r-- | app/views/events/event/_common.html.haml | 2 | ||||
| -rw-r--r-- | app/views/projects/issues/_issue.html.haml | 2 | ||||
| -rw-r--r-- | app/views/projects/issues/show.html.haml | 2 | ||||
| -rw-r--r-- | app/views/projects/merge_requests/_merge_request.html.haml | 2 | ||||
| -rw-r--r-- | app/views/projects/merge_requests/show/_mr_title.html.haml | 2 | ||||
| -rw-r--r-- | app/views/search/_result.html.haml | 4 |
16 files changed, 46 insertions, 18 deletions
diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee index e22761e57a4..77091da8f61 100644 --- a/app/assets/javascripts/gfm_auto_complete.js.coffee +++ b/app/assets/javascripts/gfm_auto_complete.js.coffee @@ -44,7 +44,7 @@ GitLab.GfmAutoComplete = tpl: @Issues.template callbacks: before_save: (issues) -> - $.map issues, (i) -> id: i.id, title: sanitize(i.title), search: "#{i.id} #{i.title}" + $.map issues, (i) -> id: i.iid, title: sanitize(i.title), search: "#{i.iid} #{i.title}" input.one "focus", => $.getJSON(@dataSource).done (data) -> diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index a7f515ac851..4b6e22e3607 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -91,7 +91,7 @@ class Projects::IssuesController < Projects::ApplicationController protected def issue - @issue ||= @project.issues.find(params[:id]) + @issue ||= @project.issues.find_by_iid!(params[:id]) end def authorize_modify_issue! diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index d135cf05b9e..235247f3e52 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -132,7 +132,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def merge_request - @merge_request ||= @project.merge_requests.find(params[:id]) + @merge_request ||= @project.merge_requests.find_by_iid!(params[:id]) end def authorize_modify_merge_request! diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9e88d0b4757..9b4fe5a9b5b 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -104,7 +104,7 @@ class ProjectsController < Projects::ApplicationController def autocomplete_sources @suggestions = { emojis: Emoji.names, - issues: @project.issues.select([:id, :title, :description]), + issues: @project.issues.select([:iid, :title, :description]), members: @project.team.members.sort_by(&:username).map { |user| { username: user.username, name: user.name } } } diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb index 8433e72dc24..3db010966c5 100644 --- a/app/helpers/events_helper.rb +++ b/app/helpers/events_helper.rb @@ -109,7 +109,7 @@ module EventsHelper else link_to event_note_target_path(event) do content_tag :strong do - "#{event.note_target_type} ##{truncate event.note_target_id}" + "#{event.note_target_type} ##{truncate event.note_target_iid}" end end end diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4f433f3c60d..5977c9cbae2 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -37,23 +37,23 @@ module IssuesHelper end end - def url_for_issue(issue_id) + def url_for_issue(issue_iid) return "" if @project.nil? if @project.used_default_issues_tracker? - url = project_issue_url project_id: @project, id: issue_id + url = project_issue_url project_id: @project, id: issue_iid else url = Gitlab.config.issues_tracker[@project.issues_tracker]["issues_url"] - url.gsub(':id', issue_id.to_s) + url.gsub(':id', issue_iid.to_s) .gsub(':project_id', @project.id.to_s) .gsub(':issues_tracker_id', @project.issues_tracker_id.to_s) end end - def title_for_issue(issue_id) + def title_for_issue(issue_iid) return "" if @project.nil? - if @project.used_default_issues_tracker? && issue = @project.issues.where(id: issue_id).first + if @project.used_default_issues_tracker? && issue = @project.issues.where(iid: issue_iid).first issue.title else "" diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index 91fb323825d..fb08a5aa750 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -16,6 +16,8 @@ module Issuable validates :author, presence: true validates :title, presence: true, length: { within: 0..255 } + validate :set_iid, on: :create + validates :iid, presence: true, numericality: true scope :authored, ->(user) { where(author_id: user) } scope :assigned_to, ->(u) { where(assignee_id: u.id)} @@ -24,6 +26,7 @@ module Issuable scope :unassigned, -> { where("assignee_id IS NULL") } scope :of_projects, ->(ids) { where(project_id: ids) } + delegate :name, :email, to: :author, @@ -44,6 +47,15 @@ module Issuable end end + def set_iid + max_iid = project.send(self.class.name.tableize).maximum(:iid) + self.iid = max_iid.to_i + 1 + end + + def to_param + iid.to_s + end + def today? Date.today == created_at.to_date end diff --git a/app/models/event.rb b/app/models/event.rb index 5c7c5be4190..095a06c956b 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -256,6 +256,10 @@ class Event < ActiveRecord::Base target.commit_id end + def target_iid + target.respond_to?(:iid) ? target.iid : target_id + end + def note_short_commit_id note_commit_id[0..8] end @@ -280,6 +284,14 @@ class Event < ActiveRecord::Base end end + def note_target_iid + if note_target.respond_to?(:iid) + note_target.iid + else + note_target_id + end.to_s + end + def wall_note? target.noteable_type.blank? end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index b7df2e40a16..d525ad17537 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -250,6 +250,10 @@ class MergeRequest < ActiveRecord::Base (source_project.root_ref? source_branch) || for_fork? end + def project + target_project + end + private def dump_commits(commits) diff --git a/app/models/project.rb b/app/models/project.rb index c5ae7a767de..a40cea2ad39 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -197,7 +197,7 @@ class Project < ActiveRecord::Base def issue_exists?(issue_id) if used_default_issues_tracker? - self.issues.where(id: issue_id).first.present? + self.issues.where(iid: issue_id).first.present? else true end diff --git a/app/views/events/event/_common.html.haml b/app/views/events/event/_common.html.haml index 6989f862f47..a9d3adf41df 100644 --- a/app/views/events/event/_common.html.haml +++ b/app/views/events/event/_common.html.haml @@ -2,7 +2,7 @@ %span.author_name= link_to_author event %span.event_label{class: event.action_name}= event_action_name(event) - if event.target - %strong= link_to "##{event.target_id}", [event.project, event.target] + %strong= link_to "##{event.target_iid}", [event.project, event.target] - else %strong= gfm event.target_title at diff --git a/app/views/projects/issues/_issue.html.haml b/app/views/projects/issues/_issue.html.haml index 0f3c4f752eb..b9a2c18efdc 100644 --- a/app/views/projects/issues/_issue.html.haml +++ b/app/views/projects/issues/_issue.html.haml @@ -4,7 +4,7 @@ = check_box_tag dom_id(issue,"selected"), nil, false, 'data-id' => issue.id, class: "selected_issue", disabled: !can?(current_user, :modify_issue, issue) .issue-title - %span.light= "##{issue.id}" + %span.light= "##{issue.iid}" = link_to_gfm truncate(issue.title, length: 100), project_issue_path(issue.project, issue), class: "row_title" .issue-info diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index fc6faa9c19d..d36a831432d 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -1,5 +1,5 @@ %h3.page-title - Issue ##{@issue.id} + Issue ##{@issue.iid} %small created at diff --git a/app/views/projects/merge_requests/_merge_request.html.haml b/app/views/projects/merge_requests/_merge_request.html.haml index 276436a9c8e..933d78bcbfb 100644 --- a/app/views/projects/merge_requests/_merge_request.html.haml +++ b/app/views/projects/merge_requests/_merge_request.html.haml @@ -1,6 +1,6 @@ %li{ class: mr_css_classes(merge_request) } .merge-request-title - %span.light= "##{merge_request.id}" + %span.light= "##{merge_request.iid}" = link_to_gfm truncate(merge_request.title, length: 80), project_merge_request_path(merge_request.target_project, merge_request), class: "row_title" - if merge_request.merged? %small.pull-right diff --git a/app/views/projects/merge_requests/show/_mr_title.html.haml b/app/views/projects/merge_requests/show/_mr_title.html.haml index 7dfc995121f..096a9167645 100644 --- a/app/views/projects/merge_requests/show/_mr_title.html.haml +++ b/app/views/projects/merge_requests/show/_mr_title.html.haml @@ -1,5 +1,5 @@ %h3.page-title - = "Merge Request ##{@merge_request.id}:" + = "Merge Request ##{@merge_request.iid}:" -if @merge_request.for_fork? %span.label-branch diff --git a/app/views/search/_result.html.haml b/app/views/search/_result.html.haml index fac5fdfd0b1..5f7540d1b16 100644 --- a/app/views/search/_result.html.haml +++ b/app/views/search/_result.html.haml @@ -23,7 +23,7 @@ %li merge request: = link_to [merge_request.target_project, merge_request] do - %span ##{merge_request.id} + %span ##{merge_request.iid} %strong.term = truncate merge_request.title, length: 50 - if merge_request.for_fork? @@ -37,7 +37,7 @@ %li issue: = link_to [issue.project, issue] do - %span ##{issue.id} + %span ##{issue.iid} %strong.term = truncate issue.title, length: 50 %span.light (#{issue.project.name_with_namespace}) |
