bootstrap_builders 0.0.34 → 0.0.35

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: cce44a5f4f660d7d563d4e6ab7ae04f684566372
4
- data.tar.gz: a9acb3e9fe8c95f0c1a6e05d3e5cba0356b0227d
3
+ metadata.gz: f2b06accaf876db61d654dc89c1fe33f18c70fea
4
+ data.tar.gz: 665c836f455f3253e3fcf1f9cfee09dca5f1c516
5
5
  SHA512:
6
- metadata.gz: c3d148e8280fed214436d204723dca8b56da83eb91bcad5c2036cfc94019c4267908efbf4339e292a89f447a3e8ad6b786606b15aa6538dd8112795dbc8546ce
7
- data.tar.gz: 7291cc3a7bd743506733861b9a254a8fc521973c58602f3ab0145fd625ebdf024fe60300be96976b0cff0f219ee346a0a0645492af2111a543e270fcd513e4e5
6
+ metadata.gz: f167b8feb7cc107f438f3fa2b653c0fceeb4ee2fe67d32f3a47b86c5e192d212294b5a2c23e9938b26ecbcf77a8cea0ff3cc1046a70e06ffd1e9558ac19a0979
7
+ data.tar.gz: fce11dc15053ef889fc702fa549d97053c2f3099dcccca74d4bf820827713c9c257f7b638479f3b72ab8e40f629f068a787e07eeba81037ddec78fd3dc1086c2
@@ -1,4 +1,6 @@
1
1
  module BootstrapBuilders::ApplicationHelper
2
+ include BootstrapBuilders::ButtonsHelper
3
+
2
4
  def bb_attribute_row(title, value)
3
5
  content_tag :tr do
4
6
  parts = []
@@ -22,85 +24,6 @@ module BootstrapBuilders::ApplicationHelper
22
24
  BootstrapBuilders::ProgressBar.with_parsed_args(*opts)
23
25
  end
24
26
 
25
- def bb_btn(*args)
26
- args = BootstrapBuilders::Button.parse_url_args(args)
27
- args[:context] = self
28
- button = BootstrapBuilders::Button.new(args)
29
- button.classes.add("bb-btn")
30
- button.html
31
- end
32
-
33
- def bb_edit_btn(*args)
34
- args = BootstrapBuilders::Button.parse_url_args(args)
35
- args[:label] = t("edit") unless args.key?(:label)
36
- args[:title] ||= t("edit") if args[:mini]
37
- args[:url] = [:edit, args.fetch(:url)] if args[:url] && !args[:url].is_a?(Array) && BootstrapBuilders::IsAChecker.is_a?(args[:url], "ActiveRecord::Base")
38
-
39
- button = BootstrapBuilders::Button.new(args.merge(icon: "wrench", context: self, can_type: :edit))
40
- button.classes.add(["bb-btn", "bb-btn-edit"])
41
- button.classes.add("bb-btn-edit-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
42
- button.classes.add("bb-btn-edit-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
43
- button.html
44
- end
45
-
46
- def bb_destroy_btn(*args)
47
- args = BootstrapBuilders::Button.parse_url_args(args)
48
- args[:label] = t("delete") unless args.key?(:label)
49
- args[:title] ||= t("delete") if args[:mini]
50
-
51
- args[:data] ||= {}
52
- args[:data][:confirm] ||= t("are_you_sure")
53
-
54
- button = BootstrapBuilders::Button.new(args.merge(icon: "remove", context: self, can_type: :destroy, method: :delete))
55
- button.classes.remove(["btn-default"])
56
- button.classes.add(["btn-danger", "bb-btn", "bb-btn-destroy"])
57
- button.classes.add("bb-btn-destroy-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
58
- button.classes.add("bb-btn-destroy-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
59
- button.html
60
- end
61
-
62
- def bb_new_btn(*args)
63
- args = BootstrapBuilders::Button.parse_url_args(args)
64
- args[:label] = t("add_new") unless args.key?(:label)
65
- args[:title] ||= t("new") if args[:mini]
66
-
67
- button = BootstrapBuilders::Button.new(args.merge(icon: "plus", context: self, can_type: :new))
68
- button.classes.add(["bb-btn", "bb-btn-new"])
69
- button.classes.add("bb-btn-new-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
70
- button.html
71
- end
72
-
73
- def bb_index_btn(*args)
74
- args = BootstrapBuilders::Button.parse_url_args(args)
75
- args[:title] ||= t("index") if args[:mini]
76
-
77
- button = BootstrapBuilders::Button.new(args.merge(icon: "table", context: self, can_type: :index))
78
-
79
- if button.label.to_s.strip.empty?
80
- if button.can_model_class
81
- button.label = button.can_model_class.model_name.human(count: 2)
82
- else
83
- button.label = t("index")
84
- end
85
- end
86
-
87
- button.classes.add(["bb-btn", "bb-btn-index"])
88
- button.classes.add("bb-btn-index-#{button.can_model_class.name.tableize}") if button.can_model_class
89
- button.html
90
- end
91
-
92
- def bb_show_btn(*args)
93
- args = BootstrapBuilders::Button.parse_url_args(args)
94
- args[:label] = t("show") unless args.key?(:label)
95
- args[:title] ||= t("show") if args[:mini]
96
-
97
- button = BootstrapBuilders::Button.new(args.merge(icon: "square-o", context: self, can_type: :show))
98
- button.classes.add(["bb-btn", "bb-btn-show"])
99
- button.classes.add("bb-btn-show-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
100
- button.classes.add("bb-btn-show-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
101
- button.html
102
- end
103
-
104
27
  def bb_flash(args = {})
105
28
  flash = BootstrapBuilders::Flash.new(args.merge(context: self))
106
29
  flash.html
@@ -0,0 +1,80 @@
1
+ module BootstrapBuilders::ButtonsHelper
2
+ def bb_btn(*args)
3
+ args = BootstrapBuilders::Button.parse_url_args(args)
4
+ args[:context] = self
5
+ button = BootstrapBuilders::Button.new(args)
6
+ button.classes.add("bb-btn")
7
+ button.html
8
+ end
9
+
10
+ def bb_edit_btn(*args)
11
+ args = BootstrapBuilders::Button.parse_url_args(args)
12
+ args[:label] = t("edit") unless args.key?(:label)
13
+ args[:title] ||= t("edit") if args[:mini]
14
+ args[:url] = [:edit, args.fetch(:url)] if args[:url] && !args[:url].is_a?(Array) && BootstrapBuilders::IsAChecker.is_a?(args[:url], "ActiveRecord::Base")
15
+
16
+ button = BootstrapBuilders::Button.new(args.merge(icon: "wrench", context: self, can_type: :edit))
17
+ button.classes.add(["bb-btn", "bb-btn-edit"])
18
+ button.classes.add("bb-btn-edit-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
19
+ button.classes.add("bb-btn-edit-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
20
+ button.html
21
+ end
22
+
23
+ def bb_destroy_btn(*args)
24
+ args = BootstrapBuilders::Button.parse_url_args(args)
25
+ args[:label] = t("delete") unless args.key?(:label)
26
+ args[:title] ||= t("delete") if args[:mini]
27
+
28
+ args[:data] ||= {}
29
+ args[:data][:confirm] ||= t("are_you_sure")
30
+
31
+ button = BootstrapBuilders::Button.new(args.merge(icon: "remove", context: self, can_type: :destroy, method: :delete))
32
+ button.classes.remove(["btn-default"])
33
+ button.classes.add(["btn-danger", "bb-btn", "bb-btn-destroy"])
34
+ button.classes.add("bb-btn-destroy-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
35
+ button.classes.add("bb-btn-destroy-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
36
+ button.html
37
+ end
38
+
39
+ def bb_new_btn(*args)
40
+ args = BootstrapBuilders::Button.parse_url_args(args)
41
+ args[:label] = t("add_new") unless args.key?(:label)
42
+ args[:title] ||= t("new") if args[:mini]
43
+
44
+ button = BootstrapBuilders::Button.new(args.merge(icon: "plus", context: self, can_type: :new))
45
+ button.classes.add(["bb-btn", "bb-btn-new"])
46
+ button.classes.add("bb-btn-new-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
47
+ button.html
48
+ end
49
+
50
+ def bb_index_btn(*args)
51
+ args = BootstrapBuilders::Button.parse_url_args(args)
52
+ args[:title] ||= t("index") if args[:mini]
53
+
54
+ button = BootstrapBuilders::Button.new(args.merge(icon: "table", context: self, can_type: :index))
55
+
56
+ if button.label.to_s.strip.empty?
57
+ if button.can_model_class
58
+ button.label = button.can_model_class.model_name.human(count: 2)
59
+ else
60
+ button.label = t("index")
61
+ end
62
+ end
63
+
64
+ button.classes.add(["bb-btn", "bb-btn-index"])
65
+ button.classes.add("bb-btn-index-#{button.can_model_class.name.tableize}") if button.can_model_class
66
+ button.html
67
+ end
68
+
69
+ def bb_show_btn(*args)
70
+ args = BootstrapBuilders::Button.parse_url_args(args)
71
+ args[:label] = t("show") unless args.key?(:label)
72
+ args[:title] ||= t("show") if args[:mini]
73
+
74
+ button = BootstrapBuilders::Button.new(args.merge(icon: "square-o", context: self, can_type: :show))
75
+ button.classes.add(["bb-btn", "bb-btn-show"])
76
+ button.classes.add("bb-btn-show-#{button.can_model_class.name.tableize.singularize}") if button.can_model_class
77
+ button.classes.add("bb-btn-show-#{button.can_model_class.name.tableize.singularize}-#{button.can_model.id}") if button.can_model
78
+ button.html
79
+ end
80
+ end
@@ -5,7 +5,7 @@ class BootstrapBuilders::Panel
5
5
  args_parser = BootstrapBuilders::ArgumentsParser.new(
6
6
  arguments: args_given,
7
7
  short_true_arguments: [
8
- :table
8
+ :collapsable, :collapsed, :table
9
9
  ]
10
10
  )
11
11
  args = args_parser.arguments
@@ -22,6 +22,8 @@ class BootstrapBuilders::Panel
22
22
  end
23
23
 
24
24
  def initialize(args)
25
+ @collapsable = args[:collapsable]
26
+ @collapsed = args[:collapsed]
25
27
  @title = args.fetch(:title)
26
28
  @table = args[:table]
27
29
  @context = args[:context]
@@ -63,7 +65,13 @@ private
63
65
  if !@title || @title.to_s.strip.empty?
64
66
  @heading.add_ele(:div, classes: ["panel-title", "pull-left"], str_html: " ") if controls?
65
67
  else
66
- @heading.add_ele(:div, classes: ["panel-title", "pull-left"], str: @title)
68
+ panel_title = @heading.add_ele(:div, classes: ["panel-title", "pull-left"])
69
+
70
+ if @collapsable
71
+ panel_title.add_ele(:a, attr: {href: "##{collapse_id}"}, data: {toggle: "collapse"}, str: @title)
72
+ else
73
+ panel_title.add_str(@title)
74
+ end
67
75
  end
68
76
  end
69
77
 
@@ -92,7 +100,19 @@ private
92
100
  end
93
101
 
94
102
  def add_body
95
- @panel.add_html(@generated_body)
103
+ if @collapsable
104
+ classes = ["panel-collapse", "collapse"]
105
+ classes << "in" unless @collapsed
106
+
107
+ collapse = @panel.add_ele(:div, classes: classes, attr: {id: collapse_id})
108
+ collapse.add_html(@generated_body)
109
+ else
110
+ @panel.add_html(@generated_body)
111
+ end
112
+ end
113
+
114
+ def collapse_id
115
+ @_collapse_id ||= "bb-collapse-#{SecureRandom.hex(4)}"
96
116
  end
97
117
 
98
118
  def container_classes
@@ -111,7 +131,7 @@ private
111
131
  if table?
112
132
  generate_body_table
113
133
  else
114
- @generated_body = @context.content_tag(:div, nil, class: ["panel-body"], &@block)
134
+ @generated_body = @context.content_tag(:div, nil, class: "panel-body", &@block)
115
135
  end
116
136
  end
117
137
 
@@ -1,3 +1,3 @@
1
1
  module BootstrapBuilders
2
- VERSION = "0.0.34".freeze
2
+ VERSION = "0.0.35".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap_builders
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.34
4
+ version: 0.0.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaspernj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-06 00:00:00.000000000 Z
11
+ date: 2017-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -62,6 +62,7 @@ files:
62
62
  - app/assets/stylesheets/bootstrap_builders/responsive-mixins.scss
63
63
  - app/controllers/bootstrap_builders/application_controller.rb
64
64
  - app/helpers/bootstrap_builders/application_helper.rb
65
+ - app/helpers/bootstrap_builders/buttons_helper.rb
65
66
  - app/views/layouts/bootstrap_builders/application.html.erb
66
67
  - config/routes.rb
67
68
  - config/spring.rb