kablam 0.0.4 → 0.0.8

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/app/assets/javascripts/kablam/ajax.js +531 -0
  4. data/app/assets/javascripts/kablam/forms.js +167 -0
  5. data/app/assets/javascripts/kablam/messaging.js +95 -0
  6. data/app/assets/stylesheets/kablam.scss +25 -0
  7. data/app/channels/chat_channel.rb +12 -0
  8. data/app/controllers/concerns/api_settings.rb +41 -0
  9. data/app/controllers/data_controller.rb +133 -0
  10. data/app/views/data/create.js.erb +10 -0
  11. data/app/views/data/destroy.js.erb +12 -0
  12. data/app/views/data/form.html.erb +1 -0
  13. data/app/views/data/undo.js.erb +2 -0
  14. data/app/views/data/update.js.erb +9 -0
  15. data/app/views/kablam_forms/_form_generator.html.erb +1 -1
  16. data/app/views/kablam_forms/fields/_checkbox_array.html.erb +3 -3
  17. data/app/views/kablam_forms/fields/_checkbox_boolean.html.erb +3 -3
  18. data/app/views/kablam_forms/fields/_file_upload.html.erb +2 -2
  19. data/app/views/kablam_forms/fields/_input.html.erb +2 -2
  20. data/app/views/kablam_forms/fields/_multi_inputs.html.erb +2 -2
  21. data/app/views/kablam_forms/fields/_pretext.html.erb +1 -1
  22. data/app/views/kablam_forms/fields/_select.html.erb +3 -3
  23. data/app/views/kablam_forms/fields/_text.html.erb +3 -3
  24. data/kablam.gemspec +2 -1
  25. data/lib/generators/kablam/USAGE +5 -2
  26. data/lib/generators/kablam/install_generator.rb +37 -0
  27. data/lib/generators/kablam/messaging_generator.rb +40 -0
  28. data/lib/generators/kablam/templates/chat.rb +44 -0
  29. data/lib/generators/kablam/templates/kablam.rb +45 -0
  30. data/lib/generators/kablam/templates/message.rb +53 -0
  31. data/lib/kablam.rb +35 -0
  32. data/lib/kablam/forms.rb +26 -21
  33. data/lib/kablam/kablam_record.rb +61 -0
  34. metadata +32 -2
  35. data/lib/generators/kablam/kablam_generator.rb +0 -12
data/lib/kablam/forms.rb CHANGED
@@ -2,29 +2,34 @@ module Kablam
2
2
  class Forms
3
3
  def self.default_classes
4
4
  {
5
- form_wrapper: "pa4 black-80",
6
- submit_button: "relative no-underline mt3 f4 tc db w-75 pv3 mb3 bg-red hover-bg-green white br2 shadow-5 btn-3d bn outline-0",
7
- form_group: "measure mb4 relative",
8
- field_label: "f6 b db mb2",
9
- field_hint: "f6 black-60 db mb2",
10
- pretext_wrapper: "measure ph3 pv1 mb3 b ba b--dashed bw1 b--red",
11
- pretext: "fw5 i f5",
5
+ # Generally used classes for everything.
6
+ form_wrapper: Kablam.form_wrapper,
7
+ submit_button: Kablam.submit_button,
8
+ form_group: Kablam.form_group,
9
+ field_label: Kablam.field_label,
10
+ field_hint: Kablam.field_hint,
11
+ pretext_wrapper: Kablam.pretext_wrapper,
12
+ pretext: Kablam.pretext,
12
13
 
13
14
  # Classes for the acutal from field input/select html items:
14
- input: "input-reset ba b--black-20 pa2 db w-100",
15
- textarea: "db border-box hover-black w-100 measure ba b--black-20 pa2 br2 mb2",
16
- select: "ba bg-white b--black-20 pa2 mb2 db w-100",
17
- file_upload: "ba b--black-20 pa5 mb2 db w-100 b--dashed b--red",
18
- file_upload_icon: "fa fa-upload absolute left-0 right-0 ml-auto mr-auto top-2 mt3 f1 black-05",
19
- checkbox_group_wrapper: "", # Wrapper around all checkboxes
20
- checkbox_wrapper: "flex items-center mb2", # Wrapper for individual checkbox
21
- checkbox_label: "f6 b db",
22
- checkbox: "mr2",
23
- multi_input_group: "flex mb2", #wrapper with input + delete button
24
- multi_add_button: "absolute bg-green hover-bg-red no-underline pv2 pl3 pr3 right-0 top-0 white btn-3d br2", # For 'multi_inputs'
25
- multi_remove_button: "relative no-underline bg-red hover-bg-green white pa2 pl3 pr3 ml1 btn-3d br2", # For 'multi_inputs'
26
- multi_add_icon: "fa fa-plus",
27
- multi_remove_icon: "fa fa-trash"
15
+ input: Kablam.input,
16
+ textarea: Kablam.textarea,
17
+ select: Kablam.dropdown_select,
18
+ file_upload: Kablam.file_upload,
19
+ file_upload_icon: Kablam.file_upload_icon,
20
+
21
+ # Classes for checkboxes
22
+ checkbox_group_wrapper: Kablam.checkbox_group_wrapper,
23
+ checkbox_wrapper: Kablam.checkbox_wrapper,
24
+ checkbox_label: Kablam.checkbox_label,
25
+ checkbox: Kablam.checkbox,
26
+
27
+ # Classes for Multi-Inputs
28
+ multi_input_group: Kablam.multi_input_group,
29
+ multi_add_button: Kablam.multi_add_button,
30
+ multi_remove_button: Kablam.multi_remove_button,
31
+ multi_add_icon: Kablam.multi_add_icon,
32
+ multi_remove_icon: Kablam.multi_remove_icon
28
33
  }
29
34
  end
30
35
  end
@@ -2,6 +2,10 @@ module Kablam
2
2
  class Kablam::KablamRecord < ActiveRecord::Base
3
3
  self.abstract_class = true
4
4
 
5
+ def html_id
6
+ "#{model_name.singular}-#{id}"
7
+ end
8
+
5
9
  def undoable?
6
10
  attributes.include?("destroyed_at")
7
11
  end
@@ -11,6 +15,63 @@ module Kablam
11
15
  "updated_at").reject{|k,v|v.blank?}
12
16
  end
13
17
 
18
+ def input(field)
19
+ form_name = self.class.to_s.underscore
20
+ kablam_scope = "kablam_forms.#{self.class.table_name}.#{field}"
21
+ {
22
+ name: "#{form_name}[#{field}]",
23
+ value: send(field),
24
+ label: I18n.translate(:label, scope: kablam_scope, default: ""),
25
+ pretext: I18n.translate(:pretext, scope: kablam_scope, default: ""),
26
+ placeholder: I18n.translate(:placeholder, scope: kablam_scope, default: ""),
27
+ hint: I18n.translate(:hint, scope: kablam_scope, default: ""),
28
+ choices: self.class.choices(field, I18n.locale)
29
+ }
30
+ end
31
+
32
+ def self.slack_hook
33
+ nil
34
+ end
35
+
36
+
37
+ def slack_message
38
+ puts "You have not setup slack message for this model.\nto prepare a slack_message, please add method 'slack_message'\nwith content of a hash with keys [:create, :update, :destroy].\n\nFor each key, prepare a value hash like this:\n ...\n create: {\n pretext: 'some text',\n author: 'some name',\n title: 'some title',\n text: ''\n },\n ...\n\nHope this helps!!"
39
+ {create: {}, update: {}, destroy: {}}
40
+ end
41
+
42
+ def self.set_fields
43
+ puts "You haven't setup Kablam forms for #{self.to_s} yet!"
44
+ puts "create a method in your model called:"
45
+ puts ""
46
+ puts "def self.set_fields"
47
+ puts "# Then setup the roles of each column name"
48
+ puts "All the types: checkbox_array, checkbox_boolean, file_upload, hidden, input, multi_inputs, select, text, exclude"
49
+ puts "Example:"
50
+ puts "{"
51
+ puts " select: [\"role\", \"column_2\"],"
52
+ puts " file_upload: ['column_3'],"
53
+ puts " exclude: [\"id\", \"created_at\", \"user_id\", \"updated_at\"]"
54
+ puts "}"
55
+
56
+ {}
57
+ end
58
+
59
+ def self.form_choices
60
+ puts "For fields w/ choices (select, checkboxes, etc.)"
61
+ puts "You can setup the values/choices by creating a method:"
62
+ puts "def self.form_choices"
63
+ puts "example:"
64
+ puts "
65
+ {
66
+ \"field_name\" => [{value: \"value\",
67
+ label: {
68
+ \"locale\"=> \"locale_label\"
69
+ }
70
+ }]
71
+ }"
72
+ {}
73
+ end
74
+
14
75
  def identifier
15
76
  send(self.class.fields.first)
16
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kablam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Rivas
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 5.1.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: puma
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Gem to make development of everything in rails even faster.
42
56
  email: sergiorivas@163.com
43
57
  executables: []
@@ -49,7 +63,19 @@ files:
49
63
  - LICENSE
50
64
  - README.md
51
65
  - app/.DS_Store
66
+ - app/assets/javascripts/kablam/ajax.js
67
+ - app/assets/javascripts/kablam/forms.js
68
+ - app/assets/javascripts/kablam/messaging.js
69
+ - app/assets/stylesheets/kablam.scss
70
+ - app/channels/chat_channel.rb
71
+ - app/controllers/concerns/api_settings.rb
72
+ - app/controllers/data_controller.rb
52
73
  - app/views/.DS_Store
74
+ - app/views/data/create.js.erb
75
+ - app/views/data/destroy.js.erb
76
+ - app/views/data/form.html.erb
77
+ - app/views/data/undo.js.erb
78
+ - app/views/data/update.js.erb
53
79
  - app/views/kablam_forms/.DS_Store
54
80
  - app/views/kablam_forms/_form_generator.html.erb
55
81
  - app/views/kablam_forms/_kablam_form.html.erb
@@ -66,7 +92,11 @@ files:
66
92
  - kablam.gemspec
67
93
  - lib/generators/kablam/USAGE
68
94
  - lib/generators/kablam/forms_generator.rb
69
- - lib/generators/kablam/kablam_generator.rb
95
+ - lib/generators/kablam/install_generator.rb
96
+ - lib/generators/kablam/messaging_generator.rb
97
+ - lib/generators/kablam/templates/chat.rb
98
+ - lib/generators/kablam/templates/kablam.rb
99
+ - lib/generators/kablam/templates/message.rb
70
100
  - lib/generators/kablam/views_generator.rb
71
101
  - lib/kablam.rb
72
102
  - lib/kablam/engine.rb
@@ -1,12 +0,0 @@
1
- require 'yaml'
2
-
3
- module Kablam
4
- module Generators
5
- class KablamGenerator < Rails::Generators::NamedBase
6
- include Rails::Generators::ResourceHelpers
7
- namespace "kablam"
8
- source_root File.expand_path('../templates', __FILE__)
9
- # argument :name, :type => :string, :default => "en"
10
- end
11
- end
12
- end