/** * Return the generated form output. * @param array $args List of parameter values passed through to the form depending on how the form has been configured. * This array always contains a value for language. * @param object $node The Drupal node object. * @param array $response When this form is reloading after saving a submission, contains the response from the service call. * Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data). * @return Form HTML. * @todo: Implement this method */ public static function get_form($args, $node, $response = null) { iform_load_helpers(array('report_helper', 'map_helper')); $conn = iform_get_connection_details($node); $readAuth = report_helper::get_read_auth($conn['website_id'], $conn['password']); $r = '<div id="leftcol">'; $reportOptions = iform_report_get_report_options($args, $readAuth); iform_report_apply_explore_user_own_preferences($reportOptions); $reportOptions = array_merge(array('rowId' => 'external_key', 'columns' => array(), 'callback' => 'grid_load', 'rememberParamsReportGroup' => 'explore', 'paramsFormButtonCaption' => lang::get('Filter')), $reportOptions); $reportOptions['rowId'] = 'external_key'; $imgPath = empty(report_helper::$images_path) ? report_helper::relative_client_helper_path() . "../media/images/" : report_helper::$images_path; $reportOptions['columns'][] = array('actions' => array(array('img' => "{$imgPath}/add.png", 'caption' => 'Click to add this species to the map'))); $r .= report_helper::report_grid($reportOptions); $r .= '</div>'; $args['indicia_species_layer_slds'] = report_helper::explode_lines($args['indicia_species_layer_slds']); $r .= '<div id="rightcol">'; $r .= '<div id="layerbox">'; $r .= '<p id="instruct">' . lang::get('Click on the + buttons in the grid to add species layers to the map. You can add up to {1} layers at a time.', count($args['indicia_species_layer_slds'])); $r .= '<p id="instruct2" style="display: none">' . lang::get('Use the - buttons to permanently remove layers, or untick the box in the legend to temporarily hide them.'); $mapOptions = iform_map_get_map_options($args, $readAuth); $mapOptions['clickForSpatialRef'] = false; $olOptions = iform_map_get_ol_options($args, $readAuth); $r .= map_helper::layer_list(array('layerTypes' => array('overlay'), 'includeSwitchers' => true, 'includeHiddenLayers' => true)); $r .= '</div>'; $r .= map_helper::map_panel($mapOptions, $olOptions); $r .= '</div>'; $websiteIds = iform_get_allowed_website_ids($readAuth); if (!empty($args['indicia_species_layer_feature_type']) && !empty(report_helper::$geoserver_url)) { $training = function_exists('hostsite_get_user_field') && hostsite_get_user_field('training') ? 't' : 'f'; $cql = 'website_id IN (' . implode(',', $websiteIds) . ') AND ' . $args['indicia_species_layer_filter_field'] . "='{filterValue}' AND record_status NOT IN ('R', 'I', 'T') AND training='{$training}'"; if (isset($_POST[$reportOptions['reportGroup'] . '-quality'])) { $quality = $_POST[$reportOptions['reportGroup'] . '-quality']; } else { $quality = $reportOptions['extraParams']['quality']; } // logic here must match the quality_check function logic on the database. switch ($quality) { case 'V': $cql .= " AND record_status='V'"; break; case 'C': $cql .= " AND (record_status='V' OR certainty='C')"; break; case 'L': $cql .= " AND (record_status='V' OR ((certainty <> 'U' OR certainty IS NULL) AND record_status <> 'D'))"; break; case '!D': $cql .= " AND record_status<>'D'"; break; case '!R': // nothing to add - rejects are always excluded } report_helper::$javascript .= "indiciaData.indiciaSpeciesLayer = {\n" . ' "title":"' . lang::get('{1}') . "\",\n" . ' "myRecords":"' . lang::get('my records') . "\",\n" . ' "userId":"' . hostsite_get_user_field('indicia_user_id') . "\",\n" . ' "featureType":"' . $args['indicia_species_layer_feature_type'] . "\",\n" . ' "wmsUrl":"' . data_entry_helper::$geoserver_url . "wms\",\n" . " \"cqlFilter\":\"{$cql}\",\n" . " \"filterField\":\"taxon_meaning_id\",\n" . ' "slds":' . json_encode($args['indicia_species_layer_slds']) . "\n" . "};\n"; } return $r; }
protected static function get_control_reportgrid($auth, $args, $tabalias, $options) { iform_load_helpers(array('report_helper')); $columnLists = json_decode($args['columns_config_list']); if (self::$reportCount < count($columnLists)) { $args['columns_config'] = json_encode($columnLists[self::$reportCount]); } else { unset($args['columns_config']); } $args['report_name'] = ''; $sharing = empty($args['sharing']) ? 'reporting' : $args['sharing']; $reportOptions = array_merge(iform_report_get_report_options($args, $auth['read']), array('reportGroup' => 'dynamic', 'autoParamsForm' => false, 'sharing' => $sharing, 'ajax' => true, 'id' => 'report-grid-' . self::$reportCount), $options); if (self::$applyUserPrefs) { iform_report_apply_explore_user_own_preferences($reportOptions); } self::$reportCount++; return report_helper::report_grid($reportOptions); }
/** * Return the generated output. * @param array $args List of parameter values passed through to the form depending on how the form has been configured. * This array always contains a value for language. * @param object $node The Drupal node object. * @param array $response When this form is reloading after saving a submission, contains the response from the service call. * Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data). * @return Form HTML. */ public static function get_form($args, $node, $response = null) { iform_load_helpers(array('report_helper', 'map_helper')); $readAuth = report_helper::get_read_auth($args['website_id'], $args['password']); $sharing = 'reporting'; $reportOptions = array_merge(iform_report_get_report_options($args, $readAuth), array('reportGroup' => 'explore', 'rememberParamsReportGroup' => 'explore', 'paramsOnly' => true, 'paramsInMapToolbar' => true, 'sharing' => $sharing, 'paramsFormButtonCaption' => lang::get('Filter'), 'rowId' => 'occurrence_id')); iform_report_apply_explore_user_own_preferences($reportOptions); $reportOptions['extraParams']['limit'] = 3000; $r = report_helper::report_grid($reportOptions); $r .= report_helper::report_map(array('readAuth' => $readAuth, 'dataSource' => $args['report_name'], 'extraParams' => $reportOptions['extraParams'], 'paramDefaults' => $reportOptions['paramDefaults'], 'autoParamsForm' => false, 'reportGroup' => 'explore', 'rememberParamsReportGroup' => 'explore', 'clickableLayersOutputMode' => 'report', 'sharing' => $sharing, 'rowId' => 'occurrence_id', 'ajax' => TRUE)); $options = array_merge(iform_map_get_map_options($args, $readAuth), array('featureIdField' => 'occurrence_id', 'clickForSpatialRef' => false, 'reportGroup' => 'explore', 'toolbarDiv' => 'top')); $olOptions = iform_map_get_ol_options($args); $r .= map_helper::map_panel($options, $olOptions); $allowDownload = !isset($args['downloadOwnDataOnly']) || !$args['downloadOwnDataOnly'] || isset($reportOptions['extraParams']['ownData']) && $reportOptions['extraParams']['ownData'] === 1 || isset($_POST['explore-ownData']) && $_POST['explore-ownData'] === '1' || !(isset($_POST['explore-ownData']) || $_POST['explore-ownData'] === '0') && isset($reportOptions['paramDefaults']['ownData']) && $reportOptions['paramDefaults']['ownData'] === 1; $reportOptions = array_merge($reportOptions, array('id' => 'explore-records', 'paramsOnly' => false, 'autoParamsForm' => false, 'downloadLink' => $allowDownload, 'rowClass' => 'certainty{certainty}')); if (isset($args['includeEditLink']) && $args['includeEditLink'] && !empty($args['includeEditLinkPath'])) { $reportOptions['columns'][] = array('display' => 'Actions', 'actions' => array(array('caption' => 'edit', 'url' => url($args['includeEditLinkPath']), 'urlParams' => array('occurrence_id' => '{occurrence_id}'), 'visibility_field' => 'belongs_to_user'))); } $r .= report_helper::report_grid($reportOptions); return $r; }