Ir al contenido
Odoo Menú
  • Inicia sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Inteligencia artificial
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de propiedades
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Comunidad
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

How to add a Javascript function to object through inheritance

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
javascriptinheritancemenuitemwebmodule
1 Responder
13579 Vistas
Avatar
Eric

How can I create a custom javascript file that adds a new property and function to an inherited object, so that my custom menu item will open a new website?

So far, I created a custom web module that inherits from the original web module in Openerp 7.  

I added a new menu item in the User Menu by extending from the UserMenu template in the base.xml file.

Here is my custom xml code that adds a new menu item to the User Menu template.

(custom xml file.  This new menu item does appear in the User Menu )

<templates>

    <t t-extend="UserMenu">

        <t t-jquery="ul" t-operation="append">

           <li><a href="#" data-menu="website">Website Menu Item</a></li>

        </t>

    </t>

</templates>


base.xml (original)

<t t-name="UserMenu">

    <span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow">

        <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>

        <span class="oe_topbar_name"/>

        <ul class="oe_dropdown_menu">

            <li><a href="#" data-menu="settings">Preferences</a></li>

            <li><a href="#" data-menu="account">My OpenERP.com account</a></li>

            <li><a href="#" data-menu="about">About OpenERP</a></li>

            <li><a href="#" data-menu="help">Help</a></li>

            <li><a href="#" data-menu="logout">Log out</a></li>

        </ul>

    </span>

</t>


What I want to do now is inherit the UserMenu object that is defined in the web module's chrome.js file, into my custom javascript file.   Then I want to add a property to the UserMenu object so that a new website is opened when the menu item is clicked

Here is what I have so far:

 

openerp.web_custom = function(instance){

     // Add the on_menu_website property to the UserMenu object

     instance.web.UserMenu.on_menu_website = function() {

         //open the website  ...  its not working though

         window.open('http://www.website.com', '_blank');

     }

}


Here is the original js file code:

instance.web.UserMenu = instance.web.Widget.extend({

    template: "UserMenu",

    init: function(parent) {

       ... some code here ...

    },

    start: function() {

        ... some code here ...

    },

    do_update: function () {

        ... some code here ...

    },

    on_menu_help: function() {

        ... some code here ...

    },

    on_menu_logout: function() {

        ... some code here ...

    },

    on_menu_settings: function() {

        ... some code here ...

    },

    on_menu_account: function() {

        ... some code here ...

    },

    on_menu_about: function() {

        ... some code here ...

    },

});


One thing to note, if I add my new code the the original web module files (base.xml, chrome.js) then it works fine.  But I want to be able to create a custom web module so that I can add new functionality without modifying the original web module.  So my question is, how can I create a custom javascript file that adds a new property and function so that my menu item will open the new website?  Thank you for your help

0
Avatar
Descartar
Avatar
Eric
Autor Mejor respuesta

I changed my custom javascript file to this. Then it worked


openerp.web_custom = function(instance){

     instance.web.UserMenu.include({

          on_menu_website: function () {

               window.open('http://www.website.com', '_blank');

          },

     });

}

2
Avatar
Descartar
SHIV SHANKAR

Saved my day!! Thanks :)

¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
Change onclick kanban project view (JS file)
javascript inheritance
Avatar
Avatar
1
mar 22
8603
How to create custom menu which has default menu items customer , products and customer invoice ?
inheritance menuitem
Avatar
Avatar
Avatar
2
dic 21
10884
Inheriting NumberBuffercof pos to add 1000; 5000;10000 in PaymentScreen Resuelto
javascript pos inheritance
Avatar
Avatar
Avatar
2
jul 24
4140
override method in javascript class class in odoo 16 Resuelto
javascript inheritance odoo16
Avatar
Avatar
Avatar
3
may 24
5250
Trouble Importing JavaScript Between Custom Odoo Modules
javascript inheritance js
Avatar
0
may 24
4856
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Sitio web hecho con

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now