From 09c2cc9a074dd072932ccf61ac03610d277c2a60 Mon Sep 17 00:00:00 2001 From: Simon Knox Date: Wed, 17 May 2017 23:29:54 +1000 Subject: add convdev index page --- app/assets/images/i2p-step.svg | 4 + app/assets/javascripts/dispatcher.js | 3 + app/assets/javascripts/user_callout.js | 11 +- app/assets/stylesheets/framework/variables.scss | 7 + app/assets/stylesheets/pages/convdev_index.scss | 256 +++++++++++++++++++++ app/assets/stylesheets/pages/profile.scss | 2 + ...ational_development_index_metrics_controller.rb | 4 + app/helpers/application_helper.rb | 4 +- app/views/admin/background_jobs/_head.html.haml | 4 + .../_callout.html.haml | 14 ++ .../_card.html.haml | 23 ++ .../_disabled.html.haml | 12 + .../_no_data.html.haml | 7 + .../show.html.haml | 57 +++++ app/views/dashboard/projects/index.html.haml | 2 +- app/views/layouts/nav/_admin.html.haml | 4 +- app/views/shared/_user_callout.html.haml | 2 +- app/views/shared/icons/_convdev_no_data.svg | 40 ++++ app/views/shared/icons/_convdev_no_index.svg | 67 ++++++ app/views/shared/icons/_convdev_overview.svg | 64 ++++++ app/views/shared/icons/_i2p_step_1.svg | 12 + app/views/shared/icons/_i2p_step_10.svg | 12 + app/views/shared/icons/_i2p_step_2.svg | 5 + app/views/shared/icons/_i2p_step_3.svg | 12 + app/views/shared/icons/_i2p_step_4.svg | 6 + app/views/shared/icons/_i2p_step_5.svg | 5 + app/views/shared/icons/_i2p_step_6.svg | 15 ++ app/views/shared/icons/_i2p_step_7.svg | 7 + app/views/shared/icons/_i2p_step_8.svg | 4 + app/views/shared/icons/_i2p_step_9.svg | 4 + app/views/users/show.html.haml | 2 +- 31 files changed, 658 insertions(+), 13 deletions(-) create mode 100644 app/assets/images/i2p-step.svg create mode 100644 app/assets/stylesheets/pages/convdev_index.scss create mode 100644 app/controllers/admin/conversational_development_index_metrics_controller.rb create mode 100644 app/views/admin/conversational_development_index_metrics/_callout.html.haml create mode 100644 app/views/admin/conversational_development_index_metrics/_card.html.haml create mode 100644 app/views/admin/conversational_development_index_metrics/_disabled.html.haml create mode 100644 app/views/admin/conversational_development_index_metrics/_no_data.html.haml create mode 100644 app/views/admin/conversational_development_index_metrics/show.html.haml create mode 100644 app/views/shared/icons/_convdev_no_data.svg create mode 100644 app/views/shared/icons/_convdev_no_index.svg create mode 100644 app/views/shared/icons/_convdev_overview.svg create mode 100644 app/views/shared/icons/_i2p_step_1.svg create mode 100644 app/views/shared/icons/_i2p_step_10.svg create mode 100644 app/views/shared/icons/_i2p_step_2.svg create mode 100644 app/views/shared/icons/_i2p_step_3.svg create mode 100644 app/views/shared/icons/_i2p_step_4.svg create mode 100644 app/views/shared/icons/_i2p_step_5.svg create mode 100644 app/views/shared/icons/_i2p_step_6.svg create mode 100644 app/views/shared/icons/_i2p_step_7.svg create mode 100644 app/views/shared/icons/_i2p_step_8.svg create mode 100644 app/views/shared/icons/_i2p_step_9.svg (limited to 'app') diff --git a/app/assets/images/i2p-step.svg b/app/assets/images/i2p-step.svg new file mode 100644 index 00000000000..8886092ed82 --- /dev/null +++ b/app/assets/images/i2p-step.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 283a4fd4912..e0b4ea3a0f8 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -388,6 +388,9 @@ const ShortcutsBlob = require('./shortcuts_blob'); case 'users:show': new UserCallout(); break; + case 'admin:conversational_development_index_metrics:show': + new UserCallout(); + break; case 'snippets:show': new LineHighlighter(); new BlobViewer(); diff --git a/app/assets/javascripts/user_callout.js b/app/assets/javascripts/user_callout.js index b9d57cbcad4..ff2208baeab 100644 --- a/app/assets/javascripts/user_callout.js +++ b/app/assets/javascripts/user_callout.js @@ -1,11 +1,10 @@ import Cookies from 'js-cookie'; -const USER_CALLOUT_COOKIE = 'user_callout_dismissed'; - export default class UserCallout { - constructor() { - this.isCalloutDismissed = Cookies.get(USER_CALLOUT_COOKIE); - this.userCalloutBody = $('.user-callout'); + constructor(className = 'user-callout') { + this.userCalloutBody = $(`.${className}`); + this.cookieName = this.userCalloutBody.data('uid'); + this.isCalloutDismissed = Cookies.get(this.cookieName); this.init(); } @@ -18,7 +17,7 @@ export default class UserCallout { dismissCallout(e) { const $currentTarget = $(e.currentTarget); - Cookies.set(USER_CALLOUT_COOKIE, 'true', { expires: 365 }); + Cookies.set(this.cookieName, 'true', { expires: 365 }); if ($currentTarget.hasClass('close')) { this.userCalloutBody.remove(); diff --git a/app/assets/stylesheets/framework/variables.scss b/app/assets/stylesheets/framework/variables.scss index 17a4e8fd83e..dbc0496c9d8 100644 --- a/app/assets/stylesheets/framework/variables.scss +++ b/app/assets/stylesheets/framework/variables.scss @@ -570,3 +570,10 @@ $filter-value-selected-color: #d7d7d7; Animation Functions */ $dropdown-animation-timing: cubic-bezier(0.23, 1, 0.32, 1); + +/* +Convdev Index +*/ +$color-high-score: $green-400; +$color-average-score: $orange-400; +$color-low-score: $red-400; diff --git a/app/assets/stylesheets/pages/convdev_index.scss b/app/assets/stylesheets/pages/convdev_index.scss new file mode 100644 index 00000000000..85e8895a4a4 --- /dev/null +++ b/app/assets/stylesheets/pages/convdev_index.scss @@ -0,0 +1,256 @@ +$space-between-cards: 8px; + +.convdev-empty svg { + margin: 72px auto; + max-width: 420px; +} + +.convdev-header { + margin-top: $gl-padding; + margin-bottom: $gl-padding; + padding: 8px; + display: flex; + + .convdev-header-title { + font-size: 3em; + line-height: 1; + margin: 0; + } + + .convdev-header-subtitle { + font-size: 1.5em; + line-height: 1; + } +} + +.convdev-cards { + display: flex; + justify-content: center; + + @media (max-width: $screen-lg-min) { + flex-wrap: wrap; + } +} + +.convdev-card-wrapper { + display: flex; + flex-direction: column; + align-items: stretch; + text-align: center; + width: 10%; + border-color: $border-color; + margin: 0 0 32px 0; + padding: $space-between-cards / 2; + position: relative; + + @media (max-width: $screen-lg-min) { + width: 16.667%; + } + + @media (max-width: $screen-md-min) { + width: 20%; + } + + @media (max-width: $screen-sm-min) { + width: 25%; + } + + @media (max-width: $screen-xs-min) { + width: 50%; + } +} + +.convdev-card { + border: solid 1px $border-color; + border-top-width: 5px; + display: flex; + flex-direction: column; + flex-grow: 1; +} + +.convdev-card-low { + border-top-color: $color-low-score; + + .card-score-big { + background-color: $red-25; + } +} + +.convdev-card-average { + border-top-color: $color-average-score; + + .card-score-big { + background-color: $orange-25; + } +} + +.convdev-card-high { + border-top-color: $color-high-score; + + .card-score-big { + background-color: $green-25; + } +} + +.convdev-card-title { + margin-top: $gl-padding; + margin-bottom: auto; + + h3 { + font-size: 14px; + margin: 0; + } + + .text-light { + font-size: 13px; + line-height: 1.25; + color: $gl-text-color-secondary + } +} + +.card-scores { + display: flex; + justify-content: space-around; + align-items: center; + margin: $gl-btn-padding; + line-height: 1; +} + +.card-score { + color: $gl-text-color-secondary; +} + +.card-score-value { + font-size: 16px; + color: $gl-text-color; +} + +.card-score-big { + border-top: solid 3px $border-color; + border-bottom: solid 1px $border-color; + font-size: 22px; + padding: 10px 0; +} + +.card-buttons { + display: flex; + justify-content: stretch; + + > * { + font-size: 16px; + color: $gl-text-color-secondary; + padding: 10px; + flex-grow: 1; + + &:hover { + background-color: $border-color; + color: $gl-text-color; + } + + + * { + border-left: solid 1px $border-color; + } + } +} + +.convdev-steps { + margin-top: 64px; + height: 1px; + min-width: 100%; + justify-content: space-around; + position: relative; + background: $border-color; + + @media (max-width: $screen-lg-min) { + display: none; + } +} + +.convdev-step { + $step-positions: 3% 10% 28% 39% 45% 55% 62% 70% 77% 90%; + @each $pos in $step-positions { + $i: index($step-positions, $pos); + &:nth-child(#{$i}) { + left: $pos; + } + } + + position: absolute; + transform-origin: 75% 50%; + padding: 14px; + height: 64px; + width: 64px; + display: flex; + flex-direction: column; + align-items: center; + border: solid 1px $border-color; + background: $white-light; + transform: translateY(-50%); + color: $gl-text-color-secondary; + + &:hover { + transform: scale(1.4) translateY(-33%); + fill: currentColor; + cursor: pointer; + z-index: 100; + height: auto; + width: auto; + + .convdev-step-title { + max-height: 3em; + opacity: 1; + transition: 0.1s opacity; + } + } + + svg { + width: 36px; + height: 36px; + } +} + +.convdev-step-title { + max-height: 0; + opacity: 0; + text-transform: uppercase; + margin: 0; + text-align: center; + font-size: 12px; +} + +.callout-title { + font-size: 20px; +} + +.callout-description { + font-size: 16px; + color: $gl-text-color-secondary; +} + +.user-callout { + .bordered-box { + @media (min-width: $screen-sm-min) { + padding: 2em; + } + } + + .close { + position: absolute; + right: 0px; + top: 0px; + font-size: 20px; + padding: $gl-padding; + } +} + +.convdev-high-score { + color: $color-high-score; +} + +.convdev-average-score { + color: $color-average-score; +} + +.convdev-low-score { + color: $color-low-score; +} diff --git a/app/assets/stylesheets/pages/profile.scss b/app/assets/stylesheets/pages/profile.scss index fe084eb9397..c44278da0c1 100644 --- a/app/assets/stylesheets/pages/profile.scss +++ b/app/assets/stylesheets/pages/profile.scss @@ -287,6 +287,7 @@ table.u2f-registrations { .user-callout { margin: 0 auto; + max-width: $screen-lg-min; .bordered-box { border: 1px solid $blue-300; @@ -295,6 +296,7 @@ table.u2f-registrations { position: relative; display: flex; justify-content: center; + align-items: center; } .landing { diff --git a/app/controllers/admin/conversational_development_index_metrics_controller.rb b/app/controllers/admin/conversational_development_index_metrics_controller.rb new file mode 100644 index 00000000000..7be42afe19e --- /dev/null +++ b/app/controllers/admin/conversational_development_index_metrics_controller.rb @@ -0,0 +1,4 @@ +class Admin::ConversationalDevelopmentIndexMetricsController < Admin::ApplicationController + def show + end +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e5e64650708..1b06af5abb9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -275,8 +275,8 @@ module ApplicationHelper 'active' if condition end - def show_user_callout? - cookies[:user_callout_dismissed] == 'true' + def show_callout(name) + cookies[name] != 'true' end def linkedin_url(user) diff --git a/app/views/admin/background_jobs/_head.html.haml b/app/views/admin/background_jobs/_head.html.haml index b3530915068..b70959def9e 100644 --- a/app/views/admin/background_jobs/_head.html.haml +++ b/app/views/admin/background_jobs/_head.html.haml @@ -3,6 +3,10 @@ = render 'shared/nav_scroll' .nav-links.sub-nav.scrolling-tabs %ul{ class: (container_class) } + = nav_link(controller: :conversational_development_index_metrics) do + = link_to admin_convdev_path, title: 'ConvDev Index' do + %span + ConvDev Index = nav_link(controller: :system_info) do = link_to admin_system_info_path, title: 'System Info' do %span diff --git a/app/views/admin/conversational_development_index_metrics/_callout.html.haml b/app/views/admin/conversational_development_index_metrics/_callout.html.haml new file mode 100644 index 00000000000..6fea52ca286 --- /dev/null +++ b/app/views/admin/conversational_development_index_metrics/_callout.html.haml @@ -0,0 +1,14 @@ +.prepend-top-default +.user-callout.container{ data: { uid: 'convdev_intro_callout_dismissed' } } + .bordered-box.content-block + %button.btn.btn-default.close.js-close-callout{ type: 'button', + 'aria-label' => 'Dismiss ConvDev introduction' } + = icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true') + .container.user-callout-contents + .col-sm-8 + %h4.callout-title + Introducing Your Conversational Development Index + %p.callout-description + Your Conversational Development Index gives an overview of how you are using GitLab from a feature perspective. View how they compare with other organizations, discover features your are not using, and learn best practices through blog posts and white papers. + .col-sm-4 + = custom_icon('convdev_overview') diff --git a/app/views/admin/conversational_development_index_metrics/_card.html.haml b/app/views/admin/conversational_development_index_metrics/_card.html.haml new file mode 100644 index 00000000000..8024560b90f --- /dev/null +++ b/app/views/admin/conversational_development_index_metrics/_card.html.haml @@ -0,0 +1,23 @@ +- @n1 = rand(1..3) + +.convdev-card-wrapper + .convdev-card{ class: [('convdev-card-low' if @n1 == 1), ('convdev-card-average' if @n1 == 2), ('convdev-card-high' if @n1 == 3)] } + .convdev-card-title + %h3 + = card[:title] + .text-light + = card[:description] + .card-scores + .card-score + .card-score-value 3.2 + .card-score-name You + .card-score + .card-score-value 10.2 + .card-score-name Lead + .card-score-big + 31.1% + .card-buttons + %a{ href: card[:blog] } + = icon('info-circle', 'aria-hidden' => 'true') + %a{ href: card[:docs] } + = icon('question-circle', 'aria-hidden' => 'true') diff --git a/app/views/admin/conversational_development_index_metrics/_disabled.html.haml b/app/views/admin/conversational_development_index_metrics/_disabled.html.haml new file mode 100644 index 00000000000..a4eaa3c8b3b --- /dev/null +++ b/app/views/admin/conversational_development_index_metrics/_disabled.html.haml @@ -0,0 +1,12 @@ +.container.convdev-empty + .col-sm-6.col-sm-push-3.col-lg-6.col-lg-push-3.centered-light-block.text-center + = custom_icon('convdev_no_index') + %h4.callout-title Usage ping is not enabled + .callout-description + %p + ConvDev is only shown when the + = link_to 'usage ping', help_page_path('user/admin_area/settings/usage_statistics'), target: '_blank' + is enabled. + %p + Enable usage ping to get an overview of how you are using GitLab from a feature perspective + = link_to 'Enable usage ping', admin_application_settings_path(anchor: 'usage-statistics'), class: 'btn btn-lg btn-primary' diff --git a/app/views/admin/conversational_development_index_metrics/_no_data.html.haml b/app/views/admin/conversational_development_index_metrics/_no_data.html.haml new file mode 100644 index 00000000000..f793e4bd55d --- /dev/null +++ b/app/views/admin/conversational_development_index_metrics/_no_data.html.haml @@ -0,0 +1,7 @@ +.container.convdev-empty + .col-sm-6.col-sm-push-3.col-lg-6.col-lg-push-3.centered-light-block.text-center + = custom_icon('convdev_no_data') + %h4.callout-title Data is still calculating... + %p.callout-description + In order to gather accurate feature usage data, it can take 1 to 2 weeks to see your index. + = link_to "Learn more", help_page_path('user/admin_area/monitoring/convdev'), target: '_blank' diff --git a/app/views/admin/conversational_development_index_metrics/show.html.haml b/app/views/admin/conversational_development_index_metrics/show.html.haml new file mode 100644 index 00000000000..aa712322248 --- /dev/null +++ b/app/views/admin/conversational_development_index_metrics/show.html.haml @@ -0,0 +1,57 @@ +- @no_container = true +- page_title "ConvDev Index" +- cards = [ { id: 'issues', title: 'Issues', description: 'created per active user', blog: 'https://www2.deloitte.com/content/dam/Deloitte/se/Documents/technology-media-telecommunications/deloitte-digital-collaboration.pdf' }, + { id: 'comments', title: 'Comments', description: 'created per active user', score: '23.2', lead: '25.3', blog: 'http://conversationaldevelopment.com/why/' }, + { id: 'milestones', title: 'Milestones', description: 'created per active user', score: '23.2', lead: '25.3', blog: 'http://conversationaldevelopment.com/shorten-cycle/', docs: 'https://docs.gitlab.com/ee/workflow/milestones.html' }, + { id: 'boards', title: 'Boards', description: 'created per active user', score: '23.2', lead: '25.3', docs: 'https://docs.gitlab.com/ee/user/project/issue_board.html', blog: 'http://jpattonassociates.com/user-story-mapping/' }, + { id: 'merge_requests', title: 'Merge Requests', description: 'per active user', score: '23.2', lead: '25.3', docs: 'https://docs.gitlab.com/ee/user/project/merge_requests/index.html', blog: 'https://8thlight.com/blog/uncle-bob/2013/02/01/The-Humble-Craftsman.html' }, + { id: 'pipelines', title: 'Pipelines', description: 'created per active user', score: '23.2', lead: '25.3', blog: 'https://martinfowler.com/bliki/ContinuousDelivery.html', docs: 'https://docs.gitlab.com/ee/ci/README.html' }, + { id: 'environments', title: 'Environments', description: 'created per active user', score: '23.2', lead: '25.3', blog: 'https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/', docs: 'https://docs.gitlab.com/ee/ci/environments.html' }, + { id: 'deployments', title: 'Deployments', description: 'created per active user', score: '23.2', lead: '25.3', blog: 'https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff' }, + { id: 'monitoring', title: 'Monitoring', description: 'fraction of all projects', score: '23.2', lead: '25.3', blog: 'https://prometheus.io/docs/introduction/overview/', docs: 'https://docs.gitlab.com/ee/user/project/integrations/prometheus.html' }, + { id: 'service_desk', title: 'Service Desk', description: 'issues created per active user', score: '23.2', lead: '25.3', blog: 'http://blogs.forrester.com/kate_leggett/17-01-30-top_trends_for_customer_service_in_2017_operations_become_smarter_and_more_strategic', docs: 'https://docs.gitlab.com/ee/user/project/service_desk.html' },] +- i2p_steps = [ { title: 'Idea', score: 'average' }, + { title: 'Issue', score: 'average' }, + { title: 'Plan', score: 'average' }, + { title: 'Code', score: 'average' }, + { title: 'Commit', score: 'average' }, + { title: 'Test', score: 'average' }, + { title: 'Review', score: 'average' }, + { title: 'Staging', score: 'average' }, + { title: 'Production', score: 'average' }, + { title: 'Feedback', score: 'average' }] +- overall_score = 43.8 += render 'admin/background_jobs/head' + +%div + - if show_callout('convdev_intro_callout_dismissed') + = render "admin/conversational_development_index_metrics/callout" + + .prepend-top-default + - if !current_application_settings.usage_ping_enabled + = render "admin/conversational_development_index_metrics/disabled" + - elsif @conversational_development_index_metric.blank? + = render "admin/conversational_development_index_metrics/no_data" + - else + .convdev.container + .convdev-header.row + - header_class = 'convdev-average-score' + %h2.convdev-header-title{ class: header_class } + = "#{overall_score}%" + .convdev-header-subtitle + index + %br + score + = link_to icon('question-circle', 'aria-hidden' => 'true'), help_page_path('user/admin_area/monitoring/convdev') + + .convdev-cards.card-container.row + - cards.each do |card| + = render "admin/conversational_development_index_metrics/card", card: card + + .convdev-steps.row + - i2p_steps.each_with_index do |step, index| + .convdev-step{ class: "convdev-#{step[:score]}-score" } + .as + = custom_icon("i2p_step_#{index + 1}") + %h4.convdev-step-title + = step[:title] diff --git a/app/views/dashboard/projects/index.html.haml b/app/views/dashboard/projects/index.html.haml index 596499230f9..ba12c59f07c 100644 --- a/app/views/dashboard/projects/index.html.haml +++ b/app/views/dashboard/projects/index.html.haml @@ -4,7 +4,7 @@ - page_title "Projects" - header_title "Projects", dashboard_projects_path -- unless show_user_callout? +- if show_callout('user_callout_dismissed') = render 'shared/user_callout' - if @projects.any? || params[:name] diff --git a/app/views/layouts/nav/_admin.html.haml b/app/views/layouts/nav/_admin.html.haml index d068c895fa3..352539e6c5a 100644 --- a/app/views/layouts/nav/_admin.html.haml +++ b/app/views/layouts/nav/_admin.html.haml @@ -9,8 +9,8 @@ = link_to admin_root_path, title: 'Overview', class: 'shortcuts-tree' do %span Overview - = nav_link(controller: %w(system_info background_jobs logs health_check requests_profiles)) do - = link_to admin_system_info_path, title: 'Monitoring' do + = nav_link(controller: %w(conversational_development_index_metrics system_info background_jobs logs health_check requests_profiles)) do + = link_to admin_convdev_path, title: 'Monitoring' do %span Monitoring = nav_link(controller: :broadcast_messages) do diff --git a/app/views/shared/_user_callout.html.haml b/app/views/shared/_user_callout.html.haml index 8308baa7829..17ffcba69d8 100644 --- a/app/views/shared/_user_callout.html.haml +++ b/app/views/shared/_user_callout.html.haml @@ -1,4 +1,4 @@ -.user-callout +.user-callout{ data: { uid: 'user_callout_dismissed' } } .bordered-box.landing.content-block %button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => 'Dismiss customize experience box' } diff --git a/app/views/shared/icons/_convdev_no_data.svg b/app/views/shared/icons/_convdev_no_data.svg new file mode 100644 index 00000000000..ed32b2333e7 --- /dev/null +++ b/app/views/shared/icons/_convdev_no_data.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/views/shared/icons/_convdev_no_index.svg b/app/views/shared/icons/_convdev_no_index.svg new file mode 100644 index 00000000000..95c00e81d10 --- /dev/null +++ b/app/views/shared/icons/_convdev_no_index.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/views/shared/icons/_convdev_overview.svg b/app/views/shared/icons/_convdev_overview.svg new file mode 100644 index 00000000000..2f31113bad7 --- /dev/null +++ b/app/views/shared/icons/_convdev_overview.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_1.svg b/app/views/shared/icons/_i2p_step_1.svg new file mode 100644 index 00000000000..9dedcd5291a --- /dev/null +++ b/app/views/shared/icons/_i2p_step_1.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_10.svg b/app/views/shared/icons/_i2p_step_10.svg new file mode 100644 index 00000000000..dd6fd1457ff --- /dev/null +++ b/app/views/shared/icons/_i2p_step_10.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_2.svg b/app/views/shared/icons/_i2p_step_2.svg new file mode 100644 index 00000000000..b8805b90275 --- /dev/null +++ b/app/views/shared/icons/_i2p_step_2.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/app/views/shared/icons/_i2p_step_3.svg b/app/views/shared/icons/_i2p_step_3.svg new file mode 100644 index 00000000000..6c783ed8289 --- /dev/null +++ b/app/views/shared/icons/_i2p_step_3.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_4.svg b/app/views/shared/icons/_i2p_step_4.svg new file mode 100644 index 00000000000..af804c838e0 --- /dev/null +++ b/app/views/shared/icons/_i2p_step_4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/views/shared/icons/_i2p_step_5.svg b/app/views/shared/icons/_i2p_step_5.svg new file mode 100644 index 00000000000..e54f707019e --- /dev/null +++ b/app/views/shared/icons/_i2p_step_5.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/app/views/shared/icons/_i2p_step_6.svg b/app/views/shared/icons/_i2p_step_6.svg new file mode 100644 index 00000000000..c57baccc06b --- /dev/null +++ b/app/views/shared/icons/_i2p_step_6.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_7.svg b/app/views/shared/icons/_i2p_step_7.svg new file mode 100644 index 00000000000..e9083de3afa --- /dev/null +++ b/app/views/shared/icons/_i2p_step_7.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/views/shared/icons/_i2p_step_8.svg b/app/views/shared/icons/_i2p_step_8.svg new file mode 100644 index 00000000000..62676b0e12e --- /dev/null +++ b/app/views/shared/icons/_i2p_step_8.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/views/shared/icons/_i2p_step_9.svg b/app/views/shared/icons/_i2p_step_9.svg new file mode 100644 index 00000000000..e4285a14425 --- /dev/null +++ b/app/views/shared/icons/_i2p_step_9.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index 8e8b84e0408..f52aaa8ec8f 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -100,7 +100,7 @@ Snippets %div{ class: container_class } - - if @user == current_user && !show_user_callout? + - if @user == current_user && show_callout('user_callout_dismissed') = render 'shared/user_callout' .tab-content #activity.tab-pane -- cgit v1.2.1