Fix link in structure when the item is a link
Add internal links creation
This commit is contained in:
1 parent
c85629d3b3
commit
74b2bbf4b7
3 files changed
+55
-4
No files matched your search
@@ -18,7 +18,12 @@ class Admin::LinksController < Admin::ItemsController
|
||||
def create
|
||||
@item = Link.new(params[:link])
|
||||
|
||||
if @item.save
|
||||
if @item.save(params[:link])
|
||||
success = true
|
||||
else
|
||||
success = check_valid_url
|
||||
end
|
||||
if success
|
||||
flash.now[:notice] = t('create.success.link')
|
||||
respond_to do |format|
|
||||
format.js { render 'admin/items/reload_items' }
|
||||
@@ -33,6 +38,11 @@ class Admin::LinksController < Admin::ItemsController
|
||||
@item = Link.find(params[:id])
|
||||
|
||||
if @item.update_attributes(params[:link])
|
||||
success = true
|
||||
else
|
||||
success = check_valid_url
|
||||
end
|
||||
if success
|
||||
flash.now[:notice] = t('update.success.link')
|
||||
respond_to do |format|
|
||||
format.js { render 'admin/items/reload_items' }
|
||||
@@ -42,5 +52,42 @@ class Admin::LinksController < Admin::ItemsController
|
||||
render :action => "edit"
|
||||
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
|
||||
Reference in new issue
Block a user