diff options
-rw-r--r-- | app/assets/stylesheets/application.scss | 15 | ||||
-rw-r--r-- | app/assets/stylesheets/leap.scss | 65 | ||||
-rw-r--r-- | app/helpers/application_helper.rb | 17 | ||||
-rw-r--r-- | app/helpers/navigation_helper.rb | 82 | ||||
-rw-r--r-- | app/views/home/_home_text.html.haml | 3 | ||||
-rw-r--r-- | app/views/home/index.html.haml | 23 | ||||
-rw-r--r-- | app/views/layouts/_footer.html.haml | 0 | ||||
-rw-r--r-- | app/views/layouts/_header.html.haml | 3 | ||||
-rw-r--r-- | app/views/layouts/_masthead.html.haml | 4 | ||||
-rw-r--r-- | app/views/layouts/_masthead_large.html.haml | 3 | ||||
-rw-r--r-- | app/views/layouts/_navigation.html.haml | 17 | ||||
-rw-r--r-- | app/views/layouts/application.html.haml | 30 | ||||
-rw-r--r-- | config/defaults.yml | 4 | ||||
-rw-r--r-- | config/locales/en.yml | 7 |
14 files changed, 238 insertions, 35 deletions
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 25e854e..5a5e900 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,7 +1,7 @@ // // import custom scss, content to be set in deployment. // -@import "tail"; +@import "head"; // First import journal variables @import "bootswatch/cerulean/variables"; @@ -10,17 +10,12 @@ // import bootstrap. // @import "bootstrap"; -body { padding-top: 60px; } - @import "bootstrap-responsive"; -table.table-hover .btn { - opacity: 0; -} -table.table-hover tr:hover .btn { - opacity: 1; -} -@import "bootstrap-editable"; +// +// LEAP web app specific overrides +// +@import "leap"; // And finally bootswatch style itself @import "bootswatch/cerulean/bootswatch"; diff --git a/app/assets/stylesheets/leap.scss b/app/assets/stylesheets/leap.scss new file mode 100644 index 0000000..42638eb --- /dev/null +++ b/app/assets/stylesheets/leap.scss @@ -0,0 +1,65 @@ + +table.table-hover .btn { + opacity: 0; +} +table.table-hover tr:hover .btn { + opacity: 1; +} + +.debug { + outline: 1px solid red; +} + +// +// Icons +// + + +// force a black icon, even if bootstrap thinks differently +.icon-black { + background-image: url(/assets/glyphicons-halflings.png) !important; +} + +// +// Typography +// + +.first { + margin-top: 0; + padding-top: 0; +} + +// +// Boring default masthead +// + +#masthead { + background: #eee; + margin-bottom: 10px; + border-bottom: 1px solid #e6e6e6; + .title { + padding: 20px; + font-size: 1.25em; + } + .sitename { + font-weight: bold; + } +} + +// +// Side Navigation +// + +.sidenav { + @extend .nav-tabs; + @extend .nav-stacked; + box-shadow: 0 2px 4px rgba(0,0,0,.1); + li.active { + a, a:hover { + background-color: $blueDark; + color: $white; + border-color: darken($blueDark, 10%); + cursor: pointer; + } + } +} diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be79..db70109 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,19 @@ module ApplicationHelper + + # + # markup for bootstrap icon + # + # http://twitter.github.io/bootstrap/base-css.html#icons + # + def icon(name, color=nil) + if color.nil? + color_class = nil + elsif color == :black + color_class = 'icon-black' + elsif color == :white + color_class = 'icon-white' + end + "<i class=\"icon-#{name} #{color_class}\"></i> ".html_safe + end + end diff --git a/app/helpers/navigation_helper.rb b/app/helpers/navigation_helper.rb new file mode 100644 index 0000000..19cb934 --- /dev/null +++ b/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/app/views/home/_home_text.html.haml b/app/views/home/_home_text.html.haml new file mode 100644 index 0000000..1055091 --- /dev/null +++ b/app/views/home/_home_text.html.haml @@ -0,0 +1,3 @@ +Welcome to the LEAP web application. + +For more information, visit #{link_to('leap.se', 'https://leap.se')}
\ No newline at end of file diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index c02dcad..0b3bbf9 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -1,11 +1,16 @@ -Try to fetch a -= link_to "cert", cert_path +.row-fluid + .span8 + = render 'home_text' + .span4 + = render '/login_or_signup' -%p -Create a -= link_to "ticket", new_ticket_path +- if Rails.env == 'development' + .row-fluid + %hr + %p + Try to fetch a + = link_to "cert", cert_path -- if logged_in? - %p - See all - = link_to "tickets", tickets_path + %p + Create a + = link_to "ticket", new_ticket_path diff --git a/app/views/layouts/_footer.html.haml b/app/views/layouts/_footer.html.haml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/views/layouts/_footer.html.haml diff --git a/app/views/layouts/_header.html.haml b/app/views/layouts/_header.html.haml new file mode 100644 index 0000000..aa4054b --- /dev/null +++ b/app/views/layouts/_header.html.haml @@ -0,0 +1,3 @@ +- if user + %strong.user_address + = user.email_address diff --git a/app/views/layouts/_masthead.html.haml b/app/views/layouts/_masthead.html.haml new file mode 100644 index 0000000..280f2c2 --- /dev/null +++ b/app/views/layouts/_masthead.html.haml @@ -0,0 +1,4 @@ +.title + %span.sitename + = APP_CONFIG[:domain] + = t(:user_control_panel)
\ No newline at end of file diff --git a/app/views/layouts/_masthead_large.html.haml b/app/views/layouts/_masthead_large.html.haml new file mode 100644 index 0000000..6bb1943 --- /dev/null +++ b/app/views/layouts/_masthead_large.html.haml @@ -0,0 +1,3 @@ +.title + %span.sitename + = APP_CONFIG[:domain]
\ No newline at end of file diff --git a/app/views/layouts/_navigation.html.haml b/app/views/layouts/_navigation.html.haml index b75eed7..7cd0f38 100644 --- a/app/views/layouts/_navigation.html.haml +++ b/app/views/layouts/_navigation.html.haml @@ -1,6 +1,13 @@ -= link_to "Leap Web", root_path, :class => 'brand' -%ul.nav - // = render '/tickets/nav' +//= link_to "Leap Web", root_path, :class => 'brand' +//%ul.nav +// // = render '/tickets/nav' +// +//%ul.nav.pull-right +// = render '/sessions/nav' -%ul.nav.pull-right - = render '/sessions/nav' +%ul.nav.sidenav + = link_to_navigation t(:overview), user_overview_path(user), :active => controller?(:overviews) + = link_to_navigation t(:account_settings), edit_user_path(user), :active => controller?(:users) + =# link_to_navigation t(:email_settings), edit_email_path(user), :active => controller?(:emails) + = link_to_navigation t(:support_tickets), tickets_path, :active => controller?(:tickets) + = link_to_navigation t(:logout), logout_path, :method => :delete diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index e6d22f0..719d699 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -9,15 +9,27 @@ = csrf_meta_tags = yield(:head) %body - %header.navbar.navbar-fixed-top - %nav.navbar-inner - .container - = render 'layouts/navigation' - #main{:role => "main"} - .container - .content - .row + #masthead + - if logged_in? + = render 'layouts/masthead' + - else + = render 'layouts/masthead_large' + #main + .container-fluid + - if logged_in? + .row-fluid .span12 + = render 'layouts/header' + .row-fluid + .span2 + = render 'layouts/navigation' + .span10 = render 'layouts/messages' = yield - %footer + - else + .row-fluid + .span12 + = render 'layouts/messages' + = yield + #footer + = render 'layouts/footer' diff --git a/config/defaults.yml b/config/defaults.yml index f3b92c0..25537fe 100644 --- a/config/defaults.yml +++ b/config/defaults.yml @@ -17,7 +17,7 @@ development: <<: *dev_ca <<: *cert_options admins: [admin, admin2] - domain: develop.me + domain: example.org secret_token: '550df064dbc5052d9e192b324c1c5a1095c85a2195f88bd6f6829c63b74d8dffa4556494a2e8cc44345a1926be8b6cb17aa4b3f3102d826f5679c3fb57bb7100' test: @@ -30,4 +30,4 @@ test: production: <<: *cert_options admins: [] - domain: deploy.me + domain: example.net diff --git a/config/locales/en.yml b/config/locales/en.yml index fc61c31..40cdb4a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4,3 +4,10 @@ en: hello: "Hello world" no_such_thing: "No such %{thing}." + + overview: "Overview" + user_control_panel: "user control panel" + + created: "Created" + updated: "Updated" + |