/[drupal]/contributions/modules/casetracker/casetracker.views.inc
ViewVC logotype

Contents of /contributions/modules/casetracker/casetracker.views.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download) (as text)
Wed Feb 11 21:18:58 2009 UTC (9 months, 2 weeks ago) by jmiccolis
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-6--1
Changes since 1.2: +50 -23 lines
File MIME type: text/x-php
Adding more sensible views, case and project filters, and cleaning up whitespace
1 <?php
2 // $Id: casetracker.views.inc,v 1.2 2009/02/11 04:09:02 jmiccolis Exp $
3
4 /**
5 * Implementation of hook_views_data().
6 */
7 function casetracker_views_data() {
8 $data = array();
9 $tables = array('casetracker_case', 'casetracker_case_states',);
10 foreach ($tables as $table) {
11 $function = "casetracker_views_data_$table";
12 $data += $function();
13 }
14 return $data;
15 }
16
17 // ---------- Table casetracker_case
18 function casetracker_views_data_casetracker_case() {
19 $data['casetracker_case']['table']['group'] = t('Case Tracker');
20 $data['casetracker_case']['table']['join'] = array(
21 'node' => array(
22 'left_field' => 'vid',
23 'field' => 'vid',
24 ),
25 );
26 $data['casetracker_case']['pid'] = array(
27 'title' => t('Project'),
28 'field' => array(
29 'handler' => 'casetracker_views_handler_field_project_name',
30 'help' => t('Display the name of the Case Tracker project.'),
31 'click sortable' => TRUE,
32 ),
33 'filter' => array(
34 'handler' => 'casetracker_views_handler_filter_project_options',
35 'help' => t('Filter Case Tracker cases by their project.'),
36 ),
37 'relationship' => array(
38 'handler' => 'views_handler_relationship',
39 'base' => 'node',
40 'field' => 'nid',
41 'label' => t('project'),
42 ),
43 );
44 $data['casetracker_case']['assign_to'] = array(
45 'title' => t('Assigned to'),
46 'field' => array(
47 'handler' => 'casetracker_views_handler_field_user_name',
48 'help' => t('Display the user name the case has been assigned to.'),
49 'click sortable' => TRUE,
50 ),
51 'filter' => array(
52 'handler' => 'casetracker_views_handler_filter_user_options',
53 'help' => t('Filter Case Tracker cases by the assigned user.'),
54 ),
55 );
56 $data['casetracker_case']['case_priority_id'] = array(
57 'title' => t('Case priority'),
58 'field' => array(
59 'handler' => 'casetracker_views_handler_field_priority_name',
60 'help' => t('Display the priority of the case.'),
61 'click sortable' => TRUE,
62 ),
63 'filter' => array(
64 'handler' => 'casetracker_views_handler_filter_priority_options',
65 'help' => t('Filter Case Tracker cases by priority.'),
66 ),
67 'sort' => array(
68 'handler' => 'views_handler_sort',
69 'help' => t('Sort by Case Tracker priority.'),
70 ),
71 );
72 $data['casetracker_case']['case_status_id'] = array(
73 'title' => t('Case status'),
74 'field' => array(
75 'handler' => 'casetracker_views_handler_field_status_name',
76 'help' => t('Display the status of the case.'),
77 'click sortable' => TRUE,
78 ),
79 'filter' => array(
80 'handler' => 'casetracker_views_handler_filter_status_options',
81 'help' => t('Filter Case Tracker cases by status.'),
82 ),
83 'sort' => array(
84 'handler' => 'views_handler_sort',
85 'help' => t('Sort by Case Tracker status.'),
86 ),
87 );
88 $data['casetracker_case']['case_type_id'] = array(
89 'title' => t('Case type'),
90 'field' => array(
91 'handler' => 'casetracker_views_handler_field_type_name',
92 'help' => t('Display the type of the case.'),
93 'click sortable' => TRUE,
94 ),
95 'filter' => array(
96 'handler' => 'casetracker_views_handler_filter_type_options',
97 'help' => t('Filter Case Tracker cases by type.'),
98 ),
99 );
100
101 return $data;
102 }
103
104 function casetracker_views_data_casetracker_case_states() {
105 $data['casetracker_case_states']['table']['group'] = t('Casetracker');
106 $data['casetracker_case_states']['table']['join'] = array(
107 'node' => array(
108 'left_table' => 'casetracker_case',
109 'left_field' => 'case_status_id',
110 'field' => 'csid',
111 ),
112 );
113 $data['casetracker_case_states']['case_state_name'] = array(
114 'title' => t('Case Tracker: State Name'),
115 'sort' => array(
116 'handler' => 'views_handler_sort',
117 'help' => t('Sort by Case Tracker state name.'),
118 ),
119 );
120
121 return $data;
122 }
123
124 /**
125 * Implementation of hook_views_data_alter().
126 */
127 function casetracker_views_data_alter(&$data) {
128 $data['node']['case'] = array(
129 'title' => t('Case Tracker case'),
130 'help' => t('Whether the node is a casetracker case'),
131 'filter' => array(
132 'handler' => 'casetracker_views_handler_filter_case',
133 ),
134 );
135 $data['node']['project'] = array(
136 'title' => t('Case Tracker project'),
137 'help' => t('Whether the node is a casetracker project'),
138 'filter' => array(
139 'handler' => 'casetracker_views_handler_filter_project',
140 ),
141 );
142 }
143
144 /**
145 * Implementation of hook_views_handlers().
146 */
147 function casetracker_views_handlers() {
148 return array(
149 'info' => array(
150 'path' => drupal_get_path('module', 'casetracker') .'/includes',
151 ),
152 'handlers' => array(
153 // ---------- Fields ----------
154 // fields: casetracker_case
155 'casetracker_views_handler_field_project_name' => array(
156 'parent' => 'views_handler_field',
157 ),
158 'casetracker_views_handler_field_user_name' => array(
159 'parent' => 'views_handler_field',
160 ),
161 'casetracker_views_handler_field_priority_name' => array(
162 'parent' => 'views_handler_field',
163 ),
164 'casetracker_views_handler_field_status_name' => array(
165 'parent' => 'views_handler_field',
166 ),
167 'casetracker_views_handler_field_type_name' => array(
168 'parent' => 'views_handler_field',
169 ),
170
171 // ---------- Filters ----------
172 // filters: casetracker_case
173 'casetracker_views_handler_filter_user_options' => array(
174 'parent' => 'views_handler_filter_many_to_one',
175 ),
176 'casetracker_views_handler_filter_priority_options' => array(
177 'parent' => 'views_handler_filter_many_to_one',
178 ),
179 'casetracker_views_handler_filter_status_options' => array(
180 'parent' => 'views_handler_filter_many_to_one',
181 ),
182 'casetracker_views_handler_filter_type_options' => array(
183 'parent' => 'views_handler_filter_many_to_one',
184 ),
185 'casetracker_views_handler_filter_project_options' => array(
186 'parent' => 'views_handler_filter_many_to_one',
187 ),
188
189 // filters: casetracker_project
190 'casetracker_views_handler_filter_project_published' => array(
191 'parent' => 'views_handler_filter_equality',
192 ),
193
194 // filters: node-type
195 'casetracker_views_handler_filter_case' => array(
196 'parent' => 'views_handler_filter',
197 ),
198 'casetracker_views_handler_filter_project' => array(
199 'parent' => 'views_handler_filter',
200 )
201 ),
202 );
203 }

  ViewVC Help
Powered by ViewVC 1.1.2