function submitUpdate( $request ) { $id = $request->getInt( 'wpItem' ); $item = TodoItem::loadFromId( $id ); if ( is_null( $item ) ) { return Status::newFatal( 'todo-invalid-item' ); } global $wgUser; if ( $item->owner != $wgUser->getId() ) { return Status::newFatal( 'todo-update-else-item' ); } switch( $request->getVal( 'wpUpdateField' ) ) { case 'queue': return $item->setQueue( $request->getText( 'wpQueue' ) ); break; case 'comment': return $item->setComment( $request->getText( 'wpComment' ) ); break; case 'title': return $item->setTitle( $request->getText( 'wpTitle' ) ); break; default: return Status::newFatal( 'todo-unrecognize-type' ); } }