lib/integral.rb in integral-1.5.1 vs lib/integral.rb in integral-2.0.0

- old
+ new

@@ -1,36 +1,46 @@ require 'devise' require 'devise_invitable' require 'integral/version' require 'integral/router' -require 'integral/middleware/page_router' +require 'integral/middleware/alias_router' require 'integral/engine' -require 'integral/button_link_renderer' require 'integral/google_tag_manager' -require 'integral/foundation_builder' require 'integral/grids/activities_grid' +require 'integral/grids/block_lists_grid' require 'integral/grids/pages_grid' require 'integral/grids/users_grid' require 'integral/grids/lists_grid' require 'integral/grids/posts_grid' -require 'integral/grids/images_grid' +require 'integral/grids/files_grid' require 'integral/acts_as_listable' require 'integral/acts_as_integral' -require 'integral/widgets/recent_posts' -require 'integral/widgets/swiper_list' -require 'integral/content_renderer' require 'integral/list_renderer' require 'integral/swiper_list_renderer' require 'integral/list_item_renderer' require 'integral/partial_list_item_renderer' require 'integral/chart_renderer/base' require 'integral/chart_renderer/donut' require 'integral/chart_renderer/line' +require 'integral/breadcrumb_builder' +require 'integral/bootstrap_pagination_renderer' +require 'integral/bootstrap_pagination_button_renderer' # Integral module Integral + ROOT_PATH = Pathname.new(File.join(__dir__, "..")) + + class << self + def webpacker + @webpacker ||= ::Webpacker::Instance.new( + root_path: ROOT_PATH, + config_path: ROOT_PATH.join("config/webpacker.yml") + ) + end + end + # Enables engine configuration def self.configure yield(self) end @@ -38,15 +48,15 @@ @@backend_namespace = 'admin' mattr_accessor :backend_locales @@backend_locales = [:en] - mattr_accessor :additional_settings_params - @@additional_settings_params = [] + mattr_accessor :frontend_locales + @@frontend_locales = [:en] - mattr_accessor :additional_widgets - @@additional_widgets = [] + mattr_accessor :additional_settings + @@additional_settings = {} mattr_accessor :additional_post_params @@additional_post_params = [] mattr_accessor :additional_page_params @@ -68,31 +78,31 @@ @@root_path = nil mattr_accessor :frontend_parent_controller @@frontend_parent_controller = 'Integral::ApplicationController' - mattr_accessor :editor_image_size_limit - @@editor_image_size_limit = [1600, 1600] + mattr_accessor :image_sizes + @@image_sizes = { + thumbnail: [50, 50], + small: [500, 500], + medium: [800, 800], + large: [1600, 1600] + } - mattr_accessor :image_thumbnail_size - @@image_thumbnail_size = [50, 50] + mattr_accessor :image_transformation_options + @@image_transformation_options = { + format: :jpeg, + sampling_factor: "4:2:0", + strip: true, + interlace: "JPEG", + colorspace: "sRGB", + quality: 80 + } - mattr_accessor :image_small_size - @@image_small_size = [500, 500] - - mattr_accessor :image_medium_size - @@image_medium_size = [800, 800] - - mattr_accessor :image_large_size - @@image_large_size = [1600, 1600] - mattr_accessor :additional_page_templates @@additional_page_templates = [] - mattr_accessor :additional_tracked_classes - @@additional_tracked_classes = [] - mattr_accessor :compression_enabled @@compression_enabled = true mattr_accessor :image_compression_quality @@image_compression_quality = 85 @@ -109,9 +119,20 @@ mattr_accessor :title_length_maximum @@title_length_maximum = 60 mattr_accessor :title_length_minimum @@title_length_minimum = 4 + + mattr_accessor :accepted_file_types + @@accepted_file_types = ['application/pdf', 'image/*', 'video/*'] + + mattr_accessor :maximum_file_size + @@maximum_file_size = 104857600 # 100MB + + # @return [Boolean] Whether or not the frontend is multilingual + def self.multilingual_frontend? + Integral.frontend_locales.count > 1 + end # @return [Boolean] Shortcut to find out if blog is enabled def self.blog_enabled? Integral.blog_enabled == true end