$context = Util::getFormData("context");
$section = "dialplan";
$action = Util::getFormData("action");
+if ($button = Util::getFormData("submitbutton")) {
+ $action = $button;
+}
$extension = Util::getFormData("extension");
-$contexts = $shout->getContexts();
+$contexts = &$shout->getContexts();
$vars = &Variables::getDefaultVariables();
if (!isset($context)) {#FIXME || !Shout::checkContext()) {
exit(0);
}
-
switch ($action) {
case "add":
$title = _("Add Extension");
unset($extension);
$action = 'edit';
break;
+ case "Add Priority":
+ $dialplan = &$shout->getDialplan($context);
+ #FIXME Handle added-but-not-yet-saved priorities
+ $dialplan['extensions'][$extension][] = '';
+ $action = 'edit';
+ break;
+ case "Add 5 Priorities":
+ $dialplan = &$shout->getDialplan($context);
+ $dialplan['extensions'][$extension][] = '';
+ $dialplan['extensions'][$extension][] = '';
+ $dialplan['extensions'][$extension][] = '';
+ $dialplan['extensions'][$extension][] = '';
+ $dialplan['extensions'][$extension][] = '';
+ $action = 'edit';
+ break;
case "edit":
$title = _("Edit Extension") . "$extension";
break;
+ case "Save":
case "save":
$title = _("Save Extension") . "$extension";
break;
$vars = &Variables::getDefaultVariables($empty);
$formname = $vars->get('formname');
+$context = $vars->get('context');
+$extension = $vars->get('extension');
+$dialplan = &$shout->getDialplan($context);
-$UserDetailsForm = &Horde_Form::singleton('UserDetailsForm', $vars);
-$UserDetailsFormValid = $UserDetailsForm->validate($vars, true);
+$ExtensionDetailsForm = &Horde_Form::singleton('ExtensionDetailsForm', $vars);
+$ExtensionDetailsFormValid = $ExtensionDetailsForm->validate($vars, true);
-$UserDetailsForm->open($RENDERER, $vars, 'dialplan.php', 'post');
-$UserDetailsForm->preserveVarByPost($vars, "section");
-$UserDetailsForm->preserve($vars);
+$ExtensionDetailsForm->open($RENDERER, $vars, 'dialplan.php', 'post');
+$ExtensionDetailsForm->preserveVarByPost($vars, "section");
+$ExtensionDetailsForm->preserve($vars);
require SHOUT_TEMPLATES . '/table-limiter-begin.inc';
-$RENDERER->beginActive($UserDetailsForm->getTitle());
-$RENDERER->renderFormActive($UserDetailsForm, $vars);
-$RENDERER->submit();
+$RENDERER->beginActive($ExtensionDetailsForm->getTitle());
+$RENDERER->renderFormActive($ExtensionDetailsForm, $vars);
+# FIXME Maybe this should be a subclass inheriting from the From/Renderer object
+# instead of a simple include?
+$i = 0;
+require SHOUT_TEMPLATES . '/dialplan/priority-form-begin.inc';
+foreach ($dialplan['extensions'][$extension] as $priority => $application) {
+ require SHOUT_TEMPLATES . '/dialplan/priority-form-line.inc';
+ $i++;
+}
+require SHOUT_TEMPLATES . '/dialplan/priority-form-end.inc';
+$RENDERER->submit('Add Priority');
+$RENDERER->submit('Add 5 Priorities');
+$RENDERER->submit('Save');
$RENDERER->end();
-$UserDetailsForm->close($RENDERER);
+$ExtensionDetailsForm->close($RENDERER);
require SHOUT_TEMPLATES . '/table-limiter-end.inc';
\ No newline at end of file
$context = Util::getFormData("context");
$section = Util::getFormData("section");
-$contexts = $shout->getContexts();
+$contexts = &$shout->getContexts();
$vars = &Variables::getDefaultVariables();
#$ticket->setDetails($vars);
$context = $vars->get("context");
$extension = $vars->get("extension");
- $dialplan = $shout->getDialplan($context);
+ $dialplan = &$shout->getDialplan($context);
+ $extendata = $dialplan['extensions'][$extension];
if (array_key_exists($extension, $dialplan['extensions'])) {
$formtitle = "Edit Extension";
} else {
$this->addHidden('', 'oldextension', 'text', true);
$vars->set('oldextension', $extension);
$this->addHidden('', 'action', 'text', true);
- $vars->set('action', 'save');
+// $vars->set('action', 'save');
$this->addVariable(_("Extension"), 'extension', 'text', true);
+ $this->addVariable(_("Priority"), 'priority', 'priority', true);
+// foreach ($extendata as $priority => $application) {
+// $vars->set("priority$priority", $application);
+// $this->addVariable("Priority $priority", "priority$priority",
+// 'text', false);
+// }
}
// {{{ fillUserForm method
}
// }}}
-class ExtensionPriorityForm extends ExtensionDetailsForm {
+class Horde_Form_Type_priority extends Horde_Form_Type {
- function ExtensionPriorityForm(&$vars)
+// var $_regex;
+// var $_size;
+// var $_maxlength;
+
+ /**
+ * The initialisation function for the text variable type.
+ *
+ * @access private
+ *
+ * @param string $regex Any valid PHP PCRE pattern syntax that
+ * needs to be matched for the field to be
+ * considered valid. If left empty validity
+ * will be checked only for required fields
+ * whether they are empty or not.
+ * If using this regex test it is advisable
+ * to enter a description for this field to
+ * warn the user what is expected, as the
+ * generated error message is quite generic
+ * and will not give any indication where
+ * the regex failed.
+ * @param integer $size The size of the input field.
+ * @param integer $maxlength The max number of characters.
+ */
+ function init()
+ {
+ }
+// function init($regex = '', $size = 40, $maxlength = null)
+// {
+// $this->_regex = $regex;
+// $this->_size = $size;
+// $this->_maxlength = $maxlength;
+// }
+
+ function isValid(&$var, &$vars, $value, &$message)
{
- global $shout;
- $context = $vars->get("context");
- $extension = $vars->get("extension");
-
- $dialplan = $shout->getDialplan($context);
- if (array_key_exists($extension, $dialplan['extensions'])) {
- $formtitle = "Edit Extension";
- } else {
- $formtitle = "Add Extension";
- }
-
- parent::Horde_Form($vars, _("$formtitle - Context: $context"));
-
- $this->addHidden('', 'context', 'text', true);
- $this->addHidden('', 'oldextension', 'text', true);
- $vars->set('oldextension', $extension);
- $this->addHidden('', 'action', 'text', true);
- $vars->set('action', 'save');
- $this->addVariable(_("Extension"), 'extension', 'text', true);
+ $valid = true;
+
+// if ($var->isRequired() && empty($this->_regex)) {
+// $valid = strlen(trim($value)) > 0;
+//
+// if (!$valid) {
+// $message = _("This field is required.");
+// }
+// } elseif (!empty($this->_regex)) {
+// $valid = preg_match($this->_regex, $value);
+//
+// if (!$valid) {
+// $message = _("You have to enter a valid value.");
+// }
+// }
+
+ return $valid;
}
+
+ function getSize()
+ {
+ return $this->_size;
+ }
+
+ function getMaxLength()
+ {
+ return $this->_maxlength;
+ }
+
+ /**
+ * Return info about field type.
+ */
+ function about()
+ {
+ $about = array();
+ $about['name'] = _("Extension Priority");
+ $about['params'] = array(
+ 'priority' => array('label' => _("Priority"),
+ 'type' => 'int'),
+ 'application' => array('label' => _("Application"),
+ 'type' => 'stringlist'),
+ 'args' => array('label' => _("Arguments"),
+ 'type' => 'text'),
+ );
+ return $about;
+ }
+
}
-// }}}
\ No newline at end of file
+
+// require_once HORDE_BASE . '/lib/Horde/UI/VarRenderer.php';
+// require_once HORDE_BASE . '/lib/Horde/UI/VarRenderer/html.php';
+// class Horde_UI_VarRenderer_html_priority extends Horde_UI_VarRenderer_html
+// {
+// function _renderVarInput_priority(&$form, &$var, &$vars)
+// {
+// echo '<input type="text" name="priority[0]" value="88" size="3" ';
+// echo 'id="priority[0]" />';
+// echo '<select><option>GotoSelf</option></select>\n';
+// echo '<input type="text" name="application[0]" ';
+// echo 'size="40" value="101" id="application[0]" />';
+// }
+//
+// function _renderVarDisplay_priority(&$form, &$var, &$vars)
+// {
+// echo '<input type="text" name="priority[0]" value="88" size="3" ';
+// echo 'id="priority[0]" />';
+// echo '<select><option>GotoSelf</option></select>\n';
+// echo '<input type="text" name="application[0]" ';
+// echo 'size="40" value="101" id="application[0]" />';
+// }
+// }
\ No newline at end of file
*
* @access private
*/
- function getContexts($searchfilters = SHOUT_CONTEXT_ALL,
+ function &getContexts($searchfilters = SHOUT_CONTEXT_ALL,
$filterperms = null)
{
static $entries = array();
*
* @return array User information indexed by voice mailbox number
*/
- function getUsers($context)
+ function &getUsers($context)
{
static $entries = array();
* @return array Multi-dimensional associative array of extensions data
*
*/
- function getDialplan($context)
+ function &getDialplan($context)
{
+ static $dialplans = array();
+ if (array_key_exists($context, $dialplans)) {
+ return $dialplans[$context];
+ }
+
$res = ldap_search($this->_LDAP,
SHOUT_ASTERISK_BRANCH.','.$this->_params['basedn'],
"(&(objectClass=asteriskExtensions)(context=$context))",
}
$res = ldap_get_entries($this->_LDAP, $res);
- $retdialplan = array();
+ $dialplans[$context] = array();
$i = 0;
while ($i < $res['count']) {
# Handle extension lines
$token2 = strpos($line, ',', $token1 + 1);
$extension = substr($line, 0, $token1);
- if (!isset($retdialplan[$extension])) {
- $retdialplan[$extension] = array();
+ if (!isset($dialplans[$context][$extension])) {
+ $dialplan[$context][$extension] = array();
}
$token1++;
# Get the priority
$priority = substr($line, $token1, $token2 - $token1);
- $retdialplan[$extension][$priority] = array();
+ $dialplans[$context][$extension][$priority] = array();
$token2++;
# Get Application and args
$application = substr($line, $token2);
# Merge all that data into the returning array
- $retdialplan['extensions'][$extension][$priority] =
+ $dialplans[$context]['extensions'][$extension][$priority] =
$application;
$j++;
}
# Sort the extensions data
- foreach ($retdialplan['extensions'] as $extension) {
- ksort($extension);
+ foreach ($dialplans[$context]['extensions'] as
+ $extension => $data) {
+ ksort($dialplans[$context]['extensions'][$extension]);
}
- ksort($retdialplan['extensions']);
+ ksort($dialplans[$context]['extensions']);
}
# Handle include lines
if (isset($res[$i]['asteriskincludeline'])) {
$j = 0;
while ($j < $res[$i]['asteriskincludeline']['count']) {
@$line = $res[$i]['asteriskincludeline'][$j];
- $retdialplan['include'][$j] = $line;
+ $dialplans[$context]['include'][$j] = $line;
$j++;
}
}
$j = 0;
while ($j < $res[$i]['asteriskignorepat']['count']) {
@$line = $res[$i]['asteriskignorepat'][$j];
- $retdialplan['include'][$j] = $line;
+ $dialplans[$context]['ignorepat'][$j] = $line;
$j++;
}
}
$j = 0;
while ($j < $res[$i]['asteriskextensionbareline']['count']) {
@$line = $res[$i]['asteriskextensionbareline'][$j];
- $retdialplan['bareline'][$j] = $line;
+ $dialplans[$context]['bareline'][$j] = $line;
$j++;
}
}
# Increment object
$i++;
}
- return $retdialplan;
+ return $dialplans[$context];
}
// }}}
$contextfilter = SHOUT_CONTEXT_CUSTOMERS | SHOUT_CONTEXT_EXTENSIONS|
SHOUT_CONTEXT_MOH | SHOUT_CONTEXT_CONFERENCE;
- $contexts = $shout->getContexts($contextfilter);
+ $contexts = &$shout->getContexts($contextfilter);
foreach ($contexts as $context) {
$tmpcontexts[$context] = $context;
}
$context = $vars->get("context");
$extension = $vars->get("extension");
- $users = $shout->getUsers($context);
+ $users = &$shout->getUsers($context);
if (array_key_exists($extension, $users)) {
# We must be editing an existing user
$this->fillUserForm(&$vars, $users[$extension]);
if (!defined(SHOUT_BASE)) {
define(SHOUT_BASE, dirname(__FILE__));
}
-$dialplan = $shout->getDialplan($context);
+$dialplan = &$shout->getDialplan($context);
require SHOUT_TEMPLATES . "/dialplan/dialplanlist.inc";
\ No newline at end of file
if (!defined(SHOUT_BASE)) {
define(SHOUT_BASE, dirname(__FILE__));
}
-$users = $shout->getUsers($context);
+$users = &$shout->getUsers($context);
ksort($users);
require SHOUT_TEMPLATES . "/users/userlist.inc";
\ No newline at end of file
<item url="templates/" uploadstatus="2" />
<item url="lib/" uploadstatus="2" />
<item url="lib/Driver/" uploadstatus="2" />
- <item modified_time="1121576093" url="lib/Driver/ldap.php" uploadstatus="2" />
+ <item modified_time="1121623158" url="lib/Driver/ldap.php" uploadstatus="2" />
<item modified_time="1120589135" url="lib/base.php" uploadstatus="2" />
<item modified_time="1121306551" url="lib/Driver.php" uploadstatus="2" />
- <item modified_time="1121579328" url="index.php" uploadstatus="2" />
+ <item modified_time="1121623574" url="index.php" uploadstatus="2" />
<uploadprofiles showtreeviews="true" defaultProfile="Shout" >
<profile remote_host="picasso.v-office.biz" remote_port="" remote_path="/srv/vhost/users/aklang/sites/intranet.v-office.biz/shout" remote_protocol="sftp" user="aklang" name="Shout" >
<uploadeditem upload_time="0" url="config/" />
<uploadeditem upload_time="1120073766" url="config/conf.xml" />
<uploadeditem upload_time="1120183942" url="contexts.php" />
- <uploadeditem upload_time="1121579932" url="dialplan.php" />
- <uploadeditem upload_time="1121579328" url="index.php" />
+ <uploadeditem upload_time="1121631735" url="dialplan.php" />
+ <uploadeditem upload_time="0" url="dialplan/" />
+ <uploadeditem upload_time="1121632074" url="dialplan/edit.php" />
+ <uploadeditem upload_time="1121623574" url="index.php" />
<uploadeditem upload_time="1120021874" url="index.php~" />
<uploadeditem upload_time="0" url="lib/" />
+ <uploadeditem upload_time="1121632956" url="lib/Dialplan.php" />
<uploadeditem upload_time="1121306551" url="lib/Driver.php" />
<uploadeditem upload_time="1120022560" url="lib/Driver.php~" />
<uploadeditem upload_time="0" url="lib/Driver/" />
- <uploadeditem upload_time="1121576093" url="lib/Driver/ldap.php" />
+ <uploadeditem upload_time="1121623158" url="lib/Driver/ldap.php" />
<uploadeditem upload_time="1120026921" url="lib/Driver/ldap.php~" />
<uploadeditem upload_time="1120288491" url="lib/SelectContext.php" />
<uploadeditem upload_time="1121580048" url="lib/Shout.php" />
- <uploadeditem upload_time="1120815615" url="lib/System.php" />
- <uploadeditem upload_time="1121578306" url="lib/User.php" />
+ <uploadeditem upload_time="1121623619" url="lib/System.php" />
+ <uploadeditem upload_time="1121623659" url="lib/User.php" />
<uploadeditem upload_time="1120279975" url="lib/Users.php" />
<uploadeditem upload_time="1120589135" url="lib/base.php" />
<uploadeditem upload_time="1120073766" url="lib/defines.php" />
<uploadeditem upload_time="0" url="main/" />
- <uploadeditem upload_time="1120355053" url="main/dialplan.php" />
+ <uploadeditem upload_time="1121623690" url="main/dialplan.php" />
<uploadeditem upload_time="1120287842" url="main/moh.php" />
<uploadeditem upload_time="1120815615" url="main/system.php" />
- <uploadeditem upload_time="1121306550" url="main/users.php" />
+ <uploadeditem upload_time="1121623695" url="main/users.php" />
<uploadeditem upload_time="1120287842" url="moh.php" />
<uploadeditem upload_time="1120027019" url="shout.webprj" />
<uploadeditem upload_time="1120815615" url="system.php" />
<uploadeditem upload_time="0" url="templates/context/" />
<uploadeditem upload_time="1120175005" url="templates/context/contextline.inc" />
<uploadeditem upload_time="0" url="templates/dialplan/" />
- <uploadeditem upload_time="1121579774" url="templates/dialplan/dialplanlist.inc" />
- <uploadeditem upload_time="1121486161" url="templates/menu.inc" />
+ <uploadeditem upload_time="1121580987" url="templates/dialplan/dialplanlist.inc" />
+ <uploadeditem upload_time="1121621204" url="templates/dialplan/priority-form-begin.inc" />
+ <uploadeditem upload_time="1121621077" url="templates/dialplan/priority-form-end.inc" />
+ <uploadeditem upload_time="1121621149" url="templates/dialplan/priority-form-line.inc" />
+ <uploadeditem upload_time="1121620916" url="templates/dialplan/priority-form.inc" />
+ <uploadeditem upload_time="1121620517" url="templates/dialplan/prority-form.inc" />
+ <uploadeditem upload_time="1121623829" url="templates/menu.inc" />
<uploadeditem upload_time="1121578573" url="templates/table-limiter-begin.inc" />
<uploadeditem upload_time="1121578576" url="templates/table-limiter-end.inc" />
<uploadeditem upload_time="0" url="templates/users/" />
- <uploadeditem upload_time="1121576381" url="templates/users/userlist.inc" />
+ <uploadeditem upload_time="1121581535" url="templates/users/userlist.inc" />
<uploadeditem upload_time="0" url="themes/" />
<uploadeditem upload_time="0" url="themes/graphics/" />
<uploadeditem upload_time="1121580098" url="themes/graphics/add-dialplan.gif" />
<uploadeditem upload_time="1121580098" url="themes/graphics/add-extension.gif" />
<uploadeditem upload_time="1121300828" url="themes/graphics/add-user.gif" />
<uploadeditem upload_time="1121574328" url="themes/screen.css" />
- <uploadeditem upload_time="1121579644" url="users.php" />
+ <uploadeditem upload_time="1121623747" url="users.php" />
<uploadeditem upload_time="0" url="users/" />
<uploadeditem upload_time="1121404120" url="users/add.php" />
- <uploadeditem upload_time="1121575287" url="users/edit.php" />
+ <uploadeditem upload_time="1121580517" url="users/edit.php" />
<uploadeditem upload_time="1121396278" url="users/index.php" />
<uploadeditem upload_time="1121579127" url="users/save.php" />
</profile>
<item url="config/" uploadstatus="1" />
<item modified_time="1121580048" url="lib/Shout.php" uploadstatus="1" />
<item modified_time="1120174958" url="templates/common-header.inc" uploadstatus="1" />
- <item modified_time="1121486161" url="templates/menu.inc" uploadstatus="1" />
+ <item modified_time="1121623829" url="templates/menu.inc" uploadstatus="1" />
<item url="templates/context/" uploadstatus="1" />
<item modified_time="1120175005" url="templates/context/contextline.inc" uploadstatus="1" />
<item url="templates/users/" uploadstatus="1" />
- <item modified_time="1121576381" url="templates/users/userlist.inc" uploadstatus="1" />
- <item modified_time="1121579774" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
+ <item modified_time="1121581535" url="templates/users/userlist.inc" uploadstatus="1" />
+ <item modified_time="1121580987" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
<item url="templates/dialplan/" uploadstatus="1" />
- <item modified_time="1120815615" url="lib/System.php" uploadstatus="1" />
+ <item modified_time="1121623619" url="lib/System.php" uploadstatus="1" />
<author>Ben Klang</author>
<email>ben@alkaloid.net</email>
<debuggerclient>Gubed</debuggerclient>
<item url="themes/graphics/" uploadstatus="1" />
<item modified_time="1121300828" url="themes/graphics/add-user.gif" uploadstatus="1" />
<item url="users/" uploadstatus="1" />
- <item modified_time="1121578306" url="lib/User.php" uploadstatus="1" />
+ <item modified_time="1121623659" url="lib/User.php" uploadstatus="1" />
<item url="main/" uploadstatus="1" />
- <item modified_time="1120355053" url="main/dialplan.php" uploadstatus="1" />
+ <item modified_time="1121623690" url="main/dialplan.php" uploadstatus="1" />
<item modified_time="1120287842" url="main/moh.php" uploadstatus="1" />
<item modified_time="1120815615" url="main/system.php" uploadstatus="1" />
- <item modified_time="1121306550" url="main/users.php" uploadstatus="1" />
- <item modified_time="1121579644" url="users.php" uploadstatus="1" />
+ <item modified_time="1121623695" url="main/users.php" uploadstatus="1" />
+ <item modified_time="1121623747" url="users.php" uploadstatus="1" />
<item modified_time="1121579127" url="users/save.php" uploadstatus="1" />
- <item modified_time="1121574328" url="themes/screen.css" />
- <item modified_time="1121575287" url="users/edit.php" />
- <item modified_time="1121578573" url="templates/table-limiter-begin.inc" />
- <item modified_time="1121578576" url="templates/table-limiter-end.inc" />
- <item modified_time="1121579932" url="dialplan.php" />
- <item modified_time="1121580098" url="themes/graphics/add-dialplan.gif" />
- <item modified_time="1121580098" url="themes/graphics/add-extension.gif" />
- <item url="dialplan/edit.php" />
- <item url="dialplan/" />
- <item url="lib/Dialplan.php" />
+ <item modified_time="1121574328" url="themes/screen.css" uploadstatus="1" />
+ <item modified_time="1121580517" url="users/edit.php" uploadstatus="1" />
+ <item modified_time="1121578573" url="templates/table-limiter-begin.inc" uploadstatus="1" />
+ <item modified_time="1121578576" url="templates/table-limiter-end.inc" uploadstatus="1" />
+ <item modified_time="1121631735" url="dialplan.php" uploadstatus="1" />
+ <item modified_time="1121580098" url="themes/graphics/add-extension.gif" uploadstatus="1" />
+ <item modified_time="1121632074" url="dialplan/edit.php" uploadstatus="1" />
+ <item url="dialplan/" uploadstatus="1" />
+ <item modified_time="1121632956" url="lib/Dialplan.php" uploadstatus="1" />
+ <item modified_time="1121621204" url="templates/dialplan/priority-form-begin.inc" />
+ <item modified_time="1121621077" url="templates/dialplan/priority-form-end.inc" />
+ <item modified_time="1121621149" url="templates/dialplan/priority-form-line.inc" />
<treestatus>
<openfolder url="config" />
+ <openfolder url="dialplan" />
<openfolder url="lib" />
<openfolder url="lib/Driver" />
<openfolder url="main" />
<label for="context" accesskey="<?php echo $accesskey ?>">
<select id="context" name="context" onchange="contextSubmit()">
<?php
- foreach ($shout->getContexts() as $item) {
+ $contexts = &$shout->getContexts();
+ foreach ($contexts as $item) {
print "<option name=\"$item\"";
if ($item == $context) {
print " selected";
$action = Util::getFormData("action");
$extension = Util::getFormData("extension");
-$contexts = $shout->getContexts();
+$contexts = &$shout->getContexts();
$vars = &Variables::getDefaultVariables();
if (!isset($context)) {#FIXME || !Shout::checkContext()) {