Commit 8513526bfe7fb4a323cfaeb8ebc22933808400c1
Exists in
master
and in
4 other branches
Merge branch 'dev'
Showing
37 changed files
with
366 additions
and
334 deletions
Show diff stats
app/assets/javascripts/note.js
@@ -42,8 +42,10 @@ replace: | @@ -42,8 +42,10 @@ replace: | ||
42 | 42 | ||
43 | prepend: | 43 | prepend: |
44 | function(id, html) { | 44 | function(id, html) { |
45 | - this.last_id = id; | ||
46 | - $("#notes-list").prepend(html); | 45 | + if(id != this.last_id) { |
46 | + this.last_id = id; | ||
47 | + $("#notes-list").prepend(html); | ||
48 | + } | ||
47 | }, | 49 | }, |
48 | 50 | ||
49 | getNew: | 51 | getNew: |
app/assets/javascripts/projects.js
@@ -40,3 +40,19 @@ $(document).ready(function(){ | @@ -40,3 +40,19 @@ $(document).ready(function(){ | ||
40 | function focusSearch() { | 40 | function focusSearch() { |
41 | $("#search").focus(); | 41 | $("#search").focus(); |
42 | } | 42 | } |
43 | + | ||
44 | +function taggifyForm(){ | ||
45 | + var tag_field = $('#tag_field').tagify(); | ||
46 | + | ||
47 | + tag_field.tagify('inputField').autocomplete({ | ||
48 | + source: '/tags.json' | ||
49 | + }); | ||
50 | + | ||
51 | + | ||
52 | + $('form').submit( function() { | ||
53 | + var tag_field = $('#tag_field') | ||
54 | + tag_field.val( tag_field.tagify('serialize') ); | ||
55 | + return true; | ||
56 | + }); | ||
57 | +} | ||
58 | + |
app/assets/stylesheets/projects.css.scss
@@ -276,6 +276,9 @@ input.ssh_project_url { | @@ -276,6 +276,9 @@ input.ssh_project_url { | ||
276 | /** FORM INPUTS **/ | 276 | /** FORM INPUTS **/ |
277 | 277 | ||
278 | .user_new, | 278 | .user_new, |
279 | +.new_key, | ||
280 | +.new_issue, | ||
281 | +.new_note, | ||
279 | .edit_user, | 282 | .edit_user, |
280 | .new_project, | 283 | .new_project, |
281 | .new_snippet, | 284 | .new_snippet, |
@@ -440,67 +443,6 @@ input.ssh_project_url { | @@ -440,67 +443,6 @@ input.ssh_project_url { | ||
440 | padding: 10px; | 443 | padding: 10px; |
441 | } | 444 | } |
442 | 445 | ||
443 | -.recent_message_parent { | ||
444 | - img { | ||
445 | - padding-right:10px; | ||
446 | - } | ||
447 | - | ||
448 | - float: left; | ||
449 | - margin: 0 20px 20px 0px; | ||
450 | - padding: 5px 0px;; | ||
451 | - width: 420px; | ||
452 | - | ||
453 | - &.dash_wall{ | ||
454 | - border-bottom: 2px solid orange; | ||
455 | - span { | ||
456 | - background: orange; | ||
457 | - color:black; | ||
458 | - } | ||
459 | - } | ||
460 | - | ||
461 | - &.dash_issue{ | ||
462 | - border-bottom: 2px solid #ffbbbb; | ||
463 | - span { | ||
464 | - background: #ffbbbb; | ||
465 | - } | ||
466 | - } | ||
467 | - &.dash_commit{ | ||
468 | - border-bottom: 2px solid #bbbbff; | ||
469 | - | ||
470 | - span{ | ||
471 | - background: #bbbbff; | ||
472 | - } | ||
473 | - } | ||
474 | - | ||
475 | - &.dash_snippet{ | ||
476 | - border-bottom: 2px solid #bbffbb; | ||
477 | - | ||
478 | - span{ | ||
479 | - background: #bbffbb; | ||
480 | - } | ||
481 | - } | ||
482 | - | ||
483 | - span{ | ||
484 | - border: 1px solid #aaa; | ||
485 | - color:black; | ||
486 | - padding:1px 4px; | ||
487 | - } | ||
488 | - | ||
489 | - h4 { | ||
490 | - margin-bottom:3px; | ||
491 | - } | ||
492 | - | ||
493 | -} | ||
494 | -.commit, | ||
495 | -.message{ | ||
496 | - .author { | ||
497 | - background: #eaeaea; | ||
498 | - color: #333; | ||
499 | - border: 1px solid #aaa; | ||
500 | - padding:1px 2px; | ||
501 | - margin-right:5px; | ||
502 | - } | ||
503 | -} | ||
504 | 446 | ||
505 | /* Note textare */ | 447 | /* Note textare */ |
506 | #note_note { | 448 | #note_note { |
@@ -662,6 +604,8 @@ table.highlighttable pre{ | @@ -662,6 +604,8 @@ table.highlighttable pre{ | ||
662 | margin-right:15px; | 604 | margin-right:15px; |
663 | } | 605 | } |
664 | } | 606 | } |
607 | +.filter .left { margin-right:15px; } | ||
608 | + | ||
665 | 609 | ||
666 | .cgray { color:gray; } | 610 | .cgray { color:gray; } |
667 | .cred { color:#D12F19; } | 611 | .cred { color:#D12F19; } |
@@ -676,6 +620,30 @@ body.project-page table .commit { | @@ -676,6 +620,30 @@ body.project-page table .commit { | ||
676 | } | 620 | } |
677 | } | 621 | } |
678 | 622 | ||
623 | +#notes-list .note .delete-note { display:none; } | ||
624 | +#notes-list .note:hover .delete-note { display:block; } | ||
625 | + | ||
626 | +#issues-table-holder .issue .action-links { | ||
627 | + display:none; | ||
628 | + a { | ||
629 | + margin-left:10px; | ||
630 | + } | ||
631 | +} | ||
632 | + | ||
633 | +.issue-number { | ||
634 | + float: left; | ||
635 | + border-radius: 5px; | ||
636 | + text-shadow: none; | ||
637 | + background: rgba(0, 0, 0, 0.12); | ||
638 | + text-align: center; | ||
639 | + padding: 14px 8px; | ||
640 | + width: 40px; | ||
641 | + margin-right: 10px; | ||
642 | + color: #444; | ||
643 | +} | ||
644 | + | ||
645 | +#issues-table-holder .issue:hover .action-links { display:block; } | ||
646 | + | ||
679 | body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | 647 | body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} |
680 | body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | 648 | body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} |
681 | body.project-page #notes-list .note img{float: left; margin-right: 10px;} | 649 | body.project-page #notes-list .note img{float: left; margin-right: 10px;} |
@@ -683,3 +651,33 @@ body.project-page #notes-list .note span.note-title{display: block;} | @@ -683,3 +651,33 @@ body.project-page #notes-list .note span.note-title{display: block;} | ||
683 | body.project-page #notes-list .note span.note-title{margin-bottom: 10px} | 651 | body.project-page #notes-list .note span.note-title{margin-bottom: 10px} |
684 | body.project-page #notes-list .note span.note-author{color: #999; font-weight: normal; font-style: italic;} | 652 | body.project-page #notes-list .note span.note-author{color: #999; font-weight: normal; font-style: italic;} |
685 | body.project-page #notes-list .note span.note-author strong{font-weight: bold; font-style: normal;} | 653 | body.project-page #notes-list .note span.note-author strong{font-weight: bold; font-style: normal;} |
654 | + | ||
655 | + | ||
656 | +/** NEW PROJECT **/ | ||
657 | +.new-project-hodler { | ||
658 | + .icon span { | ||
659 | + background-position: -31px -70px; | ||
660 | + } | ||
661 | + td { | ||
662 | + border-bottom: 1px solid #DEE2E3; | ||
663 | + } | ||
664 | +} | ||
665 | + | ||
666 | +//.message .note-title p { margin-bottom:0px; } | ||
667 | + | ||
668 | +.commit, | ||
669 | +.message { | ||
670 | + .title { | ||
671 | + color:#666; | ||
672 | + a { | ||
673 | + color:#666 !important; | ||
674 | + } | ||
675 | + p { | ||
676 | + margin-top:0px; | ||
677 | + } | ||
678 | + } | ||
679 | + | ||
680 | + .author { | ||
681 | + color: #999 | ||
682 | + } | ||
683 | +} |
app/assets/stylesheets/style.scss
@@ -87,6 +87,17 @@ h2{margin: 1.5em 0} | @@ -87,6 +87,17 @@ h2{margin: 1.5em 0} | ||
87 | /* Forms */ | 87 | /* Forms */ |
88 | input[type="text"]:focus, input[type="password"]:focus { outline: none; } | 88 | input[type="text"]:focus, input[type="password"]:focus { outline: none; } |
89 | input.text{border: 1px solid #ccc; border-radius: 4px; display: block; padding: 10px} | 89 | input.text{border: 1px solid #ccc; border-radius: 4px; display: block; padding: 10px} |
90 | + | ||
91 | +.form-row{ | ||
92 | + padding: 0px 0px 10px 0px; | ||
93 | +} | ||
94 | + | ||
95 | +.form-row label{ | ||
96 | + font-weight:bold; | ||
97 | + display: inline-block; | ||
98 | + padding: 0px 0px 5px 0px; | ||
99 | +} | ||
100 | + | ||
90 | /* eo Forms */ | 101 | /* eo Forms */ |
91 | 102 | ||
92 | /* Tables */ | 103 | /* Tables */ |
app/assets/stylesheets/tags.css.css
@@ -27,4 +27,18 @@ | @@ -27,4 +27,18 @@ | ||
27 | color: #FFF; | 27 | color: #FFF; |
28 | text-shadow: none; | 28 | text-shadow: none; |
29 | font-weight: bold; | 29 | font-weight: bold; |
30 | +} | ||
31 | + | ||
32 | + | ||
33 | +.medium-tags a{ | ||
34 | + font-size: 12px; | ||
35 | + | ||
36 | + display: inline-block; | ||
37 | + padding: 3px 4px 2px 4px; | ||
38 | + margin: 0px 7px 8px 0px; | ||
39 | + border-radius: 3px; | ||
40 | + background-color: #72bbdf; | ||
41 | + color: #FFF; | ||
42 | + text-shadow: none; | ||
43 | + font-weight: bold; | ||
30 | } | 44 | } |
31 | \ No newline at end of file | 45 | \ No newline at end of file |
app/controllers/issues_controller.rb
@@ -47,6 +47,7 @@ class IssuesController < ApplicationController | @@ -47,6 +47,7 @@ class IssuesController < ApplicationController | ||
47 | def create | 47 | def create |
48 | @issue = @project.issues.new(params[:issue]) | 48 | @issue = @project.issues.new(params[:issue]) |
49 | @issue.author = current_user | 49 | @issue.author = current_user |
50 | + | ||
50 | if @issue.save && @issue.assignee != current_user | 51 | if @issue.save && @issue.assignee != current_user |
51 | Notify.new_issue_email(@issue).deliver | 52 | Notify.new_issue_email(@issue).deliver |
52 | end | 53 | end |
app/helpers/dashboard_helper.rb
@@ -12,7 +12,7 @@ module DashboardHelper | @@ -12,7 +12,7 @@ module DashboardHelper | ||
12 | when "Commit" then project_commit_path(project, :id => note.noteable_id) | 12 | when "Commit" then project_commit_path(project, :id => note.noteable_id) |
13 | else wall_project_path(project) | 13 | else wall_project_path(project) |
14 | end | 14 | end |
15 | - else "#" | 15 | + else wall_project_path(project) |
16 | end | 16 | end |
17 | rescue | 17 | rescue |
18 | "#" | 18 | "#" |
@@ -23,7 +23,7 @@ module DashboardHelper | @@ -23,7 +23,7 @@ module DashboardHelper | ||
23 | when "Note" then markdown(object.note) | 23 | when "Note" then markdown(object.note) |
24 | when "Issue" then object.title | 24 | when "Issue" then object.title |
25 | when "Grit::Commit" then object.safe_message | 25 | when "Grit::Commit" then object.safe_message |
26 | - else "" | 26 | + else return "Project Wall" |
27 | end | 27 | end |
28 | "[#{object.class.name}] #{truncate(sanitize(title, :tags => []), :length => 60)} " | 28 | "[#{object.class.name}] #{truncate(sanitize(title, :tags => []), :length => 60)} " |
29 | end | 29 | end |
app/helpers/issues_helper.rb
1 | module IssuesHelper | 1 | module IssuesHelper |
2 | + def sort_class | ||
3 | + if can?(current_user, :admin_issue, @project) && (!params[:f] || params[:f] == "0") | ||
4 | + "handle" | ||
5 | + end | ||
6 | + end | ||
7 | + | ||
8 | + def project_issues_filter_path project, params = {} | ||
9 | + params[:f] ||= cookies['issue_filter'] | ||
10 | + project_issues_path project, params | ||
11 | + end | ||
2 | end | 12 | end |
app/views/admin/projects/_form.html.haml
1 | = form_for [:admin, @admin_project] do |f| | 1 | = form_for [:admin, @admin_project] do |f| |
2 | -if @admin_project.errors.any? | 2 | -if @admin_project.errors.any? |
3 | #error_explanation | 3 | #error_explanation |
4 | - %h2= "#{pluralize(@admin_project.errors.count, "error")} prohibited this admin_project from being saved:" | 4 | + %h2= "#{pluralize(@admin_project.errors.count, "error")} prohibited this admin_project from being saved:" |
5 | %ul | 5 | %ul |
6 | - @admin_project.errors.full_messages.each do |msg| | 6 | - @admin_project.errors.full_messages.each do |msg| |
7 | %li= msg | 7 | %li= msg |
8 | 8 | ||
9 | - .span-24 | ||
10 | - .span-12 | ||
11 | - .field | ||
12 | - = f.label :name | ||
13 | - %br | ||
14 | - = f.text_field :name | ||
15 | - .field | ||
16 | - = f.label :code | ||
17 | - %br | ||
18 | - = f.text_field :code | ||
19 | - .field | ||
20 | - = f.label :path | ||
21 | - %br | ||
22 | - = f.text_field :path | ||
23 | - .span-10 | ||
24 | - .field | ||
25 | - = f.label :description | ||
26 | - %br | ||
27 | - = f.text_area :description | 9 | + .form-row |
10 | + = f.label :name | ||
11 | + %br | ||
12 | + = f.text_field :name | ||
13 | + .form-row | ||
14 | + = f.label :code | ||
15 | + %br | ||
16 | + = f.text_field :code | ||
17 | + .form-row | ||
18 | + = f.label :path | ||
19 | + %br | ||
20 | + = f.text_field :path | ||
21 | + | ||
22 | + | ||
23 | + .form-row | ||
24 | + = f.label :tag_list | ||
25 | + %br | ||
26 | + = f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field | ||
27 | + | ||
28 | + .form-row | ||
29 | + = f.label :description | ||
30 | + %br | ||
31 | + = f.text_area :description | ||
28 | .clear | 32 | .clear |
29 | .actions | 33 | .actions |
30 | = f.submit 'Save', :class => "lbutton" | 34 | = f.submit 'Save', :class => "lbutton" |
35 | + | ||
36 | +:javascript | ||
37 | + $(function(){ | ||
38 | + taggifyForm(); | ||
39 | + }) |
app/views/admin/users/_form.html.haml
@@ -7,44 +7,42 @@ | @@ -7,44 +7,42 @@ | ||
7 | - @admin_user.errors.full_messages.each do |msg| | 7 | - @admin_user.errors.full_messages.each do |msg| |
8 | %li= msg | 8 | %li= msg |
9 | 9 | ||
10 | - .span-24 | ||
11 | - .span-11.colborder | ||
12 | - .field | ||
13 | - = f.label :name | ||
14 | - %br | ||
15 | - = f.text_field :name | ||
16 | - .field | ||
17 | - = f.label :email | ||
18 | - %br | ||
19 | - = f.text_field :email | ||
20 | - .field | ||
21 | - = f.label :password | ||
22 | - %br | ||
23 | - = f.password_field :password | ||
24 | - .field | ||
25 | - = f.label :password_confirmation | ||
26 | - %br | ||
27 | - = f.password_field :password_confirmation | ||
28 | - .field.prepend-top | ||
29 | - = f.check_box :admin | ||
30 | - = f.label :admin | ||
31 | - .span-11 | ||
32 | - .field.prepend-top | ||
33 | - = f.text_field :projects_limit, :class => "small_input" | ||
34 | - = f.label :projects_limit | 10 | + .form-row |
11 | + = f.label :name | ||
12 | + %br | ||
13 | + = f.text_field :name | ||
14 | + .form-row | ||
15 | + = f.label :email | ||
16 | + %br | ||
17 | + = f.text_field :email | ||
18 | + .form-row | ||
19 | + = f.label :password | ||
20 | + %br | ||
21 | + = f.password_field :password | ||
22 | + .form-row | ||
23 | + = f.label :password_confirmation | ||
24 | + %br | ||
25 | + = f.password_field :password_confirmation | ||
26 | + .form-row | ||
27 | + = f.check_box :admin | ||
28 | + = f.label :admin | ||
35 | 29 | ||
36 | - .field | ||
37 | - = f.label :skype | ||
38 | - %br | ||
39 | - = f.text_field :skype | ||
40 | - .field | ||
41 | - = f.label :linkedin | ||
42 | - %br | ||
43 | - = f.text_field :linkedin | ||
44 | - .field | ||
45 | - = f.label :twitter | ||
46 | - %br | ||
47 | - = f.text_field :twitter | 30 | + .form-row |
31 | + = f.text_field :projects_limit, :class => "small_input" | ||
32 | + = f.label :projects_limit | ||
33 | + | ||
34 | + .form-row | ||
35 | + = f.label :skype | ||
36 | + %br | ||
37 | + = f.text_field :skype | ||
38 | + .form-row | ||
39 | + = f.label :linkedin | ||
40 | + %br | ||
41 | + = f.text_field :linkedin | ||
42 | + .form-row | ||
43 | + = f.label :twitter | ||
44 | + %br | ||
45 | + = f.text_field :twitter | ||
48 | .clear | 46 | .clear |
49 | %br | 47 | %br |
50 | .actions | 48 | .actions |
app/views/admin/users/index.html.haml
app/views/commits/_text_file.html.haml
@@ -13,10 +13,8 @@ | @@ -13,10 +13,8 @@ | ||
13 | = diff_line(line, line_new, line_old) | 13 | = diff_line(line, line_new, line_old) |
14 | - if line[0] == "+" | 14 | - if line[0] == "+" |
15 | - line_new += 1 | 15 | - line_new += 1 |
16 | - - elsif | ||
17 | - - line[0] == "-" | 16 | + - elsif line[0] == "-" |
18 | - line_old += 1 | 17 | - line_old += 1 |
19 | - else | 18 | - else |
20 | - line_new += 1 | 19 | - line_new += 1 |
21 | - line_old += 1 | 20 | - line_old += 1 |
22 | - |
app/views/dashboard/index.html.haml
@@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
23 | .project-box.project-updates.ui-box.ui-box-small.ui-box-big | 23 | .project-box.project-updates.ui-box.ui-box-small.ui-box-big |
24 | %h3= project.name | 24 | %h3= project.name |
25 | .data | 25 | .data |
26 | - - project.updates.each do |update| | 26 | + - project.updates(4).each do |update| |
27 | %a.project-update{:href => dashboard_feed_path(project, update)} | 27 | %a.project-update{:href => dashboard_feed_path(project, update)} |
28 | = image_tag gravatar_icon(update.author_email), :class => "left", :width => 40 | 28 | = image_tag gravatar_icon(update.author_email), :class => "left", :width => 40 |
29 | %span.update-title | 29 | %span.update-title |
@@ -34,7 +34,5 @@ | @@ -34,7 +34,5 @@ | ||
34 | = time_ago_in_words(update.created_at) | 34 | = time_ago_in_words(update.created_at) |
35 | ago | 35 | ago |
36 | %br | 36 | %br |
37 | - / .project-update | ||
38 | - / .project-updates | ||
39 | / #news-feed | 37 | / #news-feed |
40 | / #dashboard-content | 38 | / #dashboard-content |
app/views/issues/_form.html.haml
@@ -5,24 +5,21 @@ | @@ -5,24 +5,21 @@ | ||
5 | - @issue.errors.full_messages.each do |msg| | 5 | - @issue.errors.full_messages.each do |msg| |
6 | %li= msg | 6 | %li= msg |
7 | 7 | ||
8 | - .span-8 | 8 | + .form-row |
9 | = f.label :title | 9 | = f.label :title |
10 | = f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255 | 10 | = f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255 |
11 | - -#.span-8 | ||
12 | - -#= f.label :content | ||
13 | - -#= f.text_area :content, :style => "width:450px; height:130px" | ||
14 | - .span-8.append-bottom | 11 | + .form-row |
15 | = f.label :assignee_id | 12 | = f.label :assignee_id |
16 | = f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }) | 13 | = f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }) |
17 | - .span-1 | 14 | + .form-row |
18 | = f.label :critical, "Critical" | 15 | = f.label :critical, "Critical" |
19 | %br | 16 | %br |
20 | = f.check_box :critical | 17 | = f.check_box :critical |
21 | - unless @issue.new_record? | 18 | - unless @issue.new_record? |
22 | - .span-2.right | 19 | + .form-row |
23 | = f.label :closed | 20 | = f.label :closed |
24 | %br | 21 | %br |
25 | = f.check_box :closed | 22 | = f.check_box :closed |
26 | %hr | 23 | %hr |
27 | - .span-6 | 24 | + .form-row |
28 | = f.submit 'Save', :class => "lbutton vm" | 25 | = f.submit 'Save', :class => "lbutton vm" |
app/views/issues/_issues.html.haml
1 | -%table.round-borders#issues-table | ||
2 | - %thead | ||
3 | - - if can?(current_user, :admin_issue, @project) && !params[:f] || params[:f] == "0" | ||
4 | - %th | ||
5 | - %th Assignee | ||
6 | - %th ID | ||
7 | - %th Title | ||
8 | - %th Closed? | 1 | +- @issues.critical.each do |issue| |
2 | + = render(:partial => 'show', :locals => {:issue => issue}) | ||
9 | 3 | ||
10 | - - @issues.critical.each do |issue| | ||
11 | - = render(:partial => 'show', :locals => {:issue => issue}) | ||
12 | - | ||
13 | - - @issues.non_critical.each do |issue| | ||
14 | - = render(:partial => 'show', :locals => {:issue => issue}) | 4 | +- @issues.non_critical.each do |issue| |
5 | + = render(:partial => 'show', :locals => {:issue => issue}) |
app/views/issues/_show.html.haml
1 | %tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(@project, issue) } | 1 | %tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(@project, issue) } |
2 | - - if can?(current_user, :admin_issue, @project) && (!params[:f] || params[:f] == "0") | ||
3 | - %td | ||
4 | - = image_tag "move.png" , :class => [:handle, :left] | ||
5 | %td | 2 | %td |
6 | - = image_tag gravatar_icon(issue.assignee.email), :class => "left", :width => 40, :style => "padding:0 5px;" | ||
7 | - = issue.assignee.name | ||
8 | - %td ##{issue.id} | ||
9 | - %td | ||
10 | - = truncate(html_escape(issue.title), :length => 200) | 3 | + %strong.issue-number{:class => sort_class}= "##{issue.id}" |
4 | + %span | ||
5 | + = truncate(html_escape(issue.title), :length => fixed_mode? ? 100 : 200) | ||
11 | %br | 6 | %br |
12 | %br | 7 | %br |
13 | - - if issue.critical | ||
14 | - %span.tag.high critical | ||
15 | - - if issue.today? | ||
16 | - %span.tag.today today | ||
17 | - | ||
18 | - .right | ||
19 | - - if can?(current_user, :admin_issue, @project) || issue.author == current_user | ||
20 | - = link_to 'Edit', edit_project_issue_path(@project, issue), :class => "cgray", :remote => true | ||
21 | - - if can?(current_user, :admin_issue, @project) || issue.author == current_user | ||
22 | - | ||
23 | - = link_to 'Destroy', [@project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "cred delete-issue negative", :id => "destroy_issue_#{issue.id}" | ||
24 | - | ||
25 | - -#- if issue.author == current_user | ||
26 | - -#%span.tag.yours yours | ||
27 | - -#- if issue.notes.count > 0 | ||
28 | - -#%span.tag.notes | ||
29 | - -#= issue.notes.count | ||
30 | - -#notes | ||
31 | - %td | ||
32 | - - if can? current_user, :write_issue, @project | ||
33 | - = form_for([@project, issue], :remote => true) do |f| | ||
34 | - = f.check_box :closed, :onclick => "$(this).parent().submit();" | ||
35 | - = hidden_field_tag :status_only, true | ||
36 | - - else | ||
37 | - = check_box_tag "closed", 1, issue.closed, :disabled => true | 8 | + %div.note-author |
9 | + %strong= issue.assignee.name | ||
10 | + %cite.cgray | ||
11 | + = time_ago_in_words(issue.updated_at) | ||
12 | + ago | ||
13 | + - if issue.critical | ||
14 | + %span.tag.high critical | ||
15 | + - if issue.today? | ||
16 | + %span.tag.today today | ||
17 | + .right.action-links | ||
18 | + - if can? current_user, :write_issue, issue | ||
19 | + - if issue.closed | ||
20 | + = link_to 'Reopen', project_issue_path(@project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "cgray", :remote => true | ||
21 | + - else | ||
22 | + = link_to 'Resolve', project_issue_path(@project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "cgray", :remote => true | ||
23 | + - if can? current_user, :write_issue, issue | ||
24 | + = link_to 'Edit', edit_project_issue_path(@project, issue), :class => "cgray edit-issue-link", :remote => true | ||
25 | + - if can?(current_user, :admin_issue, @project) || issue.author == current_user | ||
26 | + = link_to 'Destroy', [@project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "cred delete-issue negative", :id => "destroy_issue_#{issue.id}" |
app/views/issues/create.js.haml
1 | - if @issue.valid? | 1 | - if @issue.valid? |
2 | :plain | 2 | :plain |
3 | $("#new_issue_dialog").dialog("close"); | 3 | $("#new_issue_dialog").dialog("close"); |
4 | + $("#issues-table").prepend("#{escape_javascript(render(:partial => 'show', :locals => {:issue => @issue} ))}"); | ||
4 | $.ajax({type: "GET", url: location.href, dataType: "script"}); | 5 | $.ajax({type: "GET", url: location.href, dataType: "script"}); |
5 | - else | 6 | - else |
6 | :plain | 7 | :plain |
app/views/issues/index.html.haml
1 | -%div | ||
2 | - .top_panel_issues | ||
3 | - - if can? current_user, :write_issue, @project | ||
4 | - %div{:class => "left", :style => "margin-right: 10px;" } | ||
5 | - = link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "lbutton vm" | ||
6 | - = form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :left, :id => "issue_search_form" do | ||
7 | - = hidden_field_tag :project_id, @project.id, { :id => 'project_id' } | ||
8 | - = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' } | 1 | +%div#issues-table-holder |
2 | + %table.round-borders#issues-table | ||
3 | + %thead | ||
4 | + %th | ||
5 | + .top_panel_issues | ||
6 | + - if can? current_user, :write_issue, @project | ||
7 | + %div{:class => "left", :style => "margin-right: 10px;" } | ||
8 | + = link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "lbutton vm" | ||
9 | + = form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :left, :id => "issue_search_form" do | ||
10 | + = hidden_field_tag :project_id, @project.id, { :id => 'project_id' } | ||
11 | + = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' } | ||
9 | 12 | ||
10 | - .right.issues_filter | ||
11 | - = form_tag project_issues_path(@project), :method => :get do | ||
12 | - .left | ||
13 | - = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues", :class => "status" | ||
14 | - = label_tag "open_issues","Open" | ||
15 | - .left | ||
16 | - = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues", :class => "status" | ||
17 | - = label_tag "closed_issues","Closed" | ||
18 | - .left | ||
19 | - = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues", :class => "status" | ||
20 | - = label_tag "my_issues","To Me" | ||
21 | - .left | ||
22 | - = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues", :class => "status" | ||
23 | - = label_tag "all_issues","All" | 13 | + .right.issues_filter |
14 | + = form_tag project_issues_path(@project), :method => :get do | ||
15 | + .left | ||
16 | + = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0)", :id => "open_issues", :class => "status" | ||
17 | + = label_tag "open_issues","Open" | ||
18 | + .left | ||
19 | + = radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2)", :id => "closed_issues", :class => "status" | ||
20 | + = label_tag "closed_issues","Closed" | ||
21 | + .left | ||
22 | + = radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3)", :id => "my_issues", :class => "status" | ||
23 | + = label_tag "my_issues","To Me" | ||
24 | + .left | ||
25 | + = radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1)", :id => "all_issues", :class => "status" | ||
26 | + = label_tag "all_issues","All" | ||
24 | 27 | ||
25 | - #issues-table-holder= render "issues" | 28 | + = render "issues" |
26 | %br | 29 | %br |
27 | :javascript | 30 | :javascript |
28 | var href = $('.issue_search').parent().attr('action'); | 31 | var href = $('.issue_search').parent().attr('action'); |
29 | var last_terms = ''; | 32 | var last_terms = ''; |
30 | 33 | ||
34 | + | ||
35 | + var setIssueFilter = function(form, value){ | ||
36 | + $.cookie('issue_filter', value, { expires: 140 }); | ||
37 | + form.submit(); | ||
38 | + } | ||
39 | + | ||
31 | $('.issue_search').keyup(function() { | 40 | $('.issue_search').keyup(function() { |
32 | var terms = $(this).val(); | 41 | var terms = $(this).val(); |
33 | var project_id = $('#project_id').val(); | 42 | var project_id = $('#project_id').val(); |
@@ -37,7 +46,7 @@ | @@ -37,7 +46,7 @@ | ||
37 | 46 | ||
38 | if (terms.length >= 2 || terms.length == 0) { | 47 | if (terms.length >= 2 || terms.length == 0) { |
39 | $.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) { | 48 | $.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) { |
40 | - $('#issues-table').html(response); | 49 | + $('#issues-table tbody').html(response); |
41 | setSortable(); | 50 | setSortable(); |
42 | }); | 51 | }); |
43 | } | 52 | } |
app/views/issues/index.js.haml
app/views/keys/_form.html.haml
@@ -5,12 +5,12 @@ | @@ -5,12 +5,12 @@ | ||
5 | - @key.errors.full_messages.each do |msg| | 5 | - @key.errors.full_messages.each do |msg| |
6 | %li= msg | 6 | %li= msg |
7 | 7 | ||
8 | - .span-6 | 8 | + .form-row |
9 | = f.label :title | 9 | = f.label :title |
10 | = f.text_field :title, :style => "width:300px" | 10 | = f.text_field :title, :style => "width:300px" |
11 | - .span-6 | 11 | + .form-row |
12 | = f.label :key | 12 | = f.label :key |
13 | = f.text_area :key, :style => "width:300px; height:130px" | 13 | = f.text_area :key, :style => "width:300px; height:130px" |
14 | - .span-6 | 14 | + .form-row |
15 | = f.submit 'Save', :class => "lbutton vm" | 15 | = f.submit 'Save', :class => "lbutton vm" |
16 | 16 |
app/views/layouts/project.html.haml
@@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
25 | Team | 25 | Team |
26 | - if @project.users_projects.count > 0 | 26 | - if @project.users_projects.count > 0 |
27 | %span{ :class => "number" }= @project.users_projects.count | 27 | %span{ :class => "number" }= @project.users_projects.count |
28 | - = link_to project_issues_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do | 28 | + = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do |
29 | Issues | 29 | Issues |
30 | - if @project.issues.opened.count > 0 | 30 | - if @project.issues.opened.count > 0 |
31 | %span{ :class => "number" }= @project.issues.opened.count | 31 | %span{ :class => "number" }= @project.issues.opened.count |
@@ -40,5 +40,7 @@ | @@ -40,5 +40,7 @@ | ||
40 | - if @commit | 40 | - if @commit |
41 | = link_to truncate(commit_name(@project,@commit), :length => 15), project_commit_path(@project, :id => @commit.id), :class => current_page?(:controller => "commits", :action => "show", :project_id => @project, :id => @commit.id) ? "current" : nil | 41 | = link_to truncate(commit_name(@project,@commit), :length => 15), project_commit_path(@project, :id => @commit.id), :class => current_page?(:controller => "commits", :action => "show", :project_id => @project, :id => @commit.id) ? "current" : nil |
42 | 42 | ||
43 | + .medium-tags{:style => 'padding: 10px 0 0 10px; width: 210px;'}= tag_list @project | ||
44 | + | ||
43 | .project-content | 45 | .project-content |
44 | = yield | 46 | = yield |
app/views/notes/_form.html.haml
@@ -10,13 +10,16 @@ | @@ -10,13 +10,16 @@ | ||
10 | 10 | ||
11 | %div | 11 | %div |
12 | = f.label :note | 12 | = f.label :note |
13 | - %cite | 13 | + %cite.cgray markdown supported |
14 | + %br | ||
14 | %br | 15 | %br |
15 | = f.text_area :note, :size => 255 | 16 | = f.text_area :note, :size => 255 |
16 | - | 17 | + |
17 | %div.attach_holder | 18 | %div.attach_holder |
19 | + %br | ||
18 | = f.label :attachment | 20 | = f.label :attachment |
19 | - %cite (less than 10 MB) | 21 | + %cite.cgray (less than 10 MB) |
22 | + %br | ||
20 | %br | 23 | %br |
21 | = f.file_field :attachment | 24 | = f.file_field :attachment |
22 | 25 |
app/views/profile/password.html.haml
@@ -7,11 +7,11 @@ | @@ -7,11 +7,11 @@ | ||
7 | - @user.errors.full_messages.each do |msg| | 7 | - @user.errors.full_messages.each do |msg| |
8 | %li= msg | 8 | %li= msg |
9 | 9 | ||
10 | - .div | 10 | + .form-row |
11 | = f.label :password | 11 | = f.label :password |
12 | %br | 12 | %br |
13 | = f.password_field :password | 13 | = f.password_field :password |
14 | - .div | 14 | + .form-row |
15 | = f.label :password_confirmation | 15 | = f.label :password_confirmation |
16 | %br | 16 | %br |
17 | = f.password_field :password_confirmation | 17 | = f.password_field :password_confirmation |
app/views/profile/show.html.haml
@@ -16,15 +16,15 @@ | @@ -16,15 +16,15 @@ | ||
16 | - @user.errors.full_messages.each do |msg| | 16 | - @user.errors.full_messages.each do |msg| |
17 | %li= msg | 17 | %li= msg |
18 | 18 | ||
19 | - .div | 19 | + .form-row |
20 | = f.label :skype | 20 | = f.label :skype |
21 | %br | 21 | %br |
22 | = f.text_field :skype | 22 | = f.text_field :skype |
23 | - .div | 23 | + .form-row |
24 | = f.label :linkedin | 24 | = f.label :linkedin |
25 | %br | 25 | %br |
26 | = f.text_field :linkedin | 26 | = f.text_field :linkedin |
27 | - .div | 27 | + .form-row |
28 | = f.label :twitter | 28 | = f.label :twitter |
29 | %br | 29 | %br |
30 | = f.text_field :twitter | 30 | = f.text_field :twitter |
app/views/projects/_form.html.haml
1 | = form_for(@project, :remote => true) do |f| | 1 | = form_for(@project, :remote => true) do |f| |
2 | %div.form_content | 2 | %div.form_content |
3 | - unless @project.new_record? | 3 | - unless @project.new_record? |
4 | - %h1 Edit Project | 4 | + %h2.icon |
5 | + %span | ||
6 | + = @project.name | ||
5 | - if @project.errors.any? | 7 | - if @project.errors.any? |
6 | #error_explanation | 8 | #error_explanation |
7 | %h2 | 9 | %h2 |
@@ -10,7 +12,7 @@ | @@ -10,7 +12,7 @@ | ||
10 | %ul | 12 | %ul |
11 | - @project.errors.full_messages.each do |msg| | 13 | - @project.errors.full_messages.each do |msg| |
12 | %li= msg | 14 | %li= msg |
13 | - %table.round-borders | 15 | + %table |
14 | %tr | 16 | %tr |
15 | %td= f.label :name | 17 | %td= f.label :name |
16 | %td= f.text_field :name, :placeholder => "Example Project" | 18 | %td= f.text_field :name, :placeholder => "Example Project" |
@@ -29,15 +31,13 @@ | @@ -29,15 +31,13 @@ | ||
29 | %tr | 31 | %tr |
30 | %td= f.label :tag_list | 32 | %td= f.label :tag_list |
31 | %td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field | 33 | %td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field |
34 | + %tr | ||
35 | + %td= f.label :description | ||
36 | + %td= f.text_area :description, :placeholder => "project description", :style => "height:50px" | ||
32 | 37 | ||
33 | - .field | ||
34 | - = f.label :description | ||
35 | - %br/ | ||
36 | - = f.text_area :description, :style => "height:140px;width:932px;" | ||
37 | - .clear | ||
38 | - %hr.prepend-top | 38 | + %br |
39 | .actions | 39 | .actions |
40 | - = f.submit :class => "lbutton vm" | 40 | + = f.submit :class => "button" |
41 | 41 | ||
42 | %div{ :class => "ajax_loader", :style => "display:none;height:200px;"} | 42 | %div{ :class => "ajax_loader", :style => "display:none;height:200px;"} |
43 | %center | 43 | %center |
@@ -55,16 +55,5 @@ | @@ -55,16 +55,5 @@ | ||
55 | 55 | ||
56 | :javascript | 56 | :javascript |
57 | $(function(){ | 57 | $(function(){ |
58 | - var tag_field = $('#tag_field').tagify(); | ||
59 | - | ||
60 | - tag_field.tagify('inputField').autocomplete({ | ||
61 | - source: '/tags.json' | ||
62 | - }); | ||
63 | - | ||
64 | - | ||
65 | - $('form').submit( function() { | ||
66 | - var tag_field = $('#tag_field') | ||
67 | - tag_field.val( tag_field.tagify('serialize') ); | ||
68 | - return true; | ||
69 | - }); | 58 | + taggifyForm(); |
70 | }) | 59 | }) |
app/views/projects/_list.html.haml
@@ -12,9 +12,8 @@ | @@ -12,9 +12,8 @@ | ||
12 | %tr{ :class => "project", :url => project_path(project) } | 12 | %tr{ :class => "project", :url => project_path(project) } |
13 | %td | 13 | %td |
14 | = project.name | 14 | = project.name |
15 | - .small-tags | ||
16 | - - project.tag_list.each do |tag| | ||
17 | - = link_to tag, "/tags/#{tag}" | 15 | + .small-tags= tag_list project |
16 | + | ||
18 | 17 | ||
19 | %td= truncate project.url_to_repo | 18 | %td= truncate project.url_to_repo |
20 | %td= project.code | 19 | %td= project.code |
app/views/projects/_recent_commits.html.haml
1 | -- @commits.each do |commit| | ||
2 | - %div.commit | ||
3 | - - if commit.author.email | ||
4 | - = image_tag gravatar_icon(commit.author.email), :class => "left", :width => 40, :style => "padding-right:5px;" | ||
5 | - - else | ||
6 | - = image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;" | ||
7 | - %p{:style => "margin-bottom: 3px;"} | ||
8 | - %strong | ||
9 | - = link_to truncate(commit.safe_message, :length => 60), project_commit_path(@project, :id => commit.id) | ||
10 | - | ||
11 | - %span | ||
12 | - %span.author | ||
13 | - = commit.author.name.force_encoding("UTF-8") | ||
14 | - %cite | ||
15 | - = time_ago_in_words(commit.committed_date) | ||
16 | - ago | ||
17 | - %br | 1 | +%table |
2 | + %thead | ||
3 | + %th | ||
4 | + Commits | ||
5 | + .filter.right | ||
6 | + = form_tag project_path(@project), :method => :get, :class => "right" do | ||
7 | + .left | ||
8 | + = radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view" | ||
9 | + = label_tag "recent_view","Recent" | ||
10 | + .left | ||
11 | + = radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view" | ||
12 | + = label_tag "day_view","Today" | ||
13 | + .left | ||
14 | + = radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view" | ||
15 | + = label_tag "week_view","Week" | ||
16 | + - @commits.each do |commit| | ||
17 | + %tr | ||
18 | + %td | ||
19 | + %div.commit | ||
20 | + - if commit.author.email | ||
21 | + = image_tag gravatar_icon(commit.author.email), :class => "left", :width => 40, :style => "padding-right:5px;" | ||
22 | + - else | ||
23 | + = image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;" | ||
24 | + .title | ||
25 | + %p= link_to truncate(commit.safe_message, :length => fixed_mode? ? 40 : 100), project_commit_path(@project, :id => commit.id) | ||
18 | 26 | ||
27 | + %span | ||
28 | + %span.author | ||
29 | + %strong= commit.author.name.force_encoding("UTF-8") | ||
30 | + %cite.cgray | ||
31 | + = time_ago_in_words(commit.committed_date) | ||
32 | + ago |
app/views/projects/_recent_messages.html.haml
@@ -3,50 +3,25 @@ | @@ -3,50 +3,25 @@ | ||
3 | - parent = load_note_parent(id, type, @project) | 3 | - parent = load_note_parent(id, type, @project) |
4 | - next unless parent | 4 | - next unless parent |
5 | 5 | ||
6 | - - case type | ||
7 | - - when "Issue" | ||
8 | - - css_class = "dash_issue" | ||
9 | - - issue = parent | ||
10 | - - item_code = issue.author.email | ||
11 | - - link_item_name = truncate(issue.title, :length => 50) | ||
12 | - - link_to_item = project_issue_path(@project, issue) | ||
13 | - - when "Snippet" | ||
14 | - - css_class = "dash_snippet" | ||
15 | - - item_code = parent.author.email | ||
16 | - - link_item_name = parent.title | ||
17 | - - link_to_item = project_snippet_path(@project, parent) | ||
18 | - - when "Commit" | ||
19 | - - css_class = "dash_commit" | ||
20 | - - commit = parent | ||
21 | - - item_code = commit.author.email | ||
22 | - - link_item_name = truncate(commit.safe_message, :length => 50) | ||
23 | - - link_to_item = project_commit_path(@project, :id => commit.id) | ||
24 | - - else | ||
25 | - - css_class = "dash_wall" | ||
26 | - - item_code = @project.name | ||
27 | - - link_item_name = "Project Wall" | ||
28 | - - link_to_item = wall_project_path(@project) | ||
29 | - | ||
30 | - %div{ :class => "recent_message_parent #{css_class}"} | ||
31 | - = image_tag gravatar_icon(item_code), :class => "left", :width => 40 | ||
32 | - %h4 | ||
33 | - = link_to(link_item_name, link_to_item) | ||
34 | - %span | ||
35 | - = type | ||
36 | - .clear | ||
37 | - - notes.sort {|x,y| x.updated_at <=> y.updated_at }.each do |note| | ||
38 | - %div.message | ||
39 | - = image_tag gravatar_icon(note.author.email), :class => "left", :width => 24, :style => "padding-right:5px;" | ||
40 | - %p{:style => "margin-bottom: 3px;"} | ||
41 | - %span.author | ||
42 | - = note.author.name | ||
43 | - = link_to markdown(truncate(note.note, :length => 200)), link_to_item + "#note_#{note.id}" | ||
44 | - - if note.attachment.url | ||
45 | - %br | ||
46 | - Attachment: | ||
47 | - = link_to note.attachment_identifier, note.attachment.url | ||
48 | - %br | ||
49 | - %br | ||
50 | - .append-bottom | ||
51 | - | ||
52 | - .clear | 6 | + %table |
7 | + %thead | ||
8 | + %th | ||
9 | + %div{ :class => "recent_message_parent"} | ||
10 | + = link_to(truncate(dashboard_feed_title(parent), :length => fixed_mode? ? 40 : 100 ), dashboard_feed_path(@project, parent)) | ||
11 | + - notes.sort {|x,y| y.updated_at <=> x.updated_at }.each do |note| | ||
12 | + %tr | ||
13 | + %td | ||
14 | + %div.message | ||
15 | + = image_tag gravatar_icon(note.author_email), :class => "left", :width => 40, :style => "padding-right:5px;" | ||
16 | + %div.title | ||
17 | + = link_to markdown(truncate(note.note, :length => fixed_mode? ? 40 : 100)), dashboard_feed_path(@project, parent) + "#note_#{note.id}" | ||
18 | + - if note.attachment.url | ||
19 | + %br | ||
20 | + Attachment: | ||
21 | + = link_to note.attachment_identifier, note.attachment.url | ||
22 | + %div.author | ||
23 | + %strong= note.author_name | ||
24 | + %cite.cgray | ||
25 | + = time_ago_in_words(note.updated_at) | ||
26 | + ago | ||
27 | + %br |
app/views/projects/_tile.html.haml
@@ -13,9 +13,7 @@ | @@ -13,9 +13,7 @@ | ||
13 | - last_note = project.notes.last | 13 | - last_note = project.notes.last |
14 | = last_note ? last_note.created_at.stamp("24 Aug, 2011") : "Never" | 14 | = last_note ? last_note.created_at.stamp("24 Aug, 2011") : "Never" |
15 | 15 | ||
16 | - %p.small-tags | ||
17 | - - project.tag_list.each do |tag| | ||
18 | - = link_to tag, "/tags/#{tag}" | 16 | + %p.small-tags= tag_list project |
19 | 17 | ||
20 | .buttons | 18 | .buttons |
21 | %a.browse-code.button.yellow{:href => tree_project_path(project)} Browse code | 19 | %a.browse-code.button.yellow{:href => tree_project_path(project)} Browse code |
app/views/projects/new.html.erb
@@ -1 +0,0 @@ | @@ -1 +0,0 @@ | ||
1 | -<%= render 'form' %> |
app/views/projects/show.html.haml
1 | -%div | ||
2 | - %h2.left History | ||
3 | - .right | ||
4 | - = form_tag project_path(@project), :method => :get do | ||
5 | - .span-2 | ||
6 | - = radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view" | ||
7 | - = label_tag "recent_view","Recent" | ||
8 | - .span-2 | ||
9 | - = radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view" | ||
10 | - = label_tag "day_view","Today" | ||
11 | - .span-2 | ||
12 | - = radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view" | ||
13 | - = label_tag "week_view","Week" | ||
14 | - .clear | ||
15 | - %hr | ||
16 | .left.width-49p | 1 | .left.width-49p |
17 | - %h3 Commits | ||
18 | =render "projects/recent_commits" | 2 | =render "projects/recent_commits" |
19 | 3 | ||
20 | .right.width-49p | 4 | .right.width-49p |
21 | - %h3 Talk | ||
22 | =render "projects/recent_messages" | 5 | =render "projects/recent_messages" |
23 | 6 | ||
24 | :javascript | 7 | :javascript |
25 | function updateDashboard(){ | 8 | function updateDashboard(){ |
26 | - $('#content-container').load("#{escape_javascript(project_path(@project))} #content-container>*"); | 9 | + $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*"); |
27 | } | 10 | } |
28 | setInterval("updateDashboard()", 300000); | 11 | setInterval("updateDashboard()", 300000); |
app/views/tags/index.html.haml
spec/requests/issues_spec.rb
@@ -158,7 +158,6 @@ describe "Issues" do | @@ -158,7 +158,6 @@ describe "Issues" do | ||
158 | it "should have valid show page for issue" do | 158 | it "should have valid show page for issue" do |
159 | page.should have_content @issue.title | 159 | page.should have_content @issue.title |
160 | page.should have_content @user.name | 160 | page.should have_content @user.name |
161 | - page.should have_content "today" | ||
162 | end | 161 | end |
163 | end | 162 | end |
164 | 163 | ||
@@ -169,6 +168,7 @@ describe "Issues" do | @@ -169,6 +168,7 @@ describe "Issues" do | ||
169 | :assignee => @user, | 168 | :assignee => @user, |
170 | :project => project | 169 | :project => project |
171 | visit project_issues_path(project) | 170 | visit project_issues_path(project) |
171 | + page.execute_script("$('.action-links').css('display', 'block');") | ||
172 | click_link "Edit" | 172 | click_link "Edit" |
173 | end | 173 | end |
174 | 174 |
vendor/assets/stylesheets/jquery-ui/jquery-ui.css
@@ -59,7 +59,7 @@ | @@ -59,7 +59,7 @@ | ||
59 | .ui-widget { font-family: "Helvetica Neue",Arial,Helvetica,sans-serif; font-size: 1.1em; } | 59 | .ui-widget { font-family: "Helvetica Neue",Arial,Helvetica,sans-serif; font-size: 1.1em; } |
60 | .ui-widget .ui-widget { font-size: 1em; } | 60 | .ui-widget .ui-widget { font-size: 1em; } |
61 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } | 61 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } |
62 | -.ui-widget-content { border: 1px solid #dddddd; background: #ffffff url(ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } | 62 | +.ui-widget-content { border: 1px solid #474D57; background: #ffffff url(ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } |
63 | .ui-widget-content a { color: #222222; } | 63 | .ui-widget-content a { color: #222222; } |
64 | .ui-widget-header { color: #222222; font-weight: bold; } | 64 | .ui-widget-header { color: #222222; font-weight: bold; } |
65 | .ui-widget-header a { color: #222222; } | 65 | .ui-widget-header a { color: #222222; } |
@@ -445,8 +445,8 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad | @@ -445,8 +445,8 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad | ||
445 | * http://docs.jquery.com/UI/Dialog#theming | 445 | * http://docs.jquery.com/UI/Dialog#theming |
446 | */ | 446 | */ |
447 | .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; } | 447 | .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; } |
448 | -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; background: #F7F7F7; color:#555; } | ||
449 | -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0;} | 448 | +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; background: #474D57; color:#eee; } |
449 | +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; text-shadow: none;} | ||
450 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; background:#eaeaea} | 450 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; background:#eaeaea} |
451 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } | 451 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } |
452 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } | 452 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } |