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
