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.
- data/app/assets/javascripts/refinery/widgets.js.coffee.erb +33 -27
- data/app/assets/stylesheets/refinery/widgets.scss +31 -0
- data/app/views/refinery/widgets/admin/widgets/new.slim +36 -28
- data/lib/refinery/widgets/configuration.rb +1 -1
- data/lib/refinery/widgets/widget_type.rb +7 -1
- metadata +31 -19
- checksums.yaml +0 -7
@@ -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
|
11
|
-
$('#new_widget
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
-
|
3
|
-
|
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
|
-
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
th Pages
|
14
|
-
- else
|
15
|
-
th Templates
|
16
|
-
th  
|
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
|
-
|
24
|
-
= widget.pages.collect{|p| p.title }.to_sentence
|
21
|
+
th Pages
|
25
22
|
- else
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
th Templates
|
24
|
+
th  
|
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
|
-
|
31
|
-
|
31
|
+
td
|
32
|
+
= widget.pages.collect{|p| p.title }.to_sentence
|
32
33
|
- else
|
33
|
-
|
34
|
-
|
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
|
-
|
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-
|
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:
|
207
|
+
rubygems_version: 1.8.23.2
|
196
208
|
signing_key:
|
197
|
-
specification_version:
|
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
|