diff options
author | Alex Denisov <1101.debian@gmail.com> | 2012-09-07 09:39:34 +0300 |
---|---|---|
committer | Alex Denisov <1101.debian@gmail.com> | 2012-09-07 09:39:34 +0300 |
commit | ed4fbcf6b004bacfe9ad3c99296d543921c477ed (patch) | |
tree | 61d45559d8e3a628d41b72e5aa512770ef50a8cb | |
parent | 38b17e4e063506b499ddebdff275d1d11e2f97b6 (diff) | |
parent | 5cb9e7eedc24c418bbb3bce2f48a7c585f9cb439 (diff) | |
download | gitlab-ce-ed4fbcf6b004bacfe9ad3c99296d543921c477ed.tar.gz |
Merge branch 'master' into fix_project_access_notification
953 files changed, 941 insertions, 1039 deletions
diff --git a/.gitignore b/.gitignore index 760487ca9b3..d22760e7780 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,4 @@ config/unicorn.rb db/data.yml .idea .DS_Store - +.chef diff --git a/.travis.yml b/.travis.yml index da67e37dbd0..bb4c4a79245 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,8 @@ branches: - 'master' rvm: - 1.9.3 +services: + - mysql before_script: - "cp config/database.yml.$DB config/database.yml" - "cp config/gitlab.yml.example config/gitlab.yml" diff --git a/Gemfile.lock b/Gemfile.lock index da6c068b23f..235c49a6c00 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -323,7 +323,7 @@ GEM multi_json (~> 1.0) rubyzip settingslogic (2.0.8) - shoulda-matchers (1.1.0) + shoulda-matchers (1.3.0) activesupport (>= 3.0.0) simplecov (0.6.4) multi_json (~> 1.0) diff --git a/app/assets/images/emoji/+1.png b/app/assets/images/emoji/+1.png Binary files differnew file mode 100755 index 00000000000..3a43ecae295 --- /dev/null +++ b/app/assets/images/emoji/+1.png diff --git a/app/assets/images/emoji/-1.png b/app/assets/images/emoji/-1.png Binary files differnew file mode 100755 index 00000000000..41c6b825d6a --- /dev/null +++ b/app/assets/images/emoji/-1.png diff --git a/app/assets/images/emoji/100.png b/app/assets/images/emoji/100.png Binary files differnew file mode 100755 index 00000000000..bce9ab14f59 --- /dev/null +++ b/app/assets/images/emoji/100.png diff --git a/app/assets/images/emoji/109.png b/app/assets/images/emoji/109.png Binary files differnew file mode 100755 index 00000000000..74b9d5d38cd --- /dev/null +++ b/app/assets/images/emoji/109.png diff --git a/app/assets/images/emoji/1234.png b/app/assets/images/emoji/1234.png Binary files differnew file mode 100755 index 00000000000..c47c2e1f9f0 --- /dev/null +++ b/app/assets/images/emoji/1234.png diff --git a/app/assets/images/emoji/8ball.png b/app/assets/images/emoji/8ball.png Binary files differnew file mode 100755 index 00000000000..c2c710d4501 --- /dev/null +++ b/app/assets/images/emoji/8ball.png diff --git a/app/assets/images/emoji/a.png b/app/assets/images/emoji/a.png Binary files differnew file mode 100755 index 00000000000..09ff6d6f184 --- /dev/null +++ b/app/assets/images/emoji/a.png diff --git a/app/assets/images/emoji/ab.png b/app/assets/images/emoji/ab.png Binary files differnew file mode 100755 index 00000000000..2a522204767 --- /dev/null +++ b/app/assets/images/emoji/ab.png diff --git a/app/assets/images/emoji/abc.png b/app/assets/images/emoji/abc.png Binary files differnew file mode 100755 index 00000000000..505d40a1557 --- /dev/null +++ b/app/assets/images/emoji/abc.png diff --git a/app/assets/images/emoji/abcd.png b/app/assets/images/emoji/abcd.png Binary files differnew file mode 100755 index 00000000000..5218470b63c --- /dev/null +++ b/app/assets/images/emoji/abcd.png diff --git a/app/assets/images/emoji/accept.png b/app/assets/images/emoji/accept.png Binary files differnew file mode 100755 index 00000000000..2d200903188 --- /dev/null +++ b/app/assets/images/emoji/accept.png diff --git a/app/assets/images/emoji/aerial_tramway.png b/app/assets/images/emoji/aerial_tramway.png Binary files differnew file mode 100755 index 00000000000..38f6dfe2334 --- /dev/null +++ b/app/assets/images/emoji/aerial_tramway.png diff --git a/app/assets/images/emoji/airplane.png b/app/assets/images/emoji/airplane.png Binary files differnew file mode 100755 index 00000000000..8407cb67575 --- /dev/null +++ b/app/assets/images/emoji/airplane.png diff --git a/app/assets/images/emoji/alarm_clock.png b/app/assets/images/emoji/alarm_clock.png Binary files differnew file mode 100755 index 00000000000..86ca8c8ed45 --- /dev/null +++ b/app/assets/images/emoji/alarm_clock.png diff --git a/app/assets/images/emoji/alien.png b/app/assets/images/emoji/alien.png Binary files differnew file mode 100755 index 00000000000..416de47be46 --- /dev/null +++ b/app/assets/images/emoji/alien.png diff --git a/app/assets/images/emoji/ambulance.png b/app/assets/images/emoji/ambulance.png Binary files differnew file mode 100755 index 00000000000..b740f45dba2 --- /dev/null +++ b/app/assets/images/emoji/ambulance.png diff --git a/app/assets/images/emoji/anchor.png b/app/assets/images/emoji/anchor.png Binary files differnew file mode 100755 index 00000000000..0c5192e6473 --- /dev/null +++ b/app/assets/images/emoji/anchor.png diff --git a/app/assets/images/emoji/angel.png b/app/assets/images/emoji/angel.png Binary files differnew file mode 100755 index 00000000000..da52c310c64 --- /dev/null +++ b/app/assets/images/emoji/angel.png diff --git a/app/assets/images/emoji/anger.png b/app/assets/images/emoji/anger.png Binary files differnew file mode 100755 index 00000000000..6fb4dca1854 --- /dev/null +++ b/app/assets/images/emoji/anger.png diff --git a/app/assets/images/emoji/angry.png b/app/assets/images/emoji/angry.png Binary files differnew file mode 100755 index 00000000000..f95bfa897ed --- /dev/null +++ b/app/assets/images/emoji/angry.png diff --git a/app/assets/images/emoji/ant.png b/app/assets/images/emoji/ant.png Binary files differnew file mode 100755 index 00000000000..b92d1cc14bd --- /dev/null +++ b/app/assets/images/emoji/ant.png diff --git a/app/assets/images/emoji/apple.png b/app/assets/images/emoji/apple.png Binary files differnew file mode 100755 index 00000000000..08aa17b9513 --- /dev/null +++ b/app/assets/images/emoji/apple.png diff --git a/app/assets/images/emoji/aquarius.png b/app/assets/images/emoji/aquarius.png Binary files differnew file mode 100755 index 00000000000..cbff66edcf3 --- /dev/null +++ b/app/assets/images/emoji/aquarius.png diff --git a/app/assets/images/emoji/aries.png b/app/assets/images/emoji/aries.png Binary files differnew file mode 100755 index 00000000000..899902237c9 --- /dev/null +++ b/app/assets/images/emoji/aries.png diff --git a/app/assets/images/emoji/arrow_backward.png b/app/assets/images/emoji/arrow_backward.png Binary files differnew file mode 100755 index 00000000000..088621834f7 --- /dev/null +++ b/app/assets/images/emoji/arrow_backward.png diff --git a/app/assets/images/emoji/arrow_double_down.png b/app/assets/images/emoji/arrow_double_down.png Binary files differnew file mode 100755 index 00000000000..2ecbebcda13 --- /dev/null +++ b/app/assets/images/emoji/arrow_double_down.png diff --git a/app/assets/images/emoji/arrow_double_up.png b/app/assets/images/emoji/arrow_double_up.png Binary files differnew file mode 100755 index 00000000000..d42979d4bf6 --- /dev/null +++ b/app/assets/images/emoji/arrow_double_up.png diff --git a/app/assets/images/emoji/arrow_down.png b/app/assets/images/emoji/arrow_down.png Binary files differnew file mode 100755 index 00000000000..e6702f02bae --- /dev/null +++ b/app/assets/images/emoji/arrow_down.png diff --git a/app/assets/images/emoji/arrow_down_small.png b/app/assets/images/emoji/arrow_down_small.png Binary files differnew file mode 100755 index 00000000000..f7f2d510137 --- /dev/null +++ b/app/assets/images/emoji/arrow_down_small.png diff --git a/app/assets/images/emoji/arrow_forward.png b/app/assets/images/emoji/arrow_forward.png Binary files differnew file mode 100755 index 00000000000..fbfe711b64d --- /dev/null +++ b/app/assets/images/emoji/arrow_forward.png diff --git a/app/assets/images/emoji/arrow_heading_down.png b/app/assets/images/emoji/arrow_heading_down.png Binary files differnew file mode 100755 index 00000000000..56dd3b9d3c8 --- /dev/null +++ b/app/assets/images/emoji/arrow_heading_down.png diff --git a/app/assets/images/emoji/arrow_heading_up.png b/app/assets/images/emoji/arrow_heading_up.png Binary files differnew file mode 100755 index 00000000000..c8f670a1ef0 --- /dev/null +++ b/app/assets/images/emoji/arrow_heading_up.png diff --git a/app/assets/images/emoji/arrow_left.png b/app/assets/images/emoji/arrow_left.png Binary files differnew file mode 100755 index 00000000000..d64ac619c9d --- /dev/null +++ b/app/assets/images/emoji/arrow_left.png diff --git a/app/assets/images/emoji/arrow_lower_left.png b/app/assets/images/emoji/arrow_lower_left.png Binary files differnew file mode 100755 index 00000000000..55fb03c4121 --- /dev/null +++ b/app/assets/images/emoji/arrow_lower_left.png diff --git a/app/assets/images/emoji/arrow_lower_right.png b/app/assets/images/emoji/arrow_lower_right.png Binary files differnew file mode 100755 index 00000000000..da8fb8294d9 --- /dev/null +++ b/app/assets/images/emoji/arrow_lower_right.png diff --git a/app/assets/images/emoji/arrow_right.png b/app/assets/images/emoji/arrow_right.png Binary files differnew file mode 100755 index 00000000000..6d483b5144f --- /dev/null +++ b/app/assets/images/emoji/arrow_right.png diff --git a/app/assets/images/emoji/arrow_right_hook.png b/app/assets/images/emoji/arrow_right_hook.png Binary files differnew file mode 100755 index 00000000000..8b4ea6e1720 --- /dev/null +++ b/app/assets/images/emoji/arrow_right_hook.png diff --git a/app/assets/images/emoji/arrow_up.png b/app/assets/images/emoji/arrow_up.png Binary files differnew file mode 100755 index 00000000000..b5b0688d3c6 --- /dev/null +++ b/app/assets/images/emoji/arrow_up.png diff --git a/app/assets/images/emoji/arrow_up_down.png b/app/assets/images/emoji/arrow_up_down.png Binary files differnew file mode 100755 index 00000000000..b718c214582 --- /dev/null +++ b/app/assets/images/emoji/arrow_up_down.png diff --git a/app/assets/images/emoji/arrow_up_small.png b/app/assets/images/emoji/arrow_up_small.png Binary files differnew file mode 100755 index 00000000000..12173319772 --- /dev/null +++ b/app/assets/images/emoji/arrow_up_small.png diff --git a/app/assets/images/emoji/arrow_upper_left.png b/app/assets/images/emoji/arrow_upper_left.png Binary files differnew file mode 100755 index 00000000000..e895fd7b628 --- /dev/null +++ b/app/assets/images/emoji/arrow_upper_left.png diff --git a/app/assets/images/emoji/arrow_upper_right.png b/app/assets/images/emoji/arrow_upper_right.png Binary files differnew file mode 100755 index 00000000000..e23790ba18d --- /dev/null +++ b/app/assets/images/emoji/arrow_upper_right.png diff --git a/app/assets/images/emoji/arrows_clockwise.png b/app/assets/images/emoji/arrows_clockwise.png Binary files differnew file mode 100755 index 00000000000..5f84d7e72b7 --- /dev/null +++ b/app/assets/images/emoji/arrows_clockwise.png diff --git a/app/assets/images/emoji/arrows_counterclockwise.png b/app/assets/images/emoji/arrows_counterclockwise.png Binary files differnew file mode 100755 index 00000000000..1933ae18b90 --- /dev/null +++ b/app/assets/images/emoji/arrows_counterclockwise.png diff --git a/app/assets/images/emoji/art.png b/app/assets/images/emoji/art.png Binary files differnew file mode 100755 index 00000000000..d45212b0340 --- /dev/null +++ b/app/assets/images/emoji/art.png diff --git a/app/assets/images/emoji/articulated_lorry.png b/app/assets/images/emoji/articulated_lorry.png Binary files differnew file mode 100755 index 00000000000..81ec1f91741 --- /dev/null +++ b/app/assets/images/emoji/articulated_lorry.png diff --git a/app/assets/images/emoji/astonished.png b/app/assets/images/emoji/astonished.png Binary files differnew file mode 100755 index 00000000000..858a83484a8 --- /dev/null +++ b/app/assets/images/emoji/astonished.png diff --git a/app/assets/images/emoji/atm.png b/app/assets/images/emoji/atm.png Binary files differnew file mode 100755 index 00000000000..c2846e79218 --- /dev/null +++ b/app/assets/images/emoji/atm.png diff --git a/app/assets/images/emoji/b.png b/app/assets/images/emoji/b.png Binary files differnew file mode 100755 index 00000000000..8742b3d2e3e --- /dev/null +++ b/app/assets/images/emoji/b.png diff --git a/app/assets/images/emoji/baby.png b/app/assets/images/emoji/baby.png Binary files differnew file mode 100755 index 00000000000..3b29da40b60 --- /dev/null +++ b/app/assets/images/emoji/baby.png diff --git a/app/assets/images/emoji/baby_bottle.png b/app/assets/images/emoji/baby_bottle.png Binary files differnew file mode 100755 index 00000000000..1b2cfe5e301 --- /dev/null +++ b/app/assets/images/emoji/baby_bottle.png diff --git a/app/assets/images/emoji/baby_chick.png b/app/assets/images/emoji/baby_chick.png Binary files differnew file mode 100755 index 00000000000..9be8d293006 --- /dev/null +++ b/app/assets/images/emoji/baby_chick.png diff --git a/app/assets/images/emoji/baby_symbol.png b/app/assets/images/emoji/baby_symbol.png Binary files differnew file mode 100755 index 00000000000..2e58725cf56 --- /dev/null +++ b/app/assets/images/emoji/baby_symbol.png diff --git a/app/assets/images/emoji/baggage_claim.png b/app/assets/images/emoji/baggage_claim.png Binary files differnew file mode 100755 index 00000000000..59ae044a45e --- /dev/null +++ b/app/assets/images/emoji/baggage_claim.png diff --git a/app/assets/images/emoji/balloon.png b/app/assets/images/emoji/balloon.png Binary files differnew file mode 100755 index 00000000000..03448970256 --- /dev/null +++ b/app/assets/images/emoji/balloon.png diff --git a/app/assets/images/emoji/ballot_box_with_check.png b/app/assets/images/emoji/ballot_box_with_check.png Binary files differnew file mode 100755 index 00000000000..f07a466c778 --- /dev/null +++ b/app/assets/images/emoji/ballot_box_with_check.png diff --git a/app/assets/images/emoji/bamboo.png b/app/assets/images/emoji/bamboo.png Binary files differnew file mode 100755 index 00000000000..fc858d0fc2c --- /dev/null +++ b/app/assets/images/emoji/bamboo.png diff --git a/app/assets/images/emoji/banana.png b/app/assets/images/emoji/banana.png Binary files differnew file mode 100755 index 00000000000..a0563afb958 --- /dev/null +++ b/app/assets/images/emoji/banana.png diff --git a/app/assets/images/emoji/bangbang.png b/app/assets/images/emoji/bangbang.png Binary files differnew file mode 100755 index 00000000000..7270f0afe6e --- /dev/null +++ b/app/assets/images/emoji/bangbang.png diff --git a/app/assets/images/emoji/bank.png b/app/assets/images/emoji/bank.png Binary files differnew file mode 100755 index 00000000000..1faa8777e42 --- /dev/null +++ b/app/assets/images/emoji/bank.png diff --git a/app/assets/images/emoji/bar_chart.png b/app/assets/images/emoji/bar_chart.png Binary files differnew file mode 100755 index 00000000000..7871cc60323 --- /dev/null +++ b/app/assets/images/emoji/bar_chart.png diff --git a/app/assets/images/emoji/barber.png b/app/assets/images/emoji/barber.png Binary files differnew file mode 100755 index 00000000000..a10cb232286 --- /dev/null +++ b/app/assets/images/emoji/barber.png diff --git a/app/assets/images/emoji/baseball.png b/app/assets/images/emoji/baseball.png Binary files differnew file mode 100755 index 00000000000..da004e2ead0 --- /dev/null +++ b/app/assets/images/emoji/baseball.png diff --git a/app/assets/images/emoji/basketball.png b/app/assets/images/emoji/basketball.png Binary files differnew file mode 100755 index 00000000000..ef694bec4c9 --- /dev/null +++ b/app/assets/images/emoji/basketball.png diff --git a/app/assets/images/emoji/bath.png b/app/assets/images/emoji/bath.png Binary files differnew file mode 100755 index 00000000000..8f75d1d2499 --- /dev/null +++ b/app/assets/images/emoji/bath.png diff --git a/app/assets/images/emoji/bathtub.png b/app/assets/images/emoji/bathtub.png Binary files differnew file mode 100755 index 00000000000..1c3f844ab26 --- /dev/null +++ b/app/assets/images/emoji/bathtub.png diff --git a/app/assets/images/emoji/battery.png b/app/assets/images/emoji/battery.png Binary files differnew file mode 100755 index 00000000000..aa7eedce4bb --- /dev/null +++ b/app/assets/images/emoji/battery.png diff --git a/app/assets/images/emoji/bear.png b/app/assets/images/emoji/bear.png Binary files differnew file mode 100755 index 00000000000..f5afe920e8e --- /dev/null +++ b/app/assets/images/emoji/bear.png diff --git a/app/assets/images/emoji/beer.png b/app/assets/images/emoji/beer.png Binary files differnew file mode 100755 index 00000000000..cd78bed7440 --- /dev/null +++ b/app/assets/images/emoji/beer.png diff --git a/app/assets/images/emoji/beers.png b/app/assets/images/emoji/beers.png Binary files differnew file mode 100755 index 00000000000..cc5e4ab5aa9 --- /dev/null +++ b/app/assets/images/emoji/beers.png diff --git a/app/assets/images/emoji/beetle.png b/app/assets/images/emoji/beetle.png Binary files differnew file mode 100755 index 00000000000..222577ca7ea --- /dev/null +++ b/app/assets/images/emoji/beetle.png diff --git a/app/assets/images/emoji/beginner.png b/app/assets/images/emoji/beginner.png Binary files differnew file mode 100755 index 00000000000..1f022d175da --- /dev/null +++ b/app/assets/images/emoji/beginner.png diff --git a/app/assets/images/emoji/bell.png b/app/assets/images/emoji/bell.png Binary files differnew file mode 100755 index 00000000000..69acceb286e --- /dev/null +++ b/app/assets/images/emoji/bell.png diff --git a/app/assets/images/emoji/bento.png b/app/assets/images/emoji/bento.png Binary files differnew file mode 100755 index 00000000000..c6d99e89b67 --- /dev/null +++ b/app/assets/images/emoji/bento.png diff --git a/app/assets/images/emoji/bicyclist.png b/app/assets/images/emoji/bicyclist.png Binary files differnew file mode 100755 index 00000000000..4e3e0549c21 --- /dev/null +++ b/app/assets/images/emoji/bicyclist.png diff --git a/app/assets/images/emoji/bike.png b/app/assets/images/emoji/bike.png Binary files differnew file mode 100755 index 00000000000..65738602722 --- /dev/null +++ b/app/assets/images/emoji/bike.png diff --git a/app/assets/images/emoji/bikini.png b/app/assets/images/emoji/bikini.png Binary files differnew file mode 100755 index 00000000000..4ff63b40f88 --- /dev/null +++ b/app/assets/images/emoji/bikini.png diff --git a/app/assets/images/emoji/bird.png b/app/assets/images/emoji/bird.png Binary files differnew file mode 100755 index 00000000000..e6be8c02786 --- /dev/null +++ b/app/assets/images/emoji/bird.png diff --git a/app/assets/images/emoji/birthday.png b/app/assets/images/emoji/birthday.png Binary files differnew file mode 100755 index 00000000000..36e8edcbec4 --- /dev/null +++ b/app/assets/images/emoji/birthday.png diff --git a/app/assets/images/emoji/black_circle.png b/app/assets/images/emoji/black_circle.png Binary files differnew file mode 100755 index 00000000000..e46f9df615f --- /dev/null +++ b/app/assets/images/emoji/black_circle.png diff --git a/app/assets/images/emoji/black_joker.png b/app/assets/images/emoji/black_joker.png Binary files differnew file mode 100755 index 00000000000..4c78f3614d7 --- /dev/null +++ b/app/assets/images/emoji/black_joker.png diff --git a/app/assets/images/emoji/black_nib.png b/app/assets/images/emoji/black_nib.png Binary files differnew file mode 100755 index 00000000000..29f6994c11a --- /dev/null +++ b/app/assets/images/emoji/black_nib.png diff --git a/app/assets/images/emoji/black_square.png b/app/assets/images/emoji/black_square.png Binary files differnew file mode 100755 index 00000000000..71da10de81c --- /dev/null +++ b/app/assets/images/emoji/black_square.png diff --git a/app/assets/images/emoji/blossom.png b/app/assets/images/emoji/blossom.png Binary files differnew file mode 100755 index 00000000000..55a97353b47 --- /dev/null +++ b/app/assets/images/emoji/blossom.png diff --git a/app/assets/images/emoji/blowfish.png b/app/assets/images/emoji/blowfish.png Binary files differnew file mode 100755 index 00000000000..a1d47cb7e69 --- /dev/null +++ b/app/assets/images/emoji/blowfish.png diff --git a/app/assets/images/emoji/blue_book.png b/app/assets/images/emoji/blue_book.png Binary files differnew file mode 100755 index 00000000000..e2b9e8c797a --- /dev/null +++ b/app/assets/images/emoji/blue_book.png diff --git a/app/assets/images/emoji/blue_car.png b/app/assets/images/emoji/blue_car.png Binary files differnew file mode 100755 index 00000000000..978291e087d --- /dev/null +++ b/app/assets/images/emoji/blue_car.png diff --git a/app/assets/images/emoji/blue_heart.png b/app/assets/images/emoji/blue_heart.png Binary files differnew file mode 100755 index 00000000000..baa29b31bcd --- /dev/null +++ b/app/assets/images/emoji/blue_heart.png diff --git a/app/assets/images/emoji/blush.png b/app/assets/images/emoji/blush.png Binary files differnew file mode 100755 index 00000000000..3a95eb61a3a --- /dev/null +++ b/app/assets/images/emoji/blush.png diff --git a/app/assets/images/emoji/boar.png b/app/assets/images/emoji/boar.png Binary files differnew file mode 100755 index 00000000000..8196ad4a14b --- /dev/null +++ b/app/assets/images/emoji/boar.png diff --git a/app/assets/images/emoji/boat.png b/app/assets/images/emoji/boat.png Binary files differnew file mode 100755 index 00000000000..ff656dc62bb --- /dev/null +++ b/app/assets/images/emoji/boat.png diff --git a/app/assets/images/emoji/bomb.png b/app/assets/images/emoji/bomb.png Binary files differnew file mode 100755 index 00000000000..3289787dcf9 --- /dev/null +++ b/app/assets/images/emoji/bomb.png diff --git a/app/assets/images/emoji/book.png b/app/assets/images/emoji/book.png Binary files differnew file mode 100755 index 00000000000..8b698415c3d --- /dev/null +++ b/app/assets/images/emoji/book.png diff --git a/app/assets/images/emoji/bookmark.png b/app/assets/images/emoji/bookmark.png Binary files differnew file mode 100755 index 00000000000..dbee45c605b --- /dev/null +++ b/app/assets/images/emoji/bookmark.png diff --git a/app/assets/images/emoji/bookmark_tabs.png b/app/assets/images/emoji/bookmark_tabs.png Binary files differnew file mode 100755 index 00000000000..0c4e3bf17df --- /dev/null +++ b/app/assets/images/emoji/bookmark_tabs.png diff --git a/app/assets/images/emoji/books.png b/app/assets/images/emoji/books.png Binary files differnew file mode 100755 index 00000000000..dca06a1ad99 --- /dev/null +++ b/app/assets/images/emoji/books.png diff --git a/app/assets/images/emoji/boot.png b/app/assets/images/emoji/boot.png Binary files differnew file mode 100755 index 00000000000..58d0fdbcd0c --- /dev/null +++ b/app/assets/images/emoji/boot.png diff --git a/app/assets/images/emoji/bouquet.png b/app/assets/images/emoji/bouquet.png Binary files differnew file mode 100755 index 00000000000..ce637832e17 --- /dev/null +++ b/app/assets/images/emoji/bouquet.png diff --git a/app/assets/images/emoji/bow.png b/app/assets/images/emoji/bow.png Binary files differnew file mode 100755 index 00000000000..024cb610492 --- /dev/null +++ b/app/assets/images/emoji/bow.png diff --git a/app/assets/images/emoji/bowling.png b/app/assets/images/emoji/bowling.png Binary files differnew file mode 100755 index 00000000000..13d8ece2ee5 --- /dev/null +++ b/app/assets/images/emoji/bowling.png diff --git a/app/assets/images/emoji/bowtie.png b/app/assets/images/emoji/bowtie.png Binary files differnew file mode 100755 index 00000000000..28ff0c787d5 --- /dev/null +++ b/app/assets/images/emoji/bowtie.png diff --git a/app/assets/images/emoji/boy.png b/app/assets/images/emoji/boy.png Binary files differnew file mode 100755 index 00000000000..f79f1f29807 --- /dev/null +++ b/app/assets/images/emoji/boy.png diff --git a/app/assets/images/emoji/bread.png b/app/assets/images/emoji/bread.png Binary files differnew file mode 100755 index 00000000000..7e7c63753d3 --- /dev/null +++ b/app/assets/images/emoji/bread.png diff --git a/app/assets/images/emoji/bride_with_veil.png b/app/assets/images/emoji/bride_with_veil.png Binary files differnew file mode 100755 index 00000000000..dd0b0cfdad1 --- /dev/null +++ b/app/assets/images/emoji/bride_with_veil.png diff --git a/app/assets/images/emoji/bridge_at_night.png b/app/assets/images/emoji/bridge_at_night.png Binary files differnew file mode 100755 index 00000000000..495b06c3dfe --- /dev/null +++ b/app/assets/images/emoji/bridge_at_night.png diff --git a/app/assets/images/emoji/briefcase.png b/app/assets/images/emoji/briefcase.png Binary files differnew file mode 100755 index 00000000000..46e82b0010c --- /dev/null +++ b/app/assets/images/emoji/briefcase.png diff --git a/app/assets/images/emoji/broken_heart.png b/app/assets/images/emoji/broken_heart.png Binary files differnew file mode 100755 index 00000000000..a1bc850ecb4 --- /dev/null +++ b/app/assets/images/emoji/broken_heart.png diff --git a/app/assets/images/emoji/bug.png b/app/assets/images/emoji/bug.png Binary files differnew file mode 100755 index 00000000000..c2eaf7a708d --- /dev/null +++ b/app/assets/images/emoji/bug.png diff --git a/app/assets/images/emoji/bulb.png b/app/assets/images/emoji/bulb.png Binary files differnew file mode 100755 index 00000000000..23afca1c73f --- /dev/null +++ b/app/assets/images/emoji/bulb.png diff --git a/app/assets/images/emoji/bullettrain_front.png b/app/assets/images/emoji/bullettrain_front.png Binary files differnew file mode 100755 index 00000000000..16651acff8e --- /dev/null +++ b/app/assets/images/emoji/bullettrain_front.png diff --git a/app/assets/images/emoji/bullettrain_side.png b/app/assets/images/emoji/bullettrain_side.png Binary files differnew file mode 100755 index 00000000000..8eca368458a --- /dev/null +++ b/app/assets/images/emoji/bullettrain_side.png diff --git a/app/assets/images/emoji/bus.png b/app/assets/images/emoji/bus.png Binary files differnew file mode 100755 index 00000000000..823aa39e49d --- /dev/null +++ b/app/assets/images/emoji/bus.png diff --git a/app/assets/images/emoji/busstop.png b/app/assets/images/emoji/busstop.png Binary files differnew file mode 100755 index 00000000000..94894847b54 --- /dev/null +++ b/app/assets/images/emoji/busstop.png diff --git a/app/assets/images/emoji/bust_in_silhouette.png b/app/assets/images/emoji/bust_in_silhouette.png Binary files differnew file mode 100755 index 00000000000..d1313986925 --- /dev/null +++ b/app/assets/images/emoji/bust_in_silhouette.png diff --git a/app/assets/images/emoji/busts_in_silhouette.png b/app/assets/images/emoji/busts_in_silhouette.png Binary files differnew file mode 100755 index 00000000000..1f3aabcff60 --- /dev/null +++ b/app/assets/images/emoji/busts_in_silhouette.png diff --git a/app/assets/images/emoji/cactus.png b/app/assets/images/emoji/cactus.png Binary files differnew file mode 100755 index 00000000000..5a2c3cc725e --- /dev/null +++ b/app/assets/images/emoji/cactus.png diff --git a/app/assets/images/emoji/cake.png b/app/assets/images/emoji/cake.png Binary files differnew file mode 100755 index 00000000000..efeb9b4b214 --- /dev/null +++ b/app/assets/images/emoji/cake.png diff --git a/app/assets/images/emoji/calendar.png b/app/assets/images/emoji/calendar.png Binary files differnew file mode 100755 index 00000000000..900b868bb94 --- /dev/null +++ b/app/assets/images/emoji/calendar.png diff --git a/app/assets/images/emoji/calling.png b/app/assets/images/emoji/calling.png Binary files differnew file mode 100755 index 00000000000..837897f261b --- /dev/null +++ b/app/assets/images/emoji/calling.png diff --git a/app/assets/images/emoji/camel.png b/app/assets/images/emoji/camel.png Binary files differnew file mode 100755 index 00000000000..496c186ae6c --- /dev/null +++ b/app/assets/images/emoji/camel.png diff --git a/app/assets/images/emoji/camera.png b/app/assets/images/emoji/camera.png Binary files differnew file mode 100755 index 00000000000..397d03b3935 --- /dev/null +++ b/app/assets/images/emoji/camera.png diff --git a/app/assets/images/emoji/cancer.png b/app/assets/images/emoji/cancer.png Binary files differnew file mode 100755 index 00000000000..ea43a4a2a04 --- /dev/null +++ b/app/assets/images/emoji/cancer.png diff --git a/app/assets/images/emoji/candy.png b/app/assets/images/emoji/candy.png Binary files differnew file mode 100755 index 00000000000..33722f236e9 --- /dev/null +++ b/app/assets/images/emoji/candy.png diff --git a/app/assets/images/emoji/capital_abcd.png b/app/assets/images/emoji/capital_abcd.png Binary files differnew file mode 100755 index 00000000000..ffc0cba4b43 --- /dev/null +++ b/app/assets/images/emoji/capital_abcd.png diff --git a/app/assets/images/emoji/capricorn.png b/app/assets/images/emoji/capricorn.png Binary files differnew file mode 100755 index 00000000000..f2044e78935 --- /dev/null +++ b/app/assets/images/emoji/capricorn.png diff --git a/app/assets/images/emoji/car.png b/app/assets/images/emoji/car.png Binary files differnew file mode 100755 index 00000000000..d70a2f06263 --- /dev/null +++ b/app/assets/images/emoji/car.png diff --git a/app/assets/images/emoji/card_index.png b/app/assets/images/emoji/card_index.png Binary files differnew file mode 100755 index 00000000000..374e94e9e84 --- /dev/null +++ b/app/assets/images/emoji/card_index.png diff --git a/app/assets/images/emoji/carousel_horse.png b/app/assets/images/emoji/carousel_horse.png Binary files differnew file mode 100755 index 00000000000..765d2c0a8bd --- /dev/null +++ b/app/assets/images/emoji/carousel_horse.png diff --git a/app/assets/images/emoji/cat.png b/app/assets/images/emoji/cat.png Binary files differnew file mode 100755 index 00000000000..09b9ef79a7d --- /dev/null +++ b/app/assets/images/emoji/cat.png diff --git a/app/assets/images/emoji/cat2.png b/app/assets/images/emoji/cat2.png Binary files differnew file mode 100755 index 00000000000..977c992c526 --- /dev/null +++ b/app/assets/images/emoji/cat2.png diff --git a/app/assets/images/emoji/cd.png b/app/assets/images/emoji/cd.png Binary files differnew file mode 100755 index 00000000000..baff835c489 --- /dev/null +++ b/app/assets/images/emoji/cd.png diff --git a/app/assets/images/emoji/chart.png b/app/assets/images/emoji/chart.png Binary files differnew file mode 100755 index 00000000000..ac2c4bb093e --- /dev/null +++ b/app/assets/images/emoji/chart.png diff --git a/app/assets/images/emoji/chart_with_downwards_trend.png b/app/assets/images/emoji/chart_with_downwards_trend.png Binary files differnew file mode 100755 index 00000000000..65b82f04413 --- /dev/null +++ b/app/assets/images/emoji/chart_with_downwards_trend.png diff --git a/app/assets/images/emoji/chart_with_upwards_trend.png b/app/assets/images/emoji/chart_with_upwards_trend.png Binary files differnew file mode 100755 index 00000000000..de3e9ba7b57 --- /dev/null +++ b/app/assets/images/emoji/chart_with_upwards_trend.png diff --git a/app/assets/images/emoji/checkered_flag.png b/app/assets/images/emoji/checkered_flag.png Binary files differnew file mode 100755 index 00000000000..ead4a68dd37 --- /dev/null +++ b/app/assets/images/emoji/checkered_flag.png diff --git a/app/assets/images/emoji/cherries.png b/app/assets/images/emoji/cherries.png Binary files differnew file mode 100755 index 00000000000..8d3e044f2f5 --- /dev/null +++ b/app/assets/images/emoji/cherries.png diff --git a/app/assets/images/emoji/cherry_blossom.png b/app/assets/images/emoji/cherry_blossom.png Binary files differnew file mode 100755 index 00000000000..e0315549990 --- /dev/null +++ b/app/assets/images/emoji/cherry_blossom.png diff --git a/app/assets/images/emoji/chestnut.png b/app/assets/images/emoji/chestnut.png Binary files differnew file mode 100755 index 00000000000..066fb6bf6df --- /dev/null +++ b/app/assets/images/emoji/chestnut.png diff --git a/app/assets/images/emoji/chicken.png b/app/assets/images/emoji/chicken.png Binary files differnew file mode 100755 index 00000000000..6d25c0ef4ad --- /dev/null +++ b/app/assets/images/emoji/chicken.png diff --git a/app/assets/images/emoji/children_crossing.png b/app/assets/images/emoji/children_crossing.png Binary files differnew file mode 100755 index 00000000000..b0302ae6258 --- /dev/null +++ b/app/assets/images/emoji/children_crossing.png diff --git a/app/assets/images/emoji/chocolate_bar.png b/app/assets/images/emoji/chocolate_bar.png Binary files differnew file mode 100755 index 00000000000..c7ec19d0796 --- /dev/null +++ b/app/assets/images/emoji/chocolate_bar.png diff --git a/app/assets/images/emoji/christmas_tree.png b/app/assets/images/emoji/christmas_tree.png Binary files differnew file mode 100755 index 00000000000..d813b9593dc --- /dev/null +++ b/app/assets/images/emoji/christmas_tree.png diff --git a/app/assets/images/emoji/church.png b/app/assets/images/emoji/church.png Binary files differnew file mode 100755 index 00000000000..4c07c6b9ea5 --- /dev/null +++ b/app/assets/images/emoji/church.png diff --git a/app/assets/images/emoji/cinema.png b/app/assets/images/emoji/cinema.png Binary files differnew file mode 100755 index 00000000000..a990ccf99c2 --- /dev/null +++ b/app/assets/images/emoji/cinema.png diff --git a/app/assets/images/emoji/circus_tent.png b/app/assets/images/emoji/circus_tent.png Binary files differnew file mode 100755 index 00000000000..4af8719aa03 --- /dev/null +++ b/app/assets/images/emoji/circus_tent.png diff --git a/app/assets/images/emoji/city_sunrise.png b/app/assets/images/emoji/city_sunrise.png Binary files differnew file mode 100755 index 00000000000..91ca2a40b69 --- /dev/null +++ b/app/assets/images/emoji/city_sunrise.png diff --git a/app/assets/images/emoji/city_sunset.png b/app/assets/images/emoji/city_sunset.png Binary files differnew file mode 100755 index 00000000000..7cb178a2cc6 --- /dev/null +++ b/app/assets/images/emoji/city_sunset.png diff --git a/app/assets/images/emoji/cl.png b/app/assets/images/emoji/cl.png Binary files differnew file mode 100755 index 00000000000..15ac67525aa --- /dev/null +++ b/app/assets/images/emoji/cl.png diff --git a/app/assets/images/emoji/clap.png b/app/assets/images/emoji/clap.png Binary files differnew file mode 100755 index 00000000000..d01c982a75a --- /dev/null +++ b/app/assets/images/emoji/clap.png diff --git a/app/assets/images/emoji/clapper.png b/app/assets/images/emoji/clapper.png Binary files differnew file mode 100755 index 00000000000..4e1dc111d76 --- /dev/null +++ b/app/assets/images/emoji/clapper.png diff --git a/app/assets/images/emoji/clipboard.png b/app/assets/images/emoji/clipboard.png Binary files differnew file mode 100755 index 00000000000..e2c74e6df82 --- /dev/null +++ b/app/assets/images/emoji/clipboard.png diff --git a/app/assets/images/emoji/clock1.png b/app/assets/images/emoji/clock1.png Binary files differnew file mode 100755 index 00000000000..9174d4e0bc0 --- /dev/null +++ b/app/assets/images/emoji/clock1.png diff --git a/app/assets/images/emoji/clock10.png b/app/assets/images/emoji/clock10.png Binary files differnew file mode 100755 index 00000000000..39f590d6945 --- /dev/null +++ b/app/assets/images/emoji/clock10.png diff --git a/app/assets/images/emoji/clock1030.png b/app/assets/images/emoji/clock1030.png Binary files differnew file mode 100755 index 00000000000..84a3bc8fbd0 --- /dev/null +++ b/app/assets/images/emoji/clock1030.png diff --git a/app/assets/images/emoji/clock11.png b/app/assets/images/emoji/clock11.png Binary files differnew file mode 100755 index 00000000000..ddb53fadad6 --- /dev/null +++ b/app/assets/images/emoji/clock11.png diff --git a/app/assets/images/emoji/clock1130.png b/app/assets/images/emoji/clock1130.png Binary files differnew file mode 100755 index 00000000000..415999ec838 --- /dev/null +++ b/app/assets/images/emoji/clock1130.png diff --git a/app/assets/images/emoji/clock12.png b/app/assets/images/emoji/clock12.png Binary files differnew file mode 100755 index 00000000000..87b132878b7 --- /dev/null +++ b/app/assets/images/emoji/clock12.png diff --git a/app/assets/images/emoji/clock1230.png b/app/assets/images/emoji/clock1230.png Binary files differnew file mode 100755 index 00000000000..a6527154d1f --- /dev/null +++ b/app/assets/images/emoji/clock1230.png diff --git a/app/assets/images/emoji/clock130.png b/app/assets/images/emoji/clock130.png Binary files differnew file mode 100755 index 00000000000..df939201900 --- /dev/null +++ b/app/assets/images/emoji/clock130.png diff --git a/app/assets/images/emoji/clock2.png b/app/assets/images/emoji/clock2.png Binary files differnew file mode 100755 index 00000000000..65b3b3af0e1 --- /dev/null +++ b/app/assets/images/emoji/clock2.png diff --git a/app/assets/images/emoji/clock230.png b/app/assets/images/emoji/clock230.png Binary files differnew file mode 100755 index 00000000000..f12c6912af7 --- /dev/null +++ b/app/assets/images/emoji/clock230.png diff --git a/app/assets/images/emoji/clock3.png b/app/assets/images/emoji/clock3.png Binary files differnew file mode 100755 index 00000000000..3e44d64e2fb --- /dev/null +++ b/app/assets/images/emoji/clock3.png diff --git a/app/assets/images/emoji/clock330.png b/app/assets/images/emoji/clock330.png Binary files differnew file mode 100755 index 00000000000..1dc9628ea24 --- /dev/null +++ b/app/assets/images/emoji/clock330.png diff --git a/app/assets/images/emoji/clock4.png b/app/assets/images/emoji/clock4.png Binary files differnew file mode 100755 index 00000000000..948ed1a380c --- /dev/null +++ b/app/assets/images/emoji/clock4.png diff --git a/app/assets/images/emoji/clock430.png b/app/assets/images/emoji/clock430.png Binary files differnew file mode 100755 index 00000000000..7726aaea1bc --- /dev/null +++ b/app/assets/images/emoji/clock430.png diff --git a/app/assets/images/emoji/clock5.png b/app/assets/images/emoji/clock5.png Binary files differnew file mode 100755 index 00000000000..b010b4f8aaf --- /dev/null +++ b/app/assets/images/emoji/clock5.png diff --git a/app/assets/images/emoji/clock530.png b/app/assets/images/emoji/clock530.png Binary files differnew file mode 100755 index 00000000000..e08d4ad2bac --- /dev/null +++ b/app/assets/images/emoji/clock530.png diff --git a/app/assets/images/emoji/clock6.png b/app/assets/images/emoji/clock6.png Binary files differnew file mode 100755 index 00000000000..76bf8cf1854 --- /dev/null +++ b/app/assets/images/emoji/clock6.png diff --git a/app/assets/images/emoji/clock630.png b/app/assets/images/emoji/clock630.png Binary files differnew file mode 100755 index 00000000000..46f0681f1c4 --- /dev/null +++ b/app/assets/images/emoji/clock630.png diff --git a/app/assets/images/emoji/clock7.png b/app/assets/images/emoji/clock7.png Binary files differnew file mode 100755 index 00000000000..d48f645d835 --- /dev/null +++ b/app/assets/images/emoji/clock7.png diff --git a/app/assets/images/emoji/clock730.png b/app/assets/images/emoji/clock730.png Binary files differnew file mode 100755 index 00000000000..18aab22fd8c --- /dev/null +++ b/app/assets/images/emoji/clock730.png diff --git a/app/assets/images/emoji/clock8.png b/app/assets/images/emoji/clock8.png Binary files differnew file mode 100755 index 00000000000..74c770d891c --- /dev/null +++ b/app/assets/images/emoji/clock8.png diff --git a/app/assets/images/emoji/clock830.png b/app/assets/images/emoji/clock830.png Binary files differnew file mode 100755 index 00000000000..ec3e382dd4c --- /dev/null +++ b/app/assets/images/emoji/clock830.png diff --git a/app/assets/images/emoji/clock9.png b/app/assets/images/emoji/clock9.png Binary files differnew file mode 100755 index 00000000000..f009d14ac11 --- /dev/null +++ b/app/assets/images/emoji/clock9.png diff --git a/app/assets/images/emoji/clock930.png b/app/assets/images/emoji/clock930.png Binary files differnew file mode 100755 index 00000000000..fd35221428f --- /dev/null +++ b/app/assets/images/emoji/clock930.png diff --git a/app/assets/images/emoji/closed_book.png b/app/assets/images/emoji/closed_book.png Binary files differnew file mode 100755 index 00000000000..484029c5ebc --- /dev/null +++ b/app/assets/images/emoji/closed_book.png diff --git a/app/assets/images/emoji/closed_lock_with_key.png b/app/assets/images/emoji/closed_lock_with_key.png Binary files differnew file mode 100755 index 00000000000..e6fdf6cb204 --- /dev/null +++ b/app/assets/images/emoji/closed_lock_with_key.png diff --git a/app/assets/images/emoji/closed_umbrella.png b/app/assets/images/emoji/closed_umbrella.png Binary files differnew file mode 100755 index 00000000000..0b719f086b1 --- /dev/null +++ b/app/assets/images/emoji/closed_umbrella.png diff --git a/app/assets/images/emoji/cloud.png b/app/assets/images/emoji/cloud.png Binary files differnew file mode 100755 index 00000000000..b31c08c0b88 --- /dev/null +++ b/app/assets/images/emoji/cloud.png diff --git a/app/assets/images/emoji/clubs.png b/app/assets/images/emoji/clubs.png Binary files differnew file mode 100755 index 00000000000..bfab5365695 --- /dev/null +++ b/app/assets/images/emoji/clubs.png diff --git a/app/assets/images/emoji/cn.png b/app/assets/images/emoji/cn.png Binary files differnew file mode 100755 index 00000000000..b30dcc53df9 --- /dev/null +++ b/app/assets/images/emoji/cn.png diff --git a/app/assets/images/emoji/cocktail.png b/app/assets/images/emoji/cocktail.png Binary files differnew file mode 100755 index 00000000000..28b45ea5145 --- /dev/null +++ b/app/assets/images/emoji/cocktail.png diff --git a/app/assets/images/emoji/coffee.png b/app/assets/images/emoji/coffee.png Binary files differnew file mode 100755 index 00000000000..57e1adcb04a --- /dev/null +++ b/app/assets/images/emoji/coffee.png diff --git a/app/assets/images/emoji/cold_sweat.png b/app/assets/images/emoji/cold_sweat.png Binary files differnew file mode 100755 index 00000000000..b9e39bc60fb --- /dev/null +++ b/app/assets/images/emoji/cold_sweat.png diff --git a/app/assets/images/emoji/collision.png b/app/assets/images/emoji/collision.png Binary files differnew file mode 100755 index 00000000000..bddeb8f49f8 --- /dev/null +++ b/app/assets/images/emoji/collision.png diff --git a/app/assets/images/emoji/computer.png b/app/assets/images/emoji/computer.png Binary files differnew file mode 100755 index 00000000000..d4d2687627e --- /dev/null +++ b/app/assets/images/emoji/computer.png diff --git a/app/assets/images/emoji/confetti_ball.png b/app/assets/images/emoji/confetti_ball.png Binary files differnew file mode 100755 index 00000000000..bd293e3d874 --- /dev/null +++ b/app/assets/images/emoji/confetti_ball.png diff --git a/app/assets/images/emoji/confounded.png b/app/assets/images/emoji/confounded.png Binary files differnew file mode 100755 index 00000000000..762c3766abc --- /dev/null +++ b/app/assets/images/emoji/confounded.png diff --git a/app/assets/images/emoji/congratulations.png b/app/assets/images/emoji/congratulations.png Binary files differnew file mode 100755 index 00000000000..dcbb1d229ed --- /dev/null +++ b/app/assets/images/emoji/congratulations.png diff --git a/app/assets/images/emoji/construction.png b/app/assets/images/emoji/construction.png Binary files differnew file mode 100755 index 00000000000..523e9f10bf6 --- /dev/null +++ b/app/assets/images/emoji/construction.png diff --git a/app/assets/images/emoji/construction_worker.png b/app/assets/images/emoji/construction_worker.png Binary files differnew file mode 100755 index 00000000000..4d648604786 --- /dev/null +++ b/app/assets/images/emoji/construction_worker.png diff --git a/app/assets/images/emoji/convenience_store.png b/app/assets/images/emoji/convenience_store.png Binary files differnew file mode 100755 index 00000000000..671696c2dfd --- /dev/null +++ b/app/assets/images/emoji/convenience_store.png diff --git a/app/assets/images/emoji/cookie.png b/app/assets/images/emoji/cookie.png Binary files differnew file mode 100755 index 00000000000..653edb258c6 --- /dev/null +++ b/app/assets/images/emoji/cookie.png diff --git a/app/assets/images/emoji/cool.png b/app/assets/images/emoji/cool.png Binary files differnew file mode 100755 index 00000000000..937dcd79210 --- /dev/null +++ b/app/assets/images/emoji/cool.png diff --git a/app/assets/images/emoji/cop.png b/app/assets/images/emoji/cop.png Binary files differnew file mode 100755 index 00000000000..43a5a84f821 --- /dev/null +++ b/app/assets/images/emoji/cop.png diff --git a/app/assets/images/emoji/copyright.png b/app/assets/images/emoji/copyright.png Binary files differnew file mode 100755 index 00000000000..38493c33fca --- /dev/null +++ b/app/assets/images/emoji/copyright.png diff --git a/app/assets/images/emoji/corn.png b/app/assets/images/emoji/corn.png Binary files differnew file mode 100755 index 00000000000..fe5d8b1287e --- /dev/null +++ b/app/assets/images/emoji/corn.png diff --git a/app/assets/images/emoji/couple.png b/app/assets/images/emoji/couple.png Binary files differnew file mode 100755 index 00000000000..9e51f40e16e --- /dev/null +++ b/app/assets/images/emoji/couple.png diff --git a/app/assets/images/emoji/couple_with_heart.png b/app/assets/images/emoji/couple_with_heart.png Binary files differnew file mode 100755 index 00000000000..c503f40a931 --- /dev/null +++ b/app/assets/images/emoji/couple_with_heart.png diff --git a/app/assets/images/emoji/couplekiss.png b/app/assets/images/emoji/couplekiss.png Binary files differnew file mode 100755 index 00000000000..d02790822ea --- /dev/null +++ b/app/assets/images/emoji/couplekiss.png diff --git a/app/assets/images/emoji/cow.png b/app/assets/images/emoji/cow.png Binary files differnew file mode 100755 index 00000000000..12e1ab6c0bd --- /dev/null +++ b/app/assets/images/emoji/cow.png diff --git a/app/assets/images/emoji/cow2.png b/app/assets/images/emoji/cow2.png Binary files differnew file mode 100755 index 00000000000..594c92155bc --- /dev/null +++ b/app/assets/images/emoji/cow2.png diff --git a/app/assets/images/emoji/credit_card.png b/app/assets/images/emoji/credit_card.png Binary files differnew file mode 100755 index 00000000000..be1c1dd3063 --- /dev/null +++ b/app/assets/images/emoji/credit_card.png diff --git a/app/assets/images/emoji/crocodile.png b/app/assets/images/emoji/crocodile.png Binary files differnew file mode 100755 index 00000000000..7435d5ab3c4 --- /dev/null +++ b/app/assets/images/emoji/crocodile.png diff --git a/app/assets/images/emoji/crossed_flags.png b/app/assets/images/emoji/crossed_flags.png Binary files differnew file mode 100755 index 00000000000..2397bcd0fc9 --- /dev/null +++ b/app/assets/images/emoji/crossed_flags.png diff --git a/app/assets/images/emoji/crown.png b/app/assets/images/emoji/crown.png Binary files differnew file mode 100755 index 00000000000..39da1d52873 --- /dev/null +++ b/app/assets/images/emoji/crown.png diff --git a/app/assets/images/emoji/cry.png b/app/assets/images/emoji/cry.png Binary files differnew file mode 100755 index 00000000000..6d0d9afd284 --- /dev/null +++ b/app/assets/images/emoji/cry.png diff --git a/app/assets/images/emoji/crying_cat_face.png b/app/assets/images/emoji/crying_cat_face.png Binary files differnew file mode 100755 index 00000000000..42d4c27cabf --- /dev/null +++ b/app/assets/images/emoji/crying_cat_face.png diff --git a/app/assets/images/emoji/crystal_ball.png b/app/assets/images/emoji/crystal_ball.png Binary files differnew file mode 100755 index 00000000000..6d2c6c42d44 --- /dev/null +++ b/app/assets/images/emoji/crystal_ball.png diff --git a/app/assets/images/emoji/cupid.png b/app/assets/images/emoji/cupid.png Binary files differnew file mode 100755 index 00000000000..4987284767c --- /dev/null +++ b/app/assets/images/emoji/cupid.png diff --git a/app/assets/images/emoji/curly_loop.png b/app/assets/images/emoji/curly_loop.png Binary files differnew file mode 100755 index 00000000000..8f051aca43e --- /dev/null +++ b/app/assets/images/emoji/curly_loop.png diff --git a/app/assets/images/emoji/currency_exchange.png b/app/assets/images/emoji/currency_exchange.png Binary files differnew file mode 100755 index 00000000000..6ebebe70afb --- /dev/null +++ b/app/assets/images/emoji/currency_exchange.png diff --git a/app/assets/images/emoji/curry.png b/app/assets/images/emoji/curry.png Binary files differnew file mode 100755 index 00000000000..7983c706a40 --- /dev/null +++ b/app/assets/images/emoji/curry.png diff --git a/app/assets/images/emoji/custard.png b/app/assets/images/emoji/custard.png Binary files differnew file mode 100755 index 00000000000..9f843b4c130 --- /dev/null +++ b/app/assets/images/emoji/custard.png diff --git a/app/assets/images/emoji/customs.png b/app/assets/images/emoji/customs.png Binary files differnew file mode 100755 index 00000000000..92691e3117c --- /dev/null +++ b/app/assets/images/emoji/customs.png diff --git a/app/assets/images/emoji/cyclone.png b/app/assets/images/emoji/cyclone.png Binary files differnew file mode 100755 index 00000000000..5fd2e4512f9 --- /dev/null +++ b/app/assets/images/emoji/cyclone.png diff --git a/app/assets/images/emoji/dancer.png b/app/assets/images/emoji/dancer.png Binary files differnew file mode 100755 index 00000000000..6885a0bc3d5 --- /dev/null +++ b/app/assets/images/emoji/dancer.png diff --git a/app/assets/images/emoji/dancers.png b/app/assets/images/emoji/dancers.png Binary files differnew file mode 100755 index 00000000000..2dfb451a73a --- /dev/null +++ b/app/assets/images/emoji/dancers.png diff --git a/app/assets/images/emoji/dango.png b/app/assets/images/emoji/dango.png Binary files differnew file mode 100755 index 00000000000..2d042aebeb5 --- /dev/null +++ b/app/assets/images/emoji/dango.png diff --git a/app/assets/images/emoji/dart.png b/app/assets/images/emoji/dart.png Binary files differnew file mode 100755 index 00000000000..0438fe54f99 --- /dev/null +++ b/app/assets/images/emoji/dart.png diff --git a/app/assets/images/emoji/dash.png b/app/assets/images/emoji/dash.png Binary files differnew file mode 100755 index 00000000000..dc2c0a8f468 --- /dev/null +++ b/app/assets/images/emoji/dash.png diff --git a/app/assets/images/emoji/date.png b/app/assets/images/emoji/date.png Binary files differnew file mode 100755 index 00000000000..6ad2efa5fdc --- /dev/null +++ b/app/assets/images/emoji/date.png diff --git a/app/assets/images/emoji/de.png b/app/assets/images/emoji/de.png Binary files differnew file mode 100755 index 00000000000..16a28548c9e --- /dev/null +++ b/app/assets/images/emoji/de.png diff --git a/app/assets/images/emoji/deciduous_tree.png b/app/assets/images/emoji/deciduous_tree.png Binary files differnew file mode 100755 index 00000000000..9bb16bdfecb --- /dev/null +++ b/app/assets/images/emoji/deciduous_tree.png diff --git a/app/assets/images/emoji/department_store.png b/app/assets/images/emoji/department_store.png Binary files differnew file mode 100755 index 00000000000..68d959c507d --- /dev/null +++ b/app/assets/images/emoji/department_store.png diff --git a/app/assets/images/emoji/diamond_shape_with_a_dot_inside.png b/app/assets/images/emoji/diamond_shape_with_a_dot_inside.png Binary files differnew file mode 100755 index 00000000000..dfd1098b394 --- /dev/null +++ b/app/assets/images/emoji/diamond_shape_with_a_dot_inside.png diff --git a/app/assets/images/emoji/diamonds.png b/app/assets/images/emoji/diamonds.png Binary files differnew file mode 100755 index 00000000000..fe0827758b1 --- /dev/null +++ b/app/assets/images/emoji/diamonds.png diff --git a/app/assets/images/emoji/disappointed.png b/app/assets/images/emoji/disappointed.png Binary files differnew file mode 100755 index 00000000000..82552008719 --- /dev/null +++ b/app/assets/images/emoji/disappointed.png diff --git a/app/assets/images/emoji/dizzy.png b/app/assets/images/emoji/dizzy.png Binary files differnew file mode 100755 index 00000000000..55213d2ddee --- /dev/null +++ b/app/assets/images/emoji/dizzy.png diff --git a/app/assets/images/emoji/dizzy_face.png b/app/assets/images/emoji/dizzy_face.png Binary files differnew file mode 100755 index 00000000000..8001d6ff8f0 --- /dev/null +++ b/app/assets/images/emoji/dizzy_face.png diff --git a/app/assets/images/emoji/do_not_litter.png b/app/assets/images/emoji/do_not_litter.png Binary files differnew file mode 100755 index 00000000000..38c7ae7af23 --- /dev/null +++ b/app/assets/images/emoji/do_not_litter.png diff --git a/app/assets/images/emoji/dog.png b/app/assets/images/emoji/dog.png Binary files differnew file mode 100755 index 00000000000..389a02bf282 --- /dev/null +++ b/app/assets/images/emoji/dog.png diff --git a/app/assets/images/emoji/dog2.png b/app/assets/images/emoji/dog2.png Binary files differnew file mode 100755 index 00000000000..c7f6a24ac80 --- /dev/null +++ b/app/assets/images/emoji/dog2.png diff --git a/app/assets/images/emoji/dollar.png b/app/assets/images/emoji/dollar.png Binary files differnew file mode 100755 index 00000000000..63de8849519 --- /dev/null +++ b/app/assets/images/emoji/dollar.png diff --git a/app/assets/images/emoji/dolls.png b/app/assets/images/emoji/dolls.png Binary files differnew file mode 100755 index 00000000000..47ce33900ca --- /dev/null +++ b/app/assets/images/emoji/dolls.png diff --git a/app/assets/images/emoji/dolphin.png b/app/assets/images/emoji/dolphin.png Binary files differnew file mode 100755 index 00000000000..9326077a927 --- /dev/null +++ b/app/assets/images/emoji/dolphin.png diff --git a/app/assets/images/emoji/door.png b/app/assets/images/emoji/door.png Binary files differnew file mode 100755 index 00000000000..83c819ae466 --- /dev/null +++ b/app/assets/images/emoji/door.png diff --git a/app/assets/images/emoji/doughnut.png b/app/assets/images/emoji/doughnut.png Binary files differnew file mode 100755 index 00000000000..ccf86912960 --- /dev/null +++ b/app/assets/images/emoji/doughnut.png diff --git a/app/assets/images/emoji/dragon.png b/app/assets/images/emoji/dragon.png Binary files differnew file mode 100755 index 00000000000..e399d60e1d8 --- /dev/null +++ b/app/assets/images/emoji/dragon.png diff --git a/app/assets/images/emoji/dragon_face.png b/app/assets/images/emoji/dragon_face.png Binary files differnew file mode 100755 index 00000000000..e5e556bd105 --- /dev/null +++ b/app/assets/images/emoji/dragon_face.png diff --git a/app/assets/images/emoji/dress.png b/app/assets/images/emoji/dress.png Binary files differnew file mode 100755 index 00000000000..6434e2e2f39 --- /dev/null +++ b/app/assets/images/emoji/dress.png diff --git a/app/assets/images/emoji/dromedary_camel.png b/app/assets/images/emoji/dromedary_camel.png Binary files differnew file mode 100755 index 00000000000..c8c7b9ffa0f --- /dev/null +++ b/app/assets/images/emoji/dromedary_camel.png diff --git a/app/assets/images/emoji/droplet.png b/app/assets/images/emoji/droplet.png Binary files differnew file mode 100755 index 00000000000..9eff46339f8 --- /dev/null +++ b/app/assets/images/emoji/droplet.png diff --git a/app/assets/images/emoji/dvd.png b/app/assets/images/emoji/dvd.png Binary files differnew file mode 100755 index 00000000000..363c83d01c5 --- /dev/null +++ b/app/assets/images/emoji/dvd.png diff --git a/app/assets/images/emoji/e-mail.png b/app/assets/images/emoji/e-mail.png Binary files differnew file mode 100755 index 00000000000..176a8e1e825 --- /dev/null +++ b/app/assets/images/emoji/e-mail.png diff --git a/app/assets/images/emoji/ear.png b/app/assets/images/emoji/ear.png Binary files differnew file mode 100755 index 00000000000..2bbbf10c9ef --- /dev/null +++ b/app/assets/images/emoji/ear.png diff --git a/app/assets/images/emoji/ear_of_rice.png b/app/assets/images/emoji/ear_of_rice.png Binary files differnew file mode 100755 index 00000000000..a9bba5c2c14 --- /dev/null +++ b/app/assets/images/emoji/ear_of_rice.png diff --git a/app/assets/images/emoji/earth_africa.png b/app/assets/images/emoji/earth_africa.png Binary files differnew file mode 100755 index 00000000000..44ce5ecb621 --- /dev/null +++ b/app/assets/images/emoji/earth_africa.png diff --git a/app/assets/images/emoji/earth_americas.png b/app/assets/images/emoji/earth_americas.png Binary files differnew file mode 100755 index 00000000000..97d71767136 --- /dev/null +++ b/app/assets/images/emoji/earth_americas.png diff --git a/app/assets/images/emoji/earth_asia.png b/app/assets/images/emoji/earth_asia.png Binary files differnew file mode 100755 index 00000000000..95ec357ca87 --- /dev/null +++ b/app/assets/images/emoji/earth_asia.png diff --git a/app/assets/images/emoji/egg.png b/app/assets/images/emoji/egg.png Binary files differnew file mode 100755 index 00000000000..c3de6ae4ea0 --- /dev/null +++ b/app/assets/images/emoji/egg.png diff --git a/app/assets/images/emoji/eggplant.png b/app/assets/images/emoji/eggplant.png Binary files differnew file mode 100755 index 00000000000..66f25fce447 --- /dev/null +++ b/app/assets/images/emoji/eggplant.png diff --git a/app/assets/images/emoji/eight.png b/app/assets/images/emoji/eight.png Binary files differnew file mode 100755 index 00000000000..7bdb422327c --- /dev/null +++ b/app/assets/images/emoji/eight.png diff --git a/app/assets/images/emoji/eight_pointed_black_star.png b/app/assets/images/emoji/eight_pointed_black_star.png Binary files differnew file mode 100755 index 00000000000..6ddaa21f47b --- /dev/null +++ b/app/assets/images/emoji/eight_pointed_black_star.png diff --git a/app/assets/images/emoji/eight_spoked_asterisk.png b/app/assets/images/emoji/eight_spoked_asterisk.png Binary files differnew file mode 100755 index 00000000000..946a20333a2 --- /dev/null +++ b/app/assets/images/emoji/eight_spoked_asterisk.png diff --git a/app/assets/images/emoji/electric_plug.png b/app/assets/images/emoji/electric_plug.png Binary files differnew file mode 100755 index 00000000000..7a3d6cee683 --- /dev/null +++ b/app/assets/images/emoji/electric_plug.png diff --git a/app/assets/images/emoji/elephant.png b/app/assets/images/emoji/elephant.png Binary files differnew file mode 100755 index 00000000000..5ca04570e24 --- /dev/null +++ b/app/assets/images/emoji/elephant.png diff --git a/app/assets/images/emoji/email.png b/app/assets/images/emoji/email.png Binary files differnew file mode 100755 index 00000000000..0e01fd5f052 --- /dev/null +++ b/app/assets/images/emoji/email.png diff --git a/app/assets/images/emoji/end.png b/app/assets/images/emoji/end.png Binary files differnew file mode 100755 index 00000000000..edb0bda2450 --- /dev/null +++ b/app/assets/images/emoji/end.png diff --git a/app/assets/images/emoji/envelope.png b/app/assets/images/emoji/envelope.png Binary files differnew file mode 100755 index 00000000000..3631861bbfd --- /dev/null +++ b/app/assets/images/emoji/envelope.png diff --git a/app/assets/images/emoji/es.png b/app/assets/images/emoji/es.png Binary files differnew file mode 100755 index 00000000000..71b30bff352 --- /dev/null +++ b/app/assets/images/emoji/es.png diff --git a/app/assets/images/emoji/euro.png b/app/assets/images/emoji/euro.png Binary files differnew file mode 100755 index 00000000000..1c5904b7144 --- /dev/null +++ b/app/assets/images/emoji/euro.png diff --git a/app/assets/images/emoji/european_castle.png b/app/assets/images/emoji/european_castle.png Binary files differnew file mode 100755 index 00000000000..8229b8a8a94 --- /dev/null +++ b/app/assets/images/emoji/european_castle.png diff --git a/app/assets/images/emoji/european_post_office.png b/app/assets/images/emoji/european_post_office.png Binary files differnew file mode 100755 index 00000000000..0f65b145305 --- /dev/null +++ b/app/assets/images/emoji/european_post_office.png diff --git a/app/assets/images/emoji/evergreen_tree.png b/app/assets/images/emoji/evergreen_tree.png Binary files differnew file mode 100755 index 00000000000..ae8ad103763 --- /dev/null +++ b/app/assets/images/emoji/evergreen_tree.png diff --git a/app/assets/images/emoji/exclamation.png b/app/assets/images/emoji/exclamation.png Binary files differnew file mode 100755 index 00000000000..77bbdeabcf4 --- /dev/null +++ b/app/assets/images/emoji/exclamation.png diff --git a/app/assets/images/emoji/eyeglasses.png b/app/assets/images/emoji/eyeglasses.png Binary files differnew file mode 100755 index 00000000000..a3cf75a27a1 --- /dev/null +++ b/app/assets/images/emoji/eyeglasses.png diff --git a/app/assets/images/emoji/eyes.png b/app/assets/images/emoji/eyes.png Binary files differnew file mode 100755 index 00000000000..dc2216f63d6 --- /dev/null +++ b/app/assets/images/emoji/eyes.png diff --git a/app/assets/images/emoji/facepunch.png b/app/assets/images/emoji/facepunch.png Binary files differnew file mode 100755 index 00000000000..2d41fd37e8d --- /dev/null +++ b/app/assets/images/emoji/facepunch.png diff --git a/app/assets/images/emoji/factory.png b/app/assets/images/emoji/factory.png Binary files differnew file mode 100755 index 00000000000..6404634793e --- /dev/null +++ b/app/assets/images/emoji/factory.png diff --git a/app/assets/images/emoji/fallen_leaf.png b/app/assets/images/emoji/fallen_leaf.png Binary files differnew file mode 100755 index 00000000000..d49f9c1757d --- /dev/null +++ b/app/assets/images/emoji/fallen_leaf.png diff --git a/app/assets/images/emoji/family.png b/app/assets/images/emoji/family.png Binary files differnew file mode 100755 index 00000000000..b4b365f3a5c --- /dev/null +++ b/app/assets/images/emoji/family.png diff --git a/app/assets/images/emoji/fast_forward.png b/app/assets/images/emoji/fast_forward.png Binary files differnew file mode 100755 index 00000000000..8830e146e59 --- /dev/null +++ b/app/assets/images/emoji/fast_forward.png diff --git a/app/assets/images/emoji/fax.png b/app/assets/images/emoji/fax.png Binary files differnew file mode 100755 index 00000000000..62be2c958f4 --- /dev/null +++ b/app/assets/images/emoji/fax.png diff --git a/app/assets/images/emoji/fearful.png b/app/assets/images/emoji/fearful.png Binary files differnew file mode 100755 index 00000000000..513fce47b68 --- /dev/null +++ b/app/assets/images/emoji/fearful.png diff --git a/app/assets/images/emoji/feelsgood.png b/app/assets/images/emoji/feelsgood.png Binary files differnew file mode 100755 index 00000000000..361f969bc1b --- /dev/null +++ b/app/assets/images/emoji/feelsgood.png diff --git a/app/assets/images/emoji/feet.png b/app/assets/images/emoji/feet.png Binary files differnew file mode 100755 index 00000000000..1b0147b1d23 --- /dev/null +++ b/app/assets/images/emoji/feet.png diff --git a/app/assets/images/emoji/ferris_wheel.png b/app/assets/images/emoji/ferris_wheel.png Binary files differnew file mode 100755 index 00000000000..54a1dcfa1ef --- /dev/null +++ b/app/assets/images/emoji/ferris_wheel.png diff --git a/app/assets/images/emoji/file_folder.png b/app/assets/images/emoji/file_folder.png Binary files differnew file mode 100755 index 00000000000..4d8bebf8a90 --- /dev/null +++ b/app/assets/images/emoji/file_folder.png diff --git a/app/assets/images/emoji/finnadie.png b/app/assets/images/emoji/finnadie.png Binary files differnew file mode 100755 index 00000000000..bfc5a0d93de --- /dev/null +++ b/app/assets/images/emoji/finnadie.png diff --git a/app/assets/images/emoji/fire.png b/app/assets/images/emoji/fire.png Binary files differnew file mode 100755 index 00000000000..f2a3149bbfd --- /dev/null +++ b/app/assets/images/emoji/fire.png diff --git a/app/assets/images/emoji/fire_engine.png b/app/assets/images/emoji/fire_engine.png Binary files differnew file mode 100755 index 00000000000..9e6c59c9976 --- /dev/null +++ b/app/assets/images/emoji/fire_engine.png diff --git a/app/assets/images/emoji/fireworks.png b/app/assets/images/emoji/fireworks.png Binary files differnew file mode 100755 index 00000000000..b4eccd5775b --- /dev/null +++ b/app/assets/images/emoji/fireworks.png diff --git a/app/assets/images/emoji/first_quarter_moon.png b/app/assets/images/emoji/first_quarter_moon.png Binary files differnew file mode 100755 index 00000000000..f38c236937f --- /dev/null +++ b/app/assets/images/emoji/first_quarter_moon.png diff --git a/app/assets/images/emoji/first_quarter_moon_with_face.png b/app/assets/images/emoji/first_quarter_moon_with_face.png Binary files differnew file mode 100755 index 00000000000..85ae2ce72dc --- /dev/null +++ b/app/assets/images/emoji/first_quarter_moon_with_face.png diff --git a/app/assets/images/emoji/fish.png b/app/assets/images/emoji/fish.png Binary files differnew file mode 100755 index 00000000000..90bdda2c920 --- /dev/null +++ b/app/assets/images/emoji/fish.png diff --git a/app/assets/images/emoji/fish_cake.png b/app/assets/images/emoji/fish_cake.png Binary files differnew file mode 100755 index 00000000000..a8f22614d62 --- /dev/null +++ b/app/assets/images/emoji/fish_cake.png diff --git a/app/assets/images/emoji/fishing_pole_and_fish.png b/app/assets/images/emoji/fishing_pole_and_fish.png Binary files differnew file mode 100755 index 00000000000..d84609c3b7b --- /dev/null +++ b/app/assets/images/emoji/fishing_pole_and_fish.png diff --git a/app/assets/images/emoji/fist.png b/app/assets/images/emoji/fist.png Binary files differnew file mode 100755 index 00000000000..ecc8874c2fd --- /dev/null +++ b/app/assets/images/emoji/fist.png diff --git a/app/assets/images/emoji/five.png b/app/assets/images/emoji/five.png Binary files differnew file mode 100755 index 00000000000..794321aa22a --- /dev/null +++ b/app/assets/images/emoji/five.png diff --git a/app/assets/images/emoji/flags.png b/app/assets/images/emoji/flags.png Binary files differnew file mode 100755 index 00000000000..540164e84e4 --- /dev/null +++ b/app/assets/images/emoji/flags.png diff --git a/app/assets/images/emoji/flashlight.png b/app/assets/images/emoji/flashlight.png Binary files differnew file mode 100755 index 00000000000..215940aa8f1 --- /dev/null +++ b/app/assets/images/emoji/flashlight.png diff --git a/app/assets/images/emoji/floppy_disk.png b/app/assets/images/emoji/floppy_disk.png Binary files differnew file mode 100755 index 00000000000..4ad56315ae6 --- /dev/null +++ b/app/assets/images/emoji/floppy_disk.png diff --git a/app/assets/images/emoji/flower_playing_cards.png b/app/assets/images/emoji/flower_playing_cards.png Binary files differnew file mode 100755 index 00000000000..cc46a6a1fa2 --- /dev/null +++ b/app/assets/images/emoji/flower_playing_cards.png diff --git a/app/assets/images/emoji/flushed.png b/app/assets/images/emoji/flushed.png Binary files differnew file mode 100755 index 00000000000..74b78c9c07a --- /dev/null +++ b/app/assets/images/emoji/flushed.png diff --git a/app/assets/images/emoji/foggy.png b/app/assets/images/emoji/foggy.png Binary files differnew file mode 100755 index 00000000000..3c7b8b04b95 --- /dev/null +++ b/app/assets/images/emoji/foggy.png diff --git a/app/assets/images/emoji/football.png b/app/assets/images/emoji/football.png Binary files differnew file mode 100755 index 00000000000..0e4e168fa8f --- /dev/null +++ b/app/assets/images/emoji/football.png diff --git a/app/assets/images/emoji/fork_and_knife.png b/app/assets/images/emoji/fork_and_knife.png Binary files differnew file mode 100755 index 00000000000..8ba4bc6535e --- /dev/null +++ b/app/assets/images/emoji/fork_and_knife.png diff --git a/app/assets/images/emoji/fountain.png b/app/assets/images/emoji/fountain.png Binary files differnew file mode 100755 index 00000000000..da126e6486e --- /dev/null +++ b/app/assets/images/emoji/fountain.png diff --git a/app/assets/images/emoji/four.png b/app/assets/images/emoji/four.png Binary files differnew file mode 100755 index 00000000000..14782ba23b9 --- /dev/null +++ b/app/assets/images/emoji/four.png diff --git a/app/assets/images/emoji/four_leaf_clover.png b/app/assets/images/emoji/four_leaf_clover.png Binary files differnew file mode 100755 index 00000000000..f2014bea44f --- /dev/null +++ b/app/assets/images/emoji/four_leaf_clover.png diff --git a/app/assets/images/emoji/fr.png b/app/assets/images/emoji/fr.png Binary files differnew file mode 100755 index 00000000000..6311c91159e --- /dev/null +++ b/app/assets/images/emoji/fr.png diff --git a/app/assets/images/emoji/free.png b/app/assets/images/emoji/free.png Binary files differnew file mode 100755 index 00000000000..c886cf2494c --- /dev/null +++ b/app/assets/images/emoji/free.png diff --git a/app/assets/images/emoji/fried_shrimp.png b/app/assets/images/emoji/fried_shrimp.png Binary files differnew file mode 100755 index 00000000000..c8c284bf14a --- /dev/null +++ b/app/assets/images/emoji/fried_shrimp.png diff --git a/app/assets/images/emoji/fries.png b/app/assets/images/emoji/fries.png Binary files differnew file mode 100755 index 00000000000..cfef66966a7 --- /dev/null +++ b/app/assets/images/emoji/fries.png diff --git a/app/assets/images/emoji/frog.png b/app/assets/images/emoji/frog.png Binary files differnew file mode 100755 index 00000000000..cfe11b18ff0 --- /dev/null +++ b/app/assets/images/emoji/frog.png diff --git a/app/assets/images/emoji/fuelpump.png b/app/assets/images/emoji/fuelpump.png Binary files differnew file mode 100755 index 00000000000..54c29aeb1db --- /dev/null +++ b/app/assets/images/emoji/fuelpump.png diff --git a/app/assets/images/emoji/full_moon.png b/app/assets/images/emoji/full_moon.png Binary files differnew file mode 100755 index 00000000000..8ff657a2593 --- /dev/null +++ b/app/assets/images/emoji/full_moon.png diff --git a/app/assets/images/emoji/full_moon_with_face.png b/app/assets/images/emoji/full_moon_with_face.png Binary files differnew file mode 100755 index 00000000000..94395a4080b --- /dev/null +++ b/app/assets/images/emoji/full_moon_with_face.png diff --git a/app/assets/images/emoji/game_die.png b/app/assets/images/emoji/game_die.png Binary files differnew file mode 100755 index 00000000000..4136e78ec98 --- /dev/null +++ b/app/assets/images/emoji/game_die.png diff --git a/app/assets/images/emoji/gb.png b/app/assets/images/emoji/gb.png Binary files differnew file mode 100755 index 00000000000..2a62c7a0810 --- /dev/null +++ b/app/assets/images/emoji/gb.png diff --git a/app/assets/images/emoji/gem.png b/app/assets/images/emoji/gem.png Binary files differnew file mode 100755 index 00000000000..8a5d8dad5c3 --- /dev/null +++ b/app/assets/images/emoji/gem.png diff --git a/app/assets/images/emoji/gemini.png b/app/assets/images/emoji/gemini.png Binary files differnew file mode 100755 index 00000000000..d926f6e88e9 --- /dev/null +++ b/app/assets/images/emoji/gemini.png diff --git a/app/assets/images/emoji/ghost.png b/app/assets/images/emoji/ghost.png Binary files differnew file mode 100755 index 00000000000..671dd0c9e2e --- /dev/null +++ b/app/assets/images/emoji/ghost.png diff --git a/app/assets/images/emoji/gift.png b/app/assets/images/emoji/gift.png Binary files differnew file mode 100755 index 00000000000..552cfdc2b98 --- /dev/null +++ b/app/assets/images/emoji/gift.png diff --git a/app/assets/images/emoji/gift_heart.png b/app/assets/images/emoji/gift_heart.png Binary files differnew file mode 100755 index 00000000000..f31c26a3fcc --- /dev/null +++ b/app/assets/images/emoji/gift_heart.png diff --git a/app/assets/images/emoji/girl.png b/app/assets/images/emoji/girl.png Binary files differnew file mode 100755 index 00000000000..ea4126941f7 --- /dev/null +++ b/app/assets/images/emoji/girl.png diff --git a/app/assets/images/emoji/globe_with_meridians.png b/app/assets/images/emoji/globe_with_meridians.png Binary files differnew file mode 100755 index 00000000000..b198646670c --- /dev/null +++ b/app/assets/images/emoji/globe_with_meridians.png diff --git a/app/assets/images/emoji/goat.png b/app/assets/images/emoji/goat.png Binary files differnew file mode 100755 index 00000000000..4be9cf30404 --- /dev/null +++ b/app/assets/images/emoji/goat.png diff --git a/app/assets/images/emoji/goberserk.png b/app/assets/images/emoji/goberserk.png Binary files differnew file mode 100755 index 00000000000..59a742aaaa5 --- /dev/null +++ b/app/assets/images/emoji/goberserk.png diff --git a/app/assets/images/emoji/godmode.png b/app/assets/images/emoji/godmode.png Binary files differnew file mode 100755 index 00000000000..7e75ab2081b --- /dev/null +++ b/app/assets/images/emoji/godmode.png diff --git a/app/assets/images/emoji/golf.png b/app/assets/images/emoji/golf.png Binary files differnew file mode 100755 index 00000000000..cba2116a7e2 --- /dev/null +++ b/app/assets/images/emoji/golf.png diff --git a/app/assets/images/emoji/grapes.png b/app/assets/images/emoji/grapes.png Binary files differnew file mode 100755 index 00000000000..0f9f007a12f --- /dev/null +++ b/app/assets/images/emoji/grapes.png diff --git a/app/assets/images/emoji/green_apple.png b/app/assets/images/emoji/green_apple.png Binary files differnew file mode 100755 index 00000000000..337205cd125 --- /dev/null +++ b/app/assets/images/emoji/green_apple.png diff --git a/app/assets/images/emoji/green_book.png b/app/assets/images/emoji/green_book.png Binary files differnew file mode 100755 index 00000000000..e86651e5c5c --- /dev/null +++ b/app/assets/images/emoji/green_book.png diff --git a/app/assets/images/emoji/green_heart.png b/app/assets/images/emoji/green_heart.png Binary files differnew file mode 100755 index 00000000000..7289cb8147c --- /dev/null +++ b/app/assets/images/emoji/green_heart.png diff --git a/app/assets/images/emoji/grey_exclamation.png b/app/assets/images/emoji/grey_exclamation.png Binary files differnew file mode 100755 index 00000000000..a50d265e9d7 --- /dev/null +++ b/app/assets/images/emoji/grey_exclamation.png diff --git a/app/assets/images/emoji/grey_question.png b/app/assets/images/emoji/grey_question.png Binary files differnew file mode 100755 index 00000000000..fb97ba752fd --- /dev/null +++ b/app/assets/images/emoji/grey_question.png diff --git a/app/assets/images/emoji/grin.png b/app/assets/images/emoji/grin.png Binary files differnew file mode 100755 index 00000000000..591cfcef8bb --- /dev/null +++ b/app/assets/images/emoji/grin.png diff --git a/app/assets/images/emoji/guardsman.png b/app/assets/images/emoji/guardsman.png Binary files differnew file mode 100755 index 00000000000..b67b335d687 --- /dev/null +++ b/app/assets/images/emoji/guardsman.png diff --git a/app/assets/images/emoji/guitar.png b/app/assets/images/emoji/guitar.png Binary files differnew file mode 100755 index 00000000000..2b7fa43c941 --- /dev/null +++ b/app/assets/images/emoji/guitar.png diff --git a/app/assets/images/emoji/gun.png b/app/assets/images/emoji/gun.png Binary files differnew file mode 100755 index 00000000000..c49dc52c6cb --- /dev/null +++ b/app/assets/images/emoji/gun.png diff --git a/app/assets/images/emoji/haircut.png b/app/assets/images/emoji/haircut.png Binary files differnew file mode 100755 index 00000000000..902d273f6c4 --- /dev/null +++ b/app/assets/images/emoji/haircut.png diff --git a/app/assets/images/emoji/hamburger.png b/app/assets/images/emoji/hamburger.png Binary files differnew file mode 100755 index 00000000000..9f1a3fdff6e --- /dev/null +++ b/app/assets/images/emoji/hamburger.png diff --git a/app/assets/images/emoji/hammer.png b/app/assets/images/emoji/hammer.png Binary files differnew file mode 100755 index 00000000000..482b1c747d1 --- /dev/null +++ b/app/assets/images/emoji/hammer.png diff --git a/app/assets/images/emoji/hamster.png b/app/assets/images/emoji/hamster.png Binary files differnew file mode 100755 index 00000000000..addfd2e6b03 --- /dev/null +++ b/app/assets/images/emoji/hamster.png diff --git a/app/assets/images/emoji/hand.png b/app/assets/images/emoji/hand.png Binary files differnew file mode 100755 index 00000000000..5e45c25a56c --- /dev/null +++ b/app/assets/images/emoji/hand.png diff --git a/app/assets/images/emoji/handbag.png b/app/assets/images/emoji/handbag.png Binary files differnew file mode 100755 index 00000000000..d7adf04ddf2 --- /dev/null +++ b/app/assets/images/emoji/handbag.png diff --git a/app/assets/images/emoji/hankey.png b/app/assets/images/emoji/hankey.png Binary files differnew file mode 100755 index 00000000000..73a4dc84008 --- /dev/null +++ b/app/assets/images/emoji/hankey.png diff --git a/app/assets/images/emoji/hash.png b/app/assets/images/emoji/hash.png Binary files differnew file mode 100755 index 00000000000..6765d7d3c2e --- /dev/null +++ b/app/assets/images/emoji/hash.png diff --git a/app/assets/images/emoji/hatched_chick.png b/app/assets/images/emoji/hatched_chick.png Binary files differnew file mode 100755 index 00000000000..39c25bc7ccd --- /dev/null +++ b/app/assets/images/emoji/hatched_chick.png diff --git a/app/assets/images/emoji/hatching_chick.png b/app/assets/images/emoji/hatching_chick.png Binary files differnew file mode 100755 index 00000000000..005a55519f1 --- /dev/null +++ b/app/assets/images/emoji/hatching_chick.png diff --git a/app/assets/images/emoji/headphones.png b/app/assets/images/emoji/headphones.png Binary files differnew file mode 100755 index 00000000000..ad83000e687 --- /dev/null +++ b/app/assets/images/emoji/headphones.png diff --git a/app/assets/images/emoji/hear_no_evil.png b/app/assets/images/emoji/hear_no_evil.png Binary files differnew file mode 100755 index 00000000000..f97a1f9a090 --- /dev/null +++ b/app/assets/images/emoji/hear_no_evil.png diff --git a/app/assets/images/emoji/heart.png b/app/assets/images/emoji/heart.png Binary files differnew file mode 100755 index 00000000000..7d7790ce4df --- /dev/null +++ b/app/assets/images/emoji/heart.png diff --git a/app/assets/images/emoji/heart_decoration.png b/app/assets/images/emoji/heart_decoration.png Binary files differnew file mode 100755 index 00000000000..b8be44db343 --- /dev/null +++ b/app/assets/images/emoji/heart_decoration.png diff --git a/app/assets/images/emoji/heart_eyes.png b/app/assets/images/emoji/heart_eyes.png Binary files differnew file mode 100755 index 00000000000..0e5794270ea --- /dev/null +++ b/app/assets/images/emoji/heart_eyes.png diff --git a/app/assets/images/emoji/heart_eyes_cat.png b/app/assets/images/emoji/heart_eyes_cat.png Binary files differnew file mode 100755 index 00000000000..eeba240e533 --- /dev/null +++ b/app/assets/images/emoji/heart_eyes_cat.png diff --git a/app/assets/images/emoji/heartbeat.png b/app/assets/images/emoji/heartbeat.png Binary files differnew file mode 100755 index 00000000000..b6628f6fa70 --- /dev/null +++ b/app/assets/images/emoji/heartbeat.png diff --git a/app/assets/images/emoji/heartpulse.png b/app/assets/images/emoji/heartpulse.png Binary files differnew file mode 100755 index 00000000000..a7491cbeae6 --- /dev/null +++ b/app/assets/images/emoji/heartpulse.png diff --git a/app/assets/images/emoji/hearts.png b/app/assets/images/emoji/hearts.png Binary files differnew file mode 100755 index 00000000000..e8947153857 --- /dev/null +++ b/app/assets/images/emoji/hearts.png diff --git a/app/assets/images/emoji/heavy_check_mark.png b/app/assets/images/emoji/heavy_check_mark.png Binary files differnew file mode 100755 index 00000000000..336d2626d0c --- /dev/null +++ b/app/assets/images/emoji/heavy_check_mark.png diff --git a/app/assets/images/emoji/heavy_division_sign.png b/app/assets/images/emoji/heavy_division_sign.png Binary files differnew file mode 100755 index 00000000000..ac757a238ec --- /dev/null +++ b/app/assets/images/emoji/heavy_division_sign.png diff --git a/app/assets/images/emoji/heavy_dollar_sign.png b/app/assets/images/emoji/heavy_dollar_sign.png Binary files differnew file mode 100755 index 00000000000..361e26aef8b --- /dev/null +++ b/app/assets/images/emoji/heavy_dollar_sign.png diff --git a/app/assets/images/emoji/heavy_exclamation_mark.png b/app/assets/images/emoji/heavy_exclamation_mark.png Binary files differnew file mode 100755 index 00000000000..4c560f5e3f4 --- /dev/null +++ b/app/assets/images/emoji/heavy_exclamation_mark.png diff --git a/app/assets/images/emoji/heavy_minus_sign.png b/app/assets/images/emoji/heavy_minus_sign.png Binary files differnew file mode 100755 index 00000000000..b8d3d82f2cd --- /dev/null +++ b/app/assets/images/emoji/heavy_minus_sign.png diff --git a/app/assets/images/emoji/heavy_multiplication_x.png b/app/assets/images/emoji/heavy_multiplication_x.png Binary files differnew file mode 100755 index 00000000000..13d66607865 --- /dev/null +++ b/app/assets/images/emoji/heavy_multiplication_x.png diff --git a/app/assets/images/emoji/heavy_plus_sign.png b/app/assets/images/emoji/heavy_plus_sign.png Binary files differnew file mode 100755 index 00000000000..61595387bb6 --- /dev/null +++ b/app/assets/images/emoji/heavy_plus_sign.png diff --git a/app/assets/images/emoji/helicopter.png b/app/assets/images/emoji/helicopter.png Binary files differnew file mode 100755 index 00000000000..8e82a0d5876 --- /dev/null +++ b/app/assets/images/emoji/helicopter.png diff --git a/app/assets/images/emoji/herb.png b/app/assets/images/emoji/herb.png Binary files differnew file mode 100755 index 00000000000..de1ff1b73bf --- /dev/null +++ b/app/assets/images/emoji/herb.png diff --git a/app/assets/images/emoji/hibiscus.png b/app/assets/images/emoji/hibiscus.png Binary files differnew file mode 100755 index 00000000000..9365ae2169f --- /dev/null +++ b/app/assets/images/emoji/hibiscus.png diff --git a/app/assets/images/emoji/high_brightness.png b/app/assets/images/emoji/high_brightness.png Binary files differnew file mode 100755 index 00000000000..ba9de7d409c --- /dev/null +++ b/app/assets/images/emoji/high_brightness.png diff --git a/app/assets/images/emoji/high_heel.png b/app/assets/images/emoji/high_heel.png Binary files differnew file mode 100755 index 00000000000..525b6a0dd69 --- /dev/null +++ b/app/assets/images/emoji/high_heel.png diff --git a/app/assets/images/emoji/hocho.png b/app/assets/images/emoji/hocho.png Binary files differnew file mode 100755 index 00000000000..18eade0acfa --- /dev/null +++ b/app/assets/images/emoji/hocho.png diff --git a/app/assets/images/emoji/honey_pot.png b/app/assets/images/emoji/honey_pot.png Binary files differnew file mode 100755 index 00000000000..73278898a4c --- /dev/null +++ b/app/assets/images/emoji/honey_pot.png diff --git a/app/assets/images/emoji/honeybee.png b/app/assets/images/emoji/honeybee.png Binary files differnew file mode 100755 index 00000000000..f53733953af --- /dev/null +++ b/app/assets/images/emoji/honeybee.png diff --git a/app/assets/images/emoji/horse.png b/app/assets/images/emoji/horse.png Binary files differnew file mode 100755 index 00000000000..78d580ad3e9 --- /dev/null +++ b/app/assets/images/emoji/horse.png diff --git a/app/assets/images/emoji/horse_racing.png b/app/assets/images/emoji/horse_racing.png Binary files differnew file mode 100755 index 00000000000..e3bbaec1d6c --- /dev/null +++ b/app/assets/images/emoji/horse_racing.png diff --git a/app/assets/images/emoji/hospital.png b/app/assets/images/emoji/hospital.png Binary files differnew file mode 100755 index 00000000000..c05c49377fe --- /dev/null +++ b/app/assets/images/emoji/hospital.png diff --git a/app/assets/images/emoji/hotel.png b/app/assets/images/emoji/hotel.png Binary files differnew file mode 100755 index 00000000000..d29f276a180 --- /dev/null +++ b/app/assets/images/emoji/hotel.png diff --git a/app/assets/images/emoji/hotsprings.png b/app/assets/images/emoji/hotsprings.png Binary files differnew file mode 100755 index 00000000000..a0bc9d75f21 --- /dev/null +++ b/app/assets/images/emoji/hotsprings.png diff --git a/app/assets/images/emoji/hourglass.png b/app/assets/images/emoji/hourglass.png Binary files differnew file mode 100755 index 00000000000..405aab41beb --- /dev/null +++ b/app/assets/images/emoji/hourglass.png diff --git a/app/assets/images/emoji/house.png b/app/assets/images/emoji/house.png Binary files differnew file mode 100755 index 00000000000..95b9ee09480 --- /dev/null +++ b/app/assets/images/emoji/house.png diff --git a/app/assets/images/emoji/hurtrealbad.png b/app/assets/images/emoji/hurtrealbad.png Binary files differnew file mode 100755 index 00000000000..146ef1a6a87 --- /dev/null +++ b/app/assets/images/emoji/hurtrealbad.png diff --git a/app/assets/images/emoji/ice_cream.png b/app/assets/images/emoji/ice_cream.png Binary files differnew file mode 100755 index 00000000000..190be01650e --- /dev/null +++ b/app/assets/images/emoji/ice_cream.png diff --git a/app/assets/images/emoji/icecream.png b/app/assets/images/emoji/icecream.png Binary files differnew file mode 100755 index 00000000000..871ce097689 --- /dev/null +++ b/app/assets/images/emoji/icecream.png diff --git a/app/assets/images/emoji/id.png b/app/assets/images/emoji/id.png Binary files differnew file mode 100755 index 00000000000..47437a76d39 --- /dev/null +++ b/app/assets/images/emoji/id.png diff --git a/app/assets/images/emoji/ideograph_advantage.png b/app/assets/images/emoji/ideograph_advantage.png Binary files differnew file mode 100755 index 00000000000..e79af78442e --- /dev/null +++ b/app/assets/images/emoji/ideograph_advantage.png diff --git a/app/assets/images/emoji/imp.png b/app/assets/images/emoji/imp.png Binary files differnew file mode 100755 index 00000000000..5acca3373b9 --- /dev/null +++ b/app/assets/images/emoji/imp.png diff --git a/app/assets/images/emoji/inbox_tray.png b/app/assets/images/emoji/inbox_tray.png Binary files differnew file mode 100755 index 00000000000..e2df0f89705 --- /dev/null +++ b/app/assets/images/emoji/inbox_tray.png diff --git a/app/assets/images/emoji/incoming_envelope.png b/app/assets/images/emoji/incoming_envelope.png Binary files differnew file mode 100755 index 00000000000..afc82712510 --- /dev/null +++ b/app/assets/images/emoji/incoming_envelope.png diff --git a/app/assets/images/emoji/information_desk_person.png b/app/assets/images/emoji/information_desk_person.png Binary files differnew file mode 100755 index 00000000000..52c0a50a3f6 --- /dev/null +++ b/app/assets/images/emoji/information_desk_person.png diff --git a/app/assets/images/emoji/information_source.png b/app/assets/images/emoji/information_source.png Binary files differnew file mode 100755 index 00000000000..9cb8b09b249 --- /dev/null +++ b/app/assets/images/emoji/information_source.png diff --git a/app/assets/images/emoji/innocent.png b/app/assets/images/emoji/innocent.png Binary files differnew file mode 100755 index 00000000000..503b614f8dc --- /dev/null +++ b/app/assets/images/emoji/innocent.png diff --git a/app/assets/images/emoji/interrobang.png b/app/assets/images/emoji/interrobang.png Binary files differnew file mode 100755 index 00000000000..64304b9f5fb --- /dev/null +++ b/app/assets/images/emoji/interrobang.png diff --git a/app/assets/images/emoji/iphone.png b/app/assets/images/emoji/iphone.png Binary files differnew file mode 100755 index 00000000000..df007103b0b --- /dev/null +++ b/app/assets/images/emoji/iphone.png diff --git a/app/assets/images/emoji/it.png b/app/assets/images/emoji/it.png Binary files differnew file mode 100755 index 00000000000..70bc9f32463 --- /dev/null +++ b/app/assets/images/emoji/it.png diff --git a/app/assets/images/emoji/izakaya_lantern.png b/app/assets/images/emoji/izakaya_lantern.png Binary files differnew file mode 100755 index 00000000000..18730ad5597 --- /dev/null +++ b/app/assets/images/emoji/izakaya_lantern.png diff --git a/app/assets/images/emoji/jack_o_lantern.png b/app/assets/images/emoji/jack_o_lantern.png Binary files differnew file mode 100755 index 00000000000..1f7667ea458 --- /dev/null +++ b/app/assets/images/emoji/jack_o_lantern.png diff --git a/app/assets/images/emoji/japan.png b/app/assets/images/emoji/japan.png Binary files differnew file mode 100755 index 00000000000..45932803597 --- /dev/null +++ b/app/assets/images/emoji/japan.png diff --git a/app/assets/images/emoji/japanese_castle.png b/app/assets/images/emoji/japanese_castle.png Binary files differnew file mode 100755 index 00000000000..f225ab217c0 --- /dev/null +++ b/app/assets/images/emoji/japanese_castle.png diff --git a/app/assets/images/emoji/japanese_goblin.png b/app/assets/images/emoji/japanese_goblin.png Binary files differnew file mode 100755 index 00000000000..bd21b187570 --- /dev/null +++ b/app/assets/images/emoji/japanese_goblin.png diff --git a/app/assets/images/emoji/japanese_ogre.png b/app/assets/images/emoji/japanese_ogre.png Binary files differnew file mode 100755 index 00000000000..e9f5471c9a2 --- /dev/null +++ b/app/assets/images/emoji/japanese_ogre.png diff --git a/app/assets/images/emoji/jeans.png b/app/assets/images/emoji/jeans.png Binary files differnew file mode 100755 index 00000000000..d721cea54c3 --- /dev/null +++ b/app/assets/images/emoji/jeans.png diff --git a/app/assets/images/emoji/joy.png b/app/assets/images/emoji/joy.png Binary files differnew file mode 100755 index 00000000000..47df693d424 --- /dev/null +++ b/app/assets/images/emoji/joy.png diff --git a/app/assets/images/emoji/joy_cat.png b/app/assets/images/emoji/joy_cat.png Binary files differnew file mode 100755 index 00000000000..6c60cb0efc8 --- /dev/null +++ b/app/assets/images/emoji/joy_cat.png diff --git a/app/assets/images/emoji/jp.png b/app/assets/images/emoji/jp.png Binary files differnew file mode 100755 index 00000000000..b786efbbd8a --- /dev/null +++ b/app/assets/images/emoji/jp.png diff --git a/app/assets/images/emoji/key.png b/app/assets/images/emoji/key.png Binary files differnew file mode 100755 index 00000000000..34673213f64 --- /dev/null +++ b/app/assets/images/emoji/key.png diff --git a/app/assets/images/emoji/keycap_ten.png b/app/assets/images/emoji/keycap_ten.png Binary files differnew file mode 100755 index 00000000000..71dac1c1cc0 --- /dev/null +++ b/app/assets/images/emoji/keycap_ten.png diff --git a/app/assets/images/emoji/kimono.png b/app/assets/images/emoji/kimono.png Binary files differnew file mode 100755 index 00000000000..34ffe137dcd --- /dev/null +++ b/app/assets/images/emoji/kimono.png diff --git a/app/assets/images/emoji/kiss.png b/app/assets/images/emoji/kiss.png Binary files differnew file mode 100755 index 00000000000..14fd9918d58 --- /dev/null +++ b/app/assets/images/emoji/kiss.png diff --git a/app/assets/images/emoji/kissing_cat.png b/app/assets/images/emoji/kissing_cat.png Binary files differnew file mode 100755 index 00000000000..adc62fbe3ce --- /dev/null +++ b/app/assets/images/emoji/kissing_cat.png diff --git a/app/assets/images/emoji/kissing_face.png b/app/assets/images/emoji/kissing_face.png Binary files differnew file mode 100755 index 00000000000..449de197048 --- /dev/null +++ b/app/assets/images/emoji/kissing_face.png diff --git a/app/assets/images/emoji/kissing_heart.png b/app/assets/images/emoji/kissing_heart.png Binary files differnew file mode 100755 index 00000000000..af9a80b7f09 --- /dev/null +++ b/app/assets/images/emoji/kissing_heart.png diff --git a/app/assets/images/emoji/koala.png b/app/assets/images/emoji/koala.png Binary files differnew file mode 100755 index 00000000000..e17bd3cf531 --- /dev/null +++ b/app/assets/images/emoji/koala.png diff --git a/app/assets/images/emoji/koko.png b/app/assets/images/emoji/koko.png Binary files differnew file mode 100755 index 00000000000..3bef28c9fdb --- /dev/null +++ b/app/assets/images/emoji/koko.png diff --git a/app/assets/images/emoji/kr.png b/app/assets/images/emoji/kr.png Binary files differnew file mode 100755 index 00000000000..b4c0c1b673d --- /dev/null +++ b/app/assets/images/emoji/kr.png diff --git a/app/assets/images/emoji/large_blue_circle.png b/app/assets/images/emoji/large_blue_circle.png Binary files differnew file mode 100755 index 00000000000..a5b4ad4aaa2 --- /dev/null +++ b/app/assets/images/emoji/large_blue_circle.png diff --git a/app/assets/images/emoji/large_blue_diamond.png b/app/assets/images/emoji/large_blue_diamond.png Binary files differnew file mode 100755 index 00000000000..f4598ec0f20 --- /dev/null +++ b/app/assets/images/emoji/large_blue_diamond.png diff --git a/app/assets/images/emoji/large_orange_diamond.png b/app/assets/images/emoji/large_orange_diamond.png Binary files differnew file mode 100755 index 00000000000..46d52e5cb6d --- /dev/null +++ b/app/assets/images/emoji/large_orange_diamond.png diff --git a/app/assets/images/emoji/last_quarter_moon.png b/app/assets/images/emoji/last_quarter_moon.png Binary files differnew file mode 100755 index 00000000000..355e3c3f79f --- /dev/null +++ b/app/assets/images/emoji/last_quarter_moon.png diff --git a/app/assets/images/emoji/last_quarter_moon_with_face.png b/app/assets/images/emoji/last_quarter_moon_with_face.png Binary files differnew file mode 100755 index 00000000000..9ece82dfec6 --- /dev/null +++ b/app/assets/images/emoji/last_quarter_moon_with_face.png diff --git a/app/assets/images/emoji/laughing.png b/app/assets/images/emoji/laughing.png Binary files differnew file mode 100755 index 00000000000..11c91eb22e6 --- /dev/null +++ b/app/assets/images/emoji/laughing.png diff --git a/app/assets/images/emoji/leaves.png b/app/assets/images/emoji/leaves.png Binary files differnew file mode 100755 index 00000000000..5229e06bdd0 --- /dev/null +++ b/app/assets/images/emoji/leaves.png diff --git a/app/assets/images/emoji/ledger.png b/app/assets/images/emoji/ledger.png Binary files differnew file mode 100755 index 00000000000..e4f72aceacf --- /dev/null +++ b/app/assets/images/emoji/ledger.png diff --git a/app/assets/images/emoji/left_luggage.png b/app/assets/images/emoji/left_luggage.png Binary files differnew file mode 100755 index 00000000000..1c08b464db1 --- /dev/null +++ b/app/assets/images/emoji/left_luggage.png diff --git a/app/assets/images/emoji/left_right_arrow.png b/app/assets/images/emoji/left_right_arrow.png Binary files differnew file mode 100755 index 00000000000..b9fd11c5158 --- /dev/null +++ b/app/assets/images/emoji/left_right_arrow.png diff --git a/app/assets/images/emoji/leftwards_arrow_with_hook.png b/app/assets/images/emoji/leftwards_arrow_with_hook.png Binary files differnew file mode 100755 index 00000000000..bc45dfefd4a --- /dev/null +++ b/app/assets/images/emoji/leftwards_arrow_with_hook.png diff --git a/app/assets/images/emoji/lemon.png b/app/assets/images/emoji/lemon.png Binary files differnew file mode 100755 index 00000000000..9814dc95989 --- /dev/null +++ b/app/assets/images/emoji/lemon.png diff --git a/app/assets/images/emoji/leo.png b/app/assets/images/emoji/leo.png Binary files differnew file mode 100755 index 00000000000..e025933b2f8 --- /dev/null +++ b/app/assets/images/emoji/leo.png diff --git a/app/assets/images/emoji/leopard.png b/app/assets/images/emoji/leopard.png Binary files differnew file mode 100755 index 00000000000..8abfc4a2729 --- /dev/null +++ b/app/assets/images/emoji/leopard.png diff --git a/app/assets/images/emoji/libra.png b/app/assets/images/emoji/libra.png Binary files differnew file mode 100755 index 00000000000..c9062dd2eeb --- /dev/null +++ b/app/assets/images/emoji/libra.png diff --git a/app/assets/images/emoji/light_rail.png b/app/assets/images/emoji/light_rail.png Binary files differnew file mode 100755 index 00000000000..bcfe801eec6 --- /dev/null +++ b/app/assets/images/emoji/light_rail.png diff --git a/app/assets/images/emoji/link.png b/app/assets/images/emoji/link.png Binary files differnew file mode 100755 index 00000000000..ffb8f62ceca --- /dev/null +++ b/app/assets/images/emoji/link.png diff --git a/app/assets/images/emoji/lips.png b/app/assets/images/emoji/lips.png Binary files differnew file mode 100755 index 00000000000..826ed1102dc --- /dev/null +++ b/app/assets/images/emoji/lips.png diff --git a/app/assets/images/emoji/lipstick.png b/app/assets/images/emoji/lipstick.png Binary files differnew file mode 100755 index 00000000000..82f990c5679 --- /dev/null +++ b/app/assets/images/emoji/lipstick.png diff --git a/app/assets/images/emoji/lock.png b/app/assets/images/emoji/lock.png Binary files differnew file mode 100755 index 00000000000..4892b023558 --- /dev/null +++ b/app/assets/images/emoji/lock.png diff --git a/app/assets/images/emoji/lock_with_ink_pen.png b/app/assets/images/emoji/lock_with_ink_pen.png Binary files differnew file mode 100755 index 00000000000..375e67e8253 --- /dev/null +++ b/app/assets/images/emoji/lock_with_ink_pen.png diff --git a/app/assets/images/emoji/lollipop.png b/app/assets/images/emoji/lollipop.png Binary files differnew file mode 100755 index 00000000000..ba55e7093f1 --- /dev/null +++ b/app/assets/images/emoji/lollipop.png diff --git a/app/assets/images/emoji/loop.png b/app/assets/images/emoji/loop.png Binary files differnew file mode 100755 index 00000000000..ef34df3a404 --- /dev/null +++ b/app/assets/images/emoji/loop.png diff --git a/app/assets/images/emoji/loudspeaker.png b/app/assets/images/emoji/loudspeaker.png Binary files differnew file mode 100755 index 00000000000..752385e523d --- /dev/null +++ b/app/assets/images/emoji/loudspeaker.png diff --git a/app/assets/images/emoji/love_hotel.png b/app/assets/images/emoji/love_hotel.png Binary files differnew file mode 100755 index 00000000000..44d7db828ad --- /dev/null +++ b/app/assets/images/emoji/love_hotel.png diff --git a/app/assets/images/emoji/love_letter.png b/app/assets/images/emoji/love_letter.png Binary files differnew file mode 100755 index 00000000000..e29981f4453 --- /dev/null +++ b/app/assets/images/emoji/love_letter.png diff --git a/app/assets/images/emoji/low_brightness.png b/app/assets/images/emoji/low_brightness.png Binary files differnew file mode 100755 index 00000000000..ea15bde4f0d --- /dev/null +++ b/app/assets/images/emoji/low_brightness.png diff --git a/app/assets/images/emoji/m.png b/app/assets/images/emoji/m.png Binary files differnew file mode 100755 index 00000000000..7424665e2bb --- /dev/null +++ b/app/assets/images/emoji/m.png diff --git a/app/assets/images/emoji/mag.png b/app/assets/images/emoji/mag.png Binary files differnew file mode 100755 index 00000000000..aa5b1d7c46f --- /dev/null +++ b/app/assets/images/emoji/mag.png diff --git a/app/assets/images/emoji/mag_right.png b/app/assets/images/emoji/mag_right.png Binary files differnew file mode 100755 index 00000000000..6e6cf11e6d7 --- /dev/null +++ b/app/assets/images/emoji/mag_right.png diff --git a/app/assets/images/emoji/mahjong.png b/app/assets/images/emoji/mahjong.png Binary files differnew file mode 100755 index 00000000000..f51ce65fdde --- /dev/null +++ b/app/assets/images/emoji/mahjong.png diff --git a/app/assets/images/emoji/mailbox.png b/app/assets/images/emoji/mailbox.png Binary files differnew file mode 100755 index 00000000000..8351e70760c --- /dev/null +++ b/app/assets/images/emoji/mailbox.png diff --git a/app/assets/images/emoji/mailbox_closed.png b/app/assets/images/emoji/mailbox_closed.png Binary files differnew file mode 100755 index 00000000000..a5982b69bb5 --- /dev/null +++ b/app/assets/images/emoji/mailbox_closed.png diff --git a/app/assets/images/emoji/mailbox_with_mail.png b/app/assets/images/emoji/mailbox_with_mail.png Binary files differnew file mode 100755 index 00000000000..dae34594367 --- /dev/null +++ b/app/assets/images/emoji/mailbox_with_mail.png diff --git a/app/assets/images/emoji/mailbox_with_no_mail.png b/app/assets/images/emoji/mailbox_with_no_mail.png Binary files differnew file mode 100755 index 00000000000..59f15c5d7da --- /dev/null +++ b/app/assets/images/emoji/mailbox_with_no_mail.png diff --git a/app/assets/images/emoji/man.png b/app/assets/images/emoji/man.png Binary files differnew file mode 100755 index 00000000000..d9bfa26a674 --- /dev/null +++ b/app/assets/images/emoji/man.png diff --git a/app/assets/images/emoji/man_with_gua_pi_mao.png b/app/assets/images/emoji/man_with_gua_pi_mao.png Binary files differnew file mode 100755 index 00000000000..7aad74b55e3 --- /dev/null +++ b/app/assets/images/emoji/man_with_gua_pi_mao.png diff --git a/app/assets/images/emoji/man_with_turban.png b/app/assets/images/emoji/man_with_turban.png Binary files differnew file mode 100755 index 00000000000..036604caf2a --- /dev/null +++ b/app/assets/images/emoji/man_with_turban.png diff --git a/app/assets/images/emoji/mans_shoe.png b/app/assets/images/emoji/mans_shoe.png Binary files differnew file mode 100755 index 00000000000..ecba9ba7d04 --- /dev/null +++ b/app/assets/images/emoji/mans_shoe.png diff --git a/app/assets/images/emoji/maple_leaf.png b/app/assets/images/emoji/maple_leaf.png Binary files differnew file mode 100755 index 00000000000..4e9b47207de --- /dev/null +++ b/app/assets/images/emoji/maple_leaf.png diff --git a/app/assets/images/emoji/mask.png b/app/assets/images/emoji/mask.png Binary files differnew file mode 100755 index 00000000000..05887e99c6b --- /dev/null +++ b/app/assets/images/emoji/mask.png diff --git a/app/assets/images/emoji/massage.png b/app/assets/images/emoji/massage.png Binary files differnew file mode 100755 index 00000000000..dd30d159755 --- /dev/null +++ b/app/assets/images/emoji/massage.png diff --git a/app/assets/images/emoji/meat_on_bone.png b/app/assets/images/emoji/meat_on_bone.png Binary files differnew file mode 100755 index 00000000000..d6b311b6b24 --- /dev/null +++ b/app/assets/images/emoji/meat_on_bone.png diff --git a/app/assets/images/emoji/mega.png b/app/assets/images/emoji/mega.png Binary files differnew file mode 100755 index 00000000000..022df2f8d64 --- /dev/null +++ b/app/assets/images/emoji/mega.png diff --git a/app/assets/images/emoji/melon.png b/app/assets/images/emoji/melon.png Binary files differnew file mode 100755 index 00000000000..11c13cbbd44 --- /dev/null +++ b/app/assets/images/emoji/melon.png diff --git a/app/assets/images/emoji/memo.png b/app/assets/images/emoji/memo.png Binary files differnew file mode 100755 index 00000000000..fc97ddbc92b --- /dev/null +++ b/app/assets/images/emoji/memo.png diff --git a/app/assets/images/emoji/mens.png b/app/assets/images/emoji/mens.png Binary files differnew file mode 100755 index 00000000000..abccfc9f2c6 --- /dev/null +++ b/app/assets/images/emoji/mens.png diff --git a/app/assets/images/emoji/metal.png b/app/assets/images/emoji/metal.png Binary files differnew file mode 100755 index 00000000000..94f1fda2241 --- /dev/null +++ b/app/assets/images/emoji/metal.png diff --git a/app/assets/images/emoji/metro.png b/app/assets/images/emoji/metro.png Binary files differnew file mode 100755 index 00000000000..4acf5ab3e29 --- /dev/null +++ b/app/assets/images/emoji/metro.png diff --git a/app/assets/images/emoji/microphone.png b/app/assets/images/emoji/microphone.png Binary files differnew file mode 100755 index 00000000000..68c74adada1 --- /dev/null +++ b/app/assets/images/emoji/microphone.png diff --git a/app/assets/images/emoji/microscope.png b/app/assets/images/emoji/microscope.png Binary files differnew file mode 100755 index 00000000000..f11d54c010a --- /dev/null +++ b/app/assets/images/emoji/microscope.png diff --git a/app/assets/images/emoji/milky_way.png b/app/assets/images/emoji/milky_way.png Binary files differnew file mode 100755 index 00000000000..901090a1265 --- /dev/null +++ b/app/assets/images/emoji/milky_way.png diff --git a/app/assets/images/emoji/minibus.png b/app/assets/images/emoji/minibus.png Binary files differnew file mode 100755 index 00000000000..c52cef23407 --- /dev/null +++ b/app/assets/images/emoji/minibus.png diff --git a/app/assets/images/emoji/minidisc.png b/app/assets/images/emoji/minidisc.png Binary files differnew file mode 100755 index 00000000000..e19cc5d0150 --- /dev/null +++ b/app/assets/images/emoji/minidisc.png diff --git a/app/assets/images/emoji/mobile_phone_off.png b/app/assets/images/emoji/mobile_phone_off.png Binary files differnew file mode 100755 index 00000000000..fa16c763c94 --- /dev/null +++ b/app/assets/images/emoji/mobile_phone_off.png diff --git a/app/assets/images/emoji/money_with_wings.png b/app/assets/images/emoji/money_with_wings.png Binary files differnew file mode 100755 index 00000000000..135e3981ed1 --- /dev/null +++ b/app/assets/images/emoji/money_with_wings.png diff --git a/app/assets/images/emoji/moneybag.png b/app/assets/images/emoji/moneybag.png Binary files differnew file mode 100755 index 00000000000..5546c04bad4 --- /dev/null +++ b/app/assets/images/emoji/moneybag.png diff --git a/app/assets/images/emoji/monkey.png b/app/assets/images/emoji/monkey.png Binary files differnew file mode 100755 index 00000000000..64070359776 --- /dev/null +++ b/app/assets/images/emoji/monkey.png diff --git a/app/assets/images/emoji/monkey_face.png b/app/assets/images/emoji/monkey_face.png Binary files differnew file mode 100755 index 00000000000..6964cf4d51a --- /dev/null +++ b/app/assets/images/emoji/monkey_face.png diff --git a/app/assets/images/emoji/monorail.png b/app/assets/images/emoji/monorail.png Binary files differnew file mode 100755 index 00000000000..913d3002462 --- /dev/null +++ b/app/assets/images/emoji/monorail.png diff --git a/app/assets/images/emoji/moon.png b/app/assets/images/emoji/moon.png Binary files differnew file mode 100755 index 00000000000..afdb450d1df --- /dev/null +++ b/app/assets/images/emoji/moon.png diff --git a/app/assets/images/emoji/mortar_board.png b/app/assets/images/emoji/mortar_board.png Binary files differnew file mode 100755 index 00000000000..2e811b097a1 --- /dev/null +++ b/app/assets/images/emoji/mortar_board.png diff --git a/app/assets/images/emoji/mount_fuji.png b/app/assets/images/emoji/mount_fuji.png Binary files differnew file mode 100755 index 00000000000..4c313e583f0 --- /dev/null +++ b/app/assets/images/emoji/mount_fuji.png diff --git a/app/assets/images/emoji/mountain_bicyclist.png b/app/assets/images/emoji/mountain_bicyclist.png Binary files differnew file mode 100755 index 00000000000..b698897566a --- /dev/null +++ b/app/assets/images/emoji/mountain_bicyclist.png diff --git a/app/assets/images/emoji/mountain_cableway.png b/app/assets/images/emoji/mountain_cableway.png Binary files differnew file mode 100755 index 00000000000..5688bb239a7 --- /dev/null +++ b/app/assets/images/emoji/mountain_cableway.png diff --git a/app/assets/images/emoji/mountain_railway.png b/app/assets/images/emoji/mountain_railway.png Binary files differnew file mode 100755 index 00000000000..1f3d1aab56c --- /dev/null +++ b/app/assets/images/emoji/mountain_railway.png diff --git a/app/assets/images/emoji/mouse.png b/app/assets/images/emoji/mouse.png Binary files differnew file mode 100755 index 00000000000..8ff162e2dbb --- /dev/null +++ b/app/assets/images/emoji/mouse.png diff --git a/app/assets/images/emoji/mouse2.png b/app/assets/images/emoji/mouse2.png Binary files differnew file mode 100755 index 00000000000..2d777e5e1ac --- /dev/null +++ b/app/assets/images/emoji/mouse2.png diff --git a/app/assets/images/emoji/movie_camera.png b/app/assets/images/emoji/movie_camera.png Binary files differnew file mode 100755 index 00000000000..9c143840925 --- /dev/null +++ b/app/assets/images/emoji/movie_camera.png diff --git a/app/assets/images/emoji/moyai.png b/app/assets/images/emoji/moyai.png Binary files differnew file mode 100755 index 00000000000..61a1a9c21a4 --- /dev/null +++ b/app/assets/images/emoji/moyai.png diff --git a/app/assets/images/emoji/muscle.png b/app/assets/images/emoji/muscle.png Binary files differnew file mode 100755 index 00000000000..19f92efb66e --- /dev/null +++ b/app/assets/images/emoji/muscle.png diff --git a/app/assets/images/emoji/mushroom.png b/app/assets/images/emoji/mushroom.png Binary files differnew file mode 100755 index 00000000000..5eeed8e7900 --- /dev/null +++ b/app/assets/images/emoji/mushroom.png diff --git a/app/assets/images/emoji/musical_keyboard.png b/app/assets/images/emoji/musical_keyboard.png Binary files differnew file mode 100755 index 00000000000..93647a4a32d --- /dev/null +++ b/app/assets/images/emoji/musical_keyboard.png diff --git a/app/assets/images/emoji/musical_note.png b/app/assets/images/emoji/musical_note.png Binary files differnew file mode 100755 index 00000000000..68b261bcba6 --- /dev/null +++ b/app/assets/images/emoji/musical_note.png diff --git a/app/assets/images/emoji/musical_score.png b/app/assets/images/emoji/musical_score.png Binary files differnew file mode 100755 index 00000000000..0c927d32fa4 --- /dev/null +++ b/app/assets/images/emoji/musical_score.png diff --git a/app/assets/images/emoji/mute.png b/app/assets/images/emoji/mute.png Binary files differnew file mode 100755 index 00000000000..4cf67c367d3 --- /dev/null +++ b/app/assets/images/emoji/mute.png diff --git a/app/assets/images/emoji/nail_care.png b/app/assets/images/emoji/nail_care.png Binary files differnew file mode 100755 index 00000000000..6a66e63d2ad --- /dev/null +++ b/app/assets/images/emoji/nail_care.png diff --git a/app/assets/images/emoji/name_badge.png b/app/assets/images/emoji/name_badge.png Binary files differnew file mode 100755 index 00000000000..2b712dcd55a --- /dev/null +++ b/app/assets/images/emoji/name_badge.png diff --git a/app/assets/images/emoji/neckbeard.png b/app/assets/images/emoji/neckbeard.png Binary files differnew file mode 100755 index 00000000000..15108fc97da --- /dev/null +++ b/app/assets/images/emoji/neckbeard.png diff --git a/app/assets/images/emoji/necktie.png b/app/assets/images/emoji/necktie.png Binary files differnew file mode 100755 index 00000000000..80461c66f3a --- /dev/null +++ b/app/assets/images/emoji/necktie.png diff --git a/app/assets/images/emoji/negative_squared_cross_mark.png b/app/assets/images/emoji/negative_squared_cross_mark.png Binary files differnew file mode 100755 index 00000000000..b47a0cece5c --- /dev/null +++ b/app/assets/images/emoji/negative_squared_cross_mark.png diff --git a/app/assets/images/emoji/neutral_face.png b/app/assets/images/emoji/neutral_face.png Binary files differnew file mode 100755 index 00000000000..682a1ba066d --- /dev/null +++ b/app/assets/images/emoji/neutral_face.png diff --git a/app/assets/images/emoji/new.png b/app/assets/images/emoji/new.png Binary files differnew file mode 100755 index 00000000000..28d1570e0a6 --- /dev/null +++ b/app/assets/images/emoji/new.png diff --git a/app/assets/images/emoji/new_moon.png b/app/assets/images/emoji/new_moon.png Binary files differnew file mode 100755 index 00000000000..540239b1f3e --- /dev/null +++ b/app/assets/images/emoji/new_moon.png diff --git a/app/assets/images/emoji/new_moon_with_face.png b/app/assets/images/emoji/new_moon_with_face.png Binary files differnew file mode 100755 index 00000000000..b9aff7a0683 --- /dev/null +++ b/app/assets/images/emoji/new_moon_with_face.png diff --git a/app/assets/images/emoji/newspaper.png b/app/assets/images/emoji/newspaper.png Binary files differnew file mode 100755 index 00000000000..d171394e6a8 --- /dev/null +++ b/app/assets/images/emoji/newspaper.png diff --git a/app/assets/images/emoji/ng.png b/app/assets/images/emoji/ng.png Binary files differnew file mode 100755 index 00000000000..2ca180ae397 --- /dev/null +++ b/app/assets/images/emoji/ng.png diff --git a/app/assets/images/emoji/nine.png b/app/assets/images/emoji/nine.png Binary files differnew file mode 100755 index 00000000000..8006cc909f3 --- /dev/null +++ b/app/assets/images/emoji/nine.png diff --git a/app/assets/images/emoji/no_bell.png b/app/assets/images/emoji/no_bell.png Binary files differnew file mode 100755 index 00000000000..613b81cd21e --- /dev/null +++ b/app/assets/images/emoji/no_bell.png diff --git a/app/assets/images/emoji/no_bicycles.png b/app/assets/images/emoji/no_bicycles.png Binary files differnew file mode 100755 index 00000000000..4b262166455 --- /dev/null +++ b/app/assets/images/emoji/no_bicycles.png diff --git a/app/assets/images/emoji/no_entry.png b/app/assets/images/emoji/no_entry.png Binary files differnew file mode 100755 index 00000000000..cf2086a8e74 --- /dev/null +++ b/app/assets/images/emoji/no_entry.png diff --git a/app/assets/images/emoji/no_entry_sign.png b/app/assets/images/emoji/no_entry_sign.png Binary files differnew file mode 100755 index 00000000000..a8444d18d2a --- /dev/null +++ b/app/assets/images/emoji/no_entry_sign.png diff --git a/app/assets/images/emoji/no_good.png b/app/assets/images/emoji/no_good.png Binary files differnew file mode 100755 index 00000000000..d459a35bc1f --- /dev/null +++ b/app/assets/images/emoji/no_good.png diff --git a/app/assets/images/emoji/no_mobile_phones.png b/app/assets/images/emoji/no_mobile_phones.png Binary files differnew file mode 100755 index 00000000000..41df57cf827 --- /dev/null +++ b/app/assets/images/emoji/no_mobile_phones.png diff --git a/app/assets/images/emoji/no_mouth.png b/app/assets/images/emoji/no_mouth.png Binary files differnew file mode 100755 index 00000000000..d9ec7ca7d79 --- /dev/null +++ b/app/assets/images/emoji/no_mouth.png diff --git a/app/assets/images/emoji/no_pedestrians.png b/app/assets/images/emoji/no_pedestrians.png Binary files differnew file mode 100755 index 00000000000..c35f530b220 --- /dev/null +++ b/app/assets/images/emoji/no_pedestrians.png diff --git a/app/assets/images/emoji/no_smoking.png b/app/assets/images/emoji/no_smoking.png Binary files differnew file mode 100755 index 00000000000..5880ddfd188 --- /dev/null +++ b/app/assets/images/emoji/no_smoking.png diff --git a/app/assets/images/emoji/non-potable_water.png b/app/assets/images/emoji/non-potable_water.png Binary files differnew file mode 100755 index 00000000000..1b29d35b98b --- /dev/null +++ b/app/assets/images/emoji/non-potable_water.png diff --git a/app/assets/images/emoji/nose.png b/app/assets/images/emoji/nose.png Binary files differnew file mode 100755 index 00000000000..ad17c16c29e --- /dev/null +++ b/app/assets/images/emoji/nose.png diff --git a/app/assets/images/emoji/notebook.png b/app/assets/images/emoji/notebook.png Binary files differnew file mode 100755 index 00000000000..07ea6087ed4 --- /dev/null +++ b/app/assets/images/emoji/notebook.png diff --git a/app/assets/images/emoji/notebook_with_decorative_cover.png b/app/assets/images/emoji/notebook_with_decorative_cover.png Binary files differnew file mode 100755 index 00000000000..4f3b14c85f3 --- /dev/null +++ b/app/assets/images/emoji/notebook_with_decorative_cover.png diff --git a/app/assets/images/emoji/notes.png b/app/assets/images/emoji/notes.png Binary files differnew file mode 100755 index 00000000000..0956d6ab2a8 --- /dev/null +++ b/app/assets/images/emoji/notes.png diff --git a/app/assets/images/emoji/nut_and_bolt.png b/app/assets/images/emoji/nut_and_bolt.png Binary files differnew file mode 100755 index 00000000000..bddfa72a7d3 --- /dev/null +++ b/app/assets/images/emoji/nut_and_bolt.png diff --git a/app/assets/images/emoji/o.png b/app/assets/images/emoji/o.png Binary files differnew file mode 100755 index 00000000000..0ededebe312 --- /dev/null +++ b/app/assets/images/emoji/o.png diff --git a/app/assets/images/emoji/o2.png b/app/assets/images/emoji/o2.png Binary files differnew file mode 100755 index 00000000000..d85f9fb98c7 --- /dev/null +++ b/app/assets/images/emoji/o2.png diff --git a/app/assets/images/emoji/ocean.png b/app/assets/images/emoji/ocean.png Binary files differnew file mode 100755 index 00000000000..f8d520cd490 --- /dev/null +++ b/app/assets/images/emoji/ocean.png diff --git a/app/assets/images/emoji/octocat.png b/app/assets/images/emoji/octocat.png Binary files differnew file mode 100755 index 00000000000..3fc20503e90 --- /dev/null +++ b/app/assets/images/emoji/octocat.png diff --git a/app/assets/images/emoji/octopus.png b/app/assets/images/emoji/octopus.png Binary files differnew file mode 100755 index 00000000000..52ce64b4687 --- /dev/null +++ b/app/assets/images/emoji/octopus.png diff --git a/app/assets/images/emoji/oden.png b/app/assets/images/emoji/oden.png Binary files differnew file mode 100755 index 00000000000..73add1c73cf --- /dev/null +++ b/app/assets/images/emoji/oden.png diff --git a/app/assets/images/emoji/office.png b/app/assets/images/emoji/office.png Binary files differnew file mode 100755 index 00000000000..ea9281a413d --- /dev/null +++ b/app/assets/images/emoji/office.png diff --git a/app/assets/images/emoji/ok.png b/app/assets/images/emoji/ok.png Binary files differnew file mode 100755 index 00000000000..6433d1a90a9 --- /dev/null +++ b/app/assets/images/emoji/ok.png diff --git a/app/assets/images/emoji/ok_hand.png b/app/assets/images/emoji/ok_hand.png Binary files differnew file mode 100755 index 00000000000..80c5aebb680 --- /dev/null +++ b/app/assets/images/emoji/ok_hand.png diff --git a/app/assets/images/emoji/ok_woman.png b/app/assets/images/emoji/ok_woman.png Binary files differnew file mode 100755 index 00000000000..e8b98194edb --- /dev/null +++ b/app/assets/images/emoji/ok_woman.png diff --git a/app/assets/images/emoji/older_man.png b/app/assets/images/emoji/older_man.png Binary files differnew file mode 100755 index 00000000000..149f0cfb8e1 --- /dev/null +++ b/app/assets/images/emoji/older_man.png diff --git a/app/assets/images/emoji/older_woman.png b/app/assets/images/emoji/older_woman.png Binary files differnew file mode 100755 index 00000000000..f839565f478 --- /dev/null +++ b/app/assets/images/emoji/older_woman.png diff --git a/app/assets/images/emoji/on.png b/app/assets/images/emoji/on.png Binary files differnew file mode 100755 index 00000000000..3595387fb63 --- /dev/null +++ b/app/assets/images/emoji/on.png diff --git a/app/assets/images/emoji/oncoming_automobile.png b/app/assets/images/emoji/oncoming_automobile.png Binary files differnew file mode 100755 index 00000000000..cb46de22cbb --- /dev/null +++ b/app/assets/images/emoji/oncoming_automobile.png diff --git a/app/assets/images/emoji/oncoming_bus.png b/app/assets/images/emoji/oncoming_bus.png Binary files differnew file mode 100755 index 00000000000..3695f762353 --- /dev/null +++ b/app/assets/images/emoji/oncoming_bus.png diff --git a/app/assets/images/emoji/oncoming_police_car.png b/app/assets/images/emoji/oncoming_police_car.png Binary files differnew file mode 100755 index 00000000000..af20e7eff03 --- /dev/null +++ b/app/assets/images/emoji/oncoming_police_car.png diff --git a/app/assets/images/emoji/oncoming_taxi.png b/app/assets/images/emoji/oncoming_taxi.png Binary files differnew file mode 100755 index 00000000000..f78cf3103b8 --- /dev/null +++ b/app/assets/images/emoji/oncoming_taxi.png diff --git a/app/assets/images/emoji/one.png b/app/assets/images/emoji/one.png Binary files differnew file mode 100755 index 00000000000..2d1f9f8c49d --- /dev/null +++ b/app/assets/images/emoji/one.png diff --git a/app/assets/images/emoji/open_file_folder.png b/app/assets/images/emoji/open_file_folder.png Binary files differnew file mode 100755 index 00000000000..2bbbbf5e7cd --- /dev/null +++ b/app/assets/images/emoji/open_file_folder.png diff --git a/app/assets/images/emoji/open_hands.png b/app/assets/images/emoji/open_hands.png Binary files differnew file mode 100755 index 00000000000..2cc25bd41a4 --- /dev/null +++ b/app/assets/images/emoji/open_hands.png diff --git a/app/assets/images/emoji/ophiuchus.png b/app/assets/images/emoji/ophiuchus.png Binary files differnew file mode 100755 index 00000000000..4eef715bc28 --- /dev/null +++ b/app/assets/images/emoji/ophiuchus.png diff --git a/app/assets/images/emoji/orange_book.png b/app/assets/images/emoji/orange_book.png Binary files differnew file mode 100755 index 00000000000..49650d59e59 --- /dev/null +++ b/app/assets/images/emoji/orange_book.png diff --git a/app/assets/images/emoji/outbox_tray.png b/app/assets/images/emoji/outbox_tray.png Binary files differnew file mode 100755 index 00000000000..7ad15e649de --- /dev/null +++ b/app/assets/images/emoji/outbox_tray.png diff --git a/app/assets/images/emoji/ox.png b/app/assets/images/emoji/ox.png Binary files differnew file mode 100755 index 00000000000..f7669802480 --- /dev/null +++ b/app/assets/images/emoji/ox.png diff --git a/app/assets/images/emoji/page_facing_up.png b/app/assets/images/emoji/page_facing_up.png Binary files differnew file mode 100755 index 00000000000..64cd2e1b2a2 --- /dev/null +++ b/app/assets/images/emoji/page_facing_up.png diff --git a/app/assets/images/emoji/page_with_curl.png b/app/assets/images/emoji/page_with_curl.png Binary files differnew file mode 100755 index 00000000000..bf8f979d31c --- /dev/null +++ b/app/assets/images/emoji/page_with_curl.png diff --git a/app/assets/images/emoji/pager.png b/app/assets/images/emoji/pager.png Binary files differnew file mode 100755 index 00000000000..e3e1fc44ee5 --- /dev/null +++ b/app/assets/images/emoji/pager.png diff --git a/app/assets/images/emoji/palm_tree.png b/app/assets/images/emoji/palm_tree.png Binary files differnew file mode 100755 index 00000000000..d534785ef96 --- /dev/null +++ b/app/assets/images/emoji/palm_tree.png diff --git a/app/assets/images/emoji/panda_face.png b/app/assets/images/emoji/panda_face.png Binary files differnew file mode 100755 index 00000000000..a794fb17f67 --- /dev/null +++ b/app/assets/images/emoji/panda_face.png diff --git a/app/assets/images/emoji/paperclip.png b/app/assets/images/emoji/paperclip.png Binary files differnew file mode 100755 index 00000000000..774412dc10f --- /dev/null +++ b/app/assets/images/emoji/paperclip.png diff --git a/app/assets/images/emoji/parking.png b/app/assets/images/emoji/parking.png Binary files differnew file mode 100755 index 00000000000..c24af81ccf6 --- /dev/null +++ b/app/assets/images/emoji/parking.png diff --git a/app/assets/images/emoji/part_alternation_mark.png b/app/assets/images/emoji/part_alternation_mark.png Binary files differnew file mode 100755 index 00000000000..45dc9b851a1 --- /dev/null +++ b/app/assets/images/emoji/part_alternation_mark.png diff --git a/app/assets/images/emoji/partly_sunny.png b/app/assets/images/emoji/partly_sunny.png Binary files differnew file mode 100755 index 00000000000..020dd5ff698 --- /dev/null +++ b/app/assets/images/emoji/partly_sunny.png diff --git a/app/assets/images/emoji/passport_control.png b/app/assets/images/emoji/passport_control.png Binary files differnew file mode 100755 index 00000000000..675b76d378c --- /dev/null +++ b/app/assets/images/emoji/passport_control.png diff --git a/app/assets/images/emoji/paw_prints.png b/app/assets/images/emoji/paw_prints.png Binary files differnew file mode 100755 index 00000000000..89b9fec9efa --- /dev/null +++ b/app/assets/images/emoji/paw_prints.png diff --git a/app/assets/images/emoji/peach.png b/app/assets/images/emoji/peach.png Binary files differnew file mode 100755 index 00000000000..ee2139ecb88 --- /dev/null +++ b/app/assets/images/emoji/peach.png diff --git a/app/assets/images/emoji/pear.png b/app/assets/images/emoji/pear.png Binary files differnew file mode 100755 index 00000000000..f24aca8c0a8 --- /dev/null +++ b/app/assets/images/emoji/pear.png diff --git a/app/assets/images/emoji/pencil.png b/app/assets/images/emoji/pencil.png Binary files differnew file mode 100755 index 00000000000..fc97ddbc92b --- /dev/null +++ b/app/assets/images/emoji/pencil.png diff --git a/app/assets/images/emoji/pencil2.png b/app/assets/images/emoji/pencil2.png Binary files differnew file mode 100755 index 00000000000..e624373b491 --- /dev/null +++ b/app/assets/images/emoji/pencil2.png diff --git a/app/assets/images/emoji/penguin.png b/app/assets/images/emoji/penguin.png Binary files differnew file mode 100755 index 00000000000..d8edbcb8fa9 --- /dev/null +++ b/app/assets/images/emoji/penguin.png diff --git a/app/assets/images/emoji/pensive.png b/app/assets/images/emoji/pensive.png Binary files differnew file mode 100755 index 00000000000..4159f3c42ff --- /dev/null +++ b/app/assets/images/emoji/pensive.png diff --git a/app/assets/images/emoji/performing_arts.png b/app/assets/images/emoji/performing_arts.png Binary files differnew file mode 100755 index 00000000000..899fbe5a791 --- /dev/null +++ b/app/assets/images/emoji/performing_arts.png diff --git a/app/assets/images/emoji/persevere.png b/app/assets/images/emoji/persevere.png Binary files differnew file mode 100755 index 00000000000..f99f6da47c1 --- /dev/null +++ b/app/assets/images/emoji/persevere.png diff --git a/app/assets/images/emoji/person_frowning.png b/app/assets/images/emoji/person_frowning.png Binary files differnew file mode 100755 index 00000000000..6f34d5e159d --- /dev/null +++ b/app/assets/images/emoji/person_frowning.png diff --git a/app/assets/images/emoji/person_with_blond_hair.png b/app/assets/images/emoji/person_with_blond_hair.png Binary files differnew file mode 100755 index 00000000000..c144301cbb8 --- /dev/null +++ b/app/assets/images/emoji/person_with_blond_hair.png diff --git a/app/assets/images/emoji/person_with_pouting_face.png b/app/assets/images/emoji/person_with_pouting_face.png Binary files differnew file mode 100755 index 00000000000..c4a95c3b2a2 --- /dev/null +++ b/app/assets/images/emoji/person_with_pouting_face.png diff --git a/app/assets/images/emoji/phone.png b/app/assets/images/emoji/phone.png Binary files differnew file mode 100755 index 00000000000..87d2559b552 --- /dev/null +++ b/app/assets/images/emoji/phone.png diff --git a/app/assets/images/emoji/pig.png b/app/assets/images/emoji/pig.png Binary files differnew file mode 100755 index 00000000000..f7f273c733b --- /dev/null +++ b/app/assets/images/emoji/pig.png diff --git a/app/assets/images/emoji/pig2.png b/app/assets/images/emoji/pig2.png Binary files differnew file mode 100755 index 00000000000..fec3374d709 --- /dev/null +++ b/app/assets/images/emoji/pig2.png diff --git a/app/assets/images/emoji/pig_nose.png b/app/assets/images/emoji/pig_nose.png Binary files differnew file mode 100755 index 00000000000..38d612446eb --- /dev/null +++ b/app/assets/images/emoji/pig_nose.png diff --git a/app/assets/images/emoji/pill.png b/app/assets/images/emoji/pill.png Binary files differnew file mode 100755 index 00000000000..cd84a78ff75 --- /dev/null +++ b/app/assets/images/emoji/pill.png diff --git a/app/assets/images/emoji/pineapple.png b/app/assets/images/emoji/pineapple.png Binary files differnew file mode 100755 index 00000000000..d6f8e287692 --- /dev/null +++ b/app/assets/images/emoji/pineapple.png diff --git a/app/assets/images/emoji/pisces.png b/app/assets/images/emoji/pisces.png Binary files differnew file mode 100755 index 00000000000..5a2da0a0599 --- /dev/null +++ b/app/assets/images/emoji/pisces.png diff --git a/app/assets/images/emoji/pizza.png b/app/assets/images/emoji/pizza.png Binary files differnew file mode 100755 index 00000000000..460367d02cd --- /dev/null +++ b/app/assets/images/emoji/pizza.png diff --git a/app/assets/images/emoji/plus1.png b/app/assets/images/emoji/plus1.png Binary files differnew file mode 100755 index 00000000000..81786c1d8f5 --- /dev/null +++ b/app/assets/images/emoji/plus1.png diff --git a/app/assets/images/emoji/point_down.png b/app/assets/images/emoji/point_down.png Binary files differnew file mode 100755 index 00000000000..658c6d91875 --- /dev/null +++ b/app/assets/images/emoji/point_down.png diff --git a/app/assets/images/emoji/point_left.png b/app/assets/images/emoji/point_left.png Binary files differnew file mode 100755 index 00000000000..38a99b43f7f --- /dev/null +++ b/app/assets/images/emoji/point_left.png diff --git a/app/assets/images/emoji/point_right.png b/app/assets/images/emoji/point_right.png Binary files differnew file mode 100755 index 00000000000..6f9f029a420 --- /dev/null +++ b/app/assets/images/emoji/point_right.png diff --git a/app/assets/images/emoji/point_up.png b/app/assets/images/emoji/point_up.png Binary files differnew file mode 100755 index 00000000000..01896e214aa --- /dev/null +++ b/app/assets/images/emoji/point_up.png diff --git a/app/assets/images/emoji/point_up_2.png b/app/assets/images/emoji/point_up_2.png Binary files differnew file mode 100755 index 00000000000..1cfe73672c0 --- /dev/null +++ b/app/assets/images/emoji/point_up_2.png diff --git a/app/assets/images/emoji/police_car.png b/app/assets/images/emoji/police_car.png Binary files differnew file mode 100755 index 00000000000..b8f17275ee1 --- /dev/null +++ b/app/assets/images/emoji/police_car.png diff --git a/app/assets/images/emoji/poodle.png b/app/assets/images/emoji/poodle.png Binary files differnew file mode 100755 index 00000000000..adac80bd97a --- /dev/null +++ b/app/assets/images/emoji/poodle.png diff --git a/app/assets/images/emoji/poop.png b/app/assets/images/emoji/poop.png Binary files differnew file mode 100755 index 00000000000..73a4dc84008 --- /dev/null +++ b/app/assets/images/emoji/poop.png diff --git a/app/assets/images/emoji/post_office.png b/app/assets/images/emoji/post_office.png Binary files differnew file mode 100755 index 00000000000..43b59e30ec2 --- /dev/null +++ b/app/assets/images/emoji/post_office.png diff --git a/app/assets/images/emoji/postal_horn.png b/app/assets/images/emoji/postal_horn.png Binary files differnew file mode 100755 index 00000000000..e9b713bbeca --- /dev/null +++ b/app/assets/images/emoji/postal_horn.png diff --git a/app/assets/images/emoji/postbox.png b/app/assets/images/emoji/postbox.png Binary files differnew file mode 100755 index 00000000000..ce04b7008ba --- /dev/null +++ b/app/assets/images/emoji/postbox.png diff --git a/app/assets/images/emoji/potable_water.png b/app/assets/images/emoji/potable_water.png Binary files differnew file mode 100755 index 00000000000..e9fd56079ca --- /dev/null +++ b/app/assets/images/emoji/potable_water.png diff --git a/app/assets/images/emoji/pouch.png b/app/assets/images/emoji/pouch.png Binary files differnew file mode 100755 index 00000000000..0bc5879fcbb --- /dev/null +++ b/app/assets/images/emoji/pouch.png diff --git a/app/assets/images/emoji/poultry_leg.png b/app/assets/images/emoji/poultry_leg.png Binary files differnew file mode 100755 index 00000000000..43ad8596518 --- /dev/null +++ b/app/assets/images/emoji/poultry_leg.png diff --git a/app/assets/images/emoji/pound.png b/app/assets/images/emoji/pound.png Binary files differnew file mode 100755 index 00000000000..f8be91d7a4b --- /dev/null +++ b/app/assets/images/emoji/pound.png diff --git a/app/assets/images/emoji/pouting_cat.png b/app/assets/images/emoji/pouting_cat.png Binary files differnew file mode 100755 index 00000000000..4325fd48dd7 --- /dev/null +++ b/app/assets/images/emoji/pouting_cat.png diff --git a/app/assets/images/emoji/pray.png b/app/assets/images/emoji/pray.png Binary files differnew file mode 100755 index 00000000000..f86c992d5a7 --- /dev/null +++ b/app/assets/images/emoji/pray.png diff --git a/app/assets/images/emoji/princess.png b/app/assets/images/emoji/princess.png Binary files differnew file mode 100755 index 00000000000..1ebb2ce9b13 --- /dev/null +++ b/app/assets/images/emoji/princess.png diff --git a/app/assets/images/emoji/punch.png b/app/assets/images/emoji/punch.png Binary files differnew file mode 100755 index 00000000000..277047b7c46 --- /dev/null +++ b/app/assets/images/emoji/punch.png diff --git a/app/assets/images/emoji/purple_heart.png b/app/assets/images/emoji/purple_heart.png Binary files differnew file mode 100755 index 00000000000..d5f875043f0 --- /dev/null +++ b/app/assets/images/emoji/purple_heart.png diff --git a/app/assets/images/emoji/purse.png b/app/assets/images/emoji/purse.png Binary files differnew file mode 100755 index 00000000000..8f06a2b932c --- /dev/null +++ b/app/assets/images/emoji/purse.png diff --git a/app/assets/images/emoji/pushpin.png b/app/assets/images/emoji/pushpin.png Binary files differnew file mode 100755 index 00000000000..540c4ecb885 --- /dev/null +++ b/app/assets/images/emoji/pushpin.png diff --git a/app/assets/images/emoji/put_litter_in_its_place.png b/app/assets/images/emoji/put_litter_in_its_place.png Binary files differnew file mode 100755 index 00000000000..c2e350c2dc6 --- /dev/null +++ b/app/assets/images/emoji/put_litter_in_its_place.png diff --git a/app/assets/images/emoji/question.png b/app/assets/images/emoji/question.png Binary files differnew file mode 100755 index 00000000000..38cedf560fb --- /dev/null +++ b/app/assets/images/emoji/question.png diff --git a/app/assets/images/emoji/rabbit.png b/app/assets/images/emoji/rabbit.png Binary files differnew file mode 100755 index 00000000000..5cb3ef6f0c6 --- /dev/null +++ b/app/assets/images/emoji/rabbit.png diff --git a/app/assets/images/emoji/rabbit2.png b/app/assets/images/emoji/rabbit2.png Binary files differnew file mode 100755 index 00000000000..5bc993e799c --- /dev/null +++ b/app/assets/images/emoji/rabbit2.png diff --git a/app/assets/images/emoji/racehorse.png b/app/assets/images/emoji/racehorse.png Binary files differnew file mode 100755 index 00000000000..4d09c64de7e --- /dev/null +++ b/app/assets/images/emoji/racehorse.png diff --git a/app/assets/images/emoji/radio.png b/app/assets/images/emoji/radio.png Binary files differnew file mode 100755 index 00000000000..ea589efe32c --- /dev/null +++ b/app/assets/images/emoji/radio.png diff --git a/app/assets/images/emoji/radio_button.png b/app/assets/images/emoji/radio_button.png Binary files differnew file mode 100755 index 00000000000..63755eec258 --- /dev/null +++ b/app/assets/images/emoji/radio_button.png diff --git a/app/assets/images/emoji/rage.png b/app/assets/images/emoji/rage.png Binary files differnew file mode 100755 index 00000000000..c65ddff552a --- /dev/null +++ b/app/assets/images/emoji/rage.png diff --git a/app/assets/images/emoji/rage1.png b/app/assets/images/emoji/rage1.png Binary files differnew file mode 100755 index 00000000000..1506ba4032a --- /dev/null +++ b/app/assets/images/emoji/rage1.png diff --git a/app/assets/images/emoji/rage2.png b/app/assets/images/emoji/rage2.png Binary files differnew file mode 100755 index 00000000000..f792e063b49 --- /dev/null +++ b/app/assets/images/emoji/rage2.png diff --git a/app/assets/images/emoji/rage3.png b/app/assets/images/emoji/rage3.png Binary files differnew file mode 100755 index 00000000000..58764cbcb3b --- /dev/null +++ b/app/assets/images/emoji/rage3.png diff --git a/app/assets/images/emoji/rage4.png b/app/assets/images/emoji/rage4.png Binary files differnew file mode 100755 index 00000000000..c726c94a295 --- /dev/null +++ b/app/assets/images/emoji/rage4.png diff --git a/app/assets/images/emoji/railway_car.png b/app/assets/images/emoji/railway_car.png Binary files differnew file mode 100755 index 00000000000..22361158fb3 --- /dev/null +++ b/app/assets/images/emoji/railway_car.png diff --git a/app/assets/images/emoji/rainbow.png b/app/assets/images/emoji/rainbow.png Binary files differnew file mode 100755 index 00000000000..6b1faa03793 --- /dev/null +++ b/app/assets/images/emoji/rainbow.png diff --git a/app/assets/images/emoji/raised_hand.png b/app/assets/images/emoji/raised_hand.png Binary files differnew file mode 100755 index 00000000000..e1741a40e74 --- /dev/null +++ b/app/assets/images/emoji/raised_hand.png diff --git a/app/assets/images/emoji/raised_hands.png b/app/assets/images/emoji/raised_hands.png Binary files differnew file mode 100755 index 00000000000..e03142bdce9 --- /dev/null +++ b/app/assets/images/emoji/raised_hands.png diff --git a/app/assets/images/emoji/ram.png b/app/assets/images/emoji/ram.png Binary files differnew file mode 100755 index 00000000000..5ea7bfbc0d8 --- /dev/null +++ b/app/assets/images/emoji/ram.png diff --git a/app/assets/images/emoji/ramen.png b/app/assets/images/emoji/ramen.png Binary files differnew file mode 100755 index 00000000000..78dc7d537fb --- /dev/null +++ b/app/assets/images/emoji/ramen.png diff --git a/app/assets/images/emoji/rat.png b/app/assets/images/emoji/rat.png Binary files differnew file mode 100755 index 00000000000..1c463dfde64 --- /dev/null +++ b/app/assets/images/emoji/rat.png diff --git a/app/assets/images/emoji/recycle.png b/app/assets/images/emoji/recycle.png Binary files differnew file mode 100755 index 00000000000..99104c0e9cd --- /dev/null +++ b/app/assets/images/emoji/recycle.png diff --git a/app/assets/images/emoji/red_car.png b/app/assets/images/emoji/red_car.png Binary files differnew file mode 100755 index 00000000000..d70a2f06263 --- /dev/null +++ b/app/assets/images/emoji/red_car.png diff --git a/app/assets/images/emoji/red_circle.png b/app/assets/images/emoji/red_circle.png Binary files differnew file mode 100755 index 00000000000..b391289b203 --- /dev/null +++ b/app/assets/images/emoji/red_circle.png diff --git a/app/assets/images/emoji/registered.png b/app/assets/images/emoji/registered.png Binary files differnew file mode 100755 index 00000000000..31c68a80b08 --- /dev/null +++ b/app/assets/images/emoji/registered.png diff --git a/app/assets/images/emoji/relaxed.png b/app/assets/images/emoji/relaxed.png Binary files differnew file mode 100755 index 00000000000..bbab82d3bb5 --- /dev/null +++ b/app/assets/images/emoji/relaxed.png diff --git a/app/assets/images/emoji/relieved.png b/app/assets/images/emoji/relieved.png Binary files differnew file mode 100755 index 00000000000..fa5f9e7f9f9 --- /dev/null +++ b/app/assets/images/emoji/relieved.png diff --git a/app/assets/images/emoji/repeat.png b/app/assets/images/emoji/repeat.png Binary files differnew file mode 100755 index 00000000000..80113b6929b --- /dev/null +++ b/app/assets/images/emoji/repeat.png diff --git a/app/assets/images/emoji/repeat_one.png b/app/assets/images/emoji/repeat_one.png Binary files differnew file mode 100755 index 00000000000..3c47bcc1f33 --- /dev/null +++ b/app/assets/images/emoji/repeat_one.png diff --git a/app/assets/images/emoji/restroom.png b/app/assets/images/emoji/restroom.png Binary files differnew file mode 100755 index 00000000000..d6c111b29b9 --- /dev/null +++ b/app/assets/images/emoji/restroom.png diff --git a/app/assets/images/emoji/revolving_hearts.png b/app/assets/images/emoji/revolving_hearts.png Binary files differnew file mode 100755 index 00000000000..ea3317c47fb --- /dev/null +++ b/app/assets/images/emoji/revolving_hearts.png diff --git a/app/assets/images/emoji/rewind.png b/app/assets/images/emoji/rewind.png Binary files differnew file mode 100755 index 00000000000..26289dc3d2c --- /dev/null +++ b/app/assets/images/emoji/rewind.png diff --git a/app/assets/images/emoji/ribbon.png b/app/assets/images/emoji/ribbon.png Binary files differnew file mode 100755 index 00000000000..63ee5ba5af2 --- /dev/null +++ b/app/assets/images/emoji/ribbon.png diff --git a/app/assets/images/emoji/rice.png b/app/assets/images/emoji/rice.png Binary files differnew file mode 100755 index 00000000000..1fd22027bc5 --- /dev/null +++ b/app/assets/images/emoji/rice.png diff --git a/app/assets/images/emoji/rice_ball.png b/app/assets/images/emoji/rice_ball.png Binary files differnew file mode 100755 index 00000000000..04f8a88067c --- /dev/null +++ b/app/assets/images/emoji/rice_ball.png diff --git a/app/assets/images/emoji/rice_cracker.png b/app/assets/images/emoji/rice_cracker.png Binary files differnew file mode 100755 index 00000000000..954c901e935 --- /dev/null +++ b/app/assets/images/emoji/rice_cracker.png diff --git a/app/assets/images/emoji/rice_scene.png b/app/assets/images/emoji/rice_scene.png Binary files differnew file mode 100755 index 00000000000..14361988db7 --- /dev/null +++ b/app/assets/images/emoji/rice_scene.png diff --git a/app/assets/images/emoji/ring.png b/app/assets/images/emoji/ring.png Binary files differnew file mode 100755 index 00000000000..8a57fd68bac --- /dev/null +++ b/app/assets/images/emoji/ring.png diff --git a/app/assets/images/emoji/rocket.png b/app/assets/images/emoji/rocket.png Binary files differnew file mode 100755 index 00000000000..783078d3798 --- /dev/null +++ b/app/assets/images/emoji/rocket.png diff --git a/app/assets/images/emoji/roller_coaster.png b/app/assets/images/emoji/roller_coaster.png Binary files differnew file mode 100755 index 00000000000..9180b9861dc --- /dev/null +++ b/app/assets/images/emoji/roller_coaster.png diff --git a/app/assets/images/emoji/rooster.png b/app/assets/images/emoji/rooster.png Binary files differnew file mode 100755 index 00000000000..fab23ad3625 --- /dev/null +++ b/app/assets/images/emoji/rooster.png diff --git a/app/assets/images/emoji/rose.png b/app/assets/images/emoji/rose.png Binary files differnew file mode 100755 index 00000000000..3479fbcbbd4 --- /dev/null +++ b/app/assets/images/emoji/rose.png diff --git a/app/assets/images/emoji/rotating_light.png b/app/assets/images/emoji/rotating_light.png Binary files differnew file mode 100755 index 00000000000..6cf4a775e0a --- /dev/null +++ b/app/assets/images/emoji/rotating_light.png diff --git a/app/assets/images/emoji/round_pushpin.png b/app/assets/images/emoji/round_pushpin.png Binary files differnew file mode 100755 index 00000000000..e498e92cf6a --- /dev/null +++ b/app/assets/images/emoji/round_pushpin.png diff --git a/app/assets/images/emoji/rowboat.png b/app/assets/images/emoji/rowboat.png Binary files differnew file mode 100755 index 00000000000..fe8ae3ecdab --- /dev/null +++ b/app/assets/images/emoji/rowboat.png diff --git a/app/assets/images/emoji/ru.png b/app/assets/images/emoji/ru.png Binary files differnew file mode 100755 index 00000000000..55fcf3549e2 --- /dev/null +++ b/app/assets/images/emoji/ru.png diff --git a/app/assets/images/emoji/rugby_football.png b/app/assets/images/emoji/rugby_football.png Binary files differnew file mode 100755 index 00000000000..f8db67d7018 --- /dev/null +++ b/app/assets/images/emoji/rugby_football.png diff --git a/app/assets/images/emoji/runner.png b/app/assets/images/emoji/runner.png Binary files differnew file mode 100755 index 00000000000..cb00429623d --- /dev/null +++ b/app/assets/images/emoji/runner.png diff --git a/app/assets/images/emoji/running.png b/app/assets/images/emoji/running.png Binary files differnew file mode 100755 index 00000000000..1ecfd9059d8 --- /dev/null +++ b/app/assets/images/emoji/running.png diff --git a/app/assets/images/emoji/running_shirt_with_sash.png b/app/assets/images/emoji/running_shirt_with_sash.png Binary files differnew file mode 100755 index 00000000000..0d68bba0910 --- /dev/null +++ b/app/assets/images/emoji/running_shirt_with_sash.png diff --git a/app/assets/images/emoji/sa.png b/app/assets/images/emoji/sa.png Binary files differnew file mode 100755 index 00000000000..387f098b99c --- /dev/null +++ b/app/assets/images/emoji/sa.png diff --git a/app/assets/images/emoji/sagittarius.png b/app/assets/images/emoji/sagittarius.png Binary files differnew file mode 100755 index 00000000000..8b5435baaa9 --- /dev/null +++ b/app/assets/images/emoji/sagittarius.png diff --git a/app/assets/images/emoji/sailboat.png b/app/assets/images/emoji/sailboat.png Binary files differnew file mode 100755 index 00000000000..ff656dc62bb --- /dev/null +++ b/app/assets/images/emoji/sailboat.png diff --git a/app/assets/images/emoji/sake.png b/app/assets/images/emoji/sake.png Binary files differnew file mode 100755 index 00000000000..1f69907e58a --- /dev/null +++ b/app/assets/images/emoji/sake.png diff --git a/app/assets/images/emoji/sandal.png b/app/assets/images/emoji/sandal.png Binary files differnew file mode 100755 index 00000000000..0bb3f663f5c --- /dev/null +++ b/app/assets/images/emoji/sandal.png diff --git a/app/assets/images/emoji/santa.png b/app/assets/images/emoji/santa.png Binary files differnew file mode 100755 index 00000000000..a2240c07e7a --- /dev/null +++ b/app/assets/images/emoji/santa.png diff --git a/app/assets/images/emoji/satellite.png b/app/assets/images/emoji/satellite.png Binary files differnew file mode 100755 index 00000000000..3481cc2ef4a --- /dev/null +++ b/app/assets/images/emoji/satellite.png diff --git a/app/assets/images/emoji/satisfied.png b/app/assets/images/emoji/satisfied.png Binary files differnew file mode 100755 index 00000000000..fe5629f431e --- /dev/null +++ b/app/assets/images/emoji/satisfied.png diff --git a/app/assets/images/emoji/saxophone.png b/app/assets/images/emoji/saxophone.png Binary files differnew file mode 100755 index 00000000000..011559a7673 --- /dev/null +++ b/app/assets/images/emoji/saxophone.png diff --git a/app/assets/images/emoji/school.png b/app/assets/images/emoji/school.png Binary files differnew file mode 100755 index 00000000000..afd922bf137 --- /dev/null +++ b/app/assets/images/emoji/school.png diff --git a/app/assets/images/emoji/school_satchel.png b/app/assets/images/emoji/school_satchel.png Binary files differnew file mode 100755 index 00000000000..edfb19aec91 --- /dev/null +++ b/app/assets/images/emoji/school_satchel.png diff --git a/app/assets/images/emoji/scissors.png b/app/assets/images/emoji/scissors.png Binary files differnew file mode 100755 index 00000000000..be916043d2b --- /dev/null +++ b/app/assets/images/emoji/scissors.png diff --git a/app/assets/images/emoji/scorpius.png b/app/assets/images/emoji/scorpius.png Binary files differnew file mode 100755 index 00000000000..67fcea1658a --- /dev/null +++ b/app/assets/images/emoji/scorpius.png diff --git a/app/assets/images/emoji/scream.png b/app/assets/images/emoji/scream.png Binary files differnew file mode 100755 index 00000000000..9e93c885dba --- /dev/null +++ b/app/assets/images/emoji/scream.png diff --git a/app/assets/images/emoji/scream_cat.png b/app/assets/images/emoji/scream_cat.png Binary files differnew file mode 100755 index 00000000000..d94cd34ff5d --- /dev/null +++ b/app/assets/images/emoji/scream_cat.png diff --git a/app/assets/images/emoji/scroll.png b/app/assets/images/emoji/scroll.png Binary files differnew file mode 100755 index 00000000000..c5a10e6b8f7 --- /dev/null +++ b/app/assets/images/emoji/scroll.png diff --git a/app/assets/images/emoji/seat.png b/app/assets/images/emoji/seat.png Binary files differnew file mode 100755 index 00000000000..d1cb864b4bf --- /dev/null +++ b/app/assets/images/emoji/seat.png diff --git a/app/assets/images/emoji/secret.png b/app/assets/images/emoji/secret.png Binary files differnew file mode 100755 index 00000000000..82e383a60d1 --- /dev/null +++ b/app/assets/images/emoji/secret.png diff --git a/app/assets/images/emoji/see_no_evil.png b/app/assets/images/emoji/see_no_evil.png Binary files differnew file mode 100755 index 00000000000..0890a622279 --- /dev/null +++ b/app/assets/images/emoji/see_no_evil.png diff --git a/app/assets/images/emoji/seedling.png b/app/assets/images/emoji/seedling.png Binary files differnew file mode 100755 index 00000000000..f0eb5a6b99a --- /dev/null +++ b/app/assets/images/emoji/seedling.png diff --git a/app/assets/images/emoji/seven.png b/app/assets/images/emoji/seven.png Binary files differnew file mode 100755 index 00000000000..354e89ae75a --- /dev/null +++ b/app/assets/images/emoji/seven.png diff --git a/app/assets/images/emoji/shaved_ice.png b/app/assets/images/emoji/shaved_ice.png Binary files differnew file mode 100755 index 00000000000..0d0b382c22b --- /dev/null +++ b/app/assets/images/emoji/shaved_ice.png diff --git a/app/assets/images/emoji/sheep.png b/app/assets/images/emoji/sheep.png Binary files differnew file mode 100755 index 00000000000..c7277d2898e --- /dev/null +++ b/app/assets/images/emoji/sheep.png diff --git a/app/assets/images/emoji/shell.png b/app/assets/images/emoji/shell.png Binary files differnew file mode 100755 index 00000000000..3145b564963 --- /dev/null +++ b/app/assets/images/emoji/shell.png diff --git a/app/assets/images/emoji/ship.png b/app/assets/images/emoji/ship.png Binary files differnew file mode 100755 index 00000000000..5d2d8b602bb --- /dev/null +++ b/app/assets/images/emoji/ship.png diff --git a/app/assets/images/emoji/shipit.png b/app/assets/images/emoji/shipit.png Binary files differnew file mode 100755 index 00000000000..a58a47f62f9 --- /dev/null +++ b/app/assets/images/emoji/shipit.png diff --git a/app/assets/images/emoji/shirt.png b/app/assets/images/emoji/shirt.png Binary files differnew file mode 100755 index 00000000000..297a6d63ed3 --- /dev/null +++ b/app/assets/images/emoji/shirt.png diff --git a/app/assets/images/emoji/shit.png b/app/assets/images/emoji/shit.png Binary files differnew file mode 100755 index 00000000000..73a4dc84008 --- /dev/null +++ b/app/assets/images/emoji/shit.png diff --git a/app/assets/images/emoji/shoe.png b/app/assets/images/emoji/shoe.png Binary files differnew file mode 100755 index 00000000000..45b82e61cf2 --- /dev/null +++ b/app/assets/images/emoji/shoe.png diff --git a/app/assets/images/emoji/shower.png b/app/assets/images/emoji/shower.png Binary files differnew file mode 100755 index 00000000000..94f82aac02e --- /dev/null +++ b/app/assets/images/emoji/shower.png diff --git a/app/assets/images/emoji/signal_strength.png b/app/assets/images/emoji/signal_strength.png Binary files differnew file mode 100755 index 00000000000..a4bd23ebf70 --- /dev/null +++ b/app/assets/images/emoji/signal_strength.png diff --git a/app/assets/images/emoji/six.png b/app/assets/images/emoji/six.png Binary files differnew file mode 100755 index 00000000000..56880556577 --- /dev/null +++ b/app/assets/images/emoji/six.png diff --git a/app/assets/images/emoji/six_pointed_star.png b/app/assets/images/emoji/six_pointed_star.png Binary files differnew file mode 100755 index 00000000000..010f8f5f95f --- /dev/null +++ b/app/assets/images/emoji/six_pointed_star.png diff --git a/app/assets/images/emoji/ski.png b/app/assets/images/emoji/ski.png Binary files differnew file mode 100755 index 00000000000..98f5cb0f460 --- /dev/null +++ b/app/assets/images/emoji/ski.png diff --git a/app/assets/images/emoji/skull.png b/app/assets/images/emoji/skull.png Binary files differnew file mode 100755 index 00000000000..bd4ee38297a --- /dev/null +++ b/app/assets/images/emoji/skull.png diff --git a/app/assets/images/emoji/sleepy.png b/app/assets/images/emoji/sleepy.png Binary files differnew file mode 100755 index 00000000000..df4f55efd9a --- /dev/null +++ b/app/assets/images/emoji/sleepy.png diff --git a/app/assets/images/emoji/slot_machine.png b/app/assets/images/emoji/slot_machine.png Binary files differnew file mode 100755 index 00000000000..26f114830b8 --- /dev/null +++ b/app/assets/images/emoji/slot_machine.png diff --git a/app/assets/images/emoji/small_blue_diamond.png b/app/assets/images/emoji/small_blue_diamond.png Binary files differnew file mode 100755 index 00000000000..5a7b5d555a5 --- /dev/null +++ b/app/assets/images/emoji/small_blue_diamond.png diff --git a/app/assets/images/emoji/small_orange_diamond.png b/app/assets/images/emoji/small_orange_diamond.png Binary files differnew file mode 100755 index 00000000000..04941d37b63 --- /dev/null +++ b/app/assets/images/emoji/small_orange_diamond.png diff --git a/app/assets/images/emoji/small_red_triangle.png b/app/assets/images/emoji/small_red_triangle.png Binary files differnew file mode 100755 index 00000000000..8c4428da8fa --- /dev/null +++ b/app/assets/images/emoji/small_red_triangle.png diff --git a/app/assets/images/emoji/small_red_triangle_down.png b/app/assets/images/emoji/small_red_triangle_down.png Binary files differnew file mode 100755 index 00000000000..94832f060c4 --- /dev/null +++ b/app/assets/images/emoji/small_red_triangle_down.png diff --git a/app/assets/images/emoji/smile.png b/app/assets/images/emoji/smile.png Binary files differnew file mode 100755 index 00000000000..81a83968996 --- /dev/null +++ b/app/assets/images/emoji/smile.png diff --git a/app/assets/images/emoji/smile_cat.png b/app/assets/images/emoji/smile_cat.png Binary files differnew file mode 100755 index 00000000000..ad333ba3b6b --- /dev/null +++ b/app/assets/images/emoji/smile_cat.png diff --git a/app/assets/images/emoji/smiley.png b/app/assets/images/emoji/smiley.png Binary files differnew file mode 100755 index 00000000000..77b581d68fa --- /dev/null +++ b/app/assets/images/emoji/smiley.png diff --git a/app/assets/images/emoji/smiley_cat.png b/app/assets/images/emoji/smiley_cat.png Binary files differnew file mode 100755 index 00000000000..dbf1b0276ab --- /dev/null +++ b/app/assets/images/emoji/smiley_cat.png diff --git a/app/assets/images/emoji/smiling_imp.png b/app/assets/images/emoji/smiling_imp.png Binary files differnew file mode 100755 index 00000000000..d904049309c --- /dev/null +++ b/app/assets/images/emoji/smiling_imp.png diff --git a/app/assets/images/emoji/smirk.png b/app/assets/images/emoji/smirk.png Binary files differnew file mode 100755 index 00000000000..bc6e5082c8c --- /dev/null +++ b/app/assets/images/emoji/smirk.png diff --git a/app/assets/images/emoji/smirk_cat.png b/app/assets/images/emoji/smirk_cat.png Binary files differnew file mode 100755 index 00000000000..351565e2461 --- /dev/null +++ b/app/assets/images/emoji/smirk_cat.png diff --git a/app/assets/images/emoji/smoking.png b/app/assets/images/emoji/smoking.png Binary files differnew file mode 100755 index 00000000000..4aad6cbd7c4 --- /dev/null +++ b/app/assets/images/emoji/smoking.png diff --git a/app/assets/images/emoji/snail.png b/app/assets/images/emoji/snail.png Binary files differnew file mode 100755 index 00000000000..e75e69a84d3 --- /dev/null +++ b/app/assets/images/emoji/snail.png diff --git a/app/assets/images/emoji/snake.png b/app/assets/images/emoji/snake.png Binary files differnew file mode 100755 index 00000000000..ef58933e2b2 --- /dev/null +++ b/app/assets/images/emoji/snake.png diff --git a/app/assets/images/emoji/snowboarder.png b/app/assets/images/emoji/snowboarder.png Binary files differnew file mode 100755 index 00000000000..aeda5c8d872 --- /dev/null +++ b/app/assets/images/emoji/snowboarder.png diff --git a/app/assets/images/emoji/snowflake.png b/app/assets/images/emoji/snowflake.png Binary files differnew file mode 100755 index 00000000000..54b68ff4f13 --- /dev/null +++ b/app/assets/images/emoji/snowflake.png diff --git a/app/assets/images/emoji/snowman.png b/app/assets/images/emoji/snowman.png Binary files differnew file mode 100755 index 00000000000..a97902e5304 --- /dev/null +++ b/app/assets/images/emoji/snowman.png diff --git a/app/assets/images/emoji/sob.png b/app/assets/images/emoji/sob.png Binary files differnew file mode 100755 index 00000000000..1561df92eee --- /dev/null +++ b/app/assets/images/emoji/sob.png diff --git a/app/assets/images/emoji/soccer.png b/app/assets/images/emoji/soccer.png Binary files differnew file mode 100755 index 00000000000..1e118b5b184 --- /dev/null +++ b/app/assets/images/emoji/soccer.png diff --git a/app/assets/images/emoji/soon.png b/app/assets/images/emoji/soon.png Binary files differnew file mode 100755 index 00000000000..9386615a324 --- /dev/null +++ b/app/assets/images/emoji/soon.png diff --git a/app/assets/images/emoji/sos.png b/app/assets/images/emoji/sos.png Binary files differnew file mode 100755 index 00000000000..e3e16ef73f8 --- /dev/null +++ b/app/assets/images/emoji/sos.png diff --git a/app/assets/images/emoji/sound.png b/app/assets/images/emoji/sound.png Binary files differnew file mode 100755 index 00000000000..6aa4dbff4c0 --- /dev/null +++ b/app/assets/images/emoji/sound.png diff --git a/app/assets/images/emoji/space_invader.png b/app/assets/images/emoji/space_invader.png Binary files differnew file mode 100755 index 00000000000..38404916747 --- /dev/null +++ b/app/assets/images/emoji/space_invader.png diff --git a/app/assets/images/emoji/spades.png b/app/assets/images/emoji/spades.png Binary files differnew file mode 100755 index 00000000000..133a1aba8a3 --- /dev/null +++ b/app/assets/images/emoji/spades.png diff --git a/app/assets/images/emoji/spaghetti.png b/app/assets/images/emoji/spaghetti.png Binary files differnew file mode 100755 index 00000000000..08de243f554 --- /dev/null +++ b/app/assets/images/emoji/spaghetti.png diff --git a/app/assets/images/emoji/sparkler.png b/app/assets/images/emoji/sparkler.png Binary files differnew file mode 100755 index 00000000000..4aabd7e0ed3 --- /dev/null +++ b/app/assets/images/emoji/sparkler.png diff --git a/app/assets/images/emoji/sparkles.png b/app/assets/images/emoji/sparkles.png Binary files differnew file mode 100755 index 00000000000..92138828df0 --- /dev/null +++ b/app/assets/images/emoji/sparkles.png diff --git a/app/assets/images/emoji/speak_no_evil.png b/app/assets/images/emoji/speak_no_evil.png Binary files differnew file mode 100755 index 00000000000..87944c4de54 --- /dev/null +++ b/app/assets/images/emoji/speak_no_evil.png diff --git a/app/assets/images/emoji/speaker.png b/app/assets/images/emoji/speaker.png Binary files differnew file mode 100755 index 00000000000..470476e182e --- /dev/null +++ b/app/assets/images/emoji/speaker.png diff --git a/app/assets/images/emoji/speech_balloon.png b/app/assets/images/emoji/speech_balloon.png Binary files differnew file mode 100755 index 00000000000..2896c278886 --- /dev/null +++ b/app/assets/images/emoji/speech_balloon.png diff --git a/app/assets/images/emoji/speedboat.png b/app/assets/images/emoji/speedboat.png Binary files differnew file mode 100755 index 00000000000..da6689b3be7 --- /dev/null +++ b/app/assets/images/emoji/speedboat.png diff --git a/app/assets/images/emoji/squirrel.png b/app/assets/images/emoji/squirrel.png Binary files differnew file mode 100755 index 00000000000..a58a47f62f9 --- /dev/null +++ b/app/assets/images/emoji/squirrel.png diff --git a/app/assets/images/emoji/star.png b/app/assets/images/emoji/star.png Binary files differnew file mode 100755 index 00000000000..1bfddc86255 --- /dev/null +++ b/app/assets/images/emoji/star.png diff --git a/app/assets/images/emoji/star2.png b/app/assets/images/emoji/star2.png Binary files differnew file mode 100755 index 00000000000..8b40ff4c8c8 --- /dev/null +++ b/app/assets/images/emoji/star2.png diff --git a/app/assets/images/emoji/stars.png b/app/assets/images/emoji/stars.png Binary files differnew file mode 100755 index 00000000000..097a84241c1 --- /dev/null +++ b/app/assets/images/emoji/stars.png diff --git a/app/assets/images/emoji/station.png b/app/assets/images/emoji/station.png Binary files differnew file mode 100755 index 00000000000..e77daa8a75f --- /dev/null +++ b/app/assets/images/emoji/station.png diff --git a/app/assets/images/emoji/statue_of_liberty.png b/app/assets/images/emoji/statue_of_liberty.png Binary files differnew file mode 100755 index 00000000000..9ad90280689 --- /dev/null +++ b/app/assets/images/emoji/statue_of_liberty.png diff --git a/app/assets/images/emoji/steam_locomotive.png b/app/assets/images/emoji/steam_locomotive.png Binary files differnew file mode 100755 index 00000000000..5495077667b --- /dev/null +++ b/app/assets/images/emoji/steam_locomotive.png diff --git a/app/assets/images/emoji/stew.png b/app/assets/images/emoji/stew.png Binary files differnew file mode 100755 index 00000000000..e9687f9ec26 --- /dev/null +++ b/app/assets/images/emoji/stew.png diff --git a/app/assets/images/emoji/straight_ruler.png b/app/assets/images/emoji/straight_ruler.png Binary files differnew file mode 100755 index 00000000000..af8cb4bcffa --- /dev/null +++ b/app/assets/images/emoji/straight_ruler.png diff --git a/app/assets/images/emoji/strawberry.png b/app/assets/images/emoji/strawberry.png Binary files differnew file mode 100755 index 00000000000..13eb827ab87 --- /dev/null +++ b/app/assets/images/emoji/strawberry.png diff --git a/app/assets/images/emoji/sun_with_face.png b/app/assets/images/emoji/sun_with_face.png Binary files differnew file mode 100755 index 00000000000..ee276636fa4 --- /dev/null +++ b/app/assets/images/emoji/sun_with_face.png diff --git a/app/assets/images/emoji/sunflower.png b/app/assets/images/emoji/sunflower.png Binary files differnew file mode 100755 index 00000000000..d9bad194a21 --- /dev/null +++ b/app/assets/images/emoji/sunflower.png diff --git a/app/assets/images/emoji/sunglasses.png b/app/assets/images/emoji/sunglasses.png Binary files differnew file mode 100755 index 00000000000..1c468a1c91e --- /dev/null +++ b/app/assets/images/emoji/sunglasses.png diff --git a/app/assets/images/emoji/sunny.png b/app/assets/images/emoji/sunny.png Binary files differnew file mode 100755 index 00000000000..d23c095e080 --- /dev/null +++ b/app/assets/images/emoji/sunny.png diff --git a/app/assets/images/emoji/sunrise.png b/app/assets/images/emoji/sunrise.png Binary files differnew file mode 100755 index 00000000000..ec58dcc94ff --- /dev/null +++ b/app/assets/images/emoji/sunrise.png diff --git a/app/assets/images/emoji/sunrise_over_mountains.png b/app/assets/images/emoji/sunrise_over_mountains.png Binary files differnew file mode 100755 index 00000000000..ebc3db14680 --- /dev/null +++ b/app/assets/images/emoji/sunrise_over_mountains.png diff --git a/app/assets/images/emoji/surfer.png b/app/assets/images/emoji/surfer.png Binary files differnew file mode 100755 index 00000000000..b067e8cb323 --- /dev/null +++ b/app/assets/images/emoji/surfer.png diff --git a/app/assets/images/emoji/sushi.png b/app/assets/images/emoji/sushi.png Binary files differnew file mode 100755 index 00000000000..0d179bd9756 --- /dev/null +++ b/app/assets/images/emoji/sushi.png diff --git a/app/assets/images/emoji/suspect.png b/app/assets/images/emoji/suspect.png Binary files differnew file mode 100755 index 00000000000..58e8921c0a7 --- /dev/null +++ b/app/assets/images/emoji/suspect.png diff --git a/app/assets/images/emoji/suspension_railway.png b/app/assets/images/emoji/suspension_railway.png Binary files differnew file mode 100755 index 00000000000..aaa45f61f1f --- /dev/null +++ b/app/assets/images/emoji/suspension_railway.png diff --git a/app/assets/images/emoji/sweat.png b/app/assets/images/emoji/sweat.png Binary files differnew file mode 100755 index 00000000000..e894b769960 --- /dev/null +++ b/app/assets/images/emoji/sweat.png diff --git a/app/assets/images/emoji/sweat_drops.png b/app/assets/images/emoji/sweat_drops.png Binary files differnew file mode 100755 index 00000000000..a83b3e960cd --- /dev/null +++ b/app/assets/images/emoji/sweat_drops.png diff --git a/app/assets/images/emoji/sweat_smile.png b/app/assets/images/emoji/sweat_smile.png Binary files differnew file mode 100755 index 00000000000..3903f717f31 --- /dev/null +++ b/app/assets/images/emoji/sweat_smile.png diff --git a/app/assets/images/emoji/sweet_potato.png b/app/assets/images/emoji/sweet_potato.png Binary files differnew file mode 100755 index 00000000000..32117fa9c7f --- /dev/null +++ b/app/assets/images/emoji/sweet_potato.png diff --git a/app/assets/images/emoji/swimmer.png b/app/assets/images/emoji/swimmer.png Binary files differnew file mode 100755 index 00000000000..d3878a06525 --- /dev/null +++ b/app/assets/images/emoji/swimmer.png diff --git a/app/assets/images/emoji/symbols.png b/app/assets/images/emoji/symbols.png Binary files differnew file mode 100755 index 00000000000..16bc1da921f --- /dev/null +++ b/app/assets/images/emoji/symbols.png diff --git a/app/assets/images/emoji/syringe.png b/app/assets/images/emoji/syringe.png Binary files differnew file mode 100755 index 00000000000..7314255e3ca --- /dev/null +++ b/app/assets/images/emoji/syringe.png diff --git a/app/assets/images/emoji/tada.png b/app/assets/images/emoji/tada.png Binary files differnew file mode 100755 index 00000000000..7411b5266a0 --- /dev/null +++ b/app/assets/images/emoji/tada.png diff --git a/app/assets/images/emoji/tanabata_tree.png b/app/assets/images/emoji/tanabata_tree.png Binary files differnew file mode 100755 index 00000000000..473346410f6 --- /dev/null +++ b/app/assets/images/emoji/tanabata_tree.png diff --git a/app/assets/images/emoji/tangerine.png b/app/assets/images/emoji/tangerine.png Binary files differnew file mode 100755 index 00000000000..fc9d4f82ad9 --- /dev/null +++ b/app/assets/images/emoji/tangerine.png diff --git a/app/assets/images/emoji/taurus.png b/app/assets/images/emoji/taurus.png Binary files differnew file mode 100755 index 00000000000..6af582f69d2 --- /dev/null +++ b/app/assets/images/emoji/taurus.png diff --git a/app/assets/images/emoji/taxi.png b/app/assets/images/emoji/taxi.png Binary files differnew file mode 100755 index 00000000000..60a50d365a4 --- /dev/null +++ b/app/assets/images/emoji/taxi.png diff --git a/app/assets/images/emoji/tea.png b/app/assets/images/emoji/tea.png Binary files differnew file mode 100755 index 00000000000..3ece0b708af --- /dev/null +++ b/app/assets/images/emoji/tea.png diff --git a/app/assets/images/emoji/telephone.png b/app/assets/images/emoji/telephone.png Binary files differnew file mode 100755 index 00000000000..87d2559b552 --- /dev/null +++ b/app/assets/images/emoji/telephone.png diff --git a/app/assets/images/emoji/telephone_receiver.png b/app/assets/images/emoji/telephone_receiver.png Binary files differnew file mode 100755 index 00000000000..36e21e0123d --- /dev/null +++ b/app/assets/images/emoji/telephone_receiver.png diff --git a/app/assets/images/emoji/telescope.png b/app/assets/images/emoji/telescope.png Binary files differnew file mode 100755 index 00000000000..51fd8a07fae --- /dev/null +++ b/app/assets/images/emoji/telescope.png diff --git a/app/assets/images/emoji/tennis.png b/app/assets/images/emoji/tennis.png Binary files differnew file mode 100755 index 00000000000..278d904ee20 --- /dev/null +++ b/app/assets/images/emoji/tennis.png diff --git a/app/assets/images/emoji/tent.png b/app/assets/images/emoji/tent.png Binary files differnew file mode 100755 index 00000000000..5c0d20e48b6 --- /dev/null +++ b/app/assets/images/emoji/tent.png diff --git a/app/assets/images/emoji/thought_balloon.png b/app/assets/images/emoji/thought_balloon.png Binary files differnew file mode 100755 index 00000000000..701bdf0f64b --- /dev/null +++ b/app/assets/images/emoji/thought_balloon.png diff --git a/app/assets/images/emoji/three.png b/app/assets/images/emoji/three.png Binary files differnew file mode 100755 index 00000000000..55644c9900c --- /dev/null +++ b/app/assets/images/emoji/three.png diff --git a/app/assets/images/emoji/thumbsdown.png b/app/assets/images/emoji/thumbsdown.png Binary files differnew file mode 100755 index 00000000000..41c6b825d6a --- /dev/null +++ b/app/assets/images/emoji/thumbsdown.png diff --git a/app/assets/images/emoji/thumbsup.png b/app/assets/images/emoji/thumbsup.png Binary files differnew file mode 100755 index 00000000000..81786c1d8f5 --- /dev/null +++ b/app/assets/images/emoji/thumbsup.png diff --git a/app/assets/images/emoji/ticket.png b/app/assets/images/emoji/ticket.png Binary files differnew file mode 100755 index 00000000000..cdacf1a70be --- /dev/null +++ b/app/assets/images/emoji/ticket.png diff --git a/app/assets/images/emoji/tiger.png b/app/assets/images/emoji/tiger.png Binary files differnew file mode 100755 index 00000000000..d6cc84a3ba9 --- /dev/null +++ b/app/assets/images/emoji/tiger.png diff --git a/app/assets/images/emoji/tiger2.png b/app/assets/images/emoji/tiger2.png Binary files differnew file mode 100755 index 00000000000..b0c7d8dc3ec --- /dev/null +++ b/app/assets/images/emoji/tiger2.png diff --git a/app/assets/images/emoji/tired_face.png b/app/assets/images/emoji/tired_face.png Binary files differnew file mode 100755 index 00000000000..3a8eefe565d --- /dev/null +++ b/app/assets/images/emoji/tired_face.png diff --git a/app/assets/images/emoji/tm.png b/app/assets/images/emoji/tm.png Binary files differnew file mode 100755 index 00000000000..c7dec75a33a --- /dev/null +++ b/app/assets/images/emoji/tm.png diff --git a/app/assets/images/emoji/toilet.png b/app/assets/images/emoji/toilet.png Binary files differnew file mode 100755 index 00000000000..e5cc4119a15 --- /dev/null +++ b/app/assets/images/emoji/toilet.png diff --git a/app/assets/images/emoji/tokyo_tower.png b/app/assets/images/emoji/tokyo_tower.png Binary files differnew file mode 100755 index 00000000000..e1cbd7a3c5d --- /dev/null +++ b/app/assets/images/emoji/tokyo_tower.png diff --git a/app/assets/images/emoji/tomato.png b/app/assets/images/emoji/tomato.png Binary files differnew file mode 100755 index 00000000000..a129700bbb5 --- /dev/null +++ b/app/assets/images/emoji/tomato.png diff --git a/app/assets/images/emoji/tongue.png b/app/assets/images/emoji/tongue.png Binary files differnew file mode 100755 index 00000000000..333716ee1fe --- /dev/null +++ b/app/assets/images/emoji/tongue.png diff --git a/app/assets/images/emoji/tongue2.png b/app/assets/images/emoji/tongue2.png Binary files differnew file mode 100755 index 00000000000..b0bab12078f --- /dev/null +++ b/app/assets/images/emoji/tongue2.png diff --git a/app/assets/images/emoji/top.png b/app/assets/images/emoji/top.png Binary files differnew file mode 100755 index 00000000000..5aa4dd442da --- /dev/null +++ b/app/assets/images/emoji/top.png diff --git a/app/assets/images/emoji/tophat.png b/app/assets/images/emoji/tophat.png Binary files differnew file mode 100755 index 00000000000..7d27134d6a5 --- /dev/null +++ b/app/assets/images/emoji/tophat.png diff --git a/app/assets/images/emoji/tractor.png b/app/assets/images/emoji/tractor.png Binary files differnew file mode 100755 index 00000000000..058fd3eda55 --- /dev/null +++ b/app/assets/images/emoji/tractor.png diff --git a/app/assets/images/emoji/traffic_light.png b/app/assets/images/emoji/traffic_light.png Binary files differnew file mode 100755 index 00000000000..50c781016cc --- /dev/null +++ b/app/assets/images/emoji/traffic_light.png diff --git a/app/assets/images/emoji/train.png b/app/assets/images/emoji/train.png Binary files differnew file mode 100755 index 00000000000..3202d80ea9f --- /dev/null +++ b/app/assets/images/emoji/train.png diff --git a/app/assets/images/emoji/train2.png b/app/assets/images/emoji/train2.png Binary files differnew file mode 100755 index 00000000000..9c0d3ab6407 --- /dev/null +++ b/app/assets/images/emoji/train2.png diff --git a/app/assets/images/emoji/tram.png b/app/assets/images/emoji/tram.png Binary files differnew file mode 100755 index 00000000000..5eb29fb71cd --- /dev/null +++ b/app/assets/images/emoji/tram.png diff --git a/app/assets/images/emoji/triangular_flag_on_post.png b/app/assets/images/emoji/triangular_flag_on_post.png Binary files differnew file mode 100755 index 00000000000..f9a3f32d711 --- /dev/null +++ b/app/assets/images/emoji/triangular_flag_on_post.png diff --git a/app/assets/images/emoji/triangular_ruler.png b/app/assets/images/emoji/triangular_ruler.png Binary files differnew file mode 100755 index 00000000000..383677cb74c --- /dev/null +++ b/app/assets/images/emoji/triangular_ruler.png diff --git a/app/assets/images/emoji/trident.png b/app/assets/images/emoji/trident.png Binary files differnew file mode 100755 index 00000000000..d79a7b4cce5 --- /dev/null +++ b/app/assets/images/emoji/trident.png diff --git a/app/assets/images/emoji/triumph.png b/app/assets/images/emoji/triumph.png Binary files differnew file mode 100755 index 00000000000..92f93bd1025 --- /dev/null +++ b/app/assets/images/emoji/triumph.png diff --git a/app/assets/images/emoji/trolleybus.png b/app/assets/images/emoji/trolleybus.png Binary files differnew file mode 100755 index 00000000000..b9740a53f87 --- /dev/null +++ b/app/assets/images/emoji/trolleybus.png diff --git a/app/assets/images/emoji/trollface.png b/app/assets/images/emoji/trollface.png Binary files differnew file mode 100755 index 00000000000..e234893cef0 --- /dev/null +++ b/app/assets/images/emoji/trollface.png diff --git a/app/assets/images/emoji/trophy.png b/app/assets/images/emoji/trophy.png Binary files differnew file mode 100755 index 00000000000..95d3b63f524 --- /dev/null +++ b/app/assets/images/emoji/trophy.png diff --git a/app/assets/images/emoji/tropical_drink.png b/app/assets/images/emoji/tropical_drink.png Binary files differnew file mode 100755 index 00000000000..55ca9eeda75 --- /dev/null +++ b/app/assets/images/emoji/tropical_drink.png diff --git a/app/assets/images/emoji/tropical_fish.png b/app/assets/images/emoji/tropical_fish.png Binary files differnew file mode 100755 index 00000000000..a6d734987bb --- /dev/null +++ b/app/assets/images/emoji/tropical_fish.png diff --git a/app/assets/images/emoji/truck.png b/app/assets/images/emoji/truck.png Binary files differnew file mode 100755 index 00000000000..3f25ba1f92a --- /dev/null +++ b/app/assets/images/emoji/truck.png diff --git a/app/assets/images/emoji/trumpet.png b/app/assets/images/emoji/trumpet.png Binary files differnew file mode 100755 index 00000000000..c84cfb13e10 --- /dev/null +++ b/app/assets/images/emoji/trumpet.png diff --git a/app/assets/images/emoji/tshirt.png b/app/assets/images/emoji/tshirt.png Binary files differnew file mode 100755 index 00000000000..297a6d63ed3 --- /dev/null +++ b/app/assets/images/emoji/tshirt.png diff --git a/app/assets/images/emoji/tulip.png b/app/assets/images/emoji/tulip.png Binary files differnew file mode 100755 index 00000000000..b3ee1102a53 --- /dev/null +++ b/app/assets/images/emoji/tulip.png diff --git a/app/assets/images/emoji/turtle.png b/app/assets/images/emoji/turtle.png Binary files differnew file mode 100755 index 00000000000..04d1d968470 --- /dev/null +++ b/app/assets/images/emoji/turtle.png diff --git a/app/assets/images/emoji/tv.png b/app/assets/images/emoji/tv.png Binary files differnew file mode 100755 index 00000000000..803dc3d412f --- /dev/null +++ b/app/assets/images/emoji/tv.png diff --git a/app/assets/images/emoji/twisted_rightwards_arrows.png b/app/assets/images/emoji/twisted_rightwards_arrows.png Binary files differnew file mode 100755 index 00000000000..25cde18b250 --- /dev/null +++ b/app/assets/images/emoji/twisted_rightwards_arrows.png diff --git a/app/assets/images/emoji/two.png b/app/assets/images/emoji/two.png Binary files differnew file mode 100755 index 00000000000..c191f8a3221 --- /dev/null +++ b/app/assets/images/emoji/two.png diff --git a/app/assets/images/emoji/two_hearts.png b/app/assets/images/emoji/two_hearts.png Binary files differnew file mode 100755 index 00000000000..b189e9aea82 --- /dev/null +++ b/app/assets/images/emoji/two_hearts.png diff --git a/app/assets/images/emoji/two_men_holding_hands.png b/app/assets/images/emoji/two_men_holding_hands.png Binary files differnew file mode 100755 index 00000000000..d1099f21ffe --- /dev/null +++ b/app/assets/images/emoji/two_men_holding_hands.png diff --git a/app/assets/images/emoji/two_women_holding_hands.png b/app/assets/images/emoji/two_women_holding_hands.png Binary files differnew file mode 100755 index 00000000000..619646c4e02 --- /dev/null +++ b/app/assets/images/emoji/two_women_holding_hands.png diff --git a/app/assets/images/emoji/u5272.png b/app/assets/images/emoji/u5272.png Binary files differnew file mode 100755 index 00000000000..2148253fc10 --- /dev/null +++ b/app/assets/images/emoji/u5272.png diff --git a/app/assets/images/emoji/u5408.png b/app/assets/images/emoji/u5408.png Binary files differnew file mode 100755 index 00000000000..03ab0d8746e --- /dev/null +++ b/app/assets/images/emoji/u5408.png diff --git a/app/assets/images/emoji/u55b6.png b/app/assets/images/emoji/u55b6.png Binary files differnew file mode 100755 index 00000000000..ba946d3f339 --- /dev/null +++ b/app/assets/images/emoji/u55b6.png diff --git a/app/assets/images/emoji/u6307.png b/app/assets/images/emoji/u6307.png Binary files differnew file mode 100755 index 00000000000..6557f5672fb --- /dev/null +++ b/app/assets/images/emoji/u6307.png diff --git a/app/assets/images/emoji/u6708.png b/app/assets/images/emoji/u6708.png Binary files differnew file mode 100755 index 00000000000..e4dfe5aa762 --- /dev/null +++ b/app/assets/images/emoji/u6708.png diff --git a/app/assets/images/emoji/u6709.png b/app/assets/images/emoji/u6709.png Binary files differnew file mode 100755 index 00000000000..cd8fb3f62a5 --- /dev/null +++ b/app/assets/images/emoji/u6709.png diff --git a/app/assets/images/emoji/u6e80.png b/app/assets/images/emoji/u6e80.png Binary files differnew file mode 100755 index 00000000000..5df1cb878f7 --- /dev/null +++ b/app/assets/images/emoji/u6e80.png diff --git a/app/assets/images/emoji/u7121.png b/app/assets/images/emoji/u7121.png Binary files differnew file mode 100755 index 00000000000..25f694ed3ff --- /dev/null +++ b/app/assets/images/emoji/u7121.png diff --git a/app/assets/images/emoji/u7533.png b/app/assets/images/emoji/u7533.png Binary files differnew file mode 100755 index 00000000000..fc4a9901b46 --- /dev/null +++ b/app/assets/images/emoji/u7533.png diff --git a/app/assets/images/emoji/u7981.png b/app/assets/images/emoji/u7981.png Binary files differnew file mode 100755 index 00000000000..f550a573da7 --- /dev/null +++ b/app/assets/images/emoji/u7981.png diff --git a/app/assets/images/emoji/u7a7a.png b/app/assets/images/emoji/u7a7a.png Binary files differnew file mode 100755 index 00000000000..c05f5cff73b --- /dev/null +++ b/app/assets/images/emoji/u7a7a.png diff --git a/app/assets/images/emoji/uk.png b/app/assets/images/emoji/uk.png Binary files differnew file mode 100755 index 00000000000..2a62c7a0810 --- /dev/null +++ b/app/assets/images/emoji/uk.png diff --git a/app/assets/images/emoji/umbrella.png b/app/assets/images/emoji/umbrella.png Binary files differnew file mode 100755 index 00000000000..1db722fa661 --- /dev/null +++ b/app/assets/images/emoji/umbrella.png diff --git a/app/assets/images/emoji/unamused.png b/app/assets/images/emoji/unamused.png Binary files differnew file mode 100755 index 00000000000..3722e6f5753 --- /dev/null +++ b/app/assets/images/emoji/unamused.png diff --git a/app/assets/images/emoji/underage.png b/app/assets/images/emoji/underage.png Binary files differnew file mode 100755 index 00000000000..a789b3c6200 --- /dev/null +++ b/app/assets/images/emoji/underage.png diff --git a/app/assets/images/emoji/unlock.png b/app/assets/images/emoji/unlock.png Binary files differnew file mode 100755 index 00000000000..22b429cd021 --- /dev/null +++ b/app/assets/images/emoji/unlock.png diff --git a/app/assets/images/emoji/up.png b/app/assets/images/emoji/up.png Binary files differnew file mode 100755 index 00000000000..829219a868a --- /dev/null +++ b/app/assets/images/emoji/up.png diff --git a/app/assets/images/emoji/us.png b/app/assets/images/emoji/us.png Binary files differnew file mode 100755 index 00000000000..38137669aa9 --- /dev/null +++ b/app/assets/images/emoji/us.png diff --git a/app/assets/images/emoji/v.png b/app/assets/images/emoji/v.png Binary files differnew file mode 100755 index 00000000000..f61267c281d --- /dev/null +++ b/app/assets/images/emoji/v.png diff --git a/app/assets/images/emoji/vertical_traffic_light.png b/app/assets/images/emoji/vertical_traffic_light.png Binary files differnew file mode 100755 index 00000000000..7a5ba35f09d --- /dev/null +++ b/app/assets/images/emoji/vertical_traffic_light.png diff --git a/app/assets/images/emoji/vhs.png b/app/assets/images/emoji/vhs.png Binary files differnew file mode 100755 index 00000000000..881081c1778 --- /dev/null +++ b/app/assets/images/emoji/vhs.png diff --git a/app/assets/images/emoji/vibration_mode.png b/app/assets/images/emoji/vibration_mode.png Binary files differnew file mode 100755 index 00000000000..a716e96c635 --- /dev/null +++ b/app/assets/images/emoji/vibration_mode.png diff --git a/app/assets/images/emoji/video_camera.png b/app/assets/images/emoji/video_camera.png Binary files differnew file mode 100755 index 00000000000..274cecdd6d4 --- /dev/null +++ b/app/assets/images/emoji/video_camera.png diff --git a/app/assets/images/emoji/video_game.png b/app/assets/images/emoji/video_game.png Binary files differnew file mode 100755 index 00000000000..59d45baeabb --- /dev/null +++ b/app/assets/images/emoji/video_game.png diff --git a/app/assets/images/emoji/violin.png b/app/assets/images/emoji/violin.png Binary files differnew file mode 100755 index 00000000000..0dba5ba2b66 --- /dev/null +++ b/app/assets/images/emoji/violin.png diff --git a/app/assets/images/emoji/virgo.png b/app/assets/images/emoji/virgo.png Binary files differnew file mode 100755 index 00000000000..72e1763f573 --- /dev/null +++ b/app/assets/images/emoji/virgo.png diff --git a/app/assets/images/emoji/volcano.png b/app/assets/images/emoji/volcano.png Binary files differnew file mode 100755 index 00000000000..9b434539b05 --- /dev/null +++ b/app/assets/images/emoji/volcano.png diff --git a/app/assets/images/emoji/vs.png b/app/assets/images/emoji/vs.png Binary files differnew file mode 100755 index 00000000000..863638850e1 --- /dev/null +++ b/app/assets/images/emoji/vs.png diff --git a/app/assets/images/emoji/walking.png b/app/assets/images/emoji/walking.png Binary files differnew file mode 100755 index 00000000000..52bc0381c72 --- /dev/null +++ b/app/assets/images/emoji/walking.png diff --git a/app/assets/images/emoji/waning_crescent_moon.png b/app/assets/images/emoji/waning_crescent_moon.png Binary files differnew file mode 100755 index 00000000000..30387780fec --- /dev/null +++ b/app/assets/images/emoji/waning_crescent_moon.png diff --git a/app/assets/images/emoji/waning_gibbous_moon.png b/app/assets/images/emoji/waning_gibbous_moon.png Binary files differnew file mode 100755 index 00000000000..8e324ec5f7f --- /dev/null +++ b/app/assets/images/emoji/waning_gibbous_moon.png diff --git a/app/assets/images/emoji/warning.png b/app/assets/images/emoji/warning.png Binary files differnew file mode 100755 index 00000000000..466658d99a8 --- /dev/null +++ b/app/assets/images/emoji/warning.png diff --git a/app/assets/images/emoji/watch.png b/app/assets/images/emoji/watch.png Binary files differnew file mode 100755 index 00000000000..d503bb87c22 --- /dev/null +++ b/app/assets/images/emoji/watch.png diff --git a/app/assets/images/emoji/water_buffalo.png b/app/assets/images/emoji/water_buffalo.png Binary files differnew file mode 100755 index 00000000000..3bcde3edd95 --- /dev/null +++ b/app/assets/images/emoji/water_buffalo.png diff --git a/app/assets/images/emoji/watermelon.png b/app/assets/images/emoji/watermelon.png Binary files differnew file mode 100755 index 00000000000..fc212be7844 --- /dev/null +++ b/app/assets/images/emoji/watermelon.png diff --git a/app/assets/images/emoji/wave.png b/app/assets/images/emoji/wave.png Binary files differnew file mode 100755 index 00000000000..e78402eb086 --- /dev/null +++ b/app/assets/images/emoji/wave.png diff --git a/app/assets/images/emoji/wavy_dash.png b/app/assets/images/emoji/wavy_dash.png Binary files differnew file mode 100755 index 00000000000..77f626cc5cd --- /dev/null +++ b/app/assets/images/emoji/wavy_dash.png diff --git a/app/assets/images/emoji/waxing_crescent_moon.png b/app/assets/images/emoji/waxing_crescent_moon.png Binary files differnew file mode 100755 index 00000000000..c8f13dd31c8 --- /dev/null +++ b/app/assets/images/emoji/waxing_crescent_moon.png diff --git a/app/assets/images/emoji/waxing_gibbous_moon.png b/app/assets/images/emoji/waxing_gibbous_moon.png Binary files differnew file mode 100755 index 00000000000..dd8c4845896 --- /dev/null +++ b/app/assets/images/emoji/waxing_gibbous_moon.png diff --git a/app/assets/images/emoji/wc.png b/app/assets/images/emoji/wc.png Binary files differnew file mode 100755 index 00000000000..dfe84d2a73a --- /dev/null +++ b/app/assets/images/emoji/wc.png diff --git a/app/assets/images/emoji/weary.png b/app/assets/images/emoji/weary.png Binary files differnew file mode 100755 index 00000000000..0c5475411c1 --- /dev/null +++ b/app/assets/images/emoji/weary.png diff --git a/app/assets/images/emoji/wedding.png b/app/assets/images/emoji/wedding.png Binary files differnew file mode 100755 index 00000000000..ead19d52cfb --- /dev/null +++ b/app/assets/images/emoji/wedding.png diff --git a/app/assets/images/emoji/whale.png b/app/assets/images/emoji/whale.png Binary files differnew file mode 100755 index 00000000000..5bb113e4289 --- /dev/null +++ b/app/assets/images/emoji/whale.png diff --git a/app/assets/images/emoji/whale2.png b/app/assets/images/emoji/whale2.png Binary files differnew file mode 100755 index 00000000000..4af657b2fdc --- /dev/null +++ b/app/assets/images/emoji/whale2.png diff --git a/app/assets/images/emoji/wheelchair.png b/app/assets/images/emoji/wheelchair.png Binary files differnew file mode 100755 index 00000000000..eddcdd7977a --- /dev/null +++ b/app/assets/images/emoji/wheelchair.png diff --git a/app/assets/images/emoji/white_circle.png b/app/assets/images/emoji/white_circle.png Binary files differnew file mode 100755 index 00000000000..da782ae297f --- /dev/null +++ b/app/assets/images/emoji/white_circle.png diff --git a/app/assets/images/emoji/white_flower.png b/app/assets/images/emoji/white_flower.png Binary files differnew file mode 100755 index 00000000000..c0929d0dd99 --- /dev/null +++ b/app/assets/images/emoji/white_flower.png diff --git a/app/assets/images/emoji/white_square.png b/app/assets/images/emoji/white_square.png Binary files differnew file mode 100755 index 00000000000..60cb19a1371 --- /dev/null +++ b/app/assets/images/emoji/white_square.png diff --git a/app/assets/images/emoji/wind_chime.png b/app/assets/images/emoji/wind_chime.png Binary files differnew file mode 100755 index 00000000000..efacf5dd4be --- /dev/null +++ b/app/assets/images/emoji/wind_chime.png diff --git a/app/assets/images/emoji/wine_glass.png b/app/assets/images/emoji/wine_glass.png Binary files differnew file mode 100755 index 00000000000..82b0f00057d --- /dev/null +++ b/app/assets/images/emoji/wine_glass.png diff --git a/app/assets/images/emoji/wink.png b/app/assets/images/emoji/wink.png Binary files differnew file mode 100755 index 00000000000..756766dd3e9 --- /dev/null +++ b/app/assets/images/emoji/wink.png diff --git a/app/assets/images/emoji/wink2.png b/app/assets/images/emoji/wink2.png Binary files differnew file mode 100755 index 00000000000..6ae9d497d30 --- /dev/null +++ b/app/assets/images/emoji/wink2.png diff --git a/app/assets/images/emoji/wolf.png b/app/assets/images/emoji/wolf.png Binary files differnew file mode 100755 index 00000000000..c60c96895f7 --- /dev/null +++ b/app/assets/images/emoji/wolf.png diff --git a/app/assets/images/emoji/woman.png b/app/assets/images/emoji/woman.png Binary files differnew file mode 100755 index 00000000000..6bf0d2b129c --- /dev/null +++ b/app/assets/images/emoji/woman.png diff --git a/app/assets/images/emoji/womans_clothes.png b/app/assets/images/emoji/womans_clothes.png Binary files differnew file mode 100755 index 00000000000..aa297c7b65e --- /dev/null +++ b/app/assets/images/emoji/womans_clothes.png diff --git a/app/assets/images/emoji/womans_hat.png b/app/assets/images/emoji/womans_hat.png Binary files differnew file mode 100755 index 00000000000..4cb2e6a6934 --- /dev/null +++ b/app/assets/images/emoji/womans_hat.png diff --git a/app/assets/images/emoji/womens.png b/app/assets/images/emoji/womens.png Binary files differnew file mode 100755 index 00000000000..110f88519e8 --- /dev/null +++ b/app/assets/images/emoji/womens.png diff --git a/app/assets/images/emoji/wrench.png b/app/assets/images/emoji/wrench.png Binary files differnew file mode 100755 index 00000000000..a87072ad132 --- /dev/null +++ b/app/assets/images/emoji/wrench.png diff --git a/app/assets/images/emoji/x.png b/app/assets/images/emoji/x.png Binary files differnew file mode 100755 index 00000000000..dff9efa8b43 --- /dev/null +++ b/app/assets/images/emoji/x.png diff --git a/app/assets/images/emoji/yellow_heart.png b/app/assets/images/emoji/yellow_heart.png Binary files differnew file mode 100755 index 00000000000..fa41ce78ac4 --- /dev/null +++ b/app/assets/images/emoji/yellow_heart.png diff --git a/app/assets/images/emoji/yen.png b/app/assets/images/emoji/yen.png Binary files differnew file mode 100755 index 00000000000..139bc936e0f --- /dev/null +++ b/app/assets/images/emoji/yen.png diff --git a/app/assets/images/emoji/yum.png b/app/assets/images/emoji/yum.png Binary files differnew file mode 100755 index 00000000000..fc39637ecd8 --- /dev/null +++ b/app/assets/images/emoji/yum.png diff --git a/app/assets/images/emoji/zap.png b/app/assets/images/emoji/zap.png Binary files differnew file mode 100755 index 00000000000..260c531b9e2 --- /dev/null +++ b/app/assets/images/emoji/zap.png diff --git a/app/assets/images/emoji/zero.png b/app/assets/images/emoji/zero.png Binary files differnew file mode 100755 index 00000000000..6e57b3343ad --- /dev/null +++ b/app/assets/images/emoji/zero.png diff --git a/app/assets/images/emoji/zzz.png b/app/assets/images/emoji/zzz.png Binary files differnew file mode 100755 index 00000000000..30be04655af --- /dev/null +++ b/app/assets/images/emoji/zzz.png diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js deleted file mode 100644 index bb0a499a607..00000000000 --- a/app/assets/javascripts/admin.js +++ /dev/null @@ -1,11 +0,0 @@ -$(document).ready(function(){ - $('input#user_force_random_password').on('change', function(elem) { - var elems = $('#user_password, #user_password_confirmation'); - - if ($(this).attr('checked')) { - elems.val('').attr('disabled', true); - } else { - elems.removeAttr('disabled'); - } - }); -}); diff --git a/app/assets/javascripts/admin.js.coffee b/app/assets/javascripts/admin.js.coffee new file mode 100644 index 00000000000..269a7a767ed --- /dev/null +++ b/app/assets/javascripts/admin.js.coffee @@ -0,0 +1,8 @@ +$ -> + $('input#user_force_random_password').on 'change', (elem) -> + elems = $('#user_password, #user_password_confirmation') + + if $(@).attr 'checked' + elems.val('').attr 'disabled', true + else + elems.removeAttr 'disabled' diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index f69fd6f9a44..4c487ec1d38 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -17,134 +17,3 @@ //= require raphael //= require branch-graph //= require_tree . - -$(document).ready(function(){ - - $(".one_click_select").live("click", function(){ - $(this).select(); - }); - - $('body').on('ajax:complete, ajax:beforeSend, submit', 'form', function(e){ - var buttons = $('[type="submit"]', this); - switch( e.type ){ - case 'ajax:beforeSend': - case 'submit': - buttons.attr('disabled', 'disabled'); - break; - case ' ajax:complete': - default: - buttons.removeAttr('disabled'); - break; - } - }) - - $(".account-box").mouseenter(showMenu); - $(".account-box").mouseleave(resetMenu); - - $("#projects-list .project").live('click', function(e){ - if(e.target.nodeName != "A" && e.target.nodeName != "INPUT") { - location.href = $(this).attr("url"); - e.stopPropagation(); - return false; - } - }); - - /** - * Focus search field by pressing 's' key - */ - $(document).keypress(function(e) { - if( $(e.target).is(":input") ) return; - switch(e.which) { - case 115: focusSearch(); - e.preventDefault(); - } - }); - - /** - * Commit show suppressed diff - * - */ - $(".supp_diff_link").bind("click", function() { - showDiff(this); - }); - - /** - * Note markdown preview - * - */ - $(document).on('click', '#preview-link', function(e) { - $('#preview-note').text('Loading...'); - - var previewLinkText = ($(this).text() == 'Preview' ? 'Edit' : 'Preview'); - $(this).text(previewLinkText); - - var note = $('#note_note').val(); - if (note.trim().length === 0) { note = 'Nothing to preview'; } - $.post($(this).attr('href'), {note: note}, function(data) { - $('#preview-note').html(data); - }); - - $('#preview-note, #note_note').toggle(); - e.preventDefault(); - }); -}); - -function focusSearch() { - $("#search").focus(); -} - -function updatePage(data){ - $.ajax({type: "GET", url: location.href, data: data, dataType: "script"}); -} - -function showMenu() { - $(this).toggleClass('hover'); -} - -function resetMenu() { - $(this).removeClass("hover"); -} - -function slugify(text) { - return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); -} - -function showDiff(link) { - $(link).next('table').show(); - $(link).remove(); -} - -(function($){ - var _chosen = $.fn.chosen; - $.fn.extend({ - chosen: function(options) { - var default_options = {'search_contains' : 'true'}; - $.extend(default_options, options); - return _chosen.apply(this, [default_options]); - }}) -})(jQuery); - - -function ajaxGet(url) { - $.ajax({type: "GET", url: url, dataType: "script"}); -} - -/** - * Disable button if text field is empty - */ -function disableButtonIfEmtpyField(field_selector, button_selector) { - field = $(field_selector); - if(field.val() == "") { - field.closest("form").find(button_selector).attr("disabled", "disabled").addClass("disabled"); - } - - field.on('keyup', function(){ - var field = $(this); - var closest_submit = field.closest("form").find(button_selector); - if(field.val() == "") { - closest_submit.attr("disabled", "disabled").addClass("disabled"); - } else { - closest_submit.removeAttr("disabled").removeClass("disabled"); - } - }) -} diff --git a/app/assets/javascripts/graph.js b/app/assets/javascripts/graph.js deleted file mode 100644 index 434cf70ac65..00000000000 --- a/app/assets/javascripts/graph.js +++ /dev/null @@ -1,10 +0,0 @@ -function initGraphNav() { - $(".graph svg").css("position", "relative"); - $("body").bind("keyup", function(e) { - if(e.keyCode == 37) { // left - $(".graph svg").animate({ left: "+=400" }); - } else if(e.keyCode == 39) { // right - $(".graph svg").animate({ left: "-=400" }); - } - }); -} diff --git a/app/assets/javascripts/graph.js.coffee b/app/assets/javascripts/graph.js.coffee new file mode 100644 index 00000000000..5fe8ae3f020 --- /dev/null +++ b/app/assets/javascripts/graph.js.coffee @@ -0,0 +1,10 @@ +initGraphNav = -> + $('.graph svg').css 'position', 'relative' + + $('body').bind 'keyup', (e) -> + if e.keyCode is 37 # left + $('.graph svg').animate left: '+=400' + else if e.keyCode is 39 # right + $('.graph svg').animate left: '-=400' + +window.initGraphNav = initGraphNav diff --git a/app/assets/javascripts/loader.js b/app/assets/javascripts/loader.js deleted file mode 100644 index 6fa0b525814..00000000000 --- a/app/assets/javascripts/loader.js +++ /dev/null @@ -1,11 +0,0 @@ -var Loader = { - img_src: "/assets/ajax-loader.gif", - - html: - function(width) { - img = $("<img>"); - img.attr("width", width); - img.attr("src", this.img_src); - return img; - } -} diff --git a/app/assets/javascripts/loader.js.coffee b/app/assets/javascripts/loader.js.coffee new file mode 100644 index 00000000000..66f8e8b1bb3 --- /dev/null +++ b/app/assets/javascripts/loader.js.coffee @@ -0,0 +1,5 @@ +Loader = + html: (width) -> + $('<img>').attr src: '/assets/ajax-loader.gif', width: width + +window.Loader = Loader diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js new file mode 100644 index 00000000000..61af1dc3d19 --- /dev/null +++ b/app/assets/javascripts/main.js @@ -0,0 +1,130 @@ +$(document).ready(function(){ + + $(".one_click_select").live("click", function(){ + $(this).select(); + }); + + $('body').on('ajax:complete, ajax:beforeSend, submit', 'form', function(e){ + var buttons = $('[type="submit"]', this); + switch( e.type ){ + case 'ajax:beforeSend': + case 'submit': + buttons.attr('disabled', 'disabled'); + break; + case ' ajax:complete': + default: + buttons.removeAttr('disabled'); + break; + } + }) + + $(".account-box").mouseenter(showMenu); + $(".account-box").mouseleave(resetMenu); + + $("#projects-list .project").live('click', function(e){ + if(e.target.nodeName != "A" && e.target.nodeName != "INPUT") { + location.href = $(this).attr("url"); + e.stopPropagation(); + return false; + } + }); + + /** + * Focus search field by pressing 's' key + */ + $(document).keypress(function(e) { + if( $(e.target).is(":input") ) return; + switch(e.which) { + case 115: focusSearch(); + e.preventDefault(); + } + }); + + /** + * Commit show suppressed diff + * + */ + $(".supp_diff_link").bind("click", function() { + showDiff(this); + }); + + /** + * Note markdown preview + * + */ + $(document).on('click', '#preview-link', function(e) { + $('#preview-note').text('Loading...'); + + var previewLinkText = ($(this).text() == 'Preview' ? 'Edit' : 'Preview'); + $(this).text(previewLinkText); + + var note = $('#note_note').val(); + if (note.trim().length === 0) { note = 'Nothing to preview'; } + $.post($(this).attr('href'), {note: note}, function(data) { + $('#preview-note').html(data); + }); + + $('#preview-note, #note_note').toggle(); + e.preventDefault(); + }); +}); + +function focusSearch() { + $("#search").focus(); +} + +function updatePage(data){ + $.ajax({type: "GET", url: location.href, data: data, dataType: "script"}); +} + +function showMenu() { + $(this).toggleClass('hover'); +} + +function resetMenu() { + $(this).removeClass("hover"); +} + +function slugify(text) { + return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); +} + +function showDiff(link) { + $(link).next('table').show(); + $(link).remove(); +} + +(function($){ + var _chosen = $.fn.chosen; + $.fn.extend({ + chosen: function(options) { + var default_options = {'search_contains' : 'true'}; + $.extend(default_options, options); + return _chosen.apply(this, [default_options]); + }}) +})(jQuery); + + +function ajaxGet(url) { + $.ajax({type: "GET", url: url, dataType: "script"}); +} + +/** + * Disable button if text field is empty + */ +function disableButtonIfEmtpyField(field_selector, button_selector) { + field = $(field_selector); + if(field.val() == "") { + field.closest("form").find(button_selector).attr("disabled", "disabled").addClass("disabled"); + } + + field.on('keyup', function(){ + var field = $(this); + var closest_submit = field.closest("form").find(button_selector); + if(field.val() == "") { + closest_submit.attr("disabled", "disabled").addClass("disabled"); + } else { + closest_submit.removeAttr("disabled").removeClass("disabled"); + } + }) +} diff --git a/app/assets/javascripts/projects.js b/app/assets/javascripts/projects.js deleted file mode 100644 index be1b75b90a7..00000000000 --- a/app/assets/javascripts/projects.js +++ /dev/null @@ -1,16 +0,0 @@ -function Projects() { - $("#project_name").live("change", function(){ - var slug = slugify($(this).val()); - $("#project_code").val(slug); - $("#project_path").val(slug); - }); - - $('.new_project, .edit_project').live('ajax:before', function() { - $('.project_new_holder, .project_edit_holder').hide(); - $('.save-project-loader').show(); - }); - - $('form #project_default_branch').chosen(); - - disableButtonIfEmtpyField("#project_name", ".project-submit") -} diff --git a/app/assets/javascripts/projects.js.coffee b/app/assets/javascripts/projects.js.coffee new file mode 100644 index 00000000000..85ab2a06dff --- /dev/null +++ b/app/assets/javascripts/projects.js.coffee @@ -0,0 +1,20 @@ +window.Projects = -> + $('#project_name').on 'change', -> + slug = slugify $(@).val() + $('#project_code, #project_path').val slug + + $('.new_project, .edit_project').on 'ajax:before', -> + $('.project_new_holder, .project_edit_holder').hide() + $('.save-project-loader').show() + + $('form #project_default_branch').chosen() + disableButtonIfEmtpyField '#project_name', '.project-submit' + +# Git clone panel switcher +$ -> + scope = $ '.project_clone_holder' + if scope.length > 0 + $('a, button', scope).click -> + $('a, button', scope).removeClass 'active' + $(@).addClass 'active' + $('#project_clone', scope).val $(@).data 'clone' diff --git a/app/assets/javascripts/snippets.js b/app/assets/javascripts/snippets.js deleted file mode 100644 index 11e18eb779e..00000000000 --- a/app/assets/javascripts/snippets.js +++ /dev/null @@ -1,9 +0,0 @@ -$(document).ready(function(){ - $("#snippets-table .snippet").live('click', function(e){ - if(e.target.nodeName != "A" && e.target.nodeName != "INPUT") { - location.href = $(this).attr("url"); - e.stopPropagation(); - return false; - } - }); -}); diff --git a/app/assets/javascripts/snippets.js.coffee b/app/assets/javascripts/snippets.js.coffee new file mode 100644 index 00000000000..af4385deb51 --- /dev/null +++ b/app/assets/javascripts/snippets.js.coffee @@ -0,0 +1,6 @@ +$ -> + $('#snippets-table .snippet').live 'click', (e) -> + if e.target.nodeName isnt 'A' and e.target.nodeName isnt 'INPUT' + location.href = $(@).attr 'url' + e.stopPropagation() + false diff --git a/app/assets/javascripts/team.js b/app/assets/javascripts/team.js deleted file mode 100644 index f4b04354f53..00000000000 --- a/app/assets/javascripts/team.js +++ /dev/null @@ -1,8 +0,0 @@ -function backToMembers(){ - $("#new_team_member").hide("slide", { direction: "right" }, 150, function(){ - $("#team-table").show("slide", { direction: "left" }, 150, function() { - $("#new_team_member").remove(); - $(".add_new").show(); - }); - }); -} diff --git a/app/assets/stylesheets/gitlab_bootstrap/blocks.scss b/app/assets/stylesheets/gitlab_bootstrap/blocks.scss index 894cb3044fa..70f7889f15c 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/blocks.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/blocks.scss @@ -1,6 +1,6 @@ /** * =================================== - * Contain 3 main UI block elements: + * Contain 3 main UI block elements: * .main_box - for show pages * .ui-box - for simple block & widgets * =================================== diff --git a/app/assets/stylesheets/gitlab_bootstrap/buttons.scss b/app/assets/stylesheets/gitlab_bootstrap/buttons.scss index c838f3b2368..380fc3e3711 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/buttons.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/buttons.scss @@ -1,8 +1,5 @@ .btn { - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #f7f7f7), to(#d5d5d5)); - background-image: -webkit-linear-gradient(#f7f7f7 7.6%, #d5d5d5); - background-image: -moz-linear-gradient(#f7f7f7 7.6%, #d5d5d5); - background-image: -o-linear-gradient(#f7f7f7 7.6%, #d5d5d5); + @include bg-gradient(#f7f7f7, #d5d5d5); border-color:#aaa; &:hover { @include bg-gray-gradient; @@ -12,10 +9,8 @@ &.primary { background:#2a79A3; + @include bg-gradient(#47A7b7, #2585b5); border-color: #2A79A3; - background-image: -webkit-linear-gradient(#47A7b7 7.6%, #2585b5); - background-image: -moz-linear-gradient(#47A7b7 7.6%, #2585b5); - background-image: -o-linear-gradient(#47A7b7 7.6%, #2585b5); color:#fff; text-shadow: 0 1px 1px #268; &:hover { @@ -30,16 +25,11 @@ } &.success { - border-color: #4A4; - background-image: -webkit-linear-gradient(#82D482 7.6%, #22B442); - background-image: -moz-linear-gradient(#82D482 7.6%, #22B442); - background-image: -o-linear-gradient(#82D482 7.6%, #22B442); - color: #fff; - text-shadow: 0 1px 1px #141; + @extend .btn-success; &:hover { - background: #6C6; - color: #fff; + @extend .btn-success; + background: #51a351; } &.disabled { @@ -62,10 +52,8 @@ padding-right:30px; } - &.danger, - &.btn-danger { - color:#fff; - background: #DA4E49; + &.danger { + @extend .btn-danger; border-color: #BD362F; &:hover { diff --git a/app/assets/stylesheets/gitlab_bootstrap/files.scss b/app/assets/stylesheets/gitlab_bootstrap/files.scss index 4ea5ed02ada..d39fdb27cd4 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/files.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/files.scss @@ -3,13 +3,13 @@ * */ .file_holder { - border:1px solid #CCC; + border:1px solid #BBB; margin-bottom:1em; @include solid_shade; .file_title { border-bottom: 1px solid #bbb; - @include bg-gray-gradient; + @include bg-dark-gray-gradient; margin: 0; font-weight: normal; font-weight: bold; diff --git a/app/assets/stylesheets/highlight/white.scss b/app/assets/stylesheets/highlight/white.scss index a08f05bdb54..9b003b8ace5 100644 --- a/app/assets/stylesheets/highlight/white.scss +++ b/app/assets/stylesheets/highlight/white.scss @@ -1,12 +1,21 @@ -table.highlighttable -{ +table.highlighttable { margin:0px; padding:0px; font-size:12px; table-layout:fixed; background: #EEE; + box-shadow: none; + border: none; + td.linenos { + background:#eee; + border-left:none; + } + td.code { + border-right:none; + } } + td.code, td.linenos{ padding:0; diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss index be27d754dfa..80446a4c599 100644 --- a/app/assets/stylesheets/main.scss +++ b/app/assets/stylesheets/main.scss @@ -1,13 +1,13 @@ @import "bootstrap"; @import "bootstrap-responsive"; -/** GITLAB colors **/ +/** GitLab colors **/ $link_color:#3A89A3; $blue_link: #2fa0bb; $style_color: #474d57; $hover: #fdf5d9; -/** GITLAB Fonts **/ +/** GitLab Fonts **/ @font-face { font-family: Korolev; src: url('korolev-medium-compressed.otf'); } /** MIXINS **/ @@ -56,6 +56,13 @@ $hover: #fdf5d9; border-radius: $radius; } +@mixin bg-gradient($from, $to) { + background-image: -webkit-gradient(linear, 0 0, 0 100%, from($from), to($to)); + background-image: -webkit-linear-gradient($from, $to); + background-image: -moz-linear-gradient($from, $to); + background-image: -o-linear-gradient($from, $to); +} + @mixin bg-gray-gradient { background:#eee; background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf)); @@ -106,9 +113,9 @@ $hover: #fdf5d9; @import "themes/ui_modern.scss"; /** - * Gitlab bootstrap. + * GitLab bootstrap. * Overrides some styles of twitter bootstrap. - * Also give some common classes for gitlab app + * Also give some common classes for GitLab app */ @import "gitlab_bootstrap/common.scss"; @import "gitlab_bootstrap/typography.scss"; diff --git a/app/assets/stylesheets/sections/header.scss b/app/assets/stylesheets/sections/header.scss index d0fb662e69e..8328a5ab9a7 100644 --- a/app/assets/stylesheets/sections/header.scss +++ b/app/assets/stylesheets/sections/header.scss @@ -22,7 +22,7 @@ header { * */ .app_logo { - width:230px; + width:200px; float:left; position:relative; top:-5px; @@ -31,7 +31,7 @@ header { h1 { padding-top: 5px; - width:102px; + width:90px; background: url('logo_dark.png') no-repeat 0px -3px; float:left; margin-left:5px; diff --git a/app/assets/stylesheets/sections/nav.scss b/app/assets/stylesheets/sections/nav.scss index 097e819732d..6f6a0e8e29f 100644 --- a/app/assets/stylesheets/sections/nav.scss +++ b/app/assets/stylesheets/sections/nav.scss @@ -2,7 +2,7 @@ * Main Menu of Application * */ -ul.main_menu { +ul.main_menu { border-radius: 4px; margin: auto; margin:30px 0; @@ -12,7 +12,7 @@ ul.main_menu { position:relative; overflow:hidden; @include shade; - .count { + .count { position: relative; top: -1px; display: inline-block; @@ -29,12 +29,12 @@ ul.main_menu { border-radius: 8px; -moz-border-radius: 8px; } - .label { + .label { background:$hover; text-shadow:none; color:$style_color; } - li { + li { list-style-type: none; margin: 0; display: table-cell; @@ -43,7 +43,7 @@ ul.main_menu { border-left: 1px solid #EEE; border-bottom:2px solid #CFCFCF; - &:first-child{ + &:first-child{ -webkit-border-top-left-radius: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-topleft: 4px; @@ -53,31 +53,31 @@ ul.main_menu { border-left: 0; } - &.current { + &.current { background-color:#D5D5D5; - border-bottom: 2px solid $style_color; + border-bottom: 1px solid #AAA; border-right: 1px solid #BBB; border-left: 1px solid #BBB; border-radius: 0 0 1px 1px; - &:first-child{ + &:first-child{ border-bottom:none; border-left:none; } } - &.home { - a { + &.home { + a { background: url(home_icon.PNG) no-repeat center center; text-indent:-9999px; min-width:20px; - img { + img { position:relative; top:4px; } } } } - a { + a { display: block; text-align: center; font-weight:bold; diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss index 721b569d446..92d0fc43c88 100644 --- a/app/assets/stylesheets/sections/projects.scss +++ b/app/assets/stylesheets/sections/projects.scss @@ -75,17 +75,21 @@ padding: 4px 7px; border: 1px solid #CCC; margin-bottom:5px; - input[type=text] { +} + +.project_clone_holder { + input[type="text"] { border: 1px solid #BBB; + box-shadow: none; } } -.save-project-loader { - img { +.save-project-loader { + img { margin-top:50px; margin-bottom:50px; } - h3 { + h3 { @extend .page_title; } diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9aab250dbd4..7e53b8fe5ff 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -120,22 +120,12 @@ class ApplicationController < ActionController::Base end end - def load_refs - if params[:ref].blank? - @branch = params[:branch].blank? ? nil : params[:branch] - @tag = params[:tag].blank? ? nil : params[:tag] - @ref = @branch || @tag || @project.try(:default_branch) || Repository.default_ref - else - @ref = params[:ref] - end - end - def render_404 render file: File.join(Rails.root, "public", "404"), layout: false, status: "404" end def require_non_empty_project - redirect_to @project unless @project.repo_exists? && @project.has_commits? + redirect_to @project if @project.empty_repo? end def no_cache_headers diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb index 717912d9e92..4ab40c304dd 100644 --- a/app/controllers/commits_controller.rb +++ b/app/controllers/commits_controller.rb @@ -59,12 +59,19 @@ class CommitsController < ApplicationController def patch @commit = project.commit(params[:id]) - + send_data( @commit.to_patch, type: "text/plain", disposition: 'attachment', - filename: (@commit.id.to_s + ".patch") + filename: "#{@commit.id.patch}" ) end + + protected + + def load_refs + @ref ||= params[:ref].presence || params[:branch].presence || params[:tag].presence + @ref ||= @ref || @project.try(:default_branch) || 'master' + end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index bd7f811e59f..170b8892936 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -50,7 +50,7 @@ class ProjectsController < ApplicationController respond_to do |format| format.html do - if @project.repo_exists? && @project.has_commits? + unless @project.empty_repo? @last_push = current_user.recent_push(@project.id) render :show else diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb index 9da695b5d23..ca2cb01f35d 100644 --- a/app/helpers/gitlab_markdown_helper.rb +++ b/app/helpers/gitlab_markdown_helper.rb @@ -1,38 +1,5 @@ module GitlabMarkdownHelper - # Replaces references (i.e. @abc, #123, !456, ...) in the text with links to - # the appropriate items in Gitlab. - # - # text - the source text - # html_options - extra options for the reference links as given to link_to - # - # note: reference links will only be generated if @project is set - # - # see Gitlab::Markdown for details on the supported syntax - def gfm(text, html_options = {}) - return text if text.nil? - return text if @project.nil? - - # Extract pre blocks so they are not altered - # from http://github.github.com/github-flavored-markdown/ - extractions = {} - text.gsub!(%r{<pre>.*?</pre>|<code>.*?</code>}m) do |match| - md5 = Digest::MD5.hexdigest(match) - extractions[md5] = match - "{gfm-extraction-#{md5}}" - end - - # TODO: add popups with additional information - - parser = Gitlab::Markdown.new(@project, html_options) - text = parser.parse(text) - - # Insert pre block extractions - text.gsub!(/\{gfm-extraction-(\h{32})\}/) do - extractions[$1] - end - - sanitize text.html_safe, attributes: ActionView::Base.sanitized_allowed_attributes + %w(id class ) - end + include Gitlab::Markdown # Use this in places where you would normally use link_to(gfm(...), ...). # diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb index 91136fee95e..0afc1d31ef4 100644 --- a/app/mailers/notify.rb +++ b/app/mailers/notify.rb @@ -111,18 +111,18 @@ class Notify < ActionMailer::Base # Examples # # >> subject('Lorem ipsum') - # => "gitlab | Lorem ipsum" + # => "GitLab | Lorem ipsum" # # # Automatically inserts Project name when @project is set # >> @project = Project.last # => #<Project id: 1, name: "Ruby on Rails", path: "ruby_on_rails", ...> # >> subject('Lorem ipsum') - # => "gitlab | Lorem ipsum | Ruby on Rails" + # => "GitLab | Lorem ipsum | Ruby on Rails" # # # Accepts multiple arguments # >> subject('Lorem ipsum', 'Dolor sit amet') - # => "gitlab | Lorem ipsum | Dolor sit amet" + # => "GitLab | Lorem ipsum | Dolor sit amet" def subject(*extra) - "gitlab | " << extra.join(' | ') << (@project ? " | #{@project.name}" : "") + "GitLab | " << extra.join(' | ') << (@project ? " | #{@project.name}" : "") end end diff --git a/app/models/note.rb b/app/models/note.rb index 711a4ee6935..d8494edd532 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -103,7 +103,7 @@ class Note < ActiveRecord::Base # Returns true if this is an upvote note, # otherwise false is returned def upvote? - note =~ /^\+1/ ? true : false + note.start_with?('+1') || note.start_with?(':+1:') end end # == Schema Information diff --git a/app/models/project.rb b/app/models/project.rb index a7735a42137..4de836c7b48 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -104,6 +104,8 @@ class Project < ActiveRecord::Base length: { within: 1..255 } validates :owner, presence: true + validates :issues_enabled, :wall_enabled, :merge_requests_enabled, + :wiki_enabled, inclusion: { in: [true, false] } validate :check_limit validate :repo_name @@ -187,7 +189,7 @@ end # private_flag :boolean(1) default(TRUE), not null # code :string(255) # owner_id :integer(4) -# default_branch :string(255) default("master"), not null +# default_branch :string(255) # issues_enabled :boolean(1) default(TRUE), not null # wall_enabled :boolean(1) default(TRUE), not null # merge_requests_enabled :boolean(1) default(TRUE), not null diff --git a/app/models/users_project.rb b/app/models/users_project.rb index 7d1729343bb..1b5984834e4 100644 --- a/app/models/users_project.rb +++ b/app/models/users_project.rb @@ -14,7 +14,7 @@ class UsersProject < ActiveRecord::Base after_save :update_repository after_destroy :update_repository - validates_uniqueness_of :user_id, scope: [:project_id] + validates_uniqueness_of :user_id, scope: [:project_id], message: "already exists in project" validates_presence_of :user_id validates_presence_of :project_id @@ -48,10 +48,10 @@ class UsersProject < ActiveRecord::Base def self.access_roles { - "Guest" => GUEST, - "Reporter" => REPORTER, + "Guest" => GUEST, + "Reporter" => REPORTER, "Developer" => DEVELOPER, - "Master" => MASTER + "Master" => MASTER } end diff --git a/app/roles/account.rb b/app/roles/account.rb index 63a9b5c51bf..b8c445a3d58 100644 --- a/app/roles/account.rb +++ b/app/roles/account.rb @@ -1,6 +1,13 @@ -module Account +module Account + # Returns a string for use as a Gitolite user identifier + # + # Note that Gitolite 2.x requires the following pattern for users: + # + # ^@?[0-9a-zA-Z][0-9a-zA-Z._\@+-]*$ def identifier - email.gsub /[^[:alnum:]]/, "_" + # Replace non-word chars with underscores, then make sure it starts with + # valid chars + email.gsub(/\W/, '_').gsub(/\A([\W\_])+/, '') end def is_admin? diff --git a/app/roles/issue_commonality.rb b/app/roles/issue_commonality.rb index a8fd679df81..ac972a70df2 100644 --- a/app/roles/issue_commonality.rb +++ b/app/roles/issue_commonality.rb @@ -16,7 +16,7 @@ module IssueCommonality validates :title, presence: true, length: { within: 0..255 } - + validates :closed, inclusion: { in: [true, false] } scope :opened, where(closed: false) scope :closed, where(closed: true) diff --git a/app/roles/push_observer.rb b/app/roles/push_observer.rb index 1067404d5af..947ed42345d 100644 --- a/app/roles/push_observer.rb +++ b/app/roles/push_observer.rb @@ -1,3 +1,6 @@ +# Includes methods for handling Git Push events +# +# Triggered by PostReceive job module PushObserver def observe_push(oldrev, newrev, ref, user) data = post_receive_data(oldrev, newrev, ref, user) @@ -84,11 +87,10 @@ module PushObserver data end - - # This method will be called after each post receive - # and only if user present in gitlab. - # All callbacks for post receive should be placed here + # This method will be called after each post receive and only if the provided + # user is present in GitLab. # + # All callbacks for post receive should be placed here. def trigger_post_receive(oldrev, newrev, ref, user) # Create push event self.observe_push(oldrev, newrev, ref, user) @@ -101,5 +103,11 @@ module PushObserver # Create satellite self.satellite.create unless self.satellite.exists? + + # Discover the default branch, but only if it hasn't already been set to + # something else + if default_branch.nil? + update_attributes(default_branch: discover_default_branch) + end end end diff --git a/app/roles/repository.rb b/app/roles/repository.rb index 5fa950db6d6..a77de4ad5f0 100644 --- a/app/roles/repository.rb +++ b/app/roles/repository.rb @@ -8,6 +8,10 @@ module Repository false end + def empty_repo? + !repo_exists? || !has_commits? + end + def commit(commit_id = nil) Commit.find_or_first(repo, commit_id, root_ref) end @@ -38,7 +42,7 @@ module Repository def has_post_receive_file? hook_file = File.join(path_to_repo, 'hooks', 'post-receive') - File.exists?(hook_file) + File.exists?(hook_file) end def tags @@ -67,7 +71,7 @@ module Repository def repo_exists? @repo_exists ||= (repo && !repo.branches.empty?) - rescue + rescue @repo_exists = false end @@ -90,24 +94,42 @@ module Repository end.sort_by(&:name) end + # Discovers the default branch based on the repository's available branches + # + # - If no branches are present, returns nil + # - If one branch is present, returns its name + # - If two or more branches are present, returns the one that has a name + # matching root_ref (default_branch or 'master' if default_branch is nil) + def discover_default_branch + branches = heads.collect(&:name) + + if branches.length == 0 + nil + elsif branches.length == 1 + branches.first + else + branches.select { |v| v == root_ref }.first + end + end + def has_commits? !!commit end - def root_ref + def root_ref default_branch || "master" end - def root_ref? branch + def root_ref?(branch) root_ref == branch end # Archive Project to .tar.gz # - # Already packed repo archives stored at + # Already packed repo archives stored at # app_root/tmp/repositories/project_name/project_name-commit-id.tag.gz # - def archive_repo ref + def archive_repo(ref) ref = ref || self.root_ref commit = self.commit(ref) return nil unless commit @@ -134,6 +156,6 @@ module Repository end def http_url_to_repo - http_url = [Gitlab.config.url, "/", path, ".git"].join() + http_url = [Gitlab.config.url, "/", path, ".git"].join('') end end diff --git a/app/views/deploy_keys/_form.html.haml b/app/views/deploy_keys/_form.html.haml index 461f1f5d84a..6beba562a95 100644 --- a/app/views/deploy_keys/_form.html.haml +++ b/app/views/deploy_keys/_form.html.haml @@ -11,8 +11,13 @@ .input= f.text_field :title .clearfix = f.label :key - .input= f.text_area :key, class: "xlarge" + .input + = f.text_area :key, class: [:xxlarge, :thin_area] + %p.hint + Paste a machine public key here. Read more about how generate it + = link_to "here", help_ssh_path + .actions - = f.submit 'Save', class: "primary btn" - = link_to "Cancel", project_deploy_keys_path(@project), class: "btn" + = f.submit 'Save', class: "save-btn btn" + = link_to "Cancel", project_deploy_keys_path(@project), class: "btn cancel-btn" diff --git a/app/views/deploy_keys/index.html.haml b/app/views/deploy_keys/index.html.haml index 0ee9d03b0f5..b9c654a1abe 100644 --- a/app/views/deploy_keys/index.html.haml +++ b/app/views/deploy_keys/index.html.haml @@ -1,11 +1,17 @@ = render "repositories/head" -- if can? current_user, :admin_project, @project - .alert-message.block-message - Deploy keys allow read-only access to repository. + +%p.slead + Deploy keys allow read-only access to repository. It matches perfectly for CI, staging or production servers. + + - if can? current_user, :admin_project, @project = link_to new_project_deploy_key_path(@project), class: "btn small", title: "New Deploy Key" do Add Deploy Key - - if @keys.any? %table + %thead + %tr + %th Keys + %th + %th - @keys.each do |key| = render(partial: 'show', locals: {key: key}) diff --git a/app/views/deploy_keys/new.html.haml b/app/views/deploy_keys/new.html.haml index a2f1010b454..e973cb7d305 100644 --- a/app/views/deploy_keys/new.html.haml +++ b/app/views/deploy_keys/new.html.haml @@ -1,6 +1,6 @@ = render "repositories/head" -%h3 New Deploy key +%h3.page_title New Deploy key %hr = render 'form' diff --git a/app/views/deploy_keys/show.html.haml b/app/views/deploy_keys/show.html.haml index b1e0dc5ce27..c94cf10dde0 100644 --- a/app/views/deploy_keys/show.html.haml +++ b/app/views/deploy_keys/show.html.haml @@ -1,7 +1,14 @@ = render "repositories/head" -%h3= @key.title +%h3.page_title + Deploy key: + = @key.title + %small + created at + = @key.created_at.stamp("Aug 21, 2011") +.back_link + = link_to project_deploy_keys_path(@project) do + ← To keys list %hr %pre= @key.key -.actions +.right = link_to 'Remove', project_deploy_key_path(@key.project, @key), confirm: 'Are you sure?', method: :delete, class: "danger btn delete-key" - .clear diff --git a/app/views/errors/gitolite.html.haml b/app/views/errors/gitolite.html.haml index d5f51951d5e..699e6984db6 100644 --- a/app/views/errors/gitolite.html.haml +++ b/app/views/errors/gitolite.html.haml @@ -1,6 +1,6 @@ %h1 Git Error %hr -%h2 Gitlab was unable to access your Gitolite system. +%h2 GitLab was unable to access your Gitolite system. .git_error_tips %h4 Tips for Administrator: diff --git a/app/views/help/api.html.haml b/app/views/help/api.html.haml index d7d7aed4232..35176f8e214 100644 --- a/app/views/help/api.html.haml +++ b/app/views/help/api.html.haml @@ -15,6 +15,8 @@ %a{href: "#users"} Users %li %a{href: "#issues"} Issues + %li + %a{href: "#milestones"} Milestones .file_holder#README .file_title diff --git a/app/views/help/index.html.haml b/app/views/help/index.html.haml index 02549577282..962f2175126 100644 --- a/app/views/help/index.html.haml +++ b/app/views/help/index.html.haml @@ -30,7 +30,7 @@ %h5= link_to "API", help_api_path %li - %h5= link_to "Gitlab Markdown", help_markdown_path + %h5= link_to "GitLab Markdown", help_markdown_path %li %h5= link_to "SSH keys", help_ssh_path diff --git a/app/views/help/markdown.html.haml b/app/views/help/markdown.html.haml index 6a4bbb02c6c..2086b08c890 100644 --- a/app/views/help/markdown.html.haml +++ b/app/views/help/markdown.html.haml @@ -1,4 +1,4 @@ -%h3.page_title Gitlab Flavored Markdown +%h3.page_title GitLab Flavored Markdown .back_link = link_to help_path do ← to index @@ -7,7 +7,7 @@ .row .span8 %p - For Gitlab we developed something we call "Gitlab Flavored Markdown" (GFM). + For GitLab we developed something we call "GitLab Flavored Markdown" (GFM). It extends the standard Markdown in a few significant ways adds some useful functionality. %p You can use GFM in: @@ -62,7 +62,7 @@ %p becomes = markdown %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```} - %h4 Special Gitlab references + %h4 Special GitLab references %p GFM recognizes special references. @@ -90,12 +90,11 @@ -# this example will only be shown if the user has a project with at least one issue - if @project = current_user.projects.first - if issue = @project.issues.first - %p For example in your #{link_to @project.name, project_path(@project)} project something like + %p For example in your #{link_to @project.name, project_path(@project)} project, writing: %pre= "This is related to ##{issue.id}. @#{current_user.name} is working on solving it." - %p becomes - = markdown "This is related to ##{issue.id}. @#{current_user.name} is working on solving it." - - + %p becomes: + %pre= gfm "This is related to ##{issue.id}. @#{current_user.name} is working on solving it." + - @project = nil # Prevent this from bubbling up to page title .span4.right .alert.alert-info diff --git a/app/views/help/ssh.html.haml b/app/views/help/ssh.html.haml index 6a5812040e7..3f082333a76 100644 --- a/app/views/help/ssh.html.haml +++ b/app/views/help/ssh.html.haml @@ -5,7 +5,7 @@ %hr %p.slead - SSH key allows you to establish a secure connection between your computer and Gitlab + SSH key allows you to establish a secure connection between your computer and GitLab %p.slead To generate a new SSH key just open your terminal and use code below. @@ -17,7 +17,7 @@ \# Generating public/private rsa key pair... %p.slead - Next just use code below to dump your public key and add to GITLAB SSH Keys + Next just use code below to dump your public key and add to GitLab SSH Keys %pre.dark cat ~/.ssh/id_rsa.pub diff --git a/app/views/help/system_hooks.html.haml b/app/views/help/system_hooks.html.haml index 9fc8cbabf17..736c818bc57 100644 --- a/app/views/help/system_hooks.html.haml +++ b/app/views/help/system_hooks.html.haml @@ -5,7 +5,7 @@ %hr %p.slead - Your Gitlab instance can perform HTTP POST request on next event: create_project, delete_project, create_user, delete_user, change_team_member. + Your GitLab instance can perform HTTP POST request on next event: create_project, delete_project, create_user, delete_user, change_team_member. %br System Hooks can be used for logging or change information in LDAP server. %br diff --git a/app/views/help/web_hooks.html.haml b/app/views/help/web_hooks.html.haml index 263eadf6583..65036613fa7 100644 --- a/app/views/help/web_hooks.html.haml +++ b/app/views/help/web_hooks.html.haml @@ -5,11 +5,11 @@ %hr %p.slead - Every Gitlab project can trigger a web server whenever the repo is pushed to. + Every GitLab project can trigger a web server whenever the repo is pushed to. %br Web Hooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. %br - GITLAB will send POST request with commits information on every push. + GitLab will send POST request with commits information on every push. %h5 Hooks request example: = render "hooks/data_ex" diff --git a/app/views/help/workflow.html.haml b/app/views/help/workflow.html.haml index a3fe3b01d46..6062ca091bd 100644 --- a/app/views/help/workflow.html.haml +++ b/app/views/help/workflow.html.haml @@ -24,7 +24,7 @@ git commit -am "My feature is ready" %li - %p Push your branch to gitlabhq + %p Push your branch to GitLab .bash %pre.dark git push origin $feature_name diff --git a/app/views/hooks/_data_ex.html.erb b/app/views/hooks/_data_ex.html.erb index e43714e965b..7dd6b9e0750 100644 --- a/app/views/hooks/_data_ex.html.erb +++ b/app/views/hooks/_data_ex.html.erb @@ -32,7 +32,7 @@ :timestamp => "2012-01-03T23:36:29+02:00", :url => "http://localhost/diaspora/commits/da1560886d...", :author => { - :name => "gitlab dev user", + :name => "GitLab dev user", :email => "gitlabdev@dv6700.(none)" } } diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml index db7920b993d..23de7e8ed15 100644 --- a/app/views/issues/_form.html.haml +++ b/app/views/issues/_form.html.haml @@ -38,7 +38,7 @@ = f.label :description, "Details" .input = f.text_area :description, maxlength: 2000, class: "xxlarge", rows: 14 - %p.hint Issues are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. + %p.hint Issues are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. .actions diff --git a/app/views/keys/index.html.haml b/app/views/keys/index.html.haml index 8f7e2bab1b4..3e919c5c419 100644 --- a/app/views/keys/index.html.haml +++ b/app/views/keys/index.html.haml @@ -4,7 +4,7 @@ %hr %p.slead - SSH key allows you to establish a secure connection between your computer and Gitlab + SSH key allows you to establish a secure connection between your computer and GitLab %table#keys-table diff --git a/app/views/keys/show.html.haml b/app/views/keys/show.html.haml index ffd52b96e5a..a8cba6c8f9e 100644 --- a/app/views/keys/show.html.haml +++ b/app/views/keys/show.html.haml @@ -10,5 +10,5 @@ %hr %pre= @key.key -.actions +.right = link_to 'Remove', @key, confirm: 'Are you sure?', method: :delete, class: "btn danger delete-key" diff --git a/app/views/layouts/notify.html.haml b/app/views/layouts/notify.html.haml index a1938df43a1..7b79897b653 100644 --- a/app/views/layouts/notify.html.haml +++ b/app/views/layouts/notify.html.haml @@ -2,7 +2,7 @@ %head %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} %title - gitlabhq + GitLab :css .header h1 {color: #BBBBBB !important; font: bold 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;} .header p {color: #c6c6c6; font: normal 12px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 18px;} @@ -21,7 +21,7 @@ \Â %td{align: "left", style: "padding: 18px 0 10px;", width: "580"} %h1{style: "color: #BBBBBB; font: normal 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;"} - gitlab + GITLAB - if @project | #{@project.name} %table{align: "center", bgcolor: "#fff", border: "0", cellpadding: "0", cellspacing: "0", style: "font-family: Helvetica, Arial, sans-serif; background: #fff;", width: "600"} diff --git a/app/views/milestones/_form.html.haml b/app/views/milestones/_form.html.haml index 41cbd6abcad..ce4145ba3e6 100644 --- a/app/views/milestones/_form.html.haml +++ b/app/views/milestones/_form.html.haml @@ -22,7 +22,7 @@ = f.label :description, "Description", class: "control-label" .controls = f.text_area :description, maxlength: 2000, class: "input-xlarge", rows: 10 - %p.hint Milestones are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. + %p.hint Milestones are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. .span6 .control-group = f.label :due_date, "Due Date", class: "control-label" diff --git a/app/views/notes/_form.html.haml b/app/views/notes/_form.html.haml index 7211a0ae471..6d559cfc790 100644 --- a/app/views/notes/_form.html.haml +++ b/app/views/notes/_form.html.haml @@ -11,7 +11,7 @@ = f.text_area :note, size: 255, class: 'note-text' #preview-note.preview_note.hide .hint - .right Comments are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. + .right Comments are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. .clearfix .row.note_advanced_opts.hide diff --git a/app/views/notify/new_user_email.html.haml b/app/views/notify/new_user_email.html.haml index d96afc92fe2..93bf7c50229 100644 --- a/app/views/notify/new_user_email.html.haml +++ b/app/views/notify/new_user_email.html.haml @@ -6,7 +6,7 @@ %h2{style: "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "} Hi #{@user['name']}! %p{style: "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "} - Administrator created account for you. Now you are a member of company gitlab application. + Administrator created account for you. Now you are a member of company GitLab application. %td{style: "font-size: 1px; line-height: 1px;", width: "21"} %tr %td{style: "font-size: 1px; line-height: 1px;", width: "21"} diff --git a/app/views/projects/_clone_panel.html.haml b/app/views/projects/_clone_panel.html.haml index 839a98a0d79..20891610ace 100644 --- a/app/views/projects/_clone_panel.html.haml +++ b/app/views/projects/_clone_panel.html.haml @@ -3,19 +3,19 @@ .span7 .form-horizontal .input-prepend.project_clone_holder - = link_to "SSH", "#", class: "btn small active", :"data-clone" => @project.ssh_url_to_repo - = link_to "HTTP", "#", class: "btn small", :"data-clone" => @project.http_url_to_repo + %button{class: "btn small active", :"data-clone" => @project.ssh_url_to_repo} SSH + %button{class: "btn small", :"data-clone" => @project.http_url_to_repo} HTTP = text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select span5" .span4.right .right - - if can? current_user, :download_code, @project - = link_to archive_project_repository_path(@project), class: "btn small grouped" do - %i.icon-download-alt - Download - - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) - = link_to new_project_merge_request_path(@project), title: "New Merge Request", class: "btn small grouped" do - Merge Request - - if @project.issues_enabled && can?(current_user, :write_issue, @project) - = link_to new_project_issue_path(@project), title: "New Issue", class: "btn small grouped" do - Issue - + - unless @project.empty_repo? + - if can? current_user, :download_code, @project + = link_to archive_project_repository_path(@project), class: "btn small grouped" do + %i.icon-download-alt + Download + - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) + = link_to new_project_merge_request_path(@project), title: "New Merge Request", class: "btn small grouped" do + Merge Request + - if @project.issues_enabled && can?(current_user, :write_issue, @project) + = link_to new_project_issue_path(@project), title: "New Issue", class: "btn small grouped" do + Issue diff --git a/app/views/projects/_show.html.haml b/app/views/projects/_show.html.haml deleted file mode 100644 index e8a5b00dd0e..00000000000 --- a/app/views/projects/_show.html.haml +++ /dev/null @@ -1,23 +0,0 @@ -%h5.title - = @project.name -%br -%div - %a.btn.info{href: tree_project_ref_path(@project, @project.root_ref)} Browse code - - %a.btn{href: project_commits_path(@project)} Commits - %strong.right - = link_to project_path(@project) do - Switch to project → -%br -.alert-message.block-message.warning - .input - .input-prepend - %span.add-on git clone - = text_field_tag :project_clone, @project.url_to_repo, class: "xlarge one_click_select git_clone_url" - -= simple_format @project.description -- unless @events.blank? - %h4.middle_title Recent Activity - .content_list= render @events - - diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml index d408c0a64ae..d9a151fc706 100644 --- a/app/views/projects/empty.html.haml +++ b/app/views/projects/empty.html.haml @@ -1,12 +1,6 @@ = render 'shared/no_ssh' -.project_clone_panel - .row - .span7 - .form-horizontal - .input-prepend.project_clone_holder - = link_to "SSH", "#", class: "btn small active", :"data-clone" => @project.ssh_url_to_repo - = link_to "HTTP", "#", class: "btn small", :"data-clone" => @project.http_url_to_repo - = text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select span5" += render 'clone_panel' + %div.git-empty %h4 Git global setup: %pre.dark @@ -36,16 +30,3 @@ - if can? current_user, :admin_project, @project .prepend-top-20 = link_to 'Remove project', @project, confirm: 'Are you sure?', method: :delete, class: "btn danger right" - - - -:javascript - $(function(){ - var link_sel = ".project_clone_holder a"; - $(link_sel).bind("click", function() { - $(link_sel).removeClass("active"); - $(this).addClass("active"); - $("#project_clone").val($(this).attr("data-clone")); - }) - }) - diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 77a0ef1ac4d..21459da256f 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -2,13 +2,3 @@ = render 'clone_panel' = render "events/event_last_push", event: @last_push .content_list= render @events - -:javascript - $(function(){ - var link_sel = ".project_clone_holder a"; - $(link_sel).bind("click", function() { - $(link_sel).removeClass("active"); - $(this).addClass("active"); - $("#project_clone").val($(this).attr("data-clone")); - }) - }) diff --git a/app/views/refs/_head.html.haml b/app/views/refs/_head.html.haml index 8825493a0ec..d51602de9b7 100644 --- a/app/views/refs/_head.html.haml +++ b/app/views/refs/_head.html.haml @@ -7,4 +7,8 @@ %li{class: "#{'active' if (controller.controller_name == "refs") }"} = link_to tree_project_ref_path(@project, @ref) do Source - + %li.right + .input-prepend.project_clone_holder + %button{class: "btn small active", :"data-clone" => @project.ssh_url_to_repo} SSH + %button{class: "btn small", :"data-clone" => @project.http_url_to_repo} HTTP + = text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select span5" diff --git a/app/views/refs/tree.js.haml b/app/views/refs/tree.js.haml index 2eccf8c19a6..92e90579304 100644 --- a/app/views/refs/tree.js.haml +++ b/app/views/refs/tree.js.haml @@ -6,5 +6,5 @@ // Load last commit log for each file in tree $('#tree-slider').waitForImages(function() { - ajaxGet('#{@logs_path}'); + ajaxGet('#{@logs_path}'); }); diff --git a/app/views/team_members/show.html.haml b/app/views/team_members/show.html.haml index 89662309ba3..3b5c78a87c7 100644 --- a/app/views/team_members/show.html.haml +++ b/app/views/team_members/show.html.haml @@ -3,7 +3,7 @@ .team_member_show - if can? current_user, :admin_project, @project - = link_to 'Remove from team', project_team_member_path(project_id: @project, id: @team_member.id), confirm: 'Are you sure?', method: :delete, class: "right btn btn-danger" + = link_to 'Remove from team', project_team_member_path(project_id: @project, id: @team_member.id), confirm: 'Are you sure?', method: :delete, class: "right btn danger" .profile_avatar_holder = image_tag gravatar_icon(user.email, 60), class: "borders" %h3 diff --git a/app/views/wikis/_form.html.haml b/app/views/wikis/_form.html.haml index 12b57e032a4..b05d0a78992 100644 --- a/app/views/wikis/_form.html.haml +++ b/app/views/wikis/_form.html.haml @@ -14,7 +14,7 @@ .middle_box_content .input %span.cgray - Wiki content is parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. + Wiki content is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. To link to a (new) page you can just type %code [Link Title](page-slug) \. diff --git a/config/routes.rb b/config/routes.rb index 51e65721880..ed5eac0ddd0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -50,10 +50,6 @@ Gitlab::Application.routes.draw do end end resources :team_members, :only => [:edit, :update, :destroy] - get 'mailer/preview_note' - get 'mailer/preview_user_new' - get 'mailer/preview_issue_new' - resources :hooks, :only => [:index, :create, :destroy] do get :test end diff --git a/db/migrate/20120905043334_set_default_branch_default_to_nil.rb b/db/migrate/20120905043334_set_default_branch_default_to_nil.rb new file mode 100644 index 00000000000..f5956fe8751 --- /dev/null +++ b/db/migrate/20120905043334_set_default_branch_default_to_nil.rb @@ -0,0 +1,12 @@ +class SetDefaultBranchDefaultToNil < ActiveRecord::Migration + def up + # Set the default_branch to allow nil, and default it to nil + change_column_null(:projects, :default_branch, true) + change_column_default(:projects, :default_branch, nil) + end + + def down + change_column_null(:projects, :default_branch, false) + change_column_default(:projects, :default_branch, 'master') + end +end diff --git a/db/schema.rb b/db/schema.rb index 46461e44aad..00bb55234af 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20120729131232) do +ActiveRecord::Schema.define(:version => 20120905043334) do create_table "events", :force => true do |t| t.string "target_type" @@ -98,16 +98,16 @@ ActiveRecord::Schema.define(:version => 20120729131232) do t.string "name" t.string "path" t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.boolean "private_flag", :default => true, :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.boolean "private_flag", :default => true, :null => false t.string "code" t.integer "owner_id" - t.string "default_branch", :default => "master", :null => false - t.boolean "issues_enabled", :default => true, :null => false - t.boolean "wall_enabled", :default => true, :null => false - t.boolean "merge_requests_enabled", :default => true, :null => false - t.boolean "wiki_enabled", :default => true, :null => false + t.string "default_branch" + t.boolean "issues_enabled", :default => true, :null => false + t.boolean "wall_enabled", :default => true, :null => false + t.boolean "merge_requests_enabled", :default => true, :null => false + t.boolean "wiki_enabled", :default => true, :null => false end create_table "protected_branches", :force => true do |t| diff --git a/doc/api/README.md b/doc/api/README.md index 3a6c7b7682a..93919b42852 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -1,10 +1,8 @@ -# Gitlab API +# GitLab API -All API requests require authentication. You need to pass `private_token` parameter to authenticate. +All API requests require authentication. You need to pass a `private_token` parameter to authenticate. You can find or reset your private token in your profile. -To get or reset your token visit your profile. - -If no or invalid `private_token` provided error message will be returned with status code 401: +If no, or an invalid, `private_token` is provided then an error message will be returned with status code 401: ```json { @@ -12,10 +10,9 @@ If no or invalid `private_token` provided error message will be returned with st } ``` -API requests should be prefixed with `api` and the API version. -API version is equal to Gitlab major version number and defined in `lib/api.rb`. +API requests should be prefixed with `api` and the API version. The API version is equal to the GitLab major version number, which is defined in `lib/api.rb`. -Example of valid API request: +Example of a valid API request: ``` GET http://example.com/api/v2/projects?private_token=QVy1PB7sTxfy4pqfZM1U diff --git a/doc/api/projects.md b/doc/api/projects.md index b0c1e65709c..5a20719ff1a 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -1,6 +1,6 @@ ## List projects -Get a list of authenticated user's projects. +Get a list of projects owned by the authenticated user. ``` GET /projects @@ -55,7 +55,7 @@ GET /projects ## Single project -Get an authenticated user's project. +Get a specific project, identified by project ID, which is owned by the authentication user. ``` GET /projects/:id @@ -102,6 +102,12 @@ Parameters: + `name` (required) - new project name + `code` (optional) - new project code, uses project name if not set + `path` (optional) - new project path, uses project name if not set ++ `description (optional) - short project description ++ `default_branch` (optional) - 'master' by default ++ `issues_enabled` (optional) - enabled by default ++ `wall_enabled` (optional) - enabled by default ++ `merge_requests_enabled` (optional) - enabled by default ++ `wiki_enabled` (optional) - enabled by default Will return created project with status `201 Created` on success, or `404 Not found` on fail. @@ -109,7 +115,7 @@ found` on fail. ## Project repository branches -Get a list of project repository branches sorted by name alphabetically. +Get a list of repository branches from a project, sorted by name alphabetically. ``` GET /projects/:id/repository/branches @@ -186,7 +192,7 @@ Parameters: ## Project repository tags -Get a list of project repository tags sorted by name in reverse alphabetical order. +Get a list of repository tags from a project, sorted by name in reverse alphabetical order. ``` GET /projects/:id/repository/tags @@ -237,3 +243,4 @@ Parameters: + `filepath` (required) - The path the file Will return the raw file contents. + diff --git a/doc/debian_ubuntu.sh b/doc/debian_ubuntu.sh deleted file mode 100644 index 5ed1e2a2f1f..00000000000 --- a/doc/debian_ubuntu.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -sudo apt-get update -sudo apt-get upgrade - -sudo DEBIAN_FRONTEND='noninteractive' apt-get install -y postfix-policyd-spf-python # Install postfix without prompting. -sudo apt-get install -y git git-core wget curl gcc checkinstall libxml2-dev libxslt-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libreadline-gplv2-dev libc6-dev libssl-dev libmysql++-dev make build-essential zlib1g-dev libicu-dev redis-server openssh-server python-dev python-pip libyaml-dev - -wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz -tar xfvz ruby-1.9.3-p194.tar.gz -cd ruby-1.9.3-p194 -./configure -make -sudo make install - -sudo adduser \ - --system \ - --shell /bin/sh \ - --gecos 'git version control' \ - --group \ - --disabled-password \ - --home /home/git \ - git - -sudo adduser --disabled-login --gecos 'gitlab system' gitlab - -sudo usermod -a -G git gitlab - -sudo -H -u gitlab ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa - -cd /home/git -sudo -H -u git git clone git://github.com/gitlabhq/gitolite /home/git/gitolite - -sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; /home/git/gitolite/src/gl-system-install" -sudo cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub -sudo chmod 777 /home/git/gitlab.pub - -sudo -u git -H sed -i 's/0077/0007/g' /home/git/share/gitolite/conf/example.gitolite.rc -sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gl-setup -q /home/git/gitlab.pub" - -sudo chmod -R g+rwX /home/git/repositories/ -sudo chown -R git:git /home/git/repositories/ - -sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin -sudo rm -rf /tmp/gitolite-admin diff --git a/doc/installation.md b/doc/installation.md index 4cb873f0e38..e14ec711e7b 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -20,7 +20,7 @@ You might have some luck using these, but no guarantees: - MacOS X - FreeBSD -Gitlab does **not** run on Windows and we have no plans of making Gitlab compatible. +GitLab does **not** run on Windows and we have no plans of making GitLab compatible. ## This installation guide created for Debian/Ubuntu and properly tested. @@ -28,40 +28,44 @@ The installation consists of 6 steps: 1. Install packages / dependencies 2. Install ruby -3. Install gitolite -4. Install and configure Gitlab. +3. Install Gitolite +4. Install and configure GitLab. 5. Start the web front-end 6. Start a Resque worker (for background processing) ### IMPORTANT -Please make sure you have followed all the steps below before posting to the mailinglist with installation and configuration questions. +Please make sure you have followed all the steps below before posting to the mailing list with installation and configuration questions. -Only create a Github Issue if you want a specific part of this installation guide updated. +Only create a GitHub Issue if you want a specific part of this installation guide updated. Also read the [Read this before you submit an issue](https://github.com/gitlabhq/gitlabhq/wiki/Read-this-before-you-submit-an-issue) wiki page. > - - - -> First 3 steps can be easily skipped with simply install script: +> The first 3 steps of this guide can be easily skipped by executing an install script: > > # Install curl and sudo > apt-get install curl sudo > > # 3 steps in 1 command :) -> curl https://raw.github.com/gitlabhq/gitlabhq/master/doc/debian_ubuntu.sh | sh +> curl https://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu.sh | sh > -> Now you can go to step 4" +> Now you can go to [Step 4](#4-install-gitlab-and-configuration-check-status-configuration) > -> Or if you are installing on Amazon Web Services using Ubuntu 12.04 you can do all steps (1 to 6) at once with: +> Or if you are installing on Amazon Web Services using Ubuntu 12.04 you can do all steps (1 to 6) at once with: > -> curl https://raw.github.com/gitlabhq/gitlabhq/master/lib/support/aws/debian_ubuntu_aws.sh | sh +> curl https://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu_aws.sh | sh > -> for more detailed instructions read the HOWTO section of [the script](https://github.com/gitlabhq/gitlabhq/blob/master/lib/support/aws/debian_ubuntu_aws.sh) +> for more detailed instructions read the HOWTO section of [the script](https://github.com/gitlabhq/gitlab-recipes/blob/master/install/debian_ubuntu_aws.sh) > - - - # 1. Install packages -*Keep in mind that `sudo` is not installed for debian by default. You should install it with as root:* **apt-get update && apt-get upgrade && apt-get install sudo** +*Keep in mind that `sudo` is not installed on Debian by default. You should install it as root:* + + apt-get update && apt-get upgrade && apt-get install sudo + +Now install the required packages: sudo apt-get update sudo apt-get upgrade @@ -71,16 +75,16 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq # If you want to use MySQL: sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev -# 2. Install ruby +# 2. Install Ruby - wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz - tar xzfv ruby-1.9.2-p290.tar.gz - cd ruby-1.9.2-p290 + wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz + tar xfvz ruby-1.9.3-p194.tar.gz + cd ruby-1.9.3-p194 ./configure make sudo make install -# 3. Install gitolite +# 3. Install Gitolite Create user for git: @@ -93,12 +97,12 @@ Create user for git: --home /home/git \ git -Create user for gitlab: +Create user for GitLab: # ubuntu/debian sudo adduser --disabled-login --gecos 'gitlab system' gitlab -Add your user to git group: +Add your user to the `git` group: sudo usermod -a -G git gitlab @@ -106,10 +110,10 @@ Generate key: sudo -H -u gitlab ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa -Get gitolite source code: +Clone GitLab's fork of the Gitolite source code: cd /home/git - sudo -H -u git git clone git://github.com/gitlabhq/gitolite /home/git/gitolite + sudo -H -u git git clone https://github.com/gitlabhq/gitolite.git /home/git/gitolite Setup: @@ -135,23 +139,23 @@ Permissions: # if succeed you can remove it sudo rm -rf /tmp/gitolite-admin -**IMPORTANT! If you cant clone `gitolite-admin` repository - DONT PROCEED INSTALLATION** +**IMPORTANT! If you can't clone `gitolite-admin` repository - DO NOT PROCEED WITH INSTALLATION** +Check the [Trouble Shooting Guide](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide) +and ensure you have followed all of the above steps carefully. -# 4. Install gitlab and configuration. Check status configuration. +# 4. Clone GitLab source and install prerequisites sudo gem install charlock_holmes --version '0.6.8' sudo pip install pygments sudo gem install bundler cd /home/gitlab - sudo -H -u gitlab git clone -b stable git://github.com/gitlabhq/gitlabhq.git gitlab + sudo -H -u gitlab git clone -b stable https://github.com/gitlabhq/gitlabhq.git gitlab cd gitlab - sudo -u gitlab mkdir tmp - # Rename config files sudo -u gitlab cp config/gitlab.yml.example config/gitlab.yml -#### Select db you want to use +#### Select the database you want to use # SQLite sudo -u gitlab cp config/database.yml.sqlite config/database.yml @@ -163,7 +167,7 @@ Permissions: # Login to MySQL $ mysql -u root -p - # Create the gitlabhq production database + # Create the GitLab production database mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; # Create the MySQL User change $password to a real password @@ -179,15 +183,17 @@ Permissions: sudo -u gitlab -H bundle install --without development test --deployment -#### Setup DB +#### Setup database sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production -#### Setup gitlab hooks +#### Setup GitLab hooks sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive +#### Check application status + Checking status: sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production @@ -208,9 +214,9 @@ Checking status: UMASK for .gitolite.rc is 0007? ............YES /home/git/share/gitolite/hooks/common/post-receive exists? ............YES -If you got all YES - congrats! You can go to next step. +If you got all YES - congratulations! You can go to the next step. -# 5. Server up +# 5. Start the web server Application can be started with next command: @@ -225,12 +231,12 @@ You can login via web using admin generated with setup: admin@local.host 5iveL!fe -# 6. Run resque process (for processing queue). +# 6. Run Resque process (for processing job queue). # Manually sudo -u gitlab bundle exec rake environment resque:work QUEUE=* RAILS_ENV=production BACKGROUND=yes - # Gitlab start script + # GitLab start script sudo -u gitlab ./resque.sh # if you run this as root /home/gitlab/gitlab/tmp/pids/resque_worker.pid will be owned by root # causing the resque worker not to start via init script on next boot/service restart @@ -240,19 +246,19 @@ You can login via web using admin generated with setup: # Nginx && Unicorn -### Install Nginx - - sudo apt-get install nginx - -## Unicorn +## 1. Unicorn cd /home/gitlab/gitlab sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D -Add gitlab to nginx sites & change with your host specific settings +## 2. Nginx + + # Install first + sudo apt-get install nginx - sudo cp /home/gitlab/gitlab/lib/support/nginx-gitlab /etc/nginx/sites-available/gitlab + # Add GitLab to nginx sites & change with your host specific settings + sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/nginx/gitlab -P /etc/nginx/sites-available/ sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab # Change **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN** @@ -260,22 +266,21 @@ Add gitlab to nginx sites & change with your host specific settings # of the host serving GitLab. sudo vim /etc/nginx/sites-enabled/gitlab -Restart nginx: + # Restart nginx: /etc/init.d/nginx restart -Create init script in /etc/init.d/gitlab: - - cp /home/gitlab/gitlab/lib/support/init-gitlab /etc/init.d/gitlab +## 3. Init script -Adding permission: +Create init script in /etc/init.d/gitlab: + sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab -P /etc/init.d/ sudo chmod +x /etc/init.d/gitlab -Gitlab autostart: +GitLab autostart: sudo update-rc.d gitlab defaults -Now you can start/restart/stop gitlab like: +Now you can start/restart/stop GitLab like: sudo /etc/init.d/gitlab restart diff --git a/features/projects/issues/issues.feature b/features/projects/issues/issues.feature index 180710cf6bc..42a3d8736e0 100644 --- a/features/projects/issues/issues.feature +++ b/features/projects/issues/issues.feature @@ -4,7 +4,7 @@ Feature: Issues And I own project "Shop" And project "Shop" have "Release 0.4" open issue And project "Shop" have "Release 0.3" closed issue - And I visit project "Shop" issues page + And I visit project "Shop" issues page Scenario: I should see open issues Given I should see "Release 0.4" in issues @@ -36,3 +36,31 @@ Feature: Issues Given I visit issue page "Release 0.4" And I leave a comment like "XML attached" Then I should see comment "XML attached" + + @javascript + Scenario: I search issue + Given I fill in issue search with "Release" + Then I should see "Release 0.4" in issues + And I should not see "Release 0.3" in issues + + @javascript + Scenario: I search issue that not exist + Given I fill in issue search with "Bug" + Then I should not see "Release 0.4" in issues + And I should not see "Release 0.3" in issues + + + @javascript + Scenario: I search all issues + Given I click link "All" + And I fill in issue search with "0.3" + Then I should see "Release 0.3" in issues + And I should not see "Release 0.4" in issues + + @javascript + Scenario: I clear search + Given I click link "All" + And I fill in issue search with "Something" + And I fill in issue search with "" + Then I should see "Release 0.4" in issues + And I should see "Release 0.3" in issues diff --git a/features/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb new file mode 100644 index 00000000000..e9023f9278f --- /dev/null +++ b/features/step_definitions/common_steps.rb @@ -0,0 +1,21 @@ +include LoginHelpers + +Given /^I signin as a user$/ do + login_as :user +end + +When /^I click link "(.*?)"$/ do |link| + click_link link +end + +When /^I click button "(.*?)"$/ do |button| + click_button button +end + +When /^I fill in "(.*?)" with "(.*?)"$/ do |field, value| + fill_in field, :with => value +end + +Given /^show me page$/ do + save_and_open_page +end diff --git a/features/step_definitions/dashboard_steps.rb b/features/step_definitions/dashboard_steps.rb index a4edd224dc0..867233c82cb 100644 --- a/features/step_definitions/dashboard_steps.rb +++ b/features/step_definitions/dashboard_steps.rb @@ -1,7 +1,3 @@ -Given /^I visit dashboard page$/ do - visit dashboard_path -end - Then /^I should see "(.*?)" link$/ do |arg1| page.should have_link(arg1) end @@ -51,10 +47,10 @@ Then /^I click "(.*?)" link$/ do |arg1| end Then /^I see prefilled new Merge Request page$/ do - current_path.should == new_project_merge_request_path(@project) - find("#merge_request_source_branch").value.should == "new_design" - find("#merge_request_target_branch").value.should == "master" - find("#merge_request_title").value.should == "New Design" + current_path.should == new_project_merge_request_path(@project) + find("#merge_request_source_branch").value.should == "new_design" + find("#merge_request_target_branch").value.should == "master" + find("#merge_request_title").value.should == "New Design" end Given /^I visit dashboard search page$/ do @@ -66,10 +62,6 @@ Given /^I search for "(.*?)"$/ do |arg1| click_button "Search" end -Given /^I visit dashboard issues page$/ do - visit dashboard_issues_path -end - Then /^I should see issues assigned to me$/ do issues = @user.issues issues.each do |issue| @@ -78,10 +70,6 @@ Then /^I should see issues assigned to me$/ do end end -Given /^I visit dashboard merge requests page$/ do - visit dashboard_merge_requests_path -end - Then /^I should see my merge requests$/ do merge_requests = @user.merge_requests merge_requests.each do |mr| diff --git a/features/step_definitions/profile/profile_steps.rb b/features/step_definitions/profile/profile_steps.rb index 4661139c180..525d43f5fda 100644 --- a/features/step_definitions/profile/profile_steps.rb +++ b/features/step_definitions/profile/profile_steps.rb @@ -1,17 +1,9 @@ -Given /^I visit profile page$/ do - visit profile_path -end - Then /^I should see my profile info$/ do page.should have_content "Profile" page.should have_content @user.name page.should have_content @user.email end -Given /^I visit profile password page$/ do - visit profile_password_path -end - Then /^I change my password$/ do fill_in "user_password", :with => "222333" fill_in "user_password_confirmation", :with => "222333" @@ -22,10 +14,6 @@ Then /^I should be redirected to sign in page$/ do current_path.should == new_user_session_path end -Given /^I visit profile token page$/ do - visit profile_token_path -end - Then /^I reset my token$/ do @old_token = @user.private_token click_button "Reset" diff --git a/features/step_definitions/project/browse_code_steps.rb b/features/step_definitions/project/browse_code_steps.rb index 7f9001bb989..d2ed9a0af28 100644 --- a/features/step_definitions/project/browse_code_steps.rb +++ b/features/step_definitions/project/browse_code_steps.rb @@ -1,17 +1,9 @@ -Given /^I visit project source page$/ do - visit tree_project_ref_path(@project, @project.root_ref) -end - Then /^I should see files from repository$/ do page.should have_content("app") page.should have_content("History") page.should have_content("Gemfile") end -Given /^I visit project source page for "(.*?)"$/ do |arg1| - visit tree_project_ref_path(@project, arg1) -end - Then /^I should see files from repository for "(.*?)"$/ do |arg1| current_path.should == tree_project_ref_path(@project, arg1) page.should have_content("app") @@ -31,10 +23,6 @@ Given /^I click on raw button$/ do click_link "raw" end -Given /^I visit blob file from repo$/ do - visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH) -end - Then /^I should see raw file content$/ do page.source.should == ValidCommit::BLOB_FILE end diff --git a/features/step_definitions/project/project_commits_steps.rb b/features/step_definitions/project/project_commits_steps.rb index 35fcb4d11ab..7f20ade41d1 100644 --- a/features/step_definitions/project/project_commits_steps.rb +++ b/features/step_definitions/project/project_commits_steps.rb @@ -1,7 +1,3 @@ -Given /^I visit project commits page$/ do - visit project_commits_path(@project) -end - Then /^I see project commits$/ do current_path.should == project_commits_path(@project) @@ -23,19 +19,11 @@ Then /^I see commits atom feed$/ do page.body.should have_selector("entry summary", :text => commit.description) end -Given /^I click on commit link$/ do - visit project_commit_path(@project, ValidCommit::ID) -end - Then /^I see commit info$/ do page.should have_content ValidCommit::MESSAGE page.should have_content "Showing 1 changed file" end -Given /^I visit compare refs page$/ do - visit compare_project_commits_path(@project) -end - Given /^I fill compare fields with refs$/ do fill_in "from", :with => "master" fill_in "to", :with => "stable" @@ -48,18 +36,6 @@ Given /^I see compared refs$/ do page.should have_content "Showing 73 changed files" end -Given /^I visit project branches page$/ do - visit branches_project_repository_path(@project) -end - -Given /^I visit project commit page$/ do - visit project_commit_path(@project, ValidCommit::ID) -end - -Given /^I visit project tags page$/ do - visit tags_project_repository_path(@project) -end - Then /^I should see "(.*?)" recent branches list$/ do |arg1| page.should have_content("Branches") page.should have_content("master") @@ -76,7 +52,7 @@ Then /^I should see "(.*?)" all tags list$/ do |arg1| end Then /^I should see "(.*?)" protected branches list$/ do |arg1| - within "table" do + within "table" do page.should have_content "stable" page.should_not have_content "master" end diff --git a/features/step_definitions/project/project_issues_steps.rb b/features/step_definitions/project/project_issues_steps.rb index 27de03d5489..e46c1f42f75 100644 --- a/features/step_definitions/project/project_issues_steps.rb +++ b/features/step_definitions/project/project_issues_steps.rb @@ -8,16 +8,12 @@ Given /^project "(.*?)" have "(.*?)" closed issue$/ do |arg1, arg2| Factory.create(:issue, :title => arg2, :project => project, :author => project.users.first, :closed => true) end -Given /^I visit project "(.*?)" issues page$/ do |arg1| - visit project_issues_path(Project.find_by_name(arg1)) -end - Given /^I should see "(.*?)" in issues$/ do |arg1| - page.should have_content arg1 + page.should have_content arg1 end Given /^I should not see "(.*?)" in issues$/ do |arg1| - page.should_not have_content arg1 + page.should_not have_content arg1 end Then /^I should see issue "(.*?)"$/ do |arg1| @@ -27,11 +23,6 @@ Then /^I should see issue "(.*?)"$/ do |arg1| page.should have_content issue.project.name end -Given /^I visit issue page "(.*?)"$/ do |arg1| - issue = Issue.find_by_title(arg1) - visit project_issue_path(issue.project, issue) -end - Given /^I submit new issue "(.*?)"$/ do |arg1| fill_in "issue_title", with: arg1 click_button "Submit new issue" @@ -51,7 +42,16 @@ Given /^I visit project "(.*?)" labels page$/ do |arg1| end Then /^I should see label "(.*?)"$/ do |arg1| - within ".labels-table" do + within ".labels-table" do page.should have_content arg1 end end + +Given /^I fill in issue search with "(.*?)"$/ do |arg1| + # Because fill_in, with: "" triggers nothing + # we need to trigger a keyup event + if arg1 == '' + page.execute_script("$('.issue_search').val('').keyup();"); + end + fill_in 'issue_search', with: arg1 +end diff --git a/features/step_definitions/project/project_merge_requests_steps.rb b/features/step_definitions/project/project_merge_requests_steps.rb index 2bdb967d3c5..fddb18add08 100644 --- a/features/step_definitions/project/project_merge_requests_steps.rb +++ b/features/step_definitions/project/project_merge_requests_steps.rb @@ -8,21 +8,17 @@ Given /^project "(.*?)" have "(.*?)" closed merge request$/ do |arg1, arg2| Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first, :closed => true) end -Given /^I visit project "(.*?)" merge requests page$/ do |arg1| - visit project_merge_requests_path(Project.find_by_name(arg1)) -end - Then /^I should see "(.*?)" in merge requests$/ do |arg1| - page.should have_content arg1 + page.should have_content arg1 end Then /^I should not see "(.*?)" in merge requests$/ do |arg1| - page.should_not have_content arg1 + page.should_not have_content arg1 end Then /^I should see merge request "(.*?)"$/ do |arg1| merge_request = MergeRequest.find_by_title(arg1) - page.should have_content(merge_request.title[0..10]) + page.should have_content(merge_request.title[0..10]) page.should have_content(merge_request.target_branch) page.should have_content(merge_request.source_branch) end @@ -34,11 +30,6 @@ Given /^I submit new merge request "(.*?)"$/ do |arg1| click_button "Save" end -Given /^I visit merge request page "(.*?)"$/ do |arg1| - mr = MergeRequest.find_by_title(arg1) - visit project_merge_request_path(mr.project, mr) -end - Then /^I should see closed merge request "(.*?)"$/ do |arg1| mr = MergeRequest.find_by_title(arg1) mr.closed.should be_true diff --git a/features/step_definitions/project/project_milestones_steps.rb b/features/step_definitions/project/project_milestones_steps.rb index 6749773e2b5..936c52df8d7 100644 --- a/features/step_definitions/project/project_milestones_steps.rb +++ b/features/step_definitions/project/project_milestones_steps.rb @@ -12,11 +12,6 @@ Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2| end end -Given /^I visit project "(.*?)" milestones page$/ do |arg1| - @project = Project.find_by_name(arg1) - visit project_milestones_path(@project) -end - Then /^I should see active milestones$/ do milestone = @project.milestones.first page.should have_content(milestone.title[0..10]) diff --git a/features/step_definitions/project/project_team_steps.rb b/features/step_definitions/project/project_team_steps.rb index f0bab29a6f8..0979a6ea8c3 100644 --- a/features/step_definitions/project/project_team_steps.rb +++ b/features/step_definitions/project/project_team_steps.rb @@ -8,10 +8,6 @@ Given /^"(.*?)" is "(.*?)" developer$/ do |arg1, arg2| project.add_access(user, :write) end -Given /^I visit project "(.*?)" team page$/ do |arg1| - visit team_project_path(Project.find_by_name(arg1)) -end - Then /^I should be able to see myself in team$/ do page.should have_content(@user.name) page.should have_content(@user.email) @@ -23,13 +19,9 @@ Then /^I should see "(.*?)" in team list$/ do |arg1| page.should have_content(user.email) end -Given /^I click link "(.*?)"$/ do |arg1| - click_link arg1 -end - Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2| user = User.find_by_name(arg1) - within "#new_team_member" do + within "#new_team_member" do select user.name, :from => "team_member_user_id" select arg2, :from => "team_member_project_access" end @@ -44,7 +36,7 @@ end Given /^I change "(.*?)" role to "(.*?)"$/ do |arg1, arg2| user = User.find_by_name(arg1) - within ".user_#{user.id}" do + within ".user_#{user.id}" do select arg2, :from => "team_member_project_access" end end diff --git a/features/step_definitions/project/project_wiki_steps.rb b/features/step_definitions/project/project_wiki_steps.rb index 10de38d9ae3..31fc050aa4c 100644 --- a/features/step_definitions/project/project_wiki_steps.rb +++ b/features/step_definitions/project/project_wiki_steps.rb @@ -1,7 +1,3 @@ -Given /^I visit project wiki page$/ do - visit project_wiki_path(@project, :index) -end - Given /^I create Wiki page$/ do fill_in "Title", :with => 'Test title' fill_in "Content", :with => '[link test](test)' diff --git a/features/step_definitions/project/projects_steps.rb b/features/step_definitions/project/projects_steps.rb index d981e1f3802..d22b805f1df 100644 --- a/features/step_definitions/project/projects_steps.rb +++ b/features/step_definitions/project/projects_steps.rb @@ -1,9 +1,3 @@ -include LoginHelpers - -Given /^I signin as a user$/ do - login_as :user -end - When /^I visit new project page$/ do visit new_project_path end @@ -65,10 +59,6 @@ Given /^I visit project "(.*?)" network page$/ do |arg1| visit graph_project_path(project) end -Given /^show me page$/ do - save_and_open_page -end - Given /^page should have network graph$/ do page.should have_content "Project Network Graph" within ".graph" do diff --git a/features/step_definitions/visit_steps.rb b/features/step_definitions/visit_steps.rb new file mode 100644 index 00000000000..35fc6d44a15 --- /dev/null +++ b/features/step_definitions/visit_steps.rb @@ -0,0 +1,91 @@ +Given /^I visit project "(.*?)" issues page$/ do |arg1| + visit project_issues_path(Project.find_by_name(arg1)) +end + +Given /^I visit issue page "(.*?)"$/ do |arg1| + issue = Issue.find_by_title(arg1) + visit project_issue_path(issue.project, issue) +end + +Given /^I visit project "(.*?)" merge requests page$/ do |arg1| + visit project_merge_requests_path(Project.find_by_name(arg1)) +end + +Given /^I visit merge request page "(.*?)"$/ do |arg1| + mr = MergeRequest.find_by_title(arg1) + visit project_merge_request_path(mr.project, mr) +end + +Given /^I visit project "(.*?)" milestones page$/ do |arg1| + @project = Project.find_by_name(arg1) + visit project_milestones_path(@project) +end + +Given /^I visit project commits page$/ do + visit project_commits_path(@project) +end + +Given /^I visit compare refs page$/ do + visit compare_project_commits_path(@project) +end + +Given /^I visit project branches page$/ do + visit branches_project_repository_path(@project) +end + +Given /^I visit project commit page$/ do + visit project_commit_path(@project, ValidCommit::ID) +end + +Given /^I visit project tags page$/ do + visit tags_project_repository_path(@project) +end + +Given /^I click on commit link$/ do + visit project_commit_path(@project, ValidCommit::ID) +end + +Given /^I visit project source page$/ do + visit tree_project_ref_path(@project, @project.root_ref) +end + +Given /^I visit project source page for "(.*?)"$/ do |arg1| + visit tree_project_ref_path(@project, arg1) +end + +Given /^I visit blob file from repo$/ do + visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH) +end + +Given /^I visit project "(.*?)" team page$/ do |arg1| + visit team_project_path(Project.find_by_name(arg1)) +end + +Given /^I visit project wiki page$/ do + visit project_wiki_path(@project, :index) +end + +Given /^I visit profile page$/ do + visit profile_path +end + +Given /^I visit profile token page$/ do + visit profile_token_path +end + +Given /^I visit profile password page$/ do + visit profile_password_path +end + +Given /^I visit dashboard page$/ do + visit dashboard_path +end + +Given /^I visit dashboard issues page$/ do + visit dashboard_issues_path +end + +Given /^I visit dashboard merge requests page$/ do + visit dashboard_merge_requests_path +end + diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 3d4fde9270f..d45d1d82d40 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -29,14 +29,24 @@ module Gitlab # name (required) - name for new project # code (optional) - code for new project, uses project name if not set # path (optional) - path for new project, uses project name if not set + # description (optional) - short project description + # default_branch (optional) - 'master' by default + # issues_enabled (optional) - enabled by default + # wall_enabled (optional) - enabled by default + # merge_requests_enabled (optional) - enabled by default + # wiki_enabled (optional) - enabled by default # Example Request # POST /projects post do - project = {} - project[:name] = params[:name] - project[:code] = params[:code] || project[:name] - project[:path] = params[:path] || project[:name] - @project = Project.create_by_user(project, current_user) + params[:code] ||= params[:name] + params[:path] ||= params[:name] + project_attrs = {} + params.each_pair do |k ,v| + if Project.attribute_names.include? k + project_attrs[k] = v + end + end + @project = Project.create_by_user(project_attrs, current_user) if @project.saved? present @project, with: Entities::Project else diff --git a/lib/gitlab/backend/gitolite.rb b/lib/gitlab/backend/gitolite.rb index b69f4663c35..3dfb574c4d5 100644 --- a/lib/gitlab/backend/gitolite.rb +++ b/lib/gitlab/backend/gitolite.rb @@ -170,7 +170,7 @@ module Gitlab def push Dir.chdir(File.join(@local_dir, "gitolite")) `git add -A` - `git commit -am "Gitlab"` + `git commit -am "GitLab"` `git push` Dir.chdir(Rails.root) diff --git a/lib/gitlab/markdown.rb b/lib/gitlab/markdown.rb index 9a07133d0b3..17f865bba70 100644 --- a/lib/gitlab/markdown.rb +++ b/lib/gitlab/markdown.rb @@ -1,7 +1,8 @@ module Gitlab - # Custom parser for Gitlab-flavored Markdown + # Custom parser for GitLab-flavored Markdown # - # It replaces references in the text with links to the appropriate items in Gitlab. + # It replaces references in the text with links to the appropriate items in + # GitLab. # # Supported reference formats are: # * @foo for team members @@ -10,19 +11,20 @@ module Gitlab # * $123 for snippets # * 123456 for commits # - # Examples + # It also parses Emoji codes to insert images. See + # http://www.emoji-cheat-sheet.com/ for a list of the supported icons. # - # >> m = Markdown.new(...) + # Examples # - # >> m.parse("Hey @david, can you fix this?") + # >> gfm("Hey @david, can you fix this?") # => "Hey <a href="/gitlab/team_members/1">@david</a>, can you fix this?" # - # >> m.parse("Commit 35d5f7c closes #1234") + # >> gfm("Commit 35d5f7c closes #1234") # => "Commit <a href="/gitlab/commits/35d5f7c">35d5f7c</a> closes <a href="/gitlab/issues/1234">#1234</a>" - class Markdown - include Rails.application.routes.url_helpers - include ActionView::Helpers - + # + # >> gfm(":trollface:") + # => "<img alt=\":trollface:\" class=\"emoji\" src=\"/images/trollface.png" title=\":trollface:\" /> + module Markdown REFERENCE_PATTERN = %r{ ([^\w&;])? # Prefix (1) ( # Reference (2) @@ -33,15 +35,52 @@ module Gitlab ([^\w&;])? # Suffix (6) }x.freeze + EMOJI_PATTERN = %r{(:(\S+):)}.freeze + attr_reader :html_options - def initialize(project, html_options = {}) - @project = project + # Public: Parse the provided text with GitLab-Flavored Markdown + # + # text - the source text + # html_options - extra options for the reference links as given to link_to + # + # Note: reference links will only be generated if @project is set + def gfm(text, html_options = {}) + return text if text.nil? + return text if @project.nil? + @html_options = html_options + + # Extract pre blocks so they are not altered + # from http://github.github.com/github-flavored-markdown/ + extractions = {} + text.gsub!(%r{<pre>.*?</pre>|<code>.*?</code>}m) do |match| + md5 = Digest::MD5.hexdigest(match) + extractions[md5] = match + "{gfm-extraction-#{md5}}" + end + + # TODO: add popups with additional information + + text = parse(text) + + # Insert pre block extractions + text.gsub!(/\{gfm-extraction-(\h{32})\}/) do + extractions[$1] + end + + sanitize text.html_safe, attributes: ActionView::Base.sanitized_allowed_attributes + %w(id class) end + private + + # Private: Parses text for references and emoji + # + # text - Text to parse + # + # Returns parsed text def parse(text) - text.gsub(REFERENCE_PATTERN) do |match| + text = text.gsub(REFERENCE_PATTERN) do |match| prefix = $1 || '' reference = $2 identifier = $3 || $4 || $5 @@ -53,9 +92,26 @@ module Gitlab match end end + + text = text.gsub(EMOJI_PATTERN) do |match| + if valid_emoji?($2) + image_tag("emoji/#{$2}.png", size: "20x20", class: 'emoji', title: $1, alt: $1) + else + match + end + end + + text end - private + # Private: Checks if an emoji icon exists in the image asset directory + # + # emoji - Identifier of the emoji as a string (e.g., "+1", "heart") + # + # Returns boolean + def valid_emoji?(emoji) + File.exists?(Rails.root.join('app', 'assets', 'images', 'emoji', "#{emoji}.png")) + end # Private: Dispatches to a dedicated processing method based on reference # diff --git a/lib/hooks/post-receive b/lib/hooks/post-receive index d38bd13e19d..a4fa9f1c234 100755 --- a/lib/hooks/post-receive +++ b/lib/hooks/post-receive @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# This file was placed here by Gitlab. It makes sure that your pushed commits +# This file was placed here by GitLab. It makes sure that your pushed commits # will be processed properly. while read oldrev newrev ref diff --git a/lib/support/aws/debian_ubuntu_aws.sh b/lib/support/aws/debian_ubuntu_aws.sh deleted file mode 100644 index c4103ec9195..00000000000 --- a/lib/support/aws/debian_ubuntu_aws.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh - -# ABOUT -# This script performs a complete installation of Gitlab (master branch). -# Is can be run with one command without needing _any_ user input after that. -# This script only works on Amazon Web Services (AWS). -# The operating system used is Ubuntu 12.04 64bit. - -# HOWTO -# Signup for AWS, free tier are available at http://aws.amazon.com/free/ -# Go to EC2 tab in the AWS console EC2 https://console.aws.amazon.com/ec2/home -# Click the 'Launch Instance' button -# Select: 'Quick launch wizard' and continue -# Choose a key pair => Create New => Name it => Download it -# Choose a Launch Configuration => Select 'More Amazon Marketplace Images' -# Press 'Continue' -# Enter 'ubuntu/images/ubuntu-precise-12.04-amd64-server-20120424' and press 'Search' -# Select the only result (ami-3c994355) and press 'Continue' -# Press 'Edit details' if you want to modify something, for example make the type 'c1.medium' to make the install faster. -# Press the 'Launch' button -# Press 'Close' -# Click 'Security Groups' under the left hand menu 'NETWORK & SECURITY' -# Select the newly create seciruty group, probably named 'quicklaunch-1' -# Click on the Inbound tab -# In the 'Create a new rule' dropdown select 'HTTP' -# Press 'Add Rule' -# In the 'Create a new rule' dropdown select 'HTTPS' -# Press 'Add Rule' -# Press 'Apply Rule Changes' -# Give the following command in your local terminal while suptituting the UPPERCASE items -# 'ssh -i LOCATION_OF_AWS_KEY_PAIR_PRIVATE_KEY PUBLIC_DNS_OF_THE_NEW_SERVER' -# Execute the curl command below and when its ready follow the printed 'Log in instuctions' -# curl https://raw.github.com/gitlabhq/gitlabhq/master/lib/support/aws/debian_ubuntu_aws.sh | sh - -# Prevent fingerprint prompt for localhost in step 1 to 3. -echo "Host localhost - StrictHostKeyChecking no - UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config - -# Existing script for Step 1 to 3 -curl https://raw.github.com/gitlabhq/gitlabhq/master/doc/debian_ubuntu.sh | sh - -# Install MySQL -sudo apt-get install -y makepasswd # Needed to create a unique password non-interactively. -userPassword=$(makepasswd --char=10) # Generate a random MySQL password -# Note that the lines below creates a cleartext copy of the random password in /var/cache/debconf/passwords.dat -# This file is normally only readable by root and the password will be deleted by the package management system after install. -echo mysql-server mysql-server/root_password password $userPassword | sudo debconf-set-selections -echo mysql-server mysql-server/root_password_again password $userPassword | sudo debconf-set-selections -sudo apt-get install -y mysql-server - -# Gitlab install -sudo gem install charlock_holmes --version '0.6.8' -sudo pip install pygments -sudo gem install bundler -sudo su -l gitlab -c "git clone git://github.com/gitlabhq/gitlabhq.git gitlab" # Using master everywhere. -sudo su -l gitlab -c "cd gitlab && mkdir tmp" -sudo su -l gitlab -c "cd gitlab/config && cp gitlab.yml.example gitlab.yml" -sudo su -l gitlab -c "cd gitlab/config && cp database.yml.example database.yml" -sudo sed -i 's/"secure password"/"'$userPassword'"/' /home/gitlab/gitlab/config/database.yml # Insert the mysql root password. -sudo su -l gitlab -c "cd gitlab && bundle install --without development test --deployment" -sudo su -l gitlab -c "cd gitlab && bundle exec rake gitlab:app:setup RAILS_ENV=production" - -# Setup gitlab hooks -sudo cp /home/gitlab/gitlab/lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive -sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive - -# Set the first occurrence of host in the Gitlab config to the publicly available domain name -sudo sed -i '0,/host/s/localhost/'`wget -qO- http://instance-data/latest/meta-data/public-hostname`'/' /home/gitlab/gitlab/config/gitlab.yml - -# Gitlab installation test (optional) -# sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production -# sudo -u gitlab bundle exec rails s -e production -# sudo -u gitlab bundle exec rake environment resque:work QUEUE=* RAILS_ENV=production BACKGROUND=no - -# Install and configure Nginx -sudo apt-get install -y nginx -sudo cp /home/gitlab/gitlab/lib/support/nginx-gitlab /etc/nginx/sites-available/gitlab -sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab -sudo sed -i 's/YOUR_SERVER_IP/'`wget -qO- http://instance-data/latest/meta-data/local-ipv4`'/' /etc/nginx/sites-available/gitlab # Set private ip address (public won't work). -sudo sed -i 's/YOUR_SERVER_FQDN/'`wget -qO- http://instance-data/latest/meta-data/public-hostname`'/' /etc/nginx/sites-available/gitlab # Set public dns domain name. - -# Configure Unicorn -sudo -u gitlab cp /home/gitlab/gitlab/config/unicorn.rb.orig /home/gitlab/gitlab/config/unicorn.rb - -# Create a Gitlab service -sudo cp /home/gitlab/gitlab/lib/support/init-gitlab /etc/init.d/gitlab -sudo chmod +x /etc/init.d/gitlab && sudo update-rc.d gitlab defaults - -## Gitlab service commands (unicorn and resque) -## restart doesn't restart resque, only start/stop effect it. -sudo -u gitlab service gitlab start -# sudo -u gitlab service gitlab restart -# sudo -u gitlab service gitlab stop - -# nginx Service commands -# sudo service nginx start -sudo service nginx restart -# sudo service nginx stop - -# Manual startup commands for troubleshooting when the service commands do not work -# sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D -# sudo su -l gitlab -c "cd gitlab && ./resque.sh" - -# Monitoring commands -# sudo tail -f /var/log/nginx/access.log; -# sudo tail -f /var/log/nginx/error.log; - -# Go to gitlab directory by default on next login. -echo 'cd /home/gitlab/gitlab' >> /home/ubuntu/.bashrc - -echo '' -echo '###########################################' -echo '# Log in instuctions #' -echo '###########################################' -echo '' -echo "Surf to this Gitlab installation in your browser:" -echo "http://`wget -qO- http://instance-data/latest/meta-data/public-hostname`/" -echo '' -echo 'and login with the following Email and Password:' -echo 'admin@local.host' -echo '5iveL!fe'
\ No newline at end of file diff --git a/lib/support/init-gitlab b/lib/support/init-gitlab deleted file mode 100644 index f146e80f4a8..00000000000 --- a/lib/support/init-gitlab +++ /dev/null @@ -1,54 +0,0 @@ -#! /bin/bash -### BEGIN INIT INFO -# Provides: gitlab -# Required-Start: $local_fs $remote_fs $network $syslog redis-server -# Required-Stop: $local_fs $remote_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: GitLab git repository management -# Description: GitLab git repository management -### END INIT INFO - -DAEMON_OPTS="-c /home/gitlab/gitlab/config/unicorn.rb -E production -D" -NAME=unicorn -DESC="Gitlab service" -PID=/home/gitlab/gitlab/tmp/pids/unicorn.pid -RESQUE_PID=/home/gitlab/gitlab/tmp/pids/resque_worker.pid - -case "$1" in - start) - CD_TO_APP_DIR="cd /home/gitlab/gitlab" - START_DAEMON_PROCESS="bundle exec unicorn_rails $DAEMON_OPTS" - START_RESQUE_PROCESS="./resque.sh" - - echo -n "Starting $DESC: " - if [ `whoami` = root ]; then - sudo -u gitlab sh -l -c "$CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS" - else - $CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS - fi - echo "$NAME." - ;; - stop) - echo -n "Stopping $DESC: " - kill -QUIT `cat $PID` - kill -QUIT `cat $RESQUE_PID` - echo "$NAME." - ;; - restart) - echo -n "Restarting $DESC: " - kill -USR2 `cat $PID` - echo "$NAME." - ;; - reload) - echo -n "Reloading $DESC configuration: " - kill -HUP `cat $PID` - echo "$NAME." - ;; - *) - echo "Usage: $NAME {start|stop|restart|reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/lib/support/nginx-gitlab b/lib/support/nginx-gitlab deleted file mode 100644 index fa15d2018c4..00000000000 --- a/lib/support/nginx-gitlab +++ /dev/null @@ -1,33 +0,0 @@ -upstream gitlab { - server unix:/home/gitlab/gitlab/tmp/sockets/gitlab.socket; -} - -server { - listen YOUR_SERVER_IP:80; # e.g., listen 192.168.1.1:80; - server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com; - root /home/gitlab/gitlab/public; - - # individual nginx logs for this gitlab vhost - access_log /var/log/nginx/gitlab_access.log; - error_log /var/log/nginx/gitlab_error.log; - - location / { - # serve static files from defined root folder;. - # @gitlab is a named location for the upstream fallback, see below - try_files $uri $uri/index.html $uri.html @gitlab; - } - - # if a file, which is not found in the root folder is requested, - # then the proxy pass the request to the upsteam (gitlab unicorn) - location @gitlab { - proxy_redirect off; - - # you need to change this to "https", if you set "ssl" directive to "on" - proxy_set_header X-FORWARDED_PROTO http; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - - proxy_pass http://gitlab; - } -} - diff --git a/lib/tasks/bulk_import.rake b/lib/tasks/bulk_import.rake index 607250f1770..5941eadb970 100644 --- a/lib/tasks/bulk_import.rake +++ b/lib/tasks/bulk_import.rake @@ -1,8 +1,9 @@ IMPORT_DIRECTORY = 'import_projects' -REPOSITORY_DIRECTORY = '/home/git/repositories' desc "Imports existing Git repos into new projects from the import_projects folder" task :import_projects, [:email] => :environment do |t, args| + REPOSITORY_DIRECTORY = Gitlab.config.git_base_path + user_email = args.email repos_to_import = Dir.glob("#{IMPORT_DIRECTORY}/*") diff --git a/lib/tasks/gitlab/write_hook.rake b/lib/tasks/gitlab/write_hook.rake index 9ec9c8383e2..5e9fc8eb3d1 100644 --- a/lib/tasks/gitlab/write_hook.rake +++ b/lib/tasks/gitlab/write_hook.rake @@ -1,6 +1,6 @@ namespace :gitlab do namespace :gitolite do - desc "GITLAB | Write GITLAB hook for gitolite" + desc "GITLAB | Write GitLab hook for gitolite" task :write_hooks => :environment do gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") gitlab_hooks_path = Rails.root.join("lib", "hooks") diff --git a/spec/factories.rb b/spec/factories.rb index 2e4acf39461..92790a3fdb7 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -11,6 +11,9 @@ module Factory def self.new(type, *args) FactoryGirl.build(type, *args) end + def self.attributes(type, *args) + FactoryGirl.attributes_for(type, *args) + end end FactoryGirl.define do @@ -28,7 +31,7 @@ FactoryGirl.define do email { Faker::Internet.email } name password "123456" - password_confirmation "123456" + password_confirmation { password } trait :admin do admin true diff --git a/spec/factories_spec.rb b/spec/factories_spec.rb index 5760aad423b..5ccc17bddc9 100644 --- a/spec/factories_spec.rb +++ b/spec/factories_spec.rb @@ -1,91 +1,9 @@ require 'spec_helper' -describe "Factories" do - describe 'User' do - it "builds a valid instance" do - build(:user).should be_valid - end - - it "builds a valid admin instance" do - build(:admin).should be_valid - end - end - - describe 'Project' do - it "builds a valid instance" do - build(:project).should be_valid - end - end - - describe 'Issue' do - it "builds a valid instance" do - build(:issue).should be_valid - end - - it "builds a valid closed instance" do - build(:closed_issue).should be_valid - end - end - - describe 'MergeRequest' do - it "builds a valid instance" do - build(:merge_request).should be_valid - end - end - - describe 'Note' do - it "builds a valid instance" do - build(:note).should be_valid - end - end - - describe 'Event' do - it "builds a valid instance" do - build(:event).should be_valid - end - end - - describe 'Key' do - it "builds a valid instance" do - build(:key).should be_valid - end - - it "builds a valid deploy key instance" do - build(:deploy_key).should be_valid - end - - it "builds a valid personal key instance" do - build(:personal_key).should be_valid - end - end - - describe 'Milestone' do - it "builds a valid instance" do - build(:milestone).should be_valid - end - end - - describe 'SystemHook' do - it "builds a valid instance" do - build(:system_hook).should be_valid - end - end - - describe 'ProjectHook' do - it "builds a valid instance" do - build(:project_hook).should be_valid - end - end - - describe 'Wiki' do - it "builds a valid instance" do - build(:wiki).should be_valid - end - end - - describe 'Snippet' do - it "builds a valid instance" do - build(:snippet).should be_valid +FactoryGirl.factories.map(&:name).each do |factory_name| + describe "#{factory_name} factory" do + it 'should be valid' do + build(factory_name).should be_valid end end end diff --git a/spec/helpers/gitlab_markdown_helper_spec.rb b/spec/helpers/gitlab_markdown_helper_spec.rb index 00164e0cdd7..3e7a02c6e35 100644 --- a/spec/helpers/gitlab_markdown_helper_spec.rb +++ b/spec/helpers/gitlab_markdown_helper_spec.rb @@ -208,6 +208,46 @@ describe GitlabMarkdownHelper do gfm(actual).should match(expected) end end + + describe "emoji" do + it "matches at the start of a string" do + gfm(":+1:").should match(/<img/) + end + + it "matches at the end of a string" do + gfm("This gets a :-1:").should match(/<img/) + end + + it "matches with adjacent text" do + gfm("+1 (:+1:)").should match(/<img/) + end + + it "has a title attribute" do + gfm(":-1:").should match(/title=":-1:"/) + end + + it "has an alt attribute" do + gfm(":-1:").should match(/alt=":-1:"/) + end + + it "has an emoji class" do + gfm(":+1:").should match('class="emoji"') + end + + it "sets height and width" do + actual = gfm(":+1:") + actual.should match(/width="20"/) + actual.should match(/height="20"/) + end + + it "keeps whitespace intact" do + gfm("This deserves a :+1: big time.").should match(/deserves a <img.+\/> big time/) + end + + it "ignores invalid emoji" do + gfm(":invalid-emoji:").should_not match(/<img/) + end + end end describe "#link_to_gfm" do diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index cf50b429f23..4a9f142e50d 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -24,7 +24,7 @@ describe Notify do end it 'has the correct subject' do - should have_subject /^gitlab \| Account was created for you$/ + should have_subject /^gitlab \| Account was created for you$/i end it 'contains the new user\'s login name' do diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb index 69829a4d13d..ca6307e72b1 100644 --- a/spec/models/issue_spec.rb +++ b/spec/models/issue_spec.rb @@ -7,6 +7,7 @@ describe Issue do describe "Validation" do it { should ensure_length_of(:description).is_within(0..2000) } + it { should ensure_inclusion_of(:closed).in_array([true, false]) } end describe 'modules' do diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index fa15fc8f560..f0f0f88303f 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -9,6 +9,7 @@ describe Milestone do describe "Validation" do it { should validate_presence_of(:title) } it { should validate_presence_of(:project_id) } + it { should ensure_inclusion_of(:closed).in_array([true, false]) } end let(:milestone) { Factory :milestone } diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index ffaf442d9a4..dddfd34c499 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -35,6 +35,16 @@ describe Note do note = Factory(:note, note: "-1 for this") note.should_not be_upvote end + + it "recognizes a +1 emoji as a vote" do + note = build(:note, note: ":+1: for this") + note.should be_upvote + end + + it "recognizes a neutral emoji note" do + note = build(:note, note: "I would :+1: this, but I don't want to") + note.should_not be_upvote + end end let(:project) { create(:project) } diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 5add7ff88a9..756f69ded56 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -37,6 +37,10 @@ describe Project do # TODO: Formats it { should validate_presence_of(:owner) } + it { should ensure_inclusion_of(:issues_enabled).in_array([true, false]) } + it { should ensure_inclusion_of(:wall_enabled).in_array([true, false]) } + it { should ensure_inclusion_of(:merge_requests_enabled).in_array([true, false]) } + it { should ensure_inclusion_of(:wiki_enabled).in_array([true, false]) } it "should not allow new projects beyond user limits" do project.stub(:owner).and_return(double(can_create_project?: false, projects_limit: 1)) @@ -239,7 +243,7 @@ describe Project do end end - describe :update_merge_requests do + describe :update_merge_requests do let(:project) { Factory :project } before do @@ -259,7 +263,7 @@ describe Project do @merge_request.closed.should be_true end - it "should update merge request commits with new one if pushed to source branch" do + it "should update merge request commits with new one if pushed to source branch" do @merge_request.last_commit.should == nil project.update_merge_requests("8716fc78f3c65bbf7bcf7b574febd583bc5d2812", "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a", "refs/heads/master", @key.user) @merge_request.reload diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index ca34f07df7f..081767543e2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -31,36 +31,46 @@ describe User do it { should respond_to(:private_token) } end - it "should return valid identifier" do - user = User.new(email: "test@mail.com") - user.identifier.should == "test_mail_com" - end + describe '#identifier' do + it "should return valid identifier" do + user = build(:user, email: "test@mail.com") + user.identifier.should == "test_mail_com" + end - it "should return identifier without + sign" do - user = User.new(email: "test+foo@mail.com") - user.identifier.should == "test_foo_mail_com" - end + it "should return identifier without + sign" do + user = build(:user, email: "test+foo@mail.com") + user.identifier.should == "test_foo_mail_com" + end - it "should execute callback when force_random_password specified" do - user = User.new(email: "test@mail.com", force_random_password: true) - user.should_receive(:generate_password) - user.save + it "should conform to Gitolite's required identifier pattern" do + user = build(:user, email: "_test@example.com") + user.identifier.should == 'test_example_com' + end end - it "should not generate password by default" do - user = Factory(:user, password: 'abcdefg', password_confirmation: 'abcdefg') - user.password.should == 'abcdefg' - end + describe '#generate_password' do + it "should execute callback when force_random_password specified" do + user = build(:user, force_random_password: true) + user.should_receive(:generate_password) + user.save + end + + it "should not generate password by default" do + user = create(:user, password: 'abcdefg') + user.password.should == 'abcdefg' + end - it "should generate password when forcing random password" do - Devise.stub(:friendly_token).and_return('123456789') - user = User.create(email: "test1@mail.com", force_random_password: true) - user.password.should == user.password_confirmation - user.password.should == '12345678' + it "should generate password when forcing random password" do + Devise.stub(:friendly_token).and_return('123456789') + user = create(:user, password: 'abcdefg', force_random_password: true) + user.password.should == '12345678' + end end - it "should have authentication token" do - user = Factory(:user) - user.authentication_token.should_not == "" + describe 'authentication token' do + it "should have authentication token" do + user = Factory(:user) + user.authentication_token.should_not be_blank + end end end diff --git a/spec/models/users_project_spec.rb b/spec/models/users_project_spec.rb index 3197ba6eb6b..33cb358e7bd 100644 --- a/spec/models/users_project_spec.rb +++ b/spec/models/users_project_spec.rb @@ -10,7 +10,7 @@ describe UsersProject do let!(:users_project) { create(:users_project) } it { should validate_presence_of(:user_id) } - it { should validate_uniqueness_of(:user_id).scoped_to(:project_id) } + it { should validate_uniqueness_of(:user_id).scoped_to(:project_id).with_message(/already exists/) } it { should validate_presence_of(:project_id) } end diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index cc6843ccb66..1373748f50d 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -27,38 +27,40 @@ describe Gitlab::API do describe "POST /projects" do it "should create new project without code and path" do - lambda { - name = "foo" - post api("/projects", user), { - name: name - } - response.status.should == 201 - json_response["name"].should == name - json_response["code"].should == name - json_response["path"].should == name - }.should change{Project.count}.by(1) - end - it "should create new project" do - lambda { - name = "foo" - path = "bar" - code = "bazz" - post api("/projects", user), { - code: code, - path: path, - name: name - } - response.status.should == 201 - json_response["name"].should == name - json_response["path"].should == path - json_response["code"].should == code - }.should change{Project.count}.by(1) - end - it "should not create project without name" do - lambda { - post api("/projects", user) - response.status.should == 404 - }.should_not change{Project.count} + expect { post api("/projects", user), name: 'foo' }.to change {Project.count}.by(1) + end + + it "should not create new project without name" do + expect { post api("/projects", user) }.to_not change {Project.count} + end + + it "should respond with 201 on success" do + post api("/projects", user), name: 'foo' + response.status.should == 201 + end + + it "should repsond with 404 on failure" do + post api("/projects", user) + response.status.should == 404 + end + + it "should assign attributes to project" do + project = Factory.attributes(:project, { + path: 'path', + code: 'code', + description: Faker::Lorem.sentence, + default_branch: 'stable', + issues_enabled: false, + wall_enabled: false, + merge_requests_enabled: false, + wiki_enabled: false + }) + + post api("/projects", user), project + + project.each_pair do |k,v| + json_response[k.to_s].should == v + end end end diff --git a/spec/roles/repository_spec.rb b/spec/roles/repository_spec.rb new file mode 100644 index 00000000000..0fda57a3e27 --- /dev/null +++ b/spec/roles/repository_spec.rb @@ -0,0 +1,72 @@ +require 'spec_helper' + +describe Project, "Repository" do + let(:project) { build(:project) } + + describe "#empty_repo?" do + it "should return true if the repo doesn't exist" do + project.stub(repo_exists?: false, has_commits?: true) + project.should be_empty_repo + end + + it "should return true if the repo has commits" do + project.stub(repo_exists?: true, has_commits?: false) + project.should be_empty_repo + end + + it "should return false if the repo exists and has commits" do + project.stub(repo_exists?: true, has_commits?: true) + project.should_not be_empty_repo + end + end + + describe "#discover_default_branch" do + let(:master) { double(name: 'master') } + let(:stable) { double(name: 'stable') } + + it "returns 'master' when master exists" do + project.should_receive(:heads).and_return([stable, master]) + project.discover_default_branch.should == 'master' + end + + it "returns non-master when master exists but default branch is set to something else" do + project.default_branch = 'stable' + project.should_receive(:heads).and_return([stable, master]) + project.discover_default_branch.should == 'stable' + end + + it "returns a non-master branch when only one exists" do + project.should_receive(:heads).and_return([stable]) + project.discover_default_branch.should == 'stable' + end + + it "returns nil when no branch exists" do + project.should_receive(:heads).and_return([]) + project.discover_default_branch.should be_nil + end + end + + describe "#root_ref" do + it "returns default_branch when set" do + project.default_branch = 'stable' + project.root_ref.should == 'stable' + end + + it "returns 'master' when default_branch is nil" do + project.default_branch = nil + project.root_ref.should == 'master' + end + end + + describe "#root_ref?" do + it "returns true when branch is root_ref" do + project.default_branch = 'stable' + project.root_ref?('stable').should be_true + end + + it "returns false when branch is not root_ref" do + project.default_branch = nil + project.root_ref?('stable').should be_false + end + end +end diff --git a/tmp/.gitkeep b/tmp/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/tmp/.gitkeep |