public function test_page_editor() { $setask = $this->create_setask_and_submit_pdf(); $this->setUser($this->teachers[0]); $grade = $setask->get_user_grade($this->students[0]->id, true); $notempty = page_editor::has_annotations_or_comments($grade->id, false); $this->assertFalse($notempty); $comment = new comment(); $comment->rawtext = 'Comment text'; $comment->width = 100; $comment->x = 100; $comment->y = 100; $comment->colour = 'red'; $comment2 = new comment(); $comment2->rawtext = 'Comment text 2'; $comment2->width = 100; $comment2->x = 200; $comment2->y = 100; $comment2->colour = 'clear'; page_editor::set_comments($grade->id, 0, array($comment, $comment2)); $annotation = new annotation(); $annotation->path = ''; $annotation->x = 100; $annotation->y = 100; $annotation->endx = 200; $annotation->endy = 200; $annotation->type = 'line'; $annotation->colour = 'red'; $annotation2 = new annotation(); $annotation2->path = ''; $annotation2->x = 100; $annotation2->y = 100; $annotation2->endx = 200; $annotation2->endy = 200; $annotation2->type = 'rectangle'; $annotation2->colour = 'yellow'; page_editor::set_annotations($grade->id, 0, array($annotation, $annotation2)); $notempty = page_editor::has_annotations_or_comments($grade->id, false); // Still empty because all edits are still drafts. $this->assertFalse($notempty); $comments = page_editor::get_comments($grade->id, 0, false); $this->assertEmpty($comments); $comments = page_editor::get_comments($grade->id, 0, true); $this->assertEquals(count($comments), 2); $annotations = page_editor::get_annotations($grade->id, 0, false); $this->assertEmpty($annotations); $annotations = page_editor::get_annotations($grade->id, 0, true); $this->assertEquals(count($annotations), 2); $comment = reset($comments); $annotation = reset($annotations); page_editor::remove_comment($comment->id); page_editor::remove_annotation($annotation->id); $comments = page_editor::get_comments($grade->id, 0, true); $this->assertEquals(count($comments), 1); $annotations = page_editor::get_annotations($grade->id, 0, true); $this->assertEquals(count($annotations), 1); page_editor::release_drafts($grade->id); $notempty = page_editor::has_annotations_or_comments($grade->id, false); $this->assertTrue($notempty); page_editor::unrelease_drafts($grade->id); $notempty = page_editor::has_annotations_or_comments($grade->id, false); $this->assertFalse($notempty); }
$filearea = document_services::PAGE_IMAGE_READONLY_FILEAREA; } foreach ($pages as $id => $pagefile) { $index = count($response->pages); $page = new stdClass(); $comments = page_editor::get_comments($grade->id, $index, $draft); $page->url = moodle_url::make_pluginfile_url($context->id, 'setaskfeedback_editpdf', $filearea, $grade->id, '/', $pagefile->get_filename())->out(); $page->comments = $comments; if ($imageinfo = $pagefile->get_imageinfo()) { $page->width = $imageinfo['width']; $page->height = $imageinfo['height']; } else { $page->width = 0; $page->height = 0; } $annotations = page_editor::get_annotations($grade->id, $index, $draft); $page->annotations = $annotations; array_push($response->pages, $page); } echo json_encode($response); die; } else { if ($action == 'savepage') { require_capability('mod/setask:grade', $context); $response = new stdClass(); $response->errors = array(); $grade = $setaskment->get_user_grade($userid, true); $pagejson = required_param('page', PARAM_RAW); $page = json_decode($pagejson); $index = required_param('index', PARAM_INT); $added = page_editor::set_comments($grade->id, $index, $page->comments);