OSDN Git Service

Merge branch 'gist' of https://github.com/Andrew8xx8/gitlabhq into Andrew8xx8-gist
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 4 Jun 2013 15:36:22 +0000 (18:36 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 4 Jun 2013 15:36:22 +0000 (18:36 +0300)
Conflicts:
Gemfile.lock
app/models/ability.rb
app/models/project.rb
app/views/snippets/_form.html.haml
db/schema.rb
features/steps/shared/paths.rb
spec/factories.rb
spec/models/project_spec.rb

18 files changed:
1  2 
app/models/ability.rb
app/models/event.rb
app/models/note.rb
app/models/project.rb
app/models/user.rb
app/views/snippets/_form.html.haml
config/routes.rb
db/schema.rb
features/steps/shared/paths.rb
lib/api/projects.rb
spec/factories.rb
spec/helpers/gitlab_markdown_helper_spec.rb
spec/models/project_spec.rb
spec/models/user_spec.rb
spec/requests/api/notes_spec.rb
spec/requests/api/projects_spec.rb
spec/routing/project_routing_spec.rb
spec/routing/routing_spec.rb

@@@ -67,8 -68,7 +68,8 @@@ class Abilit
      def project_report_rules
        project_guest_rules + [
          :download_code,
-         :write_snippet,
 +        :fork_project
+         :write_project_snippet
        ]
      end
  
Simple merge
Simple merge
@@@ -57,8 -50,10 +57,8 @@@ class Project < ActiveRecord::Bas
    has_many :milestones,         dependent: :destroy
    has_many :users_projects,     dependent: :destroy
    has_many :notes,              dependent: :destroy
-   has_many :snippets,           dependent: :destroy
+   has_many :snippets,           dependent: :destroy, class_name: "ProjectSnippet"
 -  has_many :deploy_keys,        dependent: :destroy, class_name: "Key", foreign_key: "project_id"
    has_many :hooks,              dependent: :destroy, class_name: "ProjectHook"
 -  has_many :wikis,              dependent: :destroy
    has_many :protected_branches, dependent: :destroy
    has_many :user_team_project_relationships, dependent: :destroy
  
@@@ -71,13 -64,18 +71,14 @@@ class User < ActiveRecord::Bas
    has_many :groups, class_name: "Group", foreign_key: :owner_id
  
    # Teams
 -  has_many :own_teams,
 -    class_name: "UserTeam",
 -    foreign_key: :owner_id,
 -    dependent: :destroy
 -
 -  has_many :user_team_user_relationships, dependent: :destroy
 -  has_many :user_teams, through: :user_team_user_relationships
 +  has_many :own_teams,                       dependent: :destroy, class_name: "UserTeam", foreign_key: :owner_id
 +  has_many :user_team_user_relationships,    dependent: :destroy
 +  has_many :user_teams,                      through: :user_team_user_relationships
    has_many :user_team_project_relationships, through: :user_teams
 -  has_many :team_projects, through: :user_team_project_relationships
 +  has_many :team_projects,                   through: :user_team_project_relationships
  
    # Projects
+   has_many :snippets,                 dependent: :destroy, foreign_key: :author_id, class_name: "Snippet"
    has_many :users_projects,           dependent: :destroy
    has_many :issues,                   dependent: :destroy, foreign_key: :author_id
    has_many :notes,                    dependent: :destroy, foreign_key: :author_id
@@@ -28,9 -31,9 +31,9 @@@
  
      .form-actions
        = f.submit 'Save', class: "btn-save btn"
-       = link_to "Cancel", project_snippets_path(@project), class: " btn"
+       = link_to "Cancel", snippets_path(@project), class: " btn"
        - unless @snippet.new_record?
-         .pull-right= link_to 'Destroy', [@project, @snippet], confirm: 'Removed snippet cannot be restored! Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
 -        .pull-right= link_to 'Destroy', snippet_path(@snippet), confirm: 'Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
++        .pull-right= link_to 'Destroy', snippet_path(@snippet), confirm: 'Removed snippet cannot be restored! Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
  
  
  :javascript
@@@ -180,8 -184,17 +190,16 @@@ Gitlab::Application.routes.draw d
      resources :compare, only: [:index, :create]
      resources :blame,   only: [:show], constraints: {id: /.+/}
      resources :graph,   only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
 -    match "/compare/:from...:to" => "compare#show", as: "compare",
 -                    :via => [:get, :post], constraints: {from: /.+/, to: /.+/}
 +    match "/compare/:from...:to" => "compare#show", as: "compare", via: [:get, :post], constraints: {from: /.+/, to: /.+/}
  
+     scope module: :projects do
+       resources :snippets do
+         member do
+           get "raw"
+         end
+       end
+     end
      resources :wikis, only: [:show, :edit, :destroy, :create] do
        collection do
          get :pages
        end
      end
  
      resources :team, controller: 'team_members', only: [:index]
      resources :milestones, except: [:destroy]
 -    resources :labels, only: [:index]
 +
 +    resources :labels, only: [:index] do
 +      collection do
 +        post :generate
 +      end
 +    end
 +
      resources :issues, except: [:destroy] do
        collection do
 -        post  :sort
          post  :bulk_update
 -        get   :search
        end
      end
  
diff --cc db/schema.rb
Simple merge
@@@ -267,14 -263,18 +267,30 @@@ module SharedPath
      visit project_wiki_path(@project, :home)
    end
  
 +  # ----------------------------------------
 +  # Public Projects
 +  # ----------------------------------------
 +
 +  step 'I visit the public projects area' do
 +    visit public_root_path
 +  end
 +
++  # ----------------------------------------
++  # Snippets
++  # ----------------------------------------
++
+   Given 'I visit project "Shop" snippets page' do
+     visit project_snippets_path(project)
+   end
+   Given 'I visit snippets page' do
+     visit snippets_path
+   end
+   Given 'I visit new snippet page' do
+     visit new_snippet_path
+   end
    def root_ref
      @project.repository.root_ref
    end
Simple merge
@@@ -197,7 -190,13 +197,7 @@@ FactoryGirl.define d
      url
    end
  
-   factory :snippet do
 -  factory :wiki do
 -    title
 -    content
 -    user
 -  end
 -
+   factory :project_snippet do
      project
      author
      title
@@@ -4,13 -4,13 +4,13 @@@ describe GitlabMarkdownHelper d
    include ApplicationHelper
    include IssuesHelper
  
 -  let!(:project) { create(:project) }
 +  let!(:project) { create(:project_with_code) }
  
    let(:user)          { create(:user, username: 'gfm') }
 -  let(:commit)        { CommitDecorator.decorate(project.repository.commit) }
 +  let(:commit)        { project.repository.commit }
    let(:issue)         { create(:issue, project: project) }
    let(:merge_request) { create(:merge_request, project: project) }
-   let(:snippet)       { create(:snippet, project: project) }
+   let(:snippet)       { create(:project_snippet, project: project) }
    let(:member)        { project.users_projects.where(user_id: user).first }
  
    before do
@@@ -36,12 -34,11 +36,12 @@@ describe Project d
      it { should have_many(:milestones).dependent(:destroy) }
      it { should have_many(:users_projects).dependent(:destroy) }
      it { should have_many(:notes).dependent(:destroy) }
-     it { should have_many(:snippets).dependent(:destroy) }
+     it { should have_many(:snippets).class_name('ProjectSnippet').dependent(:destroy) }
 -    it { should have_many(:deploy_keys).dependent(:destroy) }
 +    it { should have_many(:deploy_keys_projects).dependent(:destroy) }
 +    it { should have_many(:deploy_keys) }
      it { should have_many(:hooks).dependent(:destroy) }
 -    it { should have_many(:wikis).dependent(:destroy) }
      it { should have_many(:protected_branches).dependent(:destroy) }
 +    it { should have_one(:forked_project_link).dependent(:destroy) }
    end
  
    describe "Mass assignment" do
Simple merge
Simple merge
@@@ -8,11 -7,12 +8,11 @@@ describe API::API d
    let(:user2) { create(:user) }
    let(:user3) { create(:user) }
    let(:admin) { create(:admin) }
 -  let!(:project) { create(:project, namespace: user.namespace ) }
 +  let!(:project) { create(:project_with_code, creator_id: user.id) }
    let!(:hook) { create(:project_hook, project: project, url: "http://example.com") }
-   let!(:snippet) { create(:snippet, author: user, project: project, title: 'example') }
+   let!(:snippet) { create(:project_snippet, author: user, project: project, title: 'example') }
    let!(:users_project) { create(:users_project, user: user, project: project, project_access: UsersProject::MASTER) }
    let!(:users_project2) { create(:users_project, user: user3, project: project, project_access: UsersProject::DEVELOPER) }
 -  let(:key) { create(:key, project: project) }
  
    before { project.team << [user, :reporter] }
  
Simple merge
Simple merge