From 4174ab0239cc8d7884ac239276b7d90b0ba0db34 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Tue, 6 Aug 2019 12:20:29 +0200 Subject: [PATCH] ui: new commits page. - changes according to design - consistency, space saving etc --- package.json | 2 +- .../apps/repository/views/repo_commits.py | 3 + rhodecode/model/comment.py | 17 + rhodecode/public/css/buttons.less | 33 +- rhodecode/public/css/code-block.less | 65 +-- rhodecode/public/css/comments.less | 8 + rhodecode/public/css/main.less | 46 ++ rhodecode/public/css/rcicons.less | 36 +- rhodecode/public/css/select2.less | 2 + rhodecode/public/css/summary.less | 5 + rhodecode/public/fonts/RCIcons/config.json | 66 +++ rhodecode/public/fonts/RCIcons/rcicons.eot | Bin 18076 -> 19568 bytes rhodecode/public/fonts/RCIcons/rcicons.svg | 22 + rhodecode/public/fonts/RCIcons/rcicons.ttf | Bin 17912 -> 19404 bytes rhodecode/public/fonts/RCIcons/rcicons.woff | Bin 10764 -> 11524 bytes rhodecode/public/fonts/RCIcons/rcicons.woff2 | Bin 9124 -> 9748 bytes rhodecode/templates/changeset/changeset.mako | 239 +++++------ .../templates/changeset/changeset_range.mako | 8 +- rhodecode/templates/codeblocks/diffs.mako | 394 +++++++++++------- rhodecode/templates/files/files.mako | 2 +- rhodecode/templates/files/files_add.mako | 2 +- rhodecode/templates/files/files_edit.mako | 2 +- .../templates/files/files_source_header.mako | 8 +- .../templates/files/files_tree_header.mako | 3 +- rhodecode/templates/files/files_upload.mako | 2 +- 25 files changed, 620 insertions(+), 345 deletions(-) diff --git a/package.json b/package.json index 1c15877c..95620903 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "moment": "^2.18.1", "mousetrap": "^1.6.1", "qrious": "^4.0.2", - "sticky-sidebar": "3.3.1", + "sticky-sidebar": "3.3.4", "waypoints": "4.0.1", "webpack": "4.23.1", "webpack-cli": "3.1.2", diff --git a/rhodecode/apps/repository/views/repo_commits.py b/rhodecode/apps/repository/views/repo_commits.py index c8d1bf7e..03b804db 100644 --- a/rhodecode/apps/repository/views/repo_commits.py +++ b/rhodecode/apps/repository/views/repo_commits.py @@ -128,6 +128,7 @@ class RepoCommitsView(RepoAppView): c.statuses = [] c.comments = [] c.unresolved_comments = [] + c.resolved_comments = [] if len(c.commit_ranges) == 1: commit = c.commit_ranges[0] c.comments = CommentsModel().get_comments( @@ -148,6 +149,8 @@ class RepoCommitsView(RepoAppView): c.unresolved_comments = CommentsModel()\ .get_commit_unresolved_todos(commit.raw_id) + c.resolved_comments = CommentsModel()\ + .get_commit_resolved_todos(commit.raw_id) diff = None # Iterate over ranges (default commit view is always one commit) diff --git a/rhodecode/model/comment.py b/rhodecode/model/comment.py index f682e224..cf909a6e 100644 --- a/rhodecode/model/comment.py +++ b/rhodecode/model/comment.py @@ -187,6 +187,23 @@ class CommentsModel(BaseModel): return todos + def get_commit_resolved_todos(self, commit_id, show_outdated=True): + + todos = Session().query(ChangesetComment) \ + .filter(ChangesetComment.revision == commit_id) \ + .filter(ChangesetComment.resolved_by != None) \ + .filter(ChangesetComment.comment_type + == ChangesetComment.COMMENT_TYPE_TODO) + + if not show_outdated: + todos = todos.filter( + coalesce(ChangesetComment.display_state, '') != + ChangesetComment.COMMENT_OUTDATED) + + todos = todos.all() + + return todos + def _log_audit_action(self, action, action_data, auth_user, comment): audit_logger.store( action=action, diff --git a/rhodecode/public/css/buttons.less b/rhodecode/public/css/buttons.less index 0c5a01eb..7cd76a81 100644 --- a/rhodecode/public/css/buttons.less +++ b/rhodecode/public/css/buttons.less @@ -71,6 +71,12 @@ input[type="button"] { margin: 0 0 0 0; } + &.btn-active { + color: @rcdarkblue; + background-color: @white; + .border ( @border-thickness, @rcdarkblue ); + } + } @@ -97,6 +103,11 @@ input[type="button"] { .border ( @border-thickness-buttons, @grey5 ); background-color: transparent; } + &.btn-active { + color: @rcdarkblue; + background-color: @white; + .border ( @border-thickness, @rcdarkblue ); + } } .btn-primary, @@ -214,8 +225,28 @@ input[type="button"] { display: inline-block; .btn { float: left; - margin: 0 0 0 -1px; + margin: 0 0 0 0; + // first item + &:first-of-type:not(:last-of-type) { + border-radius: @border-radius 0 0 @border-radius; + + } + // middle elements + &:not(:first-of-type):not(:last-of-type) { + border-radius: 0; + border-left-width: 0; + border-right-width: 0; + } + // last item + &:last-of-type:not(:first-of-type) { + border-radius: 0 @border-radius @border-radius 0; + } + + &:only-child { + border-radius: @border-radius; + } } + } .btn-link { diff --git a/rhodecode/public/css/code-block.less b/rhodecode/public/css/code-block.less index b6c099d5..53e4e4ec 100644 --- a/rhodecode/public/css/code-block.less +++ b/rhodecode/public/css/code-block.less @@ -682,13 +682,14 @@ input.filediff-collapse-state { display: none } .filediff-collapse-indicator { - width: 0; - height: 0; - border-style: solid; - border-width: 4.5px 0 4.5px 9.3px; - border-color: transparent transparent transparent #aaa; - margin: 6px 0px; + float: left; + cursor: pointer; + margin: 1px -5px; } + .filediff-collapse-indicator:before { + content: '\f105'; + } + .filediff-menu { display: none; } @@ -696,18 +697,20 @@ input.filediff-collapse-state { } &+ .filediff { /* file diff is expanded */ - .filediff-collapse-indicator { - width: 0; - height: 0; - border-style: solid; - border-width: 9.3px 4.5px 0 4.5px; - border-color: #aaa transparent transparent transparent; - margin: 6px 0px; + .filediff-collapse-indicator { + float: left; + cursor: pointer; + margin: 1px -5px; } + .filediff-collapse-indicator:before { + content: '\f107'; + } + .filediff-menu { display: block; } + margin: 10px 0; &:nth-child(2) { margin: 0; @@ -735,13 +738,14 @@ input.filediff-collapse-state { #diff-file-sticky{ will-change: min-height; + height: 80px; } .sidebar__inner{ transform: translate(0, 0); /* For browsers don't support translate3d. */ transform: translate3d(0, 0, 0); will-change: position, transform; - height: 70px; + height: 65px; z-index: 30; background-color: #fff; padding: 5px 0px; @@ -775,10 +779,17 @@ input.filediff-collapse-state { } .diffset-menu { - margin-bottom: 20px; + } + +#todo-box { + clear:both; + display: none; + text-align: right +} + .diffset { - margin: 20px auto; + margin: 0px auto; .diffset-heading { border: 1px solid @grey5; margin-bottom: -1px; @@ -826,6 +837,8 @@ input.filediff-collapse-state { margin-right: 3px; font-size: 12px; font-weight: normal; + min-width: 30px; + text-align: center; &:first-child { border-radius: @border-radius 0 0 @border-radius; @@ -877,18 +890,10 @@ input.filediff-collapse-state { } } - .filediff-collapse-indicator { - border-style: solid; - float: left; - margin: 4px 0px 0 0; - cursor: pointer; - } - .filediff-heading { - background: @grey7; cursor: pointer; display: block; - padding: 5px 10px; + padding: 10px 10px; } .filediff-heading:after { content: ""; @@ -900,9 +905,9 @@ input.filediff-collapse-state { } .filediff-menu { - float: right; text-align: right; padding: 5px 5px 5px 0px; + background: @grey7; &> a, &> span { @@ -958,8 +963,16 @@ input.filediff-collapse-state { } +.op-added { + color: @alert1; +} + +.op-deleted { + color: @alert2; +} .filediff, .filelist { + .pill { &[op="name"] { background: none; diff --git a/rhodecode/public/css/comments.less b/rhodecode/public/css/comments.less index 8e9a4fb9..d325675f 100644 --- a/rhodecode/public/css/comments.less +++ b/rhodecode/public/css/comments.less @@ -10,6 +10,14 @@ width: 100%; } +.comments-heading { + margin-bottom: -1px; + background: @grey6; + display: block; + padding: 10px 0px; + font-size: 18px +} + tr.inline-comments div { max-width: 100%; diff --git a/rhodecode/public/css/main.less b/rhodecode/public/css/main.less index 4018fe15..ac7e0eda 100644 --- a/rhodecode/public/css/main.less +++ b/rhodecode/public/css/main.less @@ -1107,6 +1107,52 @@ label { } } +.review-status { + &.under_review { + color: @alert3; + } + &.approved { + color: @alert1; + } + &.rejected, + &.forced_closed{ + color: @alert2; + } + &.not_reviewed { + color: @grey5; + } +} + +.review-status-under_review { + color: @alert3; +} +.status-tag-under_review { + border-color: @alert3; +} + +.review-status-approved { + color: @alert1; +} +.status-tag-approved { + border-color: @alert1; +} + +.review-status-rejected, +.review-status-forced_closed { + color: @alert2; +} +.status-tag-rejected, +.status-tag-forced_closed { + border-color: @alert2; +} + +.review-status-not_reviewed { + color: @grey5; +} +.status-tag-not_reviewed { + border-color: @grey5; +} + .flag_status_comment_box { margin: 5px 6px 0px 2px; } diff --git a/rhodecode/public/css/rcicons.less b/rhodecode/public/css/rcicons.less index 2d8a0fb8..772f6541 100644 --- a/rhodecode/public/css/rcicons.less +++ b/rhodecode/public/css/rcicons.less @@ -1,12 +1,12 @@ @font-face { font-family: 'rcicons'; - src: url('../fonts/RCIcons/rcicons.eot?92789106'); - src: url('../fonts/RCIcons/rcicons.eot?92789106#iefix') format('embedded-opentype'), - url('../fonts/RCIcons/rcicons.woff2?92789106') format('woff2'), - url('../fonts/RCIcons/rcicons.woff?92789106') format('woff'), - url('../fonts/RCIcons/rcicons.ttf?92789106') format('truetype'), - url('../fonts/RCIcons/rcicons.svg?92789106#rcicons') format('svg'); + src: url('../fonts/RCIcons/rcicons.eot?44705679'); + src: url('../fonts/RCIcons/rcicons.eot?44705679#iefix') format('embedded-opentype'), + url('../fonts/RCIcons/rcicons.woff2?44705679') format('woff2'), + url('../fonts/RCIcons/rcicons.woff?44705679') format('woff'), + url('../fonts/RCIcons/rcicons.ttf?44705679') format('truetype'), + url('../fonts/RCIcons/rcicons.svg?44705679#rcicons') format('svg'); font-weight: normal; font-style: normal; @@ -163,8 +163,6 @@ .icon-down:before { content: '\e80b'; } /* '' */ .icon-folder:before { content: '\e80c'; } /* '' */ .icon-folder-open:before { content: '\e80d'; } /* '' */ -.icon-folder-empty:before { content: '\f114'; } /* '' */ -.icon-folder-open-empty:before { content: '\f115'; } /* '' */ .icon-trash-empty:before { content: '\e80e'; } /* '' */ .icon-group:before { content: '\e80f'; } /* '' */ .icon-remove:before { content: '\e810'; } /* '' */ @@ -187,6 +185,7 @@ .icon-info-circled:before { content: '\e821'; } /* '' */ .icon-upload:before { content: '\e822'; } /* '' */ .icon-home:before { content: '\e823'; } /* '' */ +.icon-flag-filled:before { content: '\e824'; } /* '' */ .icon-git:before { content: '\e82a'; } /* '' */ .icon-hg:before { content: '\e82d'; } /* '' */ .icon-svn:before { content: '\e82e'; } /* '' */ @@ -195,11 +194,24 @@ .icon-rhodecode:before { content: '\e831'; } /* '' */ .icon-up:before { content: '\e832'; } /* '' */ .icon-merge:before { content: '\e833'; } /* '' */ +.icon-spin-alt:before { content: '\e834'; } /* '' */ +.icon-spin:before { content: '\e838'; } /* '' */ .icon-docs:before { content: '\f0c5'; } /* '' */ .icon-menu:before { content: '\f0c9'; } /* '' */ +.icon-sort:before { content: '\f0dc'; } /* '' */ .icon-paste:before { content: '\f0ea'; } /* '' */ .icon-doc-text:before { content: '\f0f6'; } /* '' */ .icon-plus-squared:before { content: '\f0fe'; } /* '' */ +.icon-angle-left:before { content: '\f104'; } /* '' */ +.icon-angle-right:before { content: '\f105'; } /* '' */ +.icon-angle-up:before { content: '\f106'; } /* '' */ +.icon-angle-down:before { content: '\f107'; } /* '' */ +.icon-circle-empty:before { content: '\f10c'; } /* '' */ +.icon-circle:before { content: '\f111'; } /* '' */ +.icon-folder-empty:before { content: '\f114'; } /* '' */ +.icon-folder-open-empty:before { content: '\f115'; } /* '' */ +.icon-code:before { content: '\f121'; } /* '' */ +.icon-info:before { content: '\f129'; } /* '' */ .icon-minus-squared:before { content: '\f146'; } /* '' */ .icon-minus-squared-alt:before { content: '\f147'; } /* '' */ .icon-doc-inv:before { content: '\f15b'; } /* '' */ @@ -207,10 +219,9 @@ .icon-plus-squared-alt:before { content: '\f196'; } /* '' */ .icon-file-code:before { content: '\f1c9'; } /* '' */ .icon-history:before { content: '\f1da'; } /* '' */ +.icon-circle-thin:before { content: '\f1db'; } /* '' */ .icon-sliders:before { content: '\f1de'; } /* '' */ .icon-trash:before { content: '\f1f8'; } /* '' */ -.icon-spin-alt:before { content: '\e834'; } /* '' */ -.icon-spin:before { content: '\e838'; } /* '' */ // MERGED ICONS BASED ON CURRENT ONES @@ -233,10 +244,12 @@ .icon-false:before { &:extend(.icon-delete:before); } .icon-expand-linked:before { &:extend(.icon-down:before); } .icon-pr-merge-fail:before { &:extend(.icon-delete:before); } +.icon-wide-mode:before { &:extend(.icon-sort:before); } +.icon-flag-filled-red:before { &:extend(.icon-flag-filled:before); } // TRANSFORM - .icon-merge:before {transform: rotate(180deg);} +.icon-wide-mode:before {transform: rotate(90deg);} // -- END ICON CLASSES -- // @@ -254,6 +267,7 @@ .icon-false { color: @grey5 } .icon-expand-linked { cursor: pointer; color: @grey3; font-size: 14px } .icon-more-linked { cursor: pointer; color: @grey3 } +.icon-flag-filled-red { color: @color5 !important; } .repo-switcher-dropdown .select2-result-label { .icon-git:before { diff --git a/rhodecode/public/css/select2.less b/rhodecode/public/css/select2.less index 40b5dc48..88b8a42c 100644 --- a/rhodecode/public/css/select2.less +++ b/rhodecode/public/css/select2.less @@ -152,6 +152,8 @@ select.select2{height:28px;visibility:hidden} .drop-menu-no-width { .drop-menu-base; width: auto; + min-width: 0; + margin: 0; } .field-sm .drop-menu { diff --git a/rhodecode/public/css/summary.less b/rhodecode/public/css/summary.less index 77ad7274..54cb0df1 100644 --- a/rhodecode/public/css/summary.less +++ b/rhodecode/public/css/summary.less @@ -153,6 +153,7 @@ text-align: center; color: #949494; font-size: 11px; + line-height: 1.3em; &:hover { background: #f1f1f1; @@ -199,6 +200,10 @@ .fieldset { margin-bottom: 0; } + + .tags-main { + margin-bottom: 5px; + } } .fieldset { diff --git a/rhodecode/public/fonts/RCIcons/config.json b/rhodecode/public/fonts/RCIcons/config.json index dff70300..648ba7ee 100755 --- a/rhodecode/public/fonts/RCIcons/config.json +++ b/rhodecode/public/fonts/RCIcons/config.json @@ -563,6 +563,72 @@ "code": 61914, "src": "fontawesome" }, + { + "uid": "7034e4d22866af82bef811f52fb1ba46", + "css": "code", + "code": 61729, + "src": "fontawesome" + }, + { + "uid": "f3f90c8c89795da30f7444634476ea4f", + "css": "angle-left", + "code": 61700, + "src": "fontawesome" + }, + { + "uid": "7bf14281af5633a597f85b061ef1cfb9", + "css": "angle-right", + "code": 61701, + "src": "fontawesome" + }, + { + "uid": "5de9370846a26947e03f63142a3f1c07", + "css": "angle-up", + "code": 61702, + "src": "fontawesome" + }, + { + "uid": "e4dde1992f787163e2e2b534b8c8067d", + "css": "angle-down", + "code": 61703, + "src": "fontawesome" + }, + { + "uid": "4i0s2bklai5fywieqm4dqqngfz9ptfab", + "css": "flag-filled", + "code": 59428, + "src": "typicons" + }, + { + "uid": "3d4ea8a78dc34efe891f3a0f3d961274", + "css": "info", + "code": 61737, + "src": "fontawesome" + }, + { + "uid": "56a21935a5d4d79b2e91ec00f760b369", + "css": "sort", + "code": 61660, + "src": "fontawesome" + }, + { + "uid": "130380e481a7defc690dfb24123a1f0c", + "css": "circle", + "code": 61713, + "src": "fontawesome" + }, + { + "uid": "422e07e5afb80258a9c4ed1706498f8a", + "css": "circle-empty", + "code": 61708, + "src": "fontawesome" + }, + { + "uid": "5774d0a0e50f6eefc8be01bd761e5dd3", + "css": "circle-thin", + "code": 61915, + "src": "fontawesome" + }, { "uid": "c43db6645e7515889fc2193294f50767", "css": "plus", diff --git a/rhodecode/public/fonts/RCIcons/rcicons.eot b/rhodecode/public/fonts/RCIcons/rcicons.eot index 041a625cef455f924ff6020314e110f7355ddc65..a90776c9222c7300ddafe5d11867c2d70e988e1e 100755 GIT binary patch delta 2484 zcmZuxdu&r>6hG&?x3^_&ZaclZdzG=agCVkqrEGJI4P|d|nP_kX9Mr9QXt&m_Q#6Dc zLy(v`l+MMdiJG7>CjMdSlW2S!m+%KZ6X=47MjQSxy-|ryX+7WlhC|}L`F-bmo!>pr z`|M+wc?y;2c7T)Ho>1zg++5ESTONs90dN`sb`FdMqfd_h@C<3!anrcTv!9m>@9HzVH2z4X0VLd3FrTM#rijlF{e)e7N4DtO)SR0NE1naY_PmsQw z&gaI0`=hvzeMM(Qv@RbHj)nG|EBW#TfHqQKA4VgSu@5}$?*MeZOh$MT`_R|Y4M>*> zJ#)GFz0RiJ!7im~2TqU8T(~TAi@Du$jdUBWZNT_0JzTFl@e$sO@kD^789SYrVZOv> z$yvuX<#L=w+9iM?x=vu^EQho!cge)_0CJ50h7$c!Im=y29FR)mvnD;@3`pi|J;^*$ zo&_22q7T=k){v|c zfJ&0p0&y_Lq)*>M3}iK07RI{3cyAHLl%HKk`@7|C#eVkebk`7;D8%RIv~ymfJR#63&19l zngBGBED(UrBs~JqOp+qN0WBok1tJh)(Qy-$C$5DNW; zj~2;Ay+sce9WOdrbg{UixViYD;-5;oOJ+(wDs_}LmL7LA_ndoi<@%LRl~L~|x38El zxr6#E_a-|nS)hc9r%o@(*Q|=SvKp-gno^A$^8@vD{zBc)9xC4A>^i^P zy~nRtYKqU}t;QCt^RGgkZOU7;yX}j1UB%y29W`gx;nbL8F|RCdG4EF=o!V)xq5iq5 z>--`usjJC>yQQ?WgMJ!CP|7R7;>q`U*Hmsyy6QbFP9BnH{p?nt+!8Am>ZTo)WJkUD zH1;d0l%lvTs*?R%QBbzHWVgb+R?9+4QEA_T7CJ+j-!bXTVf$rH>yle7Sh*&^-6=#J zw_CD*ky6~PERnlpV!=i$-?zAlH?=_Lbe#QrnUwY6*WA#{v7%(~fN?{Kl=YcLE~HEY zxuK?2?^%iOUl+KUoYHih#ryCl;W@XGJ1yc(Y2`uh<5yiWcbmIUCUMvCEn%hU_P^BJ zY5H~MUX%7pcKX2-Q#`#YD?@)XRx{L8^j5QG^p_#NdfRj_yZy*3hj-p7_srn#iOT|t2T%Sy?b8+Tw_q8fNd z*4YWrpn~`MYF@+3`4ve=NyQqh#`=ZHNF*SSie=5LbMwcA<6Nf0e zW&FRnntIUc;iXI+vtgrI)O_aG3-f7^_%UtvZpJ{}CiLqV(p=deoYW$!&u5BnY4kbu zPF+1pO`{%lYJ(l-0Uy8BRk6svud}Ip%>8@l8YJV5XXM~=s$IN$Db-RLYnB36r@HIV zz6RE`=g7?A{>H}s!x*|ESM1}4eTR-6>Ti+*LkFHdFjAX+?uz8?YP|Pl-6Qjc;F`JlAMVHP8BlnLx21X|a=x%5% z8hbzy3&&6-JQ$h~d-+R?NHjDqcJkzb$Y4kw9UqD$ZfNgYWnZF*jf{?4C&QzpI%$bb K1Sdy$PT?Pwe|4b% delta 948 zcmY+CT}V@57{~wbcIG#JHFeH`g4%~|YPtNV<&0{UQfMD$O{nEoD>j|mgc-7Rl@N9z zha^IxqC&bV&RrN(AhDZ@KA^lXFC-3Log*X`;(Cs6UiiNJ-v4=?^SuA_aNbwB$ENPE zv?&*`dUPVKN$<9IPqd9C>H#(mpr=3R35{hg?*nuTfWdV&Fmh$?a{GHAV;X2$^!q&C zqF19$R7>yC=%++_T>pihXNW3)FdF-HA+<<;1l9tB{hqt$o;;xaJ1M>y^u$8!td8oL ziQvmZhQXbBgcS5Ste5I$5mH*B5GA_2>Wd5D@CbTl$IwB?`1H zFc5meN(j`$$qg5WmZWlOUjC}t`@27YM(l( zCe=B0UR_P402x$e+frpzU8-9Z4+*uEjLfdnjBS}WFpBu*6rT$T$!W-DS-MsFxHej) zGiee_)Q~%YYEl~q+evFV*g;yy0Ud@+hpvHLqoC=E^z;WUd-HAak{d1G;@G-B1lQlD2a|w@!6)Kn!$)Kuy!ePPZuKQ2ov3zscRy;(`KG*Z1#D7|iW=%jCsE+!2-zYEgK zBQpYXiUY^vlCGnGiRGQ$7DLDriTX0UgZ;LsFBZ)S1%@NG$k4DS?DLABI?KgBoxR)A TBY|sPUpQijhCLBKwFmqI6Z#8* diff --git a/rhodecode/public/fonts/RCIcons/rcicons.svg b/rhodecode/public/fonts/RCIcons/rcicons.svg index 798f0897..d227b617 100755 --- a/rhodecode/public/fonts/RCIcons/rcicons.svg +++ b/rhodecode/public/fonts/RCIcons/rcicons.svg @@ -78,6 +78,8 @@ + + @@ -102,16 +104,34 @@ + + + + + + + + + + + + + + + + + + @@ -126,6 +146,8 @@ + + diff --git a/rhodecode/public/fonts/RCIcons/rcicons.ttf b/rhodecode/public/fonts/RCIcons/rcicons.ttf index 567538e5a7fbcac3d5306bd158d27bf86f0a0721..ff76b7751c85c82f1b21a34d8ded7b9dee20cc58 100755 GIT binary patch delta 2460 zcmZuyX>40n7Cz^`#jb5VJMi+Hq^^_LX%kAb;G|ASgHveJER+%of>iBJQ|nfvRMvJ?FmLl2YNP z@1A#;^WAgKcklDXC-K8)@K`Wq1Hd@|xOZqGI{ozcxBmc;TmY(PH2%oQvrF}V0$B43 zKu6P9EIMoiqocI;D?)gT25g6En(L} zaq)h4$4}stax?YD%C1JFO%Bj=2KCIR4nHwnOvWJ3bHpt)uN;Cw9t!1>w)Qb1(+_XH?u z$S(>25$2Z#fC%$+OgMlD^A`kw2=fI2*bHEjdK?fYOR91}D_K<$4^0L*Ry(gMuA0;CF<`vgcIFc$=1 zJKumZ<{;6)q-)1P@`0HZAR)n|>&Zcqf_YH@dee3GJ8nOw)oG{P4}01?3B5`0(cdTy z7z4&@UhsyzPn5}J{bi4qohbXT>_T}>d8GWY^6xA9D&{NRS?gNczV?KV`4)UD>o%?X ztDi1&=A?bG;yya^#n;$5Nr4JFJz=A?M7ODd+6J_h>S_aSE@^2EhrC9JJyyQe-TzI0 zG3rrSAUz27BEPrB%%5WiRq>C^H@W`nm^Lu~_^!>tO!@4c5`A z)7_{B8gWBQxV1WD)aq)mI?#Zf7!FmU!L~S7oIdA@)6noo%|P8aIvO8nhQSw7H*;q=!cvq31wY8{0+Np$(Q8;+)zVh2f*l9dY*tl$il!ERQB{-` zkL*)fz@{u`RgK0KRA>%mzQ&@nnw?iTZI>hO#M%ulJYp{zxKk*(gk`r7|PW23E z%#Wc6HZasR3^cF^hWv;x-96XO?s@#wk$e9j@0!QGiT86KOsbEb`SJ82HotrB#N2MH zDJ;#NO(xHt=M9nLRpcbqDxb9HDgqo_b;>;1wi{FQ$u7Pr8|*abP{XhDdVWk-^%bI{ zq+ugAVC(e}tVBPq`5o1C9JuBb@Ur6eC8ntXyNVw%mn~?sW1I?R9gJ*NQAlDggVOce zgW{3->0!GrHQMab8p&m6OT^${TH)yLoB)qiT}tF<9HHv^`KNI`T{ByCU_T(-3$$R+GM`Z!bQ?W}c9iagcGRs8cUu#@ z{mjrrr|>U>%|2+2KS;|UlfC(KIkhUahhI>VTJp1q)N-xVy@&U=v5tL@&mS3VZy!8@ zv8%LV@3!qf{M6yW4!LFI;NK69H5Hy)6^}ArLkYhu?O|u>kM(-+!dj@LzkyErGInQ{ zA}`3;mriUuWZ_E~r9iN@4pLu9DnurZMqLZWXSbaP;l5~pK#Q5k~(k|X-r!UVB zPyKPyH8h?WqP4M!>Et7-=%gpRDjo9B)No85pB$M=|G8_R(s_AZa%_CkHWMEojwNQ4 MWFk5<#$|>717^ZywEzGB delta 929 zcmY+CTSyd99LB%1JKoB?wd%SqWvtz7%goJ7ZEjGkrW9Ie7p2(L+CprRU9A#l9lA`v{ zoR5*haA$AduQN;2^dng4=xPn!JNf)E*KcEdvoq8e5sfz13n$}(E1}NzmMPb#Vc;MS zV0#nk>goL$_}K&;s%QM-?wBVKfM6|Y@HNNJrTc$ltzBmZ-z(k6S9IymQnONQKfyQ| zHY>|!tqZ6d#8ok(4hmg0#3uETEj?x}x1avU6F@2cH_u#^Up=>K8M7r2JMj{QCp@;i z2}BLE)^=X%n&rGA+>8rRz&b_u=ta6uuQ0}qxRE(y%o&Sjwpneqm_ugVoKz$B>?E0W zs1NL=9>Il|+57(M*U^vYN>>w=823zkHmry&?vzSko3}=`Ds41D6R{#dC)iBgDZv)% zE(x|$`SKRvAJTafEU=wgB7xHpV3}(AbDeKx1P@0-76h z642aOlz`@@Ljszc*%I(dnn4N5sMQkiDw@p_@Bn6u1eMewjvRn}40s3&?59pj;HUnO z-~g2$&jM9|>P|UYx{wx4ugyr!2s#vp+cDsn%kk#i&iRt-&3&0W>-0GvIzQw&^MZM! zt~A%v{KWk3{8{Z)O5CM=Eu6~I@+$l`t;An1w27*3ini|Xm?8q|yPBwW_DH5sZ`3xZ h6SZ#DTenedtUI+nsi)&oTYGm;LT`7dC(Kg-e*xj+@8kdg diff --git a/rhodecode/public/fonts/RCIcons/rcicons.woff b/rhodecode/public/fonts/RCIcons/rcicons.woff index ce1edfade12afa523e7c7211219ef9697849ab77..f2f7433030662f9c791b008c0eafd3f65e5e766e 100755 GIT binary patch delta 10947 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 G0002SYsS<7 diff --git a/rhodecode/public/fonts/RCIcons/rcicons.woff2 b/rhodecode/public/fonts/RCIcons/rcicons.woff2 index 57e99161f3477a5f5ec4bc8f8ef04091d5e743ec..593ab60a90db9ffd9c426f41b5954e866a06bac0 100755 GIT binary patch literal 9748 zcmV+vChOUEPew8T0RR91045Xw3jhEB087jO042i!0RR9100000000000000000000 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 literal 9124 zcmV;VBU{{ePew8T0RR9103)OT3jhEB07du!03%WW0RR9100000000000000000000 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 +<%namespace name="base" file="/base/base.mako"/> <%namespace name="diff_block" file="/changeset/diff_block.mako"/> +<%namespace name="file_base" file="/files/base.mako"/> <%def name="title()"> - ${_('%s Commit') % c.repo_name} - ${h.show_id(c.commit)} + ${_('{} Commit').format(c.repo_name)} - ${h.show_id(c.commit)} %if c.rhodecode_name: · ${h.branding(c.rhodecode_name)} %endif @@ -19,120 +21,111 @@ <%def name="main()"> - +
-
-
-
-
-

${_('Commit')}

-
- - ${h.show_id(c.commit)} - - - % if hasattr(c.commit, 'phase'): - ${c.commit.phase} - % endif +
- ## obsolete commits - % if hasattr(c.commit, 'obsolete'): - % if c.commit.obsolete: - ${_('obsolete')} +
+
+ +
+ ${base.gravatar(c.commit.author_email, 30)} +
+ +
+
+
${h.urlify_commit_message(h.chop_at_smart(c.commit.message, '\n', suffix_if_chopped='...'), c.repo_name)}
+
+ + + +
+
+ + + + + + + +
+ ${h.link_to_user(c.commit.author)} + - ${h.age_component(c.commit.date)} + + ## second cell for consistency with files +
+
+
+ +
+
+ +
+ +
+
+ ${h.show_id(c.commit)} + + ${file_base.refs(c.commit)} + + ## phase + % if hasattr(c.commit, 'phase') and getattr(c.commit, 'phase') != 'public': + + ${c.commit.phase} + % endif - % endif - ## hidden commits - % if hasattr(c.commit, 'hidden'): - % if c.commit.hidden: - ${_('hidden')} + ## obsolete commits + % if getattr(c.commit, 'obsolete', False): + + ${_('obsolete')} + % endif - % endif - -
- - ${_('parent')} - - | - - ${_('child')} - + ## hidden commits + % if getattr(c.commit, 'hidden', False): + + ${_('hidden')} + + % endif
-
-
+ %if c.statuses: +
+ +
${h.commit_status_lbl(c.statuses[0])}
+
+ %endif +
+
+
- -
+ - %if c.statuses: -
-
-

${_('Commit status')}:

-
-
-
-
-
[${h.commit_status_lbl(c.statuses[0])}]
-
-
-
- %endif - -
-
-

${_('References')}:

-
-
- %if c.commit.merge: - - ${_('merge')} - - %endif - - %if h.is_hg(c.rhodecode_repo): - %for book in c.commit.bookmarks: - - ${h.shorter(book)} - - %endfor - %endif - - %for tag in c.commit.tags: - - ${tag} - - %endfor - - %if c.commit.branch: - - ${h.shorter(c.commit.branch)} - - %endif -
-
-
-
- -
+ +
<%namespace name="cbdiffs" file="/codeblocks/diffs.mako"/> ${cbdiffs.render_diffset_menu(c.changes[c.commit.raw_id])} @@ -212,6 +161,11 @@ c.changes[c.commit.raw_id], commit=c.commit, use_comments=True,inline_comments=c.inline_comments )}
+
+ + ${_('Comments')} ${len(c.comments)} +
+ ## template for inline comment form <%namespace name="comment" file="/changeset/changeset_file_comment.mako"/> @@ -350,6 +304,7 @@ // inject comments into their proper positions var file_comments = $('.inline-comment-placeholder'); + }) diff --git a/rhodecode/templates/changeset/changeset_range.mako b/rhodecode/templates/changeset/changeset_range.mako index 14c5b6ef..7c4bb4e6 100644 --- a/rhodecode/templates/changeset/changeset_range.mako +++ b/rhodecode/templates/changeset/changeset_range.mako @@ -23,6 +23,7 @@ <%def name="main()"> +
@@ -60,8 +61,7 @@
-
- <%namespace name="comment" file="/changeset/changeset_file_comment.mako"/> <%namespace name="diff_block" file="/changeset/diff_block.mako"/> - ${cbdiffs.render_diffset_menu()} + %for commit in c.commit_ranges: + ${cbdiffs.render_diffset_menu(c.changes[commit.raw_id])} ${cbdiffs.render_diffset( diffset=c.changes[commit.raw_id], collapse_when_files_over=5, diff --git a/rhodecode/templates/codeblocks/diffs.mako b/rhodecode/templates/codeblocks/diffs.mako index 09cb1990..601c2f64 100644 --- a/rhodecode/templates/codeblocks/diffs.mako +++ b/rhodecode/templates/codeblocks/diffs.mako @@ -50,6 +50,12 @@ return '%s_%s_%i' % (h.md5_safe(commit+filename), type, line) inline_comments=None, )"> + +<% + diffset_container_id = h.md5(diffset.target_ref) + collapse_all = len(diffset.files) > collapse_when_files_over +%> + %if use_comments:
${inline_comments_container([], inline_comments)} @@ -79,9 +85,6 @@ return '%s_%s_%i' % (h.md5_safe(commit+filename), type, line)
%endif -<% -collapse_all = len(diffset.files) > collapse_when_files_over -%> %if c.user_session_attrs["diffmode"] == 'sideside':