view plugins/content_types/mpiwg_geobrowser_lineoverlay.inc @ 1:ea066ce001bd

bug fixes, works now without admin rights
author Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
date Fri, 29 May 2015 13:59:32 +0200
parents b57c7821382f
children
line wrap: on
line source

<?php

$plugin = array(
    'single' => TRUE,
    'title' => t('lineoverlay'),
    'description' => t('shows the basic lineoverlay.'),
    'category' => t('mpiwg geobrowser'),
    'edit form' => 'mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_edit_form',
    'render callback' => 'mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_render',
    'admin info' => 'mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_admin_info',
    'defaults' => array()
);

function mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_render($subtype, $conf, $panel_args, $context = NULL) {
    $block = new stdClass();

    // initial content is blank
    $block->title = 'lineoverlay';
    $block->content = '';

    // Add in the content
    $block->content .= '
        <div id="lineoverlayContainerDiv" style="position:relative;"></div>
        <script type="text/javascript">
  	if (typeof LineOverlayWidget_l=="undefined")
	    {
         
            var lineOverlay = new WidgetWrapper();
            var lineOverlayWidget = new LineOverlayWidget(lineOverlay);
            jq1110(document).ready(function() {
                document.addEventListener("mpiwg_geobrowser_map_initiliazed", function (e) {
                    lineOverlayWidget.attachMapWidget(mapWidget);
                    mpiwg_geobrowser_lineoverlay_bindDatasets();
                }, false);
            });
            
            function mpiwg_geobrowser_lineoverlay_bindDatasets() {
                if (GeoTemConfig.datasets[0] !== undefined) {
                    var dataset1_name = "'.$conf["lineoverlay_dataset_1"].'";
                    var dataset2_name = "'.$conf["lineoverlay_dataset_2"].'";
                    var number = "'.$conf["lineoverlay_number"].'";
                    var parent = "'.$conf["lineoverlay_parent"].'";
                    var dataset1_index = 0;
                    var dataset2_index = 0;
                    jq1110(GeoTemConfig.datasets).each(function(i) {
                        if (this.label == dataset1_name) {
                            dataset1_index = i;
                        }
                        if (this.label == dataset2_name) {
                            dataset2_index = i;
                        }
                    });
                    lineOverlayWidget.matchColumns(dataset1_index, number, dataset2_index, parent);
                }
                else {
                    setTimeout(mpiwg_geobrowser_lineoverlay_bindDatasets, 100);
                }
            }
	    LineOverlayWidget_l = true;
	    }


        </script>
    ';

    return $block;
}

function mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_admin_info($subtype, $conf, $contexts) {
    if (!empty($conf)) {
        $block = new stdClass;
        $block->title = 'lineoverlay';
        $block->content = t('showing the basic lineoverlay.');
        return $block;
    }
}

function mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_edit_form($form, &$form_state) {
    $conf = $form_state['conf'];
    
    $uniqueId = uniqid();
    
    $form['uniqueId'] = array(
        '#type' => 'hidden',
        '#value' => $uniqueId
    );
    
    $form['datasets_placeholder'] = array(
        '#markup' => '<div id="datasets_placeholder"></div>'
    );
    
    $form['lineoverlay_dataset_1'] = array(
        '#type' => 'textfield',
        '#title' => t('datasource 1'),
        '#description' => t('choose datasource 1'),
        '#default_value' => $conf["lineoverlay_dataset_1"]
    );
    $form['lineoverlay_dataset_2'] = array(
        '#type' => 'textfield',
        '#title' => t('datasource 2'),
        '#description' => t('choose datasource 2'),
        '#default_value' => $conf["lineoverlay_dataset_2"]
    );
    $form['lineoverlay_number'] = array(
        '#type' => 'textfield',
        '#title' => t('number column'),
        '#description' => t('choose number column'),
        '#default_value' => $conf["lineoverlay_number"]
    );
    $form['lineoverlay_parent'] = array(
        '#type' => 'textfield',
        '#title' => t('parent column'),
        '#description' => t('choose parent column'),
        '#default_value' => $conf["lineoverlay_parent"]
    );
    
    $form['#attached']['js'] = array(drupal_get_path('module', 'mpiwg_geobrowser') . '/js/lineoverlay_edit_form_populate.js');
    
    return $form;
}

function mpiwg_geobrowser_mpiwg_geobrowser_lineoverlay_edit_form_submit($form, &$form_state) {
    foreach (array('uniqueId', 'datasets_placeholder', 'lineoverlay_dataset_1', 'lineoverlay_dataset_2', 'lineoverlay_number', 'lineoverlay_parent') as $key) {
        if (isset($form_state['values'][$key])) {
            $form_state['conf'][$key] = $form_state['values'][$key];
        }
    }
}