From: Ben Klang Date: Sun, 28 Mar 2010 01:25:19 +0000 (-0400) Subject: Shout: Allow for multiple dial-out numbers X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=6ff414b9c89df4977dafd1c8bb167e6a69d5d6a4;p=horde.git Shout: Allow for multiple dial-out numbers --- diff --git a/shout/lib/Shout.php b/shout/lib/Shout.php index 7d4ef294c..d88a9c553 100644 --- a/shout/lib/Shout.php +++ b/shout/lib/Shout.php @@ -194,7 +194,7 @@ class Shout 'dial' => array( 'description' => _("Call out"), 'args' => array( - 'number' => array( + 'numbers' => array( 'name' => _("Phone Number"), 'type' => 'phone', 'required' => true diff --git a/shout/templates/dialplan/edit.inc b/shout/templates/dialplan/edit.inc index f07d39feb..69144b31a 100644 --- a/shout/templates/dialplan/edit.inc +++ b/shout/templates/dialplan/edit.inc @@ -152,12 +152,11 @@ function editAction(digit) empty('editAction'); var action = $('editActionForm').down('select').getValue(); var div = document.createElement('div'); + div.id = 'editActionArgs'; switch(action) { case 'jump': - var span = document.createElement('span'); - var text = document.createTextNode(menuActions.get(action).description); - span.appendChild(text); - div.appendChild(span); + var text = document.createTextNode(menuActions.get(action).args.menuName.name); + div.appendChild(text); var select = document.createElement('select'); select.name = 'menuName'; @@ -176,10 +175,8 @@ function editAction(digit) case 'ringexten': case 'leave_message': - var span = document.createElement('span'); - var text = document.createTextNode(menuActions.get(action).description); - span.appendChild(text); - div.appendChild(span); + var text = document.createTextNode(menuActions.get(action).args.exten.name); + div.appendChild(text); var select = document.createElement('select'); select.name = 'exten'; @@ -198,10 +195,8 @@ function editAction(digit) break; case 'conference': - var span = document.createElement('span'); - var text = document.createTextNode(menuActions.get(action).description); - span.appendChild(text); - div.appendChild(span); + var text = document.createTextNode(menuActions.get(action).args.roomno.name); + div.appendChild(text); var input = document.createElement('input'); input.name = 'roomno'; @@ -212,10 +207,31 @@ function editAction(digit) break; case 'dial': - alert(action); + var text = document.createTextNode(menuActions.get(action).args.numbers.name); + div.appendChild(text); + var br = document.createElement('br'); + div.appendChild(br); if (menuInfo.get(curmenu).actions[digit] != null) { - alert("FIXME: Preserve values"); + menuInfo.get(curmeun).actions[digit].args.numbers.each(function (s) { + var input = document.createElement('input'); + input.name = 'numbers[]'; + input.value = s; + input.size = "15"; + div.appendChild(input); + }) + } else { + var input = document.createElement('input'); + input.name = 'numbers[]'; + input.size = "15"; + div.appendChild(input); + } + var img = document.createElement('img'); + img.alt = ''; + img.id = 'addDialNumberButton'; + img.src = ''; + img.setAttribute('onclick', 'addDialNumber()'); + div.appendChild(img); break; case 'rewind': @@ -248,6 +264,23 @@ function editAction(digit) $('dialpadWorking').hide(); } +function addDialNumber() +{ + $('editActionArgs').removeChild($('addDialNumberButton')); + var br = document.createElement('br'); + $('editActionArgs').appendChild(br); + var input = document.createElement('input'); + input.name = 'numbers[]'; + input.size = "15"; + $('editActionArgs').appendChild(input); + var img = document.createElement('img'); + img.alt = ''; + img.id = 'addDialNumberButton'; + img.src = ''; + img.setAttribute('onclick', 'addDialNumber()'); + $('editActionArgs').appendChild(img); +} + function saveAction(event) { $('dialpadWorking').show(); @@ -386,10 +419,11 @@ function refreshMenu() } break; case 'dial': - if (pair.value.args.length == 1) { - text = document.createTextNode(pair.value.args.first().number); - } else if (pair.value.args.length > 1) { - text = document.createTextNode(pair.value.args.length + ' '); + if (pair.value.args.numbers.length == 1) { + text = document.createTextNode(pair.value.args.numbers.first()); + } else if (pair.value.args.numbers.length > 1) { + text = document.createTextNode(pair.value.args.numbers.length + + ' '); } else { // Technically, this is an error. // There should always be a number to dial. diff --git a/shout/themes/screen.css b/shout/themes/screen.css index 779db6d7b..226844d3a 100644 --- a/shout/themes/screen.css +++ b/shout/themes/screen.css @@ -44,7 +44,6 @@ table { .extensionDestinations { - /*display: none;*/ position: relative; left: 25px; } @@ -155,6 +154,11 @@ ul { background-image: url('graphics/transparency.png'); } +#editActionArgs +{ + padding-left: 45px; +} + #editMenu { width: 100%;