1<?php 2/********************************************************************* 3 teams.php 4 5 Evertything about teams 6 7 Peter Rotich <peter@osticket.com> 8 Copyright (c) 2006-2013 osTicket 9 http://www.osticket.com 10 11 Released under the GNU General Public License WITHOUT ANY WARRANTY. 12 See LICENSE.TXT for details. 13 14 vim: expandtab sw=4 ts=4 sts=4: 15**********************************************************************/ 16require('admin.inc.php'); 17 18$team=null; 19if($_REQUEST['id'] && !($team=Team::lookup($_REQUEST['id']))) 20 $errors['err']=sprintf(__('%s: Unknown or invalid'), __('team')); 21 22if($_POST){ 23 switch(strtolower($_POST['do'])){ 24 case 'update': 25 if(!$team){ 26 $errors['err']=sprintf(__('%s: Unknown or invalid'), __('team')); 27 }elseif($team->update($_POST,$errors)){ 28 $msg=sprintf(__('Successfully updated %s.'), 29 __('this team')); 30 }elseif(!$errors['err']){ 31 $errors['err']=sprintf('%s %s', 32 sprintf(__('Unable to update %s.'), __('this team')), 33 __('Correct any errors below and try again.')); 34 } 35 break; 36 case 'create': 37 $team = Team::create(); 38 if (($team->update($_POST, $errors))){ 39 $msg=sprintf(__('Successfully added %s.'),Format::htmlchars($_POST['team'])); 40 $type = array('type' => 'created'); 41 Signal::send('object.created', $team, $type); 42 $_REQUEST['a']=null; 43 }elseif(!$errors['err']){ 44 $errors['err']=sprintf('%s %s', 45 sprintf(__('Unable to add %s.'), __('this team')), 46 __('Correct any errors below and try again.')); 47 } 48 break; 49 case 'mass_process': 50 if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) { 51 $errors['err']=sprintf(__('You must select at least %s.'), __('one team')); 52 } else { 53 $count=count($_POST['ids']); 54 switch(strtolower($_POST['a'])) { 55 case 'enable': 56 $num = Team::objects()->filter(array( 57 'team_id__in' => $_POST['ids'] 58 ))->update(array( 59 'flags' => SqlExpression::bitor( 60 new SqlField('flags'), 61 Team::FLAG_ENABLED 62 ) 63 )); 64 65 if ($num) { 66 if($num==$count) 67 $msg = sprintf(__('Successfully activated %s'), 68 _N('selected team', 'selected teams', $count)); 69 else 70 $warn = sprintf(__('%1$d of %2$d %3$s activated'), $num, $count, 71 _N('selected team', 'selected teams', $count)); 72 } else { 73 $errors['err'] = sprintf(__('Unable to activate %s'), 74 _N('selected team', 'selected teams', $count)); 75 } 76 break; 77 case 'disable': 78 $num = Team::objects()->filter(array( 79 'team_id__in' => $_POST['ids'] 80 ))->update(array( 81 'flags' => SqlExpression::bitand( 82 new SqlField('flags'), 83 ~Team::FLAG_ENABLED 84 ) 85 )); 86 87 if ($num) { 88 if($num==$count) 89 $msg = sprintf(__('Successfully disabled %s'), 90 _N('selected team', 'selected teams', $count)); 91 else 92 $warn = sprintf(__('%1$d of %2$d %3$s disabled'), $num, $count, 93 _N('selected team', 'selected teams', $count)); 94 } else { 95 $errors['err'] = sprintf(__('Unable to disable %s'), 96 _N('selected team', 'selected teams', $count)); 97 } 98 break; 99 case 'delete': 100 foreach($_POST['ids'] as $k=>$v) { 101 if(($t=Team::lookup($v))) { 102 $t->delete(); 103 $i++; 104 } 105 } 106 if($i && $i==$count) 107 $msg = sprintf(__('Successfully deleted %s.'), 108 _N('selected team', 'selected teams', $count)); 109 elseif($i>0) 110 $warn = sprintf(__('%1$d of %2$d %3$s deleted'), $i, $count, 111 _N('selected team', 'selected teams', $count)); 112 elseif(!$errors['err']) 113 $errors['err'] = sprintf(__('Unable to delete %s.'), 114 _N('selected team', 'selected teams', $count)); 115 break; 116 default: 117 $errors['err'] = sprintf('%s - %s', __('Unknown action'), __('Get technical help!')); 118 } 119 } 120 break; 121 default: 122 $errors['err']=__('Unknown action'); 123 break; 124 } 125} 126 127$page='teams.inc.php'; 128$tip_namespace = 'staff.team'; 129if($team || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { 130 $page='team.inc.php'; 131} 132 133$nav->setTabActive('staff'); 134$ost->addExtraHeader('<meta name="tip-namespace" content="' . $tip_namespace . '" />', 135 "$('#content').data('tipNamespace', '".$tip_namespace."');"); 136require(STAFFINC_DIR.'header.inc.php'); 137require(STAFFINC_DIR.$page); 138include(STAFFINC_DIR.'footer.inc.php'); 139?> 140