#30845, #30847 bug fixes.
[com.zyxware.civiwci.git] / CRM / Wci / Page / WidgetList.php
1 <?php
2
3 require_once 'CRM/Core/Page.php';
4 require_once 'CRM/Wci/DAO/Widget.php';
5
6 class CRM_Wci_Page_WidgetList extends CRM_Core_Page {
7 private static $_actionLinks;
8 function run() {
9 // get the requested action
10 $action = CRM_Utils_Request::retrieve('action', 'String',
11 // default to 'browse'
12 $this, FALSE, 'browse'
13 );
14 // assign vars to templates
15 $this->assign('action', $action);
16 $id = CRM_Utils_Request::retrieve('id', 'Positive',
17 $this, FALSE, 0
18 );
19
20 if ($action & CRM_Core_Action::UPDATE) {
21 $controller = new CRM_Core_Controller_Simple('CRM_Wci_Form_CreateWidget',
22 'Edit Widget',
23 CRM_Core_Action::UPDATE
24 );
25 $controller->set('id', $id);
26 $controller->process();
27 return $controller->run();
28 }
29 elseif ($action & CRM_Core_Action::DELETE) {
30 try {
31 $transaction = new CRM_Core_Transaction();
32
33 $sql = "DELETE FROM civicrm_wci_widget where id = " . $id;
34 CRM_Core_DAO::executeQuery($sql);
35 $transaction->commit();
36 }
37 catch (Exception $e) {
38 //TODO
39 print_r($e->getMessage());
40 $transaction->rollback();
41 }
42 }
43
44 CRM_Utils_System::setTitle(ts('Widget List'));
45 $query = "SELECT * FROM civicrm_wci_widget";
46 $params = array();
47
48 $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_Widget');
49
50 while ($dao->fetch()) {
51 $wid_page[$dao->id] = array();
52 CRM_Core_DAO::storeValues($dao, $wid_page[$dao->id]);
53 $description = base64_decode($wid_page[$dao->id]['description']);
54 $wid_page[$dao->id]['description'] = strip_tags($description);
55
56 $action = array_sum(array_keys($this->actionLinks()));
57 //build the normal action links.
58 $wid_page[$dao->id]['action'] = CRM_Core_Action::formLink(self::actionLinks(),
59 $action,
60 array('id' => $dao->id),
61 ts('more'),
62 TRUE
63 );
64 }
65
66 if (isset($wid_page)) {
67 $this->assign('rows', $wid_page);
68 }
69
70 parent::run();
71 }
72
73 function &actionLinks() {
74 // check if variable _actionsLinks is populated
75 if (!isset(self::$_actionLinks)) {
76 // helper variable for nicer formatting
77 $deleteExtra = ts('Are you sure you want to delete this Widget?');
78
79 self::$_actionLinks = array(
80 CRM_Core_Action::UPDATE => array(
81 'name' => ts('Edit'),
82 'url' => CRM_Utils_System::currentPath(),
83 'qs' => 'action=update&reset=1&id=%%id%%',
84 'title' => ts('Update'),
85 ),
86 CRM_Core_Action::DELETE => array(
87 'name' => ts('Delete'),
88 'url' => CRM_Utils_System::currentPath(),
89 'qs' => 'action=delete&reset=1&id=%%id%%',
90 'title' => ts('Delete Custom Field'),
91 'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"',
92 ),
93 );
94 }
95 return self::$_actionLinks;
96 }
97 }