fleetio_spark 0.2.48 → 1.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spark/_icons.js +1 -1
- data/app/assets/javascripts/spark/components/app/sidebar/_fix.js +4 -4
- data/app/assets/javascripts/spark/components/app/sidebar/_toggle.js +1 -1
- data/app/assets/javascripts/spark/components/layout/_auto-grid.js +5 -5
- data/app/assets/javascripts/spark/components/nav/_toggle.js +16 -7
- data/app/assets/javascripts/spark/components/ui/_sticky_panel.js +2 -2
- data/app/assets/javascripts/spark/components/ui/_toast.js +3 -6
- data/app/assets/javascripts/spark/shims/_dataset.js +241 -0
- data/app/assets/javascripts/spark/spark.js +18 -16
- data/app/assets/stylesheets/spark/_index.scss +0 -1
- data/app/assets/stylesheets/spark/components/_index.scss +11 -5
- data/app/assets/stylesheets/spark/components/app/_header.scss +15 -28
- data/app/assets/stylesheets/spark/components/app/_layout.scss +2 -2
- data/app/assets/stylesheets/spark/components/app/_sidebar.scss +19 -47
- data/app/assets/stylesheets/spark/components/app/sidebar/_header.scss +44 -48
- data/app/assets/stylesheets/spark/components/app/sidebar/_toggle.scss +5 -2
- data/app/assets/stylesheets/spark/components/button/_button.scss +48 -53
- data/app/assets/stylesheets/spark/components/button/_button_group.scss +10 -16
- data/app/assets/stylesheets/spark/components/button/_size.scss +17 -8
- data/app/assets/stylesheets/spark/components/icon/_badge.scss +41 -0
- data/app/assets/stylesheets/spark/{_icons.scss → components/icon/_icon.scss} +0 -0
- data/app/assets/stylesheets/spark/components/{form → input}/_switch.scss +20 -20
- data/app/assets/stylesheets/spark/components/layout/_block.scss +44 -0
- data/app/assets/stylesheets/spark/components/layout/_grid.scss +26 -29
- data/app/assets/stylesheets/spark/components/layout/_media_block.scss +76 -0
- data/app/assets/stylesheets/spark/components/layout/_page.scss +54 -0
- data/app/assets/stylesheets/spark/components/{app → messaging}/_banner.scss +3 -3
- data/app/assets/stylesheets/spark/components/messaging/_trial-notice.scss +20 -0
- data/app/assets/stylesheets/spark/components/nav/_item.scss +6 -30
- data/app/assets/stylesheets/spark/components/nav/_sidebar.scss +11 -48
- data/app/assets/stylesheets/spark/components/nav/_tabs.scss +5 -5
- data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-default.scss +59 -0
- data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-primary.scss +69 -0
- data/app/assets/stylesheets/spark/components/nav/tree/_group.scss +1 -6
- data/app/assets/stylesheets/spark/components/ui/_card.scss +57 -0
- data/app/assets/stylesheets/spark/components/ui/_header.scss +55 -55
- data/app/assets/stylesheets/spark/components/ui/_placeholder.scss +8 -22
- data/app/assets/stylesheets/spark/components/ui/_toolbar.scss +1 -27
- data/app/assets/stylesheets/spark/components_old/_dropdown.scss +117 -114
- data/app/assets/stylesheets/spark/components_old/_index.scss +1 -1
- data/app/assets/stylesheets/spark/components_old/header/_index.scss +0 -1
- data/app/assets/stylesheets/spark/components_old/header/_search.scss +2 -0
- data/app/assets/stylesheets/spark/core/_vars.scss +6 -3
- data/app/components/spark/badge.html.slim +4 -0
- data/app/components/spark/badge.rb +15 -0
- data/app/components/spark/banner.html.slim +7 -0
- data/app/components/spark/banner.rb +28 -0
- data/app/components/spark/button.html.slim +9 -0
- data/app/components/spark/button.rb +68 -0
- data/app/components/spark/button/group.html.slim +4 -0
- data/app/components/spark/button/group.rb +22 -0
- data/app/components/spark/card.html.slim +7 -0
- data/app/components/spark/card.rb +13 -0
- data/app/components/spark/checklist.html.slim +14 -0
- data/app/components/spark/checklist.rb +49 -0
- data/app/components/spark/checklist/container.html.slim +14 -0
- data/app/components/spark/checklist/container.rb +51 -0
- data/app/components/spark/checklist/item.html.slim +9 -0
- data/app/components/spark/checklist/item.rb +24 -0
- data/app/components/spark/checklist/trigger.html.slim +6 -0
- data/app/components/spark/checklist/trigger.rb +13 -0
- data/app/components/spark/component/base.rb +27 -0
- data/app/components/spark/embed/wistia_media.html.slim +11 -0
- data/app/components/spark/embed/wistia_media.rb +22 -0
- data/app/components/spark/embed/wistia_media_component.rb +22 -36
- data/app/components/spark/grid.html.slim +4 -0
- data/app/components/spark/grid.rb +31 -0
- data/app/components/spark/grid/column.html.slim +1 -0
- data/app/components/spark/grid/column.rb +34 -0
- data/app/components/spark/icon.html.slim +1 -0
- data/app/components/spark/icon.rb +34 -0
- data/app/components/spark/icon/placeholder.html.slim +20 -0
- data/app/components/spark/icon/placeholder.rb +139 -0
- data/app/components/spark/input/base.html.slim +1 -0
- data/app/components/spark/input/base.rb +17 -0
- data/app/components/spark/input/checkbox.html.slim +2 -0
- data/app/components/spark/input/checkbox.rb +14 -0
- data/app/components/spark/input/label.html.slim +4 -0
- data/app/components/spark/input/label.rb +13 -0
- data/app/components/spark/input/switch.html.slim +5 -0
- data/app/components/spark/input/switch.rb +24 -0
- data/app/components/spark/layout/block.html.slim +13 -0
- data/app/components/spark/layout/block.rb +62 -0
- data/app/components/spark/layout/media_block.html.slim +11 -0
- data/app/components/spark/layout/media_block.rb +29 -0
- data/app/components/spark/layout/page.html.slim +15 -0
- data/app/components/spark/layout/page.rb +37 -0
- data/app/components/spark/nav/group.html.slim +5 -0
- data/app/components/spark/nav/group.rb +31 -0
- data/app/components/spark/nav/item.html.slim +12 -0
- data/app/components/spark/nav/item.rb +36 -0
- data/app/components/spark/nav/sidebar.html.slim +14 -0
- data/app/components/spark/nav/sidebar.rb +60 -0
- data/app/components/spark/nav/tab_panels.html.slim +6 -0
- data/app/components/spark/nav/tab_panels.rb +42 -0
- data/app/components/spark/nav/tabs.html.slim +8 -0
- data/app/components/spark/nav/tabs.rb +36 -0
- data/app/components/spark/nav/toggle.html.slim +9 -0
- data/app/components/spark/nav/toggle.rb +20 -0
- data/app/components/spark/nav/tree.html.slim +9 -0
- data/app/components/spark/nav/tree.rb +53 -0
- data/app/components/spark/nav/tree/group.html.slim +9 -0
- data/app/components/spark/nav/tree/group.rb +26 -0
- data/app/components/spark/sticky_panel.html.slim +2 -0
- data/app/components/spark/sticky_panel.rb +12 -0
- data/app/components/spark/toolbar.html.slim +7 -0
- data/app/components/spark/toolbar.rb +14 -0
- data/app/components/spark/tooltip.html.slim +3 -0
- data/app/components/spark/tooltip.rb +13 -0
- data/app/components/spark/trial_notice.html.slim +3 -0
- data/app/components/spark/trial_notice.rb +35 -0
- data/app/components/spark/widget_card.html.slim +5 -0
- data/app/components/spark/widget_card.rb +12 -0
- data/app/helpers/spark/application_helper.rb +9 -0
- data/lib/fleetio_spark.rb +6 -6
- data/lib/fleetio_spark/version.rb +1 -1
- data/public/code-1.0.0.rc.1.js +2 -0
- data/public/code-1.0.0.rc.1.js.gz +0 -0
- data/public/code-1.0.0.rc.1.js.map +1 -0
- data/public/spark-1.0.0.rc.1.css +1 -0
- data/public/spark-1.0.0.rc.1.css.gz +0 -0
- data/public/spark-1.0.0.rc.1.js +2 -0
- data/public/spark-1.0.0.rc.1.js.gz +0 -0
- data/public/spark-1.0.0.rc.1.js.map +1 -0
- metadata +110 -75
- data/app/assets/stylesheets/spark/components/layout/_base.scss +0 -0
- data/app/assets/stylesheets/spark/components/layout/_header.scss +0 -55
- data/app/assets/stylesheets/spark/components/page/_header.scss +0 -9
- data/app/assets/stylesheets/spark/components/page/_main.scss +0 -62
- data/app/assets/stylesheets/spark/components_old/header/_trial-status.scss +0 -61
- data/app/components/spark/app/banner_component.rb +0 -32
- data/app/components/spark/app/content_component.rb +0 -32
- data/app/components/spark/app/header_component.rb +0 -59
- data/app/components/spark/app/layout_component.rb +0 -92
- data/app/components/spark/app/modal_component.rb +0 -5
- data/app/components/spark/app/sidebar/header_component.rb +0 -39
- data/app/components/spark/app/sidebar_component.rb +0 -20
- data/app/components/spark/button/add_component.rb +0 -9
- data/app/components/spark/button/base_component.rb +0 -39
- data/app/components/spark/button/cancel_component.rb +0 -8
- data/app/components/spark/button/danger_component.rb +0 -8
- data/app/components/spark/button/group_component.rb +0 -24
- data/app/components/spark/button/icon_component.rb +0 -14
- data/app/components/spark/button/primary_component.rb +0 -8
- data/app/components/spark/button/text_component.rb +0 -8
- data/app/components/spark/form/checkbox_component.rb +0 -16
- data/app/components/spark/form/input_component.rb +0 -9
- data/app/components/spark/form/label_component.rb +0 -12
- data/app/components/spark/form/switch_component.rb +0 -32
- data/app/components/spark/layout/base_component.rb +0 -2
- data/app/components/spark/layout/grid/column_component.rb +0 -32
- data/app/components/spark/layout/grid_component.rb +0 -37
- data/app/components/spark/layout/header_component.rb +0 -26
- data/app/components/spark/layout/page_component.rb +0 -31
- data/app/components/spark/nav/breadcrumbs_component.rb +0 -2
- data/app/components/spark/nav/group_component.rb +0 -36
- data/app/components/spark/nav/item_component.rb +0 -44
- data/app/components/spark/nav/pills_component.rb +0 -28
- data/app/components/spark/nav/sidebar_component.rb +0 -59
- data/app/components/spark/nav/tab_panels/panel_component.rb +0 -37
- data/app/components/spark/nav/tab_panels/tab_component.rb +0 -13
- data/app/components/spark/nav/tab_panels_component.rb +0 -28
- data/app/components/spark/nav/tabs_component.rb +0 -59
- data/app/components/spark/nav/toggle_component.rb +0 -28
- data/app/components/spark/nav/tree/group_component.rb +0 -35
- data/app/components/spark/nav/tree_component.rb +0 -56
- data/app/components/spark/page/layout_component.rb +0 -32
- data/app/components/spark/page/main_component.rb +0 -39
- data/app/components/spark/ui/card_component.rb +0 -16
- data/app/components/spark/ui/checklist/container_component.rb +0 -56
- data/app/components/spark/ui/checklist/item_component.rb +0 -37
- data/app/components/spark/ui/checklist_trigger_component.rb +0 -20
- data/app/components/spark/ui/icon/_icon.html.erb +0 -0
- data/app/components/spark/ui/icon_component.rb +0 -30
- data/app/components/spark/ui/placeholder_component.rb +0 -105
- data/app/components/spark/ui/sticky_panel_component.rb +0 -9
- data/app/components/spark/ui/toolbar_component.rb +0 -17
- data/app/components/spark/ui/tooltip_component.rb +0 -13
- data/app/components/spark/ui/widget_card_component.rb +0 -13
- data/lib/fleetio_spark/component.rb +0 -36
- data/public/code-0.2.48.js +0 -2
- data/public/code-0.2.48.js.gz +0 -0
- data/public/code-0.2.48.js.map +0 -1
- data/public/spark-0.2.48.css +0 -1
- data/public/spark-0.2.48.css.gz +0 -0
- data/public/spark-0.2.48.js +0 -2
- data/public/spark-0.2.48.js.gz +0 -0
- data/public/spark-0.2.48.js.map +0 -1
@@ -1,20 +0,0 @@
|
|
1
|
-
class App::SidebarComponent < Nav::SidebarComponent
|
2
|
-
aria_attr label: "primary navigation"
|
3
|
-
base_class "app-sidebar"
|
4
|
-
data_attr scroll: true, toggled_by: ".app-sidebar-toggle"
|
5
|
-
|
6
|
-
element :header, component: "app/sidebar/header"
|
7
|
-
|
8
|
-
element :nav, component: "nav/tree" do
|
9
|
-
root_attr id: "app-sidebar-nav"
|
10
|
-
attribute root_icon_size: :medium
|
11
|
-
end
|
12
|
-
|
13
|
-
def render
|
14
|
-
content_tag(:nav, tag_attrs) do
|
15
|
-
concat header
|
16
|
-
concat nav
|
17
|
-
concat footer_tag unless footer.blank?
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
class Button::BaseComponent < SparkComponents::Component
|
2
|
-
COLORS = %i(blue green yellow red)
|
3
|
-
SIZES = %i(small base medium large)
|
4
|
-
|
5
|
-
attribute :text, :color, :size, :icon, :href
|
6
|
-
root_attr :value, :disabled, :name, :target, type: :button
|
7
|
-
aria_attr :hidden
|
8
|
-
|
9
|
-
base_class "spark-button"
|
10
|
-
|
11
|
-
validates_choice :size, SIZES.dup, required: false
|
12
|
-
validates_choice :color, COLORS.dup, required: false
|
13
|
-
validates :text, presence: true, if: -> { @yield.nil? }
|
14
|
-
|
15
|
-
def before_render
|
16
|
-
add_class("size-#{size}") if size
|
17
|
-
add_class("color-#{color}") if color
|
18
|
-
if (href && (data_attr[:remote] || data_attr[:method]))
|
19
|
-
root_attr rel: "nofollow"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def render
|
24
|
-
content_tag(:div, class: join_class("wrapper")) do
|
25
|
-
if href
|
26
|
-
link_to(button_content, href, tag_attrs)
|
27
|
-
else
|
28
|
-
tag.button(button_content, tag_attrs)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def button_content
|
34
|
-
capture {
|
35
|
-
concat component("ui/icon", name: icon) if icon
|
36
|
-
concat tag.span(text || @yield, class: join_class(:label))
|
37
|
-
}
|
38
|
-
end
|
39
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
class Button::GroupComponent < SparkComponents::Component
|
2
|
-
COLORS = Button::BaseComponent::COLORS
|
3
|
-
SIZES = Button::BaseComponent::SIZES
|
4
|
-
|
5
|
-
attribute :color, :size
|
6
|
-
root_attr role: "group"
|
7
|
-
|
8
|
-
base_class "spark-button-group"
|
9
|
-
|
10
|
-
validates_choice :color, COLORS, required: false
|
11
|
-
validates_choice :size, SIZES, required: false
|
12
|
-
|
13
|
-
element :button, multiple: true, component: "button/base"
|
14
|
-
|
15
|
-
def render
|
16
|
-
unless buttons.empty?
|
17
|
-
content_tag(:div, tag_attrs) do
|
18
|
-
buttons.each { |button|
|
19
|
-
concat button
|
20
|
-
}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
class Button::IconComponent < Button::BaseComponent
|
2
|
-
|
3
|
-
def before_render
|
4
|
-
aria_attr label: text
|
5
|
-
add_class("theme-icon-only")
|
6
|
-
super
|
7
|
-
end
|
8
|
-
|
9
|
-
validates :icon, presence: true
|
10
|
-
|
11
|
-
def button_content
|
12
|
-
component("ui/icon", name: icon, class: join_class('icon')) if icon
|
13
|
-
end
|
14
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
class Form::CheckboxComponent < Form::InputComponent
|
2
|
-
root_attr :checked
|
3
|
-
data_attr :toggle
|
4
|
-
|
5
|
-
def render
|
6
|
-
component "form/label", text: label do
|
7
|
-
concat tag(:input, input_attrs)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def input_attrs
|
12
|
-
tag_attrs.merge({
|
13
|
-
type: "checkbox"
|
14
|
-
})
|
15
|
-
end
|
16
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
class Form::InputComponent < SparkComponents::Component
|
2
|
-
root_attr :value, :id, :disabled, :required, :name
|
3
|
-
attribute :label
|
4
|
-
add_class "spark-input"
|
5
|
-
|
6
|
-
# TODO: Add aria attribute validation when component attribute features are fixed.
|
7
|
-
# If a label is not passed, require an aria-label for accessibility
|
8
|
-
#validates :label, presence: { message: %q(a label or `aria: { label: "text" }` is required for accessiblity) }, unless: -> { @aria.present? && @aria[:label].present? }
|
9
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class Form::SwitchComponent < Form::CheckboxComponent
|
2
|
-
SIZE = %i[small medium].freeze
|
3
|
-
ALIGNMENT = %i[left right].freeze
|
4
|
-
|
5
|
-
base_class "spark-switch"
|
6
|
-
attribute size: :medium, align: :left, value: true
|
7
|
-
|
8
|
-
validates_choice :size, SIZE
|
9
|
-
validates_choice :align, ALIGNMENT
|
10
|
-
|
11
|
-
def before_render
|
12
|
-
add_class(size)
|
13
|
-
add_class(join_class("align-#{align}")) if align
|
14
|
-
end
|
15
|
-
|
16
|
-
def render
|
17
|
-
content_tag(:div, class: classnames) do
|
18
|
-
component("form/label", text: label, class: join_class("label")) do
|
19
|
-
concat(tag(:input, input_attrs))
|
20
|
-
concat content_tag(:span, class: join_class("panel")) {
|
21
|
-
content_tag(:span, nil, class: join_class("tick"))
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def input_attrs
|
28
|
-
super.merge({
|
29
|
-
class: join_class("input")
|
30
|
-
})
|
31
|
-
end
|
32
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class Layout::Grid::ColumnComponent < SparkComponents::Component
|
2
|
-
SPAN_NAME = { half: 6, third: 4, fourth: 3, sixth: 2 }.freeze
|
3
|
-
SPAN = [*(1..12), *SPAN_NAME.keys].freeze
|
4
|
-
OFFSET = [*(1..11), *SPAN_NAME.keys].freeze
|
5
|
-
|
6
|
-
data_attr :span, :offset
|
7
|
-
|
8
|
-
validates_choice :span, SPAN, required: false
|
9
|
-
validates_choice :offset, OFFSET, required: false
|
10
|
-
|
11
|
-
def before_render
|
12
|
-
base_class "spark-grid-column"
|
13
|
-
@span ||= parent.span if parent && parent.respond_to?(:span)
|
14
|
-
data_attr span: span_name(span) || 0
|
15
|
-
data_attr offset: span_name(offset)
|
16
|
-
end
|
17
|
-
|
18
|
-
def render
|
19
|
-
content_tag(:div, @yield, tag_attrs)
|
20
|
-
end
|
21
|
-
|
22
|
-
def span_name(size)
|
23
|
-
return if size.nil?
|
24
|
-
if size.is_a? Integer
|
25
|
-
SPAN[size - 1]
|
26
|
-
elsif size.is_a? Float
|
27
|
-
SPAN[(SPAN.size * size) - 1]
|
28
|
-
elsif size = SPAN_NAME[size.to_sym]
|
29
|
-
SPAN[(12 / size) - 1]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
class Layout::GridComponent < SparkComponents::Component
|
2
|
-
COLUMN = [1,2,3,4,6,12].freeze
|
3
|
-
GUTTER = %i[small base medium large xl].freeze
|
4
|
-
|
5
|
-
attribute :span, :cols, :gutter, :gutter_match, :min, wrap: true
|
6
|
-
|
7
|
-
validates_choice :span, Layout::Grid::ColumnComponent::SPAN, required: false
|
8
|
-
validates_choice :cols, COLUMN, required: false
|
9
|
-
validates_choice :gutter, GUTTER, required: false
|
10
|
-
|
11
|
-
element :column, multiple: true, component: "layout/grid/column"
|
12
|
-
|
13
|
-
def after_init
|
14
|
-
raise "Grids do not support both cols and span. Set `span` (default span for colums), or `cols` (the number of columns per row)" if span && cols
|
15
|
-
@gutter ||= :base if gutter_match
|
16
|
-
@span = 12 / @cols if @cols
|
17
|
-
end
|
18
|
-
|
19
|
-
def before_render
|
20
|
-
base_class "spark-grid"
|
21
|
-
|
22
|
-
add_class(join_class("gutter-#{gutter}")) if gutter
|
23
|
-
add_class(join_class("gutter-#{gutter}-match")) if gutter && gutter_match
|
24
|
-
data_attr column_min: min
|
25
|
-
add_class join_class("no-wrap") unless wrap
|
26
|
-
end
|
27
|
-
|
28
|
-
def render
|
29
|
-
content_tag(:div, tag_attrs) do
|
30
|
-
concat content_tag(:div, class: join_class(:columns)) {
|
31
|
-
columns.each { |column|
|
32
|
-
concat column
|
33
|
-
}
|
34
|
-
}
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
class Layout::HeaderComponent < SparkComponents::Component
|
2
|
-
base_class "spark-header"
|
3
|
-
attribute :title, :badge, :tooltip
|
4
|
-
aria_attr :described_by
|
5
|
-
element :action, multiple: true
|
6
|
-
|
7
|
-
def before_render
|
8
|
-
aria_attr(described_by: unique_id("tooltip")) if tooltip
|
9
|
-
end
|
10
|
-
|
11
|
-
def render
|
12
|
-
content_tag(:header, tag_attrs) {
|
13
|
-
concat content_tag(:div, class: join_class("title")) {
|
14
|
-
concat if_content_tag(:div, title, join_class: "title-content")
|
15
|
-
concat tooltip_tag if tooltip
|
16
|
-
concat if_content_tag(:div, badge, join_class: "badge")
|
17
|
-
}
|
18
|
-
concat if_content_tags(:div, actions, join_class: "action")
|
19
|
-
}
|
20
|
-
end
|
21
|
-
|
22
|
-
def tooltip_tag
|
23
|
-
component("ui/tooltip", text: tooltip, id: aria_attr[:described_by], class: join_class("tooltip"))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class Layout::PageComponent < SparkComponents::Component
|
2
|
-
element :nav
|
3
|
-
element :title
|
4
|
-
element :header
|
5
|
-
element :body
|
6
|
-
element :footer
|
7
|
-
element :main, component: "layout/base"
|
8
|
-
element :action, multiple: true
|
9
|
-
|
10
|
-
def render
|
11
|
-
@view.capture do
|
12
|
-
if title || nav || header
|
13
|
-
concat(component("page/header") { |page_header|
|
14
|
-
concat(page_header.nav { nav.yield }) if nav
|
15
|
-
concat component("layout/header", title: title) { |ui_header|
|
16
|
-
actions.each { |a| ui_header.action { a.yield } }
|
17
|
-
}
|
18
|
-
concat(page_header.body { header.yield }) if header
|
19
|
-
})
|
20
|
-
end
|
21
|
-
concat(content_tag(:div, main, class: "spark-page-main-wrapper")) if main
|
22
|
-
concat(content_tag(:div, body, class: "spark-page-body")) unless body.blank?
|
23
|
-
concat(content_tag(:div, footer, class: "spark-page-footer")) unless footer.blank?
|
24
|
-
concat content_for(:modal)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def modal(&block)
|
29
|
-
content_for(:modals, &block)
|
30
|
-
end
|
31
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
class Nav::GroupComponent < SparkComponents::Component
|
2
|
-
attribute role: 'group'
|
3
|
-
attribute item_role: 'menuitem'
|
4
|
-
|
5
|
-
element :item, multiple: true, component: "nav/item"
|
6
|
-
|
7
|
-
def before_render
|
8
|
-
add_class "active" if active?
|
9
|
-
end
|
10
|
-
|
11
|
-
def render
|
12
|
-
unless items.empty?
|
13
|
-
tag.ul(class: "spark-nav-group", role: role) do
|
14
|
-
items.each { |item|
|
15
|
-
concat tag.li(item, class: "nav-item-wrapper", role: item_role)
|
16
|
-
}
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def new?
|
22
|
-
items.any?(&:new?)
|
23
|
-
end
|
24
|
-
|
25
|
-
def beta?
|
26
|
-
items.any?(&:beta?)
|
27
|
-
end
|
28
|
-
|
29
|
-
def active_item
|
30
|
-
items.find(&:active?)
|
31
|
-
end
|
32
|
-
|
33
|
-
def active?
|
34
|
-
items.any?(&:active?)
|
35
|
-
end
|
36
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
class Nav::ItemComponent < SparkComponents::Component
|
2
|
-
attribute :text, :icon, :detail, :badge, :active, :beta, :new
|
3
|
-
attribute icon_size: :small
|
4
|
-
root_attr :href, :role, :id, :tabindex, :target
|
5
|
-
base_class "nav-item"
|
6
|
-
|
7
|
-
def before_render
|
8
|
-
#root_attr(href: href || "#")
|
9
|
-
add_class "active" if active?
|
10
|
-
end
|
11
|
-
|
12
|
-
def render
|
13
|
-
content_tag(:a, tag_attrs) do
|
14
|
-
concat component("ui/icon", name: icon, size: icon_size, class: join_class("icon")) if icon
|
15
|
-
concat tag.span(class: join_class("content")) {
|
16
|
-
concat tag.span(text || @yield, class: join_class("text"))
|
17
|
-
concat tag.span(label.upcase, class: [join_class("label"), label]) if label
|
18
|
-
}
|
19
|
-
concat tag.span(detail, class: join_class("detail")) if detail
|
20
|
-
concat tag.span(badge, class: join_class("badge")) if badge
|
21
|
-
concat @yield if text
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def label
|
26
|
-
if new?
|
27
|
-
"new"
|
28
|
-
elsif beta
|
29
|
-
"beta"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def new?
|
34
|
-
if new.is_a?(String)
|
35
|
-
30.days.ago <= Time.zone.parse( new )
|
36
|
-
else
|
37
|
-
new
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def active?
|
42
|
-
root_attr[:href] != "#" && @view.current_page?(root_attr[:href]) || active
|
43
|
-
end
|
44
|
-
end
|