From 22a3c08af735f1921a45a02a4e12debee151411b Mon Sep 17 00:00:00 2001 From: Valerie Pirenne Date: Fri, 3 Apr 2015 17:51:20 +0530 Subject: [PATCH] [IMP] web_tip: tip display using breathing point --- addons/crm/crm_tip_data.xml | 11 +- addons/event/event_tip_data.xml | 4 +- addons/hr/hr_tip_data.xml | 8 +- addons/mail/static/src/css/mail.css | 1 - addons/mail/static/src/js/mail.js | 4 +- addons/mail_tip/static/src/js/mail_tip.js | 7 +- addons/project/project_tip_data.xml | 14 +- addons/purchase/purchase_tip_data.xml | 12 +- addons/web_tip/static/src/css/tip.css | 54 +++ .../web_tip/static/src/img/tip_throbber.png | Bin 0 -> 15446 bytes addons/web_tip/static/src/js/tip.js | 413 +++++++++--------- .../website_quote/data/quotation_tip_data.xml | 6 +- .../views/website_quotation_backend.xml | 2 +- 13 files changed, 305 insertions(+), 231 deletions(-) create mode 100644 addons/web_tip/static/src/img/tip_throbber.png diff --git a/addons/crm/crm_tip_data.xml b/addons/crm/crm_tip_data.xml index a01dce9acdb..006a77a4195 100644 --- a/addons/crm/crm_tip_data.xml +++ b/addons/crm/crm_tip_data.xml @@ -8,8 +8,8 @@ res.partner form - .oe_form_buttons_view:visible:not(.modal-dialog .oe_form_buttons_view:visible), div.oe_right.oe_button_box > button - div.oe_right.oe_button_box:visible > button.o_res_partner_tip_opp + .o_form_buttons_view:visible:not(.modal-dialog .o_form_buttons_view:visible), div.oe_button_box > button + div.oe_button_box:visible > button.o_res_partner_tip_opp bottom @@ -17,9 +17,8 @@ Use the breadcrumb to go back to preceeding screens. This is super useful to navigate between documents. crm.lead - opportunity form - .oe_form_buttons_view:visible,ol.breadcrumb a + .o_form_buttons_view:visible,ol.breadcrumb a ol.breadcrumb:visible a:last bottom @@ -29,8 +28,8 @@ drag and dropping the opportunity into another column.]]> crm.lead kanban - .oe_kanban_record:visible - .oe_kanban_record:visible + .o_kanban_record:visible + .o_kanban_record:visible mousedown auto top diff --git a/addons/event/event_tip_data.xml b/addons/event/event_tip_data.xml index 9d34113523b..02b32f128f1 100644 --- a/addons/event/event_tip_data.xml +++ b/addons/event/event_tip_data.xml @@ -6,8 +6,8 @@ event.event form - .oe_form_buttons_view:visible,div.oe_right.oe_button_box > button - div.oe_right.oe_button_box:visible > button.oe_event_attendee_button + .o_form_buttons_view:visible,div.oe_button_box > button + div.oe_button_box:visible > button.oe_event_attendee_button bottom diff --git a/addons/hr/hr_tip_data.xml b/addons/hr/hr_tip_data.xml index 563d8dcbf06..31c65763fda 100644 --- a/addons/hr/hr_tip_data.xml +++ b/addons/hr/hr_tip_data.xml @@ -7,8 +7,8 @@ hr.job form - .oe_form_buttons_view:visible,div.oe_right > .oe_button_box > button - div.oe_right > .oe_button_box:visible > button:nth-child(1) + .o_form_buttons_view:visible,div.oe_button_box > button + div.oe_button_box:visible > button:nth-child(1) bottom @@ -17,8 +17,8 @@ Use the breadcrumb to easily go back to preceeding screens. hr.applicant form - ol.breadcrumb:visible - ol.breadcrumb a:nth-child(3) + .o_form_buttons_view:visible, ol.breadcrumb:visible + ol.breadcrumb a:nth-child(1) bottom diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index 2c656641f76..2d14d8f98b0 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -40,7 +40,6 @@ .o_web_client .o_timeline_record_thread { display: block; - z-index: 10; } .o_web_client .o_timeline_record_thread .o_timeline { diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 63f9e4f05a5..83421195c5a 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -110,6 +110,7 @@ var TimelineView = View.extend ({ this.model = dataset.model; this.domain = dataset.domain || []; this.context = dataset.context || {}; + this.parent_view = parent.parent ? parent.parent : this; var opt = _.clone(this.context.options); this.options = options || {}; @@ -322,6 +323,7 @@ var MailThread = Attachment.extend ({ this.domain = dataset.domain || []; this.context = _.clone(dataset.context) || {}; this.options = _.clone(options); + this.parent_view = parent.parent_view; this.is_ready = $.Deferred(); this.root = parent instanceof TimelineView ? parent : false; @@ -855,7 +857,7 @@ var MailThread = Attachment.extend ({ this.followers_loaded = $.Deferred(); - if ((! this.nb_followers || !this.follower_ids) && (this.model && this.res_id)) { + if ((! this.nb_followers || !this.follower_ids) && (this.model && this.res_id) && this.options.view_inbox) { this.nb_followers = 0; this.follower_ids = []; diff --git a/addons/mail_tip/static/src/js/mail_tip.js b/addons/mail_tip/static/src/js/mail_tip.js index 1e1eda4ac65..423408a0551 100644 --- a/addons/mail_tip/static/src/js/mail_tip.js +++ b/addons/mail_tip/static/src/js/mail_tip.js @@ -6,11 +6,12 @@ var core = require('web.core'); mail.MailThread.include({ message_fetch: function() { + var self = this; return this._super.apply(this, arguments).done(function() { - core.bus.trigger('chatter_messages_fetched'); + // event has to be triggered on form view + self.parent_view.trigger('chatter_messages_displayed'); }); } -}); - }); +}); diff --git a/addons/project/project_tip_data.xml b/addons/project/project_tip_data.xml index 683c1e44e85..af16c44723e 100644 --- a/addons/project/project_tip_data.xml +++ b/addons/project/project_tip_data.xml @@ -6,8 +6,8 @@ project.project form - .oe_form_buttons_view:visible,div.oe_right.oe_button_box > button - div.oe_right.oe_button_box:visible > button:nth-child(1) + .o_form_buttons_view:visible,div.oe_button_box > button + div.oe_button_box:visible > button:nth-child(1) bottom @@ -16,8 +16,8 @@ project.task kanban - .oe_kanban_record:visible - .oe_kanban_record:visible + .o_kanban_record:visible + .o_kanban_record:visible mousedown top @@ -27,8 +27,8 @@ project.task form - div.oe_mail div.oe_thread:visible > div.oe_msg_notification:visible, .oe_form_buttons_view:visible - div.oe_mail > :nth-child(1):visible + .o_form_buttons_view:visible,div.o_timeline_chatter div.oe_thread:visible + div.o_timeline_chatter .o_timeline_msg_composer_compact .o_timeline_compact top @@ -37,7 +37,7 @@ project.task form - .oe_form_buttons_view:visible,ol.breadcrumb a,div.oe_msg_notification:visible + .o_form_buttons_view:visible,ol.breadcrumb a ol.breadcrumb:visible a:last bottom diff --git a/addons/purchase/purchase_tip_data.xml b/addons/purchase/purchase_tip_data.xml index 10e934b5d3b..b6d823d7beb 100644 --- a/addons/purchase/purchase_tip_data.xml +++ b/addons/purchase/purchase_tip_data.xml @@ -6,8 +6,8 @@ stock.move list - .oe_list:visible - td.oe_list_field_cell.oe_list_field_object.oe-button:visible > button:nth-child(1) + .o_list_view:visible + .o_list_view:visible td > button left @@ -16,8 +16,8 @@ stock.move list - .oe_list:visible - td.oe_list_field_cell.oe_list_field_action.oe-button:visible > button:nth-child(1) + .o_list_view:visible + .o_list_view:visible td:last-of-type > button left @@ -26,8 +26,8 @@ purchase.order form - .oe_form_buttons_view:visible,div.oe_right.oe_button_box > button - div.oe_right.oe_button_box:visible > button:nth-child(1) + .o_form_buttons_view:visible,div.oe_button_box > button:nth-child(1):visible + div.oe_button_box:visible > button:nth-child(1) bottom diff --git a/addons/web_tip/static/src/css/tip.css b/addons/web_tip/static/src/css/tip.css index 57b874c1fa6..b4c7ea53159 100644 --- a/addons/web_tip/static/src/css/tip.css +++ b/addons/web_tip/static/src/css/tip.css @@ -55,3 +55,57 @@ z-index: 1011 !important; position: relative; } + +.oe_breathing { + background:transparent url(/web_tip/static/src/img/tip_throbber.png) no-repeat center center; + cursor : pointer; + height: 58px; + width: 58px; + position: absolute; + z-index: 1; + -webkit-animation: bounce .5s steps(12) alternate infinite; + -moz-animation: bounce .5s steps(12) alternate infinite; + -o-animation: bounce .5s steps(12) alternate infinite; + animation: bounce .5s steps(12) alternate infinite; +} + +@-webkit-keyframes bounce { + from{ background-position: 0 0} + to{ background-position: -696px 0} +} +@-moz-keyframes bounce { + from{ background-position: 0 0} + to{ background-position: -696px 0} +} +@-o-keyframes explode { + from{ background-position: 0 0} + to{ background-position: -696px 0} +} +@keyframes bounce { + from{ background-position: 0 0} + to{ background-position: -696px 0} +} + +.oe_explode { + opacity: 0; + -webkit-animation: explode .5s; + -moz-animation: explode .5s; + animation: explode .5s; +} + +@-webkit-keyframes explode { + from{ opacity: 1; transform: scale(1, 1); } + to{ opacity: 0; transform: scale(2, 2); } +} +@-moz-keyframes explode { + from{ opacity: 1; transform: scale(1, 1);} + to{ opacity: 0; transform: scale(2, 2);} +} +@-o-keyframes explode { + from{ opacity: 1; transform: scale(1, 1);} + to{ opacity: 0; transform: scale(2, 2);} +} +@keyframes explode { + from{ opacity: 1; transform: scale(1, 1);} + to{ opacity: 0; transform: scale(2, 2);} +} diff --git a/addons/web_tip/static/src/img/tip_throbber.png b/addons/web_tip/static/src/img/tip_throbber.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe8c67a10ca8a3e76e22ed9a81b456c849bf3ae GIT binary patch literal 15446 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 VWmLb`7hm|Bgovzgm7u=={{n7*HB 0) { - core.bus.on('chatter_messages_fetched', this, _.once(function () { - self.eval_tip(null, model, mode, type); - })); + this.view.on('chatter_messages_displayed', this, function() { + self.eval_tips(action_id, model, 'form', type); + }); } else { - self.eval_tip(null, model, mode, type); + this.eval_tips(action_id, model, 'form', type); } + + this.view.on('to_edit_mode', this, function() { + self.remove_tips(); + }); + this.view.on('to_view_mode', this, function() { + self.eval_tips(action_id, model, 'form', type); + }); }, - // stub - on_switch: function (viewManager, mode) { - var self = this; - var action = viewManager.action; - var action_id = action.id; - var model = action.res_model; - }, - - eval_tip: function(action_id, model, mode, type) { + eval_tips: function(action_id, model, mode, type) { var self = this; var filter = {}; var valid_tips = []; var tips = []; + if (action_id) { valid_tips = _.filter(self.tips, function (tip) { return tip.action_id[0] === action_id; @@ -135,7 +104,9 @@ var Tip = Class.extend({ filter.model = model; filter.mode = mode; + filter.is_consumed = false; tips = _.where(self.tips, filter); + if (type) { tips = _.filter(tips, function(tip) { if (!tip.type) { @@ -148,174 +119,222 @@ var Tip = Class.extend({ valid_tips = _.uniq(valid_tips.concat(tips)); _.each(valid_tips, function(tip) { if (!tip.is_consumed) { - self.add_tip(tip); + var t = new Tip(tip); + t.do_tip(); } }); }, + remove_tips: function() { + $('.oe_breathing').remove(); + }, +}); - add_tip: function(tip) { - var self = this; - self.tip_mutex.exec(function() { - if (!tip.is_consumed) { - return $.when(self.do_tip(tip)); - } - }); +var Tip = Class.extend({ + init: function(tip) { + this.tip = tip; + + this.highlight_selector = tip.highlight_selector; + this.end_selector = tip.end_selector ? tip.end_selector : tip.highlight_selector; + this.triggers = tip.trigger_selector ? tip.trigger_selector.split(',') : []; }, - do_tip: function (tip) { + do_tip: function() { var self = this; - var def = $.Deferred(); - var Tips = new Model('web.tip'); - var highlight_selector = tip.highlight_selector; - var triggers = tip.trigger_selector ? tip.trigger_selector.split(',') : []; - var trigger_tip = true; - if(!$(highlight_selector).length > 0 || !$(highlight_selector).is(":visible")) { - return def.reject(); + if(!$(this.highlight_selector).length > 0 || !$(this.highlight_selector).is(":visible")) { + return false; } - for (var i = 0; i < triggers.length; i++) { - if(!$(triggers[i]).length > 0) { - trigger_tip = false; + + for (var i = 0; i < this.triggers.length; i++) { + if(!$(this.triggers[i]).length > 0) { + return false; } } - if (trigger_tip) { - self.$element = $(highlight_selector).first(); - if (self.$element.height() === 0 || self.$element.width() === 0) { - var $images = self.$element.find('img'); - if ($images.length > 0) { - $images.first().load(function() { - self.add_tip(tip); - }); - } - return def.reject(); + this.$element = $(this.highlight_selector).first(); + if (utils.float_is_zero(this.$element.height(), 1) || utils.float_is_zero(this.$element.width(), 1)) { + var $images = this.$element.find('img'); + if ($images.length > 0) { + $images.first().load(function() { + var t = new Tip(self.tip); + t.do_tip(); + bus.trigger('image_loaded'); + }); } + return false; + } - self.scroll_to_tip(); - self.$helper = $("

", { class: 'oe_tip_helper' }); - self.$element.after(self.$helper); - self._set_helper_position(); - - self.$overlay = $("
", { class: 'oe_tip_overlay' }); - $('body').append(self.$overlay); - self.$element.addClass('oe_tip_show_element'); - - // fix the stacking context problem - _.each(self.$element.parentsUntil('body'), function(el) { - var zIndex = $(el).css('z-index'); - var opacity = parseFloat($(el).css('opacity')); - - if (/[0-9]+/.test(zIndex) || opacity < 1) { - $(el).addClass('oe_tip_fix_parent'); - } - }); - - self.$element.popover({ - placement: tip.placement, - title: tip.title, - content: tip.description, - html: true, - container: 'body', - }).popover("show"); - - var $cross = $(''); - $cross.addClass('oe_tip_close'); - - if (tip.title) { - $('.popover-title').prepend($cross); - } else { - $('.popover-content').prepend($cross); - } - - // consume tip - tip.end_selector = tip.end_selector ? tip.end_selector : tip.highlight_selector; - $(tip.end_selector).one(tip.end_event, function($ev) { - self.end_tip(tip); - def.resolve(); - }); - - // dismiss tip - $cross.on('click', function($ev) { - self.end_tip(tip); - def.resolve(); - }); - self.$overlay.on('click', function($ev) { - self.end_tip(tip); - def.resolve(); - }); - $(document).on('keyup.web_tip', function($ev) { - if ($ev.which === 27) { // esc - self.end_tip(tip); - def.resolve(); - } - }); - - // resize - bus.on('resize', this, function() { - self.reposition(); - }); - - bus.on('please_reposition_tip', this, function () { - self.reposition(); - }); + if (!this.$element.next().hasClass('oe_breathing')) { + this.$breathing = $("
", { class: 'oe_breathing' }); + this.$element.after(this.$breathing); } else { - def.reject(); + this.$breathing = this.$element.next(); } - return def; + this._set_breathing_position(); + + this.$breathing.on('click', function(e) { + e.stopImmediatePropagation(); + self.$breathing.addClass('oe_explode'); + self.trigger_tip(); + }); + + // resize + bus.on('resize', this, function() { + self._set_breathing_position(); + }); + + bus.on('image_loaded', this, function() { + self._set_breathing_position(); + }); + + bus.on('please_reposition_tip', this, function() { + self._set_breathing_position(); + }); + + return true; + }, + + trigger_tip: function() { + var self = this; + + this.$helper = $("
", { class: 'oe_tip_helper' }); + this.$overlay = $("
", { class: 'oe_tip_overlay' }); + + this.$element.after(this.$helper); + this._set_helper_position(); + this.scroll_to_tip(); + + $('body').append(this.$overlay); + this.$element.addClass('oe_tip_show_element'); + + // fix the stacking context problem + _.each(this.$element.parentsUntil('body'), function(el) { + var zIndex = $(el).css('z-index'); + var opacity = parseFloat($(el).css('opacity')); + + if (/[0-9]+/.test(zIndex) || opacity < 1) { + $(el).addClass('oe_tip_fix_parent'); + } + }); + + this.$element.popover({ + placement: self.tip.placement, + title: self.tip.title, + content: self.tip.description, + html: true, + container: 'body', + animation: false, + }).popover('show'); + + this.$cross = $(''); + + if (this.tip.title) { + $('.popover-title').prepend(this.$cross); + } else { + $('.popover-content').prepend(this.$cross); + } + + // consume tip + $(this.end_selector).one(this.tip.end_event, function($ev) { + self.end_tip(); + }); + + // dismiss tip + this.$cross.on('click', function($ev) { + self.end_tip(); + }); + this.$overlay.on('click', function($ev) { + self.end_tip(); + }); + $(document).on('keyup.web_tip', function($ev) { + if ($ev.which === 27) { // esc + self.end_tip(); + } + }); + + // resize + bus.on('resize', this, function() { + self._set_popover_position(); + }); }, scroll_to_tip: function(){ - var self = this; - var scroll = _.find(self.$element.parentsUntil('body'), function(el) { + var scroll = _.find(this.$element.parentsUntil('body'), function(el) { var overflow = $(el).css('overflow-y'); return (overflow === 'auto' || overflow === 'scroll'); }); if (scroll) { - $(scroll).scrollTo(self.$element); + $(scroll).scrollTo(this.$element); } }, - end_tip: function(tip) { - var self = this; + end_tip: function() { var Tips = new Model('web.tip'); - self.$element.popover('destroy'); - self.$overlay.remove(); - self.$helper.remove(); - self.$element.removeClass('oe_tip_show_element'); + + this.$element.popover('destroy'); + this.$element.removeClass('oe_tip_show_element'); + this.$breathing.remove(); + this.$helper.remove(); + this.$overlay.remove(); + this.$cross.remove(); + _.each($('.oe_tip_fix_parent'), function(el) { $(el).removeClass('oe_tip_fix_parent'); }); $(document).off('keyup.web_tip'); - Tips.call('consume', [tip.id], {}); - tip.is_consumed = true; + + Tips.call('consume', [this.tip.id], {}); + this.tip.is_consumed = true; }, - reposition: function() { - var self = this; - if (self.tip_mutex.def.state() === 'pending') { - self.scroll_to_tip(); - self._set_helper_position(); - self.$element.popover('show'); - } + _set_breathing_position: function() { + this.$breathing.position({ my: "center", at: "center", of: this.$element }); }, - _set_helper_position : function() { + _set_helper_position: function() { var offset = this.$element.offset(); var _top = offset.top - 5; var _left = offset.left - 5; var _width = this.$element.outerWidth() + 10; var _height = this.$element.outerHeight() + 10; - this.$helper.offset({top: _top , left: _left}); + + this.$helper.offset({top: _top, left: _left}); this.$helper.width(_width); this.$helper.height(_height); - } + }, + + _set_popover_position: function() { + if (!this.tip.is_consumed) { + this.$element.popover('show'); + this._set_helper_position(); + this.scroll_to_tip(); + + if (this.tip.title) { + $('.popover-title').prepend(this.$cross); + } else { + $('.popover-content').prepend(this.$cross); + } + } + }, }); WebClient.include({ show_application: function() { this._super(); - this.tip_handler = new Tip(); + this.tips_handler = new Tips(); + } +}); + +formView.include({ + to_edit_mode: function() { + this._super(); + this.trigger('to_edit_mode'); + }, + + to_view_mode: function() { + this._super(); + this.trigger('to_view_mode'); } }); diff --git a/addons/website_quote/data/quotation_tip_data.xml b/addons/website_quote/data/quotation_tip_data.xml index 7ed07eaae87..e398fdff149 100644 --- a/addons/website_quote/data/quotation_tip_data.xml +++ b/addons/website_quote/data/quotation_tip_data.xml @@ -3,11 +3,11 @@ - + sale.order form - .oe_form_buttons_view:visible, header >.oe_button.oe_form_button:nth-child(3):not(.oe_form_invisible) - header >.oe_button.oe_form_button:nth-child(3):not(.oe_form_invisible) + .o_form_buttons_view:visible, button.oe_link.o_open_quotation:not(.o_form_invisible) + button.oe_link.o_open_quotation:not(.o_form_invisible) bottom diff --git a/addons/website_quote/views/website_quotation_backend.xml b/addons/website_quote/views/website_quotation_backend.xml index 785ec3d338f..99405bd4cb3 100644 --- a/addons/website_quote/views/website_quotation_backend.xml +++ b/addons/website_quote/views/website_quotation_backend.xml @@ -39,7 +39,7 @@