00001 <?php
00002
00015 import('lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
00016
00017 class PreparedEmailsGridCellProvider extends DataObjectGridCellProvider {
00021 function PreparedEmailsGridCellProvider() {
00022 parent::DataObjectGridCellProvider();
00023 }
00024
00032 function getTemplateVarsFromRowColumn(&$row, $column) {
00033 $element =& $row->getData();
00034 $columnId = $column->getId();
00035 assert(is_a($element, 'DataObject') && !empty($columnId));
00036 $roleDao =& DAORegistry::getDAO('RoleDAO');
00037 switch ($columnId) {
00038 case 'name':
00039 $label = $element->getEmailKey();
00040 return array('label' => ucwords(strtolower(str_replace('_', ' ', $label))));
00041 case 'sender':
00042 $roleId = $element->getFromRoleId();
00043 $label = $roleDao->getRoleNames(false, array($roleId));
00044 return array('label' => __(array_shift($label)));
00045 case 'recipient':
00046 $roleId = $element->getToRoleId();
00047 $label = $roleDao->getRoleNames(false, array($roleId));
00048 return array('label' => __(array_shift($label)));
00049 case 'subject':
00050 $locale = AppLocale::getLocale();
00051 $label = $element->getSubject();
00052 return array('label' => $label);
00053 case 'enabled':
00054 $selectDisabled = $element->getCanDisable() ? false : true;
00055 return array('selected' => $element->getEnabled(), 'disabled' => $selectDisabled);
00056 }
00057 }
00058
00062 function getCellActions(&$request, &$row, &$column, $position = GRID_ACTION_POSITION_DEFAULT) {
00063 if ($column->getId() == 'enabled') {
00064 $element =& $row->getData();
00065
00066 $router =& $request->getRouter();
00067 import('lib.pkp.classes.linkAction.LinkAction');
00068
00069 if($element->getCanDisable()) {
00070 if ($element->getEnabled()) {
00071 $linkAction = new LinkAction(
00072 'disableEmail',
00073 new RemoteActionConfirmationModal(
00074 __('manager.emails.disable.message'), null,
00075 $router->url($request, null, 'grid.settings.preparedEmails.PreparedEmailsGridHandler',
00076 'disableEmail', null, array('emailKey' => $element->getEmailKey()))
00077 ),
00078 __('manager.emails.disable'),
00079 'disable'
00080 );
00081 } else {
00082 $linkAction = new LinkAction(
00083 'enableEmail',
00084 new RemoteActionConfirmationModal(
00085 __('manager.emails.enable.message'), null,
00086 $router->url($request, null, 'grid.settings.preparedEmails.PreparedEmailsGridHandler',
00087 'enableEmail', null, array('emailKey' => $element->getEmailKey()))
00088 ),
00089 __('manager.emails.enable'),
00090 'enable'
00091 );
00092 }
00093 return array($linkAction);
00094 }
00095 }
00096 return parent::getCellActions($request, $row, $column, $position);
00097 }
00098 }
00099
00100 ?>