From 27073d1fb5fd2e42abe3adf46e958be2e618ab41 Mon Sep 17 00:00:00 2001 From: elijah Date: Wed, 19 Jun 2013 00:36:32 -0700 Subject: style kaminari pagination to work with bootstrap --- core/app/views/kaminari/_first_page.html.haml | 9 +++++++++ core/app/views/kaminari/_gap.html.haml | 8 ++++++++ core/app/views/kaminari/_last_page.html.haml | 9 +++++++++ core/app/views/kaminari/_next_page.html.haml | 12 ++++++++++++ core/app/views/kaminari/_page.html.haml | 14 ++++++++++++++ core/app/views/kaminari/_paginator.html.haml | 19 +++++++++++++++++++ core/app/views/kaminari/_prev_page.html.haml | 12 ++++++++++++ 7 files changed, 83 insertions(+) create mode 100644 core/app/views/kaminari/_first_page.html.haml create mode 100644 core/app/views/kaminari/_gap.html.haml create mode 100644 core/app/views/kaminari/_last_page.html.haml create mode 100644 core/app/views/kaminari/_next_page.html.haml create mode 100644 core/app/views/kaminari/_page.html.haml create mode 100644 core/app/views/kaminari/_paginator.html.haml create mode 100644 core/app/views/kaminari/_prev_page.html.haml (limited to 'core/app') diff --git a/core/app/views/kaminari/_first_page.html.haml b/core/app/views/kaminari/_first_page.html.haml new file mode 100644 index 0000000..34436e3 --- /dev/null +++ b/core/app/views/kaminari/_first_page.html.haml @@ -0,0 +1,9 @@ +-# Link to the "First" page +-# available local variables +-# url: url to the first page +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%li + = link_to_unless current_page.first?, raw(t 'views.pagination.first'), url, :remote => remote diff --git a/core/app/views/kaminari/_gap.html.haml b/core/app/views/kaminari/_gap.html.haml new file mode 100644 index 0000000..51de678 --- /dev/null +++ b/core/app/views/kaminari/_gap.html.haml @@ -0,0 +1,8 @@ +-# Non-link tag that stands for skipped pages... +-# available local variables +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%li.disabled + = raw(t 'views.pagination.truncate') diff --git a/core/app/views/kaminari/_last_page.html.haml b/core/app/views/kaminari/_last_page.html.haml new file mode 100644 index 0000000..c90433c --- /dev/null +++ b/core/app/views/kaminari/_last_page.html.haml @@ -0,0 +1,9 @@ +-# Link to the "Last" page +-# available local variables +-# url: url to the last page +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%li + = link_to_unless current_page.last?, raw(t 'views.pagination.last'), url, {:remote => remote} diff --git a/core/app/views/kaminari/_next_page.html.haml b/core/app/views/kaminari/_next_page.html.haml new file mode 100644 index 0000000..ea6cab2 --- /dev/null +++ b/core/app/views/kaminari/_next_page.html.haml @@ -0,0 +1,12 @@ +-# Link to the "Next" page +-# available local variables +-# url: url to the next page +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +- if current_page.last? + %li.disabled + %span= raw(t 'views.pagination.next') +- else + %li= link_to(raw(t 'views.pagination.next'), url, :rel => 'next', :remote => remote) diff --git a/core/app/views/kaminari/_page.html.haml b/core/app/views/kaminari/_page.html.haml new file mode 100644 index 0000000..2f2f142 --- /dev/null +++ b/core/app/views/kaminari/_page.html.haml @@ -0,0 +1,14 @@ +-# Link showing page number +-# available local variables +-# page: a page object for "this" page +-# url: url to this page +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote + +- if page.current? + %li.active + %span= page +- else + %li= link_to(page, url, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil}) diff --git a/core/app/views/kaminari/_paginator.html.haml b/core/app/views/kaminari/_paginator.html.haml new file mode 100644 index 0000000..79c5b92 --- /dev/null +++ b/core/app/views/kaminari/_paginator.html.haml @@ -0,0 +1,19 @@ +-# The container tag +-# available local variables +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +-# paginator: the paginator that renders the pagination tags inside += paginator.render do + .pagination + %ul + -#= first_page_tag unless current_page.first? + = prev_page_tag #unless current_page.first? + - each_page do |page| + - if page.left_outer? || page.right_outer? || page.inside_window? + = page_tag page + - elsif !page.was_truncated? + = gap_tag + = next_page_tag #unless current_page.last? + -#= last_page_tag unless current_page.last? diff --git a/core/app/views/kaminari/_prev_page.html.haml b/core/app/views/kaminari/_prev_page.html.haml new file mode 100644 index 0000000..d274bf4 --- /dev/null +++ b/core/app/views/kaminari/_prev_page.html.haml @@ -0,0 +1,12 @@ +-# Link to the "Previous" page +-# available local variables +-# url: url to the previous page +-# current_page: a page object for the currently displayed page +-# num_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +- if current_page.first? + %li.disabled + %span= raw(t 'views.pagination.previous') +- else + %li= link_to(raw(t 'views.pagination.previous'), url, :rel => 'prev', :remote => remote) -- cgit v1.2.3 From e5a37b4ed76df8aec6131789e7361ed6efa3394b Mon Sep 17 00:00:00 2001 From: elijah Date: Sun, 23 Jun 2013 22:18:28 -0700 Subject: new home page --- core/app/helpers/navigation_helper.rb | 82 ++++++++++++++++++++++ core/app/helpers/snippet_helper.rb | 11 +++ core/app/views/common/_home_page_buttons.html.haml | 18 +++++ 3 files changed, 111 insertions(+) create mode 100644 core/app/helpers/navigation_helper.rb create mode 100644 core/app/helpers/snippet_helper.rb create mode 100644 core/app/views/common/_home_page_buttons.html.haml (limited to 'core/app') 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) -- cgit v1.2.3 From 4863ce5e78d880f1ca8a1874cd03022afb061f4a Mon Sep 17 00:00:00 2001 From: elijah Date: Fri, 28 Jun 2013 20:38:14 -0700 Subject: new layout for the home buttons --- core/app/views/common/_home_page_buttons.html.haml | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'core/app') diff --git a/core/app/views/common/_home_page_buttons.html.haml b/core/app/views/common/_home_page_buttons.html.haml index ed70ff7..82a5cc2 100644 --- a/core/app/views/common/_home_page_buttons.html.haml +++ b/core/app/views/common/_home_page_buttons.html.haml @@ -1,18 +1,19 @@ -- 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 + .span3 .download.span6 - %span.link= link_to(icon('arrow-down', icon_color) + t(:download_client), "https://downloads.leap.se/client", :class => link_class) + %span.link= link_to(big_icon('arrow-down', icon_color) + t(:download_client), "https://downloads.leap.se/client", :class => 'btn btn-large') %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) + .span3 + .row-fluid.second + .login.span4 + %span.link= link_to(icon('ok-sign', icon_color) + t(:login), new_session_path, :class => 'btn') + %span.info= t(:login_info) + .signup.span4 + %span.link= link_to(icon('user', icon_color) + t(:signup), new_user_path, :class => 'btn') + %span.info= t(:signup_info) + .help.span4 + %span.link= link_to(icon('question-sign', icon_color) + t(:get_help), "/tickets/new", :class => 'btn') %span.info= t(:help_info) -- cgit v1.2.3 From e996432cbd50f4dadaae0ff62ac3f286ab125b1f Mon Sep 17 00:00:00 2001 From: elijah Date: Tue, 2 Jul 2013 23:11:23 -0700 Subject: add js to report all errors to the user, not just ones related to field validation. --- core/app/assets/javascripts/leap.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 core/app/assets/javascripts/leap.js (limited to 'core/app') diff --git a/core/app/assets/javascripts/leap.js b/core/app/assets/javascripts/leap.js new file mode 100644 index 0000000..94e602d --- /dev/null +++ b/core/app/assets/javascripts/leap.js @@ -0,0 +1,7 @@ + +// +// add a bootstrap alert to the page via javascript. +// +function alert_message(msg) { + $('#messages').append('
×'+msg+'
'); +} -- cgit v1.2.3 From 40830b4b1fa33b9e26dbd500fc08b4b76b58011b Mon Sep 17 00:00:00 2001 From: elijah Date: Thu, 4 Jul 2013 01:36:08 -0700 Subject: minor changes to css and home page. --- core/app/helpers/core_helper.rb | 13 +++++++++++++ core/app/helpers/snippet_helper.rb | 11 ----------- 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 core/app/helpers/core_helper.rb delete mode 100644 core/app/helpers/snippet_helper.rb (limited to 'core/app') diff --git a/core/app/helpers/core_helper.rb b/core/app/helpers/core_helper.rb new file mode 100644 index 0000000..a496144 --- /dev/null +++ b/core/app/helpers/core_helper.rb @@ -0,0 +1,13 @@ +# +# Misc. helpers needed throughout. +# +module CoreHelper + + # + # insert common buttons (download, login, etc) + # + def home_page_buttons + render 'common/home_page_buttons' + end + +end \ No newline at end of file diff --git a/core/app/helpers/snippet_helper.rb b/core/app/helpers/snippet_helper.rb deleted file mode 100644 index 6fee454..0000000 --- a/core/app/helpers/snippet_helper.rb +++ /dev/null @@ -1,11 +0,0 @@ -# -# 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 -- cgit v1.2.3