Commit 8dc2163c authored by Alfredo Sumaran's avatar Alfredo Sumaran

Merge branch '22072-enable-haml-lints' into 'master'

Enable HAML-LINT linters

Closes #22072

See merge request !8247
parents 44fddd29 f79680c5
...@@ -7,10 +7,10 @@ exclude: ...@@ -7,10 +7,10 @@ exclude:
linters: linters:
AltText: AltText:
enabled: false enabled: true
ClassAttributeWithStaticValue: ClassAttributeWithStaticValue:
enabled: false enabled: true
ClassesBeforeIds: ClassesBeforeIds:
enabled: false enabled: false
...@@ -29,14 +29,14 @@ linters: ...@@ -29,14 +29,14 @@ linters:
enabled: true enabled: true
FinalNewline: FinalNewline:
enabled: false enabled: true
present: true present: true
HtmlAttributes: HtmlAttributes:
enabled: false enabled: true
ImplicitDiv: ImplicitDiv:
enabled: false enabled: true
LeadingCommentSpace: LeadingCommentSpace:
enabled: false enabled: false
...@@ -80,10 +80,10 @@ linters: ...@@ -80,10 +80,10 @@ linters:
enabled: false enabled: false
SpaceBeforeScript: SpaceBeforeScript:
enabled: false enabled: true
SpaceInsideHashAttributes: SpaceInsideHashAttributes:
enabled: false enabled: true
style: space style: space
Indentation: Indentation:
...@@ -94,7 +94,7 @@ linters: ...@@ -94,7 +94,7 @@ linters:
enabled: true enabled: true
TrailingWhitespace: TrailingWhitespace:
enabled: false enabled: true
UnnecessaryInterpolation: UnnecessaryInterpolation:
enabled: false enabled: false
......
%p %p
#{link_to @abuse_report.user.name, user_url(@abuse_report.user)} #{link_to @abuse_report.user.name, user_url(@abuse_report.user)}
(@#{@abuse_report.user.username}) was reported for abuse by (@#{@abuse_report.user.username}) was reported for abuse by
#{link_to @abuse_report.reporter.name, user_url(@abuse_report.reporter)} #{link_to @abuse_report.reporter.name, user_url(@abuse_report.reporter)}
(@#{@abuse_report.reporter.username}). (@#{@abuse_report.reporter.username}).
%blockquote %blockquote
......
...@@ -321,7 +321,7 @@ ...@@ -321,7 +321,7 @@
= f.text_field :recaptcha_site_key, class: 'form-control' = f.text_field :recaptcha_site_key, class: 'form-control'
.help-block .help-block
Generate site and private keys at Generate site and private keys at
%a{ href: 'http://www.google.com/recaptcha', target: 'blank'} http://www.google.com/recaptcha %a{ href: 'http://www.google.com/recaptcha', target: 'blank' } http://www.google.com/recaptcha
.form-group .form-group
= f.label :recaptcha_private_key, 'reCAPTCHA Private Key', class: 'control-label col-sm-2' = f.label :recaptcha_private_key, 'reCAPTCHA Private Key', class: 'control-label col-sm-2'
...@@ -342,7 +342,7 @@ ...@@ -342,7 +342,7 @@
= f.text_field :akismet_api_key, class: 'form-control' = f.text_field :akismet_api_key, class: 'form-control'
.help-block .help-block
Generate API key at Generate API key at
%a{ href: 'http://www.akismet.com', target: 'blank'} http://www.akismet.com %a{ href: 'http://www.akismet.com', target: 'blank' } http://www.akismet.com
%fieldset %fieldset
%legend Abuse reports %legend Abuse reports
......
- submit_btn_css ||= 'btn btn-link btn-remove btn-sm' - submit_btn_css ||= 'btn btn-link btn-remove btn-sm'
= form_tag admin_application_path(application) do = form_tag admin_application_path(application) do
%input{:name => "_method", :type => "hidden", :value => "delete"}/ %input{ :name => "_method", :type => "hidden", :value => "delete" }/
= submit_tag 'Destroy', onclick: "return confirm('Are you sure?')", class: submit_btn_css = submit_tag 'Destroy', onclick: "return confirm('Are you sure?')", class: submit_btn_css
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
%th %th
%tbody.oauth-applications %tbody.oauth-applications
- @applications.each do |application| - @applications.each do |application|
%tr{:id => "application_#{application.id}"} %tr{ :id => "application_#{application.id}" }
%td= link_to application.name, admin_application_path(application) %td= link_to application.name, admin_application_path(application)
%td= application.redirect_uri %td= application.redirect_uri
%td= application.access_tokens.map(&:resource_owner_id).uniq.count %td= application.access_tokens.map(&:resource_owner_id).uniq.count
......
...@@ -43,4 +43,4 @@ ...@@ -43,4 +43,4 @@
.panel.panel-default .panel.panel-default
%iframe{src: sidekiq_path, width: '100%', height: 970, style: "border: none"} %iframe{ src: sidekiq_path, width: '100%', height: 970, style: "border: none" }
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
%br.clearfix %br.clearfix
-if @broadcast_messages.any? - if @broadcast_messages.any?
%table.table %table.table
%thead %thead
%tr %tr
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
= icon('users') = icon('users')
= number_with_delimiter(group.users.count) = number_with_delimiter(group.users.count)
%span.visibility-icon.has-tooltip{data: { container: 'body', placement: 'left' }, title: visibility_icon_description(group)} %span.visibility-icon.has-tooltip{ data: { container: 'body', placement: 'left' }, title: visibility_icon_description(group) }
= visibility_level_icon(group.visibility_level, fw: false) = visibility_level_icon(group.visibility_level, fw: false)
.avatar-container.s40 .avatar-container.s40
......
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
= form_tag admin_group_members_update_path(@group), id: "new_project_member", class: "bulk_import", method: :put do = form_tag admin_group_members_update_path(@group), id: "new_project_member", class: "bulk_import", method: :put do
%div %div
= users_select_tag(:user_ids, multiple: true, email_user: true, scope: :all) = users_select_tag(:user_ids, multiple: true, email_user: true, scope: :all)
%div.prepend-top-10 .prepend-top-10
= select_tag :access_level, options_for_select(GroupMember.access_level_roles), class: "project-access-select select2" = select_tag :access_level, options_for_select(GroupMember.access_level_roles), class: "project-access-select select2"
%hr %hr
= button_tag 'Add users to group', class: "btn btn-create" = button_tag 'Add users to group', class: "btn btn-create"
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
System hook will be triggered on set of events like creating project System hook will be triggered on set of events like creating project
or adding ssh key. But you can also enable extra triggers like Push events. or adding ssh key. But you can also enable extra triggers like Push events.
%div.prepend-top-default .prepend-top-default
= f.check_box :push_events, class: 'pull-left' = f.check_box :push_events, class: 'pull-left'
.prepend-left-20 .prepend-left-20
= f.label :push_events, class: 'list-label' do = f.label :push_events, class: 'list-label' do
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
= f.submit "Add System Hook", class: "btn btn-create" = f.submit "Add System Hook", class: "btn btn-create"
%hr %hr
-if @hooks.any? - if @hooks.any?
.panel.panel-default .panel.panel-default
.panel-heading .panel-heading
System hooks (#{@hooks.count}) System hooks (#{@hooks.count})
...@@ -70,4 +70,3 @@ ...@@ -70,4 +70,3 @@
- if hook.send(trigger) - if hook.send(trigger)
%span.label.label-gray= trigger.titleize %span.label.label-gray= trigger.titleize
%span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? "enabled" : "disabled"} %span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? "enabled" : "disabled"}
%li{id: dom_id(label)} %li{ id: dom_id(label) }
.label-row .label-row
= render_colored_label(label, tooltip: false) = render_colored_label(label, tooltip: false)
= markdown_field(label, :description) = markdown_field(label, :description)
......
%tr{id: dom_id(runner)} %tr{ id: dom_id(runner) }
%td %td
- if runner.shared? - if runner.shared?
%span.label.label-success shared %span.label.label-success shared
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn' = link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn'
- unless user == current_user - unless user == current_user
.dropdown.inline .dropdown.inline
%a.dropdown-new.btn.btn-default#project-settings-button{href: '#', data: { toggle: 'dropdown' } } %a.dropdown-new.btn.btn-default#project-settings-button{ href: '#', data: { toggle: 'dropdown' } }
= icon('cog') = icon('cog')
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
%li.two-factor-status %li.two-factor-status
%span.light Two-factor Authentication: %span.light Two-factor Authentication:
%strong{class: @user.two_factor_enabled? ? 'cgreen' : 'cred'} %strong{ class: @user.two_factor_enabled? ? 'cgreen' : 'cred' }
- if @user.two_factor_enabled? - if @user.two_factor_enabled?
Enabled Enabled
= link_to 'Disable', disable_two_factor_admin_user_path(@user), data: {confirm: 'Are you sure?'}, method: :patch, class: 'btn btn-xs btn-remove pull-right', title: 'Disable Two-factor Authentication' = link_to 'Disable', disable_two_factor_admin_user_path(@user), data: {confirm: 'Are you sure?'}, method: :patch, class: 'btn btn-xs btn-remove pull-right', title: 'Disable Two-factor Authentication'
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
- if build[:allow_failure] - if build[:allow_failure]
%b Allowed to fail %b Allowed to fail
-else - else
%p %p
%b Status: %b Status:
syntax is incorrect syntax is incorrect
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
= link_to new_project_path, class: "btn btn-new" do = link_to new_project_path, class: "btn btn-new" do
New project New project
-if publicish_project_count > 0 - if publicish_project_count > 0
.blank-state .blank-state
.blank-state-icon .blank-state-icon
= icon("globe") = icon("globe")
......
%li{class: "todo todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo), data:{url: todo_target_path(todo)} } %li{ class: "todo todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo), data: { url: todo_target_path(todo) } }
= author_avatar(todo, size: 40) = author_avatar(todo, size: 40)
.todo-item.todo-block .todo-item.todo-block
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
.top-area .top-area
%ul.nav-links %ul.nav-links
- todo_pending_active = ('active' if params[:state].blank? || params[:state] == 'pending') - todo_pending_active = ('active' if params[:state].blank? || params[:state] == 'pending')
%li{class: "todos-pending #{todo_pending_active}"}> %li{ class: "todos-pending #{todo_pending_active}" }>
= link_to todos_filter_path(state: 'pending') do = link_to todos_filter_path(state: 'pending') do
%span %span
To do To do
%span.badge %span.badge
= number_with_delimiter(todos_pending_count) = number_with_delimiter(todos_pending_count)
- todo_done_active = ('active' if params[:state] == 'done') - todo_done_active = ('active' if params[:state] == 'done')
%li{class: "todos-done #{todo_done_active}"}> %li{ class: "todos-done #{todo_done_active}" }>
= link_to todos_filter_path(state: 'done') do = link_to todos_filter_path(state: 'done') do
%span %span
Done Done
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
data: { data: todo_actions_options, default_label: 'Action' } }) data: { data: todo_actions_options, default_label: 'Action' } })
.pull-right .pull-right
.dropdown.inline.prepend-left-10 .dropdown.inline.prepend-left-10
%button.dropdown-toggle{type: 'button', 'data-toggle' => 'dropdown'} %button.dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
%span.light %span.light
- if @sort.present? - if @sort.present?
= sort_options_hash[@sort] = sort_options_hash[@sort]
......
= form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: 'new_user gl-show-field-errors', 'aria-live' => 'assertive'}) do |f| = form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: 'new_user gl-show-field-errors', 'aria-live' => 'assertive'}) do |f|
%div.form-group .form-group
= f.label "Username or email", for: :login = f.label "Username or email", for: :login
= f.text_field :login, class: "form-control top", autofocus: "autofocus", autocapitalize: "off", autocorrect: "off", required: true, title: "This field is required." = f.text_field :login, class: "form-control top", autofocus: "autofocus", autocapitalize: "off", autocorrect: "off", required: true, title: "This field is required."
%div.form-group .form-group
= f.label :password = f.label :password
= f.password_field :password, class: "form-control bottom", required: true, title: "This field is required." = f.password_field :password, class: "form-control bottom", required: true, title: "This field is required."
- if devise_mapping.rememberable? - if devise_mapping.rememberable?
.remember-me.checkbox .remember-me.checkbox
%label{for: "user_remember_me"} %label{ for: "user_remember_me" }
= f.check_box :remember_me = f.check_box :remember_me
%span Remember me %span Remember me
.pull-right.forgot-password .pull-right.forgot-password
= link_to "Forgot your password?", new_password_path(resource_name) = link_to "Forgot your password?", new_password_path(resource_name)
%div.submit-container.move-submit-down .submit-container.move-submit-down
= f.submit "Sign in", class: "btn btn-save" = f.submit "Sign in", class: "btn btn-save"
= form_tag(omniauth_authorize_path(:user, :crowd), id: 'new_crowd_user', class: 'gl-show-field-errors') do = form_tag(omniauth_authorize_path(:user, :crowd), id: 'new_crowd_user', class: 'gl-show-field-errors') do
.form-group .form-group
= label_tag :username, 'Username or email' = label_tag :username, 'Username or email'
= text_field_tag :username, nil, {class: "form-control top", title: "This field is required", autofocus: "autofocus", required: true } = text_field_tag :username, nil, { class: "form-control top", title: "This field is required", autofocus: "autofocus", required: true }
.form-group .form-group
= label_tag :password = label_tag :password
= password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true } = password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
- if devise_mapping.rememberable? - if devise_mapping.rememberable?
.remember-me.checkbox .remember-me.checkbox
%label{for: "remember_me"} %label{ for: "remember_me" }
= check_box_tag :remember_me, '1', false, id: 'remember_me' = check_box_tag :remember_me, '1', false, id: 'remember_me'
%span Remember me %span Remember me
= submit_tag "Sign in", class: "btn-save btn" = submit_tag "Sign in", class: "btn-save btn"
= form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "gl-show-field-errors") do = form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "gl-show-field-errors") do
.form-group .form-group
= label_tag :username, "#{server['label']} Username" = label_tag :username, "#{server['label']} Username"
= text_field_tag :username, nil, {class: "form-control top", title: "This field is required.", autofocus: "autofocus", required: true } = text_field_tag :username, nil, { class: "form-control top", title: "This field is required.", autofocus: "autofocus", required: true }
.form-group .form-group
= label_tag :password = label_tag :password
= password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true } = password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
- if devise_mapping.rememberable? - if devise_mapping.rememberable?
.remember-me.checkbox .remember-me.checkbox
%label{for: "remember_me"} %label{ for: "remember_me" }
= check_box_tag :remember_me, '1', false, id: 'remember_me' = check_box_tag :remember_me, '1', false, id: 'remember_me'
%span Remember me %span Remember me
= submit_tag "Sign in", class: "btn-save btn" = submit_tag "Sign in", class: "btn-save btn"
%div.omniauth-container .omniauth-container
%p %p
%span.light %span.light
Sign in with   Sign in with  
......
- if form_based_providers.any? - if form_based_providers.any?
- if crowd_enabled? - if crowd_enabled?
.login-box.tab-pane.active{id: "crowd", role: 'tabpanel', class: 'tab-pane'} .login-box.tab-pane.active{ id: "crowd", role: 'tabpanel' }
.login-body .login-body
= render 'devise/sessions/new_crowd' = render 'devise/sessions/new_crowd'
- @ldap_servers.each_with_index do |server, i| - @ldap_servers.each_with_index do |server, i|
.login-box.tab-pane{id: "#{server['provider_name']}", role: 'tabpanel', class: (:active if i.zero? && !crowd_enabled?)} .login-box.tab-pane{ id: "#{server['provider_name']}", role: 'tabpanel', class: (:active if i.zero? && !crowd_enabled?) }
.login-body .login-body
= render 'devise/sessions/new_ldap', server: server = render 'devise/sessions/new_ldap', server: server
- if signin_enabled? - if signin_enabled?
.login-box.tab-pane{id: 'ldap-standard', role: 'tabpanel'} .login-box.tab-pane{ id: 'ldap-standard', role: 'tabpanel' }
.login-body .login-body
= render 'devise/sessions/new_base' = render 'devise/sessions/new_base'
- elsif signin_enabled? - elsif signin_enabled?
.login-box.tab-pane.active{id: 'login-pane', role: 'tabpanel'} .login-box.tab-pane.active{ id: 'login-pane', role: 'tabpanel' }
.login-body .login-body
= render 'devise/sessions/new_base' = render 'devise/sessions/new_base'
#register-pane.login-box{ role: 'tabpanel', class: 'tab-pane' } #register-pane.tab-pane.login-box{ role: 'tabpanel' }
.login-body .login-body
= form_for(resource, as: "new_#{resource_name}", url: registration_path(resource_name), html: { class: "new_new_user gl-show-field-errors", "aria-live" => "assertive" }) do |f| = form_for(resource, as: "new_#{resource_name}", url: registration_path(resource_name), html: { class: "new_new_user gl-show-field-errors", "aria-live" => "assertive" }) do |f|
.devise-errors .devise-errors
= devise_error_messages! = devise_error_messages!
%div.form-group .form-group
= f.label :name = f.label :name
= f.text_field :name, class: "form-control top", required: true, title: "This field is required." = f.text_field :name, class: "form-control top", required: true, title: "This field is required."
%div.username.form-group .username.form-group
= f.label :username = f.label :username
= f.text_field :username, class: "form-control middle", pattern: Gitlab::Regex::NAMESPACE_REGEX_STR_SIMPLE, required: true, title: 'Please create a username with only alphanumeric characters.' = f.text_field :username, class: "form-control middle", pattern: Gitlab::Regex::NAMESPACE_REGEX_STR_SIMPLE, required: true, title: 'Please create a username with only alphanumeric characters.'
%p.validation-error.hide Username is already taken. %p.validation-error.hide Username is already taken.
%p.validation-success.hide Username is available. %p.validation-success.hide Username is available.
%p.validation-pending.hide Checking username availability... %p.validation-pending.hide Checking username availability...
%div.form-group .form-group
= f.label :email = f.label :email
= f.email_field :email, class: "form-control middle", required: true, title: "Please provide a valid email address." = f.email_field :email, class: "form-control middle", required: true, title: "Please provide a valid email address."
.form-group.append-bottom-20#password-strength .form-group.append-bottom-20#password-strength
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
%li.active %li.active
= link_to "Crowd", "#crowd", 'data-toggle' => 'tab' = link_to "Crowd", "#crowd", 'data-toggle' => 'tab'
- @ldap_servers.each_with_index do |server, i| - @ldap_servers.each_with_index do |server, i|
%li{class: (:active if i.zero? && !crowd_enabled?)} %li{ class: (:active if i.zero? && !crowd_enabled?) }
= link_to server['label'], "##{server['provider_name']}", 'data-toggle' => 'tab' = link_to server['label'], "##{server['provider_name']}", 'data-toggle' => 'tab'
- if signin_enabled? - if signin_enabled?
%li %li
......
%ul.nav-links.new-session-tabs.nav-tabs{ role: 'tablist'} %ul.nav-links.new-session-tabs.nav-tabs{ role: 'tablist' }
%li.active{ role: 'presentation' } %li.active{ role: 'presentation' }
%a{ href: '#login-pane', data: { toggle: 'tab' }, role: 'tab'} Sign in %a{ href: '#login-pane', data: { toggle: 'tab' }, role: 'tab' } Sign in
- if signin_enabled? && signup_enabled? - if signin_enabled? && signup_enabled?
%li{ role: 'presentation'} %li{ role: 'presentation' }
%a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab'} Register %a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab' } Register
- expanded = local_assigns.fetch(:expanded, true) - expanded = local_assigns.fetch(:expanded, true)
%tr.notes_holder{class: ('hide' unless expanded)} %tr.notes_holder{ class: ('hide' unless expanded) }
%td.notes_line{ colspan: 2 } %td.notes_line{ colspan: 2 }
%td.notes_content %td.notes_content
.content .content
......
...@@ -5,5 +5,5 @@ ...@@ -5,5 +5,5 @@
%button.btn.btn-default.discussion-next-btn.has-tooltip{ "@click" => "jumpToNextUnresolvedDiscussion", %button.btn.btn-default.discussion-next-btn.has-tooltip{ "@click" => "jumpToNextUnresolvedDiscussion",
title: "Jump to next unresolved discussion", title: "Jump to next unresolved discussion",
"aria-label" => "Jump to next unresolved discussion", "aria-label" => "Jump to next unresolved discussion",
data: { container: "body" }} data: { container: "body" } }
= custom_icon("next_discussion") = custom_icon("next_discussion")
- expanded = discussion_left.try(:expanded?) || discussion_right.try(:expanded?) - expanded = discussion_left.try(:expanded?) || discussion_right.try(:expanded?)
%tr.notes_holder{class: ('hide' unless expanded)} %tr.notes_holder{ class: ('hide' unless expanded) }
- if discussion_left - if discussion_left
%td.notes_line.old %td.notes_line.old
%td.notes_content.parallel.old %td.notes_content.parallel.old
.content{class: ('hide' unless discussion_left.expanded?)} .content{ class: ('hide' unless discussion_left.expanded?) }
= render "discussions/notes", discussion: discussion_left, line_type: 'old' = render "discussions/notes", discussion: discussion_left, line_type: 'old'
- else - else
%td.notes_line.old= "" %td.notes_line.old= ""
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
- if discussion_right - if discussion_right
%td.notes_line.new %td.notes_line.new
%td.notes_content.parallel.new %td.notes_content.parallel.new
.content{class: ('hide' unless discussion_right.expanded?)} .content{ class: ('hide' unless discussion_right.expanded?) }
= render "discussions/notes", discussion: discussion_right, line_type: 'new' = render "discussions/notes", discussion: discussion_right, line_type: 'new'
- else - else
%td.notes_line.new= "" %td.notes_line.new= ""
......
- submit_btn_css ||= 'btn btn-link btn-remove btn-sm' - submit_btn_css ||= 'btn btn-link btn-remove btn-sm'
= form_tag oauth_application_path(application) do = form_tag oauth_application_path(application) do
%input{:name => "_method", :type => "hidden", :value => "delete"}/ %input{ :name => "_method", :type => "hidden", :value => "delete" }/
- if defined? small - if defined? small
= button_tag type: "submit", class: "btn btn-transparent", data: { confirm: "Are you sure?" } do = button_tag type: "submit", class: "btn btn-transparent", data: { confirm: "Are you sure?" } do
%span.sr-only %span.sr-only
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
%th.last-heading %th.last-heading
%tbody %tbody
- @applications.each do |application| - @applications.each do |application|
%tr{id: "application_#{application.id}"} %tr{ id: "application_#{application.id}" }
%td= link_to application.name, oauth_application_path(application) %td= link_to application.name, oauth_application_path(application)
%td %td
- application.redirect_uri.split.each do |uri| - application.redirect_uri.split.each do |uri|
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
%tbody %tbody
- @authorized_apps.each do |app| - @authorized_apps.each do |app|
- token = app.authorized_tokens.order('created_at desc').first - token = app.authorized_tokens.order('created_at desc').first
%tr{id: "application_#{app.id}"} %tr{ id: "application_#{app.id}" }
%td= app.name %td= app.name
%td= token.created_at %td= token.created_at
%td= token.scopes %td= token.scopes
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
%tr %tr
%td %td
Anonymous Anonymous
%div.help-block .help-block
%em Authorization was granted by entering your username and password in the application. %em Authorization was granted by entering your username and password in the application.
%td= token.created_at %td= token.created_at
%td= token.scopes %td= token.scopes
......
%h3.page-title An error has occurred %h3.page-title An error has occurred
%main{:role => "main"} %main{ :role => "main" }
%pre= @pre_auth.error_response.body[:error_description] %pre= @pre_auth.error_response.body[:error_description]
%h3.page-title Authorization required %h3.page-title Authorization required
%main{:role => "main"} %main{ :role => "main" }
%p.h4 %p.h4
Authorize Authorize
%strong.text-info= @pre_auth.client.name %strong.text-info= @pre_auth.client.name
......
%h3.page-title Authorization code: %h3.page-title Authorization code:
%main{:role => "main"} %main{ :role => "main" }
%code#authorization_code= params[:code] %code#authorization_code= params[:code]
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
- path = oauth_authorized_application_path(0, token_id: token) - path = oauth_authorized_application_path(0, token_id: token)
- else - else
- path = oauth_authorized_application_path(application) - path = oauth_authorized_application_path(application)
= form_tag path do = form_tag path do
%input{:name => "_method", :type => "hidden", :value => "delete"}/ %input{ :name => "_method", :type => "hidden", :value => "delete" }/
= submit_tag 'Revoke', onclick: "return confirm('Are you sure?')", class: 'btn btn-remove btn-sm' = submit_tag 'Revoke', onclick: "return confirm('Are you sure?')", class: 'btn btn-remove btn-sm'
%header.page-header %header.page-header
%h1 Your authorized applications %h1 Your authorized applications
%main{:role => "main"} %main{ :role => "main" }
.table-holder .table-holder
%table.table.table-striped %table.table.table-striped
%thead %thead
......
...@@ -7,5 +7,5 @@ ...@@ -7,5 +7,5 @@
%ul.clearfix.emoji-menu-list %ul.clearfix.emoji-menu-list
- emojis.each do |emoji| - emojis.each do |emoji|
%li.pull-left.text-center.emoji-menu-list-item %li.pull-left.text-center.emoji-menu-list-item
%button.emoji-menu-btn.text-center.js-emoji-btn{type: "button"} %button.emoji-menu-btn.text-center.js-emoji-btn{ type: "button" }
= emoji_icon(emoji["name"], emoji["unicode"], emoji["aliases"]) = emoji_icon(emoji["name"], emoji["unicode"], emoji["aliases"])
- content_for(:title, 'Access Denied') - content_for(:title, 'Access Denied')
%img{:alt => "GitLab Logo", %img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
:src => image_path('logo.svg')}
%h1 %h1
403 403
.container .container
......
- content_for(:title, 'Encoding Error') - content_for(:title, 'Encoding Error')
%img{:alt => "GitLab Logo", %img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
:src => image_path('logo.svg')}
%h1 %h1
500 500
.container .container
......
- content_for(:title, 'Git Resource Not Found') - content_for(:title, 'Git Resource Not Found')
%img{:alt => "GitLab Logo", %img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
:src => image_path('logo.svg')}
%h1 %h1
404 404
.container .container
......
- content_for(:title, 'Not Found') - content_for(:title, 'Not Found')
%img{:alt => "GitLab Logo", %img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
:src => image_path('logo.svg')}
%h1 %h1
404 404
.container .container
......
- content_for(:title, 'Auth Error') - content_for(:title, 'Auth Error')
%img{:alt => "GitLab Logo", %img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
:src => image_path('logo.svg')}
%h1 %h1
422 422
.container .container
......
%div{xmlns: "http://www.w3.org/1999/xhtml"} %div{ xmlns: "http://www.w3.org/1999/xhtml" }
= markdown(issue.description, pipeline: :atom, project: issue.project, author: issue.author) = markdown(issue.description, pipeline: :atom, project: issue.project, author: issue.author)
%div{xmlns: "http://www.w3.org/1999/xhtml"} %div{ xmlns: "http://www.w3.org/1999/xhtml" }
= markdown(merge_request.description, pipeline: :atom, project: merge_request.project, author: merge_request.author) = markdown(merge_request.description, pipeline: :atom, project: merge_request.project, author: merge_request.author)
%div{xmlns: "http://www.w3.org/1999/xhtml"} %div{ xmlns: "http://www.w3.org/1999/xhtml" }
= markdown(note.note, pipeline: :atom, project: note.project, author: note.author) = markdown(note.note, pipeline: :atom, project: note.project, author: note.author)
%div{xmlns: "http://www.w3.org/1999/xhtml"} %div{ xmlns: "http://www.w3.org/1999/xhtml" }
- event.commits.first(15).each do |commit| - event.commits.first(15).each do |commit|
%p %p
%strong= commit[:author][:name] %strong= commit[:author][:name]
......
.event-title .event-title
%span.author_name= link_to_author event %span.author_name= link_to_author event
%span{class: event.action_name} %span{ class: event.action_name }
- if event.target - if event.target
= event.action_name = event.action_name
%strong %strong
......
.event-title .event-title
%span.author_name= link_to_author event %span.author_name= link_to_author event
%span{class: event.action_name} %span{ class: event.action_name }
= event_action_name(event) = event_action_name(event)
- if event.project - if event.project
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
.pull-right .pull-right
.dropdown.inline .dropdown.inline
%button.dropdown-toggle{type: 'button', 'data-toggle' => 'dropdown'} %button.dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
%span.light %span.light
- if @sort.present? - if @sort.present?
= sort_options_hash[@sort] = sort_options_hash[@sort]
......
- if current_user - if current_user
.dropdown .dropdown
%button.dropdown-toggle{href: '#', "data-toggle" => "dropdown"} %button.dropdown-toggle{ href: '#', "data-toggle" => "dropdown" }
= icon('globe') = icon('globe')
%span.light Visibility: %span.light Visibility:
- if params[:visibility_level].present? - if params[:visibility_level].present?
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
- if @tags.present? - if @tags.present?
.dropdown .dropdown
%button.dropdown-toggle{href: '#', "data-toggle" => "dropdown"} %button.dropdown-toggle{ href: '#', "data-toggle" => "dropdown" }
= icon('tags') = icon('tags')
%span.light Tags: %span.light Tags:
- if params[:tag].present? - if params[:tag].present?
......
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
Allow projects within this group to use Git LFS Allow projects within this group to use Git LFS
= link_to icon('question-circle'), help_page_path('workflow/lfs/manage_large_binaries_with_git_lfs') = link_to icon('question-circle'), help_page_path('workflow/lfs/manage_large_binaries_with_git_lfs')
%br/ %br/
%span.descr This setting can be overridden in each project. %span.descr This setting can be overridden in each project.
\ No newline at end of file
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
= render 'shared/members/access_request_buttons', source: @group = render 'shared/members/access_request_buttons', source: @group
= render 'shared/notifications/button', notification_setting: @notification_setting = render 'shared/notifications/button', notification_setting: @notification_setting
%div.groups-header{ class: container_class } .groups-header{ class: container_class }
.top-area .top-area
%ul.nav-links %ul.nav-links
%li.active %li.active
......
#modal-shortcuts.modal{tabindex: -1} #modal-shortcuts.modal{ tabindex: -1 }
.modal-dialog .modal-dialog
.modal-content .modal-content
.modal-header .modal-header
%a.close{href: "#", "data-dismiss" => "modal"} × %a.close{ href: "#", "data-dismiss" => "modal" } ×
%h4 %h4
Keyboard Shortcuts Keyboard Shortcuts
%small %small
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
.col-lg-4 .col-lg-4
%table.shortcut-mappings %table.shortcut-mappings
%tbody{ class: 'hidden-shortcut project', style: 'display:none' } %tbody.hidden-shortcut.project{ style: 'display:none' }
%tr %tr
%th %th
%th Global Dashboard %th Global Dashboard
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
%td New issue %td New issue
.col-lg-4 .col-lg-4
%table.shortcut-mappings %table.shortcut-mappings
%tbody{ class: 'hidden-shortcut network', style: 'display:none' } %tbody.hidden-shortcut.network{ style: 'display:none' }
%tr %tr
%th %th
%th Network Graph %th Network Graph
...@@ -240,7 +240,7 @@ ...@@ -240,7 +240,7 @@
.key .key
shift j shift j
%td Scroll to bottom %td Scroll to bottom
%tbody{ class: 'hidden-shortcut issues', style: 'display:none' } %tbody.hidden-shortcut.issues{ style: 'display:none' }
%tr %tr
%th %th
%th Issues %th Issues
...@@ -264,7 +264,7 @@ ...@@ -264,7 +264,7 @@
%td.shortcut %td.shortcut
.key l .key l
%td Change Label %td Change Label
%tbody{ class: 'hidden-shortcut merge_requests', style: 'display:none' } %tbody.hidden-shortcut.merge_requests{ style: 'display:none' }
%tr %tr
%th %th
%th Merge Requests %th Merge Requests
......
This diff is collapsed.
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
%th Status %th Status
%tbody %tbody
- @already_added_projects.each do |project| - @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"} %tr{ id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}" }
%td %td
= provider_project_link(provider, project.import_source) = provider_project_link(provider, project.import_source)
%td %td
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
= project.human_import_status_name = project.human_import_status_name
- @repos.each do |repo| - @repos.each do |repo|
%tr{id: "repo_#{repo.id}"} %tr{ id: "repo_#{repo.id}" }
%td %td
= provider_project_link(provider, repo.full_name) = provider_project_link(provider, repo.full_name)
%td.import-target %td.import-target
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
%th Status %th Status
%tbody %tbody
- @already_added_projects.each do |project| - @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"} %tr{ id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}" }
%td %td
= link_to project.import_source, "https://bitbucket.org/#{project.import_source}", target: '_blank' = link_to project.import_source, "https://bitbucket.org/#{project.import_source}", target: '_blank'
%td %td
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
= project.human_import_status_name = project.human_import_status_name
- @repos.each do |repo| - @repos.each do |repo|
%tr{id: "repo_#{repo.owner}___#{repo.slug}"} %tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
%td %td
= link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: "_blank" = link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: "_blank"
%td.import-target %td.import-target
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
Import Import
= icon('spinner spin', class: 'loading-icon') = icon('spinner spin', class: 'loading-icon')
- @incompatible_repos.each do |repo| - @incompatible_repos.each do |repo|
%tr{id: "repo_#{repo.owner}___#{repo.slug}"} %tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
%td %td
= link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: '_blank' = link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: '_blank'
%td.import-target %td.import-target
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
%th Status %th Status
%tbody %tbody
- @already_added_projects.each do |project| - @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"} %tr{ id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}" }
%td %td
= project.import_source = project.import_source
%td %td
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
= project.human_import_status_name = project.human_import_status_name
- @repos.each do |repo| - @repos.each do |repo|
%tr{id: "repo_#{repo.id}"} %tr{ id: "repo_#{repo.id}" }
%td %td
= repo.name = repo.name
%td.import-target %td.import-target
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
%th Status %th Status
%tbody %tbody
- @already_added_projects.each do |project| - @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"} %tr{ id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}" }
%td %td
= link_to project.import_source, "https://gitlab.com/#{project.import_source}", target: "_blank" = link_to project.import_source, "https://gitlab.com/#{project.import_source}", target: "_blank"
%td %td
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
= project.human_import_status_name = project.human_import_status_name
- @repos.each do |repo| - @repos.each do |repo|
%tr{id: "repo_#{repo["id"]}"} %tr{ id: "repo_#{repo["id"]}" }
%td %td
= link_to repo["path_with_namespace"], "https://gitlab.com/#{repo["path_with_namespace"]}", target: "_blank" = link_to repo["path_with_namespace"], "https://gitlab.com/#{repo["path_with_namespace"]}", target: "_blank"
%td.import-target %td.import-target
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
%p %p
Upload <code>GoogleCodeProjectHosting.json</code> here: Upload <code>GoogleCodeProjectHosting.json</code> here:
%p %p
%input{type: "file", name: "dump_file", id: "dump_file"} %input{ type: "file", name: "dump_file", id: "dump_file" }
%li %li
%p %p
Do you want to customize how Google Code email addresses and usernames are imported into GitLab? Do you want to customize how Google Code email addresses and usernames are imported into GitLab?
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
%th Status %th Status
%tbody %tbody
- @already_added_projects.each do |project| - @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"} %tr{ id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}" }
%td %td
= link_to project.import_source, "https://code.google.com/p/#{project.import_source}", target: "_blank" = link_to project.import_source, "https://code.google.com/p/#{project.import_source}", target: "_blank"
%td %td
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
= project.human_import_status_name = project.human_import_status_name
- @repos.each do |repo| - @repos.each do |repo|
%tr{id: "repo_#{repo.id}"} %tr{ id: "repo_#{repo.id}" }
%td %td
= link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank" = link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank"
%td.import-target %td.import-target
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
Import Import
= icon("spinner spin", class: "loading-icon") = icon("spinner spin", class: "loading-icon")
- @incompatible_repos.each do |repo| - @incompatible_repos.each do |repo|
%tr{id: "repo_#{repo.id}"} %tr{ id: "repo_#{repo.id}" }
%td %td
= link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank" = link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank"
%td.import-target %td.import-target
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
-# per_page: number of items to fetch per page -# per_page: number of items to fetch per page
-# remote: data-remote -# remote: data-remote
- if current_page.last? - if current_page.last?
%li{ class: "next disabled" } %li.next.disabled
%span= raw(t 'views.pagination.next') %span= raw(t 'views.pagination.next')
- else - else
%li{ class: "next" } %li.next
= link_to raw(t 'views.pagination.next'), url, rel: 'next', remote: remote = link_to raw(t 'views.pagination.next'), url, rel: 'next', remote: remote
...@@ -6,5 +6,5 @@ ...@@ -6,5 +6,5 @@
-# total_pages: total number of pages -# total_pages: total number of pages
-# per_page: number of items to fetch per page -# per_page: number of items to fetch per page
-# remote: data-remote -# remote: data-remote
%li{class: "page#{' active' if page.current?}#{' sibling' if page.next? || page.prev?}"} %li{ class: "page#{' active' if page.current?}#{' sibling' if page.next? || page.prev?}" }
= link_to page, url, {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil} = link_to page, url, { remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-# remote: data-remote -# remote: data-remote
-# paginator: the paginator that renders the pagination tags inside -# paginator: the paginator that renders the pagination tags inside
= paginator.render do = paginator.render do
%div.gl-pagination .gl-pagination
%ul.pagination.clearfix %ul.pagination.clearfix
- unless current_page.first? - unless current_page.first?
= first_page_tag unless total_pages < 5 # As kaminari will always show the first 5 pages = first_page_tag unless total_pages < 5 # As kaminari will always show the first 5 pages
...@@ -19,4 +19,3 @@ ...@@ -19,4 +19,3 @@
= next_page_tag = next_page_tag
- unless current_page.last? - unless current_page.last?
= last_page_tag unless total_pages < 5 = last_page_tag unless total_pages < 5
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
-# per_page: number of items to fetch per page -# per_page: number of items to fetch per page
-# remote: data-remote -# remote: data-remote
- if current_page.first? - if current_page.first?
%li{ class: "prev disabled" } %li.prev.disabled
%span= raw(t 'views.pagination.previous') %span= raw(t 'views.pagination.previous')
- else - else
%li{ class: "prev" } %li.prev
= link_to raw(t 'views.pagination.previous'), url, rel: 'prev', remote: remote = link_to raw(t 'views.pagination.previous'), url, rel: 'prev', remote: remote
- page_description brand_title unless page_description - page_description brand_title unless page_description
- site_name = "GitLab" - site_name = "GitLab"
%head{prefix: "og: http://ogp.me/ns#"} %head{ prefix: "og: http://ogp.me/ns#" }
%meta{charset: "utf-8"} %meta{ charset: "utf-8" }
%meta{'http-equiv' => 'X-UA-Compatible', content: 'IE=edge'} %meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' }
-# Open Graph - http://ogp.me/ -# Open Graph - http://ogp.me/
%meta{property: 'og:type', content: "object"} %meta{ property: 'og:type', content: "object" }
%meta{property: 'og:site_name', content: site_name} %meta{ property: 'og:site_name', content: site_name }
%meta{property: 'og:title', content: page_title} %meta{ property: 'og:title', content: page_title }
%meta{property: 'og:description', content: page_description} %meta{ property: 'og:description', content: page_description }
%meta{property: 'og:image', content: page_image} %meta{ property: 'og:image', content: page_image }
%meta{property: 'og:url', content: request.base_url + request.fullpath} %meta{ property: 'og:url', content: request.base_url + request.fullpath }
-# Twitter Card - https://dev.twitter.com/cards/types/summary -# Twitter Card - https://dev.twitter.com/cards/types/summary
%meta{property: 'twitter:card', content: "summary"} %meta{ property: 'twitter:card', content: "summary" }
%meta{property: 'twitter:title', content: page_title} %meta{ property: 'twitter:title', content: page_title }
%meta{property: 'twitter:description', content: page_description} %meta{ property: 'twitter:description', content: page_description }
%meta{property: 'twitter:image', content: page_image} %meta{ property: 'twitter:image', content: page_image }
= page_card_meta_tags = page_card_meta_tags
%title= page_title(site_name) %title= page_title(site_name)
%meta{name: "description", content: page_description} %meta{ name: "description", content: page_description }
= favicon_link_tag 'favicon.ico' = favicon_link_tag 'favicon.ico'
...@@ -36,20 +36,20 @@ ...@@ -36,20 +36,20 @@
= csrf_meta_tags = csrf_meta_tags
- unless browser.safari? - unless browser.safari?
%meta{name: 'referrer', content: 'origin-when-cross-origin'} %meta{ name: 'referrer', content: 'origin-when-cross-origin' }
%meta{name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1'} %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1' }
%meta{name: 'theme-color', content: '#474D57'} %meta{ name: 'theme-color', content: '#474D57' }
-# Apple Safari/iOS home screen icons -# Apple Safari/iOS home screen icons
= favicon_link_tag 'touch-icon-iphone.png', rel: 'apple-touch-icon' = favicon_link_tag 'touch-icon-iphone.png', rel: 'apple-touch-icon'
= favicon_link_tag 'touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '76x76' = favicon_link_tag 'touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '76x76'
= favicon_link_tag 'touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '120x120' = favicon_link_tag 'touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '120x120'
= favicon_link_tag 'touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '152x152' = favicon_link_tag 'touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '152x152'
%link{rel: 'mask-icon', href: image_path('logo.svg'), color: 'rgb(226, 67, 41)'} %link{ rel: 'mask-icon', href: image_path('logo.svg'), color: 'rgb(226, 67, 41)' }
-# Windows 8 pinned site tile -# Windows 8 pinned site tile
%meta{name: 'msapplication-TileImage', content: image_path('msapplication-tile.png')} %meta{ name: 'msapplication-TileImage', content: image_path('msapplication-tile.png') }
%meta{name: 'msapplication-TileColor', content: '#30353E'} %meta{ name: 'msapplication-TileColor', content: '#30353E' }
= yield :meta_tags = yield :meta_tags
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
- group_data_attrs = { group_path: j(@group.path), name: @group.name, issues_path: issues_group_path(j(@group.path)), mr_path: merge_requests_group_path(j(@group.path)) } - group_data_attrs = { group_path: j(@group.path), name: @group.name, issues_path: issues_group_path(j(@group.path)), mr_path: merge_requests_group_path(j(@group.path)) }
- if @project && @project.persisted? - if @project && @project.persisted?
- project_data_attrs = { project_path: j(@project.path), name: j(@project.name), issues_path: namespace_project_issues_path(@project.namespace, @project), mr_path: namespace_project_merge_requests_path(@project.namespace, @project) } - project_data_attrs = { project_path: j(@project.path), name: j(@project.name), issues_path: namespace_project_issues_path(@project.namespace, @project), mr_path: namespace_project_merge_requests_path(@project.namespace, @project) }
.search.search-form{class: "#{'has-location-badge' if label.present?}"} .search.search-form{ class: "#{'has-location-badge' if label.present?}" }
= form_tag search_path, method: :get, class: 'navbar-form' do |f| = form_tag search_path, method: :get, class: 'navbar-form' do |f|
.search-input-container .search-input-container
- if label.present? - if label.present?
...@@ -44,4 +44,4 @@ ...@@ -44,4 +44,4 @@
= hidden_field_tag :snippets, true = hidden_field_tag :snippets, true
= hidden_field_tag :repository_ref, @ref = hidden_field_tag :repository_ref, @ref
= button_tag 'Go' if ENV['RAILS_ENV'] == 'test' = button_tag 'Go' if ENV['RAILS_ENV'] == 'test'
.search-autocomplete-opts.hide{:'data-autocomplete-path' => search_autocomplete_path, :'data-autocomplete-project-id' => @project.try(:id), :'data-autocomplete-project-ref' => @ref } .search-autocomplete-opts.hide{ :'data-autocomplete-path' => search_autocomplete_path, :'data-autocomplete-project-id' => @project.try(:id), :'data-autocomplete-project-ref' => @ref }
!!! 5 !!! 5
%html{ lang: "en", class: "#{page_class}" } %html{ lang: "en", class: "#{page_class}" }
= render "layouts/head" = render "layouts/head"
%body{class: "#{user_application_theme}", data: {page: body_data_page, project: "#{@project.path if @project}", group: "#{@group.path if @group}"}} %body{ class: "#{user_application_theme}", data: { page: body_data_page, project: "#{@project.path if @project}", group: "#{@group.path if @group}" } }
= Gon::Base.render_data = Gon::Base.render_data
-# Ideally this would be inside the head, but turbolinks only evaluates page-specific JS in the body. -# Ideally this would be inside the head, but turbolinks only evaluates page-specific JS in the body.
......
!!! 5 !!! 5
%html{ lang: "en", class: "devise-layout-html"} %html.devise-layout-html
= render "layouts/head" = render "layouts/head"
%body.ui_charcoal.login-page.application.navless{ data: { page: body_data_page }} %body.ui_charcoal.login-page.application.navless{ data: { page: body_data_page } }
.page-wrap .page-wrap
= Gon::Base.render_data = Gon::Base.render_data
= render "layouts/header/empty" = render "layouts/header/empty"
......
!!! 5 !!! 5
%html{ lang: "en"} %html{ lang: "en" }
= render "layouts/head" = render "layouts/head"
%body.ui_charcoal.login-page.application.navless %body.ui_charcoal.login-page.application.navless
= Gon::Base.render_data = Gon::Base.render_data
......
!!! 5 !!! 5
%html %html
%head %head
%meta(content='text/html; charset=UTF-8' http-equiv='Content-Type') %meta{ content: 'text/html; charset=UTF-8', 'http-equiv'=> 'Content-Type' }
= stylesheet_link_tag 'mailers/devise' = stylesheet_link_tag 'mailers/devise'
%body %body
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
%tr %tr
%td %td
%table#header %table#header
%td{valign: "top"} %td{ valign: "top" }
= image_tag('mailers/gitlab_header_logo.png', id: 'logo', alt: 'GitLab Wordmark') = image_tag('mailers/gitlab_header_logo.png', id: 'logo', alt: 'GitLab Wordmark')
%table#body %table#body
......
!!! 5 !!! 5
%html{ lang: "en"} %html{ lang: "en" }
%head %head
%meta{:content => "width=device-width, initial-scale=1, maximum-scale=1", :name => "viewport"} %meta{ :content => "width=device-width, initial-scale=1, maximum-scale=1", :name => "viewport" }
%title= yield(:title) %title= yield(:title)
:css :css
body { body {
......
%header.navbar.navbar-fixed-top.navbar-gitlab{ class: nav_header_class } %header.navbar.navbar-fixed-top.navbar-gitlab{ class: nav_header_class }
%a{ href: "#content-body", tabindex: "1", class: "sr-only gl-accessibility" } Skip to content %a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
%div{ class: "container-fluid" } .container-fluid
.header-content .header-content
%button.side-nav-toggle{ type: 'button', "aria-label" => "Toggle global navigation" } %button.side-nav-toggle{ type: 'button', "aria-label" => "Toggle global navigation" }
%span.sr-only Toggle navigation %span.sr-only Toggle navigation
= icon('bars') = icon('bars')
%button.navbar-toggle{type: 'button'} %button.navbar-toggle{ type: 'button' }
%span.sr-only Toggle navigation %span.sr-only Toggle navigation
= icon('ellipsis-v') = icon('ellipsis-v')
......
.controls .controls
.dropdown.admin-settings-dropdown .dropdown.admin-settings-dropdown
%a.dropdown-new.btn.btn-default{href: '#', 'data-toggle' => 'dropdown'} %a.dropdown-new.btn.btn-default{ href: '#', 'data-toggle' => 'dropdown' }
= icon('cog') = icon('cog')
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
- if can_admin_group || can_edit - if can_admin_group || can_edit
.controls .controls
.dropdown.group-settings-dropdown .dropdown.group-settings-dropdown
%a.dropdown-new.btn.btn-default#group-settings-button{href: '#', 'data-toggle' => 'dropdown'} %a.dropdown-new.btn.btn-default#group-settings-button{ href: '#', 'data-toggle' => 'dropdown' }
= icon('cog') = icon('cog')
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
......
- if current_user - if current_user
.controls .controls
.dropdown.project-settings-dropdown .dropdown.project-settings-dropdown
%a.dropdown-new.btn.btn-default#project-settings-button{href: '#', 'data-toggle' => 'dropdown'} %a.dropdown-new.btn.btn-default#project-settings-button{ href: '#', 'data-toggle' => 'dropdown' }
= icon('cog') = icon('cog')
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
......
%html{lang: "en"} %html{ lang: "en" }
%head %head
%meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} %meta{ content: "text/html; charset=utf-8", "http-equiv" => "Content-Type" }
%title %title
GitLab GitLab
= stylesheet_link_tag 'notify' = stylesheet_link_tag 'notify'
= yield :head = yield :head
%body %body
%div.content .content
= yield = yield
%div.footer{style: "margin-top: 10px;"} .footer{ style: "margin-top: 10px;" }
%p %p
&mdash; &mdash;
%br %br
......
- content_for :header do - content_for :header do
%h1{style: "background: #c40834; color: #FFF; font: normal 20px Helvetica, Arial, sans-serif; margin: 0; padding: 5px 10px; line-height: 32px; font-size: 16px;"} %h1{ style: "background: #c40834; color: #FFF; font: normal 20px Helvetica, Arial, sans-serif; margin: 0; padding: 5px 10px; line-height: 32px; font-size: 16px;" }
GitLab (build failed) GitLab (build failed)
%h3 %h3
......
- content_for :header do - content_for :header do
%h1{style: "background: #38CF5B; color: #FFF; font: normal 20px Helvetica, Arial, sans-serif; margin: 0; padding: 5px 10px; line-height: 32px; font-size: 16px;"} %h1{ style: "background: #38CF5B; color: #FFF; font: normal 20px Helvetica, Arial, sans-serif; margin: 0; padding: 5px 10px; line-height: 32px; font-size: 16px;" }
GitLab (build successful) GitLab (build successful)
%h3 %h3
......
%a{href: pipeline_build_url(pipeline, build), style: "color:#3777b0;text-decoration:none;"} %a{ href: pipeline_build_url(pipeline, build), style: "color:#3777b0;text-decoration:none;" }
= build.name = build.name
- if current_application_settings.email_author_in_body - if current_application_settings.email_author_in_body
%div %div
#{link_to @issue.author_name, user_url(@issue.author)} wrote: #{link_to @issue.author_name, user_url(@issue.author)} wrote:
-if @issue.description - if @issue.description
= markdown(@issue.description, pipeline: :email, author: @issue.author) = markdown(@issue.description, pipeline: :email, author: @issue.author)
- if @issue.assignee_id.present? - if @issue.assignee_id.present?
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
- if current_application_settings.email_author_in_body - if current_application_settings.email_author_in_body
%div %div
#{link_to @issue.author_name, user_url(@issue.author)} wrote: #{link_to @issue.author_name, user_url(@issue.author)} wrote:
-if @issue.description - if @issue.description
= markdown(@issue.description, pipeline: :email, author: @issue.author) = markdown(@issue.description, pipeline: :email, author: @issue.author)
- if @issue.assignee_id.present? - if @issue.assignee_id.present?
......
...@@ -11,5 +11,5 @@ ...@@ -11,5 +11,5 @@
%p %p
Assignee: #{@merge_request.author_name} &rarr; #{@merge_request.assignee_name} Assignee: #{@merge_request.author_name} &rarr; #{@merge_request.assignee_name}
-if @merge_request.description - if @merge_request.description
= markdown(@merge_request.description, pipeline: :email, author: @merge_request.author) = markdown(@merge_request.description, pipeline: :email, author: @merge_request.author)
...@@ -8,5 +8,5 @@ ...@@ -8,5 +8,5 @@
%p %p
Assignee: #{@merge_request.author_name} &rarr; #{@merge_request.assignee_name} Assignee: #{@merge_request.author_name} &rarr; #{@merge_request.assignee_name}
-if @merge_request.description - if @merge_request.description
= markdown(@merge_request.description, pipeline: :email, author: @merge_request.author) = markdown(@merge_request.description, pipeline: :email, author: @merge_request.author)
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
= "The errors we encountered were:" = "The errors we encountered were:"
- @errors.each do |error| - @errors.each do |error|
#{error} #{error}
\ No newline at end of file
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
%ul %ul
- @message.diffs.each do |diff| - @message.diffs.each do |diff|
%li.file-stats %li.file-stats
%a{href: "#{@message.target_url if @message.disable_diffs?}##{hexdigest(diff.file_path)}" } %a{ href: "#{@message.target_url if @message.disable_diffs?}##{hexdigest(diff.file_path)}" }
- if diff.deleted_file - if diff.deleted_file
%span.deleted-file %span.deleted-file
&minus; &minus;
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
%h4 Changes: %h4 Changes:
- diff_files.each do |diff_file| - diff_files.each do |diff_file|
- file_hash = hexdigest(diff_file.file_path) - file_hash = hexdigest(diff_file.file_path)
%li{id: file_hash} %li{ id: file_hash }
%a{href: @message.target_url + "##{file_hash}"}< %a{ href: @message.target_url + "##{file_hash}" }<
- if diff_file.deleted_file - if diff_file.deleted_file
%strong< %strong<
= diff_file.old_path = diff_file.old_path
......
%h3.page-title Authorization required %h3.page-title Authorization required
%main{:role => "main"} %main{ :role => "main" }
%p.h4 %p.h4
Authorize Authorize
%strong.text-info= @chat_name_params[:chat_name] %strong.text-info= @chat_name_params[:chat_name]
......
...@@ -17,5 +17,5 @@ ...@@ -17,5 +17,5 @@
%hr %hr
%h5 %h5
Your SSH keys (#{@keys.count}) Your SSH keys (#{@keys.count})
%div.append-bottom-default .append-bottom-default
= render 'key_table' = render 'key_table'
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
%div %div
- if @user.errors.any? - if @user.errors.any?
%div.alert.alert-danger .alert.alert-danger
%ul %ul
- @user.errors.full_messages.each do |msg| - @user.errors.full_messages.each do |msg|
%li= msg %li= msg
......
- page_title 'Preferences' - page_title 'Preferences'
= render 'profiles/head' = render 'profiles/head'
= form_for @user, url: profile_preferences_path, remote: true, method: :put, html: {class: 'row prepend-top-default js-preferences-form'} do |f| = form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { class: 'row prepend-top-default js-preferences-form' } do |f|
.col-lg-3.profile-settings-sidebar .col-lg-3.profile-settings-sidebar
%h4.prepend-top-0 %h4.prepend-top-0
Application theme Application theme
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
.col-lg-9.application-theme .col-lg-9.application-theme
- Gitlab::Themes.each do |theme| - Gitlab::Themes.each do |theme|
= label_tag do = label_tag do
.preview{class: theme.css_class} .preview{ class: theme.css_class }
= f.radio_button :theme_id, theme.id = f.radio_button :theme_id, theme.id
= theme.name = theme.name
.col-sm-12 .col-sm-12
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
The maximum file size allowed is 200KB. The maximum file size allowed is 200KB.
- if @user.avatar? - if @user.avatar?
%hr %hr
= link_to 'Remove avatar', profile_avatar_path, data: { confirm: "Avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-gray" = link_to 'Remove avatar', profile_avatar_path, data: { confirm: "Avatar will be removed. Are you sure?" }, method: :delete, class: "btn btn-gray"
%hr %hr
.row .row
.col-lg-3.profile-settings-sidebar .col-lg-3.profile-settings-sidebar
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
%span.help-block We also use email for avatar detection if no avatar is uploaded. %span.help-block We also use email for avatar detection if no avatar is uploaded.
.form-group .form-group
= f.label :public_email, class: "label-light" = f.label :public_email, class: "label-light"
= f.select :public_email, options_for_select(@user.all_emails, selected: @user.public_email), {include_blank: 'Do not show on profile'}, class: "select2" = f.select :public_email, options_for_select(@user.all_emails, selected: @user.public_email), { include_blank: 'Do not show on profile' }, class: "select2"
%span.help-block This email will be displayed on your public profile. %span.help-block This email will be displayed on your public profile.
.form-group .form-group
= f.label :skype, class: "label-light" = f.label :skype, class: "label-light"
...@@ -101,14 +101,14 @@ ...@@ -101,14 +101,14 @@
.modal-dialog .modal-dialog
.modal-content .modal-content
.modal-header .modal-header
%button.close{:type => "button", :'data-dismiss' => "modal"} %button.close{ :type => "button", :'data-dismiss' => "modal" }
%span %span
&times; &times;
%h4.modal-title %h4.modal-title
Position and size your new avatar Position and size your new avatar
.modal-body .modal-body
.profile-crop-image-container .profile-crop-image-container
%img.modal-profile-crop-image %img.modal-profile-crop-image{ alt: "Avatar cropper" }
.crop-controls .crop-controls
.btn-group .btn-group
%button.btn.btn-primary{ data: { method: "zoom", option: "0.1" } } %button.btn.btn-primary{ data: { method: "zoom", option: "0.1" } }
...@@ -116,5 +116,5 @@ ...@@ -116,5 +116,5 @@
%button.btn.btn-primary{ data: { method: "zoom", option: "-0.1" } } %button.btn.btn-primary{ data: { method: "zoom", option: "-0.1" } }
%span.fa.fa-search-minus %span.fa.fa-search-minus
.modal-footer .modal-footer
%button.btn.btn-primary.js-upload-user-avatar{:type => "button"} %button.btn.btn-primary.js-upload-user-avatar{ :type => "button" }
Set new profile picture Set new profile picture
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
= render 'shared/event_filter' = render 'shared/event_filter'
.content_list.project-activity{:"data-href" => activity_project_path(@project)} .content_list.project-activity{ :"data-href" => activity_project_path(@project) }
= spinner = spinner
:javascript :javascript
......
%div#bitbucket_import_modal.modal #bitbucket_import_modal.modal
.modal-dialog .modal-dialog
.modal-content .modal-content
.modal-header .modal-header
%a.close{href: "#", "data-dismiss" => "modal"} × %a.close{ href: "#", "data-dismiss" => "modal" } ×
%h3 Import projects from Bitbucket %h3 Import projects from Bitbucket
.modal-body .modal-body
To enable importing projects from Bitbucket, To enable importing projects from Bitbucket,
...@@ -10,4 +10,4 @@ ...@@ -10,4 +10,4 @@
as administrator you need to configure as administrator you need to configure
- else - else
ask your GitLab administrator to configure ask your GitLab administrator to configure
== #{link_to 'OAuth integration', help_page_path("integration/bitbucket")}. = link_to 'OAuth integration', help_page_path("integration/bitbucket")
.row-content-block.project-home-empty .row-content-block.project-home-empty
%div.text-center{ class: container_class } .text-center{ class: container_class }
%h4 %h4
Customize your workflow! Customize your workflow!
%p %p
......
= link_to namespace_project_find_file_path(@project.namespace, @project, @ref), class: 'btn btn-grouped shortcuts-find-file', rel: 'nofollow' do = link_to namespace_project_find_file_path(@project.namespace, @project, @ref), class: 'btn btn-grouped shortcuts-find-file', rel: 'nofollow' do
= icon('search') = icon('search')
%span Find File %span Find File
%div#gitlab_import_modal.modal #gitlab_import_modal.modal
.modal-dialog .modal-dialog
.modal-content .modal-content
.modal-header .modal-header
%a.close{href: "#", "data-dismiss" => "modal"} × %a.close{ href: "#", "data-dismiss" => "modal" } ×
%h3 Import projects from GitLab.com %h3 Import projects from GitLab.com
.modal-body .modal-body
To enable importing projects from GitLab.com, To enable importing projects from GitLab.com,
...@@ -10,4 +10,4 @@ ...@@ -10,4 +10,4 @@
as administrator you need to configure as administrator you need to configure
- else - else
ask your GitLab administrator to configure ask your GitLab administrator to configure
== #{link_to 'OAuth integration', help_page_path("integration/gitlab")}. = link_to 'OAuth integration', help_page_path("integration/gitlab")
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
= project_icon(@project, alt: @project.name, class: 'avatar s70 avatar-tile') = project_icon(@project, alt: @project.name, class: 'avatar s70 avatar-tile')
%h1.project-title %h1.project-title
= @project.name = @project.name
%span.visibility-icon.has-tooltip{data: { container: 'body' }, title: visibility_icon_description(@project)} %span.visibility-icon.has-tooltip{ data: { container: 'body' }, title: visibility_icon_description(@project) }
= visibility_level_icon(@project.visibility_level, fw: false) = visibility_level_icon(@project.visibility_level, fw: false)
.project-home-desc .project-home-desc
......
...@@ -15,23 +15,23 @@ ...@@ -15,23 +15,23 @@
%li.pull-right %li.pull-right
.toolbar-group .toolbar-group
= markdown_toolbar_button({icon: "bold fw", data: { "md-tag" => "**" }, title: "Add bold text" }) = markdown_toolbar_button({ icon: "bold fw", data: { "md-tag" => "**" }, title: "Add bold text" })
= markdown_toolbar_button({icon: "italic fw", data: { "md-tag" => "*" }, title: "Add italic text" }) = markdown_toolbar_button({ icon: "italic fw", data: { "md-tag" => "*" }, title: "Add italic text" })
= markdown_toolbar_button({icon: "quote-right fw", data: { "md-tag" => "> ", "md-prepend" => true }, title: "Insert a quote" }) = markdown_toolbar_button({ icon: "quote-right fw", data: { "md-tag" => "> ", "md-prepend" => true }, title: "Insert a quote" })
= markdown_toolbar_button({icon: "code fw", data: { "md-tag" => "`", "md-block" => "```" }, title: "Insert code" }) = markdown_toolbar_button({ icon: "code fw", data: { "md-tag" => "`", "md-block" => "```" }, title: "Insert code" })
= markdown_toolbar_button({icon: "list-ul fw", data: { "md-tag" => "* ", "md-prepend" => true }, title: "Add a bullet list" }) = markdown_toolbar_button({ icon: "list-ul fw", data: { "md-tag" => "* ", "md-prepend" => true }, title: "Add a bullet list" })
= markdown_toolbar_button({icon: "list-ol fw", data: { "md-tag" => "1. ", "md-prepend" => true }, title: "Add a numbered list" }) = markdown_toolbar_button({ icon: "list-ol fw", data: { "md-tag" => "1. ", "md-prepend" => true }, title: "Add a numbered list" })
= markdown_toolbar_button({icon: "check-square-o fw", data: { "md-tag" => "* [ ] ", "md-prepend" => true }, title: "Add a task list" }) = markdown_toolbar_button({ icon: "check-square-o fw", data: { "md-tag" => "* [ ] ", "md-prepend" => true }, title: "Add a task list" })
.toolbar-group .toolbar-group
%button.toolbar-btn.js-zen-enter.has-tooltip.hidden-xs{ type: "button", tabindex: -1, aria: { label: "Go full screen" }, title: "Go full screen", data: { container: "body" } } %button.toolbar-btn.js-zen-enter.has-tooltip.hidden-xs{ type: "button", tabindex: -1, aria: { label: "Go full screen" }, title: "Go full screen", data: { container: "body" } }
=icon("arrows-alt fw") = icon("arrows-alt fw")
.md-write-holder .md-write-holder
= yield = yield
.md.md-preview-holder.js-md-preview.hide{class: (preview_class if defined?(preview_class))} .md.md-preview-holder.js-md-preview.hide{ class: (preview_class if defined?(preview_class)) }
- if defined?(referenced_users) && referenced_users - if defined?(referenced_users) && referenced_users
%div.referenced-users.hide .referenced-users.hide
%span %span
= icon("exclamation-triangle") = icon("exclamation-triangle")
You are about to add You are about to add
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
- else - else
- can_create_wiki = can?(current_user, :create_wiki, @project) - can_create_wiki = can?(current_user, :create_wiki, @project)
.project-home-empty{ class: [('row-content-block' if can_create_wiki), ('content-block' unless can_create_wiki)] } .project-home-empty{ class: [('row-content-block' if can_create_wiki), ('content-block' unless can_create_wiki)] }
%div.text-center{ class: container_class } .text-center{ class: container_class }
%h4 %h4
This project does not have a wiki homepage yet This project does not have a wiki homepage yet
- if can_create_wiki - if can_create_wiki
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment