ADD list of items

This commit is contained in:
Thomas Kuschel 2023-10-15 23:23:02 +02:00
parent 36cb70eea0
commit 303f1c8a00
5 changed files with 105 additions and 28 deletions

View File

@ -20,6 +20,8 @@ COM_DEPOT_FIELD_SELECT_MANUFACTURER="Manufacturer"
COM_DEPOT_FIELD_SELECT_STOCK="Stock Location" COM_DEPOT_FIELD_SELECT_STOCK="Stock Location"
COM_DEPOT_LEGEND_DETAILS="Component Details" COM_DEPOT_LEGEND_DETAILS="Component Details"
COM_DEPOT_LEGEND_STATISTICS="Component Statistics" COM_DEPOT_LEGEND_STATISTICS="Component Statistics"
COM_DEPOT_N_ITEMS_DELETED_1="One component deleted"
COM_DEPOT_N_ITEMS_DELETED_MORE="%d components deleted"
COM_DEPOT_SELECT_YOUR_OPTION="Select your option" COM_DEPOT_SELECT_YOUR_OPTION="Select your option"
COM_DEPOT_TAB_NEW_PART="New Component" COM_DEPOT_TAB_NEW_PART="New Component"
COM_DEPOT_TAB_EDIT_PART="Component Details" COM_DEPOT_TAB_EDIT_PART="Component Details"

View File

@ -0,0 +1,23 @@
<?php
/**
* @package Depot.Administrator
* @subpackage com_depot
* @author Thomas Kuschel <thomas@kuschel.at>
* @copyright (C) 2023 KW4NZ, <https://www.kuschel.at>
* @license GNU General Public License version 2 or later; see LICENSE.md
* @since 0.0.6
*/
namespace KW4NZ\Component\Depot\Administrator\Controller;
use Joomla\CMS\MVC\Controller\AdminController;
defined('_JEXEC') or die;
class PartsController extends AdminController
{
public function getModel($name = 'Part', $prefix = 'Administrator', $config = ['ignore_request' => true])
{
return parent::getModel($name, $prefix, $config);
}
}

View File

@ -30,14 +30,14 @@ class PartsModel extends ListModel
$query = $db->getQuery(true); $query = $db->getQuery(true);
$query->select('*') // $query->select('*')
->from($db->quoteName('#__depot', 'd')); // ->from($db->quoteName('#__depot', 'd'));
// order by // order by
$query->order('d.id ASC'); // $query->order('d.id ASC');
if (true) { // if (true) {
return $query; // return $query;
} // }
// select the required fields from the table // select the required fields from the table
$query->select( $query->select(
@ -57,8 +57,8 @@ class PartsModel extends ListModel
->select( ->select(
[ [
$db->quoteName('u.name', 'creator'), $db->quoteName('u.name', 'creator'),
$db->quoteName('m.short_name', 'manufacturer'), $db->quoteName('m.name_short', 'manufacturer'),
$db->quoteName('m.long_name', 'manufacturer_long'), $db->quoteName('m.name_long', 'manufacturer_long'),
$db->quoteName('s.name', 'stock_name'), $db->quoteName('s.name', 'stock_name'),
] ]
) )

View File

@ -12,8 +12,13 @@ namespace KW4NZ\Component\Depot\Administrator\View\Parts;
defined('_JEXEC') or die; defined('_JEXEC') or die;
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
// use Joomla\CMS\Toolbar;
use Joomla\CMS\Toolbar\ToolbarHelper;
// use Joomla\CMS\Language\Text;
class HtmlView extends BaseHtmlView class HtmlView extends BaseHtmlView
@ -25,6 +30,18 @@ class HtmlView extends BaseHtmlView
$this->items = $this->get('Items'); $this->items = $this->get('Items');
// set the toolbar
$this->addToolbar();
parent::display($tpl); parent::display($tpl);
} }
protected function addToolbar()
{
ToolbarHelper::title(Text::_('COM_DEPOT_MANAGER_PARTS'));
ToolbarHelper::addNew('part.add');
ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'parts.delete');
ToolbarHelper::publish('parts.publish', 'JTOOLBAR_PUBLISH', true);
ToolbarHelper::unpublish('parts.unpublish', 'JTOOLBAR_UNPUBLISH', true);
}
} }

View File

@ -7,26 +7,61 @@
* @license GNU General Public License version 2 or later; see LICENSE.md * @license GNU General Public License version 2 or later; see LICENSE.md
* @since 0.0.1 * @since 0.0.1
*/ */
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
?> ?>
<h2>Welcome to my Depot Component!</h2> <h2>Welcome to my Depot Component!</h2>
<p>Link: <a href="index.php?option=com_depot&view=part&layout=edit&id=1">Part</a></p> <form action="<?= Route::_('index.php?option=com_depot&view=parts'); ?>" method="post" name="adminForm" id="adminForm">
<table class="table table-striped table-hover"> <?php if (empty($this->items)): ?>
<thead> <div class="alert alert-info">
<tr> <span class="icon-info-circle" aria-hidden="true">
<th>COM_DEPOT_TABLE_HEAD_ID</th> </span>
<th>COM_DEPOT_TABLE_HEAD_NAME</th> <?= Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</tr> </div>
</thead> <?php else: ?>
<tbody>
<?php foreach ($this->items as $i => $item): ?> <table class="table table-striped table-hover">
<tr> <thead>
<td> <tr>
<?= $item->id ?> <th>
<td> <?= HTMLHelper::_('grid.checkall'); ?>
<?= $item->component_name ?> </th>
</tr> <th>
<?php endforeach; ?> <?= Text::_('COM_DEPOT_TABLE_HEAD_ID') ?>
</tbody> </th>
</table> <th>
<?= Text::_('COM_DEPOT_TABLE_HEAD_NAME') ?>
</th>
</tr>
</thead>
<tbody>
<?php foreach ($this->items as $i => $item): ?>
<tr>
<td>
<?= HTMLHelper::_('grid.id', $i, $item->id); ?>
</td>
<td>
<?= $item->id ?>
</td>
<td>
<a href="<?= Route::_('index.php?option=com_depot&task=part.edit&id=' .
(int) $item->id) ?>" title="<?= Text::_('JACTION_EDIT') ?>">
<?= $this->escape($item->component_name); ?>
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<input type="hidden" name="task" value="">
<input type="hidden" name="boxchecked" value="0">
<?= HTMLHelper::_('form.token'); ?>
</form>