scribble_cms 0.71 → 0.82

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.
@@ -1,45 +1,45 @@
1
1
  class ScribblerContainer < ActiveRecord::Base
2
-
2
+
3
3
  #= Configuration
4
4
  #== Associations
5
5
  has_many :groups, :class_name => "::ScribblerGroup", :foreign_key => "container_id"
6
6
  belongs_to :element, :class_name => "Alchemy::Element", :foreign_key => "element_id"
7
7
  #== Plugins and modules
8
8
  #=== PlugIns
9
- # => Stuff in Here
10
-
9
+ # => Stuff in Here
10
+
11
11
  #=== include Modules
12
12
  # => Stuff in Here
13
-
13
+
14
14
  #== Konstanten
15
15
  # => Stuff in Here
16
-
16
+
17
17
  #== Validation and Callbacks
18
18
  #=== Validation
19
19
  validates_uniqueness_of :name, :on => :create, :message => "must be unique"
20
-
20
+
21
21
  #=== Callbacks
22
22
  before_create { self.description = self.name }
23
-
24
-
23
+
24
+
25
25
  # => END
26
-
26
+
27
27
  def ordered_groups
28
28
  self.groups.sort_by {|g| g.human_name.to_s }
29
- end
30
-
29
+ end
30
+
31
31
  def scribbler_group(name, &block)
32
32
  yield(self.get_group(name))
33
33
  end
34
-
34
+
35
35
  def get_group(name)
36
36
  ScribblerGroup.where(:name => name, :container_id => self.id).first || ScribblerGroup.create(:name => name, :container_id => self.id)
37
- end
38
-
37
+ end
38
+
39
39
  def description
40
40
  I18n.t(self.name, :scope => "scribbler.container_names", :default => self.name.humanize)
41
- end
42
-
43
-
44
-
41
+ end
42
+
43
+
44
+
45
45
  end
@@ -1,10 +1,12 @@
1
1
  class ScribblerGroup < ActiveRecord::Base
2
2
 
3
3
  #= Configuration
4
+ attr_accessor :group_data
4
5
  #== Associations
5
6
  belongs_to :container, :class_name => "ScribblerContainer", :foreign_key => "container_id", :touch => true
6
7
 
7
8
  has_many :texts, :class_name => "ScribblerText", :foreign_key => "group_id"
9
+
8
10
  #== Plugins and modules
9
11
  #=== PlugIns
10
12
  # => Stuff in Here
@@ -29,6 +31,12 @@ class ScribblerGroup < ActiveRecord::Base
29
31
 
30
32
  # => END
31
33
 
34
+ def contents
35
+ contents = ELEMENTS.values.map do |cont_class|
36
+ cont_class.constantize.where(group_id: self.id).where(:released => true)
37
+ end.flatten
38
+ end
39
+
32
40
  # Display data
33
41
  def row(row_name, options = {})
34
42
  e = get_element(:row, row_name)
@@ -98,11 +106,9 @@ class ScribblerGroup < ActiveRecord::Base
98
106
  end
99
107
  element = element_class.where(options).first
100
108
  if element.nil?
101
- element_class.create(options.merge(:released => !options[:released]))
102
109
  element = element_class.create(options)
103
110
  end
104
111
 
105
-
106
112
  return element
107
113
  end
108
114
 
@@ -122,6 +128,10 @@ class ScribblerGroup < ActiveRecord::Base
122
128
  self.elements.each {|e| e.destroy }
123
129
  end
124
130
 
131
+ def group_data=(data)
132
+ process_data!(data)
133
+ end
134
+
125
135
  # Save data
126
136
  def process_group_data(data = {})
127
137
  # Update realesed data
@@ -133,10 +143,11 @@ class ScribblerGroup < ActiveRecord::Base
133
143
 
134
144
  def process_data!(data)
135
145
  data.each do |key, content|
146
+ content.symbolize_keys!
136
147
  e_id = content.delete(:id)
137
148
  e_type = content.delete(:type)
138
149
  e_rel = content.delete(:release)
139
- element = ELEMENTS[e_type.to_sym].find(e_id)
150
+ element = ELEMENTS[e_type.to_sym].constantize.find(e_id)
140
151
  element.update_attributes(content)
141
152
 
142
153
  if e_rel == "1"
@@ -149,6 +160,10 @@ class ScribblerGroup < ActiveRecord::Base
149
160
  I18n.t(self.name, :scope => "scribbler.group_names", :default => self.name.humanize) rescue self.name
150
161
  end
151
162
 
163
+ def container_description
164
+ container.description
165
+ end
166
+
152
167
 
153
168
 
154
169
 
@@ -5,7 +5,6 @@ class ScribblerImage < ActiveRecord::Base
5
5
  after_assign{|i| i.name = sanitize_filename(image.name) }
6
6
  end
7
7
 
8
-
9
8
  def sanitize_filename(filename)
10
9
  [filename.split(".").first.parameterize, filename.split(".").last].join(".")
11
10
  end
@@ -18,8 +17,6 @@ class ScribblerImage < ActiveRecord::Base
18
17
  case_sensitive: false,
19
18
  message: I18n.t("not a valid image")
20
19
 
21
-
22
-
23
20
  #== Associations
24
21
 
25
22
  #== Plugins and modules
@@ -0,0 +1,18 @@
1
+ <% element_ids = [] %>
2
+ <%= form_for [:admin, resource] do |f| %>
3
+ <%= f.fields_for :group_data do |u| %>
4
+ <% f.object.released_elements.each do |e| %>
5
+ <div class="scribbler-element scribbler-<%= e.element_type %>" style="<%= 'background-color: #ffffdc;' if params[:active].to_i == e.id %> padding: 5px;">
6
+ <h3 class="scribbler-header"><%= e.human_name %></h3>
7
+ <% unless e.hint.blank? %>
8
+ <p class="scribbler-element-hint"><%= raw(e.hint) %></p>
9
+ <% end %>
10
+ <% element_ids << e.id %>
11
+ <div style="margin-bottom: 5px;"><%= scribbler_form_element(e,u) %></div>
12
+ </div>
13
+ <% end %>
14
+ <% end %>
15
+
16
+ <%= f.submit %>
17
+
18
+ <% end %>
@@ -1,5 +1,5 @@
1
1
  <%= f.fields_for "#{element.element_type}_#{element.id}" do |e| %>
2
- <%= e.text_area :content, :class => ScribbleCms.tiny_mce_css, :id => "tinymce_#{element.id}", :value => element.content %>
2
+ <%= e.text_area :content, :class => ScribbleCms.tiny_mce_css, :value => element.content, class: 'html_editor' %>
3
3
  <br />
4
4
  <%= e.hidden_field :type, :value => element.element_type %>
5
5
  <%= e.hidden_field :id, :value => element.id %>
@@ -7,3 +7,17 @@ de:
7
7
  content-en: 'EN: 2. Text/Inhalt'
8
8
  subject-de: 'DE: 1. Betreff'
9
9
  content-de: 'DE: 2. Text/Inhalt'
10
+ content: Text/Inhalt
11
+ title: Name
12
+ header: Überschrift
13
+ intro: Einleitung
14
+
15
+ activerecord:
16
+ models:
17
+ scribbler_group: Textbausteine
18
+ scribbler_container: Textgruppe
19
+ attributes:
20
+ scribbler_group:
21
+ human_name: Name
22
+ container_description: Textgruppe
23
+
@@ -0,0 +1,32 @@
1
+ ActiveAdmin.register ScribblerGroup do
2
+
3
+ controller do
4
+ define_method :permitted_params do
5
+ params.to_hash
6
+ end
7
+ end
8
+
9
+ index do
10
+ column :human_name
11
+ column :container_description
12
+ actions
13
+ end
14
+
15
+ show do
16
+ h3 scribbler_group.human_name
17
+ scribbler_group.released_elements.each do |element|
18
+ panel element.human_name do
19
+ case element.element_type
20
+ when :row, :text
21
+ div do
22
+ element.content.html_safe
23
+ end
24
+ when :image
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ form partial: 'admin/scribbler_group_form'
31
+
32
+ end
@@ -14,6 +14,26 @@ module Scribbler
14
14
  end
15
15
  end
16
16
 
17
+ if defined?(ActiveAdmin)
18
+ initializer 'activeadmin.tinymce', :group => :all do |app|
19
+ js = ['ext/tinymce.min.js', 'scribbler.js']
20
+ css = ['ext/tinymce.skin.css', 'ext/tinymce.content.min.css']
21
+
22
+ app.config.assets.precompile += js
23
+ app.config.assets.precompile += css
24
+
25
+ ActiveAdmin.application.tap do |config|
26
+ js.each do |j|
27
+ config.register_javascript j
28
+ end
29
+
30
+ css.each do |s|
31
+ config.register_stylesheet s
32
+ end
33
+ end
34
+ end
35
+ end
36
+
17
37
  end
18
38
  end
19
39
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scribble_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.71'
4
+ version: '0.82'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Eck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-14 00:00:00.000000000 Z
11
+ date: 2017-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: friendly_extensions
@@ -59,9 +59,22 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
+ - app/assets/fonts/tinymce-small.eot
63
+ - app/assets/fonts/tinymce-small.json
64
+ - app/assets/fonts/tinymce-small.svg
65
+ - app/assets/fonts/tinymce-small.ttf
66
+ - app/assets/fonts/tinymce-small.woff
67
+ - app/assets/fonts/tinymce.eot
68
+ - app/assets/fonts/tinymce.json
69
+ - app/assets/fonts/tinymce.svg
70
+ - app/assets/fonts/tinymce.ttf
71
+ - app/assets/fonts/tinymce.woff
62
72
  - app/assets/javascripts/ext/jquery.Jcrop.min.js
73
+ - app/assets/javascripts/ext/tinymce.min.js
63
74
  - app/assets/javascripts/scribbler.js
64
75
  - app/assets/stylesheets/ext/jquery.Jcrop.css
76
+ - app/assets/stylesheets/ext/tinymce.content.min.css
77
+ - app/assets/stylesheets/ext/tinymce.skin.scss
65
78
  - app/assets/stylesheets/scribbler.css.erb
66
79
  - app/assets/stylesheets/scribbler_layout.css.erb
67
80
  - app/controller/scribbler_pictures_controller.rb
@@ -73,6 +86,7 @@ files:
73
86
  - app/models/scribbler_link.rb
74
87
  - app/models/scribbler_text.rb
75
88
  - app/models/scribbler_var.rb
89
+ - app/views/admin/_scribbler_group_form.html.erb
76
90
  - app/views/scribbler_admin/_scribbler_layout.html.erb
77
91
  - app/views/scribbler_admin/_scribbler_sidebar.html.erb
78
92
  - app/views/scribbler_admin/container_edit.html.erb
@@ -89,6 +103,7 @@ files:
89
103
  - config/scribble_cms.rb
90
104
  - db/migrate/001_create_scribblers.rb
91
105
  - db/migrate/002_add_description_to_scribbler_containers.rb
106
+ - lib/admin/scribbler_groups.rb.template
92
107
  - lib/scribble_cms.rb
93
108
  - lib/scribble_cms/engine.rb
94
109
  - lib/scribble_cms/scribbler_content_creator.rb