Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 64 additions & 86 deletions config/routes.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<?php
/**
* Setup default routes
*/
// ADMINISTRATORS: Do not edit this file. Put custom routes into var/config/nag/routes.local.php and run composer horde:reconfigure
namespace Horde\Nag;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;

// Old-style Horde_Controller_Base routes (keep array syntax)
$mapper->connect('/t/complete',
array(
'controller' => 'CompleteTask',
Expand All @@ -16,94 +15,73 @@
'controller' => 'SaveTask',
));

// Responsive routes
$mapper->connect(
'ResponsiveTasks',
'responsive',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Responsive UI Routes - PSR-style builder pattern

// Responsive filter routes
$mapper->connect(
'ResponsiveTasksAll',
'responsive/all',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Tasks List - Primary route with legacy smartmobile secondary
$mapper->buildRoute(uri: '/responsive', name: 'ResponsiveTasks')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->withSecondaryRoute('/smartmobile')
->withSecondaryRoute('/smartmobile.php')
->add();

$mapper->connect(
'ResponsiveTasksIncomplete',
'responsive/incomplete',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Filter: All Tasks
$mapper->buildRoute(uri: '/responsive/all', name: 'ResponsiveTasksAll')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTasksComplete',
'responsive/complete',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Filter: Incomplete Tasks
$mapper->buildRoute(uri: '/responsive/incomplete', name: 'ResponsiveTasksIncomplete')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTasksFuture',
'responsive/future',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Filter: Complete Tasks
$mapper->buildRoute(uri: '/responsive/complete', name: 'ResponsiveTasksComplete')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTasksFutureIncomplete',
'responsive/future-incomplete',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Filter: Future Tasks
$mapper->buildRoute(uri: '/responsive/future', name: 'ResponsiveTasksFuture')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTaskAdd',
'responsive/add',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Filter: Future Incomplete Tasks
$mapper->buildRoute(uri: '/responsive/future-incomplete', name: 'ResponsiveTasksFutureIncomplete')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTask',
'responsive/task/:tasklist/:id',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Add New Task
$mapper->buildRoute(uri: '/responsive/add', name: 'ResponsiveTaskAdd')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->noMiddleware()
->add();

$mapper->connect(
'ResponsiveTaskEdit',
'responsive/edit/:tasklist/:id',
[
'controller' => Responsive\ResponsiveController::class,
'HordeAuthType' => 'authenticate',
'stack' => [],
]
);
// Task Detail View
$mapper->buildRoute(uri: '/responsive/task/:tasklist/:id', name: 'ResponsiveTask')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->requires('tasklist', '[a-zA-Z0-9\-_]+')
->requires('id', '[a-zA-Z0-9\-_]+')
->noMiddleware()
->add();

// Task Edit View
$mapper->buildRoute(uri: '/responsive/edit/:tasklist/:id', name: 'ResponsiveTaskEdit')
->withController(Responsive\ResponsiveController::class)
->withDefaults(['HordeAuthType' => 'authenticate'])
->requires('tasklist', '[a-zA-Z0-9\-_]+')
->requires('id', '[a-zA-Z0-9\-_]+')
->noMiddleware()
->add();
3 changes: 1 addition & 2 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@

switch ($registry->getView()) {
case $registry::VIEW_SMARTMOBILE:
$url = new Horde_Core_Smartmobile_Url(Horde::url('smartmobile.php'));
$url->setAnchor('nag-list')->redirect();
Horde::url('responsive')->redirect();
break;

default:
Expand Down
Loading
Loading