mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	Remove duplicate logic in initListSubmits (#12660)
* Remove duplicate logic in initListSubmits Using the same logic to handle Choosing reviewers and assignees as choosing label. It's the first step of #10926. Signed-off-by: a1012112796 <1012112796@qq.com> * fix choose block * fix nit * try fix bug * simple code Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		@@ -1516,10 +1516,11 @@ func updatePullReviewRequest(ctx *context.Context) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	reviewID := ctx.QueryInt64("id")
 | 
						reviewID := ctx.QueryInt64("id")
 | 
				
			||||||
	event := ctx.Query("is_add")
 | 
						action := ctx.Query("action")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if event != "add" && event != "remove" {
 | 
						// TODO: Not support 'clear' now
 | 
				
			||||||
		ctx.ServerError("updatePullReviewRequest", fmt.Errorf("is_add should not be \"%s\"", event))
 | 
						if action != "attach" && action != "detach" {
 | 
				
			||||||
 | 
							ctx.Status(403)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1532,19 +1533,20 @@ func updatePullReviewRequest(ctx *context.Context) {
 | 
				
			|||||||
				return
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			err = isLegalReviewRequest(reviewer, ctx.User, event == "add", issue)
 | 
								err = isLegalReviewRequest(reviewer, ctx.User, action == "attach", issue)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				ctx.ServerError("isLegalRequestReview", err)
 | 
									ctx.ServerError("isLegalRequestReview", err)
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			err = issue_service.ReviewRequest(issue, ctx.User, reviewer, event == "add")
 | 
								err = issue_service.ReviewRequest(issue, ctx.User, reviewer, action == "attach")
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				ctx.ServerError("ReviewRequest", err)
 | 
									ctx.ServerError("ReviewRequest", err)
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			ctx.ServerError("updatePullReviewRequest", fmt.Errorf("%d in %d is not Pull Request", issue.ID, issue.Repo.ID))
 | 
								ctx.Status(403)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,7 +49,7 @@
 | 
				
			|||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
								{{if $canChoose }}
 | 
													{{if $canChoose }}
 | 
				
			||||||
									<a href="#" class="ui poping up icon re-request-review" data-is-checked="{{if  eq .Type 4}}remove{{else}}add{{end}}" data-issue-id="{{$.Issue.ID}}" data-content="{{ if eq .Type 4 }} {{$.i18n.Tr "repo.issues.remove_request_review"}} {{else}} {{$.i18n.Tr "repo.issues.re_request_review"}} {{end}}"  data-id="{{.ReviewerID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
														<a href="#" class="ui poping up icon re-request-review" data-is-checked="{{if  eq .Type 4}}true{{else}}false{{end}}" data-issue-id="{{$.Issue.ID}}" data-content="{{ if eq .Type 4 }} {{$.i18n.Tr "repo.issues.remove_request_review"}} {{else}} {{$.i18n.Tr "repo.issues.re_request_review"}} {{end}}"  data-id="{{.ReviewerID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
				
			||||||
										{{svg "octicon-sync" 16}}
 | 
															{{svg "octicon-sync" 16}}
 | 
				
			||||||
									</a>
 | 
														</a>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
					{{svg "octicon-gear" 16}}
 | 
										{{svg "octicon-gear" 16}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</span>
 | 
								</span>
 | 
				
			||||||
			<div class="filter menu" data-action="" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
								<div class="filter menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
				
			||||||
				<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_reviewer_title"}}</div>
 | 
									<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_reviewer_title"}}</div>
 | 
				
			||||||
				{{if .Reviewers}}
 | 
									{{if .Reviewers}}
 | 
				
			||||||
					<div class="ui icon search input">
 | 
										<div class="ui icon search input">
 | 
				
			||||||
@@ -44,7 +44,7 @@
 | 
				
			|||||||
						{{$canChoose = true}}
 | 
											{{$canChoose = true}}
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<a class="{{if not $canChoose}}ui poping up{{end}} item {{if $checked}} checked {{end}}" href="#" data-id="{{.ID}}" data-id-selector="#review_request_{{.ID}}" data-can-change="{{if not $canChoose}}block{{end}}" {{if not $canChoose}} data-content="{{$.i18n.Tr "repo.issues.remove_request_review_block"}}"{{end}} data-is-checked="{{if $checked}}add{{else}}remove{{end}}">
 | 
										<a class="{{if not $canChoose}}ui poping up{{end}} item {{if $checked}} checked {{end}} {{if not $canChoose}}ban-change{{end}}" href="#" data-id="{{.ID}}" data-id-selector="#review_request_{{.ID}}" {{if not $canChoose}} data-content="{{$.i18n.Tr "repo.issues.remove_request_review_block"}}"{{end}}>
 | 
				
			||||||
						<span class="octicon-check {{if not $checked}}invisible{{end}}">{{svg "octicon-check" 16}}</span>
 | 
											<span class="octicon-check {{if not $checked}}invisible{{end}}">{{svg "octicon-check" 16}}</span>
 | 
				
			||||||
						<span class="text">
 | 
											<span class="text">
 | 
				
			||||||
							<img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}}
 | 
												<img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}}
 | 
				
			||||||
@@ -78,7 +78,7 @@
 | 
				
			|||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							{{if $canChoose}}
 | 
												{{if $canChoose}}
 | 
				
			||||||
								<a href="#" class="ui poping up icon re-request-review" data-is-checked="{{if  eq .Type 4}}remove{{else}}add{{end}}" data-content="{{ if eq .Type 4 }} {{$.i18n.Tr "repo.issues.remove_request_review"}} {{else}} {{$.i18n.Tr "repo.issues.re_request_review"}} {{end}}" data-issue-id="{{$.Issue.ID}}"  data-id="{{.ReviewerID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
													<a href="#" class="ui poping up icon re-request-review" data-is-checked="{{if  eq .Type 4}}true{{else}}false{{end}}" data-content="{{ if eq .Type 4 }} {{$.i18n.Tr "repo.issues.remove_request_review"}} {{else}} {{$.i18n.Tr "repo.issues.re_request_review"}} {{end}}" data-issue-id="{{$.Issue.ID}}"  data-id="{{.ReviewerID}}" data-update-url="{{$.RepoLink}}/issues/request_review">
 | 
				
			||||||
									{{svg "octicon-sync" 16}}
 | 
														{{svg "octicon-sync" 16}}
 | 
				
			||||||
								</a>
 | 
													</a>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
@@ -244,7 +244,7 @@
 | 
				
			|||||||
					{{svg "octicon-gear" 16}}
 | 
										{{svg "octicon-gear" 16}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</span>
 | 
								</span>
 | 
				
			||||||
			<div class="filter menu" data-action="" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/assignee">
 | 
								<div class="filter menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/assignee">
 | 
				
			||||||
				<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_assignees_title"}}</div>
 | 
									<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_assignees_title"}}</div>
 | 
				
			||||||
				<div class="ui icon search input">
 | 
									<div class="ui icon search input">
 | 
				
			||||||
					<i class="search icon"></i>
 | 
										<i class="search icon"></i>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -157,7 +157,7 @@ function initLabelEdit() {
 | 
				
			|||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function updateIssuesMeta(url, action, issueIds, elementId, isAdd) {
 | 
					function updateIssuesMeta(url, action, issueIds, elementId) {
 | 
				
			||||||
  return new Promise(((resolve) => {
 | 
					  return new Promise(((resolve) => {
 | 
				
			||||||
    $.ajax({
 | 
					    $.ajax({
 | 
				
			||||||
      type: 'POST',
 | 
					      type: 'POST',
 | 
				
			||||||
@@ -167,7 +167,6 @@ function updateIssuesMeta(url, action, issueIds, elementId, isAdd) {
 | 
				
			|||||||
        action,
 | 
					        action,
 | 
				
			||||||
        issue_ids: issueIds,
 | 
					        issue_ids: issueIds,
 | 
				
			||||||
        id: elementId,
 | 
					        id: elementId,
 | 
				
			||||||
        is_add: isAdd
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      success: resolve
 | 
					      success: resolve
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@@ -373,21 +372,20 @@ function initCommentForm() {
 | 
				
			|||||||
    const $list = $(`.ui.${outerSelector}.list`);
 | 
					    const $list = $(`.ui.${outerSelector}.list`);
 | 
				
			||||||
    const $noSelect = $list.find('.no-select');
 | 
					    const $noSelect = $list.find('.no-select');
 | 
				
			||||||
    const $listMenu = $(`.${selector} .menu`);
 | 
					    const $listMenu = $(`.${selector} .menu`);
 | 
				
			||||||
    let hasLabelUpdateAction = $listMenu.data('action') === 'update';
 | 
					    let hasUpdateAction = $listMenu.data('action') === 'update';
 | 
				
			||||||
    const labels = {};
 | 
					    const items = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $(`.${selector}`).dropdown('setting', 'onHide', () => {
 | 
					    $(`.${selector}`).dropdown('setting', 'onHide', () => {
 | 
				
			||||||
      hasLabelUpdateAction = $listMenu.data('action') === 'update'; // Update the var
 | 
					      hasUpdateAction = $listMenu.data('action') === 'update'; // Update the var
 | 
				
			||||||
      if (hasLabelUpdateAction) {
 | 
					      if (hasUpdateAction) {
 | 
				
			||||||
        const promises = [];
 | 
					        const promises = [];
 | 
				
			||||||
        Object.keys(labels).forEach((elementId) => {
 | 
					        Object.keys(items).forEach((elementId) => {
 | 
				
			||||||
          const label = labels[elementId];
 | 
					          const item = items[elementId];
 | 
				
			||||||
          const promise = updateIssuesMeta(
 | 
					          const promise = updateIssuesMeta(
 | 
				
			||||||
            label['update-url'],
 | 
					            item['update-url'],
 | 
				
			||||||
            label.action,
 | 
					            item.action,
 | 
				
			||||||
            label['issue-id'],
 | 
					            item['issue-id'],
 | 
				
			||||||
            elementId,
 | 
					            elementId,
 | 
				
			||||||
            label['is-checked']
 | 
					 | 
				
			||||||
          );
 | 
					          );
 | 
				
			||||||
          promises.push(promise);
 | 
					          promises.push(promise);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
@@ -395,67 +393,49 @@ function initCommentForm() {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $listMenu.find('.item:not(.no-select)').on('click', function () {
 | 
					    $listMenu.find('.item:not(.no-select)').on('click', function (e) {
 | 
				
			||||||
      // we don't need the action attribute when updating assignees
 | 
					      e.preventDefault();
 | 
				
			||||||
      if (selector === 'select-assignees-modify' || selector === 'select-reviewers-modify') {
 | 
					      if ($(this).hasClass('ban-change')) {
 | 
				
			||||||
        // UI magic. We need to do this here, otherwise it would destroy the functionality of
 | 
					 | 
				
			||||||
        // adding/removing labels
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($(this).data('can-change') === 'block') {
 | 
					 | 
				
			||||||
          return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($(this).hasClass('checked')) {
 | 
					 | 
				
			||||||
          $(this).removeClass('checked');
 | 
					 | 
				
			||||||
          $(this).find('.octicon-check').addClass('invisible');
 | 
					 | 
				
			||||||
          $(this).data('is-checked', 'remove');
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          $(this).addClass('checked');
 | 
					 | 
				
			||||||
          $(this).find('.octicon-check').removeClass('invisible');
 | 
					 | 
				
			||||||
          $(this).data('is-checked', 'add');
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        updateIssuesMeta(
 | 
					 | 
				
			||||||
          $listMenu.data('update-url'),
 | 
					 | 
				
			||||||
          '',
 | 
					 | 
				
			||||||
          $listMenu.data('issue-id'),
 | 
					 | 
				
			||||||
          $(this).data('id'),
 | 
					 | 
				
			||||||
          $(this).data('is-checked')
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
        $listMenu.data('action', 'update'); // Update to reload the page when we updated items
 | 
					 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      hasUpdateAction = $listMenu.data('action') === 'update'; // Update the var
 | 
				
			||||||
      if ($(this).hasClass('checked')) {
 | 
					      if ($(this).hasClass('checked')) {
 | 
				
			||||||
        $(this).removeClass('checked');
 | 
					        $(this).removeClass('checked');
 | 
				
			||||||
        $(this).find('.octicon-check').addClass('invisible');
 | 
					        $(this).find('.octicon-check').addClass('invisible');
 | 
				
			||||||
        if (hasLabelUpdateAction) {
 | 
					        if (hasUpdateAction) {
 | 
				
			||||||
          if (!($(this).data('id') in labels)) {
 | 
					          if (!($(this).data('id') in items)) {
 | 
				
			||||||
            labels[$(this).data('id')] = {
 | 
					            items[$(this).data('id')] = {
 | 
				
			||||||
              'update-url': $listMenu.data('update-url'),
 | 
					              'update-url': $listMenu.data('update-url'),
 | 
				
			||||||
              action: 'detach',
 | 
					              action: 'detach',
 | 
				
			||||||
              'issue-id': $listMenu.data('issue-id'),
 | 
					              'issue-id': $listMenu.data('issue-id'),
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            delete labels[$(this).data('id')];
 | 
					            delete items[$(this).data('id')];
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        $(this).addClass('checked');
 | 
					        $(this).addClass('checked');
 | 
				
			||||||
        $(this).find('.octicon-check').removeClass('invisible');
 | 
					        $(this).find('.octicon-check').removeClass('invisible');
 | 
				
			||||||
        if (hasLabelUpdateAction) {
 | 
					        if (hasUpdateAction) {
 | 
				
			||||||
          if (!($(this).data('id') in labels)) {
 | 
					          if (!($(this).data('id') in items)) {
 | 
				
			||||||
            labels[$(this).data('id')] = {
 | 
					            items[$(this).data('id')] = {
 | 
				
			||||||
              'update-url': $listMenu.data('update-url'),
 | 
					              'update-url': $listMenu.data('update-url'),
 | 
				
			||||||
              action: 'attach',
 | 
					              action: 'attach',
 | 
				
			||||||
              'issue-id': $listMenu.data('issue-id'),
 | 
					              'issue-id': $listMenu.data('issue-id'),
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            delete labels[$(this).data('id')];
 | 
					            delete items[$(this).data('id')];
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // TODO: Which thing should be done for choosing review requests
 | 
				
			||||||
 | 
					      // to make choosed items be shown on time here?
 | 
				
			||||||
 | 
					      if (selector === 'select-reviewers-modify' || selector === 'select-assignees-modify') {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const listIds = [];
 | 
					      const listIds = [];
 | 
				
			||||||
      $(this).parent().find('.item').each(function () {
 | 
					      $(this).parent().find('.item').each(function () {
 | 
				
			||||||
        if ($(this).hasClass('checked')) {
 | 
					        if ($(this).hasClass('checked')) {
 | 
				
			||||||
@@ -473,23 +453,26 @@ function initCommentForm() {
 | 
				
			|||||||
      $($(this).parent().data('id')).val(listIds.join(','));
 | 
					      $($(this).parent().data('id')).val(listIds.join(','));
 | 
				
			||||||
      return false;
 | 
					      return false;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    $listMenu.find('.no-select.item').on('click', function () {
 | 
					    $listMenu.find('.no-select.item').on('click', function (e) {
 | 
				
			||||||
      if (hasLabelUpdateAction || selector === 'select-assignees-modify') {
 | 
					      e.preventDefault();
 | 
				
			||||||
 | 
					      if (hasUpdateAction) {
 | 
				
			||||||
        updateIssuesMeta(
 | 
					        updateIssuesMeta(
 | 
				
			||||||
          $listMenu.data('update-url'),
 | 
					          $listMenu.data('update-url'),
 | 
				
			||||||
          'clear',
 | 
					          'clear',
 | 
				
			||||||
          $listMenu.data('issue-id'),
 | 
					          $listMenu.data('issue-id'),
 | 
				
			||||||
          '',
 | 
					          '',
 | 
				
			||||||
          ''
 | 
					 | 
				
			||||||
        ).then(reload);
 | 
					        ).then(reload);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      $(this).parent().find('.item').each(function () {
 | 
					      $(this).parent().find('.item').each(function () {
 | 
				
			||||||
        $(this).removeClass('checked');
 | 
					        $(this).removeClass('checked');
 | 
				
			||||||
        $(this).find('.octicon').addClass('invisible');
 | 
					        $(this).find('.octicon').addClass('invisible');
 | 
				
			||||||
        $(this).data('is-checked', 'remove');
 | 
					 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (selector === 'select-reviewers-modify' || selector === 'select-assignees-modify') {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      $list.find('.item').each(function () {
 | 
					      $list.find('.item').each(function () {
 | 
				
			||||||
        $(this).addClass('hide');
 | 
					        $(this).addClass('hide');
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
@@ -521,7 +504,6 @@ function initCommentForm() {
 | 
				
			|||||||
          '',
 | 
					          '',
 | 
				
			||||||
          $menu.data('issue-id'),
 | 
					          $menu.data('issue-id'),
 | 
				
			||||||
          $(this).data('id'),
 | 
					          $(this).data('id'),
 | 
				
			||||||
          $(this).data('is-checked')
 | 
					 | 
				
			||||||
        ).then(reload);
 | 
					        ).then(reload);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      switch (input_id) {
 | 
					      switch (input_id) {
 | 
				
			||||||
@@ -552,7 +534,6 @@ function initCommentForm() {
 | 
				
			|||||||
          '',
 | 
					          '',
 | 
				
			||||||
          $menu.data('issue-id'),
 | 
					          $menu.data('issue-id'),
 | 
				
			||||||
          $(this).data('id'),
 | 
					          $(this).data('id'),
 | 
				
			||||||
          $(this).data('is-checked')
 | 
					 | 
				
			||||||
        ).then(reload);
 | 
					        ).then(reload);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -672,10 +653,9 @@ function initIssueComments() {
 | 
				
			|||||||
    event.preventDefault();
 | 
					    event.preventDefault();
 | 
				
			||||||
    updateIssuesMeta(
 | 
					    updateIssuesMeta(
 | 
				
			||||||
      url,
 | 
					      url,
 | 
				
			||||||
      '',
 | 
					      isChecked === 'true' ? 'attach' : 'detach',
 | 
				
			||||||
      issueId,
 | 
					      issueId,
 | 
				
			||||||
      id,
 | 
					      id,
 | 
				
			||||||
      isChecked
 | 
					 | 
				
			||||||
    ).then(reload);
 | 
					    ).then(reload);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user