bootstrap_builders 0.0.34 → 0.0.35

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