record_collection 0.10.0 → 0.10.1

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: e654f6b5c7b1ed264fc6ef308f6796cd2f2d2d73
4
- data.tar.gz: 34ab6394a4d3f8f48b9f586e9affbbe6857f6f06
3
+ metadata.gz: 3d074f869d99ecf6e034ce94c81bbf041cab5416
4
+ data.tar.gz: 34655d94e3c4d2fe95771cca7f7bcb2c6a70d863
5
5
  SHA512:
6
- metadata.gz: f9857ed54b6d7fb8afa92a60214288914cb480446cc377ad4666237103dca381b4e8082244475ac43210e167c3079be55f2d4bda5a8646050e05f45e2ac9cafc
7
- data.tar.gz: fa18d0aa9fe61206460f21e1aec97076231922fd292abaf50c4e801c019e136c66c505f0ea3dddfdb068297e3f41a3a46c74f0ded91eb6c69ab2cc6c21f28f4b
6
+ metadata.gz: ea293bbdd54ed4184d60495c139b1cb83707d7a9e13227b384787825c485285cccd8a98f6774505dca4baa1a8b9ffdcf8d014616cb3b805850cb76bece422360
7
+ data.tar.gz: 803da8176458262709b914ef5f57fc167f260071ba0bd4ea35f67de4639d898fd47e97c95a45adac6731eae53f5051da19080c8b93aee42970d11e3dc712e71c
@@ -1,6 +1,11 @@
1
1
  CHANGELOG
2
2
  =========
3
3
 
4
+ 2015-12-26 - v0.10.1
5
+ --------------------
6
+ ### Added
7
+ * Add hint option for optional booleans
8
+
4
9
  2015-12-25 - v0.10.0
5
10
  --------------------
6
11
  ### Changed
@@ -11,12 +11,13 @@ class Optionals
11
11
  @prependActivator(container)
12
12
 
13
13
  # Replace the <input type="checkbox"> for a <input type="hidden" # value="0|1"> fields
14
- # managed by the javascript
14
+ # managed by the javascript. The strategy is to completely rebuild the html structure
15
15
  optionalBoolean: (container)->
16
16
  check_box = container.find('input')
17
17
  initially_checked = check_box.is(':checked')
18
18
  field_name = check_box.attr('name')
19
19
  one = container.data('one')
20
+ hint_field = container.find('.optional-attribute-hint')
20
21
 
21
22
  label_text = container.find('label').text()
22
23
 
@@ -62,6 +63,7 @@ class Optionals
62
63
  container.append label
63
64
  container.append value_toggle
64
65
  container.append value_field
66
+ container.append hint_field if hint_field.length
65
67
  activator_toggle.hide() if one
66
68
 
67
69
  prependActivator: (container)->
@@ -54,3 +54,29 @@ $unchecked-color: #999
54
54
  &:not(.disabled)
55
55
  .optional-boolean-toggle
56
56
  cursor: pointer
57
+ .optional-attribute-hint
58
+ @extend .fa, .fa-2x, .fa-info-circle
59
+ margin-left: 10px
60
+ color: #888
61
+ cursor: pointer
62
+ position: relative
63
+ &::after
64
+ content: attr(data-hint)
65
+ font-size: 10px
66
+ position: absolute
67
+ z-index: 999
68
+ white-space: nowrap
69
+ bottom: 9999px
70
+ left: 80%
71
+ background-color: #000
72
+ color: #e0e0e0
73
+ padding: 0px 7px
74
+ line-height: 24px
75
+ height: 24px
76
+ opacity: 0
77
+ transition: opacity 0.4s ease-out
78
+ &:hover
79
+ color: #3636BD
80
+ &::after
81
+ opacity: 1
82
+ bottom: 0
@@ -46,7 +46,13 @@ ActionView::Helpers::FormBuilder.class_eval do
46
46
 
47
47
  def optional_form_element(element, attr, options = {})
48
48
  classes = get_optional_classes(attr, options.reverse_merge(base_class: 'optional-text-area'))
49
- add_collection_ids @template.content_tag(:div, label(attr, options[:label]) + send(element, attr, options), class: classes, data: get_data_attributes(attr, options))
49
+ label_tag = label(attr, options[:label])
50
+ element_tag = send(element, attr, options)
51
+ content = label_tag + element_tag
52
+ # Hint tag is empty to make it easy to implement using js. Adding it as text is a better option than hiding the text.
53
+ # Graceful Degradation is not an option anyway
54
+ content += @template.content_tag(:span, nil, class: 'optional-attribute-hint', data: {hint: options[:hint]}) if options[:hint].present?
55
+ add_collection_ids @template.content_tag(:div, content, class: classes, data: get_data_attributes(attr, options))
50
56
  end
51
57
 
52
58
  private
@@ -1,3 +1,3 @@
1
1
  module RecordCollection
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  class Project::Collection < RecordCollection::Base
2
2
  attribute :finished, type: Boolean
3
+ attribute :hint_visible, type: Boolean
3
4
  attribute :start_date, type: Date
4
5
  attribute :description
5
6
  end
@@ -2,8 +2,9 @@ h1 Edit multiple projects
2
2
  = simple_form_for @collection, url: [:collection_update, @collection] do |f|
3
3
  = render 'form_errors', target: @collection
4
4
  .form-inputs= f.optional_boolean :finished, disabled: true
5
+ .form-inputs= f.optional_boolean :hint_visible, hint: "Check this one if the hint is visible. Hint testing"
5
6
  .form-inputs= f.optional_input :start_date
6
- .form-inputs= f.optional_input :description
7
+ .form-inputs= f.optional_input :description, hint: "Hint normal display for other attributes, use .optional-attribute-hint with data-hint='abc' in your simple_form config to use the record_collection styling"
7
8
  .form-actions= f.submit
8
9
  .page-actions
9
10
  = link_to 'Back', employees_path
@@ -0,0 +1,5 @@
1
+ class AddHintVisibleToProjects < ActiveRecord::Migration
2
+ def change
3
+ add_column :projects, :hint_visible, :boolean, null: false, default: false
4
+ end
5
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20151225113902) do
14
+ ActiveRecord::Schema.define(version: 20151226083300) do
15
15
 
16
16
  create_table "employees", force: :cascade do |t|
17
17
  t.string "name"
@@ -27,10 +27,11 @@ ActiveRecord::Schema.define(version: 20151225113902) do
27
27
  t.string "name"
28
28
  t.boolean "finished"
29
29
  t.string "state"
30
- t.datetime "created_at", null: false
31
- t.datetime "updated_at", null: false
30
+ t.datetime "created_at", null: false
31
+ t.datetime "updated_at", null: false
32
32
  t.text "description"
33
33
  t.date "start_date"
34
+ t.boolean "hint_visible", default: false, null: false
34
35
  end
35
36
 
36
37
  end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.feature "Hint with optional boolean", type: :feature do
4
+ scenario "Seeing the hint", js: true do
5
+ project = Project.create name: 'P1', finished: true
6
+ visit collection_edit_projects_path(ids: [project.id])
7
+
8
+ page.should have_selector '.optional-attribute-container.hint_visible .optional-attribute-hint'
9
+ end
10
+
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: record_collection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin ter Kuile
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-25 00:00:00.000000000 Z
11
+ date: 2015-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -504,6 +504,7 @@ files:
504
504
  - spec/dummy/db/migrate/20150721122805_add_description_to_projects.rb
505
505
  - spec/dummy/db/migrate/20151215123553_add_project_id_to_employees.rb
506
506
  - spec/dummy/db/migrate/20151225113902_add_start_date_to_projects.rb
507
+ - spec/dummy/db/migrate/20151226083300_add_hint_visible_to_projects.rb
507
508
  - spec/dummy/db/schema.rb
508
509
  - spec/dummy/lib/assets/.keep
509
510
  - spec/dummy/log/.keep
@@ -513,6 +514,7 @@ files:
513
514
  - spec/dummy/public/favicon.ico
514
515
  - spec/features/disabled_boolean_spec.rb
515
516
  - spec/features/multi_select_spec.rb
517
+ - spec/features/optional_boolean_hint_spec.rb
516
518
  - spec/features/optional_boolean_with_normal_resource_spec.rb
517
519
  - spec/features/optional_date_field_all_nil_spec.rb
518
520
  - spec/features/optional_text_field_with_normal_resource_spec.rb
@@ -627,6 +629,7 @@ test_files:
627
629
  - spec/dummy/db/migrate/20150721122805_add_description_to_projects.rb
628
630
  - spec/dummy/db/migrate/20151215123553_add_project_id_to_employees.rb
629
631
  - spec/dummy/db/migrate/20151225113902_add_start_date_to_projects.rb
632
+ - spec/dummy/db/migrate/20151226083300_add_hint_visible_to_projects.rb
630
633
  - spec/dummy/db/schema.rb
631
634
  - spec/dummy/lib/assets/.keep
632
635
  - spec/dummy/log/.keep
@@ -636,6 +639,7 @@ test_files:
636
639
  - spec/dummy/public/favicon.ico
637
640
  - spec/features/disabled_boolean_spec.rb
638
641
  - spec/features/multi_select_spec.rb
642
+ - spec/features/optional_boolean_hint_spec.rb
639
643
  - spec/features/optional_boolean_with_normal_resource_spec.rb
640
644
  - spec/features/optional_date_field_all_nil_spec.rb
641
645
  - spec/features/optional_text_field_with_normal_resource_spec.rb