Shout: Continue working on first-run wizard
authorBen Klang <ben@alkaloid.net>
Fri, 2 Apr 2010 16:49:34 +0000 (12:49 -0400)
committerBen Klang <ben@alkaloid.net>
Fri, 2 Apr 2010 16:50:43 +0000 (12:50 -0400)
Start working on merging extensions editor with wizard.

shout/templates/extensions/list.inc
shout/templates/wizard.inc
shout/themes/screen.css
shout/wizard.php

index a0cc042..920713e 100644 (file)
     $addurl = Horde::applicationUrl('extensions.php');
     $addurl = Horde_Util::addParameter($addurl, 'action', 'add');
     ?>
-    <li><a class="button" href="<?php echo $addurl; ?>">
+    <li><a class="button" style="display: block;" href="<?php echo $addurl; ?>">
         <?php echo Horde::img('extension-add.png'); ?>&nbsp;New Extension
         </a>
     </li>
 </ul>
 
+<div id="addExtension" class="form">
+    <div class="header">Add Extension</div>
+        <table cellspacing="0" class="striped">
+            <tr valign="top" class="rowOdd">
+                <td align="right" width="15%">
+                    <span class="form-error">*</span>&nbsp;Full Name
+                </td>
+                <td>
+                    <input type="text" value="" size="40" id="name" name="name">
+                </td>
+            </tr>
+            <tr valign="top" class="rowEven">
+                <td align="right" width="15%">
+                    <span class="form-error">*</span>&nbsp;Extension
+                </td>
+                <td>
+                    <input type="text" value="" id="extension" name="extension" size="5">
+                </td>
+            </tr>
+            <tr valign="top" class="rowOdd">
+                <td align="right" width="15%">
+                    <span class="form-error">*</span>&nbsp;E-Mail Address
+                </td>
+                <td>
+                    <input type="text" value="" id="email" name="email">
+                </td>
+            </tr>
+            <tr valign="top" class="rowEven">
+                <td align="right" width="15%">
+                    <span class="form-error">*</span>&nbsp;PIN
+                </td>
+                <td>
+                    <input type="text" value="" id="mailboxpin" name="mailboxpin" size="5">
+                </td>
+            </tr>
+        </table>
+    <div class="control">
+        <input type="submit" value="Save" name="addExtension" class="button">
+    </div>
+</div>
+
 <script type="text/javascript">
 <!--
 
@@ -57,6 +98,9 @@ var devices = $H();
 var ajax_url = '<?php echo Horde::getServiceLink('ajax', 'shout') ?>';
 var curexten = null;
 
+$('addExtension').hide();
+
+
 function empty(p)
 {
     var e;
index d007e7a..927bb95 100644 (file)
@@ -1,23 +1,86 @@
+<div id="wizard">
+<form id="wizardForm" name="wizard" action="#">
+<h3 onclick="showstep('welcome')">Welcome</h3>
+<div id="welcome" class="step">
+    <p>Here you will configure your new PBX.  Follow the simple instructions below, yada, yada.
+    <p><input type="submit" class="button" name="step1" onclick="showstep('step1')" value="Continue to Step 1">
+</div>
+
+<h3 onclick="showstep('step1')">Step 1: Create your company greeting</h3>
 <div id="step1" class="step">
-    <h2>Step 1: Create your company greeting.</h2>
     <ol>
-        <li>1: Call your new Verendus number: 404-475-4840</li>
+        <li>1: Call your new number: FIXME</li>
         <li>2: When you hear the default greeting, press the star key, "<span class="attention">*</span>".</li>
         <li>3: When prompted, enter your admin PIN: <span class="attention"><?php echo $curaccount['adminpin']; ?></span>.</li>
         <li>4: Press <span class="attention">1</span> to manage recordings.</li>
         <li>5: Enter the recording ID for your new menu: <span class="attention"><?php echo $recording['id']; ?></span><br>
         Follow the prompts to create and save your new recording.</li>
     </ol>
-    When finished, hang up.
-    <br style="clear:both;">
-    <div class="button" onclick="$('step2').show()">Continue to Step 2</div>
+    <p>When finished, hang up.</p>
+    <input type="submit" class="button" name="step2" value="Continue to Step 2" />
 </div>
-<br style="clear:both;">
+
+<h3 onclick="showstep('step2')">Step 2: Create your first extension</h3>
 <div id="step2" class="step">
-    <?php $extensionform->renderActive(null, $vars, Horde::applicationUrl('dialplan.php'), 'post');?>
+    <?php require SHOUT_TEMPLATES . '/extensions/list.inc'; ?>
+    <input type="submit" class="button" name="finished" value="Finished" />
+</div>
+
+<h3 onclick="showstep('finished')">Finished!</h3>
+<div id="finished" class="step">
+    <p>Congratulations! Your new Verendus phone system is now configured and ready to use.</p>
+    <p>For additional information on using these tools, we have the following resources available:</p>
+    <ul>
+        <li><a>Printable documentation</a></li>
+        <li><a>Getting Started video</a></li>
+    </ul>
+    <br />
+    <input type="submit" class="button" name="continue" value="Continue to the control panel" />
+</div>
+</form>
 </div>
 <script type="text/javascript">
 <!--
+$('step1').hide();
 $('step2').hide();
+$('finished').hide();
+var curblock = 'welcome';
+function showstep(e)
+{
+    if (e == curblock) {
+        return true;
+    }
+
+    if (curblock != null) {
+        Effect.BlindUp(curblock)
+    }
+    
+    curblock = e;
+    Effect.BlindDown(curblock);
+}
+
+function handleClick(event)
+{
+    event.stop();
+    var clicked = event.explicitOriginalTarget.name;
+
+    switch(clicked) {
+    case 'addExtension':
+        alert('Adding an extension');
+        break;
+
+    case 'welcome':
+    case 'step1':
+    case 'step2':
+    case 'finished':
+        showstep(clicked);
+        break;
+
+    default:
+        alert("Unhandled button: " + clicked);
+    }
+}
+
+Event.observe($('wizard').down('form'), 'submit', function(event) {handleClick(event);})
 // -->
 </script>
\ No newline at end of file
index cd29901..a1f80b4 100644 (file)
@@ -224,12 +224,13 @@ div#wizard h3
     border-top-right-radius: 5px;
     padding: 5px;
     display: block;
+    width: 500px;
 }
 
 .step
 {
     width: 500px;
     border: 1px dotted;
-    margin: 5px;
+    margin: 0px 5px;
     padding: 5px;
 }
index 93b47fa..4f5250e 100644 (file)
@@ -18,40 +18,40 @@ try {
     $curaccount = $_SESSION['shout']['curaccount'];
     $menus = $shout->storage->getMenus($curaccount['code']);
 
-    if (!empty($menus) && !empty($menus[Shout::MAIN_MENU])) {
-        header('Location: ' . Horde::applicationUrl('dialplan.php', true));
-        exit;
-    }
-
-    // Create the default recording for the main menu
-    try {
-        $recording = $shout->storage->getRecordingByName($curaccount['code'],
-                                                         Shout::MAIN_RECORDING);
-    } catch (Shout_Exception $e) {
-        $shout->storage->addRecording($curaccount['code'], Shout::MAIN_RECORDING);
-        $recording = $shout->storage->getRecordingByName($curaccount['code'],
-                                                         Shout::MAIN_RECORDING);
-    }
-
-    // Create a default main menu
-    $details = array(
-        'name' => Shout::MAIN_MENU,
-        'description' => _("Main menu: what your callers will hear."),
-        'recording_id' => $recording['id']
-    );
-    $shout->dialplan->saveMenuInfo($curaccount['code'], $details);
-    // Populate the default option, granting the ability to log into the admin
-    // section.
-    $shout->dialplan->saveMenuAction($curaccount['code'], Shout::MAIN_MENU,
-                                     'star', 'admin_login', array());
-
-    $vars = Horde_Variables::getDefaultVariables();
-    $extensionform = new ExtensionDetailsForm($vars);
+//    if (!empty($menus) && !empty($menus[Shout::MAIN_MENU])) {
+//        header('Location: ' . Horde::applicationUrl('dialplan.php', true));
+//        exit;
+//    }
+//
+//    // Create the default recording for the main menu
+//    try {
+//        $recording = $shout->storage->getRecordingByName($curaccount['code'],
+//                                                         Shout::MAIN_RECORDING);
+//    } catch (Shout_Exception $e) {
+//        $shout->storage->addRecording($curaccount['code'], Shout::MAIN_RECORDING);
+//        $recording = $shout->storage->getRecordingByName($curaccount['code'],
+//                                                         Shout::MAIN_RECORDING);
+//    }
+//
+//    // Create a default main menu
+//    $details = array(
+//        'name' => Shout::MAIN_MENU,
+//        'description' => _("Main menu: what your callers will hear."),
+//        'recording_id' => $recording['id']
+//    );
+//    $shout->dialplan->saveMenuInfo($curaccount['code'], $details);
+//    // Populate the default option, granting the ability to log into the admin
+//    // section.
+//    $shout->dialplan->saveMenuAction($curaccount['code'], Shout::MAIN_MENU,
+//                                     'star', 'admin_login', array());
+    $extensions = $shout->extensions->getExtensions($curaccount['code']);
 } catch (Exception $e) {
     $notification->push($e);
 }
 
 Horde::addScriptFile('prototype.js', 'horde');
+Horde::addScriptFile('scriptaculous.js', 'horde');
+Horde::addScriptFile('stripe.js', 'horde');
 
 require SHOUT_TEMPLATES . '/common-header.inc';
 require SHOUT_TEMPLATES . '/menu.inc';