Changeset 5380

Show
Ignore:
Timestamp:
12/10/07 10:40:25 (5 years ago)
Author:
p_lindheimer
Message:

add default group and ability to add extensions/users at add/edit time

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • contributed_modules/modules/vmblast/functions.inc.php

    r5372 r5380  
    136136} 
    137137 
    138 function vmblast_add($grpnum,$grplist,$description,$audio_label= -1, $password = '') { 
     138function vmblast_add($grpnum,$grplist,$description,$audio_label= -1, $password = '', $default_group=0) { 
    139139  global $db; 
    140140 
     
    152152  $sql = "INSERT INTO vmblast (grpnum, description, audio_label, password) VALUES (".$grpnum.", '".str_replace("'", "''", $description)."', '$audio_label', '".str_replace("'","''", $password)."')"; 
    153153  $results = sql($sql); 
     154 
     155  if ($default_group) { 
     156    sql("DELETE FROM `admin` WHERE variable = 'default_vmblast_grp'"); 
     157    sql("INSERT INTO `admin` (variable, value) VALUES ('default_vmblast_grp', '$grpnum')"); 
     158  } else { 
     159    sql("DELETE FROM `admin` WHERE variable = 'default_vmblast_grp' AND value = '$grpnum'"); 
     160  } 
    154161} 
    155162 
     
    157164  $results = sql("DELETE FROM vmblast WHERE grpnum = '$grpnum'","query"); 
    158165  $results = sql("DELETE FROM vmblast_groups WHERE grpnum = '$grpnum'","query"); 
     166  sql("DELETE FROM `admin` WHERE variable = 'default_vmblast_grp' AND value = '$grpnum'"); 
    159167} 
    160168 
     
    181189  } 
    182190  $results['grplist'] = implode('&',$grplist); 
     191 
     192  $sql = "SELECT * FROM admin WHERE variable='default_vmblast_grp' AND value='$grpnum'"; 
     193  $default_group = $db->getRow($sql, DB_FETCHMODE_ASSOC); 
     194  if(DB::IsError($default_group)) { 
     195    $results['default_group'] = 0; 
     196  } else { 
     197    $results['default_group'] = empty($default_group) ? 0 : $default_group['value']; 
     198  } 
    183199   
    184200  return $results; 
    185201} 
     202 
     203function vmblast_check_default($extension) { 
     204  $sql = "SELECT ext FROM vmblast_groups WHERE ext = '$extension' AND grpnum = (SELECT value FROM admin WHERE variable = 'default_vmblast_grp' limit 1)"; 
     205  $results = sql($sql,"getAll"); 
     206  return (count($results) ? 1 : 0); 
     207} 
     208 
     209function vmblast_set_default($extension, $value) { 
     210  $default_group = sql("SELECT value FROM `admin` WHERE variable = 'default_vmblast_grp' limit 1", "getOne"); 
     211  if ($default_group == '') { 
     212    return false; 
     213  } 
     214  sql("DELETE FROM vmblast_groups WHERE ext = '$extension' AND grpnum = '$default_group'"); 
     215  if ($value == 1) { 
     216    sql("INSERT INTO vmblast_groups (grpnum, ext) VALUES ('$default_group', '$extension')"); 
     217  } 
     218} 
     219 
     220function vmblast_configpageinit($pagename) { 
     221  global $currentcomponent; 
     222 
     223  $action = isset($_REQUEST['action'])?$_REQUEST['action']:null; 
     224  $extdisplay = isset($_REQUEST['extdisplay'])?$_REQUEST['extdisplay']:null; 
     225  $extension = isset($_REQUEST['extension'])?$_REQUEST['extension']:null; 
     226  $tech_hardware = isset($_REQUEST['tech_hardware'])?$_REQUEST['tech_hardware']:null; 
     227 
     228  // We only want to hook 'users' or 'extensions' pages. 
     229  if ($pagename != 'users' && $pagename != 'extensions') { 
     230    return true; 
     231  } 
     232 
     233  //if ($tech_hardware != null && ($pagename == 'extensions' || $pagename == 'users')) { 
     234  if ($tech_hardware != null || $pagename == 'users') { 
     235    vmblast_applyhooks(); 
     236    $currentcomponent->addprocessfunc('vmblast_configprocess', 8); 
     237  } elseif ($action=="add") { 
     238    // We don't need to display anything on an 'add', but we do need to handle returned data. 
     239    $currentcomponent->addprocessfunc('vmblast_configprocess', 8); 
     240  } elseif ($extdisplay != '') { 
     241    // We're now viewing an extension, so we need to display _and_ process. 
     242    vmblast_applyhooks(); 
     243    $currentcomponent->addprocessfunc('vmblast_configprocess', 8); 
     244  } 
     245} 
     246 
     247function vmblast_applyhooks() { 
     248  global $currentcomponent; 
     249 
     250  // Add the 'process' function - this gets called when the page is loaded, to hook into  
     251  // displaying stuff on the page. 
     252  $currentcomponent->addoptlistitem('vmblast_group', '0', _("Exclude")); 
     253  $currentcomponent->addoptlistitem('vmblast_group', '1', _("Include")); 
     254  $currentcomponent->setoptlistopts('vmblast_group', 'sort', false); 
     255 
     256  $currentcomponent->addguifunc('vmblast_configpageload'); 
     257} 
     258 
     259// This is called before the page is actually displayed, so we can use addguielem(). 
     260function vmblast_configpageload() { 
     261  global $currentcomponent; 
     262 
     263  // Init vars from $_REQUEST[] 
     264  $action = isset($_REQUEST['action']) ? $_REQUEST['action']:null; 
     265  $extdisplay = isset($_REQUEST['extdisplay']) ? $_REQUEST['extdisplay']:null; 
     266   
     267  // Don't display this stuff it it's on a 'This xtn has been deleted' page. 
     268  if ($action != 'del') { 
     269 
     270    $default_group = sql("SELECT value FROM `admin` WHERE variable = 'default_vmblast_grp'", "getOne"); 
     271    $section = _("Default Group Inclusion"); 
     272    if ($default_group != "") { 
     273      $in_default_vmblast_grp = vmblast_check_default($extdisplay); 
     274      $currentcomponent->addguielem($section, new gui_selectbox('in_default_vmblast_grp', $currentcomponent->getoptlist('vmblast_group'), $in_default_vmblast_grp, _('Default VMblast Group'), _('You can include or exclude this extension/device from being part of the default voicemail blast group when creating or editing.'), false)); 
     275    }  
     276  } 
     277} 
     278 
     279function vmblast_configprocess() { 
     280  global $db; 
     281 
     282  //create vars from the request 
     283  // 
     284  $action = isset($_REQUEST['action'])?$_REQUEST['action']:null; 
     285  $ext = isset($_REQUEST['extdisplay'])?$_REQUEST['extdisplay']:null; 
     286  $extn = isset($_REQUEST['extension'])?$_REQUEST['extension']:null; 
     287  $in_default_vmblast_grp = isset($_REQUEST['in_default_vmblast_grp'])?$_REQUEST['in_default_vmblast_grp']:false; 
     288 
     289  $extdisplay = ($ext==='') ? $extn : $ext; 
     290   
     291  if ($action == "add" || $action == "edit") { 
     292    if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) { 
     293      if ($in_default_vmblast_grp !== false) { 
     294        vmblast_set_default($extdisplay, $in_default_vmblast_grp); 
     295      } 
     296    } 
     297  } elseif ($action == "del") { 
     298    $sql = "DELETE FROM vmblast_groups WHERE ext = '$extdisplay'"; 
     299    sql($sql); 
     300  } 
     301} 
    186302?> 
  • contributed_modules/modules/vmblast/page.vmblast.php

    r5372 r5380  
    2020$audio_label = isset($_REQUEST['audio_label']) ? $audio_label : -1; 
    2121$password    = isset($_REQUEST['password'])    ? $password    : ''; 
     22$default_group  = isset($_REQUEST['default_group']) ? $default_group : '0'; 
    2223 
    2324if (isset($_REQUEST["grplist"])) { 
     
    7677    if ($action == 'editGRP') { 
    7778      vmblast_del($account);   
    78       vmblast_add($account,implode("&",$grplist),$description,$audio_label,$password); 
     79      vmblast_add($account,implode("&",$grplist),$description,$audio_label,$password,$default_group); 
    7980      needreload(); 
    8081      redirect_standard('extdisplay'); 
     
    111112    $audio_label = $thisgrp['audio_label']; 
    112113    $password    = $thisgrp['password']; 
     114    $default_group = $thisgrp['default_group']; 
    113115    unset($grpliststr); 
    114116    unset($thisgrp); 
     
    240242 
    241243      <tr> 
     244        <td> 
     245          <a href='#' class='info'><?php echo _("Default Page Group") ?>  
     246            <span> <?php echo _("Each PBX system can have a single Default Page Group. If specified, extensions can be automatically added (or removed) from the default page group in the Extensions (or Users) tab.<br />Making this group the default will uncheck the option from the current default group if specified.") ?> </span> 
     247          </a> 
     248        </td> 
     249        <td> 
     250          <input type='checkbox' name='default_group' id="default_group" value='1' <?php if ($default_group) { echo 'CHECKED'; } ?>> 
     251        </td> 
     252 
     253      <tr> 
    242254      <td colspan="2"><br><h6><input name="Submit" type="submit" value="<?php echo _("Submit Changes")?>"></h6></td>     
    243255