# -*- encoding : utf-8 -*-
class GloballinksController < ApplicationController


  access_control do
    actions :list do
      allow :admin
    end
    actions :index do
      allow anonymous, logged_in
    end
  end

  def index
    @countries = Country.where("counter > ?", 0)
    # @layers = Layer.find_all_by_public(true)
    @layers = Layer.find(:all)

    if ( params[:map_id] )
      @map = Map.find(params[:map_id])
    end
    @maps = Map.find_all_by_public(true)

    if current_user
      @placemarks = Placemark.find(:all,  :order => "updated_at ASC", :conditions => ["layer_id IN (?)", @layers])
    else
      @placemarks = Placemark.find(:all,  :order => "updated_at ASC", :conditions => ["layer_id IN (?) and public = ?", @layers, true])
    end
    @globallinks = GlobalLink.all
    gls = {}
    @globallinks.group_by(&:map).each do |map, globallinks|
        gls[map.title] = []

        if !@map || @map.id == map.id
          globallinks.each do |g|
            # {"title":"Namibia","counter":2,"lat":-22.95764,"lon":18.49041,"distance":8544.0}
            gls[map.title] << {
                map_id: map.id,
                map_title: map.title,
                map_color: map.color,
                id: g.id,
                title: g.title,
                counter: g.counter,
                lat: g.lat,
                lon: g.lon,
                distance: g.distance

            }
          end
        end
    end


    respond_to do |format|
      format.json { render json: gls.to_json }
      format.html
    end


  end

  def list

    # TODO: admins only!


    @countries = Country.all
    @maps = Map.find_all_by_public(true)
    @globallinks = GlobalLink.all

    gls = {maps: []}
    @globallinks.group_by(&:map).each do |map, globallinks|
      gls[:maps] << {
        id: map.id,
        title: map.title,
        globallinks: globallinks
      }
    end
    # results.to_json

    respond_to do |format|
      format.json { render json: @globallinks }
      format.html
    end


  end

  def show
  end
end
