diff options
-rw-r--r-- | Gemfile | 3 | ||||
-rw-r--r-- | Gemfile.lock | 4 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | app/assets/javascripts/commits.js.coffee | 6 | ||||
-rw-r--r-- | app/assets/javascripts/main.js.coffee | 4 | ||||
-rw-r--r-- | app/assets/javascripts/project.js.coffee | 10 | ||||
-rw-r--r-- | app/contexts/issues/bulk_update_context.rb | 36 | ||||
-rw-r--r-- | app/contexts/issues/list_context.rb | 32 | ||||
-rw-r--r-- | app/contexts/issues_bulk_update_context.rb | 24 | ||||
-rw-r--r-- | app/contexts/issues_list_context.rb | 30 | ||||
-rw-r--r-- | app/controllers/issues_controller.rb | 4 | ||||
-rw-r--r-- | app/models/gitlab_ci_service.rb | 8 | ||||
-rw-r--r-- | app/views/projects/_errors.html.haml | 4 | ||||
-rw-r--r-- | app/views/projects/_form.html.haml | 151 | ||||
-rw-r--r-- | app/views/projects/_new_form.html.haml | 48 | ||||
-rw-r--r-- | app/views/projects/create.js.haml | 6 | ||||
-rw-r--r-- | app/views/projects/edit.html.haml | 153 | ||||
-rw-r--r-- | app/views/projects/new.html.haml | 56 | ||||
-rw-r--r-- | app/views/projects/show.html.haml | 5 | ||||
-rw-r--r-- | app/views/projects/update.js.haml | 5 | ||||
-rw-r--r-- | lib/tasks/gitlab/check.rake | 3 |
21 files changed, 313 insertions, 281 deletions
@@ -22,7 +22,8 @@ gem 'omniauth-twitter' gem 'omniauth-github' # Extracting information from a git repository -gem 'gitlab_git', '~> 1.2.0' +# Provide access to Gitlab::Git library +gem 'gitlab_git', '~> 1.2.1' # Ruby/Rack Git Smart-HTTP Server Handler gem 'gitlab-grack', '~> 1.0.0', require: 'grack' diff --git a/Gemfile.lock b/Gemfile.lock index 279c14dbb47..93798439d8c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,7 +168,7 @@ GEM gitlab-pygments.rb (0.3.2) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.1.0) - gitlab_git (1.2.0) + gitlab_git (1.2.1) activesupport (~> 3.2.13) github-linguist (~> 2.3.4) gitlab-grit (~> 2.5.1) @@ -512,7 +512,7 @@ DEPENDENCIES gitlab-gollum-lib (~> 1.0.0) gitlab-grack (~> 1.0.0) gitlab-pygments.rb (~> 0.3.2) - gitlab_git (~> 1.2.0) + gitlab_git (~> 1.2.1) gitlab_meta (= 5.0) gitlab_omniauth-ldap (= 1.0.2) gon @@ -1 +1 @@ -5.2.0.pre +5.2.0.beta1 diff --git a/app/assets/javascripts/commits.js.coffee b/app/assets/javascripts/commits.js.coffee index 47d6fcf8089..ab8eaa63228 100644 --- a/app/assets/javascripts/commits.js.coffee +++ b/app/assets/javascripts/commits.js.coffee @@ -23,7 +23,7 @@ class CommitsList @data.offset = limit this.initLoadMore() - this.showProgress(); + this.showProgress() @getOld: -> this.showProgress() @@ -41,7 +41,7 @@ class CommitsList else @disable = true - @initLoadMore: -> + @initLoadMore: -> $(document).endlessScroll bottomPixels: 400 fireDelay: 1000 @@ -51,4 +51,4 @@ class CommitsList callback: => this.getOld() -this.CommitsList = CommitsList
\ No newline at end of file +this.CommitsList = CommitsList diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee index fb51d379ebd..45ef44fcc04 100644 --- a/app/assets/javascripts/main.js.coffee +++ b/app/assets/javascripts/main.js.coffee @@ -55,8 +55,10 @@ $ -> $(".one_click_select").on 'click', -> $(@).select() # Click a .appear-link, appear-data fadeout - $(".appear-link").on 'click', -> + $(".appear-link").on 'click', (e) -> $('.appear-data').fadeIn() + e.preventDefault() + # Initialize chosen selects $('select.chosen').chosen() diff --git a/app/assets/javascripts/project.js.coffee b/app/assets/javascripts/project.js.coffee index f926188d23f..780292daa11 100644 --- a/app/assets/javascripts/project.js.coffee +++ b/app/assets/javascripts/project.js.coffee @@ -1,10 +1,13 @@ class Project constructor: -> - $('.new_project, .edit_project').on 'ajax:before', -> - $('.project_new_holder, .project_edit_holder').hide() + $('.project-edit-container').on 'ajax:before', => + $('.project-edit-container').hide() $('.save-project-loader').show() - $('form #project_default_branch').chosen() + @initEvents() + + + initEvents: -> disableButtonIfEmptyField '#project_name', '.project-submit' $('#project_issues_enabled').change -> @@ -21,6 +24,7 @@ class Project else $('#project_issues_tracker_id').removeAttr('disabled') + @Project = Project $ -> diff --git a/app/contexts/issues/bulk_update_context.rb b/app/contexts/issues/bulk_update_context.rb new file mode 100644 index 00000000000..e92264a8bb1 --- /dev/null +++ b/app/contexts/issues/bulk_update_context.rb @@ -0,0 +1,36 @@ +module Issues + class BulkUpdateContext < BaseContext + def execute + update_data = params[:update] + + issues_ids = update_data[:issues_ids].split(",") + milestone_id = update_data[:milestone_id] + assignee_id = update_data[:assignee_id] + status = update_data[:status] + + opts = {} + opts[:milestone_id] = milestone_id if milestone_id.present? + opts[:assignee_id] = assignee_id if assignee_id.present? + + issues = Issue.where(id: issues_ids).all + issues = issues.select { |issue| can?(current_user, :modify_issue, issue) } + + issues.each do |issue| + issue.update_attributes(opts) + + if status.present? + if status == 'closed' + issue.close + else + issue.reopen + end + end + end + + { + count: issues.count, + success: !issues.count.zero? + } + end + end +end diff --git a/app/contexts/issues/list_context.rb b/app/contexts/issues/list_context.rb new file mode 100644 index 00000000000..a35bddd6443 --- /dev/null +++ b/app/contexts/issues/list_context.rb @@ -0,0 +1,32 @@ +module Issues + class ListContext < BaseContext + include IssuesHelper + + attr_accessor :issues + + def execute + @issues = case params[:status] + when issues_filter[:all] then @project.issues + when issues_filter[:closed] then @project.issues.closed + when issues_filter[:to_me] then @project.issues.assigned(current_user) + when issues_filter[:by_me] then @project.issues.authored(current_user) + else @project.issues.opened + end + + @issues = @issues.tagged_with(params[:label_name]) if params[:label_name].present? + @issues = @issues.includes(:author, :project) + + # Filter by specific assignee_id (or lack thereof)? + if params[:assignee_id].present? + @issues = @issues.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id])) + end + + # Filter by specific milestone_id (or lack thereof)? + if params[:milestone_id].present? + @issues = @issues.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id])) + end + + @issues + end + end +end diff --git a/app/contexts/issues_bulk_update_context.rb b/app/contexts/issues_bulk_update_context.rb deleted file mode 100644 index 7981259d73d..00000000000 --- a/app/contexts/issues_bulk_update_context.rb +++ /dev/null @@ -1,24 +0,0 @@ -class IssuesBulkUpdateContext < BaseContext - def execute - update_data = params[:update] - - issues_ids = update_data[:issues_ids].split(",") - milestone_id = update_data[:milestone_id] - assignee_id = update_data[:assignee_id] - status = update_data[:status] - - opts = {} - opts[:milestone_id] = milestone_id if milestone_id.present? - opts[:assignee_id] = assignee_id if assignee_id.present? - opts[:closed] = (status == "closed") if status.present? - - issues = Issue.where(id: issues_ids).all - issues = issues.select { |issue| can?(current_user, :modify_issue, issue) } - issues.each { |issue| issue.update_attributes(opts) } - { - count: issues.count, - success: !issues.count.zero? - } - end -end - diff --git a/app/contexts/issues_list_context.rb b/app/contexts/issues_list_context.rb deleted file mode 100644 index 0765b30c354..00000000000 --- a/app/contexts/issues_list_context.rb +++ /dev/null @@ -1,30 +0,0 @@ -class IssuesListContext < BaseContext - include IssuesHelper - - attr_accessor :issues - - def execute - @issues = case params[:status] - when issues_filter[:all] then @project.issues - when issues_filter[:closed] then @project.issues.closed - when issues_filter[:to_me] then @project.issues.assigned(current_user) - when issues_filter[:by_me] then @project.issues.authored(current_user) - else @project.issues.opened - end - - @issues = @issues.tagged_with(params[:label_name]) if params[:label_name].present? - @issues = @issues.includes(:author, :project) - - # Filter by specific assignee_id (or lack thereof)? - if params[:assignee_id].present? - @issues = @issues.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id])) - end - - # Filter by specific milestone_id (or lack thereof)? - if params[:milestone_id].present? - @issues = @issues.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id])) - end - - @issues - end -end diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 242bc90d28f..ba92ba2bdae 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -86,7 +86,7 @@ class IssuesController < ProjectResourceController end def bulk_update - result = IssuesBulkUpdateContext.new(project, current_user, params).execute + result = Issues::BulkUpdateContext.new(project, current_user, params).execute redirect_to :back, notice: "#{result[:count]} issues updated" end @@ -109,6 +109,6 @@ class IssuesController < ProjectResourceController end def issues_filtered - @issues = IssuesListContext.new(project, current_user, params).execute + @issues = Issues::ListContext.new(project, current_user, params).execute end end diff --git a/app/models/gitlab_ci_service.rb b/app/models/gitlab_ci_service.rb index 4eb39c7ef4d..9b1c707a6c9 100644 --- a/app/models/gitlab_ci_service.rb +++ b/app/models/gitlab_ci_service.rb @@ -46,4 +46,12 @@ class GitlabCiService < Service def build_page sha project_url + "/builds/#{sha}" end + + def builds_path + project_url + "?ref=" + project.default_branch + end + + def status_img_path + project_url + "/status.png?ref=" + project.default_branch + end end diff --git a/app/views/projects/_errors.html.haml b/app/views/projects/_errors.html.haml new file mode 100644 index 00000000000..bb9759353a3 --- /dev/null +++ b/app/views/projects/_errors.html.haml @@ -0,0 +1,4 @@ +- if @project.errors.any? + .alert.alert-error + %button{ type: "button", class: "close", "data-dismiss" => "alert"} × + = @project.errors.full_messages.first diff --git a/app/views/projects/_form.html.haml b/app/views/projects/_form.html.haml deleted file mode 100644 index 0e1fd238005..00000000000 --- a/app/views/projects/_form.html.haml +++ /dev/null @@ -1,151 +0,0 @@ -.row - .span3 - %ul.nav.nav-pills.nav-stacked - %li.active - = link_to 'Settings', '#tab-settings', 'data-toggle' => 'tab' - %li - = link_to 'Transfer', '#tab-transfer', 'data-toggle' => 'tab' - %li - = link_to 'Remove', '#tab-remove', 'data-toggle' => 'tab' - - .span9 - .tab-content - .tab-pane.active#tab-settings - .ui-box.white - %h5.title Settings: - .form-holder - = form_for(@project, remote: true) do |f| - - if @project.errors.any? - .alert.alert-error - %ul - - @project.errors.full_messages.each do |msg| - %li= msg - - %fieldset - .clearfix.project_name_holder - = f.label :name do - Project name is - .input - = f.text_field :name, placeholder: "Example Project", class: "span5" - - - .clearfix - = f.label :description do - Project description - %span.light (optional) - .input - = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250 - - - unless @project.empty_repo? - .clearfix - = f.label :default_branch, "Default Branch" - .input= f.select(:default_branch, @repository.branch_names, {}) - - - - if can?(current_user, :change_public_mode, @project) - %fieldset.public-mode - %legend - Public mode: - .control-group - = f.label :public, class: 'control-label' do - %span Public access - .controls - = f.check_box :public - %span.descr - If checked, this project can be cloned - %em without any - authentication. - It will also be listed on the #{link_to "public access directory", public_root_path}. - %em Any - user will have #{link_to "Guest", help_permissions_path} permissions on the repository. - - %fieldset.features - %legend - Labels: - .control-group - = f.label :label_list, "Labels", class: 'control-label' - .controls - = f.text_field :label_list, maxlength: 2000, class: "span5" - %p.hint Separate with comma. - - %fieldset.features - %legend - Features: - .control-group - = f.label :issues_enabled, "Issues", class: 'control-label' - .controls - = f.check_box :issues_enabled - %span.descr Lightweight issue tracking system for this project - - - if Project.issues_tracker.values.count > 1 - .control-group - = f.label :issues_tracker, "Issues tracker", class: 'control-label' - .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled }) - - .clearfix - = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' - .input= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id? - - .control-group - = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label' - .controls - = f.check_box :merge_requests_enabled - %span.descr Submit changes to be merged upstream. - - .control-group - = f.label :wiki_enabled, "Wiki", class: 'control-label' - .controls - = f.check_box :wiki_enabled - %span.descr Pages for project documentation - - .control-group - = f.label :wall_enabled, "Wall", class: 'control-label' - .controls - = f.check_box :wall_enabled - %span.descr Simple chat system for broadcasting inside project - - .control-group - = f.label :snippets_enabled, "Snippets", class: 'control-label' - .controls - = f.check_box :snippets_enabled - %span.descr Share code pastes with others out of git repository - - - .form-actions - = f.submit 'Save', class: "btn btn-save" - - .tab-pane#tab-transfer - - if can?(current_user, :change_namespace, @project) - .ui-box.ui-box-danger - %h5.title Transfer project - .errors-holder - .form-holder - = form_for(@project, url: transfer_project_path(@project), remote: true, html: { class: 'transfer-project' }) do |f| - .control-group - = f.label :namespace_id do - %span Namespace - .controls - .clearfix - = f.select :namespace_id, namespaces_options(@project.namespace_id || Namespace::global_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'} - %ul - %li Be careful. Changing project namespace can have unintended side effects - %li You can transfer project only to namespaces you can manage - %li You will need to update your local repositories to point to the new location. - .form-actions - = f.submit 'Transfer', class: "btn btn-remove" - - else - %p.nothing_here_message Only project owner can transfer a project - - .tab-pane#tab-remove - - if can?(current_user, :remove_project, @project) - .ui-box.ui-box-danger - %h5.title Remove project - .ui-box-body - %p - Remove of project will cause removing repository and all related resources like issues, merge requests etc. - %p - %strong Removed project can not be restored! - - = link_to 'Remove project', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn btn-remove btn-small" - - else - %p.nothing_here_message Only project owner can remove a project diff --git a/app/views/projects/_new_form.html.haml b/app/views/projects/_new_form.html.haml deleted file mode 100644 index b6503636890..00000000000 --- a/app/views/projects/_new_form.html.haml +++ /dev/null @@ -1,48 +0,0 @@ -= form_for(@project, remote: true) do |f| - - if @project.errors.any? - .alert.alert-error - %span= @project.errors.full_messages.first - .clearfix.project_name_holder - = f.label :name do - Project name is - .input - = f.text_field :name, placeholder: "Example Project", class: "xxlarge" - = f.submit 'Create project', class: "btn btn-create project-submit" - - - if current_user.can_select_namespace? - .clearfix - = f.label :namespace_id do - %span Namespace - .input - = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen'} - - - .clearfix - .input - = link_to "#", class: 'appear-link' do - %i.icon-upload-alt - %span Import existing repository? - .clearfix.appear-data - = f.label :import_url do - %span Import existing repo - .input - = f.text_field :import_url, class: 'xlarge', placeholder: 'https://github.com/randx/six.git' - .light - URL must be clonable - - %p.padded - New projects are private by default. You choose who can see the project and commit to repository. - %hr - - - if current_user.can_create_group? - .clearfix - .input.light - Need a group for several dependent projects? - = link_to new_group_path, class: "btn btn-tiny" do - Create a group - - if current_user.can_create_team? - .clearfix - .input.light - Want to share a project between team? - = link_to new_team_path, class: "btn btn-tiny" do - Create a team diff --git a/app/views/projects/create.js.haml b/app/views/projects/create.js.haml index 296c8688f47..52e61f47283 100644 --- a/app/views/projects/create.js.haml +++ b/app/views/projects/create.js.haml @@ -3,8 +3,6 @@ location.href = "#{project_path(@project)}"; - else :plain - $('.project_new_holder').show(); - $("#new_project").replaceWith("#{escape_javascript(render('new_form'))}"); + $(".project-edit-errors").html("#{escape_javascript(render('errors'))}"); $('.save-project-loader').hide(); - new Projects(); - $('select.chosen').chosen() + $('.project-edit-container').show(); diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index e215ad6fd73..dd087100e4c 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -1,10 +1,157 @@ = render "projects/settings_nav" -.project_edit_holder +.project-edit-container %h3.page_title Edit Project %hr - = render "projects/form" -%div.save-project-loader.hide + .project-edit-errors + .project-edit-content + .row + .span3 + %ul.nav.nav-pills.nav-stacked + %li.active + = link_to 'Settings', '#tab-settings', 'data-toggle' => 'tab' + %li + = link_to 'Transfer', '#tab-transfer', 'data-toggle' => 'tab' + %li + = link_to 'Remove', '#tab-remove', 'data-toggle' => 'tab' + + .span9 + .tab-content + .tab-pane.active#tab-settings + .ui-box.white + %h5.title Settings: + .form-holder + = form_for(@project, remote: true) do |f| + %fieldset + .clearfix.project_name_holder + = f.label :name do + Project name is + .input + = f.text_field :name, placeholder: "Example Project", class: "span5" + + + .clearfix + = f.label :description do + Project description + %span.light (optional) + .input + = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250 + + - unless @project.empty_repo? + .clearfix + = f.label :default_branch, "Default Branch" + .input= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen'}) + + + - if can?(current_user, :change_public_mode, @project) + %fieldset.public-mode + %legend + Public mode: + .control-group + = f.label :public, class: 'control-label' do + %span Public access + .controls + = f.check_box :public + %span.descr + If checked, this project can be cloned + %em without any + authentication. + It will also be listed on the #{link_to "public access directory", public_root_path}. + %em Any + user will have #{link_to "Guest", help_permissions_path} permissions on the repository. + + %fieldset.features + %legend + Labels: + .control-group + = f.label :label_list, "Labels", class: 'control-label' + .controls + = f.text_field :label_list, maxlength: 2000, class: "span5" + %p.hint Separate with comma. + + %fieldset.features + %legend + Features: + .control-group + = f.label :issues_enabled, "Issues", class: 'control-label' + .controls + = f.check_box :issues_enabled + %span.descr Lightweight issue tracking system for this project + + - if Project.issues_tracker.values.count > 1 + .control-group + = f.label :issues_tracker, "Issues tracker", class: 'control-label' + .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled }) + + .clearfix + = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' + .input= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id? + + .control-group + = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label' + .controls + = f.check_box :merge_requests_enabled + %span.descr Submit changes to be merged upstream. + + .control-group + = f.label :wiki_enabled, "Wiki", class: 'control-label' + .controls + = f.check_box :wiki_enabled + %span.descr Pages for project documentation + + .control-group + = f.label :wall_enabled, "Wall", class: 'control-label' + .controls + = f.check_box :wall_enabled + %span.descr Simple chat system for broadcasting inside project + + .control-group + = f.label :snippets_enabled, "Snippets", class: 'control-label' + .controls + = f.check_box :snippets_enabled + %span.descr Share code pastes with others out of git repository + + + .form-actions + = f.submit 'Save', class: "btn btn-save" + + .tab-pane#tab-transfer + - if can?(current_user, :change_namespace, @project) + .ui-box.ui-box-danger + %h5.title Transfer project + .errors-holder + .form-holder + = form_for(@project, url: transfer_project_path(@project), remote: true, html: { class: 'transfer-project' }) do |f| + .control-group + = f.label :namespace_id do + %span Namespace + .controls + .clearfix + = f.select :namespace_id, namespaces_options(@project.namespace_id || Namespace::global_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'} + %ul + %li Be careful. Changing project namespace can have unintended side effects + %li You can transfer project only to namespaces you can manage + %li You will need to update your local repositories to point to the new location. + .form-actions + = f.submit 'Transfer', class: "btn btn-remove" + - else + %p.nothing_here_message Only project owner can transfer a project + + .tab-pane#tab-remove + - if can?(current_user, :remove_project, @project) + .ui-box.ui-box-danger + %h5.title Remove project + .ui-box-body + %p + Remove of project will cause removing repository and all related resources like issues, merge requests etc. + %p + %strong Removed project can not be restored! + + = link_to 'Remove project', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn btn-remove btn-small" + - else + %p.nothing_here_message Only project owner can remove a project + +.save-project-loader.hide %center = image_tag "ajax_loader.gif" %h3 Saving project. Please wait a moment, this page will automatically refresh when ready. diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml index 8ff873aac65..e9099f264bc 100644 --- a/app/views/projects/new.html.haml +++ b/app/views/projects/new.html.haml @@ -1,9 +1,55 @@ -.project_new_holder - %h3.page_title - New Project +.project-edit-container + %h3.page_title New Project %hr - = render 'new_form' -%div.save-project-loader.hide + .project-edit-errors + = render 'projects/errors' + .project-edit-content + = form_for @project, remote: true do |f| + .clearfix.project_name_holder + = f.label :name do + Project name is + .input + = f.text_field :name, placeholder: "Example Project", class: "xxlarge", tabindex: 1 + = f.submit 'Create project', class: "btn btn-create project-submit", tabindex: 3 + + - if current_user.can_select_namespace? + .clearfix + = f.label :namespace_id do + %span Namespace + .input + = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen', tabindex: 2} + + .clearfix + .input + = link_to "#", class: 'appear-link' do + %i.icon-upload-alt + %span Import existing repository? + .clearfix.appear-data.import-url-data + = f.label :import_url do + %span Import existing repo + .input + = f.text_field :import_url, class: 'xlarge', placeholder: 'https://github.com/randx/six.git' + .light + URL must be clonable + + %p.padded + New projects are private by default. You choose who can see the project and commit to repository. + %hr + + - if current_user.can_create_group? + .clearfix + .input.light + Need a group for several dependent projects? + = link_to new_group_path, class: "btn btn-tiny" do + Create a group + - if current_user.can_create_team? + .clearfix + .input.light + Want to share a project between team? + = link_to new_team_path, class: "btn btn-tiny" do + Create a team + +.save-project-loader.hide %center = image_tag "ajax_loader.gif" %h3 Creating project & repository. Please wait a moment, this page will automatically refresh when ready. diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 6ee2e3827b2..8a095130159 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -44,3 +44,8 @@ %p Forked from: = link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project) + + - if @project.gitlab_ci? + %hr + = link_to @project.gitlab_ci_service.builds_path do + = image_tag @project.gitlab_ci_service.status_img_path, alt: "build status" diff --git a/app/views/projects/update.js.haml b/app/views/projects/update.js.haml index f44ed529182..cbb21f2b9fb 100644 --- a/app/views/projects/update.js.haml +++ b/app/views/projects/update.js.haml @@ -3,6 +3,7 @@ location.href = "#{edit_project_path(@project)}"; - else :plain - $('.project_edit_holder').show(); - $(".edit_project").replaceWith("#{escape_javascript(render('form'))}"); + $(".project-edit-errors").html("#{escape_javascript(render('errors'))}"); $('.save-project-loader').hide(); + $('.project-edit-container').show(); + $('.project-edit-content .btn-save').enableButton(); diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 4a2789b55aa..77f5c02be2e 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -668,8 +668,9 @@ namespace :gitlab do def check_git_version required_version = Gitlab::VersionInfo.new(1, 7, 10) - current_version = Gitlab::VersionInfo.parse(run("git --version")) + current_version = Gitlab::VersionInfo.parse(run("#{Gitlab.config.git.bin_path} --version")) + puts "Your git bin path is \"#{Gitlab.config.git.bin_path}\"" print "Git version >= #{required_version} ? ... " if required_version <= current_version |