Open Journal Systems  3.3.0
PKPSelectReviewerListPanel.inc.php
1 <?php
16 
18 
20  public $apiUrl = '';
21 
23  public $count = 30;
24 
26  public $currentlyAssigned = [];
27 
29  public $getParams = [];
30 
32  public $itemsMax = 0;
33 
35  public $selectorName = '';
36 
38  public $warnOnAssignment = [];
39 
43  public function set($args) {
44  parent::set($args);
45  $this->currentlyAssigned = !empty($args['currentlyAssigned']) ? $args['currentlyAssigned'] : $this->currentlyAssigned;
46  $this->warnOnAssignment = !empty($args['warnOnAssignment']) ? $args['warnOnAssignment'] : $this->warnOnAssignment;
47  }
48 
52  public function getConfig() {
53  $config = parent::getConfig();
54  $config['apiUrl'] = $this->apiUrl;
55  $config['count'] = $this->count;
56  $config['currentlyAssigned'] = $this->currentlyAssigned;
57  $config['selectorName'] = $this->selectorName;
58  $config['warnOnAssignment'] = $this->warnOnAssignment;
59  $config['filters'] = [
60  [
61  'param' => 'reviewerRating',
62  'title' => __('reviewer.list.filterRating'),
63  'value' => 3,
64  'min' => 1,
65  'max' => 5,
66  'useStars' => true,
67  'valueLabel' => '{$value/5}',
68  ],
69  [
70  'param' => 'reviewsCompleted',
71  'title' => __('reviewer.list.completedReviews'),
72  'value' => 10,
73  'min' => 0,
74  'max' => 20,
75  'valueLabel' => __('common.moreThan'),
76  ],
77  [
78  'param' => 'daysSinceLastAssignment',
79  'title' => __('reviewer.list.daysSinceLastAssignmentDescription'),
80  'value' => [0, 365],
81  'min' => 0,
82  'max' => 365,
83  'filterType' => 'filter-slider-multirange',
84  'valueLabel' => __('common.range'),
85  'moreThanLabel' => __('common.moreThanOnly'),
86  'lessThanLabel' => __('common.lessThanOnly'),
87  ],
88  [
89  'param' => 'reviewsActive',
90  'title' => __('reviewer.list.activeReviewsDescription'),
91  'value' => [0, 20],
92  'min' => 0,
93  'max' => 20,
94  'filterType' => 'filter-slider-multirange',
95  'valueLabel' => __('common.range'),
96  'moreThanLabel' => __('common.moreThanOnly'),
97  'lessThanLabel' => __('common.lessThanOnly'),
98  ],
99  [
100  'param' => 'averageCompletion',
101  'title' => __('reviewer.list.averageCompletion'),
102  'value' => 75,
103  'min' => 0,
104  'max' => 75,
105  'valueLabel' => __('common.lessThan'),
106  ],
107  ];
108 
109  if (!empty($this->getParams)) {
110  $config['getParams'] = $this->getParams;
111  }
112 
113  $config['itemsMax'] = $this->itemsMax;
114 
115  $config['activeReviewsCountLabel'] = __('reviewer.list.activeReviews');
116  $config['activeReviewsLabel'] = __('reviewer.list.activeReviewsDescription');
117  $config['averageCompletionLabel'] = __('reviewer.list.averageCompletion');
118  $config['biographyLabel'] = __('reviewer.list.biography');
119  $config['cancelledReviewsLabel'] = __('reviewer.list.cancelledReviews');
120  $config['completedReviewsLabel'] = __('reviewer.list.completedReviews');
121  $config['currentlyAssignedLabel'] = __('reviewer.list.currentlyAssigned');
122  $config['daySinceLastAssignmentLabel'] = __('reviewer.list.daySinceLastAssignment');
123  $config['daysSinceLastAssignmentLabel'] = __('reviewer.list.daysSinceLastAssignment');
124  $config['daysSinceLastAssignmentDescriptionLabel'] = __('reviewer.list.daysSinceLastAssignmentDescription');
125  $config['declinedReviewsLabel'] = __('reviewer.list.declinedReviews');
126  $config['emptyLabel'] = __('reviewer.list.empty');
127  $config['gossipLabel'] = __('user.gossip');
128  $config['neverAssignedLabel'] = __('reviewer.list.neverAssigned');
129  $config['reviewerRatingLabel'] = __('reviewer.list.reviewerRating');
130  $config['reviewInterestsLabel'] = __('reviewer.list.reviewInterests');
131  $config['selectReviewerLabel'] = __('editor.submission.selectReviewer');
132  $config['warnOnAssignmentLabel'] = __('reviewer.list.warnOnAssign');
133  $config['warnOnAssignmentUnlockLabel'] = __('reviewer.list.warnOnAssignUnlock');
134 
135  return $config;
136  }
137 
144  public function getItems($request) {
145  $userService = \Services::get('user');
146  $reviewers = $userService->getReviewers($this->_getItemsParams());
147  $items = [];
148  if (!empty($reviewers)) {
149  foreach ($reviewers as $reviewer) {
150  $items[] = $userService->getReviewerSummaryProperties($reviewer, ['request' => $request]);
151  }
152  }
153 
154  return $items;
155  }
156 
162  public function getItemsMax() {
163  return \Services::get('user')->getReviewersMax($this->_getItemsParams());
164  }
165 
171  protected function _getItemsParams() {
172  return array_merge(
173  [
174  'offset' => 0,
175  'count' => $this->count,
176  ],
177  $this->getParams
178  );
179  }
180 }
PKP\components\listPanels\PKPSelectReviewerListPanel
Definition: PKPSelectReviewerListPanel.inc.php:17
PKP\components\listPanels\PKPSelectReviewerListPanel\getConfig
getConfig()
Definition: PKPSelectReviewerListPanel.inc.php:73
PKP\components\listPanels\PKPSelectReviewerListPanel\getItems
getItems($request)
Definition: PKPSelectReviewerListPanel.inc.php:165
PKP\components\listPanels\PKPSelectReviewerListPanel\$currentlyAssigned
$currentlyAssigned
Definition: PKPSelectReviewerListPanel.inc.php:35
PKP\components\listPanels\PKPSelectReviewerListPanel\_getItemsParams
_getItemsParams()
Definition: PKPSelectReviewerListPanel.inc.php:192
PKP\components\listPanels\PKPSelectReviewerListPanel\$getParams
$getParams
Definition: PKPSelectReviewerListPanel.inc.php:41
PKP\components\listPanels\PKPSelectReviewerListPanel\$itemsMax
$itemsMax
Definition: PKPSelectReviewerListPanel.inc.php:47
PKP\components\listPanels\PKPSelectReviewerListPanel\$selectorName
$selectorName
Definition: PKPSelectReviewerListPanel.inc.php:53
PKP\components\listPanels
Definition: ListPanel.inc.php:15
PKP\components\listPanels\PKPSelectReviewerListPanel\getItemsMax
getItemsMax()
Definition: PKPSelectReviewerListPanel.inc.php:183
PKP\components\listPanels\PKPSelectReviewerListPanel\$apiUrl
$apiUrl
Definition: PKPSelectReviewerListPanel.inc.php:23
PKP\components\listPanels\PKPSelectReviewerListPanel\$count
$count
Definition: PKPSelectReviewerListPanel.inc.php:29
PKP\components\listPanels\ListPanel
Definition: ListPanel.inc.php:17
PKP\components\listPanels\PKPSelectReviewerListPanel\$warnOnAssignment
$warnOnAssignment
Definition: PKPSelectReviewerListPanel.inc.php:59
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
PKP\components\listPanels\ListPanel\$items
$items
Definition: ListPanel.inc.php:59