Proyecto

General

Perfil

Acciones

Errores #5491

cerrada

[Menu] No se muestra correctamente la opción de menú seleccionada para algunas opciones

Añadido por Oscar Abad hace 6 meses. Actualizado hace 6 meses.

Estado:
Resuelta
Prioridad:
Urgente
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2024-07-05
Fecha fin:
% Realizado:

100%

Tiempo estimado:
Versión:

Descripción

Especificación

En la versión de staging-develop no se está mostrando para algunas opciones la opción de menú actualmente seleccionada.
Viene de la siguiente funcionalidad: https://dev.intranet.oei.int/issues/1934

Análisis

La ruta de la opción de menú que se muestra en la interfaz está implementada en este código:

  def ruta_menu
    objs_seccion = menu_seccion

    if params[:menu]
      obj_menu = objs_seccion.find {|c| c[:url][:menu] == params[:menu].to_s}
      texto = obj_menu[:rotulo]
      texto += " >> " 
      accion = controladores_menu.find {|c| ( c[:url][:controller] == params[:controller] ) and
                                            ( c[:url][:action] ?  c[:url][:action] == params[:action] : true ) and
                                            ( c[:url][:listado] ?  c[:url][:listado] == params[:listado] : true )}
      texto += accion ? accion[:rotulo] : _('Otras opciones')
    else
      obj_menu = objs_seccion.find do |c|
        c[:url][:controller] == params[:controller] and (c[:url][:action] ?  c[:url][:action] == params[:action] : true )
      end

    end

    obj_menu = objs_seccion.find do |c|
      c[:url][:controller] == params[:controller] and (c[:url][:action] ?  c[:url][:action] == params[:action] : true )
    end
    texto = obj_menu[:rotulo] if obj_menu

    # Ponemos esto por, por ejemplo, el menu de entrada de proyecto (Infocontroller) no esta habilitado pero si que lo estan otras opciones del menú
    return texto ?  texto : _('Otras opciones')
  end

La función está mal construida y en realidad debería quedar así:

  def ruta_menu
    objs_seccion = menu_seccion

    if params[:menu]
      obj_menu = objs_seccion.find {|c| c[:url][:menu] == params[:menu].to_s}
      texto = obj_menu[:rotulo]
      texto += " >> " 
      accion = controladores_menu.find {|c| ( c[:url][:controller] == params[:controller] ) and
                                            ( c[:url][:action] ?  c[:url][:action] == params[:action] : true ) and
                                            ( c[:url][:listado] ?  c[:url][:listado] == params[:listado] : true )}
      texto += accion ? accion[:rotulo] : _('Otras opciones')
    else
      obj_menu = objs_seccion.find do |c|
        c[:url][:controller] == params[:controller] and (c[:url][:action] ?  c[:url][:action] == params[:action] : true )
      end
      texto = obj_menu[:rotulo] if obj_menu
    end

    # Ponemos esto por, por ejemplo, el menu de entrada de proyecto (Infocontroller) no esta habilitado pero si que lo estan otras opciones del menú
    return texto ?  texto : _('Otras opciones')
  end

Implementación

https://git.semillasl.com/gong/gor/-/commit/363c6533fd10837e1423dd572fb649f2d72a22ad

Acciones #1

Actualizado por Oscar Abad hace 6 meses

Acciones #2

Actualizado por Oscar Abad hace 6 meses

  • Se actualizó Descripción (diferencias)
  • Categoría establecido a Desarrollo
  • Estado cambiado de Nueva a En Curso
  • Versión prevista establecido a 4.18
Acciones #3

Actualizado por Santiago Ramos hace 6 meses

  • Prioridad cambiado de Normal a Urgente
Acciones #4

Actualizado por Santiago Ramos hace 6 meses

  • Estado cambiado de En Curso a Resuelta
  • % Realizado cambiado de 0 a 100
Acciones

Exportar a: Atom PDF