forked from Techsystech/web
commit
ff2118d500
|
@ -29,3 +29,20 @@
|
|||
left: 0px;
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
.oe_timeline_view .vis-item .oe_timeline_duplicate_button {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: -24px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
box-sizing: border-box;
|
||||
padding: 0 5px;
|
||||
cursor: pointer;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.oe_timeline_view .vis-item .oe_timeline_duplicate_button:hover {
|
||||
color: #FFF;
|
||||
background-color: #000;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ odoo.define('web_timeline.TimelineController', function (require) {
|
|||
onRemove: '_onRemove',
|
||||
onMove: '_onMove',
|
||||
onAdd: '_onAdd',
|
||||
onDuplicate: '_onDuplicate'
|
||||
}),
|
||||
|
||||
/**
|
||||
|
@ -133,6 +134,25 @@ odoo.define('web_timeline.TimelineController', function (require) {
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Gets triggered when a timeline item is duplicated (triggered by the TimelineRenderer).
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_onDuplicate: function (event) {
|
||||
var self = this;
|
||||
return this._rpc({
|
||||
model: this.model.modelName,
|
||||
method: 'copy',
|
||||
args: [event.data.id],
|
||||
context: this.getSession().user_context,
|
||||
})
|
||||
.then(function (res_id) {
|
||||
self.create_completed([res_id]);
|
||||
event.data.callback();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Gets triggered when a timeline item is moved (triggered by the TimelineRenderer).
|
||||
*
|
||||
|
|
|
@ -12,6 +12,7 @@ odoo.define('web_timeline.TimelineRenderer', function (require) {
|
|||
|
||||
|
||||
var _t = core._t;
|
||||
var qweb = core.qweb;
|
||||
|
||||
var TimelineRenderer = AbstractRenderer.extend({
|
||||
template: "TimelineView",
|
||||
|
@ -22,6 +23,7 @@ odoo.define('web_timeline.TimelineRenderer', function (require) {
|
|||
'click .oe_timeline_button_scale_week': '_onScaleWeekClicked',
|
||||
'click .oe_timeline_button_scale_month': '_onScaleMonthClicked',
|
||||
'click .oe_timeline_button_scale_year': '_onScaleYearClicked',
|
||||
'click .oe_timeline_duplicate_button': '_onDuplicateClicked'
|
||||
}),
|
||||
|
||||
/**
|
||||
|
@ -157,6 +159,43 @@ odoo.define('web_timeline.TimelineRenderer', function (require) {
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggers when an item is selected or deselected.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_onSelect: function (ev) {
|
||||
var notSelectedIds = _.difference(
|
||||
this.timeline.itemsData.getIds(),
|
||||
ev.items
|
||||
);
|
||||
_.each(notSelectedIds, function (id) {
|
||||
this.$(_.str.sprintf('.oe_timeline_duplicate_button[data-id="%s"]', id)).remove();
|
||||
}.bind(this));
|
||||
|
||||
_.each(ev.items, function (id) {
|
||||
var $deleteButton = $(this.timeline.itemSet.items[id].dom.deleteButton);
|
||||
var $duplicateButton = $(qweb.render('TimelineView.DuplicateButton', {
|
||||
id: id
|
||||
}));
|
||||
$deleteButton.after($duplicateButton);
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggers when the user clicks on the duplicate button.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_onDuplicateClicked: function (ev) {
|
||||
var $duplicateButton = $(ev.currentTarget);
|
||||
var id = $duplicateButton.data('id');
|
||||
this.trigger_up('onDuplicate', {
|
||||
id: id,
|
||||
callback: function () {}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Computes the initial visible window.
|
||||
*
|
||||
|
@ -228,6 +267,7 @@ odoo.define('web_timeline.TimelineRenderer', function (require) {
|
|||
self['on_scale_' + self.mode + '_clicked']();
|
||||
}
|
||||
this.timeline.on('click', self.on_group_click);
|
||||
this.timeline.on('select', this._onSelect.bind(this));
|
||||
var group_bys = this.arch.attrs.default_group_by.split(',');
|
||||
this.last_group_bys = group_bys;
|
||||
this.last_domains = this.modelClass.data.domain;
|
||||
|
|
|
@ -23,4 +23,11 @@
|
|||
</marker>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
<div t-name="TimelineView.DuplicateButton"
|
||||
t-attf-data-id="#{id}"
|
||||
class="oe_timeline_duplicate_button" title="Duplicate this item">
|
||||
<i class="fa fa-copy" />
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
|
Loading…
Reference in New Issue