forgeplus/app/controllers/admins/projects_controller.rb

65 lines
2.0 KiB
Ruby
Raw Normal View History

2020-03-09 00:40:16 +08:00
class Admins::ProjectsController < Admins::BaseController
2022-01-18 15:30:57 +08:00
before_action :find_project, only: [:edit, :update, :sync_phenglei_user]
2020-03-09 00:40:16 +08:00
def index
2021-06-17 16:13:40 +08:00
sort_by = Project.column_names.include?(params[:sort_by]) ? params[:sort_by] : 'created_on'
sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : 'desc'
2020-03-09 00:40:16 +08:00
search = params[:search].to_s.strip
2020-05-14 18:08:27 +08:00
projects = Project.where("name like ?", "%#{search}%").order("#{sort_by} #{sort_direction}")
2021-03-05 16:44:37 +08:00
@projects = paginate projects.includes(:owner, :members, :issues, :versions, :attachments, :project_score, :license)
2020-03-09 00:40:16 +08:00
end
2021-10-27 16:50:18 +08:00
def edit ;end
def update
respond_to do |format|
if @project.update_attributes(project_update_params)
format.html do
redirect_to admins_projects_path
flash[:sucess] = "更新成功"
end
format.js {render_ok}
else
format.html do
redirect_to admins_projects_path
flash[:danger] = "更新失败"
end
format.js {render_js_error}
end
end
end
2020-03-09 00:40:16 +08:00
def destroy
project = Project.find_by!(id: params[:id])
ActiveRecord::Base.transaction do
2020-05-25 14:22:57 +08:00
Gitea::Repository::DeleteService.new(project.owner, project.identifier).call
2020-03-09 00:40:16 +08:00
project.destroy!
2020-05-25 14:22:57 +08:00
# render_delete_success
redirect_to admins_projects_path
flash[:success] = "删除成功"
2020-05-25 14:25:46 +08:00
end
2020-05-25 14:22:57 +08:00
rescue Exception => e
redirect_to admins_projects_path
flash[:danger] = "删除失败"
2020-03-09 00:40:16 +08:00
end
2021-03-05 16:44:37 +08:00
def sync_phenglei_user
if @project.is_secret
SyncPhengleiUserJob.perform_later(@project.id)
2021-03-10 14:02:41 +08:00
redirect_to admins_phenglei_users_path
2021-03-05 16:44:37 +08:00
flash[:success] = "已开启后台同步任务"
else
2021-03-10 14:02:41 +08:00
redirect_to admins_phenglei_users_path
2021-03-05 16:44:37 +08:00
flash[:danger] = "非风雷协议项目"
end
end
2021-10-27 16:50:18 +08:00
private
def find_project
@project = Project.find_by_id(params[:id])
end
def project_update_params
params.require(:project).permit(:is_pinned, :recommend, :recommend_index)
2021-03-05 16:44:37 +08:00
end
2020-03-09 00:40:16 +08:00
end