From 23704dbae394219501cf852ca4474b93a8ed7bac Mon Sep 17 00:00:00 2001 From: jasder Date: Mon, 10 May 2021 14:38:39 +0800 Subject: [PATCH 01/18] FIX get mirror url bug with get detail repo api --- app/services/repositories/migrate_service.rb | 4 +--- app/views/repositories/detail.json.jbuilder | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/services/repositories/migrate_service.rb b/app/services/repositories/migrate_service.rb index b737b2ef5..374115bf0 100644 --- a/app/services/repositories/migrate_service.rb +++ b/app/services/repositories/migrate_service.rb @@ -21,9 +21,7 @@ class Repositories::MigrateService < ApplicationService private def repository_params - params.merge(project_id: project.id, - identifier: params[:identifier], - source_clone_url: params[:source_clone_url]) + params.merge(project_id: project.id) end def gitea_repository_params diff --git a/app/views/repositories/detail.json.jbuilder b/app/views/repositories/detail.json.jbuilder index 75b474ee0..39f2563a4 100644 --- a/app/views/repositories/detail.json.jbuilder +++ b/app/views/repositories/detail.json.jbuilder @@ -21,7 +21,7 @@ json.versions_count @project.versions_count #里程碑数量 json.version_releases_count @project.releases_size(@user.try(:id), "all") json.version_releasesed_count @project.releases_size(@user.try(:id), "released") #已发行的版本 json.permission render_permission(@user, @project) -json.mirror_url @project&.repository.source_clone_url +json.mirror_url @project&.repository.remote_mirror_url json.mirror @project&.repository.mirror_url.present? json.type @project.numerical_for_project_type json.open_devops @project.open_devops? From 2cca2c756eaccb2635977ee593c93a94f1275062 Mon Sep 17 00:00:00 2001 From: jasder Date: Thu, 13 May 2021 14:52:07 +0800 Subject: [PATCH 02/18] ADD recommend organizations api --- .../organizations/organizations_controller.rb | 9 ++++++++- app/models/organization.rb | 1 + .../organizations/organizations/recommend.json.jbuilder | 6 ++++++ config/routes.rb | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 app/views/organizations/organizations/recommend.json.jbuilder diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index c8f4f4aa0..042d9a9fe 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -1,5 +1,5 @@ class Organizations::OrganizationsController < Organizations::BaseController - before_action :require_login, except: [:index, :show] + before_action :require_login, except: [:index, :show, :recommend] before_action :convert_image!, only: [:create, :update] before_action :load_organization, only: [:show, :update, :destroy] before_action :check_user_can_edit_org, only: [:update, :destroy] @@ -62,6 +62,13 @@ class Organizations::OrganizationsController < Organizations::BaseController tip_exception(e.message) end + def recommend + recommend = %W(xuos Huawei_Technology openatom_foundation pkecosystem TensorLayer) + + @organizations = Organization.with_visibility(%w(common) + .where(nickname: recommend).select(:id, :nickname) + end + private def convert_image! return unless params[:image].present? diff --git a/app/models/organization.rb b/app/models/organization.rb index f12c8b0a6..444938e72 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -47,6 +47,7 @@ # watchers_count :integer default("0") # devops_step :integer default("0") # gitea_token :string(255) +# platform :string(255) # # Indexes # diff --git a/app/views/organizations/organizations/recommend.json.jbuilder b/app/views/organizations/organizations/recommend.json.jbuilder new file mode 100644 index 000000000..262cc23dd --- /dev/null +++ b/app/views/organizations/organizations/recommend.json.jbuilder @@ -0,0 +1,6 @@ +json.organizations @organizations do |organization| + json.id organization.id + json.name organization.login + json.nickname organization.nickname.blank? ? organization.name : organization.nickname + json.avatar_url url_to_avatar(organization) +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 2901e0f56..63c7520ae 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -130,6 +130,7 @@ Rails.application.routes.draw do get :search end end + get :recommend, on: :collection end end From c2d7d8289e2ba3c296317bb075b86776d5b86b27 Mon Sep 17 00:00:00 2001 From: jasder Date: Thu, 13 May 2021 14:53:46 +0800 Subject: [PATCH 03/18] FIX dismiss num for recommend projects api --- app/controllers/projects_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 500c584cd..3ddbeb401 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -167,7 +167,7 @@ class ProjectsController < ApplicationController end def recommend - @projects = Project.recommend.includes(:repository, :project_category, :owner).order(id: :desc).limit(5) + @projects = Project.recommend.includes(:repository, :project_category, :owner).order(id: :desc) end def about From fe9201d9f689c43466c398de0f6c4db501e56d35 Mon Sep 17 00:00:00 2001 From: jasder Date: Thu, 13 May 2021 14:56:58 +0800 Subject: [PATCH 04/18] FIX code bug --- app/controllers/organizations/organizations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index 042d9a9fe..bce34a5a5 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -65,7 +65,7 @@ class Organizations::OrganizationsController < Organizations::BaseController def recommend recommend = %W(xuos Huawei_Technology openatom_foundation pkecosystem TensorLayer) - @organizations = Organization.with_visibility(%w(common) + @organizations = Organization.with_visibility(%w(common)) .where(nickname: recommend).select(:id, :nickname) end From e304dd0c9899a98e3eddfd0c0e42cf45a6ad76d4 Mon Sep 17 00:00:00 2001 From: jasder Date: Thu, 13 May 2021 15:02:28 +0800 Subject: [PATCH 05/18] FIX query recommend organization bug --- app/controllers/organizations/organizations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index bce34a5a5..a2318f0a7 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -66,7 +66,7 @@ class Organizations::OrganizationsController < Organizations::BaseController recommend = %W(xuos Huawei_Technology openatom_foundation pkecosystem TensorLayer) @organizations = Organization.with_visibility(%w(common)) - .where(nickname: recommend).select(:id, :nickname) + .where(login: recommend).select(:id, :nickname) end private From b1abac201f5cb8e13c9347d4aeff5362a99c55a5 Mon Sep 17 00:00:00 2001 From: jasder Date: Thu, 13 May 2021 15:06:41 +0800 Subject: [PATCH 06/18] FIX query columns bug with query recommend organization api --- app/controllers/organizations/organizations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index a2318f0a7..29cb15a6a 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -66,7 +66,7 @@ class Organizations::OrganizationsController < Organizations::BaseController recommend = %W(xuos Huawei_Technology openatom_foundation pkecosystem TensorLayer) @organizations = Organization.with_visibility(%w(common)) - .where(login: recommend).select(:id, :nickname) + .where(login: recommend).select(:id, :login, :firstname, :lastname, :nickname) end private From dac07bcae095a8103b3ac1ad211993387671d652 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 14 May 2021 16:23:19 +0800 Subject: [PATCH 07/18] =?UTF-8?q?ADD=20=E9=A1=B5=E9=9D=A2=E7=BD=AE?= =?UTF-8?q?=E9=A1=B6=E5=8A=9F=E8=83=BD=E3=80=81=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=BF=AB=E9=80=9F=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/admins/faqs.js | 2 + app/assets/javascripts/helps/faqs.js | 2 + app/assets/stylesheets/admins/faqs.scss | 3 + app/assets/stylesheets/helps/faqs.scss | 3 + app/controllers/admins/faqs_controller.rb | 58 +++++++++++++++++++ app/controllers/helps/faqs_controller.rb | 8 +++ app/helpers/admins/faqs_helper.rb | 2 + app/helpers/helps/faqs_helper.rb | 2 + app/models/ci/user.rb | 1 + app/models/faq.rb | 20 +++++++ app/models/user.rb | 1 + app/views/admins/faqs/_form_modal.html.erb | 24 ++++++++ app/views/admins/faqs/_list.html.erb | 33 +++++++++++ app/views/admins/faqs/edit.js.erb | 2 + app/views/admins/faqs/index.html.erb | 17 ++++++ app/views/admins/faqs/index.js.erb | 1 + app/views/admins/faqs/new.js.erb | 2 + .../shared/_laboratory_item.html.erb | 1 - app/views/admins/shared/_sidebar.html.erb | 1 + config/routes.rb | 5 ++ db/migrate/20210514024444_create_faqs.rb | 10 ++++ 21 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/admins/faqs.js create mode 100644 app/assets/javascripts/helps/faqs.js create mode 100644 app/assets/stylesheets/admins/faqs.scss create mode 100644 app/assets/stylesheets/helps/faqs.scss create mode 100644 app/controllers/admins/faqs_controller.rb create mode 100644 app/controllers/helps/faqs_controller.rb create mode 100644 app/helpers/admins/faqs_helper.rb create mode 100644 app/helpers/helps/faqs_helper.rb create mode 100644 app/models/faq.rb create mode 100644 app/views/admins/faqs/_form_modal.html.erb create mode 100644 app/views/admins/faqs/_list.html.erb create mode 100644 app/views/admins/faqs/edit.js.erb create mode 100644 app/views/admins/faqs/index.html.erb create mode 100644 app/views/admins/faqs/index.js.erb create mode 100644 app/views/admins/faqs/new.js.erb create mode 100644 db/migrate/20210514024444_create_faqs.rb diff --git a/app/assets/javascripts/admins/faqs.js b/app/assets/javascripts/admins/faqs.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/admins/faqs.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/javascripts/helps/faqs.js b/app/assets/javascripts/helps/faqs.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/helps/faqs.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/admins/faqs.scss b/app/assets/stylesheets/admins/faqs.scss new file mode 100644 index 000000000..8d1a08d30 --- /dev/null +++ b/app/assets/stylesheets/admins/faqs.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the admins/faqs controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/helps/faqs.scss b/app/assets/stylesheets/helps/faqs.scss new file mode 100644 index 000000000..4d3d2bc49 --- /dev/null +++ b/app/assets/stylesheets/helps/faqs.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the helps/faqs controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/admins/faqs_controller.rb b/app/controllers/admins/faqs_controller.rb new file mode 100644 index 000000000..08dc69a79 --- /dev/null +++ b/app/controllers/admins/faqs_controller.rb @@ -0,0 +1,58 @@ +class Admins::FaqsController < Admins::BaseController + before_action :find_faq, only: [:edit,:update, :destroy] + + def index + sort_by = params[:sort_by] ||= 'created_at' + sort_direction = params[:sort_direction] ||= 'desc' + + keyword = params[:keyword].to_s.strip + collection = Faq.search_question(keyword).order("#{sort_by} #{sort_direction}") + @faqs = paginate collection + end + + def new + @faq = Faq.new + end + + def edit + end + + def update + begin + @faq.update!(faq_params) + flash[:success] = '修改成功' + rescue Exception + flash[:danger] = @faq.errors.full_messages.to_sentence + end + + redirect_to admins_faqs_path + end + + def destroy + @faq.destroy + + redirect_to admins_faqs_path + flash[:success] = "删除成功" + end + + def create + @faq = Faq.new(faq_params) + begin + @faq.save! + flash[:success] = '创建成功' + rescue Exception + flash[:danger] = @faq.errors.full_messages.to_sentence + end + redirect_to admins_faqs_path + end + + private + def find_faq + @faq = Faq.find params[:id] + end + + def faq_params + params.require(:faq).permit(:question, :url) + end + +end diff --git a/app/controllers/helps/faqs_controller.rb b/app/controllers/helps/faqs_controller.rb new file mode 100644 index 000000000..133748ed5 --- /dev/null +++ b/app/controllers/helps/faqs_controller.rb @@ -0,0 +1,8 @@ +class Helps::FaqsController < ApplicationController + skip_before_action :check_sign, :user_setup + + def index + faqs = Faq.select_without_id + render json: faqs.as_json(:except => [:id]) + end +end diff --git a/app/helpers/admins/faqs_helper.rb b/app/helpers/admins/faqs_helper.rb new file mode 100644 index 000000000..0316d44fd --- /dev/null +++ b/app/helpers/admins/faqs_helper.rb @@ -0,0 +1,2 @@ +module Admins::FaqsHelper +end diff --git a/app/helpers/helps/faqs_helper.rb b/app/helpers/helps/faqs_helper.rb new file mode 100644 index 000000000..68b8279f7 --- /dev/null +++ b/app/helpers/helps/faqs_helper.rb @@ -0,0 +1,2 @@ +module Helps::FaqsHelper +end diff --git a/app/models/ci/user.rb b/app/models/ci/user.rb index fc82596c4..e4a4d0623 100644 --- a/app/models/ci/user.rb +++ b/app/models/ci/user.rb @@ -47,6 +47,7 @@ # watchers_count :integer default("0") # devops_step :integer default("0") # gitea_token :string(255) +# platform :string(255) # # Indexes # diff --git a/app/models/faq.rb b/app/models/faq.rb new file mode 100644 index 000000000..5965de036 --- /dev/null +++ b/app/models/faq.rb @@ -0,0 +1,20 @@ +# == Schema Information +# +# Table name: faqs +# +# id :integer not null, primary key +# question :string(255) +# url :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# + +class Faq < ApplicationRecord + + validates :question, presence: true,length: { maximum: 100, too_long: "最多%{count}个字符" } + validates :url, format: { with: CustomRegexp::URL, multiline: true, message: "格式不正确" } + + scope :select_without_id, -> { select(:question, :url) } + scope :search_question, ->(keyword) { where("question LIKE ?", "%#{keyword}%") unless keyword.blank?} + +end diff --git a/app/models/user.rb b/app/models/user.rb index 256cc7b41..2f67410c0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -47,6 +47,7 @@ # watchers_count :integer default("0") # devops_step :integer default("0") # gitea_token :string(255) +# platform :string(255) # # Indexes # diff --git a/app/views/admins/faqs/_form_modal.html.erb b/app/views/admins/faqs/_form_modal.html.erb new file mode 100644 index 000000000..45ceb901c --- /dev/null +++ b/app/views/admins/faqs/_form_modal.html.erb @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/app/views/admins/faqs/_list.html.erb b/app/views/admins/faqs/_list.html.erb new file mode 100644 index 000000000..81e658edd --- /dev/null +++ b/app/views/admins/faqs/_list.html.erb @@ -0,0 +1,33 @@ + + + + + + + + + + + + + <% if faqs.present? %> + <% faqs.each_with_index do |faq, index| %> + + + + + + + + + <% end %> + <% else %> + <%= render 'admins/shared/no_data_for_table' %> + <% end %> + +
序号标题url<%= sort_tag('创建于', name: 'created_at', path: admins_faqs_path) %><%= sort_tag('更新于', name: 'updated_at', path: admins_faqs_path) %>操作
<%= list_index_no((params[:page] || 1).to_i, index) %><%= faq.question%><%= link_to faq.url, target: '_blank' %><%= display_text(faq.created_at&.strftime('%Y-%m-%d %H:%M')) %><%= display_text(faq.updated_at&.strftime('%Y-%m-%d %H:%M')) %> + <%= link_to "编辑", edit_admins_faq_path(faq), remote: true, class: "action" %> + <%= link_to "删除", admins_faqs_path(faq.id), method: :delete, data:{confirm: "确认删除的吗?"}, class: "delete-project-action" %> +
+ +<%= render partial: 'admins/shared/paginate', locals: { objects: faqs } %> diff --git a/app/views/admins/faqs/edit.js.erb b/app/views/admins/faqs/edit.js.erb new file mode 100644 index 000000000..fc121b18e --- /dev/null +++ b/app/views/admins/faqs/edit.js.erb @@ -0,0 +1,2 @@ +$("#faq-modals").html("<%= j render(partial: 'admins/faqs/form_modal', locals: {type: 'update'}) %>") +$(".faq-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/faqs/index.html.erb b/app/views/admins/faqs/index.html.erb new file mode 100644 index 000000000..3b327249b --- /dev/null +++ b/app/views/admins/faqs/index.html.erb @@ -0,0 +1,17 @@ +<% define_admin_breadcrumbs do %> + <% add_admin_breadcrumb('FAQ', admins_faqs_path) %> +<% end %> + +
+ <%= form_tag(admins_faqs_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> + <%= text_field_tag(:keyword, params[:keyword], class: 'form-control col-sm-2 ml-3', placeholder: '输入标题搜素') %> + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + <% end %> + <%= link_to "新增", new_admins_faq_path, remote: true, class: "btn btn-primary pull-right", "data-disabled-with":"...新增" %> +
+ +
+ <%= render partial: 'admins/faqs/list', locals: { faqs: @faqs } %> +
+
+
\ No newline at end of file diff --git a/app/views/admins/faqs/index.js.erb b/app/views/admins/faqs/index.js.erb new file mode 100644 index 000000000..ebb1900e5 --- /dev/null +++ b/app/views/admins/faqs/index.js.erb @@ -0,0 +1 @@ +$('.faqs-list-container').html("<%= j( render partial: 'admins/faqs/list', locals: { faqs: @faqs } ) %>"); \ No newline at end of file diff --git a/app/views/admins/faqs/new.js.erb b/app/views/admins/faqs/new.js.erb new file mode 100644 index 000000000..edeb83a81 --- /dev/null +++ b/app/views/admins/faqs/new.js.erb @@ -0,0 +1,2 @@ +$("#faq-modals").html("<%= j render(partial: 'admins/faqs/form_modal', locals: {type: 'create'}) %>") +$(".faq-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/laboratories/shared/_laboratory_item.html.erb b/app/views/admins/laboratories/shared/_laboratory_item.html.erb index 8fdf9c727..a121528e3 100644 --- a/app/views/admins/laboratories/shared/_laboratory_item.html.erb +++ b/app/views/admins/laboratories/shared/_laboratory_item.html.erb @@ -10,7 +10,6 @@ <% if school && school.identifier.present? %> - <%= link_to school.identifier.to_s, statistics_college_path(school.identifier), target: '_blank' %> <% else %> -- <% end %> diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb index de56a5477..ad53c661a 100644 --- a/app/views/admins/shared/_sidebar.html.erb +++ b/app/views/admins/shared/_sidebar.html.erb @@ -38,6 +38,7 @@
  • <%= sidebar_item(admins_cooperatives_path, '合作伙伴', icon: 'handshake-o', controller: 'admins-cooperatives') %>
  • <%= sidebar_item(edit_admins_agreement_path, '服务协议', icon: 'file-text-o', controller: 'admins-agreements') %>
  • <%= sidebar_item(edit_admins_help_center_path, '帮助中心', icon: 'question-circle-o', controller: 'admins-help_centers') %>
  • +
  • <%= sidebar_item(admins_faqs_path, 'FAQ', icon: 'question-circle', controller: 'admins-faqs') %>
  • <% end %>
  • diff --git a/config/routes.rb b/config/routes.rb index 63c7520ae..a8c97effc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -604,6 +604,10 @@ Rails.application.routes.draw do end end # Project Area END + + scope module: :helps do + resources :faqs, only: [:index] + end end namespace :admins do @@ -780,6 +784,7 @@ Rails.application.routes.draw do post :drag, on: :collection post :replace_image_url, on: :member end + resources :faqs resources :laboratories, only: [:index, :create, :destroy, :update] do member do get :shixuns_for_select diff --git a/db/migrate/20210514024444_create_faqs.rb b/db/migrate/20210514024444_create_faqs.rb new file mode 100644 index 000000000..d63a64fa2 --- /dev/null +++ b/db/migrate/20210514024444_create_faqs.rb @@ -0,0 +1,10 @@ +class CreateFaqs < ActiveRecord::Migration[5.2] + def change + create_table :faqs do |t| + t.string :question + t.string :url + + t.timestamps + end + end +end From 8ee0acae85e8d40c5652fd3791848c26ee268b5a Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 14 May 2021 16:39:32 +0800 Subject: [PATCH 08/18] set default desc sort for faqs api --- app/controllers/admins/faqs_controller.rb | 2 +- app/controllers/helps/faqs_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admins/faqs_controller.rb b/app/controllers/admins/faqs_controller.rb index 08dc69a79..fc00f847c 100644 --- a/app/controllers/admins/faqs_controller.rb +++ b/app/controllers/admins/faqs_controller.rb @@ -2,7 +2,7 @@ class Admins::FaqsController < Admins::BaseController before_action :find_faq, only: [:edit,:update, :destroy] def index - sort_by = params[:sort_by] ||= 'created_at' + sort_by = params[:sort_by] ||= 'updated_at' sort_direction = params[:sort_direction] ||= 'desc' keyword = params[:keyword].to_s.strip diff --git a/app/controllers/helps/faqs_controller.rb b/app/controllers/helps/faqs_controller.rb index 133748ed5..a18f49270 100644 --- a/app/controllers/helps/faqs_controller.rb +++ b/app/controllers/helps/faqs_controller.rb @@ -2,7 +2,7 @@ class Helps::FaqsController < ApplicationController skip_before_action :check_sign, :user_setup def index - faqs = Faq.select_without_id + faqs = Faq.select_without_id.order(updated_at: :desc) render json: faqs.as_json(:except => [:id]) end end From 27d9d806cee1a6d04e7d61b0bef0a96335255c15 Mon Sep 17 00:00:00 2001 From: jasder Date: Sat, 15 May 2021 10:19:25 +0800 Subject: [PATCH 09/18] FIX update project bug --- app/controllers/projects_controller.rb | 34 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3ddbeb401..7612003f2 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -106,19 +106,29 @@ class ProjectsController < ApplicationController def update ActiveRecord::Base.transaction do - Projects::UpdateForm.new(project_params).validate! - private = params[:private] || false + # TODO: + # 临时特殊处理修改website、lesson_url操作方法 + if project_params.has_key?("website") + @project.update(project_params) + else + validate_params = project_params.slice(:name, :description, + :project_category_id, :project_language_id, :private) + + Projects::UpdateForm.new(validate_params).validate! + + private = params[:private] || false - new_project_params = project_params.except(:private).merge(is_public: !private) - @project.update_attributes!(new_project_params) - gitea_params = { - private: private, - default_branch: @project.default_branch, - website: @project.website - } - if [true, false].include? private - Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) - @project.repository.update_column(:hidden, private) + new_project_params = project_params.except(:private).merge(is_public: !private) + @project.update_attributes!(new_project_params) + gitea_params = { + private: private, + default_branch: @project.default_branch, + website: @project.website + } + if [true, false].include? private + Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) + @project.repository.update_column(:hidden, private) + end end end rescue Exception => e From 2f9d583fac696703b9d67402c56694cd7ea3d053 Mon Sep 17 00:00:00 2001 From: jasder Date: Mon, 17 May 2021 16:57:46 +0800 Subject: [PATCH 10/18] FIX add nickname lastname query conditions for list users api --- app/models/user.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 2f67410c0..03989cbab 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -168,7 +168,8 @@ class User < Owner # Groups and active users scope :active, lambda { where(status: STATUS_ACTIVE) } scope :like, lambda { |keywords| - where("LOWER(concat(lastname, firstname, login, mail)) LIKE ?", "%#{keywords.split(" ").join('|')}%") unless keywords.blank? + sql = "CONCAT(lastname, firstname) LIKE :keyword OR login LIKE :keyword OR mail LIKE :keyword OR nickname LIKE :keyword" + where(sql, :search => "%#{keywords.split(" ").join('|')}%") unless keywords.blank? } scope :simple_select, -> {select(:id, :login, :lastname,:firstname, :nickname, :gitea_uid, :type)} From c627ea6c1938ec126a35a43b8debe5e813b698d0 Mon Sep 17 00:00:00 2001 From: jasder Date: Mon, 17 May 2021 17:14:55 +0800 Subject: [PATCH 11/18] FIX migration project accelerator's bug --- app/controllers/concerns/acceleratorable.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/acceleratorable.rb b/app/controllers/concerns/acceleratorable.rb index 9a11e46c2..5243ac538 100644 --- a/app/controllers/concerns/acceleratorable.rb +++ b/app/controllers/concerns/acceleratorable.rb @@ -2,7 +2,7 @@ module Acceleratorable extend ActiveSupport::Concern def enable_accelerator?(clone_addr) - clone_addr.include?(github_domain) || clone_addr.include?(gitlab_domain) + is_foreign_url?(clone_addr) && config_accelerator? end def accelerator_url(repo_name) @@ -25,4 +25,12 @@ module Acceleratorable Gitea.gitea_config[:accelerator]["access_key_id"] end + def config_accelerator? + Gitea.gitea_config[:accelerator].present? + end + + def is_foreign_url?(clone_addr) + clone_addr.include?(github_domain) || clone_addr.include?(gitlab_domain) + end + end \ No newline at end of file From 8a47761afbdeac4da414fdf17de5a3e6e0d65c92 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 11:39:50 +0800 Subject: [PATCH 12/18] ADD mergeable column for get pull api --- app/controllers/pull_requests_controller.rb | 3 ++- .../gitea/pull_request/get_service.rb | 21 +++++++++---------- app/views/pull_requests/show.json.jbuilder | 2 ++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index 0dbcdc942..139ea9526 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -136,7 +136,8 @@ class PullRequestsController < ApplicationController def show @issue_user = @issue.user @issue_assign_to = @issue.get_assign_user - + @gitea_pull = Gitea::PullRequest::GetService.call(@owner.login, + @repository.identifier, @pull_request.gpid, current_user&.gitea_token) end def pr_merge diff --git a/app/services/gitea/pull_request/get_service.rb b/app/services/gitea/pull_request/get_service.rb index 6a7ec30f4..601c669e1 100644 --- a/app/services/gitea/pull_request/get_service.rb +++ b/app/services/gitea/pull_request/get_service.rb @@ -1,15 +1,14 @@ # Get a pull request class Gitea::PullRequest::GetService < Gitea::ClientService - attr_reader :user, :repo, :pull_request_id + attr_reader :owner, :repo, :number, :token - # user: 用户 - # repo: 仓库名称/标识 - # pull_request_id: pull request主键id - def initialize(user, repo, pull_request_id) - super({token: user.gitea_token}) - @user = user + #eq: + # Gitea::PullRequest::GetService.call(user.login, repository.identifier, pull.gpid, user.gitea_token) + def initialize(owner, repo, number, token=nil) + @owner = owner @repo = repo - @pull_request_id = pull_request_id + @number = number + @token = token end def call @@ -19,11 +18,11 @@ class Gitea::PullRequest::GetService < Gitea::ClientService private def params - Hash.new.merge(token: user.gitea_token) + Hash.new.merge(token: token) end def url - "/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}".freeze + "/repos/#{owner}/#{repo}/pulls/#{number}".freeze end def render_result(response) @@ -31,7 +30,7 @@ class Gitea::PullRequest::GetService < Gitea::ClientService when 200 JSON.parse(response.body) else - nil + {} end end end diff --git a/app/views/pull_requests/show.json.jbuilder b/app/views/pull_requests/show.json.jbuilder index c3f781f73..9c2681861 100644 --- a/app/views/pull_requests/show.json.jbuilder +++ b/app/views/pull_requests/show.json.jbuilder @@ -12,6 +12,8 @@ json.pull_request do json.pull_request_staus @pull_request.status == 1 ? "merged" : (@pull_request.status == 2 ? "closed" : "open") json.fork_project_user @pull_request&.fork_project&.owner.try(:login) json.create_user @pull_request&.user&.login + json.mergeable @gitea_pull["mergeable"] + json.state @gitea_pull["state"] end json.issue do From 00f5a7f9165ede29520f7e53aff1d56319440cbf Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 16:42:53 +0800 Subject: [PATCH 13/18] =?UTF-8?q?ADD=20issue=20pull=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/issues/list_query_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/issues/list_query_service.rb b/app/services/issues/list_query_service.rb index dbb502ab6..1718db97d 100644 --- a/app/services/issues/list_query_service.rb +++ b/app/services/issues/list_query_service.rb @@ -28,7 +28,7 @@ class Issues::ListQueryService < ApplicationService end if search_name.present? - issues = issues.where("subject like ?", "%#{search_name}%") + issues = issues.where("subject LIKE ? OR description LIKE ? ", "%#{search_name}%", "%#{search_name}%") end if start_time&.present? || end_time&.present? From ffa74e92a3d7976621465c295f166658fad3caad Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 18:29:14 +0800 Subject: [PATCH 14/18] =?UTF-8?q?FIX=20=E4=B8=B4=E6=97=B6=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=8E=B7=E5=8F=96readme=E6=96=87=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 5 +++++ app/views/repositories/entries.json.jbuilder | 1 + 2 files changed, 6 insertions(+) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 10b352ae6..414711832 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -53,6 +53,11 @@ class RepositoriesController < ApplicationController @entries = Gitea::Repository::Entries::ListService.new(@owner, @project.identifier, ref: @ref).call @entries = @entries.present? ? @entries.sort_by{ |hash| hash['type'] } : [] @path = Gitea.gitea_config[:domain]+"/#{@project.owner.login}/#{@project.identifier}/raw/branch/#{@ref}/" + + # TODO + # 临时处理readme文件问题 + admin = User.where(admin: true).last + @readme = Gitea::Repository::Readme::GetService.call(@owner.login, @project.identifier, @ref, admin&.gitea_token) end end diff --git a/app/views/repositories/entries.json.jbuilder b/app/views/repositories/entries.json.jbuilder index 6964c1c54..f0b069dc7 100644 --- a/app/views/repositories/entries.json.jbuilder +++ b/app/views/repositories/entries.json.jbuilder @@ -59,4 +59,5 @@ if @project.forge? end end end + json.readme @readme end From 5b2d6a8063eda3c108a7717cc11dd1aa4f0c3fc5 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 18:34:33 +0800 Subject: [PATCH 15/18] =?UTF-8?q?FIX=20[bug]=E4=B8=B4=E6=97=B6=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=8E=B7=E5=8F=96readme=E6=96=87=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 414711832..8019e905d 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -57,7 +57,13 @@ class RepositoriesController < ApplicationController # TODO # 临时处理readme文件问题 admin = User.where(admin: true).last - @readme = Gitea::Repository::Readme::GetService.call(@owner.login, @project.identifier, @ref, admin&.gitea_token) + result = Gitea::Repository::Readme::GetService.call(@owner.login, @project.identifier, @ref, admin&.gitea_token) + @readme = + if result[:status] == :success + result[:body] + else + {} + end end end From 1c8d0686ee0c56631d83e69a14aadc7d52ff7ec8 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 18:41:29 +0800 Subject: [PATCH 16/18] =?UTF-8?q?FIX=20[base64=E8=A7=A3=E7=A0=81=E6=93=8D?= =?UTF-8?q?=E4=BD=9C]=E4=B8=B4=E6=97=B6=E5=A4=84=E7=90=86=E8=8E=B7?= =?UTF-8?q?=E5=8F=96readme=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/entries.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/repositories/entries.json.jbuilder b/app/views/repositories/entries.json.jbuilder index f0b069dc7..e62930a95 100644 --- a/app/views/repositories/entries.json.jbuilder +++ b/app/views/repositories/entries.json.jbuilder @@ -59,5 +59,5 @@ if @project.forge? end end end - json.readme @readme + json.readme @readme[:readme].merge(content: readme_render_decode64_content(@result[:readme]["content"], nil)) end From a8e53d4e5cdf4ed1e1255f9c55ef040f23f3a934 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 18:51:46 +0800 Subject: [PATCH 17/18] =?UTF-8?q?FIX=20[code=20bug]=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=E8=8E=B7=E5=8F=96readme=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 2 +- app/views/repositories/entries.json.jbuilder | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 8019e905d..cf4c2132e 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -56,7 +56,7 @@ class RepositoriesController < ApplicationController # TODO # 临时处理readme文件问题 - admin = User.where(admin: true).last + admin = User.find_by_login "jasder" result = Gitea::Repository::Readme::GetService.call(@owner.login, @project.identifier, @ref, admin&.gitea_token) @readme = if result[:status] == :success diff --git a/app/views/repositories/entries.json.jbuilder b/app/views/repositories/entries.json.jbuilder index e62930a95..a12c088b0 100644 --- a/app/views/repositories/entries.json.jbuilder +++ b/app/views/repositories/entries.json.jbuilder @@ -59,5 +59,6 @@ if @project.forge? end end end - json.readme @readme[:readme].merge(content: readme_render_decode64_content(@result[:readme]["content"], nil)) + + json.readme @readme.merge(content: readme_render_decode64_content(@readme["content"], nil)) end From e0eae66ab4193c83ef0be3e75e7667d389e688a5 Mon Sep 17 00:00:00 2001 From: jasder Date: Fri, 21 May 2021 19:26:17 +0800 Subject: [PATCH 18/18] =?UTF-8?q?FIX=20[=E7=94=A8=E6=88=B7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B9=E5=BC=8F]=E4=B8=B4=E6=97=B6=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=8E=B7=E5=8F=96readme=E6=96=87=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index cf4c2132e..6594d06e9 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -56,7 +56,8 @@ class RepositoriesController < ApplicationController # TODO # 临时处理readme文件问题 - admin = User.find_by_login "jasder" + admin = current_user.blank? ? User.where(admin: true).last : current_user + result = Gitea::Repository::Readme::GetService.call(@owner.login, @project.identifier, @ref, admin&.gitea_token) @readme = if result[:status] == :success