Sha256: 92ec0ed937c83458078268a1f68794e63119ebe1fd335e28bcfc4bc4de4205b6

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

module RedmineExtensions
  module ApplicationControllerPatch

    def self.included(base)
      base.extend(ClassMethods)
      base.send(:include, InstanceMethods)

      base.class_eval do
        helper_method :easy_extensions?
      end
    end

    module InstanceMethods

      def index_for_easy_query(query_klass, *)
        @query = query_klass.new(name: '_')
        @query.project = @project
        @query.build_from_params(params)

        sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
        sort_update(@query.sortable_columns)

        @entities = @query.entities
      end

      def easy_extensions?
        self.class.easy_extensions?
      end

      private

        def save_easy_settings(project = nil)
          if params[:easy_setting].is_a?(Hash) || params[:easy_setting].is_a?(ActionController::Parameters)
            wrapper = EasySettings::ParamsWrapper.from_params(params.delete(:easy_setting), project: project)
            wrapper.save
            wrapper
          end
        end

    end

    module ClassMethods

      def easy_extensions?
        Redmine::Plugin.installed?(:easy_extensions)
      end

      def include_query_helpers
        if easy_extensions?
          helper :easy_query
          include EasyQueryHelper
        else
          helper :queries
          include QueriesHelper
        end

        helper :sort
        include SortHelper
      end

    end

  end
end
RedmineExtensions::PatchManager.register_controller_patch 'ApplicationController', 'RedmineExtensions::ApplicationControllerPatch'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
redmine_extensions-0.2.0 lib/redmine_extensions/redmine_patches/controllers/application_controller_patch.rb