Sha256: 869740acf078814acf97141788fc79a9a0fc2248e7798884a8cb34fb7393191f

Contents?: true

Size: 1.9 KB

Versions: 5

Compression:

Stored size: 1.9 KB

Contents

module Lit
  class LocalizationKeysController < ApplicationController
    before_filter :get_localization_scope, :except=>[:destroy]

    def index
      get_localization_keys
    end

    def starred
      @scope = @scope.where(:is_starred=>true)

      if @scope.respond_to?(:page)
        @scope = @scope.page(params[:page])
      end
      get_localization_keys
      render :action=>:index
    end

    def star
      @localization_key = LocalizationKey.find params[:id]
      @localization_key.is_starred = ! @localization_key.is_starred?
      @localization_key.save
      respond_to :js
    end

    def destroy
      @localization_key = LocalizationKey.find params[:id]
      @localization_key.destroy
      I18n.backend.available_locales.each do |l|
        Lit.init.cache.delete_key "#{l}.#{@localization_key.localization_key}"
      end
      respond_to :js
    end

    private
      def get_localization_scope
        @search_options = params.slice(*valid_keys)
        @search_options[:include_completed] = '1' if @search_options.empty?
        @scope = LocalizationKey.uniq.search(@search_options)
      end

      def get_localization_keys
        key_parts = if @search_options[:key_prefix].present?
                       key_parts = @search_options[:key_prefix].split('.').length
                      else
                       0
                      end
        @prefixes = @scope.uniq.pluck(:localization_key).map{|lk| lk.split('.').shift(key_parts+1).join('.') }.uniq.sort
        if @search_options[:key_prefix].present?
          parts = @search_options[:key_prefix].split('.')
          @parent_prefix = parts[0,parts.length-1].join('.')
        end
        if @scope.respond_to?(:page)
          @localization_keys = @scope.page(params[:page])
        else
          @localization_keys = @scope.all
        end
      end

      def valid_keys
        %w( key include_completed key_prefix )
      end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lit-0.0.4.2 app/controllers/lit/localization_keys_controller.rb
lit-0.0.4.1 app/controllers/lit/localization_keys_controller.rb
lit-0.0.4 app/controllers/lit/localization_keys_controller.rb
lit-0.0.3.1 app/controllers/lit/localization_keys_controller.rb
lit-0.0.3 app/controllers/lit/localization_keys_controller.rb