ksk 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2c08aa17cd779df40e840a56103cbf7b89962cd9
4
- data.tar.gz: ee1a10393144081274648719ddff2a3f6248260b
2
+ SHA256:
3
+ metadata.gz: 854dba2b8616df8ff94efcfb63205183583b860e18b7af07f3bf4bda39136fce
4
+ data.tar.gz: 8f52208f069053160c0bb8390211606973f91ecf1de2961a093d28f096992eeb
5
5
  SHA512:
6
- metadata.gz: 339e121eebc45a3ade6433ff2dfa7d5f8933a32083d31af61178ff44751d1d47e16d0d6c1b5a9be31bbfabd2b96a359e9d27046151ccd050b4a90d6fe467f08b
7
- data.tar.gz: f638437b538c5e4eaaae5ce29c89f4f24dc2fa27833f79dbfd475eea64b237cd95eac2a051e82adf7822d108b54977a071dcf116b926fc63b5cecf17201717bd
6
+ metadata.gz: 1900426cfe5512d4c00b4460950110af5c9ecceab997892ad21854ad2b6f5ad0885736af5e59d205623f271e57ef9f7a67ee9368eb86777166e18e86f00b542e
7
+ data.tar.gz: b626e2d8dc835497ee4a5e1f28553081be52503b3850818fbc782a882c5c5d427779f3497dce1ccb25f0b53472271636a5dd59d648b5b1a1de097122941a8fba
data/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [*.md]
13
+ trim_trailing_whitespace = false
data/Gemfile CHANGED
@@ -1,8 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'bhf', '>= 0'
3
+ gem 'bhf', '>= 1.0.0.beta7'
4
4
  gem 'stringex', '>= 2'
5
- gem 'paperclip', '>= 4'
6
5
 
7
6
 
8
7
  group :development do
data/README.md CHANGED
@@ -8,7 +8,6 @@ Blog/Website management plugin for [bhf](http://antpaw.github.io/bhf/).
8
8
  * The abstract [settings `.yml`](https://github.com/antpaw/ksk/tree/master/config/bhf/ksk.yml)
9
9
  ([learn how to use it in your own settings `.yml`](http://antpaw.github.io/bhf/#abstract_platform_settings))
10
10
  * Include this [concerns](https://github.com/antpaw/ksk/tree/master/app/models/concerns/ksk) to your models.
11
- * Use this [partials](https://github.com/antpaw/ksk/tree/master/app/views/bhf), for example to crop paperclip images.
12
11
 
13
12
 
14
13
  ## Contributing to ksk
@@ -1,7 +1,7 @@
1
1
  //= require_tree ./classes
2
2
 
3
3
  window.addEvent('bhfDomChunkReady', function(scope){
4
-
4
+
5
5
  scope.getElements('.js_tree_holder').each(function(elem){
6
6
  var naviA = new NaviAdmin({
7
7
  elemTree: elem.getElement('.js_tree_list'),
@@ -31,17 +31,18 @@ window.addEvent('bhfDomChunkReady', function(scope){
31
31
  new Request({
32
32
  url: platform.getElement('.template_data').get('data-update-path'),
33
33
  onSuccess: function(responseText){
34
+ var newId = JSON.parse(responseText).id;
34
35
  new Element('li', {
35
- 'id': naviName+'_'+responseText,
36
- 'html': '<div> <span class="title">'+name+'</span> <span class="links">'+tmpl.get('html')+'</span></div>'.replace(/NAVIID/g, responseText)
36
+ 'id': naviName+'_'+newId,
37
+ 'html': '<div> <span class="title">'+name+'</span> <span class="links">'+tmpl.get('html')+'</span></div>'.replace(/NAVIID/g, newId)
37
38
  })
38
39
  .inject(platform.getElement('.js_tree_list li'), 'before');
39
40
  naviA.reInit();
40
41
  }
41
42
  }).post(queryParams);
42
43
  });
43
- });
44
-
44
+ });
45
+
45
46
  cropImages = scope.getElements('.js_crop_image');
46
47
  if (cropImages.length) {
47
48
  var cropInit = function(){
@@ -58,7 +59,7 @@ window.addEvent('bhfDomChunkReady', function(scope){
58
59
  }
59
60
  }
60
61
  var hasSize = minWidth && minHeight;
61
-
62
+
62
63
  $cropImg.Jcrop({
63
64
  // minSize: (hasSize ? [minWidth, minHeight] : undefined),
64
65
  aspectRatio: (hasSize ? (minWidth / minHeight) : undefined),
@@ -85,5 +86,5 @@ window.addEvent('bhfDomChunkReady', function(scope){
85
86
  }
86
87
  });
87
88
  }
88
-
89
+
89
90
  });
@@ -162,9 +162,15 @@ var NaviAdmin = new Class({
162
162
  },
163
163
 
164
164
  getNaviName: function(){
165
- return this.getId(
166
- this.elemTree.getElement('li.item').get('id')
167
- ).name || 'navigation';
165
+ var navigationElements = this.elemTree.getElement('li.item');
166
+ if (navigationElements && navigationElements.length) {
167
+ return this.getId(
168
+ navigationElements.get('id')
169
+ ).name;
170
+ }
171
+ else {
172
+ return 'navigation';
173
+ }
168
174
  },
169
175
 
170
176
  getIdPositions: function(){
@@ -181,4 +187,4 @@ var NaviAdmin = new Class({
181
187
  reInit: function(){
182
188
  this.initialize(this.options);
183
189
  }
184
- });
190
+ });
@@ -8,14 +8,17 @@ class Ksk::NavigationsController < Bhf::ApplicationController
8
8
 
9
9
  def create
10
10
  n = Navigation.new(params_navigation)
11
- n.save
12
- render text: n.id
11
+ if n.save
12
+ render json: {id: n.id}
13
+ else
14
+ render status: 400, json: n.errors
15
+ end
13
16
  end
14
17
 
15
18
  private
16
19
  def params_navigation
17
- ActionController::Parameters.new(params[:navigation]).permit!
20
+ a = params.require(:navigation).permit(:title)
21
+ a
18
22
  end
19
23
 
20
24
  end
21
-
@@ -11,18 +11,18 @@ module Ksk::Asset
11
11
 
12
12
  do_not_validate_attachment_file_type :file
13
13
  before_file_post_process :is_image?
14
- include Ksk::PaperclipCrop
14
+ include Ksk::ImageCrop
15
15
 
16
- scope :only_images, -> {where(file_content_type: Bhf.configuration.paperclip_image_types)}
16
+ scope :only_images, -> {where(file_content_type: Bhf.configuration.image_types)}
17
17
  scope :first_image, -> {only_images.limit(1)}
18
18
  scope :other_images, -> {only_images.offset(1)}
19
19
 
20
- scope :only_data_files, -> {where('file_content_type not in (?)', Bhf.configuration.paperclip_image_types)}
20
+ scope :only_data_files, -> {where('file_content_type not in (?)', Bhf.configuration.image_types)}
21
21
  scope :first_data_files, -> {only_data_files.limit(1)}
22
22
  end
23
23
 
24
24
  def is_image?
25
- Bhf.configuration.paperclip_image_types.include?(file.content_type)
25
+ Bhf.configuration.image_types.include?(file.content_type)
26
26
  end
27
27
 
28
28
 
@@ -52,4 +52,4 @@ module Ksk::Asset
52
52
  { file: [] }
53
53
  end
54
54
 
55
- end
55
+ end
@@ -1,4 +1,4 @@
1
- module Ksk::PaperclipCrop
1
+ module Ksk::ImageCrop
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
@@ -50,11 +50,11 @@ module Ksk::PaperclipCrop
50
50
  def resize_banner(name, cords, resize)
51
51
  ksk_images_for_crop.each_pair do |image_name, style_names|
52
52
  image = send(image_name)
53
- image.queued_for_write[name] = Paperclip.processor(:ksk_crop).make(image, cords, image)
54
- style = Paperclip::Style.new(name, [resize, :jpg], image)
55
- image.queued_for_write[name] = Paperclip.processor(:thumbnail).make(image.queued_for_write[name], style.processor_options, image.queued_for_write[name])
56
- image.queued_for_write[name] = Paperclip.io_adapters.for(image.queued_for_write[name])
53
+ # image.queued_for_write[name] = Paperclip.processor(:ksk_crop).make(image, cords, image)
54
+ # style = Paperclip::Style.new(name, [resize, :jpg], image)
55
+ # image.queued_for_write[name] = Paperclip.processor(:thumbnail).make(image.queued_for_write[name], style.processor_options, image.queued_for_write[name])
56
+ # image.queued_for_write[name] = Paperclip.io_adapters.for(image.queued_for_write[name])
57
57
  end
58
58
  end
59
59
 
60
- end
60
+ end
@@ -11,7 +11,7 @@ module Ksk::Navigation
11
11
 
12
12
  belongs_to :static
13
13
  belongs_to :navigation_type
14
- belongs_to :parent, foreign_key: 'parent_id', class_name: 'Navigation'
14
+ belongs_to :parent, foreign_key: 'parent_id', class_name: 'Navigation', optional: true
15
15
  has_many :children, foreign_key: 'parent_id', class_name: 'Navigation', dependent: :delete_all
16
16
 
17
17
  scope :top_level, -> {where(parent_id: 0)}
@@ -21,7 +21,6 @@ module Ksk::Navigation
21
21
  before_save :set_slug, :set_link
22
22
  end
23
23
 
24
-
25
24
  def set_slug
26
25
  return if !slug.blank?
27
26
  write_attribute(:slug, title.to_url)
@@ -2,7 +2,6 @@ module Ksk::Post
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
5
- include Ksk::Markdown
6
5
 
7
6
  belongs_to :category
8
7
  has_many :assets, as: :fileable
@@ -2,13 +2,13 @@ module Ksk::Static
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
5
- include Ksk::Markdown
6
-
7
5
  has_one :navigation
8
6
  has_many :assets, as: :fileable
9
7
  # TODO: needs on_delete hook to destroy navigation if Navigation is availible for this object
10
8
 
11
9
  accepts_nested_attributes_for :assets, allow_destroy: true
10
+
11
+ has_rich_text :content
12
12
  end
13
13
 
14
14
  end
data/config/bhf/ksk.yml CHANGED
@@ -11,8 +11,8 @@ pages:
11
11
  multipart: true
12
12
  types:
13
13
  assets: assets
14
- content: markdown
15
-
14
+ content: rich_text
15
+
16
16
  - category:
17
17
  table:
18
18
  columns: [id, title, updated_at, created_at]
@@ -22,11 +22,10 @@ pages:
22
22
  columns: [id, title, content, updated_at, created_at]
23
23
  per_page: 30
24
24
  form:
25
- display: [id, title, content, assets]
25
+ display: [id, title, content]
26
26
  multipart: true
27
27
  types:
28
- assets: assets
29
- content: markdown
28
+ content: rich_text
30
29
 
31
30
  - navigation:
32
31
  table:
data/ksk.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: ksk 0.4.7 ruby lib
5
+ # stub: ksk 0.4.8 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "ksk".freeze
9
- s.version = "0.4.7"
9
+ s.version = "0.4.8"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Anton Pawlik".freeze]
14
- s.date = "2018-05-06"
14
+ s.date = "2019-12-27"
15
15
  s.description = "Blog/Website management plugin for bhf. Includes abstract settings .yml, model concerns and bhf view partials.".freeze
16
16
  s.email = "anton.pawlik@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  "README.md"
20
20
  ]
21
21
  s.files = [
22
+ ".editorconfig",
22
23
  "Gemfile",
23
24
  "Gemfile.lock",
24
25
  "LICENSE.txt",
@@ -32,10 +33,9 @@ Gem::Specification.new do |s|
32
33
  "app/helpers/ksk/frontend_helper.rb",
33
34
  "app/models/concerns/ksk/asset.rb",
34
35
  "app/models/concerns/ksk/category.rb",
35
- "app/models/concerns/ksk/markdown.rb",
36
+ "app/models/concerns/ksk/image_crop.rb",
36
37
  "app/models/concerns/ksk/navigation.rb",
37
38
  "app/models/concerns/ksk/navigation_type.rb",
38
- "app/models/concerns/ksk/paperclip_crop.rb",
39
39
  "app/models/concerns/ksk/post.rb",
40
40
  "app/models/concerns/ksk/preview.rb",
41
41
  "app/models/concerns/ksk/static.rb",
@@ -53,30 +53,28 @@ Gem::Specification.new do |s|
53
53
  "config/locales/en.yml",
54
54
  "config/routes.rb",
55
55
  "ksk.gemspec",
56
- "lib/ksk.rb",
57
- "lib/paperclip_processors/ksk_crop.rb"
56
+ "lib/image_processors/ksk_crop.rb",
57
+ "lib/ksk.rb"
58
58
  ]
59
59
  s.homepage = "http://github.com/antpaw/ksk".freeze
60
60
  s.licenses = ["MIT".freeze]
61
- s.rubygems_version = "2.6.13".freeze
61
+ s.rubygems_version = "3.0.6".freeze
62
62
  s.summary = "Blog/Website management plugin for bhf".freeze
63
63
 
64
64
  if s.respond_to? :specification_version then
65
65
  s.specification_version = 4
66
66
 
67
67
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
68
- s.add_runtime_dependency(%q<bhf>.freeze, [">= 0"])
68
+ s.add_runtime_dependency(%q<bhf>.freeze, [">= 1.0.0.beta8"])
69
69
  s.add_runtime_dependency(%q<stringex>.freeze, [">= 2"])
70
- s.add_runtime_dependency(%q<paperclip>.freeze, [">= 4"])
71
70
  s.add_development_dependency(%q<shoulda>.freeze, [">= 3"])
72
71
  s.add_development_dependency(%q<rdoc>.freeze, [">= 3"])
73
72
  s.add_development_dependency(%q<bundler>.freeze, [">= 1"])
74
73
  s.add_development_dependency(%q<jeweler>.freeze, [">= 2"])
75
74
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
76
75
  else
77
- s.add_dependency(%q<bhf>.freeze, [">= 0"])
76
+ s.add_dependency(%q<bhf>.freeze, [">= 1.0.0.beta8"])
78
77
  s.add_dependency(%q<stringex>.freeze, [">= 2"])
79
- s.add_dependency(%q<paperclip>.freeze, [">= 4"])
80
78
  s.add_dependency(%q<shoulda>.freeze, [">= 3"])
81
79
  s.add_dependency(%q<rdoc>.freeze, [">= 3"])
82
80
  s.add_dependency(%q<bundler>.freeze, [">= 1"])
@@ -84,9 +82,8 @@ Gem::Specification.new do |s|
84
82
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
85
83
  end
86
84
  else
87
- s.add_dependency(%q<bhf>.freeze, [">= 0"])
85
+ s.add_dependency(%q<bhf>.freeze, [">= 1.0.0.beta8"])
88
86
  s.add_dependency(%q<stringex>.freeze, [">= 2"])
89
- s.add_dependency(%q<paperclip>.freeze, [">= 4"])
90
87
  s.add_dependency(%q<shoulda>.freeze, [">= 3"])
91
88
  s.add_dependency(%q<rdoc>.freeze, [">= 3"])
92
89
  s.add_dependency(%q<bundler>.freeze, [">= 1"])
@@ -1,4 +1,4 @@
1
- module Paperclip
1
+ module ImageProcessors
2
2
 
3
3
  class KskCrop < Processor
4
4
 
@@ -26,10 +26,10 @@ module Paperclip
26
26
  else
27
27
  File.expand_path(src.path)
28
28
  end
29
- success = Paperclip.run('convert', parameters, source: path, dest: File.expand_path(dst.path))
29
+ # success = Paperclip.run('convert', parameters, source: path, dest: File.expand_path(dst.path))
30
30
 
31
31
  dst
32
32
  end
33
33
 
34
34
  end
35
- end
35
+ end
data/lib/ksk.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Ksk
2
2
  class Engine < Rails::Engine
3
-
3
+
4
4
  isolate_namespace Ksk
5
5
 
6
6
  Bhf.configure do |config|
@@ -8,16 +8,17 @@ module Ksk
8
8
  config.js << 'ksk/application'
9
9
  config.abstract_settings << "#{File.expand_path("../..", __FILE__)}/config/bhf/ksk"
10
10
  end
11
-
11
+
12
12
  initializer 'ksk.helper' do
13
13
  ActiveSupport.on_load :action_controller do
14
14
  helper Ksk::FrontendHelper
15
15
  end
16
16
  end
17
-
17
+
18
+ initializer 'ksk.assets.precompile' do |app|
19
+ app.config.assets.precompile += %w( ksk/application.css ksk/application.js )
20
+ end
18
21
  end
19
22
  end
20
23
 
21
24
  require 'stringex'
22
- require 'paperclip/processor'
23
- require 'paperclip_processors/ksk_crop'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ksk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Pawlik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-06 00:00:00.000000000 Z
11
+ date: 2019-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bhf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.0.0.beta8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 1.0.0.beta8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: stringex
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2'
41
- - !ruby/object:Gem::Dependency
42
- name: paperclip
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '4'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '4'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: shoulda
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -131,6 +117,7 @@ extra_rdoc_files:
131
117
  - LICENSE.txt
132
118
  - README.md
133
119
  files:
120
+ - ".editorconfig"
134
121
  - Gemfile
135
122
  - Gemfile.lock
136
123
  - LICENSE.txt
@@ -144,10 +131,9 @@ files:
144
131
  - app/helpers/ksk/frontend_helper.rb
145
132
  - app/models/concerns/ksk/asset.rb
146
133
  - app/models/concerns/ksk/category.rb
147
- - app/models/concerns/ksk/markdown.rb
134
+ - app/models/concerns/ksk/image_crop.rb
148
135
  - app/models/concerns/ksk/navigation.rb
149
136
  - app/models/concerns/ksk/navigation_type.rb
150
- - app/models/concerns/ksk/paperclip_crop.rb
151
137
  - app/models/concerns/ksk/post.rb
152
138
  - app/models/concerns/ksk/preview.rb
153
139
  - app/models/concerns/ksk/static.rb
@@ -165,8 +151,8 @@ files:
165
151
  - config/locales/en.yml
166
152
  - config/routes.rb
167
153
  - ksk.gemspec
154
+ - lib/image_processors/ksk_crop.rb
168
155
  - lib/ksk.rb
169
- - lib/paperclip_processors/ksk_crop.rb
170
156
  homepage: http://github.com/antpaw/ksk
171
157
  licenses:
172
158
  - MIT
@@ -186,8 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
172
  - !ruby/object:Gem::Version
187
173
  version: '0'
188
174
  requirements: []
189
- rubyforge_project:
190
- rubygems_version: 2.6.13
175
+ rubygems_version: 3.0.6
191
176
  signing_key:
192
177
  specification_version: 4
193
178
  summary: Blog/Website management plugin for bhf
@@ -1,78 +0,0 @@
1
- module Ksk::Markdown
2
- extend ActiveSupport::Concern
3
-
4
- def text_used_content(type)
5
- Ksk::Markdown.parse_text(markdown_text, type).each_with_object([]) do |match, used_numbers|
6
- used_numbers << match[1].to_i
7
- end
8
- end
9
-
10
- def text_unused_content(all_files, type, preselected = [])
11
- all_numbers = []
12
- all_files.each_with_index { |a, i| all_numbers << i+1 }
13
-
14
- unused_numbers = all_numbers - (text_used_content(type)+preselected)
15
-
16
- unused_files = []
17
- all_files.each_with_index do |a, i|
18
- unused_files << a if unused_numbers.include?(i+1)
19
- end
20
-
21
- unused_files
22
- end
23
-
24
- def text_used_images
25
- text_used_content('img')
26
- end
27
-
28
- def text_unused_images
29
- text_unused_content(assets.only_images, 'img', respond_to?(:markdown_preselect) && markdown_preselect || [])
30
- end
31
-
32
- def text_used_data_files
33
- text_used_content('file')
34
- end
35
-
36
- def text_unused_data_files
37
- text_unused_content(assets.only_data_files, 'file')
38
- end
39
-
40
-
41
- def markdown_text
42
- content
43
- end
44
-
45
- def content_long
46
- "#{intro} #{hidden_text}"
47
- end
48
-
49
- def content_short
50
- intro
51
- end
52
-
53
- def intro
54
- split_content[0]
55
- end
56
-
57
- def hidden_text
58
- split_content[1]
59
- end
60
-
61
- def split_content
62
- return [] if read_attribute(:content).blank?
63
- read_attribute(:content).split('@@@')
64
- end
65
-
66
- def content_has_more?
67
- !hidden_text.blank?
68
- end
69
-
70
-
71
- def self.parse_regex(type)
72
- /(\{#{type}_(\d{1,2})_?(\w+)?\})/i
73
- end
74
-
75
- def self.parse_text(text, type)
76
- text.to_s.scan(parse_regex(type))
77
- end
78
- end