atlas_assets 0.8.7 → 0.8.8

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGFjOTQ1ZTMwMDZmZDI3NjE2N2U0OWQ1MzY4ZjU3OGFhMWI1YmY4Mg==
4
+ YTczOWNhNjBhYzQ2Y2UwMTQwMzM0MWQwZWMwOTlkY2E2Nzc5NmU3OA==
5
5
  data.tar.gz: !binary |-
6
- NjU4NDhmMDMyOTBlZmQ2ZTZmNTk3OGRmMGNlYmI0ZTllMGE4ZjhiYw==
6
+ ZGFlMGQ4ODM5NjZhOWE5ZmEwOTIyZjk3M2VhNzBiZWYxMDM3MTNkYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjFjNzc0ZGViZmE1OWMzNDJhYjcwMDVhMzc1MmEwNzRhZTgwMzVkZjIyMDc1
10
- MTQ1Y2VmM2VhNzIyY2I1ZDFhYzhkMjE3ZGMyNzAwYTYyM2YwYTM0ZTViMGVk
11
- Y2NmNWQ2ZTJjMWNmNjVkMzk0YjQxMjVhNjgyMTlkOTkxODU5YmM=
9
+ ZjA4Y2RhMzQxY2U3MWUxZGU2YTc1YWQ3MDdlY2YzMGZlNDE2ZDIwZWQ0YTg0
10
+ ODhmMmU3NzgwZTdkNWYxYzNmNzk3Nzk5ZTk0NGY2NzlhYTNkOTFlMzQ0ZmEz
11
+ YzhkOGQzZGViMWExMzZlNjI4MTY4NjNkMWFiZjc3YWYxNmJhMjA=
12
12
  data.tar.gz: !binary |-
13
- NTI1NGI3OGEzM2VkMDlhYTlhNTg3OGU0MDZjM2U3MzE2MWI4MmQ0NzcyMjU0
14
- MzcyNTg2MDIwMTQ2YjRhNWZlZWFlNjlhYjk5OGU4OGRmNjI4YTgyODY3NDI2
15
- NjdiMTk1NjkwMmM4MzI5YzMwNDFkYmNiNjZjNzQyMWE0MmZjMTc=
13
+ NGRiNmQzMWYwZDhjNTVmYTJkODJhOTgyZDc5NmFlOWNmMGI3ZGNlMmZkNmQ2
14
+ YmIzODkwNTI0YzA0MjM2ODlkMDg3NDJjYWQwYzE1NTU3NzAxNGQyNzAyOTBi
15
+ MmYzNzNhYmE1M2ZlN2Q3YWZjNmZlMTRjYzFkMzRlYTc3MDg4YmY=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- atlas_assets (0.8.7)
4
+ atlas_assets (0.8.8)
5
5
  handlebars_assets (~> 0.15)
6
6
 
7
7
  GEM
@@ -5,6 +5,9 @@ title: "Dropdowns"
5
5
 
6
6
  Dropdowns
7
7
  ======
8
+ <div class="flash">
9
+ <div class="flash-item error">This dropdown is deprecated! use <a href="{% post_url 2014-05-05-select %}">Select View</a> instead.</div>
10
+ </div>
8
11
 
9
12
 
10
13
  The Dropdown is a site wide BackboneView helper using the [Chosen](http://harvesthq.github.io/chosen/) Javascript library.
@@ -51,11 +51,11 @@ To implement a SelectView with a Backbone Collection, you must pass both a colle
51
51
  ~~~js
52
52
  var select2 = new classes.SelectView({
53
53
  collection: new Backbone.Collection([
54
- {name:"Rune", key:"madsen"},
55
- {label:"Steve", key:"klise"},
56
- {label:"Zach", key:"Schwartz"}
54
+ {first:"Rune", last:"Madsen"},
55
+ {first:"Steve", last:"Klise"},
56
+ {first:"Zach", last:"Schwartz"}
57
57
  ]),
58
- label: "name",
58
+ label: "first",
59
59
  })
60
60
  $('#collection-example').html(select2.render().el)
61
61
 
@@ -65,6 +65,31 @@ select2.on('change', function (model) {
65
65
  })
66
66
  ~~~
67
67
 
68
+ You can also define a value that is different from the visible label, deactivate sorting of options and define a default option.
69
+
70
+ <div id="collection-example-b"></div>
71
+
72
+ ~~~js
73
+ var select2b = new classes.SelectView({
74
+ collection: new Backbone.Collection([
75
+ {name:"toc", prettyname:"Table of Contents"},
76
+ {name:"chapter", prettyname:"Chapter"},
77
+ {name:"sect1", prettyname:"Section1"},
78
+ ]),
79
+ label: "prettyname",
80
+ value: "name",
81
+ sort: false,
82
+ default: 'chapter'
83
+ })
84
+ $('#collection-example-b').html(select2b.render().el)
85
+
86
+ // Listen for changes
87
+ select2b.on('change', function (model) {
88
+ $('collection-example-b').append(model.get('key'))
89
+ })
90
+ ~~~
91
+
92
+
68
93
  <script>
69
94
  var select2 = new classes.SelectView({
70
95
  collection: new Backbone.Collection([
@@ -78,8 +103,28 @@ $('#collection-example').html(select2.render().el)
78
103
 
79
104
  // Listen for changes
80
105
  select2.on('change', function (model) {
81
- $('#collection-example').append(model.get('key'))
106
+ console.log(model);
107
+ $('#collection-example').append(model.get('name'))
82
108
  })
109
+
110
+ var select2b = new classes.SelectView({
111
+ collection: new Backbone.Collection([
112
+ {name:"toc", prettyname:"Table of Contents"},
113
+ {name:"chapter", prettyname:"Chapter"},
114
+ {name:"sect1", prettyname:"Section1"},
115
+ ]),
116
+ label: "prettyname",
117
+ value: "name",
118
+ sort: false,
119
+ default: 'chapter',
120
+ })
121
+ $('#collection-example-b').html(select2b.render().el)
122
+
123
+ // Listen for changes
124
+ select2b.on('change', function (model) {
125
+ $('#collection-example-b').append(model.get('label'))
126
+ })
127
+
83
128
  </script>
84
129
 
85
130
  ## Adding a Model
@@ -4,7 +4,13 @@
4
4
  <% end %>
5
5
  <select class="dropdown-list" <%= if @multiple: %>multiple<% end %> <%= if @placeholder?: %>data-placeholder='<%= @placeholder %>'<% end %>>
6
6
  <% for model in @models: %>
7
- <option <% if model.selected?: %>selected<% end %> <% if model.disabled: %>disabled<% end %>><%= model.get('label') %></option>
7
+ <option
8
+ <% if model.get('selected'): %>selected<% end %>
9
+ <% if model.get('disabled'): %>disabled<% end %>
10
+ <% if model.get('value'): %>value="<%= model.get('value') %>"<% end %>
11
+ >
12
+ <%= model.get('label') %>
13
+ </option>
8
14
  <% end %>
9
15
  </select>
10
16
  <% if @helper?: %>
@@ -15,20 +15,23 @@
15
15
 
16
16
  class classes.SelectView extends Backbone.View
17
17
 
18
- defaults: {label: 'label'}
18
+ defaults: {label: 'label', value: 'value', sort : true}
19
19
 
20
20
  initialize: (options) ->
21
21
  @rendered = false
22
22
 
23
- @label = if options.label then options.label else "label"
24
- @helper = options.helper if options.helper?
25
-
23
+ @label = if options.label then options.label else @defaults.label
24
+ @value = if options.value then options.value else false
25
+ @default= if options.default then options.default else false
26
+ @sort = if options.sort? then options.sort else @defaults.sort
27
+ @helper =options.helper if options.helper?
28
+
26
29
  # The select view needs a collection.
27
30
  if !@collection
28
31
  @collection = @collection_from_values(options.values)
29
32
  else if @collection.length > 0
30
33
  t = @
31
- @collection.each (model,@label) -> t.set_model_label(model)
34
+ @collection.each (model) -> t.set_model_attributes(model)
32
35
 
33
36
  @template = JST["templates/select"]
34
37
  @listenTo(@collection, 'add', @add_model)
@@ -39,23 +42,33 @@ class classes.SelectView extends Backbone.View
39
42
  @collection = new Backbone.Collection(_.map(values, (v) ->
40
43
  return {"label": v}
41
44
  ))
42
- @collection.comparator = "label"
43
- @collection.sort()
45
+ @collection.comparator = "label" if @sort
46
+ return @collection.sort() if @sort
47
+ return @collection
48
+
44
49
 
45
50
  add_model: (m) ->
46
- @set_model_label(m)
51
+ @set_model_attributes(m)
47
52
  select_el = @$el.find('select').first()
48
- select_el.append("<option>#{m.get('label')}</option>")
53
+ value = "value='" + m.get('value') + "'" if m.get('value')
54
+ select_el.append("<option #{value}>#{m.get('label')}</option>")
49
55
 
50
56
  sort_by_name = (a, b) ->
51
57
  a.innerHTML.toLowerCase().localeCompare(b.innerHTML.toLowerCase())
52
58
 
53
- options = select_el.children().get().sort(sort_by_name)
59
+ options = select_el.children().get()
60
+ options = options.sort(sort_by_name) if @sort
54
61
  for opt in options
55
62
  select_el.append(opt)
56
63
 
57
- set_model_label: (model) =>
64
+ set_model_attributes: (model) =>
58
65
  model.set('label',model.get(@label))
66
+ model.set('value',model.get(@value)) if @value
67
+ if @default and @value and @default is model.get(@value)
68
+ model.set('selected',true)
69
+ else if @default and !@value and @default is model.get(@label)
70
+ model.set('selected',true)
71
+ else
59
72
 
60
73
  bind_select: ->
61
74
  t = @
@@ -66,19 +79,27 @@ class classes.SelectView extends Backbone.View
66
79
  })
67
80
 
68
81
  @select.on('change', (v) ->
69
- selected_model = t.collection.find((model) -> model.get(t.label) is v.value)
82
+ if t.value
83
+ selected_model = t.collection.find((model) -> model.get(t.value) is v.value)
84
+ else
85
+ selected_model = t.collection.find((model) -> model.get(t.label) is v.value)
86
+
70
87
  t.trigger('change', selected_model)
71
88
  )
72
89
 
73
90
  get_value: -> @select.value
74
91
  get_model: ->
75
92
  value = @select.value
76
- @collection.find (model) => model.get('label') is value
93
+ if model.get('value')
94
+ @collection.find (model) => model.get('value') is value
95
+ else
96
+ @collection.find (model) => model.get('label') is value
77
97
 
78
98
  set: (value) -> @select.change(value)
79
99
 
80
100
  render: =>
81
- @collection.comparator = "label"
82
- @$el.html(@template({models:@collection.sort().models, helper:@helper})).addClass("select-dropdown")
101
+ @collection.comparator = if @value then "value" else "label"
102
+ models = if @sort then @collection.sort().models else @collection.models
103
+ @$el.html(@template({models:models, helper:@helper})).addClass("select-dropdown")
83
104
  @trigger('rendered') if !@rendered
84
- @
105
+
@@ -1,5 +1,5 @@
1
1
  module Atlas
2
2
  module Assets
3
- VERSION = "0.8.7"
3
+ VERSION = "0.8.8"
4
4
  end
5
5
  end
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.8.7
4
+ version: 0.8.8
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-10-02 00:00:00.000000000 Z
11
+ date: 2014-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: handlebars_assets