In general, we always use relative URLs (using `_path`), but sometimes we were accidentally using absolute URLs (using `_url`). It's been reported i might cause some isuses if accepting both HTTP and HTTPS connections, although we've never seen the case. In any case, this change makes the code more consistent and makes the generated HTML cleaner.
75 lines
1.7 KiB
Ruby
75 lines
1.7 KiB
Ruby
class Admin::Widget::CardsController < Admin::BaseController
|
|
include Translatable
|
|
include ImageAttributes
|
|
|
|
def new
|
|
if header_card?
|
|
@card = ::Widget::Card.new(header: header_card?)
|
|
else
|
|
@card = ::Widget::Card.new(site_customization_page_id: params[:page_id])
|
|
end
|
|
end
|
|
|
|
def create
|
|
@card = ::Widget::Card.new(card_params)
|
|
if @card.save
|
|
redirect_to_customization_page_cards_or_homepage
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def edit
|
|
@card = ::Widget::Card.find(params[:id])
|
|
end
|
|
|
|
def update
|
|
@card = ::Widget::Card.find(params[:id])
|
|
if @card.update(card_params)
|
|
redirect_to_customization_page_cards_or_homepage
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@card = ::Widget::Card.find(params[:id])
|
|
@card.destroy
|
|
|
|
redirect_to_customization_page_cards_or_homepage
|
|
end
|
|
|
|
private
|
|
|
|
def card_params
|
|
params.require(:widget_card).permit(
|
|
:link_url, :button_text, :button_url, :alignment, :header, :site_customization_page_id,
|
|
:columns,
|
|
translation_params(Widget::Card),
|
|
image_attributes: image_attributes
|
|
)
|
|
end
|
|
|
|
def header_card?
|
|
params[:header_card].present?
|
|
end
|
|
|
|
def redirect_to_customization_page_cards_or_homepage
|
|
notice = t("admin.site_customization.pages.cards.#{params[:action]}.notice")
|
|
|
|
if @card.site_customization_page_id
|
|
redirect_to admin_site_customization_page_cards_path(page), notice: notice
|
|
else
|
|
redirect_to admin_homepage_path, notice: notice
|
|
end
|
|
end
|
|
|
|
def page
|
|
::SiteCustomization::Page.find(@card.site_customization_page_id)
|
|
end
|
|
|
|
def resource
|
|
Widget::Card.find(params[:id])
|
|
end
|
|
end
|