summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2013-07-08 11:30:35 -0700
committerjessib <jessib@leap.se>2013-07-08 11:30:35 -0700
commitfc3c5994df61de04b8b17b495a638efc0d760126 (patch)
tree644aa93dfd0a6da2ed9b20ba688712fb9082f425 /core
parentcfb9e1d4c2e954222b77c4dd11e06ae3a0092be5 (diff)
parent3113f8b814417a896ad5340fda88927733f8ab22 (diff)
Merge branch 'master' into feature/disable_account
Conflicts: users/app/controllers/users_controller.rb users/app/helpers/users_helper.rb users/app/views/users/edit.html.haml users/app/views/users/show.html.haml users/config/locales/en.yml
Diffstat (limited to 'core')
-rw-r--r--core/app/assets/javascripts/leap.js7
-rw-r--r--core/app/helpers/core_helper.rb13
-rw-r--r--core/app/helpers/navigation_helper.rb82
-rw-r--r--core/app/views/common/_home_page_buttons.html.haml19
-rw-r--r--core/app/views/kaminari/_first_page.html.haml9
-rw-r--r--core/app/views/kaminari/_gap.html.haml8
-rw-r--r--core/app/views/kaminari/_last_page.html.haml9
-rw-r--r--core/app/views/kaminari/_next_page.html.haml12
-rw-r--r--core/app/views/kaminari/_page.html.haml14
-rw-r--r--core/app/views/kaminari/_paginator.html.haml19
-rw-r--r--core/app/views/kaminari/_prev_page.html.haml12
-rw-r--r--core/config/initializers/simple_form_bootstrap.rb12
-rw-r--r--core/config/locales/en.yml30
13 files changed, 246 insertions, 0 deletions
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('<div class="alert alert-error"><a class="close" data-dismiss="alert">×</a><span>'+msg+'</span></div>');
+}
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/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/views/common/_home_page_buttons.html.haml b/core/app/views/common/_home_page_buttons.html.haml
new file mode 100644
index 0000000..82a5cc2
--- /dev/null
+++ b/core/app/views/common/_home_page_buttons.html.haml
@@ -0,0 +1,19 @@
+- icon_color = :black
+
+.home-buttons
+ .row-fluid.first
+ .span3
+ .download.span6
+ %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
+ .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)
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)
diff --git a/core/config/initializers/simple_form_bootstrap.rb b/core/config/initializers/simple_form_bootstrap.rb
index 1a22967..c949f5e 100644
--- a/core/config/initializers/simple_form_bootstrap.rb
+++ b/core/config/initializers/simple_form_bootstrap.rb
@@ -37,6 +37,18 @@ SimpleForm.setup do |config|
end
end
+ #
+ # when you don't want any bootstrap "control-group" or "controls" wrappers.
+ #
+ config.wrappers :none, :tag => 'div', :error_class => 'error' do |b|
+ b.use :html5
+ b.use :placeholder
+ b.use :label
+ b.use :input
+ b.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' }
+ b.use :hint, :wrap_with => { :tag => 'p', :class => 'help-block' }
+ end
+
# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
# Check the Bootstrap docs (http://twitter.github.com/bootstrap)
# to learn about the different styles for forms and inputs,
diff --git a/core/config/locales/en.yml b/core/config/locales/en.yml
new file mode 100644
index 0000000..25b377a
--- /dev/null
+++ b/core/config/locales/en.yml
@@ -0,0 +1,30 @@
+en:
+ no_such_thing: "No such %{thing}."
+ thing_was_successfully_created: "%{thing} was successfully created."
+ create_thing: "Create %{thing}"
+
+ overview: "Overview"
+ user_control_panel: "user control panel"
+
+ created: "Created"
+ created_by_on: "Created by %{user} on %{time}"
+ updated: "Updated"
+
+ none: "None"
+ unknown: "Unknown"
+ admin: "Admin"
+ anonymous: "Anonymous"
+ save: "Save"
+ add: "Add"
+ remove: "Remove"
+ changes_saved: "Changes saved successfully."
+ are_you_sure: "Are you sure? This change cannot be undone."
+
+ download_client: "Download Bitmask"
+ download_client_info: "The Bitmask application allows you to use %{provider} services. It is available for Linux, Mac, Windows, and Android."
+ login_info: "Log in to change your account settings, create support tickets, and manage payments."
+ signup_info: "Sign up for a new user account via this website (it is better if you use the Bitmask application to sign up, but this website works too)."
+ welcome: "Welcome to %{provider}."
+ get_help: "Get Help"
+ help_info: "Can't login? Create a new support ticket anonymously."
+ example_email: 'user@domain.org'