add custom field feature and fix some error
This commit is contained in:
1 parent
262a78f602
commit
f3bd5f4941
17 files changed
+1116
-65
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user