Redesign issues, mr lists
This commit is contained in:
parent
39f4604653
commit
37eeeb9fca
21 changed files with 180 additions and 99 deletions
|
@ -279,7 +279,7 @@ li.note {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
.merge_request,
|
||||
.merge-request,
|
||||
.issue {
|
||||
&.today{
|
||||
background: #EFE;
|
||||
|
|
48
app/assets/stylesheets/sections/dashboard.scss
Normal file
48
app/assets/stylesheets/sections/dashboard.scss
Normal file
|
@ -0,0 +1,48 @@
|
|||
.dashboard {
|
||||
@extend .row;
|
||||
.activities {
|
||||
}
|
||||
|
||||
.side {
|
||||
@extend .pull-right;
|
||||
|
||||
.ui-box {
|
||||
margin: 3px;
|
||||
> .title {
|
||||
padding: 2px 15px;
|
||||
}
|
||||
.nav-projects-tabs li { padding: 0; }
|
||||
.well-list {
|
||||
li { padding: 15px; }
|
||||
.arrow {
|
||||
float: right;
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
.last_activity {
|
||||
padding-top: 5px;
|
||||
display: block;
|
||||
span, strong {
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
}
|
||||
@extend .ui-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dashboard-search-filter {
|
||||
padding:5px;
|
||||
|
||||
.search-text-input {
|
||||
float:left;
|
||||
@extend .span2;
|
||||
}
|
||||
.btn {
|
||||
margin-left: 5px;
|
||||
float:left;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +1,39 @@
|
|||
.issues_table {
|
||||
.issues-list {
|
||||
.issue {
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
|
||||
.issue_check {
|
||||
.issue-title {
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.issue-info {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.issue-check {
|
||||
float: left;
|
||||
padding: 8px 0;
|
||||
padding-right: 8px;
|
||||
min-width: 15px;
|
||||
}
|
||||
|
||||
p {
|
||||
padding-top: 0;
|
||||
padding-bottom: 2px;
|
||||
.issue-labels {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
width: 32px;
|
||||
margin-top: 1px;
|
||||
.issue-actions {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 2px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.issue-actions {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,18 +53,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
li.merge_request {
|
||||
padding: 10px;
|
||||
img.avatar {
|
||||
width: 32px;
|
||||
margin-top: 1px;
|
||||
}
|
||||
p {
|
||||
padding: 0px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.merge-in-progress {
|
||||
@extend .padded;
|
||||
@extend .append-bottom-10;
|
||||
|
@ -97,3 +85,31 @@ li.merge_request {
|
|||
.mr_direction_tip {
|
||||
margin-top:40px
|
||||
}
|
||||
|
||||
.label-branch {
|
||||
@include border-radius(4px);
|
||||
padding: 2px 4px;
|
||||
border: none;
|
||||
font-size: 14px;
|
||||
background: #474D57;
|
||||
color: #fff;
|
||||
font-family: $monospace_font;
|
||||
text-shadow: 0 1px 1px #111;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.mr-list {
|
||||
.merge-request {
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
|
||||
.merge-request-title {
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.merge-request-info {
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,9 +35,4 @@
|
|||
.votes-inline {
|
||||
display: inline-block;
|
||||
margin: 0 8px;
|
||||
.progress {
|
||||
display: inline-block;
|
||||
padding: 0 0 2px;
|
||||
width: 45px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ module MergeRequestsHelper
|
|||
end
|
||||
|
||||
def mr_css_classes mr
|
||||
classes = "merge_request"
|
||||
classes = "merge-request"
|
||||
classes << " closed" if mr.closed?
|
||||
classes << " merged" if mr.merged?
|
||||
classes
|
||||
|
|
|
@ -25,7 +25,7 @@ module ProjectsHelper
|
|||
author_html = ""
|
||||
|
||||
# Build avatar image tag
|
||||
author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av") if opts[:avatar]
|
||||
author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "avatar avatar-inline s16") if opts[:avatar]
|
||||
|
||||
# Build name span tag
|
||||
author_html << content_tag(:span, sanitize(author.name), class: 'author')
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
- project = group[0]
|
||||
%h5.title
|
||||
= link_to_project project
|
||||
%ul.well-list.issues_table
|
||||
%ul.well-list.issues-list
|
||||
- group[1].each do |issue|
|
||||
= render issue
|
||||
%hr
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
= button_tag type: 'submit', class: 'btn' do
|
||||
%i.icon-search
|
||||
|
||||
%ul.well-list
|
||||
%ul.bordered-list
|
||||
- @projects.each do |project|
|
||||
%li.clearfix
|
||||
.clearfix
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- if @has_authorized_projects
|
||||
.projects
|
||||
.dashboard
|
||||
.activities.span8
|
||||
= render 'activities'
|
||||
.side.span4
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
- project = group[0]
|
||||
%h5.title
|
||||
= link_to_project project
|
||||
%ul.well-list.issues_table
|
||||
%ul.well-list.issues-list
|
||||
- group[1].each do |issue|
|
||||
= render issue
|
||||
%hr
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.projects
|
||||
.dashboard
|
||||
.activities.span8
|
||||
= render "events/event_last_push", event: @last_push
|
||||
= link_to dashboard_path, class: 'btn btn-tiny' do
|
||||
|
@ -13,7 +13,7 @@
|
|||
.loading.hide
|
||||
.side.span4
|
||||
- if @group.description.present?
|
||||
.description.well.light
|
||||
.description.well.well-small.light
|
||||
= @group.description
|
||||
= render "projects", projects: @projects
|
||||
.prepend-top-20
|
||||
|
|
|
@ -1,12 +1,37 @@
|
|||
%li{ id: dom_id(issue), class: issue_css_classes(issue), url: project_issue_path(issue.project, issue) }
|
||||
- if controller.controller_name == 'issues'
|
||||
.issue_check
|
||||
.issue-check
|
||||
= check_box_tag dom_id(issue,"selected"), nil, false, 'data-id' => issue.id, class: "selected_issue", disabled: !can?(current_user, :modify_issue, issue)
|
||||
.pull-right
|
||||
|
||||
.issue-title
|
||||
%span.light= "##{issue.id}"
|
||||
= link_to_gfm truncate(issue.title, length: 100), project_issue_path(issue.project, issue), class: "row_title"
|
||||
|
||||
.issue-info
|
||||
- if issue.assignee
|
||||
assigned to #{link_to_member(@project, issue.assignee)}
|
||||
- else
|
||||
unassigned
|
||||
- if issue.votes_count > 0
|
||||
= render 'votes/votes_inline', votable: issue
|
||||
- if issue.notes.any?
|
||||
%span.btn.btn-small.disabled.grouped
|
||||
%i.icon-comment
|
||||
%span
|
||||
%i.icon-comments
|
||||
= issue.notes.count
|
||||
- if issue.milestone_id?
|
||||
%span
|
||||
%i.icon-time
|
||||
= issue.milestone.title
|
||||
.pull-right
|
||||
%small updated #{time_ago_in_words(issue.updated_at)} ago
|
||||
|
||||
.issue-labels
|
||||
- issue.labels.each do |label|
|
||||
%span.label.label-info
|
||||
%i.icon-tag
|
||||
= label.name
|
||||
|
||||
.issue-actions
|
||||
- if can? current_user, :modify_issue, issue
|
||||
- if issue.closed?
|
||||
= link_to 'Reopen', project_issue_path(issue.project, issue, issue: {state_event: :reopen }, status_only: true), method: :put, class: "btn btn-small grouped reopen_issue", remote: true
|
||||
|
@ -16,24 +41,4 @@
|
|||
%i.icon-edit
|
||||
Edit
|
||||
|
||||
- if issue.assignee
|
||||
= image_tag gravatar_icon(issue.assignee_email), class: "avatar"
|
||||
- else
|
||||
= image_tag "no_avatar.png", class: "avatar"
|
||||
|
||||
%p= link_to_gfm truncate(issue.title, length: 100), project_issue_path(issue.project, issue), class: "row_title"
|
||||
|
||||
%span.update-author
|
||||
%span.cdark= "##{issue.id}"
|
||||
- if issue.assignee
|
||||
assigned to #{issue.assignee_name}
|
||||
- else
|
||||
|
||||
|
||||
- if issue.votes_count > 0
|
||||
= render 'votes/votes_inline', votable: issue
|
||||
%span
|
||||
- issue.labels.each do |label|
|
||||
%span.label.label-info
|
||||
%i.icon-tag
|
||||
= label.name
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
= form_tag search_project_issues_path(@project), method: :get, remote: true, id: "issue_search_form", class: 'pull-right' do
|
||||
= hidden_field_tag :project_id, @project.id, { id: 'project_id' }
|
||||
= hidden_field_tag :status, params[:status]
|
||||
= search_field_tag :issue_search, nil, { placeholder: 'Search', class: 'issue_search span3 pull-right neib search-text-input' }
|
||||
= search_field_tag :issue_search, nil, { placeholder: 'Search', class: 'issue_search input-xlarge append-right-10 search-text-input' }
|
||||
|
||||
.clearfix
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
|||
= select_tag(:milestone_id, options_from_collection_for_select([unassigned_filter] + issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
|
||||
= hidden_field_tag :status, params[:status]
|
||||
|
||||
%ul#issues-table.well-list.issues_table
|
||||
%ul#issues-table.well-list.issues-list
|
||||
= render "issues"
|
||||
|
||||
:javascript
|
||||
|
|
|
@ -1,32 +1,29 @@
|
|||
%li{ class: mr_css_classes(merge_request) }
|
||||
.pull-right
|
||||
.left
|
||||
- if merge_request.merged?
|
||||
%span.btn.btn-small.disabled.grouped
|
||||
%strong
|
||||
%i.icon-ok
|
||||
= "MERGED"
|
||||
- if merge_request.notes.any?
|
||||
%span.btn.btn-small.disabled.grouped
|
||||
%i.icon-comment
|
||||
= merge_request.mr_and_commit_notes.count
|
||||
- if merge_request.milestone_id?
|
||||
%span.btn.btn-small.disabled.grouped
|
||||
%i.icon-time
|
||||
= merge_request.milestone.title
|
||||
%span.btn.btn-small.disabled.grouped
|
||||
= merge_request.source_branch
|
||||
→
|
||||
.merge-request-title
|
||||
%span.light= "##{merge_request.id}"
|
||||
= link_to_gfm truncate(merge_request.title, length: 80), project_merge_request_path(merge_request.project, merge_request), class: "row_title"
|
||||
- if merge_request.merged?
|
||||
%small.pull-right
|
||||
%i.icon-ok
|
||||
= "MERGED"
|
||||
- else
|
||||
%span.pull-right
|
||||
%i.icon-angle-right
|
||||
= merge_request.target_branch
|
||||
= image_tag gravatar_icon(merge_request.author_email), class: "avatar"
|
||||
|
||||
%p= link_to_gfm truncate(merge_request.title, length: 80), project_merge_request_path(merge_request.project, merge_request), class: "row_title"
|
||||
|
||||
%span.update-author
|
||||
%small.cdark= "##{merge_request.id}"
|
||||
authored by #{merge_request.author_name}
|
||||
= time_ago_in_words(merge_request.created_at)
|
||||
ago
|
||||
|
||||
.merge-request-info
|
||||
- if merge_request.author
|
||||
authored by #{link_to_member(@project, merge_request.author)}
|
||||
- if merge_request.votes_count > 0
|
||||
= render 'votes/votes_inline', votable: merge_request
|
||||
- if merge_request.notes.any?
|
||||
%span
|
||||
%i.icon-comments
|
||||
= merge_request.mr_and_commit_notes.count
|
||||
- if merge_request.milestone_id?
|
||||
%span
|
||||
%i.icon-time
|
||||
= merge_request.milestone.title
|
||||
|
||||
|
||||
.pull-right
|
||||
%small updated #{time_ago_in_words(merge_request.updated_at)} ago
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
= hidden_field_tag :f, params[:f]
|
||||
.clearfix
|
||||
|
||||
%ul.well-list
|
||||
%ul.well-list.mr-list
|
||||
= render @merge_requests
|
||||
- if @merge_requests.blank?
|
||||
%li
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
%h6 Participants:
|
||||
%div
|
||||
- @users.each do |user|
|
||||
= link_to user, class: 'float-link' do
|
||||
= link_to user do
|
||||
= link_to_member(@project, user)
|
||||
|
||||
.clearfix
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
%span.light
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
%div.prepend-left
|
||||
%div.prepend-left-20
|
||||
= link_to commit.short_id(8), project_commit_path(@project, commit), class: "monospace"
|
||||
–
|
||||
= link_to_gfm truncate(commit.title, length: 70), project_commit_path(@project, commit.id), class: "cdark"
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
- @project = group[0]
|
||||
%h5.title
|
||||
= link_to_project @project
|
||||
%ul.well-list.issues_table
|
||||
%ul.well-list.issues-list
|
||||
- group[1].each do |issue|
|
||||
= render issue
|
||||
%hr
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.projects
|
||||
.dashboard
|
||||
.activities.span8
|
||||
= link_to dashboard_path, class: 'btn btn-tiny' do
|
||||
← To dashboard
|
||||
|
@ -12,7 +12,7 @@
|
|||
.loading.hide
|
||||
.side.span4
|
||||
- if @team.description.present?
|
||||
.description.well.light
|
||||
.description.well.well-small.light
|
||||
= @team.description
|
||||
= render "projects", projects: @projects
|
||||
.prepend-top-20
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
.votes.votes-inline
|
||||
.upvotes= votable.upvotes
|
||||
.progress
|
||||
.bar.bar-success{style: "width: #{votable.upvotes_in_percent}%;"}
|
||||
.bar.bar-danger{style: "width: #{votable.downvotes_in_percent}%;"}
|
||||
.downvotes= votable.downvotes
|
||||
- unless votable.upvotes.zero?
|
||||
.upvotes
|
||||
+ #{votable.upvotes}
|
||||
- unless votable.downvotes.zero?
|
||||
\/
|
||||
- unless votable.downvotes.zero?
|
||||
.downvotes
|
||||
\- #{votable.downvotes}
|
||||
|
|
Loading…
Reference in a new issue