atlas_assets 0.6.6.1 → 0.6.7

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
- NTNiMjY5MWJhNGRjNjQzYzhhNGRlMjYzODhlZGJkMzE0N2E2ODY1NA==
4
+ MGZiMDhkMDc3ZDM3OWI0MjE3ZjIzMGU0MGU1ZGE5YjRhYWVhYTgzMg==
5
5
  data.tar.gz: !binary |-
6
- Y2FiMjRmN2NiN2QzODUyYjE3N2MxNzcyOTQwZTM5MjZlMDUzYTc2MQ==
6
+ MGViZTczY2MxYjE3YjQ5MTJjNzU5MzY2ZjI5MmU2OTcyZGU0ZmJmMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTJmMzg3YzQ3MmI5MmM3MDc5MDVmZGFjMzYyNzBlNDdkZTIwYjYwYTEwNDNi
10
- NTVmNWE3ODNmMDczNjcyMDc3YTk0NmZjN2MzZDUxMTI4ZjI4NzVmNDI2YTVh
11
- NThhYmM2OWVjYTc5ZTY4NDRhMmNiMTJmMDBkODgyNzhiNWQwZDA=
9
+ YjIyNDc0OWNiMzk0YTVkNTJlMWVmNDJlYzU3ODlkNDA1ZTZkNTk1ZDU0YjI1
10
+ NzQ0ZjBjNmM0YmM3YWJiMGI4MmI3MGQxYTVkOGJhODZkMjg4NGRmYmIyZjc5
11
+ NzZkYjFhMzU3NjM0MzhlYzZiY2ZhYzBjMTM1MDBkZmFhZDMyMjA=
12
12
  data.tar.gz: !binary |-
13
- YjJkNTFhMmRkOWM1ZDgxYTVkOTEyNzEyMzEwN2FhYjQ1MDNkY2Y1MzYzNzE4
14
- NTQxZDg4MDkwMjM2YjRiZGFhMGEyYTYyZDYzMjJjZGM4M2I4ZmQ2NTg1MDg0
15
- OWQxMjIzMzlkNzMwMjFkOTA1NWYyZjA2YzlmMzI3ZGI4NWU5ODU=
13
+ N2M5NDU3MTdkMGM1NWJkNTg3NzNlMTk1NDg2MGMyNWRkNGNkYzhiNWIzNDM4
14
+ YTRlYzk1ODM0ZDUzYjNiZGRmNWI2ZjE3NmY4YmU1OTc5NjQ5Mzg0ZWZhODk0
15
+ NjFkNTFkMzM4Y2FiYWY0NmYwNDRjMTE5MmY0NWU5YTgyODYzYzA=
data/Gemfile CHANGED
@@ -14,4 +14,5 @@ gem "rack-rewrite", "~> 1.3.3"
14
14
  gem "pygmentize", "~> 0.0.3"
15
15
  gem "kramdown", "~> 1.0.2"
16
16
  gem "coderay", "~> 1.0.9"
17
- gem "puma", "~> 2.0.1"
17
+ gem "puma", "~> 2.0.1"
18
+ gem "eco", "~> 1.0.0"
@@ -1,15 +1,16 @@
1
1
  GIT
2
2
  remote: git://github.com/ixti/jekyll-assets.git
3
- revision: 20875e89be0d460bc79e82cc741b2893d5fc0c83
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.2)
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.0)
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)
@@ -5,7 +5,6 @@
5
5
  <title>{{ page.title }}</title>
6
6
  {% stylesheet atlas_assets %}
7
7
  {% javascript atlas_assets %}
8
- <script>JST = HandlebarsTemplates</script>
9
8
  <style type="text/css">
10
9
  body {
11
10
  padding: 60px 0px;
@@ -1,3 +1 @@
1
- require 'handlebars_assets'
2
- Sprockets.append_path HandlebarsAssets.path
3
1
  require "jekyll-assets"
@@ -3,7 +3,7 @@ layout: default
3
3
  title: "Dropdowns"
4
4
  ---
5
5
 
6
- Dropdowns
6
+ Dropdowns _(deprecated)_
7
7
  ======
8
8
 
9
9
 
@@ -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>
@@ -1,7 +1,6 @@
1
1
  //= require libraries/jquery
2
2
  //= require libraries/jquery_ujs
3
3
  //= require libraries/underscore
4
- //= require handlebars.runtime
5
4
  //= require libraries/string
6
5
  //= require libraries/backbone
7
6
  //= require libraries/bootstrap
@@ -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
- @$el.html(this.template(_.extend(@opts, {models: @collection.toJSON()})))
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
+ @
@@ -27,6 +27,7 @@
27
27
  @import "atlas_assets/drop-theme-basic";
28
28
 
29
29
  @import "atlas_assets/select-theme-defaults";
30
+ @import "atlas_assets/select";
30
31
 
31
32
  @import "atlas_assets/responsive-utilities";
32
33
  @import "atlas_assets/responsive-768-979";
@@ -0,0 +1,12 @@
1
+ .select-dropdown {
2
+ display: inline-block;
3
+ margin: 6px 0;
4
+
5
+ .helper {
6
+ padding-right: 4px;
7
+ }
8
+
9
+ .dropdown-with-helper-container {
10
+ margin-right: 8px;
11
+ }
12
+ }
@@ -1,3 +1 @@
1
- require 'atlas_assets/engine'
2
- require 'handlebars_assets'
3
- HandlebarsAssets::Config.template_namespace = 'JST'
1
+ require 'atlas_assets/engine'
@@ -1,5 +1,5 @@
1
1
  module Atlas
2
2
  module Assets
3
- VERSION = "0.6.6.1"
3
+ VERSION = "0.6.7"
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.6.6.1
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-04-16 00:00:00.000000000 Z
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.hbs
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}}