Files @ 11feddcd75bb
Branch filter:

Location: kallithea/rhodecode/templates/pullrequests/pullrequest.html - annotation

Marcin Kuzminski
after hooks cleanup we don't need to have ui injections into repo so we don't need to cache git repos
- change to @property fixes all odd concurrency issues with zlib decompressions
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
f29469677319
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
79818f546538
77e376fdc4c6
f74be3359044
77e376fdc4c6
f74be3359044
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
f29469677319
f29469677319
77e376fdc4c6
77e376fdc4c6
dcd1c159a132
77e376fdc4c6
f8c55b487c9a
77e376fdc4c6
bbe21df7ad48
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
b262e349a7a5
77e376fdc4c6
f29469677319
77e376fdc4c6
77e376fdc4c6
dcd1c159a132
77e376fdc4c6
f285faa3a602
77e376fdc4c6
bbe21df7ad48
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
f29469677319
f29469677319
f29469677319
51e3d60fed2f
51e3d60fed2f
f29469677319
77e376fdc4c6
b262e349a7a5
b262e349a7a5
b262e349a7a5
9364776d1331
9364776d1331
9364776d1331
9364776d1331
ad3573d744ef
ad3573d744ef
ad3573d744ef
ad3573d744ef
ad3573d744ef
cb40b3f6428c
ad3573d744ef
ad3573d744ef
9364776d1331
9364776d1331
d5e42c00f3c1
d5e42c00f3c1
9364776d1331
9364776d1331
9364776d1331
9364776d1331
d5e42c00f3c1
9364776d1331
9364776d1331
b262e349a7a5
f29469677319
b262e349a7a5
f29469677319
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
c44645e5a836
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
7ae36df760ce
7ae36df760ce
77e376fdc4c6
77e376fdc4c6
77e376fdc4c6
f29469677319
f29469677319
77e376fdc4c6
77e376fdc4c6
b262e349a7a5
9364776d1331
9364776d1331
9364776d1331
9364776d1331
1c2ba03c42b4
0b86972de820
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
ba2cbb642c3e
b262e349a7a5
a91fa221a3b8
f29469677319
c9b0f1d363c7
c9b0f1d363c7
c9b0f1d363c7
c9b0f1d363c7
c9b0f1d363c7
c9b0f1d363c7
70309536c143
2053053e0882
75e563531350
a91fa221a3b8
a91fa221a3b8
cfc0fef66ddd
a91fa221a3b8
a91fa221a3b8
cfc0fef66ddd
b262e349a7a5
a91fa221a3b8
c4bb2b22110e
c4bb2b22110e
c4bb2b22110e
c4bb2b22110e
c4bb2b22110e
c4bb2b22110e
a91fa221a3b8
cfc0fef66ddd
a91fa221a3b8
95a226b35b91
b262e349a7a5
f29469677319
cf3c2fce197e
a2a61978752f
a2a61978752f
0153f5514aa3
0153f5514aa3
b262e349a7a5
c5dde6b5e976
5ef64956c385
5ef64956c385
5ef64956c385
5ef64956c385
5ef64956c385
5ef64956c385
c5dde6b5e976
ba2cbb642c3e
5ef64956c385
c5dde6b5e976
c5dde6b5e976
5ef64956c385
5ef64956c385
5ef64956c385
f29469677319
ba2cbb642c3e
f29469677319
ba2cbb642c3e
f29469677319
b262e349a7a5
b262e349a7a5
77e376fdc4c6
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${c.repo_name} ${_('New pull request')}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_(u'Home'),h.url('/'))}
    &raquo;
    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
    &raquo;
    ${_('new pull request')}
</%def>

<%def name="main()">

<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
    </div>
    ${h.form(url('pullrequest', repo_name=c.repo_name), method='post', id='pull_request_form')}
    <div style="float:left;padding:0px 30px 30px 30px">
        ##ORG
        <div style="float:left">
            <div>
                <span style="font-size: 20px">
                ${h.select('org_repo','',c.org_repos,class_='refs')}:${h.select('org_ref',c.default_org_ref,c.org_refs,class_='refs')}
                </span>
                 <div style="padding:5px 3px 3px 20px;">${c.rhodecode_db_repo.description}</div>
            </div>
            <div style="clear:both;padding-top: 10px"></div>
        </div>
          <div style="float:left;font-size:24px;padding:0px 20px">
          <img height=32 width=32 src="${h.url('/images/arrow_right_64.png')}"/>
          </div>

        ##OTHER, most Probably the PARENT OF THIS FORK
        <div style="float:left">
            <div>
                <span style="font-size: 20px">
                ${h.select('other_repo',c.default_other_repo,c.other_repos,class_='refs')}:${h.select('other_ref',c.default_other_ref,c.default_other_refs,class_='refs')}
                </span>
                 <div id="other_repo_desc" style="padding:5px 3px 3px 20px;"></div>
            </div>
            <div style="clear:both;padding-top: 10px"></div>
        </div>
       <div style="clear:both;padding-top: 10px"></div>
       ## overview pulled by ajax
       <div style="float:left" id="pull_request_overview"></div>
       <div style="float:left;clear:both;padding:10px 10px 10px 0px;display:none">
            <a id="pull_request_overview_url" href="#">${_('Detailed compare view')}</a>
       </div>
     </div>
    <div style="float:left; border-left:1px dashed #eee">
        <h4>${_('Pull request reviewers')}</h4>
        <div id="reviewers" style="padding:0px 0px 0px 15px">
          ## members goes here !
          <div class="group_members_wrap">
            <ul id="review_members" class="group_members">
            %for member in c.review_members:
              <li id="reviewer_${member.user_id}">
                <div class="reviewers_member">
                  <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(member.email,14)}"/> </div>
                  <div style="float:left">${member.full_name} (${_('owner')})</div>
                  <input type="hidden" value="${member.user_id}" name="review_members" />
                  <span class="delete_icon action_button" onclick="removeReviewMember(${member.user_id})"></span>
                </div>
              </li>
            %endfor
            </ul>
          </div>

          <div class='ac'>
            <div class="reviewer_ac">
               ${h.text('user', class_='yui-ac-input')}
               <span class="help-block">${_('Add reviewer to this pull request.')}</span>
               <div id="reviewers_container"></div>
            </div>
          </div>
        </div>
    </div>
    <h3>${_('Create new pull request')}</h3>

    <div class="form">
        <!-- fields -->

        <div class="fields">

             <div class="field">
                <div class="label">
                    <label for="pullrequest_title">${_('Title')}:</label>
                </div>
                <div class="input">
                    ${h.text('pullrequest_title',size=30)}
                </div>
             </div>

            <div class="field">
                <div class="label label-textarea">
                    <label for="pullrequest_desc">${_('Description')}:</label>
                </div>
                <div class="textarea text-area editor">
                    ${h.textarea('pullrequest_desc',size=30)}
                </div>
            </div>

            <div class="buttons">
                ${h.submit('save',_('Send pull request'),class_="ui-btn large")}
                ${h.reset('reset',_('Reset'),class_="ui-btn large")}
           </div>
        </div>
    </div>
    ${h.end_form()}

</div>

<script type="text/javascript">
  var _USERS_AC_DATA = ${c.users_array|n};
  var _GROUPS_AC_DATA = ${c.users_groups_array|n};
  PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);

  var other_repos_info = ${c.other_repos_info|n};

  var otherrepoChanged = function(){
      var sel_box = YUQ('#pull_request_form #other_repo')[0];
      var repo_name = sel_box.options[sel_box.selectedIndex].value;

      YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
      // replace options of other_ref with the ones for the current other_repo
      var other_ref_selector = YUD.get('other_ref');
      var new_select = YUD.createElementFromMarkup(other_repos_info[repo_name]['revs']);
      var new_selectedIndex = new_select.selectedIndex;
      other_ref_selector.innerHTML = ""; // clear old options
      while (new_select.length > 0){ // children will be popped when appened to other_ref_selector
          other_ref_selector.appendChild(new_select.children[0]);
      }
      // browsers lost track of selected when appendChild was used
      other_ref_selector.selectedIndex = new_selectedIndex;

      // reset && add the reviewer based on selected repo
      var _data = other_repos_info[repo_name];
      YUD.get('review_members').innerHTML = '';
      addReviewMember(_data.user.user_id, _data.user.firstname,
                      _data.user.lastname, _data.user.username,
                      _data.user.gravatar_link);
  }

  var loadPreview = function(){
      //url template
      var url = "${h.url('compare_url',
                         repo_name='__other_repo__',
                         org_ref_type='__other_ref_type__',
                         org_ref='__other_ref__',
                         other_repo='__org_repo__',
                         other_ref_type='__org_ref_type__',
                         other_ref='__org_ref__',
                         as_form=True,
                         merge=True,
                         )}";
      var org_repo = YUQ('#pull_request_form #org_repo')[0].value;
      var org_ref = YUQ('#pull_request_form #org_ref')[0].value.split(':');

      var other_repo = YUQ('#pull_request_form #other_repo')[0].value;
      var other_ref = YUQ('#pull_request_form #other_ref')[0].value.split(':');

      var select_refs = YUQ('#pull_request_form select.refs')
      var rev_data = {
          'org_repo': org_repo,
          'org_ref': org_ref[2],
          'org_ref_type': 'rev',
          'other_repo': other_repo,
          'other_ref': other_ref[2],
          'other_ref_type': 'rev',
      }; // gather the org/other ref and repo here

      for (k in rev_data){
          url = url.replace('__'+k+'__',rev_data[k]);
      }

      YUD.get('pull_request_overview').innerHTML = "${_('Loading ...')}";
      ypjax(url,'pull_request_overview');

      YUD.get('pull_request_overview_url').href = url; // shouldn't have as_form ... but ...
      YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','');
  }

  ## refresh automatically when something changes (org_repo can't change)

  YUE.on('org_ref', 'change', function(e){
     loadPreview();
  });

  YUE.on('other_repo', 'change', function(e){
      otherrepoChanged();
      loadPreview();
  });

  YUE.on('other_ref', 'change', function(e){
     loadPreview();
  });

  otherrepoChanged();
  //lazy load overview after 0.5s
  setTimeout(loadPreview, 500);

</script>

</%def>