summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/app/helpers/navigation_helper.rb82
-rw-r--r--core/app/helpers/snippet_helper.rb11
-rw-r--r--core/app/views/common/_home_page_buttons.html.haml18
3 files changed, 111 insertions, 0 deletions
diff --git a/core/app/helpers/navigation_helper.rb b/core/app/helpers/navigation_helper.rb
new file mode 100644
index 0000000..19cb934
--- /dev/null
+++ b/core/app/helpers/navigation_helper.rb
@@ -0,0 +1,82 @@
+module NavigationHelper
+
+ #
+ # used to create a side navigation link.
+ #
+ # Signature is the same as link_to, except it accepts an :active value in the html_options
+ #
+ def link_to_navigation(*args)
+ if args.last.is_a? Hash
+ html_options = args.pop.dup
+ active_class = html_options.delete(:active) ? 'active' : nil
+ html_options[:class] = [html_options[:class], active_class].join(' ')
+ args << html_options
+ else
+ active_class = nil
+ end
+ content_tag :li, :class => active_class do
+ link_to(*args)
+ end
+ end
+
+ #
+ # returns true if params[:action] matches one of the args.
+ #
+ def action?(*actions)
+ actions.detect do |action|
+ if action.is_a? String
+ action == action_string
+ elsif action.is_a? Symbol
+ if action == :none
+ action_string == nil
+ else
+ action == action_symbol
+ end
+ end
+ end
+ end
+
+ #
+ # returns true if params[:controller] matches one of the args.
+ #
+ # for example:
+ # controller?(:me, :home)
+ # controller?('groups/') <-- matches any controller in namespace 'groups'
+ #
+ def controller?(*controllers)
+ controllers.each do |cntr|
+ if cntr.is_a? String
+ if cntr.ends_with?('/')
+ return true if controller_string.starts_with?(cntr.chop)
+ end
+ return true if cntr == controller_string
+ elsif cntr.is_a? Symbol
+ return true if cntr == controller_symbol
+ end
+ end
+ return false
+ end
+
+ private
+
+ def controller_string
+ @controller_string ||= params[:controller].to_s.gsub(/^\//, '')
+ end
+
+ def controller_symbol
+ @controller_symbol ||= params[:controller].gsub(/^\//,'').gsub('/','_').to_sym
+ end
+
+ def action_string
+ params[:action]
+ end
+
+ def action_symbol
+ @action_symbol ||= if params[:action].present?
+ params[:action].to_sym
+ else
+ nil
+ end
+ end
+
+end
diff --git a/core/app/helpers/snippet_helper.rb b/core/app/helpers/snippet_helper.rb
new file mode 100644
index 0000000..6fee454
--- /dev/null
+++ b/core/app/helpers/snippet_helper.rb
@@ -0,0 +1,11 @@
+#
+# various html snippets we use throughout.
+#
+
+module SnippetHelper
+
+ def home_page_buttons
+ render 'common/home_page_buttons'
+ end
+
+end \ No newline at end of file
diff --git a/core/app/views/common/_home_page_buttons.html.haml b/core/app/views/common/_home_page_buttons.html.haml
new file mode 100644
index 0000000..ed70ff7
--- /dev/null
+++ b/core/app/views/common/_home_page_buttons.html.haml
@@ -0,0 +1,18 @@
+- link_class = 'btn'
+- icon_color = :black
+
+.home-buttons
+ .row-fluid.first
+ .login.span6
+ %span.link= link_to(icon('ok-sign', icon_color) + t(:login), new_session_path, :class => link_class)
+ %span.info= t(:login_info)
+ .signup.span6
+ %span.link= link_to(icon('user', icon_color) + t(:signup), new_user_path, :class => link_class)
+ %span.info= t(:signup_info)
+ .row-fluid.second
+ .download.span6
+ %span.link= link_to(icon('arrow-down', icon_color) + t(:download_client), "https://downloads.leap.se/client", :class => link_class)
+ %span.info= t(:download_client_info, :provider => content_tag(:b,APP_CONFIG[:domain])).html_safe
+ .help.span6
+ %span.link= link_to(icon('question-sign', icon_color) + t(:get_help), "/tickets/new", :class => link_class)
+ %span.info= t(:help_info)