Merge remote-tracking branch 'upstream/4.3' into 4.3-master-2013-05-24-02-32-04
[civicrm-core.git] / CRM / Report / Form / Contact / LoggingDetail.php
1 <?php
2
3 /*
4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.3 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2013 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
10 | |
11 | CiviCRM is free software; you can copy, modify, and distribute it |
12 | under the terms of the GNU Affero General Public License |
13 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | |
15 | CiviCRM is distributed in the hope that it will be useful, but |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. |
19 | |
20 | You should have received a copy of the GNU Affero General Public |
21 | License and the CiviCRM Licensing Exception along |
22 | with this program; if not, contact CiviCRM LLC |
23 | at info[AT]civicrm[DOT]org. If you have questions about the |
24 | GNU Affero General Public License or the licensing of CiviCRM, |
25 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
26 +--------------------------------------------------------------------+
27 */
28
29 /**
30 *
31 * @package CRM
32 * @copyright CiviCRM LLC (c) 2004-2013
33 * $Id$
34 *
35 */
36 class CRM_Report_Form_Contact_LoggingDetail extends CRM_Logging_ReportDetail {
37 function __construct() {
38 $logging = new CRM_Logging_Schema;
39 $this->tables[] = 'civicrm_contact';
40 $this->tables = array_merge($this->tables, array_keys($logging->customDataLogTables()));
41 $this->tables[] = 'civicrm_email';
42 $this->tables[] = 'civicrm_phone';
43 $this->tables[] = 'civicrm_im';
44 $this->tables[] = 'civicrm_openid';
45 $this->tables[] = 'civicrm_website';
46 $this->tables[] = 'civicrm_address';
47 $this->tables[] = 'civicrm_note';
48 $this->tables[] = 'civicrm_relationship';
49 $this->tables[] = 'civicrm_activity';
50 $this->tables[] = 'civicrm_case';
51
52 $this->detail = 'logging/contact/detail';
53 $this->summary = 'logging/contact/summary';
54
55 parent::__construct();
56 }
57
58 function buildQuickForm() {
59 $layout = CRM_Utils_Request::retrieve('layout', 'String', $this);
60 $this->assign('layout', $layout);
61
62 parent::buildQuickForm();
63
64 if ($this->cid) {
65 // link back to contact summary
66 $this->assign('backURL', CRM_Utils_System::url('civicrm/contact/view', "reset=1&selectedChild=log&cid={$this->cid}", FALSE, NULL, FALSE));
67 $this->assign('revertURL', self::$_template->get_template_vars('revertURL') . "&cid={$this->cid}");
68 }
69 else {
70 // link back to summary report
71 $this->assign('backURL', CRM_Report_Utils_Report::getNextUrl('logging/contact/summary', 'reset=1', FALSE, TRUE));
72 }
73 }
74
75 protected function whoWhomWhenSql() {
76 return "
77 SELECT who.id who_id, who.display_name who_name, whom.id whom_id, whom.display_name whom_name, l.is_deleted
78 FROM `{$this->db}`.log_civicrm_contact l
79 JOIN civicrm_contact who ON (l.log_user_id = who.id)
80 JOIN civicrm_contact whom ON (l.id = whom.id)
81 WHERE log_action = 'Update' AND log_conn_id = %1 AND log_date = %2 ORDER BY log_date DESC LIMIT 1
82 ";
83 }
84 }
85