effective_bootstrap 0.9.12 → 0.9.17

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
  SHA256:
3
- metadata.gz: 04eb70a546766f19237112eeffeea4fb2233f8dd49d4e68e1cca3ddd082357a3
4
- data.tar.gz: 93becbeda35eac032da1f86038407ef56aecc3544f0b0ab62d8b73c267890a1e
3
+ metadata.gz: 9c76bc463f1c4a4b5c248ac9072bdb2cc971da468cf13292519e80f64d3ec693
4
+ data.tar.gz: 85349386858572224e4a1127d8afc3dbc98250751282f60e29678833eab0ee86
5
5
  SHA512:
6
- metadata.gz: 59150e0f2465c7b5182c82adbd43ab30ad349dc2dd4c624942a383f6d63ec1d74444a4311375400ea61a98ab649d90d937fa3d7e38f0f3217133855034f0c6a0
7
- data.tar.gz: 4cf279bae151632a6de342f07031bf1fe2d3da7e10a0f8a2d52630326a6e5ed4b358dbe0d3c3bea602b14201a9d4d4745f61a30424a0333df8f205b786f4d754
6
+ metadata.gz: 59b788edfb7934ad72a406d79ceab25c813c27343a4cefb0f871bc4fb026110a0646eae6df0fbc663d14168644f91b421a381b326705582c8dfb2f259f3e909d
7
+ data.tar.gz: 6cc0cbc87baa14e033a480ce895be3c0570c78639a6891017e57cd9cf105027287c5b3ed83990f38024315d76a06f56cf734b7f87a01d4814fa8ff58b1a1b832
@@ -18,6 +18,7 @@
18
18
  //= require ./effective_has_many/input
19
19
  //= require ./effective_integer/input
20
20
  //= require ./effective_number_text/input
21
+ //= require ./effective_password/input
21
22
  //= require ./effective_percent/input
22
23
  //= require ./effective_phone/input
23
24
  //= require ./effective_price/input
@@ -48,6 +48,8 @@ $(document).on 'click', '[data-effective-form-has-many-remove]', (event) ->
48
48
  event.preventDefault()
49
49
 
50
50
  $obj = $(event.currentTarget)
51
+ return unless $obj.data('confirmed') if $obj.data('confirm')
52
+
51
53
  $hasMany = $obj.closest('.form-has-many')
52
54
  return unless $hasMany.length > 0
53
55
 
@@ -0,0 +1,9 @@
1
+ # Prevent non-currency buttons from being pressed
2
+ $(document).on 'click', 'button[data-effective-password]', (event) ->
3
+ $obj = $(event.currentTarget)
4
+ $input = $obj.closest('.input-group')
5
+
6
+ $input.find('input').attr('type', $obj.data('effective-password'))
7
+ $input.find('button[data-effective-password]').toggle()
8
+
9
+ false
@@ -0,0 +1 @@
1
+ //= require ./initialize
@@ -18,6 +18,36 @@ module EffectiveBootstrapHelper
18
18
  content
19
19
  end
20
20
 
21
+ # https://getbootstrap.com/docs/4.0/components/card/
22
+ # = card('title do')
23
+ # %p Stuff
24
+ # = card('Stuff', header: 'header title')
25
+ def card(value = nil, opts = {}, &block)
26
+ raise('expected a block') unless block_given?
27
+
28
+ if value.kind_of?(Hash)
29
+ opts = value; value = nil
30
+ end
31
+
32
+ header = opts.delete(:header)
33
+ title = opts.delete(:title) || value
34
+
35
+ content_tag(:div, merge_class_key(opts, 'card mb-4')) do
36
+ header = content_tag(:div, header, class: 'card-header') if header.present?
37
+
38
+ body = content_tag(:div, class: 'card-body') do
39
+ if title.present?
40
+ content_tag(:h5, title, class: 'card-title') + capture(&block)
41
+ else
42
+ capture(&block)
43
+ end
44
+ end
45
+
46
+ header ? (header + body) : body
47
+ end
48
+ end
49
+
50
+
21
51
  # https://getbootstrap.com/docs/4.0/components/collapse/
22
52
 
23
53
  # = collapse('toggle visibility') do
@@ -1,8 +1,8 @@
1
1
  module EffectiveFormBuilderHelper
2
2
  def effective_form_with(**options, &block)
3
3
  # Compute the default ID
4
- subject = Array(options[:scope] || options[:model]).last
5
- class_name = subject.class.name.parameterize.underscore
4
+ subject = Array(options[:model] || options[:scope]).last
5
+ class_name = (options[:scope] || subject.class.name.parameterize.underscore)
6
6
  unique_id = options.except(:model).hash.abs
7
7
 
8
8
  html_id = if subject.kind_of?(Symbol)
@@ -117,7 +117,7 @@ module Effective
117
117
  fields
118
118
  end
119
119
 
120
- remove += link_to_remove(resource) if remove?
120
+ remove += link_to_remove(resource) if (remove? || resource.new_record?)
121
121
 
122
122
  content_tag(:div, render_fields(content, remove), class: 'has-many-fields')
123
123
  end
@@ -3,11 +3,25 @@ module Effective
3
3
  class PasswordField < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'form-control', id: tag_id }
6
+ { class: 'form-control effective_password', id: tag_id }
7
7
  end
8
8
 
9
9
  def input_group_options
10
- { input_group: { class: 'input-group' }, prepend: content_tag(:span, icon('lock'), class: 'input-group-text') }
10
+ { input_group: { class: 'input-group' }, append: eyes }
11
+ end
12
+
13
+ def eyes
14
+ content_tag(:button, icon('eye'),
15
+ class: 'btn input-group-text',
16
+ title: 'Show password',
17
+ 'data-effective-password': 'text'
18
+ ) +
19
+ content_tag(:button, icon('eye-off'),
20
+ class: 'btn input-group-text',
21
+ title: 'Hide password',
22
+ style: 'display: none;',
23
+ 'data-effective-password': 'password'
24
+ )
11
25
  end
12
26
 
13
27
  def feedback_options
@@ -1,6 +1,7 @@
1
1
  module Effective
2
2
  module FormInputs
3
3
  class TextField < Effective::FormInput
4
+
4
5
  end
5
6
  end
6
7
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.9.12'.freeze
2
+ VERSION = '0.9.17'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.12
4
+ version: 0.9.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-29 00:00:00.000000000 Z
11
+ date: 2021-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -440,6 +440,8 @@ files:
440
440
  - app/assets/javascripts/effective_integer/input.js
441
441
  - app/assets/javascripts/effective_number_text/initialize.js.coffee
442
442
  - app/assets/javascripts/effective_number_text/input.js
443
+ - app/assets/javascripts/effective_password/initialize.js.coffee
444
+ - app/assets/javascripts/effective_password/input.js
443
445
  - app/assets/javascripts/effective_percent/initialize.js.coffee
444
446
  - app/assets/javascripts/effective_percent/input.js
445
447
  - app/assets/javascripts/effective_phone/initialize.js.coffee