Welcome to mirror list, hosted at ThFree Co, Russian Federation.

compare.js « new « creations « merge_requests « projects « pages « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: eb2692c7cb4e67ac1eccd46beb75dfff3475a058 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import $ from 'jquery';
import { localTimeAgo } from '~/lib/utils/datetime_utility';
import axios from '~/lib/utils/axios_utils';
import initCompareAutocomplete from '~/compare_autocomplete';
import initTargetProjectDropdown from './target_project_dropdown';

const updateCommitList = (url, $loadingIndicator, $commitList, params) => {
  $loadingIndicator.show();
  $commitList.empty();

  return axios
    .get(url, {
      params,
    })
    .then(({ data }) => {
      $loadingIndicator.hide();
      $commitList.html(data);
      localTimeAgo($('.js-timeago', $commitList));
    });
};

export default (mrNewCompareNode) => {
  const { sourceBranchUrl, targetBranchUrl } = mrNewCompareNode.dataset;
  initTargetProjectDropdown();

  const updateSourceBranchCommitList = () =>
    updateCommitList(
      sourceBranchUrl,
      $(mrNewCompareNode).find('.js-source-loading'),
      $(mrNewCompareNode).find('.mr_source_commit'),
      {
        ref: $(mrNewCompareNode).find("input[name='merge_request[source_branch]']").val(),
      },
    );
  const updateTargetBranchCommitList = () =>
    updateCommitList(
      targetBranchUrl,
      $(mrNewCompareNode).find('.js-target-loading'),
      $(mrNewCompareNode).find('.mr_target_commit'),
      {
        target_project_id: $(mrNewCompareNode)
          .find("input[name='merge_request[target_project_id]']")
          .val(),
        ref: $(mrNewCompareNode).find("input[name='merge_request[target_branch]']").val(),
      },
    );
  initCompareAutocomplete('branches', ($dropdown) => {
    if ($dropdown.is('.js-target-branch')) {
      updateTargetBranchCommitList();
    } else if ($dropdown.is('.js-source-branch')) {
      updateSourceBranchCommitList();
    }
  });
  updateSourceBranchCommitList();
  updateTargetBranchCommitList();
};