refinerycms-llama_widgets 0.3.8 → 0.3.9

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.
@@ -7,33 +7,13 @@ jQuery ->
7
7
  $('.dialog-link').click (event) ->
8
8
  linkFromDialog($(this).data('link-from-dialog'))
9
9
 
10
- if $('#new_widget #widget_type').length > 0
11
- $('#new_widget #widget_type.template').change (event) ->
12
- selected = $(this).val()
13
- if selected != ''
14
- activePart = window.parent.$('li.ui-tabs-active').attr('aria-controls')
15
- index = window.parent.$('#template_part_index_' + activePart).attr('data-index')
16
- data = {sub_type: selected, index: index}
17
- url = '/<%= Refinery::Core.backend_route %>/widgets/widget_types/new_for_template'
18
- $.ajax({url: url, data: data}).done (data) ->
19
- target = window.parent.$("a#add_widget_" + activePart)
20
- $(data).insertBefore(target)
21
- window.parent.initWidgets()
22
- window.parent.init_refinery_admin()
23
- window.parent.refinery_dialog_success()
24
- $('#new_widget #widget_type.page').change (event) ->
25
- selected = $(this).val()
26
- if selected != ''
27
- activePart = window.parent.$('li.ui-tabs-active').attr('aria-controls')
28
- index = window.parent.$('#template_part_index_' + activePart).attr('data-index')
29
- data = {sub_type: selected, index: index}
30
- url = '/<%= Refinery::Core.backend_route %>/widgets/widget_types/new_for_page'
31
- $.ajax({url: url, data: data}).done (data) ->
32
- target = window.parent.$("a#add_widget_" + activePart)
33
- $(data).insertBefore(target)
34
- window.parent.initWidgets()
35
- window.parent.init_refinery_admin()
36
- window.parent.refinery_dialog_success()
10
+ if $('#new_widget').length > 0
11
+ $('#new_widget .widget-list.new-page a').on 'click', (e) ->
12
+ e.preventDefault()
13
+ selectWidgetTypeForNewPage($(this).data('value'))
14
+ $('#new_widget .widget-list.template a').on 'click', (e) ->
15
+ e.preventDefault()
16
+ selectWidgetTypeForTemplate($(this).data('value'))
37
17
 
38
18
  $('[data-sortable="widgets"]').each (index, value) ->
39
19
  $(value).sortable({handle: '.handle', \
@@ -44,6 +24,32 @@ jQuery ->
44
24
  assessOrder()
45
25
  })
46
26
 
27
+ window.selectWidgetTypeForNewPage = (selected) ->
28
+ if selected != ''
29
+ activePart = window.parent.$('li.ui-tabs-active').attr('aria-controls')
30
+ index = window.parent.$('#template_part_index_' + activePart).attr('data-index')
31
+ data = {sub_type: selected, index: index}
32
+ url = '/<%= Refinery::Core.backend_route %>/widgets/widget_types/new_for_page'
33
+ $.ajax({url: url, data: data}).done (data) ->
34
+ target = window.parent.$("a#add_widget_" + activePart)
35
+ $(data).insertBefore(target)
36
+ window.parent.initWidgets()
37
+ window.parent.init_refinery_admin()
38
+ window.parent.refinery_dialog_success()
39
+
40
+ window.selectWidgetTypeForTemplate = (selected) ->
41
+ if selected != ''
42
+ activePart = window.parent.$('li.ui-tabs-active').attr('aria-controls')
43
+ index = window.parent.$('#template_part_index_' + activePart).attr('data-index')
44
+ data = {sub_type: selected, index: index}
45
+ url = '/<%= Refinery::Core.backend_route %>/widgets/widget_types/new_for_template'
46
+ $.ajax({url: url, data: data}).done (data) ->
47
+ target = window.parent.$("a#add_widget_" + activePart)
48
+ $(data).insertBefore(target)
49
+ window.parent.initWidgets()
50
+ window.parent.init_refinery_admin()
51
+ window.parent.refinery_dialog_success()
52
+
47
53
  window.initExistingWidgetSelect = () ->
48
54
  $('a.select-widget-template').click ->
49
55
  selectExistingWidgetForTemplate($(this).data('id'))
@@ -122,3 +122,34 @@ span.label-sup {
122
122
  }
123
123
 
124
124
  input.checkbox { margin-top: 8px; }
125
+
126
+ #content {
127
+ div.widget-list {
128
+ padding-left: 0;
129
+ a {
130
+ &:hover {
131
+ background-color: lighten(gray, 40%);
132
+ }
133
+ padding: 5px;
134
+ background-color: lighten(gray, 45%);
135
+ border: 1px solid lighten(gray, 20%);
136
+ border-bottom: none;
137
+ display: block;
138
+ }
139
+ a:first-of-type {
140
+ border-top-left-radius: 5px;
141
+ border-top-right-radius: 5px;
142
+ }
143
+ a:last-of-type {
144
+ border: 1px solid lighten(gray, 20%);
145
+ border-bottom-left-radius: 5px;
146
+ border-bottom-right-radius: 5px;
147
+ }
148
+ }
149
+ .left-side {
150
+ width: 50%;
151
+ }
152
+ .right-side {
153
+ width: 50%;
154
+ }
155
+ }
@@ -1,34 +1,42 @@
1
1
  #new_widget
2
- h3 Add new
3
- = select_tag :widget_type, options_for_select([['Select type...', nil]] + Refinery::Widgets::WidgetType.all.sort_by(&:name).map{|t| [t.name, t.klass_as_string] }), :class => current_page?(refinery.url_for(:action => 'page')) ? 'page' : 'template'
2
+ .left-side
3
+ h3 Add new
4
+ div class="widget-list #{current_page?(refinery.url_for(:action => 'page')) ? 'new-page' : 'template'}"
5
+ - Refinery::Widgets::WidgetType.all.sort_by(&:name).each do |widget_type|
6
+ a href='#' data-value=widget_type.klass_as_string
7
+ = widget_type.name
8
+ - if widget_type.description.present?
9
+ br
10
+ small = widget_type.description
4
11
 
5
- - if @widgets.any?
6
- h3 Select existing
7
- table.existing_widgets
8
- thead
9
- tr.titles
10
- th Name
11
- th Type
12
- - if current_page?(refinery.url_for(action: 'page'))
13
- th Pages
14
- - else
15
- th Templates
16
- th &nbsp
17
- tbody
18
- - @widgets.each do |widget|
19
- tr class = cycle('dark', 'light')
20
- td = widget.name
21
- td = widget.widget_type.name
12
+ .right-side
13
+ - if @widgets.any?
14
+ h3 Select existing
15
+ table.existing_widgets
16
+ thead
17
+ tr.titles
18
+ th Name
19
+ th Type
22
20
  - if current_page?(refinery.url_for(action: 'page'))
23
- td
24
- = widget.pages.collect{|p| p.title }.to_sentence
21
+ th Pages
25
22
  - else
26
- td
27
- = widget.templates.collect{|p| p.name }.to_sentence
28
- td
23
+ th Templates
24
+ th &nbsp
25
+ tbody
26
+ - @widgets.each do |widget|
27
+ tr class = cycle('dark', 'light')
28
+ td = widget.name
29
+ td = widget.widget_type.name
29
30
  - if current_page?(refinery.url_for(action: 'page'))
30
- = content_tag(:a, 'Select', class: 'select-widget-page',
31
- data: {id: widget.id})
31
+ td
32
+ = widget.pages.collect{|p| p.title }.to_sentence
32
33
  - else
33
- = content_tag(:a, 'Select', class: 'select-widget-template',
34
- data: {id: widget.id})
34
+ td
35
+ = widget.templates.collect{|p| p.name }.to_sentence
36
+ td
37
+ - if current_page?(refinery.url_for(action: 'page'))
38
+ = content_tag(:a, 'Select', class: 'select-widget-page',
39
+ data: {id: widget.id})
40
+ - else
41
+ = content_tag(:a, 'Select', class: 'select-widget-template',
42
+ data: {id: widget.id})
@@ -5,7 +5,7 @@ module Refinery
5
5
  config_accessor :base_widgets, :excluded_widgets,
6
6
  :additional_widgets, :super_admin_widgets
7
7
 
8
- self.base_widgets = ['Refinery::Widgets::ContentBlockWidget']
8
+ self.base_widgets = [{name: 'Refinery::Widgets::ContentBlockWidget', description: 'Text block which can include images and simple styles'}]
9
9
  self.excluded_widgets = []
10
10
  self.additional_widgets = []
11
11
  self.super_admin_widgets = []
@@ -4,9 +4,14 @@ module Refinery
4
4
 
5
5
  attr_reader :name, :klass, :html_id, :association_name, :admin_partial,
6
6
  :klass_as_string, :attribute_param, :admin_preview_partial,
7
- :front_partial
7
+ :front_partial, :description
8
8
 
9
9
  def initialize(class_as_string)
10
+ if class_as_string.is_a?(Hash)
11
+ attributes = class_as_string.dup
12
+ class_as_string = attributes[:name]
13
+ description = attributes[:description]
14
+ end
10
15
  @klass_as_string = class_as_string
11
16
  @klass = class_as_string.constantize
12
17
  @html_id = class_as_string.split('::').last.underscore
@@ -16,6 +21,7 @@ module Refinery
16
21
  @admin_preview_partial = "#{@html_id}_preview"
17
22
  @front_partial = @html_id
18
23
  @name = @html_id.humanize
24
+ @description = description || ''
19
25
  end
20
26
 
21
27
  def self.all
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinerycms-llama_widgets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ prerelease:
5
+ version: 0.3.9
5
6
  platform: ruby
6
7
  authors:
7
8
  - Nick Bolt
@@ -9,74 +10,84 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-08-28 00:00:00.000000000 Z
13
+ date: 2014-09-22 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
16
+ type: :runtime
17
+ prerelease: false
15
18
  name: refinerycms-core
16
19
  requirement: !ruby/object:Gem::Requirement
20
+ none: false
17
21
  requirements:
18
22
  - - ~>
19
23
  - !ruby/object:Gem::Version
20
24
  version: 3.0.0
21
- type: :runtime
22
- prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
27
30
  version: 3.0.0
28
31
  - !ruby/object:Gem::Dependency
32
+ type: :runtime
33
+ prerelease: false
29
34
  name: refinerycms-nested_models
30
35
  requirement: !ruby/object:Gem::Requirement
36
+ none: false
31
37
  requirements:
32
38
  - - ~>
33
39
  - !ruby/object:Gem::Version
34
40
  version: 0.1.1
35
- type: :runtime
36
- prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ~>
40
45
  - !ruby/object:Gem::Version
41
46
  version: 0.1.1
42
47
  - !ruby/object:Gem::Dependency
48
+ type: :runtime
49
+ prerelease: false
43
50
  name: slim-rails
44
51
  requirement: !ruby/object:Gem::Requirement
52
+ none: false
45
53
  requirements:
46
- - - '>='
54
+ - - ! '>='
47
55
  - !ruby/object:Gem::Version
48
56
  version: '0'
49
- type: :runtime
50
- prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
- - - '>='
60
+ - - ! '>='
54
61
  - !ruby/object:Gem::Version
55
62
  version: '0'
56
63
  - !ruby/object:Gem::Dependency
64
+ type: :runtime
65
+ prerelease: false
57
66
  name: deface
58
67
  requirement: !ruby/object:Gem::Requirement
68
+ none: false
59
69
  requirements:
60
70
  - - ~>
61
71
  - !ruby/object:Gem::Version
62
72
  version: 1.0.0
63
- type: :runtime
64
- prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
76
  - - ~>
68
77
  - !ruby/object:Gem::Version
69
78
  version: 1.0.0
70
79
  - !ruby/object:Gem::Dependency
80
+ type: :development
81
+ prerelease: false
71
82
  name: refinerycms-testing
72
83
  requirement: !ruby/object:Gem::Requirement
84
+ none: false
73
85
  requirements:
74
86
  - - ~>
75
87
  - !ruby/object:Gem::Version
76
88
  version: 2.1.0
77
- type: :development
78
- prerelease: false
79
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
80
91
  requirements:
81
92
  - - ~>
82
93
  - !ruby/object:Gem::Version
@@ -175,25 +186,26 @@ files:
175
186
  - lib/refinerycms-llama_widgets.rb
176
187
  homepage:
177
188
  licenses: []
178
- metadata: {}
179
189
  post_install_message:
180
190
  rdoc_options: []
181
191
  require_paths:
182
192
  - lib
183
193
  required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
184
195
  requirements:
185
- - - '>='
196
+ - - ! '>='
186
197
  - !ruby/object:Gem::Version
187
198
  version: '0'
188
199
  required_rubygems_version: !ruby/object:Gem::Requirement
200
+ none: false
189
201
  requirements:
190
- - - '>='
202
+ - - ! '>='
191
203
  - !ruby/object:Gem::Version
192
204
  version: '0'
193
205
  requirements: []
194
206
  rubyforge_project:
195
- rubygems_version: 2.0.14
207
+ rubygems_version: 1.8.23.2
196
208
  signing_key:
197
- specification_version: 4
209
+ specification_version: 3
198
210
  summary: Widgets extension for Refinery CMS
199
211
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: a463bfd7bb89d6d84ade195fca59fa96e9c11810
4
- data.tar.gz: 90212b90aa1f3e74a90edc15d932884db4289cd0
5
- SHA512:
6
- metadata.gz: feda320660343175de87727086dd1c6aefa349080a6eafd1a94a4bb66aafd909d040a5185981caa28d9c77a8d8f14fc0080f5a4e7ebae7d2ce800a080bdce939
7
- data.tar.gz: 1933098d8b9fac86b37a7221705b37951ea0677c44c66ad7a71584a7e0bf647da39e6bc391dc4240ee05072c02c074dfe3fa7f701310e8227de5f887cc3cf366