Skip to content
Browse files

Merge branch 'master' into stable

Conflicts:
	doc/install/installation.md
  • Loading branch information...
2 parents e469084 + ced242a commit 319f0c30573d1f2158adf52276981b2c7780392f @randx randx committed
Showing with 5,725 additions and 1,739 deletions.
  1. +5 −2 .travis.yml
  2. +19 −1 CHANGELOG
  3. +8 −12 CONTRIBUTING.md
  4. +44 −44 Gemfile
  5. +208 −168 Gemfile.lock
  6. +0 −2 Procfile.production
  7. +1 −1 README.md
  8. +25 −0 ROADMAP.md
  9. +1 −1 VERSION
  10. BIN app/assets/images/event_filter_comments.png
  11. BIN app/assets/images/event_filter_merged.png
  12. BIN app/assets/images/event_filter_push.png
  13. BIN app/assets/images/event_filter_team.png
  14. BIN app/assets/images/gitlab_classic.png
  15. BIN app/assets/images/gitlab_default.png
  16. BIN app/assets/images/gitlab_modern.png
  17. BIN app/assets/images/logo_dark.png
  18. BIN app/assets/images/logo_white.png
  19. BIN app/assets/images/service-disabled-gitlab-ci.png
  20. BIN app/assets/images/service-gitlab-ci.png
  21. BIN app/assets/images/trans_bg.gif
  22. +3 −0 app/assets/javascripts/application.js
  23. +32 −37 app/assets/javascripts/gfm_auto_complete.js.coffee
  24. +0 −10 app/assets/javascripts/graph.js.coffee
  25. +8 −14 app/assets/javascripts/issues.js
  26. +0 −5 app/assets/javascripts/loader.js.coffee
  27. +18 −30 app/assets/javascripts/main.js.coffee
  28. +11 −0 app/assets/javascripts/merge_requests.js
  29. +7 −0 app/assets/javascripts/milestones.js.coffee
  30. +29 −7 app/assets/javascripts/notes.js
  31. +10 −0 app/assets/javascripts/profile.js.coffee
  32. +7 −0 app/assets/javascripts/projects.js.coffee
  33. +0 −6 app/assets/javascripts/snippets.js.coffee
  34. +37 −20 app/assets/javascripts/tree.js.coffee
  35. +18 −35 app/assets/stylesheets/common.scss
  36. +1 −0 app/assets/stylesheets/gitlab_bootstrap/buttons.scss
  37. +10 −4 app/assets/stylesheets/gitlab_bootstrap/common.scss
  38. +64 −25 app/assets/stylesheets/gitlab_bootstrap/files.scss
  39. +9 −1 app/assets/stylesheets/gitlab_bootstrap/lists.scss
  40. +5 −0 app/assets/stylesheets/gitlab_bootstrap/tables.scss
  41. +8 −0 app/assets/stylesheets/gitlab_bootstrap/typography.scss
  42. +30 −31 app/assets/stylesheets/highlight/dark.scss
  43. +61 −133 app/assets/stylesheets/highlight/white.scss
  44. +24 −11 app/assets/stylesheets/main.scss
  45. +43 −19 app/assets/stylesheets/ref_select.scss
  46. +70 −23 app/assets/stylesheets/sections/commits.scss
  47. +39 −5 app/assets/stylesheets/sections/editor.scss
  48. +27 −0 app/assets/stylesheets/sections/events.scss
  49. +101 −71 app/assets/stylesheets/sections/header.scss
  50. +1 −1 app/assets/stylesheets/sections/issues.scss
  51. +23 −1 app/assets/stylesheets/sections/merge_requests.scss
  52. +1 −1 app/assets/stylesheets/sections/nav.scss
  53. +14 −0 app/assets/stylesheets/sections/profile.scss
  54. +9 −0 app/assets/stylesheets/sections/projects.scss
  55. +60 −0 app/assets/stylesheets/sections/themes.scss
  56. +10 −4 app/assets/stylesheets/sections/tree.scss
  57. +15 −29 app/assets/stylesheets/themes/ui_basic.scss
  58. +23 −0 app/assets/stylesheets/themes/ui_color.scss
  59. +23 −0 app/assets/stylesheets/themes/ui_gray.scss
  60. +12 −33 app/assets/stylesheets/themes/ui_mars.scss
  61. +5 −116 app/assets/stylesheets/themes/ui_modern.scss
  62. +1 −1 app/contexts/commit_load_context.rb
  63. +17 −2 app/contexts/merge_requests_load_context.rb
  64. +3 −1 app/contexts/search_context.rb
  65. +7 −2 app/controllers/admin/dashboard_controller.rb
  66. +1 −1 app/controllers/admin/projects_controller.rb
  67. +3 −0 app/controllers/admin/users_controller.rb
  68. +9 −0 app/controllers/application_controller.rb
  69. +1 −9 app/controllers/blob_controller.rb
  70. +11 −2 app/controllers/dashboard_controller.rb
  71. +1 −1 app/controllers/groups_controller.rb
  72. +2 −1 app/controllers/milestones_controller.rb
  73. +6 −2 app/controllers/profile_controller.rb
  74. +6 −3 app/controllers/projects_controller.rb
  75. +0 −1 app/controllers/refs_controller.rb
  76. +6 −1 app/controllers/repositories_controller.rb
  77. +1 −0 app/controllers/search_controller.rb
  78. +37 −0 app/controllers/services_controller.rb
  79. +3 −4 app/controllers/tree_controller.rb
  80. +34 −14 app/decorators/commit_decorator.rb
  81. +2 −2 app/decorators/tree_decorator.rb
  82. +11 −0 app/decorators/user_decorator.rb
  83. +1 −1 app/helpers/application_helper.rb
  84. +7 −2 app/helpers/commits_helper.rb
  85. +18 −0 app/helpers/events_helper.rb
  86. +4 −0 app/helpers/merge_requests_helper.rb
  87. +4 −0 app/helpers/projects_helper.rb
  88. +25 −0 app/helpers/tree_helper.rb
  89. +8 −4 app/models/commit.rb
  90. +16 −17 app/models/event.rb
  91. +39 −0 app/models/gitlab_ci_service.rb
  92. +12 −13 app/models/group.rb
  93. +18 −21 app/models/issue.rb
  94. +14 −15 app/models/key.rb
  95. +29 −24 app/models/merge_request.rb
  96. +29 −16 app/models/milestone.rb
  97. +22 −23 app/models/note.rb
  98. +33 −23 app/models/project.rb
  99. +8 −8 app/models/project_hook.rb
  100. +11 −12 app/models/protected_branch.rb
  101. +23 −0 app/models/service.rb
  102. +16 −0 app/models/service_hook.rb
  103. +15 −16 app/models/snippet.rb
  104. +13 −13 app/models/system_hook.rb
  105. +1 −1 app/models/tree.rb
  106. +34 −35 app/models/user.rb
  107. +12 −13 app/models/users_project.rb
  108. +13 −13 app/models/web_hook.rb
  109. +20 −15 app/models/wiki.rb
  110. +2 −2 app/roles/account.rb
  111. +1 −0 app/roles/issue_commonality.rb
  112. +73 −42 app/roles/push_observer.rb
  113. +1 −1 app/roles/repository.rb
  114. +16 −8 app/views/admin/dashboard/index.html.haml
  115. +1 −1 app/views/admin/projects/show.html.haml
  116. +1 −1 app/views/admin/resque/show.html.haml
  117. +1 −4 app/views/blame/_head.html.haml
  118. +3 −5 app/views/blame/show.html.haml
  119. 0 app/views/{commits → commit}/huge_commit.html.haml
  120. +15 −0 app/views/commit/show.html.haml
  121. +2 −3 app/views/commits/_commit.html.haml
  122. +2 −3 app/views/commits/_commit_box.html.haml
  123. +13 −13 app/views/commits/_diff_head.html.haml
  124. +30 −16 app/views/commits/_diffs.html.haml
  125. +5 −0 app/views/commits/_head.html.haml
  126. +1 −8 app/views/commits/show.html.haml
  127. +8 −1 app/views/dashboard/index.html.haml
  128. +6 −5 app/views/devise/sessions/new.html.haml
  129. +3 −2 app/views/help/system_hooks.html.haml
  130. +2 −2 app/views/issues/_form.html.haml
  131. +2 −3 app/views/issues/edit.js.haml
  132. +2 −0 app/views/issues/index.html.haml
  133. +2 −3 app/views/issues/new.js.haml
  134. +1 −1 app/views/keys/index.html.haml
  135. +29 −31 app/views/layouts/_head_panel.html.haml
  136. +5 −5 app/views/layouts/_init_auto_complete.html.haml
  137. +11 −0 app/views/layouts/_search.html.haml
  138. +14 −8 app/views/merge_requests/_form.html.haml
  139. +4 −0 app/views/merge_requests/_merge_request.html.haml
  140. +1 −1 app/views/merge_requests/branch_from.js.haml
  141. +1 −2 app/views/merge_requests/branch_to.js.haml
  142. +24 −13 app/views/merge_requests/index.html.haml
  143. +8 −1 app/views/merge_requests/show/_mr_box.html.haml
  144. +16 −12 app/views/milestones/_milestone.html.haml
  145. +24 −11 app/views/milestones/show.html.haml
  146. +1 −1 app/views/notes/_common_form.html.haml
  147. +2 −3 app/views/notes/_create_common_note.js.haml
  148. +1 −1 app/views/notes/_per_line_form.html.haml
  149. +1 −1 app/views/notify/project_access_granted_email.html.haml
  150. +5 −8 app/views/profile/account.html.haml
  151. +36 −29 app/views/profile/design.html.haml
  152. +21 −21 app/views/profile/show.html.haml
  153. +9 −0 app/views/profile/update.js.erb
  154. +4 −8 app/views/projects/_clone_panel.html.haml
  155. +4 −6 app/views/projects/_form.html.haml
  156. +4 −0 app/views/projects/_project_head.html.haml
  157. +3 −3 app/views/projects/create.js.haml
  158. +1 −1 app/views/projects/graph.html.haml
  159. +1 −1 app/views/projects/update.js.haml
  160. +13 −7 app/views/repositories/_branch.html.haml
  161. +3 −1 app/views/repositories/_branches_head.html.haml
  162. +41 −0 app/views/repositories/stats.html.haml
  163. +12 −10 app/views/repositories/tags.html.haml
  164. +18 −1 app/views/search/show.html.haml
  165. +43 −0 app/views/services/_gitlab_ci.html.haml
  166. +2 −0 app/views/services/edit.html.haml
  167. +15 −0 app/views/services/index.html.haml
  168. +4 −0 app/views/shared/_clone_panel.html.haml
  169. +2 −7 app/views/shared/_no_ssh.html.haml
  170. +1 −1 app/views/tree/_blob.html.haml
  171. +1 −4 app/views/tree/_head.html.haml
  172. +1 −1 app/views/tree/_submodule_item.html.haml
  173. +1 −1 app/views/tree/blob/_text.html.haml
  174. +28 −12 app/views/tree/edit.html.haml
  175. +1 −1 app/views/wikis/_form.html.haml
  176. +7 −3 app/workers/post_receive.rb
  177. +9 −1 config/application.rb
  178. +11 −9 config/environments/development.rb
  179. +9 −2 config/environments/production.rb
  180. +2 −10 config/environments/test.rb
  181. +1 −0 config/gitlab.yml.example
  182. +4 −0 config/initializers/1_settings.rb
  183. +0 −19 config/initializers/3_grit_ext.rb
  184. +3 −5 config/initializers/4_resque.rb
  185. +2 −0 config/initializers/gemoji.rb
  186. +0 −13 config/initializers/quite_assets.rb
  187. +8 −1 config/routes.rb
  188. +3 −3 db/fixtures/development/002_project.rb
  189. +6 −0 db/fixtures/development/004_teams.rb
  190. +0 −40 db/fixtures/development/005_issues.rb
  191. +13 −0 db/fixtures/development/005_milestones.rb
  192. +19 −40 db/fixtures/development/006_wall.rb
  193. +23 −0 db/fixtures/development/007_issues.rb
  194. +25 −0 db/fixtures/development/008_merge_requests.rb
  195. +27 −0 db/fixtures/development/009_source_code.rb
  196. +5 −0 db/migrate/20121026114600_add_milestone_id_to_merge_requests.rb
  197. +12 −0 db/migrate/20121119170638_create_services.rb
  198. +5 −0 db/migrate/20121120051432_add_service_id_to_web_hook.rb
  199. +5 −0 db/migrate/20121120103700_add_active_to_service.rb
  200. +5 −0 db/migrate/20121120113838_add_project_url_to_service.rb
  201. +28 −15 db/schema.rb
  202. +0 −2 doc/README_FOR_APP
  203. +194 −0 doc/api/merge_requests.md
  204. +2 −4 doc/api/users.md
  205. +570 −0 doc/app/Ability.html
  206. +881 −0 doc/app/Account.html
  207. +531 −0 doc/app/ActivityObserver.html
  208. +432 −0 doc/app/Admin.html
  209. +488 −0 doc/app/Admin/DashboardController.html
Sorry, we could not display the entire diff because too many files (509) changed.
View
7 .travis.yml
@@ -3,8 +3,11 @@ env:
- DB=mysql
before_install:
- sudo apt-get install libicu-dev -y
- - sudo apt-get install libqt4-dev libqtwebkit-dev -y
- - gem install charlock_holmes -v="0.6.8"
+ - wget -P /tmp http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-i686.tar.bz2
+ - tar -xf /tmp/phantomjs-1.7.0-linux-i686.tar.bz2 -C /tmp/
+ - sudo rm -rf /usr/local/phantomjs
+ - sudo mv /tmp/phantomjs-1.7.0-linux-i686 /usr/local/phantomjs
+ - gem install charlock_holmes -v="0.6.9"
branches:
only:
- 'master'
View
20 CHANGELOG
@@ -1,3 +1,21 @@
+v 3.1.0
+ - Updated gems
+ - Services: Gitlab CI integration
+ - Events filter on dashboard
+ - Own namespace for redis/resque
+ - Optimized commit diff views
+ - add alphabetical order for projects admin page
+ - Improved web editor
+ - Commit stats page
+ - Documentation split and cleanup
+ - Link to commit authors everywhere
+ - Restyled milestones list
+ - added Milestone to Merge Request
+ - Restyled Top panel
+ - Refactored Satellite Code
+ - Added file line links
+ - moved from capybara-webkit to poltergeist + phantomjs
+
v 3.0.3
- Fixed bug with issues list in Chrome
- New Feature: Import team from another project
@@ -28,7 +46,7 @@ v 3.0.0
- Reject ssh keys that break gitolite
- [API] list one project hook
- [API] edit project hook
- - [API] add project snippets list
+ - [API] list project snippets
- [API] allow to authorize using private token in HTTP header
- [API] add user creation
View
20 CONTRIBUTING.md
@@ -1,4 +1,4 @@
-## Contribute to GitLab
+## Contribute to GitLab
If you want to contribute to GitLab, follow this process:
@@ -7,24 +7,20 @@ If you want to contribute to GitLab, follow this process:
3. Code
4. Create a pull request
-We will only accept pull requests if:
+We will only accept pull requests if:
* Your code has proper tests and all tests pass
-* Your code can be merged w/o problems
+* Your code can be merged w/o problems
* It won't break existing functionality
* It's quality code
* We like it :)
-## [You may need a developer VM](https://github.com/gitlabhq/developer-vm)
+For examples of feedback on pull requests please look at the [closed pull requests](https://github.com/gitlabhq/gitlabhq/pulls?direction=desc&page=1&sort=created&state=closed).
-## Running tests
-
-To run the specs for GitLab, you need to run seeds for test db.
+## Installation
- cd gitlabhq
- rake db:seed_fu RAILS_ENV=test
+Install the Gitlab development in a virtual machine with the [Gitlab Vagrant virtual machine](https://github.com/gitlabhq/gitlab-vagrant-vm). Installing it in a virtual machine makes it much easier to set up all the dependencies for integration testing.
-Then you can run the test suite with rake:
-
- rake gitlab:test
+## Running tests
+For more information on running the tests please read the [development tips](https://github.com/gitlabhq/gitlabhq/blob/master/doc/development.md)
View
88 Gemfile
@@ -8,34 +8,35 @@ def linux_only(require_as)
RUBY_PLATFORM.include?('linux') && require_as
end
-gem "rails", "3.2.8"
+gem "rails", "3.2.9"
# Supported DBs
-gem "sqlite3", :group => :sqlite
-gem "mysql2", :group => :mysql
-gem "pg", :group => :postgres
+gem "sqlite3", group: :sqlite
+gem "mysql2", group: :mysql
+gem "pg", group: :postgres
# Auth
gem "devise", "~> 2.1.0"
-gem 'omniauth'
+gem 'omniauth', "~> 1.1.1"
gem 'omniauth-google-oauth2'
gem 'omniauth-twitter'
gem 'omniauth-github'
# GITLAB patched libs
-gem "grit", :git => "https://github.com/gitlabhq/grit.git", :ref => "7f35cb98ff17d534a07e3ce6ec3d580f67402837"
-gem "omniauth-ldap", :git => "https://github.com/gitlabhq/omniauth-ldap.git", :ref => "f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e"
-gem 'yaml_db', :git => "https://github.com/gitlabhq/yaml_db.git"
-gem 'grack', :git => "https://github.com/gitlabhq/grack.git"
+gem "grit", git: "https://github.com/gitlabhq/grit.git", ref: '7f35cb98ff17d534a07e3ce6ec3d580f67402837'
+gem "omniauth-ldap", git: "https://github.com/gitlabhq/omniauth-ldap.git", ref: 'f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e'
+gem 'yaml_db', git: "https://github.com/gitlabhq/yaml_db.git", ref: '98e9a5dca43e3fedd3268c76a73af40d1bdf1dfd'
+gem 'grack', git: "https://github.com/gitlabhq/grack.git", ref: 'ba46f3b0845c6a09d488ae6abdce6ede37e227e8'
+gem 'grit_ext', git: "https://github.com/gitlabhq/grit_ext.git", ref: '212fd40bea61f3c6a167223768e7295dc32bbc10'
# Gitolite client (for work with gitolite-admin repo)
gem "gitolite", '1.1.0'
# Syntax highlighter
-gem "pygments.rb", "0.3.1"
+gem "pygments.rb", git: "https://github.com/gitlabhq/pygments.rb.git", ref: '4db80c599067e2d5f23c5c243bf85b8ca0368ad4'
# Language detection
-gem "github-linguist", "~> 2.3.4" , :require => "linguist"
+gem "github-linguist", "~> 2.3.4" , require: "linguist"
# API
gem "grape", "~> 0.2.1"
@@ -45,13 +46,13 @@ gem "grape", "~> 0.2.1"
gem "stamp"
# Pagination
-gem "kaminari"
+gem "kaminari", "~> 0.14.1"
# HAML
-gem "haml-rails"
+gem "haml-rails", "~> 0.3.5"
# Files attachments
-gem "carrierwave"
+gem "carrierwave", "~> 0.7.1"
# Authorization
gem "six"
@@ -63,59 +64,57 @@ gem "ffaker"
gem "seed-fu"
# Markdown to HTML
-gem "redcarpet", "~> 2.1.1"
+gem "redcarpet", "~> 2.2.2"
gem "github-markup", "~> 0.7.4", require: 'github/markup'
# Servers
-gem "thin"
-gem "unicorn"
+gem "thin", '~> 1.5.0'
+gem "unicorn", "~> 4.4.0"
# Issue tags
-gem "acts-as-taggable-on", "2.3.1"
+gem "acts-as-taggable-on", "2.3.3"
# Decorators
-gem "draper"
+gem "draper", "~> 0.18.0"
# Background jobs
-gem "resque", "~> 1.20.0"
+gem "resque", "~> 1.23.0"
gem 'resque_mailer'
# HTTP requests
gem "httparty"
-# Handle encodings
-gem "charlock_holmes"
-
# Colored output to console
gem "colored"
-# GITLAB settings
+# GitLab settings
gem 'settingslogic'
# Misc
gem "foreman"
-gem 'gemoji', require: 'emoji/railtie'
gem "git"
group :assets do
- gem "sass-rails", "3.2.5"
- gem "coffee-rails", "3.2.2"
- gem "uglifier", "1.0.3"
+ gem "sass-rails", "~> 3.2.5"
+ gem "coffee-rails", "~> 3.2.2"
+ gem "uglifier", "~> 1.3.0"
gem "therubyracer"
- gem 'chosen-rails'
- gem 'jquery-atwho-rails', '0.1.6'
- gem "jquery-rails", "2.0.2"
- gem "jquery-ui-rails", "0.5.0"
- gem "modernizr", "2.5.3"
- gem "raphael-rails", "1.5.2"
- gem 'bootstrap-sass', "2.0.4"
+ gem 'chosen-rails', "0.9.8"
+ gem 'jquery-atwho-rails', "0.1.6"
+ gem "jquery-rails", "2.1.3"
+ gem "jquery-ui-rails", "2.0.2"
+ gem "modernizr", "2.6.2"
+ gem "raphael-rails", "2.1.0"
+ gem 'bootstrap-sass', "2.2.1.1"
gem "font-awesome-sass-rails", "~> 2.0.0"
+ gem "gemoji", "~> 1.2.1", require: 'emoji/railtie'
end
group :development do
+ gem "annotate", git: "https://github.com/ctran/annotate_models.git"
gem "letter_opener"
- gem "annotate", :git => "https://github.com/ctran/annotate_models.git"
+ gem 'quiet_assets', '~> 1.0.1'
gem 'rack-mini-profiler'
end
@@ -124,8 +123,6 @@ group :development, :test do
gem 'spinach-rails'
gem "rspec-rails"
gem "capybara"
- gem "capybara-webkit"
- gem "headless"
gem "pry"
gem "awesome_print"
gem "database_cleaner"
@@ -137,14 +134,17 @@ group :development, :test do
gem 'guard-spinach'
# Notification
- gem 'rb-fsevent', :require => darwin_only('rb-fsevent')
- gem 'growl', :require => darwin_only('growl')
- gem 'rb-inotify', :require => linux_only('rb-inotify')
+ gem 'rb-fsevent', require: darwin_only('rb-fsevent')
+ gem 'growl', require: darwin_only('growl')
+ gem 'rb-inotify', require: linux_only('rb-inotify')
+
+ # PhantomJS driver for Capybara
+ gem 'poltergeist'
end
group :test do
- gem "simplecov", :require => false
- gem "shoulda-matchers"
+ gem "simplecov", require: false
+ gem "shoulda-matchers", "1.3.0"
gem 'email_spec'
gem 'resque_spec'
gem "webmock"
@@ -152,5 +152,5 @@ group :test do
end
group :production do
- gem "gitlab_meta", '3.0'
+ gem "gitlab_meta", '3.1'
end
View
376 Gemfile.lock
@@ -1,12 +1,15 @@
GIT
remote: https://github.com/ctran/annotate_models.git
- revision: 18cd39ad01829deba5aa34634b8540d6675ab978
+ revision: be4e26825b521f0b2d86b181e2dff89901aa9b1e
specs:
- annotate (2.4.1.beta1)
+ annotate (2.6.0.beta1)
+ activerecord (>= 2.3.0)
+ rake (>= 0.8.7)
GIT
remote: https://github.com/gitlabhq/grack.git
revision: ba46f3b0845c6a09d488ae6abdce6ede37e227e8
+ ref: ba46f3b0845c6a09d488ae6abdce6ede37e227e8
specs:
grack (1.0.0)
rack (~> 1.4.1)
@@ -22,6 +25,14 @@ GIT
posix-spawn (~> 0.3.6)
GIT
+ remote: https://github.com/gitlabhq/grit_ext.git
+ revision: 212fd40bea61f3c6a167223768e7295dc32bbc10
+ ref: 212fd40bea61f3c6a167223768e7295dc32bbc10
+ specs:
+ grit_ext (0.6.0)
+ charlock_holmes (~> 0.6.9)
+
+GIT
remote: https://github.com/gitlabhq/omniauth-ldap.git
revision: f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e
ref: f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e
@@ -33,114 +44,125 @@ GIT
rubyntlm (~> 0.1.1)
GIT
+ remote: https://github.com/gitlabhq/pygments.rb.git
+ revision: 4db80c599067e2d5f23c5c243bf85b8ca0368ad4
+ ref: 4db80c599067e2d5f23c5c243bf85b8ca0368ad4
+ specs:
+ pygments.rb (0.3.2)
+ posix-spawn (~> 0.3.6)
+ yajl-ruby (~> 1.1.0)
+
+GIT
remote: https://github.com/gitlabhq/yaml_db.git
revision: 98e9a5dca43e3fedd3268c76a73af40d1bdf1dfd
+ ref: 98e9a5dca43e3fedd3268c76a73af40d1bdf1dfd
specs:
yaml_db (0.2.2)
GEM
remote: http://rubygems.org/
specs:
- actionmailer (3.2.8)
- actionpack (= 3.2.8)
+ actionmailer (3.2.9)
+ actionpack (= 3.2.9)
mail (~> 2.4.4)
- actionpack (3.2.8)
- activemodel (= 3.2.8)
- activesupport (= 3.2.8)
+ actionpack (3.2.9)
+ activemodel (= 3.2.9)
+ activesupport (= 3.2.9)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.0)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
- sprockets (~> 2.1.3)
- activemodel (3.2.8)
- activesupport (= 3.2.8)
+ sprockets (~> 2.2.1)
+ activemodel (3.2.9)
+ activesupport (= 3.2.9)
builder (~> 3.0.0)
- activerecord (3.2.8)
- activemodel (= 3.2.8)
- activesupport (= 3.2.8)
+ activerecord (3.2.9)
+ activemodel (= 3.2.9)
+ activesupport (= 3.2.9)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
- activeresource (3.2.8)
- activemodel (= 3.2.8)
- activesupport (= 3.2.8)
- activesupport (3.2.8)
+ activeresource (3.2.9)
+ activemodel (= 3.2.9)
+ activesupport (= 3.2.9)
+ activesupport (3.2.9)
i18n (~> 0.6)
multi_json (~> 1.0)
- acts-as-taggable-on (2.3.1)
+ acts-as-taggable-on (2.3.3)
rails (~> 3.0)
- addressable (2.2.8)
+ addressable (2.3.2)
arel (3.0.2)
- awesome_print (1.0.2)
+ awesome_print (1.1.0)
+ backports (2.6.5)
bcrypt-ruby (3.0.1)
- blankslate (2.1.2.4)
- bootstrap-sass (2.0.4.0)
- builder (3.0.2)
- capybara (1.1.2)
+ blankslate (3.1.2)
+ bootstrap-sass (2.2.1.1)
+ sass (~> 3.2)
+ builder (3.0.4)
+ capybara (1.1.3)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 0.1.4)
- capybara-webkit (0.12.1)
- capybara (>= 1.0.0, < 1.2)
- json
- carrierwave (0.6.2)
+ carrierwave (0.7.1)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
- charlock_holmes (0.6.8)
- childprocess (0.3.2)
- ffi (~> 1.0.6)
- chosen-rails (0.9.8.3)
+ charlock_holmes (0.6.9)
+ childprocess (0.3.6)
+ ffi (~> 1.0, >= 1.0.6)
+ chosen-rails (0.9.8)
railties (~> 3.0)
thor (~> 0.14)
- coderay (1.0.6)
+ coderay (1.0.8)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
- coffee-script-source (1.3.3)
+ coffee-script-source (1.4.0)
colored (1.2)
colorize (0.5.8)
crack (0.3.1)
- daemons (1.1.8)
- database_cleaner (0.8.0)
+ daemons (1.1.9)
+ database_cleaner (0.9.1)
devise (2.1.2)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
diff-lcs (1.1.3)
- draper (0.17.0)
+ draper (0.18.0)
actionpack (~> 3.2)
activesupport (~> 3.2)
- email_spec (1.2.1)
+ email_spec (1.4.0)
+ launchy (~> 2.1)
mail (~> 2.2)
- rspec (~> 2.0)
erubis (2.7.0)
escape_utils (0.2.4)
- eventmachine (0.12.10)
+ eventmachine (1.0.0)
execjs (1.4.0)
multi_json (~> 1.0)
- factory_girl (4.0.0)
+ factory_girl (4.1.0)
activesupport (>= 3.0.0)
- factory_girl_rails (4.0.0)
- factory_girl (~> 4.0.0)
+ factory_girl_rails (4.1.0)
+ factory_girl (~> 4.1.0)
railties (>= 3.0.0)
faraday (0.8.4)
multipart-post (~> 1.1)
- ffaker (1.14.0)
- ffi (1.0.11)
+ faye-websocket (0.4.6)
+ eventmachine (>= 0.12.0)
+ ffaker (1.15.0)
+ ffi (1.1.5)
font-awesome-sass-rails (2.0.0.0)
railties (>= 3.1.1)
sass-rails (>= 3.1.1)
- foreman (0.47.0)
+ foreman (0.60.2)
thor (>= 0.13.6)
- gemoji (1.1.1)
+ gemoji (1.2.1)
gherkin-ruby (0.2.1)
git (1.2.5)
github-linguist (2.3.4)
@@ -149,80 +171,87 @@ GEM
mime-types (~> 1.19)
pygments.rb (>= 0.2.13)
github-markup (0.7.4)
- gitlab_meta (3.0)
+ gitlab_meta (3.1)
gitolite (1.1.0)
gratr19 (~> 0.4.4.1)
grit (~> 2.5.0)
hashery (~> 1.5.0)
- grape (0.2.1)
+ grape (0.2.2)
+ activesupport
hashie (~> 1.2)
- multi_json
+ multi_json (>= 1.3.2)
multi_xml
rack
+ rack-accept
rack-mount
+ virtus
gratr19 (0.4.4.1)
growl (1.0.3)
- guard (1.3.2)
+ guard (1.5.4)
listen (>= 0.4.2)
+ lumberjack (>= 1.0.2)
+ pry (>= 0.9.10)
thor (>= 0.14.6)
- guard-rspec (1.2.1)
+ guard-rspec (2.1.2)
guard (>= 1.1)
+ rspec (~> 2.11)
guard-spinach (0.0.2)
guard (>= 1.1)
spinach
- haml (3.1.6)
- haml-rails (0.3.4)
- actionpack (~> 3.0)
- activesupport (~> 3.0)
- haml (~> 3.0)
- railties (~> 3.0)
+ haml (3.1.7)
+ haml-rails (0.3.5)
+ actionpack (>= 3.1, < 4.1)
+ activesupport (>= 3.1, < 4.1)
+ haml (~> 3.1)
+ railties (>= 3.1, < 4.1)
hashery (1.5.0)
blankslate
hashie (1.2.0)
- headless (0.3.1)
hike (1.2.1)
- httparty (0.8.3)
+ http_parser.rb (0.5.3)
+ httparty (0.9.0)
multi_json (~> 1.0)
multi_xml
- httpauth (0.1)
+ httpauth (0.2.0)
i18n (0.6.1)
journey (1.0.4)
jquery-atwho-rails (0.1.6)
- jquery-rails (2.0.2)
- railties (>= 3.2.0, < 5.0)
+ jquery-rails (2.1.3)
+ railties (>= 3.1.0, < 5.0)
thor (~> 0.14)
- jquery-ui-rails (0.5.0)
+ jquery-ui-rails (2.0.2)
jquery-rails
railties (>= 3.1.0)
json (1.7.5)
jwt (0.1.5)
multi_json (>= 1.0)
- kaminari (0.14.0)
+ kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
kgio (2.7.4)
- launchy (2.1.0)
- addressable (~> 2.2.6)
- letter_opener (0.0.2)
- launchy
+ launchy (2.1.2)
+ addressable (~> 2.3)
+ letter_opener (1.0.0)
+ launchy (>= 2.0.4)
libv8 (3.3.10.4)
- libwebsocket (0.1.3)
- addressable
- listen (0.5.0)
+ libwebsocket (0.1.6)
+ websocket
+ listen (0.5.3)
+ lumberjack (1.0.2)
mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
- method_source (0.7.1)
+ method_source (0.8.1)
mime-types (1.19)
- modernizr (2.5.3)
+ modernizr (2.6.2)
sprockets (~> 2.0)
- multi_json (1.3.6)
+ multi_json (1.3.7)
multi_xml (0.5.1)
multipart-post (1.1.5)
mysql2 (0.3.11)
net-ldap (0.2.2)
- nokogiri (1.5.3)
+ nokogiri (1.5.5)
oauth (0.4.7)
oauth2 (0.8.0)
faraday (~> 0.8)
@@ -230,7 +259,7 @@ GEM
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
- omniauth (1.1.0)
+ omniauth (1.1.1)
hashie (~> 1.2)
rack
omniauth-github (1.0.3)
@@ -242,28 +271,35 @@ GEM
omniauth-oauth (1.0.1)
oauth
omniauth (~> 1.0)
- omniauth-oauth2 (1.1.0)
+ omniauth-oauth2 (1.1.1)
oauth2 (~> 0.8.0)
omniauth (~> 1.0)
- omniauth-twitter (0.0.13)
+ omniauth-twitter (0.0.14)
multi_json (~> 1.3)
omniauth-oauth (~> 1.0)
- orm_adapter (0.3.0)
- pg (0.14.0)
+ orm_adapter (0.4.0)
+ pg (0.14.1)
+ poltergeist (1.0.2)
+ capybara (~> 1.1)
+ childprocess (~> 0.3)
+ faye-websocket (~> 0.4, >= 0.4.4)
+ http_parser.rb (~> 0.5.3)
+ multi_json (~> 1.0)
polyglot (0.3.3)
posix-spawn (0.3.6)
- pry (0.9.9.6)
+ pry (0.9.10)
coderay (~> 1.0.5)
- method_source (~> 0.7.1)
- slop (>= 2.4.4, < 3)
- pygments.rb (0.3.1)
- posix-spawn (~> 0.3.6)
- yajl-ruby (~> 1.1.0)
+ method_source (~> 0.8)
+ slop (~> 3.3.1)
pyu-ruby-sasl (0.0.3.3)
+ quiet_assets (1.0.1)
+ railties (~> 3.1)
rack (1.4.1)
+ rack-accept (0.4.5)
+ rack (>= 0.4)
rack-cache (1.2)
rack (>= 0.4)
- rack-mini-profiler (0.1.9)
+ rack-mini-profiler (0.1.23)
rack (>= 1.1.3)
rack-mount (0.8.3)
rack (>= 1.0.0)
@@ -271,65 +307,66 @@ GEM
rack
rack-ssl (1.3.2)
rack
- rack-test (0.6.1)
+ rack-test (0.6.2)
rack (>= 1.0)
- rails (3.2.8)
- actionmailer (= 3.2.8)
- actionpack (= 3.2.8)
- activerecord (= 3.2.8)
- activeresource (= 3.2.8)
- activesupport (= 3.2.8)
+ rails (3.2.9)
+ actionmailer (= 3.2.9)
+ actionpack (= 3.2.9)
+ activerecord (= 3.2.9)
+ activeresource (= 3.2.9)
+ activesupport (= 3.2.9)
bundler (~> 1.0)
- railties (= 3.2.8)
+ railties (= 3.2.9)
rails-dev-tweaks (0.6.1)
actionpack (~> 3.1)
railties (~> 3.1)
- railties (3.2.8)
- actionpack (= 3.2.8)
- activesupport (= 3.2.8)
+ railties (3.2.9)
+ actionpack (= 3.2.9)
+ activesupport (= 3.2.9)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
- raindrops (0.9.0)
- rake (0.9.2.2)
- raphael-rails (1.5.2)
- rb-fsevent (0.9.1)
+ raindrops (0.10.0)
+ rake (10.0.1)
+ raphael-rails (2.1.0)
+ rb-fsevent (0.9.2)
rb-inotify (0.8.8)
ffi (>= 0.5.0)
rdoc (3.12)
json (~> 1.4)
- redcarpet (2.1.1)
- redis (2.2.2)
- redis-namespace (1.0.3)
- redis (< 3.0.0)
- resque (1.20.0)
+ redcarpet (2.2.2)
+ redis (3.0.2)
+ redis-namespace (1.2.1)
+ redis (~> 3.0.0)
+ resque (1.23.0)
multi_json (~> 1.0)
- redis-namespace (~> 1.0.2)
+ redis-namespace (~> 1.0)
sinatra (>= 0.9.2)
vegas (~> 0.1.2)
- resque_mailer (2.0.3)
- actionmailer (>= 3.0.0)
- resque (>= 1.2.3)
- resque_spec (0.11.0)
+ resque_mailer (2.1.0)
+ actionmailer (~> 3.0)
+ resque_spec (0.12.5)
resque (>= 1.19.0)
rspec (>= 2.5.0)
- rspec (2.10.0)
- rspec-core (~> 2.10.0)
- rspec-expectations (~> 2.10.0)
- rspec-mocks (~> 2.10.0)
- rspec-core (2.10.1)
- rspec-expectations (2.10.0)
+ rspec (2.12.0)
+ rspec-core (~> 2.12.0)
+ rspec-expectations (~> 2.12.0)
+ rspec-mocks (~> 2.12.0)
+ rspec-core (2.12.0)
+ rspec-expectations (2.12.0)
diff-lcs (~> 1.1.3)
- rspec-mocks (2.10.1)
- rspec-rails (2.10.1)
+ rspec-mocks (2.12.0)
+ rspec-rails (2.12.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
- rspec (~> 2.10.0)
+ rspec-core (~> 2.12.0)
+ rspec-expectations (~> 2.12.0)
+ rspec-mocks (~> 2.12.0)
rubyntlm (0.1.1)
- rubyzip (0.9.8)
- sass (3.1.19)
+ rubyzip (0.9.9)
+ sass (3.2.3)
sass-rails (3.2.5)
railties (~> 3.2.0)
sass (>= 3.1.10)
@@ -337,25 +374,24 @@ GEM
seed-fu (2.2.0)
activerecord (~> 3.1)
activesupport (~> 3.1)
- selenium-webdriver (2.22.2)
+ selenium-webdriver (2.26.0)
childprocess (>= 0.2.5)
- ffi (~> 1.0)
libwebsocket (~> 0.1.3)
multi_json (~> 1.0)
rubyzip
settingslogic (2.0.8)
shoulda-matchers (1.3.0)
activesupport (>= 3.0.0)
- simplecov (0.6.4)
+ simplecov (0.7.1)
multi_json (~> 1.0)
- simplecov-html (~> 0.5.3)
- simplecov-html (0.5.3)
- sinatra (1.3.2)
+ simplecov-html (~> 0.7.1)
+ simplecov-html (0.7.1)
+ sinatra (1.3.3)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
six (0.2.0)
- slop (2.4.4)
+ slop (3.3.3)
spinach (0.5.2)
colorize
gherkin-ruby (~> 0.2.0)
@@ -363,39 +399,43 @@ GEM
capybara (~> 1)
railties (>= 3)
spinach (>= 0.4)
- sprockets (2.1.3)
+ sprockets (2.2.1)
hike (~> 1.2)
+ multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.6)
- stamp (0.1.6)
+ stamp (0.3.0)
test_after_commit (0.0.1)
- therubyracer (0.10.1)
+ therubyracer (0.10.2)
libv8 (~> 3.3.10)
- thin (1.3.1)
+ thin (1.5.0)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.16.0)
tilt (1.3.3)
- treetop (1.4.10)
+ treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
- tzinfo (0.3.33)
- uglifier (1.0.3)
+ tzinfo (0.3.35)
+ uglifier (1.3.0)
execjs (>= 0.3.0)
- multi_json (>= 1.0.2)
- unicorn (4.3.1)
+ multi_json (~> 1.0, >= 1.0.2)
+ unicorn (4.4.0)
kgio (~> 2.6)
rack
raindrops (~> 0.7)
vegas (0.1.11)
rack (>= 1.0.0)
+ virtus (0.5.2)
+ backports (~> 2.6.1)
warden (1.2.1)
rack (>= 1.0)
- webmock (1.8.7)
+ webmock (1.9.0)
addressable (>= 2.2.7)
crack (>= 0.1.7)
+ websocket (1.0.2)
xpath (0.1.4)
nokogiri (~> 1.3)
yajl-ruby (1.1.0)
@@ -404,71 +444,71 @@ PLATFORMS
ruby
DEPENDENCIES
- acts-as-taggable-on (= 2.3.1)
+ acts-as-taggable-on (= 2.3.3)
annotate!
awesome_print
- bootstrap-sass (= 2.0.4)
+ bootstrap-sass (= 2.2.1.1)
capybara
- capybara-webkit
- carrierwave
- charlock_holmes
- chosen-rails
- coffee-rails (= 3.2.2)
+ carrierwave (~> 0.7.1)
+ chosen-rails (= 0.9.8)
+ coffee-rails (~> 3.2.2)
colored
database_cleaner
devise (~> 2.1.0)
- draper
+ draper (~> 0.18.0)
email_spec
factory_girl_rails
ffaker
font-awesome-sass-rails (~> 2.0.0)
foreman
- gemoji
+ gemoji (~> 1.2.1)
git
github-linguist (~> 2.3.4)
github-markup (~> 0.7.4)
- gitlab_meta (= 3.0)
+ gitlab_meta (= 3.1)
gitolite (= 1.1.0)
grack!
grape (~> 0.2.1)
grit!
+ grit_ext!
growl
guard-rspec
guard-spinach
- haml-rails
- headless
+ haml-rails (~> 0.3.5)
httparty
jquery-atwho-rails (= 0.1.6)
- jquery-rails (= 2.0.2)
- jquery-ui-rails (= 0.5.0)
- kaminari
+ jquery-rails (= 2.1.3)
+ jquery-ui-rails (= 2.0.2)
+ kaminari (~> 0.14.1)
launchy
letter_opener
- modernizr (= 2.5.3)
+ modernizr (= 2.6.2)
mysql2
- omniauth
+ omniauth (~> 1.1.1)
omniauth-github
omniauth-google-oauth2
omniauth-ldap!
omniauth-twitter
pg
+ poltergeist
pry
- pygments.rb (= 0.3.1)
+ pygments.rb!
+ quiet_assets (~> 1.0.1)
rack-mini-profiler
- rails (= 3.2.8)
+ rails (= 3.2.9)
rails-dev-tweaks
- raphael-rails (= 1.5.2)
+ raphael-rails (= 2.1.0)
rb-fsevent
rb-inotify
- redcarpet (~> 2.1.1)
- resque (~> 1.20.0)
+ redcarpet (~> 2.2.2)
+ resque (~> 1.23.0)
resque_mailer
resque_spec
rspec-rails
- sass-rails (= 3.2.5)
+ sass-rails (~> 3.2.5)
seed-fu
settingslogic
- shoulda-matchers
+ shoulda-matchers (= 1.3.0)
simplecov
six
spinach-rails
@@ -476,8 +516,8 @@ DEPENDENCIES
stamp
test_after_commit
therubyracer
- thin
- uglifier (= 1.0.3)
- unicorn
+ thin (~> 1.5.0)
+ uglifier (~> 1.3.0)
+ unicorn (~> 4.4.0)
webmock
yaml_db!
View
2 Procfile.production
@@ -1,2 +0,0 @@
-web: bundle exec rails s -p $PORT -e production
-worker: bundle exec rake environment resque:work RAILS_ENV=production QUEUE=*
View
2 README.md
@@ -13,7 +13,7 @@ GitLab is a free project and repository management application
* Ubuntu/Debian
* ruby 1.9.3+
-* mysql or sqlite
+* MySQL
* git
* gitolite
* redis
View
25 ROADMAP.md
@@ -0,0 +1,25 @@
+## GitLab Roadmap
+
+### Common
+
+* Help page for service tasks like repos import, backup etc
+* Hide last push widget after following link
+* Add comment events
+* gitolite namespaces for projects per user/group. It will allow us same project names for different users
+
+### Issues
+
+* labels autocomplete via jquery autocomplete
+* Import/Export issues
+* Form: Assign to me link right to the selectbox
+
+### Merge Request
+
+* Save code fragments with MR comments
+
+### Services
+
+* Campfire integration service
+* Hipchat integration service
+* Travis CI integration service
+* Jenkins CI integration service
View
2 VERSION
@@ -1 +1 @@
-3.0.3
+3.1.0
View
BIN app/assets/images/event_filter_comments.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/event_filter_merged.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/event_filter_push.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/event_filter_team.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/gitlab_classic.png
Deleted file not rendered
View
BIN app/assets/images/gitlab_default.png
Deleted file not rendered
View
BIN app/assets/images/gitlab_modern.png
Deleted file not rendered
View
BIN app/assets/images/logo_dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/logo_white.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/service-disabled-gitlab-ci.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/service-gitlab-ci.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/assets/images/trans_bg.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
3 app/assets/javascripts/application.js
@@ -13,10 +13,13 @@
//= require jquery.history
//= require jquery.waitforimages
//= require jquery.atwho
+//= require jquery.scrollto
//= require bootstrap
//= require modernizr
//= require chosen-jquery
//= require raphael
+//= require g.raphael-min
+//= require g.bar-min
//= require branch-graph
//= require ace-src-noconflict/ace
//= require_tree .
View
69 app/assets/javascripts/gfm_auto_complete.js.coffee
@@ -1,57 +1,52 @@
+# Creates the variables for setting up GFM auto-completion
+
+window.GitLab ?= {}
+GitLab.GfmAutoComplete ?= {}
-###
- Creates the variables for setting up GFM auto-completion
-###
# Emoji
-window.autocompleteEmojiData = [];
-window.autocompleteEmojiTemplate = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>";
+data = []
+template = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>"
+GitLab.GfmAutoComplete.Emoji = {data, template}
# Team Members
-window.autocompleteMembersUrl = "";
-window.autocompleteMembersParams =
- private_token: ""
- page: 1
-window.autocompleteMembersData = [];
-
-
-
-###
- Add GFM auto-completion to all input fields, that accept GFM input.
-###
-window.setupGfmAutoComplete = ->
- ###
- Emoji
- ###
- $('.gfm-input').atWho ':',
- data: autocompleteEmojiData,
- tpl: autocompleteEmojiTemplate
-
- ###
- Team Members
- ###
- $('.gfm-input').atWho '@', (query, callback) ->
+data = []
+url = '';
+params = {private_token: '', page: 1}
+GitLab.GfmAutoComplete.Members = {data, url, params}
+
+# Add GFM auto-completion to all input fields, that accept GFM input.
+GitLab.GfmAutoComplete.setup = ->
+ input = $('.js-gfm-input')
+
+ # Emoji
+ input.atWho ':',
+ data: GitLab.GfmAutoComplete.Emoji.data,
+ tpl: GitLab.GfmAutoComplete.Emoji.template
+
+ # Team Members
+ input.atWho '@', (query, callback) ->
(getMoreMembers = ->
- $.getJSON(autocompleteMembersUrl, autocompleteMembersParams)
+ $.getJSON(GitLab.GfmAutoComplete.Members.url, GitLab.GfmAutoComplete.Members.params)
.success (members) ->
# pick the data we need
- newMembersData = $.map members, (m) -> m.name
+ newMembersData = $.map(members, (m) -> m.name )
# add the new page of data to the rest
- $.merge autocompleteMembersData, newMembersData
+ $.merge(GitLab.GfmAutoComplete.Members.data, newMembersData)
# show the pop-up with a copy of the current data
- callback autocompleteMembersData[..]
+ callback(GitLab.GfmAutoComplete.Members.data[..])
# are we past the last page?
- if newMembersData.length == 0
+ if newMembersData.length is 0
# set static data and stop callbacks
- $('.gfm-input').atWho '@',
- data: autocompleteMembersData
+ input.atWho '@',
+ data: GitLab.GfmAutoComplete.Members.data
callback: null
else
# get next page
getMoreMembers()
# so the next request gets the next page
- autocompleteMembersParams.page += 1;
- ).call();
+ GitLab.GfmAutoComplete.Members.params.page += 1
+ ).call()
View
10 app/assets/javascripts/graph.js.coffee
@@ -1,10 +0,0 @@
-initGraphNav = ->
- $('.graph svg').css 'position', 'relative'
-
- $('body').bind 'keyup', (e) ->
- if e.keyCode is 37 # left
- $('.graph svg').animate left: '+=400'
- else if e.keyCode is 39 # right
- $('.graph svg').animate left: '-=400'
-
-window.initGraphNav = initGraphNav
View
22 app/assets/javascripts/issues.js
@@ -1,24 +1,22 @@
-function switchToNewIssue(form){
+function switchToNewIssue(){
$(".issues_content").hide("fade", { direction: "left" }, 150, function(){
- $(".issues_content").after(form);
$('select#issue_assignee_id').chosen();
$('select#issue_milestone_id').chosen();
$("#new_issue_dialog").show("fade", { direction: "right" }, 150);
$('.top-tabs .add_new').hide();
disableButtonIfEmptyField("#issue_title", ".save-btn");
- setupGfmAutoComplete();
+ GitLab.GfmAutoComplete.setup();
});
}
-function switchToEditIssue(form){
+function switchToEditIssue(){
$(".issues_content").hide("fade", { direction: "left" }, 150, function(){
- $(".issues_content").after(form);
$('select#issue_assignee_id').chosen();
$('select#issue_milestone_id').chosen();
$("#edit_issue_dialog").show("fade", { direction: "right" }, 150);
$('.add_new').hide();
disableButtonIfEmptyField("#issue_title", ".save-btn");
- setupGfmAutoComplete();
+ GitLab.GfmAutoComplete.setup();
});
}
@@ -33,18 +31,18 @@ function switchFromEditIssue(){
function backToIssues(){
$("#edit_issue_dialog, #new_issue_dialog").hide("fade", { direction: "right" }, 150, function(){
$(".issues_content").show("fade", { direction: "left" }, 150, function() {
- $("#edit_issue_dialog").remove();
- $("#new_issue_dialog").remove();
+ $("#edit_issue_dialog").html("");
+ $("#new_issue_dialog").html("");
$('.add_new').show();
});
});
}
function initIssuesSearch() {
- var href = $('.issue_search').parent().attr('action');
+ var href = $('#issue_search_form').attr('action');
var last_terms = '';
- $('.issue_search').keyup(function() {
+ $('#issue_search').keyup(function() {
var terms = $(this).val();
var milestone_id = $('#milestone_id').val();
var status = $('#status').val();
@@ -59,10 +57,6 @@ function initIssuesSearch() {
}
}
});
-
- $('.delete-issue').live('ajax:success', function() {
- $(this).closest('tr').fadeOut(); updatePage();
- });
}
/**
View
5 app/assets/javascripts/loader.js.coffee
@@ -1,5 +0,0 @@
-Loader =
- html: (width) ->
- $('<img>').attr src: '/assets/ajax-loader.gif', width: width
-
-window.Loader = Loader
View
48 app/assets/javascripts/main.js.coffee
@@ -7,29 +7,36 @@ window.slugify = (text) ->
window.ajaxGet = (url) ->
$.ajax({type: "GET", url: url, dataType: "script"})
- # Disable button if text field is empty
+# Disable button if text field is empty
window.disableButtonIfEmptyField = (field_selector, button_selector) ->
field = $(field_selector)
closest_submit = field.closest("form").find(button_selector)
closest_submit.disable() if field.val() is ""
- field.on "keyup", ->
- if $(this).val() is ""
+ field.on "input", ->
+ if $(@).val() is ""
closest_submit.disable()
else
closest_submit.enable()
$ ->
# Click a .one_click_select field, select the contents
- $(".one_click_select").live 'click', -> $(this).select()
+ $(".one_click_select").on 'click', -> $(@).select()
# Initialize chosen selects
$('select.chosen').chosen()
+ # Initialize tooltips
+ $('.has_tooltip').tooltip()
+
+ # Bottom tooltip
+ $('.has_bottom_tooltip').tooltip(placement: 'bottom')
+
+
# Disable form buttons while a form is submitting
$('body').on 'ajax:complete, ajax:beforeSend, submit', 'form', (e) ->
- buttons = $('[type="submit"]', this)
+ buttons = $('[type="submit"]', @)
switch e.type
when 'ajax:beforeSend', 'submit'
@@ -38,7 +45,7 @@ $ ->
buttons.enable()
# Show/Hide the profile menu when hovering the account box
- $('.account-box').hover -> $(this).toggleClass('hover')
+ $('.account-box').hover -> $(@).toggleClass('hover')
# Focus search field by pressing 's' key
$(document).keypress (e) ->
@@ -52,41 +59,22 @@ $ ->
# Commit show suppressed diff
$(".supp_diff_link").bind "click", ->
- $(this).next('table').show()
- $(this).remove()
-
- # Note markdown preview
- $(document).on 'click', '#preview-link', (e) ->
- $('#preview-note').text('Loading...')
-
- previewLinkText = if $(this).text() == 'Preview' then 'Edit' else 'Preview'
- $(this).text(previewLinkText)
-
- note = $('#note_note').val()
-
- if note.trim().length == 0
- $('#preview-note').text("Nothing to preview.")
- else
- $.post $(this).attr('href'), {note: note}, (data) ->
- $('#preview-note').html(data)
-
- $('#preview-note, #note_note').toggle()
- e.preventDefault()
- false
+ $(@).next('table').show()
+ $(@).remove()
(($) ->
_chosen = $.fn.chosen
$.fn.extend chosen: (options) ->
default_options = search_contains: "true"
$.extend default_options, options
- _chosen.apply this, [default_options]
+ _chosen.apply @, [default_options]
# Disable an element and add the 'disabled' Bootstrap class
$.fn.extend disable: ->
- $(this).attr('disabled', 'disabled').addClass('disabled')
+ $(@).attr('disabled', 'disabled').addClass('disabled')
# Enable an element and remove the 'disabled' Bootstrap class
$.fn.extend enable: ->
- $(this).removeAttr('disabled').removeClass('disabled')
+ $(@).removeAttr('disabled').removeClass('disabled')
)(jQuery)
View
11 app/assets/javascripts/merge_requests.js
@@ -115,4 +115,15 @@ var MergeRequest = {
$(".merge_in_progress").hide();
$(".automerge_widget.already_cannot_be_merged").show();
}
+};
+
+/*
+ * Filter merge requests
+ */
+function merge_requestsPage() {
+ $("#assignee_id").chosen();
+ $("#milestone_id").chosen();
+ $("#milestone_id, #assignee_id").on("change", function(){
+ $(this).closest("form").submit();
+ });
}
View
7 app/assets/javascripts/milestones.js.coffee
@@ -5,3 +5,10 @@ $ ->
$('.milestone-issue-filter li').toggleClass('active')
$('.milestone-issue-filter tr[data-closed]').toggleClass('hide')
false
+
+ $('.milestone-merge-requests-filter tr[data-closed]').addClass('hide')
+
+ $('.milestone-merge-requests-filter ul.nav li a').click ->
+ $('.milestone-merge-requests-filter li').toggleClass('active')
+ $('.milestone-merge-requests-filter tr[data-closed]').toggleClass('hide')
+ false
View
36 app/assets/javascripts/notes.js
@@ -14,8 +14,8 @@ var NoteList = {
this.notes_path = path + ".js";
this.target_id = tid;
this.target_type = tt;
- this.reversed = $("#notes-list").hasClass("reversed");
- this.target_params = "&target_type=" + this.target_type + "&target_id=" + this.target_id;
+ this.reversed = $("#notes-list").is(".reversed");
+ this.target_params = "target_type=" + this.target_type + "&target_id=" + this.target_id;
// get initial set of notes
this.getContent();
@@ -33,6 +33,8 @@ var NoteList = {
$(".note-form-holder").on("ajax:complete", function(){
$(".submit_note").enable();
+ $('#preview-note').hide();
+ $('#note_note').show();
})
disableButtonIfEmptyField(".note-text", ".submit_note");
@@ -52,6 +54,26 @@ var NoteList = {
$('.note_advanced_opts').show();
});
}
+
+ // Setup note preview
+ $(document).on('click', '#preview-link', function(e) {
+ $('#preview-note').text('Loading...');
+
+ $(this).text($(this).text() === "Edit" ? "Preview" : "Edit");
+
+ var note_text = $('#note_note').val();
+
+ if(note_text.trim().length === 0) {
+ $('#preview-note').text('Nothing to preview.');
+ } else {
+ $.post($(this).attr('href'), {note: note_text}).success(function(data) {
+ $('#preview-note').html(data);
+ });
+ }
+
+ $('#preview-note, #note_note').toggle();
+ e.preventDefault();
+ });
},
@@ -69,7 +91,7 @@ var NoteList = {
$.ajax({
type: "GET",
url: this.notes_path,
- data: "?" + this.target_params,
+ data: this.target_params,
complete: function(){ $('.notes-status').removeClass("loading")},
beforeSend: function() { $('.notes-status').addClass("loading") },
dataType: "script"});
@@ -131,7 +153,7 @@ var NoteList = {
$.ajax({
type: "GET",
url: this.notes_path,
- data: "loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id + this.target_params,
+ data: this.target_params + "&loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id,
complete: function(){ $('.notes-status').removeClass("loading")},
beforeSend: function() { $('.notes-status').addClass("loading") },
dataType: "script"});
@@ -192,7 +214,7 @@ var NoteList = {
$.ajax({
type: "GET",
url: this.notes_path,
- data: "loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id) + this.target_params,
+ data: this.target_params + "&loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id),
dataType: "script"});
},
@@ -264,7 +286,7 @@ var PerLineNotes = {
$(this).closest("tr").after(form);
form.find("#note_line_code").val($(this).data("lineCode"));
form.show();
- return false;
+ e.preventDefault();
});
disableButtonIfEmptyField(".line-note-text", ".submit_inline_note");
@@ -285,7 +307,7 @@ var PerLineNotes = {
// elements must really be removed for this to work reliably
var trLine = trNote.prev();
var trRpl = trNote.next();
- if (trLine.hasClass("line_holder") && trRpl.hasClass("reply")) {
+ if (trLine.is(".line_holder") && trRpl.is(".reply")) {
trRpl.fadeOut(function() { $(this).remove(); });
}
});
View
10 app/assets/javascripts/profile.js.coffee
@@ -0,0 +1,10 @@
+$ ->
+ $('.edit_user .application-theme input, .edit_user .code-preview-theme input').click ->
+ # Hide any previous submission feedback
+ $('.edit_user .update-feedback').hide()
+
+ # Submit the form
+ $('.edit_user').submit()
+
+ # Go up the hierarchy and show the corresponding submission feedback element
+ $(@).closest('fieldset').find('.update-feedback').show('highlight', {color: '#DFF0D8'}, 500)
View
7 app/assets/javascripts/projects.js.coffee
@@ -22,3 +22,10 @@ $ ->
# Ref switcher
$('.project-refs-select').on 'change', ->
$(@).parents('form').submit()
+
+class @GraphNav
+ @init: ->
+ $('.graph svg').css 'position', 'relative'
+ $('body').bind 'keyup', (e) ->
+ $('.graph svg').animate(left: '+=400') if e.keyCode is 37 # left
+ $('.graph svg').animate(left: '-=400') if e.keyCode is 39 # right
View
6 app/assets/javascripts/snippets.js.coffee
@@ -1,6 +0,0 @@
-$ ->
- $('#snippets-table .snippet').live 'click', (e) ->
- if e.target.nodeName isnt 'A' and e.target.nodeName isnt 'INPUT'
- location.href = $(@).attr 'url'
- e.stopPropagation()
- false
View
57 app/assets/javascripts/tree.js.coffee
@@ -17,23 +17,40 @@ $ ->
"ajax:beforeSend": -> $('.tree_progress').addClass("loading")
"ajax:complete": -> $('.tree_progress').removeClass("loading")
-# Maintain forward/back history while browsing the file tree
-
-((window) ->
- History = window.History
- $ = window.jQuery
- document = window.document
-
- # Check to see if History.js is enabled for our Browser
- unless History.enabled
- return false
-
- $ ->
- $('#tree-slider .tree-item-file-name a, .breadcrumb li > a').live 'click', (e) ->
- History.pushState(null, null, $(@).attr('href'))
- return false
-
- History.Adapter.bind window, 'statechange', ->
- state = History.getState()
- window.ajaxGet(state.url)
-)(window)
+ # Maintain forward/back history while browsing the file tree
+ ((window) ->
+ History = window.History
+ $ = window.jQuery
+ document = window.document
+
+ # Check to see if History.js is enabled for our Browser
+ unless History.enabled
+ return false
+
+ $('#tree-slider .tree-item-file-name a, .breadcrumb li > a').live 'click', (e) ->
+ History.pushState(null, null, $(@).attr('href'))
+ return false
+
+ History.Adapter.bind window, 'statechange', ->
+ state = History.getState()
+ window.ajaxGet(state.url)
+ )(window)
+
+ # See if there are lines selected
+ # "#L12" and "#L34-56" supported
+ highlightBlobLines = ->
+ if window.location.hash isnt ""
+ matches = window.location.hash.match(/\#L(\d+)(\-(\d+))?/)
+ first_line = parseInt(matches?[1])
+ last_line = parseInt(matches?[3])
+
+ unless isNaN first_line
+ last_line = first_line if isNaN(last_line)
+ $("#tree-content-holder .highlight .line").removeClass("hll")
+ $("#LC#{line}").addClass("hll") for line in [first_line..last_line]
+ $("#L#{first_line}").ScrollTo()
+
+ # Highlight the correct lines on load
+ highlightBlobLines()
+ # Highlight the correct lines when the hash part of the URL changes
+ $(window).on 'hashchange', highlightBlobLines
View
53 app/assets/stylesheets/common.scss
@@ -20,18 +20,6 @@ body {
float:right;
}
-.profile_avatar_holder {
- float:left;
- width:60px;
- height:60px;
- margin-right:20px;
- img {
- width:60px;
- height:60px;
- background:#eee;