Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ end
gem 'rails', '~> 5.1.4'
gem 'bootstrap-sass'
gem 'will_paginate', '~> 3.1.0'
gem 'faker', '1.7.3'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
Expand Down
3 changes: 3 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ GEM
diff-lcs (1.3)
erubi (1.7.0)
execjs (2.7.0)
faker (1.7.3)
i18n (~> 0.5)
ffi (1.9.21)
globalid (0.4.1)
activesupport (>= 4.2.0)
Expand Down Expand Up @@ -214,6 +216,7 @@ DEPENDENCIES
byebug
capybara (~> 2.13)
coffee-rails (~> 4.2)
faker (= 1.7.3)
jbuilder (~> 2.5)
jquery-rails
listen (>= 3.0.5, < 3.2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,4 +250,66 @@
background-color: #fafbfc;
padding: 80px 40px 80px 40px;
text-align: center;
}

.repo-new-heading {
margin-top: 30px;
font-size: 24px;
}

.new-repository {
width: 700px;
}

.repo-new-heading-comment {
color: #586069;
padding-bottom: 20px;
margin-bottom: 40px;
border-bottom: 1px solid #dfe2e5;
}

.list-repositories {
font-size: 24px;
li {
list-style: none;
border-bottom: 1px solid #dfe2e5;
padding-bottom: 20px;
padding-top: 10px;
}
}

.repository-created-at {
font-size: 14px !important;
}

.new-button {
border-bottom: 1px solid #dfe2e5;
height: 45px;
button {
text-align: center;
width: 60px;
height: 33px !important;
font-weight: 600!important;
vertical-align: middle;
cursor: pointer;
border: 1px solid rgba(27,31,35,0.2);
border-radius: 5px;
-webkit-appearance: none;
-moz-appearance: none;
background-color: #28a745;
background-image: linear-gradient(-180deg, #34d058 0%, #28a745 90%);
a {
color: #fff;
}
}
}

.new-repo-form {
input {
width: 250px;
height: 30x;
}
.btn {
width: 200px !important;
}
}
16 changes: 15 additions & 1 deletion app/assets/stylesheets/users.scss
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,9 @@ input {
position: inherit;
font-size: 12px;
}
a {
color: #dfe2e5;
}
}

.side-bar-loadmore {
Expand Down Expand Up @@ -366,7 +369,14 @@ input {
}

.list-li-repos {
padding-left: 10px;
li {
list-style: none;
padding-left: 10px;
font-weight: bold;
padding-top: 5px;
padding-bottom: 5px;
border-bottom: 1px solid #dfe2e5;
}
}

.user-photo {
Expand Down Expand Up @@ -435,8 +445,12 @@ input {
width: 313px;
height: 110px;
margin-bottom: 18px;
margin-left: 5px;
padding-left: 15px;
padding-top: 15px;
li {
list-style: none;
}
}

.calendar-box {
Expand Down
15 changes: 15 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include SessionsHelper

def show
@user = User.find(params[:id])
@repositories = current_user.repositories.paginate(page: params[:page])
end

private

def logged_in_user
unless logged_in?
store_location
flash[:danger] = "Please log in."
redirect_to login_url
end
end
end
4 changes: 4 additions & 0 deletions app/controllers/pull_requests_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
class PullRequestsController < ApplicationController
def index
@repositories = current_user.repositories.paginate(page: params[:page])
end

def show
end
end
44 changes: 44 additions & 0 deletions app/controllers/repositories_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
class RepositoriesController < ApplicationController
before_action :logged_in_user, only: [:create, :destroy]
before_action :correct_user, only: :destroy

def index
@repositories = current_user.repositories.paginate(page: params[:page])
end

def new
@repository = Repository.new
end

def show
@repository = Repository.find(params[:id])
end

def create
@repository = current_user.repositories.build(repository_params)
if @repository.save
flash[:success] = "Repository created"
redirect_to @repository
end
end

def edit
end

def destroy
@repository.destroy
flash[:success] = "Repository deleted"
redirect_to request.referrer || root_url
end

private

def repository_params
params.require(:repository).permit(:title)
end

def correct_user
@repository = current_user.repositories.find_by(id: params[:id])
redirect_to root_url if @repository.nil?
end
end
16 changes: 0 additions & 16 deletions app/controllers/repository_controller.rb

This file was deleted.

26 changes: 11 additions & 15 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@ class UsersController < ApplicationController
before_action :logged_in_user, only: [:edit, :update, :destroy]
before_action :correct_user, only: [:edit, :update]

def profile
@repositories = current_user.repositories.paginate(page: params[:page])
end

def show
@user = User.find(params[:id])
@repositories = @user.repositories.paginate(page: params[:page])
@repositories = current_user.repositories.paginate(page: params[:page])
end

def new
Expand Down Expand Up @@ -44,20 +48,12 @@ def destroy

private

def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end

def logged_in_user
unless logged_in?
store_location
flash[:danger] = "Please log in."
redirect_to login_url
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
end

def correct_user
@user = User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
end
def correct_user
@user = User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
end
end
3 changes: 2 additions & 1 deletion app/models/pull_request.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
class PullRequest < ApplicationRecord
end
belongs_to :user
end
1 change: 1 addition & 0 deletions app/models/repository.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ class Repository < ApplicationRecord
belongs_to :user
default_scope -> { order(created_at: :desc) }
validates :user_id, presence: true
validates :title, presence: true, length: { maximum: 100 }
end
4 changes: 2 additions & 2 deletions app/views/layouts/_repo_heading.html.erb
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<div class="repo-heading">
<div class="container">
<div class="name-of-repository">
<%= link_to current_user.name %> / <%= link_to "'name of repository'", "#" %>
<%= link_to current_user.name, current_user %> / <%= link_to @repository.title, @repository %>
<button class="float-right">Fork</button>
<button class="float-right">Star</button>
<button class="float-right">Watch</button>
</div>
<ul class="repository-tabs">
<li><%= link_to "Code", repository_path %></li>
<li><%= link_to "Code", "#" %></li>
<li><%= link_to "Issues", issues_path %></li>
<li><%= link_to "Pull requests", pull_requests_path %></li>
<li><%= link_to "Projects", "#" %></li>
Expand Down
47 changes: 47 additions & 0 deletions app/views/repositories/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<div class="container show-activity">
<div class="row">
<div class="col-md-3">
<div class="user-photo">
</div>
<div class="user-name">
User name
</div>
<div class="user-nickname">
<%= current_user.name %>
</div>
<div class="user-description">
Description
</div>
<div class="user-email">
<%= current_user.email %>
</div>
<div>
<strong>Organizations</strong>
</div>
</div>
<div class="col-md-8">
<div class="user-info-block">
<ul class="user-info">
<li><%= link_to "Overview", '/profile' %></li>
<li><%= link_to "Repositories", '/index' %></li>
<li><%= link_to "Stars", '#' %></li>
<li><%= link_to "Followers", '#' %></li>
<li><%= link_to "Following", '#' %></li>
</ul>
</div>
<div class="new-button">
<button style="float: right"><%= link_to("New", '/repositories/new' ) %></button>
</div>
<div>
<ul class="list-repositories">
<% @repositories.each do |repository| %>
<li>
<%= link_to repository.title, repository %>
<div class="repository-created-at"><%= time_ago_in_words(repository.created_at) %></div>
</li>
<% end %>
</ul>
</div>
</div>
</div>
</div>
12 changes: 12 additions & 0 deletions app/views/repositories/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<div class="container new-repository">
<div class="repo-new-heading">Create a new repository</div>
<div class="repo-new-heading-comment">A repository contains all the fields for your project, including a revision history</div>
<div class="new-repo-form">
<%= form_for(@repository) do |f| %>
<%= f.label 'Repository name' %>
<%= f.text_field :title, class: 'form-control' %>
<div>Great repository names are short and memorable</div>
<%= f.submit "Create repository", class: "btn btn-primary" %>
<% end %>
</div>
</div>
Loading