Read about our upcoming Code of Conduct on this issue

Commit 552b3105 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Fixed admin area. Create project only from one place

parent 9fb91606014c
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
@admin_projects = Project.scoped
@admin_projects = @admin_projects.search(params[:name]) if params[:name].present?
@admin_projects = @admin_projects.order("name ASC").page(params[:page]).per(20)
@projects = Project.scoped
@projects = @projects.search(params[:name]) if params[:name].present?
@projects = @projects.order("name ASC").page(params[:page]).per(20)
end
def show
@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
end
def new
@admin_project = Project.new
end
def edit
end
def team_update
@admin_project.add_users_ids_to_team(params[:user_ids], params[:project_access])
redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
end
def create
@admin_project = Project.new(params[:project])
@admin_project.owner = current_user
@project.add_users_ids_to_team(params[:user_ids], params[:project_access])
if @admin_project.save
redirect_to [:admin, @admin_project], notice: 'Project was successfully created.'
else
render action: "new"
end
redirect_to [:admin, @project], notice: 'Project was successfully updated.'
end
def update
owner_id = params[:project].delete(:owner_id)
if owner_id
@admin_project.owner = User.find(owner_id)
@project.owner = User.find(owner_id)
end
if @admin_project.update_attributes(params[:project])
redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
if @project.update_attributes(params[:project], as: :admin)
redirect_to [:admin, @project], notice: 'Project was successfully updated.'
else
render action: "edit"
end
end
def destroy
@admin_project.destroy
redirect_to admin_projects_url, notice: 'Project was successfully deleted.'
end
private
@project.destroy
def admin_project
@admin_project = Project.find_by_code(params[:id])
redirect_to projects_url, notice: 'Project was successfully deleted.'
end
end
......@@ -28,7 +28,10 @@ class Project < ActiveRecord::Base
include Team
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
# Relations
......
......@@ -11,16 +11,13 @@
.input
= f.text_field :name, placeholder: "Example Project", class: "xxlarge"
%hr
.adv_settings
%h6 Advanced settings:
%fieldset.adv_settings
%legend Advanced settings:
.clearfix
= f.label :path do
Path
.input
.input-prepend
%strong
= text_field_tag :ppath, @admin_project.path_to_repo, class: "xlarge", disabled: true
= text_field_tag :ppath, @project.path_to_repo, class: "xlarge", disabled: true
.clearfix
= f.label :code do
URL
......@@ -30,6 +27,10 @@
= f.text_field :code, placeholder: "example"
- unless project.new_record?
.clearfix
= f.label :namespace_id
.input= f.select :namespace_id, namespaces_options, {}, {class: 'chosen'}
.clearfix
= f.label :owner_id
.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;")
- unless project.new_record?
%hr
.adv_settings
%h6 Features:
%fieldset.adv_settings
%legend Features:
.clearfix
= f.label :issues_enabled, "Issues"
......
= 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"
%h3.page_title #{@admin_project.name} &rarr; Edit project
%h3.page_title #{@project.name} &rarr; Edit project
%hr
= render 'form', project: @admin_project
= render 'form', project: @project
= render 'admin/shared/projects_head'
%h3.page_title
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
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
= text_field_tag :name, params[:name], class: "xlarge"
......@@ -16,7 +16,7 @@
%th Edit
%th.cred Danger Zone!
- @admin_projects.each do |project|
- @projects.each do |project|
%tr
%td= link_to project.name, [:admin, project]
%td= project.path
......@@ -24,4 +24,4 @@
%td= last_commit(project)
%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"
= paginate @admin_projects, theme: "admin"
= paginate @projects, theme: "admin"
.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 &amp; repository. Please wait a few minutes
:javascript
$(function(){ new Projects(); });
= render 'admin/shared/projects_head'
%h3.page_title
Project: #{@admin_project.name}
= link_to edit_admin_project_path(@admin_project), class: "btn right" do
Project: #{@project.name}
= link_to edit_admin_project_path(@project), class: "btn right" do
%i.icon-edit
Edit
- if !@admin_project.has_post_receive_file? && @admin_project.has_commits?
- if !@project.has_post_receive_file? && @project.has_commits?
%br
.alert.alert-error
%span
......@@ -25,36 +25,36 @@
%b
Name:
%td
= @admin_project.name
= @project.name
%tr
%td
%b
Code:
%td
= @admin_project.code
= @project.code
%tr
%td
%b
Path:
%td
= @admin_project.path
%code= @project.path_to_repo
%tr
%td
%b
Owner:
%td
= @admin_project.owner_name || '(deleted)'
= @project.owner_name || '(deleted)'
%tr
%td
%b
Post Receive File:
%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
%h3
Team
%small
(#{@admin_project.users_projects.count})
(#{@project.users_projects.count})
%br
%table.zebra-striped
%thead
......@@ -64,7 +64,7 @@
%th Repository Access
%th
- @admin_project.users_projects.each do |tm|
- @project.users_projects.each do |tm|
%tr
%td
= link_to tm.user_name, admin_user_path(tm.user)
......@@ -75,7 +75,7 @@
%br
%h3 Add new team member
%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
%thead
%tr
......
......@@ -49,7 +49,7 @@
delete :remove_project
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
get :team
put :team_update
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment