atlas_assets 0.6.6.1 → 0.6.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile +2 -1
- data/Gemfile.lock +11 -4
- data/docs/_layouts/default.html +0 -1
- data/docs/_plugins/jekyll_assets.rb +0 -2
- data/docs/_posts/2013-10-28-dropdown.md +1 -1
- data/docs/_posts/2014-05-05-select.md +116 -0
- data/lib/assets/javascripts/atlas_assets.js +0 -1
- data/lib/assets/javascripts/templates/dropdown.jst.eco +12 -0
- data/lib/assets/javascripts/templates/select.jst.eco +12 -0
- data/lib/assets/javascripts/views/dropdown_view.coffee +3 -2
- data/lib/assets/javascripts/views/select.coffee +63 -0
- data/lib/assets/stylesheets/atlas_assets.scss +1 -0
- data/lib/assets/stylesheets/atlas_assets/_select.scss +12 -0
- data/lib/atlas_assets.rb +1 -3
- data/lib/atlas_assets/version.rb +1 -1
- metadata +7 -3
- data/lib/assets/javascripts/templates/dropdown.hbs +0 -12
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MGZiMDhkMDc3ZDM3OWI0MjE3ZjIzMGU0MGU1ZGE5YjRhYWVhYTgzMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGViZTczY2MxYjE3YjQ5MTJjNzU5MzY2ZjI5MmU2OTcyZGU0ZmJmMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjIyNDc0OWNiMzk0YTVkNTJlMWVmNDJlYzU3ODlkNDA1ZTZkNTk1ZDU0YjI1
|
10
|
+
NzQ0ZjBjNmM0YmM3YWJiMGI4MmI3MGQxYTVkOGJhODZkMjg4NGRmYmIyZjc5
|
11
|
+
NzZkYjFhMzU3NjM0MzhlYzZiY2ZhYzBjMTM1MDBkZmFhZDMyMjA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2M5NDU3MTdkMGM1NWJkNTg3NzNlMTk1NDg2MGMyNWRkNGNkYzhiNWIzNDM4
|
14
|
+
YTRlYzk1ODM0ZDUzYjNiZGRmNWI2ZjE3NmY4YmU1OTc5NjQ5Mzg0ZWZhODk0
|
15
|
+
NjFkNTFkMzM4Y2FiYWY0NmYwNDRjMTE5MmY0NWU5YTgyODYzYzA=
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/ixti/jekyll-assets.git
|
3
|
-
revision:
|
3
|
+
revision: 4ce7eeb9eb4af29b14b77ba32addf05889f6961c
|
4
4
|
specs:
|
5
5
|
jekyll-assets (0.7.7)
|
6
6
|
jekyll (~> 1.0)
|
7
|
+
sass
|
7
8
|
sprockets (~> 2.10)
|
8
9
|
|
9
10
|
PATH
|
10
11
|
remote: .
|
11
12
|
specs:
|
12
|
-
atlas_assets (0.6.6)
|
13
|
+
atlas_assets (0.6.6.1)
|
13
14
|
handlebars_assets (~> 0.15)
|
14
15
|
|
15
16
|
GEM
|
@@ -26,6 +27,11 @@ GEM
|
|
26
27
|
commander (4.1.6)
|
27
28
|
highline (~> 1.6.11)
|
28
29
|
directory_watcher (1.4.1)
|
30
|
+
eco (1.0.0)
|
31
|
+
coffee-script
|
32
|
+
eco-source
|
33
|
+
execjs
|
34
|
+
eco-source (1.1.0.rc.1)
|
29
35
|
execjs (2.0.2)
|
30
36
|
fast-stemmer (1.0.2)
|
31
37
|
handlebars_assets (0.15)
|
@@ -48,7 +54,7 @@ GEM
|
|
48
54
|
kramdown (1.0.2)
|
49
55
|
liquid (2.5.5)
|
50
56
|
maruku (0.7.1)
|
51
|
-
multi_json (1.9.
|
57
|
+
multi_json (1.9.3)
|
52
58
|
posix-spawn (0.3.8)
|
53
59
|
puma (2.0.1)
|
54
60
|
rack (>= 1.1, < 2.0)
|
@@ -63,7 +69,7 @@ GEM
|
|
63
69
|
rake (10.0.4)
|
64
70
|
safe_yaml (0.7.1)
|
65
71
|
sass (3.2.19)
|
66
|
-
sprockets (2.12.
|
72
|
+
sprockets (2.12.1)
|
67
73
|
hike (~> 1.2)
|
68
74
|
multi_json (~> 1.0)
|
69
75
|
rack (~> 1.0)
|
@@ -78,6 +84,7 @@ DEPENDENCIES
|
|
78
84
|
atlas_assets!
|
79
85
|
coderay (~> 1.0.9)
|
80
86
|
coffee-script
|
87
|
+
eco
|
81
88
|
jekyll (~> 1.0.2)
|
82
89
|
jekyll-assets!
|
83
90
|
kramdown (~> 1.0.2)
|
data/docs/_layouts/default.html
CHANGED
@@ -0,0 +1,116 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: "Select View"
|
4
|
+
---
|
5
|
+
|
6
|
+
Select View
|
7
|
+
======
|
8
|
+
|
9
|
+
`classes.SelectView` is a wrapper for the `Select.js` library.
|
10
|
+
|
11
|
+
## Simple Array Example
|
12
|
+
|
13
|
+
The SelectView can be implemented with a simple array. It will construct a Backbone Collection out of the array of values that you pass.
|
14
|
+
|
15
|
+
<div id="simple-array"></div>
|
16
|
+
|
17
|
+
~~~js
|
18
|
+
var select1 = new classes.SelectView({
|
19
|
+
values: ["Rune","Steve","Zach"],
|
20
|
+
helper: "Owner"
|
21
|
+
})
|
22
|
+
$('#simple-array').html(select1.render().el)
|
23
|
+
|
24
|
+
// Listen for change events
|
25
|
+
select1.on("change", function (model) {
|
26
|
+
console.log(model)
|
27
|
+
$('#simple-array').append(model.get('label'))
|
28
|
+
})
|
29
|
+
~~~
|
30
|
+
|
31
|
+
<script>
|
32
|
+
var select1 = new classes.SelectView({
|
33
|
+
values: ["Rune","Steve","Zach"],
|
34
|
+
helper: "Owner"
|
35
|
+
})
|
36
|
+
$('#simple-array').html(select1.render().el)
|
37
|
+
|
38
|
+
// Listen for change events
|
39
|
+
select1.on("change", function (model) {
|
40
|
+
console.log(model)
|
41
|
+
$('#simple-array').append(model.get('label'))
|
42
|
+
})
|
43
|
+
</script>
|
44
|
+
|
45
|
+
## Backbone Collection
|
46
|
+
|
47
|
+
To implement a SelectView with a Backbone Collection, you must pass both a collection and specify which attribute is to be the label.
|
48
|
+
|
49
|
+
<div id="collection-example"></div>
|
50
|
+
|
51
|
+
~~~js
|
52
|
+
var select2 = new classes.SelectView({
|
53
|
+
collection: new Backbone.Collection([
|
54
|
+
{name:"Rune", key:"madsen"},
|
55
|
+
{label:"Steve", key:"klise"},
|
56
|
+
{label:"Zach", key:"Schwartz"}
|
57
|
+
]),
|
58
|
+
label: "name",
|
59
|
+
})
|
60
|
+
$('#collection-example').html(select2.render().el)
|
61
|
+
|
62
|
+
// Listen for changes
|
63
|
+
select2.on('change', function (model) {
|
64
|
+
$('collection-example').append(model.get('key'))
|
65
|
+
})
|
66
|
+
~~~
|
67
|
+
|
68
|
+
<script>
|
69
|
+
var select2 = new classes.SelectView({
|
70
|
+
collection: new Backbone.Collection([
|
71
|
+
{name:"Rune", key:"madsen"},
|
72
|
+
{name:"Steve", key:"klise"},
|
73
|
+
{name:"Zach", key:"schwartz"}
|
74
|
+
]),
|
75
|
+
label: "name",
|
76
|
+
})
|
77
|
+
$('#collection-example').html(select2.render().el)
|
78
|
+
|
79
|
+
// Listen for changes
|
80
|
+
select2.on('change', function (model) {
|
81
|
+
$('#collection-example').append(model.get('key'))
|
82
|
+
})
|
83
|
+
</script>
|
84
|
+
|
85
|
+
|
86
|
+
## Helpers
|
87
|
+
|
88
|
+
You can also add helper text!
|
89
|
+
|
90
|
+
<div id="helper-example"></div>
|
91
|
+
|
92
|
+
~~~js
|
93
|
+
var select3 = new classes.SelectView({
|
94
|
+
collection: new Backbone.Collection([
|
95
|
+
{name:"Rune", key:"madsen"},
|
96
|
+
{name:"Steve", key:"klise"},
|
97
|
+
{name:"Zach", key:"schwartz"}
|
98
|
+
]),
|
99
|
+
helper: "NAMES!",
|
100
|
+
label: "name",
|
101
|
+
})
|
102
|
+
$('#helper-example').html(select3.render().el)
|
103
|
+
~~~
|
104
|
+
|
105
|
+
<script>
|
106
|
+
var select3 = new classes.SelectView({
|
107
|
+
collection: new Backbone.Collection([
|
108
|
+
{name:"Rune", key:"madsen"},
|
109
|
+
{name:"Steve", key:"klise"},
|
110
|
+
{name:"Zach", key:"schwartz"}
|
111
|
+
]),
|
112
|
+
helper: "NAMES!",
|
113
|
+
label: "name",
|
114
|
+
})
|
115
|
+
$('#helper-example').html(select3.render().el)
|
116
|
+
</script>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% if @helper?: %>
|
2
|
+
<span class="helper"><%= @helper%></span>
|
3
|
+
<div class="dropdown-with-helper-container">
|
4
|
+
<% end %>
|
5
|
+
<select class="dropdown-list" <% if @multiple: %>multiple<% end %> <% if @placeholder?: %>data-placeholder='<%= @placeholder %>'<% end %>>
|
6
|
+
<% for model in @models: %>
|
7
|
+
<option <% if model.selected?: %>selected<% end %> <% if model.disabled: %>disabled<% end %>><%= model.label %></option>
|
8
|
+
<% end %>
|
9
|
+
</select>
|
10
|
+
<% if @helper?: %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% if @helper?: %>
|
2
|
+
<span class="helper"><%= @helper %>:</span>
|
3
|
+
<div class="dropdown-with-helper-container">
|
4
|
+
<% end %>
|
5
|
+
<select class="dropdown-list" <% if @multiple: %>multiple<% end %> <% if @placeholder?: %>data-placeholder='<%= @placeholder %>'<% end %>>
|
6
|
+
<% for model in @models: %>
|
7
|
+
<option <% if model.selected?: %>selected<% end %> <% if model.disabled: %>disabled<% end %>><%= model.get('label') %></option>
|
8
|
+
<% end %>
|
9
|
+
</select>
|
10
|
+
<% if @helper?: %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -7,7 +7,7 @@ classes.DropdownView = Backbone.View.extend
|
|
7
7
|
if !@collection?
|
8
8
|
@collection = new classes.DropdownCollection
|
9
9
|
@opts = _.extend({width: "100%", disable_search_threshold: 4}, opts)
|
10
|
-
@template = JST["dropdown"];
|
10
|
+
@template = JST["templates/dropdown"];
|
11
11
|
@listenTo(@collection, 'add', @render)
|
12
12
|
@collection.each (model) =>
|
13
13
|
@set_default(model)
|
@@ -24,7 +24,8 @@ classes.DropdownView = Backbone.View.extend
|
|
24
24
|
|
25
25
|
render: () ->
|
26
26
|
@rendered = true;
|
27
|
-
|
27
|
+
t = @
|
28
|
+
@$el.html(t.template(_.extend(@opts, {models: @collection.toJSON()})))
|
28
29
|
|
29
30
|
this.delegateEvents();
|
30
31
|
@$('.dropdown-list').chosen({width: @opts.width, disable_search_threshold: @opts.disable_search_threshold}).change((e,selected) =>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# Two ways to createa a Select dropdown
|
2
|
+
#
|
3
|
+
# Start with a Backbone Collection and a specified label
|
4
|
+
#
|
5
|
+
# select_view = new classes.SelectView({
|
6
|
+
# collection:some_collection,
|
7
|
+
# label: "name"
|
8
|
+
# })
|
9
|
+
#
|
10
|
+
# Start with an array
|
11
|
+
#
|
12
|
+
# select_view = new classes.SelectView({
|
13
|
+
# values: ["rune","steve","zach"]
|
14
|
+
# })
|
15
|
+
|
16
|
+
class classes.SelectView extends Backbone.View
|
17
|
+
|
18
|
+
defaults: {label: 'label'}
|
19
|
+
className: "select-dropdown"
|
20
|
+
|
21
|
+
initialize: (options) ->
|
22
|
+
@rendered = false
|
23
|
+
|
24
|
+
@label = if options.label then options.label else "label"
|
25
|
+
@helper = options.helper if options.helper?
|
26
|
+
|
27
|
+
# The select view needs a collection.
|
28
|
+
if !@collection
|
29
|
+
@collection = @collection_from_values(options.values)
|
30
|
+
else if @collection.length > 0
|
31
|
+
t = @
|
32
|
+
@collection.each (model,@label) -> t.set_model_label(model)
|
33
|
+
|
34
|
+
@template = JST["templates/select"]
|
35
|
+
@listenTo(@collection, 'add', @add_model)
|
36
|
+
@listenTo(@collection, 'remove', @render)
|
37
|
+
@listenTo(@, 'rendered', @bind_select)
|
38
|
+
|
39
|
+
collection_from_values: (values) ->
|
40
|
+
@collection = new Backbone.Collection(_.map(values, (v) ->
|
41
|
+
return {"label": v}
|
42
|
+
))
|
43
|
+
|
44
|
+
add_model: (m) ->
|
45
|
+
@set_model_label(m)
|
46
|
+
@render().el
|
47
|
+
|
48
|
+
set_model_label: (model) =>
|
49
|
+
model.set('label',model.get(@label))
|
50
|
+
|
51
|
+
bind_select: ->
|
52
|
+
t = @
|
53
|
+
@rendered = true
|
54
|
+
@select = new Select({el: @$el.find('select')[0] })
|
55
|
+
@select.on('change', (v) ->
|
56
|
+
selected_model = t.collection.find((m) -> m.get(t.label) is v.value)
|
57
|
+
t.trigger('change', selected_model)
|
58
|
+
)
|
59
|
+
|
60
|
+
render: ->
|
61
|
+
@$el.html(@template({models:@collection.models, helper:@helper}))
|
62
|
+
@trigger('rendered') if !@rendered
|
63
|
+
@
|
data/lib/atlas_assets.rb
CHANGED
data/lib/atlas_assets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atlas_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rune Skjoldborg Madsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: handlebars_assets
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- docs/_posts/2013-10-28-dropdown.md
|
62
62
|
- docs/_posts/2014-03-12-drop.md
|
63
63
|
- docs/_posts/2014-04-03-keypress.md
|
64
|
+
- docs/_posts/2014-05-05-select.md
|
64
65
|
- docs/_posts/2014-2-10-colors.md
|
65
66
|
- docs/glyphicons-license.txt
|
66
67
|
- docs/index.html
|
@@ -96,8 +97,10 @@ files:
|
|
96
97
|
- lib/assets/javascripts/libraries/underscore.js
|
97
98
|
- lib/assets/javascripts/models/dropdown.coffee
|
98
99
|
- lib/assets/javascripts/tabs.js
|
99
|
-
- lib/assets/javascripts/templates/dropdown.
|
100
|
+
- lib/assets/javascripts/templates/dropdown.jst.eco
|
101
|
+
- lib/assets/javascripts/templates/select.jst.eco
|
100
102
|
- lib/assets/javascripts/views/dropdown_view.coffee
|
103
|
+
- lib/assets/javascripts/views/select.coffee
|
101
104
|
- lib/assets/stylesheets/atlas_assets.scss
|
102
105
|
- lib/assets/stylesheets/atlas_assets/_boxes.scss
|
103
106
|
- lib/assets/stylesheets/atlas_assets/_button-groups.scss
|
@@ -122,6 +125,7 @@ files:
|
|
122
125
|
- lib/assets/stylesheets/atlas_assets/_responsive-767.scss
|
123
126
|
- lib/assets/stylesheets/atlas_assets/_responsive-768-979.scss
|
124
127
|
- lib/assets/stylesheets/atlas_assets/_responsive-utilities.scss
|
128
|
+
- lib/assets/stylesheets/atlas_assets/_select.scss
|
125
129
|
- lib/assets/stylesheets/atlas_assets/_tabs.scss
|
126
130
|
- lib/assets/stylesheets/atlas_assets/_utilities.scss
|
127
131
|
- lib/assets/stylesheets/atlas_assets/_variables.scss
|
@@ -1,12 +0,0 @@
|
|
1
|
-
{{#if helper}}
|
2
|
-
<span class="helper">{{helper}}</span>
|
3
|
-
<div class="dropdown-with-helper-container">
|
4
|
-
{{/if}}
|
5
|
-
<select class="dropdown-list" {{#if multiple}}multiple{{/if}} {{#if placeholder}}data-placeholder='{{placeholder}}'{{/if}}>
|
6
|
-
{{#each models}}
|
7
|
-
<option {{#if selected}}selected{{/if}} {{#if disabled}}disabled{{/if}}>{{label}}</option>
|
8
|
-
{{/each}}
|
9
|
-
</select>
|
10
|
-
{{#if helper}}
|
11
|
-
</div>
|
12
|
-
{{/if}}
|