admin_it 1.3.3 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bbab473ebfbd6a06230e67228d9e277567adb03e
4
- data.tar.gz: cb550f18b0681090fd7ad8148be95f09bc05f83b
3
+ metadata.gz: ed2838252adc99ebf5fcd8643dbbd57dedd61212
4
+ data.tar.gz: dbb42a7dbdfbf7117344cc5c178eb160caef1235
5
5
  SHA512:
6
- metadata.gz: e21e711d41a25177494d169a02b7d236238264634eba846316cb8a95d131d140b290cc93f9192c48e879f894aeaddd0bab7bc8ea8b1cabd1f71c9396b904543f
7
- data.tar.gz: 1c044b29307eb50f9c94a8896aecdb373cc5e11ebdfaa8abdd1947e675703a6921de493747d989b5312bc327de2ef39608e8dcf905988f4387b6ab1d9afce173
6
+ metadata.gz: e093e9ff5ff82e03c4ebb3281d47cebaa969733b2b9e341ca755726a98c259e396bca5aaf7f4b43005dafca9fee09bafa7f4d0052952c649846a10d0f1a09e03
7
+ data.tar.gz: 2ede8e32d02eec21654f6e729f23985ede364ac694918e35650198f8dc86ddf84857bec63abeef6fb974adbb8ce00f4c81f7ef3f60ee31e859736d08ac714cf7
@@ -127,13 +127,19 @@ var initGeoPickers = function() {
127
127
  });
128
128
  }
129
129
 
130
+ var initSwitches = function() {
131
+ $('[data-toggle="switch"]').switch()
132
+ }
133
+
130
134
  var initControls = function() {
131
135
  initImageUploads();
132
136
  initSelects();
133
137
  initGeoPickers();
134
138
  initTiles();
139
+ initSwitches();
135
140
  }
136
141
 
142
+
137
143
  $(document).on('ready page:load', function() {
138
144
  initPartials();
139
145
  // initDialogs();
@@ -8,4 +8,5 @@
8
8
  //= require admin_it/jquery.geolocationpicker.js
9
9
  //= require select2
10
10
  //= require admin_it/file_upload.js
11
+ //= require admin_it/switch
11
12
  //= require admin_it/admin_it
@@ -0,0 +1,75 @@
1
+ // bootstrap 3 switch support:
2
+ // http://www.bootply.com/92189
3
+
4
+ (function($) {
5
+ function parseOptions(element, options) {
6
+ if (!$.isPlainObject(options)) options = {};
7
+ var opts = $.extend({}, $.fn.switch.defaults, element.data(), options);
8
+ if (opts.onValue == undefined) opts.onValue = true
9
+ if (opts.offValue == undefined) opts.offValue = false
10
+ return opts;
11
+ };
12
+
13
+ function toggle(element, options) {
14
+ var buttons = element.find('.btn');
15
+
16
+ if (element.find('.btn-primary').length > 0) buttons.toggleClass('btn-primary');
17
+ if (element.find('.btn-danger').length > 0) buttons.toggleClass('btn-danger');
18
+ if (element.find('.btn-success').length > 0) buttons.toggleClass('btn-success');
19
+ if (element.find('.btn-info').length > 0) buttons.toggleClass('btn-info');
20
+
21
+ buttons.toggleClass('btn-default').toggleClass('active');
22
+
23
+ var value = element.data('value') == options.onValue ? options.offValue : options.onValue
24
+ if (element.data('value') != undefined) element.data('value', value);
25
+ var input = element.find('input')
26
+ if (input.length > 0 && input.attr('value') != undefined) input.attr('value', value)
27
+ if ($.isFunction(options.change)) options.change(value);
28
+ element.trigger('change', [value]);
29
+ };
30
+
31
+ function set(element, options) {
32
+ if (element.data('value') == undefined) element.data('value', options.offValue);
33
+ if (options.value == undefined) options.value = options.offValue;
34
+ if (element.data('value') == options.value) return;
35
+ toggle(element, options);
36
+ };
37
+
38
+ $.fn.switch = function(action, options) {
39
+ if ($.isPlainObject(action)) options = action;
40
+ if (typeof action !== 'string') action = 'init';
41
+ return this.each(function() {
42
+ var $this = $(this);
43
+ if (!$.isPlainObject(options)) options = { value: options }
44
+ var opts = parseOptions($this, options);
45
+ if (action === 'init') {
46
+ if ($this.hasClass('switch-initialized')) return;
47
+ $this.addClass('switch-initialized');
48
+ if ($this.data('value') == undefined) $this.data('value', opts.offValue);
49
+ if ($this.find('.btn-primary,.btn-danger,.btn-success,.btn-info').length == 0) {
50
+ var btn = $this.find('.btn').removeClass('active btn-default');
51
+ var off = $this.data('value') == opts.onValue ? btn.last() : btn.first();
52
+ btn = $this.data('value') == opts.onValue ? btn.first() : btn.last();
53
+ btn.addClass('btn-primary active');
54
+ off.addClass('btn-default');
55
+ }
56
+ $this.on('click', function(evt) {
57
+ evt.preventDefault()
58
+ toggle($this, opts);
59
+ });
60
+ } else if (action === 'toggle') {
61
+ toggle($this, opts);
62
+ } else if (action === 'set' || action === 'val') {
63
+ set($this, opts);
64
+ } else if (action === 'on') {
65
+ opts.value = opts.onValue;
66
+ set($this, opts);
67
+ } else if (action === 'off') {
68
+ opts.value = opts.offValue;
69
+ set($this, opts);
70
+ }
71
+ });
72
+ };
73
+
74
+ $.fn.switch.defaults = {};
75
+ })(jQuery);
@@ -0,0 +1,10 @@
1
+ - for_context ||= context
2
+ - name ||= "#{for_context.resource.name}[#{field.name}]"
3
+ - id ||= "#{for_context.resource.name}_#{field.name}"
4
+ - value ||= field.read(for_context.entity)
5
+ - opts = { name: name, id: id, value: value }
6
+
7
+ .btn-group.btn-group-sm< data-toggle="switch" data-value=value.to_s
8
+ button.btn Да
9
+ input.form-control type="hidden" *opts
10
+ button.btn Нет
@@ -19,8 +19,8 @@ module AdminIt
19
19
  include ExtendIt::Callbacks
20
20
 
21
21
  TYPES = %i(unknown integer float string date datetime time relation enum
22
- array hash range regexp symbol binary image geo_point)
23
- EDITORS = %i(text combo radio image hidden geo_picker)
22
+ array hash range regexp symbol binary image geo_point boolean)
23
+ EDITORS = %i(text combo radio image hidden geo_picker boolean)
24
24
 
25
25
  define_callbacks :initialize
26
26
 
@@ -127,6 +127,7 @@ module AdminIt
127
127
  return @editor = :image if type == :image
128
128
  return @editor = :combo if type == :enum
129
129
  return @editor = :geo_picker if type == :geo_point
130
+ return @editor = :boolean if type == :boolean
130
131
  @editor = EDITORS[0]
131
132
  end
132
133
 
@@ -1,5 +1,5 @@
1
1
  #
2
2
  module AdminIt
3
3
  # Current gem version
4
- VERSION = '1.3.3'
4
+ VERSION = '1.3.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: admin_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Ovchinnikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-11 00:00:00.000000000 Z
11
+ date: 2014-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -255,6 +255,7 @@ files:
255
255
  - app/assets/javascript/admin_it/jquery.fileupload.js
256
256
  - app/assets/javascript/admin_it/jquery.geolocationpicker.js
257
257
  - app/assets/javascript/admin_it/jquery.ui.widget.js
258
+ - app/assets/javascript/admin_it/switch.js
258
259
  - app/assets/stylesheets/admin_it/admin_it.css
259
260
  - app/assets/stylesheets/admin_it/bootstrap-theme.min.css
260
261
  - app/assets/stylesheets/admin_it/bootstrap.min.css
@@ -268,6 +269,7 @@ files:
268
269
  - app/views/admin_it/context/_table.html.slim
269
270
  - app/views/admin_it/context/_tiles.html.slim
270
271
  - app/views/admin_it/edit.html.slim
272
+ - app/views/admin_it/editors/_boolean.html.slim
271
273
  - app/views/admin_it/editors/_combo.html.slim
272
274
  - app/views/admin_it/editors/_geo_picker.html.slim
273
275
  - app/views/admin_it/editors/_hidden.html.slim