Fixed GIs map

This commit is contained in:
Daniel Maya 2022-01-26 17:15:39 +01:00
parent 11e0c99e74
commit 8a868c9fde
2 changed files with 435 additions and 526 deletions

View File

@ -71,6 +71,42 @@ foreach ($layer_ids as $layer_id) {
$next_action = 'new_map'; $next_action = 'new_map';
$url = 'index.php?sec='.$sec.'&sec2='.$sec2.'&map_id='.$idMap.'&action='.$next_action;
$buttons['gis_maps_list'] = [
'active' => false,
'text' => '<a href="index.php?sec=godgismaps&sec2=operation/gis_maps/gis_map">'.html_print_image(
'images/list.png',
true,
[
'title' => __('GIS Maps list'),
'class' => 'invert_filter',
]
).'</a>',
];
if ($idMap) {
$buttons['view_gis'] = [
'active' => false,
'text' => '<a href="index.php?sec=gismaps&sec2=operation/gis_maps/render_view&map_id='.$idMap.'">'.html_print_image(
'images/op_gis.png',
true,
[
'title' => __('View GIS'),
'class' => 'invert_filter',
]
).'</a>',
];
}
ui_print_page_header(
__('GIS Maps builder'),
'images/gm_gis.png',
false,
'configure_gis_map_edit',
true,
$buttons
);
switch ($action) { switch ($action) {
case 'save_new': case 'save_new':
$map_name = get_parameter('map_name'); $map_name = get_parameter('map_name');
@ -269,42 +305,6 @@ switch ($action) {
break; break;
} }
$url = 'index.php?sec='.$sec.'&sec2='.$sec2.'&map_id='.$idMap.'&action='.$next_action;
$buttons['gis_maps_list'] = [
'active' => false,
'text' => '<a href="index.php?sec=godgismaps&sec2=operation/gis_maps/gis_map">'.html_print_image(
'images/list.png',
true,
[
'title' => __('GIS Maps list'),
'class' => 'invert_filter',
]
).'</a>',
];
if ($idMap) {
$buttons['view_gis'] = [
'active' => false,
'text' => '<a href="index.php?sec=gismaps&sec2=operation/gis_maps/render_view&map_id='.$idMap.'">'.html_print_image(
'images/op_gis.png',
true,
[
'title' => __('View GIS'),
'class' => 'invert_filter',
]
).'</a>',
];
}
ui_print_page_header(
__('GIS Maps builder'),
'images/gm_gis.png',
false,
'configure_gis_map_edit',
true,
$buttons
);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
@ -463,12 +463,21 @@ foreach ($listConnectionTemp as $connectionTemp) {
} }
$table->data[1][0] = __('Add Map connection').$iconError; $table->data[1][0] = __('Add Map connection').$iconError;
$table->data[1][1] = ".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)." $table->data[1][1] = "<table class='no-class' border='0' id='map_connection'>
< / td > < td > < a href = 'javascript: addConnectionMap();' > ".html_print_image( <tr>
<td >
".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)."
</td>
<td >
<a href='javascript: addConnectionMap();'>".html_print_image(
'images/add.png', 'images/add.png',
true, true,
['class' => 'invert_filter'] ['class' => 'invert_filter']
)." < / a > < input type = 'hidden' name = 'map_connection_list' value = '' id = 'map_connection_list' / > < input type = 'hidden' name = 'layer_list' value = '' id = 'layer_list' / > < / td > < / tr > (".gis_add_conection_maps_in_form($map_connection_list).' )."</a>
<input type='hidden' name='map_connection_list' value='' id='map_connection_list' />
<input type='hidden' name='layer_list' value='' id='layer_list' />
</td>
</tr> ".gis_add_conection_maps_in_form($map_connection_list).'
</table>'; </table>';
$own_info = get_user_info($config['id_user']); $own_info = get_user_info($config['id_user']);
@ -544,9 +553,9 @@ $table->data = [];
$table->data[0][0] = '<h4>'.__('List of layers').'</h4>'; $table->data[0][0] = '<h4>'.__('List of layers').'</h4>';
$table->data[0][1] = '<div class="right">'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'</div>'; $table->data[0][1] = '<div class="right">'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'</div>';
$table->data[1][0] = '<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_layers"></table>'; $table->data[1][0] = '<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_layers"></table>';
$table->data[1][1] = '<div id="form_layer' class='invisible'> $table->data[1][1] = '<div id="form_layer" class="invisible">
<table id='form_layer_table' class="" border='0' cellpadding='4' cellspacing='4"> <table id="form_layer_table" class="" border="0" cellpadding="4" cellspacing="4">
<tr> <tr>
<td>'.__('Layer name').':</td> <td>'.__('Layer name').':</td>
<td>'.html_print_input_text('layer_name_form', '', '', 20, 40, true).'</td> <td>'.html_print_input_text('layer_name_form', '', '', 20, 40, true).'</td>
@ -589,7 +598,7 @@ $table->data[1][1] .= '</td>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<h4>'.__('List of Agents to be shown in the layer').'</h4> <h4>'.__('List of Agents to be shown in the layer').'</h4>
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_agents"> <table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_agents">
</table> </table>
</td> </td>
</tr>'; </tr>';
@ -623,18 +632,18 @@ $table->data[1][1] .= '<tr><td colspan="4"><hr /></td></tr>
<td colspan="3">'.$agent_for_group_input.'</td> <td colspan="3">'.$agent_for_group_input.'</td>
</tr> </tr>
<tr> <tr>
<td colspan="4' align='right">'.$add_group_btn.'</td> <td colspan="4" align="right">'.$add_group_btn.'</td>
</tr> </tr>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<h4>'.__('List of groups to be shown in the layer').'</h4> <h4>'.__('List of groups to be shown in the layer').'</h4>
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_groups"> <table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_groups">
</table> </table>
</td> </td>
</tr>'; </tr>';
$table->data[1][1] .= '<tr> $table->data[1][1] .= '<tr>
<td align="right' colspan='4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).' <td align="right" colspan="4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
'.html_print_input_hidden('current_edit_layer_id', '', true).' '.html_print_input_hidden('current_edit_layer_id', '', true).'
</td> </td>
</tr> </tr>
@ -644,7 +653,7 @@ $table->data[1][1] .= '<tr>
html_print_table($table); html_print_table($table);
echo '<div class="action - buttons' style=')width: '.$table->width.'">'; echo '<div class="action-buttons" style="width: '.$table->width.'">';
switch ($action) { switch ($action) {
case 'save_new': case 'save_new':
case 'edit_map': case 'edit_map':
@ -669,12 +678,12 @@ echo '</form>';
// -------------------------INI CHUNKS--------------------------------------- // -------------------------INI CHUNKS---------------------------------------
?> ?>
<table style="visibility: hidden;('> <table style="visibility: hidden;">
<tbody id='chunk_map_connection'> <tbody id="chunk_map_connection">
<tr class='row_0"> <tr class="row_0">
<td><?php html_print_input_text('map_connection_name', $map_name, '', 20, 40, false, true); ?></td> <td><?php html_print_input_text('map_connection_name', $map_name, '', 20, 40, false, true); ?></td>
<td><?php html_print_radio_button_extended('map_connection_default', '', '', true, false, 'changeDefaultConection(this.value)', ''); ?></td> <td><?php html_print_radio_button_extended('map_connection_default', '', '', true, false, 'changeDefaultConection(this.value)', ''); ?></td>
<td><a id="delete_row' href='none"> <td><a id="delete_row" href="none">
<?php <?php
html_print_image( html_print_image(
'images/cross.png', 'images/cross.png',
@ -697,43 +706,36 @@ ui_require_jquery_file('cluetip');
ui_require_jquery_file('pandora.controls'); ui_require_jquery_file('pandora.controls');
ui_require_jquery_file('json'); ui_require_jquery_file('json');
?> ?>
<script type="text / javascript'> <script type="text/javascript">
function active_button_add_agent() { function active_button_add_agent() {
$(') $("#button-add_agent").prop("disabled", false);
// button-add_agent").prop("disabled", false);
} }
function addAgentClick (event) {
function addAgentClick(event) var $layerFormAgentIdInput = $("#hidden-agent_id");
{ var $layerFormAgentAliasInput = $("#text-agent_alias");
var $layerFormAgentIdInput = $('#hidden-agent_id');
var $layerFormAgentAliasInput = $('#text-agent_alias');
var agentId = Number.parseInt($layerFormAgentIdInput.val()); var agentId = Number.parseInt($layerFormAgentIdInput.val());
var agentAlias = $layerFormAgentAliasInput.val(); var agentAlias = $layerFormAgentAliasInput.val();
var layerId = $('input#hidden-current_edit_layer_id').val(); var layerId = $("input#hidden-current_edit_layer_id").val();
if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) { if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) return;
return;
}
addAgentRow(layerId, agentId, agentAlias); addAgentRow(layerId, agentId, agentAlias);
// Clear agent inputs // Clear agent inputs
$layerFormAgentIdInput.val(''); $layerFormAgentIdInput.val("");
$layerFormAgentAliasInput.val(''); $layerFormAgentAliasInput.val("");
$('#button-add_agent').prop('disabled', true); $("#button-add_agent").prop("disabled", true);
} }
function toggleAddGroupBtn () {
function toggleAddGroupBtn() var groupId = Number.parseInt($("select#layer_group_id").val());
{
var groupId = Number.parseInt($('select#layer_group_id').val());
var existGroupId = $("table#list_groups tr.groups_list_item[data-group-id='" + groupId + "']").length > 0; var existGroupId = $("table#list_groups tr.groups_list_item[data-group-id='" + groupId + "']").length > 0;
var agentId = Number.parseInt($('input#hidden-agent_id_for_data').val()); var agentId = Number.parseInt($("input#hidden-agent_id_for_data").val());
var agentAlias = $('input#text-agent_alias_for_data').val(); var agentAlias = $("input#text-agent_alias_for_data").val();
var enabled = ( var enabled = (
!existGroupId !existGroupId
@ -744,19 +746,17 @@ function toggleAddGroupBtn()
&& agentAlias.length > 0 && agentAlias.length > 0
); );
$('#button-add_group').prop('disabled', !enabled); $("#button-add_group").prop("disabled", !enabled);
} }
function addGroupClick (event) {
var $layerFormGroupIdInput = $("select#layer_group_id");
var $layerFormAgentIdInput = $("input#hidden-agent_id_for_data");
var $layerFormAgentAliasInput = $("input#text-agent_alias_for_data");
function addGroupClick(event) var layerId = $("input#hidden-current_edit_layer_id").val();
{
var $layerFormGroupIdInput = $('select#layer_group_id');
var $layerFormAgentIdInput = $('input#hidden-agent_id_for_data');
var $layerFormAgentAliasInput = $('input#text-agent_alias_for_data');
var layerId = $('input#hidden-current_edit_layer_id').val();
var groupId = Number.parseInt($layerFormGroupIdInput.val()); var groupId = Number.parseInt($layerFormGroupIdInput.val());
var groupName = $layerFormGroupIdInput.find(':selected').text(); var groupName = $layerFormGroupIdInput.find(":selected").text();
var agentId = Number.parseInt($layerFormAgentIdInput.val()); var agentId = Number.parseInt($layerFormAgentIdInput.val());
var agentAlias = $layerFormAgentAliasInput.val(); var agentAlias = $layerFormAgentAliasInput.val();
@ -769,61 +769,46 @@ function addGroupClick(event)
&& agentAlias.length > 0 && agentAlias.length > 0
); );
if (!valid) { if (!valid) return;
return;
}
addGroupRow(layerId, groupId, groupName, agentId, agentAlias); addGroupRow(layerId, groupId, groupName, agentId, agentAlias);
// Clear inputs // Clear inputs
// $layerFormGroupIdInput.val(0); // $layerFormGroupIdInput.val(0);
$layerFormAgentIdInput.val(''); $layerFormAgentIdInput.val("");
$layerFormAgentAliasInput.val(''); $layerFormAgentAliasInput.val("");
$('#button-add_group').prop('disabled', true); $("#button-add_group").prop("disabled", true);
} }
function moveLayerRowUpOnClick (event) {
function moveLayerRowUpOnClick(event)
{
var $row = $(event.currentTarget).parent().parent(); var $row = $(event.currentTarget).parent().parent();
$row.insertBefore($row.prev()); $row.insertBefore($row.prev());
} }
function moveLayerRowDownOnClick (event) {
function moveLayerRowDownOnClick(event)
{
var $row = $(event.currentTarget).parent().parent(); var $row = $(event.currentTarget).parent().parent();
$row.insertAfter($row.next()); $row.insertAfter($row.next());
} }
function removeLayerRowOnClick (event) {
function removeLayerRowOnClick(event)
{
var $layerRow = $(event.currentTarget).parent().parent(); var $layerRow = $(event.currentTarget).parent().parent();
var layerRowId = $layerRow.find('input.layer_id').val(); var layerRowId = $layerRow.find("input.layer_id").val();
var layerEditorId = $('input#hidden-current_edit_layer_id').val(); var layerEditorId = $("input#hidden-current_edit_layer_id").val();
if (layerRowId == layerEditorId) { if (layerRowId == layerEditorId) hideLayerEditor();
hideLayerEditor();
}
// Remove row // Remove row
$(event.currentTarget).parent().parent().remove(); $(event.currentTarget).parent().parent().remove();
} }
function hideLayerEditor () {
function hideLayerEditor()
{
// Clean editor // Clean editor
cleanLayerEditor(); cleanLayerEditor();
// Hide editor // Hide editor
$('div#form_layer').hide(); $("div#form_layer").hide();
} }
function showLayerEditor (layerId) {
function showLayerEditor(layerId) var $layerSaveBtn = $("input#button-save_layer");
{
var $layerSaveBtn = $('input#button-save_layer');
// Clean editor // Clean editor
cleanLayerEditor(); cleanLayerEditor();
@ -847,39 +832,33 @@ function showLayerEditor(layerId)
} }
// Show editor (if hidden) // Show editor (if hidden)
$('div#form_layer').show(); $("div#form_layer").show();
} }
function getLayerData (layerId) {
function getLayerData(layerId) var $layerRow = $("tr#layer_row_" + layerId);
{ var layerName = $layerRow.find("input.layer_name").val();
var $layerRow = $('tr#layer_row_' + layerId); var layerVisible = $layerRow.find("input.layer_visible").val() == 1;
var layerName = $layerRow.find('input.layer_name').val(); var layerAgentsFromGroup = $layerRow.find("input.layer_agents_from_group").val();
var layerVisible = $layerRow.find('input.layer_visible').val() == 1; var layerAgents = $layerRow.find("input.layer_agent_alias").map(function () {
var layerAgentsFromGroup = $layerRow.find('input.layer_agents_from_group').val();
var layerAgents = $layerRow.find('input.layer_agent_alias').map(
function () {
return { return {
'id': $(this).data('agent-id'), "id": $(this).data("agent-id"),
'alias': $(this).val() "alias": $(this).val()
}; };
} }).get();
).get(); var layerGroups = $layerRow.find("input.layer_group_id").map(function () {
var layerGroups = $layerRow.find('input.layer_group_id').map(
function () {
var groupId = $(this).val(); var groupId = $(this).val();
var groupName = $(this).siblings(("input.layer_group_name[data-group-id='" + groupId + "']")).val(); var groupName = $(this).siblings("input.layer_group_name[data-group-id='" + groupId + "']").val();
var agentId = $(this).siblings(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).val(); var agentId = $(this).siblings("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").val();
var agentAlias = $(this).siblings(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).val(); var agentAlias = $(this).siblings("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").val();
return { return {
'id': groupId, "id": groupId,
'name': groupName, "name": groupName,
'agentId': agentId, "agentId": agentId,
'agentAlias': agentAlias "agentAlias": agentAlias
}; };
} }).get();
).get();
return { return {
id: layerId, id: layerId,
@ -891,185 +870,142 @@ function getLayerData(layerId)
} }
} }
function setLayerEditorData (data) {
function setLayerEditorData(data) if (data == null) data = {};
{
if (data == null) {
data = {};
}
// Set defaults // Set defaults
data = { data = {
id: data.id || 0, id: data.id || 0,
name: data.name || '', name: data.name || "",
visible: data.visible != null ? !!data.visible : true, visible: data.visible != null ? !!data.visible : true,
agentsFromGroup: data.agentsFromGroup || -1, agentsFromGroup: data.agentsFromGroup || -1,
agents: data.agents || [], agents: data.agents || [],
groups: data.groups || [] groups: data.groups || []
} }
var $layerFormIdInput = $('input#hidden-current_edit_layer_id'); var $layerFormIdInput = $("input#hidden-current_edit_layer_id");
var $layerFormNameInput = $('input#text-layer_name_form'); var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form'); var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $('#layer_group_form'); var $layerFormAgentsFromGroupSelect = $("#layer_group_form");
var $layerFormAgentInput = $('input#text-agent_alias'); var $layerFormAgentInput = $("input#text-agent_alias");
var $layerFormAgentButton = $('input#button-add_agent'); var $layerFormAgentButton = $("input#button-add_agent");
var $layerFormAgentsListItems = $('tr.agents_list_item'); var $layerFormAgentsListItems = $("tr.agents_list_item");
var $layerFormGroupsListItems = $('tr.groups_list_item'); var $layerFormGroupsListItems = $("tr.groups_list_item");
$layerFormIdInput.val(data.id); $layerFormIdInput.val(data.id);
$layerFormNameInput.val(data.name); $layerFormNameInput.val(data.name);
$layerFormVisibleCheckbox.prop('checked', data.visible); $layerFormVisibleCheckbox.prop("checked", data.visible);
$(`#layer_group_form option[value=${data.agentsFromGroup $(`#layer_group_form option[value=${data.agentsFromGroup}]`).attr('selected', 'selected');
}]`).attr('selected', 'selected');
$(`#layer_group_form`).trigger('change'); $(`#layer_group_form`).trigger('change');
$layerFormAgentInput.val(''); $layerFormAgentInput.val("");
$layerFormAgentButton.prop('disabled', true); $layerFormAgentButton.prop("disabled", true);
$layerFormAgentsListItems.remove(); $layerFormAgentsListItems.remove();
$layerFormGroupsListItems.remove(); $layerFormGroupsListItems.remove();
var $tableAgents = $('table#list_agents'); var $tableAgents = $("table#list_agents");
data.agents.foreach (function (agent) { data.agents.forEach(function (agent) {
addAgentRow(data.id, agent.id, agent.alias); addAgentRow(data.id, agent.id, agent.alias);
}) { });
}
var $tableGroups = $('table#list_groups'); var $tableGroups = $("table#list_groups");
data.groups.foreach (function (group) { data.groups.forEach(function (group) {
addGroupRow(data.id, group.id, group.name, group.agentId, group.agentAlias); addGroupRow(data.id, group.id, group.name, group.agentId, group.agentAlias);
}) { });
} }
} function newLayer () {
function newLayer()
{
showLayerEditor(null); showLayerEditor(null);
} }
function saveNewLayer () {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
var $layerFormAgentsListItems = $("tr.agents_list_item > td > span.agent_alias");
var $layerFormGroupsListItems = $("tr.groups_list_item");
var newLayerId = "new_" + ($("tr.layer_row").length + 1);
function saveNewLayer() addLayerRow(newLayerId, {
{
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
var $layerFormAgentsListItems = $('tr.agents_list_item > td > span.agent_alias');
var $layerFormGroupsListItems = $('tr.groups_list_item');
var newLayerId = ('new_' + ($('tr.layer_row').length + 1));
addLayerRow(
newLayerId,
{
id: newLayerId, id: newLayerId,
name: $layerFormNameInput.val(), name: $layerFormNameInput.val(),
visible: $layerFormVisibleCheckbox.prop('checked'), visible: $layerFormVisibleCheckbox.prop("checked"),
agentsFromGroup: $layerFormAgentsFromGroupSelect.val(), agentsFromGroup: $layerFormAgentsFromGroupSelect.val(),
agents: $layerFormAgentsListItems.map( agents: $layerFormAgentsListItems.map(function () {
function () {
return { return {
'id': $(this).data('agent-id'), "id": $(this).data("agent-id"),
'alias': $(this).text() "alias": $(this).text()
}; };
} }).get(),
).get(), groups: $layerFormGroupsListItems.map(function () {
groups: $layerFormGroupsListItems.map(
function () {
return { return {
'id': $(this).data('group-id'), "id": $(this).data("group-id"),
'name': $(this).data('group-name'), "name": $(this).data("group-name"),
'agentId': $(this).data('agent-id'), "agentId": $(this).data("agent-id"),
'agentAlias': $(this).data('agent-alias') "agentAlias": $(this).data("agent-alias")
}; };
} }).get()
).get() });
}
);
} }
function cleanLayerEditor () {
function cleanLayerEditor()
{
// Clear editor events // Clear editor events
unbindLayerEditorEvents(); unbindLayerEditorEvents();
// Add default data to the editor // Add default data to the editor
setLayerEditorData(); setLayerEditorData();
} }
function bindLayerEditorEvents (layerId) {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
function bindLayerEditorEvents(layerId) var $layerRow = $("tr#layer_row_" + layerId);
{
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
var $layerRow = $('tr#layer_row_' + layerId); if ($layerRow.length === 0) return;
if ($layerRow.length === 0) { $layerFormNameInput.bind("change", function (event) {
return;
}
$layerFormNameInput.bind(
'change',
function (event) {
var name = event.currentTarget.value; var name = event.currentTarget.value;
$layerRow.find('span.layer_name').html(name); $layerRow.find("span.layer_name").html(name);
$layerRow.find('input.layer_name').val(name); $layerRow.find("input.layer_name").val(name);
} });
); $layerFormVisibleCheckbox.bind("click", function (event) {
$layerFormVisibleCheckbox.bind( var visible = $(event.currentTarget).prop("checked");
'click', $layerRow.find("input.layer_visible").val(visible ? 1 : 0);
function (event) { });
var visible = $(event.currentTarget).prop('checked'); $layerFormAgentsFromGroupSelect.bind("change", function (event) {
$layerRow.find('input.layer_visible').val(visible ? 1 : 0);
}
);
$layerFormAgentsFromGroupSelect.bind(
'change',
function (event) {
var group = event.currentTarget.value; var group = event.currentTarget.value;
$layerRow.find('input.layer_agents_from_group').val(group); $layerRow.find("input.layer_agents_from_group").val(group);
} });
);
} }
function unbindLayerEditorEvents () {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
function unbindLayerEditorEvents() $layerFormNameInput.unbind("change");
{ $layerFormVisibleCheckbox.unbind("click");
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
$layerFormNameInput.unbind('change');
$layerFormVisibleCheckbox.unbind('click');
$layerFormAgentsFromGroupSelect.val('-1'); $layerFormAgentsFromGroupSelect.val('-1');
} }
function getAgentRow (layerId, agentId, agentAlias) {
var $row = $("<tr class=\"agents_list_item\" />");
var $nameCol = $("<td />");
var $deleteCol = $("<td />");
function getAgentRow(layerId, agentId, agentAlias) var $agentAlias = $("<span class=\"agent_alias\" data-agent-id=\"" + agentId + "\">" + agentAlias + "</span>");
{
var $row = $('<tr class="agents_list_item" />');
var $nameCol = $('<td />');
var $deleteCol = $('<td />');
var $agentAlias = $('<span class="agent_alias" data-agent-id="' + agentId + '">' + agentAlias + '</span>');
var $removeBtn = $('<a class="delete_row" href="javascript:" <?php echo html_print_image('images/cross.png', false, ['class' => 'invert_filter']); ?> </a>'); var $removeBtn = $('<a class="delete_row" href="javascript:" <?php echo html_print_image('images/cross.png', false, ['class' => 'invert_filter']); ?> </a>');
$removeBtn.click( $removeBtn.click(function (event) {
function (event) { var $layerRow = $("tr#layer_row_" + layerId);
var $layerRow = $('tr#layer_row_' + layerId);
if ($layerRow.length > 0) { if ($layerRow.length > 0) {
$layerRow.find(("input.layer_agent_id[data-agent-id='" + agentId + "']")).remove(); $layerRow.find("input.layer_agent_id[data-agent-id='" + agentId + "']").remove();
$layerRow.find(("input.layer_agent_alias[data-agent-id='" + agentId + "']")).remove(); $layerRow.find("input.layer_agent_alias[data-agent-id='" + agentId + "']").remove();
} }
var $agentListItemRow = $(event.currentTarget).parent().parent(); var $agentListItemRow = $(event.currentTarget).parent().parent();
$agentListItemRow.remove(); $agentListItemRow.remove();
} });
);
$nameCol.append($agentAlias); $nameCol.append($agentAlias);
$deleteCol.append($removeBtn); $deleteCol.append($removeBtn);
@ -1079,64 +1015,55 @@ function setLayerEditorData(data)
return $row; return $row;
} }
function addAgentRow (layerId, agentId, agentAlias) {
if (agentId == null || agentId == 0 || agentAlias.length === 0) return;
function addAgentRow(layerId, agentId, agentAlias) var $layerRow = $("tr#layer_row_" + layerId);
{ if ($layerRow && $layerRow.find("input.layer_agent_id[value='" + agentId + "']").length === 0) {
if (agentId == null || agentId == 0 || agentAlias.length === 0) { $layerRow
return; .find("td:first-child")
.append(getLayerAgentIdInput(layerId, agentId))
.append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
} }
var $layerRow = $('tr#layer_row_' + layerId); $("table#list_agents").append(getAgentRow(layerId, agentId, agentAlias));
if ($layerRow && $layerRow.find(("input.layer_agent_id[value='" + agentId + "']")).length === 0) {
$layerRow.find('td:first-child').append(getLayerAgentIdInput(layerId, agentId)).append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
} }
$('table#list_agents').append(getAgentRow(layerId, agentId, agentAlias)); function getLayerAgentIdInput (layerId, agentId) {
return $("<input class=\"layer_agent_id\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][id]\" value=\"" + agentId + "\">");
} }
function getLayerAgentAliasInput (layerId, agentId, agentAlias) {
function getLayerAgentIdInput(layerId, agentId) return $("<input class=\"layer_agent_alias\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][alias]\" value=\"" + agentAlias + "\">");
{
return $('<input class="layer_agent_id" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][id]" value="' + agentId + '">');
} }
function getGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
var $row = $("<tr class=\"groups_list_item\" data-group-id=\"" + groupId + "\" data-group-name=\"" + groupName + "\" data-agent-id=\"" + agentId + "\" data-agent-alias=\"" + agentAlias + "\" />");
var $nameCol = $("<td />");
var $deleteCol = $("<td />");
function getLayerAgentAliasInput(layerId, agentId, agentAlias) var $groupName = $("<span class=\"group_desc\">"
{
return $('<input class="layer_agent_alias" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][alias]" value="' + agentAlias + '">');
}
function getGroupRow(layerId, groupId, groupName, agentId, agentAlias)
{
var $row = $('<tr class="groups_list_item" data-group-id="' + groupId + '" data-group-name="' + groupName + '" data-agent-id="' + agentId + '" data-agent-alias="' + agentAlias + '" />');
var $nameCol = $('<td />');
var $deleteCol = $('<td />');
var $groupName = $('<span class="group_desc">'
+ groupName + groupName
+ ' (' + " ("
+ "<?php echo __('Using data from'); ?> " + "<?php echo __('Using data from'); ?> "
+ '<i>' + agentAlias + '</i>' + "<i>" + agentAlias + "</i>"
+ ')' + ")"
+ '</span>'); + "</span>");
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>'); var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>');
$removeBtn.click( $removeBtn.click(function (event) {
function (event) { var $layerRow = $("tr#layer_row_" + layerId);
var $layerRow = $('tr#layer_row_' + layerId);
if ($layerRow.length > 0) { if ($layerRow.length > 0) {
$layerRow.find(("input.layer_group_id[data-group-id='" + groupId + "']")).remove(); $layerRow.find("input.layer_group_id[data-group-id='" + groupId + "']").remove();
$layerRow.find(("input.layer_group_name[data-group-id='" + groupId + "']")).remove(); $layerRow.find("input.layer_group_name[data-group-id='" + groupId + "']").remove();
$layerRow.find(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).remove(); $layerRow.find("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").remove();
$layerRow.find(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).remove(); $layerRow.find("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").remove();
} }
var $groupListItemRow = $(event.currentTarget).parent().parent(); var $groupListItemRow = $(event.currentTarget).parent().parent();
$groupListItemRow.remove(); $groupListItemRow.remove();
} });
);
$nameCol.append($groupName); $nameCol.append($groupName);
$deleteCol.append($removeBtn); $deleteCol.append($removeBtn);
@ -1146,144 +1073,132 @@ function setLayerEditorData(data)
return $row; return $row;
} }
function addGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
if (
groupId == null ||
groupId == 0 ||
groupName.length === 0 ||
agentId == null ||
agentId == 0 ||
agentAlias.length === 0
) return;
function addGroupRow(layerId, groupId, groupName, agentId, agentAlias) var $layerRow = $("tr#layer_row_" + layerId);
{ if ($layerRow && $layerRow.find("input.layer_group_id[value='" + groupId + "']").length === 0) {
if (groupId == null $layerRow
|| groupId == 0 .find("td:first-child")
|| groupName.length === 0 .append(getLayerGroupIdInput(layerId, groupId))
|| agentId == null .append(getLayerGroupNameInput(layerId, groupId, groupName))
|| agentId == 0 .append(getLayerAgentIdForDataInput(layerId, groupId, agentId))
|| agentAlias.length === 0 .append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
) {
return;
} }
var $layerRow = $('tr#layer_row_' + layerId); $("table#list_groups").append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias));
if ($layerRow && $layerRow.find(("input.layer_group_id[value='" + groupId + "']")).length === 0) {
$layerRow.find('td:first-child').append(getLayerGroupIdInput(layerId, groupId)).append(getLayerGroupNameInput(layerId, groupId, groupName)).append(getLayerAgentIdForDataInput(layerId, groupId, agentId)).append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
} }
$('table#list_groups').append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias)); function getLayerGroupIdInput (layerId, groupId) {
return $("<input class=\"layer_group_id\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][id]\" value=\"" + groupId + "\">");
} }
function getLayerGroupNameInput (layerId, groupId, groupName) {
function getLayerGroupIdInput(layerId, groupId) return $("<input class=\"layer_group_name\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][name]\" value=\"" + groupName + "\">");
{
return $('<input class="layer_group_id" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][id]" value="' + groupId + '">');
} }
function getLayerAgentIdForDataInput (layerId, groupId, agentId) {
function getLayerGroupNameInput(layerId, groupId, groupName) return $("<input class=\"layer_agent_id_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_id]\" value=\"" + agentId + "\">");
{
return $('<input class="layer_group_name" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][name]" value="' + groupName + '">');
} }
function getLayerAgentAliasForDataInput (layerId, groupId, agentAlias) {
function getLayerAgentIdForDataInput(layerId, groupId, agentId) return $("<input class=\"layer_agent_alias_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_alias]\" value=\"" + agentAlias + "\">");
{
return $('<input class="layer_agent_id_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_id]" value="' + agentId + '">');
} }
function getLayerRow (layerId, layerData) {
var $row = $("<tr id=\"layer_row_" + layerId + "\" class=\"layer_row\" />");
var $nameCol = $("<td />");
var $sortCol = $("<td />");
var $editCol = $("<td />");
var $deleteCol = $("<td />");
function getLayerAgentAliasForDataInput(layerId, groupId, agentAlias) var $layerIdInput = $("<input class=\"layer_id\" type=\"hidden\" name=\"layer_ids[]\" value=\"" + layerId + "\">");
{ var $layerNameInput = $("<input class=\"layer_name\" type=\"hidden\" name=\"layers[" + layerId + "][name]\" value=\"" + layerData.name + "\">");
return $('<input class="layer_agent_alias_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_alias]" value="' + agentAlias + '">'); var $layerVisibleInput = $("<input class=\"layer_visible\" type=\"hidden\" name=\"layers[" + layerId + "][visible]\" value=\"" + (layerData.visible ? 1 : 0) + "\">");
} var $layerAgentsFromGroupInput = $("<input class=\"layer_agents_from_group\" type=\"hidden\" name=\"layers[" + layerId + "][agents_from_group]\" value=\"" + layerData.agentsFromGroup + "\">");
var $layerName = $("<span class=\"layer_name\">" + layerData.name + "</span>");
function getLayerRow(layerId, layerData) var $sortUpBtn = $("<a class=\"up_arrow\" href=\"javascript:;\" />");
{ var $sortDownBtn = $("<a class=\"down_arrow\" href=\"javascript:;\" />");
var $row = $('<tr id="layer_row_' + layerId + '" class="layer_row" />');
var $nameCol = $('<td />');
var $sortCol = $('<td />');
var $editCol = $('<td />');
var $deleteCol = $('<td />');
var $layerIdInput = $('<input class="layer_id" type="hidden" name="layer_ids[]" value="' + layerId + '">');
var $layerNameInput = $('<input class="layer_name" type="hidden" name="layers[' + layerId + '][name]" value="' + layerData.name + '">');
var $layerVisibleInput = $('<input class="layer_visible" type="hidden" name="layers[' + layerId + '][visible]" value="' + (layerData.visible ? 1 : 0) + '">');
var $layerAgentsFromGroupInput = $('<input class="layer_agents_from_group" type="hidden" name="layers[' + layerId + '][agents_from_group]" value="' + layerData.agentsFromGroup + '">');
var $layerName = $('<span class="layer_name">' + layerData.name + '</span>');
var $sortUpBtn = $('<a class="up_arrow" href="javascript:;" />');
var $sortDownBtn = $('<a class="down_arrow" href="javascript:;" />');
var $editBtn = $('<a class="edit_layer" href="javascript:;"><?php echo html_print_image('images/config.png', true, ['class' => 'invert_filter']); ?></a>'); var $editBtn = $('<a class="edit_layer" href="javascript:;"><?php echo html_print_image('images/config.png', true, ['class' => 'invert_filter']); ?></a>');
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>'); var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>');
$sortUpBtn.click(moveLayerRowUpOnClick); $sortUpBtn.click(moveLayerRowUpOnClick);
$sortDownBtn.click(moveLayerRowDownOnClick); $sortDownBtn.click(moveLayerRowDownOnClick);
$editBtn.click( $editBtn.click(function () { showLayerEditor(layerId); });
function () {
showLayerEditor(layerId);
}
);
$removeBtn.click(removeLayerRowOnClick); $removeBtn.click(removeLayerRowOnClick);
$nameCol.append($layerName).append($layerIdInput).append($layerNameInput).append($layerVisibleInput).append($layerAgentsFromGroupInput); $nameCol
.append($layerName)
.append($layerIdInput)
.append($layerNameInput)
.append($layerVisibleInput)
.append($layerAgentsFromGroupInput);
if (layerData.agents && layerData.agents.length > 0) { if (layerData.agents && layerData.agents.length > 0) {
layerData.agents.foreach (function (agent) { layerData.agents.forEach(function (agent) {
$nameCol.append(getLayerAgentIdInput(layerId, agent.id)); $nameCol.append(getLayerAgentIdInput(layerId, agent.id));
$nameCol.append(getLayerAgentAliasInput(layerId, agent.id, agent.alias)); $nameCol.append(getLayerAgentAliasInput(layerId, agent.id, agent.alias));
}) { });
}
} }
if (layerData.groups && layerData.groups.length > 0) { if (layerData.groups && layerData.groups.length > 0) {
layerData.groups.foreach (function (group) { layerData.groups.forEach(function (group) {
$nameCol.append(getLayerGroupIdInput(layerId, group.id)); $nameCol.append(getLayerGroupIdInput(layerId, group.id));
$nameCol.append(getLayerGroupNameInput(layerId, group.id, group.name)); $nameCol.append(getLayerGroupNameInput(layerId, group.id, group.name));
$nameCol.append(getLayerAgentIdForDataInput(layerId, group.id, group.agentId)); $nameCol.append(getLayerAgentIdForDataInput(layerId, group.id, group.agentId));
$nameCol.append(getLayerAgentAliasForDataInput(layerId, group.id, group.agentAlias)); $nameCol.append(getLayerAgentAliasForDataInput(layerId, group.id, group.agentAlias));
}) { });
}
} }
$sortCol.append($sortUpBtn).append($sortDownBtn); $sortCol
$editCol.append($editBtn); .append($sortUpBtn)
$deleteCol.append($removeBtn); .append($sortDownBtn);
$editCol
.append($editBtn);
$deleteCol
.append($removeBtn);
$row.append($nameCol).append($sortCol).append($editCol).append($deleteCol); $row
.append($nameCol)
.append($sortCol)
.append($editCol)
.append($deleteCol);
return $row; return $row;
} }
function addLayerRow (layerId, layerData) {
function addLayerRow(layerId, layerData) $("table#list_layers").append(getLayerRow(layerId, layerData));
{
$('table#list_layers').append(getLayerRow(layerId, layerData));
showLayerEditor(layerId); showLayerEditor(layerId);
} }
function hightlightRow (layerId) {
function hightlightRow(layerId) var highlightColor = "#E9F3D2";
{ $("tr.layer_row").css("background", "");
var highlightColor = '#E9F3D2'; $("tr#layer_row_" + layerId).css("background", highlightColor);
$('tr.layer_row').css('background', '');
$('tr#layer_row_' + layerId).css('background', highlightColor);
} }
function existInvalidLayerNames () {
function existInvalidLayerNames()
{
var exist = false; var exist = false;
$('table#list_layers input.layer_name').each( $("table#list_layers input.layer_name").each(function () {
function () {
if ($(this).val().trim().length === 0) { if ($(this).val().trim().length === 0) {
exist = true; exist = true;
return false; return false; // Break jQuery object each
// Break jQuery object each
} }
} });
);
return exist; return exist;
} }
function onFormSubmit (event) {
function onFormSubmit(event)
{
// Validate layer names // Validate layer names
if (existInvalidLayerNames()) { if (existInvalidLayerNames()) {
event.preventDefault(); event.preventDefault();
@ -1291,31 +1206,25 @@ function setLayerEditorData(data)
alert("<?php echo __('Empty layer names are not supported'); ?>"); alert("<?php echo __('Empty layer names are not supported'); ?>");
return false; return false;
} }
// Save connection list // Save connection list
$('#map_connection_list').val(connectionMaps.toString()); $('#map_connection_list').val(connectionMaps.toString());
} }
function onLayerGroupIdChange (event) {
function onLayerGroupIdChange(event)
{
// Clear agent inputs // Clear agent inputs
$('input#hidden-agent_id_for_data').val(0); $("input#hidden-agent_id_for_data").val(0);
$('input#text-agent_alias_for_data').val(''); $("input#text-agent_alias_for_data").val("");
toggleAddGroupBtn(); toggleAddGroupBtn();
} }
// Bind events // Bind events
$('form#form_setup').submit(onFormSubmit); $("form#form_setup").submit(onFormSubmit);
$('input#button-add_agent').click(addAgentClick); $("input#button-add_agent").click(addAgentClick);
$('select#layer_group_id').change(onLayerGroupIdChange); $("select#layer_group_id").change(onLayerGroupIdChange);
$('input#button-add_group').click(addGroupClick); $("input#button-add_group").click(addGroupClick);
// Populate layer list // Populate layer list
var layers = < ? php echo json_encode($layer_list); var layers = <?php echo json_encode($layer_list); ?>;
?>
;
layers.forEach(function (layer) { layers.forEach(function (layer) {
$("table#list_layers").append( $("table#list_layers").append(
getLayerRow(layer["id"], { getLayerRow(layer["id"], {

View File

@ -139,7 +139,7 @@ if ($has_management_acl) {
$hash = md5($config['dbpass'].$idMap.$config['id_user']); $hash = md5($config['dbpass'].$idMap.$config['id_user']);
$buttons['public_link']['text'] = '<a href="'.ui_get_full_url( $buttons['public_link']['text'] = '<a href="'.ui_get_full_url(
'operation/gis_maps/public_console.php?hash='.$hash.'&map_id='.$idMap.'&id_user='.$config['id_user'] 'operation/gis_maps/public_console.php?hash='.$hash.'&map_id='.$idMap.'&id_user='.$config['id_user']
).'" target="_blank">'.html_print_image('images/camera_mc.png', true, ['title' => __('Show link to public Visual Console'), 'class' => 'invert_filter']).'</a>'; ).'" target="_blank">'.html_print_image('images/camera_mc.png', true, ['title' => __('Show link to public GIS map'), 'class' => 'invert_filter']).'</a>';
} }
$times = [ $times = [