diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-09-28 13:24:14 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-09-28 13:24:14 +0200 |
| commit | 99bf9e4563d8c17be1635fc09d336b693b5ba1a1 (patch) | |
| tree | eb04654ef5ef384319aa4292bac122b18445689f /addons/web/static/src | |
| parent | 6b410fc954ccd85e7aea2c9fa86c6f2097474883 (diff) | |
| parent | 89df681b458df5b2fd21b738409a90dd53e33c9a (diff) | |
[MERGE] forward port branch saas-16 up to 89df681b458
Diffstat (limited to 'addons/web/static/src')
9 files changed, 42 insertions, 7 deletions
diff --git a/addons/web/static/src/js/chrome/abstract_web_client.js b/addons/web/static/src/js/chrome/abstract_web_client.js index 8492adc33f6..9a629ec3393 100644 --- a/addons/web/static/src/js/chrome/abstract_web_client.js +++ b/addons/web/static/src/js/chrome/abstract_web_client.js @@ -245,7 +245,7 @@ var AbstractWebClient = Widget.extend(mixins.ServiceProvider, { }, do_reload: function () { var self = this; - return this.session.session_reload().then(function () { + return session.session_reload().then(function () { session.load_modules(true).then( self.menu.proxy('do_reload')); }); diff --git a/addons/web/static/src/js/chrome/action_manager.js b/addons/web/static/src/js/chrome/action_manager.js index e18a3d60734..194b8e6c8a7 100644 --- a/addons/web/static/src/js/chrome/action_manager.js +++ b/addons/web/static/src/js/chrome/action_manager.js @@ -912,14 +912,14 @@ var ActionManager = Widget.extend({ action: JSON.stringify(action), token: new Date().getTime() }; - var url = self.session.url('/web/report', params); + var url = session.url('/web/report', params); framework.unblockUI(); $('<a href="'+url+'" target="_blank"></a>')[0].click(); return; } var c = crash_manager; return $.Deferred(function (d) { - self.session.get_file({ + session.get_file({ url: '/web/report', data: {action: JSON.stringify(action)}, complete: framework.unblockUI, diff --git a/addons/web/static/src/js/fields/abstract_field.js b/addons/web/static/src/js/fields/abstract_field.js index 894ee57c813..e25c02f781e 100644 --- a/addons/web/static/src/js/fields/abstract_field.js +++ b/addons/web/static/src/js/fields/abstract_field.js @@ -457,7 +457,7 @@ var AbstractField = Widget.extend({ this.trigger_up('navigation_move', {direction: 'next_line'}); break; case $.ui.keyCode.ESCAPE: - this.trigger_up('navigation_move', {direction: 'cancel'}); + this.trigger_up('navigation_move', {direction: 'cancel', originalEvent: ev}); break; case $.ui.keyCode.UP: ev.stopPropagation(); diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 1139b234edd..6392870dc90 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -994,6 +994,10 @@ var FieldPhone = FieldEmail.extend({ } else { this.$el.removeClass('o_form_uri'); } + // This class should technically be there in case of a very very long + // phone number, but it breaks the o_row mechanism, which is more + // important right now. + this.$el.removeClass('o_text_overflow'); }, /** diff --git a/addons/web/static/src/js/views/calendar/calendar_controller.js b/addons/web/static/src/js/views/calendar/calendar_controller.js index db2394ddd1d..8d27acb43dd 100644 --- a/addons/web/static/src/js/views/calendar/calendar_controller.js +++ b/addons/web/static/src/js/views/calendar/calendar_controller.js @@ -28,6 +28,7 @@ var CalendarController = AbstractController.extend({ changeDate: '_onChangeDate', changeFilter: '_onChangeFilter', toggleFullWidth: '_onToggleFullWidth', + viewUpdated: '_onViewUpdated', }), /** * @override @@ -39,6 +40,7 @@ var CalendarController = AbstractController.extend({ init: function (parent, model, renderer, params) { this._super.apply(this, arguments); this.current_start = null; + this.displayName = params.displayName; this.quickAddPop = params.quickAddPop; this.disableQuickCreate = params.disableQuickCreate; this.eventOpenPopup = params.eventOpenPopup; @@ -317,6 +319,21 @@ var CalendarController = AbstractController.extend({ _onUpdateRecord: function (event) { this._updateRecord(event.data); }, + /** + * The internal state of the calendar (mode, period displayed) has changed, + * so update the control panel buttons and breadcrumbs accordingly. + * + * @param {OdooEvent} event + */ + _onViewUpdated: function (event) { + this.mode = event.data.mode; + if (this.$buttons) { + this.$buttons.find('.active').removeClass('active'); + this.$buttons.find('.o_calendar_button_' + this.mode).addClass('active'); + } + var subtitle = (this.mode === 'week' ? _t('Week ') : '') + event.data.title; + this.set({title: this.displayName + ' (' + subtitle + ')'}); + }, }); return CalendarController; diff --git a/addons/web/static/src/js/views/calendar/calendar_renderer.js b/addons/web/static/src/js/views/calendar/calendar_renderer.js index 584813cba5a..f011a24a32e 100644 --- a/addons/web/static/src/js/views/calendar/calendar_renderer.js +++ b/addons/web/static/src/js/views/calendar/calendar_renderer.js @@ -354,9 +354,19 @@ return AbstractRenderer.extend({ element.find('.fc-content .fc-time').text(display_hour); }, // Dirty hack to ensure a correct first render - eventAfterAllRender: function (view) { + eventAfterAllRender: function () { window.dispatchEvent(new Event('resize')); }, + viewRender: function (view) { + // compute mode from view.name which is either 'month', 'agendaWeek' or 'agendaDay' + var mode = view.name === 'month' ? 'month' : (view.name === 'agendaWeek' ? 'week' : 'day'); + // compute title: in week mode, display the week number + var title = mode === 'week' ? view.intervalStart.week() : view.title; + self.trigger_up('viewUpdated', { + mode: mode, + title: title, + }); + }, height: 'parent', unselectAuto: false, }); diff --git a/addons/web/static/src/js/views/calendar/calendar_view.js b/addons/web/static/src/js/views/calendar/calendar_view.js index 47c16300508..7f58ca55632 100644 --- a/addons/web/static/src/js/views/calendar/calendar_view.js +++ b/addons/web/static/src/js/views/calendar/calendar_view.js @@ -109,7 +109,7 @@ var CalendarView = AbstractView.extend({ //if quick_add = False, we don't allow quick_add //if quick_add = not specified in view, we use the default widgets.QuickCreate - //if quick_add = is NOT False and IS specified in view, we this one for widgets.QuickCreate' + //if quick_add = is NOT False and IS specified in view, we this one for widgets.QuickCreate' this.controllerParams.quickAddPop = (!('quick_add' in attrs) || utils.toBoolElse(attrs.quick_add+'', true)); this.controllerParams.disableQuickCreate = params.disable_quick_create || !this.controllerParams.quickAddPop; // If this field is set ot true, we don't open the event in form view, but in a popup with the view_id passed by this parameter @@ -118,6 +118,7 @@ var CalendarView = AbstractView.extend({ this.controllerParams.eventOpenPopup = utils.toBoolElse(attrs.event_open_popup || '', false); this.controllerParams.mapping = mapping; this.controllerParams.context = params.context || {}; + this.controllerParams.displayName = params.action && params.action.name; this.rendererParams.displayFields = displayFields; this.rendererParams.eventTemplate = _.findWhere(arch.children, {'tag': 'templates'}); diff --git a/addons/web/static/src/js/views/list/list_editable_renderer.js b/addons/web/static/src/js/views/list/list_editable_renderer.js index 06058069ab6..5bd24044c39 100644 --- a/addons/web/static/src/js/views/list/list_editable_renderer.js +++ b/addons/web/static/src/js/views/list/list_editable_renderer.js @@ -729,6 +729,9 @@ ListRenderer.include({ this._moveToNextLine(); break; case 'cancel': + // stop the original event (typically an ESCAPE keydown), to + // prevent from closing the potential dialog containing this list + ev.data.originalEvent.stopPropagation(); this.trigger_up('discard_changes', { recordID: ev.target.dataPointID, }); diff --git a/addons/web/static/src/less/fields_extra.less b/addons/web/static/src/less/fields_extra.less index 79d9628116d..541fef8ba47 100644 --- a/addons/web/static/src/less/fields_extra.less +++ b/addons/web/static/src/less/fields_extra.less @@ -6,7 +6,7 @@ // Required .o_required_modifier { &.o_input, .o_input { - background-color: #D2D2FF; + background-color: #D2D2FF!important; } } |
