bootstrap-filestyle-rails 1.0.6 → 1.1.0

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02b8b4d716389c6b9dd5e0dfe193477c229c7a8c
4
- data.tar.gz: f9014177ac1da048f13e069085ad2a7fd673102f
3
+ metadata.gz: a7825381a68052a8127594da8d788f6598d01012
4
+ data.tar.gz: 14eba8aacd89565768ee247b27f8e8124fa99ae8
5
5
  SHA512:
6
- metadata.gz: c733b53948df9063039508abfc7c737c7820fe0f392c219a4c1d3329a3ba94c93871aac482c10601114597d445baf7b1c00c00c9e73652971a6c5dbd4e7ae576
7
- data.tar.gz: e19259588daf05a2ac911d9421ab730cc5c6cc692d1a028f46b07b8df52f8a6adb96c3568eaf5e9d566c3ede6536928e7e312e071ce719286ac63518e8245da1
6
+ metadata.gz: 1299e95b30064d68ca3a30f741a2690b45fcdd0fec55fa8316f4c8ec9d3b4c54d8c0fbc6c92da42cd5de17d938086c2bb5bea72aeaf904b36ff8ea993281bdc9
7
+ data.tar.gz: fe1d1ba8b7c0f518f456f85b3298aaefd2721c847c8490878c629890715ac4ed8ab9c70b58d38a2cad99dbb4967a22bc99f5bd078531ffa2574eed7d17ac84d5
data/README.md CHANGED
@@ -26,9 +26,9 @@ Just require it in your `application.js`:
26
26
 
27
27
  And initialize your file input somehow:
28
28
 
29
- $(":file").filestyle(
29
+ $(":file").filestyle({
30
30
  input: false
31
- )
31
+ })
32
32
 
33
33
  You can check more configuration options in the [bootstrap-filestyle][] site.
34
34
 
@@ -1,3 +1,3 @@
1
1
  module BootstrapFilestyleRails
2
- VERSION = "1.0.6"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,9 +1,10 @@
1
1
  /*
2
2
  * bootstrap-filestyle
3
- * http://dev.tudosobreweb.com.br/bootstrap-filestyle/
3
+ * doc: http://dev.tudosobreweb.com.br/bootstrap-filestyle/
4
+ * github: https://github.com/markusslima/bootstrap-filestyle
4
5
  *
5
6
  * Copyright (c) 2014 Markus Vinicius da Silva Lima
6
- * Version 1.0.6
7
+ * Version 1.1.0
7
8
  * Licensed under the MIT license.
8
9
  */
9
10
  (function ($) {
@@ -82,7 +83,7 @@
82
83
  } else if (value === false) {
83
84
  if (this.options.icon) {
84
85
  this.options.icon = false;
85
- this.$elementFilestyle.find('i').remove();
86
+ this.$elementFilestyle.find('.glyphicon').remove();
86
87
  }
87
88
  } else {
88
89
  return this.options.icon;
@@ -100,7 +101,7 @@
100
101
  this.$elementFilestyle.prepend(this.htmlInput());
101
102
  }
102
103
 
103
- this.$elementFilestyle.find('.quant-files-filestyle').remove();
104
+ this.$elementFilestyle.find('.badge').remove();
104
105
 
105
106
  var content = '',
106
107
  files = [];
@@ -116,6 +117,8 @@
116
117
  if (content !== '') {
117
118
  this.$elementFilestyle.find(':text').val(content.replace(/\, $/g, ''));
118
119
  }
120
+
121
+ this.$elementFilestyle.find('.group-span-filestyle').addClass('input-group-btn');
119
122
  }
120
123
  } else if (value === false) {
121
124
  if (this.options.input) {
@@ -128,73 +131,60 @@
128
131
  files = this.$element[0].files;
129
132
  }
130
133
  if (files.length > 0) {
131
- var style;
132
- if (this.options.classButton.search(/btn-inverse|btn-primary|btn-danger|btn-warning|btn-success/i) !== -1) {
133
- style = 'style="background-color: #fff !important; color: 000;"';
134
- } else {
135
- style = 'style="background-color: #000 !important; color: fff;"';
136
- }
137
- this.$elementFilestyle.find('label').append(' <span '+style+' class="quant-files-filestyle badge">'+files.length+'</span>');
134
+ this.$elementFilestyle.find('label').append(' <span class="badge">'+files.length+'</span>');
138
135
  }
136
+ this.$elementFilestyle.find('.group-span-filestyle').removeClass('input-group-btn');
139
137
  }
140
138
  } else {
141
139
  return this.options.input;
142
140
  }
143
141
  },
144
142
 
145
- buttonText: function (value) {
146
- if (value !== undefined) {
147
- this.options.buttonText = value;
148
- this.$elementFilestyle.find('label span').html(this.options.buttonText);
143
+ size: function (value) {
144
+ if (value !== undefined) {
145
+ var btn = this.$elementFilestyle.find('label'),
146
+ input = this.$elementFilestyle.find('input');
147
+
148
+ btn.removeClass('btn-lg btn-sm');
149
+ input.removeClass('input-lg input-sm');
150
+ if (value != 'nr') {
151
+ btn.addClass('btn-'+value);
152
+ input.addClass('input-'+value);
153
+ }
149
154
  } else {
150
- return this.options.buttonText;
155
+ return this.options.size;
151
156
  }
152
157
  },
153
158
 
154
- classButton: function (value) {
159
+ buttonText: function (value) {
155
160
  if (value !== undefined) {
156
- this.options.classButton = value;
157
- this.$elementFilestyle.find('label').attr({'class': this.options.classButton});
158
- if (this.options.classButton.search(/btn-inverse|btn-primary|btn-danger|btn-warning|btn-success/i) !== -1) {
159
- this.$elementFilestyle.find('label i').addClass('icon-white');
160
- } else {
161
- this.$elementFilestyle.find('label i').removeClass('icon-white');
162
- }
161
+ this.options.buttonText = value;
162
+ this.$elementFilestyle.find('label span').html(this.options.buttonText);
163
163
  } else {
164
- return this.options.classButton;
164
+ return this.options.buttonText;
165
165
  }
166
166
  },
167
167
 
168
- classIcon: function (value) {
168
+ buttonName: function (value) {
169
169
  if (value !== undefined) {
170
- this.options.classIcon = value;
171
- if (this.options.classButton.search(/btn-inverse|btn-primary|btn-danger|btn-warning|btn-success/i) !== -1) {
172
- this.$elementFilestyle.find('label').find('i').attr({'class': 'icon-white '+this.options.classIcon});
173
- } else {
174
- this.$elementFilestyle.find('label').find('i').attr({'class': this.options.classIcon});
175
- }
170
+ this.options.buttonName = value;
171
+ this.$elementFilestyle.find('label').attr({'class': 'btn '+this.options.buttonName});
176
172
  } else {
177
- return this.options.classIcon;
173
+ return this.options.buttonName;
178
174
  }
179
175
  },
180
176
 
181
- classInput: function (value) {
177
+ iconName: function (value) {
182
178
  if (value !== undefined) {
183
- this.options.classInput = value;
184
- this.$elementFilestyle.find(':text').addClass(this.options.classInput);
179
+ this.$elementFilestyle.find('.glyphicon').attr({'class': '.glyphicon ' + this.options.iconName});
185
180
  } else {
186
- return this.options.classInput;
181
+ return this.options.iconName;
187
182
  }
188
183
  },
189
184
 
190
185
  htmlIcon: function () {
191
186
  if (this.options.icon) {
192
- var colorIcon = '';
193
- if (this.options.classButton.search(/btn-inverse|btn-primary|btn-danger|btn-warning|btn-success/i) !== -1) {
194
- colorIcon = ' icon-white ';
195
- }
196
-
197
- return '<i class="'+colorIcon+this.options.classIcon+'"></i> ';
187
+ return '<span class="glyphicon '+this.options.iconName+'"></span> ';
198
188
  } else {
199
189
  return '';
200
190
  }
@@ -202,7 +192,7 @@
202
192
 
203
193
  htmlInput: function () {
204
194
  if (this.options.input) {
205
- return '<input type="text" class="'+this.options.classInput+'" disabled> ';
195
+ return '<input type="text" class="form-control '+(this.options.size=='nr'?'':'input-'+this.options.size)+'" disabled> ';
206
196
  } else {
207
197
  return '';
208
198
  }
@@ -233,31 +223,28 @@
233
223
  var _self = this,
234
224
  html = '',
235
225
  id = this.$element.attr('id'),
236
- files = [];
226
+ files = [],
227
+ btn = '',
228
+ $label,
229
+ $labelFocusableContainer;
237
230
 
238
231
  if (id === '' || !id) {
239
232
  id = 'filestyle-'+$('.bootstrap-filestyle').length;
240
233
  this.$element.attr({'id': id});
241
234
  }
242
235
 
243
- if(this.options.buttonBefore) {
244
- html = '<label for="'+id+'" style="margin-right: 4px;" class="'+this.options.classButton+'" '+(this.options.disabled?'disabled="true"':'')+'>'+
245
- this.htmlIcon()+
246
- '<span>'+this.options.buttonText+'</span>'+
247
- '</label>'+
248
- this.htmlInput();
249
- } else {
250
- html = this.htmlInput()+
251
- '<label for="'+id+'" class="'+this.options.classButton+'" '+(this.options.disabled?'disabled="true"':'')+'> '+
252
- this.htmlIcon()+
253
- '<span>'+this.options.buttonText+'</span>'+
254
- '</label>';
255
- }
236
+ btn = '<span class="group-span-filestyle '+(this.options.input ? 'input-group-btn' : '') +'">'+
237
+ '<label for="'+id+'" class="btn '+this.options.buttonName+' '+(this.options.size=='nr'?'':'btn-'+this.options.size)+'" '+(this.options.disabled?'disabled="true"':'')+'>'+
238
+ this.htmlIcon()+this.options.buttonText+
239
+ '</label>'+
240
+ '</span>';
241
+
242
+ html = this.options.buttonBefore ? btn+this.htmlInput() : this.htmlInput()+btn;
256
243
 
257
- this.$elementFilestyle = $('<div class="bootstrap-filestyle" style="display: inline-block;">'+html+'</div>');
244
+ this.$elementFilestyle = $('<div class="bootstrap-filestyle input-group">'+html+'</div>');
258
245
 
259
- var $label = this.$elementFilestyle.find('label');
260
- var $labelFocusableContainer = $label.parent();
246
+ $label = this.$elementFilestyle.find('label');
247
+ $labelFocusableContainer = $label.parent();
261
248
 
262
249
  $labelFocusableContainer
263
250
  .attr('tabindex', "0")
@@ -297,21 +284,15 @@
297
284
  }
298
285
 
299
286
  if (_self.options.input == false) {
300
- var style;
301
- if (_self.options.classButton.search(/btn-inverse|btn-primary|btn-danger|btn-warning|btn-success/i) !== -1) {
302
- style = 'style="background-color: #fff !important; color: #000;"';
303
- } else {
304
- style = 'style="background-color: #000 !important; color: #fff;"';
305
- }
306
- if (_self.$elementFilestyle.find('.quant-files-filestyle').length == 0) {
307
- _self.$elementFilestyle.find('label').append(' <span '+style+' class="quant-files-filestyle badge">'+files.length+'</span>');
287
+ if (_self.$elementFilestyle.find('.badge').length == 0) {
288
+ _self.$elementFilestyle.find('label').append(' <span class="badge">'+files.length+'</span>');
308
289
  } else if (files.length == 0) {
309
- _self.$elementFilestyle.find('.quant-files-filestyle').remove();
290
+ _self.$elementFilestyle.find('.badge').remove();
310
291
  } else {
311
- _self.$elementFilestyle.find('.quant-files-filestyle').html(files.length);
292
+ _self.$elementFilestyle.find('.badge').html(files.length);
312
293
  }
313
294
  } else {
314
- _self.$elementFilestyle.find('.quant-files-filestyle').remove();
295
+ _self.$elementFilestyle.find('.badge').remove();
315
296
  }
316
297
  });
317
298
 
@@ -356,14 +337,13 @@
356
337
 
357
338
  $.fn.filestyle.defaults = {
358
339
  'buttonText': 'Choose file',
340
+ 'iconName': 'glyphicon-folder-open',
341
+ 'buttonName': 'btn-default',
342
+ 'size': 'nr',
359
343
  'input': true,
360
344
  'icon': true,
361
345
  'buttonBefore': false,
362
- 'disabled': false,
363
-
364
- 'classButton': 'btn btn-default',
365
- 'classInput': 'input-large',
366
- 'classIcon': 'icon-folder-open'
346
+ 'disabled': false
367
347
  };
368
348
 
369
349
  $.fn.filestyle.noConflict = function () {
@@ -381,11 +361,10 @@
381
361
  'icon': $this.attr('data-icon') === 'false' ? false : true,
382
362
  'buttonBefore': $this.attr('data-buttonBefore') === 'true' ? true : false,
383
363
  'disabled': $this.attr('data-disabled') === 'true' ? true : false,
384
-
364
+ 'size': $this.attr('data-size'),
385
365
  'buttonText': $this.attr('data-buttonText'),
386
- 'classButton': $this.attr('data-classButton'),
387
- 'classInput': $this.attr('data-classInput'),
388
- 'classIcon': $this.attr('data-classIcon')
366
+ 'buttonName': $this.attr('data-buttonName'),
367
+ 'iconName': $this.attr('data-iconName')
389
368
  };
390
369
 
391
370
  $this.filestyle(options);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap-filestyle-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mauricio Pasquier Juan