1<?php 2/** 3 * Copyright 2002-2017 Horde LLC (http://www.horde.org/) 4 * 5 * See the enclosed file LICENSE for license information (BSD). If you 6 * did not receive this file, see http://www.horde.org/licenses/bsdl.php. 7 * 8 * @author Chuck Hagenbuch <chuck@horde.org> 9 */ 10 11require_once __DIR__ . '/../lib/Application.php'; 12Horde_Registry::appInit('whups', array( 13 'permission' => array('whups:admin', Horde_Perms::EDIT) 14)); 15 16Whups::addTopbarSearch(); 17 18// Set up the page config vars. 19$showExtraForm = null; 20 21// Setup vars with all relevant info. 22$vars = Horde_Variables::getDefaultVariables(); 23if (!$vars->exists('action')) { 24 $vars->set('action', 'queue'); 25} 26 27// Admin actions. 28$adminurl = Horde::selfUrl(false, false); 29$tabs = new Horde_Core_Ui_Tabs('action', $vars); 30$tabs->addTab(_("_Edit Queues"), $adminurl, 'queue'); 31$tabs->addTab(_("Edit _Types"), $adminurl, 'type'); 32$tabs->addTab(_("Queue/Type Matri_x"), $adminurl, 'mtmatrix'); 33$tabs->addTab(_("Sen_d Reminders"), $adminurl, 'reminders'); 34 35$renderer = new Horde_Form_Renderer(); 36 37// start the page 38function _open($isopened = false) 39{ 40 global $notification, $vars; 41 static $opened; 42 43 if ($isopened) { 44 return $opened; 45 } 46 47 if (is_null($opened)) { 48 global $registry, $prefs, $browser, $conf, $notification, $title, $tabs; 49 50 $opened = true; 51 $title = _("Administration"); 52 $GLOBALS['page_output']->header(array( 53 'title' => $title 54 )); 55 $notification->notify(array('listeners' => 'status')); 56 echo $tabs->render($vars->get('action')); 57 } 58} 59 60function _editStateForms() 61{ 62 global $vars, $renderer, $adminurl; 63 _open(); 64 $form1 = new Whups_Form_Admin_EditStateStepOne($vars); 65 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 66 echo '<br />'; 67 $form2 = new Whups_Form_Admin_DefaultState($vars); 68 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 69 echo '<br />'; 70 $form3 = new Whups_Form_Admin_AddState($vars); 71 $form3->renderActive($renderer, $vars, $adminurl, 'post'); 72} 73 74function _editPriorityForms() 75{ 76 global $vars, $renderer, $adminurl; 77 _open(); 78 $form1 = new Whups_Form_Admin_EditPriorityStepOne($vars); 79 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 80 echo '<br />'; 81 $form2 = new Whups_Form_Admin_DefaultPriority($vars); 82 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 83 echo '<br />'; 84 $form3 = new Whups_Form_Admin_AddPriority($vars); 85 $form3->renderActive($renderer, $vars, $adminurl, 'post'); 86} 87 88switch ($vars->get('formname')) { 89case 'whups_form_admin_addtype': 90 $form1 = new Whups_Form_Admin_AddType($vars); 91 if ($form1->validate($vars)) { 92 // First, add the type 93 $tid = $whups_driver->addType($vars->get('name'), 94 $vars->get('description')); 95 _open(); 96 $vars->add('type', $tid); 97 $form2 = new Whups_Form_Admin_EditTypeStepTwo($vars); 98 $form2->open($renderer, $vars, $adminurl, 'post'); 99 100 // render the stage 1 form readonly 101 $form1->preserve($vars); 102 $renderer->beginInactive(sprintf(_("Add Type %s"), _("- Stage 1"))); 103 $renderer->renderFormInactive($form1, $vars); 104 $renderer->end(); 105 106 // render the second stage form 107 $renderer->beginActive(sprintf(_("Add Type %s"), _("- Stage 2"))); 108 $renderer->renderFormActive($form2, $vars); 109 $renderer->submit(); 110 $renderer->end(); 111 112 $form2->close($renderer); 113 } else { 114 _open(); 115 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 116 } 117 break; 118 119case 'whups_form_admin_edittypestepone': 120 $form1 = new Whups_Form_Admin_EditTypeStepOne($vars); 121 $vars->set('action', 'type'); 122 if ($form1->validate($vars)) { 123 switch ($vars->get('submitbutton')) { 124 case _("Edit Type"): 125 _open(); 126 $form2 = new Whups_Form_Admin_EditTypeStepTwo($vars); 127 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 128 break; 129 130 case _("Delete Type"): 131 _open(); 132 $form2 = new Whups_Form_Admin_DeleteType($vars); 133 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 134 break; 135 136 case _("Clone Type"): 137 _open(); 138 $form2 = new Whups_Form_Admin_CloneType($vars); 139 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 140 break; 141 } 142 } else { 143 _open(); 144 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 145 } 146 break; 147 148case 'whups_form_admin_clonetype': 149 $form = new Whups_Form_Admin_CloneType($vars); 150 if ($form->validate($vars)) { 151 // Create a new type and copy all attributes of the clone master to 152 // the new type. 153 $tid = $vars->get('type'); 154 $type = $whups_driver->getType($tid); 155 $states = $whups_driver->getAllStateInfo($tid); 156 $priorities = $whups_driver->getAllPriorityInfo($tid); 157 $attributes = $whups_driver->getAttributeInfoForType($tid); 158 159 // Create the new type. 160 $nid = $ntype = $whups_driver->addType( 161 $vars->get('name'), $vars->get('description')); 162 163 // Add the states. 164 foreach ($states as $s) { 165 $whups_driver->addState( 166 $nid, $s['state_name'], $s['state_description'], $s['state_category']); 167 } 168 169 // Add the priorities. 170 foreach ($priorities as $p) { 171 $whups_driver->addPriority( 172 $nid, $p['priority_name'], $p['priority_description']); 173 } 174 175 // Add attributes. 176 foreach ($attributes as $attribute) { 177 $a = $whups_driver->getAttributeDesc($attribute['attribute_id']); 178 $whups_driver->addAttributeDesc( 179 $nid, $a['name'], $a['description'], $a['type'], $a['params'], $a['required']); 180 } 181 182 $notification->push( 183 sprintf(_("Successfully Cloned %s to %s."), $type['name'], $vars->get('name')), 184 'horde.success'); 185 Horde::url('admin/?action=type', true)->redirect(); 186 } else { 187 _open(); 188 $form->renderActive($renderer, $vars, $adminurl, 'post'); 189 } 190 break; 191 192case 'whups_form_admin_edittypesteptwo': 193 $form = new Whups_Form_Admin_EditTypeStepTwo($vars); 194 if ($form->validate($vars)) { 195 try { 196 $whups_driver->updateType( 197 $vars->get('type'), 198 $vars->get('name'), 199 $vars->get('description')); 200 $notification->push(sprintf(_("The type \"%s\" has been modified."), 201 $vars->get('name')), 202 'horde.success'); 203 Horde::url('admin/?action=type', true)->redirect(); 204 } catch (Whups_Exception $e) { 205 $notification->push( 206 _("There was an error modifying the type:") . ' ' . $e->getMessage(), 207 'horde.error'); 208 _open(); 209 $form->renderActive($renderer, $vars, $adminurl, 'post'); 210 } 211 } else { 212 _open(); 213 $form->renderActive($renderer, $vars, $adminurl, 'post'); 214 } 215 break; 216 217case 'whups_form_admin_createdefaultstates': 218 $type = $vars->get('type'); 219 foreach ($conf['states'] as $state) { 220 if ($state['active'] == 'active') { 221 $whups_driver->addState($type, $state['name'], 222 $state['desc'], $state['category']); 223 } 224 } 225 226 _open(); 227 $form = new Whups_Form_Admin_EditTypeStepTwo($vars); 228 $form->renderActive($renderer, $vars, $adminurl, 'post'); 229 break; 230 231case 'whups_form_admin_createdefaultpriorities': 232 $type = $vars->get('type'); 233 foreach ($conf['priorities'] as $priority) { 234 if ($priority['active'] == 'active') { 235 $whups_driver->addPriority($type, $priority['name'], 236 $priority['desc']); 237 } 238 } 239 240 _open(); 241 $form = new Whups_Form_Admin_EditTypeStepTwo($vars); 242 $form->renderActive($renderer, $vars, $adminurl, 'post'); 243 break; 244 245case 'whups_form_admin_deletetype': 246 $form = new Whups_Form_Admin_DeleteType($vars); 247 if ($form->validate($vars)) { 248 if ($vars->get('yesno') == 1) { 249 try { 250 $whups_driver->deleteType($vars->get('type')); 251 $notification->push( 252 _("The type has been deleted."), 'horde.success'); 253 } catch (Whups_Exception $e) { 254 $notification->push( 255 _("There was an error deleting the type:") . ' ' . $e->getMessage(), 256 'horde.error'); 257 } 258 } else { 259 $notification->push(_("The type was not deleted."), 260 'horde.message'); 261 } 262 $vars->set('action', 'type'); 263 } else { 264 _open(); 265 $form->renderActive($renderer, $vars, $adminurl, 'post'); 266 } 267 break; 268 269case 'whups_form_admin_addqueue': 270 $form = new Whups_Form_Admin_AddQueue($vars); 271 if ($form->validate($vars)) { 272 try { 273 $result = $whups_driver->addQueue( 274 $vars->get('name'), 275 $vars->get('description'), 276 $vars->get('slug'), 277 $vars->get('email')); 278 279 $notification->push( 280 sprintf(_("The queue \"%s\" has been created."), 281 $vars->get('name')), 282 'horde.success'); 283 284 _open(); 285 $vars->set('queue', $result); 286 $form2 = new Whups_Form_Admin_EditQueueStepTwo($vars); 287 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 288 } catch (Whups_Exception $e) { 289 $notification->push( 290 _("There was an error creating the queue:") . ' ' . $e->getMessage(), 291 'horde.error'); 292 _open(); 293 $form->renderActive($renderer, $vars, $adminurl, 'post'); 294 } 295 } else { 296 _open(); 297 $form->renderActive($renderer, $vars, $adminurl, 'post'); 298 } 299 break; 300 301case 'whups_form_admin_editqueuestepone': 302 $form1 = new Whups_Form_Admin_EditQueueStepOne($vars); 303 if ($form1->validate($vars)) { 304 switch ($vars->get('submitbutton')) { 305 case _("Edit Queue"): 306 _open(); 307 $form2 = new Whups_Form_Admin_EditQueueStepTwo($vars); 308 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 309 break; 310 311 case _("Delete Queue"): 312 _open(); 313 $form2 = new Whups_Form_Admin_DeleteQueue($vars); 314 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 315 break; 316 } 317 } else { 318 _open(); 319 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 320 } 321 break; 322 323case 'whups_form_admin_editqueuestepone': 324case 'whups_form_admin_editqueuesteptwo': 325 $form = new Whups_Form_Admin_EditQueueStepTwo($vars); 326 327 if ($vars->get('formname') == 'whups_form_admin_editqueuesteptwo' && 328 $form->validate($vars)) { 329 try { 330 $whups_driver->updateQueue( 331 $vars->get('queue'), 332 $vars->get('name'), 333 $vars->get('description'), 334 $vars->get('types'), 335 $vars->get('versioned'), 336 $vars->get('slug'), 337 $vars->get('email'), 338 $vars->get('default')); 339 $notification->push( 340 _("The queue has been modified."), 'horde.success'); 341 _open(); 342 $form->renderInactive($renderer, $vars); 343 } catch (Whups_Exception $e) { 344 $notification->push( 345 _("There was an error editing the queue:") . ' ' . $e->getMessage(), 346 'horde.error'); 347 } 348 } else { 349 _open(); 350 $form->renderActive($renderer, $vars, $adminurl, 'post'); 351 } 352 break; 353 354case 'whups_form_admin_deletequeue': 355 $form = new Whups_Form_Admin_DeleteQueue($vars); 356 if ($form->validate($vars)) { 357 if ($vars->get('yesno') == 1) { 358 try { 359 $whups_driver->deleteQueue($vars->get('queue')); 360 $notification->push( 361 _("The queue has been deleted."), 362 'horde.success'); 363 } catch (Horde_Exception $e) { 364 $notification->push( 365 _("There was an error deleting the queue:") . ' ' . $e->getMessage(), 366 'horde.error'); 367 } 368 } else { 369 $notification->push( 370 _("The queue was not deleted."), 371 'horde.message'); 372 } 373 } else { 374 _open(); 375 $form->renderActive($renderer, $vars, $adminurl, 'post'); 376 } 377 break; 378 379case 'whups_form_admin_addstate': 380 $vars->set('action', 'type'); 381 $form = new Whups_Form_Admin_AddState($vars); 382 if ($form->validate($vars)) { 383 try { 384 $whups_driver->addState( 385 $vars->get('type'), 386 $vars->get('name'), 387 $vars->get('description'), 388 $vars->get('category')); 389 390 $typename = $whups_driver->getType($vars->get('type')); 391 $typename = $typename['name']; 392 $notification->push( 393 sprintf(_("The state \"%s\" has been added to %s."), 394 $vars->get('name'), $typename), 395 'horde.success'); 396 } catch (Whups_Exception $e) { 397 $notification->push( 398 _("There was an error creating the state:") . ' ' . $e->getMessage(), 399 'horde.error'); 400 } 401 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 402 _editStateForms(); 403 } else { 404 _open(); 405 $form->renderActive($renderer, $vars, $adminurl, 'post'); 406 } 407 break; 408 409case 'whups_form_admin_editstatestepone': 410 $vars->set('action', 'type'); 411 if (!$vars->get('submitbutton')) { 412 _editStateForms(); 413 } else { 414 _open(); 415 $form1 = new Whups_Form_Admin_EditStateStepOne($vars); 416 if ($form1->validate($vars)) { 417 switch ($vars->get('submitbutton')) { 418 case _("Edit State"): 419 $form2 = new Whups_Form_Admin_EditStateStepTwo($vars); 420 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 421 break; 422 423 case _("Delete State"): 424 $form2 = new Whups_Form_Admin_DeleteState($vars); 425 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 426 break; 427 } 428 } else { 429 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 430 } 431 } 432 break; 433 434case 'whups_form_admin_editstatesteptwo': 435 $vars->set('action', 'type'); 436 $form = new Whups_Form_Admin_EditStateStepTwo($vars); 437 if ($form->validate($vars)) { 438 try { 439 $whups_driver->updateState( 440 $vars->get('state'), 441 $vars->get('name'), 442 $vars->get('description'), 443 $vars->get('category')); 444 445 $notification->push( 446 _("The state has been modified."), 447 'horde.success'); 448 _open(); 449 $form->renderInactive($renderer, $vars); 450 } catch (Whups_Exception $e) { 451 $notification->push( 452 _("There was an error editing the state:") . ' ' . $e->getMessage(), 453 'horde.error'); 454 } 455 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 456 _editStateForms(); 457 } else { 458 _open(); 459 $form->renderActive($renderer, $vars, $adminurl, 'post'); 460 } 461 break; 462 463case 'whups_form_admin_defaultstate': 464 $vars->set('action', 'type'); 465 $form = new Whups_Form_Admin_DefaultState($vars); 466 if ($form->validate($vars)) { 467 try { 468 $whups_driver->setDefaultState( 469 $vars->get('type'), $vars->get('state')); 470 $notification->push( 471 _("The default state has been set."), 472 'horde.success'); 473 } catch (Whups_Exception $e) { 474 $notification->push( 475 _("There was an error setting the default state:") . ' ' . $e->getMessage(), 476 'horde.error'); 477 } 478 _editStateForms(); 479 } else { 480 _open(); 481 $form->renderActive($renderer, $vars, $adminurl, 'post'); 482 } 483 break; 484 485case 'whups_form_admin_deletestate': 486 $vars->set('action', 'type'); 487 $form = new Whups_Form_Admin_DeleteState($vars); 488 if ($form->validate($vars)) { 489 if ($vars->get('yesno') == 1) { 490 try { 491 $whups_driver->deleteState($vars->get('state')); 492 $notification->push( 493 _("The state has been deleted."), 494 'horde.success'); 495 } catch (Whups_Exception $e) { 496 $notification->push( 497 _("There was an error deleting the state:") . ' ' . $e->getMessage(), 498 'horde.error'); 499 } 500 } else { 501 $notification->push(_("The state was not deleted."), 502 'horde.message'); 503 } 504 505 _editStateForms(); 506 } else { 507 _open(); 508 $form->renderActive($renderer, $vars, $adminurl, 'post'); 509 } 510 break; 511 512case 'whups_form_admin_addpriority': 513 $vars->set('action', 'type'); 514 $form = new Whups_Form_Admin_AddPriority($vars); 515 if ($form->validate($vars)) { 516 try { 517 $whups_driver->addPriority( 518 $vars->get('type'), 519 $vars->get('name'), 520 $vars->get('description')); 521 522 $typename = $whups_driver->getType($vars->get('type')); 523 $typename = $typename['name']; 524 $notification->push( 525 sprintf(_("The priority \"%s\" has been added to %s."), 526 $vars->get('name'), $typename), 527 'horde.success'); 528 } catch (Whups_Exception $e) { 529 $notification->push( 530 _("There was an error creating the priority:") . ' ' . $e->getMessage(), 531 'horde.error'); 532 } 533 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 534 _editPriorityForms(); 535 } else { 536 _open(); 537 $form->renderActive($renderer, $vars, $adminurl, 'post'); 538 } 539 break; 540 541case 'whups_form_admin_editprioritystepone': 542 $vars->set('action', 'type'); 543 if (!$vars->get('submitbutton')) { 544 _editPriorityForms(); 545 } else { 546 _open(); 547 $form1 = new Whups_Form_Admin_EditPriorityStepOne($vars); 548 if ($form1->validate($vars)) { 549 switch ($vars->get('submitbutton')) { 550 case _("Edit Priority"): 551 $form2 = new Whups_Form_Admin_EditPriorityStepTwo($vars); 552 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 553 break; 554 555 case _("Delete Priority"): 556 $form2 = new Whups_Form_Admin_DeletePriority($vars); 557 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 558 break; 559 } 560 } else { 561 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 562 } 563 } 564 break; 565 566case 'whups_form_admin_editprioritysteptwo': 567 $vars->set('action', 'type'); 568 $form = new Whups_Form_Admin_EditPriorityStepTwo($vars); 569 if ($form->validate($vars)) { 570 try { 571 $whups_driver->updatePriority( 572 $vars->get('priority'), 573 $vars->get('name'), 574 $vars->get('description')); 575 576 $notification->push( 577 _("The priority has been modified."), 578 'horde.success'); 579 580 _open(); 581 $form->renderInactive($renderer, $vars); 582 } catch (Whups_Exception $e) { 583 $notification->push( 584 _("There was an error editing the priority:") . ' ' . $e->getMessage(), 585 'horde.error'); 586 } 587 588 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 589 _editPriorityForms(); 590 } else { 591 _open(); 592 $form->renderActive($renderer, $vars, $adminurl, 'post'); 593 } 594 break; 595 596case 'whups_form_admin_defaultpriority': 597 $vars->set('action', 'type'); 598 $form = new Whups_Form_Admin_DefaultPriority($vars); 599 if ($form->validate($vars)) { 600 try { 601 $whups_driver->setDefaultPriority( 602 $vars->get('type'), $vars->get('priority')); 603 $notification->push( 604 _("The default priority has been set."), 605 'horde.success'); 606 } catch (Whups_Exception $e) { 607 $notification->push( 608 _("There was an error setting the default priority:") . ' ' . $e->getMessage(), 609 'horde.error'); 610 } 611 _editPriorityForms(); 612 } else { 613 _open(); 614 $form->renderActive($renderer, $vars, $adminurl, 'post'); 615 } 616 break; 617 618case 'whups_form_admin_deletepriority': 619 $vars->set('action', 'type'); 620 $form = new Whups_Form_Admin_DeletePriority($vars); 621 if ($form->validate($vars)) { 622 if ($vars->get('yesno') == 1) { 623 try { 624 $whups_driver->deletePriority($vars->get('priority')); 625 $notification->push( 626 _("The priority has been deleted."), 627 'horde.success'); 628 } catch (Whups_Exception $e) { 629 $notification->push( 630 _("There was an error deleting the priority:") . ' ' 631 . $e->getMessage(), 632 'horde.error'); 633 } 634 } else { 635 $notification->push( 636 _("The priority was not deleted."), 637 'horde.message'); 638 } 639 _editPriorityForms(); 640 } else { 641 _open(); 642 $form->renderActive($renderer, $vars, $adminurl, 'post'); 643 } 644 break; 645 646case 'whups_form_admin_adduser': 647 $form = new Whups_Form_Admin_AddUser($vars); 648 if ($form->validate($vars)) { 649 $info = $whups_driver->getQueue($vars->get('queue')); 650 try { 651 $whups_driver->addQueueUser( 652 $vars->get('queue'), $vars->get('user')); 653 654 $user = $vars->get('user'); 655 if (is_array($user)) { 656 $userinfo = array(); 657 foreach ($user as $userID) { 658 $userinfo[] = Whups::formatUser($userID); 659 } 660 $userinfo = implode(', ', $userinfo); 661 } else { 662 $userinfo = Whups::formatUser($user); 663 } 664 $notification->push( 665 sprintf(_("%s added to those responsible for \"%s\""), 666 $userinfo, $info['name']), 667 'horde.success'); 668 } catch (Whups_Exception $e) { 669 $notification->push( 670 sprintf(_("There was an error adding \"%s\" to the responsible list for \"%s\":"), 671 Whups::formatUser($vars->get('user')), 672 $info['name']) 673 . ' ' . $e->getMessage(), 674 'horde.error'); 675 } 676 } 677 678 _open(); 679 $form1 = new Whups_Form_Admin_EditUser($vars); 680 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 681 echo '<br />'; 682 $vars = new Horde_Variables(array('queue' => $vars->get('queue'))); 683 $form->renderActive($renderer, $vars, $adminurl, 'post'); 684 break; 685 686case 'edituserform': 687 $form1 = new Whups_Form_Admin_EditUser($vars); 688 $form2 = new Whups_Form_Admin_AddUser($vars); 689 690 _open(); 691 692 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 693 echo '<br />'; 694 695 $vars = new Horde_Variables(array('queue' => $vars->get('queue'))); 696 $form2 = new Whups_Form_Admin_AddUser($vars); 697 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 698 break; 699 700case 'whups_form_admin_edituser': 701 $form = new Whups_Form_Admin_EditUser($vars); 702 if ($form->validate($vars)) { 703 $info = $whups_driver->getQueue($vars->get('queue')); 704 try { 705 $whups_driver->removeQueueUser($vars->get('queue'), $vars->get('user')); 706 707 $notification->push( 708 sprintf(_("\"%s\" is no longer among those responsible for \"%s\""), 709 Whups::formatUser($vars->get('user')), $info['name']), 710 'horde.success'); 711 } catch (Whups_Exception $e) { 712 $notification->push( 713 sprintf(_("There was an error removing \"%s\" from the responsible list for \"%s\":"), 714 Whups::formatUser($vars->get('user')), $info['name']) 715 . ' ' . $e->getMessage(), 716 'horde.error'); 717 } 718 } 719 720 _open(); 721 $vars = new Horde_Variables(array('queue' => $vars->get('queue'))); 722 $form = new Whups_Form_Admin_EditUser($vars); 723 $form->renderActive($renderer, $vars, $adminurl, 'get'); 724 $form1 = new Whups_Form_Admin_AddUser($vars); 725 $form1->renderActive($renderer, $vars, $adminurl, 'get'); 726 break; 727 728case 'whups_form_admin_addversion': 729 $form = new Whups_Form_Admin_AddVersion($vars); 730 if ($form->validate($vars)) { 731 try { 732 $whups_driver->addVersion( 733 $vars->get('queue'), 734 $vars->get('name'), 735 $vars->get('description'), 736 $vars->get('active') == 'on'); 737 738 $queuename = $whups_driver->getQueue($vars->get('queue')); 739 $queuename = $queuename['name']; 740 $notification->push( 741 sprintf(_("The version \"%s\" has been added to %s."), 742 $vars->get('name'), $queuename), 743 'horde.success'); 744 } catch (Whups_Exception $e) { 745 $notification->push( 746 _("There was an error creating the version:") . ' ' . $e->getMessage(), 747 'horde.error'); 748 } 749 750 _open(); 751 $vars = new Horde_Variables(array('queue' => $vars->get('queue'))); 752 $form1 = new Whups_Form_Admin_EditVersionStepOne($vars); 753 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 754 $form2 = new Whups_Form_Admin_AddVersion($vars); 755 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 756 } else { 757 _open(); 758 $form->renderActive($renderer, $vars, $adminurl, 'post'); 759 } 760 break; 761 762case 'whups_form_admin_editversionstepone': 763 $form1 = new Whups_Form_Admin_EditVersionStepOne($vars); 764 765 _open(); 766 767 if (!$vars->get('submitbutton')) { 768 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 769 770 $form2 = new Whups_Form_Admin_AddVersion($vars); 771 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 772 } else { 773 if ($form1->validate($vars)) { 774 switch ($vars->get('submitbutton')) { 775 case _("Edit Version"): 776 $form2 = new Whups_Form_Admin_EditVersionStepTwo($vars); 777 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 778 break; 779 780 case _("Delete Version"): 781 $form2 = new Whups_Form_Admin_DeleteVersion($vars); 782 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 783 break; 784 } 785 } else { 786 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 787 } 788 } 789 break; 790 791case 'whups_form_admin_editversionsteptwo': 792 $form = new Whups_Form_Admin_EditVersionStepTwo($vars); 793 if ($form->validate($vars)) { 794 try { 795 $whups_driver->updateVersion( 796 $vars->get('version'), 797 $vars->get('name'), 798 $vars->get('description'), 799 $vars->get('active') == 'on'); 800 801 $notification->push( 802 _("The version has been modified."), 803 'horde.success'); 804 805 _open(); 806 $form->renderInactive($renderer, $vars); 807 } catch (Whups_Exception $e) { 808 $notification->push( 809 _("There was an error editing the version:") . ' ' . $e->getMessage(), 810 'horde.error'); 811 } 812 813 _open(); 814 $vars = new Horde_Variables(array('queue' => $vars->get('queue'))); 815 $form1 = new Whups_Form_Admin_EditVersionStepOne($vars); 816 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 817 $form2 = new Whups_Form_Admin_AddVersion($vars); 818 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 819 } else { 820 _open(); 821 $form->renderActive($renderer, $vars, $adminurl, 'post'); 822 } 823 break; 824 825case 'whups_form_admin_deleteversion': 826 $form = new Whups_Form_Admin_DeleteVersion($vars); 827 if ($form->validate($vars)) { 828 if ($vars->get('yesno') == 1) { 829 try { 830 $whups_driver->deleteVersion($vars->get('version')); 831 $notification->push( 832 _("The version has been deleted."), 833 'horde.success'); 834 } catch (Whups_Exception $e) { 835 $notification->push( 836 _("There was an error deleting the version:") . ' ' . $e->getMessage(), 837 'horde.error'); 838 } 839 } else { 840 $notification->push(_("The version was not deleted."), 841 'horde.message'); 842 } 843 844 _open(); 845 $form1 = new Whups_Form_Admin_EditVersionStepOne($vars); 846 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 847 $form2 = new Whups_Form_Admin_AddVersion($vars); 848 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 849 } else { 850 _open(); 851 $form->renderActive($renderer, $vars, $adminurl, 'post'); 852 } 853 break; 854 855case 'whups_form_admin_addattribute': 856case 'whups_form_admin_addattribute_reload': 857 $form = new Whups_Form_Admin_AddAttribute($vars); 858 $vars->set('action', 'type'); 859 if ($vars->get('formname') == 'whups_form_admin_addattribute' && 860 $form->validate($vars)) { 861 862 try { 863 $whups_driver->addAttributeDesc( 864 $vars->get('type'), 865 $vars->get('attribute_name'), 866 $vars->get('attribute_description'), 867 $vars->get('attribute_type'), 868 $vars->get('attribute_params', array()), 869 $vars->get('attribute_required')); 870 871 $typename = $whups_driver->getType($vars->get('type')); 872 $typename = $typename['name']; 873 $notification->push( 874 sprintf(_("The attribute \"%s\" has been added to %s."), 875 $vars->get('attribute_name'), $typename), 876 'horde.success'); 877 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 878 } catch (Whups_Exception $e) { 879 $notification->push( 880 _("There was an error creating the attribute:") . ' ' . $e->getMessage(), 881 'horde.error'); 882 } 883 884 _open(); 885 $form1 = new Whups_Form_Admin_EditAttributeStepOne($vars); 886 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 887 echo '<br />'; 888 $form2 = new Whups_Form_Admin_AddAttribute($vars); 889 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 890 } else { 891 _open(); 892 $form->renderActive($renderer, $vars, $adminurl, 'post'); 893 } 894 break; 895 896case 'whups_form_admin_editattributestepone': 897 $form1 = new Whups_Form_Admin_EditAttributeStepOne($vars); 898 $vars->set('action', 'type'); 899 _open(); 900 if (!$vars->get('submitbutton')) { 901 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 902 echo '<br />'; 903 904 $form2 = new Whups_Form_Admin_AddAttribute($vars); 905 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 906 } else { 907 if ($form1->validate($vars)) { 908 switch ($vars->get('submitbutton')) { 909 case _("Edit Attribute"): 910 $form2 = new Whups_Form_Admin_EditAttributeStepTwo($vars); 911 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 912 break; 913 914 case _("Delete Attribute"): 915 $form2 = new Whups_Form_Admin_DeleteAttribute($vars); 916 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 917 break; 918 } 919 } else { 920 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 921 } 922 } 923 break; 924 925case 'whups_form_admin_editattributesteptwo': 926case 'whups_form_admin_editattributesteptwo_reload': 927 $form = new Whups_Form_Admin_EditAttributeStepTwo($vars); 928 $vars->set('action', 'type'); 929 if ($vars->get('formname') == 'whups_form_admin_editattributesteptwo' && 930 $form->validate($vars)) { 931 $form->getInfo($vars, $info); 932 try { 933 $whups_driver->updateAttributeDesc( 934 $info['attribute'], 935 $info['attribute_name'], 936 $info['attribute_description'], 937 $info['attribute_type'], 938 !empty($info['attribute_params']) ? $info['attribute_params'] : array(), 939 $info['attribute_required']); 940 941 $notification->push( 942 _("The attribute has been modified."), 943 'horde.success'); 944 945 _open(); 946 $form->renderInactive($renderer, $vars); 947 echo '<br />'; 948 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 949 } catch (Whups_Exception $e) { 950 $notification->push( 951 _("There was an error editing the attribute:") . ' ' . $e->getMessage(), 952 'horde.error'); 953 } 954 955 _open(); 956 $form1 = new Whups_Form_Admin_EditAttributeStepOne($vars); 957 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 958 echo '<br />'; 959 $form2 = new Whups_Form_Admin_AddAttribute($vars); 960 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 961 } else { 962 _open(); 963 $form->renderActive($renderer, $vars, $adminurl, 'post'); 964 } 965 break; 966 967case 'whups_form_admin_deleteattribute': 968 $form = new Whups_Form_Admin_DeleteAttribute($vars); 969 if ($form->validate($vars)) { 970 if ($vars->get('yesno') == 1) { 971 try { 972 $whups_driver->deleteAttributeDesc($vars->get('attribute')); 973 974 $notification->push( 975 _("The attribute has been deleted."), 976 'horde.success'); 977 } catch (Whups_Exception $e) { 978 $notification->push( 979 _("There was an error deleting the attribute:") 980 . ' ' . $e->getMessage(), 981 'horde.error'); 982 } 983 } else { 984 $notification->push( 985 _("The attribute was not deleted."), 986 'horde.message'); 987 } 988 989 _open(); 990 $form1 = new Whups_Form_Admin_EditAttributeStepOne($vars); 991 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 992 $form2 = new Whups_Form_Admin_AddAttribute($vars); 993 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 994 } else { 995 _open(); 996 $form->renderActive($renderer, $vars, $adminurl, 'post'); 997 } 998 break; 999 1000case 'whups_form_admin_addreply': 1001 $form = new Whups_Form_Admin_AddReply($vars); 1002 $vars->set('action', 'type'); 1003 if ($form->validate($vars)) { 1004 try { 1005 $result = $whups_driver->addReply( 1006 $vars->get('type'), 1007 $vars->get('reply_name'), 1008 $vars->get('reply_text')); 1009 1010 $typename = $whups_driver->getType($vars->get('type')); 1011 $typename = $typename['name']; 1012 $notification->push( 1013 sprintf(_("The form reply \"%s\" has been added to %s."), 1014 $vars->get('reply_name'), $typename), 1015 'horde.success'); 1016 _open(); 1017 $vars->set('reply', $result); 1018 $form = new Whups_Form_Admin_EditReplyStepTwo($vars); 1019 $form->renderInactive($renderer, $vars); 1020 } catch (Whups_Exception $e) { 1021 $notification->push( 1022 _("There was an error creating the form reply:") . ' ' . $e->getMessage(), 1023 'horde.error'); 1024 _open(); 1025 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1026 } 1027 } else { 1028 _open(); 1029 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1030 } 1031 break; 1032 1033case 'whups_form_admin_editreplystepone': 1034 $form1 = new Whups_Form_Admin_EditReplyStepOne($vars); 1035 $vars->set('action', 'type'); 1036 _open(); 1037 if (!$vars->get('submitbutton')) { 1038 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 1039 echo '<br />'; 1040 1041 $form2 = new Whups_Form_Admin_AddReply($vars); 1042 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 1043 } else { 1044 if ($form1->validate($vars)) { 1045 switch ($vars->get('submitbutton')) { 1046 case _("Edit Form Reply"): 1047 $form2 = new Whups_Form_Admin_EditReplyStepTwo($vars); 1048 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 1049 break; 1050 1051 case _("Delete Form Reply"): 1052 $form2 = new Whups_Form_Admin_DeleteReply($vars); 1053 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 1054 break; 1055 } 1056 } else { 1057 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 1058 } 1059 } 1060 break; 1061 1062case 'whups_form_admin_editreplysteptwo': 1063 $form = new Whups_Form_Admin_EditReplyStepTwo($vars); 1064 $vars->set('action', 'type'); 1065 if ($vars->get('formname') == 'whups_form_admin_editreplysteptwo' && 1066 $form->validate($vars)) { 1067 try { 1068 $whups_driver->updateReply( 1069 $vars->get('reply'), 1070 $vars->get('reply_name'), 1071 $vars->get('reply_text')); 1072 $notification->push( 1073 _("The form reply has been modified."), 1074 'horde.success'); 1075 _open(); 1076 $form->renderInactive($renderer, $vars); 1077 echo '<br />'; 1078 $vars = new Horde_Variables(array('type' => $vars->get('type'))); 1079 } catch (Whups_Exception $e) { 1080 $notification->push( 1081 _("There was an error editing the form reply:") . ' ' . $e->getMessage(), 1082 'horde.error'); 1083 } 1084 1085 _open(); 1086 $form1 = new Whups_Form_Admin_EditReplyStepOne($vars); 1087 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 1088 echo '<br />'; 1089 $form2 = new Whups_Form_Admin_AddReply($vars); 1090 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 1091 } else { 1092 _open(); 1093 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1094 } 1095 break; 1096 1097case 'whups_form_admin_deletereply': 1098 $form = new Whups_Form_Admin_DeleteReply($vars); 1099 if ($form->validate($vars)) { 1100 if ($vars->get('yesno') == 1) { 1101 try { 1102 $whups_driver->deleteReply($vars->get('reply')); 1103 $notification->push( 1104 _("The form reply has been deleted."), 1105 'horde.success'); 1106 } catch (Whups_Exception $e) { 1107 $notification->push( 1108 _("There was an error deleting the form reply:") . ' ' . $e->getMessage(), 1109 'horde.error'); 1110 } 1111 } else { 1112 $notification->push( 1113 _("The form reply was not deleted."), 1114 'horde.message'); 1115 } 1116 1117 _open(); 1118 $form1 = new Whups_Form_Admin_EditReplyStepOne($vars); 1119 $form1->renderActive($renderer, $vars, $adminurl, 'post'); 1120 echo '<br />'; 1121 $form2 = new Whups_Form_Admin_AddReply($vars); 1122 $form2->renderActive($renderer, $vars, $adminurl, 'post'); 1123 } else { 1124 _open(); 1125 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1126 } 1127 break; 1128 1129case 'whups_form_sendreminder': 1130 $form = new Whups_Form_SendReminder($vars); 1131 if ($form->validate($vars)) { 1132 try { 1133 Whups::sendReminders($vars); 1134 $notification->push(_("Reminders were sent."), 'horde.success'); 1135 } catch (Whups_Exception $e) { 1136 $notification->push($e, 'horde.error'); 1137 _open(); 1138 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1139 } 1140 } else { 1141 _open(); 1142 $form->renderActive($renderer, $vars, $adminurl, 'post'); 1143 } 1144 break; 1145 1146case 'mtmatrix': 1147 $vars->set('action', 'mtmatrix'); 1148 $queues = $whups_driver->getQueues(); 1149 $types = $whups_driver->getAllTypes(); 1150 $matrix = $vars->get('matrix'); 1151 1152 // Validate data. 1153 $pairs = array(); 1154 if (!empty($matrix)) { 1155 foreach ($matrix as $mid => $mtypes) { 1156 if (isset($queues[$mid])) { 1157 foreach ($mtypes as $tid => $on) { 1158 if (isset($types[$tid])) { 1159 $pairs[] = array($mid, $tid); 1160 } 1161 } 1162 } 1163 } 1164 } 1165 1166 try { 1167 $whups_driver->updateTypesQueues($pairs); 1168 $notification->push( 1169 _("Associations updated successfully."), 1170 'horde.success'); 1171 } catch (Whups_Exception $e) { 1172 $notification->push($e, 'horde.error'); 1173 } 1174 break; 1175} 1176 1177if (!_open(true)) { 1178 // Check for actions. 1179 switch ($vars->get('action')) { 1180 case 'type': 1181 if (count($whups_driver->getAllTypes())) { 1182 $main1 = new Whups_Form_Admin_EditTypeStepOne($vars); 1183 } 1184 $main2 = new Whups_Form_Admin_AddType($vars); 1185 break; 1186 1187 case 'reminders': 1188 $main1 = new Whups_Form_SendReminder($vars); 1189 break; 1190 1191 case 'mtmatrix': 1192 _open(); 1193 $queues = $whups_driver->getQueues(); 1194 $types = $whups_driver->getAllTypes(); 1195 $tlink = Horde::url('admin/?formname=whups_form_admin_edittypestepone'); 1196 $mlink = Horde::url('admin/?formname=whups_form_admin_editqueuestepone'); 1197 require WHUPS_TEMPLATES . '/admin/mtmatrix.inc'; 1198 break; 1199 1200 case 'queue': 1201 if (count($whups_driver->getQueues())) { 1202 $main1 = new Whups_Form_Admin_EditQueueStepOne($vars); 1203 } 1204 if ($registry->hasMethod('tickets/listQueues') == $registry->getApp()) { 1205 $main2 = new Whups_Form_Admin_AddQueue($vars); 1206 } 1207 break; 1208 } 1209 1210 _open(); 1211 if (isset($main1)) { 1212 $main1->renderActive($renderer, $vars, $adminurl, 'get'); 1213 } 1214 if (isset($main1) && isset($main2)) { 1215 echo '<br />'; 1216 } 1217 if (isset($main2)) { 1218 $main2->renderActive($renderer, $vars, $adminurl, 'get'); 1219 } 1220} 1221 1222_open(); 1223$page_output->footer(); 1224