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 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}}