Skip to content

Commit

Permalink
Add data model options (maximum resolution, default latitude, longitu…
Browse files Browse the repository at this point in the history
…de and zoomlevel)
  • Loading branch information
Mark Hoschek committed Nov 6, 2014
1 parent 7c047b2 commit 39d158a
Show file tree
Hide file tree
Showing 15 changed files with 162 additions and 47 deletions.
11 changes: 9 additions & 2 deletions controllers/data.php
Expand Up @@ -260,8 +260,15 @@
$template->assign('readonly', $table_info['table']['readonly']);
$template->assign('data_type', intval($table_info['table']['type']));
$template->assign('geometry_type', intval($table_info['table']['geometry_type']));
$template->assign('min_scale', intval($table_info['table']['min_scale']));
$template->assign('max_scale', intval($table_info['table']['max_scale']));
if($table_info['table']['default_latitude']) $template->assign('default_latitude', $table_info['table']['default_latitude']);
#else $template->assign('default_latitude', $settings['default_latitude']);
if($table_info['table']['default_longitude']) $template->assign('default_longitude', $table_info['table']['default_longitude']);
#else $template->assign('default_longitude', $settings['default_longitude']);
if($table_info['table']['default_zoomlevel']) $template->assign('default_zoomlevel', $table_info['table']['default_zoomlevel']);
#else $template->assign('default_zoomlevel', $settings['default_zoomlevel']);
$template->assign('min_scale', floatval($table_info['table']['min_scale']));
$template->assign('max_scale', floatval($table_info['table']['max_scale']));
$template->assign('max_resolution', floatval($table_info['table']['max_resolution']));
if($table_info['table']['simplification_tolerance_extent_factor']) $template->assign('redraw', true);
$template->assign('layer_overview', intval($table_info['table']['layer_overview']));
$template->assign('auxiliary_layer_1', intval($table_info['table']['auxiliary_layer_1']));
Expand Down
1 change: 1 addition & 0 deletions controllers/data_item.php
Expand Up @@ -416,6 +416,7 @@
$template->assign('subtitle', $lang['data_item_details_title']);
$template->assign('min_scale', intval($table_info['table']['min_scale']));
$template->assign('max_scale', intval($table_info['table']['max_scale']));
$template->assign('max_resolution', floatval($table_info['table']['max_resolution']));
$template->assign('auxiliary_layer_1', intval($table_info['table']['auxiliary_layer_1']));
$template->assign('auxiliary_layer_1_title', htmlspecialchars($table_info['table']['auxiliary_layer_1_title']));
if($table_info['table']['auxiliary_layer_1_stef']) $template->assign('auxiliary_layer_1_redraw', true);
Expand Down
49 changes: 41 additions & 8 deletions controllers/data_model.php

Large diffs are not rendered by default.

17 changes: 9 additions & 8 deletions controllers/edit_data_item.php
Expand Up @@ -58,9 +58,9 @@
$template->assign('geometry_type', intval($table_info['table']['geometry_type']));
$template->assign('latlong_entry', intval($table_info['table']['latlong_entry']));
$template->assign('geometry_required', intval($table_info['table']['geometry_required']));

$template->assign('min_scale', intval($table_info['table']['min_scale']));
$template->assign('max_scale', intval($table_info['table']['max_scale']));
$template->assign('min_scale', floatval($table_info['table']['min_scale']));
$template->assign('max_scale', floatval($table_info['table']['max_scale']));
$template->assign('max_resolution', floatval($table_info['table']['max_resolution']));
$template->assign('auxiliary_layer_1', intval($table_info['table']['auxiliary_layer_1']));
$template->assign('auxiliary_layer_1_title', htmlspecialchars($table_info['table']['auxiliary_layer_1_title']));
if($table_info['table']['auxiliary_layer_1_stef']) $template->assign('auxiliary_layer_1_redraw', true);
Expand Down Expand Up @@ -201,8 +201,9 @@
$template->assign('geometry_type', intval($table_info['table']['geometry_type']));
$template->assign('latlong_entry', intval($table_info['table']['latlong_entry']));
$template->assign('geometry_required', intval($table_info['table']['geometry_required']));
$template->assign('min_scale', intval($table_info['table']['min_scale']));
$template->assign('max_scale', intval($table_info['table']['max_scale']));
$template->assign('min_scale', floatval($table_info['table']['min_scale']));
$template->assign('max_scale', floatval($table_info['table']['max_scale']));
$template->assign('max_resolution', floatval($table_info['table']['max_resolution']));
$template->assign('auxiliary_layer_1', intval($table_info['table']['auxiliary_layer_1']));
$template->assign('auxiliary_layer_1_title', htmlspecialchars($table_info['table']['auxiliary_layer_1_title']));
if($table_info['table']['auxiliary_layer_1_stef']) $template->assign('auxiliary_layer_1_redraw', true);
Expand Down Expand Up @@ -741,15 +742,15 @@
}

$template->assign('data_item', $data_item);

$template->assign('fk', $fk);
$template->assign('table_data', $table_info['table']);
$template->assign('data_type', $table_info['table']['type']);
$template->assign('geometry_type', intval($table_info['table']['geometry_type']));
$template->assign('latlong_entry', intval($table_info['table']['latlong_entry']));
$template->assign('geometry_required', intval($table_info['table']['geometry_required']));
$template->assign('min_scale', intval($table_info['table']['min_scale']));
$template->assign('max_scale', intval($table_info['table']['max_scale']));
$template->assign('min_scale', floatval($table_info['table']['min_scale']));
$template->assign('max_scale', floatval($table_info['table']['max_scale']));
$template->assign('max_resolution', floatval($table_info['table']['max_resolution']));
$template->assign('auxiliary_layer_1', intval($table_info['table']['auxiliary_layer_1']));
$template->assign('auxiliary_layer_1_title', htmlspecialchars($table_info['table']['auxiliary_layer_1_title']));
if($table_info['table']['auxiliary_layer_1_stef']) $template->assign('auxiliary_layer_1_redraw', true);
Expand Down
12 changes: 12 additions & 0 deletions controllers/feedback.php
Expand Up @@ -33,6 +33,12 @@
$row = $dbr->fetch();
if(isset($row['id']))
{
// set default language if user uses a different one:
if(isset($_SESSION[$settings['session_prefix'].'language']) && $_SESSION[$settings['session_prefix'].'language']!=$settings['language'])
{
require(BASE_PATH.'lang/'.$settings['language'].'.lang.php');
}

if(isset($_POST['help'])) $subject = $lang['feedback_subject_help'];
else $subject = $lang['feedback_subject'];

Expand Down Expand Up @@ -76,6 +82,12 @@
if(isset($mail_error)) $errors[] = 'mail_error';
else $template->assign('feedback_sent', true);

// reset language:
if(isset($_SESSION[$settings['session_prefix'].'language']) && $_SESSION[$settings['session_prefix'].'language']!=$settings['language'] && file_exists(BASE_PATH.'lang/'.$_SESSION[$settings['session_prefix'].'language'].'.lang.php'))
{
require(BASE_PATH.'lang/'.$_SESSION[$settings['session_prefix'].'language'].'.lang.php');
}

}
else
{
Expand Down
13 changes: 13 additions & 0 deletions controllers/users.php
Expand Up @@ -310,6 +310,12 @@

if($notify_user)
{
// set default language if user uses a different one:
if(isset($_SESSION[$settings['session_prefix'].'language']) && $_SESSION[$settings['session_prefix'].'language']!=$settings['language'])
{
require(BASE_PATH.'lang/'.$settings['language'].'.lang.php');
}

require(BASE_PATH.'lib/phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->CharSet = $lang['charset'];
Expand All @@ -324,6 +330,13 @@
$mail->Body = str_replace('[website_address]', BASE_URL, str_replace('[website_title]', $settings['website_title'], str_replace('[email]', $email, str_replace('[password]', $pw, str_replace('[user_name]', $name, $lang['add_user_notification_mail_text'])))));
$mail->AddAddress($email);
$mail->Send();

// reset language:
if(isset($_SESSION[$settings['session_prefix'].'language']) && $_SESSION[$settings['session_prefix'].'language']!=$settings['language'] && file_exists(BASE_PATH.'lang/'.$_SESSION[$settings['session_prefix'].'language'].'.lang.php'))
{
require(BASE_PATH.'lang/'.$_SESSION[$settings['session_prefix'].'language'].'.lang.php');
}

}
}

Expand Down
8 changes: 8 additions & 0 deletions lang/english.lang.php
Expand Up @@ -270,8 +270,16 @@
$lang['db_table_basemaps_label'] = 'Basemaps:';
$lang['db_table_basemaps_defaut_label'] = '(default)';
$lang['db_table_basemaps_description'] = 'if none is selected the defaut basemaps are used';

$lang['db_table_default_latlon_input_label'] = 'Default latitude/longitude:';
$lang['db_table_default_latlon_description'] = 'Default latitude/longitude (e.g. 47.99349 / 7.84507)';
$lang['db_table_def_zoom_input_label'] = 'Default zoom level:';
$lang['db_table_def_zoom_description'] = 'Default zoom level (e.g. 10)';

$lang['db_table_scale_range_input_label'] = 'Scale range:';
$lang['db_table_scale_range_description'] = 'minimum/maximum scale (e.g. 50000 / 0) to display the layer from middle to highest zoom level)';
$lang['db_table_max_res_input_label'] = 'Maximum resolution:';
$lang['db_table_max_res_description'] = 'The maximum resolution that can be zoomed to (e.g. 1000)';
$lang['db_table_simp_tol_input_label'] = 'Geometry simplification tolerance:';
$lang['db_table_simp_tol_description'] = 'Fixed simplification tolerance (e.g. 0.1)';
$lang['db_table_simp_tol_sf_input_label'] = 'Geometry simplification tolerance/extent factor:';
Expand Down
4 changes: 4 additions & 0 deletions lib/functions.php
Expand Up @@ -896,8 +896,12 @@ function get_table_info($table, $overview_only=false)
a.latlong_entry,
a.geometry_required,
a.basemaps,
a.default_latitude,
a.default_longitude,
a.default_zoomlevel,
a.min_scale,
a.max_scale,
a.max_resolution,
a.simplification_tolerance,
a.simplification_tolerance_extent_factor,
a.layer_overview,
Expand Down
2 changes: 1 addition & 1 deletion static/js/ol_data.js
@@ -1,5 +1,5 @@
var projData = new OpenLayers.Projection("EPSG:4326");
var projDisplay = new OpenLayers.Projection("EPSG:900913");
var projDisplay = new OpenLayers.Projection("EPSG:3857");
var featuresStyle = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
pointRadius: 5,
Expand Down
2 changes: 1 addition & 1 deletion static/js/ol_data_item.js
@@ -1,5 +1,5 @@
var projData = new OpenLayers.Projection("EPSG:4326");
var projDisplay = new OpenLayers.Projection("EPSG:900913");
var projDisplay = new OpenLayers.Projection("EPSG:3857");
var featureLayerStyle = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
pointRadius: 10,
Expand Down
16 changes: 2 additions & 14 deletions static/js/ol_draw.js
@@ -1,5 +1,5 @@
var projData = new OpenLayers.Projection("EPSG:4326");
var projDisplay = new OpenLayers.Projection("EPSG:900913");
var projDisplay = new OpenLayers.Projection("EPSG:3857");
var vectorLayerStyle = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
externalGraphic: staticURL+"img/marker_edit_large.png",
Expand Down Expand Up @@ -76,8 +76,7 @@ labelOutlineWidth: 4

var wkt = document.getElementById("_wkt").value;

var map = new OpenLayers.Map("mapcontainer", { projection: projDisplay, controls:[new OpenLayers.Control.Zoom(), new OpenLayers.Control.ScaleLine()]});

var map = new OpenLayers.Map("mapcontainer", { projection: projDisplay, controls:[new OpenLayers.Control.Zoom(), new OpenLayers.Control.ScaleLine()] });

vectorLayer = new OpenLayers.Layer.Vector("Feature Layer", { styleMap: vectorLayerStyle });
map.addLayer(vectorLayer);
Expand Down Expand Up @@ -110,17 +109,6 @@ map.addControl(new OpenLayers.Control.MousePosition({ displayProjection:projData

vectorLayer.events.on({"featuremodified":updateForm, "featureadded":addReady});












OpenLayers.Event.observe(document, "keydown", function(evt) {
var handled = false;
switch (evt.keyCode) {
Expand Down
17 changes: 12 additions & 5 deletions templates/subtemplates/data.inc.tpl
Expand Up @@ -390,7 +390,11 @@
</div>

<?php if($data_type==1 && empty($_SESSION[$settings['session_prefix'].'usersettings']['disable_map'])): /* spatial data - display map */ ?>

<?php if($max_resolution): ?>
<?php
$js[] = 'map.setOptions({maxResolution:'.$max_resolution.'});';
?>
<?php endif; ?>
<?php if(isset($basemaps)): ?>
<?php foreach($basemaps as $basemap): ?>
<?php
Expand Down Expand Up @@ -465,16 +469,19 @@ else document.getElementById("layerinactivenotice").style.display = "block";';
?>
<?php if(isset($current_position)): ?>
<?php $js[] = 'map.setCenter(new OpenLayers.LonLat('.$current_position['longitude'].','.$current_position['latitude'].'), '.$current_position['zoomlevel'].');'; ?>
<?php elseif(isset($default_longitude) && isset($default_latitude) && isset($default_zoomlevel)): ?>
<?php
$js[] = 'map.setCenter(new OpenLayers.LonLat('.$default_longitude.','.$default_latitude.').transform(projData, projDisplay), '.$default_zoomlevel.');';
?>
<?php elseif($spatial_info['extent']): ?>
<?php $js[] = 'extentLayer = new OpenLayers.Layer.Vector("Extent");
var extent = new OpenLayers.Format.WKT({"internalProjection":projDisplay,"externalProjection":projData}).read("'.$spatial_info['extent'].'");
extentLayer.addFeatures([extent]);
map.zoomToExtent(extentLayer.getDataExtent());
if(map.zoom > 17) map.zoomTo(17);'; ?>
map.zoomToExtent(extentLayer.getDataExtent());'; ?>
<?php else: ?>
<?php $js[] = 'map.setCenter(new OpenLayers.LonLat('.$settings['default_longitude'].','.$settings['default_latitude'].').transform(projData, projDisplay), '.$settings['default_zoomlevel'].');'; ?>
<?php
$js[] = 'map.setCenter(new OpenLayers.LonLat('.$settings['default_longitude'].','.$settings['default_latitude'].').transform(projData, projDisplay), '.$settings['default_zoomlevel'].');'; ?>
<?php endif; ?>

<?php

if($permission['write']) $feature_options = '<p class=\"fib-options\"><a class=\"btn btn-primary btn-xs\" href=\"'.BASE_URL.'?r=edit_data_item.edit&amp;data_id='.$table_id.'&amp;id="+feature.attributes.id+"\" title=\"'.$lang['edit'].'\"><span class=\"glyphicon glyphicon-pencil\"></span></a>&nbsp;<a class=\"btn btn-danger btn-xs\" href=\"'.BASE_URL.'?r=data.delete&amp;data_id='.$table_id.'&amp;id="+feature.attributes.id+"\" onclick=\"return delete_confirm(this, \''.rawurlencode($lang['delete_data_item_message']).'\')\" title=\"'.$lang['delete'].'\"><span class=\"glyphicon glyphicon-remove\"></span></a></p>';
Expand Down
19 changes: 13 additions & 6 deletions templates/subtemplates/data_item.inc.tpl
Expand Up @@ -198,6 +198,12 @@
$js[] = 'var map = new OpenLayers.Map("mapcontainer", { projection:projDisplay, controls:[new OpenLayers.Control.Zoom(), new OpenLayers.Control.ScaleLine()] });';
?>

<?php if($max_resolution): ?>
<?php
$js[] = 'map.setOptions({maxResolution:'.$max_resolution.'});';
?>
<?php endif; ?>

<?php if(isset($basemaps[$table_id])): ?>
<?php foreach($basemaps[$table_id] as $basemap): ?>
<?php
Expand Down Expand Up @@ -260,18 +266,19 @@ var polygonFeature = new OpenLayers.Format.WKT({"internalProjection":projDisplay
polygonFeature.attributes["id"] = '.$item_data['id'].';
polygonFeature.attributes["featurelabel"] = "'.$fl.'";
featureLayer.addFeatures([polygonFeature]);';

if($spatial_item_data['geometry_type']=='POINT'): ?>
?>
<?php /*if($spatial_item_data['geometry_type']=='POINT'): ?>
<?php
$js[] = 'map.setCenter(featureLayer.getDataExtent().getCenterLonLat(),17);';
?>
<?php else: ?>
<?php
$js[] = 'map.zoomToExtent(featureLayer.getDataExtent());
//if(map.zoom > 17) map.zoomTo(17);';
$js[] = 'map.zoomToExtent(featureLayer.getDataExtent());';
?>
<?php endif; */ ?>
<?php
$js[] = 'map.zoomToExtent(featureLayer.getDataExtent());';
?>
<?php endif; ?>

<?php endif; ?>

<?php if(isset($attached_data) || isset($related_data) || isset($item_images)): ?>
Expand Down
31 changes: 31 additions & 0 deletions templates/subtemplates/data_model.edit_model.inc.tpl
Expand Up @@ -169,6 +169,29 @@
</div>
</div>

<div class="form-group">
<label for="default_latutude" class="col-md-2 control-label"><?php echo $lang['db_table_default_latlon_input_label']; ?></label>
<div class="col-md-6">
<div class="row">
<div class="col-md-6">
<input id="default_latutude" class="form-control" type="text" name="default_latitude" value="<?php if(isset($db_table['default_latitude'])) echo $db_table['default_latitude']; ?>" size="35">
</div>
<div class="col-md-6">
<input id="default_longitude" class="form-control" type="text" name="default_longitude" value="<?php if(isset($db_table['default_longitude'])) echo $db_table['default_longitude']; ?>" size="35">
</div>
</div>
<span class="help-block"><?php echo $lang['db_table_default_latlon_description']; ?></span>
</div>
</div>

<div class="form-group">
<label for="default_zoomlevel" class="col-md-2 control-label"><?php echo $lang['db_table_def_zoom_input_label']; ?></label>
<div class="col-md-6">
<input id="default_zoomlevel" class="form-control" type="text" name="default_zoomlevel" value="<?php if(isset($db_table['default_zoomlevel'])) echo $db_table['default_zoomlevel']; ?>">
<span class="help-block"><?php echo $lang['db_table_def_zoom_description']; ?></span>
</div>
</div>

<div class="form-group">
<label for="min_scale" class="col-md-2 control-label"><?php echo $lang['db_table_scale_range_input_label']; ?></label>
<div class="col-md-6">
Expand All @@ -184,6 +207,14 @@
</div>
</div>

<div class="form-group">
<label for="max_resolution" class="col-md-2 control-label"><?php echo $lang['db_table_max_res_input_label']; ?></label>
<div class="col-md-6">
<input id="max_resolution" class="form-control" type="text" name="max_resolution" value="<?php if(isset($db_table['max_resolution'])) echo $db_table['max_resolution']; ?>">
<span class="help-block"><?php echo $lang['db_table_max_res_description']; ?></span>
</div>
</div>

<div class="form-group">
<label for="simplification_tolerance" class="col-md-2 control-label"><?php echo $lang['db_table_simp_tol_input_label']; ?></label>
<div class="col-md-6">
Expand Down
7 changes: 5 additions & 2 deletions templates/subtemplates/edit_data_item.inc.tpl
Expand Up @@ -274,9 +274,12 @@
</div>
</form>



<?php if($data_type==1 && empty($latlong_entry) && empty($_SESSION[$settings['session_prefix'].'usersettings']['disable_map'])): /* spatial data - display map: */ ?>
<?php if($max_resolution): ?>
<?php
$js[] = 'map.setOptions({maxResolution:'.$max_resolution.'});';
?>
<?php endif; ?>
<?php if(isset($basemaps)): ?>
<?php foreach($basemaps as $basemap): ?>
<?php
Expand Down

0 comments on commit 39d158a

Please sign in to comment.