diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-25 06:08:38 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-25 06:08:38 +0000 |
commit | 0ebaa8a2fd43938cee0d2074f84cdfd10f1e23d1 (patch) | |
tree | f9833e52906e746225f206e7e812d4ee7bc010f8 /app | |
parent | 6c577c9ada5398fc44bc7a040a655b7a788eb0c9 (diff) | |
download | gitlab-ce-0ebaa8a2fd43938cee0d2074f84cdfd10f1e23d1.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
31 files changed, 44 insertions, 43 deletions
diff --git a/app/assets/javascripts/boards/components/issue_card_inner.vue b/app/assets/javascripts/boards/components/issue_card_inner.vue index 642d104675a..650e4cbdcc1 100644 --- a/app/assets/javascripts/boards/components/issue_card_inner.vue +++ b/app/assets/javascripts/boards/components/issue_card_inner.vue @@ -147,7 +147,7 @@ export default { <template> <div> <div class="d-flex board-card-header" dir="auto"> - <h4 class="board-card-title append-bottom-0 gl-mt-0"> + <h4 class="board-card-title gl-mb-0 gl-mt-0"> <icon v-if="issue.blocked" v-gl-tooltip diff --git a/app/assets/javascripts/ci_variable_list/components/ci_variable_modal.vue b/app/assets/javascripts/ci_variable_list/components/ci_variable_modal.vue index f6ade0867cd..816bf2de558 100644 --- a/app/assets/javascripts/ci_variable_list/components/ci_variable_modal.vue +++ b/app/assets/javascripts/ci_variable_list/components/ci_variable_modal.vue @@ -249,7 +249,7 @@ export default { <gl-link href="/help/ci/variables/README#masked-variables"> <gl-icon name="question" :size="12" /> </gl-link> - <p class="prepend-top-4 append-bottom-0 text-secondary"> + <p class="prepend-top-4 gl-mb-0 text-secondary"> {{ __('Variable will be masked in job logs.') }} <span :class="{ diff --git a/app/assets/javascripts/clusters/components/application_row.vue b/app/assets/javascripts/clusters/components/application_row.vue index 53bc079a4e1..dcc0fa501a3 100644 --- a/app/assets/javascripts/clusters/components/application_row.vue +++ b/app/assets/javascripts/clusters/components/application_row.vue @@ -322,7 +322,7 @@ export default { ></span> <slot name="description"></slot> <div v-if="hasError" class="cluster-application-error text-danger prepend-top-10"> - <p class="js-cluster-application-general-error-message append-bottom-0"> + <p class="js-cluster-application-general-error-message gl-mb-0"> {{ generalErrorDescription }} </p> <ul v-if="statusReason || requestReason"> diff --git a/app/assets/javascripts/clusters/components/applications.vue b/app/assets/javascripts/clusters/components/applications.vue index f11502a7dde..71d0563ac7e 100644 --- a/app/assets/javascripts/clusters/components/applications.vue +++ b/app/assets/javascripts/clusters/components/applications.vue @@ -272,7 +272,7 @@ Crossplane runs inside your Kubernetes cluster and supports secure connectivity <template> <section id="cluster-applications"> - <p class="append-bottom-0"> + <p class="gl-mb-0"> {{ s__(`ClusterIntegration|Choose which applications to install on your Kubernetes cluster. Helm Tiller is required to install any of the following applications.`) @@ -614,7 +614,7 @@ Crossplane runs inside your Kubernetes cluster and supports secure connectivity > <div slot="description"> <span v-if="!rbac"> - <p v-if="!rbac" class="rbac-notice bs-callout bs-callout-info append-bottom-0"> + <p v-if="!rbac" class="rbac-notice bs-callout bs-callout-info gl-mb-0"> {{ s__(`ClusterIntegration|You must have an RBAC-enabled cluster to install Knative.`) diff --git a/app/assets/javascripts/ide/components/commit_sidebar/list.vue b/app/assets/javascripts/ide/components/commit_sidebar/list.vue index e6a1a1ba73c..49885917c53 100644 --- a/app/assets/javascripts/ide/components/commit_sidebar/list.vue +++ b/app/assets/javascripts/ide/components/commit_sidebar/list.vue @@ -98,7 +98,7 @@ export default { </div> </div> </header> - <ul v-if="filesLength" class="multi-file-commit-list list-unstyled append-bottom-0"> + <ul v-if="filesLength" class="multi-file-commit-list list-unstyled gl-mb-0"> <li v-for="file in fileList" :key="file.key"> <list-item :file="file" diff --git a/app/assets/javascripts/ide/components/pipelines/list.vue b/app/assets/javascripts/ide/components/pipelines/list.vue index cf6d01b6351..4ef2ca98512 100644 --- a/app/assets/javascripts/ide/components/pipelines/list.vue +++ b/app/assets/javascripts/ide/components/pipelines/list.vue @@ -82,9 +82,9 @@ export default { class="mb-auto mt-auto" /> <div v-else-if="latestPipeline.yamlError" class="bs-callout bs-callout-danger"> - <p class="append-bottom-0">{{ __('Found errors in your .gitlab-ci.yml:') }}</p> - <p class="append-bottom-0 break-word">{{ latestPipeline.yamlError }}</p> - <p class="append-bottom-0" v-html="ciLintText"></p> + <p class="gl-mb-0">{{ __('Found errors in your .gitlab-ci.yml:') }}</p> + <p class="gl-mb-0 break-word">{{ latestPipeline.yamlError }}</p> + <p class="gl-mb-0" v-html="ciLintText"></p> </div> <tabs v-else class="ide-pipeline-list"> <tab :active="!pipelineFailed"> diff --git a/app/assets/javascripts/ide/components/repo_tabs.vue b/app/assets/javascripts/ide/components/repo_tabs.vue index 1b7f149097b..1853ead87b3 100644 --- a/app/assets/javascripts/ide/components/repo_tabs.vue +++ b/app/assets/javascripts/ide/components/repo_tabs.vue @@ -49,7 +49,7 @@ export default { <template> <div class="multi-file-tabs"> - <ul ref="tabsScroller" class="list-unstyled append-bottom-0"> + <ul ref="tabsScroller" class="list-unstyled gl-mb-0"> <repo-tab v-for="tab in files" :key="tab.key" :tab="tab" /> </ul> </div> diff --git a/app/assets/javascripts/jobs/components/commit_block.vue b/app/assets/javascripts/jobs/components/commit_block.vue index 88649ddbdb7..72a5ff01672 100644 --- a/app/assets/javascripts/jobs/components/commit_block.vue +++ b/app/assets/javascripts/jobs/components/commit_block.vue @@ -53,6 +53,6 @@ export default { </span> </p> - <p class="append-bottom-0">{{ commit.title }}</p> + <p class="gl-mb-0">{{ commit.title }}</p> </div> </template> diff --git a/app/assets/javascripts/jobs/components/environments_block.vue b/app/assets/javascripts/jobs/components/environments_block.vue index 28cc03c88cb..c34a3488dbd 100644 --- a/app/assets/javascripts/jobs/components/environments_block.vue +++ b/app/assets/javascripts/jobs/components/environments_block.vue @@ -277,7 +277,7 @@ export default { <div class="prepend-top-default append-bottom-default js-environment-container"> <div class="environment-information"> <ci-icon :status="iconStatus" /> - <p class="inline append-bottom-0" v-html="environment"></p> + <p class="inline gl-mb-0" v-html="environment"></p> </div> </div> </template> diff --git a/app/assets/javascripts/jobs/components/stuck_block.vue b/app/assets/javascripts/jobs/components/stuck_block.vue index ec52d272168..ac1e5b31802 100644 --- a/app/assets/javascripts/jobs/components/stuck_block.vue +++ b/app/assets/javascripts/jobs/components/stuck_block.vue @@ -26,7 +26,7 @@ export default { </script> <template> <div class="bs-callout bs-callout-warning"> - <p v-if="tags.length" class="js-stuck-with-tags append-bottom-0"> + <p v-if="tags.length" class="js-stuck-with-tags gl-mb-0"> {{ s__(`This job is stuck because you don't have any active runners online with any of these tags assigned to them:`) @@ -35,13 +35,13 @@ export default { {{ tag }} </span> </p> - <p v-else-if="hasNoRunnersForProject" class="js-stuck-no-runners append-bottom-0"> + <p v-else-if="hasNoRunnersForProject" class="js-stuck-no-runners gl-mb-0"> {{ s__(`Job|This job is stuck because the project doesn't have any runners online assigned to it.`) }} </p> - <p v-else class="js-stuck-no-active-runner append-bottom-0"> + <p v-else class="js-stuck-no-active-runner gl-mb-0"> {{ s__(`This job is stuck because you don't have any active runners that can run this job.`) diff --git a/app/assets/javascripts/jobs/components/trigger_block.vue b/app/assets/javascripts/jobs/components/trigger_block.vue index 7c9b2824a43..1a076249fe7 100644 --- a/app/assets/javascripts/jobs/components/trigger_block.vue +++ b/app/assets/javascripts/jobs/components/trigger_block.vue @@ -46,7 +46,7 @@ export default { <p v-if="trigger.short_token" class="js-short-token" - :class="{ 'append-bottom-5': hasVariables, 'append-bottom-0': !hasVariables }" + :class="{ 'append-bottom-5': hasVariables, 'gl-mb-0': !hasVariables }" > <span class="font-weight-bold">{{ __('Trigger token:') }}</span> {{ trigger.short_token }} </p> diff --git a/app/assets/javascripts/jobs/components/unmet_prerequisites_block.vue b/app/assets/javascripts/jobs/components/unmet_prerequisites_block.vue index 25a8da84873..633561c879e 100644 --- a/app/assets/javascripts/jobs/components/unmet_prerequisites_block.vue +++ b/app/assets/javascripts/jobs/components/unmet_prerequisites_block.vue @@ -17,7 +17,7 @@ export default { </script> <template> <div class="bs-callout bs-callout-danger"> - <p class="js-failed-unmet-prerequisites append-bottom-0"> + <p class="js-failed-unmet-prerequisites gl-mb-0"> {{ s__(`Job|This job failed because the necessary resources were not successfully created.`) }} diff --git a/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_view_button.vue b/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_view_button.vue index 5dabd9fe5fe..bce25ca20ec 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_view_button.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_view_button.vue @@ -75,11 +75,11 @@ export default { rel="noopener noreferrer nofollow" class="js-deploy-url-menu-item menu-item" > - <strong class="str-truncated-100 append-bottom-0 d-block"> + <strong class="str-truncated-100 gl-mb-0 d-block"> {{ slotProps.result.path }} </strong> - <p class="text-secondary str-truncated-100 append-bottom-0 d-block"> + <p class="text-secondary str-truncated-100 gl-mb-0 d-block"> {{ slotProps.result.external_url }} </p> </gl-link> diff --git a/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue b/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue index 6aad2a26a53..a0e76b151f7 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue @@ -14,7 +14,7 @@ export default { </script> <template> - <p v-once class="mr-info-list mr-links append-bottom-0"> + <p v-once class="mr-info-list mr-links gl-mb-0"> <span class="status-text" v-html="removesBranchText"> </span> <i v-tooltip :title="tooltipTitle" :aria-label="tooltipTitle" class="fa fa-question-circle"> </i> diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss index 158d2133f13..991fc9f2645 100644 --- a/app/assets/stylesheets/framework/common.scss +++ b/app/assets/stylesheets/framework/common.scss @@ -426,7 +426,6 @@ img.emoji { .append-right-32 { margin-right: 32px; } .append-right-48 { margin-right: 48px; } .prepend-right-32 { margin-right: 32px; } -.append-bottom-0 { margin-bottom: 0; } .append-bottom-2 { margin-bottom: 2px; } .append-bottom-4 { margin-bottom: $gl-padding-4; } .append-bottom-5 { margin-bottom: 5px; } diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 04d2b3068da..2cfae7c272b 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -33,7 +33,7 @@ class SearchController < ApplicationController render_commits if @scope == 'commits' eager_load_user_status if @scope == 'users' - increment_navbar_searches_counter + increment_search_counters check_single_commit_result end @@ -98,9 +98,11 @@ class SearchController < ApplicationController end end - def increment_navbar_searches_counter + def increment_search_counters + Gitlab::UsageDataCounters::SearchCounter.count(:all_searches) + return if params[:nav_source] != 'navbar' - Gitlab::UsageDataCounters::SearchCounter.increment_navbar_searches_count + Gitlab::UsageDataCounters::SearchCounter.count(:navbar_searches) end end diff --git a/app/views/clusters/clusters/_gitlab_integration_form.html.haml b/app/views/clusters/clusters/_gitlab_integration_form.html.haml index 2489f78b403..c5b54997407 100644 --- a/app/views/clusters/clusters/_gitlab_integration_form.html.haml +++ b/app/views/clusters/clusters/_gitlab_integration_form.html.haml @@ -4,7 +4,7 @@ .d-flex.align-items-center %h4.pr-2.m-0 = s_('ClusterIntegration|GitLab Integration') - %label.append-bottom-0.js-cluster-enable-toggle-area{ title: s_('ClusterIntegration|Enable or disable GitLab\'s connection to your Kubernetes cluster.'), data: { toggle: 'tooltip', container: 'body' } } + %label.gl-mb-0.js-cluster-enable-toggle-area{ title: s_('ClusterIntegration|Enable or disable GitLab\'s connection to your Kubernetes cluster.'), data: { toggle: 'tooltip', container: 'body' } } = render "shared/buttons/project_feature_toggle", is_checked: @cluster.enabled?, label: s_("ClusterIntegration|Toggle Kubernetes cluster"), disabled: !can?(current_user, :update_cluster, @cluster), data: { qa_selector: 'integration_status_toggle' } do = field.hidden_field :enabled, { class: 'js-project-feature-toggle-input'} diff --git a/app/views/groups/settings/_export.html.haml b/app/views/groups/settings/_export.html.haml index ef7bf562c69..94466b76ac8 100644 --- a/app/views/groups/settings/_export.html.haml +++ b/app/views/groups/settings/_export.html.haml @@ -7,7 +7,7 @@ %p= _('Export this group with all related data to a new GitLab instance. Once complete, you can import the data file from the "New Group" page.') .bs-callout.bs-callout-info - %p.append-bottom-0 + %p.gl-mb-0 %p= _('The following items will be exported:') %ul - group_export_descriptions.each do |description| diff --git a/app/views/profiles/two_factor_auths/show.html.haml b/app/views/profiles/two_factor_auths/show.html.haml index 92386daf696..7e566361848 100644 --- a/app/views/profiles/two_factor_auths/show.html.haml +++ b/app/views/profiles/two_factor_auths/show.html.haml @@ -33,13 +33,13 @@ = raw @qr_code .col-md-8 .account-well - %p.gl-mt-0.append-bottom-0 + %p.gl-mt-0.gl-mb-0 = _("Can't scan the code?") - %p.gl-mt-0.append-bottom-0 + %p.gl-mt-0.gl-mb-0 = _('To add the entry manually, provide the following details to the application on your phone.') - %p.gl-mt-0.append-bottom-0 + %p.gl-mt-0.gl-mb-0 = _('Account: %{account}') % { account: @account_string } - %p.gl-mt-0.append-bottom-0 + %p.gl-mt-0.gl-mb-0 = _('Key: %{key}') %{ key: current_user.otp_secret.scan(/.{4}/).join(' ') } %p.two-factor-new-manual-content = _('Time based: Yes') diff --git a/app/views/projects/_export.html.haml b/app/views/projects/_export.html.haml index 2e00632892b..7da15e0d8a5 100644 --- a/app/views/projects/_export.html.haml +++ b/app/views/projects/_export.html.haml @@ -7,7 +7,7 @@ %p= _('Export this project with all its related data in order to move your project to a new GitLab instance. Once the export is finished, you can import the file from the "New Project" page.') .bs-callout.bs-callout-info - %p.append-bottom-0 + %p.gl-mb-0 %p= _('The following items will be exported:') %ul - project_export_descriptions.each do |desc| diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml index 222fc251c61..f39ab821cae 100644 --- a/app/views/projects/empty.html.haml +++ b/app/views/projects/empty.html.haml @@ -10,7 +10,7 @@ = _('The repository for this project is empty') - if @project.can_current_user_push_code? - %p.append-bottom-0 + %p.gl-mb-0 = _('You can get started by cloning the repository or start adding files to it with one of the following options.') .project-buttons.qa-quick-actions diff --git a/app/views/projects/forks/new.html.haml b/app/views/projects/forks/new.html.haml index 7352c3ceec5..763e31c4a8b 100644 --- a/app/views/projects/forks/new.html.haml +++ b/app/views/projects/forks/new.html.haml @@ -9,7 +9,7 @@ .col-lg-9 - if @namespaces.present? .fork-thumbnail-container.js-fork-content - %h5.gl-mt-0.append-bottom-0.prepend-left-default.append-right-default + %h5.gl-mt-0.gl-mb-0.prepend-left-default.append-right-default = _("Select a namespace to fork the project") - @namespaces.each do |namespace| = render 'fork_button', namespace: namespace diff --git a/app/views/projects/project_templates/_built_in_templates.html.haml b/app/views/projects/project_templates/_built_in_templates.html.haml index a583eb39eb3..eb41a3e0785 100644 --- a/app/views/projects/project_templates/_built_in_templates.html.haml +++ b/app/views/projects/project_templates/_built_in_templates.html.haml @@ -11,7 +11,7 @@ .controls.d-flex.align-items-center %a.btn.btn-default.append-right-10{ href: template.preview, rel: 'noopener noreferrer', target: '_blank', data: { track_label: "template_preview", track_property: template.name, track_event: "click_button", track_value: "" } } = _("Preview") - %label.btn.btn-success.template-button.choose-template.append-bottom-0{ for: template.name } + %label.btn.btn-success.template-button.choose-template.gl-mb-0{ for: template.name } %input{ type: "radio", autocomplete: "off", name: "project[template_name]", id: template.name, value: template.name, data: { track_label: "template_use", track_property: template.name, track_event: "click_button", track_value: "" } } %span{ data: { qa_selector: 'use_template_button' } } = _("Use template") diff --git a/app/views/projects/snippets/_actions.html.haml b/app/views/projects/snippets/_actions.html.haml index 41c9bac0102..6aedab36e1b 100644 --- a/app/views/projects/snippets/_actions.html.haml +++ b/app/views/projects/snippets/_actions.html.haml @@ -14,7 +14,7 @@ = link_to _('Submit as spam'), mark_as_spam_project_snippet_path(@project, @snippet), method: :post, class: 'btn btn-grouped btn-spam', title: _('Submit as spam') - if can?(current_user, :create_snippet, @project) || can?(current_user, :update_snippet, @snippet) .d-block.d-sm-none.dropdown - %button.btn.btn-default.btn-block.append-bottom-0.prepend-top-5{ data: { toggle: "dropdown" } } + %button.btn.btn-default.btn-block.gl-mb-0.prepend-top-5{ data: { toggle: "dropdown" } } = _('Options') = icon('caret-down') .dropdown-menu.dropdown-menu-full-width diff --git a/app/views/projects/triggers/_index.html.haml b/app/views/projects/triggers/_index.html.haml index 55a9234f01a..4ca070cb162 100644 --- a/app/views/projects/triggers/_index.html.haml +++ b/app/views/projects/triggers/_index.html.haml @@ -96,6 +96,6 @@ %p.light With webhook: - %pre.append-bottom-0 + %pre.gl-mb-0 :plain #{builds_trigger_url(@project.id, ref: 'REF_NAME')}?token=TOKEN&variables[RUN_NIGHTLY_BUILD]=true diff --git a/app/views/shared/_visibility_level.html.haml b/app/views/shared/_visibility_level.html.haml index 2f42a877beb..84ce40e240c 100644 --- a/app/views/shared/_visibility_level.html.haml +++ b/app/views/shared/_visibility_level.html.haml @@ -2,7 +2,7 @@ .form-group.visibility-level-setting - if with_label - = f.label :visibility_level, _('Visibility level'), class: 'label-bold append-bottom-0' + = f.label :visibility_level, _('Visibility level'), class: 'label-bold gl-mb-0' %p = _('Who can see this group?') - visibility_docs_path = help_page_path('public_access/public_access') diff --git a/app/views/shared/deploy_keys/_form.html.haml b/app/views/shared/deploy_keys/_form.html.haml index 1944c293be1..94742d96af7 100644 --- a/app/views/shared/deploy_keys/_form.html.haml +++ b/app/views/shared/deploy_keys/_form.html.haml @@ -30,5 +30,5 @@ = deploy_keys_project_form.label :can_push do = deploy_keys_project_form.check_box :can_push %strong= _('Write access allowed') - %p.light.append-bottom-0 + %p.light.gl-mb-0 = _('Allow this key to push to repository as well? (Default only allows pull access.)') diff --git a/app/views/shared/deploy_keys/_project_group_form.html.haml b/app/views/shared/deploy_keys/_project_group_form.html.haml index 8edd1d9deb8..4e569050827 100644 --- a/app/views/shared/deploy_keys/_project_group_form.html.haml +++ b/app/views/shared/deploy_keys/_project_group_form.html.haml @@ -7,7 +7,7 @@ = f.label :key, class: "label-bold" = f.text_area :key, class: "form-control", rows: 5, required: true .form-group.row - %p.light.append-bottom-0 + %p.light.gl-mb-0 = _('Paste a machine public key here. Read more about how to generate it') = link_to "here", help_page_path("ssh/README") @@ -17,7 +17,7 @@ = deploy_keys_project_form.check_box :can_push %strong= _('Write access allowed') .form-group.row - %p.light.append-bottom-0 + %p.light.gl-mb-0 = _('Allow this key to push to repository as well? (Default only allows pull access.)') .form-group.row diff --git a/app/views/shared/milestones/_deprecation_message.html.haml b/app/views/shared/milestones/_deprecation_message.html.haml index 7dc2c205141..ba5eb54f017 100644 --- a/app/views/shared/milestones/_deprecation_message.html.haml +++ b/app/views/shared/milestones/_deprecation_message.html.haml @@ -8,7 +8,7 @@ %template.js-milestone-deprecation-message-template .milestone-popover-body - %ol.milestone-popover-instructions-list.append-bottom-0 + %ol.milestone-popover-instructions-list.gl-mb-0 %li= _('Click any <strong>project name</strong> in the project list below to navigate to the project milestone.').html_safe %li= _('Click the <strong>Promote</strong> button in the top right corner to promote it to a group milestone.').html_safe %hr.popover-hr diff --git a/app/views/shared/tokens/_scopes_list.html.haml b/app/views/shared/tokens/_scopes_list.html.haml index 913392be510..558cf67f201 100644 --- a/app/views/shared/tokens/_scopes_list.html.haml +++ b/app/views/shared/tokens/_scopes_list.html.haml @@ -6,7 +6,7 @@ %td = _('Scopes') %td - %ul.scopes-list.append-bottom-0 + %ul.scopes-list.gl-mb-0 - token.scopes.each do |scope| %li %span.bold= scope diff --git a/app/views/snippets/_actions.html.haml b/app/views/snippets/_actions.html.haml index 979821a3846..2ff174971cc 100644 --- a/app/views/snippets/_actions.html.haml +++ b/app/views/snippets/_actions.html.haml @@ -13,7 +13,7 @@ - if @snippet.submittable_as_spam_by?(current_user) = link_to _('Submit as spam'), mark_as_spam_snippet_path(@snippet), method: :post, class: 'btn btn-grouped btn-spam', title: _('Submit as spam') .d-block.d-sm-none.dropdown - %button.btn.btn-default.btn-block.append-bottom-0.prepend-top-5{ data: { toggle: "dropdown" } } + %button.btn.btn-default.btn-block.gl-mb-0.prepend-top-5{ data: { toggle: "dropdown" } } = _("Options") = icon('caret-down') .dropdown-menu.dropdown-menu-full-width |