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
|
||||
@@ -1,4 +1,5 @@
|
||||
class AsksController < ApplicationController
|
||||
helper Admin::AsksHelper
|
||||
def initialize
|
||||
super
|
||||
@app_title = 'ask'
|
||||
@@ -6,7 +7,8 @@ class AsksController < ApplicationController
|
||||
|
||||
def index
|
||||
module_app = ModuleApp.where(:key => "ask").first
|
||||
categories = module_app.categories
|
||||
categories = Array(Category.find(OrbitHelper.page_categories)) rescue ['all']
|
||||
categories = module_app.categories if categories.include? 'all'
|
||||
tags = module_app.tags
|
||||
ask_question = AskQuestion.new
|
||||
{
|
||||
@@ -19,7 +21,7 @@ class AsksController < ApplicationController
|
||||
|
||||
def create
|
||||
@ask_question = AskQuestion.new(create_params)
|
||||
if gotcha_valid? && @ask_question.save
|
||||
if (gotcha_valid? || !AskSetting.first.default_setting['recaptcha'])&& @ask_question.save
|
||||
build_email(@ask_question)
|
||||
redirect_to "#{params[:referer_url]}/?method=thank"
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user