pp3/module/Application/view/application/admin/_plugin-listrow.phtml (140 lines of code) (raw):

<?php /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ ?> <?php /* @var $plugin Application\Entity\Plugin */ $authors = []; foreach($plugin->getAuthors() as $author) { $authors[] = htmlspecialchars($author->getName(), ENT_COMPAT, "UTF-8"); } echo '<tr> <td style="text-align: center;"><h4><i class="fas '.$plugin->getStatusIconClass().'" title="'.$plugin->getStatusTitle().'"></i></h4></td> <td> <h4 class="text-primary">'.$plugin->getName().'</h4> <p> <a class="btn btn-default" href="'.$this->url('admin', array('action' => 'edit'),array('query' => array('id'=>$plugin->getId()))).'" role="button" title="Edit"> <i class="fas fa-edit text-primary"></i> </a> <a class="btn btn-default" href="'.$this->url('admin',array('action'=>'index'),array('query' => array('id'=>$plugin->getId(), 'act'=>'delete'))).'" role="button" title="Remove"> <i class="fas fa-trash text-danger"></i> </a> <a class="btn btn-default" href="'.$this->url('admin',array('action'=>'index'),array('query' => array('id'=>$plugin->getId(), 'act'=>'sync'))).'" role="button" title="Sync with source manifest."> <i class="fas fa-sync"></i> </a> <a class="btn btn-default" href="'.$this->url('admin',array('action'=>'index'),array('query' => array('id'=>$plugin->getId(), 'act'=>'publish'))).'" role="button" title="Approve"> <i class="fas fa-eye color-green"></i>&nbsp; Approve </a> <a class="btn btn-default" href="'.$this->url('admin',array('action'=>'index'),array('query' => array('id'=>$plugin->getId(), 'act'=>'hide'))).'" role="button" title="Hide"> <i class="fas fa-eye-slash color-red"></i>&nbsp; Hide </a> </p> <table role="presentation"> <tr><td style="padding-right: 1ex">Status:</td><td><b>'.$plugin->getStatusTitle().'</b></td></tr> <tr><td style="padding-right: 1ex">GroupId: </td><td><b>'.$plugin->getGroupId().'</b></td></tr> <tr><td style="padding-right: 1ex">ArtifactId:</td><td><b>'.$plugin->getArtifactId().'</b></td></tr> <tr><td style="padding-right: 1ex">Author:</td><td><b>'. implode("<br />", $authors) .'</b></td></tr> </table> <p> <i class="fas fa-asterisk"></i> '.$plugin->getAddedAt()->format('Y-m-d').' &nbsp; &nbsp; <i class="fas fa-edit"></i> '.$plugin->getLastUpdatedAt()->format('Y-m-d').' &nbsp; &nbsp; <i class="fas fa-download"></i> '.number_format($plugin->getDownloads()).' </p> <p>'; foreach ($plugin->getCategories() as $cat) { echo '<span class="badge badge-blue">'.$cat->getName().'</span> &nbsp;'; } echo '</p> </td> <td> <table class="table table-striped"> <thead> <tr> <th scope="col" style="width: 170px;">Plugin Version</th> <th scope="col"></th> <th scope="col">NB Versions</th> <th scope="col">Verifications</th> </tr> </thead> <tbody>'; foreach ($plugin->getVersions() as $version) { /* @var $version Application\Entity\PluginVersion */ printf('<tr> <td><span class="badge %s">%s%s</span></td> <td> <a class="btn btn-default" href="%s" role="button" title="Edit"> <i class="fas fa-edit text-primary"></i> </a> </td> <td>', $version->getErrorMessage() ? 'badge-red' : '', $version->getVersion(), $version->getErrorMessage() ? ' <i class="fas fa-exclamation-triangle"></i>' : '', $this->url('plugin-version',array('action'=>'edit'),array('query' => array('id'=>$version->getId(), 'search'=>$_GET['search']))) ); foreach ($version->getNbVersionsPluginVersions() as $nbvPv) { echo '<span class="badge badge-brown">NB '.$nbvPv->getNbVersion()->getVersion().'</span>&nbsp; '; } echo '</td> <td>'; foreach ($version->getNbVersionsPluginVersions() as $nbvPv) { if ($nbvPv->getVerificationId()) { echo '<a data-toggle="modal" data-target="#logModal'.$nbvPv->getVerificationId().'" href="#"><span class="badge '.$nbvPv->getVerification()->getStatusBadgeClass().'" title="'.$nbvPv->getVerification()->getStatusBadgeTitle().'"> NB '.$nbvPv->getNbVersion()->getVersion().' - '.$nbvPv->getVerification()->getStatusBadgeTitle().'</span></a> &nbsp; '; echo ' <div class="modal fade" id="logModal'.$nbvPv->getVerificationId().'" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title" id="myModalLabel">Verification Log of '.$version->getVersion().' plugin version to NB '.$nbvPv->getNbVersion()->getVersion().'</h4> </div> <div class="modal-body"> <p><b>Verification status: '.$nbvPv->getVerification()->getStatusBadgeTitle().'</b></p> <p>Requested on: '.$nbvPv->getVerification()->getCreatedAt()->format('Y-m-d').'</p><br/> <h4>Votes</h4> <table class="table table-striped">'; foreach($nbvPv->getVerification()->getVerificationRequests() as $vrq) { echo '<tr> <td>' . htmlentities($vrq->getVerifier()->getName(), ENT_HTML5, 'UTF-8') . ' &lt;' . htmlentities($vrq->getVerifier()->getEmail(), ENT_HTML5, 'UTF-8') . '&gt;' .'</td> <td><span class="badge '.$vrq->getVoteBadgeClass().'" title="'.$vrq->getVoteBadgeTitle().'">'.$vrq->getVoteBadgeTitle().'</span></td> <td>'.($vrq->getVotedAt() ? $vrq->getVotedAt()->format('Y-m-d') : '').'</td> </tr>'; } echo'</table></div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div>'; } } } echo '<td> </tr> </tbody> </table> </td> </tr>';