refinerycms-llama_widgets 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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