Commit d88aafcb5d15827029a8f42e1a88ac313b1d218e
Exists in
spb-stable
and in
3 other branches
Merge branch 'select2' of /home/git/repositories/gitlab/gitlabhq
Showing
29 changed files
with
73 additions
and
187 deletions
Show diff stats
Gemfile
| @@ -144,7 +144,6 @@ gem "therubyracer" | @@ -144,7 +144,6 @@ gem "therubyracer" | ||
| 144 | gem 'turbolinks' | 144 | gem 'turbolinks' |
| 145 | gem 'jquery-turbolinks' | 145 | gem 'jquery-turbolinks' |
| 146 | 146 | ||
| 147 | -gem 'chosen-rails', "1.0.1" | ||
| 148 | gem 'select2-rails' | 147 | gem 'select2-rails' |
| 149 | gem 'jquery-atwho-rails', "~> 0.3.3" | 148 | gem 'jquery-atwho-rails', "~> 0.3.3" |
| 150 | gem "jquery-rails", "2.1.3" | 149 | gem "jquery-rails", "2.1.3" |
Gemfile.lock
| @@ -71,12 +71,6 @@ GEM | @@ -71,12 +71,6 @@ GEM | ||
| 71 | celluloid (0.15.2) | 71 | celluloid (0.15.2) |
| 72 | timers (~> 1.1.0) | 72 | timers (~> 1.1.0) |
| 73 | charlock_holmes (0.6.9.4) | 73 | charlock_holmes (0.6.9.4) |
| 74 | - chosen-rails (1.0.1) | ||
| 75 | - coffee-rails (>= 3.2) | ||
| 76 | - compass-rails (>= 1.0) | ||
| 77 | - railties (>= 3.0) | ||
| 78 | - sass-rails (>= 3.2) | ||
| 79 | - chunky_png (1.2.9) | ||
| 80 | cliver (0.2.2) | 74 | cliver (0.2.2) |
| 81 | code_analyzer (0.4.3) | 75 | code_analyzer (0.4.3) |
| 82 | sexp_processor | 76 | sexp_processor |
| @@ -92,12 +86,6 @@ GEM | @@ -92,12 +86,6 @@ GEM | ||
| 92 | coffee-script-source (1.6.3) | 86 | coffee-script-source (1.6.3) |
| 93 | colored (1.2) | 87 | colored (1.2) |
| 94 | colorize (0.5.8) | 88 | colorize (0.5.8) |
| 95 | - compass (0.12.2) | ||
| 96 | - chunky_png (~> 1.2) | ||
| 97 | - fssm (>= 0.2.7) | ||
| 98 | - sass (~> 3.1) | ||
| 99 | - compass-rails (1.1.1) | ||
| 100 | - compass (>= 0.12.2) | ||
| 101 | connection_pool (1.2.0) | 89 | connection_pool (1.2.0) |
| 102 | coveralls (0.7.0) | 90 | coveralls (0.7.0) |
| 103 | multi_json (~> 1.3) | 91 | multi_json (~> 1.3) |
| @@ -161,7 +149,6 @@ GEM | @@ -161,7 +149,6 @@ GEM | ||
| 161 | dotenv (>= 0.7) | 149 | dotenv (>= 0.7) |
| 162 | thor (>= 0.13.6) | 150 | thor (>= 0.13.6) |
| 163 | formatador (0.2.4) | 151 | formatador (0.2.4) |
| 164 | - fssm (0.2.10) | ||
| 165 | gemoji (1.3.1) | 152 | gemoji (1.3.1) |
| 166 | gherkin-ruby (0.3.1) | 153 | gherkin-ruby (0.3.1) |
| 167 | racc | 154 | racc |
| @@ -572,7 +559,6 @@ DEPENDENCIES | @@ -572,7 +559,6 @@ DEPENDENCIES | ||
| 572 | bootstrap-sass (~> 3.0) | 559 | bootstrap-sass (~> 3.0) |
| 573 | capybara | 560 | capybara |
| 574 | carrierwave | 561 | carrierwave |
| 575 | - chosen-rails (= 1.0.1) | ||
| 576 | coffee-rails | 562 | coffee-rails |
| 577 | colored | 563 | colored |
| 578 | coveralls | 564 | coveralls |
app/assets/javascripts/application.js
| @@ -19,7 +19,6 @@ | @@ -19,7 +19,6 @@ | ||
| 19 | //= require jquery.turbolinks | 19 | //= require jquery.turbolinks |
| 20 | //= require bootstrap | 20 | //= require bootstrap |
| 21 | //= require modernizr | 21 | //= require modernizr |
| 22 | -//= require chosen-jquery | ||
| 23 | //= require select2 | 22 | //= require select2 |
| 24 | //= require raphael | 23 | //= require raphael |
| 25 | //= require g.raphael-min | 24 | //= require g.raphael-min |
app/assets/javascripts/issues.js.coffee
| @@ -29,12 +29,10 @@ | @@ -29,12 +29,10 @@ | ||
| 29 | $('#filter_issue_search').val($('#issue_search').val()) | 29 | $('#filter_issue_search').val($('#issue_search').val()) |
| 30 | 30 | ||
| 31 | initSelects: -> | 31 | initSelects: -> |
| 32 | - $("#update_status").chosen() | ||
| 33 | - $("#update_assignee_id").chosen() | ||
| 34 | - $("#update_milestone_id").chosen() | ||
| 35 | - $("#label_name").chosen() | ||
| 36 | - $("#assignee_id").chosen() | ||
| 37 | - $("#milestone_id").chosen() | 32 | + $("select#update_status").select2() |
| 33 | + $("select#update_assignee_id").select2() | ||
| 34 | + $("select#update_milestone_id").select2() | ||
| 35 | + $("select#label_name").select2() | ||
| 38 | $("#milestone_id, #assignee_id, #label_name").on "change", -> | 36 | $("#milestone_id, #assignee_id, #label_name").on "change", -> |
| 39 | $(this).closest("form").submit() | 37 | $(this).closest("form").submit() |
| 40 | 38 |
app/assets/javascripts/main.js.coffee
| @@ -67,8 +67,8 @@ $ -> | @@ -67,8 +67,8 @@ $ -> | ||
| 67 | $('.appear-data').fadeIn() | 67 | $('.appear-data').fadeIn() |
| 68 | e.preventDefault() | 68 | e.preventDefault() |
| 69 | 69 | ||
| 70 | - # Initialize chosen selects | ||
| 71 | - $('select.chosen').chosen() | 70 | + # Initialize select2 selects |
| 71 | + $('select.select2').select2(width: 'resolve', dropdownAutoWidth: true) | ||
| 72 | 72 | ||
| 73 | # Initialize tooltips | 73 | # Initialize tooltips |
| 74 | $('.has_tooltip').tooltip() | 74 | $('.has_tooltip').tooltip() |
| @@ -126,12 +126,6 @@ $ -> | @@ -126,12 +126,6 @@ $ -> | ||
| 126 | $(@).remove() | 126 | $(@).remove() |
| 127 | 127 | ||
| 128 | (($) -> | 128 | (($) -> |
| 129 | - _chosen = $.fn.chosen | ||
| 130 | - $.fn.extend chosen: (options) -> | ||
| 131 | - default_options = search_contains: "true" | ||
| 132 | - $.extend default_options, options | ||
| 133 | - _chosen.apply @, [default_options] | ||
| 134 | - | ||
| 135 | # Disable an element and add the 'disabled' Bootstrap class | 129 | # Disable an element and add the 'disabled' Bootstrap class |
| 136 | $.fn.extend disable: -> | 130 | $.fn.extend disable: -> |
| 137 | $(@).attr('disabled', 'disabled').addClass('disabled') | 131 | $(@).attr('disabled', 'disabled').addClass('disabled') |
app/assets/javascripts/merge_requests.js.coffee
| @@ -2,8 +2,8 @@ | @@ -2,8 +2,8 @@ | ||
| 2 | # * Filter merge requests | 2 | # * Filter merge requests |
| 3 | # | 3 | # |
| 4 | @merge_requestsPage = -> | 4 | @merge_requestsPage = -> |
| 5 | - $('#assignee_id').chosen() | ||
| 6 | - $('#milestone_id').chosen() | 5 | + $('#assignee_id').select2() |
| 6 | + $('#milestone_id').select2() | ||
| 7 | $('#milestone_id, #assignee_id').on 'change', -> | 7 | $('#milestone_id, #assignee_id').on 'change', -> |
| 8 | $(this).closest('form').submit() | 8 | $(this).closest('form').submit() |
| 9 | 9 |
app/assets/stylesheets/application.scss
| @@ -4,7 +4,6 @@ | @@ -4,7 +4,6 @@ | ||
| 4 | * the top of the compiled file, but it's generally better to create a new file per style scope. | 4 | * the top of the compiled file, but it's generally better to create a new file per style scope. |
| 5 | *= require jquery.ui.gitlab | 5 | *= require jquery.ui.gitlab |
| 6 | *= require jquery.atwho | 6 | *= require jquery.atwho |
| 7 | - *= require chosen | ||
| 8 | *= require select2 | 7 | *= require select2 |
| 9 | *= require_self | 8 | *= require_self |
| 10 | */ | 9 | */ |
app/assets/stylesheets/generic/selects.scss
| 1 | -/** Chosen.js selectbox style override **/ | ||
| 2 | -.chosen-container { | ||
| 3 | - min-width: 100px; | 1 | +/** Select2 selectbox style override **/ |
| 4 | 2 | ||
| 5 | - .chosen-single { | ||
| 6 | - height: 26px; | ||
| 7 | - background: #EEE !important; | ||
| 8 | - border: 1px solid #DDD !important; | ||
| 9 | - @include box-shadow(none !important); | ||
| 10 | - @include border-radius(4px !important); | ||
| 11 | - } | ||
| 12 | - | ||
| 13 | - .chosen-results li.highlighted { | ||
| 14 | - background: #29b; | ||
| 15 | - } | 3 | +.select2-container { |
| 4 | + .select2-choice { | ||
| 5 | + background: #FFF; | ||
| 6 | + border-color: #BBB; | ||
| 16 | 7 | ||
| 17 | - .chosen-drop { | ||
| 18 | - margin-top: 10px; | ||
| 19 | - border: 1px solid #DDD !important; | ||
| 20 | - @include border-radius(4px !important); | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - .chosen-search input { | ||
| 24 | - border: 1px solid #CCC !important; | ||
| 25 | - @include box-shadow(none !important); | 8 | + .select2-arrow { |
| 9 | + background: #FFF; | ||
| 10 | + } | ||
| 26 | } | 11 | } |
| 27 | } | 12 | } |
| 28 | 13 | ||
| 29 | -/** Select2 styling **/ | ||
| 30 | -.select2-container .select2-choice { | ||
| 31 | - @include bg-light-gray-gradient; | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -.select2-container .select2-choice div { | ||
| 35 | - border: none; | ||
| 36 | - background: none; | ||
| 37 | -} | ||
| 38 | - | ||
| 39 | -.select2-drop { | ||
| 40 | - padding-top: 8px; | ||
| 41 | -} | ||
| 42 | - | ||
| 43 | -.select2-no-results, .select2-searching { | ||
| 44 | - padding: 7px; | ||
| 45 | - color: #666; | ||
| 46 | -} | ||
| 47 | - | ||
| 48 | -.chosen-container .chosen-single div b { | ||
| 49 | - background-position-y: 0px !important; | ||
| 50 | -} | ||
| 51 | - | ||
| 52 | -.chosen-container .chosen-drop .chosen-search input { | ||
| 53 | - background-position-y: -24px !important; | ||
| 54 | -} | ||
| 55 | - | ||
| 56 | -.chosen-compact { | ||
| 57 | - max-width: 170px !important; | 14 | +.select2-drop-active { |
| 15 | + border: 1px solid #BBB; | ||
| 16 | + margin-top: 4px; | ||
| 58 | } | 17 | } |
| 59 | 18 | ||
| 60 | select { | 19 | select { |
| 61 | - &.chosen { | 20 | + &.select2 { |
| 62 | width: 100px; | 21 | width: 100px; |
| 63 | } | 22 | } |
| 64 | 23 | ||
| 65 | - &.chosen-sm { | 24 | + &.select2-sm { |
| 66 | width: 100px; | 25 | width: 100px; |
| 67 | } | 26 | } |
| 68 | } | 27 | } |
| 69 | 28 | ||
| 70 | @media (min-width: $screen-sm-min) { | 29 | @media (min-width: $screen-sm-min) { |
| 71 | select { | 30 | select { |
| 72 | - &.chosen { | 31 | + &.select2 { |
| 73 | width: 150px; | 32 | width: 150px; |
| 74 | } | 33 | } |
| 75 | - &.chosen-sm { | 34 | + &.select2-sm { |
| 76 | width: 120px; | 35 | width: 120px; |
| 77 | } | 36 | } |
| 78 | } | 37 | } |
| @@ -81,10 +40,10 @@ select { | @@ -81,10 +40,10 @@ select { | ||
| 81 | /* Medium devices (desktops, 992px and up) */ | 40 | /* Medium devices (desktops, 992px and up) */ |
| 82 | @media (min-width: $screen-md-min) { | 41 | @media (min-width: $screen-md-min) { |
| 83 | select { | 42 | select { |
| 84 | - &.chosen { | 43 | + &.select2 { |
| 85 | width: 170px; | 44 | width: 170px; |
| 86 | } | 45 | } |
| 87 | - &.chosen-sm { | 46 | + &.select2-sm { |
| 88 | width: 140px; | 47 | width: 140px; |
| 89 | } | 48 | } |
| 90 | } | 49 | } |
| @@ -93,11 +52,17 @@ select { | @@ -93,11 +52,17 @@ select { | ||
| 93 | /* Large devices (large desktops, 1200px and up) */ | 52 | /* Large devices (large desktops, 1200px and up) */ |
| 94 | @media (min-width: $screen-lg-min) { | 53 | @media (min-width: $screen-lg-min) { |
| 95 | select { | 54 | select { |
| 96 | - &.chosen { | 55 | + &.select2 { |
| 97 | width: 200px; | 56 | width: 200px; |
| 98 | } | 57 | } |
| 99 | - &.chosen-sm { | 58 | + &.select2-sm { |
| 100 | width: 150px; | 59 | width: 150px; |
| 101 | } | 60 | } |
| 102 | } | 61 | } |
| 103 | } | 62 | } |
| 63 | + | ||
| 64 | + | ||
| 65 | +/** Branch/tag selector **/ | ||
| 66 | +.project-refs-form .select2-container { | ||
| 67 | + margin-right: 10px; | ||
| 68 | +} |
app/assets/stylesheets/sections/issues.scss
| @@ -77,8 +77,8 @@ input.check_all_issues { | @@ -77,8 +77,8 @@ input.check_all_issues { | ||
| 77 | @media (min-width: 800px) { .issues_filters select { width: 160px; } } | 77 | @media (min-width: 800px) { .issues_filters select { width: 160px; } } |
| 78 | @media (min-width: 1200px) { .issues_filters select { width: 220px; } } | 78 | @media (min-width: 1200px) { .issues_filters select { width: 220px; } } |
| 79 | 79 | ||
| 80 | -@media (min-width: 800px) { .issues_bulk_update .chosen-container { min-width: 120px; } } | ||
| 81 | -@media (min-width: 1200px) { .issues_bulk_update .chosen-container { min-width: 160px; } } | 80 | +@media (min-width: 800px) { .issues_bulk_update .select2-container { min-width: 120px; } } |
| 81 | +@media (min-width: 1200px) { .issues_bulk_update .select2-container { min-width: 160px; } } | ||
| 82 | 82 | ||
| 83 | .issues-holder { | 83 | .issues-holder { |
| 84 | .issues_filters { | 84 | .issues_filters { |
| @@ -105,7 +105,7 @@ input.check_all_issues { | @@ -105,7 +105,7 @@ input.check_all_issues { | ||
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | .issues_bulk_update { | 107 | .issues_bulk_update { |
| 108 | - .chosen-container { | 108 | + .select2-container { |
| 109 | text-shadow: none; | 109 | text-shadow: none; |
| 110 | } | 110 | } |
| 111 | } | 111 | } |
app/assets/stylesheets/sections/merge_requests.scss
| @@ -95,7 +95,7 @@ | @@ -95,7 +95,7 @@ | ||
| 95 | font-weight: normal !important; | 95 | font-weight: normal !important; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | - .chosen-container .chosen-single { | 98 | + .select2-container .select2-single { |
| 99 | span { | 99 | span { |
| 100 | font-weight: bold; | 100 | font-weight: bold; |
| 101 | color: #555; | 101 | color: #555; |
app/assets/stylesheets/sections/projects.scss
| @@ -75,7 +75,7 @@ | @@ -75,7 +75,7 @@ | ||
| 75 | .project-home-dropdown + & { | 75 | .project-home-dropdown + & { |
| 76 | margin-right: 45px; | 76 | margin-right: 45px; |
| 77 | } | 77 | } |
| 78 | - | 78 | + |
| 79 | .btn, | 79 | .btn, |
| 80 | .form-control { | 80 | .form-control { |
| 81 | border: 1px solid #E1E1E1; | 81 | border: 1px solid #E1E1E1; |
| @@ -230,43 +230,10 @@ ul.nav.nav-projects-tabs { | @@ -230,43 +230,10 @@ ul.nav.nav-projects-tabs { | ||
| 230 | } | 230 | } |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | -.transfer-project .chosen-container { | 233 | +.transfer-project .select2-container { |
| 234 | min-width: 200px; | 234 | min-width: 200px; |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | -/** Branch/tag selector **/ | ||
| 238 | -.project-refs-form { | ||
| 239 | - margin: 0; | ||
| 240 | - span { | ||
| 241 | - background:none !important; | ||
| 242 | - position:static !important; | ||
| 243 | - width:auto !important; | ||
| 244 | - height:auto !important; | ||
| 245 | - } | ||
| 246 | -} | ||
| 247 | - | ||
| 248 | -.project-refs-form .chosen-container { | ||
| 249 | - position: relative; | ||
| 250 | - top: 0; | ||
| 251 | - left: 0; | ||
| 252 | - margin-right: 10px; | ||
| 253 | - | ||
| 254 | - .chosen-single span { | ||
| 255 | - font-weight: bold; | ||
| 256 | - color: #555; | ||
| 257 | - } | ||
| 258 | - | ||
| 259 | - &.chosen-container-active { | ||
| 260 | - .chosen-drop { | ||
| 261 | - min-width: 400px; | ||
| 262 | - } | ||
| 263 | - | ||
| 264 | - .chosen-results { | ||
| 265 | - max-height: 400px; | ||
| 266 | - } | ||
| 267 | - } | ||
| 268 | -} | ||
| 269 | - | ||
| 270 | .deploy-project-label { | 237 | .deploy-project-label { |
| 271 | margin: 1px; | 238 | margin: 1px; |
| 272 | } | 239 | } |
app/views/admin/groups/show.html.haml
| @@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
| 57 | %div | 57 | %div |
| 58 | = users_select_tag(:user_ids, multiple: true) | 58 | = users_select_tag(:user_ids, multiple: true) |
| 59 | %div.prepend-top-10 | 59 | %div.prepend-top-10 |
| 60 | - = select_tag :group_access, options_for_select(UsersGroup.group_access_roles), class: "project-access-select chosen" | 60 | + = select_tag :group_access, options_for_select(UsersGroup.group_access_roles), class: "project-access-select select2" |
| 61 | %hr | 61 | %hr |
| 62 | = submit_tag 'Add users into group', class: "btn btn-create" | 62 | = submit_tag 'Add users into group', class: "btn btn-create" |
| 63 | .ui-box | 63 | .ui-box |
app/views/groups/_new_group_member.html.haml
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | %p 2. Set access level for them | 12 | %p 2. Set access level for them |
| 13 | .form-group | 13 | .form-group |
| 14 | = f.label :group_access, "Group Access", class: 'control-label' | 14 | = f.label :group_access, "Group Access", class: 'control-label' |
| 15 | - .col-sm-10= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select chosen" | 15 | + .col-sm-10= select_tag :group_access, options_for_select(UsersGroup.group_access_roles, @users_group.group_access), class: "project-access-select select2" |
| 16 | 16 | ||
| 17 | .form-actions | 17 | .form-actions |
| 18 | = f.submit 'Add users into group', class: "btn btn-create" | 18 | = f.submit 'Add users into group', class: "btn btn-create" |
app/views/projects/edit.html.haml
| @@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
| 26 | - if @project.repository.exists? && @project.repository.branch_names.any? | 26 | - if @project.repository.exists? && @project.repository.branch_names.any? |
| 27 | .form-group | 27 | .form-group |
| 28 | = f.label :default_branch, "Default Branch", class: 'control-label' | 28 | = f.label :default_branch, "Default Branch", class: 'control-label' |
| 29 | - .col-sm-10= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen select-wide'}) | 29 | + .col-sm-10= f.select(:default_branch, @repository.branch_names, {}, {class: 'select2 select-wide'}) |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | = render "visibility_level", f: f, visibility_level: @project.visibility_level, can_change_visibility_level: can?(current_user, :change_visibility_level, @project) | 32 | = render "visibility_level", f: f, visibility_level: @project.visibility_level, can_change_visibility_level: can?(current_user, :change_visibility_level, @project) |
| @@ -145,7 +145,7 @@ | @@ -145,7 +145,7 @@ | ||
| 145 | %span Namespace | 145 | %span Namespace |
| 146 | .col-sm-10 | 146 | .col-sm-10 |
| 147 | .form-group | 147 | .form-group |
| 148 | - = f.select :namespace_id, namespaces_options(@project.namespace_id), { prompt: 'Choose a project namespace' }, { class: 'chosen' } | 148 | + = f.select :namespace_id, namespaces_options(@project.namespace_id), { prompt: 'Choose a project namespace' }, { class: 'select2' } |
| 149 | %ul | 149 | %ul |
| 150 | %li Be careful. Changing the project's namespace can have unintended side effects. | 150 | %li Be careful. Changing the project's namespace can have unintended side effects. |
| 151 | %li You can only transfer the project to namespaces you manage. | 151 | %li You can only transfer the project to namespaces you manage. |
app/views/projects/issues/_form.html.haml
| @@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
| 24 | %i.icon-user | 24 | %i.icon-user |
| 25 | Assign to | 25 | Assign to |
| 26 | .col-sm-10 | 26 | .col-sm-10 |
| 27 | - = f.select(:assignee_id, assignee_options(@issue), { include_blank: "Select a user" }, {class: 'chosen'}) | 27 | + = f.select(:assignee_id, assignee_options(@issue), { include_blank: "Select a user" }, {class: 'select2'}) |
| 28 | | 28 | |
| 29 | = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link' | 29 | = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link' |
| 30 | .form-group | 30 | .form-group |
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | = f.label :milestone_id, class: 'control-label' do | 32 | = f.label :milestone_id, class: 'control-label' do |
| 33 | %i.icon-time | 33 | %i.icon-time |
| 34 | Milestone | 34 | Milestone |
| 35 | - .col-sm-10= f.select(:milestone_id, milestone_options(@issue), { include_blank: "Select milestone" }, {class: 'chosen'}) | 35 | + .col-sm-10= f.select(:milestone_id, milestone_options(@issue), { include_blank: "Select milestone" }, {class: 'select2'}) |
| 36 | 36 | ||
| 37 | .form-group | 37 | .form-group |
| 38 | = f.label :label_list, class: 'control-label' do | 38 | = f.label :label_list, class: 'control-label' do |
| @@ -87,6 +87,6 @@ | @@ -87,6 +87,6 @@ | ||
| 87 | }); | 87 | }); |
| 88 | 88 | ||
| 89 | $('.assign-to-me-link').on('click', function(e){ | 89 | $('.assign-to-me-link').on('click', function(e){ |
| 90 | - $('#issue_assignee_id').val("#{current_user.id}").trigger("chosen:updated"); | 90 | + $('#issue_assignee_id').val("#{current_user.id}").trigger("change"); |
| 91 | e.preventDefault(); | 91 | e.preventDefault(); |
| 92 | }); | 92 | }); |
app/views/projects/issues/_issue_context.html.haml
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | - if can?(current_user, :modify_issue, @issue) | 6 | - if can?(current_user, :modify_issue, @issue) |
| 7 | = link_to profile_path(issue.assignee) do | 7 | = link_to profile_path(issue.assignee) do |
| 8 | = image_tag(avatar_icon(issue.assignee.email), class: 'avatar avatar-inline s16 assignee') if issue.assignee | 8 | = image_tag(avatar_icon(issue.assignee.email), class: 'avatar avatar-inline s16 assignee') if issue.assignee |
| 9 | - = f.select(:assignee_id, assignee_options(@issue), { include_blank: "Assign to user (none):" }, {class: 'chosen'}) | 9 | + = f.select(:assignee_id, assignee_options(@issue), { include_blank: "Assign to user (none):" }, {class: 'select2'}) |
| 10 | - elsif issue.assignee | 10 | - elsif issue.assignee |
| 11 | = link_to_member(@project, @issue.assignee) | 11 | = link_to_member(@project, @issue.assignee) |
| 12 | 12 | ||
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | %cite.cgray Attached to milestone | 17 | %cite.cgray Attached to milestone |
| 18 | 18 | ||
| 19 | - if can?(current_user, :modify_issue, @issue) | 19 | - if can?(current_user, :modify_issue, @issue) |
| 20 | - = f.select(:milestone_id, milestone_options(@issue), { include_blank: "Select milestone (none):" }, {class: 'chosen chosen-compact'}) | 20 | + = f.select(:milestone_id, milestone_options(@issue), { include_blank: "Select milestone (none):" }, {class: 'select2 select2-compact'}) |
| 21 | 21 | ||
| 22 | = hidden_field_tag :issue_context | 22 | = hidden_field_tag :issue_context |
| 23 | = f.submit class: 'btn' | 23 | = f.submit class: 'btn' |
app/views/projects/issues/update.js.haml
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | - elsif params[:issue_context] | 5 | - elsif params[:issue_context] |
| 6 | $('.issue-box .context').html("#{escape_javascript(render partial: 'issue_context', locals: { issue: @issue })}"); | 6 | $('.issue-box .context').html("#{escape_javascript(render partial: 'issue_context', locals: { issue: @issue })}"); |
| 7 | $('.issue-box .context').effect('highlight'); | 7 | $('.issue-box .context').effect('highlight'); |
| 8 | - $('.chosen').chosen(); | 8 | + $('.select2').select2(); |
| 9 | $('.edit-issue.inline-update input[type="submit"]').hide(); | 9 | $('.edit-issue.inline-update input[type="submit"]').hide(); |
| 10 | - if @issue.milestone | 10 | - if @issue.milestone |
| 11 | $('.milestone-nav-link').replaceWith("<span class='milestone-nav-link'>| <span class='light'>Milestone</span> #{escape_javascript(link_to @issue.milestone.title, project_milestone_path(@issue.project, @issue.milestone))}</span>") | 11 | $('.milestone-nav-link').replaceWith("<span class='milestone-nav-link'>| <span class='light'>Milestone</span> #{escape_javascript(link_to @issue.milestone.title, project_milestone_path(@issue.project, @issue.milestone))}</span>") |
app/views/projects/merge_requests/_form.html.haml
| @@ -10,10 +10,10 @@ | @@ -10,10 +10,10 @@ | ||
| 10 | .col-md-5 | 10 | .col-md-5 |
| 11 | .clearfix | 11 | .clearfix |
| 12 | .pull-left | 12 | .pull-left |
| 13 | - = f.select(:source_project_id, [[@merge_request.source_project_path,@merge_request.source_project.id]] , {}, { class: 'source_project chosen span3', disabled: @merge_request.persisted? }) | 13 | + = f.select(:source_project_id, [[@merge_request.source_project_path,@merge_request.source_project.id]] , {}, { class: 'source_project select2 span3', disabled: @merge_request.persisted? }) |
| 14 | .pull-left | 14 | .pull-left |
| 15 | | 15 | |
| 16 | - = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch chosen span2'}) | 16 | + = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch select2 span2'}) |
| 17 | .mr_source_commit.prepend-top-10 | 17 | .mr_source_commit.prepend-top-10 |
| 18 | .col-md-2 | 18 | .col-md-2 |
| 19 | .merge-request-angle | 19 | .merge-request-angle |
| @@ -22,10 +22,10 @@ | @@ -22,10 +22,10 @@ | ||
| 22 | .clearfix | 22 | .clearfix |
| 23 | .pull-left | 23 | .pull-left |
| 24 | - projects = @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project] | 24 | - projects = @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project] |
| 25 | - = f.select(:target_project_id, options_from_collection_for_select(projects, 'id', 'path_with_namespace'), {}, { class: 'target_project chosen span3', disabled: @merge_request.persisted? }) | 25 | + = f.select(:target_project_id, options_from_collection_for_select(projects, 'id', 'path_with_namespace'), {}, { class: 'target_project select2 span3', disabled: @merge_request.persisted? }) |
| 26 | .pull-left | 26 | .pull-left |
| 27 | | 27 | |
| 28 | - = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch chosen span2'}) | 28 | + = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch select2 span2'}) |
| 29 | .mr_target_commit.prepend-top-10 | 29 | .mr_target_commit.prepend-top-10 |
| 30 | 30 | ||
| 31 | %hr | 31 | %hr |
| @@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
| 47 | %i.icon-user | 47 | %i.icon-user |
| 48 | Assign to | 48 | Assign to |
| 49 | .col-sm-10 | 49 | .col-sm-10 |
| 50 | - = f.select(:assignee_id, assignee_options(@merge_request), { include_blank: "Select a user" }, {class: 'chosen'}) | 50 | + = f.select(:assignee_id, assignee_options(@merge_request), { include_blank: "Select a user" }, {class: 'select2'}) |
| 51 | | 51 | |
| 52 | = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link' | 52 | = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link' |
| 53 | .form-group | 53 | .form-group |
| @@ -55,7 +55,7 @@ | @@ -55,7 +55,7 @@ | ||
| 55 | = f.label :milestone_id, class: 'control-label' do | 55 | = f.label :milestone_id, class: 'control-label' do |
| 56 | %i.icon-time | 56 | %i.icon-time |
| 57 | Milestone | 57 | Milestone |
| 58 | - .col-sm-10= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'chosen'}) | 58 | + .col-sm-10= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'select2'}) |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | .form-actions | 61 | .form-actions |
| @@ -90,6 +90,6 @@ | @@ -90,6 +90,6 @@ | ||
| 90 | $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() }); | 90 | $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() }); |
| 91 | }); | 91 | }); |
| 92 | $('.assign-to-me-link').on('click', function(e){ | 92 | $('.assign-to-me-link').on('click', function(e){ |
| 93 | - $('#merge_request_assignee_id').val("#{current_user.id}").trigger("chosen:updated"); | 93 | + $('#merge_request_assignee_id').val("#{current_user.id}").trigger("select2:updated"); |
| 94 | e.preventDefault(); | 94 | e.preventDefault(); |
| 95 | }); | 95 | }); |
app/views/projects/merge_requests/update_branches.js.haml
| 1 | :plain | 1 | :plain |
| 2 | $(".target_branch").html("#{escape_javascript(options_for_select(@target_branches))}"); | 2 | $(".target_branch").html("#{escape_javascript(options_for_select(@target_branches))}"); |
| 3 | - $(".target_branch").trigger("chosen:updated"); | 3 | + $(".target_branch").trigger("select2:updated"); |
| 4 | $(".mr_target_commit").html(""); | 4 | $(".mr_target_commit").html(""); |
| 5 | $(".target_branch").trigger("change"); | 5 | $(".target_branch").trigger("change"); |
app/views/projects/new.html.haml
| @@ -27,7 +27,7 @@ | @@ -27,7 +27,7 @@ | ||
| 27 | = f.label :namespace_id, class: 'control-label' do | 27 | = f.label :namespace_id, class: 'control-label' do |
| 28 | %span Namespace | 28 | %span Namespace |
| 29 | .col-sm-10 | 29 | .col-sm-10 |
| 30 | - = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen', tabindex: 2} | 30 | + = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'select2', tabindex: 2} |
| 31 | 31 | ||
| 32 | .form-group | 32 | .form-group |
| 33 | .col-sm-2 | 33 | .col-sm-2 |
app/views/projects/protected_branches/index.html.haml
| @@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
| 22 | .entry.clearfix | 22 | .entry.clearfix |
| 23 | = f.label :name, "Branch" | 23 | = f.label :name, "Branch" |
| 24 | .col-md-3 | 24 | .col-md-3 |
| 25 | - = f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , {include_blank: "Select branch"}, {class: "chosen span3"}) | 25 | + = f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , {include_blank: "Select branch"}, {class: "select2 span3"}) |
| 26 | | 26 | |
| 27 | = f.submit 'Protect', class: "btn-create btn" | 27 | = f.submit 'Protect', class: "btn-create btn" |
| 28 | - unless @branches.empty? | 28 | - unless @branches.empty? |
app/views/projects/snippets/_form.html.haml
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | .col-sm-10= f.text_field :title, placeholder: "Example Snippet", class: 'form-control', required: true | 14 | .col-sm-10= f.text_field :title, placeholder: "Example Snippet", class: 'form-control', required: true |
| 15 | .form-group | 15 | .form-group |
| 16 | = f.label "Lifetime" | 16 | = f.label "Lifetime" |
| 17 | - .col-sm-10= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'} | 17 | + .col-sm-10= f.select :expires_at, lifetime_select_options, {}, {class: 'select2 span2'} |
| 18 | .form-group | 18 | .form-group |
| 19 | .file-editor | 19 | .file-editor |
| 20 | = f.label :file_name, "File" | 20 | = f.label :file_name, "File" |
app/views/projects/team_members/_form.html.haml
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | %p 2. Set access level for them | 17 | %p 2. Set access level for them |
| 18 | .form-group | 18 | .form-group |
| 19 | = f.label :project_access, "Project Access", class: 'control-label' | 19 | = f.label :project_access, "Project Access", class: 'control-label' |
| 20 | - .col-sm-10= select_tag :project_access, options_for_select(Gitlab::Access.options, @user_project_relation.project_access), class: "project-access-select chosen" | 20 | + .col-sm-10= select_tag :project_access, options_for_select(Gitlab::Access.options, @user_project_relation.project_access), class: "project-access-select select2" |
| 21 | 21 | ||
| 22 | .form-actions | 22 | .form-actions |
| 23 | = f.submit 'Add users', class: "btn btn-create" | 23 | = f.submit 'Add users', class: "btn btn-create" |
app/views/projects/team_members/import.html.haml
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | = form_tag apply_import_project_team_members_path(@project), method: 'post', class: 'form-horizontal' do | 6 | = form_tag apply_import_project_team_members_path(@project), method: 'post', class: 'form-horizontal' do |
| 7 | .form-group | 7 | .form-group |
| 8 | = label_tag :source_project_id, "Project", class: 'control-label' | 8 | = label_tag :source_project_id, "Project", class: 'control-label' |
| 9 | - .col-sm-10= select_tag(:source_project_id, options_from_collection_for_select(current_user.authorized_projects, :id, :name_with_namespace), prompt: "Select project", class: "chosen lg", required: true) | 9 | + .col-sm-10= select_tag(:source_project_id, options_from_collection_for_select(current_user.authorized_projects, :id, :name_with_namespace), prompt: "Select project", class: "select2 lg", required: true) |
| 10 | 10 | ||
| 11 | .form-actions | 11 | .form-actions |
| 12 | = submit_tag 'Import project members', class: "btn btn-create" | 12 | = submit_tag 'Import project members', class: "btn btn-create" |
app/views/shared/_ref_switcher.html.haml
| 1 | = form_tag switch_project_refs_path(@project), method: :get, class: "project-refs-form" do | 1 | = form_tag switch_project_refs_path(@project), method: :get, class: "project-refs-form" do |
| 2 | - = select_tag "ref", grouped_options_refs, class: "project-refs-select chosen chosen-sm" | 2 | + = select_tag "ref", grouped_options_refs, class: "project-refs-select select2 select2-sm" |
| 3 | = hidden_field_tag :destination, destination | 3 | = hidden_field_tag :destination, destination |
| 4 | - if defined?(path) | 4 | - if defined?(path) |
| 5 | = hidden_field_tag :path, path | 5 | = hidden_field_tag :path, path |
features/steps/project/project_forked_merge_requests.rb
| @@ -3,7 +3,7 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps | @@ -3,7 +3,7 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps | ||
| 3 | include SharedProject | 3 | include SharedProject |
| 4 | include SharedNote | 4 | include SharedNote |
| 5 | include SharedPaths | 5 | include SharedPaths |
| 6 | - include ChosenHelper | 6 | + include Select2Helper |
| 7 | 7 | ||
| 8 | step 'I am a member of project "Shop"' do | 8 | step 'I am a member of project "Shop"' do |
| 9 | @project = Project.find_by_name "Shop" | 9 | @project = Project.find_by_name "Shop" |
| @@ -42,14 +42,14 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps | @@ -42,14 +42,14 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps | ||
| 42 | end | 42 | end |
| 43 | 43 | ||
| 44 | step 'I fill out a "Merge Request On Forked Project" merge request' do | 44 | step 'I fill out a "Merge Request On Forked Project" merge request' do |
| 45 | - chosen @forked_project.id, from: "#merge_request_source_project_id" | ||
| 46 | - chosen @project.id, from: "#merge_request_target_project_id" | 45 | + select2 @forked_project.id, from: "#merge_request_source_project_id" |
| 46 | + select2 @project.id, from: "#merge_request_target_project_id" | ||
| 47 | 47 | ||
| 48 | find(:select, "merge_request_source_project_id", {}).value.should == @forked_project.id.to_s | 48 | find(:select, "merge_request_source_project_id", {}).value.should == @forked_project.id.to_s |
| 49 | find(:select, "merge_request_target_project_id", {}).value.should == @project.id.to_s | 49 | find(:select, "merge_request_target_project_id", {}).value.should == @project.id.to_s |
| 50 | 50 | ||
| 51 | - chosen "master", from: "#merge_request_source_branch" | ||
| 52 | - chosen "stable", from: "#merge_request_target_branch" | 51 | + select2 "master", from: "#merge_request_source_branch" |
| 52 | + select2 "stable", from: "#merge_request_target_branch" | ||
| 53 | 53 | ||
| 54 | find(:select, "merge_request_source_branch", {}).value.should == 'master' | 54 | find(:select, "merge_request_source_branch", {}).value.should == 'master' |
| 55 | find(:select, "merge_request_target_branch", {}).value.should == 'stable' | 55 | find(:select, "merge_request_target_branch", {}).value.should == 'stable' |
features/steps/project/project_network_graph.rb
| @@ -15,11 +15,11 @@ class ProjectNetworkGraph < Spinach::FeatureSteps | @@ -15,11 +15,11 @@ class ProjectNetworkGraph < Spinach::FeatureSteps | ||
| 15 | end | 15 | end |
| 16 | 16 | ||
| 17 | And 'page should select "master" in select box' do | 17 | And 'page should select "master" in select box' do |
| 18 | - page.should have_selector '.chosen-single span', text: "master" | 18 | + page.should have_selector '.select2-chosen', text: "master" |
| 19 | end | 19 | end |
| 20 | 20 | ||
| 21 | And 'page should select "v2.1.0" in select box' do | 21 | And 'page should select "v2.1.0" in select box' do |
| 22 | - page.should have_selector '.chosen-single span', text: "v2.1.0" | 22 | + page.should have_selector '.select2-chosen', text: "v2.1.0" |
| 23 | end | 23 | end |
| 24 | 24 | ||
| 25 | And 'page should have "master" on graph' do | 25 | And 'page should have "master" on graph' do |
| @@ -56,11 +56,11 @@ class ProjectNetworkGraph < Spinach::FeatureSteps | @@ -56,11 +56,11 @@ class ProjectNetworkGraph < Spinach::FeatureSteps | ||
| 56 | end | 56 | end |
| 57 | 57 | ||
| 58 | And 'page should select "stable" in select box' do | 58 | And 'page should select "stable" in select box' do |
| 59 | - page.should have_selector '.chosen-single span', text: "stable" | 59 | + page.should have_selector '.select2-chosen', text: "stable" |
| 60 | end | 60 | end |
| 61 | 61 | ||
| 62 | And 'page should select "v2.1.0" in select box' do | 62 | And 'page should select "v2.1.0" in select box' do |
| 63 | - page.should have_selector '.chosen-single span', text: "v2.1.0" | 63 | + page.should have_selector '.select2-chosen', text: "v2.1.0" |
| 64 | end | 64 | end |
| 65 | 65 | ||
| 66 | And 'page should have "stable" on graph' do | 66 | And 'page should have "stable" on graph' do |
features/support/env.rb
| @@ -15,7 +15,7 @@ require 'spinach/capybara' | @@ -15,7 +15,7 @@ require 'spinach/capybara' | ||
| 15 | require 'sidekiq/testing/inline' | 15 | require 'sidekiq/testing/inline' |
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | -%w(valid_commit big_commits select2_helper chosen_helper test_env).each do |f| | 18 | +%w(valid_commit big_commits select2_helper test_env).each do |f| |
| 19 | require Rails.root.join('spec', 'support', f) | 19 | require Rails.root.join('spec', 'support', f) |
| 20 | end | 20 | end |
| 21 | 21 |
spec/support/chosen_helper.rb
| @@ -1,21 +0,0 @@ | @@ -1,21 +0,0 @@ | ||
| 1 | -# Chosen programmatic helper | ||
| 2 | -# It allows you to select value from chosen select | ||
| 3 | -# | ||
| 4 | -# Params | ||
| 5 | -# value - real value of selected item | ||
| 6 | -# opts - options containing css selector | ||
| 7 | -# | ||
| 8 | -# Usage: | ||
| 9 | -# | ||
| 10 | -# chosen(2, from: '#user_ids') | ||
| 11 | -# | ||
| 12 | - | ||
| 13 | -module ChosenHelper | ||
| 14 | - def chosen(value, options={}) | ||
| 15 | - raise "Must pass a hash containing 'from'" if not options.is_a?(Hash) or not options.has_key?(:from) | ||
| 16 | - | ||
| 17 | - selector = options[:from] | ||
| 18 | - | ||
| 19 | - page.execute_script("$('#{selector}').val('#{value}').trigger('chosen:updated');") | ||
| 20 | - end | ||
| 21 | -end |