class Admin::SiteCustomizationsController < Admin::AdminController before_filter :enable_customization skip_before_filter :check_xhr, only: [:show] def index @site_customizations = SiteCustomization.order(:name) respond_to do |format| format.json { render json: @site_customizations } end end def create @site_customization = SiteCustomization.new(site_customization_params) @site_customization.user_id = current_user.id respond_to do |format| if @site_customization.save log_site_customization_change(nil, site_customization_params) format.json { render json: @site_customization, status: :created} else format.json { render json: @site_customization.errors, status: :unprocessable_entity } end end end def update @site_customization = SiteCustomization.find(params[:id]) log_record = log_site_customization_change(@site_customization, site_customization_params) respond_to do |format| if @site_customization.update_attributes(site_customization_params) format.json { render json: @site_customization, status: :created} else log_record.destroy if log_record format.json { render json: @site_customization.errors, status: :unprocessable_entity } end end end def destroy @site_customization = SiteCustomization.find(params[:id]) StaffActionLogger.new(current_user).log_site_customization_destroy(@site_customization) @site_customization.destroy respond_to do |format| format.json { head :no_content } end end def show @site_customization = SiteCustomization.find(params[:id]) respond_to do |format| format.json do check_xhr render json: SiteCustomizationSerializer.new(@site_customization) end format.any(:html, :text) do raise RenderEmpty.new if request.xhr? response.headers['Content-Disposition'] = "attachment; filename=#{@site_customization.name.parameterize}.dcstyle.json" response.sending_file = true render json: SiteCustomizationSerializer.new(@site_customization) end end end private def site_customization_params params.require(:site_customization) .permit(:name, :stylesheet, :header, :top, :footer, :mobile_stylesheet, :mobile_header, :mobile_top, :mobile_footer, :head_tag, :body_tag, :position, :enabled, :key, :stylesheet_baked, :embedded_css) end def log_site_customization_change(old_record, new_params) StaffActionLogger.new(current_user).log_site_customization_change(old_record, new_params) end def enable_customization session[:disable_customization] = false end end