|
<?php
|
|
/**
|
|
* This is the abstract Panel class for the List All functionality
|
|
* of the Product class. This code-generated class
|
|
* contains a datagrid to display an HTML page that can
|
|
* list a collection of Product objects. It includes
|
|
* functionality to perform pagination and sorting on columns.
|
|
*
|
|
* To take advantage of some (or all) of these control objects, you
|
|
* must create a new QPanel which extends this ProductListPanelBase
|
|
* class.
|
|
*
|
|
* Any and all changes to this file will be overwritten with any subsequent re-
|
|
* code generation.
|
|
*
|
|
* @package Quasi
|
|
* @subpackage Drafts
|
|
*
|
|
*/
|
|
class ProductListPanel extends QPanel {
|
|
// Local instance of the Meta DataGrid to list Products
|
|
public $dtgProducts;
|
|
|
|
// Other public QControls in this panel
|
|
public $btnCreateNew;
|
|
public $pxyEdit;
|
|
|
|
// Callback Method Names
|
|
protected $strSetEditPanelMethod;
|
|
protected $strCloseEditPanelMethod;
|
|
|
|
public function __construct($objParentObject, $strSetEditPanelMethod, $strCloseEditPanelMethod, $strControlId = null) {
|
|
// Call the Parent
|
|
try {
|
|
parent::__construct($objParentObject, $strControlId);
|
|
} catch (QCallerException $objExc) {
|
|
$objExc->IncrementOffset();
|
|
throw $objExc;
|
|
}
|
|
|
|
// Record Method Callbacks
|
|
$this->strSetEditPanelMethod = $strSetEditPanelMethod;
|
|
$this->strCloseEditPanelMethod = $strCloseEditPanelMethod;
|
|
|
|
// Setup the Template
|
|
$this->Template = 'ProductListPanel.tpl.php';
|
|
|
|
// Instantiate the Meta DataGrid
|
|
$this->dtgProducts = new ProductDataGrid($this);
|
|
|
|
// Style the DataGrid (if desired)
|
|
$this->dtgProducts->CssClass = 'datagrid';
|
|
$this->dtgProducts->AlternateRowStyle->CssClass = 'alternate';
|
|
|
|
// Add Pagination (if desired)
|
|
$this->dtgProducts->Paginator = new QPaginator($this->dtgProducts);
|
|
$this->dtgProducts->ItemsPerPage = 8;
|
|
|
|
// Use the MetaDataGrid functionality to add Columns for this datagrid
|
|
|
|
// Create an Edit Column
|
|
$this->pxyEdit = new QControlProxy($this);
|
|
$this->pxyEdit->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'pxyEdit_Click'));
|
|
$this->dtgProducts->MetaAddEditProxyColumn($this->pxyEdit, 'Edit', 'Edit');
|
|
|
|
// Create the Other Columns (note that you can use strings for product's properties, or you
|
|
// can traverse down QQN::product() to display fields that are down the hierarchy)
|
|
$this->dtgProducts->MetaAddColumn('Id');
|
|
$this->dtgProducts->MetaAddColumn(QQN::Product()->Manufacturer);
|
|
$this->dtgProducts->MetaAddColumn(QQN::Product()->Supplier);
|
|
$this->dtgProducts->MetaAddColumn('CreationDate');
|
|
$this->dtgProducts->MetaAddColumn('Name');
|
|
$this->dtgProducts->MetaAddColumn('Model');
|
|
$this->dtgProducts->MetaAddColumn('ShortDescription');
|
|
$this->dtgProducts->MetaAddColumn('LongDescription');
|
|
$this->dtgProducts->MetaAddColumn('Msrp');
|
|
$this->dtgProducts->MetaAddColumn('WholesalePrice');
|
|
$this->dtgProducts->MetaAddColumn('RetailPrice');
|
|
$this->dtgProducts->MetaAddColumn('Cost');
|
|
$this->dtgProducts->MetaAddColumn('Weight');
|
|
$this->dtgProducts->MetaAddColumn('Height');
|
|
$this->dtgProducts->MetaAddColumn('Width');
|
|
$this->dtgProducts->MetaAddColumn('Depth');
|
|
$this->dtgProducts->MetaAddColumn('IsVirtual');
|
|
$this->dtgProducts->MetaAddTypeColumn('TypeId', 'ProductType');
|
|
$this->dtgProducts->MetaAddTypeColumn('StatusId', 'ProductStatusType');
|
|
$this->dtgProducts->MetaAddColumn('ViewCount');
|
|
$this->dtgProducts->MetaAddTypeColumn('UserPermissionsId', 'PermissionType');
|
|
$this->dtgProducts->MetaAddTypeColumn('PublicPermissionsId', 'PermissionType');
|
|
$this->dtgProducts->MetaAddTypeColumn('GroupPermissionsId', 'PermissionType');
|
|
|
|
// Setup the Create New button
|
|
$this->btnCreateNew = new QButton($this);
|
|
$this->btnCreateNew->Text = QApplication::Translate('Create a New') . ' ' . QApplication::Translate('Product');
|
|
$this->btnCreateNew->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnCreateNew_Click'));
|
|
}
|
|
|
|
public function pxyEdit_Click($strFormId, $strControlId, $strParameter) {
|
|
$strParameterArray = explode(',', $strParameter);
|
|
$objEditPanel = new ProductEditPanel($this, $this->strCloseEditPanelMethod, $strParameterArray[0]);
|
|
|
|
$strMethodName = $this->strSetEditPanelMethod;
|
|
$this->objForm->$strMethodName($objEditPanel);
|
|
}
|
|
|
|
public function btnCreateNew_Click($strFormId, $strControlId, $strParameter) {
|
|
$objEditPanel = new ProductEditPanel($this, $this->strCloseEditPanelMethod, null);
|
|
$strMethodName = $this->strSetEditPanelMethod;
|
|
$this->objForm->$strMethodName($objEditPanel);
|
|
}
|
|
}
|
|
?>
|