comparison rhodecode/templates/pullrequests/pullrequest.html @ 2434:f29469677319 codereview

Added basic models for saving open pull requests - added pull-request models - added pull-requests notifications into inbox
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 10 Jun 2012 02:08:10 +0200
parents 51e3d60fed2f
children 79818f546538
comparison
equal deleted inserted replaced
2433:74f2910f7ad9 2434:f29469677319
1 <%inherit file="/base/base.html"/> 1 <%inherit file="/base/base.html"/>
2 2
3 <%def name="title()"> 3 <%def name="title()">
4 ${c.repo_name} ${_('Pull request')} 4 ${c.repo_name} ${_('New pull request')}
5 </%def> 5 </%def>
6 6
7 <%def name="breadcrumbs_links()"> 7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))} 8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo; 9 &raquo;
10 ${h.link_to(c.repo_name,h.url('changelog_home',repo_name=c.repo_name))} 10 ${h.link_to(c.repo_name,h.url('changelog_home',repo_name=c.repo_name))}
11 &raquo; 11 &raquo;
12 ${_('Pull request')} 12 ${_('New pull request')}
13 </%def> 13 </%def>
14 14
15 <%def name="main()"> 15 <%def name="main()">
16 16
17 <div class="box"> 17 <div class="box">
18 <!-- box / title --> 18 <!-- box / title -->
19 <div class="title"> 19 <div class="title">
20 ${self.breadcrumbs()} 20 ${self.breadcrumbs()}
21 </div> 21 </div>
22 ${h.form(url('#'),method='put', id='pull_request_form')} 22 ${h.form(url('pullrequest', repo_name=c.repo_name), method='post', id='pull_request_form')}
23 <div style="float:left;padding:30px"> 23 <div style="float:left;padding:0px 30px 30px 30px">
24 <div style="padding:0px 5px 5px 5px">
25 <span>
26 <a id="refresh" href="#">
27 <img class="icon" title="${_('Refresh')}" alt="${_('Refresh')}" src="${h.url('/images/icons/arrow_refresh.png')}"/>
28 ${_('refresh overview')}
29 </a>
30 </span>
31 </div>
24 ##ORG 32 ##ORG
25 <div style="float:left"> 33 <div style="float:left">
26 <div class="fork_user"> 34 <div class="fork_user">
27 <div class="gravatar"> 35 <div class="gravatar">
28 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_db_repo.user.email,24)}"/> 36 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_db_repo.user.email,24)}"/>
35 <div style="clear:both;padding-top: 10px"></div> 43 <div style="clear:both;padding-top: 10px"></div>
36 </div> 44 </div>
37 <div style="float:left;font-size:24px;padding:0px 20px"> 45 <div style="float:left;font-size:24px;padding:0px 20px">
38 <img height=32 width=32 src="${h.url('/images/arrow_right_64.png')}"/> 46 <img height=32 width=32 src="${h.url('/images/arrow_right_64.png')}"/>
39 </div> 47 </div>
40 48
41 ##OTHER, most Probably the PARENT OF THIS FORK 49 ##OTHER, most Probably the PARENT OF THIS FORK
42 <div style="float:left"> 50 <div style="float:left">
43 <div class="fork_user"> 51 <div class="fork_user">
44 <div class="gravatar"> 52 <div class="gravatar">
45 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_db_repo.user.email,24)}"/> 53 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_db_repo.user.email,24)}"/>
46 </div> 54 </div>
47 <span style="font-size: 20px"> 55 <span style="font-size: 20px">
48 ${h.select('other_repo','',c.other_repos,class_='refs')}:${h.select('other_ref','',c.other_refs,class_='refs')} 56 ${h.select('other_repo',c.default_pull_request ,c.other_repos,class_='refs')}:${h.select('other_ref','',c.other_refs,class_='refs')}
49 </span> 57 </span>
50 <div style="padding:5px 3px 3px 42px;">${c.rhodecode_db_repo.description}</div> 58 <div style="padding:5px 3px 3px 42px;">${c.rhodecode_db_repo.description}</div>
51 </div> 59 </div>
52 <div style="clear:both;padding-top: 10px"></div> 60 <div style="clear:both;padding-top: 10px"></div>
53 </div> 61 </div>
54 <div style="float:left;padding:5px 5px 5px 15px"> 62 <div style="clear:both;padding-top: 10px"></div>
55 <span> 63 ## overview pulled by ajax
56 <a id="refresh" href="#"> 64 <div style="float:left" id="pull_request_overview"></div>
57 <img class="icon" title="${_('Refresh')}" alt="${_('Refresh')}" src="${h.url('/images/icons/arrow_refresh.png')}"/>
58 ${_('refresh overview')}
59 </a>
60 </span>
61 </div>
62 <div style="clear:both;padding-top: 10px"></div>
63 <div style="float:left" id="pull_request_overview">
64 </div>
65 <div style="float:left;clear:both;padding:10px 10px 10px 0px;display:none"> 65 <div style="float:left;clear:both;padding:10px 10px 10px 0px;display:none">
66 <a id="pull_request_overview_url" href="#">${_('Detailed compare view')}</a> 66 <a id="pull_request_overview_url" href="#">${_('Detailed compare view')}</a>
67 </div> 67 </div>
68 </div> 68 </div>
69 <div style="float:left; border-left:1px dashed #eee"> 69 <div style="float:left; border-left:1px dashed #eee">
70 <h4>${_('Pull request reviewers')}</h4> 70 <h4>${_('Pull request reviewers')}</h4>
71 <div id="reviewers" style="padding:0px 0px 0px 15px"> 71 <div id="reviewers" style="padding:0px 0px 0px 15px">
72 ##TODO: make this nicer :) 72 ##TODO: make this nicer :)
73 <table class="table noborder"> 73 <table class="table noborder">
74 <tr> 74 <tr>
75 <td> 75 <td>
76 <div> 76 <div>
77 <div style="float:left"> 77 <div style="float:left">
78 <div class="text" style="padding: 0px 0px 6px;">${_('Choosen reviewers')}</div> 78 <div class="text" style="padding: 0px 0px 6px;">${_('Chosen reviewers')}</div>
79 ${h.select('review_members',[x[0] for x in c.review_members],c.review_members,multiple=True,size=8,style="min-width:210px")} 79 ${h.select('review_members',[x[0] for x in c.review_members],c.review_members,multiple=True,size=8,style="min-width:210px")}
80 <div id="remove_all_elements" style="cursor:pointer;text-align:center"> 80 <div id="remove_all_elements" style="cursor:pointer;text-align:center">
81 ${_('Remove all elements')} 81 ${_('Remove all elements')}
82 <img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/> 82 <img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/>
83 </div> 83 </div>
100 </div> 100 </div>
101 </div> 101 </div>
102 </div> 102 </div>
103 </td> 103 </td>
104 </tr> 104 </tr>
105 </table> 105 </table>
106 </div> 106 </div>
107 </div> 107 </div>
108 <h3>${_('Create new pull request')}</h3> 108 <h3>${_('Create new pull request')}</h3>
109 109
110 <div class="form"> 110 <div class="form">
111 <!-- fields --> 111 <!-- fields -->
112 112
113 <div class="fields"> 113 <div class="fields">
114 114
134 ${h.submit('save',_('Send pull request'),class_="ui-button")} 134 ${h.submit('save',_('Send pull request'),class_="ui-button")}
135 ${h.reset('reset',_('Reset'),class_="ui-button")} 135 ${h.reset('reset',_('Reset'),class_="ui-button")}
136 </div> 136 </div>
137 </div> 137 </div>
138 </div> 138 </div>
139 ${h.end_form()} 139 ${h.end_form()}
140 140
141 </div> 141 </div>
142 142
143 <script type="text/javascript"> 143 <script type="text/javascript">
144 MultiSelectWidget('review_members','available_members','pull_request_form'); 144 MultiSelectWidget('review_members','available_members','pull_request_form');
145 145
146 var loadPreview = function(){ 146 var loadPreview = function(){
147 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none'); 147 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
148 var url = "${h.url('compare_url', 148 var url = "${h.url('compare_url',
149 repo_name='org_repo', 149 repo_name='org_repo',
150 org_ref_type='branch', org_ref='org_ref', 150 org_ref_type='branch', org_ref='org_ref',
151 other_ref_type='branch', other_ref='other_ref', 151 other_ref_type='branch', other_ref='other_ref',
152 repo='other_repo')}"; 152 repo='other_repo',
153 153 as_form=True)}";
154
154 var select_refs = YUQ('#pull_request_form select.refs') 155 var select_refs = YUQ('#pull_request_form select.refs')
155 156
156 for(var i=0;i<select_refs.length;i++){ 157 for(var i=0;i<select_refs.length;i++){
157 var select_ref = select_refs[i]; 158 var select_ref = select_refs[i];
158 var select_ref_data = select_ref.value.split(':'); 159 var select_ref_data = select_ref.value.split(':');
159 var key = null; 160 var key = null;
160 var val = null; 161 var val = null;
161 if(select_ref_data.length>1){ 162 if(select_ref_data.length>1){
162 key = select_ref.name+"_type"; 163 key = select_ref.name+"_type";
163 val = select_ref_data[0]; 164 val = select_ref_data[0];
164 url = url.replace(key,val); 165 url = url.replace(key,val);
165 166
166 key = select_ref.name; 167 key = select_ref.name;
167 val = select_ref_data[1]; 168 val = select_ref_data[1];
168 url = url.replace(key,val); 169 url = url.replace(key,val);
169 170
170 }else{ 171 }else{
171 key = select_ref.name; 172 key = select_ref.name;
172 val = select_ref.value; 173 val = select_ref.value;
173 url = url.replace(key,val); 174 url = url.replace(key,val);
174 } 175 }
175 } 176 }
176 177
177 ypjax(url,'pull_request_overview', function(data){ 178 ypjax(url,'pull_request_overview', function(data){
178 YUD.get('pull_request_overview_url').href = url; 179 YUD.get('pull_request_overview_url').href = url;
179 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display',''); 180 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','');
180 }) 181 })
181 } 182 }
182 YUE.on('refresh','click',function(e){ 183 YUE.on('refresh','click',function(e){
183 loadPreview() 184 loadPreview()
184 }) 185 })
185 186
186 //lazy load after 0.5 187 //lazy load overview after 0.5s
187 188 setTimeout(loadPreview, 500)
188 setTimeout(loadPreview,500) 189
189
190 </script> 190 </script>
191 191
192 </%def> 192 </%def>