87 lines
2.1 KiB
Ruby
87 lines
2.1 KiB
Ruby
|
class Admin::LinksController < Admin::ItemsController
|
||
|
|
||
|
|
||
|
def new
|
||
|
@item = Link.new
|
||
|
@item.parent = Page.find(params[:parent_id]) rescue nil
|
||
|
render layout: false
|
||
|
end
|
||
|
|
||
|
def edit
|
||
|
@item = Link.find(params[:id])
|
||
|
render layout: false
|
||
|
end
|
||
|
|
||
|
def create
|
||
|
@item = Link.new(params[:link])
|
||
|
if @item.save
|
||
|
render 'admin/items/reload_items'
|
||
|
else
|
||
|
@error = error_messages_for(@item)
|
||
|
render 'admin/items/form_error'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def update
|
||
|
@item = Link.find(params[:id])
|
||
|
if @item.update_attributes(params[:link])
|
||
|
render 'admin/items/reload_items'
|
||
|
else
|
||
|
@error = error_messages_for(@item)
|
||
|
render 'admin/items/form_error'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def get_link_setting_json
|
||
|
begin
|
||
|
link = Link.find(params[:id])
|
||
|
m = {}
|
||
|
m["public"] = link.is_published ? 1 : 0
|
||
|
m["link"] = @site_in_use_locales.inject([]) do |result, locale|
|
||
|
result << [locale, (link.enabled_for && link.enabled_for.include?(locale)) ? 1 : 0, (link.menu_enabled_for && link.menu_enabled_for[locale].eql?("true")) ? 1 :0]
|
||
|
end
|
||
|
render json: JSON.pretty_generate(m)
|
||
|
rescue
|
||
|
render :json => {error: ''}, status: 422
|
||
|
end
|
||
|
end
|
||
|
|
||
|
protected
|
||
|
|
||
|
def check_valid_url
|
||
|
if @item.errors.include?(:url) && !@item.errors.added?(:url, :blank) && @item.errors.added?(:url, :invalid)
|
||
|
begin
|
||
|
url = @item.url
|
||
|
url.gsub!('http://', '').slice!(/^\//)
|
||
|
path = Rails.application.routes.recognize_path(url)
|
||
|
if path.has_key?(:page_name)
|
||
|
if Page.where(path: path[:page_name]).first
|
||
|
new_url = "#{request.base_url}/#{url}"
|
||
|
else
|
||
|
success = false
|
||
|
end
|
||
|
else
|
||
|
new_url = "#{request.base_url}/#{url}"
|
||
|
end
|
||
|
if @item.errors.count == 1
|
||
|
@item.url = new_url
|
||
|
if @item.save
|
||
|
success = true
|
||
|
else
|
||
|
success = false
|
||
|
end
|
||
|
else
|
||
|
@item.url = new_url
|
||
|
success = false
|
||
|
end unless success == false
|
||
|
rescue
|
||
|
success = false
|
||
|
end
|
||
|
else
|
||
|
success = false
|
||
|
end
|
||
|
success
|
||
|
end
|
||
|
|
||
|
end
|