Merge branch 'ent-2335-gis-group-items' into 'develop'

Bug fixes on the GIS map layer configuration

See merge request artica/pandorafms!1697
This commit is contained in:
vgilc 2018-08-20 12:42:48 +02:00
commit 7b9fe9573e
2 changed files with 40 additions and 18 deletions

View File

@ -484,6 +484,7 @@ $params['input_name'] = 'agent_alias_for_data';
$params['value'] = ''; $params['value'] = '';
$params['javascript_function_action_after_select'] = 'toggleAddGroupBtn'; $params['javascript_function_action_after_select'] = 'toggleAddGroupBtn';
$params['selectbox_group'] = 'layer_group_id'; // Filter by group $params['selectbox_group'] = 'layer_group_id'; // Filter by group
$params['disabled_javascript_on_blur_function'] = true;
$agent_for_group_input = ui_print_agent_autocomplete_input($params); $agent_for_group_input = ui_print_agent_autocomplete_input($params);
$add_group_btn = html_print_button(__('Add'), 'add_group', true, '', 'class="sub add"', true); $add_group_btn = html_print_button(__('Add'), 'add_group', true, '', 'class="sub add"', true);
@ -588,11 +589,13 @@ function addAgentClick (event) {
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 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 = (
!Number.isNaN(groupId) !existGroupId
&& !Number.isNaN(groupId)
&& groupId > 0 && groupId > 0
&& !Number.isNaN(agentId) && !Number.isNaN(agentId)
&& agentId > 0 && agentId > 0
@ -607,7 +610,7 @@ function addGroupClick (event) {
var $layerFormAgentIdInput = $("input#hidden-agent_id_for_data"); var $layerFormAgentIdInput = $("input#hidden-agent_id_for_data");
var $layerFormAgentAliasInput = $("input#text-agent_alias_for_data"); var $layerFormAgentAliasInput = $("input#text-agent_alias_for_data");
var layerId = Number.parseInt($("input#hidden-current_edit_layer_id").val()); 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());
@ -645,9 +648,21 @@ function moveLayerRowDownOnClick (event) {
} }
function removeLayerRowOnClick (event) { function removeLayerRowOnClick (event) {
var $layerRow = $(event.currentTarget).parent().parent();
var layerRowId = $layerRow.find("input.layer_id").val();
var layerEditorId = $("input#hidden-current_edit_layer_id").val();
if (layerRowId == layerEditorId) hideLayerEditor();
// Remove row
$(event.currentTarget).parent().parent().remove(); $(event.currentTarget).parent().parent().remove();
} }
function hideLayerEditor () {
// Clean editor
cleanLayerEditor();
// Hide editor
$("div#form_layer").hide();
}
function showLayerEditor (layerId) { function showLayerEditor (layerId) {
var $layerSaveBtn = $("input#button-save_layer"); var $layerSaveBtn = $("input#button-save_layer");
@ -838,11 +853,12 @@ function getAgentRow (layerId, agentId, agentAlias) {
$removeBtn.click(function (event) { $removeBtn.click(function (event) {
var $layerRow = $("tr#layer_row_" + layerId); var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow.length === 0) return; if ($layerRow.length > 0) {
$layerRow.find("input.layer_agent_id[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();
$layerRow.find("input.layer_agent_id[data-agent-id='" + agentId + "']").remove();
$layerRow.find("input.layer_agent_alias[data-agent-id='" + agentId + "']").remove();
$agentListItemRow.remove(); $agentListItemRow.remove();
}); });
@ -893,13 +909,14 @@ function getGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
$removeBtn.click(function (event) { $removeBtn.click(function (event) {
var $layerRow = $("tr#layer_row_" + layerId); var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow.length === 0) return; if ($layerRow.length > 0) {
$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_agent_id_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();
$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_agent_id_for_data[data-group-id='" + groupId + "']").remove();
$layerRow.find("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").remove();
$groupListItemRow.remove(); $groupListItemRow.remove();
}); });
@ -1050,7 +1067,7 @@ function onFormSubmit (event) {
function onLayerGroupIdChange (event) { function onLayerGroupIdChange (event) {
// Clear agent inputs // Clear agent inputs
$("input#hidden-agent_id_for_data").val(""); $("input#hidden-agent_id_for_data").val(0);
$("input#text-agent_alias_for_data").val(""); $("input#text-agent_alias_for_data").val("");
toggleAddGroupBtn(); toggleAddGroupBtn();
} }

View File

@ -3316,6 +3316,13 @@ function ui_print_agent_autocomplete_input($parameters) {
minLength: 2, minLength: 2,
source: function( request, response ) { source: function( request, response ) {
var term = request.term; //Word to search var term = request.term; //Word to search
' . $javascript_change_ajax_params_text . '
var groupId = data_params.id_group();
// Index cache by group Id
if (cache_' . $input_name . '[groupId] == null) {
cache_' . $input_name . '[groupId] = {};
}
//Set loading //Set loading
$("#' . $input_id . '") $("#' . $input_id . '")
@ -3329,8 +3336,8 @@ function ui_print_agent_autocomplete_input($parameters) {
//==== CACHE CODE ================================== //==== CACHE CODE ==================================
//Check the cache //Check the cache
var found = false; var found = false;
if (term in cache_' . $input_name . ') { if (term in cache_' . $input_name . '[groupId]) {
response(cache_' . $input_name . '[term]); response(cache_' . $input_name . '[groupId][term]);
//Set icon //Set icon
$("#' . $input_id . '") $("#' . $input_id . '")
@ -3345,11 +3352,11 @@ function ui_print_agent_autocomplete_input($parameters) {
for (i = 1; i < term.length; i++) { for (i = 1; i < term.length; i++) {
var term_match = term.substr(0, term.length - i); var term_match = term.substr(0, term.length - i);
$.each(cache_' . $input_name . ', function (oldterm, olddata) { $.each(cache_' . $input_name . '[groupId], function (oldterm, olddata) {
var pattern = new RegExp("^" + term_match + ".*","gi"); var pattern = new RegExp("^" + term_match + ".*","gi");
if (oldterm.match(pattern)) { if (oldterm.match(pattern)) {
response(cache_' . $input_name . '[oldterm]); response(cache_' . $input_name . '[groupId][oldterm]);
found = true; found = true;
@ -3376,15 +3383,13 @@ function ui_print_agent_autocomplete_input($parameters) {
return; return;
} }
' . $javascript_change_ajax_params_text . '
jQuery.ajax ({ jQuery.ajax ({
data: data_params, data: data_params,
type: "POST", type: "POST",
url: action="' . $javascript_ajax_page . '", url: action="' . $javascript_ajax_page . '",
dataType: "json", dataType: "json",
success: function (data) { success: function (data) {
cache_' . $input_name . '[term] = data; //Save the cache cache_' . $input_name . '[groupId][term] = data; //Save the cache
response(data); response(data);