selectize-rails 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -41,6 +41,7 @@ See the [demo page of Brian Reavis](http://brianreavis.github.io/selectize.js/)
41
41
 
42
42
  | Version | Notes |
43
43
  | -------:| ----------------------------------------------------------- |
44
+ | 0.7.5 | Update to v0.7.5 of selectize.js |
44
45
  | 0.7.4 | Update to v0.7.4 of selectize.js |
45
46
  | 0.7.3 | Update to v0.7.3 of selectize.js |
46
47
  | 0.7.2 | Update to v0.7.2 of selectize.js |
@@ -1,5 +1,5 @@
1
1
  module Selectize
2
2
  module Rails
3
- VERSION = "0.7.4"
3
+ VERSION = "0.7.5"
4
4
  end
5
5
  end
@@ -463,7 +463,7 @@
463
463
  }));
464
464
 
465
465
  /**
466
- * selectize.js (v0.7.4)
466
+ * selectize.js (v0.7.5)
467
467
  * Copyright (c) 2013 Brian Reavis & contributors
468
468
  *
469
469
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -974,6 +974,7 @@
974
974
 
975
975
  self.initializePlugins(self.settings.plugins);
976
976
  self.setupCallbacks();
977
+ self.setupTemplates();
977
978
  self.setup();
978
979
  };
979
980
 
@@ -1023,8 +1024,7 @@
1023
1024
  $dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);
1024
1025
 
1025
1026
  $wrapper.css({
1026
- width: self.$input[0].style.width,
1027
- display: self.$input.css('display')
1027
+ width: self.$input[0].style.width
1028
1028
  });
1029
1029
 
1030
1030
  if (self.plugins.names.length) {
@@ -1144,6 +1144,35 @@
1144
1144
  }
1145
1145
  },
1146
1146
 
1147
+ /**
1148
+ * Sets up default rendering functions.
1149
+ */
1150
+ setupTemplates: function() {
1151
+ var self = this;
1152
+ var field_label = self.settings.labelField;
1153
+ var field_optgroup = self.settings.optgroupLabelField;
1154
+
1155
+ var templates = {
1156
+ 'optgroup': function(data) {
1157
+ return '<div class="optgroup">' + data.html + '</div>';
1158
+ },
1159
+ 'optgroup_header': function(data, escape) {
1160
+ return '<div class="optgroup-header">' + escape(data[field_optgroup]) + '</div>';
1161
+ },
1162
+ 'option': function(data, escape) {
1163
+ return '<div class="option">' + escape(data[field_label]) + '</div>';
1164
+ },
1165
+ 'item': function(data, escape) {
1166
+ return '<div class="item">' + escape(data[field_label]) + '</div>';
1167
+ },
1168
+ 'option_create': function(data, escape) {
1169
+ return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>';
1170
+ },
1171
+ };
1172
+
1173
+ self.settings.render = $.extend({}, templates, self.settings.render);
1174
+ },
1175
+
1147
1176
  /**
1148
1177
  * Maps fired events to callbacks provided
1149
1178
  * in the settings used when creating the control.
@@ -2555,29 +2584,7 @@
2555
2584
  }
2556
2585
 
2557
2586
  // render markup
2558
- if (self.settings.render && typeof self.settings.render[templateName] === 'function') {
2559
- html = self.settings.render[templateName].apply(this, [data, escape_html]);
2560
- } else {
2561
- label = data[self.settings.labelField];
2562
- switch (templateName) {
2563
- case 'optgroup':
2564
- html = '<div class="optgroup">' + data.html + "</div>";
2565
- break;
2566
- case 'optgroup_header':
2567
- label = data[self.settings.optgroupLabelField];
2568
- html = '<div class="optgroup-header">' + escape_html(label) + '</div>';
2569
- break;
2570
- case 'option':
2571
- html = '<div class="option">' + escape_html(label) + '</div>';
2572
- break;
2573
- case 'item':
2574
- html = '<div class="item">' + escape_html(label) + '</div>';
2575
- break;
2576
- case 'option_create':
2577
- html = '<div class="create">Add <strong>' + escape_html(data.input) + '</strong>&hellip;</div>';
2578
- break;
2579
- }
2580
- }
2587
+ html = self.settings.render[templateName].apply(this, [data, escape_html]);
2581
2588
 
2582
2589
  // add mandatory attributes
2583
2590
  if (templateName === 'option' || templateName === 'option_create') {
@@ -2923,25 +2930,45 @@
2923
2930
  });
2924
2931
 
2925
2932
  Selectize.define('remove_button', function(options) {
2926
- var self = this;
2933
+ if (this.settings.mode === 'single') return;
2927
2934
 
2928
- if (self.settings.mode === 'single') {
2929
- return;
2930
- }
2935
+ options = $.extend({
2936
+ label : '&times;',
2937
+ title : 'Remove',
2938
+ className : 'remove',
2939
+ append : true,
2940
+ }, options);
2941
+
2942
+ var self = this;
2943
+ var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
2931
2944
 
2932
- // override the item rendering method to add a "x" to each
2933
- this.settings.render.item = function(data) {
2934
- var label = data[self.settings.labelField];
2935
- return '<div class="item">' + label + ' <a href="javascript:void(0)" class="remove" tabindex="-1" title="Remove">&times;</a></div>';
2945
+ /**
2946
+ * Appends an element as a child (with raw HTML).
2947
+ *
2948
+ * @param {string} html_container
2949
+ * @param {string} html_element
2950
+ * @return {string}
2951
+ */
2952
+ var append = function(html_container, html_element) {
2953
+ var pos = html_container.search(/(<\/[^>]+>\s*)$/);
2954
+ return html_container.substring(0, pos) + html_element + html_container.substring(pos);
2936
2955
  };
2937
2956
 
2938
- // override the setup method to add an extra "click" handler
2939
- // that listens for mousedown events on the "x"
2940
2957
  this.setup = (function() {
2941
2958
  var original = self.setup;
2942
2959
  return function() {
2960
+ // override the item rendering method to add the button to each
2961
+ if (options.append) {
2962
+ var render_item = self.settings.render.item;
2963
+ self.settings.render.item = function(data) {
2964
+ return append(render_item.apply(this, arguments), html);
2965
+ };
2966
+ }
2967
+
2943
2968
  original.apply(this, arguments);
2944
- this.$control.on('click', '.remove', function(e) {
2969
+
2970
+ // add event listener
2971
+ this.$control.on('click', '.' + options.className, function(e) {
2945
2972
  e.preventDefault();
2946
2973
  var $item = $(e.target).parent();
2947
2974
  self.setActiveItem($item);
@@ -2949,6 +2976,7 @@
2949
2976
  self.setCaret(self.items.length);
2950
2977
  }
2951
2978
  });
2979
+
2952
2980
  };
2953
2981
  })();
2954
2982
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * selectize.bootstrap2.css (v0.7.4) - Bootstrap 2 Theme
2
+ * selectize.bootstrap2.css (v0.7.5) - Bootstrap 2 Theme
3
3
  * Copyright (c) 2013 Brian Reavis & contributors
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
79
79
  border-top: 0 none;
80
80
  }
81
81
 
82
- .selectize-control.plugin-remove_button .item {
82
+ .selectize-control.plugin-remove_button [data-value] {
83
83
  position: relative;
84
84
  padding-right: 24px !important;
85
85
  }
86
86
 
87
- .selectize-control.plugin-remove_button .item .remove {
87
+ .selectize-control.plugin-remove_button [data-value] .remove {
88
88
  position: absolute;
89
89
  top: 0;
90
90
  right: 0;
@@ -107,11 +107,11 @@
107
107
  box-sizing: border-box;
108
108
  }
109
109
 
110
- .selectize-control.plugin-remove_button .item .remove:hover {
110
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
111
111
  background: rgba(0, 0, 0, 0.05);
112
112
  }
113
113
 
114
- .selectize-control.plugin-remove_button .item.active .remove {
114
+ .selectize-control.plugin-remove_button [data-value].active .remove {
115
115
  border-left-color: #0077b3;
116
116
  }
117
117
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * selectize.bootstrap3.css (v0.7.4) - Bootstrap 3 Theme
2
+ * selectize.bootstrap3.css (v0.7.5) - Bootstrap 3 Theme
3
3
  * Copyright (c) 2013 Brian Reavis & contributors
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
79
79
  border-top: 0 none;
80
80
  }
81
81
 
82
- .selectize-control.plugin-remove_button .item {
82
+ .selectize-control.plugin-remove_button [data-value] {
83
83
  position: relative;
84
84
  padding-right: 24px !important;
85
85
  }
86
86
 
87
- .selectize-control.plugin-remove_button .item .remove {
87
+ .selectize-control.plugin-remove_button [data-value] .remove {
88
88
  position: absolute;
89
89
  top: 0;
90
90
  right: 0;
@@ -107,11 +107,11 @@
107
107
  box-sizing: border-box;
108
108
  }
109
109
 
110
- .selectize-control.plugin-remove_button .item .remove:hover {
110
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
111
111
  background: rgba(0, 0, 0, 0.05);
112
112
  }
113
113
 
114
- .selectize-control.plugin-remove_button .item.active .remove {
114
+ .selectize-control.plugin-remove_button [data-value].active .remove {
115
115
  border-left-color: rgba(0, 0, 0, 0);
116
116
  }
117
117
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * selectize.css (v0.7.4)
2
+ * selectize.css (v0.7.5)
3
3
  * Copyright (c) 2013 Brian Reavis & contributors
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
79
79
  border-top: 0 none;
80
80
  }
81
81
 
82
- .selectize-control.plugin-remove_button .item {
82
+ .selectize-control.plugin-remove_button [data-value] {
83
83
  position: relative;
84
84
  padding-right: 24px !important;
85
85
  }
86
86
 
87
- .selectize-control.plugin-remove_button .item .remove {
87
+ .selectize-control.plugin-remove_button [data-value] .remove {
88
88
  position: absolute;
89
89
  top: 0;
90
90
  right: 0;
@@ -107,11 +107,11 @@
107
107
  box-sizing: border-box;
108
108
  }
109
109
 
110
- .selectize-control.plugin-remove_button .item .remove:hover {
110
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
111
111
  background: rgba(0, 0, 0, 0.05);
112
112
  }
113
113
 
114
- .selectize-control.plugin-remove_button .item.active .remove {
114
+ .selectize-control.plugin-remove_button [data-value].active .remove {
115
115
  border-left-color: #cacaca;
116
116
  }
117
117
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * selectize.default.css (v0.7.4) - Default Theme
2
+ * selectize.default.css (v0.7.5) - Default Theme
3
3
  * Copyright (c) 2013 Brian Reavis & contributors
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
79
79
  border-top: 0 none;
80
80
  }
81
81
 
82
- .selectize-control.plugin-remove_button .item {
82
+ .selectize-control.plugin-remove_button [data-value] {
83
83
  position: relative;
84
84
  padding-right: 24px !important;
85
85
  }
86
86
 
87
- .selectize-control.plugin-remove_button .item .remove {
87
+ .selectize-control.plugin-remove_button [data-value] .remove {
88
88
  position: absolute;
89
89
  top: 0;
90
90
  right: 0;
@@ -107,11 +107,11 @@
107
107
  box-sizing: border-box;
108
108
  }
109
109
 
110
- .selectize-control.plugin-remove_button .item .remove:hover {
110
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
111
111
  background: rgba(0, 0, 0, 0.05);
112
112
  }
113
113
 
114
- .selectize-control.plugin-remove_button .item.active .remove {
114
+ .selectize-control.plugin-remove_button [data-value].active .remove {
115
115
  border-left-color: #00578d;
116
116
  }
117
117
 
@@ -403,12 +403,12 @@
403
403
  }
404
404
 
405
405
  .selectize-dropdown .optgroup-header {
406
+ padding-top: 7px;
406
407
  font-size: 0.85em;
407
408
  font-weight: bold;
408
409
  }
409
410
 
410
411
  .selectize-dropdown .optgroup {
411
- padding-top: 4px;
412
412
  border-top: 1px solid #f0f0f0;
413
413
  }
414
414
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * selectize.legacy.css (v0.7.4) - Default Theme
2
+ * selectize.legacy.css (v0.7.5) - Default Theme
3
3
  * Copyright (c) 2013 Brian Reavis & contributors
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
79
79
  border-top: 0 none;
80
80
  }
81
81
 
82
- .selectize-control.plugin-remove_button .item {
82
+ .selectize-control.plugin-remove_button [data-value] {
83
83
  position: relative;
84
84
  padding-right: 24px !important;
85
85
  }
86
86
 
87
- .selectize-control.plugin-remove_button .item .remove {
87
+ .selectize-control.plugin-remove_button [data-value] .remove {
88
88
  position: absolute;
89
89
  top: 0;
90
90
  right: 0;
@@ -107,11 +107,11 @@
107
107
  box-sizing: border-box;
108
108
  }
109
109
 
110
- .selectize-control.plugin-remove_button .item .remove:hover {
110
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
111
111
  background: rgba(0, 0, 0, 0.05);
112
112
  }
113
113
 
114
- .selectize-control.plugin-remove_button .item.active .remove {
114
+ .selectize-control.plugin-remove_button [data-value].active .remove {
115
115
  border-left-color: #6f9839;
116
116
  }
117
117
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selectize-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-03 00:00:00.000000000 Z
12
+ date: 2013-09-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler