function addROIsForImage($image_pid) { $image_rois = AP_Specimen::getImageListForSpecimen($specimen_pid); $rois = array(); for ($i; $i < sizeOf($image_rois); $i++) { $roi_pid = $image_rois[$i]; if (array_search($roi_pid, $this->permission_list) > -1) { //don't add anything, it's already there! } else { //array_push((array) $this->roi_pids, $roi_pid); $roi['pid'] = $roi_pid; $roiMetadata = AP_ROI::getROIMetadata_record($roi_pid); $roi['roiMetadata'] = $roiMetadata; array_push($rois, $roi); } } return $rois; }
function add_roi_to_queue($image_pid, $roi_pid, $workflow_id) { $queue_item_html = ''; $status_dom = AP_ROI::getROILock($roi_pid); if ($status_dom != false) { $transcribedStatus = $status_dom->getElementsByTagName('transcribedStatus')->item(0)->nodeValue; $parsedL1Status = $status_dom->getElementsByTagName('parsedL1Status')->item(0)->nodeValue; $locked = $status_dom->getElementsByTagName('locked')->item(0)->nodeValue; $locked_time = $status_dom->getElementsByTagName('locked_time')->item(0)->nodeValue; $locked_session = $status_dom->getElementsByTagName('locked_session')->item(0)->nodeValue; $workflow_status = workflow_status($locked, $locked_time, $locked_session); $queue_item_html .= create_queue_list_roi($roi_pid, $image_pid, $transcribedStatus, $parsedL1Status, $locked_by, $workflow_status, $workflow_id); } else { $queue_item_html = "locked"; } return $queue_item_html; }
function get_transcribe_content($roi_pid, $size, $workflow_id) { global $user; list($height, $width) = explode(":", $size); $returnJSON = ""; if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, "canTranscribe")) { $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid); $roiURL = $roiMetadata_record['roiURL']; if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) { $roi_image_url = scaleDjatokaURL($roiURL, $width, '0'); //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], $width, '0'); $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />"; } else { $roi_image_url = scaleDjatokaURL($roiURL, '0', $height); //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], '0', $height); $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />"; } $roi_obj = new roiHandler($roi_pid); $returnJSON['gocr'] = ""; $returnJSON['ocrad'] = ""; $returnJSON['ocropus'] = ""; $returnJSON['text'] = ""; if ($roi_obj->ifExist("GOCR")) { $returnJSON['gocr'] = $roi_obj->getDatastream("GOCR"); } if ($roi_obj->ifExist("ocrad")) { $returnJSON['ocrad'] = $roi_obj->getDatastream("ocrad"); } if ($roi_obj->ifExist("OCRopus")) { $returnJSON['ocropus'] = $roi_obj->getDatastream("OCRopus"); } if ($roi_obj->ifExist("Text")) { $returnJSON['text'] = $roi_obj->getDatastream("Text"); } } else { echo "Sorry! You do not have permission for this operation"; } echo json_encode($returnJSON); }
public function index_all() { $image_list = AP_Image::getImageList(); foreach ($image_list as $image) { $this->index($image); } $roi_list = AP_ROI::getROIList(); foreach ($roi_list as $roi) { $this->index($roi); } }
function get_parsing_content($roi_pid, $size, $parse_level, $workflow_id) { global $user; list($height, $width) = explode(":", $size); if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, $parse_level)) { $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid); $roiURL = $roiMetadata_record['roiURL']; if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) { $roi_image_url = scaleDjatokaURL($roiURL, $width, '0'); $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />"; } else { $roi_image_url = scaleDjatokaURL($roiURL, '0', $height); $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />"; } $roi_obj = new roiHandler($roi_pid); $returnJSON['text'] = ""; if ($roi_obj->ifExist("Text")) { $text = nl2br($roi_obj->getDatastream("Text")); } } else { return false; } return array($image_html, $text); }
function specimenMetadata_details_content($roi_pid = null) { global $base_url; $fedora_base_url = variable_get("fedora_base_url", "http://localhost:8080/fedora"); $html = ''; $html .= '<div id="specimenMetadata_details_content">' . "\n"; if ($roi_pid != null && $roi_pid != "0") { $roi = new AP_ROI(); $image_pid = $roi->get_image_pid($roi_pid); $sp_pid = AP_Image::get_specimen_pid($image_pid); $roiMetadata_record = $roi->getroiMetadata_record($roi_pid); $roiURL = $roiMetadata_record['roiURL']; $djatoka_url = scaleDjatokaURL($roiURL, '300', '0'); $html .= "<h3>Details: {$roi_pid}</h3>"; $html .= "<table><tr><td valign='top' width='300'>"; $html .= "<img src='{$djatoka_url}'/></td>"; $html .= "<td>Specimen: {$sp_pid}<br/>Image: {$image_pid}<br/>ROI: {$roi_pid}<br/>Datastream: specimenMetadata<br/><br/>"; $text = shell_exec("curl -H - XGET {$fedora_base_url}/get/{$roi_pid}/specimenMetadata"); $check = strpos($text, "404 Not Found"); if ($check === FALSE) { $specimenMetadata_xml_url = $server_base . '/drupal/modules/apiary_project/workflow/include/specimenMetadata_xml.php?pid=' . $roi_pid; $html .= '<textarea style="width:500px; height:200px">' . $text . '</textarea></td>'; $html .= "</tr></table>"; } else { $html .= "No specimenMetadata found"; } } else { } $html .= '</div><!-- specimenMetadata_details_content -->' . "\n"; echo $html; }
function get_right_click_list($pid) { $ap_roi = new AP_ROI(); $roiMetadata_record = $ap_roi->getroiMetadata_record($pid); $roi_type_temp = $roiMetadata_record['roiType']; $roi_list = getROItypeList(); $roi_type = ''; switch ($roi_type_temp) { case $roi_list[0]: $roi_type = "primary"; break; case $roi_list[1]: $roi_type = "determination"; break; case $roi_list[2]: $roi_type = "barcode"; break; case $roi_list[3]: $roi_type = "type"; break; case $roi_list[4]: $roi_type = "annotation"; break; } //Context Menu List print '<ul id="apiary_context_menu" class="jeegoocontext cm_blue">'; //Who & When print '<li>Who & When<ul>'; $whoObj = db_query("select * from {apiary_project} where parse_level=1 AND (ui_categories='who' OR ui_categories='when')"); while ($res = db_fetch_object($whoObj)) { if (stristr($res->roi_association, $roi_type) !== false) { print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>'; } } print "</ul></li>"; //What print '<li>What<ul>'; $whatObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='what'"); while ($res = db_fetch_object($whatObj)) { if (stristr($res->roi_association, $roi_type) !== false) { print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>'; } } print "</ul></li>"; //Where print '<li>Where</a><ul>'; $whereObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='where'"); while ($res = db_fetch_object($whereObj)) { if (stristr($res->roi_association, $roi_type) !== false) { print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>'; } } print "</ul></li>"; print '</ul>'; }
function ROISearchResults($roi_pids) { $found_result = false; foreach ($roi_pids as $roi_pid) { if (!$found_result) { $results_html .= "<div align='left'>"; $results_html .= "<table id='roi_results_table' class='tablesorter' style='width:800px'><thead><tr><th>ROI</th><th>Image</th><th>Specimen</th><th>Datastream</th></tr><thead>"; $found_result = true; } $results_html .= "<tbody><tr>"; //$results_html .= '<td><a class="preview" href="'.$server_base.'/drupal/apiary?ref=specimenMetadata_details&pid='.$roi_pid.'">'.$roi_pid.'</a></td>'; $results_html .= '<td><a href="#" class="preview" onclick="display_specimenMetadata_details(\'' . $roi_pid . '\');">' . $roi_pid . '</a></td>'; $roi_ob = new AP_ROI(); $image_pid = $roi_ob->get_image_pid($roi_pid); $results_html .= "<td>{$image_pid}</td>"; $sp_pid = AP_Image::get_specimen_pid($image_pid); $results_html .= "<td>{$sp_pid}</td>"; $fedora_base_url = variable_get('fedora_base_url', 'http://localhost:8080/fedora'); $text = shell_exec("curl -H - XGET {$fedora_base_url}/get/{$roi_pid}/specimenMetadata"); $check = strpos($text, "404 Not Found"); if ($check === FALSE) { $results_html .= "<td><a href='" . $fedora_base_url . "/get/{$roi_pid}/specimenMetadata'>specimenMetadata</a></td></tr>"; } else { $results_html .= "<td>No specimenMetadata found</td></tr>"; } } if ($found_result) { $server_base = variable_get('apiary_research_base_url', 'http://localhost'); $results_html .= "</tbody></table></div>"; $results_html .= '<div id="pager" class="pager">'; $results_html .= '<form>'; $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/first.png" class="first"/>'; $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/prev.png" class="prev"/>'; $results_html .= '<input type="text" class="pagedisplay"/>'; $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/next.png" class="next"/>'; $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/last.png" class="last"/>'; $results_html .= '<select class="pagesize">'; $results_html .= '<option selected="selected" value="10">10</option>'; $results_html .= '<option value="20">20</option>'; $results_html .= '<option value="30">30</option>'; $results_html .= '<option value="40">40</option>'; $results_html .= '</select>'; $results_html .= '</form>'; $results_html .= '</div><!--pager-->'; } else { $results_html .= "<br/><br/><b>No Results found!</b>"; } return $results_html; }
static function releaseROILock($roi_pid) { global $user; $now = date("YmdHis"); $datastream_name = "status"; $datastream_label = "ROI Status"; $session_id = $_SESSION['apiary_session_id']; if ($session_id == '') { $session_id = $_SESSION['apiary_cleared_session_id']; } $dom = FedoraObject::getManagedXMLDom($roi_pid, $datastream_name); if ($dom != false) { if ($dom->getElementsByTagName('locked')->item(0)->nodeValue != "false") { if (!empty($dom->getElementsByTagName('locked_session')->item(0)->nodeValue)) { $locked_session = $dom->getElementsByTagName('locked_session')->item(0)->nodeValue; if ($dom->getElementsByTagName('locked_by')->item(0)->nodeValue == $user->name && $locked_session == $session_id) { $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false"; } else { if (false) { //could add an override if the user has some admin right } else { $last_locked_time = $dom->getElementsByTagName('locked_time')->item(0)->nodeValue; $apiary_timeout = variable_get('apiary_object_timeout', '1800'); $last_locked_timeout = $last_locked_time + $apiary_timeout; if ($now > $last_locked_timeout || !Workflow_Sessions::active_session($locked_session)) { $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false"; } else { //can't unlock this record return false; } } } } } $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false"; } else { //create status datastream! $dom = AP_ROI::generateROIStatusDom("false", $user->name, $now, $session_id); } //We don't get here if we fail if (FedoraObject::createManagedXMLDom($roi_pid, $datastream_name, $datastream_label, $dom)) { include_once drupal_get_path('module', 'apiary_project') . '/workflow/include/search.php'; $search_instance = new search(); $search_instance->index($roi_pid); return FedoraObject::getManagedXMLDom($roi_pid, $datastream_name); } }