Commit 2e0a373415f05f77e8cc2a12b1a1f22c3214a0ba

Authored by Dmitriy Zaporozhets
2 parents 89d0d75c b2152847

Merge branch 'improve/proper_form_classes' of /home/git/repositories/gitlab/gitlabhq

app/assets/stylesheets/gitlab_bootstrap/forms.scss
1 1 form {
2 2 @extend .form-horizontal;
3 3  
4   - .actions {
5   - @extend .form-actions;
6   - }
7   -
8   - .clearfix {
9   - @extend .control-group;
10   - }
11   -
12   - .input {
13   - @extend .controls;
14   - }
15   -
16 4 label {
17 5 @extend .control-label;
18 6 }
19   - .xlarge {
20   - @extend .input-xlarge;
21   - }
22   - .xxlarge {
23   - @extend .input-xxlarge;
24   - }
25 7 }
26 8  
27 9 input {
... ...
app/views/admin/groups/edit.html.haml
... ... @@ -4,22 +4,22 @@
4 4 - if @group.errors.any?
5 5 .alert.alert-error
6 6 %span= @group.errors.full_messages.first
7   - .clearfix.group_name_holder
  7 + .control-group.group_name_holder
8 8 = f.label :name do
9 9 Group name is
10   - .input
11   - = f.text_field :name, placeholder: "Example Group", class: "xxlarge"
  10 + .controls
  11 + = f.text_field :name, placeholder: "Example Group", class: "input-xxlarge"
12 12  
13   - .clearfix.group-description-holder
  13 + .control-group.group-description-holder
14 14 = f.label :description, "Details"
15   - .input
16   - = f.text_area :description, maxlength: 250, class: "xxlarge js-gfm-input", rows: 4
  15 + .controls
  16 + = f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
17 17  
18   - .clearfix.group_name_holder
  18 + .control-group.group_name_holder
19 19 = f.label :path do
20 20 %span.cred Group path is
21   - .input
22   - = f.text_field :path, placeholder: "example-group", class: "xxlarge danger"
  21 + .controls
  22 + = f.text_field :path, placeholder: "example-group", class: "input-xxlarge danger"
23 23 %ul.cred
24 24 %li Changing group path can have unintended side effects.
25 25 %li Renaming group path will rename directory for all related projects
... ...
app/views/admin/groups/new.html.haml
... ... @@ -4,15 +4,15 @@
4 4 - if @group.errors.any?
5 5 .alert.alert-error
6 6 %span= @group.errors.full_messages.first
7   - .clearfix
  7 + .control-group
8 8 = f.label :name do
9 9 Group name is
10   - .input
11   - = f.text_field :name, placeholder: "Ex. OpenSource", class: "xxlarge left"
12   - .clearfix.group-description-holder
  10 + .controls
  11 + = f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
  12 + .control-group.group-description-holder
13 13 = f.label :description, "Details"
14   - .input
15   - = f.text_area :description, maxlength: 250, class: "xxlarge js-gfm-input", rows: 4
  14 + .controls
  15 + = f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
16 16  
17 17 .form-actions
18 18 = f.submit 'Create group', class: "btn btn-create"
... ...
app/views/admin/hooks/index.html.haml
... ... @@ -10,9 +10,9 @@
10 10 .alert.alert-error
11 11 - @hook.errors.full_messages.each do |msg|
12 12 %p= msg
13   - .clearfix
  13 + .control-group
14 14 = f.label :url, "URL:"
15   - .input
  15 + .controls
16 16 = f.text_field :url, class: "text_field xxlarge input-xpadding"
17 17  
18 18 = f.submit "Add System Hook", class: "btn btn-create"
... ...
app/views/admin/users/_form.html.haml
... ... @@ -8,28 +8,28 @@
8 8  
9 9 %fieldset
10 10 %legend Account
11   - .clearfix
  11 + .control-group
12 12 = f.label :name
13   - .input
  13 + .controls
14 14 = f.text_field :name, required: true, autocomplete: "off"
15 15 %span.help-inline * required
16   - .clearfix
  16 + .control-group
17 17 = f.label :username
18   - .input
  18 + .controls
19 19 = f.text_field :username, required: true, autocomplete: "off"
20 20 %span.help-inline * required
21   - .clearfix
  21 + .control-group
22 22 = f.label :email
23   - .input
  23 + .controls
24 24 = f.text_field :email, required: true, autocomplete: "off"
25 25 %span.help-inline * required
26 26  
27 27 - if @user.new_record?
28 28 %fieldset
29 29 %legend Password
30   - .clearfix
  30 + .control-group
31 31 = f.label :password
32   - .input
  32 + .controls
33 33 %strong
34 34 A temporary password will be generated and sent to user.
35 35 %br
... ... @@ -37,33 +37,33 @@
37 37 - else
38 38 %fieldset
39 39 %legend Password
40   - .clearfix
  40 + .control-group
41 41 = f.label :password
42   - .input= f.password_field :password, disabled: f.object.force_random_password
43   - .clearfix
  42 + .controls= f.password_field :password, disabled: f.object.force_random_password
  43 + .control-group
44 44 = f.label :password_confirmation
45   - .input= f.password_field :password_confirmation, disabled: f.object.force_random_password
  45 + .controls= f.password_field :password_confirmation, disabled: f.object.force_random_password
46 46  
47 47 %fieldset
48 48 %legend Access
49 49 .row
50 50 .span8
51   - .clearfix
  51 + .control-group
52 52 = f.label :projects_limit
53   - .input= f.number_field :projects_limit
  53 + .controls= f.number_field :projects_limit
54 54  
55   - .clearfix
  55 + .control-group
56 56 = f.label :can_create_group
57   - .input= f.check_box :can_create_group
  57 + .controls= f.check_box :can_create_group
58 58  
59   - .clearfix
  59 + .control-group
60 60 = f.label :can_create_team
61   - .input= f.check_box :can_create_team
  61 + .controls= f.check_box :can_create_team
62 62  
63   - .clearfix
  63 + .control-group
64 64 = f.label :admin do
65 65 %strong.cred Administrator
66   - .input= f.check_box :admin
  66 + .controls= f.check_box :admin
67 67 .span4
68 68 - unless @user.new_record?
69 69 .alert.alert-error
... ... @@ -75,17 +75,17 @@
75 75 = link_to 'Block User', block_admin_user_path(@user), confirm: 'USER WILL BE BLOCKED! Are you sure?', method: :put, class: "btn btn-small btn-remove"
76 76 %fieldset
77 77 %legend Profile
78   - .clearfix
  78 + .control-group
79 79 = f.label :skype
80   - .input= f.text_field :skype
81   - .clearfix
  80 + .controls= f.text_field :skype
  81 + .control-group
82 82 = f.label :linkedin
83   - .input= f.text_field :linkedin
84   - .clearfix
  83 + .controls= f.text_field :linkedin
  84 + .control-group
85 85 = f.label :twitter
86   - .input= f.text_field :twitter
  86 + .controls= f.text_field :twitter
87 87  
88   - .actions
  88 + .form-actions
89 89 - if @user.new_record?
90 90 = f.submit 'Create user', class: "btn btn-create"
91 91 = link_to 'Cancel', admin_users_path, class: "btn btn-cancel"
... ...
app/views/groups/_new_group_member.html.haml
... ... @@ -6,14 +6,14 @@
6 6 group
7 7  
8 8 %p 1. Choose users you want in the group
9   - .clearfix
  9 + .control-group
10 10 = f.label :user_ids, "People"
11   - .input= users_select_tag(:user_ids, multiple: true, class: 'input-large')
  11 + .controls= users_select_tag(:user_ids, multiple: true, class: 'input-large')
12 12  
13 13 %p 2. Set access level for them
14   - .clearfix
  14 + .control-group
15 15 = f.label :group_access, "Group Access"
16   - .input= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select chosen"
  16 + .controls= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select chosen"
17 17  
18 18 .form-actions
19 19 = f.submit 'Add users into group', class: "btn btn-create"
... ...
app/views/groups/edit.html.haml
... ... @@ -26,16 +26,16 @@
26 26 - if @group.errors.any?
27 27 .alert.alert-error
28 28 %span= @group.errors.full_messages.first
29   - .clearfix
  29 + .control-group
30 30 = f.label :name do
31 31 Group name is
32   - .input
33   - = f.text_field :name, placeholder: "Ex. OpenSource", class: "xxlarge left"
  32 + .controls
  33 + = f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
34 34  
35   - .clearfix.group-description-holder
  35 + .control-group.group-description-holder
36 36 = f.label :description, "Details"
37   - .input
38   - = f.text_area :description, maxlength: 250, class: "xxlarge js-gfm-input", rows: 4
  37 + .controls
  38 + = f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
39 39  
40 40 .form-actions
41 41 = f.submit 'Save group', class: "btn btn-save"
... ...
app/views/groups/new.html.haml
... ... @@ -2,19 +2,19 @@
2 2 - if @group.errors.any?
3 3 .alert.alert-error
4 4 %span= @group.errors.full_messages.first
5   - .clearfix
  5 + .control-group
6 6 = f.label :name do
7 7 Group name is
8   - .input
9   - = f.text_field :name, placeholder: "Ex. OpenSource", class: "xxlarge left"
  8 + .controls
  9 + = f.text_field :name, placeholder: "Ex. OpenSource", class: "input-xxlarge left"
10 10  
11   - .clearfix.group-description-holder
  11 + .control-group.group-description-holder
12 12 = f.label :description, "Details"
13   - .input
14   - = f.text_area :description, maxlength: 250, class: "xxlarge js-gfm-input", rows: 4
  13 + .controls
  14 + = f.text_area :description, maxlength: 250, class: "input-xxlarge js-gfm-input", rows: 4
15 15  
16   - .clearfix
17   - .input
  16 + .control-group
  17 + .controls
18 18 %ul
19 19 %li Group is kind of directory for several projects
20 20 %li All created groups are private
... ...
app/views/profiles/account.html.haml
... ... @@ -27,15 +27,15 @@
27 27 - @user.errors.full_messages.each do |msg|
28 28 %li= msg
29 29  
30   - .clearfix
  30 + .control-group
31 31 = f.label :password
32   - .input= f.password_field :password, required: true
33   - .clearfix
  32 + .controls= f.password_field :password, required: true
  33 + .control-group
34 34 = f.label :password_confirmation
35   - .input
  35 + .controls
36 36 = f.password_field :password_confirmation, required: true
37   - .clearfix
38   - .input
  37 + .control-group
  38 + .controls
39 39 = f.submit 'Save password', class: "btn btn-save"
40 40  
41 41  
... ... @@ -54,7 +54,7 @@
54 54 It can be used for atom feed or API
55 55 %p.cgray
56 56 - if current_user.private_token
57   - = text_field_tag "token", current_user.private_token, class: "xxlarge large_text"
  57 + = text_field_tag "token", current_user.private_token, class: "input-xxlarge large_text"
58 58 = f.submit 'Reset', confirm: "Are you sure?", class: "btn btn-primary btn-build-token"
59 59 - else
60 60 %span You don`t have one yet. Click generate to fix it.
... ... @@ -70,7 +70,7 @@
70 70 = form_for @user, url: update_username_profile_path, method: :put, remote: true do |f|
71 71 .padded
72 72 = f.label :username
73   - .input
  73 + .controls
74 74 = f.text_field :username, required: true
75 75  
76 76 %span.loading-gif.hide= image_tag "ajax_loader.gif"
... ... @@ -83,7 +83,7 @@
83 83 %ul.cred
84 84 %li It will change web url for personal projects.
85 85 %li It will change the git path to repositories for personal projects.
86   - .input
  86 + .controls
87 87 = f.submit 'Save username', class: "btn btn-save"
88 88  
89 89 - if gitlab_config.signup_enabled
... ...
app/views/profiles/keys/_form.html.haml
... ... @@ -6,18 +6,18 @@
6 6 - @key.errors.full_messages.each do |msg|
7 7 %li= msg
8 8  
9   - .clearfix
  9 + .control-group
10 10 = f.label :title
11   - .input= f.text_field :title
12   - .clearfix
  11 + .controls= f.text_field :title
  12 + .control-group
13 13 = f.label :key
14   - .input
  14 + .controls
15 15 %p.light
16 16 Paste your public key here. Read more about how generate it #{link_to "here", help_ssh_path}
17 17 = f.text_area :key, class: [:xxlarge, :thin_area]
18 18  
19 19  
20   - .actions
  20 + .form-actions
21 21 = f.submit 'Add key', class: "btn btn-create"
22 22 = link_to "Cancel", profile_keys_path, class: "btn btn-cancel"
23 23  
... ...
app/views/profiles/passwords/new.html.haml
... ... @@ -10,13 +10,13 @@
10 10 - @user.errors.full_messages.each do |msg|
11 11 %li= msg
12 12  
13   - .clearfix
  13 + .control-group
14 14 = f.label :password
15   - .input= f.password_field :password, required: true
16   - .clearfix
  15 + .controls= f.password_field :password, required: true
  16 + .control-group
17 17 = f.label :password_confirmation
18   - .input
  18 + .controls
19 19 = f.password_field :password_confirmation, required: true
20   - .clearfix
21   - .input
  20 + .control-group
  21 + .controls
22 22 = f.submit 'Set new password', class: "btn btn-create"
... ...
app/views/projects/compare/_form.html.haml
... ... @@ -14,9 +14,9 @@
14 14 .pull-left
15 15 - if params[:to] && params[:from]
16 16 = link_to 'switch', {from: params[:to], to: params[:from]}, {class: 'commits-compare-switch has_tooltip', title: 'Switch base of comparison'}
17   - = text_field_tag :from, params[:from], placeholder: "master", class: "xlarge input-xpadding"
  17 + = text_field_tag :from, params[:from], placeholder: "master", class: "input-xlarge input-xpadding"
18 18 = "..."
19   - = text_field_tag :to, params[:to], placeholder: "aa8b4ef", class: "xlarge input-xpadding"
  19 + = text_field_tag :to, params[:to], placeholder: "aa8b4ef", class: "input-xlarge input-xpadding"
20 20 .pull-left
21 21  
22 22 = submit_tag "Compare", class: "btn btn-create commits-compare-btn"
... ...
app/views/projects/deploy_keys/_form.html.haml
... ... @@ -6,18 +6,18 @@
6 6 - @key.errors.full_messages.each do |msg|
7 7 %li= msg
8 8  
9   - .clearfix
  9 + .control-group
10 10 = f.label :title
11   - .input= f.text_field :title
12   - .clearfix
  11 + .controls= f.text_field :title
  12 + .control-group
13 13 = f.label :key
14   - .input
  14 + .controls
15 15 = f.text_area :key, class: [:xxlarge, :thin_area]
16 16 %p.hint
17 17 Paste a machine public key here. Read more about how generate it
18 18 = link_to "here", help_ssh_path
19 19  
20   - .actions
  20 + .form-actions
21 21 = f.submit 'Create', class: "btn-create btn"
22 22 = link_to "Cancel", project_deploy_keys_path(@project), class: "btn btn-cancel"
23 23  
... ...
app/views/projects/edit.html.haml
... ... @@ -8,24 +8,24 @@
8 8 .form-holder
9 9 = form_for(@project, remote: true) do |f|
10 10 %fieldset
11   - .clearfix.project_name_holder
  11 + .control-group.project_name_holder
12 12 = f.label :name do
13 13 Project name is
14   - .input
  14 + .controls
15 15 = f.text_field :name, placeholder: "Example Project", class: "span5"
16 16  
17 17  
18   - .clearfix
  18 + .control-group
19 19 = f.label :description do
20 20 Project description
21 21 %span.light (optional)
22   - .input
  22 + .controls
23 23 = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250
24 24  
25 25 - if @project.repository.exists? && @project.repository.branch_names.any?
26   - .clearfix
  26 + .control-group
27 27 = f.label :default_branch, "Default Branch"
28   - .input= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen'})
  28 + .controls= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen'})
29 29  
30 30  
31 31 - if can?(current_user, :change_public_mode, @project)
... ... @@ -66,11 +66,11 @@
66 66 - if Project.issues_tracker.values.count > 1
67 67 .control-group
68 68 = f.label :issues_tracker, "Issues tracker", class: 'control-label'
69   - .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled })
  69 + .controls= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled })
70 70  
71   - .clearfix
  71 + .control-group
72 72 = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label'
73   - .input= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id?
  73 + .controls= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id?
74 74  
75 75 .control-group
76 76 = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label'
... ... @@ -110,7 +110,7 @@
110 110 = f.label :namespace_id do
111 111 %span Namespace
112 112 .controls
113   - .clearfix
  113 + .control-group
114 114 = f.select :namespace_id, namespaces_options(@project.namespace_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'}
115 115 %ul
116 116 %li Be careful. Changing project namespace can have unintended side effects
... ... @@ -130,7 +130,7 @@
130 130 = f.label :path do
131 131 %span Path
132 132 .controls
133   - .clearfix
  133 + .control-group
134 134 = f.text_field :path
135 135 %ul
136 136 %li Be careful. Rename of project repo can have unintended side effects
... ...
app/views/projects/hooks/index.html.haml
... ... @@ -11,9 +11,9 @@
11 11 .alert.alert-error
12 12 - @hook.errors.full_messages.each do |msg|
13 13 %p= msg
14   - .clearfix
  14 + .control-group
15 15 = f.label :url, "URL:"
16   - .input
  16 + .controls
17 17 = f.text_field :url, class: "text_field xxlarge input-xpadding", placeholder: 'http://example.com/trigger-ci.json'
18 18  
19 19 = f.submit "Add Web Hook", class: "btn btn-create"
... ...
app/views/projects/issues/_form.html.haml
... ... @@ -8,18 +8,18 @@
8 8 %br
9 9 .ui-box.ui-box-show
10 10 .ui-box-head
11   - .clearfix
  11 + .control-group
12 12 = f.label :title do
13 13 %strong= "Subject *"
14   - .input
15   - = f.text_field :title, maxlength: 255, class: "xxlarge js-gfm-input", autofocus: true, required: true
  14 + .controls
  15 + = f.text_field :title, maxlength: 255, class: "input-xxlarge js-gfm-input", autofocus: true, required: true
16 16 .ui-box-body
17   - .clearfix
  17 + .control-group
18 18 .issue_assignee.pull-left
19 19 = f.label :assignee_id do
20 20 %i.icon-user
21 21 Assign to
22   - .input
  22 + .controls
23 23 .pull-left
24 24 = f.select(:assignee_id, @project.team.members.sort_by(&:name).map {|p| [ p.name, p.id ] }, { include_blank: "Select a user" }, {class: 'chosen'})
25 25 .pull-right
... ... @@ -29,25 +29,25 @@
29 29 = f.label :milestone_id do
30 30 %i.icon-time
31 31 Milestone
32   - .input= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
  32 + .controls= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
33 33  
34 34 .ui-box-bottom
35   - .clearfix
  35 + .control-group
36 36 = f.label :label_list do
37 37 %i.icon-tag
38 38 Labels
39   - .input
40   - = f.text_field :label_list, maxlength: 2000, class: "xxlarge"
  39 + .controls
  40 + = f.text_field :label_list, maxlength: 2000, class: "input-xxlarge"
41 41 %p.hint Separate labels with commas.
42 42  
43   - .clearfix
  43 + .control-group
44 44 = f.label :description, "Details"
45   - .input
46   - = f.text_area :description, class: "xxlarge js-gfm-input", rows: 14
  45 + .controls
  46 + = f.text_area :description, class: "input-xxlarge js-gfm-input", rows: 14
47 47 %p.hint Issues are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
48 48  
49 49  
50   - .actions
  50 + .form-actions
51 51 - if @issue.new_record?
52 52 = f.submit 'Submit new issue', class: "btn btn-create"
53 53 -else
... ...
app/views/projects/merge_requests/_form.html.haml
... ... @@ -31,21 +31,21 @@
31 31 %i.icon-paper-clip
32 32 Details
33 33 .merge-request-form-info
34   - .clearfix
  34 + .control-group
35 35 = f.label :title do
36 36 %strong= "Title *"
37   - .input= f.text_field :title, class: "input-xxlarge pad js-gfm-input", maxlength: 255, rows: 5, required: true
38   - .clearfix
  37 + .controls= f.text_field :title, class: "input-xxlarge pad js-gfm-input", maxlength: 255, rows: 5, required: true
  38 + .control-group
39 39 .left
40 40 = f.label :assignee_id do
41 41 %i.icon-user
42 42 Assign to
43   - .input= f.select(:assignee_id, @project.team.members.sort_by(&:name).map {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, {class: 'chosen span3'})
  43 + .controls= f.select(:assignee_id, @project.team.members.sort_by(&:name).map {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, {class: 'chosen span3'})
44 44 .left
45 45 = f.label :milestone_id do
46 46 %i.icon-time
47 47 Milestone
48   - .input= f.select(:milestone_id, @project.milestones.active.all.map {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
  48 + .controls= f.select(:milestone_id, @project.milestones.active.all.map {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
49 49  
50 50  
51 51 .form-actions
... ...
app/views/projects/milestones/_form.html.haml
... ... @@ -26,7 +26,7 @@
26 26 .span6
27 27 .control-group
28 28 = f.label :due_date, "Due Date", class: "control-label"
29   - .input= f.hidden_field :due_date
  29 + .controls= f.hidden_field :due_date
30 30 .controls
31 31 .datepicker
32 32  
... ...
app/views/projects/network/_head.html.haml
... ... @@ -15,7 +15,7 @@
15 15 .control-group
16 16 = label_tag :search , "Looking for commit:", class: 'control-label light'
17 17 .controls
18   - = text_field_tag :q, @options[:q], placeholder: "Input SHA", class: "search-input xlarge"
  18 + = text_field_tag :q, @options[:q], placeholder: "Input SHA", class: "search-input input-xlarge"
19 19 = button_tag type: 'submit', class: 'btn vtop' do
20 20 %i.icon-search
21 21 - @options.each do |key, value|
... ...
app/views/projects/new.html.haml
... ... @@ -3,36 +3,36 @@
3 3 = render 'projects/errors'
4 4 .project-edit-content
5 5 = form_for @project, remote: true do |f|
6   - .clearfix.project_name_holder
  6 + .control-group.project_name_holder
7 7 = f.label :name do
8 8 Project name is
9   - .input
10   - = f.text_field :name, placeholder: "Example Project", class: "xxlarge", tabindex: 1, autofocus: true
  9 + .controls
  10 + = f.text_field :name, placeholder: "Example Project", class: "input-xxlarge", tabindex: 1, autofocus: true
11 11  
12 12 - if current_user.can_select_namespace?
13   - .clearfix
  13 + .control-group
14 14 = f.label :namespace_id do
15 15 %span Namespace
16   - .input
  16 + .controls
17 17 = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen', tabindex: 2}
18 18  
19   - .clearfix
20   - .input
  19 + .control-group
  20 + .controls
21 21 = link_to "#", class: 'appear-link' do
22 22 %i.icon-upload-alt
23 23 %span Import existing repository?
24   - .clearfix.appear-data.import-url-data
  24 + .control-group.appear-data.import-url-data
25 25 = f.label :import_url do
26 26 %span Import existing repo
27   - .input
  27 + .controls
28 28 = f.text_field :import_url, class: 'xlarge', placeholder: 'https://github.com/randx/six.git'
29 29 .light
30 30 URL must be cloneable
31   - .clearfix
  31 + .control-group
32 32 = f.label :description do
33 33 Description
34 34 %span.light (optional)
35   - .input
  35 + .controls
36 36 = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250, tabindex: 3
37 37  
38 38 %p.padded
... ... @@ -42,7 +42,7 @@
42 42  
43 43 - if current_user.can_create_group?
44 44 .pull-right
45   - .input.light
  45 + .controls.light
46 46 Need a group for several dependent projects?
47 47 = link_to new_group_path, class: "btn btn-tiny" do
48 48 Create a group
... ...
app/views/projects/snippets/_form.html.haml
... ... @@ -9,16 +9,16 @@
9 9 - @snippet.errors.full_messages.each do |msg|
10 10 %li= msg
11 11  
12   - .clearfix
  12 + .control-group
13 13 = f.label :title
14   - .input= f.text_field :title, placeholder: "Example Snippet", class: 'input-xlarge', required: true
15   - .clearfix
  14 + .controls= f.text_field :title, placeholder: "Example Snippet", class: 'input-xlarge', required: true
  15 + .control-group
16 16 = f.label "Lifetime"
17   - .input= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'}
18   - .clearfix
  17 + .controls= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'}
  18 + .control-group
19 19 .file-editor
20 20 = f.label :file_name, "File"
21   - .input
  21 + .controls
22 22 .file-holder.snippet
23 23 .file-title
24 24 = f.text_field :file_name, placeholder: "example.rb", class: 'snippet-file-name', required: true
... ...
app/views/projects/team_members/_form.html.haml
... ... @@ -9,16 +9,16 @@
9 9 %li= msg
10 10  
11 11 %h6 1. Choose people you want in the team
12   - .clearfix
  12 + .control-group
13 13 = f.label :user_ids, "People"
14   - .input
  14 + .controls
15 15 = users_select_tag(:user_ids, multiple: true)
16 16  
17 17 %h6 2. Set access level for them
18   - .clearfix
  18 + .control-group
19 19 = f.label :project_access, "Project Access"
20   - .input= select_tag :project_access, options_for_select(Project.access_options, @user_project_relation.project_access), class: "project-access-select chosen"
  20 + .controls= select_tag :project_access, options_for_select(Project.access_options, @user_project_relation.project_access), class: "project-access-select chosen"
21 21  
22   - .actions
  22 + .form-actions
23 23 = f.submit 'Add users', class: "btn btn-create"
24 24 = link_to "Cancel", project_team_index_path(@project), class: "btn btn-cancel"
... ...
app/views/projects/team_members/import.html.haml
... ... @@ -6,9 +6,9 @@
6 6 = form_tag apply_import_project_team_members_path(@project), method: 'post' do
7 7 .padded
8 8 = label_tag :source_project_id, "Project"
9   - .input= select_tag(:source_project_id, options_from_collection_for_select(current_user.authorized_projects, :id, :name_with_namespace), prompt: "Select project", class: "chosen xxlarge", required: true)
  9 + .controls= select_tag(:source_project_id, options_from_collection_for_select(current_user.authorized_projects, :id, :name_with_namespace), prompt: "Select project", class: "chosen xxlarge", required: true)
10 10  
11   - .actions
  11 + .form-actions
12 12 = submit_tag 'Import project members', class: "btn btn-create"
13 13 = link_to "Cancel", project_team_index_path(@project), class: "btn btn-cancel"
14 14  
... ...
app/views/projects/wikis/_form.html.haml
... ... @@ -15,7 +15,7 @@
15 15 = f.select :format, options_for_select(GollumWiki::MARKUPS, {selected: @wiki.format}), {}, class: "pull-right input-medium"
16 16 = f.label :format, class: "pull-right", style: "padding-right: 20px;"
17 17 .ui-box-body
18   - .input
  18 + .controls
19 19 %span.cgray
20 20 Wiki content is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
21 21 To link to a (new) page you can just type
... ... @@ -24,11 +24,11 @@
24 24  
25 25 .ui-box-bottom
26 26 = f.label :content
27   - .input= f.text_area :content, class: 'span8 js-gfm-input'
  27 + .controls= f.text_area :content, class: 'span8 js-gfm-input'
28 28 .ui-box-bottom
29 29 = f.label :commit_message
30   - .input= f.text_field :message, class: 'span8'
31   - .actions
  30 + .controls= f.text_field :message, class: 'span8'
  31 + .form-actions
32 32 - if @wiki && @wiki.persisted?
33 33 = f.submit 'Save changes', class: "btn-save btn"
34 34 = link_to "Cancel", project_wiki_path(@project, @wiki), class: "btn btn-cancel"
... ...
app/views/public/projects/index.html.haml
... ... @@ -7,7 +7,7 @@
7 7 .pull-right
8 8 = form_tag public_projects_path, method: :get, class: 'form-inline' do |f|
9 9 .search-holder
10   - .input
  10 + .controls
11 11 = search_field_tag :search, params[:search], placeholder: "gitlab-ci", class: "span3 search-text-input", id: "projects_search"
12 12 = submit_tag 'Search', class: "btn btn-primary wide"
13 13  
... ...
app/views/search/show.html.haml
... ... @@ -2,7 +2,7 @@
2 2 .search-holder
3 3 = label_tag :search do
4 4 %span Looking for
5   - .input
  5 + .controls
6 6 = search_field_tag :search, params[:search], placeholder: "issue 143", class: "input-xxlarge search-text-input", id: "dashboard_search"
7 7 = hidden_field_tag :project_id, params[:project_id]
8 8 = hidden_field_tag :group_id, params[:group_id]
... ...
app/views/snippets/_form.html.haml
... ... @@ -9,16 +9,16 @@
9 9 - @snippet.errors.full_messages.each do |msg|
10 10 %li= msg
11 11  
12   - .clearfix
  12 + .control-group
13 13 = f.label :title
14   - .input= f.text_field :title, placeholder: "Example Snippet", class: 'input-xlarge', required: true
15   - .clearfix
  14 + .controls= f.text_field :title, placeholder: "Example Snippet", class: 'input-xlarge', required: true
  15 + .control-group
16 16 = f.label "Private?"
17   - .input= f.check_box :private, {class: ''}
18   - .clearfix
  17 + .controls= f.check_box :private, {class: ''}
  18 + .control-group
19 19 .file-editor
20 20 = f.label :file_name, "File"
21   - .input
  21 + .controls
22 22 .file-holder.snippet
23 23 .file-title
24 24 = f.text_field :file_name, placeholder: "example.rb", class: 'snippet-file-name', required: true
... ...