Skip to content
Snippets Groups Projects
Commit 552b3105 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Fixed admin area. Create project only from one place

parent 2b683b0d
No related branches found
No related tags found
1 merge request!2051User/Group namespaces for projects
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
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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'}
Loading
Loading
@@ -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"
Loading
Loading
= 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"
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
@@ -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)
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -49,7 +49,7 @@ Gitlab::Application.routes.draw do
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
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment