You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.2 KiB

  1. 'use strict';
  2. odoo.define('pos_backend_communication.back', function (require) {
  3. var tools = require('pos_backend_communication.tools');
  4. var ActionManager = require('web.ActionManager');
  5. var core = require('web.core')
  6. function is_tied_to_pos() {
  7. return (!!window.opener);
  8. //TODO : add test location.origin
  9. }
  10. function sendMessage(a) {
  11. //send message to pos
  12. if (is_tied_to_pos()) {
  13. //can only work if the backoffice is opened by the POS
  14. window.opener.postMessage(a, location.origin);
  15. }
  16. }
  17. if (is_tied_to_pos()) {
  18. //set up action 'act_tell_pos' called by .py
  19. ActionManager.include({
  20. ir_actions_act_tell_pos: function (action, options) {
  21. sendMessage(action.payload);
  22. }
  23. });
  24. //when page is fully loaded
  25. core.bus.on('web_client_ready', null, function () {
  26. //this class hides menus
  27. $('body').addClass('pos_backend_communication');
  28. });
  29. }
  30. return {
  31. 'sendMessage': sendMessage,
  32. 'callbacks': tools.callbacks,
  33. 'is_tied_to_pos': is_tied_to_pos,
  34. };
  35. });