cursor: pointer;
}
-.merge_request,
+.merge-request,
.issue {
&.today{
background: #EFE;
--- /dev/null
+.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;
+ }
+}
+
-.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;
+ }
+
+ .issue-actions {
+ display: none;
+ position: absolute;
+ top: 10px;
+ right: 2px;
}
- img.avatar {
- width: 32px;
- margin-top: 1px;
+ &:hover {
+ .issue-actions {
+ display: block;
+ }
}
}
}
}
}
-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;
.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;
+ }
+ }
+}
.votes-inline {
display: inline-block;
margin: 0 8px;
- .progress {
- display: inline-block;
- padding: 0 0 2px;
- width: 45px;
- }
}
end
def mr_css_classes mr
- classes = "merge_request"
+ classes = "merge-request"
classes << " closed" if mr.closed?
classes << " merged" if mr.merged?
classes
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')
- 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
= button_tag type: 'submit', class: 'btn' do
%i.icon-search
- %ul.well-list
+ %ul.bordered-list
- @projects.each do |project|
%li.clearfix
.clearfix
- if @has_authorized_projects
- .projects
+ .dashboard
.activities.span8
= render 'activities'
.side.span4
- 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
-.projects
+.dashboard
.activities.span8
= render "events/event_last_push", event: @last_push
= link_to dashboard_path, class: 'btn btn-tiny' do
.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
%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
%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
= 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
= 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
%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
= hidden_field_tag :f, params[:f]
.clearfix
- %ul.well-list
+ %ul.well-list.mr-list
= render @merge_requests
- if @merge_requests.blank?
%li
%h6 Participants:
%div
- @users.each do |user|
- = link_to user, class: 'float-link' do
+ = link_to user do
= link_to_member(@project, user)
.clearfix
%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"
- @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
-.projects
+.dashboard
.activities.span8
= link_to dashboard_path, class: 'btn btn-tiny' do
← To dashboard
.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
.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}