Index: stormproject/stormproject.admin.inc =================================================================== --- stormproject/stormproject.admin.inc (revision 535) +++ stormproject/stormproject.admin.inc (working copy) @@ -126,6 +126,37 @@ } } + if ($_SESSION['stormproject_list_filter']['assigned_to']) { + if (!is_numeric($_SESSION['stormproject_list_filter']['assigned_to'])) { + switch ($_SESSION['stormproject_list_filter']['assigned_to']) { + + case 'all': + // NO FILTER + break; + + case 'mine': + // CURRENT USER + if (!empty($user->stormperson_nid) && is_numeric($user->stormperson_nid)) { + $assigned_to_nid = $user->stormperson_nid; + } + break; + + case 'none': + $where[] = '(spr.assigned_nid IS NULL OR spr.assigned_nid = 0) '; + break; + + } + } + else { + $assigned_to_nid = $_SESSION['stormproject_list_filter']['assigned_to']; + } + if (!empty($assigned_to_nid) && is_numeric($assigned_to_nid)) { + $where[] = 'spr.assigned_nid=%d'; + $args[] = $assigned_to_nid; + $filterfields[] = t('Assigned to'); + } + } + $itemsperpage = $_SESSION['stormproject_list_filter']['itemsperpage']; if (!$itemsperpage) { $itemsperpage = variable_get('storm_default_items_per_page', 10); @@ -186,6 +217,8 @@ $dateendfrom = $_SESSION['stormproject_list_filter']['dateendfrom']; $dateendto = $_SESSION['stormproject_list_filter']['dateendto']; + $assigned_to = $_SESSION['stormproject_list_filter']['assigned_to']; + $itemsperpage = $_SESSION['stormproject_list_filter']['itemsperpage']; if (!$itemsperpage) { $itemsperpage = variable_get('storm_default_items_per_page', 10); @@ -285,8 +318,22 @@ '#type' => 'markup', '#theme' => 'storm_form_group', ); + + // ASSIGNED TO + $options = storm_get_assignment_options($node->organization_nid, $node->project_nid); + $form['filter']['group4']['assigned_to'] = array( + '#type' => 'select', + '#title' => t('Assigned to'), + '#default_value' => $assigned_to, + '#options' => $options, + ); + + $form['filter']['group5'] = array( + '#type' => 'markup', + '#theme' => 'storm_form_group', + ); - $form['filter']['group4']['itemsperpage'] = array( + $form['filter']['group5']['itemsperpage'] = array( '#type' => 'textfield', '#title' => t('Items'), '#size' => 10, @@ -295,13 +342,13 @@ '#suffix' => '', ); - $form['filter']['group4']['submit'] = array( + $form['filter']['group5']['submit'] = array( '#type' => 'submit', '#value' => t('Filter'), '#submit' => array('stormproject_list_filter_filter'), ); - $form['filter']['group4']['reset'] = array( + $form['filter']['group5']['reset'] = array( '#type' => 'submit', '#value' => t('Reset'), '#submit' => array('stormproject_list_filter_reset'), @@ -319,6 +366,7 @@ $_SESSION['stormproject_list_filter']['datebeginto'] = $form_state['values']['datebeginto']; $_SESSION['stormproject_list_filter']['dateendfrom'] = $form_state['values']['dateendfrom']; $_SESSION['stormproject_list_filter']['dateendto'] = $form_state['values']['dateendto']; + $_SESSION['stormproject_list_filter']['assigned_to'] = $form_state['values']['assigned_to']; $_SESSION['stormproject_list_filter']['itemsperpage'] = $form_state['values']['itemsperpage']; } Index: stormtask/stormtask.admin.inc =================================================================== --- stormtask/stormtask.admin.inc (revision 535) +++ stormtask/stormtask.admin.inc (working copy) @@ -411,6 +411,9 @@ } function stormtask_list() { + + global $user; + $breadcrumb = array(); $breadcrumb[] = l(t('Storm'), 'storm'); drupal_set_breadcrumb($breadcrumb); @@ -558,6 +561,37 @@ $filterfields[] = 'Date'; } } + + if ($_SESSION['stormtask_list_filter']['assigned_to']) { + if (!is_numeric($_SESSION['stormtask_list_filter']['assigned_to'])) { + switch ($_SESSION['stormtask_list_filter']['assigned_to']) { + + case 'all': + // NO FILTER + break; + + case 'mine': + // CURRENT USER + if (!empty($user->stormperson_nid) && is_numeric($user->stormperson_nid)) { + $assigned_to_nid = $user->stormperson_nid; + } + break; + + case 'none': + $where[] = '(sta.assigned_nid IS NULL OR sta.assigned_nid = 0) '; + break; + + } + } + else { + $assigned_to_nid = $_SESSION['stormtask_list_filter']['assigned_to']; + } + if (!empty($assigned_to_nid) && is_numeric($assigned_to_nid)) { + $where[] = 'sta.assigned_nid=%d'; + $args[] = $assigned_to_nid; + $filterfields[] = t('Assigned to'); + } + } $itemsperpage = $_SESSION['stormtask_list_filter']['itemsperpage']; if (!$itemsperpage) { @@ -620,6 +654,8 @@ $datebeginto = $_SESSION['stormtask_list_filter']['datebeginto']; $dateendfrom = $_SESSION['stormtask_list_filter']['dateendfrom']; $dateendto = $_SESSION['stormtask_list_filter']['dateendto']; + + $assigned_to = $_SESSION['stormtask_list_filter']['assigned_to']; $itemsperpage = $_SESSION['stormtask_list_filter']['itemsperpage']; if (!$itemsperpage) { @@ -740,6 +776,15 @@ '#title' => t('Date end to'), '#default_value' => $dateendto, ); + + // ASSIGNED TO + $options = storm_get_assignment_options($node->organization_nid, $node->project_nid); + $form['filter']['group4_1']['assigned_to'] = array( + '#type' => 'select', + '#title' => t('Assigned to'), + '#default_value' => $assigned_to, + '#options' => $options, + ); $form['filter']['group5'] = array( '#type' => 'markup', @@ -780,6 +825,7 @@ $_SESSION['stormtask_list_filter']['datebeginto'] = $form_state['values']['datebeginto']; $_SESSION['stormtask_list_filter']['dateendfrom'] = $form_state['values']['dateendfrom']; $_SESSION['stormtask_list_filter']['dateendto'] = $form_state['values']['dateendto']; + $_SESSION['stormtask_list_filter']['assigned_to'] = $form_state['values']['assigned_to']; $_SESSION['stormtask_list_filter']['itemsperpage'] = $form_state['values']['itemsperpage']; } Index: stormticket/stormticket.admin.inc =================================================================== --- stormticket/stormticket.admin.inc (revision 538) +++ stormticket/stormticket.admin.inc (working copy) @@ -6,6 +6,9 @@ */ function stormticket_list() { + + global $user; + $breadcrumb = array(); $breadcrumb[] = l(t('Storm'), 'storm'); drupal_set_breadcrumb($breadcrumb); @@ -81,6 +84,7 @@ $filterfields = array(); $s = "SELECT n.*, sti.* FROM {node} AS n INNER JOIN {stormticket} AS sti ON n.vid=sti.vid WHERE n.status=1 AND n.type='stormticket' "; + if ($_SESSION['stormticket_list_filter']['organization_nid']) { $where[] = 'sti.organization_nid=%d'; $args[] = $_SESSION['stormticket_list_filter']['organization_nid']; @@ -174,6 +178,37 @@ $filterfields[] = t('Date'); } } + + if ($_SESSION['stormticket_list_filter']['assigned_to']) { + if (!is_numeric($_SESSION['stormticket_list_filter']['assigned_to'])) { + switch ($_SESSION['stormticket_list_filter']['assigned_to']) { + + case 'all': + // NO FILTER + break; + + case 'mine': + // CURRENT USER + if (!empty($user->stormperson_nid) && is_numeric($user->stormperson_nid)) { + $assigned_to_nid = $user->stormperson_nid; + } + break; + + case 'none': + $where[] = '(sti.assigned_nid IS NULL OR sti.assigned_nid = 0) '; + break; + + } + } + else { + $assigned_to_nid = $_SESSION['stormticket_list_filter']['assigned_to']; + } + if (!empty($assigned_to_nid) && is_numeric($assigned_to_nid)) { + $where[] = 'sti.assigned_nid=%d'; + $args[] = $assigned_to_nid; + $filterfields[] = t('Assigned to'); + } + } $itemsperpage = $_SESSION['stormticket_list_filter']['itemsperpage']; if (!$itemsperpage) { @@ -243,6 +278,8 @@ $datebeginto = $_SESSION['stormticket_list_filter']['datebeginto']; $dateendfrom = $_SESSION['stormticket_list_filter']['dateendfrom']; $dateendto = $_SESSION['stormticket_list_filter']['dateendto']; + + $assigned_to = $_SESSION['stormticket_list_filter']['assigned_to']; $form = array(); @@ -375,6 +412,17 @@ '#title' => t('Date end to'), '#default_value' => $dateendto, ); + + + // ASSIGNED TO + $options = storm_get_assignment_options($node->organization_nid, $node->project_nid); + $form['filter']['group4_1']['assigned_to'] = array( + '#type' => 'select', + '#title' => t('Assigned to'), + '#default_value' => $assigned_to, + '#options' => $options, + ); + $form['filter']['group5'] = array( '#type' => 'markup', @@ -416,6 +464,7 @@ $_SESSION['stormticket_list_filter']['datebeginto'] = $form_state['values']['datebeginto']; $_SESSION['stormticket_list_filter']['dateendfrom'] = $form_state['values']['dateendfrom']; $_SESSION['stormticket_list_filter']['dateendto'] = $form_state['values']['dateendto']; + $_SESSION['stormticket_list_filter']['assigned_to'] = $form_state['values']['assigned_to']; $_SESSION['stormticket_list_filter']['itemsperpage'] = $form_state['values']['itemsperpage']; }