Compare commits

...

1433 Commits

Author SHA1 Message Date
Dmitriy Zaporozhets 7af16bbb0f Merge branch 'advanced-notes' of /home/git/repositories/gitlab/gitlabhq 2013-04-02 11:35:46 +00:00
Dmitriy Zaporozhets b641cdd183 fix test 2013-04-02 14:30:32 +03:00
Dmitriy Zaporozhets af657b0509 reset st_commits before setting new value to prevent error when old st_commits is broken 2013-04-02 11:32:41 +03:00
Dmitriy Zaporozhets d3559e2556 fix tabs features 2013-04-02 11:23:06 +03:00
Sytse Sijbrandij 08c6f5f604 Adding special cases to the advanced setup notes. 2013-04-02 07:52:47 +02:00
Dmitriy Zaporozhets 8465238899 fix long names on wall 2013-04-01 22:53:07 +03:00
Dmitriy Zaporozhets 8cadeb6750 nav views refactoring 2013-04-01 22:30:48 +03:00
Dmitriy Zaporozhets 19ab03f461 minor design improvements 2013-04-01 21:37:39 +03:00
Dmitriy Zaporozhets 0e9080e3dd Fixed bug with non-displayed download button 2013-04-01 21:25:50 +03:00
Dmitriy Zaporozhets 65d9f8c16c Fix notification issue 2013-04-01 21:16:52 +03:00
Dmitriy Zaporozhets 76a4cbe464 Merge branch 'refactor/gitlab_git' 2013-04-01 20:53:00 +03:00
Dmitriy Zaporozhets 8a6bf09ad0 Pass project into factory for teams tests 2013-04-01 20:35:41 +03:00
Dmitriy Zaporozhets f536c13355 fixed test using repo with commits but old factory 2013-04-01 19:06:47 +03:00
Dmitriy Zaporozhets 3b88636d3c fix tests 2013-04-01 18:35:29 +03:00
Dmitriy Zaporozhets adccf3b499 fix facotries 2013-04-01 18:24:05 +03:00
Dmitriy Zaporozhets f5dec306fd Use project_with_code factory where necessary 2013-04-01 18:16:08 +03:00
Dmitriy Zaporozhets 9a26e9a0d6 Dont init repo on every create(:repo) 2013-04-01 17:27:44 +03:00
Dmitriy Zaporozhets 273741fbde Merge pull request #3462 from tsl0922/fix-reassign-error
fix: wrong number of arguments
2013-04-01 07:26:04 -07:00
Dmitriy Zaporozhets 541d899410 Project.repository should never be nil so you can call repository.exists? or repository.empty?
Also specify separate project factory for project with filled repo
2013-04-01 16:56:25 +03:00
Dmitriy Zaporozhets 49b024f5f5 Use Gitlab::Git:: for git features across application 2013-04-01 16:04:35 +03:00
Dmitriy Zaporozhets bb06e905ef added Gitlab::Git::Compare for git compare feature 2013-04-01 16:03:11 +03:00
Dmitriy Zaporozhets 51c167554c added Gitlab::Git::Blame for git blame feature 2013-04-01 16:02:54 +03:00
Dmitriy Zaporozhets 22817398e6 define TestEnv and keep all global stubs in one place 2013-04-01 14:39:19 +03:00
tsl0922 45c4804c8e fix: wrong argument number 2013-04-01 17:25:31 +08:00
Dmitriy Zaporozhets 7bb71bb088 Fix stubbed repo 2013-04-01 09:21:31 +03:00
Dmitriy Zaporozhets 458631c5ba remove unnecessary Commit.new 2013-03-31 23:58:17 +03:00
Dmitriy Zaporozhets bbfbff3add Extend models functionality with old decorator methods. Use Repository model 2013-03-31 23:48:12 +03:00
Dmitriy Zaporozhets b53557aca6 Remove decorator calls and methods from views. Repalace with helper calls when needed 2013-03-31 23:47:26 +03:00
Dmitriy Zaporozhets da5b0c91dc Move some decorator logic to helpers 2013-03-31 23:46:54 +03:00
Dmitriy Zaporozhets 685681e28a remove Tree/Commit decorator usage from controllers 2013-03-31 23:46:25 +03:00
Dmitriy Zaporozhets 2a6b4f965e rake task to clear redis cache 2013-03-31 23:45:58 +03:00
Dmitriy Zaporozhets a0bca5b71d Add Repository model to proxy request to Gitlab::Git::Repositoty and decorate commits with Commit model 2013-03-31 23:45:38 +03:00
Dmitriy Zaporozhets 1ea385625b Remove Commit & Tree decorators 2013-03-31 23:44:59 +03:00
Dmitriy Zaporozhets 26323046fd Decorate Gitlab::Git::Commit with Commit 2013-03-31 19:00:45 +03:00
Dmitriy Zaporozhets 9dc644635f Fix tests and remove app/models/repository.rb 2013-03-31 18:50:17 +03:00
Dmitriy Zaporozhets 154e54b46e Remove grit logic from app/ 2013-03-31 18:49:58 +03:00
Dmitriy Zaporozhets d444a23ad6 specs for Gitlab::Git::Repository and Gitlab::Git::Commit 2013-03-31 18:49:31 +03:00
Dmitriy Zaporozhets 676bce2ab9 Move Commit and Repository logic to lib/gitlab/git 2013-03-31 18:49:06 +03:00
Dmitriy Zaporozhets 71b0f8ea0b Use existing methods for branch names: Ex use @repository.branch_names instead of @repository.heads.map(&:name) 2013-03-31 17:08:10 +03:00
Dmitriy Zaporozhets 025e41576e Merge branch 'header-in-contributing-guide' of /home/git/repositories/gitlab/gitlabhq 2013-03-31 12:06:48 +00:00
Dmitriy Zaporozhets a1b76c6c0a Merge branch 'notes-in-installation-guide' of /home/git/repositories/gitlab/gitlabhq 2013-03-31 12:06:24 +00:00
Dmitriy Zaporozhets ddaedaef1a Fix therubyracer dependencies 2013-03-31 15:04:08 +03:00
Sytse Sijbrandij 8fcdbaea71 Section for important notes. 2013-03-31 13:54:46 +02:00
Sytse Sijbrandij 15143a3b7b Improve header and wording. 2013-03-31 13:48:49 +02:00
Dmitriy Zaporozhets ea7e163660 Merge pull request #3457 from jrmithdobbs/fix-freebsd-bundle-install
Update deps for therubyracer and libv8 resolve build issues on FreeBSD...
2013-03-31 01:32:33 -07:00
Douglas Huff abc47852a9 Update deps for therubyracer and libv8 to resolve build issues on FreeBSD. Resolves Iussue#3446 . 2013-03-30 18:54:12 -07:00
Dmitriy Zaporozhets 188e6a7a3f Merge pull request #3369 from hiroponz/display-note-count
Display note count on network graph.
2013-03-30 15:10:26 -07:00
Dmitriy Zaporozhets c918000bc2 Merge pull request #3396 from Andrew8xx8/issue-button-fix
New issue button was not follows to external tracker if it is selected. ...
2013-03-30 15:10:08 -07:00
Dmitriy Zaporozhets 6005ec894a Merge pull request #3392 from hiroponz/fix-non-ascii-char-username
Fix RoutingError when changing username to non ascii char.
2013-03-30 15:07:11 -07:00
Dmitriy Zaporozhets 4449ac3ad1 Merge pull request #3430 from logorrhea/master
Changed the word 'authentification' to 'authentication'
2013-03-30 15:05:29 -07:00
Dmitriy Zaporozhets 69e5a4bbeb Merge pull request #3428 from colindean/bug/assigned-team-typo
fix typo: shure -> sure
2013-03-30 15:04:32 -07:00
Dmitriy Zaporozhets 1c5a393c95 Merge pull request #3406 from docwhat/in_projects
Fixed UsersProject.in_projects
2013-03-30 15:03:44 -07:00
Dmitriy Zaporozhets 52ae054447 prevent exception when trying to edit empty project 2013-03-30 16:46:56 +02:00
Dmitriy Zaporozhets 11b89eb381 Merge branch 'master' of github.com:gitlabhq/gitlabhq 2013-03-30 16:36:15 +02:00
Dmitriy Zaporozhets e998257dcf use rollbacked version of grit to make gollum works 2013-03-30 16:35:19 +02:00
Dmitriy Zaporozhets e29c9b7932 slower animation for tree browsing 2013-03-30 16:35:19 +02:00
Dmitriy Zaporozhets 52b0ceb87a Merge branch 'accepting-mr-in-uservoice' of /home/git/repositories/gitlab/gitlabhq 2013-03-30 11:15:55 +00:00
Dmitriy Zaporozhets 214768d3c5 Merge pull request #3440 from evanwon/patch-2
Fixed: gitlab-shell version check error message
2013-03-30 04:06:06 -07:00
Dmitriy Zaporozhets 66a1b88393 Update a grit to newer version 2013-03-30 12:50:44 +02:00
Sytse Sijbrandij d8eefdccfc Removing duplication by putting everything in the readme. Allow us to close issues that deviate from the guidelines. 2013-03-30 11:35:35 +01:00
Dmitriy Zaporozhets 49f14f057d Prevent gollum to overrride gitlab-grit gem. Use grit as instead so gollum uses it too. Fixes things with gpg singatured commits, etc. 2013-03-29 08:47:14 +02:00
Dmitriy Zaporozhets a18ce40943 Revert "First step with rugged"
This reverts commit 4524ba20b8.
2013-03-28 23:01:42 +02:00
Dmitriy Zaporozhets 4524ba20b8 First step with rugged 2013-03-28 21:57:38 +02:00
Evan Wondrasek f1b369b57d Fixed: gitlab-shell version check error message 2013-03-28 11:03:00 -05:00
Dmitriy Zaporozhets 21191318ae refactor wall.js. style wall page a bit 2013-03-28 16:41:29 +02:00
Dmitriy Zaporozhets 583bfac5f5 Fix Note notification for entities without assignee 2013-03-28 16:00:19 +02:00
Dmitriy Zaporozhets 5ad4be295f remove notify checkboxes from note forms 2013-03-28 15:39:18 +02:00
Dmitriy Zaporozhets 70947fedda inslude author & assignee to note notification recipients 2013-03-28 14:51:25 +02:00
Dmitriy Zaporozhets 618249734b rebuild notification on notes logic 2013-03-28 14:39:59 +02:00
Dmitriy Zaporozhets 63e6f055f1 Fix notify specs. Fix merge request close via api 2013-03-28 13:24:01 +02:00
Dmitriy Zaporozhets 2f585840db Fixed new mr/issue emails 2013-03-28 12:52:44 +02:00
Dmitriy Zaporozhets ecf3b2e471 add text templates to new emails 2013-03-28 12:33:54 +02:00
Dmitriy Zaporozhets c04120c1c5 Improve notification service tests 2013-03-28 12:24:04 +02:00
Dmitriy Zaporozhets f49a2ac0df Add close issue/mr methods to Notify. Refactored Notificationservice 2013-03-28 12:14:53 +02:00
Dmitriy Zaporozhets 9e616459e0 add watchers to email recipients list. Add emails for close/merge MR 2013-03-28 11:59:06 +02:00
Tyler Funk 26bd6acadb Changed the word 'authentification' to 'authentication' 2013-03-27 22:03:54 -05:00
Dmitriy Zaporozhets 11d52a1553 Fix NotificationService reassign_email method 2013-03-27 22:33:59 +02:00
Dmitriy Zaporozhets 2b2d43ed2a Update develoment dependencies 2013-03-27 22:21:32 +02:00
Colin Dean 9e24929f16 fix typo: shure -> sure 2013-03-27 15:55:10 -04:00
Dmitriy Zaporozhets ed7a2136dd update sidekiq 2013-03-27 21:51:40 +02:00
Dmitriy Zaporozhets f230fe3dda Fix NotificationService NameError for new issue 2013-03-27 21:42:01 +02:00
Dmitriy Zaporozhets 0a044c7318 NotificationService respects disabled notifications now 2013-03-27 20:28:00 +02:00
Dmitriy Zaporozhets ba59912072 Prepare UI for notification settings 2013-03-27 20:07:52 +02:00
Dmitriy Zaporozhets d55ade1686 notification scaffold 2013-03-27 19:04:29 +02:00
Dmitriy Zaporozhets 5f14a6bcf8 annotated 2013-03-27 18:26:37 +02:00
Sytse Sijbrandij 3392f6c1f0 Link to accepting issues on feedback forum. 2013-03-27 10:15:12 +01:00
Dmitriy Zaporozhets a31fe1a63f Merge pull request #3407 from NARKOZ/patch-1
use convenient method to check for empty project repo
2013-03-26 23:28:07 -07:00
Dmitriy Zaporozhets e3f1164248 stub notification in event model 2013-03-26 19:27:39 +02:00
Andrew8xx8 5e6f45b07f Settings replaced by Gitlab.config 2013-03-26 21:04:00 +04:00
Dmitriy Zaporozhets 3728c4904e refactor observers test since email logic moved to service 2013-03-26 19:00:54 +02:00
Dmitriy Zaporozhets ce0945efcd refactor observers. Added BaseObserver with helper methods 2013-03-26 18:11:38 +02:00
Dmitriy Zaporozhets 6abf58466f Move new_note email logic to NotificationService 2013-03-26 17:51:06 +02:00
Dmitriy Zaporozhets f93c4dc0d8 Use notificationService for MR reassigned 2013-03-26 17:23:28 +02:00
Dmitriy Zaporozhets 38ffb8220c use NotificationService for handle notify logic when MR created 2013-03-26 17:16:06 +02:00
Christian Höltje b8502cbaee Fixed UsersProject.in_projects
I discovered while trying to use UserTeam#remove_member() that
UsersProject.in_projects was broken.  So I wrote test cases to test what
I was trying to do and fixed the underlying problem.
2013-03-26 10:19:55 -04:00
Nihad Abbasov 7ed0dc0185 use convenient method to check for empty project repo 2013-03-26 07:14:57 -07:00
Dmitriy Zaporozhets 58a1ed6dd3 Merge pull request #3398 from Andrew8xx8/spork
Spork support added
2013-03-26 06:44:52 -07:00
Dmitriy Zaporozhets da1cf5b9e7 enable callbacks for specs after notification 2013-03-26 15:16:06 +02:00
Dmitriy Zaporozhets c7bd99b040 refactor issue observer spec 2013-03-26 14:41:57 +02:00
Andrew8xx8 5949e30243 Spork support added 2013-03-26 13:38:42 +04:00
Dmitriy Zaporozhets e3e8b9fcb9 fixed tests 2013-03-26 11:17:49 +02:00
Dmitriy Zaporozhets bfebf10850 reject current_user from close issue emails 2013-03-26 11:06:24 +02:00
Dmitriy Zaporozhets 4b3950456d notification level for user 2013-03-26 10:48:07 +02:00
Dmitriy Zaporozhets cf6d4dc10c NotificationService for resolving email notification logic 2013-03-26 10:48:06 +02:00
Dmitriy Zaporozhets 448152ab94 Use NotificationService for observers pt1 2013-03-26 10:48:06 +02:00
Sytse Sijbrandij f7e630c452 Updating based on Dmitriy his comments. 2013-03-26 10:46:53 +02:00
Sytse Sijbrandij 83d3f7e052 Better header and detail why you need two times the storage. Also moving memory and storage to the bottom, OS is more important. 2013-03-26 10:46:53 +02:00
Sytse Sijbrandij 7e93aaa6e6 Corrected mistake, added hint for windows users. 2013-03-26 10:46:53 +02:00
Sytse Sijbrandij 77c802a4fe Combine it with the memory requirements that where already there. 2013-03-26 10:46:53 +02:00
Sytse Sijbrandij ec1a37875d Added memory requirements based on https://news.ycombinator.com/item?id=5423851 2013-03-26 10:46:53 +02:00
Andrew8xx8 242f6aa218 New issue button was not follows to external tracker if it is selected. fixed #3386 2013-03-26 12:28:26 +04:00
Sato Hiroyuki 33e236c631 Fix RoutingError when changing username to non ascii char. 2013-03-26 14:47:11 +09:00
Sato Hiroyuki b49c1cb161 Display note count on network graph. 2013-03-26 09:51:39 +09:00
Sato Hiroyuki 62ef763a80 Refector: clean up code. 2013-03-26 09:46:10 +09:00
Dmitriy Zaporozhets 90db28d6d0 Merge pull request #3377 from SaitoWu/grit_ext
bump version of grit_ext
2013-03-25 11:55:20 -07:00
Saito 7a4f70d79b bump version of grit_ext 2013-03-26 01:12:29 +08:00
Dmitriy Zaporozhets 8c9123943f Update changelog 2013-03-25 16:12:12 +02:00
Dmitriy Zaporozhets 795bb9cf65 Merge branch 'feature/login_with_username' 2013-03-25 16:10:30 +02:00
Dmitriy Zaporozhets 9d92433a7c login with both email or username 2013-03-25 16:10:14 +02:00
Dmitriy Zaporozhets 1496c01521 try to move wiki if it does not exist 2013-03-25 15:52:54 +02:00
Dmitriy Zaporozhets 6752968bb5 Updated changelog with transfer & security changes 2013-03-25 15:27:09 +02:00
Dmitriy Zaporozhets 6e78a1d7c8 Merge branch 'improve/project_transfer' 2013-03-25 15:20:42 +02:00
Dmitriy Zaporozhets 53e54ddf8a require gitlab-shell v1.2.0 now 2013-03-25 15:19:06 +02:00
Dmitriy Zaporozhets d6ac38133c Admin.projects: remove views and route specs 2013-03-25 14:58:43 +02:00
Dmitriy Zaporozhets 98bea4b1ff Updatev security tests since admin is a superuser now. Has access to any project 2013-03-25 13:40:08 +02:00
Dmitriy Zaporozhets c610347cc1 Removed not relevant tests for admin.projects 2013-03-25 13:36:08 +02:00
Dmitriy Zaporozhets d0df8a6ff8 remove project edit from admin area. Redesigned project page in admin area 2013-03-25 11:07:11 +02:00
Dmitriy Zaporozhets e292d7c17b Make transfer action in project controller 2013-03-25 10:48:30 +02:00
Dmitriy Zaporozhets ff35b37fd2 transfer also wiki repository when transfer a project 2013-03-25 10:47:47 +02:00
Dmitriy Zaporozhets 1fb99264a9 Use TransferContext for project 2013-03-25 10:47:22 +02:00
Dmitriy Zaporozhets 850881a2ef add admin ability to edit project settings from project area 2013-03-25 10:46:57 +02:00
Riyad Preukschas 6e15284844 Merge pull request #3354 from vinodc/install-docs-typo-fix
Fixing a minor typo in the installation docs
2013-03-25 00:49:19 -07:00
Dmitriy Zaporozhets afa9f6045a Merge branch 'more-links-in-readme' of /home/git/repositories/gitlab/gitlabhq 2013-03-25 07:39:23 +00:00
Vinod Chandru df46903dbe Fixing a minor typo in the installation docs 2013-03-24 20:23:02 -07:00
Dmitriy Zaporozhets 5f159d4bc0 Merge pull request #3335 from zzet/patch-4
Update databases.md
2013-03-24 03:44:14 -07:00
Andrew Kumanyaev 4cc27fd9e1 Update database.yml.postgresql 2013-03-24 14:10:32 +04:00
Dmitriy Zaporozhets 38ea3939b2 Merge branch 'hiroponz-fix-404-json-file' 2013-03-24 12:01:56 +02:00
Dmitriy Zaporozhets 29b0ac489b move edit to separate controller. This fixes #3265 2013-03-24 11:57:44 +02:00
Andrew Kumanyaev 159cd0d742 Update databases.md 2013-03-24 13:48:23 +04:00
Dmitriy Zaporozhets b6641d6932 Merge branch 'fix-404-json-file' of https://github.com/hiroponz/gitlabhq into hiroponz-fix-404-json-file 2013-03-24 11:26:57 +02:00
Dmitriy Zaporozhets 979dcdba95 security update of crack gem 2013-03-24 11:24:26 +02:00
Sytse Sijbrandij 0d56b1b07f Updated links to gitlab.com and added the last doc files. 2013-03-23 21:20:09 +01:00
Sytse Sijbrandij c4f8d34b7d spelling error 2013-03-23 21:06:00 +01:00
Sytse Sijbrandij de3b181a69 5.0 should no longer be on the roadmap 2013-03-23 21:05:42 +01:00
Dmitriy Zaporozhets 77faffbda3 Merge pull request #3305 from dosire/update-ruby
Update ruby to latest version.
2013-03-22 11:04:00 -07:00
Sytse Sijbrandij 5cc5b74e8e Update ruby to latest version. 2013-03-22 18:34:59 +01:00
Dmitriy Zaporozhets e48fdde4f8 Merge pull request #3300 from aus/patch-1
Change gollum repo to use https:// instead of git://
2013-03-22 10:11:15 -07:00
Dmitriy Zaporozhets 747706a83a Merge pull request #3303 from dosire/attribute
Attribution as mentioned in https://news.ycombinator.com/item?id=5423635
2013-03-22 10:10:07 -07:00
Sytse Sijbrandij 78dd9a1481 All involved are mentioned. https://news.ycombinator.com/item?id=5424050 2013-03-22 17:54:42 +01:00
Dmitriy Zaporozhets c0da61c6d8 fix xss issue in blame 2013-03-22 18:52:25 +02:00
Sytse Sijbrandij 3869cfecc1 Use real name. 2013-03-22 17:42:31 +01:00
Sytse Sijbrandij ccc8806758 Attribution as mentioned in https://news.ycombinator.com/item?id=5423635 2013-03-22 17:39:22 +01:00
Austin Robertson ba1dbd39fb Change Gemfile.lock repo to use https:// 2013-03-22 10:38:27 -05:00
Austin Robertson 693dcce6bc Change gollum repo to use https:// instead of git://
A lot of people might have firewalls blocking the git:// protocol. Using https:// makes this easier and matches the other git repositories in the Gemfile.
2013-03-22 10:31:19 -05:00
Dmitriy Zaporozhets de2c189ec1 fix blame view head nav 2013-03-22 15:11:16 +02:00
Dmitriy Zaporozhets 84043e8e44 Fix lines and line numbers being squashed in File -> blame 2013-03-22 15:08:02 +02:00
Dmitriy Zaporozhets 235605fc6d Merge pull request #3288 from hiroponz/fix-style-network-graph
Fix style of network graph.
2013-03-22 00:43:26 -07:00
Sato Hiroyuki f5e001bd8c Using arrowed line only if it connects to not first parent.
It is easy to see which branch is merged.
2013-03-22 16:09:21 +09:00
Sato Hiroyuki 26606aa2ec Fix style of network graph.
refs #3258
2013-03-22 10:11:53 +09:00
Dmitriy Zaporozhets 5f9d654939 Dont show '0 additions and 0 deletions' message for commit 2013-03-21 22:50:18 +02:00
Dmitriy Zaporozhets ad5ea14210 Move commit.show partial from commits/ to commit/ 2013-03-21 22:22:54 +02:00
Dmitriy Zaporozhets fec283889b fix commit-description css on commit.show 2013-03-21 22:22:21 +02:00
Dmitriy Zaporozhets c4299bb45a Move directory logic out of model. Use Gitlab:Shell class to interact with file system 2013-03-21 22:11:08 +02:00
Dmitriy Zaporozhets 0103363191 replace Gitolited mixin with Gitlab::ShellAdapter 2013-03-21 21:01:14 +02:00
Dmitriy Zaporozhets d6338a8482 Merge pull request #3258 from hiroponz/display-commit-msg
Display commit message on network graph.
2013-03-21 09:58:57 -07:00
Sato Hiroyuki 06c5389780 Fix travis failure randomly, because Capybara.default_wait_time is too short. 2013-03-21 15:24:06 +00:00
Sato Hiroyuki a1fe375e44 Fix 404 error while displaying json files.
It uses params[:id] instead of request.fullpath.
It should fix #3132.
2013-03-21 15:10:14 +00:00
Dmitriy Zaporozhets 02f70851e4 Update readme to match 5-0-stable 2013-03-21 16:29:53 +02:00
GitLab f7ca6c5079 Version up to 5.0.0 2013-03-21 15:20:17 +02:00
Sato Hiroyuki a19e3d898d Display icon and commit message on network graph. 2013-03-21 13:08:54 +00:00
Sato Hiroyuki 916c61fc64 Refactor: clean up code. 2013-03-21 12:34:15 +00:00
Dmitriy Zaporozhets 0df01283b0 Merge pull request #3276 from DarthJDG/fix-group-typo
Fix column heading order in group admin view
2013-03-21 00:15:57 -07:00
Robert Biro f39d3b9a09 Fix column heading order in group admin view 2013-03-20 22:15:42 +00:00
Dmitriy Zaporozhets 3cdac0b934 Use Api.js to handle api calls to gitlab 2013-03-20 21:55:25 +02:00
Dmitriy Zaporozhets a163135cb5 Intead of showing 404 give users ability to close MR with missing branches 2013-03-20 20:22:29 +02:00
Dmitriy Zaporozhets a0cc38827f remove db:setup & seed_fu from install docs. gitlab:setup does it 2013-03-20 19:30:59 +02:00
Dmitriy Zaporozhets c71a7896b1 fix test button functionality for project -> service -> gitlab ci 2013-03-20 16:41:59 +02:00
Sato Hiroyuki 1f6b6b6c62 Rotating graph orientation. 2013-03-20 12:28:22 +00:00
Dmitriy Zaporozhets 9d06074409 gitlab 5.0 rc1 2013-03-20 13:49:32 +02:00
Dmitriy Zaporozhets 3d9bd6e3e7 fix gfm helper test 2013-03-20 13:41:18 +02:00
Dmitriy Zaporozhets 51b1859e49 fix key observer test 2013-03-20 10:25:11 +02:00
Dmitriy Zaporozhets 6347e9a60b Dont load diff in compare over 100 commits 2013-03-20 10:19:00 +02:00
Dmitriy Zaporozhets 72db22d385 send wall message with crtl+enter 2013-03-20 09:53:39 +02:00
Dmitriy Zaporozhets 316cf61965 Merge pull request #3247 from Undev/feature/fix_bug_in_team_assigment
Fix bug with downgrade permissions on first project assigment to team
2013-03-20 00:35:24 -07:00
Dmitriy Zaporozhets d2ca549f41 Merge pull request #3264 from yuters/patch-2
Fix user path in markdown
2013-03-20 00:32:45 -07:00
Dmitriy Zaporozhets 67bda08cbe Merge pull request #3266 from DanKnox/fix_wiki_cancel_edit_button
Fix the Cancel button on the Edit Wiki page.
2013-03-20 00:29:05 -07:00
Dan Knox 8300ae366c Fix the Cancel button on the Edit Wiki page.
The Cancel button on the Edit Wiki page was still redirecting back
to the "Index" page which is no longer the default Wiki page.

This commit changes the Cancel button in the following ways:

  * Pressing Cancel while editing an existing Wiki page will now
    redirect you back to the latest version of that page.
  * Pressing Cancel while editing a brand new Wiki home page that
    does not yet exist will redirect you to back to the same Edit
    Wiki Home page.
2013-03-19 21:36:09 -07:00
Martin Bastien 397c3da975 Fix user path in markdown 2013-03-19 21:29:59 -03:00
Dmitriy Zaporozhets 6880ace1fe Fix bug showing merge MR in milestone open list 2013-03-19 20:11:47 +02:00
Dmitriy Zaporozhets a3cdaeef66 refactor emails a bit. Add email on ssh key creation 2013-03-19 20:00:41 +02:00
Dmitriy Zaporozhets 52d3fa191f 5.0 beta2 2013-03-19 19:17:59 +02:00
Dmitriy Zaporozhets fb4f171587 rails up to 3.2.13 2013-03-19 18:52:17 +02:00
Dmitriy Zaporozhets 8ec01e0ba9 remove ajax loader from wall 2013-03-19 18:14:59 +02:00
Dmitriy Zaporozhets 3b42c267a6 Dont show blocked users in autocomplete 2013-03-19 18:07:14 +02:00
Dmitriy Zaporozhets 07a88d6699 Merge pull request #3255 from michelsalib/patch-1
Gitlab does not use gitolite anymore.
2013-03-19 08:59:10 -07:00
Dmitriy Zaporozhets 0cbb235c3e fix incorrectly moved spinach step 2013-03-19 17:53:21 +02:00
Dmitriy Zaporozhets 4403f71f45 added sanitize and linkify functions. Moved some js to lib/ 2013-03-19 15:54:58 +02:00
Dmitriy Zaporozhets 2465a4fdb2 removed few outdated tests 2013-03-19 15:37:11 +02:00
Dmitriy Zaporozhets 70af962963 Comment external issue tracker by default in gitlab.yml.example 2013-03-19 15:11:31 +02:00
Dmitriy Zaporozhets e6c2080214 use scrollTop solution for both chrome & firefox 2013-03-19 15:04:58 +02:00
Dmitriy Zaporozhets 063c4a069c fix wall feature. removed duplicated test 2013-03-19 14:58:58 +02:00
Dmitriy Zaporozhets ba4f0abf47 wall comment does not create an event on dashboard any more 2013-03-19 14:50:26 +02:00
Dmitriy Zaporozhets b1bd3f1252 fix tests. added jquery.timeago.js 2013-03-19 14:39:32 +02:00
Dmitriy Zaporozhets 124a5e270e add attachemnts support for wall 2013-03-19 13:28:29 +02:00
Michel Salib e2ddf03c7e Gitlab does not use gitolite anymore. 2013-03-19 11:52:59 +01:00
Dmitriy Zaporozhets 4d378f3c9a load notes for wall via api 2013-03-19 12:35:55 +02:00
Dmitriy Zaporozhets 57f3409bcc move Wall to own resource 2013-03-19 12:35:42 +02:00
Dmitriy Zaporozhets f3dfd22993 add wall.scss 2013-03-19 12:34:59 +02:00
Dmitriy Zaporozhets 5bf3a898ed Remove wall from basic notes logic 2013-03-19 12:34:14 +02:00
Sato Hiroyuki 175e09f167 Change graph element size. 2013-03-19 19:27:15 +09:00
Sato Hiroyuki 351c952192 Refactor: extract method. 2013-03-19 18:42:46 +09:00
Sato Hiroyuki 96a584211b Refactor: Clean up code. 2013-03-19 18:08:27 +09:00
Dmitriy Zaporozhets 1752c6dc8b Uncheck notify team checkbox by default 2013-03-19 09:38:33 +02:00
Dmitriy Zaporozhets e68955b4fc add permission messages to project edit 2013-03-19 09:27:12 +02:00
Dmitriy Zaporozhets fb1c85061e remove unused spec 2013-03-19 08:40:32 +02:00
Dmitriy Zaporozhets 54f40301ff fixed form input overflow on 1024px res 2013-03-19 08:39:26 +02:00
Dmitriy Zaporozhets 306ea84e85 Merge pull request #3251 from AlexDenisov/api_additional_user_fields
Abilities added to /user and /sign_in requests
2013-03-18 23:20:11 -07:00
Dmitriy Zaporozhets 924643198c Merge pull request #3252 from hiroponz/fix-timeout-large-repository
Fix timeout error while showing the network graph.
2013-03-18 23:17:52 -07:00
Sato Hiroyuki 92de0faf6e Fix spec errors. 2013-03-19 14:21:00 +09:00
Alex Denisov a15fe61fb0 API docs updated 2013-03-19 04:47:08 +00:00
Sato Hiroyuki fc66c18349 Fix travis failed randomly by timeout. 2013-03-19 12:53:12 +09:00
Sato Hiroyuki e00e54b69c Fix timeout error while showing the very large repo like git repo. 2013-03-19 10:36:40 +09:00
Sato Hiroyuki 46fa92187d Refactor: removing duplicate code. 2013-03-19 10:00:29 +09:00
Dmitriy Zaporozhets 7587a3b2fc fixed check for snippets module enabled 2013-03-18 23:44:57 +02:00
Dmitriy Zaporozhets 747292e2d3 reorder features list in project -> edit page 2013-03-18 23:38:16 +02:00
Dmitriy Zaporozhets b765a7958d Move snippets to own tab as feature. Make it disabled for new projects by default 2013-03-18 23:33:41 +02:00
Dmitriy Zaporozhets 112dc875ba feature: wiki -> new page 2013-03-18 23:08:54 +02:00
Dmitriy Zaporozhets ae06a0aab8 Return own tab for wall. Improve Wiki nav. Removed attachments listing page 2013-03-18 22:43:14 +02:00
Alex Denisov 28e7d1a8bf Abilities added to /user and /sign_in requests 2013-03-18 20:11:28 +00:00
Dmitriy Zaporozhets 6956f1f6e1 Improve usability of project edit page 2013-03-18 20:50:41 +02:00
Dmitriy Zaporozhets 0c884498d2 Rename project_head partial to settings_nav 2013-03-18 19:35:27 +02:00
Dmitriy Zaporozhets 0eccc08015 show project description in project listing on dashboard 2013-03-18 19:22:15 +02:00
Andrey Kumanyaev 0f39610532 Add control of action in project to team assigment 2013-03-18 16:07:04 +04:00
Andrey Kumanyaev a0f2fbc250 Fix bug with downgrade permissions on first project assigment to team 2013-03-18 15:44:26 +04:00
Dmitriy Zaporozhets aa5327a565 Fix project_limit being ignored on signup 2013-03-18 13:22:41 +02:00
Dmitriy Zaporozhets 3513902396 Merge pull request #3242 from murank/fix_failure_of_checking_merge_requests
Fix failure of cheking a merge request after conflict.
2013-03-18 03:39:51 -07:00
Dmitriy Zaporozhets d8ad01bb6e Merge pull request #3243 from lyda/misspellings
Result of misspellings run.
2013-03-18 03:37:37 -07:00
Kevin Lyda 415bade302 Result of misspellings run.
Most of these are comments but a few are strings for users.

Might be an idea to run this from time to time:
https://github.com/lyda/misspell-check

It runs mostly clean now.
2013-03-17 19:46:54 +00:00
murank 77295b00b8 Fix the order of clearing a satellite 2013-03-17 23:50:20 +09:00
Dmitriy Zaporozhets a96e0ec57e Merge pull request #3240 from DanKnox/fix_wiki_migrator
Fix Wiki migration task and add more test coverage.
2013-03-17 04:48:27 -07:00
Dan Knox 330fe4162e Fix Wiki migration task and add more test coverage.
There was an error in the #extract_attributes_from_page method that
caused an exception when checking to see if a page named "Home"
already exists.

The check occurs to handle the renaming of the main index page to
"Home" to match the Gollum standard. If there is already a page
called "Home" then the migrator will leave that page and create
the Index page as usual. Users will need to manually rename their
old "Home" page to something else then rename their "Index" page
to "Home". Fortunately, I would be highly surprised if this case
ever comes up.

I also added more verbosity to the logging so if an error does
occur, it will be easier to track down which Wiki page is causing
the problem.
2013-03-16 18:01:48 -07:00
Dmitriy Zaporozhets c367cc5ca6 Show projet name with namespace on team _projects widget 2013-03-16 14:40:16 +02:00
Dmitriy Zaporozhets cf848fd06d Merge pull request #3217 from chrislawlor/2437
Adds DB-sensitive tablename escape for backup task.
2013-03-16 02:26:01 -07:00
Dmitriy Zaporozhets 699c9cd499 Gemfile.lock with gollum 2013-03-15 18:50:45 +02:00
Dmitriy Zaporozhets 9f3a593092 Merge pull request #3230 from DanKnox/update_gollum_repo_location
Update gollum repository location in the Gemfile.
2013-03-15 09:46:23 -07:00
Sytse Sijbrandij 50c05b71b7 Update links to GitLab.com after renaming of GitLab cloud. 2013-03-15 17:33:43 +01:00
Dan Knox 8403e99f28 Update gollum repository location in the Gemfile.
Github just moved the Gollum repository to it's own organization.
This commit updates the Gemfile to point to the new repo location.

I also added a specific ref pointer to a version that is known to
work well just in case they slip up and break their master branch
right at the same time someone happens to be installing or updating
Gitlab. This is about the safest we can get until they put out the
next release that resolves the Pygments dependency issue.
2013-03-15 09:05:02 -07:00
Dmitriy Zaporozhets fdfc408d87 version up to beta1 2013-03-15 18:01:03 +02:00
Dmitriy Zaporozhets d75cb57f9c remove separator between search & icons in header 2013-03-15 17:35:54 +02:00
Dmitriy Zaporozhets 3c050a29a7 Merge branch 'DanKnox-use_gollum_wikis' 2013-03-15 17:21:13 +02:00
Dmitriy Zaporozhets 94f0493999 few fixes afte merge gollum wiki 2013-03-15 17:21:01 +02:00
Dmitriy Zaporozhets 71ab011a17 Merge branch 'use_gollum_wikis' of https://github.com/DanKnox/gitlabhq into DanKnox-use_gollum_wikis
Conflicts:
	app/views/layouts/project_resource.html.haml
	app/views/wikis/edit.html.haml
	app/views/wikis/pages.html.haml
	app/views/wikis/show.html.haml
	spec/features/gitlab_flavored_markdown_spec.rb
2013-03-15 16:55:07 +02:00
Dmitriy Zaporozhets 4f23c30ace Fix highlight line for solarized theme 2013-03-15 16:20:40 +02:00
Dmitriy Zaporozhets 86e23a584a spianch -> profile -> specify within block 2013-03-15 16:05:07 +02:00
Dmitriy Zaporozhets 2449bea2c4 restyle header a bit 2013-03-15 15:39:47 +02:00
Dmitriy Zaporozhets 21b1fee92c reannotated 2013-03-15 15:16:02 +02:00
Dmitriy Zaporozhets 2a04341fba finish up with solarized dark 2013-03-15 15:14:56 +02:00
Dmitriy Zaporozhets 8cad1c9f4c add dark solarized theme for code preview 2013-03-15 15:09:34 +02:00
Dmitriy Zaporozhets 7799b5bda6 Merge branch 'feature/writeboard' 2013-03-15 14:22:49 +02:00
Dmitriy Zaporozhets 35ad4fe7db Use wiki tab for wiki, wall, snippets 2013-03-15 14:20:03 +02:00
Dmitriy Zaporozhets 39bbdc468f on wall subpage active tab should be wiki too 2013-03-15 09:39:50 +02:00
Dmitriy Zaporozhets 5bf88506ec rename writeboards to wiki 2013-03-15 09:39:07 +02:00
Dmitriy Zaporozhets 2681a01bcf add resize button for better wiki reading 2013-03-14 22:57:38 +02:00
Dmitriy Zaporozhets a685624d27 Merge wiki, wall & snippets under one tab - writeboards 2013-03-14 22:24:27 +02:00
Dmitriy Zaporozhets 753ecbdcec Change spinach tab tests to fit new tabs navigation 2013-03-14 21:51:44 +02:00
Dmitriy Zaporozhets 38ecec4472 Remove tree single-tab panel 2013-03-14 19:50:57 +02:00
Chris Lawlor 3df5253cc3 Adds DB-sensitive tablename escape for backup task.
Uses ActiveRecord::Base.connection.quote_table_name.
Fixes issue 2437.
2013-03-14 13:30:25 -04:00
Dmitriy Zaporozhets 5c4e74acc3 Add settings tab to project. Move all project administration there 2013-03-14 19:28:29 +02:00
Dmitriy Zaporozhets d2b882fae5 Fix spinach tests 2013-03-14 17:13:00 +02:00
Dmitriy Zaporozhets da3bc14d80 removed mistype 2013-03-14 14:02:56 +02:00
Dmitriy Zaporozhets a8b1f8c0e5 use refresh icon instead loader gif 2013-03-14 14:02:24 +02:00
Dmitriy Zaporozhets 88d42c2e1c Replace projects_box with ui-box. Fixed team spinach test 2013-03-14 13:12:11 +02:00
Dmitriy Zaporozhets e84df44ea0 Redesign search filters 2013-03-14 13:11:20 +02:00
Dmitriy Zaporozhets 4673c85379 add teams to search autocomplete 2013-03-14 12:43:08 +02:00
Dmitriy Zaporozhets 441d256188 Rebuild team area 2013-03-14 12:38:43 +02:00
Dmitriy Zaporozhets f4f36f78dd Remove separate search page from group 2013-03-14 12:37:28 +02:00
Dmitriy Zaporozhets cc1dd624aa Restyled group -> edit area. Use select2 for transfer autocomplete 2013-03-14 11:31:33 +02:00
Dmitriy Zaporozhets 2f6d289f32 style select2-searching too 2013-03-14 10:20:45 +02:00
Dmitriy Zaporozhets 0e57085795 Merge branch 'feature/select2-user-ajax' 2013-03-14 10:20:25 +02:00
Dmitriy Zaporozhets ef05423f47 Finish select2-ajax for users. Added Select2Helper for tests 2013-03-14 10:16:27 +02:00
Dan Knox d69a37e0b7 Fix whitespace on MARKUPS constant in GollumWiki class. 2013-03-14 00:07:01 -07:00
Dan Knox 6d25484417 Limit available Wiki formats to Markdown and RDoc. 2013-03-13 23:34:50 -07:00
Dan Knox 7665b1de7e Use Gitlab Markdown for Markdown files and Gollum to render the rest.
This commit enables the usage of the Gitlab Markdown post processing
on all Markdown formatted files. For file types that do not contain
Markdown, it defaults to the Gollum native renderer to process the
content.
2013-03-13 23:31:08 -07:00
Dmitriy Zaporozhets 10f14136f5 fix setting gon.api_token 2013-03-13 23:45:47 +02:00
Dmitriy Zaporozhets bdcaf21ea7 Allow single/multiple user select 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets 7316055ac8 multiselect for ajax-users-select2 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets bf17d976a7 add api users filter and integrate users select2 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets 163908b393 user select2 javascript 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets 1bba46d661 md5 and utf_encode js libraries 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets 67e2cf8864 select2-rails gem added 2013-03-13 23:19:09 +02:00
Dmitriy Zaporozhets d1a5e370f3 show mail-to and block buttons on /admin/users/:id page 2013-03-13 23:15:39 +02:00
Dmitriy Zaporozhets 963c212b68 UserTeam spinach fixed 2013-03-13 22:30:33 +02:00
Dmitriy Zaporozhets 496b7da7a0 Fix spinach tests 2013-03-13 21:58:32 +02:00
Dmitriy Zaporozhets 1587caa3e4 Use name+username in team -> new 2013-03-13 19:24:30 +02:00
Dmitriy Zaporozhets fa9a8c3847 Remove team_member show page -> use user_path instead 2013-03-13 19:16:36 +02:00
Dmitriy Zaporozhets 366bc32013 stub git shell mv_repository 2013-03-12 18:59:25 +02:00
Dmitriy Zaporozhets aecb37623e ask users to use ruby 1.9.3 for now 2013-03-12 14:16:55 +02:00
Dmitriy Zaporozhets 70fc1c5021 cleanup ProjectMover 2013-03-12 14:13:25 +02:00
Dmitriy Zaporozhets f1c24f40f9 fix spinach after #3196 2013-03-12 14:10:20 +02:00
Dmitriy Zaporozhets 6755d9908f Merge pull request #3196 from Undev/feature/broken-projects-search-23049
Broken projects search on dashboard
2013-03-12 04:31:57 -07:00
Andrew8xx8 fce22dfa2f Tests for dashboard projects fixed 2013-03-12 15:15:14 +04:00
Dmitriy Zaporozhets 147b93ee3e check gitlab-shell version in gitlab:check 2013-03-12 12:53:07 +02:00
Dmitriy Zaporozhets 102695530b fix project move email 2013-03-12 12:40:49 +02:00
Dmitriy Zaporozhets 59b36f2032 Use gitlab-shell to move repos. Requires gitlab-shell v1.1.0 2013-03-12 12:37:53 +02:00
Andrew8xx8 804ae05c58 Tests improved 2013-03-12 13:41:23 +04:00
Andrew8xx8 23f8f13ea4 Search fields were have same id's. Fixed 2013-03-12 13:41:23 +04:00
Andrew8xx8 072883fd08 Search projects on dashboard was not worked. Fixed 2013-03-12 13:26:45 +04:00
Dmitriy Zaporozhets b1e425511f restyle and cleanup emails 2013-03-12 10:46:04 +02:00
Dmitriy Zaporozhets 7367f1cfd8 Merge pull request #3192 from hiroponz/convert-to-coffee
Convert branch-graph.js to branch-graph.js.coffee
2013-03-11 06:48:16 -07:00
Dmitriy Zaporozhets dc3590d619 fix api internal test 2013-03-11 15:47:44 +02:00
Sato Hiroyuki 197f9abedf Covert to coffee. 2013-03-11 21:41:24 +09:00
Dmitriy Zaporozhets 11b57d979c Reduce amount of user info provided with internal api 2013-03-11 14:35:00 +02:00
Sato Hiroyuki b8f070f0d1 Rename to coffee. 2013-03-11 21:32:44 +09:00
Dmitriy Zaporozhets a29c883b5b Merge pull request #3170 from Asquera/api/system_hooks_adjustments
API: system hook request functions and documentation updated
2013-03-10 23:56:29 -07:00
Dan Knox f0aa54e0fb Create Wiki migration task.
This commit adds a new Rake task for migrating all of your existing
Wiki content from your database into new Gollum repositories.

The bulk of the logic happens within the `WikiToGollumMigrator`
class which is decently test covered and located in the lib directory.

The new Rake task can be executed by running:

   `bundle exec rake gitlab:wiki:migrate`

It will output a nice log of every project that it migrates along
with success or failure messages.

I have used it on my own installation to migrate my Wikis successfully.
2013-03-10 19:10:44 -07:00
Dan Knox 1479f17227 Add Spinach coverage for Gollum Wiki system and correct the Delete link.
The previously failing Spinach steps have been fixed with this commit.
I have also added new steps that cover the entire usage of the Wiki
system.

The new Spinach steps revealed a minor bug in the Delete page process.
The path for the "Delete this page" button was previously set to
`project_wikis_page(@project, @wiki)` when it should have been
using the singular `project_wiki_page(@project, @wiki)` path helper.

The link has been corrected and all steps are now passing.
2013-03-10 14:59:20 -07:00
Dmitriy Zaporozhets 269a985948 fixed travis env, added coverage badge 2013-03-10 20:29:34 +02:00
Dmitriy Zaporozhets 96fbef60f9 add coveralls.io to travis builds 2013-03-10 20:26:27 +02:00
Dmitriy Zaporozhets 473efc82b6 Group and team rss is valid now 2013-03-10 12:16:57 +02:00
Dmitriy Zaporozhets 8812d9dee2 Move groups and teams to tabs on dashboard. Remember tab with cookie 2013-03-10 11:57:14 +02:00
Dmitriy Zaporozhets 96c627edd8 Merge pull request #3169 from hiroponz/refactor-network-graph
Refactor network graph
2013-03-10 01:00:14 -08:00
Dan Knox ea9b3687db Replace current Wiki system with Gollum Wikis.
This commit replaces the old database backed Wiki system with the
excellent Gollum git based Wiki system.

The UI has been updated to allow for utilizing the extra features
that Gollum provides. Specifically:

* Edit page now allows you to choose the content format.
* Edit page allows you to provide a commit message for the change.
* History page now shows Format, Commit Message, and Commit Hash.
* A new Git Access page has been added with the Wiki Repo URL.
* The default page has been changed to Home from Index to match
the Gollum standard.

The old Wiki model has been left in tact to provide for the
development of a migration script that will move all content stored
in the old Wiki system into new Gollum Wikis.
2013-03-09 16:39:51 -08:00
Dmitriy Zaporozhets 8e8372d5ce better logo images for header 2013-03-10 00:12:25 +02:00
Dmitriy Zaporozhets 9c709be335 fix event relative date being cached 2013-03-08 13:14:47 +02:00
Dmitriy Zaporozhets bc15713569 Merge pull request #3173 from m4tthumphrey/patch-1
Added system hooks link to doc index
2013-03-08 02:08:09 -08:00
Matt Humphrey 7fb2999c60 Added system hooks link to doc index 2013-03-08 09:37:00 +00:00
Sebastian Ziebell 562de2a438 Merge branch 'master' into api/system_hooks_adjustments 2013-03-07 17:59:27 +01:00
Sebastian Ziebell 32f1eaaf0f API: system hooks API functions and documentation updated
* updated system hooks documentation and code comments
* fixed access to system hooks if no user given resulting in a `500 Server Error`
* added tests
2013-03-07 17:56:11 +01:00
Dmitriy Zaporozhets a7055be1fd Merge pull request #2835 from Asquera/fixes/api
Fix API return codes
2013-03-07 08:33:34 -08:00
Sebastian Ziebell ecf53bb9e6 API: fixes project creation and removed redundant info 2013-03-07 15:11:33 +01:00
Sebastian Ziebell 3374027e3a Merge branch 'master' into fixes/api, code clean up and tests fixed
Conflicts:
	doc/api/projects.md
	spec/requests/api/projects_spec.rb
2013-03-07 14:51:56 +01:00
Dmitriy Zaporozhets d2cec12632 block user should not be able to push 2013-03-07 14:18:30 +02:00
Sato Hiroyuki c0d312bebe Refactor: Removing a if statement, because the nil value is already removed in the view template. 2013-03-07 21:10:40 +09:00
Sato Hiroyuki b7e5f4556b Refactor: Removing the duplicated code. 2013-03-07 21:10:27 +09:00
Sato Hiroyuki 79cd1ca304 Refactor: change the map hash from a local variable to private variable. 2013-03-07 19:52:46 +09:00
Sato Hiroyuki ccc712b198 Refacor: removing the times array, because that is same with @commits array. 2013-03-07 19:16:51 +09:00
Dmitriy Zaporozhets 9c2a6e2013 Merge pull request #3047 from mikew/capistrano-deploy-example
Capistrano deploy example
2013-03-07 02:08:11 -08:00
Dmitriy Zaporozhets a32f85ac76 Merge pull request #3139 from rapofran/auto_focus_ldap_login
Autofocus to username input (LDAP login).
2013-03-07 01:55:19 -08:00
Dmitriy Zaporozhets 0d66fa89fc fix stubbed repo 2013-03-07 11:45:44 +02:00
Dmitriy Zaporozhets ca9098d898 remove last commit widget, added repo size and owner info on project home page 2013-03-07 11:14:19 +02:00
Sato Hiroyuki 8c5003cf75 Refactor: clean up models.
* Network::Commit
** Removing unnecessary accessors.
** Removing add_refs methods.
* Network::Graph
** Removing unnecessary accessors.
** The 3 times loop of commits don't need.
2013-03-07 17:56:01 +09:00
Dmitriy Zaporozhets e90277f9b5 show project description on public area 2013-03-07 10:08:43 +02:00
Dmitriy Zaporozhets 7c408960ce Merge pull request #3146 from amacarthur/AdminAPIs
Additional Admin APIs
2013-03-06 22:57:24 -08:00
Dmitriy Zaporozhets 52bf5b0e78 Merge pull request #3159 from peikk0/allow-redis-via-socket
Allow connection to Redis via unix socket
2013-03-06 22:43:13 -08:00
Sato Hiroyuki e03a018d28 Refactor: rename module and class names.
* Module: Graph -> Network
* Class: JsonBuilder -> Graph
2013-03-07 15:42:30 +09:00
Dmitriy Zaporozhets 1c2a7bc3cd Merge pull request #3161 from cabello/patch-1
Refactor README to split production/development environments
2013-03-06 22:31:25 -08:00
Sato Hiroyuki 784aa266bd Refactor: grouping parent and their space by including array. 2013-03-07 15:19:42 +09:00
Sato Hiroyuki 2f7f46b256 Refactor: replace "render :json = graph.to_json" to view template(show.json.erb).
Because model shouldn't know about view logic.
2013-03-07 15:19:32 +09:00
Danilo Cabello 3d662e5ccf Refactor README to split production/development environments 2013-03-06 20:06:56 -05:00
Sebastian Ziebell 39114d259c API: documentation contains infos to status codes in README file.
All the info to return codes from the API functions are available in the `README.md` file as suggested.
2013-03-07 00:15:57 +01:00
Pierre GUINOISEAU 67a61c80d1 Allow connection to Redis via unix socket
Allow connection to Redis via unix socket, using
unix:/var/run/redis/redis.sock for example.

Default behaviour does not change, except that the full Redis URL must
be configured, with redis:// for tcp or unix: for unix socket.
2013-03-06 22:06:12 +01:00
Dmitriy Zaporozhets 9dc46eee8e Return project description back 2013-03-06 22:56:48 +02:00
Dmitriy Zaporozhets 7b38a0de98 show highlighted code correctly inside issue body 2013-03-06 21:48:15 +02:00
Dmitriy Zaporozhets 872cf404eb fix js syntax error 2013-03-06 21:39:10 +02:00
Dmitriy Zaporozhets 19e9c736e7 add system hooks api docs to help content 2013-03-06 21:12:47 +02:00
Dmitriy Zaporozhets 08f29c322e update Gemfile.lock with https rubygems 2013-03-06 21:10:01 +02:00
Dmitriy Zaporozhets 89ce02ea5d Merge pull request #3158 from dosire/master
Use secure protocol
2013-03-06 10:22:45 -08:00
Sytse Sijbrandij bcaf3c2c3e Use secure protocol 2013-03-06 17:55:11 +01:00
Dmitriy Zaporozhets afee5303ff Merge pull request #3149 from m4tthumphrey/api-deploy-keys
Added methods to manage project deploy keys via API
2013-03-06 07:43:45 -08:00
Dmitriy Zaporozhets 65d78253cb Merge pull request #3156 from m4tthumphrey/api-system-hooks
Added methods to manage system hooks from API
2013-03-06 07:42:43 -08:00
Dmitriy Zaporozhets 0384ef46b8 Merge pull request #3157 from cabello/patch-1
Update README with references to versions.
2013-03-06 07:37:07 -08:00
Dmitriy Zaporozhets 4c1538a946 Use redis as cache storage. cache events 2013-03-06 17:30:48 +02:00
Danilo Cabello 4db5ec281e Update README with references to versions. 2013-03-06 10:20:46 -05:00
Matt Humphrey 1dd712ddc2 System hooks API. 2013-03-06 15:15:26 +00:00
Dmitriy Zaporozhets 40f1868194 Fix loading animation while browsing tree 2013-03-06 17:12:28 +02:00
Dmitriy Zaporozhets e38e2ce29a Merge pull request #3154 from hiroponz/fix-routing-error
Fix routing error
2013-03-06 05:08:09 -08:00
Sato Hiroyuki 83435e3d46 Adding sleep statements to allow sufficient time for the page to settle. 2013-03-06 16:36:11 +09:00
Sato Hiroyuki e7a67a5583 Don't set format manually, bacause set in routing. 2013-03-06 16:36:10 +09:00
Sato Hiroyuki bb63459d53 Fix routing errors.
It should fix #2598.
2013-03-06 16:36:10 +09:00
Sato Hiroyuki 6224ac0647 Add and fix some tests for routing.
It is linked to #2598.
2013-03-06 16:36:01 +09:00
Dmitriy Zaporozhets d03af842c5 fix public projects identations 2013-03-06 09:12:14 +02:00
Angus MacArthur 47abdc10ca Updated documentation for added Admin APIs 2013-03-05 23:48:40 -05:00
Sebastian Ziebell b5ef6d2268 API: refactored and simplified error handling in merge requests API 2013-03-05 23:43:05 +01:00
Sebastian Ziebell cce35b6d05 Fixes api 2013-03-05 22:33:45 +01:00
Sebastian Ziebell 61cfa2a7a6 Merge branch 'master' into fixes/api
Conflicts:
	lib/api/projects.rb
2013-03-05 22:29:49 +01:00
Matt Humphrey f411772e33 Project deploy keys API 2013-03-05 21:23:29 +00:00
Angus MacArthur 61ffcab60f Additional Admin APIs 2013-03-05 10:38:43 -05:00
Dmitriy Zaporozhets 6beae84ea3 reduce letter-spacing for top nav 2013-03-05 17:28:13 +02:00
Dmitriy Zaporozhets a99ad3d355 tree_heleper: concat html only if present. Avoid nil exception 2013-03-05 17:15:20 +02:00
Dmitriy Zaporozhets 9ba21dd0c4 better solution for #3027 2013-03-05 17:07:12 +02:00
Dmitriy Zaporozhets d5663e148f Merge pull request #2870 from mikew/relative-url-root-default
default gitlab.relative_url_root to ENV['RAILS_RELATIVE_URL_ROOT']
2013-03-05 06:54:31 -08:00
Dmitriy Zaporozhets 0c06b7fe20 Merge pull request #3106 from davidosomething/patch-1
Update doc/install/databases.md
2013-03-05 06:52:41 -08:00
Dmitriy Zaporozhets 3d45d300d8 Merge branch 'gliptak-omniauth_no_email_1' 2013-03-05 16:50:46 +02:00
Dmitriy Zaporozhets 2d2a235c06 fixed omniauth email spec 2013-03-05 16:50:37 +02:00
Dmitriy Zaporozhets da6b53a80e Merge branch 'omniauth_no_email_1' of https://github.com/gliptak/gitlabhq into gliptak-omniauth_no_email_1
Conflicts:
	app/observers/user_observer.rb
	spec/observers/user_observer_spec.rb
2013-03-05 16:48:18 +02:00
Dmitriy Zaporozhets d5d9f1c515 Merge pull request #2015 from elvanja/commits-group-and-sort-by-date-desc
fix: grouping commits by date desc doesn't sort the groups too
2013-03-05 06:40:13 -08:00
Dmitriy Zaporozhets c2ba868c9b Merge pull request #2954 from cabeca/fix-image-url-emoji
Fix image url for emoji.
2013-03-05 05:52:01 -08:00
Dmitriy Zaporozhets f22488f726 Merge pull request #3143 from Undev/state-machine-3
State machine 3
2013-03-05 05:38:16 -08:00
Dmitriy Zaporozhets f9200e118c remove custom font 2013-03-05 13:16:56 +02:00
Andrew8xx8 c6d6bd6ab4 Typo fixed 2013-03-05 14:29:44 +04:00
Dmitriy Zaporozhets 9bb35e7e59 Prevent app crash if team owner removed 2013-03-05 09:27:06 +02:00
Dmitriy Zaporozhets 3a09f02e11 Merge pull request #3109 from hiroponz/improve-network-graph
Improve network graph
2013-03-04 23:02:27 -08:00
J. Francisco Raposerias a40541c42d add autofocus to username input 2013-03-04 17:54:26 -03:00
Dmitriy Zaporozhets bf06b3196d Make clone widget read-only 2013-03-04 22:18:53 +02:00
Dmitriy Zaporozhets 730e79e787 better event-notes typography 2013-03-04 22:00:51 +02:00
Dmitriy Zaporozhets d54845a16a use md-typography for note content 2013-03-04 21:34:26 +02:00
Dmitriy Zaporozhets dc7507cfe7 = preserve do was ignored for empty project page so was replaced with filter 2013-03-04 21:12:36 +02:00
Dmitriy Zaporozhets 533693ab41 Fix dark color bg for wiki 2013-03-04 21:11:03 +02:00
Dmitriy Zaporozhets 24cc0faf2c add link ti public area 2013-03-04 20:11:23 +02:00
Dmitriy Zaporozhets c2082f4d78 Fix edit team page 2013-03-04 19:47:20 +02:00
Andrew8xx8 0d9a6fe7b1 User's blocked field refactored to use state machine 2013-03-04 18:52:30 +04:00
Andrew8xx8 9a06dd4aa1 Migrations added 2013-03-04 18:51:00 +04:00
Sato Hiroyuki 95b826071f Add some tests for network graph 2013-03-04 17:50:42 +09:00
Dmitriy Zaporozhets 152c6018b3 use grit_ext gem instead of fork 2013-03-04 08:56:54 +02:00
Dmitriy Zaporozhets d199de0444 Use gitlab-pygments gem 2013-03-04 08:54:00 +02:00
Dmitriy Zaporozhets 282b804556 use gitlab-grack gem 2013-03-03 22:08:04 +02:00
Dmitriy Zaporozhets 512ab1b61a Use gem for gitlab grit 2013-03-03 22:01:20 +02:00
Dmitriy Zaporozhets 4635ad83e6 Merge pull request #3126 from dosire/refer-to-vagrant-vm
Refer to virtual machine from the installation document.
2013-03-03 08:36:26 -08:00
Dmitriy Zaporozhets 5a80a28a18 Merge pull request #3123 from wtw/patch-1
Corrected some typos in gitlab.yml.example comments
2013-03-03 08:35:27 -08:00
Dmitriy Zaporozhets 891dc550e0 README code in lists 2013-03-03 18:22:56 +02:00
Dmitriy Zaporozhets 06807885cf fix readme code nesting 2013-03-03 18:21:36 +02:00
Dmitriy Zaporozhets bb7490771e Use proper markdown syntax for code in README.md 2013-03-03 17:51:24 +02:00
Dmitriy Zaporozhets 69159634d6 Merge pull request #3125 from dosire/development-doc-in-repo
Development doc in repo
2013-03-03 07:48:25 -08:00
Sytse Sijbrandij 50620b7df8 Refer to virtual machine from the installation document. 2013-03-03 12:38:01 +01:00
Sytse Sijbrandij 6e908f1a36 Sidekiq replaced resque. 2013-03-03 12:29:57 +01:00
Sytse Sijbrandij 5421f6b239 Small fixes and better quoting. 2013-03-02 23:38:48 +01:00
Sytse Sijbrandij 56d1cc5be5 Replacing the development guide. 2013-03-02 23:27:52 +01:00
Dmitriy Zaporozhets 5b4032d175 Merge pull request #3118 from 2called-chaos/dont_send_mails_twice
Do not send issue status mail twice if author = assignee
2013-03-02 10:48:22 -08:00
Dmitriy Zaporozhets 62562e4d0d Merge pull request #3119 from m4tthumphrey/patch-1
Add namespace_id to project creation via API
2013-03-02 10:47:19 -08:00
Dmitriy Zaporozhets bd3848c05b Merge pull request #3124 from dosire/comprehensive-readme
Cleaned up and enhanced readme.
2013-03-02 10:45:38 -08:00
Sytse Sijbrandij 737a449795 Cleaned up and enhanced readme.
Finishing touches.

Make the layout more consistent.
2013-03-02 13:04:57 +01:00
Dmitriy Zaporozhets 907c334fe0 fix decorate call for milestone users 2013-03-02 13:23:30 +02:00
Dmitriy Zaporozhets 86da625f1d Updated gems: omniauth, sinatra, foreman 2013-03-02 12:58:47 +02:00
wtw 1c8c5c76b6 Corrected some typos in gitlab.yml.example comments 2013-03-01 23:53:37 +01:00
Matt Humphrey 1c0c7bd6e3 Missed comma. 2013-03-01 16:36:19 +00:00
Matt Humphrey dd653f62f3 Added namespace_id to project creation via API
This allows you to set the namespace ID for projects via the the API. By default it is created for the current user. You can assign it to the global namespace by passing `GLN` which translates to 'Global Namespace'.
2013-03-01 16:34:11 +00:00
Dmitriy Zaporozhets 1cfc2b6fc7 Merge branch 'Undev-team-and-group-descriptions' 2013-03-01 16:26:39 +02:00
Dmitriy Zaporozhets ef646928e4 better presenting for group description 2013-03-01 16:26:26 +02:00
Sven Pachnit c280c3ce6d Do not send issue status mail twice if author = assignee 2013-03-01 15:09:14 +01:00
Dmitriy Zaporozhets 87f555e1ef fixed db/schema 2013-03-01 16:07:55 +02:00
Dmitriy Zaporozhets 5c3cb47c16 Merge branch 'team-and-group-descriptions' of https://github.com/Undev/gitlabhq into Undev-team-and-group-descriptions
Conflicts:
	db/schema.rb
2013-03-01 16:05:51 +02:00
Dmitriy Zaporozhets a73e58f70b draper raise now RuntimeError instead of NoMethodError 2013-03-01 15:59:43 +02:00
Dmitriy Zaporozhets dbcf4144ee use simple decorate on single commits 2013-03-01 15:35:22 +02:00
Dmitriy Zaporozhets 6aead7991f fix decorate calls on collections after draper update 2013-03-01 15:24:59 +02:00
Dmitriy Zaporozhets 520f02259c gems updated: unicorn, draper, github-markup 2013-03-01 15:15:29 +02:00
Dmitriy Zaporozhets 153a4c142d updated gems: haml-rails, carrierwave 2013-03-01 15:09:11 +02:00
Dmitriy Zaporozhets 5da7424f8d Gem updated: devise, grape, sidekiq, settingslogic 2013-03-01 14:36:12 +02:00
Sato Hiroyuki f8009a4858 Fix spinach errors. 2013-03-01 17:28:29 +09:00
Dmitriy Zaporozhets 22d6ce9873 Merge pull request #3082 from devote/patch-1
Distorted lines in `diff`
2013-02-28 23:46:07 -08:00
Dmitriy Zaporozhets 0b52c461da use grit_ext 0.6.2 2013-03-01 09:23:18 +02:00
Dmitriy Zaporozhets 7a0af60b51 update stamp 2013-02-28 21:14:00 +02:00
Dmitriy Zaporozhets 547ae558d7 update httparty 2013-02-28 21:11:12 +02:00
Dmitriy Zaporozhets ed9543ff5d update devise gem 2013-02-28 21:06:16 +02:00
Dmitriy Zaporozhets 00ae65b108 try to use stable version for database cleaner 2013-02-28 21:02:41 +02:00
Dmitriy Zaporozhets 1c517153a8 fix admin users tests 2013-02-28 19:56:36 +02:00
Dmitriy Zaporozhets 9a5c152c0e Merge pull request #3114 from Un1matr1x/docs
docs improvement
2013-02-28 09:48:34 -08:00
Un1matr1x 9c40002625 docs improvement 2013-02-28 18:30:07 +01:00
Dmitriy Zaporozhets b1f58fcaea allow any attachment filenames 2013-02-28 19:29:21 +02:00
Dmitriy Zaporozhets 115454f3ed created-by-me filter for issues inside project. Fixed global project.issues order 2013-02-28 17:46:28 +02:00
Dmitriy Zaporozhets 15b121d603 Merge branch 'master' of github.com:gitlabhq/gitlabhq 2013-02-28 17:10:06 +02:00
Dmitriy Zaporozhets afed5cb614 Merge branch 'Undev-link-to-issue-tracker' 2013-02-28 17:08:58 +02:00
Dmitriy Zaporozhets e1f77b9be0 Merge branch 'link-to-issue-tracker' of https://github.com/Undev/gitlabhq into Undev-link-to-issue-tracker
Conflicts:
	Gemfile.lock
2013-02-28 17:02:20 +02:00
Andrew8xx8 2f1f05d431 Fixed notes from randx 2013-02-28 18:55:35 +04:00
Dmitriy Zaporozhets e8ff9ad2f2 Merge pull request #2249 from jouve/fix_possible_spec_failure
fix one of the possible causes of build failures
2013-02-28 06:45:16 -08:00
Dmitriy Zaporozhets d452ffc2d0 Merge branch 'features/text_mail_templates' 2013-02-28 16:43:15 +02:00
Thomas Berger 7ed0878654 added text-templates for mail notification 2013-02-28 16:39:58 +02:00
Dmitriy Zaporozhets 6682689ab2 Merge pull request #3103 from ezkl/binding-of-caller-bump
Update binding_of_caller to v0.7.1
2013-02-28 06:36:11 -08:00
Andrew8xx8 d3f042a6f2 Css classes improved 2013-02-28 18:35:27 +04:00
Dmitriy Zaporozhets 6393ed6a41 add description what is gitlab-shell 2013-02-28 16:21:58 +02:00
Dmitriy Zaporozhets dec15a4142 Add instruction to edit gitlab-shell config 2013-02-28 16:13:24 +02:00
Andrew8xx8 9c747fbb95 Missing descriptions added 2013-02-28 17:37:02 +04:00
Andrew8xx8 cf6d9a2222 Tests for team and group descriptions added 2013-02-28 17:15:22 +04:00
Andrew8xx8 9959669f1c Desctiptions removed from dashboard 2013-02-28 17:15:22 +04:00
Andrew8xx8 3d4e32457b Table description indentation fixed 2013-02-28 17:15:22 +04:00
Andrew8xx8 ba5373805a Description added to user temas factory 2013-02-28 17:15:22 +04:00
Andrew8xx8 b4648c3b52 Spinach tests fixed 2013-02-28 17:15:22 +04:00
Andrew8xx8 5f657203a1 Description added to temas 2013-02-28 17:15:22 +04:00
Andrew8xx8 9f45e01e84 Description to groups added 2013-02-28 17:14:21 +04:00
Andrew8xx8 1dab19d0d7 DB schema updated 2013-02-28 16:30:47 +04:00
Andrew8xx8 cff845784e Show Issues tracker select only if one or more remote issue trackers available 2013-02-28 16:11:14 +04:00
Andrew8xx8 8caccae454 Issue helper tests improved 2013-02-28 16:11:14 +04:00
Andrew8xx8 b6d0f2852d Issues link from project page follows on remote bug tracker if it selected now 2013-02-28 16:11:14 +04:00
Andrew8xx8 ab98db73a3 Issues tracker settings enableds/disableds without page reloading now 2013-02-28 16:11:14 +04:00
Andrew8xx8 bca72eac74 Default issue tracker name added to gon variables 2013-02-28 16:11:14 +04:00
Andrew8xx8 cf3cf3750e Gem gon added. It produces server-side variable values in javascript 2013-02-28 16:11:14 +04:00
Andrew8xx8 c6385e4135 Section name returned back to base 2013-02-28 16:11:13 +04:00
Andrew8xx8 c643b50dbd Default value for issues_tracker setting added 2013-02-28 16:11:13 +04:00
Andrew8xx8 9b606ede00 Wrong default section in config. Fixed. 2013-02-28 16:11:13 +04:00
Andrew8xx8 9e8a818696 Issues helper included to markdown helper 2013-02-28 16:11:13 +04:00
Andrew8xx8 16c720fd96 Issues helper improved 2013-02-28 16:11:13 +04:00
Andrew8xx8 f13600845d Migration added 2013-02-28 16:11:13 +04:00
Andrew8xx8 0afdf39dbc New field added 2013-02-28 16:11:13 +04:00
Andrew8xx8 62de22c142 External issue tracker params added to config 2013-02-28 16:10:01 +04:00
Andrew8xx8 68a7ecdaaf Project issue tracker functions refactored 2013-02-28 16:10:00 +04:00
Andrew8xx8 999fc2391b Issue tracker added to edit project form in admin area 2013-02-28 16:10:00 +04:00
Andrew8xx8 e6d2e56961 Issue tracker field added to projects 2013-02-28 16:10:00 +04:00
Andrew8xx8 8f621c9e06 Enumerize gem added 2013-02-28 15:15:53 +04:00
Dmitriy Zaporozhets fa6bf2c0f5 remove unnecessary center tag in devise layout 2013-02-28 12:08:25 +02:00
Dmitriy Zaporozhets 54d95f5897 Restyle flash message. Not it does not overflow head panel 2013-02-28 11:06:52 +02:00
Dmitriy Zaporozhets e6b5f4ade9 refactor finders in spianch:merge_request.feature 2013-02-28 09:43:48 +02:00
Dmitriy Zaporozhets 51b547f842 Commenting a failing test 2013-02-28 09:25:23 +02:00
Dmitriy Zaporozhets aa3109b84a Merge pull request #3104 from gitlabhq/contributing-file
Update contributing file with latest insights.
2013-02-27 23:11:06 -08:00
Sato Hiroyuki 2a687dd562 Show gravatar icon on tooltip. 2013-02-28 14:56:27 +09:00
Sato Hiroyuki 00d0e57e85 Commits are arranged below their first parent. 2013-02-28 11:46:17 +09:00
Sato Hiroyuki 14c2a37da2 A tip is made slanting. 2013-02-28 11:44:52 +09:00
Sato Hiroyuki 38fce3deb0 It improves detecting an overlap of a line 2013-02-28 11:44:40 +09:00
David c13f9adab8 Update doc/install/databases.md
Remove prompt $ from code line for uniformity
2013-02-27 17:09:14 -05:00
Sytse Sijbrandij 46bbeabcde Link to new contributing file and the requirements doc. 2013-02-27 22:17:46 +01:00
Sytse Sijbrandij 5f9bc743f5 Update contributing file with latest insights. 2013-02-27 21:51:46 +01:00
Ezekiel Templin 70e1b3b1cb Update `binding_of_caller` version
Updating this dependency fixed my Ruby 2.0 installation issues.
2013-02-27 14:32:36 -05:00
Dmitriy Zaporozhets 863d297ede reduce fonts size for wiki render 2013-02-27 21:10:23 +02:00
Dmitriy Zaporozhets 2c71c2e1df trying new readme 2013-02-27 21:05:57 +02:00
Dmitriy Zaporozhets 60fdc04d03 Merge pull request #3098 from Undev/important-migrations-fix
IMPORTANT! Data converting in migrations was wrong. Fixed
2013-02-27 10:52:42 -08:00
Dmitriy Zaporozhets b2a69262e1 Merge pull request #3101 from tsl0922/master
Fix project transfer error
2013-02-27 10:48:14 -08:00
Dmitriy Zaporozhets aceb747bb8 use system call to start sidekiq 2013-02-27 20:40:01 +02:00
Dmitriy Zaporozhets 92039dd677 Developers can merge MR if target branch is not protected 2013-02-27 20:20:31 +02:00
Sebastian Ziebell d269d107d8 API: fixed adding a note
Now the correct attribute is checked if it's available or not. Also fixed a test.
2013-02-27 18:12:02 +01:00
Sebastian Ziebell 3bb342b961 Merge branch 'master' into fixes/api 2013-02-27 17:52:59 +01:00
Sebastian Ziebell 7499f65014 API: extracted helper method to validate required parameters, code clean up
Added a helper method to check if required parameters are given in an API call. Can be used
to return a `400 Bad Request` return code if a required attribute is missing.
Code clean up and fixed tests.
2013-02-27 17:50:30 +01:00
Dmitriy Zaporozhets 33cd1ae9dc Update README 2013-02-27 18:09:48 +02:00
Sebastian Ziebell 43d7596030 Merge branch 'feature/api-documentation-fixes' of github.com:Xylakant/gitlabhq into fixes/api
Conflicts:
	doc/api/projects.md
2013-02-27 16:49:45 +01:00
Dmitriy Zaporozhets b3d648b4e8 Prevent duplicate merge events 2013-02-27 17:48:51 +02:00
Nihad Abbasov 3c5954b8c8 proper fix for #2300 2013-02-27 06:47:04 -08:00
Sebastian Ziebell 07f306d8af Merge branch 'master' into fixes/api 2013-02-27 15:15:47 +01:00
Sebastian Ziebell 3b3add35fb API: merge request documentation updated, added return codes to functions
The API documentation of merge requests contains info to status codes for all functions.
Required arguments are now checked in the merge requests API functions and a `400 Bad Request` error is
returned if they are not given.
2013-02-27 15:07:42 +01:00
Nihad Abbasov e4b67d3b18 Merge pull request #3095 from fdiary/update-grape-for-ruby2.0
update grape to 0.3.1 for ruby 2.0 support.
2013-02-27 06:06:02 -08:00
Nihad Abbasov 8d847b89d2 API: fix commits pagination
closes #2300
2013-02-27 06:00:33 -08:00
Sebastian Ziebell e96d77d3db API: issues documentation and API functions updated
The issues documentation is updated with infos to status codes and the deprecated `DELETE` function and
how to close an issue. A few more tests added to check status codes of API functions.
2013-02-27 14:36:20 +01:00
Sato Hiroyuki f11e855bdb Finding free space from the way near commit which is downward 2013-02-27 21:49:53 +09:00
Sebastian Ziebell dffc2b8a8b API: session documentation updated and test added 2013-02-27 12:58:06 +01:00
Sebastian Ziebell 873db06255 API: groups documentation updated, functions return different status codes
Updates the API documentation of groups with infos to return codes. The function calls
in the groups API have updated documentation and return `400 Bad Request` status code
if a required attribute is missing.
2013-02-27 12:34:45 +01:00
tsl0922 df63ab78a8 Fix project transfer error 2013-02-27 18:27:10 +08:00
Sebastian Ziebell e119b0a0cb API repository documentation updated, includes infos to return codes
The API documentation of repository is updated and now contains infos to status codes.
Code documentation is also adjusted for `GET /projects/:id/repository/commits` and includes infos to
pagination attributes. Tests are updated.
2013-02-27 11:24:12 +01:00
Sebastian Ziebell ac4a09e9cc Merge branch 'master' into fixes/api 2013-02-27 10:16:48 +01:00
Andrew8xx8 4a55c69877 Data converting migrations was wrong. Fixed 2013-02-27 12:53:36 +04:00
Dmitriy Zaporozhets 135418dcbf fixed popen test 2013-02-27 08:24:12 +02:00
Dmitriy Zaporozhets cba6e92436 move transfer logic out of project to service 2013-02-26 23:14:32 +02:00
Dmitriy Zaporozhets 0cf0487d65 Fix TestHookContext 2013-02-26 23:04:14 +02:00
Dmitriy Zaporozhets 4e5164338a specs for api/internal 2013-02-26 22:53:59 +02:00
Dmitriy Zaporozhets 2c5e4955c0 specs for Gitlab::Popen 2013-02-26 22:53:46 +02:00
Kazuhiko 3b548d9251 update grape to 0.3.1 for ruby 2.0 support.
add grape-entity, that is split from grape 0.3.0.
remove usage of deprecated error_format, that is removed in grape 0.2.3.
2013-02-26 21:31:45 +01:00
Sato Hiroyuki aa36f07a02 Fix the commits are not ordered commiter date.
It is fixed that the date label of network graph is broken.
2013-02-26 21:20:14 +09:00
Sato Hiroyuki d8a40d8c93 Move graph module from lib or vendor directory to app directory.
Because not autoloading lib directory at development mode.
2013-02-26 20:31:39 +09:00
Dmitriy Zaporozhets 9c252a60c1 remove tests for unexisting methods 2013-02-26 11:17:02 +02:00
Dmitriy Zaporozhets 15c0e58a49 remove unused code related to gitolite 2013-02-26 11:11:43 +02:00
Dmitriy Zaporozhets c08f19f275 email validation added 2013-02-26 11:09:32 +02:00
Dmitriy Zaporozhets f2cac135d5 Merge branch 'Undev-state-machine-stage-2' 2013-02-26 10:48:30 +02:00
Dmitriy Zaporozhets 5ac5510fd6 Fix automerge detection client-side since #3056 2013-02-26 10:47:27 +02:00
Dmitriy Zaporozhets d7b667fee2 Merge branch 'state-machine-stage-2' of https://github.com/Undev/gitlabhq into Undev-state-machine-stage-2
Conflicts:
	app/models/merge_request.rb
2013-02-26 10:38:40 +02:00
Dmitriy Zaporozhets 0cc95ef2f5 Merge pull request #2889 from kennytm/master
Show only ≤16 lines of codes in a discussion in a MR (issue #2860).
2013-02-26 00:32:02 -08:00
Dmitriy Zaporozhets 573942263a Fix issue edit button showup 2013-02-26 10:17:09 +02:00
Dmitriy Zaporozhets c9b1df1201 Fixing tests 2013-02-25 23:16:34 +02:00
Dmitriy Zaporozhets 39fe9b644f Add close issue to note actions bar 2013-02-25 23:10:50 +02:00
Dmitriy Zaporozhets 8de19b259e proper name for issue partial 2013-02-25 22:56:10 +02:00
Dmitriy Zaporozhets 5e69ad2cea Sanitize user profile input 2013-02-25 22:51:15 +02:00
Dmitriy Zaporozhets db8baf2895 Since search_autocomplete_source rendered with raw all human input should be sanitized to prevent XSS 2013-02-25 22:12:11 +02:00
Dmitriy Zaporozhets d0646babdb Remove gitolite mention from docs 2013-02-25 21:45:33 +02:00
Dmitriy Zaporozhets f17fe7fff2 correct indentation in activity observer 2013-02-25 21:26:15 +02:00
Dmitriy Zaporozhets 7bab81b199 Move git post push logic to service 2013-02-25 21:21:38 +02:00
Dmitriy Zaporozhets 9611640e38 Merge pull request #3052 from Undev/system-hook-observer-improves
System hooks code & logic refactoring
2013-02-25 10:15:23 -08:00
Dmitriy Zaporozhets 72d48376ab Merge pull request #3057 from axilleas/master
Remove function 'check_issue_1059_shell_profile_error' from check.rake as it is not needed anymore
2013-02-25 10:11:52 -08:00
Dmitriy Zaporozhets 580a56b6ff Update grit to handle symlinks 2013-02-25 19:44:37 +02:00
Dmitriy Zaporozhets 262f80a68a Update grit for ruby 2.0 support 2013-02-25 19:22:46 +02:00
Dmitriy Zaporozhets 3cf814ff9d remove duplicate finder in features/steps/path 2013-02-25 10:28:59 +02:00
Dmitrii Pakhtinov e975ed836d Distorted lines in `diff`
Distorted lines in `diff` when viewing files `windows-style-line-separator: \r\n`
2013-02-25 12:21:38 +04:00
Dmitriy Zaporozhets c3659ef2e5 Fix merge request migration for postgres 2013-02-25 08:53:49 +02:00
Dmitriy Zaporozhets ed60b6fc90 Merge pull request #3071 from dmedvinsky/fix-webhook-auth
Fix WebHook and special symbols in credentials
2013-02-24 04:13:15 -08:00
Dmitriy Zaporozhets 3432c9aed7 Merge pull request #3072 from dmedvinsky/add-title-remove-member
Add title for "Remove from team" button
2013-02-24 04:04:58 -08:00
Dmitriy Zaporozhets 46d353304a Merge pull request #3073 from dmedvinsky/cosmetic-search-transition
Add transition on search box
2013-02-24 04:03:16 -08:00
Dmitry Medvinsky b0fb68c191 Add transition on search box
It's kind of cool trend to use animated-expanding search box nowadays.
E.g. see Github.
2013-02-22 20:50:17 +04:00
Dmitry Medvinsky 30180ed82e Add title for "Remove from team" button 2013-02-22 20:29:03 +04:00
Dmitry Medvinsky dbd9d8d4c3 Fix WebHook and special symbols in credentials
When using web hook with credentials secured web resource, one needs to
put the credentials in the hook URL.

If the credentials contain special symbols (e.g. @ or #), it should be
URL-quoted (e.g. %40 instead of @).

But when Gitlab is making a request, it should unquote the symbols
before base64-encoding them.
2013-02-22 20:10:25 +04:00
Sebastian Ziebell 9ee6c58acc API documentation updated for project snippets.
The API Documentation for project snippets got infos to return codes. Tests are added
to check status codes when handling project snippets.
2013-02-21 21:13:46 +01:00
Sebastian Ziebell ce9e35c295 API: Fixes tests for changed hook deletion 2013-02-21 21:04:16 +01:00
Dmitriy Zaporozhets 292dffc228 Add new entries to CHANGELOG 2013-02-21 17:01:02 +02:00
Dmitriy Zaporozhets 99b6750e15 Restore old order for MR lists. Fix failing tests 2013-02-21 16:26:09 +02:00
Dmitriy Zaporozhets 4a137651ec Fix merge request closed filter. Fixed one more test 2013-02-21 14:11:24 +02:00
Dmitriy Zaporozhets be817c53c6 Update database cleaner. Remove postgres from travis build list since it gives us deadlocks always 2013-02-21 14:11:04 +02:00
Dmitriy Zaporozhets cce14e0b01 Removing ambiguity and non-working selectors 2013-02-21 13:28:05 +02:00
Dmitriy Zaporozhets 5aeaf248f1 Fixing rspec after upgrade to capybara pt1 2013-02-21 13:09:47 +02:00
Dmitriy Zaporozhets 2d5096b678 Fix ambiguity for member link in test 2013-02-21 12:39:09 +02:00
Dmitriy Zaporozhets 37187336b1 Team features are green now 2013-02-21 12:27:52 +02:00
Andrew8xx8 c77730dd71 An Id must be sended to queue 2013-02-21 14:04:06 +04:00
Dmitriy Zaporozhets 28da2a8bdc Monkeypatch satellite call for merge request in tests 2013-02-21 11:44:33 +02:00
Dmitriy Zaporozhets 42ce2c1080 improve selectors to pass capybara 2.0 2013-02-21 11:27:22 +02:00
Dmitriy Zaporozhets 03f6a28ec0 move capybara scenarios to spec/features 2013-02-21 10:41:37 +02:00
Dmitriy Zaporozhets 9f722427e5 Add LoginHelpers to feature type 2013-02-21 10:41:13 +02:00
Dmitriy Zaporozhets 830da0c218 Update capybara, poltergeist, spinach, rspec-rails 2013-02-21 10:28:13 +02:00
Dmitriy Zaporozhets af3138e801 Update sidekiq 2013-02-21 10:00:18 +02:00
Dmitriy Zaporozhets 585259b837 Fix merge state detection 2013-02-21 09:25:07 +02:00
Sebastian Ziebell 4a60c377b8 API documentation update for milestones
Updated the milestones API documentation and added return codes descriptions.
2013-02-20 22:51:59 +01:00
mikew 4243105eb5 deploys under git user 2013-02-20 17:11:41 -04:30
Sebastian Ziebell 33c1463645 API: fixes return codes for notes, documentation updated
The notes API documentation updated with return codes. API now returns `400 Bad Request` if
required attributes are not present. Return codes are documented now, also tested in added tests.
The documentation now reflects the current state of the API.
2013-02-20 22:17:05 +01:00
Axilleas Pipinellis a3bbc5956b We don't need to check .profile now that gitolite is replaced by gitlab-shell 2013-02-20 17:36:09 +02:00
Andrew8xx8 6d68923edc human_merge_status replaced by human_merge_status_name 2013-02-20 17:50:29 +04:00
Andrew8xx8 52e0df5c23 class.self methods moved to scopes 2013-02-20 17:50:24 +04:00
Andrew8xx8 e2d94e0719 State machine added for merge_status field 2013-02-20 17:49:48 +04:00
Andrew8xx8 1b7b17d12a Database schema updated 2013-02-20 17:49:40 +04:00
Andrew8xx8 8ba27b7b46 Migrations for convertion merge_status added 2013-02-20 17:49:33 +04:00
Sebastian Ziebell f0e417091c Merge branch 'master' into fixes/api
Conflicts:
	spec/requests/api/projects_spec.rb
2013-02-20 14:30:11 +01:00
Dmitriy Zaporozhets ba1a453ef3 Merge pull request #3053 from m4tthumphrey/api-delete-hook-by-id
Fix RESTfulness of project hook deletions by API
2013-02-20 05:22:38 -08:00
Sebastian Ziebell 512d826cc3 API: fixes test if project limit is reached
Fixes a test that checks if the project limit is reached.
2013-02-20 14:15:04 +01:00
Matt Humphrey dddf6eab2d Removed unnecessary paramter hash. Also tidied up hash format in hook creation spec 2013-02-20 11:45:54 +00:00
Sebastian Ziebell eefb27f5ae Merge branch 'master' into fixes/api
Conflicts:
	spec/requests/api/projects_spec.rb
2013-02-20 12:43:32 +01:00
Matt Humphrey 33c513274d Fix RESTfulness of project hook deletions by API 2013-02-20 11:35:36 +00:00
Andrew8xx8 99760edc75 Method moved to service 2013-02-20 15:33:03 +04:00
Sebastian Ziebell 1b97a2eee8 API: fixes return codes, documentation updated with status codes, tests added
The users API updated with return codes, e.g. if required parameters are missing
a `400 Bad Request` error is returned instead of `404`. Fixes return codes of functions,
e.g. deletion of a ssh key is an idempotent function now.
The API documentation is updated to reflect the current status of the API. Descriptions
are more detailed and complete, infos to return values are added to all functions.
2013-02-20 12:23:56 +01:00
Andrew8xx8 aa1780d03c System hooks execution moved to System hook service 2013-02-20 14:53:15 +04:00
Dmitriy Zaporozhets b7ac654b88 Merge pull request #2988 from Asquera/error_project_limit
API: creating last project before limit returns 404
2013-02-20 02:47:30 -08:00
Dmitriy Zaporozhets 25e4c512d4 Merge pull request #3011 from Asquera/fix_access_to_nonvisible_hook
API: fixes visibility of project hook
2013-02-20 02:45:07 -08:00
Dmitriy Zaporozhets c56d32c73e Merge pull request #3038 from dmedvinsky/commit-time
Add commit full time tooltip to `commited_ago`
2013-02-20 02:41:35 -08:00
Dmitriy Zaporozhets 36ea32162d Merge pull request #3045 from eldios/patch-1
Update doc/install/installation.md
2013-02-20 02:29:16 -08:00
Dmitriy Zaporozhets e7a5ec3376 Merge pull request #3043 from sjmulder/state-seed
Update seeds for state columns
2013-02-20 02:28:44 -08:00
Andrew8xx8 468c8c5f0a A little bit of codestyle improvments 2013-02-20 13:15:56 +04:00
Nihad Abbasov 08f665cf28 API docs: fix new milestone parameters 2013-02-20 11:41:32 +04:00
Mike Wyatt c6f5b96ba8 allow force=yes rake gitlab:setup for capistrano deploy:cold 2013-02-20 00:14:03 -03:30
Mike Wyatt bed500090e Capistrano deployment example scripts 2013-02-20 00:13:18 -03:30
Lele 49a46d6ca9 Update doc/install/installation.md
changed installation overview list step #4
Gitolite -> GitLab shell
2013-02-20 02:01:39 +01:00
Sijmen Mulder 3a45e6010f Update seeds for state columns 2013-02-19 22:14:28 +01:00
Dmitry Medvinsky eb58529757 Add commit full time tooltip to `commited_ago` 2013-02-19 19:56:43 +04:00
Dmitriy Zaporozhets 6bc9249b38 Merge pull request #3034 from Andrew8xx8/patch-2
Event already has author relation
2013-02-19 03:27:42 -08:00
Andrew Kulakov 303fb06c96 Event already has author relation 2013-02-19 15:22:29 +04:00
Dmitriy Zaporozhets 401041cfd6 Merge pull request #3032 from raphendyr/fix_development_environment
Fix development fixture for gitlab_shell
2013-02-19 01:49:36 -08:00
Dmitriy Zaporozhets 67465dc5ef Fix private flag for project 2013-02-19 11:45:49 +02:00
Jaakko Kantojärvi fab586bc87 Fix development fixture for gitlab_shell 2013-02-19 11:17:59 +02:00
Dmitriy Zaporozhets 5d72a3e133 Merge branch 'Undev-state-machine' 2013-02-19 11:04:54 +02:00
Dmitriy Zaporozhets 155703c613 Merge branch 'state-machine' of https://github.com/Undev/gitlabhq into Undev-state-machine
Conflicts:
	app/models/issue.rb
	app/models/merge_request.rb
2013-02-19 11:01:19 +02:00
Andrew8xx8 6e333d5075 Javascript widget fixed 2013-02-19 12:57:09 +04:00
Dmitriy Zaporozhets 52028dcd2d Merge pull request #3013 from crystax/master
Sort groups alphabetically on dashboard page
2013-02-19 00:51:08 -08:00
Dmitriy Zaporozhets bfc359ca61 Fix project filter for MR on dashboard 2013-02-19 09:43:41 +02:00
Andrew8xx8 d58eb62d68 Migrations iproved 2013-02-19 11:32:10 +04:00
Dmitry Moskalchuk f7ae1bce25 Syntax fix of sorting groups/users 2013-02-19 11:13:19 +04:00
Dmitriy Zaporozhets ba937b2b3d Dont show assigned_teams block unless any. Show count in filter 2013-02-18 21:21:24 +02:00
Dmitriy Zaporozhets a29db26cc9 Refactor and restyle team page for project 2013-02-18 21:10:49 +02:00
Dmitriy Zaporozhets e9d8d074a1 no projects message in group area 2013-02-18 20:31:43 +02:00
Dmitriy Zaporozhets 655e68a0ad Merge pull request #2998 from axilleas/master
Minor changes to installation and databases docs.
2013-02-18 10:02:32 -08:00
Dmitriy Zaporozhets b87ef427e9 Merge pull request #2990 from raphendyr/gitignore_and_logrotate
Change .gitignore to ignore logrotated log files.
2013-02-18 10:01:09 -08:00
Dmitriy Zaporozhets e049e18780 Merge pull request #2991 from raphendyr/username_change_disablation
Add option to disable username changing
2013-02-18 09:59:24 -08:00
Dmitriy Zaporozhets ea28519f57 Merge pull request #2996 from raphendyr/ssh_fingerprint_fix
Ssh fingerprint fix
2013-02-18 09:56:35 -08:00
Andrew8xx8 e5f048f44d Migrations refactored ro support data convertion 2013-02-18 18:54:30 +04:00
Dmitriy Zaporozhets 97de6f851b Fix not-working team memebership permissions change 2013-02-18 16:40:11 +02:00
Andrew8xx8 41e97a766b Creating test values moved to before 2013-02-18 17:52:39 +04:00
Andrew8xx8 d27ed43daa Hash syntax improved 2013-02-18 17:22:18 +04:00
Andrew8xx8 557a9fa321 Debug remomved 2013-02-18 17:16:29 +04:00
Andrew8xx8 ff94f29be5 States events fixed 2013-02-18 16:49:56 +04:00
Andrew8xx8 231d9e0426 Observer refactored to use StateMachine events 2013-02-18 16:49:17 +04:00
Dmitriy Zaporozhets 1481d1cfe0 Merge branch 'count_user_owned_projects' of /home/git/repositories/gitlab/gitlabhq 2013-02-18 12:46:45 +00:00
Dmitriy Zaporozhets 01a7250ba5 Add user to team he creates 2013-02-18 14:35:38 +02:00
Marin Jankovski 1734611181 Count owned projects, not just personal 2013-02-18 13:15:35 +01:00
Andrew8xx8 6074896cbf Spinach tests fixed 2013-02-18 14:43:50 +04:00
Andrew8xx8 69698aacbc Additional tests added to Issue 2013-02-18 14:43:50 +04:00
Andrew8xx8 b607c70e8f Additional tests added to Milestone 2013-02-18 14:43:50 +04:00
Andrew8xx8 0b4f4fe157 Migrations for StateMachine refactoring added 2013-02-18 14:43:50 +04:00
Andrew8xx8 1644117a1a Issue uses StateMachine now 2013-02-18 14:43:50 +04:00
Andrew8xx8 0b512af803 Milestone uses StateMachine now 2013-02-18 14:43:50 +04:00
Andrew8xx8 29f70acc98 Merge Request uses StateMachine now 2013-02-18 14:43:50 +04:00
Andrew8xx8 b45e9aefd3 Merge Request uses StateMachine now 2013-02-18 14:43:50 +04:00
Andrew8xx8 f97296597c Issuable consern uses StateMachine now 2013-02-18 14:43:49 +04:00
Andrew8xx8 8db3920c01 State renamed to merge_status 2013-02-18 14:43:49 +04:00
Andrew8xx8 26d4574ada State machine gem added 2013-02-18 14:43:49 +04:00
Sebastian Ziebell da040fc134 API documentation expanded with status code information
Information to return codes added to projects and users documentation.
2013-02-18 11:15:26 +01:00
Dmitriy Zaporozhets 020078663e Prevent xss attack over group name. Added regex validation for group and team name 2013-02-18 09:28:18 +02:00
Jaakko Kantojärvi c20be05a80 Fix ssh key test by adding valid ssh key 2013-02-17 21:31:48 +02:00
Jaakko Kantojärvi 27f4cf7542 Tests to validate that invalid keys are rejected 2013-02-17 21:31:20 +02:00
Dmitriy Zaporozhets cfdf94fc27 use attachment secure_url for Attachemnt page 2013-02-17 16:18:42 +02:00
Dmitriy Zaporozhets 0d3b75845a Merge pull request #3017 from jojosch/owner-link-admin
Fix link to owner of group and team in admin interface
2013-02-17 06:15:33 -08:00
Miguel Cabeça 157b038661 Include Riyad Preukschas suggestions. 2013-02-17 13:02:22 +00:00
Dmitriy Zaporozhets 1efeb1b562 redesign mars theme a bit. Better border color for search-input for dark theme 2013-02-17 12:16:19 +02:00
Dmitriy Zaporozhets 32a5548c41 Fix link color for dark theme 2013-02-17 12:05:26 +02:00
Johannes Schleifenbaum 3ae7a45d5a Fix link to owner of group and team in admin interface 2013-02-17 11:00:02 +01:00
Dmitriy Zaporozhets 9764ba6df2 create satellite for imported repo 2013-02-16 21:47:43 +02:00
Dmitriy Zaporozhets 42ffbea8e0 Fix logo alignment for default theme 2013-02-16 21:37:06 +02:00
Dmitriy Zaporozhets f45f033199 Add logo to deploy.html 2013-02-16 21:35:11 +02:00
Dmitriy Zaporozhets 18a496142b Reduce size of nav panel. Fixed nav background for IE. Refactored mars theme 2013-02-16 21:24:51 +02:00
Dmitry Moskalchuk a9c1b85e08 Sort groups/namespaces by human name 2013-02-16 19:40:33 +04:00
Dmitry Moskalchuk 2a4ef0fe49 Sort groups alphabetically on dashboard page 2013-02-16 19:11:36 +04:00
Sebastian Ziebell e9d3b96595 API: fixes visibility of project hook
When a user is not authorized to see the list of hooks for a project, he is
still able to access the hooks separately. For example if access to
`GET /projects/:id/hooks` fails and returns a `403 Unauthorized` error it is
still possible to access a hook directly via `GET /projects/:id/hooks/:hook_id`.

Fixes access, also added tests to check access and status codes of hooks.
2013-02-16 14:42:49 +01:00
Dmitriy Zaporozhets fa3cc1dd24 Merge branch 'features/attachment_server' of /home/git/repositories/gitlab/gitlabhq 2013-02-16 12:45:20 +00:00
Dmitriy Zaporozhets b729728536 uppercase Gitlab version and revision constants. check api return gitlab version now 2013-02-16 14:42:22 +02:00
Dmitriy Zaporozhets e65cc4f849 Merge pull request #2994 from dasbh/master
Fix gitlab:setup task on fresh installation
2013-02-16 01:10:36 -08:00
Dmitriy Zaporozhets d6394a00f3 Merge pull request #3002 from nafu/repo_patch
Fix file_name for archive
2013-02-16 01:09:45 -08:00
Dmitriy Zaporozhets c3a5aa159a Merge pull request #3003 from livedata/patch-1
fixed API access to the project
2013-02-16 01:08:33 -08:00
Axilleas Pipinellis a53f687fe6 Added creation of pids directory to fix #2995, replaced deprecated nginx init.d command with service one, some more clean-up 2013-02-16 08:24:36 +02:00
Axilleas Pipinellis b65e5b1e96 Nginx: edit actual file instead of symlink 2013-02-16 07:50:41 +02:00
Sebastian Ziebell beb00af0c1 API documentation extended with snippets, tags and commits
Documentation is updated with information how to handle snippets or how to access tags
and commits. Nearly all project specific functions are now described in the documentation.
A few previous entries have been updated with status codes, e.g. `401 Unauthorized`.
2013-02-15 18:50:52 +01:00
livedata bbd1bfd155 fixed API access to the project 2013-02-15 15:37:06 +01:00
Fumiya Nakamura 20868acc96 Fix file_path to correspond with the name 2013-02-15 05:50:42 -08:00
Fumiya Nakamura a1d106110d Fix file_name for archive 2013-02-15 05:00:15 -08:00
Sebastian Ziebell 99739a58c3 API documentation extended with infos to project branches 2013-02-15 13:54:26 +01:00
Axilleas Pipinellis cdf95f1ce6 Added relative urls to other documentation files, removed duplicate debian update commands 2013-02-15 12:20:50 +02:00
Axilleas Pipinellis 46f7b7c1f2 Run db:setup and db:seed_fu before gitlab:setup 2013-02-15 11:53:35 +02:00
Axilleas Pipinellis 6178964929 Connect to database with git user, not gitlab 2013-02-15 11:52:10 +02:00
Jaakko Kantojärvi 6fd88b8cbb Fix ssh key fingerprinting test to use exitcode 2013-02-15 11:16:21 +02:00
Dmitriy Zaporozhets f6cc71bc36 Per project protection 2013-02-15 09:51:21 +02:00
Dmitriy Zaporozhets 4821aa6c25 skip protection to aws3 2013-02-15 09:49:35 +02:00
Dmitriy Zaporozhets f9dd547aa7 remove commented code 2013-02-15 09:16:46 +02:00
Bhagavan Das 4bc7d98d65 Remove hardcoded refernce to gitlab-shell home. so that gitlab can be installed on any unix account other than git 2013-02-14 23:10:18 +00:00
Bhagavan Das 08dfbc962b rename setup to setup_db so that it does not collide with gitlab🐚setup task 2013-02-14 21:39:48 +00:00
Sebastian Ziebell 5417fbfecd Test to check 404 error when project id not found 2013-02-14 21:00:05 +01:00
Sebastian Ziebell 12a1f73b61 API projects documentation grouped into sections & updated with status codes
The API documentation for projects now is structured into major sections that describe
the different aspects when dealing with projects, e.g. hooks, branches, team members etc.
All described methods now contain a list of possible status codes the method can return. A few
methods have extra sample JSON responses and a description if a method is idempotent.
Idempotent methods can be called multiple times while returning the same status code.
2013-02-14 20:43:48 +01:00
Riyad Preukschas 428af5ea62 Merge pull request #2890 from cameronyule/support_osx_groups
OS X support for gitlab:check rake tasks
2013-02-14 11:07:46 -08:00
Sebastian Ziebell c8b92a4be2 Merge branch 'master' into fixes/api 2013-02-14 17:02:16 +01:00
Jaakko Kantojärvi ba65f2910b Add option to disable username changing
This option allows to disable users from changing their username.

This is very usefull in environments using strong internal authentication methods like ldap, pam or shibboleth.

You can allow users to change theyr username in these environments, but then new users (users loging in first time) is blocked from gitlab is her username exists.
2013-02-14 17:58:56 +02:00
Sebastian Ziebell c305eb31aa API: tests that check status codes for project branches and hooks
Status code 422 (Unprocessable Entity) returned if invalid url is given when creating
or updating a project hook.
2013-02-14 16:55:33 +01:00
Jaakko Kantojärvi 1bf79f2443 Change .gitignore to ignore logrotated log files. 2013-02-14 17:43:20 +02:00
Sebastian Ziebell 6df02adc7a API: status code 403 returned if new project would exceed limit
When the project limit is reached the user is not allowed to create new ones.
Instead of error code 404 the status code 403 (Forbidden) is returned with error
message via API.
2013-02-14 15:51:56 +01:00
Dmitriy Zaporozhets 04186e9797 Merge pull request #2987 from Undev/support_env_in_settings
Environments support added to Gitlab config
2013-02-14 06:00:40 -08:00
Dmitriy Zaporozhets 7fad4a9636 Merge pull request #2989 from PierreGambarotto/master
archive download : namespace directory not created
2013-02-14 05:53:07 -08:00
Pierre Gambarotto b6b6b640b1 fix archive download : not creating namespace directory 2013-02-14 14:29:24 +01:00
Dmitriy Zaporozhets c9ca15e8d6 require missing lib 2013-02-14 15:25:55 +02:00
Dmitriy Zaporozhets 49cf9badbc Gitlab::ShellEnv added 2013-02-14 15:17:43 +02:00
Dmitriy Zaporozhets b698094d4d Update post-receive worker to use correct identifier 2013-02-14 14:00:02 +02:00
Sebastian Ziebell 3025824415 API: refactored last fix, project limit in web client is fixed too
The previous call `saved?` is restored in the `POST /projects` method in the API.
It is refactored to check if the record is persisted. This is useful to not validate
the record again after saving. This fixes the returned status code in the web client
too. If the last project is created via web client instead of error notification
the project page is shown.
2013-02-14 12:58:33 +01:00
Sebastian Ziebell 7e45ba7004 API: fixes return code when creating last project before reaching limit
When creating the last project via API when reaching the project limit a status code
of 404 (Not found) is returned instead of 201 (Created). The fix checks now correctly if
the project could be saved.
2013-02-14 11:14:52 +01:00
Sebastian Ziebell 1a01fc0c96 API: tests to show incorrect behavior when reaching project limit
When reaching the project limit the API returns an error code 404 on the last possible
project. The project itself is created and is available in the database (seems valid).
A similar behavior can be observed when reaching the project limit via web client, but
in this case the user is notified that the maximum number of projects is reached. The project
itself is still created and can be accessed.

Tests are added to check the behavior when reaching the project limit or one tries
to exceed it via the API.
2013-02-14 11:13:25 +01:00
Andrew8xx8 77a3bfe1de Environments support added to Gitlab config 2013-02-14 11:44:34 +04:00
Dmitriy Zaporozhets ed3f44085e Redesign Admin -> user -> show page 2013-02-13 19:14:35 +02:00
Dmitriy Zaporozhets 6b24c375cb style admin -> users page. Search by username too 2013-02-13 17:28:28 +02:00
Sebastian Ziebell 6fc3263e15 API: extracted helper method to provide 400 bad request error with description
Extracted a method for 400 error (Bad request) and adjusted code accordingly. The name of
the missing attribute is used to show which one was missing from the request. It is used to
give an appropriate message in the json response.
2013-02-13 15:48:52 +01:00
Sebastian Ziebell 54ab9bb6df API: return status code 400 if filepath of raw file blob not given 2013-02-13 14:47:59 +01:00
Dmitriy Zaporozhets fd5dc597ed Add placeholder for project import 2013-02-13 15:27:18 +02:00
Dmitriy Zaporozhets f4c8df897d Merge branch 'mikew-unicorn-app-dir-fix' 2013-02-13 15:11:37 +02:00
Dmitriy Zaporozhets 2ea12ff663 Merge branch 'unicorn-app-dir-fix' of https://github.com/mikew/gitlabhq into mikew-unicorn-app-dir-fix
Conflicts:
	config/unicorn.rb.example
2013-02-13 15:11:26 +02:00
Dmitriy Zaporozhets 95e4217a2b Merge pull request #2979 from Undev/fix_naming
Constants in Events looks good now
2013-02-13 04:33:01 -08:00
Andrew8xx8 839957cf56 Constants in Events looks good now 2013-02-13 15:48:16 +04:00
Sebastian Ziebell fd01f3aacd API: fixes a few return codes for project snippets
When using project snippets via API the functions now provide status codes for
different situations other then only returning 404 error. If required parameters are missing,
e.g. `title` when creating a project snippet a 400 (Bad request) error is returned. The snippet
delete function now is idempotent and returns a 200 (Ok) regardless if the snippet with the
given id is available or not. Changing return codes of these functions has the advantage that
the 404 error is used only for resources, which are not available.

Tests added to check these status codes when handling project snippets.
2013-02-13 12:09:16 +01:00
Sebastian Ziebell 375caeefcf Merge branch 'master' into fixes/api 2013-02-13 10:31:06 +01:00
Sebastian Ziebell ae40e855ef API: test checks a 400 code is returned if snippet title not given 2013-02-13 10:29:42 +01:00
Sebastian Ziebell 82bd0904ff API: test checks a 404 error is returned if snippet id not found 2013-02-13 10:25:13 +01:00
Dmitriy Zaporozhets b9f8b40190 Merge pull request #2971 from yuters/patch-1
Some fix for gitlab:gitlab_shell:check
2013-02-12 22:17:24 -08:00
Martin Bastien 8353bd8ee3 Forgot gitlab-shell folder 2013-02-12 12:49:11 -05:00
Martin Bastien 6b96ca47e0 Some fix for gitlab:gitlab_shell:check
Fixing issue #2970
2013-02-12 12:42:36 -05:00
Dmitriy Zaporozhets 37a5ac4271 Merge pull request #2969 from zerustech/patch-1
Update lib/tasks/sidekiq.rake
2013-02-12 09:25:53 -08:00
Dmitriy Zaporozhets 8f9c01feed Merge pull request #2946 from Asquera/fix/access_to_non_existent_branch
API: Fixes return code when accessing non existent branch (#2922)
2013-02-12 09:24:54 -08:00
Dmitriy Zaporozhets 452adb7bcc Merge branch 'hiroponz-easy-to-find-commit-on-network-graph' 2013-02-12 19:22:49 +02:00
Dmitriy Zaporozhets 622dae76cc style network graph form a bit 2013-02-12 19:22:40 +02:00
Dmitriy Zaporozhets ddea7d1689 Merge branch 'easy-to-find-commit-on-network-graph' of https://github.com/hiroponz/gitlabhq into hiroponz-easy-to-find-commit-on-network-graph 2013-02-12 19:02:05 +02:00
Dmitriy Zaporozhets d6513b5153 Merge pull request #2924 from cdawzrd/patch-2
Disable autocomplete for admin/users form
2013-02-12 08:45:07 -08:00
Sebastian Ziebell 7cc4339f71 API: changed status codes for project hooks functions
Different status codes in the API lib are returned on hook creation, update or deletion.
If a required parameter is not given (e.g. `url` in `/projects/:id/hooks/:hook_id`) status
code 400 (Bad request) is returned. On hook deletion a 200 status code is returned, regardless if
the hook is present or not. This makes the DELETE function an idempotent operation. Appropriate tests
are added to check these status codes.
2013-02-12 17:44:42 +01:00
Michael Lee 4c0c908655 Update lib/tasks/sidekiq.rake
Mac OS uses launchd instead of /etc/init.d to start daemons and tasks to be started by launchd MUST NOT daemon itself. So "nohup" here won't work for Mac OS. 

Can we add a "launchd" task to the rake file so that we can start sidekiq as "bundle exec rake sidekiq:launchd" ?
2013-02-12 23:01:55 +08:00
Dmitriy Zaporozhets 06dd530ede Merge branch 'user_delete_account' of /home/git/repositories/gitlab/gitlabhq 2013-02-12 10:53:51 +00:00
Dmitriy Zaporozhets 9f2041ad0e Merge pull request #2965 from yurifury/fix-blob-route
Gitlab incorrectly routes blobs to the compare controller depending on filename.
2013-02-12 01:50:03 -08:00
Dmitriy Zaporozhets bf908989d0 Merge branch 'Undev-fix-db-after-updating-rails' 2013-02-12 11:47:02 +02:00
Dmitriy Zaporozhets 806b76a168 rename scope to prevent name collision 2013-02-12 11:46:50 +02:00
Sebastian Ziebell 449380265a Merge branch 'master' into fixes/api 2013-02-12 10:17:57 +01:00
Dmitriy Zaporozhets 4bf63212d7 Merge branch 'fix-db-after-updating-rails' of https://github.com/Undev/gitlabhq into Undev-fix-db-after-updating-rails 2013-02-12 11:13:25 +02:00
Dmitriy Zaporozhets 644f8819af restore handling exception for project creation 2013-02-12 10:41:21 +02:00
Yuri Feldman 2d0c3e4c6d Fix for incorrect routing to the Compare controller 2013-02-12 19:28:48 +11:00
Yuri Feldman 918e2213e7 Test to show incorrect routing to Compare controller 2013-02-12 19:28:37 +11:00
Andrew8xx8 b5db541338 All scopes must be in lambdas 2013-02-12 11:16:45 +04:00
Andrew8xx8 9a22ac63ec Dynamic values must be in blocks if FG 2013-02-12 10:54:56 +04:00
Dmitriy Zaporozhets d138b3de4b Render events for team dashboard 2013-02-11 23:23:38 +02:00
Dmitriy Zaporozhets 06d9ccf484 Rails up to 3.2.12 2013-02-11 23:17:34 +02:00
Dmitriy Zaporozhets 68aa88c9bd Fix project creation without import 2013-02-11 23:13:21 +02:00
Dmitriy Zaporozhets 8bf8c70c4b Import repo feature 2013-02-11 23:00:12 +02:00
Dmitriy Zaporozhets a699ebdbcc handle attahcment with send_file 2013-02-11 21:31:19 +02:00
Dmitriy Zaporozhets ab0cfc0036 fixing tests after refactoring 2013-02-11 20:28:27 +02:00
Dmitriy Zaporozhets 2a1fac9e4f add import repo gitlab_shell call 2013-02-11 19:41:02 +02:00
Dmitriy Zaporozhets ea0cb39d63 use proper name for gitlabshell worker 2013-02-11 19:27:26 +02:00
Dmitriy Zaporozhets dd8d0a659d Fix procfile and attachment in event nore 2013-02-11 19:25:06 +02:00
Dmitriy Zaporozhets d64090b8a9 No gitolite in project any more 2013-02-11 19:16:59 +02:00
Dmitriy Zaporozhets 8e0b58d7e7 render note with attachment for event 2013-02-11 15:47:01 +02:00
Miguel Cabeça f6957f7658 Fix image url for emoji. 2013-02-11 12:22:06 +00:00
Marin Jankovski 483f720861 UPdate field name. 2013-02-11 13:12:41 +01:00
Marin Jankovski f339af858b Test the delete acount option. 2013-02-11 13:06:37 +01:00
Dmitriy Zaporozhets ab19196391 fix attachment uploader for aws 2013-02-11 10:14:32 +02:00
Dmitriy Zaporozhets 2d83e43db0 FIx gitlab:env:info 2013-02-11 10:02:52 +02:00
Dmitriy Zaporozhets 7a88bf0978 Fix gitlab:check 2013-02-11 09:58:02 +02:00
Dmitriy Zaporozhets fcfb6d8438 Since gitlab-shell no sense to check hooks 2013-02-11 09:15:42 +02:00
Sebastian Ziebell 2bd955961c Changed function to `not_found`.
Instead of using funtion `error!` the function `not_found!` is used to return 404 error. Adjusted documentation accordingly.
2013-02-09 21:01:17 +01:00
Dmitriy Zaporozhets a404c43805 removing outdated checks 2013-02-09 15:34:04 +02:00
Dmitriy Zaporozhets 38737079b6 ignore docs by git 2013-02-09 15:26:47 +02:00
Dmitriy Zaporozhets 2f019b2b4c cleanup rake tasks since no gitolite required 2013-02-09 15:21:19 +02:00
Dmitriy Zaporozhets ff76e05271 show project head for empty project 2013-02-09 15:16:33 +02:00
Dmitriy Zaporozhets 38985390b0 Refactored and fixed seeds to work with gitlab-shell 2013-02-09 15:13:56 +02:00
Dmitriy Zaporozhets 152f87864c remove useless warning 2013-02-09 12:32:24 +02:00
Dmitriy Zaporozhets 433f2dbcef task to build missing projects with gitlab-shell 2013-02-09 12:30:49 +02:00
Sebastian Ziebell 56b3223945 Fixes test that checks status code of hook creation 2013-02-08 18:19:59 +01:00
Sebastian Ziebell 40e7846f3e Status code 404 returned when retrieving non existent branch (issue #2922)
Accessing a repository branch that does not exist returns a 404 error instead
of 200 now. Added a test.
2013-02-08 17:04:08 +01:00
Sebastian Ziebell 9544f90389 Adding a project hook returns status code 400 if url is not given
When adding a project hook a url must be specified or a 400 error code is returned

* Specs added to check status code on handling project hooks
* refactored code, extracted a method
2013-02-08 16:48:05 +01:00
Sebastian Ziebell 818caf0b5d API: refined status code handling when adding or updating a project member
When a user is added to a project that is already a member of, a status code 201 is now returned to
signal an idempotent operation. If something fails then instead of returning error code 404 different
more specific error codes are returned. Status code 400 (Bad request) is returned when a required
attribute, e.g. `access_level` is not given or 422 if there is a semantic error, e.g. should
the `access_level` have an unsupported value.

Specs are added to check these status codes.
2013-02-08 14:33:29 +01:00
Sebastian Ziebell 8045a81bcf Merge branch 'master' into fixes/api 2013-02-08 10:32:42 +01:00
Dmitriy Zaporozhets 2f0a75ab77 GitLab meta to 5.0 2013-02-08 08:55:39 +02:00
Dmitriy Zaporozhets 4b58030207 Merge pull request #2936 from jameswritescode/fix_installation_doc_typo
fix the gitlab-shell clone url in master installation doc
2013-02-07 22:41:19 -08:00
James Newton d4c24b990f fix the gitlab-shell clone url 2013-02-07 11:53:37 -06:00
Dmitriy Zaporozhets 66121d6caa Improve devise views 2013-02-07 13:20:33 +02:00
Dmitriy Zaporozhets 210e9cd489 It should be 5.0.0pre 2013-02-07 13:05:30 +02:00
Dmitriy Zaporozhets 4e1757bfda Merge branch 'gitlab-shell' of dev.gitlabhq.com:gitlab/gitlabhq 2013-02-07 08:26:39 +00:00
Dmitriy Zaporozhets d09d87e3b0 fix deploy key spec 2013-02-07 10:25:47 +02:00
Dmitriy Zaporozhets cdcf69d0d9 gitlab;shell init script 2013-02-07 10:06:39 +02:00
Dmitriy Zaporozhets 8ae1d812dc deploy keys support for gitlab-shell api 2013-02-07 09:56:13 +02:00
Dmitriy Zaporozhets 48628d31d5 dont allow duplicates in ssh keys 2013-02-07 09:42:22 +02:00
Sebastian Ziebell 5d8a99f104 Test to check a user must be part of the team to see project.
A user must be part of the team to see a protected project. A test is given
to check that a 404 error is returned if the user can not see the project.
2013-02-06 17:11:01 +01:00
Sebastian Ziebell a534c9b72d A few fixes in documentation to notes, updates infos on status codes
A few fixes in the notes URI pattern (`notes` instead of `:notes`), also updated
the information to status codes. If `body` attribute is missing from a POST request
a status code 400 (Bad request) is returned. This reflects the code changes from
the previous commit.
2013-02-06 17:11:00 +01:00
Sebastian Ziebell bb24275f8d Status code 400 is returned if body is missing on note creation.
If a note is created with a POST request via API (`/projects/:id/notes`) status
code 400 is returned instead of 404. The resource itself exists but the request
is incomplete. Specs added to check different status codes when accessing, creating
and updating notes.
2013-02-06 17:11:00 +01:00
Sebastian Ziebell b9d40d2524 Tests added to check status codes when handling milestone via API
A few more tests added to check status code when creating or updating milestones.
2013-02-06 17:11:00 +01:00
Sebastian Ziebell 5be0265fe7 Status code 400 returned if title not given in a milestone (via API)
If a milestone is created via API but no title given then status code 400 (Bad request)
is returned instead of 404. A small helper method handles the errors collection of a
milestone.
2013-02-06 17:10:29 +01:00
Sebastian Ziebell 41e93bbfe2 Test added to check creation of note to a non-existent MR via API 2013-02-06 17:05:55 +01:00
Sebastian Ziebell f978a71f41 Creating MR comment without a note returns status code 400 (Bad request)
Creating a comment to an existing merge request via API without providing a note
returns a status code 400 now, suggesting a bad request. The reason for this
is the resource itself (MR) exists but the required property is not set.
2013-02-06 17:02:30 +01:00
Sebastian Ziebell 3f4e215c80 Extracted helper method to avoid code duplication 2013-02-06 17:02:30 +01:00
Sebastian Ziebell 413952ff94 Creating or updating a MR returns more informative status codes.
Using the API library to create or update a merge request at the moment a 404 error is returned.
This is fine when the merge request in question does not exist, but does not provide good
information that for example a required attribute is missing.
A status code of 400 (Bad request) is returned when creating or updating a merge request
when either `source_branch` or `target_branch` is missing. A status code of 409 is returned
when `source_branch` and `target_branch` are the same. Tests are added for these cases.
2013-02-06 16:57:00 +01:00
Jon Evans 6474797d1c Update app/views/admin/users/_form.html.haml 2013-02-06 09:27:09 -05:00
Jon Evans c9777518e3 Ruby 1.9 hash syntax 2013-02-06 09:26:46 -05:00
Jon Evans 4ce3ef41de Disable autocomplete for admin/users form
Fixes #2796
2013-02-06 08:50:35 -05:00
Marin Jankovski 1b4ba3eb99 Add user delete option. 2013-02-06 12:44:09 +01:00
Dmitriy Zaporozhets 4bfb98ddc9 Merge pull request #2877 from former03/feature_groups_api
Add groups api
2013-02-06 03:19:29 -08:00
Dmitriy Zaporozhets 18fc090052 remove hooks and support scripts from main repo. Moved to gitlab-shell 2013-02-05 15:59:40 +02:00
Dmitriy Zaporozhets bd3288e320 api check call 2013-02-05 15:55:49 +02:00
Dmitriy Zaporozhets 0a20f7e75e Merge pull request #2906 from redorkulated/patch-4
Update step 5 "database" (Issue #2894)
2013-02-05 04:10:28 -08:00
Dmitriy Zaporozhets 478570dc32 fix move repository 2013-02-05 13:43:25 +02:00
Dmitriy Zaporozhets adfd36f26a no need to run gitolite for enable_automerge 2013-02-05 13:30:56 +02:00
Dmitriy Zaporozhets 867945d193 Improving installation docs 2013-02-05 13:02:58 +02:00
Sato Hiroyuki 9dccecc9b5 Sort the commits on network graph by commiter date.
Author date is not updated, if the commits is rebased.
So the network graph having many rebased commit turns round and round,
that it is very difficult to undarstand history.
2013-02-05 19:58:49 +09:00
Dmitriy Zaporozhets 70e3bffd95 Fixed: post-receive, project remove, tests 2013-02-05 12:47:50 +02:00
Sato Hiroyuki df85c9c06a Fix bug when it has been switched to tag. 2013-02-05 19:08:25 +09:00
Sato Hiroyuki 8ff5cf9cd5 Add search box for the commit. 2013-02-05 19:08:09 +09:00
Dmitriy Zaporozhets 39e37677f2 add remove keys from gitlab-shell by id 2013-02-05 11:12:15 +02:00
Dmitriy Zaporozhets 081c272b85 Remove outdated specs and fixed key remove 2013-02-05 10:15:49 +02:00
Dmitriy Zaporozhets 12198bee2f update structure 2013-02-05 09:17:45 +02:00
Dmitriy Zaporozhets f385c7212e remove unexisting stubs 2013-02-05 09:14:35 +02:00
Dmitriy Zaporozhets 0d5a098c19 updated 2013-02-05 09:01:29 +02:00
Sato Hiroyuki 81cc1cb87b Enable to display the commit older than 650th commit. 2013-02-05 12:42:30 +09:00
Sato Hiroyuki 1e907498a9 The commit is marked and displayed in the center. 2013-02-05 12:34:35 +09:00
Sato Hiroyuki 7812cb77c8 Fix typo. 2013-02-05 12:20:04 +09:00
Dmitriy Zaporozhets c75fc9c7a6 remove gitolite stub 2013-02-04 18:18:36 +02:00
Dmitriy Zaporozhets 935b6ae653 Internal API 2013-02-04 17:53:43 +02:00
Dmitriy Zaporozhets 6f7ccea668 Fix satellites to use filesystem. Correct post-receive user finder 2013-02-04 16:19:37 +02:00
Dmitriy Zaporozhets 896c3a0a9d remove update_repository calls 2013-02-04 15:24:16 +02:00
Dmitriy Zaporozhets 5c6492662e update installation docs 2013-02-04 15:18:20 +02:00
Dmitriy Zaporozhets 27d9ac0fe8 Make gitlab works with gitlab-shell 2013-02-04 15:07:56 +02:00
Dmitriy Zaporozhets 6b9a609044 preparing for gitlab-shell 2013-02-04 14:28:10 +02:00
Michael d223cddc78 Update step 5 "database" (Issue #2894)
Made it a bit clearer what step 5 is for to stop people skipping it. This time with a relative link.
2013-02-04 11:36:05 +00:00
Christian Simon 33c48ecd35 Code deduplication using inheritance for GroupDetail 2013-02-03 19:38:33 +01:00
Cameron Yule e0d62d9c5f Replacing the manual parsing of the /etc/group file with the equivalent call from the Etc class in the Ruby standard library. This has the benefit of supporting additional platforms (e.g. OS X). 2013-02-02 20:04:07 +00:00
KennyTM~ e565be241f Show only ≤16 lines of code in a discussion (fix issue #2860). 2013-02-03 03:33:42 +08:00
Dmitriy Zaporozhets 85de55a120 Dont allow gitlab be loaded in iframe 2013-02-02 20:32:13 +02:00
Riyad Preukschas fac503877d Port changes from #2803 2013-02-01 21:22:40 +01:00
Riyad Preukschas 42dd006dfc Small fixes to the installation guide and check task 2013-02-01 21:06:44 +01:00
Riyad Preukschas 003c312104 Merge pull request #2440 from klamontagne/master
Don't setuid the repositories on installation
2013-02-01 20:56:03 +01:00
Christian Simon 6dba727cb2 Add test for duplicate group paths 2013-02-01 18:58:53 +01:00
Dmitriy Zaporozhets 0965aeb2ea Fix crash on team update 2013-02-01 19:07:54 +02:00
Dmitriy Zaporozhets e6002bdaff Ability to manage and remove group as owner outside of admin area 2013-02-01 19:04:11 +02:00
Dmitriy Zaporozhets 591e094e06 Add a delay for sending emails 2013-02-01 17:04:41 +02:00
Felix Gilcher 566de5ab06 update api documentation for delete team member
correctly describes the new behavior
2013-02-01 14:20:51 +00:00
Christian Simon 149ccd5d91 Fix groups api: differ between users and admin 2013-02-01 15:00:12 +01:00
Christian Simon fc0c692870 Add docs/tests for groups api 2013-02-01 14:59:22 +01:00
Felix Gilcher ce6436b98a Don't crash when removing a user that's not project member
The attempt to revoke project access for a user that was not member of the
project results in a 500 Internal Server error where it actually should
result in a 200 OK since after the operation, the user is not member of
the project. This turns the operation into an idempotent call that can
be repeated with no ill effects.

Updated the spec and changed the code accordingly. However, the result differs
slightly, as we can't return the users project access level if the user was not
member. I'm not aware if anybody relies on the result of this call.

Fixes #2832
2013-02-01 13:53:35 +00:00
Dmitriy Zaporozhets d53befb0d1 Fix mailer tests 2013-02-01 15:37:21 +02:00
Christian Simon 8edc6b6a8c Add api for creating/listing/viewing groups 2013-02-01 12:11:19 +01:00
Felix Gilcher c72910a8bf log fatal errors that we catch
In case we rescue from a fatal error, we want the error and the backtrace to
the error logged, so we can debug later on. This change injects the configured
logger from the rails app to the grape API and logs error as well as backtrace
in a rails-like fashion.
2013-02-01 10:23:23 +00:00
Dmitriy Zaporozhets 61833bcb74 fix app crash if author is missing 2013-02-01 09:33:12 +02:00
Dmitriy Zaporozhets cc2484c3e6 Fix sending commit note email to id instead email 2013-02-01 08:59:30 +02:00
Mike Wyatt 5e28710692 remove hardcoded app_dir from unicorn.rb.example 2013-01-31 18:33:11 -03:30
Mike Wyatt 7225c06934 default gitlab.relative_url_root to ENV['RAILS_RELATIVE_URL_ROOT'] 2013-01-31 18:28:03 -03:30
Dmitriy Zaporozhets 5857a7a9ce Merge pull request #2839 from m4tthumphrey/protected-branches-api
Added methods to protect and unprotect branches in from the API
2013-01-31 10:44:20 -08:00
Dmitriy Zaporozhets dfe2a742c2 fix notes specs 2013-01-31 13:13:17 +02:00
Dmitriy Zaporozhets fd1b9fdc12 Merge branch 'extend_user_api' of https://github.com/bladealslayer/gitlabhq into bladealslayer-extend_user_api
Conflicts:
	spec/requests/api/users_spec.rb
2013-01-31 13:00:50 +02:00
Dmitriy Zaporozhets afdb09de80 Merge pull request #2711 from fbehrens/patch-1
Update config/database.yml.postgresql
2013-01-31 02:54:48 -08:00
Dmitriy Zaporozhets 56000aea22 Merge pull request #2855 from hiroponz/fix-bug-of-network-graph
Fix bug of network graph(#2847) and trivial code clean up.
2013-01-31 02:33:59 -08:00
Dmitriy Zaporozhets 2af323bbd1 fix active tabs tests 2013-01-31 12:08:56 +02:00
Matt Humphrey 2c7554e897 Added methods to protect and unprotect branches 2013-01-31 09:26:03 +00:00
Dmitriy Zaporozhets 130f60d55b a bit of restyling. Replace some images with icons. Simplify note form 2013-01-31 11:22:06 +02:00
Sato Hiroyuki 4133221200 Fix bug of network graph(#2847) and trivial code clean up. 2013-01-31 17:48:51 +09:00
Dmitriy Zaporozhets 315fd7d746 fix routing specs 2013-01-31 10:08:20 +02:00
Dmitriy Zaporozhets 193a5624b2 add path and path_with_namespace to api project entity 2013-01-31 09:11:35 +02:00
Dmitriy Zaporozhets 563c55eb7e fix pagination issue 2013-01-31 08:55:31 +02:00
Dmitriy Zaporozhets bcc0eed3e4 missing doc for api 2013-01-31 08:46:59 +02:00
Dmitriy Zaporozhets 9da7b2e8d8 add specs for api -> merge request notes 2013-01-31 08:42:11 +02:00
Dmitriy Zaporozhets a037c9c249 Merge pull request #2842 from inome/ExposeMergeRequestAsNotable
Expose MergeRequest object as a notable in the API to allow for easy ret...
2013-01-30 22:25:02 -08:00
Dmitriy Zaporozhets 6dff742b66 Merge pull request #2852 from hiroponz/displaying-commit-on-new-window
Displaying commit on a new window, when clicking commit on network graph.
2013-01-30 22:23:33 -08:00
Dmitriy Zaporozhets d46cb3fd1c Merge pull request #2847 from hiroponz/improve-overlap-lines
Improve overlap of lines in network graph
2013-01-30 22:22:37 -08:00
Dmitriy Zaporozhets 8c50707dd4 Merge pull request #2823 from hiroponz/switchable-branch-on-network-graph
Switchable the main branch on network graph
2013-01-30 22:21:19 -08:00
Sato Hiroyuki ad33c39800 Fix wrong path of features. 2013-01-31 13:22:08 +09:00
Sato Hiroyuki f8a2db5341 Displaying commit on a new window, when clicking commit on network graph. 2013-01-31 10:43:57 +09:00
Dmitriy Zaporozhets 1fdeb9e030 Merge branch 'refactor/css' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-30 17:28:48 +00:00
Dmitriy Zaporozhets bfd00caff3 Few usability improvments 2013-01-30 17:13:05 +02:00
Dmitriy Zaporozhets 560985b0f6 Fixed link_to_member 2013-01-30 17:07:44 +02:00
Dmitriy Zaporozhets b096ee3275 a bit of split up for gitlab-bootstrap 2013-01-30 17:01:58 +02:00
Dmitriy Zaporozhets b742f47e89 remove old alert messages 2013-01-30 16:53:18 +02:00
Sato Hiroyuki 59b6de93ce Improve overlap of lines in network graph 2013-01-30 23:48:00 +09:00
Dmitriy Zaporozhets e2fb18a3ec replace right with pull-right 2013-01-30 16:40:43 +02:00
Dmitriy Zaporozhets 7d593c5446 Merge pull request #2837 from xudiera/master
Fixed a grammar mistake in alert-message.block-message
2013-01-30 06:32:02 -08:00
Micah Huff 1694dc8fe2 Expose MergeRequest object as a notable in the API to allow for easy retrieval of comments 2013-01-29 21:15:13 -08:00
Sato Hiroyuki 525a8cd3e9 Switchable the main branch on network graph 2013-01-30 09:12:03 +09:00
Dmitriy Zaporozhets 7ba4f2dcfa few styling for buttons 2013-01-29 22:57:15 +02:00
Dmitriy Zaporozhets fb617c61b9 refactor buttons pt2 2013-01-29 22:29:21 +02:00
Dmitriy Zaporozhets 033aa1a885 refactor buttons pt1 2013-01-29 22:18:19 +02:00
Carlos Xudiera cdd5543173 Fixed a grammar mistake in alert-message.block-message 2013-01-29 12:58:34 -05:00
Felix Gilcher 2a669fc899 rescue all errors and return the proper format
This rescues all errors and returns a proper JSON response. Fixes #2833.
2013-01-29 18:20:59 +01:00
Dmitriy Zaporozhets 9fdbdc662a set link to gitlab-ci 2013-01-29 14:49:10 +02:00
Dmitriy Zaporozhets c84675ee06 satellites logs 2013-01-29 12:12:24 +02:00
Dmitriy Zaporozhets 7121a58eb9 Advanced logging for post-receive worker 2013-01-29 11:32:05 +02:00
Dmitriy Zaporozhets f72dc7f779 dont escape images inside links for gfm. Fixes #2701 2013-01-29 11:00:56 +02:00
Felix Gilcher e76215a395 Update docs to reflect that project names are allowed as ID
The API accepts project names in all places where project IDs are expected. Updated the docs to
reflect that.
2013-01-28 23:51:45 +01:00
Dmitriy Zaporozhets 1c931fb814 fix key observer tests 2013-01-28 23:03:38 +02:00
Dmitriy Zaporozhets 299a9a1040 keys to gitolite via sidekiq now 2013-01-28 21:02:10 +02:00
Dmitriy Zaporozhets 944b2450b1 Merge pull request #2801 from Takuto88/master
Fix #2790
2013-01-28 10:33:59 -08:00
Dmitriy Zaporozhets df6db81e2a Merge branch 'features/async_gitolite' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-28 15:54:31 +00:00
Dmitriy Zaporozhets f7ade3b682 fix tests 2013-01-28 17:53:01 +02:00
Felix Gilcher a90d5c21b5 describe the project access level
the documentation mentions access_level as required parameter, but fails to list
accepted values.
2013-01-28 16:46:58 +01:00
Dmitriy Zaporozhets 9ad5fbb416 user factory username over sequence 2013-01-28 17:46:24 +02:00
Dmitriy Zaporozhets 8b54b7233e Async perform for add/remove team members 2013-01-28 17:39:02 +02:00
Dmitriy Zaporozhets 1c5876eb7b Do gitolite calls async. Remove satellite with project remove 2013-01-28 17:22:45 +02:00
Felix Gilcher 2ddaf00387 Added documentation for passing the token as header
The documentation was unclear about how to pass the api private token as
header. Updated the doc to include the nessesary information bits and
added an example using the curl command line client.
2013-01-28 14:49:27 +01:00
Lennart Rosam f9a48f72d4 Fix issue #2790 2013-01-28 13:52:30 +01:00
Riyad Preukschas b4f16faafd Merge pull request #2798 from Xylakant/patch-2
remove incorrect information about the api version
2013-01-28 04:47:00 -08:00
Lennart Rosam 66ebf8d83f Merge remote-tracking branch 'github/master' 2013-01-28 13:04:23 +01:00
Lennart Rosam dc13af90b1 Fix rake task - Update method name 2013-01-28 12:54:07 +01:00
Felix Gilcher 3c47e6248a remove incorrect information about the api version
The API version is currently not equal to the gitlab major version number. Gitlab 4.1 
still uses API version 3. Point to the lib/api.rb file instead which contains the
autoritative information.
2013-01-28 10:59:39 +01:00
Dmitriy Zaporozhets bd94854929 fix tests 2013-01-28 08:59:34 +02:00
Dmitriy Zaporozhets e0b5e26035 Merge pull request #2153 from koenpunt/commit-diff-views
Added swipe view for image diff
2013-01-27 11:41:23 -08:00
Koen Punt e33debc214 Updated commit diff view with some minor visual modifications
Prepared diff view for multiple view modes

Converted commits.js to coffeescript
image info in separate coffeescript file

Added swipe view mode

Added onion skin viewMode
2013-01-27 18:27:32 +01:00
Dmitriy Zaporozhets 558369731f Add deploy.html for symlink if maintaince 2013-01-27 19:09:40 +02:00
Dmitriy Zaporozhets 552e42f634 Merge pull request #2768 from rlaneve/feature/queued-web-hooks
Updates web hooks to process via queue
2013-01-27 08:52:37 -08:00
Dmitriy Zaporozhets ce0ec05c63 Pager.js to coffee 2013-01-27 18:47:19 +02:00
Dmitriy Zaporozhets e3c3c67b25 Merge pull request #2787 from gitlabhq/features/projects_page
Feature: Projects page
2013-01-27 05:55:22 -08:00
Dmitriy Zaporozhets d24fd32aa5 feature tests 2013-01-27 15:41:35 +02:00
Dmitriy Zaporozhets cd47e625f0 Fix features 2013-01-27 14:10:42 +02:00
Dmitriy Zaporozhets 7175b6a769 Fixed dashboard show specs 2013-01-27 13:20:23 +02:00
Dmitriy Zaporozhets 070f49fdc5 Make group name a link at header 2013-01-27 13:12:30 +02:00
Dmitriy Zaporozhets 6b01196fb2 Dashboard to resource 2013-01-27 12:56:20 +02:00
Dmitriy Zaporozhets bd3b677b86 Add projects page to dashboard. Remove projects pagination on dashboard 2013-01-27 12:34:27 +02:00
Riyad Preukschas 596442f71f Merge pull request #2784 from AlexDenisov/gitlab_check_environment
Missing environment added to 'Try fixing it' block
2013-01-26 11:51:17 -08:00
Alex Denisov 6ab6c55de5 Missed environment added to 'Try fixing it' block 2013-01-26 14:22:48 +00:00
Dmitriy Zaporozhets b68bba441e Fix projects in admin -> user -> show 2013-01-26 12:15:38 +02:00
Dmitriy Zaporozhets 0125b74b3c Fix application crashes after #2772 2013-01-26 12:08:34 +02:00
Dmitriy Zaporozhets 71e89df5e0 Merge pull request #2772 from zzet/bugfix/path_and_page-project-member-access-#2745
fix edit project members access link and page fixes refs #2745
2013-01-25 13:45:08 -08:00
Dmitriy Zaporozhets 439229efa3 Merge pull request #2777 from zzet/add_project_button
Add assign project to team button on team page
2013-01-25 13:42:52 -08:00
Andrey Kumanyaev 890e774ddc Display actual user role (admin or not) in team members list 2013-01-26 01:14:36 +04:00
Andrey Kumanyaev b280c2f361 Edit create new team text 2013-01-26 00:38:21 +04:00
Andrey Kumanyaev 45917935ef fix copied code. Add assign projects button. 2013-01-26 00:37:55 +04:00
Andrey Kumanyaev 75a02e090a simple cleanup code %) 2013-01-25 23:19:31 +04:00
Andrey Kumanyaev c5cbbea82e rewrite admin users controller (use 1 variable and find by username) 2013-01-25 22:38:24 +04:00
Andrey Kumanyaev ef85202f71 fix links in admin group view page (user links) 2013-01-25 22:37:38 +04:00
Andrey Kumanyaev 916165dfc4 username is default param to User 2013-01-25 22:35:58 +04:00
Andrey Kumanyaev df64bdffdf Update user finding (by username) in teams members (team of users) controller 2013-01-25 22:35:31 +04:00
Andrey Kumanyaev e1679d20c7 Update user finding (by username) in teams_members (project team) controller 2013-01-25 22:34:49 +04:00
Andrey Kumanyaev f225ff8674 Update user finding (by username) in admin teams members controller 2013-01-25 22:33:49 +04:00
Andrey Kumanyaev 6efda51cc5 fix edit project members access link and page fixes refs #2745 2013-01-25 21:20:15 +04:00
Dmitriy Zaporozhets 5ee8c132a5 Merge pull request #2769 from hiroponz/fix-not-showing-tooltip
Fix not showing tooltip on network graph
2013-01-25 08:24:22 -08:00
Sato Hiroyuki 561a0e3a4a Fix not showing tooltip on network graph 2013-01-26 01:05:17 +09:00
Ryan LaNeve 8a65229b35 Updates project to process web hooks async via sidekiq.
A new queue of "project_web_hook" is used to process web hooks asynchronously, allowing each to succeed/fail (and be retried) independently.

(Basically, project web hooks now process the same as system hooks.)
2013-01-25 10:42:57 -05:00
Dmitriy Zaporozhets 639b0a8715 refactor add to team 2013-01-25 17:26:00 +02:00
Dmitriy Zaporozhets 5f3df89c64 Fix teams + gitolite access 2013-01-25 17:18:27 +02:00
Dmitriy Zaporozhets 74e329064a teams refactoring and cleanup pt.1 2013-01-25 16:36:14 +02:00
Dmitriy Zaporozhets 1c88fbb391 show new group, new team links in profile 2013-01-25 16:25:43 +02:00
Dmitriy Zaporozhets 6743ecec59 Fix redirects. Add link to new team and new group 2013-01-25 16:18:37 +02:00
Dmitriy Zaporozhets 6350b32a3d Fix security issues with teams 2013-01-25 15:51:45 +02:00
Dmitriy Zaporozhets 3ddd9f753c Fix mass-assignment. Dont allow users w/o access to create team 2013-01-25 15:42:41 +02:00
Dmitriy Zaporozhets 70e05801b1 fix User.potential_team_members 2013-01-25 15:36:10 +02:00
Dmitriy Zaporozhets 8016a7bd33 fix 1145 2013-01-25 14:18:23 +02:00
Dmitriy Zaporozhets 5aca1d64e0 Fix project adding to team 2013-01-25 13:56:04 +02:00
Dmitriy Zaporozhets 2812e6f1f5 Fix removeing project if repo not exists 2013-01-25 13:47:54 +02:00
Dmitriy Zaporozhets 20a4742efd Fixing team tests 2013-01-25 11:36:15 +02:00
Dmitriy Zaporozhets 00e4a479d3 allow/deny user to create group/team 2013-01-25 11:30:49 +02:00
Dmitriy Zaporozhets 585a53c415 can_create_group, can_create_team boolean fields for user 2013-01-25 11:08:22 +02:00
Dmitriy Zaporozhets aa1f1eb680 Merge pull request #2746 from gitlabhq/features/teams
New feature: Teams
2013-01-25 00:46:20 -08:00
Dmitriy Zaporozhets 097e6053ef Fix for broken commit_url in graph 2013-01-25 10:16:20 +02:00
Dmitriy Zaporozhets 3ce79e0658 fix spec 2013-01-25 10:10:12 +02:00
Dmitriy Zaporozhets ac8247b46d Improved search. added filters 2013-01-25 10:07:21 +02:00
Andrey Kumanyaev d839f6c525 Remove simple code duplication in members controllers 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev e52fec9cd9 Update check If user can assign project to team 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev 6d713e84e1 remove unused code 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets 7403afea97 Reject non-owned projects to assign to teams 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets b4967b3703 Dont allow to select a project you have no right to assign 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets 11b7b93cf7 move team navs to upper nav 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets b5dd9e6775 Make a team and group boxes smaller on dashboard 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets ca752e64fb Fix mispelling and ambiguous id in UserTeam.without_project 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets ca105d0462 Show only teams we have access to 2013-01-24 22:31:49 +02:00
Dmitriy Zaporozhets 645f960475 Few UI improvements 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev 1a917bc954 fix scope to empty relation 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev 2befa8fe30 Switch user link to profile link 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev b695db4af4 Remove save files with failed test %) 2013-01-24 22:31:49 +02:00
Andrey Kumanyaev 9a604eb679 Remove pending steps (no functional - no tests) 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev 690db9693f fix tests 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev eb99feb4a7 simple refactoring 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev a5ce8696a6 remove unused autogenerated files 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev d721863382 Fix little bugs 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev 31d84d71d3 assign team to project from project page in public section 2013-01-24 22:31:48 +02:00
Andrey Kumanyaev 18bd1c9d30 update all teams code. refactoring and some corrections 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 7658f8c151 update routes 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 7534154b44 Add access control in public section to users teams 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev dcea52203d remove before_filter from controllers 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev f87b76a805 refactoring user team in public section 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev f6f414ce3b refactoring project team members controller (corresponding mental model) 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev ccf8fa4fa2 if project creator was remowed from Gitlab - creator is next admin, who edit this project 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 4ce715a360 Fix using context of Projects::UpdateContext (in admin section error, in public section - to next step if moving controlers) 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 1dd0feacc7 move Team_members controller into project (conflicts with team/members controller) 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 497f7ab5ba save autogenerated files 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev b8dadd6427 repair rspec (remove and rename files) 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 13fb3fdcf2 Repair admin section tests 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev 17a8ee57fe Remove old data 2013-01-24 22:31:25 +02:00
Andrey Kumanyaev a7667ffc14 Repair members management of teams 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev b7470440ff Move team project management to own controller 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev cca9935970 save generated files 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 9804b7df68 Move admin team members management to own controller 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 9d318db48f Added the correct hierarchy of controllers for the administrative part 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 2984716870 Admin rename team page is fixed 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 845f146518 fix simples errors in tests 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 6d1c566ec9 Rename Team class to ProjectTeam 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev c5f427b0a4 save commit 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev a987f1469e commit user team helper 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 17e9207dff add user team factories 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 3a0d4865f6 update projects show css selector 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev b6458ae3b3 add into user decorator (presenter) to full user name 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev c098ac6430 update stylesheets (for teams block) 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev b9a7bcb6a4 add teams application controller 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 3c6e144608 add dashboard teams block 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev a96cf3ad09 Team projects public section 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev ea6f46cb87 Team members public section 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 360aa1b407 Team core management 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 911f6eb106 merge into public 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 7d3efec7d1 Add ability to teams 2013-01-24 22:31:24 +02:00
Andrey Kumanyaev 695becc4cb Add teams into Public sections 2013-01-24 22:31:23 +02:00
Andrey Kumanyaev 82499a4cbf Admin teams section added 2013-01-24 22:31:23 +02:00
Andrey Kumanyaev 8a86fe7bb0 Added UserTeam core models (team and m-t-m relationships) and updated other models 2013-01-24 22:31:23 +02:00
Dmitriy Zaporozhets f6c482c06f User can create group 2013-01-24 17:47:09 +02:00
Dmitriy Zaporozhets d9027df5b5 Merge pull request #2706 from jfut/gh-issue-2602
Remove relative_url_root from path. Fixes #2602
2013-01-23 10:14:28 -08:00
Dmitriy Zaporozhets aa99660fe1 Merge pull request #2709 from hiroponz/improve-network-graph-2
Improve network graph
2013-01-23 10:13:40 -08:00
Dmitriy Zaporozhets 62cb514070 Merge pull request #2712 from aus/patch-1
Revise projects/new text
2013-01-23 10:12:28 -08:00
Dmitriy Zaporozhets 50fb4d6a2c Merge pull request #2715 from cjwprostar/help-fix
Update Markdown example to use username
2013-01-23 10:11:29 -08:00
Chris Waguespack 8ec36ca056 Update Markdown example to use username
Update the Markdown example in the Help pages to use username instead of user.
2013-01-23 09:58:38 -06:00
Austin Robertson d3c34ef8af Revise projects/new text
The previous text implied projects can only be private. Projects can now be private or public.
2013-01-23 08:47:19 -06:00
fbehrens b614e3b5cb Update config/database.yml.postgresql
This was necessary following the installation guide for ubuntu 10.4 with postgres
2013-01-23 15:32:31 +01:00
Sato Hiroyuki 70687cd581 Improve network graph 2013-01-23 21:39:29 +09:00
Jun Futagawa 79b9249ff4 Remove relative_url_root from path. Fixes #2602
Files and Commits render a 404 when running with relative_url_root.
2013-01-23 17:29:46 +09:00
Dmitriy Zaporozhets 65737bd5bd Merge pull request #2695 from earzur/hotfix/fix_import_refactoring
[import] - fix project import after refactoring
2013-01-22 22:38:59 -08:00
Erwan Arzur 621ca86b9e [import] - fix project import after refactoring 2013-01-22 19:07:11 +01:00
Dmitriy Zaporozhets efe2f5f8c7 Merge branch 'features/profile_page' 2013-01-22 19:55:01 +02:00
Dmitriy Zaporozhets 0ed7f32db3 changelog 2013-01-22 19:54:45 +02:00
Dmitriy Zaporozhets 96d97c4857 Fix routing. Finalize user show page 2013-01-22 19:45:13 +02:00
Dmitriy Zaporozhets 70690e1971 base implementation 2013-01-22 19:05:01 +02:00
Dmitriy Zaporozhets e0fb0703c4 Merge branch 'features/help_with_index' 2013-01-22 17:58:40 +02:00
Dmitriy Zaporozhets 2be107d0d9 Help with index 2013-01-22 17:58:09 +02:00
Valeriy Sizov e982a9512e fix tests 2013-01-22 17:25:35 +02:00
Valeriy Sizov 745c0dfa57 remove length of issue content
according to #2677
2013-01-22 17:15:22 +02:00
Valeriy Sizov 69ec189ad2 remove length of snippet content 2013-01-22 17:10:00 +02:00
Riyad Preukschas f70f7d0709 Merge pull request #2684 from rk4an/patch-1
Fix typo in gitlab.yml.example
2013-01-22 04:36:18 -08:00
Erkan 0ab906d5de Update config/gitlab.yml.example 2013-01-22 10:04:02 +01:00
Dmitriy Zaporozhets d770714578 Use subproccess instead subshell for git calls 2013-01-22 10:35:58 +02:00
Dmitriy Zaporozhets 68fa988219 done with 4.1. Version to 4.2.0pre :) 2013-01-21 16:36:55 +02:00
Dmitriy Zaporozhets ee43e9248c Add warning if user own projet but not in team. Also show loading when merge MR 2013-01-21 15:05:18 +02:00
Dmitriy Zaporozhets d1e63c7df2 Reporter cant create MR. Show user authorized projects in Admin area 2013-01-21 14:16:48 +02:00
Dmitriy Zaporozhets 96ba1708ac Merge pull request #2673 from AlexDenisov/submodule_rendering_bug
Render submodule bugfix
2013-01-21 02:23:23 -08:00
Alex Denisov e78e067204 Render empty string instead of nil 2013-01-21 09:48:25 +00:00
Dmitriy Zaporozhets 820e84662f gitlab 4.1rc 2013-01-21 09:06:25 +02:00
Dmitriy Zaporozhets cd8a302997 Fix application crash on help page 2013-01-20 14:17:56 +02:00
Riyad Preukschas d9270337c1 Update text on help#public_access page 2013-01-19 15:27:03 +01:00
Riyad Preukschas 607a38dd00 Fix public/projects#index page 2013-01-19 15:27:00 +01:00
Riyad Preukschas 47e510e14f Small fixes 2013-01-19 15:26:55 +01:00
Riyad Preukschas 75447fb044 Redo help#help_pages partial 2013-01-19 15:26:40 +01:00
Riyad Preukschas 8a5b770c36 Reorder help routes 2013-01-19 15:26:23 +01:00
Riyad Preukschas bba88e84a9 Fix public layout 2013-01-19 15:24:56 +01:00
Riyad Preukschas 8db80f1f6d Rename help#public_area to help#public_access 2013-01-19 15:24:51 +01:00
Riyad Preukschas 359703c696 Fix public cloning option text on projects#edit page 2013-01-19 15:24:37 +01:00
Riyad Preukschas 7e6a5800b6 Fix text on groups#show page 2013-01-19 15:24:07 +01:00
Riyad Preukschas fa46fc94a7 Fix common mixup when instlling gems from the installation guide 2013-01-19 14:52:25 +01:00
Dmitriy Zaporozhets cb96cc030a Uncomment forgotten code 2013-01-19 13:57:50 +02:00
Dmitriy Zaporozhets 54a24608a2 Remove chdir inside runtime. Improved gitolite shell commands 2013-01-19 13:56:55 +02:00
Dmitriy Zaporozhets cfe8983272 Remove link to non-existing page. Fixes #2620 2013-01-19 12:50:44 +02:00
Dmitriy Zaporozhets 3a1022e381 Increase Issue description size to 10k. Fixes #2545 2013-01-19 12:09:23 +02:00
Dmitriy Zaporozhets 569a88a456 raise exception if gitolite is broken 2013-01-19 11:58:36 +02:00
Dmitriy Zaporozhets 5c3fdfaacb Fixed developer push to protected branch. Closes #2647 2013-01-19 11:11:25 +02:00
Dmitriy Zaporozhets af7dcda1cb Fix project creation 2013-01-18 22:23:11 +02:00
Kevin Lamontagne f4175219fb Fix gitlab:check recommendation
Running the recommendation would give out:
GNU find: paths must precede expression
2013-01-18 14:14:32 -05:00
Dmitriy Zaporozhets 6f05ea4f6e Improve CreateContext call. Fixed test 2013-01-18 20:21:13 +02:00
GitLab 232d61d598 Refactor project creation. Added logout link to profile page 2013-01-17 17:35:57 +02:00
Dmitriy Zaporozhets c7c1a97c2f Merge pull request #2050 from dosire/allow_self_signup
Add optional signup
2013-01-18 05:18:06 -08:00
Marin Jankovski 296cdd591f Add optional signup. 2013-01-18 11:57:31 +01:00
Riyad Preukschas b07e1b3aed Merge pull request #2653 from jouve/fix_default_settings
Fix default settings when they are boolean.
2013-01-17 18:57:49 -08:00
Cyril 9db7c16a1e Fix default settings when they are boolean.
error is that ```enabled ||= true``` always evaluates to true.
Change all initialization of bool settings to use the same syntax:
```setting = true if setting.nil?```
2013-01-18 00:00:02 +01:00
Dmitriy Zaporozhets bf753e99e7 Improve link to comment targets on dashboard 2013-01-17 22:54:02 +02:00
Dmitriy Zaporozhets 309e2ceaf8 Merge pull request #2650 from riyad/setup-task-warning
Improve setup task, by making it less dangerous
2013-01-17 12:40:56 -08:00
Dmitriy Zaporozhets 4bb1664aae Merge pull request #2649 from tjeezy/patch-1
Eliminate horizontal shifting on diff body heights
2013-01-17 12:38:58 -08:00
Dmitriy Zaporozhets 2e9c0e2b47 switch to use link_to_member to prevent 500 if user is a project owner but does not have membership and leave comment 2013-01-17 22:35:45 +02:00
Riyad Preukschas 65c35466b6 Rename gitlab:app:setup task to gitlab:setup 2013-01-17 21:26:22 +01:00
Riyad Preukschas b7457f39b4 Remove the setup task from the maintenance docs 2013-01-17 21:20:18 +01:00
Riyad Preukschas bc59fd046f Add a warning prompt to the setup task 2013-01-17 21:19:36 +01:00
TJ Koblentz f65713dfa6 Eliminate horizontal shifting on diff body heights 2013-01-17 11:35:35 -08:00
Riyad Preukschas 843ea5bf22 Update custom SSH connection section in installation guide 2013-01-17 19:58:29 +01:00
Riyad Preukschas 5c504ed863 Merge pull request #2632 from yin8086/SSHPort
Add SSH custom port support for install/installation.md
2013-01-17 10:47:17 -08:00
Dmitriy Zaporozhets 48a5012b21 Updated CHANGELOG 2013-01-17 15:59:05 +02:00
Riyad Preukschas bddead9eff Update doc/install/structure.md 2013-01-17 13:19:40 +01:00
Cyril 4d19a4fbeb fix build failure
(https://travis-ci.org/gitlabhq/gitlabhq/builds/3593153)
2013-01-17 12:24:26 +01:00
Dmitriy Zaporozhets b08bb20979 Fix assign-to-me filter for project issues 2013-01-17 13:11:53 +02:00
GitLab 9115a4f92f Remove satellites when moving namespace 2013-01-17 12:21:52 +02:00
Dmitriy Zaporozhets b53ca0bcfe Fix branch remove on automerge 2013-01-17 12:07:01 +02:00
Dmitriy Zaporozhets 7e40684b47 Better solution for strict key check 2013-01-17 11:57:47 +02:00
Stardrad Yin 6b78053d75 Add SSH custom port support for install/installation.md 2013-01-17 15:11:00 +08:00
Riyad Preukschas 886cf2f5be Fix GFM specs 2013-01-17 02:00:09 +01:00
Riyad Preukschas 9f1e9f11f1 Merge pull request #2346 from sodabrew/omniauth_configs
Allow the OmniAuth provider args parameter to be passed through
2013-01-16 15:58:53 -08:00
Riyad Preukschas 9cab79cbe6 Fix gitolite config checks for old Gitolite versions
Fixes #2608
2013-01-17 00:43:35 +01:00
Riyad Preukschas 8f9dec2883 Fix check.rake to use the new user and group settings 2013-01-17 00:09:08 +01:00
Riyad Preukschas 76329a46a3 Fix settings 2013-01-16 23:54:48 +01:00
Riyad Preukschas eea43c9412 Merge branch 'check_gitlab_in_git_group' of https://github.com/VonC/gitlabhq into VonC-check_gitlab_in_git_group 2013-01-16 23:20:47 +01:00
Riyad Preukschas 9bc829d397 Fix markdown for note events 2013-01-16 23:03:21 +01:00
Riyad Preukschas 2bc78739a7 Fix parsing of ref-like Urls in links and images in GFM
Fixes #2166
2013-01-16 22:39:56 +01:00
Riyad Preukschas 16b5417842 Use image Urls for Emoji in GFM
Fixes #2617
2013-01-16 22:39:45 +01:00
Riyad Preukschas 7635afd0c4 Use Urls for references in GFM 2013-01-16 22:08:01 +01:00
Riyad Preukschas 640d51f4b6 Fix GFM in events
Fixes #2563
2013-01-16 18:09:49 +01:00
Riyad Preukschas 592d626dad Fix #2576 2013-01-16 17:31:11 +01:00
Riyad Preukschas 0dd8a26a3a Fix satellite path settings 2013-01-16 17:00:38 +01:00
Dmitriy Zaporozhets 3f252ed194 Merge pull request #2621 from jouve/default_setting
add default for Settings['satellites']
2013-01-16 07:42:46 -08:00
Cyril 31e338b8fd add default for Settings['satellites'] 2013-01-16 16:11:40 +01:00
Dmitriy Zaporozhets 729088a7af Owner can enable public mode for project 2013-01-16 16:54:01 +02:00
Dmitriy Zaporozhets a39c910619 added sctructure.md 2013-01-16 16:17:21 +02:00
Dmitriy Zaporozhets 13978f33d8 Merge pull request #2420 from koenpunt/patch-1
Remove wget dependency, now all curl
2013-01-16 05:20:24 -08:00
Dmitriy Zaporozhets 4c93d77f24 Merge pull request #2460 from calmh/expose-namespace
'namespace' should be exposed via the API
2013-01-16 05:05:45 -08:00
Dmitriy Zaporozhets 08426d336d Merge pull request #2538 from jouve/app_helper
clean application_helper a bit
2013-01-16 04:59:29 -08:00
Dmitriy Zaporozhets 369dbaf396 Merge pull request #1586 from Bregor/ber_to_string
Auth: Net::BER::BerIdentifiedStrings to Strings
2013-01-16 04:55:52 -08:00
Dmitriy Zaporozhets c9e6818ab6 Store repo satellites outside of tmp directory 2013-01-16 13:30:31 +02:00
Dmitriy Zaporozhets 3d57755b70 change roadmap 2013-01-15 22:54:03 +02:00
Dmitriy Zaporozhets fd522b3257 should be green build now :) 2013-01-15 19:18:52 +02:00
Dmitriy Zaporozhets cc54c66fd0 Fix spec/requests/notes_on_merge_requests_spec.r 2013-01-15 18:20:58 +02:00
Dmitriy Zaporozhets cf353bd34f Fixed spinach test 2013-01-15 17:12:53 +02:00
Dmitriy Zaporozhets 752eb2c11d more tests fixed 2013-01-15 16:36:35 +02:00
Dmitriy Zaporozhets b059de2ac7 Fix notes model specs 2013-01-15 15:19:14 +02:00
Dmitriy Zaporozhets 2191efd8ec fix notes_on_wall specs 2013-01-15 15:04:22 +02:00
Dmitriy Zaporozhets 953db8477e More fixes for test 2013-01-15 14:28:04 +02:00
Dmitriy Zaporozhets 211c06e419 Fix few test and notify for commit author 2013-01-15 13:37:20 +02:00
Dmitriy Zaporozhets 6ddacaf9bf Merge branch 'riyad-discussions' 2013-01-15 12:43:09 +02:00
Dmitriy Zaporozhets ac983319d3 fixing some test 2013-01-15 12:42:54 +02:00
Dmitriy Zaporozhets f598cc7897 change logic on line_code 2013-01-15 11:12:17 +02:00
Riyad Preukschas bda7fe38d0 Merge branch 'master' into discussions 2013-01-15 00:53:00 +01:00
Riyad Preukschas d28176b132 Replace commit diff note request specs with spinach features 2013-01-15 00:52:57 +01:00
Riyad Preukschas f8e1f4a7c9 Replace commit note request specs with spinach features 2013-01-15 00:52:55 +01:00
Riyad Preukschas 3022786948 Merge commit 'master' into discussions
Conflicts:
	app/assets/stylesheets/sections/notes.scss
	app/contexts/notes/load_context.rb
	app/models/project.rb
	app/observers/note_observer.rb
	app/roles/votes.rb
	app/views/commit/show.html.haml
	app/views/merge_requests/_show.html.haml
	app/views/merge_requests/diffs.js.haml
	app/views/merge_requests/show.js.haml
	app/views/notes/_note.html.haml
	features/steps/project/project_merge_requests.rb
	spec/models/note_spec.rb
2013-01-15 00:52:25 +01:00
Riyad Preukschas 8ee5fce9d6 Add preliminary specs for notes on merge requests 2013-01-15 00:27:59 +01:00
Riyad Preukschas 74e48f070f Smaller fixes 2013-01-15 00:27:26 +01:00
Riyad Preukschas d8e697ac68 Merge pull request #2585 from timl/patch-1
Fix typo in installation guide.
2013-01-14 13:21:26 -08:00
Dmitriy Zaporozhets a36926216f line numbers for blame 2013-01-14 20:55:57 +02:00
Dmitriy Zaporozhets e98d478085 remove thin from production env. Use unicorn for foreman 2013-01-14 20:21:04 +02:00
Dmitriy Zaporozhets b6da734824 Merge pull request #2584 from jasl8r/public-grack-clone
Public HTTP clones and remove auth request for public projects
2013-01-14 10:13:02 -08:00
Tim Laszlo ba24e242d7 Update doc/install/installation.md
Change "th" to "the"
2013-01-14 09:28:33 -06:00
Jeremy Slater 80b8921a9a Public HTTP clones and remove auth request for public projects 2013-01-14 09:46:55 -05:00
VonC 471b5910a6 Fix git group detection for gitolite ssh user.
The tasks gitlab:env:info mixes user and group, and presume as a group 'git'.
However, gitolite group name can be anything.

That patch add the git group name in the config,
and check gitolite.ssh_user group against git.group
(which defaults to 'git', as before this patch, if undefined).

M config/gitlab.yml.example:
  Add 'group' in 'git' section
  Mention default value for the two extra settings
M lib/tasks/gitlab/check.rake:
  Check that gitolite.ssh_user *group* is the one defined in git.group.
  Make sure to default to 'git' as the expected group
    if said group is undefined in the config.
  Note: uses a more complete regexp for the group detection
        (the group can start, end or be in the middle or the list of groups
         of gitolite.ssh_user)
M: config/initializers/1_settings.rb:
  Add default values for gitolite.group and gitlab.user
2013-01-14 11:44:27 +00:00
Dmitriy Zaporozhets eff6d3c12b CHANGELOG for 4.1 2013-01-14 13:39:09 +02:00
Dmitriy Zaporozhets 23e338852c Dont set @project variable in list. Remove a bit of duplication in dash and group 2013-01-14 10:09:01 +02:00
Dmitriy Zaporozhets f716c0a1dd profjects filter with_push to project model 2013-01-14 09:44:27 +02:00
Dmitriy Zaporozhets 8543313bf5 Few more filters for admin / projects 2013-01-14 09:37:29 +02:00
Dmitriy Zaporozhets 68bfcd0521 Add public filter to admin projects 2013-01-13 17:25:18 +02:00
Dmitriy Zaporozhets 122acb2254 fix unauth for public 2013-01-13 17:25:18 +02:00
Dmitriy Zaporozhets 4c6224aad1 Public git read-only access via http 2013-01-13 17:25:18 +02:00
Riyad Preukschas eb626edd3f Replace all stat command line calls with ruby equivalents 2013-01-12 01:25:01 +01:00
Riyad Preukschas 4d0af232da Make method names clearer in check.rake 2013-01-12 01:24:57 +01:00
Riyad Preukschas a213d4b9e8 Move OS detection to task helpers and add detection of OS X 2013-01-12 01:24:51 +01:00
Riyad Preukschas fd836f5490 Update empty error messages and warn if not viewing the most recent wiki page 2013-01-11 21:04:21 +01:00
Riyad Preukschas b55ed840e6 Update wiki pages
* Properly name columns in Pages and History views
* Link to Authors
* Make views more consistent
2013-01-11 20:20:11 +01:00
Riyad Preukschas b3bfb75252 Fix link_to_member to not be bold by default 2013-01-11 20:16:37 +01:00
Riyad Preukschas 167f26b90d Add an ordering scope to Wiki 2013-01-11 20:04:14 +01:00
Riyad Preukschas 5aada8cc2a Move wiki delete button to the edit page 2013-01-11 20:03:43 +01:00
Riyad Preukschas e54246d310 Merge pull request #2561 from MrHammy/master
Fix to pages links
2013-01-11 10:20:23 -08:00
Riyad Preukschas f0c4e94d74 Move checks after init script installation in docs 2013-01-11 18:59:06 +01:00
David Southard 97a4e1b86a update grammar in check application status section 2013-01-11 17:23:35 +01:00
MrHammy c913f40ca4 Update app/views/wikis/pages.html.haml
Changed the link in the pages of the wiki to the direct link instead of the first created page
2013-01-11 13:40:29 +01:00
Dmitriy Zaporozhets 32dadb46fa Merge pull request #2555 from studiofrenetic/master
Fix for archive download (method path missing)
2013-01-10 13:02:15 -08:00
Martin Bastien f97ae2ff85 Fix for archive download (method path missing) 2013-01-10 15:55:34 -05:00
Dmitriy Zaporozhets 9152ab7955 Fix missing image for last push 2013-01-10 20:20:56 +02:00
Dmitriy Zaporozhets 0bd3c195a5 Merge branch 'improve/wiki_typography' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-10 16:59:36 +00:00
Dmitriy Zaporozhets 37771eb4cc Merge branch 'bug/pager_load' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-10 16:59:27 +00:00
Dmitriy Zaporozhets eadad85561 Merge branch 'improve/filter_icons' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-10 16:59:12 +00:00
Dmitriy Zaporozhets 50b172530c Merge branch 'improve/admin' of dev.gitlabhq.com:gitlab/gitlabhq 2013-01-10 16:59:01 +00:00
Dmitriy Zaporozhets e25656d09b Improve wiki typography 2013-01-10 18:09:12 +02:00
Dmitriy Zaporozhets dd20da1bff Fix pager loading on every page in application 2013-01-10 17:38:37 +02:00
Dmitriy Zaporozhets abc2bdc3aa Remove unused images. More use of font-awesome icons 2013-01-10 08:43:25 +02:00
Dmitriy Zaporozhets c2982c9a31 sidekiq.log in admin area. Improved admin dashboard 2013-01-10 08:43:25 +02:00
Dmitriy Zaporozhets 78698698dc Merge pull request #2539 from jameswritescode/remove_passenger_fix
remove passenger_fix
2013-01-09 22:35:10 -08:00
James Newton 2b38c8a156 remove passenger_fix.rb, which due to the recent removal of Resque in favor of sidekiq breaks gitlab in passenger 2013-01-09 22:17:03 -06:00
Cyril 8a3bbbdb88 clean app helper
* remove unused method
* simplify gravatar_icon
2013-01-10 01:46:23 +01:00
Riyad Preukschas 7cd03836e5 Fix sidekiq check task 2013-01-10 00:09:09 +01:00
Riyad Preukschas 4eac403e3b Fix sidekiq task to use Rails 2013-01-10 00:09:09 +01:00
Dmitriy Zaporozhets 6ea7bc27e4 Merge pull request #2533 from gliptak/master
Use ruby 1.9.3-p327 on travis-ci
2013-01-09 14:33:18 -08:00
Dmitriy Zaporozhets aca0caa8cc Merge pull request #2534 from AlexDenisov/ajax_activities
Reload activities/events on the dashboard page via ajax
2013-01-09 13:26:54 -08:00
Alex Denisov d7bc121474 replace javascript:void with preventDefault 2013-01-09 21:02:41 +00:00
gliptak e47104bd7a Use ruby 1.9.3-p327 on travis-ci 2013-01-09 14:43:49 -05:00
Alex Denisov 5133fe8efb dashboard js -> coffee 2013-01-09 19:30:20 +00:00
Alex Denisov 3cc0458312 Reloading of events via ajax instead of page reloading. 2013-01-09 19:30:20 +00:00
AlexDenisov 0d9f73fa1e JavaScript removed from dashboard#index template. 2013-01-09 19:30:20 +00:00
Alex Denisov f038057b9d Typo fixed 2013-01-09 19:30:20 +00:00
Alex Denisov 97d17cf835 Event filters stores at cookies. 2013-01-09 19:30:20 +00:00
Alex Denisov b255c3c44b Tests on events filtering added 2013-01-09 19:30:20 +00:00
Alex Denisov 2b93201533 Tests on EventFilters added 2013-01-09 19:30:19 +00:00
Riyad Preukschas d27cc91ee9 Merge pull request #2527 from VonC/gitignore
Update .gitignore
2013-01-09 10:34:13 -08:00
Dmitriy Zaporozhets 6869a56403 Fix sidekiq chech and added script/check 2013-01-09 20:31:05 +02:00
Dmitriy Zaporozhets 16b61590ab Spinach: admin logs, admin users 2013-01-09 19:38:27 +02:00
VonC 3aa5daf696 gitignore updates.
Most yml files are ignored in gitlab/config/, except resque.yml
=> add it to the list of ignored files.
2013-01-09 16:39:43 +00:00
Dmitriy Zaporozhets 66ecfa77e5 Merge branch 'sidekiq' 2013-01-09 18:21:49 +02:00
Dmitriy Zaporozhets ab344f31b6 Rails upto 3.2.11 2013-01-09 11:07:55 +02:00
Dmitriy Zaporozhets 0d5c6a48be Merge pull request #2484 from netdata/fix_url_encode
Fixing request.fullpath URL encoding
2013-01-09 00:35:32 -08:00
Dmitriy Zaporozhets 31e3dc600a Fix routing specs 2013-01-09 09:47:25 +02:00
Dmitriy Zaporozhets 80e79f33af Merge pull request #2516 from jouve/fix_json_exemples_in_help
fix exemple js data in help/web_hook
2013-01-08 23:43:43 -08:00
Dmitriy Zaporozhets aa97ff7fde Fixed tree logs for branches with slash. Fixed remember of path when switch branch 2013-01-09 09:34:26 +02:00
Dmitriy Zaporozhets 7bfd38eaa9 spinach test: project services 2013-01-09 09:14:05 +03:00
Dmitriy Zaporozhets 9b22f41e54 set undefined features 2013-01-09 12:04:55 +02:00
Dmitriy Zaporozhets 9773ccc451 sidekiq with green tests 2013-01-09 09:14:05 +03:00
Dmitriy Zaporozhets 71bd956866 email via sidekiq. start and stop rake tasks 2013-01-09 08:44:05 +03:00
Dmitriy Zaporozhets 2f6603e581 A bit of spinach tests 2013-01-09 08:14:05 +03:00
Dmitriy Zaporozhets c7bb3a1f72 sidekiq 2013-01-09 08:14:05 +03:00
Cyril 0a0d2ecf85 fix exemple js data in help/web_hook 2013-01-08 15:34:15 +01:00
Dmitriy Zaporozhets b6568db1bc Fix minor style issue for compare 2013-01-08 12:23:33 +02:00
Dmitriy Zaporozhets f9528bfb86 a bit of restyling for issues and merge request lists 2013-01-08 08:14:05 +03:00
Dmitriy Zaporozhets 92a619ad28 organize simplecov 2013-01-07 22:23:13 +02:00
Riyad Preukschas 71c8801eef Fix checking for the recommended Gitolite version
Fixes #2475
2013-01-07 21:20:20 +01:00
Riyad Preukschas ea8cd13f79 Fix check for outdated config file 2013-01-07 21:20:20 +01:00
Riyad Preukschas b5f116f08b Add a check whether repos_path is a symlink 2013-01-07 21:20:20 +01:00
Riyad Preukschas b7314a1687 Fix bug in OS detection in check task 2013-01-07 21:20:20 +01:00
Riyad Preukschas 11e28aff7d Fix accessing the project repository path in check task
Fixes #2496
2013-01-07 21:20:19 +01:00
Dmitriy Zaporozhets b6ac9b4334 Fix group test after ajax activity 2013-01-07 22:05:21 +02:00
Dmitriy Zaporozhets cc64f2a814 Common filtering for dashboard and group. Share partial search result partial 2013-01-07 20:52:43 +02:00
Riyad Preukschas 0a16039924 Merge pull request #2504 from mitchty/sles_changes
Update info.rake to be able to run successfully on SuSE.
2013-01-07 10:15:27 -08:00
Riyad Preukschas 9be4c5558f Merge pull request #2485 from gliptak/patch-2
Renaming check function from 1056 to 1059
2013-01-07 09:41:27 -08:00
Mitch Tishmack 3e89244e08 Update info.rake to be able to run successfully on SuSE. 2013-01-07 11:21:35 -06:00
Dmitriy Zaporozhets fb470e8e2a Validate username uniq in scope of namespace 2013-01-07 17:36:24 +02:00
Dmitriy Zaporozhets a0bd09ab83 Fixed tests 2013-01-07 14:44:57 +02:00
Dmitriy Zaporozhets 8d8c161a7f Speedup dashboard via loading events with ajax 2013-01-07 14:36:01 +02:00
Dmitriy Zaporozhets 6c777ff823 Improve milestone show page 2013-01-07 14:08:03 +02:00
Dmitriy Zaporozhets 676a9a7e28 Fix xss vulnerability 2013-01-07 11:32:12 +02:00
Dmitriy Zaporozhets 1665a06fdd Added cleanup to help rake 2013-01-06 00:30:38 +02:00
Dmitriy Zaporozhets 68eb394824 Green button when we create new item, blue when save or some primary action 2013-01-06 00:08:02 +02:00
Riyad Preukschas 8c604c9d31 Add specs for notes on wall 2013-01-05 22:58:36 +01:00
Riyad Preukschas 1883e0830c Add specs for notes on commits 2013-01-05 22:58:27 +01:00
Dmitriy Zaporozhets baf591cc27 Fix network test and snippets expired 2013-01-05 23:49:01 +02:00
Dmitriy Zaporozhets 031008648f Add RAILS_ENV to rake docs 2013-01-05 23:36:04 +02:00
Dmitriy Zaporozhets 2c8a46e0fe Fix backup/restore path_to_repo 2013-01-05 23:29:48 +02:00
Dmitriy Zaporozhets 891bc414b1 Fix merge_request js -> ci_path 2013-01-05 23:26:14 +02:00
Dmitriy Zaporozhets fed9a3d5c8 Merge branch 'koenpunt-raphael-update' 2013-01-05 23:18:05 +02:00
Dmitriy Zaporozhets 47dd9e42f7 Merge branch 'raphael-update' of https://github.com/koenpunt/gitlabhq into koenpunt-raphael-update
Conflicts:
	Gemfile.lock
2013-01-05 23:17:50 +02:00
Dmitriy Zaporozhets e142ebde5c Merge branch 'koenpunt-mergerequest-to-coffee' 2013-01-05 23:09:38 +02:00
Dmitriy Zaporozhets eded4bfa95 Raise exception and show message to user if repo missing satellite 2013-01-05 23:09:26 +02:00
Dmitriy Zaporozhets eaa8cd28d0 Merge branch 'mergerequest-to-coffee' of https://github.com/koenpunt/gitlabhq into koenpunt-mergerequest-to-coffee 2013-01-05 22:54:48 +02:00
Dmitriy Zaporozhets d5642d3098 Fix project fixtures 2013-01-05 22:50:12 +02:00
Dmitriy Zaporozhets f33ada855c Merge pull request #2226 from jouve/username
add username to team_member page
2013-01-05 12:33:39 -08:00
Dmitriy Zaporozhets 9f1a4acf62 Merge pull request #2207 from koenpunt/system-to-fileutils
replaced system() calls with FileUtils.* methods
2013-01-05 10:03:13 -08:00
Dmitriy Zaporozhets 546dd4c2b6 Merge pull request #2487 from koenpunt/patch-2
Fixed typo of recipes (recipres) in development fixtures
2013-01-05 10:01:10 -08:00
Dmitriy Zaporozhets 1724f45f46 Remove unused styles. Restyled Issues a bit 2013-01-05 14:49:08 +02:00
Dmitriy Zaporozhets de05a598b3 Update to rails 3.2.10. Use simplercov in spinach too 2013-01-05 13:30:42 +02:00
Dmitriy Zaporozhets 2f5a733346 Add ci.gitlab.org badge 2013-01-05 13:12:31 +02:00
Dmitriy Zaporozhets 5a214ee6f1 Remove unused methods 2013-01-05 13:11:15 +02:00
Dmitriy Zaporozhets e3d7ce2cc4 Tests are fixed now 2013-01-05 12:12:02 +02:00
Koen Punt a1566a9c86 Converted merge_requests.js to coffeescript and updated code 2013-01-05 02:53:34 +01:00
Dmitriy Zaporozhets 0a94640e32 Merge branch 'refactoring/backend' 2013-01-05 00:49:58 +02:00
Dmitriy Zaporozhets de6fa5dd52 Fix security spec 2013-01-05 00:49:43 +02:00
Dmitriy Zaporozhets 9a88e4d184 Fix some tests. Use travis-ci 1.9.2 2013-01-05 00:43:32 +02:00
Dmitriy Zaporozhets e16cebac3e Fixed styles, ProjectHook specs etc 2013-01-05 00:35:38 +02:00
Dmitriy Zaporozhets c6298678f5 use ui-box as for all 2013-01-04 23:35:31 +02:00
Dmitriy Zaporozhets 14d0ef8f37 Show images preview in notes. Show line additions/deletions for commit 2013-01-04 22:13:32 +02:00
Dmitriy Zaporozhets ef5b36eaaf Fixed protected branches and file edit 2013-01-04 21:45:30 +02:00
Dmitriy Zaporozhets afbdbb0c95 Rspec fixes 2013-01-04 18:50:31 +02:00
Koen Punt eab1e6cea1 Fixed typo of recipes (recipres) 2013-01-04 17:43:41 +01:00
gliptak 29623d77e4 Renaming check function from 1056 to 1059 2013-01-04 10:14:55 -05:00
Wouter D'Haeseleer fd4bcd9f09 Fixing request.fullpath URL encoding
Let's assume your path is = "project/tree/master/This%20Is%20valid"
In this case gitlab renders a 404.

To fix this we should decode the path so that it looks like
"project/tree/master/This Is valid"
2013-01-04 15:05:00 +01:00
Koen Punt 47bb945caf raphael from gitlabhq 2013-01-04 13:59:08 +01:00
Koen Punt 1b96ca348f updated g.raphael 2013-01-04 13:59:08 +01:00
Koen Punt 90cba379a4 Updated graph tooltips and labels 2013-01-04 13:59:08 +01:00
Koen Punt f04597d918 updated raphael
better labels
2013-01-04 13:59:08 +01:00
Dmitriy Zaporozhets dccd8b6eaa Continue refactoring. Use repostory and team 2013-01-04 08:43:25 +02:00
Dmitriy Zaporozhets 39ba934c0a REpostiry, Team models 2013-01-03 21:09:18 +02:00
Dmitriy Zaporozhets e6c0673ef1 Rspec models Milestone, Commit, UsersProject 2013-01-03 19:11:14 +02:00
Koen Punt 6b9177ca02 replaced system() calls with FileUtils.* method
This also makes that 'mv: cannot stat `/ho..' is not shown in the test :)

consistent spacing

require fileutils

Revert "require fileutils"

This reverts commit 54313d3bbaa60cfc5b405be50cc00b7f6b0cb715.

new hash notation

FileUtils.mv in begin/rescue block
2013-01-03 15:36:50 +01:00
Dmitriy Zaporozhets 2095780f24 fix tests 2013-01-03 12:37:12 +02:00
Dmitriy Zaporozhets d6036f08aa move activated? method to service 2013-01-03 09:52:14 +02:00
Dmitriy Zaporozhets ce84e3f440 Fixed tests. added test for gitlab_ci_service model 2013-01-03 09:37:13 +02:00
Dmitriy Zaporozhets e65731bb7e Add concerns to autoload 2013-01-03 09:12:24 +02:00
Dmitriy Zaporozhets a1999955eb Merge pull request #2461 from gitlabhq/remove_roles
Remove models/roles and return to fat models
2013-01-02 23:07:32 -08:00
Dmitriy Zaporozhets da03a5c7e2 more refactoring using models/concerns 2013-01-03 09:06:07 +02:00
Dmitriy Zaporozhets 40a956eb68 Few more fixes after removing roles 2013-01-03 00:01:08 +02:00
Dmitriy Zaporozhets cac7723451 Get rid of roles 2013-01-02 23:35:11 +02:00
Dmitriy Zaporozhets 1b25a8f437 Improve Extract path 2013-01-02 22:39:02 +02:00
Riyad Preukschas 6c724ed96c Fix factories 2013-01-02 21:31:48 +01:00
Jakob Borg 0f07922f19 'namespace' should be exposed via the API
Since it's now an integral part of the project name, it should be
visible via the API.
2013-01-02 21:31:20 +01:00
Riyad Preukschas e29687552e Fix link titles 2013-01-02 21:07:02 +01:00
Dmitriy Zaporozhets 07a5cb2ef8 More readable Title for tab 2013-01-02 21:52:03 +02:00
Riyad Preukschas 621c6b8533 Fix commit note notification 2013-01-02 20:50:24 +01:00
Riyad Preukschas 7335f366dc Fix comment and reply buttons 2013-01-02 20:49:27 +01:00
Dmitriy Zaporozhets 642e64034c Fix crash on group => show 2013-01-02 20:59:47 +02:00
Dmitriy Zaporozhets ce484fa9da Fixed admin -> group -> show 2013-01-02 20:45:11 +02:00
Dmitriy Zaporozhets 67896ea9a2 Fixed missing current user for issue observer 2013-01-02 20:25:25 +02:00
Dmitriy Zaporozhets 6a9e7dc55b Fixed spinach 2013-01-02 19:56:22 +02:00
Dmitriy Zaporozhets ccf0686b01 Fix api specs. Use id instead path 2013-01-02 19:46:06 +02:00
Dmitriy Zaporozhets d431e43392 Fix few bugs and tests after refactoring ownership logic 2013-01-02 19:32:34 +02:00
Dmitriy Zaporozhets 00a1f5bc2c Project has now correct owner and creator. Increased test coverage 2013-01-02 19:00:00 +02:00
Dmitriy Zaporozhets 91995909d9 Fix #2375. Admin and owner can manage groups 2013-01-02 18:57:02 +02:00
Saito 0bda2d5d2b Merge pull request #2450 from jojosch/fix-grack-gitignore
fix grack accessing files beginning with .git
2012-12-31 22:51:31 -08:00
Johannes Schleifenbaum ff976bc86c fix grack accessing files beginning with .git 2012-12-31 23:33:00 +01:00
Dmitriy Zaporozhets ffe064a2c1 Bit of cleanup and improving mailer 2012-12-31 19:46:40 +02:00
Dmitriy Zaporozhets cf3f22cc99 Corrent link for MR diff note in email 2012-12-31 19:06:49 +02:00
Dmitriy Zaporozhets 22ec3fa14c Fix MR css for accept MR block 2012-12-31 18:35:38 +02:00
Dmitriy Zaporozhets e5ff5c2869 Use project with namespace in email subject 2012-12-31 18:22:44 +02:00
Dmitriy Zaporozhets 30d6370719 Add subdir support for rewrite-hooks script 2012-12-31 17:46:40 +02:00
Dmitriy Zaporozhets 8392449599 Fix backup/restore of repos 2012-12-31 12:01:05 +02:00
Dmitriy Zaporozhets 9df17fa4c5 Merge pull request #2438 from cvut/query-perf
Optimize query for keys of repository members
2012-12-31 00:15:19 -08:00
Kevin Lamontagne c816dcc105 Don't setuid the repositories (Rake checks) 2012-12-30 21:46:28 -05:00
Kevin Lamontagne 29baadf0c7 Don't setuid the repositories on installation 2012-12-30 21:15:31 -05:00
Dmitriy Zaporozhets 0a2ac8371d Add missing subject for wall comment 2012-12-30 20:26:09 +02:00
Jakub Jirutka a54b2e80f8 Optimize query for keys of repository members
…to load them at once and then use query cache.
2012-12-30 18:54:02 +01:00
Dmitriy Zaporozhets 82ae973a99 Describe for Roles 2012-12-30 16:19:31 +02:00
Dmitriy Zaporozhets 64db5f808b use gitlab omniauth-ldap gem instead of fork 2012-12-30 15:15:56 +02:00
Dmitriy Zaporozhets d863fa6283 Replace yaml_db fork with gem 2012-12-30 14:54:08 +02:00
Dmitriy Zaporozhets 96d49bf04c Use sdoc to generate application code documentation 2012-12-30 14:43:00 +02:00
Dmitriy Zaporozhets d075df56d3 Improve perfomance of removeing group 2012-12-30 14:26:19 +02:00
Dmitriy Zaporozhets f45345edb3 Fix project destroy timeout from admin area. Added 30 ssh keys to dev seeds 2012-12-30 14:09:43 +02:00
Dmitriy Zaporozhets a16533a04a Add groups to search autocomplete. Use alphabetically scope for users order 2012-12-30 13:50:23 +02:00
Dmitriy Zaporozhets e37a043df7 Get rid of skipping callbacks in production code. Dont trigger gitolite more than once on import in group 2012-12-30 13:37:33 +02:00
Saito 151ada7645 Merge pull request #2162 from frohoff/config-improvements
support for running in non-root directory/path (RAILS_RELATIVE_URL_ROOT)
2012-12-29 12:19:07 -08:00
Riyad Preukschas cfca11f2bc Merge pull request #2423 from hopson/master
Spelling error in merge request email
2012-12-28 14:44:55 -08:00
Robert Hopson 32be082055 Update app/views/notify/new_merge_request_email.html.haml
Fix spelling of 'assignee'
2012-12-28 10:56:48 -08:00
Chris Frohoff 21e55ca318 added RAILS_RELATIVE_URL_ROOT support 2012-12-28 18:11:28 +00:00
Koen Punt b822efb9d1 Remove wget dependency, now all curl 2012-12-28 13:38:43 +01:00
Dmitriy Zaporozhets e9394c48ca Fix dir_exists? 2012-12-28 06:24:05 +03:00
Dmitriy Zaporozhets d03964d6ec Fixed and improved enable_naamespace migration task 2012-12-28 06:14:05 +03:00
Dmitriy Zaporozhets d991ce636b Merge pull request #2390 from simi/master
No need to install custom phantomjs for travis.
2012-12-28 01:02:43 -08:00
Dmitriy Zaporozhets 1f3bdd453e Allow spaces in project name 2012-12-28 09:29:57 +02:00
Dmitriy Zaporozhets 3de4271846 Merge branch 'feature/add_user_to_projects_in_group-2298' of https://github.com/zzet/gitlabhq into zzet-feature/add_user_to_projects_in_group-2298 2012-12-28 09:14:28 +02:00
Dmitriy Zaporozhets c29457a396 Merge pull request #2394 from troyanov/master
fix warning 'nohup: redirecting stderr to stdout' for resque.sh
2012-12-27 06:59:52 -08:00
Dmitriy Zaporozhets 4cbb29cfad Fix not_in_project scope. Added counters in admin -> users. Improved seeds 2012-12-27 06:14:05 +03:00
Dmitriy Zaporozhets e56a47ab19 Dev fixtures: Add sample ssh key to admin 2012-12-27 12:13:18 +02:00
Dmitriy Zaporozhets dae56806df Merge pull request #2386 from cvut/fix-passenger
Fix shared Redis connection issue on Passenger
2012-12-27 01:23:17 -08:00
Andrey Kumanyaev 655b836b2a test reanimated 2012-12-26 20:31:47 +04:00
Andrey Kumanyaev c8bf5905bf Fix form url and routes path 2012-12-26 20:31:18 +04:00
Andrey Kumanyaev 98044f0f14 Code duplication removed from controllers 2012-12-26 20:30:11 +04:00
Andrey Kumanyaev 39e7a0eafe Rewrite rendering rows with users projects access in Users table in Admin group section 2012-12-26 19:52:16 +04:00
Andrey Kumanyaev 634783feb0 Rename scope "in_group" to "in_namespace" 2012-12-26 19:52:16 +04:00
Andrey Kumanyaev 1e3d238910 Replace short loop variable from "p" to "project" 2012-12-26 19:52:15 +04:00
Andrey Kumanyaev 2753cea75a Add variable form in user section 2012-12-26 19:52:15 +04:00
Andrey Kumanyaev 25c5763780 Add functional in user section 2012-12-26 19:52:15 +04:00
Andrey Kumanyaev 9c574464a6 Add functional in admin section 2012-12-26 19:52:15 +04:00
Andrey Kumanyaev 17ea019f4e Add Project name validation 2012-12-26 19:52:15 +04:00
Valeriy Sizov c4536ae587 Merge pull request #2376 from sriharshav/fixed
Fix replace return with next in rake rask
2012-12-26 05:02:56 -08:00
anton troyanov a934bafd9f fix warning 'nohup: redirecting stderr to stdout'
related issue https://github.com/gitlabhq/gitlabhq/issues/2045
2012-12-26 16:36:40 +04:00
Riyad Preukschas 70ebcf250a Merge pull request #2381 from Razer6/update-develop-guide
Fixed broken link to developer guide, fixes #2380
2012-12-26 03:15:10 -08:00
Riyad Preukschas d803eed264 Merge pull request #2378 from PaulWagener/patch-1
Update doc/install/installation.md
2012-12-26 03:12:07 -08:00
Dmitriy Zaporozhets 5cd823847b Use gitlab resque fork. Added rake task to stop all workers 2012-12-26 11:23:43 +02:00
Dmitriy Zaporozhets 3b1519da47 Merge pull request #2388 from zzet/feature/add_errors_henlder_into_dev
Better support for error handling in dev environment
2012-12-26 00:55:08 -08:00
Josef Šimánek 103bb239e5 Update .travis.yml 2012-12-26 00:29:28 +01:00
Andrey Kumanyaev 9ff1ec7d8e Added gems better_errors and binding_of_caller 2012-12-26 02:42:53 +04:00
Jakub Jirutka a1434ff50b Fix shared Redis connection issue on Passenger 2012-12-25 23:14:00 +01:00
Dmitriy Zaporozhets 4c800342af Fix routing by priority 2012-12-25 16:24:44 +02:00
Dmitriy Zaporozhets 3c1022f9b1 No resque errors 2012-12-25 16:18:22 +02:00
Robert Schilling 1be3941f7d Fixed broken link to developer guide, fixes #2380 2012-12-25 15:04:58 +01:00
Dmitriy Zaporozhets 64db738f9d Trying to fix resque issue 2012-12-25 15:53:50 +02:00
PaulWagener 80f75b8174 Update doc/install/installation.md
'th -> the' typo
2012-12-25 12:25:44 +01:00
Sriharsha Vardhan d41aac629b Fix replace return with next in rake rask 2012-12-25 12:13:50 +05:30
Dmitriy Zaporozhets c5eba169cd Cleanup service tasks 2012-12-25 07:14:05 +03:00
Dmitriy Zaporozhets c8ba5c2d58 Fix routing issues when navigating over tree, commits etc 2012-12-25 06:14:05 +03:00
Dmitriy Zaporozhets 49e73f8ac1 Fixed syntax error in config -> settings 2012-12-24 21:29:53 +02:00
Dmitriy Zaporozhets 6570843f84 Fix MR count for group scope 2012-12-24 21:27:12 +02:00
Dmitriy Zaporozhets 0dbb369ace Cleanup deprecated configs 2012-12-24 21:25:33 +02:00
Dmitriy Zaporozhets 8419740778 Starting 4.1.0pre 2012-12-24 21:24:53 +02:00
Dmitriy Zaporozhets 4ba24596d3 Make the logo icon more awesome 2012-12-24 21:18:23 +02:00
Dmitriy Zaporozhets a87fccc083 Update projects in gitolite after namespace moved. Added rake task to cleanup garbage from gitolite 2012-12-24 20:02:08 +02:00
Riyad Preukschas dea8628171 Merge branch 'stable' 2012-12-24 16:48:32 +01:00
Riyad Preukschas 8ef7b9b6d1 Make SQLite check in gitlab:check more robust 2012-12-24 16:45:10 +01:00
Riyad Preukschas 0e15270b75 Fix crash in gitlab:check while checking hooks 2012-12-24 16:45:08 +01:00
Riyad Preukschas d9ca1bce7a Fix paths in gitlab:check 2012-12-24 16:45:03 +01:00
Dmitriy Zaporozhets c49a3106ff Merge pull request #2350 from Razer6/milestone-expiration-date
Changed wording if milestone already expired
2012-12-24 05:58:28 -08:00
Dmitriy Zaporozhets efc4cae1b7 Add License 2012-12-24 14:33:16 +02:00
Dmitriy Zaporozhets 2937f35f9a Replace Wire font with Yanone. Show only icon as link to dashboard 2012-12-24 14:24:45 +02:00
Dmitriy Zaporozhets d80d4cd92b Replace font with free one 2012-12-24 12:37:28 +02:00
Aaron Stone aec1a84042 Allow the OmniAuth provider args parameter to pass through as either an Array or a Hash. 2012-12-23 16:12:53 -08:00
Robert Schilling d62a8a4d50 Changed wording if milestone already expired, using Date#past 2012-12-23 21:16:51 +00:00
Riyad Preukschas 2462949fd5 Update output of gitlab:gitolite:update_* 2012-12-23 21:16:26 +01:00
Riyad Preukschas 31e0fa6572 Update output of gitlab:enable_namespaces 2012-12-23 21:16:08 +01:00
Riyad Preukschas 1b6c28b976 Update output of gitlab:backup:resore 2012-12-23 21:15:25 +01:00
Riyad Preukschas 430d3ad45b Update output of gitlab:enable_automerge 2012-12-23 21:14:30 +01:00
Riyad Preukschas 224da71177 Extract task helper methods 2012-12-23 21:13:57 +01:00
Riyad Preukschas 9655350c79 Fix check.rake 2012-12-23 21:13:57 +01:00
Riyad Preukschas ece30f53ee Merge branch 'stable' 2012-12-23 20:58:01 +01:00
Riyad Preukschas a9e2fa4c35 Fix output of gitlab:check 2012-12-23 20:51:27 +01:00
Riyad Preukschas 3bf0b4e25b Fix satellite check for projects with empty repo
Fixes #2349
2012-12-23 20:51:27 +01:00
Dmitriy Zaporozhets 2a390f5dc1 Merge pull request #2348 from koenpunt/graph-contrast
Skipping colors to get more contrast between colors
2012-12-23 11:08:05 -08:00
Dmitriy Zaporozhets a5d7a95893 Merge pull request #2260 from hiroponz/improve-network-graph
Improve network-graph
2012-12-23 10:24:43 -08:00
Koen Punt 4ebee56acc Skipping colors to get more contrast between colors 2012-12-23 17:00:26 +01:00
Dmitriy Zaporozhets 02a29d1db4 Merge branch '4-0-stable' into stable 2012-12-23 14:02:47 +02:00
Dmitriy Zaporozhets 6a932d0af5 Add missing cd 2012-12-23 13:58:41 +02:00
Dmitriy Zaporozhets f314d3e68f Fix installation docs 2012-12-23 13:57:40 +02:00
Dmitriy Zaporozhets e440da62b8 Let it be v4.0.0 2012-12-23 12:12:31 +02:00
Riyad Preukschas db2c15369c Merge branch 'master' into discussions
Conflicts:
	app/assets/stylesheets/main.scss
	app/models/project.rb
	app/views/notes/_common_form.html.haml
	app/views/notes/_per_line_form.html.haml
	lib/gitlab/markdown.rb
	spec/models/note_spec.rb
2012-12-23 01:03:57 +01:00
Dmitriy Zaporozhets 25c33ca3d0 Fix webhook data sample 2012-12-23 01:14:04 +02:00
Dmitriy Zaporozhets 3ff131a747 Improve web hook data. Use clonable url in repo info 2012-12-23 01:10:57 +02:00
Dmitriy Zaporozhets 0af5884bcd gitlab.yml how to use section 2012-12-23 00:49:46 +02:00
Dmitriy Zaporozhets 86ed2e8f17 Fixed MR count on dashboard 2012-12-23 00:39:42 +02:00
Dmitriy Zaporozhets 3933930538 Sctrict host instructions 2012-12-23 00:35:52 +02:00
Dmitriy Zaporozhets 60038a99ca Import: Skip if not git repo 2012-12-23 00:18:39 +02:00
Dmitriy Zaporozhets fa8f834374 Fix import rake task and tests 2012-12-23 00:15:48 +02:00
Dmitriy Zaporozhets 9f595aa42f Merge branch 'master' of github.com:gitlabhq/gitlabhq 2012-12-22 23:45:37 +02:00
Dmitriy Zaporozhets 328e0d80ca Log if satellite creation failed 2012-12-22 23:45:22 +02:00
Riyad Preukschas 68c43d59f0 Add instructions to fix permissions for /home/git/.gitolite/ 2012-12-22 22:22:51 +01:00
Riyad Preukschas 5d1044c335 Fix Commit#to_diff 2012-12-22 20:36:33 +01:00
Riyad Preukschas 056fa05b86 Remove path parameter from projects API 2012-12-22 20:06:18 +01:00
Dmitriy Zaporozhets 1ba28aaef8 Implement UsersProject project_access validation 2012-12-22 19:52:28 +02:00
Riyad Preukschas 640018ba55 Fix docs to download and compile Ruby in /tmp/ruby 2012-12-22 15:52:42 +01:00
Riyad Preukschas c926a2b6ee Remove bundler calls from databases.md
GitLab is not yet downloaded at this point in the installation guide.
2012-12-22 15:33:22 +01:00
Riyad Preukschas cc42bf784e Fix sudo install command in installation guide
Fixes #2334
2012-12-22 15:16:16 +01:00
Boyan Tabakov e954438a1d Extended users API to support updating and deleting users.
Also added tests.
2012-12-18 21:24:31 +02:00
Sato Hiroyuki 5fd830f01c Improve network-graph 2012-12-13 10:10:10 +09:00
Cyril 7d3ee2baa6 add username to team_member page 2012-12-11 02:17:09 +01:00
Riyad Preukschas b47173da6a Revamped note form options. 2012-12-03 22:51:57 +01:00
Riyad Preukschas 4ed8278870 Fix a bunch of smaller glitches. 2012-12-03 22:51:57 +01:00
Riyad Preukschas 7978f8dd2b Fix handling form errors. 2012-12-03 22:51:57 +01:00
Riyad Preukschas c1ffee4e65 Fix dicussion headers 2012-12-03 22:51:57 +01:00
Riyad Preukschas c20af32ae4 Pull together and rename Notes partials 2012-12-03 22:51:57 +01:00
Riyad Preukschas 6fc10fa256 Unify forms for discussions and main target.
Allows previews and uploads in all forms.
Also fixes #1730
2012-12-03 22:51:56 +01:00
Riyad Preukschas fbd345ea20 Make attachments more obvious 2012-12-03 22:51:56 +01:00
Riyad Preukschas c4a7824a8c Fix wall notes 2012-12-03 22:51:56 +01:00
Riyad Preukschas 140652e9b0 Fix common form and note preview 2012-12-03 22:51:56 +01:00
Riyad Preukschas 5d3fb35cd1 Rename JS behaviors 2012-12-03 22:51:56 +01:00
Riyad Preukschas 918dc87376 Move code for appending a discussion note to notes JS 2012-12-03 22:51:56 +01:00
Riyad Preukschas fac4e3f2e5 Reformat notes JS 2012-12-03 22:51:56 +01:00
Riyad Preukschas d9b15fc17d Crop and rename the add diff note image 2012-12-03 22:51:56 +01:00
Riyad Preukschas 494ae87840 Refactor discussion reply 2012-12-03 22:51:56 +01:00
Riyad Preukschas 1319373d58 Fix loading notes with empty line_code in Project#commit_notes 2012-12-03 22:51:56 +01:00
Riyad Preukschas e8f10f317f Fix Note validation
* remove length restriction on note
* add format validation for line_code
2012-12-03 22:51:56 +01:00
Riyad Preukschas 654f10102e Remove paging from all notes except the wall 2012-12-03 22:51:56 +01:00
Riyad Preukschas 06ea122840 Refactor diff notes creation 2012-12-03 22:51:56 +01:00
Riyad Preukschas 39834ec640 Move diff notes into the actual diff content column 2012-12-03 22:51:56 +01:00
Riyad Preukschas 4d2278e7c6 Rename commits/text_file partial to text_diff 2012-12-03 22:51:56 +01:00
Riyad Preukschas 6d5c29dc2b Inline diff_notes_reply_button partial 2012-12-03 22:51:56 +01:00
Riyad Preukschas 3bc507e5c5 Rename diff note partials 2012-12-03 22:51:56 +01:00
Riyad Preukschas 534bd5a268 Fix emoji generation and styling 2012-12-03 22:51:56 +01:00
Riyad Preukschas bd60a4ed40 Make notes JS know which notes are new in a request 2012-12-03 22:51:56 +01:00
Riyad Preukschas ae067ee322 Fix vote counting 2012-12-03 22:51:56 +01:00
Riyad Preukschas 6c6f415cae Fix appending diff line notes 2012-12-03 22:51:55 +01:00
Riyad Preukschas 5c2f6d7f05 Update notes views to support discussions 2012-12-03 22:51:55 +01:00
Riyad Preukschas 0b3df2f128 Add merge request note feature 2012-12-03 22:51:55 +01:00
Riyad Preukschas 7971383d53 Rename the "Comments" tab for merge requests "Discussion" 2012-12-03 22:51:55 +01:00
Riyad Preukschas a048c955fd Add JS behaviors 2012-12-03 22:51:55 +01:00
Riyad Preukschas a58385247d Add discussions for merge requests to notes controller 2012-12-03 22:51:55 +01:00
Riyad Preukschas 9b919939a3 Fix parameter passing and wording for per line notes 2012-12-03 22:51:55 +01:00
Riyad Preukschas b91d680257 Fix notes helper 2012-12-03 22:51:55 +01:00
Riyad Preukschas fc1c250d40 Reorder Note methods and add helpers 2012-12-03 22:51:55 +01:00
Dmitriy Zaporozhets 319f0c3057 Merge branch 'master' into stable
Conflicts:
	doc/install/installation.md
2012-11-22 12:52:08 +02:00
Vanja Radovanović 333f7372c5 fix: grouping by date desc doesn't sort it too 2012-11-19 11:44:28 +01:00
randx e469084ccc Fix installation docs 2012-10-29 21:34:16 +02:00
Dmitriy Zaporozhets 7ecfaccf14 Merge branch 'master' into stable 2012-10-24 16:14:03 +03:00
Dmitriy Zaporozhets 3fa6ed8eb2 Merge branch 'master' into stable 2012-10-24 12:43:00 +03:00
Dmitriy Zaporozhets 8e7230fd99 Merge branch 'master' into stable 2012-10-22 19:02:02 +03:00
Dmitriy Zaporozhets d15643705b Merge branch 'master' into stable 2012-10-22 16:08:18 +03:00
Maxim Filatov 93cb01ea9b Auth: Net::BER::BerIdentifiedStrings to Strings 2012-09-28 18:08:13 +04:00
Dmitriy Zaporozhets fa1f8513d9 Merge branch 'master' into stable 2012-09-24 10:46:38 +03:00
Dmitriy Zaporozhets 1c5cb538f2 Merge branch 'master' into stable 2012-09-24 10:35:59 +03:00
Dmitriy Zaporozhets 6dd47c5905 Merge branch 'master' into stable 2012-09-21 15:47:07 +03:00
Gabor Liptak cb2be3ce0a Don't email omniauth created users 2012-09-19 13:36:00 -05:00
randx 4a1b42d26c update install to use recipes
Conflicts:

	doc/installation.md

Signed-off-by: Nihad Abbasov <narkoz.2008@gmail.com>
2012-09-11 07:35:36 +05:00
1091 changed files with 23648 additions and 112532 deletions

6
.gitignore vendored
View File

@ -2,7 +2,7 @@
.rbx/
db/*.sqlite3
db/*.sqlite3-journal
log/*.log
log/*.log*
tmp/
.sass-cache/
coverage/*
@ -19,8 +19,12 @@ config/gitlab.yml
config/database.yml
config/initializers/omniauth.rb
config/unicorn.rb
config/resque.yml
config/aws.yml
db/data.yml
.idea
.DS_Store
.chef
vendor/bundle/*
rails_best_practices_output.html
doc/code/*

2
.rspec
View File

@ -1 +1 @@
--colour
--colour --drb

4
.simplecov Normal file
View File

@ -0,0 +1,4 @@
# .simplecov
SimpleCov.start 'rails' do
merge_timeout 3600
end

View File

@ -1,18 +1,14 @@
language: ruby
env:
- DB=postgresql
- DB=mysql
- DB=mysql TRAVIS=true
before_install:
- sudo apt-get install libicu-dev -y
- 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'
rvm:
- 1.9.3
- 1.9.3-p392
services:
- mysql
- postgresql

View File

@ -1,4 +1,83 @@
v 5.1.0
- You can login with email or username now
- Corrected project transfer rollback when repository cannot be moved
- Move both repo and wiki when project transfer requrested
- Admin area: project editing was removed from admin namespace
- Access: admin user has now access to any project.
v 5.0.0
- Replaced gitolite with gitlab-shell
- Removed gitolite-related libraries
- State machine added
- Setup gitlab as git user
- Internal API
- Show team tab for empty projects
- Import repository feature
- Updated rails
- Use lambda for scopes
- Redesign admin area -> users
- Redesign admin area -> user
- Secure link to file attachments
- Add validations for Group and Team names
- Restyle team page for project
- Update capybara, rspec-rails, poltergeist to recent versions
- Wiki on git using Gollum
- Added Solarized Dark theme for code review
- Dont show user emails in autocomplete lists, profile pages
- Added settings tab for group, team, project
- Replace user popup with icons in header
- Handle project moving with gitlab-shell
- Added select2-rails for selectboxes with ajax data load
- Fixed search field on projects page
- Added teams to search autocomplete
- Move groups and teams on dashboard sidebar to sub-tabs
- API: improved return codes and docs. (Felix Gilcher, Sebastian Ziebell)
- Redesign wall to be more like chat
- Snippets, Wall features are disabled by default for new projects
v 4.2.0
- Teams
- User show page. Via /u/username
- Show help contents on pages for better navigation
- Async gitolite calls
- added satellites logs
- can_create_group, can_create_team booleans for User
- Process web hooks async
- GFM: Fix images escaped inside links
- Network graph improved
- Switchable branches for network graph
- API: Groups
- Fixed project download
v 4.1.0
- Optional Sign-Up
- Discussions
- Satellites outside of tmp
- Line numbers for blame
- Project public mode
- Public area with unauthorized access
- Load dashboard events with ajax
- remember dashboard filter in cookies
- replace resque with sidekiq
- fix routing issues
- cleanup rake tasks
- fix backup/restore
- scss cleanup
- show preview for note images
- improved network-graph
- get rid of app/roles/
- added new classes Team, Repository
- Reduce amount of gitolite calls
- Ability to add user in all group projects
- remove deprecated configs
- replaced Korolev font with open font
- restyled admin/dashboard page
- restyled admin/projects page
v 4.0.0
- Remove project code and path from API. Use id instead
- Return valid clonable url to repo for web hook
- Fixed backup issue
- Reorganized settings
- Fixed commits compare
- Refactored scss

View File

@ -1,26 +1,53 @@
# Contact & support
If you want quick help, head over to our [Support Forum](https://groups.google.com/forum/#!forum/gitlabhq).
Otherwise you can follow our [Issue Submission Guide](https://github.com/gitlabhq/gitlabhq/wiki/Issue-Submission-Guide) for a more systematic and thorough guide to solving your issues.
# Contribute to GitLab
## Recipes
This guide details how to use pull requests and the issues to improve GitLab.
We collect user submitted installation scripts and config file templates for platforms we don't support officially.
We believe there is merit in allowing a certain amount of diversity.
You can get and submit your solution to running/configuring GitLab with your favorite OS/distro, database, web server, cloud hoster, configuration management tool, etc.
## Closing policy for pull requests and issues
Help us improve the collection of [GitLab Recipes](https://github.com/gitlabhq/gitlab-recipes/)
Pull requests and issues not in line with the guidelines listed in this document will be closed with just a link to this paragraph. GitLab is a popular open source project and the capacity to deal with issues and pull requests is limited. To get support for your problems please use other channels as detailed in [the getting help section of the readme](https://github.com/gitlabhq/gitlabhq#getting-help). Professional [support subscriptions](http://www.gitlab.com/subscription/) and [consulting services](http://www.gitlab.com/consultancy/) are available from [GitLab.com](http://www.gitlab.com/).
## Pull requests
## Feature suggestions
We welcome pull request with improvements to GitLab code and/or documentation. The issues we would really like a pull request for are listed with the [status 'accepting merge/pull requests' on our feedback forum](http://feedback.gitlab.com/forums/176466-general/status/796455) but other improvements are also welcome.
Follow the [Issue Submission Guide](https://github.com/gitlabhq/gitlabhq/wiki/Issue-Submission-Guide) and support other peoples ideas or propose your own.
### Pull request guidelines
If you can please submit a pull request with the fix including tests. The workflow to make a pull request is as follows:
## Code
1. Fork the project on GitHub
1. Create a feature branch
1. Write tests and code
1. If you have multiple commits please combine them into one commit by [squashing them](http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
1. Push the commit to your fork
1. Submit a pull request
Follow our [Developer Guide](https://github.com/gitlabhq/gitlabhq/wiki/Developer-Guide) to set you up for hacking on GitLab.
We will accept pull requests if:
* The code has proper tests and all tests pass
* It can be merged without problems (if not please use: git rebase master)
* It doesn't break any existing functionality
* It's quality code that conforms to the [Rails style guide](https://github.com/bbatsov/rails-style-guide) and best practices
* The description includes a motive for your change and the method you used to achieve it
* It keeps the GitLab code base clean and well structured
* We think other users will need the same functionality
* If it makes changes to the UI the pull request should include screenshots
For examples of feedback on pull requests please look at already [closed pull requests](https://github.com/gitlabhq/gitlabhq/pulls?direction=desc&page=1&sort=created&state=closed).
## Issue tracker
The [issue tracker](https://github.com/gitlabhq/gitlabhq/issues) is only for obvious bugs or misbehavior in the master branch of GitLab. When submitting an issue please conform to the issue submission guidelines listed below.
Please send a pull request with a tested solution or a pull request with a failing test instead of opening an issue if you can. If you're unsure where to post, post to the [Support Forum](https://groups.google.com/forum/#!forum/gitlabhq) first. There are a lot of helpful GitLab users there who may be able to help you quickly. If your particular issue turns out to be a bug, it will find its way from there.
### Issue tracker guidelines
**Search** for similar entries before submitting your own, there's a good chance somebody else had the same issue or idea. Show your support with `:+1:` and/or join the discussion.
* Summarize your issue in one sentence (what goes wrong, what did you expect to happen)
* Describe your issue in detail
* How can we reproduce the issue on the [GitLab Vagrant virtual machine](https://github.com/gitlabhq/gitlab-vagrant-vm) (start with: vagrant destroy && vagrant up && vagrant ssh)
* Add the last commit sha1 of the GitLab version you used to replicate the issue
* Add logs or screen shots when possible
* Link to the line of code that might be responsible for the problem
* Describe your setup (use relevant parts from `sudo -u gitlab -H bundle exec rake gitlab:env:info`)

4
Capfile.example Normal file
View File

@ -0,0 +1,4 @@
load 'deploy'
load 'deploy/assets'
require 'bundler/capistrano'
load 'config/deploy'

90
Gemfile
View File

@ -1,4 +1,4 @@
source "http://rubygems.org"
source "https://rubygems.org"
def darwin_only(require_as)
RUBY_PLATFORM.include?('darwin') && require_as
@ -8,50 +8,58 @@ def linux_only(require_as)
RUBY_PLATFORM.include?('linux') && require_as
end
gem "rails", "3.2.9"
gem "rails", "3.2.13"
# Supported DBs
gem "mysql2", group: :mysql
gem "pg", group: :postgres
# Auth
gem "devise", "~> 2.1.0"
gem 'omniauth', "~> 1.1.1"
gem "devise"
gem 'omniauth', "~> 1.1.3"
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", 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: '8e6afc2da821354774aa4d1ee8a1aa2082f84a3e'
# Extracting information from a git repository
# Since gollum requires grit we cannot use gitlab-grit gem name any more. Use grit instead
gem "grit", '~> 2.5.0', git: 'https://github.com/gitlabhq/grit.git', ref: '42297cdcee16284d2e4eff23d41377f52fc28b9d'
gem 'grit_ext', '~> 0.8.1'
# Gitolite client (for work with gitolite-admin repo)
gem "gitolite", '1.1.0'
# Ruby/Rack Git Smart-HTTP Server Handler
gem 'gitlab-grack', '~> 1.0.0', require: 'grack'
# LDAP Auth
gem 'gitlab_omniauth-ldap', '1.0.2', require: "omniauth-ldap"
# Dump db to yml file. Mostly used to migrate from sqlite to mysql
gem 'gitlab_yaml_db', '1.0.0', require: "yaml_db"
# Syntax highlighter
gem "pygments.rb", git: "https://github.com/gitlabhq/pygments.rb.git", branch: "master"
gem "gitlab-pygments.rb", '~> 0.3.2', require: 'pygments.rb'
# Language detection
gem "github-linguist", "~> 2.3.4" , require: "linguist"
# API
gem "grape", "~> 0.2.1"
gem "grape", "~> 0.3.1"
gem "grape-entity", "~> 0.2.0"
# Format dates and times
# based on human-friendly examples
gem "stamp"
# Enumeration fields
gem 'enumerize'
# Pagination
gem "kaminari", "~> 0.14.1"
# HAML
gem "haml-rails", "~> 0.3.5"
gem "haml-rails"
# Files attachments
gem "carrierwave", "~> 0.7.1"
gem "carrierwave"
# Authorization
gem "six"
@ -67,18 +75,21 @@ gem "redcarpet", "~> 2.2.2"
gem "github-markup", "~> 0.7.4", require: 'github/markup'
# Servers
gem "thin", '~> 1.5.0'
gem "unicorn", "~> 4.4.0"
gem "unicorn"
# State machine
gem "state_machine"
# Issue tags
gem "acts-as-taggable-on", "2.3.3"
# Decorators
gem "draper", "~> 0.18.0"
gem "draper"
# Background jobs
gem "resque", "~> 1.23.0"
gem 'resque_mailer'
gem 'slim'
gem 'sinatra', require: nil
gem 'sidekiq'
# HTTP requests
gem "httparty"
@ -89,10 +100,20 @@ gem "colored"
# GitLab settings
gem 'settingslogic'
# Wiki
# - Use latest master to resolve Gem dependency with Pygemnts
# github-linquist needs pygments 0.4.2 but Gollum 2.4.11
# requires pygments 0.3.2. The latest master Gollum has been updated
# to use pygments 0.4.2. Change this after next Gollum release.
gem "gollum", "~> 2.4.0", git: "https://github.com/gollum/gollum.git", ref: "5dcd3c8c8f"
# Misc
gem "foreman"
gem "git"
# Cache
gem "redis-rails"
group :assets do
gem "sass-rails", "~> 3.2.5"
gem "coffee-rails", "~> 3.2.2"
@ -100,14 +121,16 @@ group :assets do
gem "therubyracer"
gem 'chosen-rails', "0.9.8"
gem 'select2-rails'
gem 'jquery-atwho-rails', "0.1.7"
gem "jquery-rails", "2.1.3"
gem "jquery-ui-rails", "2.0.2"
gem "modernizr", "2.6.2"
gem "raphael-rails", "1.5.2"
gem "raphael-rails", git: "https://github.com/gitlabhq/raphael-rails.git"
gem 'bootstrap-sass', "2.2.1.1"
gem "font-awesome-sass-rails", "~> 2.0.0"
gem "font-awesome-sass-rails", "~> 3.0.0"
gem "gemoji", "~> 1.2.1", require: 'emoji/railtie'
gem "gon"
end
group :development do
@ -115,16 +138,28 @@ group :development do
gem "letter_opener"
gem 'quiet_assets', '~> 1.0.1'
gem 'rack-mini-profiler'
# Better errors handler
gem 'better_errors'
gem 'binding_of_caller'
gem 'rails_best_practices'
# Docs generator
gem "sdoc"
# thin instead webrick
gem 'thin'
end
group :development, :test do
gem 'coveralls', require: false
gem 'rails-dev-tweaks'
gem 'spinach-rails'
gem "rspec-rails"
gem "capybara"
gem "pry"
gem "awesome_print"
gem "database_cleaner", ref: "f89c34300e114be99532f14c115b2799a3380ac6", git: "https://github.com/bmabey/database_cleaner.git"
gem "database_cleaner"
gem "launchy"
gem 'factory_girl_rails'
@ -138,18 +173,19 @@ group :development, :test do
gem 'rb-inotify', require: linux_only('rb-inotify')
# PhantomJS driver for Capybara
gem 'poltergeist', git: 'https://github.com/jonleighton/poltergeist.git', ref: '5c2e092001074a8cf09f332d3714e9ba150bc8ca'
gem 'poltergeist', '1.1.0'
gem 'spork', '~> 1.0rc'
end
group :test do
gem "simplecov", require: false
gem "shoulda-matchers", "1.3.0"
gem 'email_spec'
gem 'resque_spec'
gem "webmock"
gem 'test_after_commit'
end
group :production do
gem "gitlab_meta", '4.0'
gem "gitlab_meta", '5.0'
end

View File

@ -1,10 +1,3 @@
GIT
remote: https://github.com/bmabey/database_cleaner.git
revision: f89c34300e114be99532f14c115b2799a3380ac6
ref: f89c34300e114be99532f14c115b2799a3380ac6
specs:
database_cleaner (0.9.1)
GIT
remote: https://github.com/ctran/annotate_models.git
revision: be4e26825b521f0b2d86b181e2dff89901aa9b1e
@ -13,18 +6,10 @@ GIT
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)
GIT
remote: https://github.com/gitlabhq/grit.git
revision: 7f35cb98ff17d534a07e3ce6ec3d580f67402837
ref: 7f35cb98ff17d534a07e3ce6ec3d580f67402837
revision: 42297cdcee16284d2e4eff23d41377f52fc28b9d
ref: 42297cdcee16284d2e4eff23d41377f52fc28b9d
specs:
grit (2.5.0)
diff-lcs (~> 1.1)
@ -32,110 +17,95 @@ GIT
posix-spawn (~> 0.3.6)
GIT
remote: https://github.com/gitlabhq/grit_ext.git
revision: 8e6afc2da821354774aa4d1ee8a1aa2082f84a3e
ref: 8e6afc2da821354774aa4d1ee8a1aa2082f84a3e
remote: https://github.com/gitlabhq/raphael-rails.git
revision: cb2c92a040b9b941a5f1aa1ea866cc26e944fe58
specs:
grit_ext (0.6.1)
charlock_holmes (~> 0.6.9)
raphael-rails (2.1.0)
GIT
remote: https://github.com/gitlabhq/omniauth-ldap.git
revision: f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e
ref: f038dd852d7bd473a557e385d5d7c2fd5dc1dc2e
remote: https://github.com/gollum/gollum.git
revision: 5dcd3c8c8f68158e43ff79861279088ee56d0ebe
ref: 5dcd3c8c8f
specs:
omniauth-ldap (1.0.2)
net-ldap (~> 0.2.2)
omniauth (~> 1.0)
pyu-ruby-sasl (~> 0.0.3.1)
rubyntlm (~> 0.1.1)
GIT
remote: https://github.com/gitlabhq/pygments.rb.git
revision: db1da0343adf86b49bdc3add04d02d2e80438d38
branch: master
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)
GIT
remote: https://github.com/jonleighton/poltergeist.git
revision: 5c2e092001074a8cf09f332d3714e9ba150bc8ca
ref: 5c2e092001074a8cf09f332d3714e9ba150bc8ca
specs:
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)
gollum (2.4.11)
github-markdown (~> 0.5.3)
github-markup (>= 0.7.5, < 1.0.0)
grit (~> 2.5.0)
mustache (>= 0.99.4, < 1.0.0)
nokogiri (~> 1.5.6)
pygments.rb (~> 0.4.2)
sanitize (~> 2.0.3)
sinatra (~> 1.3.5)
stringex (~> 1.5.1)
useragent (~> 0.4.16)
GEM
remote: http://rubygems.org/
remote: https://rubygems.org/
specs:
actionmailer (3.2.9)
actionpack (= 3.2.9)
mail (~> 2.4.4)
actionpack (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
actionmailer (3.2.13)
actionpack (= 3.2.13)
mail (~> 2.5.3)
actionpack (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.0)
rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
activemodel (3.2.9)
activesupport (= 3.2.9)
activemodel (3.2.13)
activesupport (= 3.2.13)
builder (~> 3.0.0)
activerecord (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
activerecord (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
activesupport (3.2.9)
i18n (~> 0.6)
activeresource (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
activesupport (3.2.13)
i18n (= 0.6.1)
multi_json (~> 1.0)
acts-as-taggable-on (2.3.3)
rails (~> 3.0)
addressable (2.3.2)
arel (3.0.2)
awesome_print (1.1.0)
backports (2.6.5)
backports (2.6.7)
bcrypt-ruby (3.0.1)
blankslate (3.1.2)
better_errors (0.3.2)
coderay (>= 1.0.0)
erubis (>= 2.7.0)
binding_of_caller (0.7.1)
debug_inspector (>= 0.0.1)
bootstrap-sass (2.2.1.1)
sass (~> 3.2)
builder (3.0.4)
capybara (1.1.3)
capybara (2.0.2)
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)
carrierwave (0.7.1)
xpath (~> 1.0.0)
carrierwave (0.8.0)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
celluloid (0.12.4)
facter (>= 1.6.12)
timers (>= 1.0.0)
charlock_holmes (0.6.9)
childprocess (0.3.6)
ffi (~> 1.0, >= 1.0.6)
childprocess (0.3.8)
ffi (~> 1.0, >= 1.0.11)
chosen-rails (0.9.8)
railties (~> 3.0)
thor (~> 0.14)
coderay (1.0.8)
code_analyzer (0.3.1)
sexp_processor
coderay (1.0.9)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
@ -145,40 +115,54 @@ GEM
coffee-script-source (1.4.0)
colored (1.2)
colorize (0.5.8)
crack (0.3.1)
connection_pool (1.0.0)
coveralls (0.6.2)
colorize
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
thor
crack (0.3.2)
daemons (1.1.9)
devise (2.1.2)
database_cleaner (0.9.1)
debug_inspector (0.0.2)
descendants_tracker (0.0.1)
devise (2.2.3)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
diff-lcs (1.1.3)
draper (0.18.0)
actionpack (~> 3.2)
activesupport (~> 3.2)
diff-lcs (1.2.1)
draper (1.1.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
request_store (~> 1.0.3)
email_spec (1.4.0)
launchy (~> 2.1)
mail (~> 2.2)
enumerize (0.5.1)
activesupport (>= 3.2)
erubis (2.7.0)
escape_utils (0.2.4)
eventmachine (1.0.0)
execjs (1.4.0)
multi_json (~> 1.0)
facter (1.6.18)
factory_girl (4.1.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.1.0)
factory_girl (~> 4.1.0)
railties (>= 3.0.0)
faraday (0.8.4)
faraday (0.8.6)
multipart-post (~> 1.1)
faye-websocket (0.4.6)
faye-websocket (0.4.7)
eventmachine (>= 0.12.0)
ffaker (1.15.0)
ffi (1.1.5)
font-awesome-sass-rails (2.0.0.0)
ffi (1.4.0)
font-awesome-sass-rails (3.0.0.1)
railties (>= 3.1.1)
sass-rails (>= 3.1.1)
foreman (0.60.2)
foreman (0.61.0)
thor (>= 0.13.6)
gemoji (1.2.1)
gherkin-ruby (0.2.1)
@ -188,48 +172,62 @@ GEM
escape_utils (~> 0.2.3)
mime-types (~> 1.19)
pygments.rb (>= 0.2.13)
github-markup (0.7.4)
gitlab_meta (4.0)
gitolite (1.1.0)
gratr19 (~> 0.4.4.1)
grit (~> 2.5.0)
hashery (~> 1.5.0)
grape (0.2.2)
github-markdown (0.5.3)
github-markup (0.7.5)
gitlab-grack (1.0.0)
rack (~> 1.4.1)
gitlab-pygments.rb (0.3.2)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
gitlab_meta (5.0)
gitlab_omniauth-ldap (1.0.2)
net-ldap (~> 0.2.2)
omniauth (~> 1.0)
pyu-ruby-sasl (~> 0.0.3.1)
rubyntlm (~> 0.1.1)
gitlab_yaml_db (1.0.0)
gon (4.0.2)
grape (0.3.2)
activesupport
hashie (~> 1.2)
builder
hashie (>= 1.2.0)
multi_json (>= 1.3.2)
multi_xml
multi_xml (>= 0.5.2)
rack
rack-accept
rack-mount
virtus
gratr19 (0.4.4.1)
grape-entity (0.2.0)
activesupport
multi_json (>= 1.3.2)
grit_ext (0.8.1)
charlock_holmes (~> 0.6.9)
growl (1.0.3)
guard (1.5.4)
listen (>= 0.4.2)
guard (1.6.2)
listen (>= 0.6.0)
lumberjack (>= 1.0.2)
pry (>= 0.9.10)
terminal-table (>= 1.4.3)
thor (>= 0.14.6)
guard-rspec (2.1.2)
guard-rspec (2.5.1)
guard (>= 1.1)
rspec (~> 2.11)
guard-spinach (0.0.2)
guard (>= 1.1)
spinach
haml (3.1.7)
haml-rails (0.3.5)
haml (4.0.0)
tilt
haml-rails (0.4)
actionpack (>= 3.1, < 4.1)
activesupport (>= 3.1, < 4.1)
haml (~> 3.1)
haml (>= 3.1, < 4.1)
railties (>= 3.1, < 4.1)
hashery (1.5.0)
blankslate
hashie (1.2.0)
hike (1.2.1)
http_parser.rb (0.5.3)
httparty (0.9.0)
httparty (0.10.2)
multi_json (~> 1.0)
multi_xml
multi_xml (>= 0.5.2)
httpauth (0.2.0)
i18n (0.6.1)
journey (1.0.4)
@ -240,47 +238,46 @@ GEM
jquery-ui-rails (2.0.2)
jquery-rails
railties (>= 3.1.0)
json (1.7.5)
json (1.7.7)
jwt (0.1.5)
multi_json (>= 1.0)
kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
kgio (2.7.4)
kgio (2.8.0)
launchy (2.1.2)
addressable (~> 2.3)
letter_opener (1.0.0)
launchy (>= 2.0.4)
libv8 (3.3.10.4)
libwebsocket (0.1.6)
websocket
listen (0.5.3)
lumberjack (1.0.2)
mail (2.4.4)
libv8 (3.11.8.17)
listen (0.7.3)
lumberjack (1.0.3)
mail (2.5.3)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
method_source (0.8.1)
mime-types (1.19)
mime-types (1.21)
modernizr (2.6.2)
sprockets (~> 2.0)
multi_json (1.3.7)
multi_xml (0.5.1)
multi_json (1.7.2)
multi_xml (0.5.3)
multipart-post (1.1.5)
mustache (0.99.4)
mysql2 (0.3.11)
net-ldap (0.2.2)
nokogiri (1.5.5)
nokogiri (1.5.6)
oauth (0.4.7)
oauth2 (0.8.0)
oauth2 (0.8.1)
faraday (~> 0.8)
httpauth (~> 0.1)
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
omniauth (1.1.1)
omniauth (1.1.3)
hashie (~> 1.2)
rack
omniauth-github (1.0.3)
omniauth-github (1.1.0)
omniauth (~> 1.0)
omniauth-oauth2 (~> 1.1)
omniauth-google-oauth2 (0.1.13)
@ -297,16 +294,23 @@ GEM
omniauth-oauth (~> 1.0)
orm_adapter (0.4.0)
pg (0.14.1)
poltergeist (1.1.0)
capybara (~> 2.0, >= 2.0.1)
faye-websocket (~> 0.4, >= 0.4.4)
http_parser.rb (~> 0.5.3)
polyglot (0.3.3)
posix-spawn (0.3.6)
pry (0.9.10)
pry (0.9.12)
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.3.1)
slop (~> 3.4)
pygments.rb (0.4.2)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
pyu-ruby-sasl (0.0.3.3)
quiet_assets (1.0.1)
railties (~> 3.1)
rack (1.4.1)
rack (1.4.5)
rack-accept (0.4.5)
rack (>= 0.4)
rack-cache (1.2)
@ -315,139 +319,182 @@ GEM
rack (>= 1.1.3)
rack-mount (0.8.3)
rack (>= 1.0.0)
rack-protection (1.2.0)
rack-protection (1.4.0)
rack
rack-ssl (1.3.2)
rack-ssl (1.3.3)
rack
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.9)
actionmailer (= 3.2.9)
actionpack (= 3.2.9)
activerecord (= 3.2.9)
activeresource (= 3.2.9)
activesupport (= 3.2.9)
rails (3.2.13)
actionmailer (= 3.2.13)
actionpack (= 3.2.13)
activerecord (= 3.2.13)
activeresource (= 3.2.13)
activesupport (= 3.2.13)
bundler (~> 1.0)
railties (= 3.2.9)
railties (= 3.2.13)
rails-dev-tweaks (0.6.1)
actionpack (~> 3.1)
railties (~> 3.1)
railties (3.2.9)
actionpack (= 3.2.9)
activesupport (= 3.2.9)
rails_best_practices (1.13.4)
activesupport
awesome_print
code_analyzer
colored
erubis
i18n
ruby-progressbar
railties (3.2.13)
actionpack (= 3.2.13)
activesupport (= 3.2.13)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
raindrops (0.10.0)
rake (10.0.1)
raphael-rails (1.5.2)
rake (10.0.4)
rb-fsevent (0.9.2)
rb-inotify (0.8.8)
ffi (>= 0.5.0)
rdoc (3.12)
rdoc (3.12.2)
json (~> 1.4)
redcarpet (2.2.2)
redis (3.0.2)
redis (3.0.3)
redis-actionpack (3.2.3)
actionpack (~> 3.2.3)
redis-rack (~> 1.4.0)
redis-store (~> 1.1.0)
redis-activesupport (3.2.3)
activesupport (~> 3.2.3)
redis-store (~> 1.1.0)
redis-namespace (1.2.1)
redis (~> 3.0.0)
resque (1.23.0)
multi_json (~> 1.0)
redis-namespace (~> 1.0)
sinatra (>= 0.9.2)
vegas (~> 0.1.2)
resque_mailer (2.1.0)
actionmailer (~> 3.0)
resque_spec (0.12.5)
resque (>= 1.19.0)
rspec (>= 2.5.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.12.0)
rspec-rails (2.12.0)
redis-rack (1.4.2)
rack (~> 1.4.1)
redis-store (~> 1.1.0)
redis-rails (3.2.3)
redis-actionpack (~> 3.2.3)
redis-activesupport (~> 3.2.3)
redis-store (~> 1.1.0)
redis-store (1.1.3)
redis (>= 2.2.0)
ref (1.0.4)
request_store (1.0.5)
rest-client (1.6.7)
mime-types (>= 1.16)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.0)
rspec-rails (2.13.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.12.0)
rspec-expectations (~> 2.12.0)
rspec-mocks (~> 2.12.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
ruby-progressbar (1.0.2)
rubyntlm (0.1.1)
rubyzip (0.9.9)
sass (3.2.3)
sass-rails (3.2.5)
sanitize (2.0.3)
nokogiri (>= 1.4.4, < 1.6)
sass (3.2.7)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
sdoc (0.3.20)
json (>= 1.1.3)
rdoc (~> 3.10)
seed-fu (2.2.0)
activerecord (~> 3.1)
activesupport (~> 3.1)
selenium-webdriver (2.26.0)
select2-rails (3.3.1)
sass-rails (>= 3.2)
thor (~> 0.14)
selenium-webdriver (2.30.0)
childprocess (>= 0.2.5)
libwebsocket (~> 0.1.3)
multi_json (~> 1.0)
rubyzip
settingslogic (2.0.8)
websocket (~> 1.0.4)
settingslogic (2.0.9)
sexp_processor (4.2.0)
shoulda-matchers (1.3.0)
activesupport (>= 3.0.0)
sidekiq (2.8.0)
celluloid (~> 0.12.0)
connection_pool (~> 1.0)
multi_json (~> 1)
redis (~> 3)
redis-namespace
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
sinatra (1.3.3)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
sinatra (1.3.5)
rack (~> 1.4)
rack-protection (~> 1.3)
tilt (~> 1.3, >= 1.3.3)
six (0.2.0)
slop (3.3.3)
spinach (0.5.2)
slim (1.3.6)
temple (~> 0.5.5)
tilt (~> 1.3.3)
slop (3.4.4)
spinach (0.7.0)
colorize
gherkin-ruby (~> 0.2.0)
spinach-rails (0.1.8)
capybara (~> 1)
spinach-rails (0.2.0)
capybara (~> 2.0.0)
railties (>= 3)
spinach (>= 0.4)
sprockets (2.2.1)
spork (1.0.0rc3)
sprockets (2.2.2)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
stamp (0.3.0)
stamp (0.5.0)
state_machine (1.1.2)
stringex (1.5.1)
temple (0.5.5)
terminal-table (1.4.5)
test_after_commit (0.0.1)
therubyracer (0.10.2)
libv8 (~> 3.3.10)
therubyracer (0.11.4)
libv8 (~> 3.11.8.12)
ref
thin (1.5.0)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.16.0)
tilt (1.3.3)
thor (0.18.0)
tilt (1.3.6)
timers (1.1.0)
treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.35)
tzinfo (0.3.37)
uglifier (1.3.0)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
unicorn (4.4.0)
unicorn (4.6.2)
kgio (~> 2.6)
rack
raindrops (~> 0.7)
vegas (0.1.11)
rack (>= 1.0.0)
virtus (0.5.2)
useragent (0.4.16)
virtus (0.5.4)
backports (~> 2.6.1)
descendants_tracker (~> 0.0.1)
warden (1.2.1)
rack (>= 1.0)
webmock (1.9.0)
addressable (>= 2.2.7)
crack (>= 0.1.7)
websocket (1.0.2)
xpath (0.1.4)
websocket (1.0.7)
xpath (1.0.0)
nokogiri (~> 1.3)
yajl-ruby (1.1.0)
@ -458,34 +505,43 @@ DEPENDENCIES
acts-as-taggable-on (= 2.3.3)
annotate!
awesome_print
better_errors
binding_of_caller
bootstrap-sass (= 2.2.1.1)
capybara
carrierwave (~> 0.7.1)
carrierwave
chosen-rails (= 0.9.8)
coffee-rails (~> 3.2.2)
colored
database_cleaner!
devise (~> 2.1.0)
draper (~> 0.18.0)
coveralls
database_cleaner
devise
draper
email_spec
enumerize
factory_girl_rails
ffaker
font-awesome-sass-rails (~> 2.0.0)
font-awesome-sass-rails (~> 3.0.0)
foreman
gemoji (~> 1.2.1)
git
github-linguist (~> 2.3.4)
github-markup (~> 0.7.4)
gitlab_meta (= 4.0)
gitolite (= 1.1.0)
grack!
grape (~> 0.2.1)
grit!
grit_ext!
gitlab-grack (~> 1.0.0)
gitlab-pygments.rb (~> 0.3.2)
gitlab_meta (= 5.0)
gitlab_omniauth-ldap (= 1.0.2)
gitlab_yaml_db (= 1.0.0)
gollum (~> 2.4.0)!
gon
grape (~> 0.3.1)
grape-entity (~> 0.2.0)
grit (~> 2.5.0)!
grit_ext (~> 0.8.1)
growl
guard-rspec
guard-spinach
haml-rails (~> 0.3.5)
haml-rails
httparty
jquery-atwho-rails (= 0.1.7)
jquery-rails (= 2.1.3)
@ -495,39 +551,42 @@ DEPENDENCIES
letter_opener
modernizr (= 2.6.2)
mysql2
omniauth (~> 1.1.1)
omniauth (~> 1.1.3)
omniauth-github
omniauth-google-oauth2
omniauth-ldap!
omniauth-twitter
pg
poltergeist!
poltergeist (= 1.1.0)
pry
pygments.rb!
quiet_assets (~> 1.0.1)
rack-mini-profiler
rails (= 3.2.9)
rails (= 3.2.13)
rails-dev-tweaks
raphael-rails (= 1.5.2)
rails_best_practices
raphael-rails!
rb-fsevent
rb-inotify
redcarpet (~> 2.2.2)
resque (~> 1.23.0)
resque_mailer
resque_spec
redis-rails
rspec-rails
sass-rails (~> 3.2.5)
sdoc
seed-fu
select2-rails
settingslogic
shoulda-matchers (= 1.3.0)
sidekiq
simplecov
sinatra
six
slim
spinach-rails
spork (~> 1.0rc)
stamp
state_machine
test_after_commit
therubyracer
thin (~> 1.5.0)
thin
uglifier (~> 1.3.0)
unicorn (~> 4.4.0)
unicorn
webmock
yaml_db!

View File

@ -1,2 +1,2 @@
web: bundle exec rails s -p $PORT
worker: bundle exec rake environment resque:work QUEUE=* VVERBOSE=1
web: bundle exec unicorn_rails -p $PORT
worker: bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,common,default,gitlab_shell

165
README.md
View File

@ -1,44 +1,161 @@
# Welcome to GitLab [![build status](https://secure.travis-ci.org/gitlabhq/gitlabhq.png)](https://travis-ci.org/gitlabhq/gitlabhq) [![build status](https://secure.travis-ci.org/gitlabhq/grit.png)](https://travis-ci.org/gitlabhq/grit) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/gitlabhq/gitlabhq) [![Dependency Status](https://gemnasium.com/gitlabhq/gitlabhq.png)](https://gemnasium.com/gitlabhq/gitlabhq)
## GitLab: self hosted Git management software
GitLab is a free project and repository management application
![logo](https://raw.github.com/gitlabhq/gitlabhq/master/public/gitlab_logo.png)
### GitLab allows you to
* keep your code secure on your own server
* manage repositories, users and access permissions
* communicate through issues, line-comments and wiki pages
* perform code review with merge requests
## Application details
### GitLab is
* based on Ruby on Rails
* distributed under the MIT License
* works with gitolite
* powered by Ruby on Rails
* completely free and open source (MIT license)
* used by more than 10.000 organizations to keep their code secure
## Requirements
### Code status
* Ubuntu/Debian
* ruby 1.9.3+
* [![build status](http://ci.gitlab.org/projects/1/status?ref=master)](http://ci.gitlab.org/projects/1?ref=master) ci.gitlab.org (master branch)
* [![build status](https://secure.travis-ci.org/gitlabhq/gitlabhq.png)](https://travis-ci.org/gitlabhq/gitlabhq) travis-ci.org (master branch)
* [![Code Climate](https://codeclimate.com/github/gitlabhq/gitlabhq.png)](https://codeclimate.com/github/gitlabhq/gitlabhq)
* [![Dependency Status](https://gemnasium.com/gitlabhq/gitlabhq.png)](https://gemnasium.com/gitlabhq/gitlabhq)
* [![Coverage Status](https://coveralls.io/repos/gitlabhq/gitlabhq/badge.png?branch=master)](https://coveralls.io/r/gitlabhq/gitlabhq)
### Resources
* GitLab.org community site: [Homepage](http://gitlab.org) [Screenshots](http://gitlab.org/screenshots/) [Blog](http://blog.gitlab.org/) [Demo](http://demo.gitlabhq.com/users/sign_in)
* GitLab.com commercial services: [Homepage](http://www.gitlab.com/) [Subscription](http://www.gitlab.com/subscription/) [Consultancy](http://www.gitlab.com/consultancy/) [GitLab Cloud](http://www.gitlab.com/cloud/) [Blog](http://blog.gitlab.com/)
* GitLab CI: [Readme](https://github.com/gitlabhq/gitlab-ci/blob/master/README.md) of the GitLab open-source continuous integration server
### Requirements
* Ubuntu/Debian**
* ruby 1.9.3
* MySQL
* git
* gitolite
* gitlab-shell
* redis
## Install
** More details are in the [requirements doc](https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/requirements.md)
Checkout wiki pages for installation information, migration, etc.
### Installation
## Community
#### Official production installation
[Google Group](https://groups.google.com/group/gitlabhq)
Follow the installation guide for production server.
## Contacts
* [Installation guide for latest stable release (5.0)](https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md) - **Recommended**
Twitter:
* [Installation guide for the current master branch (5.1)](https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md)
* @gitlabhq
* @dzaporozhets
Email
#### Official development installation
* m@gitlabhq.com
If you want to contribute, please first read our [Contributing Guidelines](https://github.com/gitlabhq/gitlabhq/blob/master/CONTRIBUTING.md) and then we suggest you to use the Vagrant virtual machine project to get an environment working with all dependencies.
## Contribute
* [Vagrant virtual machine](https://github.com/gitlabhq/gitlab-vagrant-vm)
[Development Tips](https://github.com/gitlabhq/gitlabhq/blob/master/doc/development.md)
Want to help - send a pull request.
We'll accept good pull requests.
#### Unsupported production installation
* [GitLab recipes](https://github.com/gitlabhq/gitlab-recipes) for setup on different platforms
* [Unofficial installation guides](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Unofficial-Installation-Guides)
* [BitNami one-click installers](http://bitnami.com/stack/gitlab)
* [TurnKey Linux virtual appliance](http://www.turnkeylinux.org/gitlab)
### New versions and upgrading
Each month on the 22th a new version is released together with an upgrade guide.
* [Upgrade guides](https://github.com/gitlabhq/gitlabhq/wiki)
* [Changelog](https://github.com/gitlabhq/gitlabhq/blob/master/CHANGELOG)
* [Roadmap](https://github.com/gitlabhq/gitlabhq/blob/master/ROADMAP.md)
### Getting started
1. The Installation guide contains instructions to download an init script and run that on boot. With the init script you can also start GitLab
sudo service gitlab start
or
sudo /etc/init.d/gitlab restart
2. Start it with [Foreman](https://github.com/ddollar/foreman) in development mode
bundle exec foreman start -p 3000
or start it manually
bundle exec rails s
bundle exec rake sidekiq:start
### Running the tests
* Seed the database
bundle exec rake db:setup RAILS_ENV=test
bundle exec rake db:seed_fu RAILS_ENV=test
* Run all tests
bundle exec rake gitlab:test
* Rspec unit and functional tests
bundle exec rake spec
* Spinach integration tests
bundle exec rake spinach
### GitLab interfaces
* [GitLab API](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/README.md)
* [Rake tasks](https://github.com/gitlabhq/gitlabhq/tree/master/doc/raketasks)
* [Directory structure](https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/structure.md)
* [Databases](https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/databases.md)
### Getting help
* [Troubleshooting guide](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide) contains solutions to common problems.
* [Support forum](https://groups.google.com/forum/#!forum/gitlabhq) is the best place to ask questions. For example you can use it if you have questions about: permission denied errors, invisible repos, can't clone/pull/push or with web hooks that don't fire. Please search for similar issues before posting your own, there's a good chance somebody else had the same issue you have now and had it resolved. There are a lot of helpful GitLab users there who may be able to help you quickly. If your particular issue turns out to be a bug, it will find its way from there to a fix.
* [Feedback and suggestions forum](http://gitlab.uservoice.com/forums/176466-general) is the place to propose and discuss new features for GitLab.
* [Support subscription](http://www.gitlab.com/subscription/) connect you to the knowledge of GitLab experts that will resolve your issues and answer your questions.
* [Consultancy](http://www.gitlab.com/consultancy/) allows you hire GitLab exports for installations, upgrades and customizations.
* [Contributing guide](https://github.com/gitlabhq/gitlabhq/blob/master/CONTRIBUTING.md) describes how to submit pull requests and issues. Pull requests and issues not in line with the guidelines in this document will be closed without comment.
### Getting in touch
* [Core team](https://github.com/gitlabhq?tab=members)
* [Contributors](https://github.com/gitlabhq/gitlabhq/graphs/contributors)
* [Leader](https://github.com/randx)
* [Contact page](http://gitlab.org/contact/)

View File

@ -1,25 +1,5 @@
## GitLab Roadmap
### Common
### v5.1 April 22
* 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
* Not decided yet.

View File

@ -1 +1 @@
4.0.0rc1
5.1.0pre

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,53 @@
@Api =
users_path: "/api/:version/users.json"
user_path: "/api/:version/users/:id.json"
notes_path: "/api/:version/projects/:id/notes.json"
# Get 20 (depends on api) recent notes
# and sort the ascending from oldest to newest
notes: (project_id, callback) ->
url = Api.buildUrl(Api.notes_path)
url = url.replace(':id', project_id)
$.ajax(
url: url,
data:
private_token: gon.api_token
gfm: true
recent: true
dataType: "json"
).done (notes) ->
notes.sort (a, b) ->
return a.id - b.id
callback(notes)
user: (user_id, callback) ->
url = Api.buildUrl(Api.user_path)
url = url.replace(':id', user_id)
$.ajax(
url: url
data:
private_token: gon.api_token
dataType: "json"
).done (user) ->
callback(user)
# Return users list. Filtered by query
# Only active users retrieved
users: (query, callback) ->
url = Api.buildUrl(Api.users_path)
$.ajax(
url: url
data:
private_token: gon.api_token
search: query
per_page: 20
active: true
dataType: "json"
).done (users) ->
callback(users)
buildUrl: (url) ->
return url.replace(':version', gon.api_version)

View File

@ -17,6 +17,7 @@
//= require bootstrap
//= require modernizr
//= require chosen-jquery
//= require select2
//= require raphael
//= require g.raphael-min
//= require g.bar-min

View File

@ -0,0 +1,5 @@
$ ->
$("body").on "click", ".js-details-target", ->
container = $(@).closest(".js-details-container")
container.toggleClass("open")

View File

@ -0,0 +1,13 @@
$ ->
$("body").on "click", ".js-toggler-target", ->
container = $(@).closest(".js-toggler-container")
container.toggleClass("on")
$("body").on "click", ".js-toggle-visibility-link", (e) ->
$(@).find('i').
toggleClass('icon-chevron-down').
toggleClass('icon-chevron-up')
container = $(".js-toggle-visibility-container")
container.toggleClass("hide")
e.preventDefault()

View File

@ -0,0 +1,309 @@
class BranchGraph
constructor: (@element, @options) ->
@preparedCommits = {}
@mtime = 0
@mspace = 0
@parents = {}
@colors = ["#000"]
@offsetX = 120
@offsetY = 20
@unitTime = 30
@unitSpace = 10
@load()
load: ->
$.ajax
url: @options.url
method: "get"
dataType: "json"
success: $.proxy((data) ->
$(".loading", @element).hide()
@prepareData data.days, data.commits
@buildGraph()
, this)
prepareData: (@days, @commits) ->
@collectParents()
for c in @commits
c.isParent = true if c.id of @parents
@preparedCommits[c.id] = c
@collectColors()
collectParents: ->
for c in @commits
@mtime = Math.max(@mtime, c.time)
@mspace = Math.max(@mspace, c.space)
for p in c.parents
@parents[p[0]] = true
@mspace = Math.max(@mspace, p[1])
collectColors: ->
k = 0
while k < @mspace
@colors.push Raphael.getColor(.8)
# Skipping a few colors in the spectrum to get more contrast between colors
Raphael.getColor()
Raphael.getColor()
k++
buildGraph: ->
graphHeight = $(@element).height()
graphWidth = $(@element).width()
ch = Math.max(graphHeight, @offsetY + @unitTime * @mtime + 150)
cw = Math.max(graphWidth, @offsetX + @unitSpace * @mspace + 300)
@r = r = Raphael(@element.get(0), cw, ch)
top = r.set()
cuday = 0
cumonth = ""
barHeight = Math.max(graphHeight, @unitTime * @days.length + 320)
r.rect(0, 0, 26, barHeight).attr fill: "#222"
r.rect(26, 0, 20, barHeight).attr fill: "#444"
for day, mm in @days
if cuday isnt day[0]
# Dates
r.text(36, @offsetY + @unitTime * mm, day[0])
.attr(
font: "12px Monaco, monospace"
fill: "#DDD"
)
cuday = day[0]
if cumonth isnt day[1]
# Months
r.text(13, @offsetY + @unitTime * mm, day[1])
.attr(
font: "12px Monaco, monospace"
fill: "#EEE"
)
cumonth = day[1]
for commit in @commits
x = @offsetX + @unitSpace * (@mspace - commit.space)
y = @offsetY + @unitTime * commit.time
@drawDot(x, y, commit)
@drawLines(x, y, commit)
@appendLabel(x, y, commit.refs) if commit.refs
@appendAnchor(top, commit, x, y)
@markCommit(x, y, commit, graphHeight)
top.toFront()
@bindEvents()
bindEvents: ->
drag = {}
element = @element
dragger = (event) ->
element.scrollLeft drag.sl - (event.clientX - drag.x)
element.scrollTop drag.st - (event.clientY - drag.y)
element.on mousedown: (event) ->
drag =
x: event.clientX
y: event.clientY
st: element.scrollTop()
sl: element.scrollLeft()
$(window).on "mousemove", dragger
$(window).on
mouseup: ->
$(window).off "mousemove", dragger
keydown: (event) ->
# left
element.scrollLeft element.scrollLeft() - 50 if event.keyCode is 37
# top
element.scrollTop element.scrollTop() - 50 if event.keyCode is 38
# right
element.scrollLeft element.scrollLeft() + 50 if event.keyCode is 39
# bottom
element.scrollTop element.scrollTop() + 50 if event.keyCode is 40
appendLabel: (x, y, refs) ->
r = @r
shortrefs = refs
# Truncate if longer than 15 chars
shortrefs = shortrefs.substr(0, 15) + "" if shortrefs.length > 17
text = r.text(x + 4, y, shortrefs).attr(
"text-anchor": "start"
font: "10px Monaco, monospace"
fill: "#FFF"
title: refs
)
textbox = text.getBBox()
# Create rectangle based on the size of the textbox
rect = r.rect(x, y - 7, textbox.width + 5, textbox.height + 5, 4).attr(
fill: "#000"
"fill-opacity": .5
stroke: "none"
)
triangle = r.path(["M", x - 5, y, "L", x - 15, y - 4, "L", x - 15, y + 4, "Z"]).attr(
fill: "#000"
"fill-opacity": .5
stroke: "none"
)
label = r.set(rect, text)
label.transform(["t", -rect.getBBox().width - 15, 0])
# Set text to front
text.toFront()
appendAnchor: (top, commit, x, y) ->
r = @r
options = @options
anchor = r.circle(x, y, 10).attr(
fill: "#000"
opacity: 0
cursor: "pointer"
).click(->
window.open options.commit_url.replace("%s", commit.id), "_blank"
).hover(->
@tooltip = r.commitTooltip(x + 5, y, commit)
top.push @tooltip.insertBefore(this)
, ->
@tooltip and @tooltip.remove() and delete @tooltip
)
top.push anchor
drawDot: (x, y, commit) ->
r = @r
r.circle(x, y, 3).attr(
fill: @colors[commit.space]
stroke: "none"
)
r.rect(@offsetX + @unitSpace * @mspace + 10, y - 10, 20, 20).attr(
fill: "url(#{commit.author.icon})"
stroke: @colors[commit.space]
"stroke-width": 2
)
r.text(@offsetX + @unitSpace * @mspace + 35, y, commit.message.split("\n")[0]).attr(
"text-anchor": "start"
font: "14px Monaco, monospace"
)
drawLines: (x, y, commit) ->
r = @r
for parent, i in commit.parents
parentCommit = @preparedCommits[parent[0]]
parentY = @offsetY + @unitTime * parentCommit.time
parentX1 = @offsetX + @unitSpace * (@mspace - parentCommit.space)
parentX2 = @offsetX + @unitSpace * (@mspace - parent[1])
# Set line color
if parentCommit.space <= commit.space
color = @colors[commit.space]
else
color = @colors[parentCommit.space]
# Build line shape
if parent[1] is commit.space
offset = [0, 5]
arrow = "l-2,5,4,0,-2,-5,0,5"
else if parent[1] < commit.space
offset = [3, 3]
arrow = "l5,0,-2,4,-3,-4,4,2"
else
offset = [-3, 3]
arrow = "l-5,0,2,4,3,-4,-4,2"
# Start point
route = ["M", x + offset[0], y + offset[1]]
# Add arrow if not first parent
if i > 0
route.push(arrow)
# Circumvent if overlap
if commit.space isnt parentCommit.space or commit.space isnt parent[1]
route.push(
"L", parentX2, y + 10,
"L", parentX2, parentY - 5,
)
# End point
route.push("L", parentX1, parentY)
r
.path(route)
.attr(
stroke: color
"stroke-width": 2)
markCommit: (x, y, commit, graphHeight) ->
if commit.id is @options.commit_id
r = @r
r.path(["M", x + 5, y, "L", x + 15, y + 4, "L", x + 15, y - 4, "Z"]).attr(
fill: "#000"
"fill-opacity": .5
stroke: "none"
)
# Displayed in the center
@element.scrollTop(y - graphHeight / 2)
Raphael::commitTooltip = (x, y, commit) ->
boxWidth = 300
boxHeight = 200
icon = @image(commit.author.icon, x, y, 20, 20)
nameText = @text(x + 25, y + 10, commit.author.name)
idText = @text(x, y + 35, commit.id)
messageText = @text(x, y + 50, commit.message)
textSet = @set(icon, nameText, idText, messageText).attr(
"text-anchor": "start"
font: "12px Monaco, monospace"
)
nameText.attr(
font: "14px Arial"
"font-weight": "bold"
)
idText.attr fill: "#AAA"
@textWrap messageText, boxWidth - 50
rect = @rect(x - 10, y - 10, boxWidth, 100, 4).attr(
fill: "#FFF"
stroke: "#000"
"stroke-linecap": "round"
"stroke-width": 2
)
tooltip = @set(rect, textSet)
rect.attr(
height: tooltip.getBBox().height + 10
width: tooltip.getBBox().width + 10
)
tooltip.transform ["t", 20, 20]
tooltip
Raphael::textWrap = (t, width) ->
content = t.attr("text")
abc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
t.attr text: abc
letterWidth = t.getBBox().width / abc.length
t.attr text: content
words = content.split(" ")
x = 0
s = []
for word in words
if x + (word.length * letterWidth) > width
s.push "\n"
x = 0
x += word.length * letterWidth
s.push word + " "
t.attr text: s.join("")
b = t.getBBox()
h = Math.abs(b.y2) - Math.abs(b.y) + 1
t.attr y: b.y + h
@BranchGraph = BranchGraph

View File

@ -0,0 +1,7 @@
class CommitFile
constructor: (file) ->
if $('.image', file).length
new ImageFile(file)
this.CommitFile = CommitFile

View File

@ -0,0 +1,128 @@
class ImageFile
# Width where images must fits in, for 2-up this gets divided by 2
@availWidth = 900
@viewModes = ['two-up', 'swipe']
constructor: (@file) ->
# Determine if old and new file has same dimensions, if not show 'two-up' view
this.requestImageInfo $('.two-up.view .frame.deleted img', @file), (deletedWidth, deletedHeight) =>
this.requestImageInfo $('.two-up.view .frame.added img', @file), (width, height) =>
if width == deletedWidth && height == deletedHeight
this.initViewModes()
else
this.initView('two-up')
initViewModes: ->
viewMode = ImageFile.viewModes[0]
$('.view-modes', @file).removeClass 'hide'
$('.view-modes-menu', @file).on 'click', 'li', (event) =>
unless $(event.currentTarget).hasClass('active')
this.activateViewMode(event.currentTarget.className)
this.activateViewMode(viewMode)
activateViewMode: (viewMode) ->
$('.view-modes-menu li', @file)
.removeClass('active')
.filter(".#{viewMode}").addClass 'active'
$(".view:visible:not(.#{viewMode})", @file).fadeOut 200, =>
$(".view.#{viewMode}", @file).fadeIn(200)
this.initView viewMode
initView: (viewMode) ->
this.views[viewMode].call(this)
prepareFrames = (view) ->
maxWidth = 0
maxHeight = 0
$('.frame', view).each (index, frame) =>
width = $(frame).width()
height = $(frame).height()
maxWidth = if width > maxWidth then width else maxWidth
maxHeight = if height > maxHeight then height else maxHeight
.css
width: maxWidth
height: maxHeight
[maxWidth, maxHeight]
views:
'two-up': ->
$('.two-up.view .wrap', @file).each (index, wrap) =>
$('img', wrap).each ->
currentWidth = $(this).width()
if currentWidth > ImageFile.availWidth / 2
$(this).width ImageFile.availWidth / 2
this.requestImageInfo $('img', wrap), (width, height) ->
$('.image-info .meta-width', wrap).text "#{width}px"
$('.image-info .meta-height', wrap).text "#{height}px"
$('.image-info', wrap).removeClass('hide')
'swipe': ->
maxWidth = 0
maxHeight = 0
$('.swipe.view', @file).each (index, view) =>
[maxWidth, maxHeight] = prepareFrames(view)
$('.swipe-frame', view).css
width: maxWidth + 16
height: maxHeight + 28
$('.swipe-wrap', view).css
width: maxWidth + 1
height: maxHeight + 2
$('.swipe-bar', view).css
left: 0
.draggable
axis: 'x'
containment: 'parent'
drag: (event) ->
$('.swipe-wrap', view).width (maxWidth + 1) - $(this).position().left
stop: (event) ->
$('.swipe-wrap', view).width (maxWidth + 1) - $(this).position().left
'onion-skin': ->
maxWidth = 0
maxHeight = 0
dragTrackWidth = $('.drag-track', @file).width() - $('.dragger', @file).width()
$('.onion-skin.view', @file).each (index, view) =>
[maxWidth, maxHeight] = prepareFrames(view)
$('.onion-skin-frame', view).css
width: maxWidth + 16
height: maxHeight + 28
$('.swipe-wrap', view).css
width: maxWidth + 1
height: maxHeight + 2
$('.dragger', view).css
left: dragTrackWidth
.draggable
axis: 'x'
containment: 'parent'
drag: (event) ->
$('.frame.added', view).css('opacity', $(this).position().left / dragTrackWidth)
stop: (event) ->
$('.frame.added', view).css('opacity', $(this).position().left / dragTrackWidth)
requestImageInfo: (img, callback) ->
domImg = img.get(0)
if domImg.complete
callback.call(this, domImg.naturalWidth, domImg.naturalHeight)
else
img.on 'load', =>
callback.call(this, domImg.naturalWidth, domImg.naturalHeight)
this.ImageFile = ImageFile

View File

@ -1,59 +0,0 @@
var CommitsList = {
ref:null,
limit:0,
offset:0,
disable:false,
init:
function(ref, limit) {
$(".day-commits-table li.commit").live('click', function(e){
if(e.target.nodeName != "A") {
location.href = $(this).attr("url");
e.stopPropagation();
return false;
}
});
this.ref=ref;
this.limit=limit;
this.offset=limit;
this.initLoadMore();
$('.loading').show();
},
getOld:
function() {
$('.loading').show();
$.ajax({
type: "GET",
url: location.href,
data: "limit=" + this.limit + "&offset=" + this.offset + "&ref=" + this.ref,
complete: function(){ $('.loading').hide()},
dataType: "script"});
},
append:
function(count, html) {
$("#commits_list").append(html);
if(count > 0) {
this.offset += count;
} else {
this.disable = true;
}
},
initLoadMore:
function() {
$(document).endlessScroll({
bottomPixels: 400,
fireDelay: 1000,
fireOnce:true,
ceaseFire: function() {
return CommitsList.disable;
},
callback: function(i) {
CommitsList.getOld();
}
});
}
}

View File

@ -0,0 +1,54 @@
class CommitsList
@data =
ref: null
limit: 0
offset: 0
@disable = false
@showProgress: ->
$('.loading').show()
@hideProgress: ->
$('.loading').hide()
@init: (ref, limit) ->
$(".day-commits-table li.commit").live 'click', (event) ->
if event.target.nodeName != "A"
location.href = $(this).attr("url")
e.stopPropagation()
return false
@data.ref = ref
@data.limit = limit
@data.offset = limit
this.initLoadMore()
this.showProgress();
@getOld: ->
this.showProgress()
$.ajax
type: "GET"
url: location.href
data: @data
complete: this.hideProgress
dataType: "script"
@append: (count, html) ->
$("#commits-list").append(html)
if count > 0
@data.offset += count
else
@disable = true
@initLoadMore: ->
$(document).endlessScroll
bottomPixels: 400
fireDelay: 1000
fireOnce: true
ceaseFire: =>
@disable
callback: =>
this.getOld()
this.CommitsList = CommitsList

View File

@ -0,0 +1,39 @@
window.dashboardPage = ->
Pager.init 20, true
initSidebarTab()
$(".event_filter_link").bind "click", (event) ->
event.preventDefault()
toggleFilter $(this)
reloadActivities()
reloadActivities = ->
$(".content_list").html ''
Pager.init 20, true
toggleFilter = (sender) ->
sender.parent().toggleClass "inactive"
event_filters = $.cookie("event_filter")
filter = sender.attr("id").split("_")[0]
if event_filters
event_filters = event_filters.split(",")
else
event_filters = new Array()
index = event_filters.indexOf(filter)
if index is -1
event_filters.push filter
else
event_filters.splice index, 1
$.cookie "event_filter", event_filters.join(",")
initSidebarTab = ->
key = "dashboard_sidebar_filter"
# store selection in cookie
$('.dash-sidebar-tabs a').on 'click', (e) ->
$.cookie(key, $(e.target).attr('id'))
# show tab from cookie
sidebar_filter = $.cookie(key)
$("#" + sidebar_filter).tab('show') if sidebar_filter

View File

@ -0,0 +1,7 @@
Array.prototype.first = function() {
return this[0];
}
Array.prototype.last = function() {
return this[this.length-1];
}

View File

@ -0,0 +1,9 @@
$.fn.showAndHide = ->
$(@).show().
delay(3000).
fadeOut()
$.fn.enableButton = ->
$(@).removeAttr('disabled').
removeClass('disabled')

View File

@ -11,7 +11,7 @@ function initIssuesSearch() {
last_terms = terms;
if (terms.length >= 2 || terms.length == 0) {
$.get(href, { 'f': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
$.get(href, { 'status': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
$('#issues-table').html(response);
});
}

View File

@ -0,0 +1,181 @@
/**
* Timeago is a jQuery plugin that makes it easy to support automatically
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
*
* @name timeago
* @version 1.1.0
* @requires jQuery v1.2.3+
* @author Ryan McGeary
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
*
* For usage and examples, visit:
* http://timeago.yarp.com/
*
* Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
$.timeago = function(timestamp) {
if (timestamp instanceof Date) {
return inWords(timestamp);
} else if (typeof timestamp === "string") {
return inWords($.timeago.parse(timestamp));
} else if (typeof timestamp === "number") {
return inWords(new Date(timestamp));
} else {
return inWords($.timeago.datetime(timestamp));
}
};
var $t = $.timeago;
$.extend($.timeago, {
settings: {
refreshMillis: 60000,
allowFuture: false,
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years",
wordSeparator: " ",
numbers: []
}
},
inWords: function(distanceMillis) {
var $l = this.settings.strings;
var prefix = $l.prefixAgo;
var suffix = $l.suffixAgo;
if (this.settings.allowFuture) {
if (distanceMillis < 0) {
prefix = $l.prefixFromNow;
suffix = $l.suffixFromNow;
}
}
var seconds = Math.abs(distanceMillis) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var years = days / 365;
function substitute(stringOrFunction, number) {
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
var value = ($l.numbers && $l.numbers[number]) || number;
return string.replace(/%d/i, value);
}
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
seconds < 90 && substitute($l.minute, 1) ||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
minutes < 90 && substitute($l.hour, 1) ||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
hours < 42 && substitute($l.day, 1) ||
days < 30 && substitute($l.days, Math.round(days)) ||
days < 45 && substitute($l.month, 1) ||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
years < 1.5 && substitute($l.year, 1) ||
substitute($l.years, Math.round(years));
var separator = $l.wordSeparator || "";
if ($l.wordSeparator === undefined) { separator = " "; }
return $.trim([prefix, words, suffix].join(separator));
},
parse: function(iso8601) {
var s = $.trim(iso8601);
s = s.replace(/\.\d+/,""); // remove milliseconds
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/," UTC");
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
return new Date(s);
},
datetime: function(elem) {
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
return $t.parse(iso8601);
},
isTime: function(elem) {
// jQuery's `is()` doesn't play well with HTML5 in IE
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
}
});
// functions that can be called via $(el).timeago('action')
// init is default when no action is given
// functions are called with context of a single element
var functions = {
init: function(){
var refresh_el = $.proxy(refresh, this);
refresh_el();
var $s = $t.settings;
if ($s.refreshMillis > 0) {
setInterval(refresh_el, $s.refreshMillis);
}
},
update: function(time){
$(this).data('timeago', { datetime: $t.parse(time) });
refresh.apply(this);
}
};
$.fn.timeago = function(action, options) {
var fn = action ? functions[action] : functions.init;
if(!fn){
throw new Error("Unknown function name '"+ action +"' for timeago");
}
// each over objects here and call the requested function
this.each(function(){
fn.call(this, options);
});
return this;
};
function refresh() {
var data = prepareData(this);
if (!isNaN(data.datetime)) {
$(this).text(inWords(data.datetime));
}
return this;
}
function prepareData(element) {
element = $(element);
if (!element.data("timeago")) {
element.data("timeago", { datetime: $t.datetime(element) });
var text = $.trim(element.text());
if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
element.attr("title", text);
}
}
return element.data("timeago");
}
function inWords(date) {
return $t.inWords(distance(date));
}
function distance(date) {
return (new Date().getTime() - date.getTime());
}
// fix for IE6 suckage
document.createElement("abbr");
document.createElement("time");
}));

View File

@ -0,0 +1,211 @@
function md5 (str) {
// http://kevin.vanzonneveld.net
// + original by: Webtoolkit.info (http://www.webtoolkit.info/)
// + namespaced by: Michael White (http://getsprink.com)
// + tweaked by: Jack
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: Brett Zamir (http://brett-zamir.me)
// + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// - depends on: utf8_encode
// * example 1: md5('Kevin van Zonneveld');
// * returns 1: '6e658d4bfcb59cc13f96c14450ac40b9'
var xl;
var rotateLeft = function (lValue, iShiftBits) {
return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
};
var addUnsigned = function (lX, lY) {
var lX4, lY4, lX8, lY8, lResult;
lX8 = (lX & 0x80000000);
lY8 = (lY & 0x80000000);
lX4 = (lX & 0x40000000);
lY4 = (lY & 0x40000000);
lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
if (lX4 & lY4) {
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
}
if (lX4 | lY4) {
if (lResult & 0x40000000) {
return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
} else {
return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
}
} else {
return (lResult ^ lX8 ^ lY8);
}
};
var _F = function (x, y, z) {
return (x & y) | ((~x) & z);
};
var _G = function (x, y, z) {
return (x & z) | (y & (~z));
};
var _H = function (x, y, z) {
return (x ^ y ^ z);
};
var _I = function (x, y, z) {
return (y ^ (x | (~z)));
};
var _FF = function (a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(_F(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var _GG = function (a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(_G(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var _HH = function (a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(_H(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var _II = function (a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(_I(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
var convertToWordArray = function (str) {
var lWordCount;
var lMessageLength = str.length;
var lNumberOfWords_temp1 = lMessageLength + 8;
var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
var lWordArray = new Array(lNumberOfWords - 1);
var lBytePosition = 0;
var lByteCount = 0;
while (lByteCount < lMessageLength) {
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = (lWordArray[lWordCount] | (str.charCodeAt(lByteCount) << lBytePosition));
lByteCount++;
}
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
return lWordArray;
};
var wordToHex = function (lValue) {
var wordToHexValue = "",
wordToHexValue_temp = "",
lByte, lCount;
for (lCount = 0; lCount <= 3; lCount++) {
lByte = (lValue >>> (lCount * 8)) & 255;
wordToHexValue_temp = "0" + lByte.toString(16);
wordToHexValue = wordToHexValue + wordToHexValue_temp.substr(wordToHexValue_temp.length - 2, 2);
}
return wordToHexValue;
};
var x = [],
k, AA, BB, CC, DD, a, b, c, d, S11 = 7,
S12 = 12,
S13 = 17,
S14 = 22,
S21 = 5,
S22 = 9,
S23 = 14,
S24 = 20,
S31 = 4,
S32 = 11,
S33 = 16,
S34 = 23,
S41 = 6,
S42 = 10,
S43 = 15,
S44 = 21;
str = this.utf8_encode(str);
x = convertToWordArray(str);
a = 0x67452301;
b = 0xEFCDAB89;
c = 0x98BADCFE;
d = 0x10325476;
xl = x.length;
for (k = 0; k < xl; k += 16) {
AA = a;
BB = b;
CC = c;
DD = d;
a = _FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
d = _FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
c = _FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
b = _FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
a = _FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
d = _FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
c = _FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
b = _FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
a = _FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
d = _FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
c = _FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
b = _FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
a = _FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
d = _FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
c = _FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
b = _FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
a = _GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
d = _GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
c = _GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
b = _GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
a = _GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
d = _GG(d, a, b, c, x[k + 10], S22, 0x2441453);
c = _GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
b = _GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
a = _GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
d = _GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
c = _GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
b = _GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
a = _GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
d = _GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
c = _GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
b = _GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
a = _HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
d = _HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
c = _HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
b = _HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
a = _HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
d = _HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
c = _HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
b = _HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
a = _HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
d = _HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
c = _HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
b = _HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
a = _HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
d = _HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
c = _HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
b = _HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
a = _II(a, b, c, d, x[k + 0], S41, 0xF4292244);
d = _II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
c = _II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
b = _II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
a = _II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
d = _II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
c = _II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
b = _II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
a = _II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
d = _II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
c = _II(c, d, a, b, x[k + 6], S43, 0xA3014314);
b = _II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
a = _II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
d = _II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
c = _II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
b = _II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
a = addUnsigned(a, AA);
b = addUnsigned(b, BB);
c = addUnsigned(c, CC);
d = addUnsigned(d, DD);
}
var temp = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
return temp.toLowerCase();
}

View File

@ -0,0 +1,70 @@
function utf8_encode (argString) {
// http://kevin.vanzonneveld.net
// + original by: Webtoolkit.info (http://www.webtoolkit.info/)
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: sowberry
// + tweaked by: Jack
// + bugfixed by: Onno Marsman
// + improved by: Yves Sucaet
// + bugfixed by: Onno Marsman
// + bugfixed by: Ulrich
// + bugfixed by: Rafal Kukawski
// + improved by: kirilloid
// + bugfixed by: kirilloid
// * example 1: utf8_encode('Kevin van Zonneveld');
// * returns 1: 'Kevin van Zonneveld'
if (argString === null || typeof argString === "undefined") {
return "";
}
var string = (argString + ''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
var utftext = '',
start, end, stringl = 0;
start = end = 0;
stringl = string.length;
for (var n = 0; n < stringl; n++) {
var c1 = string.charCodeAt(n);
var enc = null;
if (c1 < 128) {
end++;
} else if (c1 > 127 && c1 < 2048) {
enc = String.fromCharCode(
(c1 >> 6) | 192,
( c1 & 63) | 128
);
} else if (c1 & 0xF800 != 0xD800) {
enc = String.fromCharCode(
(c1 >> 12) | 224,
((c1 >> 6) & 63) | 128,
( c1 & 63) | 128
);
} else { // surrogate pairs
if (c1 & 0xFC00 != 0xD800) { throw new RangeError("Unmatched trail surrogate at " + n); }
var c2 = string.charCodeAt(++n);
if (c2 & 0xFC00 != 0xDC00) { throw new RangeError("Unmatched lead surrogate at " + (n-1)); }
c1 = ((c1 & 0x3FF) << 10) + (c2 & 0x3FF) + 0x10000;
enc = String.fromCharCode(
(c1 >> 18) | 240,
((c1 >> 12) & 63) | 128,
((c1 >> 6) & 63) | 128,
( c1 & 63) | 128
);
}
if (enc !== null) {
if (end > start) {
utftext += string.slice(start, end);
}
utftext += enc;
start = end = n + 1;
}
}
if (end > start) {
utftext += string.slice(start, stringl);
}
return utftext;
}

View File

@ -7,6 +7,8 @@ window.slugify = (text) ->
window.ajaxGet = (url) ->
$.ajax({type: "GET", url: url, dataType: "script"})
window.showAndHide = (selector) ->
window.errorMessage = (message) ->
ehtml = $("<p>")
ehtml.addClass("error_message")
@ -32,10 +34,22 @@ window.disableButtonIfEmptyField = (field_selector, button_selector) ->
else
closest_submit.enable()
window.sanitize = (str) ->
return str.replace(/<(?:.|\n)*?>/gm, '')
window.linkify = (str) ->
exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig
return str.replace(exp,"<a href='$1'>$1</a>")
$ ->
# Click a .one_click_select field, select the contents
$(".one_click_select").on 'click', -> $(@).select()
# Click a .appear-link, appear-data fadeout
$(".appear-link").on 'click', ->
$('.appear-data').fadeIn()
# Initialize chosen selects
$('select.chosen').chosen()
@ -45,11 +59,17 @@ $ ->
# Bottom tooltip
$('.has_bottom_tooltip').tooltip(placement: 'bottom')
# Form submitter
$('.trigger-submit').on 'change', ->
$(@).parents('form').submit()
$("abbr.timeago").timeago()
# Flash
if (flash = $("#flash-container")).length > 0
flash.click -> $(@).slideUp("slow")
flash.slideDown "slow"
setTimeout (-> flash.slideUp("slow")), 3000
if (flash = $(".flash-container")).length > 0
flash.click -> $(@).fadeOut()
flash.show()
setTimeout (-> flash.fadeOut()), 3000
# Disable form buttons while a form is submitting
$('body').on 'ajax:complete, ajax:beforeSend, submit', 'form', (e) ->

View File

@ -1,132 +0,0 @@
var MergeRequest = {
diffs_loaded: false,
commits_loaded: false,
opts: false,
init:
function(opts) {
var self = this;
self.opts = opts;
self.initTabs();
self.initMergeWidget();
$(".mr_show_all_commits").bind("click", function() {
self.showAllCommits();
});
},
initMergeWidget:
function() {
var self = this;
self.showState(self.opts.current_state);
if($(".automerge_widget").length && self.opts.check_enable){
$.get(self.opts.url_to_automerge_check, function(data){
self.showState(data.state);
}, "json");
}
if(self.opts.ci_enable){
$.get(self.opts.url_to_ci_check, function(data){
self.showCiState(data.status);
}, "json");
}
},
initTabs:
function() {
$(".mr_nav_tabs a").live("click", function() {
$(".mr_nav_tabs a").parent().removeClass("active");
$(this).parent().addClass("active");
});
var current_tab;
if(this.opts.action == "diffs") {
current_tab = $(".mr_nav_tabs .merge-diffs-tab");
} else {
current_tab = $(".mr_nav_tabs .merge-notes-tab");
}
current_tab.parent().addClass("active");
this.initNotesTab();
this.initDiffTab();
},
initNotesTab:
function() {
$(".mr_nav_tabs a.merge-notes-tab").live("click", function(e) {
$(".merge-request-diffs").hide();
$(".merge_request_notes").show();
var mr_path = $(".merge-notes-tab").attr("data-url");
history.pushState({ path: mr_path }, '', mr_path);
e.preventDefault();
});
},
initDiffTab:
function() {
$(".mr_nav_tabs a.merge-diffs-tab").live("click", function(e) {
if(!MergeRequest.diffs_loaded) {
MergeRequest.loadDiff();
}
$(".merge_request_notes").hide();
$(".merge-request-diffs").show();
var mr_diff_path = $(".merge-diffs-tab").attr("data-url");
history.pushState({ path: mr_diff_path }, '', mr_diff_path);
e.preventDefault();
});
},
showState:
function(state){
$(".automerge_widget").hide();
$(".automerge_widget." + state).show();
},
showCiState:
function(state){
$(".ci_widget").hide();
$(".ci_widget.ci-" + state).show();
},
loadDiff:
function() {
$(".dashboard-loader").show();
$.ajax({
type: "GET",
url: $(".merge-diffs-tab").attr("data-url"),
beforeSend: function(){ $('.status').addClass("loading")},
complete: function(){
MergeRequest.diffs_loaded = true;
$(".merge_request_notes").hide();
$('.status').removeClass("loading");
},
dataType: "script"});
},
showAllCommits:
function() {
$(".first_mr_commits").remove();
$(".all_mr_commits").removeClass("hide");
},
already_cannot_be_merged:
function(){
$(".automerge_widget").hide();
$(".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 File

@ -0,0 +1,101 @@
#
# * Filter merge requests
#
@merge_requestsPage = ->
$('#assignee_id').chosen()
$('#milestone_id').chosen()
$('#milestone_id, #assignee_id').on 'change', ->
$(this).closest('form').submit()
class MergeRequest
constructor: (@opts) ->
this.$el = $('.merge-request')
@diffs_loaded = false
@commits_loaded = false
this.activateTab(@opts.action)
this.bindEvents()
this.initMergeWidget()
this.$('.show-all-commits').on 'click', =>
this.showAllCommits()
# Local jQuery finder
$: (selector) ->
this.$el.find(selector)
initMergeWidget: ->
this.showState( @opts.current_status )
if this.$('.automerge_widget').length and @opts.check_enable
$.get @opts.url_to_automerge_check, (data) =>
this.showState( data.merge_status )
, 'json'
if @opts.ci_enable
$.get @opts.url_to_ci_check, (data) =>
this.showCiState data.status
, 'json'
bindEvents: ->
this.$('.nav-tabs').on 'click', 'a', (event) =>
a = $(event.currentTarget)
href = a.attr('href')
History.replaceState {path: href}, document.title, href
event.preventDefault()
this.$('.nav-tabs').on 'click', 'li', (event) =>
this.activateTab($(event.currentTarget).data('action'))
this.$('.accept_merge_request').on 'click', ->
$('.automerge_widget.can_be_merged').hide()
$('.merge-in-progress').show()
activateTab: (action) ->
this.$('.nav-tabs li').removeClass 'active'
this.$('.tab-content').hide()
switch action
when 'diffs'
this.$('.nav-tabs .diffs-tab').addClass 'active'
this.loadDiff() unless @diffs_loaded
this.$('.diffs').show()
else
this.$('.nav-tabs .notes-tab').addClass 'active'
this.$('.notes').show()
showState: (state) ->
$('.automerge_widget').hide()
$('.automerge_widget.' + state).show()
showCiState: (state) ->
$('.ci_widget').hide()
$('.ci_widget.ci-' + state).show()
loadDiff: (event) ->
$('.dashboard-loader').show()
$.ajax
type: 'GET'
url: this.$('.nav-tabs .diffs-tab a').attr('href')
beforeSend: =>
this.$('.status').addClass 'loading'
complete: =>
@diffs_loaded = true
this.$('.status').removeClass 'loading'
dataType: 'script'
showAllCommits: ->
this.$('.first-commits').remove()
this.$('.all-commits').removeClass 'hide'
alreadyOrCannotBeMerged: ->
this.$('.automerge_widget').hide()
this.$('.merge-in-progress').hide()
this.$('.automerge_widget.already_cannot_be_merged').show()
this.MergeRequest = MergeRequest

View File

@ -1,14 +1,14 @@
$ ->
$('.milestone-issue-filter tr[data-closed]').addClass('hide')
$('.milestone-issue-filter li[data-closed]').addClass('hide')
$('.milestone-issue-filter ul.nav li a').click ->
$('.milestone-issue-filter li').toggleClass('active')
$('.milestone-issue-filter tr[data-closed]').toggleClass('hide')
$('.milestone-issue-filter li[data-closed]').toggleClass('hide')
false
$('.milestone-merge-requests-filter tr[data-closed]').addClass('hide')
$('.milestone-merge-requests-filter li[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')
$('.milestone-merge-requests-filter li[data-closed]').toggleClass('hide')
false

View File

@ -4,77 +4,304 @@ var NoteList = {
target_params: null,
target_id: 0,
target_type: null,
top_id: 0,
bottom_id: 0,
loading_more_disabled: false,
reversed: false,
init:
function(tid, tt, path) {
this.notes_path = path + ".js";
this.target_id = tid;
this.target_type = tt;
this.reversed = $("#notes-list").is(".reversed");
this.target_params = "target_type=" + this.target_type + "&target_id=" + this.target_id;
init: function(tid, tt, path) {
NoteList.notes_path = path + ".js";
NoteList.target_id = tid;
NoteList.target_type = tt;
NoteList.target_params = "target_type=" + NoteList.target_type + "&target_id=" + NoteList.target_id;
// get initial set of notes
this.getContent();
NoteList.setupMainTargetNoteForm();
$("#notes-list, #new-notes-list").on("ajax:success", ".delete-note", function() {
$(this).closest('li').fadeOut(function() {
$(this).remove();
NoteList.updateVotes();
// get initial set of notes
NoteList.getContent();
// add a new diff note
$(document).on("click",
".js-add-diff-note-button",
NoteList.addDiffNote);
// reply to diff/discussion notes
$(document).on("click",
".js-discussion-reply-button",
NoteList.replyToDiscussionNote);
// setup note preview
$(document).on("click",
".js-note-preview-button",
NoteList.previewNote);
// update the file name when an attachment is selected
$(document).on("change",
".js-note-attachment-input",
NoteList.updateFormAttachment);
// hide diff note form
$(document).on("click",
".js-close-discussion-note-form",
NoteList.removeDiscussionNoteForm);
// remove a note (in general)
$(document).on("click",
".js-note-delete",
NoteList.removeNote);
// reset main target form after submit
$(document).on("ajax:complete",
".js-main-target-form",
NoteList.resetMainTargetForm);
$(document).on("click",
".js-choose-note-attachment-button",
NoteList.chooseNoteAttachment);
$(document).on("click",
".js-show-outdated-discussion",
function(e) { $(this).next('.outdated-discussion').show(); e.preventDefault() });
},
/**
* When clicking on buttons
*/
/**
* Called when clicking on the "add a comment" button on the side of a diff line.
*
* Inserts a temporary row for the form below the line.
* Sets up the form and shows it.
*/
addDiffNote: function(e) {
e.preventDefault();
// find the form
var form = $(".js-new-note-form");
var row = $(this).closest("tr");
var nextRow = row.next();
// does it already have notes?
if (nextRow.is(".notes_holder")) {
$.proxy(NoteList.replyToDiscussionNote,
nextRow.find(".js-discussion-reply-button")
).call();
} else {
// add a notes row and insert the form
row.after('<tr class="notes_holder js-temp-notes-holder"><td class="notes_line" colspan="2"></td><td class="notes_content"></td></tr>');
form.clone().appendTo(row.next().find(".notes_content"));
// show the form
NoteList.setupDiscussionNoteForm($(this), row.next().find("form"));
}
},
/**
* Called when clicking the "Choose File" button.
*
* Opesn the file selection dialog.
*/
chooseNoteAttachment: function() {
var form = $(this).closest("form");
form.find(".js-note-attachment-input").click();
},
/**
* Shows the note preview.
*
* Lets the server render GFM into Html and displays it.
*
* Note: uses the Toggler behavior to toggle preview/edit views/buttons
*/
previewNote: function(e) {
e.preventDefault();
var form = $(this).closest("form");
var preview = form.find('.js-note-preview');
var noteText = form.find('.js-note-text').val();
if(noteText.trim().length === 0) {
preview.text('Nothing to preview.');
} else {
preview.text('Loading...');
$.post($(this).data('url'), {note: noteText})
.success(function(previewData) {
preview.html(previewData);
});
});
}
},
$(".note-form-holder").on("ajax:before", function(){
$(".submit_note").disable();
})
/**
* Called in response to "cancel" on a diff note form.
*
* Shows the reply button again.
* Removes the form and if necessary it's temporary row.
*/
removeDiscussionNoteForm: function() {
var form = $(this).closest("form");
var row = form.closest("tr");
$(".note-form-holder").on("ajax:complete", function(){
$(".submit_note").enable();
$('#preview-note').hide();
$('#note_note').show();
})
// show the reply button (will only work for replys)
form.prev(".js-discussion-reply-button").show();
disableButtonIfEmptyField(".note-text", ".submit_note");
if (row.is(".js-temp-notes-holder")) {
// remove temporary row for diff lines
row.remove();
} else {
// only remove the form
form.remove();
}
},
$("#note_attachment").change(function(e){
var val = $('.input-file').val();
var filename = val.replace(/^.*[\\\/]/, '');
$(".file_name").text(filename);
});
/**
* Called in response to deleting a note of any kind.
*
* Removes the actual note from view.
* Removes the whole discussion if the last note is being removed.
*/
removeNote: function() {
var note = $(this).closest(".note");
var notes = note.closest(".notes");
if(this.reversed) {
var textarea = $(".note-text");
$('.note_advanced_opts').hide();
textarea.css("height", "40px");
textarea.on("focus", function(){
$(this).css("height", "80px");
$('.note_advanced_opts').show();
});
// check if this is the last note for this line
if (notes.find(".note").length === 1) {
// for discussions
notes.closest(".discussion").remove();
// for diff lines
notes.closest("tr").remove();
}
note.remove();
NoteList.updateVotes();
},
/**
* Called when clicking on the "reply" button for a diff line.
*
* Shows the note form below the notes.
*/
replyToDiscussionNote: function() {
// find the form
var form = $(".js-new-note-form");
// hide reply button
$(this).hide();
// insert the form after the button
form.clone().insertAfter($(this));
// show the form
NoteList.setupDiscussionNoteForm($(this), $(this).next("form"));
},
/**
* Helper for inserting and setting up note forms.
*/
/**
* Called in response to creating a note failing validation.
*
* Adds the rendered errors to the respective form.
* If "discussionId" is null or undefined, the main target form is assumed.
*/
errorsOnForm: function(errorsHtml, discussionId) {
// find the form
if (discussionId) {
var form = $("form[rel='"+discussionId+"']");
} else {
var form = $(".js-main-target-form");
}
form.find(".js-errors").remove();
form.prepend(errorsHtml);
form.find(".js-note-text").focus();
},
/**
* Shows the diff/discussion form and does some setup on it.
*
* Sets some hidden fields in the form.
*
* Note: dataHolder must have the "discussionId", "lineCode", "noteableType"
* and "noteableId" data attributes set.
*/
setupDiscussionNoteForm: function(dataHolder, form) {
// setup note target
form.attr("rel", dataHolder.data("discussionId"));
form.find("#note_commit_id").val(dataHolder.data("commitId"));
form.find("#note_line_code").val(dataHolder.data("lineCode"));
form.find("#note_noteable_type").val(dataHolder.data("noteableType"));
form.find("#note_noteable_id").val(dataHolder.data("noteableId"));
NoteList.setupNoteForm(form);
form.find(".js-note-text").focus();
},
/**
* Shows the main form and does some setup on it.
*
* Sets some hidden fields in the form.
*/
setupMainTargetNoteForm: function() {
// find the form
var form = $(".js-new-note-form");
// insert the form after the button
form.clone().replaceAll($(".js-main-target-form"));
form = form.prev("form");
// show the form
NoteList.setupNoteForm(form);
// fix classes
form.removeClass("js-new-note-form");
form.addClass("js-main-target-form");
// remove unnecessary fields and buttons
form.find("#note_line_code").remove();
form.find(".js-close-discussion-note-form").remove();
},
/**
* General note form setup.
*
* * deactivates the submit button when text is empty
* * hides the preview button when text is empty
* * setup GFM auto complete
* * show the form
*/
setupNoteForm: function(form) {
disableButtonIfEmptyField(form.find(".js-note-text"), form.find(".js-comment-button"));
form.removeClass("js-new-note-form");
// setup preview buttons
form.find(".js-note-edit-button, .js-note-preview-button")
.tooltip({ placement: 'left' });
previewButton = form.find(".js-note-preview-button");
form.find(".js-note-text").on("input", function() {
if ($(this).val().trim() !== "") {
previewButton.removeClass("turn-off").addClass("turn-on");
} else {
previewButton.removeClass("turn-on").addClass("turn-off");
}
});
// Setup note preview
$(document).on('click', '#preview-link', function(e) {
$('#preview-note').text('Loading...');
// remove notify commit author checkbox for non-commit notes
if (form.find("#note_noteable_type").val() !== "Commit") {
form.find(".js-notify-commit-author").remove();
}
$(this).text($(this).text() === "Edit" ? "Preview" : "Edit");
GitLab.GfmAutoComplete.setup();
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();
});
},
form.show();
},
/**
@ -84,162 +311,93 @@ var NoteList = {
/**
* Gets an inital set of notes.
* Gets an initial set of notes.
*/
getContent:
function() {
$.ajax({
type: "GET",
url: this.notes_path,
data: this.target_params,
complete: function(){ $('.notes-status').removeClass("loading")},
beforeSend: function() { $('.notes-status').addClass("loading") },
dataType: "script"});
},
getContent: function() {
$.ajax({
url: NoteList.notes_path,
data: NoteList.target_params,
complete: function(){ $('.js-notes-busy').removeClass("loading")},
beforeSend: function() { $('.js-notes-busy').addClass("loading") },
dataType: "script"
});
},
/**
* Called in response to getContent().
* Replaces the content of #notes-list with the given html.
*/
setContent:
function(first_id, last_id, html) {
this.top_id = first_id;
this.bottom_id = last_id;
$("#notes-list").html(html);
// init infinite scrolling
this.initLoadMore();
// init getting new notes
if (this.reversed) {
this.initRefreshNew();
}
},
setContent: function(newNoteIds, html) {
$("#notes-list").html(html);
},
/**
* Handle loading more notes when scrolling to the bottom of the page.
* The id of the last note in the list is in this.bottom_id.
* Adds a single common note to #notes-list.
*/
appendNewNote: function(id, html) {
$("#notes-list").append(html);
NoteList.updateVotes();
},
/**
* Adds a single discussion note to #notes-list.
*
* Set up refreshing only new notes after all notes have been loaded.
* Also removes the corresponding form.
*/
appendNewDiscussionNote: function(discussionId, diffRowHtml, noteHtml) {
var form = $("form[rel='"+discussionId+"']");
var row = form.closest("tr");
// is this the first note of discussion?
if (row.is(".js-temp-notes-holder")) {
// insert the note and the reply button after the temp row
row.after(diffRowHtml);
// remove the note (will be added again below)
row.next().find(".note").remove();
}
// append new note to all matching discussions
$(".notes[rel='"+discussionId+"']").append(noteHtml);
// cleanup after successfully creating a diff/discussion note
$.proxy(NoteList.removeDiscussionNoteForm, form).call();
},
/**
* Initializes loading more notes when scrolling to the bottom of the page.
*/
initLoadMore:
function() {
$(document).endlessScroll({
bottomPixels: 400,
fireDelay: 1000,
fireOnce:true,
ceaseFire: function() {
return NoteList.loading_more_disabled;
},
callback: function(i) {
NoteList.getMore();
}
});
},
/**
* Gets an additional set of notes.
*/
getMore:
function() {
// only load more notes if there are no "new" notes
$('.loading').show();
$.ajax({
type: "GET",
url: this.notes_path,
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"});
},
/**
* Called in response to getMore().
* Append notes to #notes-list.
*/
appendMoreNotes:
function(id, html) {
if(id != this.bottom_id) {
this.bottom_id = id;
$("#notes-list").append(html);
}
},
/**
* Called in response to getMore().
* Disables loading more notes when scrolling to the bottom of the page.
* Initalizes refreshing new notes.
*/
finishedLoadingMore:
function() {
this.loading_more_disabled = true;
// from now on only get new notes
if (!this.reversed) {
this.initRefreshNew();
}
// make sure we are up to date
this.updateVotes();
},
/**
* Handle refreshing and adding of new notes.
* Called in response the main target form has been successfully submitted.
*
* New notes are all notes that are created after the site has been loaded.
* The "old" notes are in #notes-list the "new" ones will be in #new-notes-list.
* The id of the last "old" note is in this.bottom_id.
* Removes any errors.
* Resets text and preview.
* Resets buttons.
*/
resetMainTargetForm: function(){
var form = $(this);
// remove validation errors
form.find(".js-errors").remove();
// reset text and preview
var previewContainer = form.find(".js-toggler-container.note_text_and_preview");
if (previewContainer.is(".on")) {
previewContainer.removeClass("on");
}
form.find(".js-note-text").val("").trigger("input");
},
/**
* Initializes getting new notes every n seconds.
* Called after an attachment file has been selected.
*
* Updates the file name for the selected attachment.
*/
initRefreshNew:
function() {
setInterval("NoteList.getNew()", 10000);
},
updateFormAttachment: function() {
var form = $(this).closest("form");
/**
* Gets the new set of notes.
*/
getNew:
function() {
$.ajax({
type: "GET",
url: this.notes_path,
data: this.target_params + "&loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id),
dataType: "script"});
},
// get only the basename
var filename = $(this).val().replace(/^.*[\\\/]/, '');
/**
* Called in response to getNew().
* Replaces the content of #new-notes-list with the given html.
*/
replaceNewNotes:
function(html) {
$("#new-notes-list").html(html);
this.updateVotes();
},
/**
* Adds a single note to #new-notes-list.
*/
appendNewNote:
function(id, html) {
if (this.reversed) {
$("#new-notes-list").prepend(html);
} else {
$("#new-notes-list").append(html);
}
this.updateVotes();
},
form.find(".js-attachment-filename").text(filename);
},
/**
* Recalculates the votes and updates them (if they are displayed at all).
@ -249,67 +407,24 @@ var NoteList = {
* Might produce inaccurate results when not all notes have been loaded and a
* recalculation is triggered (e.g. when deleting a note).
*/
updateVotes:
function() {
var votes = $("#votes .votes");
var notes = $("#notes-list, #new-notes-list").find(".note .vote");
updateVotes: function() {
var votes = $("#votes .votes");
var notes = $("#notes-list .note .vote");
// only update if there is a vote display
if (votes.size()) {
var upvotes = notes.filter(".upvote").size();
var downvotes = notes.filter(".downvote").size();
var votesCount = upvotes + downvotes;
var upvotesPercent = votesCount ? (100.0 / votesCount * upvotes) : 0;
var downvotesPercent = votesCount ? (100.0 - upvotesPercent) : 0;
// only update if there is a vote display
if (votes.size()) {
var upvotes = notes.filter(".upvote").size();
var downvotes = notes.filter(".downvote").size();
var votesCount = upvotes + downvotes;
var upvotesPercent = votesCount ? (100.0 / votesCount * upvotes) : 0;
var downvotesPercent = votesCount ? (100.0 - upvotesPercent) : 0;
// change vote bar lengths
votes.find(".bar-success").css("width", upvotesPercent+"%");
votes.find(".bar-danger").css("width", downvotesPercent+"%");
// replace vote numbers
votes.find(".upvotes").text(votes.find(".upvotes").text().replace(/\d+/, upvotes));
votes.find(".downvotes").text(votes.find(".downvotes").text().replace(/\d+/, downvotes));
}
// change vote bar lengths
votes.find(".bar-success").css("width", upvotesPercent+"%");
votes.find(".bar-danger").css("width", downvotesPercent+"%");
// replace vote numbers
votes.find(".upvotes").text(votes.find(".upvotes").text().replace(/\d+/, upvotes));
votes.find(".downvotes").text(votes.find(".downvotes").text().replace(/\d+/, downvotes));
}
}
};
var PerLineNotes = {
init:
function() {
/**
* Called when clicking on the "add note" or "reply" button for a diff line.
*
* Shows the note form below the line.
* Sets some hidden fields in the form.
*/
$(".diff_file_content").on("click", ".line_note_link, .line_note_reply_link", function(e) {
var form = $(".per_line_form");
$(this).closest("tr").after(form);
form.find("#note_line_code").val($(this).data("lineCode"));
form.show();
e.preventDefault();
});
disableButtonIfEmptyField(".line-note-text", ".submit_inline_note");
/**
* Called in response to successfully deleting a note on a diff line.
*
* Removes the actual note from view.
* Removes the reply button if the last note for that line has been removed.
*/
$(".diff_file_content").on("ajax:success", ".delete-note", function() {
var trNote = $(this).closest("tr");
trNote.fadeOut(function() {
$(this).remove();
});
// check if this is the last note for this line
// elements must really be removed for this to work reliably
var trLine = trNote.prev();
var trRpl = trNote.next();
if (trLine.is(".line_holder") && trRpl.is(".reply")) {
trRpl.fadeOut(function() { $(this).remove(); });
}
});
}
}

View File

@ -1,49 +0,0 @@
var Pager = {
limit:0,
offset:0,
disable:false,
init:
function(limit) {
this.limit=limit;
this.offset=limit;
this.initLoadMore();
},
getOld:
function() {
$('.loading').show();
$.ajax({
type: "GET",
url: location.href,
data: "limit=" + this.limit + "&offset=" + this.offset,
complete: function(){ $('.loading').hide()},
dataType: "script"});
},
append:
function(count, html) {
$(".content_list").append(html);
if(count > 0) {
this.offset += count;
} else {
this.disable = true;
}
},
initLoadMore:
function() {
$(document).endlessScroll({
bottomPixels: 400,
fireDelay: 1000,
fireOnce:true,
ceaseFire: function() {
return Pager.disable;
},
callback: function(i) {
$('.loading').show();
Pager.getOld();
}
});
}
}

View File

@ -0,0 +1,42 @@
@Pager =
limit: 0
offset: 0
disable: false
init: (limit, preload) ->
@limit = limit
if preload
@offset = 0
@getOld()
else
@offset = limit
@initLoadMore()
getOld: ->
$(".loading").show()
$.ajax
type: "GET"
url: location.href
data: "limit=" + @limit + "&offset=" + @offset
complete: ->
$(".loading").hide()
dataType: "script"
append: (count, html) ->
$(".content_list").append html
if count > 0
@offset += count
else
@disable = true
initLoadMore: ->
$(document).endlessScroll
bottomPixels: 400
fireDelay: 1000
fireOnce: true
ceaseFire: ->
Pager.disable
callback: (i) ->
$(".loading").show()
Pager.getOld()

View File

@ -15,6 +15,8 @@ $ ->
$(this).find('.update-failed').hide()
$('.update-username form').on 'ajax:complete', ->
$(this).find('.save-btn').removeAttr('disabled')
$(this).find('.save-btn').removeClass('disabled')
$(this).find('.btn-save').enableButton()
$(this).find('.loading-gif').hide()
$('.update-notifications').on 'ajax:complete', ->
$(this).find('.btn-save').enableButton()

View File

@ -18,3 +18,18 @@ $ ->
# Ref switcher
$('.project-refs-select').on 'change', ->
$(@).parents('form').submit()
$('#project_issues_enabled').change ->
if ($(this).is(':checked') == true)
$('#project_issues_tracker').removeAttr('disabled')
else
$('#project_issues_tracker').attr('disabled', 'disabled')
$('#project_issues_tracker').change()
$('#project_issues_tracker').change ->
if ($(this).val() == gon.default_issues_tracker || $(this).is(':disabled'))
$('#project_issues_tracker_id').attr('disabled', 'disabled')
else
$('#project_issues_tracker_id').removeAttr('disabled')

View File

@ -6,17 +6,12 @@ $ ->
$('span.log_loading:first').removeClass('hide')
$('#tree-slider .tree-item-file-name a, .breadcrumb li > a').live "click", ->
$("#tree-content-holder").hide("slide", { direction: "left" }, 150)
$("#tree-content-holder").hide("slide", { direction: "left" }, 400)
# Make the entire tree-item row clickable, but not if clicking another link (like a commit message)
$("#tree-slider .tree-item").live 'click', (e) ->
$('.tree-item-file-name a', this).trigger('click') if (e.target.nodeName != "A")
# Show/Hide the loading spinner
$('#tree-slider .tree-item-file-name a, .breadcrumb a, .project-refs-form').live
"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
@ -33,7 +28,12 @@ $ ->
History.Adapter.bind window, 'statechange', ->
state = History.getState()
window.ajaxGet(state.url)
$.ajax({
url: state.url,
dataType: 'script',
beforeSend: -> $('.tree_progress').addClass("loading"),
complete: -> $('.tree_progress').removeClass("loading")
})
)(window)
# See if there are lines selected

View File

@ -0,0 +1,36 @@
$ ->
userFormatResult = (user) ->
avatar = gon.gravatar_url
avatar = avatar.replace('%{hash}', md5(user.email))
avatar = avatar.replace('%{size}', '24')
markup = "<div class='user-result'>"
markup += "<div class='user-image'><img class='avatar s24' src='" + avatar + "'></div>"
markup += "<div class='user-name'>" + user.name + "</div>"
markup += "<div class='user-username'>" + user.username + "</div>"
markup += "</div>"
markup
userFormatSelection = (user) ->
user.name
$('.ajax-users-select').select2
placeholder: "Search for a user"
multiple: $('.ajax-users-select').hasClass('multiselect')
minimumInputLength: 0
query: (query) ->
Api.users query.term, (users) ->
data = { results: users }
query.callback(data)
initSelection: (element, callback) ->
id = $(element).val()
if id isnt ""
Api.user(id, callback)
formatResult: userFormatResult
formatSelection: userFormatSelection
dropdownCssClass: "ajax-users-dropdown"
escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results
m

View File

@ -0,0 +1,83 @@
@Wall =
note_ids: []
project_id: null
init: (project_id) ->
Wall.project_id = project_id
Wall.getContent()
Wall.initRefresh()
Wall.initForm()
#
# Gets an initial set of notes.
#
getContent: ->
Api.notes Wall.project_id, (notes) ->
$.each notes, (i, note) ->
# render note if it not present in loaded list
# or skip if rendered
if $.inArray(note.id, Wall.note_ids) == -1
Wall.note_ids.push(note.id)
Wall.renderNote(note)
Wall.scrollDown()
$("abbr.timeago").timeago()
initRefresh: ->
setInterval("Wall.refresh()", 10000)
refresh: ->
Wall.getContent()
scrollDown: ->
notes = $('ul.notes')
$('body, html').scrollTop(notes.height())
initForm: ->
form = $('.wall-note-form')
form.find("#target_type").val('wall')
form.on 'ajax:success', ->
Wall.refresh()
form.find(".js-note-text").val("").trigger("input")
form.on 'ajax:complete', ->
form.find(".js-comment-button").removeAttr('disabled')
form.find(".js-comment-button").removeClass('disabled')
form.on "click", ".js-choose-note-attachment-button", ->
form.find(".js-note-attachment-input").click()
form.on "change", ".js-note-attachment-input", ->
filename = $(this).val().replace(/^.*[\\\/]/, '')
form.find(".js-attachment-filename").text(filename)
form.find('.note_text').keydown (e) ->
if e.ctrlKey && e.keyCode == 13
form.find('.js-comment-button').submit()
form.show()
renderNote: (note) ->
template = Wall.noteTemplate()
template = template.replace('{{author_name}}', note.author.name)
template = template.replace('{{created_at}}', note.created_at)
template = template.replace('{{text}}', linkify(sanitize(note.body)))
if note.attachment
file = '<i class="icon-paper-clip"/><a href="/files/note/' + note.id + '/' + note.attachment + '">' + note.attachment + '</a>'
else
file = ''
template = template.replace('{{file}}', file)
$('ul.notes').append(template)
noteTemplate: ->
return '<li>
<strong class="wall-author">{{author_name}}</strong>
<span class="wall-text">
{{text}}
<span class="wall-file">{{file}}</span>
</span>
<abbr class="timeago" title="{{created_at}}">{{created_at}}</abbr>
</li>'

View File

@ -5,6 +5,7 @@
*= require jquery.ui.gitlab
*= require jquery.atwho
*= require chosen
*= require select2
*= require_self
*/
@ -14,7 +15,7 @@
@import "gitlab_bootstrap.scss";
@import "common.scss";
@import "ref_select.scss";
@import "selects.scss";
@import "sections/header.scss";
@import "sections/nav.scss";
@ -32,9 +33,13 @@
@import "sections/profile.scss";
@import "sections/login.scss";
@import "sections/editor.scss";
@import "sections/admin.scss";
@import "sections/wiki.scss";
@import "sections/wall.scss";
@import "highlight/white.scss";
@import "highlight/dark.scss";
@import "highlight/solarized_dark.scss";
/**
* UI themes:
@ -45,3 +50,8 @@
@import "themes/ui_gray.scss";
@import "themes/ui_color.scss";
/**
* Styles for JS behaviors.
*/
@import "behaviors.scss";

View File

@ -0,0 +1,14 @@
// Details
//--------
.js-details-container .content { display: none; }
.js-details-container .content.hide { display: block; }
.js-details-container.open .content { display: block; }
.js-details-container.open .content.hide { display: none; }
// Toggler
//--------
.js-toggler-container .turn-on { display: inherit; }
.js-toggler-container .turn-off { display: none; }
.js-toggler-container.on .turn-on { display: none; }
.js-toggler-container.on .turn-off { display: inherit; }

View File

@ -1,3 +1,7 @@
html {
overflow-y: scroll;
}
/** LAYOUT **/
body {
@ -63,27 +67,17 @@ table a code {
}
/** FLASH message **/
#flash-container {
height: 50px;
position: fixed;
z-index: 10001;
top: 0px;
width: 100%;
margin-bottom: 15px;
overflow: hidden;
background: white;
cursor: pointer;
border-bottom: 1px solid #ccc;
text-align: center;
.flash-container {
display: none;
.alert {
cursor: pointer;
margin: 0;
text-align: center;
border-radius: 0;
h4 {
color: #666;
font-size: 18px;
line-height: 38px;
padding-top: 5px;
margin: 2px;
font-weight: normal;
span {
font-size: 14px;
}
}
}
@ -117,34 +111,10 @@ span.update-author {
}
.label {
background-color: #474D57;
&.label-tag {
background: none;
border: none;
padding: 4px 6px;
color: #444;
text-shadow: 0 0 1px #fff;
&.grouped {
float: left;
margin-right: 6px;
padding: 6px;
}
}
&.label-issue {
background-color: #eee;
border: 1px solid #ccc;
padding: 4px 6px;
color: #444;
text-shadow: 0 0 1px #fff;
&.grouped {
float: left;
margin-right: 6px;
padding: 6px;
}
}
padding: 0px 4px;
font-size: 10px;
font-style: normal;
background-color: $link_color;
&.label-success {
background-color: #8D8;
@ -203,17 +173,6 @@ ul.breadcrumb {
font-weight: bold;
font-size: 14px;
}
.arrow {
background: url("images.png") no-repeat -85px -77px;
width: 19px;
height: 16px;
float: left;
position: relative;
left: -10px;
padding: 0;
margin: 0;
}
}
input[type=text] {
@ -223,10 +182,6 @@ input[type=text] {
}
}
input.git_clone_url {
width: 325px;
}
.merge-request-form-holder {
select {
width: 300px;
@ -297,8 +252,20 @@ p.time {
}
}
.search-holder {
label, input {
height: 30px;
padding: 0;
font-size: 14px;
}
label {
line-height: 30px;
color: #666;
}
}
.highlight_word {
background: #EEDC94;
border-bottom: 2px solid #F90;
}
.status_info {
@ -346,10 +313,6 @@ li.note {
li {
border-bottom:none !important;
}
.file {
padding-left: 20px;
background:url("icon-attachment.png") no-repeat left center;
}
}
}
@ -395,6 +358,7 @@ li.note {
font-size: 48px;
padding: 20px;
text-align: center;
font-weight: normal;
}
}
}
@ -425,7 +389,7 @@ li.note {
.supp_diff_link,
.mr_show_all_commits {
.show-all-commits {
cursor: pointer;
}
@ -469,6 +433,19 @@ li.note {
}
}
.warning_message {
border-left: 4px solid #ed9;
color: #b90;
padding: 10px;
margin-bottom: 10px;
background: #ffffe6;
padding-left: 20px;
&.centered {
text-align: center;
}
}
.oauth_select_holder {
padding: 20px;
img {
@ -556,3 +533,25 @@ h1.http_status_code {
}
}
}
img.emoji {
height: 20px;
vertical-align: middle;
width: 20px;
}
.appear-data {
display: none;
}
.label-branch {
@include border-radius(4px);
padding: 2px 4px;
border: none;
font-size: 14px;
background: #474D57;
color: #fff;
font-family: $monospace_font;
text-shadow: 0 1px 1px #111;
font-weight: normal;
}

View File

@ -17,6 +17,8 @@ $baseLineHeight: 18px !default;
@import "gitlab_bootstrap/variables.scss";
@import "gitlab_bootstrap/fonts.scss";
@import "gitlab_bootstrap/mixins.scss";
@import "gitlab_bootstrap/avatar.scss";
@import "gitlab_bootstrap/nav.scss";
@import "gitlab_bootstrap/common.scss";
@import "gitlab_bootstrap/typography.scss";
@import "gitlab_bootstrap/buttons.scss";

View File

@ -0,0 +1,8 @@
/** AVATARS **/
img.avatar { float: left; margin-right: 12px; width: 40px; border: 1px solid #ddd; padding: 1px; }
img.avatar.s16 { width: 16px; height: 16px; margin-right: 6px; }
img.avatar.s24 { width: 24px; height: 24px; margin-right: 8px; }
img.avatar.s32 { width: 32px; height: 32px; margin-right: 10px; }
img.avatar.s90 { width: 90px; height: 90px; margin-right: 15px; }
img.lil_av { padding-left: 4px; padding-right: 3px; }
img.small { width: 80px; }

View File

@ -1,23 +1,33 @@
/**
* ===================================
* Contain 3 main UI block elements:
* .main_box - for show pages
* .ui-box - for simple block & widgets
* Contain UI block elements:
* .ui-box - for any block & widgets
* ===================================
*/
/**
* UI box element
* contains top, middle, bottom blocks
* UI Block
*
*/
.main_box {
@extend .borders;
@extend .prepend-top-20;
@extend .append-bottom-20;
border-width: 1px;
.ui-box {
background: #F9F9F9;
margin-bottom: 25px;
border: 1px solid #CCC;
@include solid-shade;
&.ui-box-show {
margin:20px 0;
background: #FFF;
}
&.ui-box-danger {
.title {
@include linear-gradient(#F26E5E, #bd362f);
color: #fff;
text-shadow: 0 1px 1px #900;
font-weight: bold;
}
}
img { max-width: 100%; }
@ -27,31 +37,30 @@
}
}
.top_box_content,
.middle_box_content,
.bottom_box_content {
.ui-box-head,
.ui-box-body,
.ui-box-bottom {
padding: 15px;
word-wrap: break-word;
pre {
background: none !important;
.clearfix {
margin: 0;
border: none;
padding: 0;
}
}
.top_box_content {
.ui-box-head {
.box-title {
color: $style_color;
font-size: 18px;
font-weight: normal;
line-height: 28px;
}
h3 {
margin: 0;
}
}
.middle_box_content {
@include border-radius(0);
.ui-box-body {
border: none;
font-size: 12px;
background-color: #f5f5f5;
@ -59,24 +68,9 @@
border-top: 1px solid #eee;
}
.bottom_box_content {
.ui-box-bottom {
border-top: 1px solid #eee;
}
}
/**
* Big UI Block for show page content
*
*/
.ui-box {
background: #F9F9F9;
margin-bottom: 25px;
border: 1px solid #eaeaea;
@include border-radius(4px);
border-color: #CCC;
@include solid-shade;
&.white {
background: #fff;
@ -86,47 +80,52 @@
margin: 0;
}
h5, .title {
padding: 0 10px;
@include border-radius(4px 4px 0 0);
.title {
@include bg-gray-gradient;
border-top: 1px solid #eaeaea;
border-bottom: 1px solid #bbb;
border-bottom: 1px solid #CCC;
color: #456;
font-size: 16px;
text-shadow: 0 1px 1px #fff;
padding: 0px 10px;
line-height: 36px;
font-size: 14px;
font-weight: normal;
> a {
text-shadow: 0 1px 1px #fff;
}
&.small {
line-height: 28px;
font-size: 14px;
line-height: 28px;
text-shadow: 0 1px 1px white;
form {
margin-bottom: 0;
margin-top: 0;
}
form {
padding: 9px 0;
margin: 0px;
.btn {
position: relative;
top: -2px;
}
.nav-pills {
li {
padding: 3px 0;
&.active a { background-color: $style_color; }
a {
@include border-radius(7px);
> li {
> a {
padding: 13px;
margin: 0;
font-size: 13px;
}
&.active {
> a {
background: #D5D5D5;
color: $style_color;
@include border-radius(0);
border-radius: 0;
border-left: 1px solid #CCC;
border-right: 1px solid #CCC;
}
}
}
}
}
.bottom {
@include bg-gray-gradient;
@include border-radius(0 0 4px 4px);
border-bottom: none;
border-top: 1px solid #bbb;
}
&.padded {
h5, .title {
margin: -20px;
@ -143,6 +142,7 @@
color: #777;
}
}
.row_title {
font-weight: bold;
color: #444;
@ -152,7 +152,22 @@
}
}
.ui-box-body {
padding: 10px;
.form-holder {
padding-top: 20px;
form {
margin-bottom: 0;
legend {
text-indent: 10px;
}
.form-actions {
margin-bottom: 0;
}
}
}
}
.tab-pane {
.ui-box {
margin: 3px 3px 25px 3px;
}
}

View File

@ -1,13 +1,16 @@
.btn {
@include linear-gradient(#f7f7f7, #d5d5d5);
border-color: #aaa;
@include linear-gradient(#f1f1f1, #e1e1e1);
text-shadow: 0 1px 1px #FFF;
border-color: #BBB;
&:hover {
@include bg-gray-gradient;
border-color: #bbb;
background: #f1f1f1;
@include linear-gradient(#fAfAfA, #f1f1f1);
border-color: #AAA;
color: #333;
}
&.primary {
&.btn-primary {
background: #2a79A3;
@include linear-gradient(#47A7b7, #2585b5);
border-color: #2A79A3;
@ -54,21 +57,18 @@
}
}
&.save-btn {
&.btn-create {
@extend .wide;
@extend .primary;
@extend .success;
}
&.cancel-btn {
float: right;
&.btn-save {
@extend .wide;
@extend .btn-primary;
}
&.wide {
padding-left: 30px;
padding-right: 30px;
}
&.danger {
&.btn-close,
&.btn-remove {
@extend .btn-danger;
border-color: #BD362F;
@ -78,8 +78,13 @@
}
}
&.danger {
@extend .btn-danger;
&.btn-cancel {
float: right;
}
&.wide {
padding-left: 20px;
padding-right: 20px;
}
&.small {
@ -91,7 +96,7 @@
background-color: #ccc;
}
&.very_small {
&.btn-tiny {
font-size: 11px;
padding: 2px 6px;
line-height: 16px;

View File

@ -2,6 +2,7 @@
.cgray { color:gray }
.cred { color:#D12F19 }
.cgreen { color:#4a2 }
.cblue { color:#29A }
.cblack { color:#111 }
.cdark { color:#444 }
.cwhite { color:#fff!important }
@ -9,7 +10,6 @@
/** COMMON CLASSES **/
.left { float:left }
.right { float:right!important }
.append-bottom-10 { margin-bottom:10px }
.append-bottom-20 { margin-bottom:20px }
.prepend-top-10 { margin-top:10px }
@ -17,61 +17,21 @@
.padded { padding:20px }
.ipadded { padding:20px!important }
.lborder { border-left:1px solid #eee }
.no-padding { padding:0 !important; }
.underlined { border-bottom: 1px solid #CCC; }
.no-borders { border: none; }
.vlink { color: $link_color !important; }
.underlined_link { text-decoration: underline; }
.borders { border: 1px solid #ccc; @include shade; }
.hint { font-style: italic; color: #999; }
.light { color: #888 }
.tiny { font-weight: normal }
.vtop { vertical-align: top; }
/** PILLS & TABS**/
.nav-pills a:hover { background-color: #888; }
.nav-pills .active a { background-color: $style_color; }
.nav-pills > .active > a > i[class^="icon-"] { background: inherit; }
.nav-tabs > li > a, .nav-pills > li > a { color: $style_color; }
.nav.nav-tabs {
li {
> a {
padding: 8px 20px;
margin-right: 7px;
line-height: 19px;
border-color: #EEE;
color: #888;
border-bottom: 1px solid #ddd;
.badge {
background-color: #eee;
color: #888;
text-shadow: 0 1px 1px #fff;
}
i[class^="icon-"] {
line-height: 14px;
}
}
&.active {
> a {
border-color: #CCC;
border-bottom: 1px solid #fff;
color: #333;
}
}
}
}
/** ALERT MESSAGES **/
.alert-message { @extend .alert; }
.alert-messag.success { @extend .alert-success; }
.alert-message.error { @extend .alert-error; }
.alert.alert-disabled {
background: #EEE;
color: #777;
border-color: #DDD;
}
/** AVATARS **/
img.avatar { float: left; margin-right: 12px; width: 40px; border: 1px solid #ddd; padding: 1px; }
img.avatar.s16 { width: 16px; height: 16px; margin-right: 6px; }
img.avatar.s24 { width: 24px; height: 24px; margin-right: 8px; }
img.avatar.s32 { width: 32px; height: 32px; margin-right: 10px; }
img.lil_av { padding-left: 4px; padding-right: 3px; }
img.small { width: 80px; }
.well { padding: 15px; }
/** HELPERS **/
.nothing_here_message {
@ -113,3 +73,7 @@ fieldset legend { font-size: 17px; }
border-bottom: 2px solid $style_color;
}
}
.tab-content {
overflow: visible;
}

View File

@ -37,24 +37,6 @@
background: #fff;
font-size: 11px;
&.wiki {
font-size: 13px;
code {
padding: 0 4px;
}
padding: 20px;
h1 { font-size: 26px; line-height: 46px; }
h2 { font-size: 22px; line-height: 42px; }
h3 { font-size: 20px; line-height: 40px; }
h4 { font-size: 18px; line-height: 32px; }
h5 { font-size: 16px; line-height: 26px; }
.white .highlight pre {
background: #f5f5f5;
}
}
&.image_file {
background: #eee;
text-align: center;
@ -64,6 +46,11 @@
}
}
&.wiki {
padding: 20px;
font-size: 13px;
}
&.blob_file {
}
@ -148,7 +135,7 @@
pre {
border: none;
border-radius: 0;
font-family: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono','lucida console',monospace;
font-family: $monospace_font;
font-size: 12px !important;
line-height: 16px !important;
margin: 0;
@ -175,6 +162,7 @@
color: #666;
padding: 10px 6px 10px 0;
text-align: right;
background: #EEE;
a {
color: #666;

View File

@ -1,7 +1,2 @@
@font-face{
font-family: Korolev;
src: font-url('korolev-medium-compressed.otf');
}
/** Typo **/
$monospace: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace;
$monospace_font: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace;

View File

@ -23,14 +23,12 @@
border-bottom: 1px solid #ADF;
}
&:first-child {
@include border-radius(4px 4px 0 0);
border-top: none;
}
&:last-child {
@include border-radius(0 0 4px 4px);
border: none;
border-bottom: none;
&.bottom {
background: #f5f5f5;
}
}
.author { color: #999; }

View File

@ -24,6 +24,14 @@
background-image: -o-linear-gradient($from, $to);
}
@mixin transition($transition) {
-webkit-transition: $transition;
-moz-transition: $transition;
-ms-transition: $transition;
-o-transition: $transition;
transition: $transition;
}
/**
* Prefilled mixins
* Mixins with fixed values
@ -62,8 +70,19 @@
@mixin header-font {
color: $style_color;
text-shadow: 0 1px 1px #FFF;
font-family: 'Korolev', sans-serif;
font-size: 28px;
line-height: 48px;
font-size: 18px;
line-height: 40px;
font-weight: normal;
letter-spacing: -1px;
}
@mixin md-typography {
code { padding: 0 4px; }
p { font-size: 13px; }
h1 { font-size: 26px; line-height: 40px; margin: 10px 0;}
h2 { font-size: 22px; line-height: 40px; margin: 10px 0;}
h3 { font-size: 18px; line-height: 40px; margin: 10px 0;}
h4 { font-size: 16px; line-height: 20px; margin: 10px 0;}
h5 { font-size: 14px; line-height: 20px; margin: 10px 0;}
h6 { font-size: 12px; line-height: 20px; margin: 10px 0;}
}

View File

@ -0,0 +1,65 @@
/**
* nav-pills
*
*/
.nav-pills {
.active a {
background: $primary_color;
}
> li > a {
@include border-radius(0);
}
&.nav-stacked {
> li > a {
border-left: 4px solid #EEE;
padding: 12px;
}
> .active > a {
border-color: #29B;
border-radius: 0;
background: #F1F1F1;
color: $style_color;
font-weight: bold;
}
}
}
.nav-pills > .active > a > i[class^="icon-"] { background: inherit; }
/**
* nav-tabs
*
*/
.nav-tabs > li > a, .nav-pills > li > a { color: $style_color; }
.nav.nav-tabs {
li {
> a {
padding: 8px 20px;
margin-right: 7px;
line-height: 20px;
border-color: #EEE;
color: #888;
border-bottom: 1px solid #ddd;
.badge {
background-color: #eee;
color: #888;
text-shadow: 0 1px 1px #fff;
}
i[class^="icon-"] {
line-height: 14px;
}
}
&.active {
> a {
border-color: #CCC;
border-bottom: 1px solid #fff;
color: #333;
}
}
}
&.nav-small-tabs > li > a { padding: 6px 9px; }
}

View File

@ -11,6 +11,12 @@ table {
}
}
&.headless {
tr:first-child td{
border-top: 1px solid #CCC;
}
}
th {
font-weight: bold;
vertical-align: middle;
@ -25,7 +31,7 @@ table {
}
th, td {
padding: 8px;
padding: 10px;
line-height: 18px;
text-align: left;
}

View File

@ -21,7 +21,7 @@ h6 {
/** CODE **/
pre {
font-family:'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono','lucida console',monospace;
font-family: $monospace_font;
&.dark {
background: #333;
@ -79,5 +79,23 @@ a:focus {
}
.monospace {
font-family: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono','lucida console',monospace;
font-family: $monospace_font;
}
/**
* Wiki typography
*
*/
.wiki {
@include md-typography;
font-size: 13px;
line-height: 20px;
.white .highlight pre { background: #f5f5f5; }
ul { margin: 0 0 9px 25px !important; }
}
.md {
@include md-typography;
}

View File

@ -1,5 +1,13 @@
/** Colors **/
/**
* General Colors
*/
$primary_color: #2FA0BB;
$link_color: #3A89A3;
$style_color: #474D57;
$hover: #D9EDF7;
/**
* Commit Diff Colors
*/
$added: #63c363;
$deleted: #f77;

View File

@ -1,8 +1,7 @@
.black .highlight {
background-color: #333;
pre {
background-color: #333;
color: #eee;
background: inherit;
}
.hll { display: block; background-color: darken($hover, 65%) }

View File

@ -0,0 +1,77 @@
.solarized-dark .highlight {
pre {
background-color: #002B36;
color: #eee;
}
.hll { background-color: #073642 }
.c { color: #586E75 } /* Comment */
.err { color: #93A1A1 } /* Error */
.g { color: #93A1A1 } /* Generic */
.k { color: #859900 } /* Keyword */
.l { color: #93A1A1 } /* Literal */
.n { color: #93A1A1 } /* Name */
.o { color: #859900 } /* Operator */
.x { color: #CB4B16 } /* Other */
.p { color: #93A1A1 } /* Punctuation */
.cm { color: #586E75 } /* Comment.Multiline */
.cp { color: #859900 } /* Comment.Preproc */
.c1 { color: #586E75 } /* Comment.Single */
.cs { color: #859900 } /* Comment.Special */
.gd { color: #2AA198 } /* Generic.Deleted */
.ge { color: #93A1A1; font-style: italic } /* Generic.Emph */
.gr { color: #DC322F } /* Generic.Error */
.gh { color: #CB4B16 } /* Generic.Heading */
.gi { color: #859900 } /* Generic.Inserted */
.go { color: #93A1A1 } /* Generic.Output */
.gp { color: #93A1A1 } /* Generic.Prompt */
.gs { color: #93A1A1; font-weight: bold } /* Generic.Strong */
.gu { color: #CB4B16 } /* Generic.Subheading */
.gt { color: #93A1A1 } /* Generic.Traceback */
.kc { color: #CB4B16 } /* Keyword.Constant */
.kd { color: #268BD2 } /* Keyword.Declaration */
.kn { color: #859900 } /* Keyword.Namespace */
.kp { color: #859900 } /* Keyword.Pseudo */
.kr { color: #268BD2 } /* Keyword.Reserved */
.kt { color: #DC322F } /* Keyword.Type */
.ld { color: #93A1A1 } /* Literal.Date */
.m { color: #2AA198 } /* Literal.Number */
.s { color: #2AA198 } /* Literal.String */
.na { color: #93A1A1 } /* Name.Attribute */
.nb { color: #B58900 } /* Name.Builtin */
.nc { color: #268BD2 } /* Name.Class */
.no { color: #CB4B16 } /* Name.Constant */
.nd { color: #268BD2 } /* Name.Decorator */
.ni { color: #CB4B16 } /* Name.Entity */
.ne { color: #CB4B16 } /* Name.Exception */
.nf { color: #268BD2 } /* Name.Function */
.nl { color: #93A1A1 } /* Name.Label */
.nn { color: #93A1A1 } /* Name.Namespace */
.nx { color: #93A1A1 } /* Name.Other */
.py { color: #93A1A1 } /* Name.Property */
.nt { color: #268BD2 } /* Name.Tag */
.nv { color: #268BD2 } /* Name.Variable */
.ow { color: #859900 } /* Operator.Word */
.w { color: #93A1A1 } /* Text.Whitespace */
.mf { color: #2AA198 } /* Literal.Number.Float */
.mh { color: #2AA198 } /* Literal.Number.Hex */
.mi { color: #2AA198 } /* Literal.Number.Integer */
.mo { color: #2AA198 } /* Literal.Number.Oct */
.sb { color: #586E75 } /* Literal.String.Backtick */
.sc { color: #2AA198 } /* Literal.String.Char */
.sd { color: #93A1A1 } /* Literal.String.Doc */
.s2 { color: #2AA198 } /* Literal.String.Double */
.se { color: #CB4B16 } /* Literal.String.Escape */
.sh { color: #93A1A1 } /* Literal.String.Heredoc */
.si { color: #2AA198 } /* Literal.String.Interpol */
.sx { color: #2AA198 } /* Literal.String.Other */
.sr { color: #DC322F } /* Literal.String.Regex */
.s1 { color: #2AA198 } /* Literal.String.Single */
.ss { color: #2AA198 } /* Literal.String.Symbol */
.bp { color: #268BD2 } /* Name.Builtin.Pseudo */
.vc { color: #268BD2 } /* Name.Variable.Class */
.vg { color: #268BD2 } /* Name.Variable.Global */
.vi { color: #268BD2 } /* Name.Variable.Instance */
.il { color: #2AA198 } /* Literal.Number.Integer.Long */
}

View File

@ -0,0 +1,5 @@
.admin-filter form {
label { width: 110px; }
.controls { margin-left: 130px; }
.form-actions { padding-left: 130px; background: #fff }
}

View File

@ -1,79 +1,20 @@
.commit-box {
@extend .main_box;
.commit-head {
@extend .top_box_content;
.commit-title {
line-height: 26px;
margin: 0;
}
.commit-description {
font-size: 14px;
border: none;
background-color: white;
padding-top: 10px;
}
.browse-button {
@extend .btn;
@extend .btn-small;
float: right;
}
}
.commit-info {
@extend .middle_box_content;
@extend .clearfix;
.sha-block {
text-align: right;
&:first-child {
padding-bottom: 6px;
}
a {
border-bottom: 1px solid #aaa;
margin-left: 9px;
}
}
&.merge-commit .sha-block {
clear: right;
}
.committer {
padding-left: 32px;
}
.author a,
.committer a {
font-size: 14px;
line-height: 22px;
text-shadow: 0 1px 1px #fff;
color: #777;
&:hover {
color: #999;
}
}
.avatar {
margin-right: 10px;
}
/**
* Commit file
*/
.commit-committer-link,
.commit-author-link {
font-size: 13px;
color: #555;
&:hover {
color: #999;
}
}
/**
*
* COMMIT SHOw
*
*/
.diff_file {
.file {
border: 1px solid #CCC;
margin-bottom: 1em;
.diff_file_header {
.header {
@extend .clearfix;
padding: 5px 5px 5px 10px;
color: #555;
@ -85,32 +26,35 @@
background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf);
background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf);
a{
color: $style_color;
}
> span {
font-family: $monospace;
font-family: $monospace_font;
font-size: 14px;
line-height: 30px;
}
a.view-commit{
a.view-file{
font-weight: bold;
}
.commit-short-id{
font-family: $monospace;
font-family: $monospace_font;
font-size: smaller;
}
.file-mode{
font-family: $monospace;
font-family: $monospace_font;
}
}
.diff_file_content {
.content {
overflow: auto;
overflow-y: hidden;
background: #fff;
background: #FFF;
color: #333;
font-size: 12px;
font-family: $monospace;
.old{
span.idiff{
background-color: #FAA;
@ -123,114 +67,277 @@
}
table {
font-family: $monospace_font;
border: none;
margin: 0px;
padding: 0px;
td {
line-height: 18px;
}
}
}
.diff_file_content_image {
background: #eee;
text-align: center;
.image {
display: inline-block;
margin: 50px;
max-width: 400px;
img{
background: url('trans_bg.gif');
}
&.diff_removed {
img{
border: 1px solid #C00;
}
}
&.diff_added {
img{
border: 1px solid #0C0;
}
}
.image-info{
margin: 5px 0 0 0;
}
}
&.img_compared {
.image {
max-width: 300px;
}
}
}
}
.diff_file_content{
table {
border: none;
margin: 0px;
padding: 0px;
tr {
td {
font-size: 12px;
}
}
}
.old_line, .new_line {
margin: 0px;
padding: 0px;
border: none;
background: #EEE;
color: #666;
padding: 0px 5px;
border-right: 1px solid #ccc;
text-align: right;
min-width: 35px;
max-width: 35px;
width: 35px;
moz-user-select: none;
-khtml-user-select: none;
user-select: none;
a {
float: left;
width: 35px;
font-weight: normal;
.old_line, .new_line {
margin: 0px;
padding: 0px;
border: none;
background: #EEE;
color: #666;
&:hover {
text-decoration: underline;
padding: 0px 5px;
border-right: 1px solid #ccc;
text-align: right;
min-width: 35px;
max-width: 35px;
width: 35px;
@include user-select(none);
a {
float: left;
width: 35px;
font-weight: normal;
color: #666;
&:hover {
text-decoration: underline;
}
}
}
.line_content {
display: block;
white-space: pre;
height: 18px;
margin: 0px;
padding: 0px;
border: none;
&.new {
background: #CFD;
}
&.old {
background: #FDD;
}
&.matched {
color: #ccc;
background: #fafafa;
}
}
}
.line_content {
white-space: pre;
height: 14px;
margin: 0px;
padding: 0px;
border: none;
&.new {
background: #CFD;
.image {
background: #ddd;
text-align: center;
padding: 30px;
.wrap{
display: inline-block;
}
&.old {
background: #FDD;
.frame {
display: inline-block;
background-color: #fff;
line-height: 0;
img{
border: 1px solid #FFF;
background: url('trans_bg.gif');
}
&.deleted {
border: 1px solid $deleted;
}
&.added {
border: 1px solid $added;
}
}
&.matched {
color: #ccc;
background: #fafafa;
.image-info{
font-size: 12px;
margin: 5px 0 0 0;
color: grey;
}
.view.swipe{
position: relative;
.swipe-frame{
display: block;
margin: auto;
position: relative;
}
.swipe-wrap{
overflow: hidden;
border-left: 1px solid #999;
position: absolute;
display: block;
top: 13px;
right: 7px;
}
.frame{
top: 0;
right: 0;
position: absolute;
&.deleted{
margin: 0;
display: block;
top: 13px;
right: 7px;
}
}
.swipe-bar{
display: block;
height: 100%;
width: 15px;
z-index: 100;
position: absolute;
cursor: pointer;
&:hover{
.top-handle{
background-position: -15px 3px;
}
.bottom-handle{
background-position: -15px -11px;
}
};
.top-handle{
display: block;
height: 14px;
width: 15px;
position: absolute;
top: 0px;
background: url('swipemode_sprites.gif') 0 3px no-repeat;
}
.bottom-handle{
display: block;
height: 14px;
width: 15px;
position: absolute;
bottom: 0px;
background: url('swipemode_sprites.gif') 0 -11px no-repeat;
}
}
} //.view.swipe
.view.onion-skin{
.onion-skin-frame{
display: block;
margin: auto;
position: relative;
}
.frame.added, .frame.deleted {
position: absolute;
display: block;
top: 0px;
left: 0px;
}
.controls{
display: block;
height: 14px;
width: 300px;
z-index: 100;
position: absolute;
bottom: 0px;
left: 50%;
margin-left: -150px;
.drag-track{
display: block;
position: absolute;
left: 12px;
height: 10px;
width: 276px;
background: url('onion_skin_sprites.gif') -4px -20px repeat-x;
}
.dragger {
display: block;
position: absolute;
left: 0px;
top: 0px;
height: 14px;
width: 14px;
background: url('onion_skin_sprites.gif') 0px -34px repeat-x;
cursor: pointer;
}
.transparent {
display: block;
position: absolute;
top: 2px;
right: 0px;
height: 10px;
width: 10px;
background: url('onion_skin_sprites.gif') -2px 0px no-repeat;
}
.opaque {
display: block;
position: absolute;
top: 2px;
left: 0px;
height: 10px;
width: 10px;
background: url('onion_skin_sprites.gif') -2px -10px no-repeat;
}
}
} //.view.onion-skin
}
.view-modes{
padding: 10px;
text-align: center;
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf));
background-image: -webkit-linear-gradient(#eee 6.6%, #dfdfdf);
background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf);
background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf);
ul, li{
list-style: none;
margin: 0;
padding: 0;
display: inline-block;
}
li{
color: grey;
border-left: 1px solid #c1c1c1;
padding: 0 12px 0 16px;
cursor: pointer;
&:first-child{
border-left: none;
}
&:hover{
text-decoration: underline;
}
&.active{
&:hover{
text-decoration: none;
}
cursor: default;
color: #333;
}
&.disabled{
display: none;
}
}
}
}
/** COMMIT BLOCK **/
.commit-title{display: block;}
.commit-title{margin-bottom: 10px}
.commit-author, .commit-committer{display: block;color: #999; font-weight: normal; font-style: italic;}
.commit-author strong, .commit-committer strong{font-weight: bold; font-style: normal;}
.commit-title{
display: block;
}
.commit-title{
margin-bottom: 10px;
}
.commit-author, .commit-committer{
display: block;
color: #999;
font-weight: normal;
font-style: italic;
}
.commit-author strong, .commit-committer strong{
font-weight: bold;
font-style: normal;
}
/** COMMIT ROW **/
/**
* COMMIT ROW
*/
.commit {
.browse_code_link_holder {
@extend .span2;
float: right;
}
@ -253,18 +360,10 @@
float: left;
@extend .lined;
min-width: 65px;
font-family: $monospace;
}
.commit-author-name {
color: #777;
&:hover {
color: #999;
}
font-family: $monospace_font;
}
}
.diff_file_header a,
.file-stats a {
color: $style_color;
}
@ -298,7 +397,7 @@
font-size: 13px;
background: #474D57;
color: #fff;
font-family: $monospace;
font-family: $monospace_font;
}
@ -314,3 +413,9 @@
padding: 4px;
background-color: #EEE;
}
.commit-description {
background: none;
border: none;
margin: 0;
}

View File

@ -40,13 +40,33 @@
}
}
.event-body {
p {
.commit p {
color: #555;
padding-top: 5px;
}
.event-info {
color: #666;
}
.event-note {
color: #555;
margin-top: 5px;
margin-left: 40px;
.note-file-attach {
.note-image-attach {
margin-top: 4px;
margin-left: 0px;
max-width: 200px;
}
}
}
.event-note-icon {
color: #777;
float: left;
font-size: 16px;
line-height: 16px;
margin-right: 5px;
}
}
.avatar {
position: relative;
@ -114,7 +134,7 @@
.btn-new-mr {
@extend .btn-info;
@extend .small;
@extend .right;
@extend .pull-right;
margin: -3px;
}
}
@ -126,21 +146,25 @@
.event_filter {
position: absolute;
width: 40px;
margin-left: -50px;
margin-left: -55px;
.filter_icon {
float: left;
border-left: 3px solid #4bc;
padding: 7px;
background: #f9f9f9;
margin-bottom: 10px;
img {
width: 20px;
a {
text-align:center;
border-left: 3px solid #29B;
background: #f9f9f9;
margin-bottom: 10px;
float: left;
padding: 9px 7px;
font-size: 18px;
width: 26px;
}
&.inactive {
border-left: 3px solid #EEE;
opacity: 0.5;
a {
color: #DDD;
border-left: 3px solid #EEE;
}
}
}
}

View File

@ -12,7 +12,7 @@
.graph {
background: #f1f1f1;
cursor: move;
height: 70%;
height: 500px;
overflow: hidden;
}
}

View File

@ -5,15 +5,16 @@
header {
&.navbar-gitlab {
.navbar-inner {
height: 45px;
padding: 5px;
height: 40px;
padding: 3px;
background: #F1F1F1;
filter: none;
.nav > li > a {
color: $style_color;
text-shadow: 0 1px 0 #fff;
font-size: 18px;
padding: 11px;
font-size: 16px;
padding: 10px;
}
/** NAV block with links and profile **/
@ -25,7 +26,6 @@ header {
}
z-index: 10;
/*height: 60px;*/
/**
*
@ -33,22 +33,30 @@ header {
*
*/
.app_logo {
width: 170px;
float: left;
margin-right: 9px;
position: relative;
top: -5px;
padding-top: 5px;
a {
float: left;
padding: 0px;
margin: 0 6px;
h1 {
width: 90px;
background: url('logo_dark.png') no-repeat 0px 2px;
background: url('logo-black.png') no-repeat center 1px;
background-size: 38px;
float: left;
margin-left: 2px;
padding-left: 45px;
height: 40px;
width: 40px;
@include header-font;
text-indent: -9999px;
}
}
&:hover {
background-color: #EEE;
}
}
/**
@ -60,19 +68,27 @@ header {
position: relative;
float: left;
margin: 0;
margin-right: 30px;
margin-left: 10px;
@include header-font;
}
.profile-pic {
position: relative;
top: -4px;
img {
width: 26px;
@include border-radius(4px);
}
}
/**
*
* Search box
*
*/
.search {
margin-right: 45px;
margin-right: 10px;
margin-left: 10px;
margin-top: 2px;
.search-input {
@extend .span2;
@ -84,121 +100,13 @@ header {
@include border-radius(3px);
border: 1px solid #c6c6c6;
box-shadow: none;
@include transition(all 0.15s ease-in 0s);
&:focus {
@extend .span3;
}
}
}
/**
*
* Account box
*
*/
.account-box {
position: absolute;
right: 0;
top: 6px;
z-index: 10000;
width: 128px;
font-size: 11px;
float: right;
display: block;
cursor: pointer;
img {
@include border-radius(3px);
right: 5px;
position: absolute;
width: 28px;
height: 28px;
display: block;
top: 1px;
&:after {
content: " ";
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
float: right;
@include border-radius(5px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-bottom: 0;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 255, 255, 0.15)), to(rgba(0, 0, 0, 0.25))),
-webkit-gradient(linear, left top, right bottom, color-stop(0, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, 0.1)), color-stop(0.501, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0)));
background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)),
-moz-linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
background: linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)),
linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
-webkit-background-origin: border-box;
-moz-background-origin: border;
background-origin: border-box; } } }
.account-box {
&.hover {
height: 138px; }
&:hover > .account-links {
display: block; } }
.account-links {
@include border-radius(5px);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
position: relative;
&:before {
content: ".";
width: 0;
height: 0;
position: absolute;
border: 5px solid transparent;
border-color: rgba(255, 255, 255, 0);
border-bottom-color: #555;
text-indent: -9999px;
top: -10px;
line-height: 0;
right: 10px;
z-index: 10; }
background: #555;
display: none;
z-index: 100000;
@include border-radius(4px);
width: 130px;
position: absolute;
right: 5px;
top: 38px;
margin-top: 0;
float: right;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
a {
color: #fff;
padding: 12px 15px;
display: block;
text-shadow: none;
border-bottom: 1px solid #666;
font-size: 12px;
&:hover {
color: #fff;
background: #333;
}
}
}
.account-box.hover .arrow-up {
top: 41px;
right: 6px;
position: absolute; }
.account-links a {
&:first-child {
@include border-radius(5px 5px 0 0);
}
&:last-child {
@include border-radius(0 0 5px 5px);
border-bottom: 0;
}
}
/*
* Dark header
@ -221,6 +129,7 @@ header {
.search-input {
background-color: #D2D5DA;
background-color: rgba(255, 255, 255, 0.5);
border: 1px solid #AAA;
&:focus {
background-color: white;
@ -233,16 +142,38 @@ header {
.app_logo {
a {
h1 {
background: url('logo_white.png') no-repeat 0px 2px;
background: url('logo-white.png') no-repeat center 1px;
background-size: 38px;
color: #fff;
text-shadow: 0 1px 1px #111;
}
}
}
.project_name {
a {
color: #FFF;
}
color: #fff;
text-shadow: 0 1px 1px #111;
}
}
.app_logo {
.separator {
margin-left: 0;
margin-right: 0;
}
}
.separator {
float: left;
height: 46px;
width: 1px;
background: white;
border-left: 1px solid #DDD;
margin-top: -3px;
margin-left: 10px;
margin-right: 10px;
}
}

View File

@ -1,34 +1,6 @@
.issue_form_box {
@extend .main_box;
.issue_title {
@extend .top_box_content;
.clearfix {
margin-bottom: 0px;
input {
@extend .span8;
}
}
}
.issue_middle_block {
@extend .middle_box_content;
height: 30px;
.issue_assignee {
@extend .span6;
float: left;
}
.issue_milestone {
@extend .span4;
float: left;
}
}
.issue_description {
@extend .bottom_box_content;
}
}
.issues_table {
.issue {
padding: 7px 10px;
padding: 10px;
.issue_check {
float: left;
@ -82,38 +54,34 @@ input.check_all_issues {
}
}
@media (min-width: 800px) { .issues_filters select { width: 160px; } }
@media (min-width: 1000px) { .issues_filters select { width: 200px; } }
@media (min-width: 800px) { .issues_filters select { width: 160px; } }
@media (min-width: 1200px) { .issues_filters select { width: 220px; } }
@media (min-width: 800px) { .issues_bulk_update select { width: 120px; } }
@media (min-width: 1200px) { .issues_bulk_update select { width: 160px; } }
#issues-table-holder {
.issues_filters {
form {
padding: 0;
margin: 0;
margin-top:7px
}
}
.issues_bulk_update {
margin: 0;
form {
padding: 0;
margin: 0;
margin-top:7px
float:left;
}
.update_selected_issues {
position: relative;
top:-2px;
top:5px;
margin-left: 4px;
float: left;
}
.update_issues_text {
padding: 3px;
line-height: 18px;
line-height: 28px;
float: left;
color: #479;
}
}
}

View File

@ -1,7 +1,7 @@
/* Login Page */
body.login-page{
padding-top: 10%;
background: #f1f1f1;
body.login-page{
background: #EEE;
.container .content { padding-top: 5%; }
}
.login-box{
@ -31,4 +31,9 @@ body.login-page{
margin-bottom: 20px;
}
.login-box input.text.middle{
border-top: 0;
margin-bottom:0px;
}
.login-box a.forgot{float: right; padding-top: 6px}

View File

@ -1,17 +1,3 @@
/**
* MR form
*
*/
.mr_branch_box {
@extend .ui-box;
margin-bottom: 20px;
.body {
background: #f1f1f1;
}
}
/**
* MR -> show: Automerge widget
@ -47,6 +33,7 @@
}
label {
color: #444;
text-align: left
}
}
@ -56,7 +43,7 @@
}
}
.mr_nav_tabs {
.merge-request .nav-tabs{
li {
a {
font-weight: bold;
@ -67,7 +54,7 @@
}
li.merge_request {
padding: 7px 10px;
padding: 10px;
img.avatar {
width: 32px;
margin-top: 1px;
@ -78,21 +65,11 @@ li.merge_request {
}
}
.merge_in_progress {
.merge-in-progress {
@extend .padded;
@extend .append-bottom-10;
}
.label_branch {
@include border-radius(4px);
padding: 2px 4px;
border: none;
font-size: 14px;
background: #474D57;
color: #fff;
font-family: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono','lucida console',monospace;
}
.mr_source_commit,
.mr_target_commit {
.commit {
@ -120,19 +97,3 @@ li.merge_request {
.mr_direction_tip {
margin-top:40px
}
.merge_requests_form_box {
@extend .main_box;
.merge_requests_middle_box {
@extend .middle_box_content;
height: 30px;
.merge_requests_assignee {
@extend .span6;
float: left;
}
.merge_requests_milestone {
@extend .span4;
float: left;
}
}
}

View File

@ -1,70 +1,64 @@
/*
* Main Menu of Application
*
*/
ul.main_menu {
margin: auto;
.main-nav {
margin: 30px 0;
margin-top: 10px;
border-bottom: 1px solid #DDD;
height: 37px;
position: relative;
overflow: hidden;
.count {
position: relative;
top: -1px;
display: inline-block;
height: 15px;
margin: 0 0 0 5px;
padding: 0 8px 1px 8px;
height: auto;
font-size: 0.82em;
line-height: 14px;
text-align: center;
color: #777;
}
.label {
background: $hover;
text-shadow: none;
color: $style_color;
}
li {
list-style-type: none;
margin: 0;
display: table-cell;
width: 1%;
&.active {
border-bottom: 2px solid #474D57;
a {
color: $style_color;
}
}
border-bottom: 1px solid #E1E1E1;
&.home {
a {
background: url(home_icon.PNG) no-repeat center center;
text-indent:-9999px;
min-width: 20px;
img {
position: relative;
top: 4px;
ul {
margin: auto;
height: 39px;
position: relative;
top: 3px;
overflow: hidden;
.count {
position: relative;
top: -1px;
display: inline-block;
height: 15px;
margin: 0 0 0 5px;
padding: 0 8px 1px 8px;
height: auto;
font-size: 0.82em;
line-height: 14px;
text-align: center;
color: #777;
}
.label {
background: $hover;
text-shadow: none;
color: $style_color;
}
li {
list-style-type: none;
margin: 0;
display: table-cell;
width: 1%;
&.active {
border-bottom: 3px solid #777;
a {
color: $style_color;
font-weight: bolder;
}
}
&.home {
a {
i {
font-size: 20px;
position: relative;
top: 4px;
}
}
}
}
}
a {
display: block;
text-align: center;
font-weight: normal;
height: 35px;
line-height: 36px;
color: #777;
text-shadow: 0 1px 1px white;
padding: 0 10px;
a {
display: block;
text-align: center;
font-weight: normal;
height: 36px;
line-height: 34px;
color: #777;
text-shadow: 0 1px 1px white;
padding: 0 10px;
}
}
}
/*
* End of Main Menu
*
*/

View File

@ -1,233 +1,301 @@
/**
* Notes
*
*/
#notes-list,
#new-notes-list {
ul.notes {
display: block;
list-style: none;
margin: 0px;
padding: 0px;
}
.issue_notes,
.wiki_notes {
.note_content {
float: left;
width: 400px;
}
}
.discussion-header,
.note-header {
@extend .cgray;
padding-top: 5px;
padding-bottom: 15px;
/* Note textare */
#note_note {
height: 80px;
width: 99%;
font-size: 14px;
}
#new_note {
.attach_holder {
display: none;
}
}
.preview_note {
margin: 2px;
border: 1px solid #ddd;
padding: 10px;
min-height: 60px;
background: #f5f5f5;
}
.note {
padding: 8px 0;
overflow: hidden;
display: block;
position: relative;
img {float: left; margin-right: 10px;}
img.emoji {float: none;margin: 0;}
.note-author cite{font-style: italic;}
p { color: $style_color; }
.note-author { color: $style_color;}
.note-title { margin-left: 45px; padding-top: 5px;}
.avatar {
margin-top: 3px;
}
.delete-note {
display: none;
position: absolute;
right: 0;
top: 0;
}
&:hover {
.delete-note { display: block; }
}
}
#notes-list:not(.reversed) .note,
#new-notes-list:not(.reversed) .note {
border-bottom: 1px solid #eee;
}
#notes-list.reversed .note,
#new-notes-list.reversed .note {
border-top: 1px solid #eee;
}
/* mark vote notes */
.voting_notes .note {
padding: 8px 0;
}
.notes-status {
margin: 18px;
}
p.notify_controls input{
margin: 5px;
}
p.notify_controls span{
font-weight: 700;
}
tr.line_notes_row {
border-bottom: 1px solid #DDD;
border-left: 7px solid #2A79A3;
&.reply {
background: #eee;
border-left: 7px solid #2A79A3;
border-top: 1px solid #ddd;
td {
padding: 7px 10px;
}
a.line_note_reply_link {
border: 1px solid #eaeaea;
@include border-radius(4px);
padding: 3px 10px;
margin-left: 5px;
color: white;
background: #2A79A3;
border-color: #2A79A3;
}
}
ul {
margin: 0;
li {
padding: 0;
border: none;
}
}
}
.line_notes_row, .per_line_form { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.per_line_form {
background: #f5f5f5;
border-top: 1px solid #eee;
form { margin: 0; }
td {
border-bottom: 1px solid #ddd;
}
.note_actions {
margin: 0;
padding-top: 10px;
.buttons {
.avatar {
float: left;
width: 300px;
margin-right: 10px;
}
.options {
.labels {
float: left;
padding-left: 10px;
label {
padding: 6px 0;
margin: 0;
width: 120px;
}
.discussion-last-update,
.note-last-update {
font-style: italic;
}
.author {
color: $style_color;
font-weight: bold;
&:hover {
color: $primary_color;
}
}
}
.discussion {
padding: 8px 0;
overflow: hidden;
display: block;
position:relative;
.discussion-body {
margin-left: 50px;
.file,
.discussion-hidden,
.notes {
@extend .borders;
background-color: #F9F9F9;
}
.file .notes {
/* reset */
background: inherit;
border: none;
@include box-shadow(none);
}
.discussion-hidden .note {
@extend .cgray;
padding: 8px;
text-align: center;
}
.notes .note {
border-color: #ddd;
padding: 8px;
}
.reply-btn {
margin-top: 8px;
}
}
}
.note {
padding: 8px 0;
overflow: hidden;
display: block;
position:relative;
p { color: $style_color; }
.avatar {
margin-top: 3px;
}
.attachment {
font-size: 14px;
margin-top: -20px;
}
.note-body {
@include md-typography;
margin-left: 45px;
}
.note-header {
padding-bottom: 5px;
}
}
// paint top or bottom borders depending on notes direction
&:not(.reversed) .note,
&:not(.reversed) .discussion {
border-bottom: 1px solid #eee;
}
&.reversed .note,
&.reversed .discussion {
border-top: 1px solid #eee;
}
}
.file .notes_holder {
font-family: $sansFontFamily;
font-size: 13px;
line-height: 18px;
td {
border: 1px solid #ddd;
border-left: none;
&.notes_line {
text-align: center;
padding: 10px 0;
}
&.notes_content {
background-color: $white;
border-width: 1px 0;
padding-top: 0;
}
}
.reply-btn {
margin-top: 8px;
}
}
/**
* Actions for Discussions/Notes
*/
.discussion,
.note {
&.note:hover {
.note-actions { display: block; }
}
.discussion-header:hover {
.discussion-actions { display: block; }
}
.discussion-actions,
.note-actions {
display: none;
float: right;
[class^="icon-"],
[class*="icon-"] {
font-size: 16px;
line-height: 16px;
vertical-align: middle;
}
a {
@extend .cgray;
&:hover {
color: $primary_color;
&.danger { @extend .cred; }
}
}
}
}
.file .note .note-actions {
right: 0;
top: 0;
}
td .line_note_link {
position: absolute;
margin-left:-70px;
margin-top:-10px;
z-index: 10;
background: url("comment_add.png") no-repeat left 0;
width: 32px;
height: 32px;
opacity: 0.0;
filter: alpha(opacity=0);
&:hover {
opacity: 1.0;
filter: alpha(opacity=100);
/**
* Line note button on the side of diffs
*/
.file tr.line_holder {
.add-diff-note {
background: url("diff_note_add.png") no-repeat left 0;
height: 22px;
margin-left: -65px;
position: absolute;
width: 22px;
z-index: 10;
// "hide" it by default
opacity: 0.0;
filter: alpha(opacity=0);
&:hover {
opacity: 1.0;
filter: alpha(opacity=100);
}
}
// "show" the icon also if we just hover somewhere over the line
&:hover > td {
background: $hover !important;
.add-diff-note {
opacity: 1.0;
filter: alpha(opacity=100);
}
}
}
.diff_file_content tr.line_holder:hover > td { background: $hover !important; }
.diff_file_content tr.line_holder:hover > td .line_note_link {
/**
* Note Form
*/
.comment-btn {
@extend .btn-create;
}
.reply-btn {
@extend .btn-primary;
}
.file .content tr.line_holder:hover > td { background: $hover !important; }
.file .content tr.line_holder:hover > td .line_note_link {
opacity: 1.0;
filter: alpha(opacity=100);
}
.file,
.discussion {
.new_note {
margin: 8px 5px 8px 0;
}
}
.new_note {
.input-file {
font: 500px monospace;
opacity: 0;
filter: alpha(opacity=0);
position: absolute;
z-index: 1;
top: 0;
right: 0;
padding: 0;
margin: 0;
}
display: none;
.note_advanced_opts {
h6 {
line-height: 32px;
padding-right: 15px;
}
.buttons {
float: left;
margin-top: 8px;
}
.attachments {
.clearfix {
margin-bottom: 0;
}
.note_text_and_preview {
// makes the "absolute" position for links relative to this
position: relative;
width: 350px;
height: 50px;
overflow: hidden;
margin:0 0 5px !important;
.input_file {
.file_upload {
position: absolute;
right: 14px;
top: 7px;
}
.file_name {
line-height: 30px;
width: 240px;
height: 28px;
overflow: hidden;
}
.input-file {
width: 260px;
height: 41px;
float: right;
}
// preview/edit buttons
> a {
font-size: 24px;
padding: 4px;
position: absolute;
right: 10px;
}
.note_preview {
background: #f5f5f5;
border: 1px solid #ddd;
@include border-radius(4px);
min-height: 80px;
padding: 4px 6px;
}
.note_text {
border: 1px solid #DDD;
box-shadow: none;
font-size: 14px;
height: 80px;
width: 98.6%;
}
}
}
.note-text {
border: 1px solid #aaa;
box-shadow: none;
/* loading indicator */
.notes-busy {
margin: 18px;
}
.note-image-attach {
@extend .span4;
@extend .thumbnail;
margin-left: 45px;
}
.common-note-form {
margin: 0;
height: 140px;
background: #F9F9F9;
padding: 3px;
padding-bottom: 25px;
border: 1px solid #DDD;
}
.note-form-actions {
background: #F9F9F9;
height: 45px;
padding: 0 5px;
.note-form-option {
margin-top: 10px;
margin-left: 30px;
@extend .pull-left;
}
.js-notify-commit-author {
float: left;
}
}

View File

@ -4,20 +4,16 @@
}
.side {
@extend .right;
@extend .pull-right;
.groups_box,
.projects_box {
> h5 {
color: $style_color;
font-size: 16px;
text-shadow: 0 1px 1px #fff;
padding: 2px 10px;
line-height: 32px;
font-size: 14px;
.ui-box {
margin: 3px;
> .title {
padding: 2px 15px;
}
.nav-projects-tabs li { padding: 0; }
.well-list {
li { padding: 15px; }
.arrow {
float: right;
padding: 10px;
@ -46,9 +42,6 @@
line-height: 20px;
padding: 8px;
}
label {
color: #888;
}
.btn {
padding: 6px 10px;
margin-left: 10px;
@ -88,6 +81,7 @@
border: 1px solid #BBB;
box-shadow: none;
margin-left: -1px;
background: #FFF;
}
}
@ -109,7 +103,7 @@ ul.nav.nav-projects-tabs {
li {
a {
padding: 4px 20px;
padding: 6px 25px;
margin-top: 2px;
border-color: #DDD;
background-color: #EEE;
@ -123,3 +117,20 @@ ul.nav.nav-projects-tabs {
}
}
}
.team_member_row form {
margin: 0px;
}
.public-projects {
li {
margin-top: 8px;
margin-bottom: 5px;
border-bottom: 1px solid #eee;
.description {
margin-left: 22px;
color: #aaa;
}
}
}

View File

@ -80,6 +80,18 @@
margin: 0;
padding: 0;
}
td.blame-commit {
background: #f9f9f9;
min-width: 350px;
}
td.blame-numbers {
pre {
color: #AAA;
white-space: pre;
}
background: #f1f1f1;
border-left: 1px solid #DDD;
}
}
}
@ -90,3 +102,7 @@
}
}
.tree-ref-holder {
float: left;
margin-top: 5px;
}

View File

@ -0,0 +1,55 @@
.wall-page {
.wall-note-form {
@extend .span12;
margin: 0;
height: 140px;
background: #F9F9F9;
position: fixed;
bottom: 0px;
padding: 3px;
padding-bottom: 25px;
border: 1px solid #DDD;
}
.notes {
margin-bottom: 160px;
background: #FFE;
border: 1px solid #EED;
> li {
@extend .clearfix;
border-bottom: 1px solid #EED;
padding: 10px;
}
.wall-author {
color: #666;
float: left;
font-size: 12px;
width: 120px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.wall-text {
border-left: 1px solid #CCC;
margin-left: 10px;
padding-left: 10px;
float: left;
width: 75%;
}
.wall-file {
margin-left: 8px;
background: #EEE;
}
abbr {
float: right;
color: #AAA;
border: none;
}
}
}

View File

@ -0,0 +1,6 @@
h3.page_title .edit-wiki-header {
width: 780px;
margin-left: auto;
margin-right: auto;
padding-right: 7px;
}

View File

@ -1,3 +1,18 @@
.ajax-users-select {
width: 400px;
}
.user-result {
.user-image {
float: left;
}
.user-name {
}
.user-username {
color: #999;
}
}
/** Branch/tag selector **/
.project-refs-form {
margin: 0;
@ -88,3 +103,26 @@
}
}
}
/** Select2 styling **/
.select2-container .select2-choice {
background: #f1f1f1;
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, whitesmoke), to(#e1e1e1));
background-image: -webkit-linear-gradient(whitesmoke 6.6%, #e1e1e1);
background-image: -moz-linear-gradient(whitesmoke 6.6%, #e1e1e1);
background-image: -o-linear-gradient(whitesmoke 6.6%, #e1e1e1);
}
.select2-container .select2-choice div {
border: none;
background: none;
}
.select2-drop {
padding-top: 8px;
}
.select2-no-results, .select2-searching {
padding: 7px;
color: #666;
}

View File

@ -4,21 +4,8 @@
*
*/
.ui_basic {
.app_logo {
.separator {
margin-left: 0;
margin-right: 0;
}
}
.separator {
float: left;
height: 60px;
width: 1px;
background: white;
border-left: 1px solid #DDD;
margin-top: -10px;
margin-left: 10px;
margin-right: 10px;
}
}

View File

@ -17,6 +17,15 @@
&.navbar-gitlab {
.navbar-inner {
background: #657;
.app_logo {
&:hover {
background-color: #6A5A7A;
}
}
.separator {
background: #546;
border-left: 1px solid #706080;
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More