Changeset 5380

Show
Ignore:
Timestamp:
12/10/07 07:40:25 (9 months 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                         
Donate



Support
Download
Develop
Forums
News
Documentation
Paid Support
About

Paid Ads