add custom field feature and fix some error

This commit is contained in:
chiu committed 2020-03-21 23:36:33 +08:00
1 parent 262a78f602
commit f3bd5f4941
17 files changed
+1116 -65

No files matched your search

+45 -4
View File
@@ -1,9 +1,12 @@
# encoding: utf-8
class Admin::AsksController < OrbitAdminController
include Admin::AsksHelper
helper Admin::AsksHelper
before_action ->(module_app = @app_title) { set_variables module_app }
before_action :set_askquestion, only: [:edit, :destroy, :update]
layout :compute_layout
def compute_layout
'back_end_with_jquery_first'
end
def initialize
super
@app_title = "ask"
@@ -26,7 +29,24 @@ class Admin::AsksController < OrbitAdminController
params[:filters][:identity].blank? ? [] : params[:filters][:identity] rescue []
end
end
def setting_save
ask_setting = AskSetting.first
p1 = ask_setting_params
ask_setting.update_attributes(p1)
redirect_to '/admin/asks'
end
def setting
@ask_setting = AskSetting.first
@ask_setting = AskSetting.create() if @ask_setting.nil?
@url = setting_save_admin_asks_path
end
def get_new_setting_index
ask_setting_index = AskSettingIndex.first
ask_setting_index = AskSettingIndex.create() if ask_setting_index.nil?
ask_setting_index.key = ask_setting_index.key + 1
ask_setting_index.save
render :json => {key: ask_setting_index.key.to_i}
end
def index
@tags = @module_app.tags
@categories = @module_app.categories
@@ -74,7 +94,8 @@ class Admin::AsksController < OrbitAdminController
end
def update
@ask_question.update_attributes(params.require(:ask_question).permit!)
ask_question_param = params.require(:ask_question).permit!
@ask_question.update_attributes(ask_question_param)
if @ask_question.send_email?
build_email(@ask_question)
end
@@ -149,4 +170,24 @@ class Admin::AsksController < OrbitAdminController
def set_askquestion
@ask_question = AskQuestion.find(params[:id])
end
private
def ask_setting_params
param = params.require('ask_setting').permit!
param_clone = param.clone
param_clone['default_setting'].each { |k, v| param_clone['default_setting'][k] = (v == 'true'? true : false) }
param_clone.delete('custom_fields')
ask_setting = AskSetting.first
custom_fields = ask_setting['custom_fields'].clone
params_custom_fields = (params.require('ask_setting').require('custom_fields') rescue {})
params_custom_fields.each do |k,v|
custom_fields[k] = v
end
field_to_delete = params['delete_field'].to_s.split(',').select{|v| !v.empty?}
field_to_delete.each do |k|
if custom_fields.keys.include? k
custom_fields[k]['delete'] = true
end
end
param_clone.merge({custom_fields: custom_fields})
end
end