Fixed admin area. Create project only from one place
This commit is contained in:
parent
2b683b0d0b
commit
552b3105fb
|
@ -1,65 +1,44 @@
|
||||||
class Admin::ProjectsController < AdminController
|
class Admin::ProjectsController < AdminController
|
||||||
before_filter :admin_project, only: [:edit, :show, :update, :destroy, :team_update]
|
before_filter :project, only: [:edit, :show, :update, :destroy, :team_update]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@admin_projects = Project.scoped
|
@projects = Project.scoped
|
||||||
@admin_projects = @admin_projects.search(params[:name]) if params[:name].present?
|
@projects = @projects.search(params[:name]) if params[:name].present?
|
||||||
@admin_projects = @admin_projects.order("name ASC").page(params[:page]).per(20)
|
@projects = @projects.order("name ASC").page(params[:page]).per(20)
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@users = User.scoped
|
@users = User.scoped
|
||||||
@users = @users.not_in_project(@admin_project) if @admin_project.users.present?
|
@users = @users.not_in_project(@project) if @project.users.present?
|
||||||
@users = @users.all
|
@users = @users.all
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
|
||||||
@admin_project = Project.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
end
|
end
|
||||||
|
|
||||||
def team_update
|
def team_update
|
||||||
@admin_project.add_users_ids_to_team(params[:user_ids], params[:project_access])
|
@project.add_users_ids_to_team(params[:user_ids], params[:project_access])
|
||||||
|
|
||||||
redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
|
redirect_to [:admin, @project], notice: 'Project was successfully updated.'
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
@admin_project = Project.new(params[:project])
|
|
||||||
@admin_project.owner = current_user
|
|
||||||
|
|
||||||
if @admin_project.save
|
|
||||||
redirect_to [:admin, @admin_project], notice: 'Project was successfully created.'
|
|
||||||
else
|
|
||||||
render action: "new"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
owner_id = params[:project].delete(:owner_id)
|
owner_id = params[:project].delete(:owner_id)
|
||||||
|
|
||||||
if owner_id
|
if owner_id
|
||||||
@admin_project.owner = User.find(owner_id)
|
@project.owner = User.find(owner_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
if @admin_project.update_attributes(params[:project])
|
if @project.update_attributes(params[:project], as: :admin)
|
||||||
redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
|
redirect_to [:admin, @project], notice: 'Project was successfully updated.'
|
||||||
else
|
else
|
||||||
render action: "edit"
|
render action: "edit"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@admin_project.destroy
|
@project.destroy
|
||||||
|
|
||||||
redirect_to admin_projects_url, notice: 'Project was successfully deleted.'
|
redirect_to projects_url, notice: 'Project was successfully deleted.'
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def admin_project
|
|
||||||
@admin_project = Project.find_by_code(params[:id])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,7 +28,10 @@ class Project < ActiveRecord::Base
|
||||||
include Team
|
include Team
|
||||||
|
|
||||||
attr_accessible :name, :path, :description, :code, :default_branch, :issues_enabled,
|
attr_accessible :name, :path, :description, :code, :default_branch, :issues_enabled,
|
||||||
:wall_enabled, :merge_requests_enabled, :wiki_enabled
|
:wall_enabled, :merge_requests_enabled, :wiki_enabled, as: [:default, :admin]
|
||||||
|
|
||||||
|
attr_accessible :namespace_id, as: :admin
|
||||||
|
|
||||||
attr_accessor :error_code
|
attr_accessor :error_code
|
||||||
|
|
||||||
# Relations
|
# Relations
|
||||||
|
|
|
@ -11,16 +11,13 @@
|
||||||
.input
|
.input
|
||||||
= f.text_field :name, placeholder: "Example Project", class: "xxlarge"
|
= f.text_field :name, placeholder: "Example Project", class: "xxlarge"
|
||||||
|
|
||||||
%hr
|
%fieldset.adv_settings
|
||||||
.adv_settings
|
%legend Advanced settings:
|
||||||
%h6 Advanced settings:
|
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :path do
|
= f.label :path do
|
||||||
Path
|
Path
|
||||||
.input
|
.input
|
||||||
.input-prepend
|
= text_field_tag :ppath, @project.path_to_repo, class: "xlarge", disabled: true
|
||||||
%strong
|
|
||||||
= text_field_tag :ppath, @admin_project.path_to_repo, class: "xlarge", disabled: true
|
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :code do
|
= f.label :code do
|
||||||
URL
|
URL
|
||||||
|
@ -30,6 +27,10 @@
|
||||||
= f.text_field :code, placeholder: "example"
|
= f.text_field :code, placeholder: "example"
|
||||||
|
|
||||||
- unless project.new_record?
|
- unless project.new_record?
|
||||||
|
.clearfix
|
||||||
|
= f.label :namespace_id
|
||||||
|
.input= f.select :namespace_id, namespaces_options, {}, {class: 'chosen'}
|
||||||
|
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :owner_id
|
= f.label :owner_id
|
||||||
.input= f.select :owner_id, User.all.map { |user| [user.name, user.id] }, {}, {class: 'chosen'}
|
.input= f.select :owner_id, User.all.map { |user| [user.name, user.id] }, {}, {class: 'chosen'}
|
||||||
|
@ -40,9 +41,8 @@
|
||||||
.input= f.select(:default_branch, project.heads.map(&:name), {}, style: "width:210px;")
|
.input= f.select(:default_branch, project.heads.map(&:name), {}, style: "width:210px;")
|
||||||
|
|
||||||
- unless project.new_record?
|
- unless project.new_record?
|
||||||
%hr
|
%fieldset.adv_settings
|
||||||
.adv_settings
|
%legend Features:
|
||||||
%h6 Features:
|
|
||||||
|
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :issues_enabled, "Issues"
|
= f.label :issues_enabled, "Issues"
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
= form_for [:admin, @admin_project] do |f|
|
|
||||||
- if @admin_project.errors.any?
|
|
||||||
.alert-message.block-message.error
|
|
||||||
%span= @admin_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 primary project-submit"
|
|
||||||
|
|
||||||
%hr
|
|
||||||
%div.adv_settings
|
|
||||||
%h6 Advanced settings:
|
|
||||||
.clearfix
|
|
||||||
= f.label :path do
|
|
||||||
Git Clone
|
|
||||||
.input
|
|
||||||
.input-prepend
|
|
||||||
%span.add-on= Gitlab.config.ssh_path
|
|
||||||
= f.text_field :path, placeholder: "example_project", disabled: !@admin_project.new_record?
|
|
||||||
%span.add-on= ".git"
|
|
||||||
.clearfix
|
|
||||||
= f.label :code do
|
|
||||||
URL
|
|
||||||
.input
|
|
||||||
.input-prepend
|
|
||||||
%span.add-on= web_app_url
|
|
||||||
= f.text_field :code, placeholder: "example"
|
|
|
@ -1,3 +1,3 @@
|
||||||
%h3.page_title #{@admin_project.name} → Edit project
|
%h3.page_title #{@project.name} → Edit project
|
||||||
%hr
|
%hr
|
||||||
= render 'form', project: @admin_project
|
= render 'form', project: @project
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
= render 'admin/shared/projects_head'
|
= render 'admin/shared/projects_head'
|
||||||
%h3.page_title
|
%h3.page_title
|
||||||
Projects
|
Projects
|
||||||
= link_to 'New Project', new_admin_project_path, class: "btn small right"
|
= link_to 'New Project', new_project_path, class: "btn small right"
|
||||||
%br
|
%br
|
||||||
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
|
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
|
||||||
= text_field_tag :name, params[:name], class: "xlarge"
|
= text_field_tag :name, params[:name], class: "xlarge"
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
%th Edit
|
%th Edit
|
||||||
%th.cred Danger Zone!
|
%th.cred Danger Zone!
|
||||||
|
|
||||||
- @admin_projects.each do |project|
|
- @projects.each do |project|
|
||||||
%tr
|
%tr
|
||||||
%td= link_to project.name, [:admin, project]
|
%td= link_to project.name, [:admin, project]
|
||||||
%td= project.path
|
%td= project.path
|
||||||
|
@ -24,4 +24,4 @@
|
||||||
%td= last_commit(project)
|
%td= last_commit(project)
|
||||||
%td= link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small"
|
%td= link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small"
|
||||||
%td.bgred= link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger"
|
%td.bgred= link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger"
|
||||||
= paginate @admin_projects, theme: "admin"
|
= paginate @projects, theme: "admin"
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
.project_new_holder
|
|
||||||
%h3.page_title
|
|
||||||
New Project
|
|
||||||
%hr
|
|
||||||
= render 'new_form'
|
|
||||||
%div.save-project-loader.hide
|
|
||||||
%center
|
|
||||||
= image_tag "ajax_loader.gif"
|
|
||||||
%h3 Creating project & repository. Please wait a few minutes
|
|
||||||
|
|
||||||
:javascript
|
|
||||||
$(function(){ new Projects(); });
|
|
|
@ -1,11 +1,11 @@
|
||||||
= render 'admin/shared/projects_head'
|
= render 'admin/shared/projects_head'
|
||||||
%h3.page_title
|
%h3.page_title
|
||||||
Project: #{@admin_project.name}
|
Project: #{@project.name}
|
||||||
= link_to edit_admin_project_path(@admin_project), class: "btn right" do
|
= link_to edit_admin_project_path(@project), class: "btn right" do
|
||||||
%i.icon-edit
|
%i.icon-edit
|
||||||
Edit
|
Edit
|
||||||
|
|
||||||
- if !@admin_project.has_post_receive_file? && @admin_project.has_commits?
|
- if !@project.has_post_receive_file? && @project.has_commits?
|
||||||
%br
|
%br
|
||||||
.alert.alert-error
|
.alert.alert-error
|
||||||
%span
|
%span
|
||||||
|
@ -25,36 +25,36 @@
|
||||||
%b
|
%b
|
||||||
Name:
|
Name:
|
||||||
%td
|
%td
|
||||||
= @admin_project.name
|
= @project.name
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
%b
|
%b
|
||||||
Code:
|
Code:
|
||||||
%td
|
%td
|
||||||
= @admin_project.code
|
= @project.code
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
%b
|
%b
|
||||||
Path:
|
Path:
|
||||||
%td
|
%td
|
||||||
= @admin_project.path
|
%code= @project.path_to_repo
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
%b
|
%b
|
||||||
Owner:
|
Owner:
|
||||||
%td
|
%td
|
||||||
= @admin_project.owner_name || '(deleted)'
|
= @project.owner_name || '(deleted)'
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
%b
|
%b
|
||||||
Post Receive File:
|
Post Receive File:
|
||||||
%td
|
%td
|
||||||
= check_box_tag :post_receive_file, 1, @admin_project.has_post_receive_file?, disabled: true
|
= check_box_tag :post_receive_file, 1, @project.has_post_receive_file?, disabled: true
|
||||||
%br
|
%br
|
||||||
%h3
|
%h3
|
||||||
Team
|
Team
|
||||||
%small
|
%small
|
||||||
(#{@admin_project.users_projects.count})
|
(#{@project.users_projects.count})
|
||||||
%br
|
%br
|
||||||
%table.zebra-striped
|
%table.zebra-striped
|
||||||
%thead
|
%thead
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
%th Repository Access
|
%th Repository Access
|
||||||
%th
|
%th
|
||||||
|
|
||||||
- @admin_project.users_projects.each do |tm|
|
- @project.users_projects.each do |tm|
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
= link_to tm.user_name, admin_user_path(tm.user)
|
= link_to tm.user_name, admin_user_path(tm.user)
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
%br
|
%br
|
||||||
%h3 Add new team member
|
%h3 Add new team member
|
||||||
%br
|
%br
|
||||||
= form_tag team_update_admin_project_path(@admin_project), class: "bulk_import", method: :put do
|
= form_tag team_update_admin_project_path(@project), class: "bulk_import", method: :put do
|
||||||
%table.zebra-striped
|
%table.zebra-striped
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
|
|
|
@ -49,7 +49,7 @@ Gitlab::Application.routes.draw do
|
||||||
delete :remove_project
|
delete :remove_project
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } do
|
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, except: [:new, :create] do
|
||||||
member do
|
member do
|
||||||
get :team
|
get :team
|
||||||
put :team_update
|
put :team_update
|
||||||
|
|
Loading…
Reference in a new issue