From beeb12c3369fb7e6b8a2a411f1e82a38449ef309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Wed, 23 Aug 2023 17:16:03 +0800 Subject: [PATCH 01/24] add page themes for admins --- app/assets/javascripts/admins/page_themes.js | 3 + .../stylesheets/admins/page_themes.scss | 3 + .../admins/page_themes_controller.rb | 61 +++++++++++++++++++ app/helpers/admins/page_themes_helper.rb | 2 + app/models/glcc_registration_task.rb | 37 ++++++----- app/models/page_theme.rb | 18 ++++++ app/models/project.rb | 1 + app/queries/admins/page_themes_query.rb | 17 ++++++ .../admins/page_themes/_form_modal.html.erb | 61 +++++++++++++++++++ app/views/admins/page_themes/_list.html.erb | 33 ++++++++++ app/views/admins/page_themes/edit.js.erb | 18 ++++++ app/views/admins/page_themes/index.html.erb | 21 +++++++ app/views/admins/page_themes/index.js.erb | 1 + app/views/admins/page_themes/new.js.erb | 18 ++++++ app/views/admins/shared/_sidebar.html.erb | 1 + .../site_pages/shared/_info_list.html.erb | 4 +- config/routes.rb | 1 + .../20230823071725_create_page_themes.rb | 12 ++++ .../admins/page_themes_controller_spec.rb | 5 ++ .../helpers/admins/page_themes_helper_spec.rb | 15 +++++ spec/models/page_theme_spec.rb | 5 ++ 21 files changed, 320 insertions(+), 17 deletions(-) create mode 100644 app/assets/javascripts/admins/page_themes.js create mode 100644 app/assets/stylesheets/admins/page_themes.scss create mode 100644 app/controllers/admins/page_themes_controller.rb create mode 100644 app/helpers/admins/page_themes_helper.rb create mode 100644 app/models/page_theme.rb create mode 100644 app/queries/admins/page_themes_query.rb create mode 100644 app/views/admins/page_themes/_form_modal.html.erb create mode 100644 app/views/admins/page_themes/_list.html.erb create mode 100644 app/views/admins/page_themes/edit.js.erb create mode 100644 app/views/admins/page_themes/index.html.erb create mode 100644 app/views/admins/page_themes/index.js.erb create mode 100644 app/views/admins/page_themes/new.js.erb create mode 100644 db/migrate/20230823071725_create_page_themes.rb create mode 100644 spec/controllers/admins/page_themes_controller_spec.rb create mode 100644 spec/helpers/admins/page_themes_helper_spec.rb create mode 100644 spec/models/page_theme_spec.rb diff --git a/app/assets/javascripts/admins/page_themes.js b/app/assets/javascripts/admins/page_themes.js new file mode 100644 index 000000000..1663fb90a --- /dev/null +++ b/app/assets/javascripts/admins/page_themes.js @@ -0,0 +1,3 @@ +// 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/page_themes.scss b/app/assets/stylesheets/admins/page_themes.scss new file mode 100644 index 000000000..b47fedabf --- /dev/null +++ b/app/assets/stylesheets/admins/page_themes.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the admins/page_themes 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/page_themes_controller.rb b/app/controllers/admins/page_themes_controller.rb new file mode 100644 index 000000000..6f7d8f4dd --- /dev/null +++ b/app/controllers/admins/page_themes_controller.rb @@ -0,0 +1,61 @@ +class Admins::PageThemesController < Admins::Topic::BaseController + before_action :finder_page_theme, only: [:edit, :update, :destroy] + + def index + params[:sort_by] = params[:sort_by].presence || 'created_at' + params[:sort_direction] = params[:sort_direction].presence || 'desc' + + page_themes = Admins::PageThemesQuery.call(params) + + @page_themes = paginate page_themes + end + + def show + render 'edit' + end + + def edit + end + + def create + @page_theme = PageTheme.new update_params + + if @page_theme.save + save_image_file(params[:image_url], @page_theme) + redirect_to admins_page_themes_path + flash[:success] = "新增主题成功" + else + redirect_to admins_page_themes_path + flash[:danger] = "新增主题失败: #{@page_theme.errors.messages.values.flatten.join(',')}" + end + end + + def destroy + if @page_theme.destroy + redirect_to admins_page_themes_path + flash[:success] = "删除主题成功" + else + redirect_to admins_page_themes_path + flash[:danger] = "删除主题失败" + end + end + + def new + @page_theme = PageTheme.new + end + + def update + @page_theme.update(update_params) + flash[:success] = '保存成功' + render 'edit' + end + + private + def finder_page_theme + @page_theme = PageTheme.find(params[:id]) + end + + def update_params + params.require(:page_theme).permit(:language_frame, :name, :cate, :image_url, :clone_url) + end +end diff --git a/app/helpers/admins/page_themes_helper.rb b/app/helpers/admins/page_themes_helper.rb new file mode 100644 index 000000000..721d9b78c --- /dev/null +++ b/app/helpers/admins/page_themes_helper.rb @@ -0,0 +1,2 @@ +module Admins::PageThemesHelper +end diff --git a/app/models/glcc_registration_task.rb b/app/models/glcc_registration_task.rb index 7c8671e6f..da0d7cfd5 100644 --- a/app/models/glcc_registration_task.rb +++ b/app/models/glcc_registration_task.rb @@ -1,20 +1,27 @@ - # == Schema Information # -# Table name: ignores -# user_id -# student_name -# school -# profession -# location -# grade -# phone -# mail -# created_on -# is_delete -# prove_attachment_id -# cancel_count -# round +# Table name: glcc_registration_task +# +# id :integer not null, primary key +# reg_id :integer not null +# task_name :string(255) +# task_desc :text(16777215) +# task_difficulty :integer +# task_url :string(1000) +# task_reward :string(255) +# tutor_name :string(255) +# tutor_mail :string(255) +# tutor_phone :string(255) +# created_on :datetime +# is_delete :boolean default("0"), not null +# sort_no :integer default("0") +# locked :boolean default("0") +# round :integer default("1"), not null +# check_status :boolean default("0") +# +# Indexes +# +# idx_glcc_reg_id (reg_id) # class GlccRegistrationTask < ActiveRecord::Base diff --git a/app/models/page_theme.rb b/app/models/page_theme.rb new file mode 100644 index 000000000..337346220 --- /dev/null +++ b/app/models/page_theme.rb @@ -0,0 +1,18 @@ +# == Schema Information +# +# Table name: page_themes +# +# id :integer not null, primary key +# name :string(255) not null +# language_frame :integer default("0") +# image_url :string(255) +# clone_url :string(255) not null +# order_index :integer default("0") +# created_at :datetime not null +# updated_at :datetime not null +# + +class PageTheme < ApplicationRecord + enum language_frame: { hugo: 0, jeklly: 1, hexo: 2} + validates :name, presence: {message: "主题名不能为空"}, uniqueness: {message: "主题名已存在",scope: :language_frame} +end diff --git a/app/models/project.rb b/app/models/project.rb index 17972dd50..5f9fcef68 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -120,6 +120,7 @@ class Project < ApplicationRecord has_many :issues, dependent: :destroy # has_many :user_grades, dependent: :destroy has_many :attachments, as: :container, dependent: :destroy + has_one :page, dependent: :destroy has_one :project_score, dependent: :destroy has_many :versions, -> { order("versions.created_on DESC, versions.name DESC") }, dependent: :destroy has_many :praise_treads, as: :praise_tread_object, dependent: :destroy diff --git a/app/queries/admins/page_themes_query.rb b/app/queries/admins/page_themes_query.rb new file mode 100644 index 000000000..72d40943a --- /dev/null +++ b/app/queries/admins/page_themes_query.rb @@ -0,0 +1,17 @@ +class Admins::PageThemesQuery < ApplicationQuery + include CustomSortable + + attr_reader :params + + sort_columns :created_at, default_by: :created_at, default_direction: :desc + + def initialize(params) + @params = params + end + + def call + language_frame = params[:language_frame].blank? ? [0..99] : params[:language_frame] + page_themes = PageTheme.where(language_frame: language_frame) + custom_sort(page_themes, params[:sort_by], params[:sort_direction]) + end +end \ No newline at end of file diff --git a/app/views/admins/page_themes/_form_modal.html.erb b/app/views/admins/page_themes/_form_modal.html.erb new file mode 100644 index 000000000..5e12fc403 --- /dev/null +++ b/app/views/admins/page_themes/_form_modal.html.erb @@ -0,0 +1,61 @@ + \ No newline at end of file diff --git a/app/views/admins/page_themes/_list.html.erb b/app/views/admins/page_themes/_list.html.erb new file mode 100644 index 000000000..98aac6072 --- /dev/null +++ b/app/views/admins/page_themes/_list.html.erb @@ -0,0 +1,33 @@ + + + + + + + + + + + + + <% if page_themes.present? %> + <% page_themes.each_with_index do |banner, index| %> + + + + + + + + + <% end %> + <% else %> + <%= render 'admins/shared/no_data_for_table' %> + <% end %> + +
序号建站工具主题名图片仓库url操作
<%= list_index_no((params[:page] || 1).to_i, index) %><%= banner.language_frame %><%= banner.name %><%= banner.clone_url %> + <%= link_to "编辑", edit_admins_page_theme_path(banner), remote: true, class: "action" %> + <%= link_to "删除", admins_page_theme_path(banner), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> +
+ +<%= render partial: 'admins/shared/paginate', locals: { objects: page_themes } %> \ No newline at end of file diff --git a/app/views/admins/page_themes/edit.js.erb b/app/views/admins/page_themes/edit.js.erb new file mode 100644 index 000000000..a9f963c5d --- /dev/null +++ b/app/views/admins/page_themes/edit.js.erb @@ -0,0 +1,18 @@ +$("#page-themes-modals").html("<%= j render(partial: 'admins/page_themes/form_modal', locals: {type: 'update'}) %>") +$(".page-themes-change-modal").modal('show'); + +$('.logo-item-left').on("change", 'input[type="file"]', function () { + var $fileInput = $(this); + var file = this.files[0]; + var imageType = /image.*/; + if (file && file.type.match(imageType)) { + var reader = new FileReader(); + reader.onload = function () { + var $box = $fileInput.parent(); + $box.find('img').attr('src', reader.result).css('display', 'block'); + $box.addClass('has-img'); + }; + reader.readAsDataURL(file); + } else { + } +}); diff --git a/app/views/admins/page_themes/index.html.erb b/app/views/admins/page_themes/index.html.erb new file mode 100644 index 000000000..72ea4088a --- /dev/null +++ b/app/views/admins/page_themes/index.html.erb @@ -0,0 +1,21 @@ +<% define_admin_breadcrumbs do %> + <% add_admin_breadcrumb('主题管理') %> +<% end %> + +
+ <%= form_tag(admins_page_themes_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> +
+ + <% state_options = [['全部',nil], ['hugo', 0], ['jeklly', 1],['hexo',2]] %> + <%= select_tag(:language_frame, options_for_select(state_options), class: 'form-control') %> +
+ <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + <% end %> + <%= link_to "新增", new_admins_page_theme_path, remote: true, class: "btn btn-primary pull-right", "data-disabled-with":"...新增" %> +
+ +
+ <%= render partial: 'admins/page_themes/list', locals: { page_themes: @page_themes } %> +
+
+
diff --git a/app/views/admins/page_themes/index.js.erb b/app/views/admins/page_themes/index.js.erb new file mode 100644 index 000000000..30ea36a4e --- /dev/null +++ b/app/views/admins/page_themes/index.js.erb @@ -0,0 +1 @@ +$('.page-themes-list-container').html("<%= j( render partial: 'admins/page_themes/list', locals: { page_themes: @page_themes } ) %>"); \ No newline at end of file diff --git a/app/views/admins/page_themes/new.js.erb b/app/views/admins/page_themes/new.js.erb new file mode 100644 index 000000000..4c3d847d4 --- /dev/null +++ b/app/views/admins/page_themes/new.js.erb @@ -0,0 +1,18 @@ +$("#page-themes-modals").html("<%= j render(partial: 'admins/page_themes/form_modal', locals: {type: 'create'}) %>") +$(".page-themes-change-modal").modal('show'); + +$('.logo-item-left').on("change", 'input[type="file"]', function () { + var $fileInput = $(this); + var file = this.files[0]; + var imageType = /image.*/; + if (file && file.type.match(imageType)) { + var reader = new FileReader(); + reader.onload = function () { + var $box = $fileInput.parent(); + $box.find('img').attr('src', reader.result).css('display', 'block'); + $box.addClass('has-img'); + }; + reader.readAsDataURL(file); + } else { + } +}); diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb index d1d39fcf5..813e2338d 100644 --- a/app/views/admins/shared/_sidebar.html.erb +++ b/app/views/admins/shared/_sidebar.html.erb @@ -32,6 +32,7 @@ <%= sidebar_item_group('#pages-submenu', '站点管理', icon: 'cogs') do %>
  • <%= sidebar_item(admins_identity_verifications_path, '身份审核列表', icon: 'user', controller: 'admins-identity_verifications') %>
  • <%= sidebar_item(admins_site_pages_path, '用户站点列表', icon: 'sitemap', controller: 'admins-site_pages') %>
  • +
  • <%= sidebar_item(admins_page_themes_path, '站点主题配置', icon: 'cogs', controller: 'admins-page_themes') %>
  • <% end %> diff --git a/app/views/admins/site_pages/shared/_info_list.html.erb b/app/views/admins/site_pages/shared/_info_list.html.erb index 34b2f9325..c61b91651 100644 --- a/app/views/admins/site_pages/shared/_info_list.html.erb +++ b/app/views/admins/site_pages/shared/_info_list.html.erb @@ -29,8 +29,8 @@ <% end %> - <%= link_to "/#{site_page.user.login}/#{site_page.project.identifier}", target: '_blank' do %> - <%= overflow_hidden_span site_page.project.name, width: 100 %> + <%= link_to "/#{site_page.user.login}/#{site_page.project.try(:identifier)}", target: '_blank' do %> + <%= overflow_hidden_span site_page.project.try(:name), width: 100 %> <% end %> <%= display_text(site_page.state == true ? "正常" : "已关闭") %> diff --git a/config/routes.rb b/config/routes.rb index 6a291bf2b..7b6c4d8bc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -815,6 +815,7 @@ Rails.application.routes.draw do resources :users_rank, only: [:index] resources :identity_verifications resources :site_pages + resources :page_themes resources :projects_rank, only: [:index] resources :sites resources :edu_settings diff --git a/db/migrate/20230823071725_create_page_themes.rb b/db/migrate/20230823071725_create_page_themes.rb new file mode 100644 index 000000000..22cb7ab11 --- /dev/null +++ b/db/migrate/20230823071725_create_page_themes.rb @@ -0,0 +1,12 @@ +class CreatePageThemes < ActiveRecord::Migration[5.2] + def change + create_table :page_themes do |t| + t.string :name, null:false + t.integer :language_frame, default:0 + t.string :image_url + t.string :clone_url, null:false + t.integer :order_index,default: 0 + t.timestamps + end + end +end diff --git a/spec/controllers/admins/page_themes_controller_spec.rb b/spec/controllers/admins/page_themes_controller_spec.rb new file mode 100644 index 000000000..8495627cd --- /dev/null +++ b/spec/controllers/admins/page_themes_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Admins::PageThemesController, type: :controller do + +end diff --git a/spec/helpers/admins/page_themes_helper_spec.rb b/spec/helpers/admins/page_themes_helper_spec.rb new file mode 100644 index 000000000..94f85f0cd --- /dev/null +++ b/spec/helpers/admins/page_themes_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the Admins::PageThemesHelper. For example: +# +# describe Admins::PageThemesHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe Admins::PageThemesHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/page_theme_spec.rb b/spec/models/page_theme_spec.rb new file mode 100644 index 000000000..42f66aca9 --- /dev/null +++ b/spec/models/page_theme_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe PageTheme, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end From 890c826685cb31673b233ebe315fadf1e13ed66f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Wed, 23 Aug 2023 17:25:24 +0800 Subject: [PATCH 02/24] add site destroy for admin --- app/controllers/admins/site_pages_controller.rb | 11 +++++++++++ .../admins/site_pages/shared/_info_list.html.erb | 1 + 2 files changed, 12 insertions(+) diff --git a/app/controllers/admins/site_pages_controller.rb b/app/controllers/admins/site_pages_controller.rb index 04bff32c7..f0e05e71d 100644 --- a/app/controllers/admins/site_pages_controller.rb +++ b/app/controllers/admins/site_pages_controller.rb @@ -17,6 +17,17 @@ class Admins::SitePagesController < Admins::BaseController def edit end + + def destroy + if @site_page.destroy + redirect_to admins_site_pages_path + flash[:success] = "删除站点成功" + else + redirect_to admins_site_pages_path + flash[:danger] = "删除站点失败" + end + end + def update @site_page.update(update_params) flash[:success] = '保存成功' diff --git a/app/views/admins/site_pages/shared/_info_list.html.erb b/app/views/admins/site_pages/shared/_info_list.html.erb index c61b91651..6c2ca0f7a 100644 --- a/app/views/admins/site_pages/shared/_info_list.html.erb +++ b/app/views/admins/site_pages/shared/_info_list.html.erb @@ -46,6 +46,7 @@ <%= link_to "查看", edit_admins_site_page_path(site_page), class: 'action' %> + <%= link_to "删除", admins_site_page_path(site_page), method: :delete, data:{confirm: "确认删除吗,删除后站点将无法访问?"}, class: "action" %> <% end %> From c4222f1d657068f5c614192b27bc24ae10391df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 11:14:56 +0800 Subject: [PATCH 03/24] update admins identity_verifications site_pages --- app/controllers/site_pages_controller.rb | 16 +++++++-------- .../identity_verifications/edit.html.erb | 20 +++++++------------ app/views/admins/page_themes/index.html.erb | 2 +- app/views/admins/site_pages/edit.html.erb | 8 ++++---- app/views/admins/site_pages/index.html.erb | 2 +- 5 files changed, 21 insertions(+), 27 deletions(-) diff --git a/app/controllers/site_pages_controller.rb b/app/controllers/site_pages_controller.rb index 319cacfb5..8f6b9af51 100644 --- a/app/controllers/site_pages_controller.rb +++ b/app/controllers/site_pages_controller.rb @@ -10,13 +10,13 @@ class SitePagesController < ApplicationController end def show - @page = Page.find_by(user_id: current_user.id, project_id: @project.id) + @page = Page.find_by(project_id: @project.id) return render_ok({data:nil}) unless @page.present? end def create - return normal_status(-1, "您还未通过身份认证,无法开通Page") unless current_user.id_card_verify - return normal_status(-1, "您还未开通Page服务,无法进行部署") unless current_user.website_permission + return normal_status(-1, "你还未通过身份认证,无法开通Page") unless current_user.id_card_verify + return normal_status(-1, "你还未开通Page服务,无法进行部署") unless current_user.website_permission return normal_status(-1, "你已使用了 #{params[:identifier]} 作为page标识") if Page.exists?(identifier: params[:identifier], user: current_user) return normal_status(-1, "该仓库已开通Page服务") if Page.exists?(project: @project) @page = Page.new(create_params) @@ -26,7 +26,7 @@ class SitePagesController < ApplicationController end def build - return normal_status(-1, "您还未开通Page服务,无法进行部署") unless current_user.website_permission + return normal_status(-1, "你还未开通Page服务,无法进行部署") unless current_user.website_permission return normal_status(-1, "该仓库还未开通Page服务,无法进行部署") unless Page.exists?(project: @project) @page = Page.find params[:id] return normal_status(-1, @page.state_description) unless @page.state @@ -42,7 +42,7 @@ class SitePagesController < ApplicationController def softbot_build branch = params[:ref].split("/").last user = User.find_by_login params[:repository][:owner][:login] - return normal_status(-1, "您还未开通Page服务,无法进行部署") unless user.website_permission + return normal_status(-1, "你还未开通Page服务,无法进行部署") unless user.website_permission project = Project.where(identifier: params[:repository][:name],user_id: user.id) return normal_status(-1, "你没有权限操作") if project.owner?(user) @@ -60,9 +60,9 @@ class SitePagesController < ApplicationController private def authenticate_user! - return if @project.is_public - return if @project.owner?(current_user) - render_forbidden('你没有权限操作') + unless @project.manager?(current_user) || current_user.admin? + return render_forbidden('你不是管理员,没有权限操作') + end end def theme_params diff --git a/app/views/admins/identity_verifications/edit.html.erb b/app/views/admins/identity_verifications/edit.html.erb index 4719b01f0..eff4fbd08 100644 --- a/app/views/admins/identity_verifications/edit.html.erb +++ b/app/views/admins/identity_verifications/edit.html.erb @@ -1,6 +1,6 @@ <% define_admin_breadcrumbs do - add_admin_breadcrumb('用户管理', admins_identity_verifications_path) + add_admin_breadcrumb('身份审核列表', admins_identity_verifications_path) add_admin_breadcrumb('用户身份审核详情') end %> @@ -62,7 +62,7 @@
    <% if @identity_verification.card_front_attachment.present? %> - <%= link_to "#{@identity_verification.card_front_attachment.try(:filename)}",attachment_path(@identity_verification.card_front_attachment), target: "_blank" %> + <%= image_tag("#{@identity_verification.card_front_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -72,7 +72,7 @@
    <% if @identity_verification.card_back_attachment.present? %> - <%= link_to "#{@identity_verification.card_back_attachment.try(:filename)}",attachment_path(@identity_verification.card_back_attachment), target: "_blank" %> + <%= image_tag("#{@identity_verification.card_back_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -82,7 +82,7 @@
    <% if @identity_verification.hold_card_front_attachment.present? %> - <%= link_to "#{@identity_verification.hold_card_front_attachment.try(:filename)}",attachment_path(@identity_verification.hold_card_front_attachment), target: "_blank" %> + <%= image_tag("#{@identity_verification.hold_card_front_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -92,23 +92,20 @@
    <% if @identity_verification.hold_card_back_attachment.present? %> - <%= link_to "#{@identity_verification.hold_card_back_attachment.try(:filename)}",attachment_path(@identity_verification.hold_card_back_attachment), target: "_blank" %> + <%= image_tag("#{@identity_verification.hold_card_back_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%>
    +
    - <% if @identity_verification.state == "已通过" %> -
    -

    用户身份审核已通过

    -
    - <%else%> + <% unless @identity_verification.state == "已通过" %>
    <%= f.radio_button :state, '已通过' %> 通过   <%= f.radio_button :state, '已拒绝' %> 拒绝 @@ -124,8 +121,5 @@ <% end %>
    - - - <% end %>
    diff --git a/app/views/admins/page_themes/index.html.erb b/app/views/admins/page_themes/index.html.erb index 72ea4088a..4b4392d88 100644 --- a/app/views/admins/page_themes/index.html.erb +++ b/app/views/admins/page_themes/index.html.erb @@ -1,5 +1,5 @@ <% define_admin_breadcrumbs do %> - <% add_admin_breadcrumb('主题管理') %> + <% add_admin_breadcrumb('站点主题配置') %> <% end %>
    diff --git a/app/views/admins/site_pages/edit.html.erb b/app/views/admins/site_pages/edit.html.erb index 84b69f683..b159b851e 100644 --- a/app/views/admins/site_pages/edit.html.erb +++ b/app/views/admins/site_pages/edit.html.erb @@ -1,7 +1,7 @@ <% define_admin_breadcrumbs do - add_admin_breadcrumb('用户管理', admins_site_pages_path) - add_admin_breadcrumb('站点列表') + add_admin_breadcrumb('用户站点列表', admins_site_pages_path) + add_admin_breadcrumb('站点详情') end %> @@ -51,7 +51,7 @@
    审核信息
    - +
    <%= f.input :identifier, label: '站点标识', wrapper_html: { class: 'col-md-3' }, input_html: { readonly: true, class: 'col-md-5' , value: @site_page.identifier } %> @@ -62,7 +62,7 @@
    - <%= f.input :language_frame, label: '建站工具', wrapper_html: { class: 'col-md-3' }, input_html: { readonly: true, class: 'col-md-5' , value: @site_page.language_frame } %> + <%= f.input :language_frame, label: '建站工具', wrapper_html: { class: 'col-md-3' }, input_html: { readonly: true, type:'text', class: 'col-md-5' , value: @site_page.language_frame } %>
    diff --git a/app/views/admins/site_pages/index.html.erb b/app/views/admins/site_pages/index.html.erb index 8197ae6ee..449bc7f54 100644 --- a/app/views/admins/site_pages/index.html.erb +++ b/app/views/admins/site_pages/index.html.erb @@ -1,5 +1,5 @@ <% define_admin_breadcrumbs do %> - <% add_admin_breadcrumb('用户管理', admins_site_pages_path) %> + <% add_admin_breadcrumb('用户站点列表', admins_site_pages_path) %> <% end %>
    From 9544846c6cea9421baadffa2d12bdb5fad9852f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 11:22:21 +0800 Subject: [PATCH 04/24] fix 500 for identity_verification --- app/views/admins/identity_verifications/edit.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admins/identity_verifications/edit.html.erb b/app/views/admins/identity_verifications/edit.html.erb index eff4fbd08..1efc623d9 100644 --- a/app/views/admins/identity_verifications/edit.html.erb +++ b/app/views/admins/identity_verifications/edit.html.erb @@ -62,7 +62,7 @@
    <% if @identity_verification.card_front_attachment.present? %> - <%= image_tag("#{@identity_verification.card_front_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("#{@identity_verification.card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -72,7 +72,7 @@
    <% if @identity_verification.card_back_attachment.present? %> - <%= image_tag("#{@identity_verification.card_back_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("#{@identity_verification.card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -82,7 +82,7 @@
    <% if @identity_verification.hold_card_front_attachment.present? %> - <%= image_tag("#{@identity_verification.hold_card_front_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("#{@identity_verification.hold_card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -92,7 +92,7 @@
    <% if @identity_verification.hold_card_back_attachment.present? %> - <%= image_tag("#{@identity_verification.hold_card_back_attachment.try(:filename)}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("#{@identity_verification.hold_card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> From e8c19337782c4819b94421f1ee398c7afe1accf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 11:36:28 +0800 Subject: [PATCH 05/24] fix bug --- app/views/admins/identity_verifications/edit.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admins/identity_verifications/edit.html.erb b/app/views/admins/identity_verifications/edit.html.erb index 1efc623d9..0a347c68d 100644 --- a/app/views/admins/identity_verifications/edit.html.erb +++ b/app/views/admins/identity_verifications/edit.html.erb @@ -62,7 +62,7 @@
    <% if @identity_verification.card_front_attachment.present? %> - <%= image_tag("#{@identity_verification.card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -72,7 +72,7 @@
    <% if @identity_verification.card_back_attachment.present? %> - <%= image_tag("#{@identity_verification.card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -82,7 +82,7 @@
    <% if @identity_verification.hold_card_front_attachment.present? %> - <%= image_tag("#{@identity_verification.hold_card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.hold_card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -92,7 +92,7 @@
    <% if @identity_verification.hold_card_back_attachment.present? %> - <%= image_tag("#{@identity_verification.hold_card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.hold_card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> From 35062aa87d589ff1ae58c740260d448716a50ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 11:40:33 +0800 Subject: [PATCH 06/24] card_front_attachment fix --- app/views/admins/identity_verifications/edit.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admins/identity_verifications/edit.html.erb b/app/views/admins/identity_verifications/edit.html.erb index 0a347c68d..99f9f02a9 100644 --- a/app/views/admins/identity_verifications/edit.html.erb +++ b/app/views/admins/identity_verifications/edit.html.erb @@ -62,7 +62,7 @@
    <% if @identity_verification.card_front_attachment.present? %> - <%= image_tag("/api/attachments/#{@identity_verification.card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.card_front}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -72,7 +72,7 @@
    <% if @identity_verification.card_back_attachment.present? %> - <%= image_tag("/api/attachments/#{@identity_verification.card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.card_back}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -82,7 +82,7 @@
    <% if @identity_verification.hold_card_front_attachment.present? %> - <%= image_tag("/api/attachments/#{@identity_verification.hold_card_front_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.hold_card_front}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> @@ -92,7 +92,7 @@
    <% if @identity_verification.hold_card_back_attachment.present? %> - <%= image_tag("/api/attachments/#{@identity_verification.hold_card_back_attachment}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= image_tag("/api/attachments/#{@identity_verification.hold_card_back}", width: 100, height: 100, class: 'preview-image auth-image', data: { toggle: 'tooltip', title: '点击预览' }) %> <%else%>

    图片无法展示,图片已丢失

    <%end%> From 7139ae0613ddd2237ecbfb9251e13de97e99357d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 11:50:44 +0800 Subject: [PATCH 07/24] add state_description --- app/views/site_pages/_info.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/site_pages/_info.json.jbuilder b/app/views/site_pages/_info.json.jbuilder index 8239fbf51..3918c523c 100644 --- a/app/views/site_pages/_info.json.jbuilder +++ b/app/views/site_pages/_info.json.jbuilder @@ -7,6 +7,7 @@ json.project_id page.project_id json.site_name page.site_name json.theme page.theme json.state page.state +json.state_description page.state_description json.language_frame page.language_frame json.url page.url json.created_at page.created_at.strftime("%Y-%m-%d %H:%M:%S") From c3a949906a21031ef1d1dc817adc205e389c4de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 14:50:43 +0800 Subject: [PATCH 08/24] update theme --- app/controllers/admins/page_themes_controller.rb | 14 +++++++++++--- app/controllers/site_pages_controller.rb | 6 ++++-- app/models/page_theme.rb | 12 ++++++++++++ .../admins/page_themes/_form_modal.html.erb | 9 ++++----- app/views/admins/page_themes/_list.html.erb | 16 ++++++++-------- 5 files changed, 39 insertions(+), 18 deletions(-) diff --git a/app/controllers/admins/page_themes_controller.rb b/app/controllers/admins/page_themes_controller.rb index 6f7d8f4dd..c1dceaf38 100644 --- a/app/controllers/admins/page_themes_controller.rb +++ b/app/controllers/admins/page_themes_controller.rb @@ -1,4 +1,4 @@ -class Admins::PageThemesController < Admins::Topic::BaseController +class Admins::PageThemesController < Admins::BaseController before_action :finder_page_theme, only: [:edit, :update, :destroy] def index @@ -19,9 +19,9 @@ class Admins::PageThemesController < Admins::Topic::BaseController def create @page_theme = PageTheme.new update_params - + binding.pry if @page_theme.save - save_image_file(params[:image_url], @page_theme) + save_image_file(params[:image]) redirect_to admins_page_themes_path flash[:success] = "新增主题成功" else @@ -58,4 +58,12 @@ class Admins::PageThemesController < Admins::Topic::BaseController def update_params params.require(:page_theme).permit(:language_frame, :name, :cate, :image_url, :clone_url) end + + def save_image_file(file) + return unless file.present? && file.is_a?(ActionDispatch::Http::UploadedFile) + file_path = Util::FileManage.source_disk_filename(@page_theme, "image") + File.delete(file_path) if File.exist?(file_path) # 删除之前的文件 + Util.write_file(file, file_path) + end + end diff --git a/app/controllers/site_pages_controller.rb b/app/controllers/site_pages_controller.rb index 8f6b9af51..4d6e6510c 100644 --- a/app/controllers/site_pages_controller.rb +++ b/app/controllers/site_pages_controller.rb @@ -54,8 +54,10 @@ class SitePagesController < ApplicationController end def themes - data = YAML.load_file(Rails.root.join('config/admins', 'page_themes.yml')) - render_ok({themes:data[theme_params.downcase]}) + # data = YAML.load_file(Rails.root.join('config/admins', 'page_themes.yml')) + # render_ok({themes:data[theme_params.downcase]}) + data = PageTheme.where(language_frame:theme_params).order(order_index: :asc) + render_ok ({themes:data}) end private diff --git a/app/models/page_theme.rb b/app/models/page_theme.rb index 337346220..7128edfa3 100644 --- a/app/models/page_theme.rb +++ b/app/models/page_theme.rb @@ -15,4 +15,16 @@ class PageTheme < ApplicationRecord enum language_frame: { hugo: 0, jeklly: 1, hexo: 2} validates :name, presence: {message: "主题名不能为空"}, uniqueness: {message: "主题名已存在",scope: :language_frame} + + + def image + image_url('image') + end + private + + def image_url(type) + return nil unless Util::FileManage.exists?(self, type) + Util::FileManage.source_disk_file_url(self, type) + end + end diff --git a/app/views/admins/page_themes/_form_modal.html.erb b/app/views/admins/page_themes/_form_modal.html.erb index 5e12fc403..ad3ea7592 100644 --- a/app/views/admins/page_themes/_form_modal.html.erb +++ b/app/views/admins/page_themes/_form_modal.html.erb @@ -38,16 +38,15 @@ <%= p.number_field :order_index, class: "form-control",placeholder: ""%>
    - <% logo_img = @page_theme.image_url %> + <% logo_img = @page_theme.image %>
    - <%= file_field_tag(:image_url, accept: 'image/png,image/jpg,image/jpeg',style: "display: none", value: params[:image]) %> - + <%= file_field_tag(:image, accept: 'image/png,image/jpg,image/jpeg',style: "display: none", value: params[:image]) %> +
    -
    +
    logo
    格式:PNG、JPG
    -
    尺寸:高度38px以内,宽等比例缩放
    diff --git a/app/views/admins/page_themes/_list.html.erb b/app/views/admins/page_themes/_list.html.erb index 98aac6072..be4abd92a 100644 --- a/app/views/admins/page_themes/_list.html.erb +++ b/app/views/admins/page_themes/_list.html.erb @@ -11,16 +11,16 @@ <% if page_themes.present? %> - <% page_themes.each_with_index do |banner, index| %> - + <% page_themes.each_with_index do |theme, index| %> + <%= list_index_no((params[:page] || 1).to_i, index) %> - <%= banner.language_frame %> - <%= banner.name %> - - <%= banner.clone_url %> + <%= theme.language_frame %> + <%= theme.name %> + + <%= theme.clone_url %> - <%= link_to "编辑", edit_admins_page_theme_path(banner), remote: true, class: "action" %> - <%= link_to "删除", admins_page_theme_path(banner), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> + <%= link_to "编辑", edit_admins_page_theme_path(theme), remote: true, class: "action" %> + <%= link_to "删除", admins_page_theme_path(theme), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> <% end %> From 3dacc83e4ad945396eac7251c9690aa52418241b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 15:05:47 +0800 Subject: [PATCH 09/24] fix --- app/controllers/admins/page_themes_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/admins/page_themes_controller.rb b/app/controllers/admins/page_themes_controller.rb index c1dceaf38..98709b4f7 100644 --- a/app/controllers/admins/page_themes_controller.rb +++ b/app/controllers/admins/page_themes_controller.rb @@ -19,7 +19,6 @@ class Admins::PageThemesController < Admins::BaseController def create @page_theme = PageTheme.new update_params - binding.pry if @page_theme.save save_image_file(params[:image]) redirect_to admins_page_themes_path From 31bb2502b85ecdf740bf3332d7e44b9730fe8599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B1=E5=91=B1=E5=91=B1?= Date: Thu, 24 Aug 2023 16:03:40 +0800 Subject: [PATCH 10/24] themes image fix --- app/controllers/admins/page_themes_controller.rb | 16 +++++++++++----- app/controllers/site_pages_controller.rb | 3 +-- app/models/page_theme.rb | 4 ++-- .../admins/page_themes/_form_modal.html.erb | 2 +- app/views/site_pages/themes.json.jbuilder | 10 ++++++++++ 5 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 app/views/site_pages/themes.json.jbuilder diff --git a/app/controllers/admins/page_themes_controller.rb b/app/controllers/admins/page_themes_controller.rb index 98709b4f7..5e211ab55 100644 --- a/app/controllers/admins/page_themes_controller.rb +++ b/app/controllers/admins/page_themes_controller.rb @@ -18,7 +18,7 @@ class Admins::PageThemesController < Admins::BaseController end def create - @page_theme = PageTheme.new update_params + @page_theme = PageTheme.new theme_params if @page_theme.save save_image_file(params[:image]) redirect_to admins_page_themes_path @@ -44,9 +44,15 @@ class Admins::PageThemesController < Admins::BaseController end def update - @page_theme.update(update_params) - flash[:success] = '保存成功' - render 'edit' + @page_theme.attributes = theme_params + if @page_theme.save + save_image_file(params[:image]) + redirect_to admins_page_themes_path + flash[:success] = "更新成功" + else + redirect_to admins_page_themes_path + flash[:danger] = "更新失败" + end end private @@ -54,7 +60,7 @@ class Admins::PageThemesController < Admins::BaseController @page_theme = PageTheme.find(params[:id]) end - def update_params + def theme_params params.require(:page_theme).permit(:language_frame, :name, :cate, :image_url, :clone_url) end diff --git a/app/controllers/site_pages_controller.rb b/app/controllers/site_pages_controller.rb index 4d6e6510c..4dda0ca0e 100644 --- a/app/controllers/site_pages_controller.rb +++ b/app/controllers/site_pages_controller.rb @@ -56,8 +56,7 @@ class SitePagesController < ApplicationController def themes # data = YAML.load_file(Rails.root.join('config/admins', 'page_themes.yml')) # render_ok({themes:data[theme_params.downcase]}) - data = PageTheme.where(language_frame:theme_params).order(order_index: :asc) - render_ok ({themes:data}) + @themes = PageTheme.where(language_frame:theme_params).order(order_index: :asc) end private diff --git a/app/models/page_theme.rb b/app/models/page_theme.rb index 7128edfa3..d4fa18327 100644 --- a/app/models/page_theme.rb +++ b/app/models/page_theme.rb @@ -18,11 +18,11 @@ class PageTheme < ApplicationRecord def image - image_url('image') + page_image_url('image') end private - def image_url(type) + def page_image_url(type) return nil unless Util::FileManage.exists?(self, type) Util::FileManage.source_disk_file_url(self, type) end diff --git a/app/views/admins/page_themes/_form_modal.html.erb b/app/views/admins/page_themes/_form_modal.html.erb index ad3ea7592..eb3dd6742 100644 --- a/app/views/admins/page_themes/_form_modal.html.erb +++ b/app/views/admins/page_themes/_form_modal.html.erb @@ -7,7 +7,7 @@
    - <%= simple_form_for(@page_theme, url: admins_page_themes_path(@page_theme)) do |p| %> + <%= form_for @page_theme, url: {controller: "page_themes", action: "#{type}"}, html: { enctype: 'multipart/form-data' } do |p| %>