Moving tasks - buttons and empty form

This commit is contained in:
Emmanuel BENOîT 2016-01-03 09:54:47 +01:00
parent ff4a209d99
commit fd39819304
5 changed files with 76 additions and 4 deletions
includes/t-tasks

View file

@ -786,3 +786,63 @@ class Ctrl_TaskMoveUp
}
}
class Ctrl_TaskMove
extends Controller
{
public function __construct( )
{
$this->dTasks = Loader::DAO( 'tasks' );
$this->dItems = Loader::DAO( 'items' );
}
public function handle( Page $page )
{
try {
$id = (int) $this->getParameter( 'id' );
$type = $this->getParameter( 'type' );
} catch ( ParameterException $e ) {
return 'tasks';
}
$subtasks = ( $type === 's' );
$failure = $subtasks ? 'tasks' : 'items';
// Get the parent
if ( $subtasks ) {
$parent = $this->dTasks->get( $id );
} else {
$parent = $this->dItems->get( $id );
}
if ( $parent === null ) {
return $failure;
}
// If the parent's empty, go back to displaying it
$failure .= '/view?id=' . $id;
if ( $subtasks ) {
$tasks = $parent->subtasks;
$name = $parent->title;
} else {
$tasks = $this->dTasks->getTasksAt( $parent );
$name = $parent->name;
}
if ( empty( $tasks ) ) {
return $failure;
}
// Generate form
$page->setTitle( $name . ': move tasks' );
$form = Loader::Create( 'Form' , 'Move tasks' , 'move-tasks' )
->addField( Loader::Create( 'Field' , 'type' , 'hidden' )
->setDefaultValue( $subtasks ? 's' : 'i' ) )
->addField( Loader::Create( 'Field' , 'id' , 'hidden' )
->setDefaultValue( $id ) ) ;
// $this->addDependencySelector( $form , $task->possibleDependencies , $task->parent_task === null );
return $form->setURL( $failure )
// ->addController( Loader::Ctrl( 'dependency_add' ) )
->controller( );
}
}