agilibox 1.0.15 → 1.1.0

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: 6ed08a7d086225ae4abf9cac6f5f7a2e4e9250f0
4
- data.tar.gz: c2c2fb53c41d945c973f0938f2809209090b02f4
3
+ metadata.gz: e7f0e59fd9a62da85e62c61abc3638382fd2e949
4
+ data.tar.gz: d6d180e70886773cbfcd8f43e3d54394fd7e348e
5
5
  SHA512:
6
- metadata.gz: ca24f0844a6aca0e1abcac9db9d11a1620dc132034afa8aa8c737eb90b177f169cf1dfaef242e286bc7d1890f433ef23f257787d1bc2e232081ad82c288c57f5
7
- data.tar.gz: 1bc57502c9ba25e4645ba42135967b258df0be8a30ff3f2f4460399056fcffdd0774a41b7d2cb46b993ade48b8d21f832b617122de0e2e81dcb45e8038c21f63
6
+ metadata.gz: 55fd5e237e565365e5ba3bc1bb1d6ac4478a7bbe8fe1b953437900b91c4a32c350fd38cbcb35971d5ecd81cf1b2deb8f44efff08e6e79ed0a8dde0f886a29683
7
+ data.tar.gz: ea0ae8d4e740b142eeb84df062aa6c00cd0c0b4b07dad7cdbdc17d1de12d174feb9d87e54ab29686123238292d571330af927a6e0a060f6a9e62b5782a2f00b0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Changelog
2
2
 
3
- ## Next version
3
+ ## 1.1.0
4
+
5
+ - Search concern improvements
6
+ - Date helper improvements
7
+ - Add `boolean_icon` helper
8
+ - Add i18n attributes
9
+ - Add `Agilibox::PluckToHash`
10
+ - Switch to FontAwesome 5 + `icon` helper improvements
4
11
 
5
12
  ## 1.0.15
6
13
 
@@ -1,2 +1,2 @@
1
1
  $(document).on "turbolinks:load", ->
2
- $("select.select2").select2()
2
+ $("select.select2").map -> $(this).select2()
@@ -1,6 +1,7 @@
1
+ @import agilibox/buttons
1
2
  @import agilibox/filters
2
- @import agilibox/forms
3
3
  @import agilibox/flash
4
+ @import agilibox/forms
4
5
  @import agilibox/modals
5
6
  @import agilibox/pagination
6
7
  @import agilibox/print
@@ -0,0 +1,9 @@
1
+ // .btn-xs has been removed in Bootstrap 4
2
+ .btn-xs
3
+ padding: 1px 5px
4
+ font-size: 12px
5
+
6
+ // .btn-default has been removed in Bootstrap 4
7
+ .btn-default
8
+ @extend .btn-outline-secondary !optional
9
+ background: white
@@ -1,8 +1,13 @@
1
1
  .filters
2
- @extend .well
2
+ // Bootstrap 3
3
+ @extend .well !optional
4
+ // Bootstrap 4
5
+ @extend .card !optional
3
6
  padding: 8px
4
7
  box-shadow: none
5
8
  display: flex
9
+ flex-direction: initial
10
+ background: #F0F0F0
6
11
 
7
12
  select,
8
13
  button,
@@ -20,7 +25,10 @@
20
25
  margin: 0
21
26
 
22
27
  .form-control,
23
- @extend .input-sm
28
+ // Bootstrap 3
29
+ @extend .input-sm !optional
30
+ // Bootstrap 4
31
+ @extend .form-control-sm !optional
24
32
  display: inline-block
25
33
  width: auto
26
34
 
@@ -17,6 +17,7 @@
17
17
  width: auto !important
18
18
  height: auto !important
19
19
 
20
+ .card-title,
20
21
  .panel-title,
21
22
  .context-header,
22
23
  thead *,
@@ -41,6 +42,7 @@
41
42
  #flash,
42
43
  display: none !important
43
44
 
45
+ .card,
44
46
  .panel,
45
47
  .table,
46
48
  .list-group,
@@ -49,14 +51,21 @@
49
51
  p,
50
52
  margin: 1em 0 !important
51
53
 
54
+ .card p,
55
+ .card table,
52
56
  .panel table,
53
57
  .well p,
54
58
  td p,
55
59
  margin: 0 !important
56
60
 
57
61
  .well,
62
+ .card,
58
63
  padding: 0.5em !important
59
64
 
65
+ .card-header,
66
+ .card-title,
67
+ .card-body,
68
+ .card-footer,
60
69
  .panel-heading,
61
70
  .panel-title,
62
71
  .panel-body,
@@ -71,4 +80,5 @@
71
80
  margin: 0 !important
72
81
 
73
82
  .panel-heading .panel-title,
83
+ .card-header .card-title,
74
84
  padding: 0 !important
@@ -2,13 +2,14 @@ module Agilibox::AllHelpers
2
2
  include Agilibox::BootstrapHelper
3
3
  include Agilibox::ButtonHelper
4
4
  include Agilibox::FiltersHelper
5
+ include Agilibox::FontAwesomeHelper
5
6
  include Agilibox::FormHelper
7
+ include Agilibox::I18nHelper
6
8
  include Agilibox::LinkHelper
7
9
  include Agilibox::PaginationHelper
8
10
  include Agilibox::RoutesHelper
9
11
  include Agilibox::SortingHelper
10
12
  include Agilibox::TextHelper
11
- include Agilibox::I18nHelper
12
13
 
13
14
  extend self
14
15
  end
@@ -1,6 +1,2 @@
1
1
  module Agilibox::BootstrapHelper
2
- def icon(id)
3
- id = id.to_s.tr("_", "-")
4
- content_tag(:span, class: "icon fa fa-#{id}") {}
5
- end
6
2
  end
@@ -48,7 +48,7 @@ module Agilibox::ButtonHelper
48
48
 
49
49
  def read_button(url, options = {})
50
50
  options = {
51
- :icon => "info-circle",
51
+ :icon => :info_circle,
52
52
  :action => :read,
53
53
  }.merge(options)
54
54
 
@@ -57,7 +57,7 @@ module Agilibox::ButtonHelper
57
57
 
58
58
  def download_button(url, options = {})
59
59
  options = {
60
- :icon => "cloud-download",
60
+ :icon => :cloud_download_alt,
61
61
  :action => :download,
62
62
  :download => url,
63
63
  }.merge(options)
@@ -75,7 +75,7 @@ module Agilibox::ButtonHelper
75
75
  end
76
76
 
77
77
  options = {
78
- :icon => "cloud-download",
78
+ :icon => :download,
79
79
  :action => action,
80
80
  :download => url,
81
81
  }.merge(options)
@@ -85,7 +85,7 @@ module Agilibox::ButtonHelper
85
85
 
86
86
  def import_button(url, options = {})
87
87
  options = {
88
- :icon => "cloud-upload",
88
+ :icon => :upload,
89
89
  :action => :import,
90
90
  }.merge(options)
91
91
 
@@ -94,7 +94,7 @@ module Agilibox::ButtonHelper
94
94
 
95
95
  def update_button(url, options = {})
96
96
  options = {
97
- :icon => :pencil,
97
+ :icon => :pencil_alt,
98
98
  :action => :update,
99
99
  }.merge(options)
100
100
 
@@ -136,7 +136,7 @@ module Agilibox::ButtonHelper
136
136
 
137
137
  def snooze_button(url, options = {})
138
138
  options = {
139
- :icon => :"clock-o",
139
+ :icon => :clock,
140
140
  :action => :snooze,
141
141
  :confirm => true,
142
142
  :method => :patch,
@@ -5,7 +5,7 @@ module Agilibox::FiltersHelper
5
5
  options[:value] ||= "submit"
6
6
 
7
7
  text = options.delete(:text) || t("actions.filter")
8
- icon = options.delete(:icon) || "filter"
8
+ icon = options.delete(:icon) || :filter
9
9
 
10
10
  content_tag(:button, options) do
11
11
  icon(icon) + " " + text
@@ -18,7 +18,7 @@ module Agilibox::FiltersHelper
18
18
  options[:value] ||= "reset"
19
19
 
20
20
  text = options.delete(:text) || t("actions.reset")
21
- icon = options.delete(:icon) || "rotate-left"
21
+ icon = options.delete(:icon) || :undo
22
22
 
23
23
  content_tag(:button, options) do
24
24
  icon(icon) + " " + text
@@ -0,0 +1,47 @@
1
+ module Agilibox::FontAwesomeHelper
2
+ def icon(id, fa_style: nil, size: nil, spin: false, **options)
3
+ id = id.to_s.tr("_", "-").to_sym
4
+
5
+ if fa_style.nil?
6
+ fa_style = Agilibox::FontAwesomeHelper.database.dig(id, :styles).to_a.first
7
+ end
8
+
9
+ css_classes = options.delete(:class).to_s.split(" ")
10
+ css_classes << "icon"
11
+ css_classes << "fa-#{id}"
12
+ css_classes << "fa#{fa_style.to_s[0]}"
13
+ css_classes << "fa-#{size}" if size
14
+ css_classes << "fa-spin" if spin
15
+
16
+ attributes = options.merge(class: css_classes.sort.join(" ")).sort.to_h
17
+
18
+ content_tag(:span, attributes) {}
19
+ end
20
+
21
+ class << self
22
+ def database
23
+ @database ||= YAML.safe_load(database_yml).deep_symbolize_keys
24
+ end
25
+
26
+ def database_path
27
+ Rails.root.join("tmp", "fa_database_#{version}.yml")
28
+ end
29
+
30
+ def database_yml
31
+ download_database! unless File.size?(database_path)
32
+ File.read(database_path)
33
+ end
34
+
35
+ def download_database!
36
+ require "open-uri"
37
+ url = "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/advanced-options/metadata/icons.yml"
38
+ data = URI.parse(url).open.read
39
+ File.write(database_path, data)
40
+ end
41
+
42
+ def version
43
+ require "font_awesome/sass/version"
44
+ FontAwesome::Sass::VERSION
45
+ end
46
+ end # class << self
47
+ end
@@ -39,9 +39,17 @@ module Agilibox::TextHelper
39
39
  number_with_precision(n, opts).tr(" ", "\u00A0")
40
40
  end
41
41
 
42
- def date(d)
43
- return if d.nil?
44
- I18n.l(d)
42
+ def date(d, *args)
43
+ I18n.l(d, *args) unless d.nil?
44
+ end
45
+
46
+ def boolean_icon(bool)
47
+ return if bool.nil?
48
+
49
+ return icon(:check, style: "color: green") if bool == true
50
+ return icon(:times, style: "color: red") if bool == false
51
+
52
+ raise "#{bool} is not a boolean"
45
53
  end
46
54
 
47
55
  def hours(n)
@@ -0,0 +1,9 @@
1
+ module Agilibox::PluckToHash
2
+ extend ActiveSupport::Concern
3
+
4
+ class_methods do
5
+ def pluck_to_hash(*attributes)
6
+ pluck(*attributes).map { |values| attributes.zip(values).to_h }
7
+ end
8
+ end # class_methods
9
+ end
@@ -3,9 +3,9 @@ module Agilibox::Search
3
3
 
4
4
  class_methods do
5
5
  def default_search_fields
6
- columns.map do |column|
7
- "#{table_name}.#{column.name}"
8
- end
6
+ columns
7
+ .select { |column| column.type.in?([:string, :text]) }
8
+ .map { |column| "#{table_name}.#{column.name}" }
9
9
  end # def default_search_fields
10
10
 
11
11
  def search(q, *fields)
@@ -18,13 +18,9 @@ module Agilibox::Search
18
18
  }.join(" OR ")
19
19
  }.map { |e| "(#{e})" }.join(" AND ")
20
20
 
21
- sql_params_a = words.map.with_index do |word, index|
22
- ["w#{index}".to_sym, "%#{word}%"]
23
- end
21
+ sql_params = words.map.with_index { |word, index| ["w#{index}".to_sym, "%#{word}%"] }.to_h
24
22
 
25
- sql_params_h = Hash[sql_params_a]
26
-
27
- where(sql_query, sql_params_h)
23
+ where(sql_query, sql_params)
28
24
  end # def search
29
25
  end # class_methods
30
26
  end # class Agilibox::Search
@@ -0,0 +1,8 @@
1
+ #flash.container
2
+ - flash.map do |type, message|
3
+ - type = "success" if type == "notice"
4
+ - type = "danger" if type == "alert"
5
+
6
+ .alert class="alert-#{type}"
7
+ = message
8
+ button.close data-dismiss="alert" aria-label="Fermer" = "×"
@@ -1,90 +1,96 @@
1
1
  en:
2
2
  attributes: &attributes
3
- id : "Id"
4
- type : "Type"
3
+ access : "Access"
4
+ actions : "Actions"
5
+ active : "Active ?"
6
+ address : "Address"
7
+ address1 : "Address"
8
+ address2 : "Address (rest)"
9
+ addressable : "Origin"
10
+ amount : "Amount"
11
+ attachable : "Origin"
12
+ attachment : "Attachment"
13
+ author : "Author"
14
+ avatar : "Avatar"
15
+ body : "Message"
16
+ budget : "Budget"
17
+ category : "Category"
18
+ city : "City"
5
19
  code : "Code"
6
- reference : "Réference"
20
+ color : "Color"
21
+ comment : "Comment"
22
+ commentable : "Origin"
23
+ comments : "Comments"
24
+ corporation_name : "Name"
25
+ count : "Number"
26
+ country : "Country"
7
27
  created_at : "Created at"
8
- updated_at : "Updated at"
9
- name : "Name"
10
- short_name : "Short name"
11
- title : "Title"
12
- label : "Label"
28
+ current_avatar : "Current avatar"
29
+ customer : "Customer"
30
+ customer_guid : "Customer"
31
+ data : "Data"
32
+ date : "Date"
33
+ date_begin : "Date begin"
34
+ date_end : "Date end"
35
+ date_start : "Date start"
36
+ day : "Day"
37
+ description : "Description"
38
+ details : "Datails"
39
+ due_date : "Due date"
40
+ email : "E-mail"
41
+ email_attachment : "Attachment"
42
+ email_body : "Message"
43
+ email_from : "Sender"
44
+ email_subject : "Subject"
45
+ email_to : "Recipient"
46
+ facebook : "Facebook"
47
+ fax : "Fax"
48
+ file : "File"
13
49
  first_name : "First name"
50
+ id : "Id"
51
+ is_active : "Active ?"
52
+ label : "Label"
14
53
  last_name : "Last name"
15
- email : "E-mail"
16
- www : "Web site"
17
- phone : "Phone"
54
+ length : "Number"
55
+ linkedin : "Linkedin"
56
+ logo : "Logo"
57
+ message : "Message"
18
58
  mobile : "Mobile"
19
- fax : "Fax"
59
+ month : "Month"
60
+ name : "Name"
61
+ number : "Number"
62
+ paid : "Paid ?"
20
63
  password : "Password"
21
64
  password_confirmation : "Password (confirm)"
22
- description : "Description"
23
- text : "Text"
24
- date : "Date"
65
+ phone : "Phone"
66
+ probability : "Probability"
67
+ quantity : "Quantity"
68
+ reference : "Réference"
69
+ sender : "Author"
70
+ short_name : "Short name"
71
+ skype : "Skype"
25
72
  state : "State"
26
73
  status : "Status"
27
- file : "File"
28
- address : "Address"
29
- address1 : "Address"
30
- address2 : "Address (rest)"
31
74
  street : "Address"
32
75
  street_bis : "Address (rest)"
33
- zip : "Zip"
34
- city : "City"
35
- country : "Country"
36
- tags : "Tags"
76
+ subject : "Subject"
37
77
  tag_list : "Tags"
38
- budget : "Budget"
39
- probability : "Probability"
40
- access : "Access"
41
- color : "Color"
42
- data : "Data"
43
- comment : "Comment"
44
- comments : "Comments"
45
- written_by : "Written by"
46
- details : "Datails"
47
- quantity : "Quantity"
48
- due_date : "Due date"
49
- paid : "Paid ?"
50
- customer : "Customer"
51
- customer_guid : "Customer"
78
+ tags : "Tags"
79
+ text : "Text"
80
+ title : "Title"
81
+ total : "Total"
52
82
  tracking : "Tracking ID"
53
83
  tracking_id : "Tracking ID"
54
- unique_index : "Tracking ID"
55
- count : "Number"
56
- length : "Number"
57
- number : "Number"
58
- message : "Message"
59
- skype : "Skype"
60
- facebook : "Facebook"
61
84
  twitter : "Twitter"
62
- linkedin : "Linkedin"
63
- viadeo : "Viadeo"
64
- subject : "Subject"
65
- body : "Message"
66
- attachment : "Attachment"
67
- avatar : "Avatar"
68
- current_avatar : "Current avatar"
69
- logo : "Logo"
85
+ type : "Type"
86
+ unique_index : "Tracking ID"
87
+ updated_at : "Updated at"
70
88
  user : "User"
71
- category : "Category"
72
- corporation_name : "Name"
73
- author : "Author"
74
- sender : "Author"
75
- total : "Total"
76
89
  version : "Version"
77
- commentable : "Origin"
78
- addressable : "Origin"
79
- attachable : "Origin"
80
- email_subject : "Subject"
81
- email_from : "Sender"
82
- email_to : "Recipient"
83
- email_attachment : "Attachment"
84
- email_body : "Message"
85
- active : "Active ?"
86
- is_active : "Active ?"
87
- actions : "Actions"
90
+ viadeo : "Viadeo"
91
+ written_by : "Written by"
92
+ www : "Web site"
93
+ zip : "Zip"
88
94
 
89
95
  labels:
90
96
  <<: *attributes
@@ -1,90 +1,96 @@
1
1
  fr:
2
2
  attributes: &attributes
3
- id : "Id"
4
- type : "Type"
3
+ access : "Accès"
4
+ actions : "Actions"
5
+ active : "Actif ?"
6
+ address : "Adresse"
7
+ address1 : "Adresse"
8
+ address2 : "Adresse (suite)"
9
+ addressable : "Origine"
10
+ amount : "Montant"
11
+ attachable : "Origine"
12
+ attachment : "Pièce jointe"
13
+ author : "Auteur"
14
+ avatar : "Avatar"
15
+ body : "Message"
16
+ budget : "Budget"
17
+ category : "Catégorie"
18
+ city : "Ville"
5
19
  code : "Code"
6
- reference : "Référence"
20
+ color : "Couleur"
21
+ comment : "Commentaire"
22
+ commentable : "Origine"
23
+ comments : "Commentaires"
24
+ corporation_name : "Nom"
25
+ count : "Nombre"
26
+ country : "Pays"
7
27
  created_at : "Créé le"
8
- updated_at : "Modifié le"
9
- name : "Nom"
10
- short_name : "Initiales"
11
- title : "Titre"
12
- label : "Libellé"
28
+ current_avatar : "Avatar actuel"
29
+ customer : "Client"
30
+ customer_guid : "Client"
31
+ data : "Informations"
32
+ date : "Date"
33
+ date_begin : "Date de début"
34
+ date_end : "Date de fin"
35
+ date_start : "Date de début"
36
+ day : "Jour"
37
+ description : "Description"
38
+ details : "Détails"
39
+ due_date : "Échéance"
40
+ email : "E-mail"
41
+ email_attachment : "Pièce jointe"
42
+ email_body : "Message"
43
+ email_from : "Expéditeur"
44
+ email_subject : "Object"
45
+ email_to : "Destinataire"
46
+ facebook : "Facebook"
47
+ fax : "Fax"
48
+ file : "Fichier"
13
49
  first_name : "Prénom"
50
+ id : "Id"
51
+ is_active : "Actif ?"
52
+ label : "Libellé"
14
53
  last_name : "Nom"
15
- email : "E-mail"
16
- www : "Site web"
17
- phone : "Téléphone"
54
+ length : "Nombre"
55
+ linkedin : "Linkedin"
56
+ logo : "Logo"
57
+ message : "Message"
18
58
  mobile : "Mobile"
19
- fax : "Fax"
59
+ month : "Mois"
60
+ name : "Nom"
61
+ number : "Nombre"
62
+ paid : "Payée ?"
20
63
  password : "Mot de passe"
21
64
  password_confirmation : "Mot de passe (confirmer)"
22
- description : "Description"
23
- text : "Description"
24
- date : "Date"
65
+ phone : "Téléphone"
66
+ probability : "Probabilité"
67
+ quantity : "Quantité"
68
+ reference : "Référence"
69
+ sender : "Auteur"
70
+ short_name : "Initiales"
71
+ skype : "Skype"
25
72
  state : "État"
26
73
  status : "État"
27
- file : "Fichier"
28
- address : "Adresse"
29
- address1 : "Adresse"
30
- address2 : "Adresse (suite)"
31
74
  street : "Adresse"
32
75
  street_bis : "Adresse (suite)"
33
- zip : "Code postal"
34
- city : "Ville"
35
- country : "Pays"
36
- tags : "Tags"
76
+ subject : "Objet"
37
77
  tag_list : "Tags"
38
- budget : "Budget"
39
- probability : "Probabilité"
40
- access : "Accès"
41
- color : "Couleur"
42
- data : "Informations"
43
- comment : "Commentaire"
44
- comments : "Commentaires"
45
- written_by : "écrit par"
46
- details : "Détails"
47
- quantity : "Quantité"
48
- due_date : "Échéance"
49
- paid : "Payée ?"
50
- customer : "Client"
51
- customer_guid : "Client"
78
+ tags : "Tags"
79
+ text : "Description"
80
+ title : "Titre"
81
+ total : "Total"
52
82
  tracking : "Numéro"
53
83
  tracking_id : "Numéro"
54
- unique_index : "Numéro"
55
- count : "Nombre"
56
- length : "Nombre"
57
- number : "Nombre"
58
- message : "Message"
59
- skype : "Skype"
60
- facebook : "Facebook"
61
84
  twitter : "Twitter"
62
- linkedin : "Linkedin"
63
- viadeo : "Viadeo"
64
- subject : "Objet"
65
- body : "Message"
66
- attachment : "Pièce jointe"
67
- avatar : "Avatar"
68
- current_avatar : "Avatar actuel"
69
- logo : "Logo"
85
+ type : "Type"
86
+ unique_index : "Numéro"
87
+ updated_at : "Modifié le"
70
88
  user : "Utilisateur"
71
- category : "Catégorie"
72
- corporation_name : "Nom"
73
- author : "Auteur"
74
- sender : "Auteur"
75
- total : "Total"
76
89
  version : "Version"
77
- commentable : "Origine"
78
- addressable : "Origine"
79
- attachable : "Origine"
80
- email_subject : "Object"
81
- email_from : "Expéditeur"
82
- email_to : "Destinataire"
83
- email_attachment : "Pièce jointe"
84
- email_body : "Message"
85
- active : "Actif ?"
86
- is_active : "Actif ?"
87
- actions : "Actions"
90
+ viadeo : "Viadeo"
91
+ written_by : "écrit par"
92
+ www : "Site web"
93
+ zip : "Code postal"
88
94
 
89
95
  labels:
90
96
  <<: *attributes
@@ -1,3 +1,3 @@
1
1
  module Agilibox
2
- VERSION = "1.0.15"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agilibox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.15
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - agilidée
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n
@@ -71,6 +71,7 @@ files:
71
71
  - app/assets/javascripts/agilibox/form_reset.coffee
72
72
  - app/assets/javascripts/agilibox/modals.coffee
73
73
  - app/assets/stylesheets/agilibox/all.sass
74
+ - app/assets/stylesheets/agilibox/buttons.sass
74
75
  - app/assets/stylesheets/agilibox/filters.sass
75
76
  - app/assets/stylesheets/agilibox/flash.sass
76
77
  - app/assets/stylesheets/agilibox/forms.sass
@@ -94,6 +95,7 @@ files:
94
95
  - app/helpers/agilibox/bootstrap_helper.rb
95
96
  - app/helpers/agilibox/button_helper.rb
96
97
  - app/helpers/agilibox/filters_helper.rb
98
+ - app/helpers/agilibox/font_awesome_helper.rb
97
99
  - app/helpers/agilibox/form_helper.rb
98
100
  - app/helpers/agilibox/i18n_helper.rb
99
101
  - app/helpers/agilibox/link_helper.rb
@@ -112,6 +114,7 @@ files:
112
114
  - app/models/concerns/agilibox/default_values_concern.rb
113
115
  - app/models/concerns/agilibox/model_i18n.rb
114
116
  - app/models/concerns/agilibox/model_to_s.rb
117
+ - app/models/concerns/agilibox/pluck_to_hash.rb
115
118
  - app/models/concerns/agilibox/polymorphic_id.rb
116
119
  - app/models/concerns/agilibox/search.rb
117
120
  - app/models/concerns/agilibox/timestamp_helpers.rb
@@ -125,6 +128,7 @@ files:
125
128
  - app/sms/agilibox/sms/strategies/base.rb
126
129
  - app/sms/agilibox/sms/strategies/test.rb
127
130
  - app/sorters/agilibox/sorter.rb
131
+ - app/views/agilibox/_flash.html.slim
128
132
  - app/views/agilibox/forms/_checkboxes_dropdown.html.slim
129
133
  - app/views/agilibox/search/_form.html.slim
130
134
  - config/cucumber.yml