From a7bc92b8b58b4fd28a8862a71dca7ae2235546d3 Mon Sep 17 00:00:00 2001 From: Gilbert Cherrie Date: Wed, 17 Sep 2025 11:52:28 -0400 Subject: [PATCH] Fix the tag mapping form --- app/controllers/ops_controller.rb | 6 ++-- .../settings/label_tag_mapping.rb | 30 +++++++++++++++---- .../settings-label-tag-mapping/index.jsx | 13 ++++++-- app/views/ops/_all_tabs.html.haml | 2 +- ....haml => _settings_map_tags_tab.html.haml} | 0 .../label_tag_mapping/_tag_category.html.haml | 2 +- 6 files changed, 40 insertions(+), 13 deletions(-) rename app/views/ops/{_settings_label_tag_mapping_tab.html.haml => _settings_map_tags_tab.html.haml} (100%) diff --git a/app/controllers/ops_controller.rb b/app/controllers/ops_controller.rb index 1fd4f424475..0008b705389 100644 --- a/app/controllers/ops_controller.rb +++ b/app/controllers/ops_controller.rb @@ -515,7 +515,7 @@ def set_form_locals elsif @sb[:active_tab] == "settings_tags" && @sb[:active_subtab] == "settings_my_company_categories" && @in_a_form action_url = "category_edit" record_id = @category.try(:id) - elsif @sb[:active_tab] == "settings_tags" && @sb[:active_subtab] == "settings_label_tag_mapping" && @in_a_form + elsif @sb[:active_tab] == "settings_tags" && @sb[:active_subtab] == "settings_map_tags" && @in_a_form action_url = "label_tag_mapping_edit" record_id = @lt_map.try(:id) else @@ -606,7 +606,7 @@ def replace_right_cell(options = {}) presenter.scroll_top if @flash_array.present? presenter.update(:breadcrumbs, r[:partial => 'layouts/breadcrumbs']) unless %w[change_tab].include?(action_name) - render :json => presenter.for_render + render :json => presenter.for_render unless options[:skip_render] end def x_active_tree_replace_cell(nodetype, presenter) @@ -659,7 +659,7 @@ def settings_replace_right_cell(nodetype, presenter) end when "ltme" # label tag mapping edit # when editing/adding label tag mapping in settings tree - presenter.update(:settings_label_tag_mapping, r[:partial => "label_tag_mapping_form"]) + presenter.update(:map_tags, r[:partial => "label_tag_mapping_form"]) @right_cell_text = if !@lt_map _("Adding a new Mapping") else diff --git a/app/controllers/ops_controller/settings/label_tag_mapping.rb b/app/controllers/ops_controller/settings/label_tag_mapping.rb index 022e9849677..5b804027e4e 100644 --- a/app/controllers/ops_controller/settings/label_tag_mapping.rb +++ b/app/controllers/ops_controller/settings/label_tag_mapping.rb @@ -63,12 +63,20 @@ def label_tag_mapping_edit end get_node_info(x_node) @lt_map = @edit = session[:edit] = nil # clean out the saved info - replace_right_cell(:nodetype => @nodetype) + render :update do |page| + page << javascript_prologue + page.replace("flash_msg_div", :partial => "layouts/flash_msg") + page << "miqScrollTop();" if @flash_array.present? + page.replace_html('map_tags', :partial => 'settings_map_tags_tab') + end when "save", "add" id = params[:id] || "new" return unless load_edit("label_tag_mapping_edit__#{id}", "replace_cell__explorer") @lt_map = @edit[:lt_map] if @edit && @edit[:lt_map] + if @edit[:new][:entity].blank? + add_flash(_("Entity is required"), :error) + end if @edit[:new][:label_name].blank? add_flash(_("Label is required"), :error) end @@ -109,7 +117,7 @@ def entity_ui_name_or_all(entity) ui_lookup(:model => model) end else - _("") + _("") end end @@ -277,7 +285,12 @@ def label_tag_mapping_add(entity, label_name, cat_description) add_flash(_("Provider Tag Mapping \"%{name}\" was added") % {:name => label_name}) get_node_info(x_node) @lt_map = @edit = session[:edit] = nil # clean out the saved info - replace_right_cell(:nodetype => "root") + render :update do |page| + page << javascript_prologue + page.replace("flash_msg_div", :partial => "layouts/flash_msg") + page << "miqScrollTop();" if @flash_array.present? + page.replace_html('map_tags', :partial => 'settings_map_tags_tab') + end end end @@ -307,7 +320,12 @@ def label_tag_mapping_update(id, cat_description) add_flash(_("Provider Tag Mapping \"%{name}\" was saved") % {:name => mapping.label_name}) get_node_info(x_node) @lt_map = @edit = session[:edit] = nil # clean out the saved info - replace_right_cell(:nodetype => "root") + render :update do |page| + page << javascript_prologue + page.replace("flash_msg_div", :partial => "layouts/flash_msg") + page << "miqScrollTop();" if @flash_array.present? + page.replace_html('map_tags', :partial => 'settings_map_tags_tab') + end end end @@ -336,7 +354,7 @@ def label_tag_mapping_delete page << javascript_prologue page.replace("flash_msg_div", :partial => "layouts/flash_msg") page << "miqScrollTop();" if @flash_array.present? - page.replace_html('settings_label_tag_mapping', :partial => 'settings_label_tag_mapping_tab') + page.replace_html('map_tags', :partial => 'settings_map_tags_tab') end else mapping.errors.each { |error| add_flash("#{error.attribute.to_s.capitalize} #{error.message}", :error) } @@ -360,7 +378,7 @@ def cat_description_without_prefix(cat_description) def tag_category_parameters_for_haml {:lt_map => @lt_map, :categories => categories_for_select, - :category => @edit[:new][:category] || categories_for_select.first, + :category => @edit[:new][:category], :all_entities => @edit[:new][:entity] == ALL_ENTITIES} end end diff --git a/app/javascript/components/settings-label-tag-mapping/index.jsx b/app/javascript/components/settings-label-tag-mapping/index.jsx index 92b06e47385..df7ff5e25d8 100644 --- a/app/javascript/components/settings-label-tag-mapping/index.jsx +++ b/app/javascript/components/settings-label-tag-mapping/index.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import { Button } from 'carbon-components-react'; import MiqDataTable from '../miq-data-table'; @@ -10,7 +10,16 @@ const SettingsLabelTagMapping = ({ initialData }) => { const headerKeys = initialData.headers.map((item) => item.key); const miqRows = rowData(headerKeys, initialData.rows, false); - const onSelect = (selectedRowId) => window.miqJqueryRequest(`/ops/label_tag_mapping_edit/${selectedRowId}`) + useEffect(() => { + if (document.getElementById('paging_div')) { + document.getElementById('paging_div').style.display = 'none'; + } + if (document.getElementById('form_buttons_div')) { + document.getElementById('form_buttons_div').style.display = 'none'; + } + }, []); + + const onSelect = (selectedRowId) => window.miqJqueryRequest(`/ops/label_tag_mapping_edit/${selectedRowId}`); /** Function to render a warning message */ const renderWarning = () => ( diff --git a/app/views/ops/_all_tabs.html.haml b/app/views/ops/_all_tabs.html.haml index 754a8f69300..8f757c241dd 100644 --- a/app/views/ops/_all_tabs.html.haml +++ b/app/views/ops/_all_tabs.html.haml @@ -84,7 +84,7 @@ = settings_tags_content(:import_variables) do = render :partial => "settings_import_tab" = settings_tags_content(:map_tags) do - = render :partial => "settings_label_tag_mapping_tab" + = render :partial => "settings_map_tags_tab" = settings_tab_content(:replication) do = render :partial => "settings_replication_tab" = settings_tab_content(:help_menu) do diff --git a/app/views/ops/_settings_label_tag_mapping_tab.html.haml b/app/views/ops/_settings_map_tags_tab.html.haml similarity index 100% rename from app/views/ops/_settings_label_tag_mapping_tab.html.haml rename to app/views/ops/_settings_map_tags_tab.html.haml diff --git a/app/views/ops/label_tag_mapping/_tag_category.html.haml b/app/views/ops/label_tag_mapping/_tag_category.html.haml index 97db5ee1e82..167827c88f6 100644 --- a/app/views/ops/label_tag_mapping/_tag_category.html.haml +++ b/app/views/ops/label_tag_mapping/_tag_category.html.haml @@ -6,7 +6,7 @@ %label.col-md-2.control-label = _("Tag Category") .col-md-8 - = select_tag('category', options_for_select(categories, category), "data-live-search" => "true", :class => "selectpicker") + = select_tag('category', options_for_select([[_(""), nil]] + categories, category), "data-live-search" => "true", :class => "selectpicker") :javascript miqInitSelectPicker(); miqSelectPickerEvent('category', "#{url}")