effective_posts 0.6.4 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/app/assets/config/effective_posts_manifest.js +2 -0
- data/app/assets/javascripts/effective_posts.js +1 -1
- data/app/controllers/admin/posts_controller.rb +4 -9
- data/app/controllers/effective/posts_controller.rb +7 -11
- data/app/datatables/effective_posts_datatable.rb +23 -25
- data/app/mailers/effective/posts_mailer.rb +7 -24
- data/app/models/effective/post.rb +5 -17
- data/config/effective_posts.rb +12 -47
- data/lib/effective_posts/engine.rb +5 -2
- data/lib/effective_posts/version.rb +1 -1
- data/lib/effective_posts.rb +14 -28
- metadata +14 -17
- data/app/assets/javascripts/effective/snippets/read_more_divider.js.coffee +0 -22
- data/app/models/effective/access_denied.rb +0 -17
- data/app/models/effective/datatables/posts.rb +0 -39
- data/app/models/effective/snippets/read_more_divider.rb +0 -12
- /data/app/assets/javascripts/{effective_pages → effective_posts}/additional_fields.js.coffee +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5105b8f4cd7c534450c0e096d48411dae0376e38cc9a18ddd2c15a2a672ee2ab
         | 
| 4 | 
            +
              data.tar.gz: e84688eb0d998f84a99bd04694999893326a15973f17f3bf8e75f2ca6b96ad07
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: fc6d24ab9e3e7fdacb225d0fce839b3eca60c5ad5a4b7c990898e5063275e32075bf3e5d636ed58888349a38adb4b296590511dd152a97dc8b6eaf20eafdd20d
         | 
| 7 | 
            +
              data.tar.gz: 124ae97fb1073610667bc5a35b345b46edc95c9635baa53f23dd01beff4f5693ada7be3fc2446f9de602ced9f8179d41fd5d8179739a5f716e77d4e6c58501ae
         | 
    
        data/MIT-LICENSE
    CHANGED
    
    
| @@ -1 +1 @@ | |
| 1 | 
            -
            //= require  | 
| 1 | 
            +
            //= require effective_posts/additional_fields
         | 
| @@ -6,12 +6,7 @@ module Admin | |
| 6 6 |  | 
| 7 7 | 
             
                def index
         | 
| 8 8 | 
             
                  @page_title = 'Posts'
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  if Gem::Version.new(EffectiveDatatables::VERSION) < Gem::Version.new('3.0')
         | 
| 11 | 
            -
                    @datatable = Effective::Datatables::Posts.new()
         | 
| 12 | 
            -
                  else
         | 
| 13 | 
            -
                    @datatable = EffectivePostsDatatable.new(self)
         | 
| 14 | 
            -
                  end
         | 
| 9 | 
            +
                  @datatable = EffectivePostsDatatable.new(self)
         | 
| 15 10 |  | 
| 16 11 | 
             
                  authorize_effective_posts!
         | 
| 17 12 | 
             
                end
         | 
| @@ -126,12 +121,12 @@ module Admin | |
| 126 121 | 
             
                private
         | 
| 127 122 |  | 
| 128 123 | 
             
                def authorize_effective_posts!
         | 
| 129 | 
            -
                   | 
| 130 | 
            -
                   | 
| 124 | 
            +
                  EffectiveResources.authorize!(self, :admin, :effective_posts)
         | 
| 125 | 
            +
                  EffectiveResources.authorize!(self, action_name.to_sym, @post || Effective::Post)
         | 
| 131 126 | 
             
                end
         | 
| 132 127 |  | 
| 133 128 | 
             
                def post_params
         | 
| 134 | 
            -
                  params.require(:effective_post).permit | 
| 129 | 
            +
                  params.require(:effective_post).permit!
         | 
| 135 130 | 
             
                end
         | 
| 136 131 |  | 
| 137 132 | 
             
              end
         | 
| @@ -20,7 +20,7 @@ module Effective | |
| 20 20 | 
             
                    @posts = @posts.where(search) if search.present?
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                   | 
| 23 | 
            +
                  EffectiveResources.authorize!(self, :index, Effective::Post)
         | 
| 24 24 |  | 
| 25 25 | 
             
                  @page_title = (params[:page_title] || params[:category] || params[:defaults].try(:[], :category) || 'Posts').titleize
         | 
| 26 26 | 
             
                end
         | 
| @@ -29,11 +29,7 @@ module Effective | |
| 29 29 | 
             
                  @posts ||= Effective::Post.posts(user: current_user, category: params[:category], drafts: (params[:edit].to_s == 'true' || params[:preview].to_s == 'true'))
         | 
| 30 30 | 
             
                  @post = @posts.find(params[:id])
         | 
| 31 31 |  | 
| 32 | 
            -
                   | 
| 33 | 
            -
                    raise Effective::AccessDenied unless @post.roles_permit?(current_user)
         | 
| 34 | 
            -
                  end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                  EffectivePosts.authorized?(self, :show, @post)
         | 
| 32 | 
            +
                  EffectiveResources.authorize!(self, :show, @post)
         | 
| 37 33 |  | 
| 38 34 | 
             
                  @page_title = @post.title
         | 
| 39 35 | 
             
                end
         | 
| @@ -43,7 +39,7 @@ module Effective | |
| 43 39 | 
             
                  @post ||= Effective::Post.new(published_at: Time.zone.now)
         | 
| 44 40 | 
             
                  @page_title = 'New Post'
         | 
| 45 41 |  | 
| 46 | 
            -
                   | 
| 42 | 
            +
                  EffectiveResources.authorize!(self, :new, @post)
         | 
| 47 43 | 
             
                end
         | 
| 48 44 |  | 
| 49 45 | 
             
                def create
         | 
| @@ -51,7 +47,7 @@ module Effective | |
| 51 47 | 
             
                  @post.user = current_user if defined?(current_user)
         | 
| 52 48 | 
             
                  @post.draft = (EffectivePosts.submissions_require_approval == true)
         | 
| 53 49 |  | 
| 54 | 
            -
                   | 
| 50 | 
            +
                  EffectiveResources.authorize!(self, :create, @post)
         | 
| 55 51 |  | 
| 56 52 | 
             
                  if @post.save
         | 
| 57 53 | 
             
                    @page_title ||= 'Post Submitted'
         | 
| @@ -73,7 +69,7 @@ module Effective | |
| 73 69 | 
             
                  @post ||= Effective::Post.find(params[:id])
         | 
| 74 70 | 
             
                  @page_title ||= 'Edit Post'
         | 
| 75 71 |  | 
| 76 | 
            -
                   | 
| 72 | 
            +
                  EffectiveResources.authorize!(self, :edit, @post)
         | 
| 77 73 | 
             
                end
         | 
| 78 74 |  | 
| 79 75 | 
             
                def update
         | 
| @@ -81,7 +77,7 @@ module Effective | |
| 81 77 | 
             
                  draft_was = @post.draft
         | 
| 82 78 | 
             
                  @post.draft = (EffectivePosts.submissions_require_approval == true)
         | 
| 83 79 |  | 
| 84 | 
            -
                   | 
| 80 | 
            +
                  EffectiveResources.authorize!(self, :update, @post)
         | 
| 85 81 |  | 
| 86 82 | 
             
                  if @post.update(post_params)
         | 
| 87 83 | 
             
                    @page_title ||= 'Post Submitted'
         | 
| @@ -102,7 +98,7 @@ module Effective | |
| 102 98 | 
             
                def destroy
         | 
| 103 99 | 
             
                  @post ||= Effective::Post.find(params[:id])
         | 
| 104 100 |  | 
| 105 | 
            -
                   | 
| 101 | 
            +
                  EffectiveResources.authorize!(self, :destroy, @post)
         | 
| 106 102 |  | 
| 107 103 | 
             
                  if @post.destroy
         | 
| 108 104 | 
             
                    flash[:success] = 'Successfully deleted post'
         | 
| @@ -1,35 +1,33 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
               | 
| 3 | 
            -
                 | 
| 4 | 
            -
                  order :published_at, :desc
         | 
| 1 | 
            +
            class EffectivePostsDatatable < Effective::Datatable
         | 
| 2 | 
            +
              datatable do
         | 
| 3 | 
            +
                order :published_at, :desc
         | 
| 5 4 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 5 | 
            +
                col :published_at
         | 
| 6 | 
            +
                col :id, visible: false
         | 
| 8 7 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 8 | 
            +
                col :title
         | 
| 9 | 
            +
                col :category, search: { collection: EffectivePosts.categories }
         | 
| 11 10 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
                    end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                    col :draft, visible: false
         | 
| 18 | 
            -
                  else
         | 
| 19 | 
            -
                    col :draft
         | 
| 11 | 
            +
                if EffectivePosts.submissions_enabled
         | 
| 12 | 
            +
                  col :approved, sql_column: 'NOT(draft)', as: :boolean do |post|
         | 
| 13 | 
            +
                    post.draft? ? 'No' : 'Yes'
         | 
| 20 14 | 
             
                  end
         | 
| 21 15 |  | 
| 22 | 
            -
                  col : | 
| 23 | 
            -
             | 
| 24 | 
            -
                  col : | 
| 16 | 
            +
                  col :draft, visible: false
         | 
| 17 | 
            +
                else
         | 
| 18 | 
            +
                  col :draft
         | 
| 19 | 
            +
                end
         | 
| 25 20 |  | 
| 26 | 
            -
             | 
| 21 | 
            +
                col :start_at
         | 
| 22 | 
            +
                col :end_at, visible: false
         | 
| 23 | 
            +
                col :location, visible: false
         | 
| 27 24 |  | 
| 28 | 
            -
             | 
| 29 | 
            -
                end
         | 
| 25 | 
            +
                col :created_at, label: 'Submitted at', visible: false
         | 
| 30 26 |  | 
| 31 | 
            -
                 | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 27 | 
            +
                actions_col partial: '/admin/posts/actions', partial_as: :post
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              collection do
         | 
| 31 | 
            +
                Effective::Post.all
         | 
| 34 32 | 
             
              end
         | 
| 35 33 | 
             
            end
         | 
| @@ -1,34 +1,17 @@ | |
| 1 1 | 
             
            module Effective
         | 
| 2 | 
            -
              class PostsMailer <  | 
| 3 | 
            -
                 | 
| 2 | 
            +
              class PostsMailer < EffectivePosts.parent_mailer_class
         | 
| 3 | 
            +
                include EffectiveMailer
         | 
| 4 4 |  | 
| 5 | 
            -
                 | 
| 5 | 
            +
                helper EffectivePostsHelper
         | 
| 6 6 |  | 
| 7 | 
            -
                def post_submitted_to_admin(post_param)
         | 
| 7 | 
            +
                def post_submitted_to_admin(post_param, opts = {})
         | 
| 8 8 | 
             
                  @post = (post_param.kind_of?(Effective::Post) ? post_param : Effective::Post.find(post_param))
         | 
| 9 9 |  | 
| 10 | 
            -
                   | 
| 11 | 
            -
             | 
| 12 | 
            -
                    from: EffectivePosts.mailer[:default_from],
         | 
| 13 | 
            -
                    subject: subject_for_post_submitted_to_admin(@post)
         | 
| 14 | 
            -
                  )
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                private
         | 
| 10 | 
            +
                  subject = subject_for(__method__, 'Post Submitted', @post, opts)
         | 
| 11 | 
            +
                  headers = headers_for(resource, opts)
         | 
| 18 12 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
                  string_or_callable = EffectivePosts.mailer[:subject_for_post_submitted_to_admin]
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                  if string_or_callable.respond_to?(:call) # This is a Proc or a function, not a string
         | 
| 23 | 
            -
                    string_or_callable = self.instance_exec(post, &string_or_callable)
         | 
| 24 | 
            -
                  end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                  prefix_subject(string_or_callable.presence || "A new post has been submitted that needs approval")
         | 
| 13 | 
            +
                  mail(to: mailer_admin, subject: subject, **headers)
         | 
| 27 14 | 
             
                end
         | 
| 28 15 |  | 
| 29 | 
            -
                def prefix_subject(text)
         | 
| 30 | 
            -
                  prefix = (EffectivePosts.mailer[:subject_prefix].to_s rescue '')
         | 
| 31 | 
            -
                  prefix.present? ? (prefix.chomp(' ') + ' ' + text) : text
         | 
| 32 | 
            -
                end
         | 
| 33 16 | 
             
              end
         | 
| 34 17 | 
             
            end
         | 
| @@ -6,7 +6,7 @@ module Effective | |
| 6 6 |  | 
| 7 7 | 
             
                self.table_name = EffectivePosts.posts_table_name.to_s
         | 
| 8 8 |  | 
| 9 | 
            -
                belongs_to :user
         | 
| 9 | 
            +
                belongs_to :user, optional: true
         | 
| 10 10 |  | 
| 11 11 | 
             
                # Attributes
         | 
| 12 12 | 
             
                # title             :string
         | 
| @@ -35,8 +35,7 @@ module Effective | |
| 35 35 | 
             
                scope :published, -> { where(draft: false).where("#{EffectivePosts.posts_table_name}.published_at < ?", Time.zone.now) }
         | 
| 36 36 |  | 
| 37 37 | 
             
                scope :posts, -> (user: nil, category: nil, drafts: false) {
         | 
| 38 | 
            -
                  scope = ( | 
| 39 | 
            -
                  scope = scope.includes(:regions).order(published_at: :desc)
         | 
| 38 | 
            +
                  scope = includes(:regions).order(published_at: :desc)
         | 
| 40 39 |  | 
| 41 40 | 
             
                  if defined?(EffectiveAssets)
         | 
| 42 41 | 
             
                    scope = scope.includes(attachments: :asset)
         | 
| @@ -87,7 +86,7 @@ module Effective | |
| 87 86 | 
             
                end
         | 
| 88 87 |  | 
| 89 88 | 
             
                def send_post_submitted_to_admin!
         | 
| 90 | 
            -
                  send_email(:post_submitted_to_admin | 
| 89 | 
            +
                  send_email(:post_submitted_to_admin)
         | 
| 91 90 | 
             
                end
         | 
| 92 91 |  | 
| 93 92 | 
             
                # Returns a duplicated post object, or throws an exception
         | 
| @@ -110,19 +109,8 @@ module Effective | |
| 110 109 |  | 
| 111 110 | 
             
                private
         | 
| 112 111 |  | 
| 113 | 
            -
                def send_email(email | 
| 114 | 
            -
                   | 
| 115 | 
            -
                    if EffectivePosts.mailer[:delayed_job_deliver] && EffectivePosts.mailer[:deliver_method] == :deliver_later
         | 
| 116 | 
            -
                      Effective::PostsMailer.delay.public_send(email, *mailer_args)
         | 
| 117 | 
            -
                    elsif EffectivePosts.mailer[:deliver_method].present?
         | 
| 118 | 
            -
                      Effective::PostsMailer.public_send(email, *mailer_args).public_send(EffectivePosts.mailer[:deliver_method])
         | 
| 119 | 
            -
                    else
         | 
| 120 | 
            -
                      Effective::PostsMailer.public_send(email, *mailer_args).deliver_now
         | 
| 121 | 
            -
                    end
         | 
| 122 | 
            -
                  rescue => e
         | 
| 123 | 
            -
                    raise e unless Rails.env.production?
         | 
| 124 | 
            -
                    return false
         | 
| 125 | 
            -
                  end
         | 
| 112 | 
            +
                def send_email(email)
         | 
| 113 | 
            +
                  EffectivePosts.send_email(email, self)
         | 
| 126 114 | 
             
                end
         | 
| 127 115 |  | 
| 128 116 | 
             
              end
         | 
    
        data/config/effective_posts.rb
    CHANGED
    
    | @@ -22,30 +22,6 @@ EffectivePosts.setup do |config| | |
| 22 22 | 
             
              # The author is the user that created the Effective::Post object
         | 
| 23 23 | 
             
              config.post_meta_author = true
         | 
| 24 24 |  | 
| 25 | 
            -
              # Authorization Method
         | 
| 26 | 
            -
              #
         | 
| 27 | 
            -
              # This method is called by all controller actions with the appropriate action and resource
         | 
| 28 | 
            -
              # If the method returns false, an Effective::AccessDenied Error will be raised (see README.md for complete info)
         | 
| 29 | 
            -
              #
         | 
| 30 | 
            -
              # Use via Proc (and with CanCan):
         | 
| 31 | 
            -
              # config.authorization_method = Proc.new { |controller, action, resource| can?(action, resource) }
         | 
| 32 | 
            -
              #
         | 
| 33 | 
            -
              # Use via custom method:
         | 
| 34 | 
            -
              # config.authorization_method = :my_authorization_method
         | 
| 35 | 
            -
              #
         | 
| 36 | 
            -
              # And then in your application_controller.rb:
         | 
| 37 | 
            -
              #
         | 
| 38 | 
            -
              # def my_authorization_method(action, resource)
         | 
| 39 | 
            -
              #   current_user.is?(:admin)
         | 
| 40 | 
            -
              # end
         | 
| 41 | 
            -
              #
         | 
| 42 | 
            -
              # Or disable the check completely:
         | 
| 43 | 
            -
              # config.authorization_method = false
         | 
| 44 | 
            -
              config.authorization_method = Proc.new do |controller, action, resource|
         | 
| 45 | 
            -
                authorize!(action, resource)
         | 
| 46 | 
            -
                resource.respond_to?(:roles_permit?) ? resource.roles_permit?(current_user) : true
         | 
| 47 | 
            -
              end
         | 
| 48 | 
            -
             | 
| 49 25 | 
             
              # Layout Settings
         | 
| 50 26 | 
             
              # Configure the Layout per controller, or all at once
         | 
| 51 27 | 
             
              config.layout = {
         | 
| @@ -91,29 +67,18 @@ EffectivePosts.setup do |config| | |
| 91 67 | 
             
              config.submissions_note = "News & Event submitted! A confirmation email has been sent to the website owner. When approved, your submission will appear on the website."
         | 
| 92 68 |  | 
| 93 69 | 
             
              # Mailer Settings
         | 
| 94 | 
            -
              #  | 
| 95 | 
            -
              # For all the emails, the same :subject_prefix will be prefixed.  Leave as nil / empty string if you don't want any prefix
         | 
| 70 | 
            +
              # Please see config/initializers/effective_resources.rb for default effective_* gem mailer settings
         | 
| 96 71 | 
             
              #
         | 
| 97 | 
            -
              #  | 
| 98 | 
            -
              #  | 
| 99 | 
            -
              # | 
| 100 | 
            -
              #  | 
| 101 | 
            -
              # | 
| 102 | 
            -
             | 
| 103 | 
            -
              #  | 
| 104 | 
            -
              #  | 
| 105 | 
            -
             | 
| 106 | 
            -
              config. | 
| 107 | 
            -
             | 
| 108 | 
            -
                subject_for_post_submitted_to_admin: '',
         | 
| 109 | 
            -
             | 
| 110 | 
            -
                layout: 'effective_posts_mailer_layout',
         | 
| 111 | 
            -
             | 
| 112 | 
            -
                default_from: 'info@example.com',
         | 
| 113 | 
            -
                admin_email: 'admin@example.com',
         | 
| 114 | 
            -
             | 
| 115 | 
            -
                deliver_method: nil,   # :deliver (rails < 4.2), :deliver_now (rails >= 4.2) or :deliver_later
         | 
| 116 | 
            -
                delayed_job_deliver: false
         | 
| 117 | 
            -
              }
         | 
| 72 | 
            +
              # Configure the class responsible to send e-mails.
         | 
| 73 | 
            +
              # config.mailer = 'Effective::PostsMailer'
         | 
| 74 | 
            +
              #
         | 
| 75 | 
            +
              # Override effective_resource mailer defaults
         | 
| 76 | 
            +
              #
         | 
| 77 | 
            +
              # config.parent_mailer = nil      # The parent class responsible for sending emails
         | 
| 78 | 
            +
              # config.deliver_method = nil     # The deliver method, deliver_later or deliver_now
         | 
| 79 | 
            +
              # config.mailer_layout = nil      # Default mailer layout
         | 
| 80 | 
            +
              # config.mailer_sender = nil      # Default From value
         | 
| 81 | 
            +
              # config.mailer_admin = nil       # Default To value for Admin correspondence
         | 
| 82 | 
            +
              # config.mailer_subject = nil     # Proc.new method used to customize Subject
         | 
| 118 83 |  | 
| 119 84 | 
             
            end
         | 
| @@ -4,8 +4,10 @@ module EffectivePosts | |
| 4 4 |  | 
| 5 5 | 
             
                # Include Helpers to base application
         | 
| 6 6 | 
             
                initializer 'effective_posts.action_controller' do |app|
         | 
| 7 | 
            -
                   | 
| 8 | 
            -
                     | 
| 7 | 
            +
                  app.config.to_prepare do
         | 
| 8 | 
            +
                    ActiveSupport.on_load :action_controller_base do
         | 
| 9 | 
            +
                      helper EffectivePostsHelper
         | 
| 10 | 
            +
                    end
         | 
| 9 11 | 
             
                  end
         | 
| 10 12 | 
             
                end
         | 
| 11 13 |  | 
| @@ -14,5 +16,6 @@ module EffectivePosts | |
| 14 16 | 
             
                  # Set up our defaults, as per our initializer template
         | 
| 15 17 | 
             
                  eval File.read("#{config.root}/config/effective_posts.rb")
         | 
| 16 18 | 
             
                end
         | 
| 19 | 
            +
             | 
| 17 20 | 
             
              end
         | 
| 18 21 | 
             
            end
         | 
    
        data/lib/effective_posts.rb
    CHANGED
    
    | @@ -1,46 +1,32 @@ | |
| 1 1 | 
             
            require 'kaminari'
         | 
| 2 2 | 
             
            require 'nokogiri'
         | 
| 3 | 
            +
            require 'effective_resources'
         | 
| 3 4 | 
             
            require 'effective_datatables'
         | 
| 4 5 | 
             
            require 'effective_regions'
         | 
| 5 6 | 
             
            require 'effective_posts/engine'
         | 
| 6 7 | 
             
            require 'effective_posts/version'
         | 
| 7 8 |  | 
| 8 9 | 
             
            module EffectivePosts
         | 
| 9 | 
            -
              mattr_accessor :posts_table_name
         | 
| 10 10 |  | 
| 11 | 
            -
               | 
| 12 | 
            -
             | 
| 11 | 
            +
              def self.config_keys
         | 
| 12 | 
            +
                [
         | 
| 13 | 
            +
                  :posts_table_name, :permitted_params,
         | 
| 14 | 
            +
                  :layout, :simple_form_options, :admin_simple_form_options,
         | 
| 13 15 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
              mattr_accessor :admin_simple_form_options
         | 
| 16 | 
            +
                  :categories, :use_category_routes,
         | 
| 17 | 
            +
                  :use_effective_roles, :use_fullscreen_editor,
         | 
| 17 18 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
              mattr_accessor :use_category_routes
         | 
| 19 | 
            +
                  :per_page, :post_meta_author,
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
              mattr_accessor :use_fullscreen_editor
         | 
| 21 | 
            +
                  :submissions_enabled, :submissions_require_current_user, :submissions_require_approval, :submissions_note,
         | 
| 23 22 |  | 
| 24 | 
            -
             | 
| 25 | 
            -
              mattr_accessor :post_meta_author
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              mattr_accessor :submissions_enabled
         | 
| 28 | 
            -
              mattr_accessor :submissions_require_current_user
         | 
| 29 | 
            -
              mattr_accessor :submissions_require_approval
         | 
| 30 | 
            -
              mattr_accessor :submissions_note
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              # These are hashes of configs
         | 
| 33 | 
            -
              mattr_accessor :mailer
         | 
| 34 | 
            -
             | 
| 35 | 
            -
              def self.setup
         | 
| 36 | 
            -
                yield self
         | 
| 23 | 
            +
                ]
         | 
| 37 24 | 
             
              end
         | 
| 38 25 |  | 
| 39 | 
            -
               | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
                 | 
| 43 | 
            -
                true
         | 
| 26 | 
            +
              include EffectiveGem
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def self.mailer_class
         | 
| 29 | 
            +
                mailer&.constantize || Effective::PostsMailer
         | 
| 44 30 | 
             
              end
         | 
| 45 31 |  | 
| 46 32 | 
             
              def self.permitted_params
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: effective_posts
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.7.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Code and Effect
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2023-05-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -25,7 +25,7 @@ dependencies: | |
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: 3.2.0
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name:  | 
| 28 | 
            +
              name: sassc
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - ">="
         | 
| @@ -86,42 +86,42 @@ dependencies: | |
| 86 86 | 
             
                requirements:
         | 
| 87 87 | 
             
                - - ">="
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            -
                    version:  | 
| 89 | 
            +
                    version: '0'
         | 
| 90 90 | 
             
              type: :runtime
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 94 | 
             
                - - ">="
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            -
                    version:  | 
| 96 | 
            +
                    version: '0'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: effective_datatables
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - - " | 
| 101 | 
            +
                - - "<"
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version:  | 
| 103 | 
            +
                    version: '4'
         | 
| 104 104 | 
             
              type: :runtime
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - - " | 
| 108 | 
            +
                - - "<"
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version:  | 
| 110 | 
            +
                    version: '4'
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: effective_regions
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 115 | 
             
                - - ">="
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version:  | 
| 117 | 
            +
                    version: '0'
         | 
| 118 118 | 
             
              type: :runtime
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 122 | 
             
                - - ">="
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version:  | 
| 124 | 
            +
                    version: '0'
         | 
| 125 125 | 
             
            description: A blog implementation with WYSIWYG content editing, post scheduling,
         | 
| 126 126 | 
             
              pagination and optional top level routes for each post category.
         | 
| 127 127 | 
             
            email:
         | 
| @@ -133,9 +133,9 @@ files: | |
| 133 133 | 
             
            - MIT-LICENSE
         | 
| 134 134 | 
             
            - README.md
         | 
| 135 135 | 
             
            - Rakefile
         | 
| 136 | 
            -
            - app/assets/ | 
| 137 | 
            -
            - app/assets/javascripts/effective_pages/additional_fields.js.coffee
         | 
| 136 | 
            +
            - app/assets/config/effective_posts_manifest.js
         | 
| 138 137 | 
             
            - app/assets/javascripts/effective_posts.js
         | 
| 138 | 
            +
            - app/assets/javascripts/effective_posts/additional_fields.js.coffee
         | 
| 139 139 | 
             
            - app/assets/stylesheets/effective_posts.scss
         | 
| 140 140 | 
             
            - app/controllers/admin/posts_controller.rb
         | 
| 141 141 | 
             
            - app/controllers/effective/posts_controller.rb
         | 
| @@ -144,10 +144,7 @@ files: | |
| 144 144 | 
             
            - app/helpers/effective_posts_helper.rb
         | 
| 145 145 | 
             
            - app/helpers/effective_truncate_html_helper.rb
         | 
| 146 146 | 
             
            - app/mailers/effective/posts_mailer.rb
         | 
| 147 | 
            -
            - app/models/effective/access_denied.rb
         | 
| 148 | 
            -
            - app/models/effective/datatables/posts.rb
         | 
| 149 147 | 
             
            - app/models/effective/post.rb
         | 
| 150 | 
            -
            - app/models/effective/snippets/read_more_divider.rb
         | 
| 151 148 | 
             
            - app/views/admin/posts/_actions.html.haml
         | 
| 152 149 | 
             
            - app/views/admin/posts/_form.html.haml
         | 
| 153 150 | 
             
            - app/views/admin/posts/edit.html.haml
         | 
| @@ -203,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 203 200 | 
             
                - !ruby/object:Gem::Version
         | 
| 204 201 | 
             
                  version: '0'
         | 
| 205 202 | 
             
            requirements: []
         | 
| 206 | 
            -
            rubygems_version: 3. | 
| 203 | 
            +
            rubygems_version: 3.3.7
         | 
| 207 204 | 
             
            signing_key:
         | 
| 208 205 | 
             
            specification_version: 4
         | 
| 209 206 | 
             
            summary: A blog implementation with WYSIWYG content editing, post scheduling, pagination
         | 
| @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            CKEDITOR.dialog.add 'read_more_divider', (editor) ->  # Must match the class name of the snippet
         | 
| 2 | 
            -
              title: 'Read more divider',
         | 
| 3 | 
            -
              minWidth: 200,
         | 
| 4 | 
            -
              minHeight: 100,
         | 
| 5 | 
            -
              contents: [
         | 
| 6 | 
            -
                {
         | 
| 7 | 
            -
                  id: 'read_more_info',    # Just an html id, doesn't really matter what is here
         | 
| 8 | 
            -
                  elements: [
         | 
| 9 | 
            -
                    {
         | 
| 10 | 
            -
                      id: 'throwaway'
         | 
| 11 | 
            -
                      type: 'html',
         | 
| 12 | 
            -
                      html: 'Insert a read more divider to separate excerpt content from the full content.',
         | 
| 13 | 
            -
                      setup: (widget) -> this.setValue(widget.data.throwaway)
         | 
| 14 | 
            -
                      commit: (widget) -> widget.setData('throwaway', 'throwaway')
         | 
| 15 | 
            -
                    },
         | 
| 16 | 
            -
                    {
         | 
| 17 | 
            -
                      type: 'html',
         | 
| 18 | 
            -
                      html: 'Anything above the read more divider will be treated as excerpt content<br>and everything below the divider will also be included in the full content.'
         | 
| 19 | 
            -
                    }
         | 
| 20 | 
            -
                  ]
         | 
| 21 | 
            -
                }
         | 
| 22 | 
            -
              ]
         | 
| @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            unless defined?(Effective::AccessDenied)
         | 
| 2 | 
            -
              module Effective
         | 
| 3 | 
            -
                class AccessDenied < StandardError
         | 
| 4 | 
            -
                  attr_reader :action, :subject
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  def initialize(message = nil, action = nil, subject = nil)
         | 
| 7 | 
            -
                    @message = message
         | 
| 8 | 
            -
                    @action = action
         | 
| 9 | 
            -
                    @subject = subject
         | 
| 10 | 
            -
                  end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  def to_s
         | 
| 13 | 
            -
                    @message || I18n.t(:'unauthorized.default', :default => 'Access Denied')
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
            end
         | 
| @@ -1,39 +0,0 @@ | |
| 1 | 
            -
            if Gem::Version.new(EffectiveDatatables::VERSION) < Gem::Version.new('3.0')
         | 
| 2 | 
            -
              module Effective
         | 
| 3 | 
            -
                module Datatables
         | 
| 4 | 
            -
                  class Posts < Effective::Datatable
         | 
| 5 | 
            -
                    datatable do
         | 
| 6 | 
            -
                      default_order :published_at, :desc
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                      table_column :published_at
         | 
| 9 | 
            -
                      table_column :id, visible: false
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                      table_column :title
         | 
| 12 | 
            -
                      table_column :category, filter: { type: :select, values: EffectivePosts.categories }
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                      if EffectivePosts.submissions_enabled
         | 
| 15 | 
            -
                        table_column :approved, column: 'NOT(draft)', as: :boolean do |post|
         | 
| 16 | 
            -
                          post.draft ? 'No' : 'Yes'
         | 
| 17 | 
            -
                        end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                        table_column :draft, visible: false
         | 
| 20 | 
            -
                      else
         | 
| 21 | 
            -
                        table_column :draft
         | 
| 22 | 
            -
                      end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                      table_column :start_at
         | 
| 25 | 
            -
                      table_column :end_at, visible: false
         | 
| 26 | 
            -
                      table_column :location, visible: false
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                      table_column :created_at, label: 'Submitted at', visible: false
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                      table_column :actions, sortable: false, filter: false, partial: '/admin/posts/actions'
         | 
| 31 | 
            -
                    end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                    def collection
         | 
| 34 | 
            -
                      Effective::Post.all
         | 
| 35 | 
            -
                    end
         | 
| 36 | 
            -
                  end
         | 
| 37 | 
            -
                end
         | 
| 38 | 
            -
              end
         | 
| 39 | 
            -
            end
         | 
    
        /data/app/assets/javascripts/{effective_pages → effective_posts}/additional_fields.js.coffee
    RENAMED
    
    | 
            File without changes
         |