00001 <?php
00002
00015 import('lib.pkp.classes.controllers.grid.GridRow');
00016 import('lib.pkp.classes.linkAction.request.RedirectConfirmationModal');
00017
00018 class MergeUsersGridRow extends GridRow {
00019
00021 var $_oldUserId;
00022
00026 function MergeUsersGridRow($oldUserId = null) {
00027 $this->_oldUserId = $oldUserId;
00028 parent::GridRow();
00029 }
00030
00031
00032
00033
00034
00038 function initialize(&$request) {
00039 parent::initialize($request);
00040
00041
00042 $element =& $this->getData();
00043 assert(is_a($element, 'User'));
00044
00045 $press =& $request->getPress();
00046
00047 $rowId = $this->getId();
00048
00049 if (!empty($rowId) && is_numeric($rowId)) {
00050
00051 $dispatcher =& $request->getDispatcher();
00052 if ($this->getOldUserId()) {
00053 $actionArgs = array(
00054 'oldUserId' => $this->getOldUserId(),
00055 'newUserId' => $rowId,
00056 );
00057
00058 $userDao =& DAORegistry::getDAO('UserDAO');
00059 $oldUser =& $userDao->getById($this->getOldUserId());
00060 $this->addAction(
00061 new LinkAction(
00062 'mergeUser',
00063 new RedirectConfirmationModal(
00064 __('admin.mergeUsers.confirm', array('oldUsername' => $oldUser->getUsername(), 'newUsername' => $element->getUsername())),
00065 null,
00066 $dispatcher->url($request, ROUTE_PAGE, null, 'admin', 'mergeUsers', null, $actionArgs),
00067 'modal_merge_users'
00068 ),
00069 __('admin.mergeUsers.mergeIntoUser'),
00070 'merge_users')
00071 );
00072
00073 } else {
00074 $actionArgs = array(
00075 'oldUserId' => $rowId,
00076 );
00077 if ($rowId > 1) {
00078 $this->addAction(
00079 new LinkAction(
00080 'mergeUser',
00081 new RedirectConfirmationModal(
00082 __('admin.mergeUsers.mergeUserSelect.confirm'),
00083 null,
00084 $dispatcher->url($request, ROUTE_PAGE, null, 'admin', 'mergeUsers', null, $actionArgs),
00085 'modal_merge_users'
00086 ),
00087 __('admin.mergeUsers.mergeUser'),
00088 'merge_users')
00089 );
00090 }
00091 }
00092 }
00093 }
00094
00099 function getOldUserId() {
00100 return $this->_oldUserId;
00101 }
00102 }
00103 ?>