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 %>