record_collection 0.10.0 → 0.10.1

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: 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