{"push_id":824005641,"size":62,"distinct_size":1,"ref":"refs/heads/list-of-vacation-requests","head":"87fd4727ce6e24ca7727806703f870b0a481592f","before":"521c315fabe90538d311edf72ae3d7f43df3e168","commits":[{"sha":"13879f8fc648581d01ed4cbb859b0e8122f3a0aa","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #1 from CyberCraftInc/create-vacation-request\n\nCreate vacation request","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/13879f8fc648581d01ed4cbb859b0e8122f3a0aa"},{"sha":"f992135febefe86901a5ca92ab502bee3325a925","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #2 from CyberCraftInc/list-of-vacation-requests\n\nList of vacation requests","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/f992135febefe86901a5ca92ab502bee3325a925"},{"sha":"0b3e24badaa2f3615d2c84cbd81f75880c4cc0ff","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement basic functionality.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/0b3e24badaa2f3615d2c84cbd81f75880c4cc0ff"},{"sha":"9db8f8314d406889bfa92881780abeb7b92712ce","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement vacation cancellation.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/9db8f8314d406889bfa92881780abeb7b92712ce"},{"sha":"b85fcc0548f76c5d327970782178116ef58223f2","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Fix team deletion.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/b85fcc0548f76c5d327970782178116ef58223f2"},{"sha":"548adb1ded45a80ea7b27f26e99bf5ab8be90208","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement finishing vacation.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/548adb1ded45a80ea7b27f26e99bf5ab8be90208"},{"sha":"2af3624242af77c57389c6c434cfb1b8907c8188","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement editing details.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/2af3624242af77c57389c6c434cfb1b8907c8188"},{"sha":"9a13e604b20bbe815a52e329c76e80c93fc0d90b","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Prepare for pull request.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/9a13e604b20bbe815a52e329c76e80c93fc0d90b"},{"sha":"2462a98daf36f79993ef325089e804702d19249d","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #3 from CyberCraftInc/vacation-request-details\n\nVacation request details","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/2462a98daf36f79993ef325089e804702d19249d"},{"sha":"2f5b6c2677c751f84cd24a96fd59731471acb4ae","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Add Dashboard IP.\n\nImplement Dashboard core functions.\n\nAdd Approval Request IP.\n\nAdd ApprovalRequests controller.\n\nApply Bootstrap styles.\n\nImplement teams#vacations.\n\nImplement TimeTableByDay.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/2f5b6c2677c751f84cd24a96fd59731471acb4ae"},{"sha":"983560e5749177a1820a7206e36a8b74a345b82e","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Update according to pull request #4 comments.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/983560e5749177a1820a7206e36a8b74a345b82e"},{"sha":"9f0f5ac63f6add16bc2bab1996c42c167b2e9dc6","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #4 from CyberCraftInc/dashboard\n\nDashboard","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/9f0f5ac63f6add16bc2bab1996c42c167b2e9dc6"},{"sha":"a0c0d70b09aad09c9837feb4a528c5d494107834","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement TimeTableByWeek\n\n  The main idea is to use day-like view without weekends.\n  Vacation type is marked with its particular color.\n  Vacation with the 'requested' status is marked with linear gradient.\n\nIntegrate Moment.js and moment-range\n\nAdd getWeekRange() helper\n\nUpdate HTML layout for master page\n\nFix collections fetch logic:\n\n  The 'drawEmptyTable' method inside 'renderVacationsTable' method\n  relays on a list of team members.\n\n  So there must be the following synchronous fetching order:\n    1. Fetch list of members.\n    2. Fetch list of vacations.\n\n  This fix ensures that the list of members is fetched and ready\n  before fetching vacations list.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/a0c0d70b09aad09c9837feb4a528c5d494107834"},{"sha":"ee93f0d23de427932d96889482d6d9e7e0f8c3bd","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #6 from CyberCraftInc/time-table-by-week\n\nImplement TimeTableByWeek","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/ee93f0d23de427932d96889482d6d9e7e0f8c3bd"},{"sha":"f2db91566e17d71d711c7cc4ffbd0c9bddb3057b","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Update after code review + rebase\n\nUpdate routes as follows:\n  \"team_members/:team_id\"         ->  \"teams/:id/members\",\n  \"team_vacations/:team_id\"       ->  \"teams/:id/vacations\".\n  \"requested_vacations/:user_id\"  ->  \"/users/:id/requested_vacations\".\n\nUpdate dynamic routes for the BB collections accordingly\n\nMove and rename Rails method controller as follows:\n  \"vacation_requests#requested\"   ->  \"users#requested_vacations\".\n\nImprove requested_accepted_inprogress scope\n\nImprove SQL query for 'teams#vacations'\n\nRebase from master\n\nUpdate TimeTableByWeek#markVacation after rebase","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/f2db91566e17d71d711c7cc4ffbd0c9bddb3057b"},{"sha":"775efb82f4f41cbc74286a3ac42249c0e63e24a4","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #7 from CyberCraftInc/dashboard\n\nUpdate after code review + rebase","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/775efb82f4f41cbc74286a3ac42249c0e63e24a4"},{"sha":"b0506bc2352df1a645d1a74e42ad55a3e58480b0","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Implement TimeTables\n\nTimeTables view is able to render provided list of teams.\nAll teams are rendered according to selected date range and view type.\nDate range can be specified with HTML input controls.\nView type  can be specified with HTML select control.\nAll the time tables are updated on date range and view type updates.\n\nImprovements:\n  Extract joins in 'teams#vacations' into 'VacationRequest' model scope.\n  Remove joining of 'teams' in 'teams#vacations'.\n\nIntegrations:\n  jQuery load mask plugin","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/b0506bc2352df1a645d1a74e42ad55a3e58480b0"},{"sha":"f23627b85657e55534cb82098fb416132ba4f26e","author":{"email":"f9c77481a11f4826c3dd2adfbb7dd639eaaf6376@gmail.com","name":"Andrii Lazarchuk"},"message":"Merge pull request #9 from CyberCraftInc/dashboard\n\nImplement TimeTables view","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/f23627b85657e55534cb82098fb416132ba4f26e"},{"sha":"36dc6c902b2d3d79c084154546071bbd22500550","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Add RSpec tests\n\nIntegrate the following tools:\n - FactoryGirl\n - FFaker\n - RSpec\n - shoulda-matchers\n\nAdd tests and validations for the following models:\n  - ApprovalRequest\n  - AvailableVacation\n  - DayOff\n  - Team\n  - TeamRole\n  - VacationRequest\n\nAdd the following factories:\n  - available_vacations\n  - day_offs\n  - team_roles\n  - teams\n  - users\n  - vacation_requests\n\nAdd tests for the 'TeamsController'\n\nAdd RSpec 'unauthorized request' shared example\n\nAdd the following custom RSpec matchers:\n  - have_json_attribute\n  - match_records_by_ids\n\nDeliver following improvements:\n  - Add 'dependent' option to\n  - Add Devise to RSpec controller context\n  - Configure FactoryGirl to allow short methods\n  - Mute RSpec backtraces\n\nAdd 'dependent: :destroy' option to 'User' model relations\n\nUpdate 'TeamsController' so that it responds to JSON only\n\nRefactor TeamsController\n\n  ActiveRecord::find_by! is used instead of ActiveRecord::find.\n\n  It is handy to handle ActiveRecord::RecordNotFound exception\n  with 'rescue_from' method from Rails.\n  As a result, all the related checks in action methods can be removed.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/36dc6c902b2d3d79c084154546071bbd22500550"},{"sha":"b36b067524bc355b441903477fc02bc0fc988ba6","author":{"email":"a15185dab5128c36f7276615f2de8f7c0d8c15a5@gmail.com","name":"Oleg «Eleidan» Kulyk"},"message":"Add Jasmine tests\n\nIntegrate the following tools:\n  - Backbone.Validation\n  - Jasmine-jQuery\n\nAdd tests and validations for the following models:\n  - Team\n\nAdd tests for the following collections:\n  - Teams\n\nAdd tests for the following views:\n  - Team\n  - Teams\n\nUpdate BB Team view to reflect the following changes:\n  - Team view should validate user input\n  - Team view should not send any request to a server\n    when name value is not changed.\n\nUpdate BB Teams view to reflect the following changes:\n  - There should be no HTML ID attributes in layout.\n    Any ID is to be replaced with HTML5 NAME attribute.\n  - It seems that it is better to pass a Backbone.Collection instance\n    to a Backbone.View initializer. This approach allows to easily\n    initialize views with fixtures, without server requests.\n  - Do not add invalid models to collection.\n\nExtend Backbone.Model with Backbone.Validation\n  Backbone.Model is extended with Backbone.Validation.mixin to provide\n  validation facilities to models.","distinct":false,"url":"https://api.github.com/repos/CyberCraftInc/vacation_system/commits/b36b067524bc355b441903477fc02bc0fc988ba6"}]}