kablam 0.0.4 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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