Merge branch '22072-enable-haml-lints' into 'master'
Enable HAML-LINT linters Closes #22072 See merge request !8247
This commit is contained in:
commit
8dc2163ce5
217 changed files with 634 additions and 645 deletions
|
@ -7,10 +7,10 @@ exclude:
|
|||
|
||||
linters:
|
||||
AltText:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ClassAttributeWithStaticValue:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ClassesBeforeIds:
|
||||
enabled: false
|
||||
|
@ -29,14 +29,14 @@ linters:
|
|||
enabled: true
|
||||
|
||||
FinalNewline:
|
||||
enabled: false
|
||||
enabled: true
|
||||
present: true
|
||||
|
||||
HtmlAttributes:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ImplicitDiv:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
LeadingCommentSpace:
|
||||
enabled: false
|
||||
|
@ -80,10 +80,10 @@ linters:
|
|||
enabled: false
|
||||
|
||||
SpaceBeforeScript:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
SpaceInsideHashAttributes:
|
||||
enabled: false
|
||||
enabled: true
|
||||
style: space
|
||||
|
||||
Indentation:
|
||||
|
@ -94,7 +94,7 @@ linters:
|
|||
enabled: true
|
||||
|
||||
TrailingWhitespace:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
UnnecessaryInterpolation:
|
||||
enabled: false
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
%p
|
||||
#{link_to @abuse_report.user.name, user_url(@abuse_report.user)}
|
||||
(@#{@abuse_report.user.username}) was reported for abuse by
|
||||
#{link_to @abuse_report.reporter.name, user_url(@abuse_report.reporter)}
|
||||
#{link_to @abuse_report.user.name, user_url(@abuse_report.user)}
|
||||
(@#{@abuse_report.user.username}) was reported for abuse by
|
||||
#{link_to @abuse_report.reporter.name, user_url(@abuse_report.reporter)}
|
||||
(@#{@abuse_report.reporter.username}).
|
||||
|
||||
%blockquote
|
||||
|
|
|
@ -321,7 +321,7 @@
|
|||
= f.text_field :recaptcha_site_key, class: 'form-control'
|
||||
.help-block
|
||||
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
|
||||
= f.label :recaptcha_private_key, 'reCAPTCHA Private Key', class: 'control-label col-sm-2'
|
||||
|
@ -342,7 +342,7 @@
|
|||
= f.text_field :akismet_api_key, class: 'form-control'
|
||||
.help-block
|
||||
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
|
||||
%legend Abuse reports
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- submit_btn_css ||= 'btn btn-link btn-remove btn-sm'
|
||||
= 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
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
%th
|
||||
%tbody.oauth-applications
|
||||
- @applications.each do |application|
|
||||
%tr{:id => "application_#{application.id}"}
|
||||
%tr{ :id => "application_#{application.id}" }
|
||||
%td= link_to application.name, admin_application_path(application)
|
||||
%td= application.redirect_uri
|
||||
%td= application.access_tokens.map(&:resource_owner_id).uniq.count
|
||||
|
|
|
@ -43,4 +43,4 @@
|
|||
|
||||
|
||||
.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 @@
|
|||
|
||||
%br.clearfix
|
||||
|
||||
-if @broadcast_messages.any?
|
||||
- if @broadcast_messages.any?
|
||||
%table.table
|
||||
%thead
|
||||
%tr
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
= icon('users')
|
||||
= 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)
|
||||
|
||||
.avatar-container.s40
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
= form_tag admin_group_members_update_path(@group), id: "new_project_member", class: "bulk_import", method: :put do
|
||||
%div
|
||||
= 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"
|
||||
%hr
|
||||
= button_tag 'Add users to group', class: "btn btn-create"
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
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.
|
||||
|
||||
%div.prepend-top-default
|
||||
.prepend-top-default
|
||||
= f.check_box :push_events, class: 'pull-left'
|
||||
.prepend-left-20
|
||||
= f.label :push_events, class: 'list-label' do
|
||||
|
@ -54,7 +54,7 @@
|
|||
= f.submit "Add System Hook", class: "btn btn-create"
|
||||
%hr
|
||||
|
||||
-if @hooks.any?
|
||||
- if @hooks.any?
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
System hooks (#{@hooks.count})
|
||||
|
@ -70,4 +70,3 @@
|
|||
- if hook.send(trigger)
|
||||
%span.label.label-gray= trigger.titleize
|
||||
%span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? "enabled" : "disabled"}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%li{id: dom_id(label)}
|
||||
%li{ id: dom_id(label) }
|
||||
.label-row
|
||||
= render_colored_label(label, tooltip: false)
|
||||
= markdown_field(label, :description)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%tr{id: dom_id(runner)}
|
||||
%tr{ id: dom_id(runner) }
|
||||
%td
|
||||
- if runner.shared?
|
||||
%span.label.label-success shared
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: 'btn'
|
||||
- unless user == current_user
|
||||
.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('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
%li.two-factor-status
|
||||
%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?
|
||||
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'
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
- if build[:allow_failure]
|
||||
%b Allowed to fail
|
||||
|
||||
-else
|
||||
- else
|
||||
%p
|
||||
%b Status:
|
||||
syntax is incorrect
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
= link_to new_project_path, class: "btn btn-new" do
|
||||
New project
|
||||
|
||||
-if publicish_project_count > 0
|
||||
- if publicish_project_count > 0
|
||||
.blank-state
|
||||
.blank-state-icon
|
||||
= icon("globe")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%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)
|
||||
|
||||
.todo-item.todo-block
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
.top-area
|
||||
%ul.nav-links
|
||||
- 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
|
||||
%span
|
||||
To do
|
||||
%span.badge
|
||||
= number_with_delimiter(todos_pending_count)
|
||||
- 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
|
||||
%span
|
||||
Done
|
||||
|
@ -50,7 +50,7 @@
|
|||
data: { data: todo_actions_options, default_label: 'Action' } })
|
||||
.pull-right
|
||||
.dropdown.inline.prepend-left-10
|
||||
%button.dropdown-toggle{type: 'button', 'data-toggle' => 'dropdown'}
|
||||
%button.dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
|
||||
%span.light
|
||||
- if @sort.present?
|
||||
= sort_options_hash[@sort]
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
= 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.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.password_field :password, class: "form-control bottom", required: true, title: "This field is required."
|
||||
- if devise_mapping.rememberable?
|
||||
.remember-me.checkbox
|
||||
%label{for: "user_remember_me"}
|
||||
%label{ for: "user_remember_me" }
|
||||
= f.check_box :remember_me
|
||||
%span Remember me
|
||||
.pull-right.forgot-password
|
||||
= 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"
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
= form_tag(omniauth_authorize_path(:user, :crowd), id: 'new_crowd_user', class: 'gl-show-field-errors') do
|
||||
.form-group
|
||||
= 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
|
||||
= label_tag :password
|
||||
= password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
|
||||
- if devise_mapping.rememberable?
|
||||
.remember-me.checkbox
|
||||
%label{for: "remember_me"}
|
||||
%label{ for: "remember_me" }
|
||||
= check_box_tag :remember_me, '1', false, id: 'remember_me'
|
||||
%span Remember me
|
||||
= submit_tag "Sign in", class: "btn-save btn"
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
= form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "gl-show-field-errors") do
|
||||
.form-group
|
||||
= 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
|
||||
= label_tag :password
|
||||
= password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
|
||||
- if devise_mapping.rememberable?
|
||||
.remember-me.checkbox
|
||||
%label{for: "remember_me"}
|
||||
%label{ for: "remember_me" }
|
||||
= check_box_tag :remember_me, '1', false, id: 'remember_me'
|
||||
%span Remember me
|
||||
= submit_tag "Sign in", class: "btn-save btn"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%div.omniauth-container
|
||||
.omniauth-container
|
||||
%p
|
||||
%span.light
|
||||
Sign in with
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
- if form_based_providers.any?
|
||||
- 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
|
||||
= render 'devise/sessions/new_crowd'
|
||||
- @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
|
||||
= render 'devise/sessions/new_ldap', server: server
|
||||
- if signin_enabled?
|
||||
.login-box.tab-pane{id: 'ldap-standard', role: 'tabpanel'}
|
||||
.login-box.tab-pane{ id: 'ldap-standard', role: 'tabpanel' }
|
||||
.login-body
|
||||
= render 'devise/sessions/new_base'
|
||||
|
||||
- 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
|
||||
= render 'devise/sessions/new_base'
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
#register-pane.login-box{ role: 'tabpanel', class: 'tab-pane' }
|
||||
#register-pane.tab-pane.login-box{ role: 'tabpanel' }
|
||||
.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|
|
||||
.devise-errors
|
||||
= devise_error_messages!
|
||||
%div.form-group
|
||||
.form-group
|
||||
= f.label :name
|
||||
= 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.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-success.hide Username is available.
|
||||
%p.validation-pending.hide Checking username availability...
|
||||
%div.form-group
|
||||
.form-group
|
||||
= f.label :email
|
||||
= f.email_field :email, class: "form-control middle", required: true, title: "Please provide a valid email address."
|
||||
.form-group.append-bottom-20#password-strength
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
%li.active
|
||||
= link_to "Crowd", "#crowd", 'data-toggle' => 'tab'
|
||||
- @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'
|
||||
- if signin_enabled?
|
||||
%li
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%ul.nav-links.new-session-tabs.nav-tabs{ role: 'tablist'}
|
||||
%ul.nav-links.new-session-tabs.nav-tabs{ role: 'tablist' }
|
||||
%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?
|
||||
%li{ role: 'presentation'}
|
||||
%a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab'} Register
|
||||
%li{ role: 'presentation' }
|
||||
%a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab' } Register
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- 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_content
|
||||
.content
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
%button.btn.btn-default.discussion-next-btn.has-tooltip{ "@click" => "jumpToNextUnresolvedDiscussion",
|
||||
title: "Jump to next unresolved discussion",
|
||||
"aria-label" => "Jump to next unresolved discussion",
|
||||
data: { container: "body" }}
|
||||
data: { container: "body" } }
|
||||
= custom_icon("next_discussion")
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
- 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
|
||||
%td.notes_line.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'
|
||||
- else
|
||||
%td.notes_line.old= ""
|
||||
|
@ -13,7 +13,7 @@
|
|||
- if discussion_right
|
||||
%td.notes_line.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'
|
||||
- else
|
||||
%td.notes_line.new= ""
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- submit_btn_css ||= 'btn btn-link btn-remove btn-sm'
|
||||
= form_tag oauth_application_path(application) do
|
||||
%input{:name => "_method", :type => "hidden", :value => "delete"}/
|
||||
%input{ :name => "_method", :type => "hidden", :value => "delete" }/
|
||||
- if defined? small
|
||||
= button_tag type: "submit", class: "btn btn-transparent", data: { confirm: "Are you sure?" } do
|
||||
%span.sr-only
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
%th.last-heading
|
||||
%tbody
|
||||
- @applications.each do |application|
|
||||
%tr{id: "application_#{application.id}"}
|
||||
%tr{ id: "application_#{application.id}" }
|
||||
%td= link_to application.name, oauth_application_path(application)
|
||||
%td
|
||||
- application.redirect_uri.split.each do |uri|
|
||||
|
@ -63,7 +63,7 @@
|
|||
%tbody
|
||||
- @authorized_apps.each do |app|
|
||||
- token = app.authorized_tokens.order('created_at desc').first
|
||||
%tr{id: "application_#{app.id}"}
|
||||
%tr{ id: "application_#{app.id}" }
|
||||
%td= app.name
|
||||
%td= token.created_at
|
||||
%td= token.scopes
|
||||
|
@ -72,7 +72,7 @@
|
|||
%tr
|
||||
%td
|
||||
Anonymous
|
||||
%div.help-block
|
||||
.help-block
|
||||
%em Authorization was granted by entering your username and password in the application.
|
||||
%td= token.created_at
|
||||
%td= token.scopes
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
%h3.page-title An error has occurred
|
||||
%main{:role => "main"}
|
||||
%main{ :role => "main" }
|
||||
%pre= @pre_auth.error_response.body[:error_description]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
%h3.page-title Authorization required
|
||||
%main{:role => "main"}
|
||||
%main{ :role => "main" }
|
||||
%p.h4
|
||||
Authorize
|
||||
%strong.text-info= @pre_auth.client.name
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
%h3.page-title Authorization code:
|
||||
%main{:role => "main"}
|
||||
%main{ :role => "main" }
|
||||
%code#authorization_code= params[:code]
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
- path = oauth_authorized_application_path(0, token_id: token)
|
||||
- else
|
||||
- path = oauth_authorized_application_path(application)
|
||||
|
||||
|
||||
= 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'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%header.page-header
|
||||
%h1 Your authorized applications
|
||||
%main{:role => "main"}
|
||||
%main{ :role => "main" }
|
||||
.table-holder
|
||||
%table.table.table-striped
|
||||
%thead
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
%ul.clearfix.emoji-menu-list
|
||||
- emojis.each do |emoji|
|
||||
%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"])
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
- content_for(:title, 'Access Denied')
|
||||
%img{:alt => "GitLab Logo",
|
||||
:src => image_path('logo.svg')}
|
||||
%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
|
||||
%h1
|
||||
403
|
||||
.container
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
- content_for(:title, 'Encoding Error')
|
||||
%img{:alt => "GitLab Logo",
|
||||
:src => image_path('logo.svg')}
|
||||
%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
|
||||
%h1
|
||||
500
|
||||
.container
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
- content_for(:title, 'Git Resource Not Found')
|
||||
%img{:alt => "GitLab Logo",
|
||||
:src => image_path('logo.svg')}
|
||||
%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
|
||||
%h1
|
||||
404
|
||||
.container
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
- content_for(:title, 'Not Found')
|
||||
%img{:alt => "GitLab Logo",
|
||||
:src => image_path('logo.svg')}
|
||||
%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
|
||||
%h1
|
||||
404
|
||||
.container
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
- content_for(:title, 'Auth Error')
|
||||
%img{:alt => "GitLab Logo",
|
||||
:src => image_path('logo.svg')}
|
||||
%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
|
||||
%h1
|
||||
422
|
||||
.container
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
%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)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
%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)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
%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)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
%div{xmlns: "http://www.w3.org/1999/xhtml"}
|
||||
%div{ xmlns: "http://www.w3.org/1999/xhtml" }
|
||||
- event.commits.first(15).each do |commit|
|
||||
%p
|
||||
%strong= commit[:author][:name]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.event-title
|
||||
%span.author_name= link_to_author event
|
||||
%span{class: event.action_name}
|
||||
%span{ class: event.action_name }
|
||||
- if event.target
|
||||
= event.action_name
|
||||
%strong
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.event-title
|
||||
%span.author_name= link_to_author event
|
||||
%span{class: event.action_name}
|
||||
%span{ class: event.action_name }
|
||||
= event_action_name(event)
|
||||
|
||||
- if event.project
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
.pull-right
|
||||
.dropdown.inline
|
||||
%button.dropdown-toggle{type: 'button', 'data-toggle' => 'dropdown'}
|
||||
%button.dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
|
||||
%span.light
|
||||
- if @sort.present?
|
||||
= sort_options_hash[@sort]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- if current_user
|
||||
.dropdown
|
||||
%button.dropdown-toggle{href: '#', "data-toggle" => "dropdown"}
|
||||
%button.dropdown-toggle{ href: '#', "data-toggle" => "dropdown" }
|
||||
= icon('globe')
|
||||
%span.light Visibility:
|
||||
- if params[:visibility_level].present?
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
- if @tags.present?
|
||||
.dropdown
|
||||
%button.dropdown-toggle{href: '#', "data-toggle" => "dropdown"}
|
||||
%button.dropdown-toggle{ href: '#', "data-toggle" => "dropdown" }
|
||||
= icon('tags')
|
||||
%span.light Tags:
|
||||
- if params[:tag].present?
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
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')
|
||||
%br/
|
||||
%span.descr This setting can be overridden in each project.
|
||||
%span.descr This setting can be overridden in each project.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
= render 'shared/members/access_request_buttons', source: @group
|
||||
= render 'shared/notifications/button', notification_setting: @notification_setting
|
||||
|
||||
%div.groups-header{ class: container_class }
|
||||
.groups-header{ class: container_class }
|
||||
.top-area
|
||||
%ul.nav-links
|
||||
%li.active
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#modal-shortcuts.modal{tabindex: -1}
|
||||
#modal-shortcuts.modal{ tabindex: -1 }
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%a.close{href: "#", "data-dismiss" => "modal"} ×
|
||||
%a.close{ href: "#", "data-dismiss" => "modal" } ×
|
||||
%h4
|
||||
Keyboard Shortcuts
|
||||
%small
|
||||
|
@ -82,7 +82,7 @@
|
|||
|
||||
.col-lg-4
|
||||
%table.shortcut-mappings
|
||||
%tbody{ class: 'hidden-shortcut project', style: 'display:none' }
|
||||
%tbody.hidden-shortcut.project{ style: 'display:none' }
|
||||
%tr
|
||||
%th
|
||||
%th Global Dashboard
|
||||
|
@ -190,7 +190,7 @@
|
|||
%td New issue
|
||||
.col-lg-4
|
||||
%table.shortcut-mappings
|
||||
%tbody{ class: 'hidden-shortcut network', style: 'display:none' }
|
||||
%tbody.hidden-shortcut.network{ style: 'display:none' }
|
||||
%tr
|
||||
%th
|
||||
%th Network Graph
|
||||
|
@ -240,7 +240,7 @@
|
|||
.key
|
||||
shift j
|
||||
%td Scroll to bottom
|
||||
%tbody{ class: 'hidden-shortcut issues', style: 'display:none' }
|
||||
%tbody.hidden-shortcut.issues{ style: 'display:none' }
|
||||
%tr
|
||||
%th
|
||||
%th Issues
|
||||
|
@ -264,7 +264,7 @@
|
|||
%td.shortcut
|
||||
.key l
|
||||
%td Change Label
|
||||
%tbody{ class: 'hidden-shortcut merge_requests', style: 'display:none' }
|
||||
%tbody.hidden-shortcut.merge_requests{ style: 'display:none' }
|
||||
%tr
|
||||
%th
|
||||
%th Merge Requests
|
||||
|
|
|
@ -182,7 +182,7 @@
|
|||
.nav-controls
|
||||
= text_field_tag 'sample', nil, class: 'form-control'
|
||||
.dropdown
|
||||
%button.dropdown-menu-toggle{type: 'button', 'data-toggle' => 'dropdown'}
|
||||
%button.dropdown-menu-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
|
||||
%span Sort by name
|
||||
= icon('chevron-down')
|
||||
%ul.dropdown-menu
|
||||
|
@ -205,121 +205,121 @@
|
|||
%h2#buttons Buttons
|
||||
|
||||
.example
|
||||
%button.btn.btn-default{:type => "button"} Default
|
||||
%button.btn.btn-gray{:type => "button"} Gray
|
||||
%button.btn.btn-primary{:type => "button"} Primary
|
||||
%button.btn.btn-success{:type => "button"} Success
|
||||
%button.btn.btn-info{:type => "button"} Info
|
||||
%button.btn.btn-warning{:type => "button"} Warning
|
||||
%button.btn.btn-danger{:type => "button"} Danger
|
||||
%button.btn.btn-link{:type => "button"} Link
|
||||
%button.btn.btn-default{ :type => "button" } Default
|
||||
%button.btn.btn-gray{ :type => "button" } Gray
|
||||
%button.btn.btn-primary{ :type => "button" } Primary
|
||||
%button.btn.btn-success{ :type => "button" } Success
|
||||
%button.btn.btn-info{ :type => "button" } Info
|
||||
%button.btn.btn-warning{ :type => "button" } Warning
|
||||
%button.btn.btn-danger{ :type => "button" } Danger
|
||||
%button.btn.btn-link{ :type => "button" } Link
|
||||
|
||||
%h2#dropdowns Dropdowns
|
||||
|
||||
.example
|
||||
.clearfix
|
||||
.dropdown.inline.pull-left
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown
|
||||
= icon('chevron-down')
|
||||
%ul.dropdown-menu
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
.dropdown.inline.pull-right
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown
|
||||
= icon('chevron-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
.example
|
||||
%div
|
||||
.dropdown.inline
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown
|
||||
= icon('chevron-down')
|
||||
%ul.dropdown-menu.dropdown-menu-selectable
|
||||
%li
|
||||
%a.is-active{href: "#"}
|
||||
%a.is-active{ href: "#" }
|
||||
Dropdown Option
|
||||
.example
|
||||
%div
|
||||
.dropdown.inline
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown
|
||||
= icon('chevron-down')
|
||||
.dropdown-menu.dropdown-select.dropdown-menu-selectable
|
||||
.dropdown-title
|
||||
%span Dropdown Title
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Filter results"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Filter results" }
|
||||
= icon('search')
|
||||
.dropdown-content
|
||||
%ul
|
||||
%li
|
||||
%a.is-active{href: "#"}
|
||||
%a.is-active{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li.divider
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
.dropdown-footer
|
||||
%strong Tip:
|
||||
If an author is not a member of this project, you can still filter by his name while using the search field.
|
||||
.dropdown.inline
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown loading
|
||||
= icon('chevron-down')
|
||||
.dropdown-menu.dropdown-select.dropdown-menu-selectable.is-loading
|
||||
.dropdown-title
|
||||
%span Dropdown Title
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Filter results"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Filter results" }
|
||||
= icon('search')
|
||||
.dropdown-content
|
||||
%ul
|
||||
%li
|
||||
%a.is-active{href: "#"}
|
||||
%a.is-active{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li.divider
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
%li
|
||||
%a{href: "#"}
|
||||
%a{ href: "#" }
|
||||
Dropdown Option
|
||||
.dropdown-footer
|
||||
%strong Tip:
|
||||
|
@ -330,21 +330,21 @@
|
|||
.example
|
||||
%div
|
||||
.dropdown.inline
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: {toggle: 'dropdown' } }
|
||||
Dropdown user
|
||||
= icon('chevron-down')
|
||||
.dropdown-menu.dropdown-select.dropdown-menu-selectable.dropdown-menu-user
|
||||
.dropdown-title
|
||||
%span Dropdown Title
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Filter results"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Filter results" }
|
||||
= icon('search')
|
||||
.dropdown-content
|
||||
%ul
|
||||
%li
|
||||
%a.dropdown-menu-user-link.is-active{href: "#"}
|
||||
%a.dropdown-menu-user-link.is-active{ href: "#" }
|
||||
= link_to_member_avatar(@user, size: 30)
|
||||
%strong.dropdown-menu-user-full-name
|
||||
= @user.name
|
||||
|
@ -354,24 +354,24 @@
|
|||
.example
|
||||
%div
|
||||
.dropdown.inline
|
||||
%button.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Dropdown page 2
|
||||
= icon('chevron-down')
|
||||
.dropdown-menu.dropdown-select.dropdown-menu-selectable.dropdown-menu-user.dropdown-menu-paging.is-page-two
|
||||
.dropdown-page-one
|
||||
.dropdown-title
|
||||
%button.dropdown-title-button.dropdown-menu-back{aria: {label: "Go back"}}
|
||||
%button.dropdown-title-button.dropdown-menu-back{ aria: { label: "Go back" } }
|
||||
= icon('arrow-left')
|
||||
%span Dropdown Title
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Filter results"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Filter results" }
|
||||
= icon('search')
|
||||
.dropdown-content
|
||||
%ul
|
||||
%li
|
||||
%a.dropdown-menu-user-link.is-active{href: "#"}
|
||||
%a.dropdown-menu-user-link.is-active{ href: "#" }
|
||||
= link_to_member_avatar(@user, size: 30)
|
||||
%strong.dropdown-menu-user-full-name
|
||||
= @user.name
|
||||
|
@ -379,13 +379,13 @@
|
|||
= @user.to_reference
|
||||
.dropdown-page-two
|
||||
.dropdown-title
|
||||
%button.dropdown-title-button.dropdown-menu-back{aria: {label: "Go back"}}
|
||||
%button.dropdown-title-button.dropdown-menu-back{ aria: { label: "Go back" } }
|
||||
= icon('arrow-left')
|
||||
%span Create label
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Name new label"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Name new label" }
|
||||
.dropdown-content
|
||||
%button.btn.btn-primary
|
||||
Create
|
||||
|
@ -393,16 +393,16 @@
|
|||
.example
|
||||
%div
|
||||
.dropdown.inline
|
||||
%button#js-project-dropdown.dropdown-menu-toggle{type: 'button', data: {toggle: 'dropdown'}}
|
||||
%button#js-project-dropdown.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown' } }
|
||||
Projects
|
||||
= icon('chevron-down')
|
||||
.dropdown-menu.dropdown-select.dropdown-menu-selectable
|
||||
.dropdown-title
|
||||
%span Go to project
|
||||
%button.dropdown-title-button.dropdown-menu-close{aria: {label: "Close"}}
|
||||
%button.dropdown-title-button.dropdown-menu-close{ aria: { label: "Close" } }
|
||||
= icon('times')
|
||||
.dropdown-input
|
||||
%input.dropdown-input-field{type: "search", placeholder: "Filter results"}
|
||||
%input.dropdown-input-field{ type: "search", placeholder: "Filter results" }
|
||||
= icon('search')
|
||||
.dropdown-content
|
||||
.dropdown-loading
|
||||
|
@ -486,22 +486,22 @@
|
|||
.example
|
||||
%form.form-horizontal
|
||||
.form-group
|
||||
%label.col-sm-2.control-label{:for => "inputEmail3"} Email
|
||||
%label.col-sm-2.control-label{ :for => "inputEmail3" } Email
|
||||
.col-sm-10
|
||||
%input#inputEmail3.form-control{:placeholder => "Email", :type => "email"}/
|
||||
%input#inputEmail3.form-control{ :placeholder => "Email", :type => "email" }/
|
||||
.form-group
|
||||
%label.col-sm-2.control-label{:for => "inputPassword3"} Password
|
||||
%label.col-sm-2.control-label{ :for => "inputPassword3" } Password
|
||||
.col-sm-10
|
||||
%input#inputPassword3.form-control{:placeholder => "Password", :type => "password"}/
|
||||
%input#inputPassword3.form-control{ :placeholder => "Password", :type => "password" }/
|
||||
.form-group
|
||||
.col-sm-offset-2.col-sm-10
|
||||
.checkbox
|
||||
%label
|
||||
%input{:type => "checkbox"}/
|
||||
%input{ :type => "checkbox" }/
|
||||
Remember me
|
||||
.form-group
|
||||
.col-sm-offset-2.col-sm-10
|
||||
%button.btn.btn-default{:type => "submit"} Sign in
|
||||
%button.btn.btn-default{ :type => "submit" } Sign in
|
||||
|
||||
.lead
|
||||
Form when label rendered above input
|
||||
|
@ -510,16 +510,16 @@
|
|||
.example
|
||||
%form
|
||||
.form-group
|
||||
%label{:for => "exampleInputEmail1"} Email address
|
||||
%input#exampleInputEmail1.form-control{:placeholder => "Enter email", :type => "email"}/
|
||||
%label{ :for => "exampleInputEmail1" } Email address
|
||||
%input#exampleInputEmail1.form-control{ :placeholder => "Enter email", :type => "email" }/
|
||||
.form-group
|
||||
%label{:for => "exampleInputPassword1"} Password
|
||||
%input#exampleInputPassword1.form-control{:placeholder => "Password", :type => "password"}/
|
||||
%label{ :for => "exampleInputPassword1" } Password
|
||||
%input#exampleInputPassword1.form-control{ :placeholder => "Password", :type => "password" }/
|
||||
.checkbox
|
||||
%label
|
||||
%input{:type => "checkbox"}/
|
||||
%input{ :type => "checkbox" }/
|
||||
Remember me
|
||||
%button.btn.btn-default{:type => "submit"} Sign in
|
||||
%button.btn.btn-default{ :type => "submit" } Sign in
|
||||
|
||||
%h2#file File
|
||||
%h4
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
%th Status
|
||||
%tbody
|
||||
- @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
|
||||
= provider_project_link(provider, project.import_source)
|
||||
%td
|
||||
|
@ -38,7 +38,7 @@
|
|||
= project.human_import_status_name
|
||||
|
||||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.id}"}
|
||||
%tr{ id: "repo_#{repo.id}" }
|
||||
%td
|
||||
= provider_project_link(provider, repo.full_name)
|
||||
%td.import-target
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
%th Status
|
||||
%tbody
|
||||
- @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
|
||||
= link_to project.import_source, "https://bitbucket.org/#{project.import_source}", target: '_blank'
|
||||
%td
|
||||
|
@ -48,7 +48,7 @@
|
|||
= project.human_import_status_name
|
||||
|
||||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.owner}___#{repo.slug}"}
|
||||
%tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
|
||||
%td
|
||||
= link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: "_blank"
|
||||
%td.import-target
|
||||
|
@ -68,7 +68,7 @@
|
|||
Import
|
||||
= icon('spinner spin', class: 'loading-icon')
|
||||
- @incompatible_repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.owner}___#{repo.slug}"}
|
||||
%tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
|
||||
%td
|
||||
= link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: '_blank'
|
||||
%td.import-target
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
%th Status
|
||||
%tbody
|
||||
- @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
|
||||
= project.import_source
|
||||
%td
|
||||
|
@ -46,7 +46,7 @@
|
|||
= project.human_import_status_name
|
||||
|
||||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.id}"}
|
||||
%tr{ id: "repo_#{repo.id}" }
|
||||
%td
|
||||
= repo.name
|
||||
%td.import-target
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
%th Status
|
||||
%tbody
|
||||
- @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
|
||||
= link_to project.import_source, "https://gitlab.com/#{project.import_source}", target: "_blank"
|
||||
%td
|
||||
|
@ -41,7 +41,7 @@
|
|||
= project.human_import_status_name
|
||||
|
||||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo["id"]}"}
|
||||
%tr{ id: "repo_#{repo["id"]}" }
|
||||
%td
|
||||
= link_to repo["path_with_namespace"], "https://gitlab.com/#{repo["path_with_namespace"]}", target: "_blank"
|
||||
%td.import-target
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
%p
|
||||
Upload <code>GoogleCodeProjectHosting.json</code> here:
|
||||
%p
|
||||
%input{type: "file", name: "dump_file", id: "dump_file"}
|
||||
%input{ type: "file", name: "dump_file", id: "dump_file" }
|
||||
%li
|
||||
%p
|
||||
Do you want to customize how Google Code email addresses and usernames are imported into GitLab?
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
%th Status
|
||||
%tbody
|
||||
- @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
|
||||
= link_to project.import_source, "https://code.google.com/p/#{project.import_source}", target: "_blank"
|
||||
%td
|
||||
|
@ -51,7 +51,7 @@
|
|||
= project.human_import_status_name
|
||||
|
||||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.id}"}
|
||||
%tr{ id: "repo_#{repo.id}" }
|
||||
%td
|
||||
= link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank"
|
||||
%td.import-target
|
||||
|
@ -61,7 +61,7 @@
|
|||
Import
|
||||
= icon("spinner spin", class: "loading-icon")
|
||||
- @incompatible_repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.id}"}
|
||||
%tr{ id: "repo_#{repo.id}" }
|
||||
%td
|
||||
= link_to repo.name, "https://code.google.com/p/#{repo.name}", target: "_blank"
|
||||
%td.import-target
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
-# per_page: number of items to fetch per page
|
||||
-# remote: data-remote
|
||||
- if current_page.last?
|
||||
%li{ class: "next disabled" }
|
||||
%li.next.disabled
|
||||
%span= raw(t 'views.pagination.next')
|
||||
- else
|
||||
%li{ class: "next" }
|
||||
%li.next
|
||||
= link_to raw(t 'views.pagination.next'), url, rel: 'next', remote: remote
|
||||
|
|
|
@ -6,5 +6,5 @@
|
|||
-# total_pages: total number of pages
|
||||
-# per_page: number of items to fetch per page
|
||||
-# remote: data-remote
|
||||
%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}
|
||||
%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 }
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-# remote: data-remote
|
||||
-# paginator: the paginator that renders the pagination tags inside
|
||||
= paginator.render do
|
||||
%div.gl-pagination
|
||||
.gl-pagination
|
||||
%ul.pagination.clearfix
|
||||
- unless current_page.first?
|
||||
= first_page_tag unless total_pages < 5 # As kaminari will always show the first 5 pages
|
||||
|
@ -19,4 +19,3 @@
|
|||
= next_page_tag
|
||||
- unless current_page.last?
|
||||
= last_page_tag unless total_pages < 5
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
-# per_page: number of items to fetch per page
|
||||
-# remote: data-remote
|
||||
- if current_page.first?
|
||||
%li{ class: "prev disabled" }
|
||||
%li.prev.disabled
|
||||
%span= raw(t 'views.pagination.previous')
|
||||
- else
|
||||
%li{ class: "prev" }
|
||||
%li.prev
|
||||
= link_to raw(t 'views.pagination.previous'), url, rel: 'prev', remote: remote
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
- page_description brand_title unless page_description
|
||||
|
||||
- site_name = "GitLab"
|
||||
%head{prefix: "og: http://ogp.me/ns#"}
|
||||
%meta{charset: "utf-8"}
|
||||
%meta{'http-equiv' => 'X-UA-Compatible', content: 'IE=edge'}
|
||||
%head{ prefix: "og: http://ogp.me/ns#" }
|
||||
%meta{ charset: "utf-8" }
|
||||
%meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' }
|
||||
|
||||
-# Open Graph - http://ogp.me/
|
||||
%meta{property: 'og:type', content: "object"}
|
||||
%meta{property: 'og:site_name', content: site_name}
|
||||
%meta{property: 'og:title', content: page_title}
|
||||
%meta{property: 'og:description', content: page_description}
|
||||
%meta{property: 'og:image', content: page_image}
|
||||
%meta{property: 'og:url', content: request.base_url + request.fullpath}
|
||||
%meta{ property: 'og:type', content: "object" }
|
||||
%meta{ property: 'og:site_name', content: site_name }
|
||||
%meta{ property: 'og:title', content: page_title }
|
||||
%meta{ property: 'og:description', content: page_description }
|
||||
%meta{ property: 'og:image', content: page_image }
|
||||
%meta{ property: 'og:url', content: request.base_url + request.fullpath }
|
||||
|
||||
-# Twitter Card - https://dev.twitter.com/cards/types/summary
|
||||
%meta{property: 'twitter:card', content: "summary"}
|
||||
%meta{property: 'twitter:title', content: page_title}
|
||||
%meta{property: 'twitter:description', content: page_description}
|
||||
%meta{property: 'twitter:image', content: page_image}
|
||||
%meta{ property: 'twitter:card', content: "summary" }
|
||||
%meta{ property: 'twitter:title', content: page_title }
|
||||
%meta{ property: 'twitter:description', content: page_description }
|
||||
%meta{ property: 'twitter:image', content: page_image }
|
||||
= page_card_meta_tags
|
||||
|
||||
%title= page_title(site_name)
|
||||
%meta{name: "description", content: page_description}
|
||||
%meta{ name: "description", content: page_description }
|
||||
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
|
||||
|
@ -36,20 +36,20 @@
|
|||
= csrf_meta_tags
|
||||
|
||||
- unless browser.safari?
|
||||
%meta{name: 'referrer', content: 'origin-when-cross-origin'}
|
||||
%meta{name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1'}
|
||||
%meta{name: 'theme-color', content: '#474D57'}
|
||||
%meta{ name: 'referrer', content: 'origin-when-cross-origin' }
|
||||
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1' }
|
||||
%meta{ name: 'theme-color', content: '#474D57' }
|
||||
|
||||
-# Apple Safari/iOS home screen icons
|
||||
= 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-iphone-retina.png', rel: 'apple-touch-icon', sizes: '120x120'
|
||||
= 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
|
||||
%meta{name: 'msapplication-TileImage', content: image_path('msapplication-tile.png')}
|
||||
%meta{name: 'msapplication-TileColor', content: '#30353E'}
|
||||
%meta{ name: 'msapplication-TileImage', content: image_path('msapplication-tile.png') }
|
||||
%meta{ name: 'msapplication-TileColor', content: '#30353E' }
|
||||
|
||||
= yield :meta_tags
|
||||
|
||||
|
|
|
@ -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)) }
|
||||
- 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) }
|
||||
.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|
|
||||
.search-input-container
|
||||
- if label.present?
|
||||
|
@ -44,4 +44,4 @@
|
|||
= hidden_field_tag :snippets, true
|
||||
= hidden_field_tag :repository_ref, @ref
|
||||
= 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 }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
!!! 5
|
||||
%html{ lang: "en", class: "#{page_class}" }
|
||||
= 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
|
||||
|
||||
-# Ideally this would be inside the head, but turbolinks only evaluates page-specific JS in the body.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
!!! 5
|
||||
%html{ lang: "en", class: "devise-layout-html"}
|
||||
%html.devise-layout-html
|
||||
= 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
|
||||
= Gon::Base.render_data
|
||||
= render "layouts/header/empty"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
!!! 5
|
||||
%html{ lang: "en"}
|
||||
%html{ lang: "en" }
|
||||
= render "layouts/head"
|
||||
%body.ui_charcoal.login-page.application.navless
|
||||
= Gon::Base.render_data
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
!!! 5
|
||||
%html
|
||||
%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'
|
||||
|
||||
%body
|
||||
|
@ -9,7 +9,7 @@
|
|||
%tr
|
||||
%td
|
||||
%table#header
|
||||
%td{valign: "top"}
|
||||
%td{ valign: "top" }
|
||||
= image_tag('mailers/gitlab_header_logo.png', id: 'logo', alt: 'GitLab Wordmark')
|
||||
|
||||
%table#body
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
!!! 5
|
||||
%html{ lang: "en"}
|
||||
%html{ lang: "en" }
|
||||
%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)
|
||||
:css
|
||||
body {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
%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
|
||||
%div{ class: "container-fluid" }
|
||||
%a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
|
||||
.container-fluid
|
||||
.header-content
|
||||
%button.side-nav-toggle{ type: 'button', "aria-label" => "Toggle global navigation" }
|
||||
%span.sr-only Toggle navigation
|
||||
= icon('bars')
|
||||
%button.navbar-toggle{type: 'button'}
|
||||
%button.navbar-toggle{ type: 'button' }
|
||||
%span.sr-only Toggle navigation
|
||||
= icon('ellipsis-v')
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.controls
|
||||
.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('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
- if can_admin_group || can_edit
|
||||
.controls
|
||||
.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('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- if current_user
|
||||
.controls
|
||||
.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('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
%html{lang: "en"}
|
||||
%html{ lang: "en" }
|
||||
%head
|
||||
%meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
|
||||
%meta{ content: "text/html; charset=utf-8", "http-equiv" => "Content-Type" }
|
||||
%title
|
||||
GitLab
|
||||
= stylesheet_link_tag 'notify'
|
||||
= yield :head
|
||||
%body
|
||||
%div.content
|
||||
.content
|
||||
= yield
|
||||
%div.footer{style: "margin-top: 10px;"}
|
||||
.footer{ style: "margin-top: 10px;" }
|
||||
%p
|
||||
—
|
||||
%br
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- 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)
|
||||
|
||||
%h3
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- 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)
|
||||
|
||||
%h3
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
%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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- if current_application_settings.email_author_in_body
|
||||
%div
|
||||
#{link_to @issue.author_name, user_url(@issue.author)} wrote:
|
||||
-if @issue.description
|
||||
- if @issue.description
|
||||
= markdown(@issue.description, pipeline: :email, author: @issue.author)
|
||||
|
||||
- if @issue.assignee_id.present?
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
- if current_application_settings.email_author_in_body
|
||||
%div
|
||||
#{link_to @issue.author_name, user_url(@issue.author)} wrote:
|
||||
-if @issue.description
|
||||
- if @issue.description
|
||||
= markdown(@issue.description, pipeline: :email, author: @issue.author)
|
||||
|
||||
- if @issue.assignee_id.present?
|
||||
|
|
|
@ -11,5 +11,5 @@
|
|||
%p
|
||||
Assignee: #{@merge_request.author_name} → #{@merge_request.assignee_name}
|
||||
|
||||
-if @merge_request.description
|
||||
- if @merge_request.description
|
||||
= markdown(@merge_request.description, pipeline: :email, author: @merge_request.author)
|
||||
|
|
|
@ -8,5 +8,5 @@
|
|||
%p
|
||||
Assignee: #{@merge_request.author_name} → #{@merge_request.assignee_name}
|
||||
|
||||
-if @merge_request.description
|
||||
- if @merge_request.description
|
||||
= markdown(@merge_request.description, pipeline: :email, author: @merge_request.author)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
%html{lang: "en"}
|
||||
%html{ lang: "en" }
|
||||
%head
|
||||
%meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
|
||||
%meta{content: "width=device-width, initial-scale=1", name: "viewport"}/
|
||||
%meta{content: "IE=edge", "http-equiv" => "X-UA-Compatible"}/
|
||||
%meta{ content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type" }/
|
||||
%meta{ content: "width=device-width, initial-scale=1", name: "viewport" }/
|
||||
%meta{ content: "IE=edge", "http-equiv" => "X-UA-Compatible" }/
|
||||
%title= message.subject
|
||||
:css
|
||||
/* CLIENT-SPECIFIC STYLES */
|
||||
|
@ -41,139 +41,139 @@
|
|||
padding-right: 10px !important;
|
||||
}
|
||||
}
|
||||
%body{style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;height:100%;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;"}
|
||||
%table#body{border: "0", cellpadding: "0", cellspacing: "0", style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;"}
|
||||
%body{ style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;height:100%;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;" }
|
||||
%table#body{ border: "0", cellpadding: "0", cellspacing: "0", style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;" }
|
||||
%tbody
|
||||
%tr.line
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#6b4fbb;height:4px;font-size:4px;line-height:4px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#6b4fbb;height:4px;font-size:4px;line-height:4px;" }
|
||||
%tr.header
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;"}
|
||||
%img{alt: "GitLab", height: "50", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo.gif'), width: "55"}/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;" }
|
||||
%img{ alt: "GitLab", height: "50", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo.gif'), width: "55" }/
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;"}
|
||||
%table.wrapper{border: "0", cellpadding: "0", cellspacing: "0", style: "width:640px;margin:0 auto;border-collapse:separate;border-spacing:0;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;" }
|
||||
%table.wrapper{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:640px;margin:0 auto;border-collapse:separate;border-spacing:0;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;padding:18px 25px;border:1px solid #ededed;border-radius:3px;overflow:hidden;"}
|
||||
%table.content{border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;padding:18px 25px;border:1px solid #ededed;border-radius:3px;overflow:hidden;" }
|
||||
%table.content{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;" }
|
||||
%tbody
|
||||
%tr.alert
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:10px;border-radius:3px;font-size:14px;line-height:1.3;text-align:center;overflow:hidden;background-color:#d22f57;color:#ffffff;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;margin:0 auto;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:10px;border-radius:3px;font-size:14px;line-height:1.3;text-align:center;overflow:hidden;background-color:#d22f57;color:#ffffff;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;margin:0 auto;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;padding-right:5px;"}
|
||||
%img{alt: "x", height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-x-red-inverted.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;padding-right:5px;" }
|
||||
%img{ alt: "x", height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-x-red-inverted.gif'), style: "display:block;", width: "13" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;" }
|
||||
Your pipeline has failed.
|
||||
%tr.spacer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;" }
|
||||
|
||||
%tr.section
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;"}
|
||||
%table.info{border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;" }
|
||||
%table.info{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;"} Project
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;" } Project
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;" }
|
||||
- namespace_name = @project.group ? @project.group.name : @project.namespace.owner.name
|
||||
- namespace_url = @project.group ? group_url(@project.group) : user_url(@project.namespace.owner)
|
||||
%a.muted{href: namespace_url, style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: namespace_url, style: "color:#333333;text-decoration:none;" }
|
||||
= namespace_name
|
||||
\/
|
||||
%a.muted{href: project_url(@project), style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: project_url(@project), style: "color:#333333;text-decoration:none;" }
|
||||
= @project.name
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Branch
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Branch
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img{height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-branch-gray.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%a.muted{href: commits_url(@pipeline), style: "color:#333333;text-decoration:none;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img{ height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-branch-gray.gif'), style: "display:block;", width: "13", alt: "Branch icon" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
%a.muted{ href: commits_url(@pipeline), style: "color:#333333;text-decoration:none;" }
|
||||
= @pipeline.ref
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Commit
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Commit
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img{height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-commit-gray.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%a{href: commit_url(@pipeline), style: "color:#3777b0;text-decoration:none;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img{ height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-commit-gray.gif'), style: "display:block;", width: "13", alt: "Commit icon" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
%a{ href: commit_url(@pipeline), style: "color:#3777b0;text-decoration:none;" }
|
||||
= @pipeline.short_sha
|
||||
- if @merge_request
|
||||
in
|
||||
%a{href: merge_request_url(@merge_request), style: "color:#3777b0;text-decoration:none;"}
|
||||
%a{ href: merge_request_url(@merge_request), style: "color:#3777b0;text-decoration:none;" }
|
||||
= @merge_request.to_reference
|
||||
.commit{style: "color:#5c5c5c;font-weight:300;"}
|
||||
.commit{ style: "color:#5c5c5c;font-weight:300;" }
|
||||
= @pipeline.git_commit_message.truncate(50)
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Author
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Author
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
- commit = @pipeline.commit
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img.avatar{height: "24", src: avatar_icon(commit.author || commit.author_email, 24), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img.avatar{ height: "24", src: avatar_icon(commit.author || commit.author_email, 24), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "Avatar" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
- if commit.author
|
||||
%a.muted{href: user_url(commit.author), style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" }
|
||||
= commit.author.name
|
||||
- else
|
||||
%span
|
||||
= commit.author_name
|
||||
%tr.spacer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;" }
|
||||
|
||||
- failed = @pipeline.statuses.latest.failed
|
||||
%tr.pre-section
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#333333;font-size:15px;font-weight:400;line-height:1.4;padding:15px 0;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#333333;font-size:15px;font-weight:400;line-height:1.4;padding:15px 0;" }
|
||||
Pipeline
|
||||
%a{href: pipeline_url(@pipeline), style: "color:#3777b0;text-decoration:none;"}
|
||||
%a{ href: pipeline_url(@pipeline), style: "color:#3777b0;text-decoration:none;" }
|
||||
= "\##{@pipeline.id}"
|
||||
had
|
||||
= failed.size
|
||||
failed
|
||||
= "#{'build'.pluralize(failed.size)}."
|
||||
%tr.warning
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;border:1px solid #ededed;border-bottom:0;border-radius:3px 3px 0 0;overflow:hidden;background-color:#fdf4f6;color:#d22852;font-size:14px;line-height:1.4;text-align:center;padding:8px 15px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;border:1px solid #ededed;border-bottom:0;border-radius:3px 3px 0 0;overflow:hidden;background-color:#fdf4f6;color:#d22852;font-size:14px;line-height:1.4;text-align:center;padding:8px 15px;" }
|
||||
Logs may contain sensitive data. Please consider before forwarding this email.
|
||||
%tr.section
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;border-top:0;border-radius:0 0 3px 3px;"}
|
||||
%table.builds{border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;border-top:0;border-radius:0 0 3px 3px;" }
|
||||
%table.builds{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:collapse;" }
|
||||
%tbody
|
||||
- failed.each do |build|
|
||||
%tr.build-state
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:20px 0;color:#8c8c8c;font-weight:500;font-size:15px;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:20px 0;color:#8c8c8c;font-weight:500;font-size:15px;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#8c8c8c;font-weight:500;font-size:15px;vertical-align:middle;padding-right:5px;"}
|
||||
%img{alt: "x", height: "10", src: image_url('mailers/ci_pipeline_notif_v1/icon-x-red.gif'), style: "display:block;", width: "10"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#8c8c8c;font-weight:500;font-size:15px;vertical-align:middle;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#8c8c8c;font-weight:500;font-size:15px;vertical-align:middle;padding-right:5px;" }
|
||||
%img{ alt: "x", height: "10", src: image_url('mailers/ci_pipeline_notif_v1/icon-x-red.gif'), style: "display:block;", width: "10" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#8c8c8c;font-weight:500;font-size:15px;vertical-align:middle;" }
|
||||
= build.stage
|
||||
%td{align: "right", style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:20px 0;color:#8c8c8c;font-weight:500;font-size:15px;"}
|
||||
%td{ align: "right", style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:20px 0;color:#8c8c8c;font-weight:500;font-size:15px;" }
|
||||
= render "notify/links/#{build.to_partial_path}", pipeline: @pipeline, build: build
|
||||
%tr.build-log
|
||||
- if build.has_trace?
|
||||
%td{colspan: "2", style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 0 15px;"}
|
||||
%pre{style: "font-family:Monaco,'Lucida Console','Courier New',Courier,monospace;background-color:#fafafa;border-radius:3px;overflow:hidden;white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.4;padding:12px;color:#333333;margin:0;"}
|
||||
%td{ colspan: "2", style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 0 15px;" }
|
||||
%pre{ style: "font-family:Monaco,'Lucida Console','Courier New',Courier,monospace;background-color:#fafafa;border-radius:3px;overflow:hidden;white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.4;padding:12px;color:#333333;margin:0;" }
|
||||
= build.trace_html(last_lines: 10).html_safe
|
||||
- else
|
||||
%td{colspan: "2"}
|
||||
%td{ colspan: "2" }
|
||||
%tr.footer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;"}
|
||||
%img{alt: "GitLab", height: "33", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif'), style: "display:block;margin:0 auto 1em;", width: "90"}/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;" }
|
||||
%img{ alt: "GitLab", height: "33", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif'), style: "display:block;margin:0 auto 1em;", width: "90" }/
|
||||
%div
|
||||
%a{href: profile_notifications_url, style: "color:#3777b0;text-decoration:none;"} Manage all notifications
|
||||
%a{ href: profile_notifications_url, style: "color:#3777b0;text-decoration:none;" } Manage all notifications
|
||||
·
|
||||
%a{href: help_url, style: "color:#3777b0;text-decoration:none;"} Help
|
||||
%a{ href: help_url, style: "color:#3777b0;text-decoration:none;" } Help
|
||||
%div
|
||||
You're receiving this email because of your account on
|
||||
= succeed "." do
|
||||
%a{href: root_url, style: "color:#3777b0;text-decoration:none;"}= Gitlab.config.gitlab.host
|
||||
%a{ href: root_url, style: "color:#3777b0;text-decoration:none;" }= Gitlab.config.gitlab.host
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
%html{lang: "en"}
|
||||
%html{ lang: "en" }
|
||||
%head
|
||||
%meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
|
||||
%meta{content: "width=device-width, initial-scale=1", name: "viewport"}/
|
||||
%meta{content: "IE=edge", "http-equiv" => "X-UA-Compatible"}/
|
||||
%meta{ content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type" }/
|
||||
%meta{ content: "width=device-width, initial-scale=1", name: "viewport" }/
|
||||
%meta{ content: "IE=edge", "http-equiv" => "X-UA-Compatible" }/
|
||||
%title= message.subject
|
||||
:css
|
||||
/* CLIENT-SPECIFIC STYLES */
|
||||
|
@ -41,114 +41,114 @@
|
|||
padding-right: 10px !important;
|
||||
}
|
||||
}
|
||||
%body{style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;height:100%;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;"}
|
||||
%table#body{border: "0", cellpadding: "0", cellspacing: "0", style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;"}
|
||||
%body{ style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;height:100%;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;" }
|
||||
%table#body{ border: "0", cellpadding: "0", cellspacing: "0", style: "background-color:#fafafa;margin:0;padding:0;text-align:center;min-width:640px;width:100%;" }
|
||||
%tbody
|
||||
%tr.line
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#6b4fbb;height:4px;font-size:4px;line-height:4px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#6b4fbb;height:4px;font-size:4px;line-height:4px;" }
|
||||
%tr.header
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;"}
|
||||
%img{alt: "GitLab", height: "50", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo.gif'), width: "55"}/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;" }
|
||||
%img{ alt: "GitLab", height: "50", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo.gif'), width: "55" }/
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;"}
|
||||
%table.wrapper{border: "0", cellpadding: "0", cellspacing: "0", style: "width:640px;margin:0 auto;border-collapse:separate;border-spacing:0;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;" }
|
||||
%table.wrapper{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:640px;margin:0 auto;border-collapse:separate;border-spacing:0;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;padding:18px 25px;border:1px solid #ededed;border-radius:3px;overflow:hidden;"}
|
||||
%table.content{border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background-color:#ffffff;text-align:left;padding:18px 25px;border:1px solid #ededed;border-radius:3px;overflow:hidden;" }
|
||||
%table.content{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;border-collapse:separate;border-spacing:0;" }
|
||||
%tbody
|
||||
%tr.success
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:10px;border-radius:3px;font-size:14px;line-height:1.3;text-align:center;overflow:hidden;color:#ffffff;background-color:#31af64;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;margin:0 auto;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:10px;border-radius:3px;font-size:14px;line-height:1.3;text-align:center;overflow:hidden;color:#ffffff;background-color:#31af64;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;margin:0 auto;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;padding-right:5px;"}
|
||||
%img{alt: "✓", height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-check-green-inverted.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;padding-right:5px;" }
|
||||
%img{ alt: "✓", height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-check-green-inverted.gif'), style: "display:block;", width: "13" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#ffffff;text-align:center;" }
|
||||
Your pipeline has passed.
|
||||
%tr.spacer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;" }
|
||||
|
||||
%tr.section
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;"}
|
||||
%table.info{border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 15px;border:1px solid #ededed;border-radius:3px;overflow:hidden;" }
|
||||
%table.info{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;"} Project
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;" } Project
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;" }
|
||||
- namespace_name = @project.group ? @project.group.name : @project.namespace.owner.name
|
||||
- namespace_url = @project.group ? group_url(@project.group) : user_url(@project.namespace.owner)
|
||||
%a.muted{href: namespace_url, style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: namespace_url, style: "color:#333333;text-decoration:none;" }
|
||||
= namespace_name
|
||||
\/
|
||||
%a.muted{href: project_url(@project), style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: project_url(@project), style: "color:#333333;text-decoration:none;" }
|
||||
= @project.name
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Branch
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Branch
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img{height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-branch-gray.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%a.muted{href: commits_url(@pipeline), style: "color:#333333;text-decoration:none;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img{ height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-branch-gray.gif'), style: "display:block;", width: "13", alt: "Branch icon" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
%a.muted{ href: commits_url(@pipeline), style: "color:#333333;text-decoration:none;" }
|
||||
= @pipeline.ref
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Commit
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Commit
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img{height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-commit-gray.gif'), style: "display:block;", width: "13"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%a{href: commit_url(@pipeline), style: "color:#3777b0;text-decoration:none;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img{ height: "13", src: image_url('mailers/ci_pipeline_notif_v1/icon-commit-gray.gif'), style: "display:block;", width: "13", alt: "Commit icon" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
%a{ href: commit_url(@pipeline), style: "color:#3777b0;text-decoration:none;" }
|
||||
= @pipeline.short_sha
|
||||
- if @merge_request
|
||||
in
|
||||
%a{href: merge_request_url(@merge_request), style: "color:#3777b0;text-decoration:none;"}
|
||||
%a{ href: merge_request_url(@merge_request), style: "color:#3777b0;text-decoration:none;" }
|
||||
= @merge_request.to_reference
|
||||
.commit{style: "color:#5c5c5c;font-weight:300;"}
|
||||
.commit{ style: "color:#5c5c5c;font-weight:300;" }
|
||||
= @pipeline.git_commit_message.truncate(50)
|
||||
%tr
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;"} Author
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;"}
|
||||
%table.img{border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;border-top:1px solid #ededed;" } Author
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#8c8c8c;font-weight:300;padding:14px 0;margin:0;color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
|
||||
%table.img{ border: "0", cellpadding: "0", cellspacing: "0", style: "border-collapse:collapse;" }
|
||||
%tbody
|
||||
%tr
|
||||
- commit = @pipeline.commit
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;"}
|
||||
%img.avatar{height: "24", src: avatar_icon(commit.author || commit.author_email, 24), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24"}/
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
|
||||
%img.avatar{ height: "24", src: avatar_icon(commit.author || commit.author_email, 24), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "Avatar" }/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
|
||||
- if commit.author
|
||||
%a.muted{href: user_url(commit.author), style: "color:#333333;text-decoration:none;"}
|
||||
%a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" }
|
||||
= commit.author.name
|
||||
- else
|
||||
%span
|
||||
= commit.author_name
|
||||
%tr.spacer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;height:18px;font-size:18px;line-height:18px;" }
|
||||
|
||||
%tr.success-message
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#333333;font-size:15px;font-weight:400;line-height:1.4;padding:15px 5px;text-align:center;"}
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#333333;font-size:15px;font-weight:400;line-height:1.4;padding:15px 5px;text-align:center;" }
|
||||
- build_count = @pipeline.statuses.latest.size
|
||||
- stage_count = @pipeline.stages_count
|
||||
Pipeline
|
||||
%a{href: pipeline_url(@pipeline), style: "color:#3777b0;text-decoration:none;"}
|
||||
%a{ href: pipeline_url(@pipeline), style: "color:#3777b0;text-decoration:none;" }
|
||||
= "\##{@pipeline.id}"
|
||||
successfully completed
|
||||
= "#{build_count} #{'build'.pluralize(build_count)}"
|
||||
in
|
||||
= "#{stage_count} #{'stage'.pluralize(stage_count)}."
|
||||
%tr.footer
|
||||
%td{style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;"}
|
||||
%img{alt: "GitLab", height: "33", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif'), style: "display:block;margin:0 auto 1em;", width: "90"}/
|
||||
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:25px 0;font-size:13px;line-height:1.6;color:#5c5c5c;" }
|
||||
%img{ alt: "GitLab", height: "33", src: image_url('mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif'), style: "display:block;margin:0 auto 1em;", width: "90" }/
|
||||
%div
|
||||
%a{href: profile_notifications_url, style: "color:#3777b0;text-decoration:none;"} Manage all notifications
|
||||
%a{ href: profile_notifications_url, style: "color:#3777b0;text-decoration:none;" } Manage all notifications
|
||||
·
|
||||
%a{href: help_url, style: "color:#3777b0;text-decoration:none;"} Help
|
||||
%a{ href: help_url, style: "color:#3777b0;text-decoration:none;" } Help
|
||||
%div
|
||||
You're receiving this email because of your account on
|
||||
= succeed "." do
|
||||
%a{href: root_url, style: "color:#3777b0;text-decoration:none;"}= Gitlab.config.gitlab.host
|
||||
%a{ href: root_url, style: "color:#3777b0;text-decoration:none;" }= Gitlab.config.gitlab.host
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
= "The errors we encountered were:"
|
||||
|
||||
- @errors.each do |error|
|
||||
#{error}
|
||||
#{error}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
%ul
|
||||
- @message.diffs.each do |diff|
|
||||
%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
|
||||
%span.deleted-file
|
||||
−
|
||||
|
@ -54,8 +54,8 @@
|
|||
%h4 Changes:
|
||||
- diff_files.each do |diff_file|
|
||||
- file_hash = hexdigest(diff_file.file_path)
|
||||
%li{id: file_hash}
|
||||
%a{href: @message.target_url + "##{file_hash}"}<
|
||||
%li{ id: file_hash }
|
||||
%a{ href: @message.target_url + "##{file_hash}" }<
|
||||
- if diff_file.deleted_file
|
||||
%strong<
|
||||
= diff_file.old_path
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
%h3.page-title Authorization required
|
||||
%main{:role => "main"}
|
||||
%main{ :role => "main" }
|
||||
%p.h4
|
||||
Authorize
|
||||
%strong.text-info= @chat_name_params[:chat_name]
|
||||
|
|
|
@ -17,5 +17,5 @@
|
|||
%hr
|
||||
%h5
|
||||
Your SSH keys (#{@keys.count})
|
||||
%div.append-bottom-default
|
||||
.append-bottom-default
|
||||
= render 'key_table'
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
%div
|
||||
- if @user.errors.any?
|
||||
%div.alert.alert-danger
|
||||
.alert.alert-danger
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- page_title 'Preferences'
|
||||
= 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
|
||||
%h4.prepend-top-0
|
||||
Application theme
|
||||
|
@ -10,7 +10,7 @@
|
|||
.col-lg-9.application-theme
|
||||
- Gitlab::Themes.each do |theme|
|
||||
= label_tag do
|
||||
.preview{class: theme.css_class}
|
||||
.preview{ class: theme.css_class }
|
||||
= f.radio_button :theme_id, theme.id
|
||||
= theme.name
|
||||
.col-sm-12
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
The maximum file size allowed is 200KB.
|
||||
- if @user.avatar?
|
||||
%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
|
||||
.row
|
||||
.col-lg-3.profile-settings-sidebar
|
||||
|
@ -69,7 +69,7 @@
|
|||
%span.help-block We also use email for avatar detection if no avatar is uploaded.
|
||||
.form-group
|
||||
= 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.
|
||||
.form-group
|
||||
= f.label :skype, class: "label-light"
|
||||
|
@ -101,14 +101,14 @@
|
|||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%button.close{:type => "button", :'data-dismiss' => "modal"}
|
||||
%button.close{ :type => "button", :'data-dismiss' => "modal" }
|
||||
%span
|
||||
×
|
||||
%h4.modal-title
|
||||
Position and size your new avatar
|
||||
.modal-body
|
||||
.profile-crop-image-container
|
||||
%img.modal-profile-crop-image
|
||||
%img.modal-profile-crop-image{ alt: "Avatar cropper" }
|
||||
.crop-controls
|
||||
.btn-group
|
||||
%button.btn.btn-primary{ data: { method: "zoom", option: "0.1" } }
|
||||
|
@ -116,5 +116,5 @@
|
|||
%button.btn.btn-primary{ data: { method: "zoom", option: "-0.1" } }
|
||||
%span.fa.fa-search-minus
|
||||
.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
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
= 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
|
||||
|
||||
:javascript
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
%div#bitbucket_import_modal.modal
|
||||
#bitbucket_import_modal.modal
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%a.close{href: "#", "data-dismiss" => "modal"} ×
|
||||
%a.close{ href: "#", "data-dismiss" => "modal" } ×
|
||||
%h3 Import projects from Bitbucket
|
||||
.modal-body
|
||||
To enable importing projects from Bitbucket,
|
||||
|
@ -10,4 +10,4 @@
|
|||
as administrator you need to configure
|
||||
- else
|
||||
ask your GitLab administrator to configure
|
||||
== #{link_to 'OAuth integration', help_page_path("integration/bitbucket")}.
|
||||
= link_to 'OAuth integration', help_page_path("integration/bitbucket")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.row-content-block.project-home-empty
|
||||
%div.text-center{ class: container_class }
|
||||
.text-center{ class: container_class }
|
||||
%h4
|
||||
Customize your workflow!
|
||||
%p
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
= link_to namespace_project_find_file_path(@project.namespace, @project, @ref), class: 'btn btn-grouped shortcuts-find-file', rel: 'nofollow' do
|
||||
= icon('search')
|
||||
%span Find File
|
||||
= link_to namespace_project_find_file_path(@project.namespace, @project, @ref), class: 'btn btn-grouped shortcuts-find-file', rel: 'nofollow' do
|
||||
= icon('search')
|
||||
%span Find File
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
%div#gitlab_import_modal.modal
|
||||
#gitlab_import_modal.modal
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%a.close{href: "#", "data-dismiss" => "modal"} ×
|
||||
%a.close{ href: "#", "data-dismiss" => "modal" } ×
|
||||
%h3 Import projects from GitLab.com
|
||||
.modal-body
|
||||
To enable importing projects from GitLab.com,
|
||||
|
@ -10,4 +10,4 @@
|
|||
as administrator you need to configure
|
||||
- else
|
||||
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 @@
|
|||
= project_icon(@project, alt: @project.name, class: 'avatar s70 avatar-tile')
|
||||
%h1.project-title
|
||||
= @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)
|
||||
|
||||
.project-home-desc
|
||||
|
|
|
@ -15,23 +15,23 @@
|
|||
|
||||
%li.pull-right
|
||||
.toolbar-group
|
||||
= 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: "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: "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: "check-square-o fw", data: { "md-tag" => "* [ ] ", "md-prepend" => true }, title: "Add a task list" })
|
||||
= 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: "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: "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: "check-square-o fw", data: { "md-tag" => "* [ ] ", "md-prepend" => true }, title: "Add a task list" })
|
||||
.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" } }
|
||||
=icon("arrows-alt fw")
|
||||
= icon("arrows-alt fw")
|
||||
|
||||
.md-write-holder
|
||||
= 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
|
||||
%div.referenced-users.hide
|
||||
.referenced-users.hide
|
||||
%span
|
||||
= icon("exclamation-triangle")
|
||||
You are about to add
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
- else
|
||||
- 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)] }
|
||||
%div.text-center{ class: container_class }
|
||||
.text-center{ class: container_class }
|
||||
%h4
|
||||
This project does not have a wiki homepage yet
|
||||
- if can_create_wiki
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue