diff options
| author | Aurélien Warnon <awa@odoo.com> | 2019-02-21 09:06:26 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-02-26 16:07:16 +0000 |
| commit | 5db9ed0391febb7cabfcd7fadb1971abd2fa0bc4 (patch) | |
| tree | edb8d33100b9cf70a6d6f3e44b4c772269a1cd59 /addons/website_slides/static/src/js/slides_delete_slide.js | |
| parent | 362271f35ad1a2c0bb15b1069deaa864c5100a3b (diff) | |
[REF] website_slides: refactor the slide archive modal on frontend
Purpose
=======
This commits refactors the slide archiving confirmation modal to make it a
standard Dialog (remove global selectors, remove most of useless xml, ...).
It also adds a new slide archive route to allow channel publishers to archive
slides in sudo mode. Indeed ACLs only website_publishers can write on slide
model. In some case people without real rights may update slides.
Commit linked to task ID 1942852 and PR #31394.
Diffstat (limited to 'addons/website_slides/static/src/js/slides_delete_slide.js')
| -rw-r--r-- | addons/website_slides/static/src/js/slides_delete_slide.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/addons/website_slides/static/src/js/slides_delete_slide.js b/addons/website_slides/static/src/js/slides_delete_slide.js deleted file mode 100644 index e3eef38502d..00000000000 --- a/addons/website_slides/static/src/js/slides_delete_slide.js +++ /dev/null @@ -1,88 +0,0 @@ -odoo.define('website_slides.delete.slide', function (require) { - - var sAnimations = require('website.content.snippets.animation'); - var core = require('web.core'); - var Widget = require('web.Widget'); - - var _t = core._t; - var QWeb = core.qweb; - - var DeleteSlideDialog = Widget.extend({ - template: 'website.slide.delete.slide', - events: { - 'hidden.bs.modal': 'destroy', - 'click button[data-dismiss="modal"]': '_cancel', - 'click button.delete': '_delete' - }, - - /** - * @override - * @param {Object} el - * @param {number} channel_id - */ - init: function (el, slideID) { - this._super(el, slideID); - this.slide_id = parseInt(slideID, 10); - }, - /** - * @override - */ - start: function () { - this.$el.modal({ - backdrop: 'static' - }); - return this._super.apply(this, arguments); - }, - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - _delete: function (ev) { - var self = this; - // TO FIX: CallBack is not executed - $('[slide_id='+this.slide_id+']').remove(); - this._rpc({ - model: 'slide.slide', - method: 'unlink', - args: [[self.slide_id]], - }).then(function () { - $('[slide='+this.slide_id+']').remove(); - }); - }, - /** - * @override - */ - _cancel: function () { - this.trigger('cancel'); - } - }); - - sAnimations.registry.websiteSlidesDeleteSlide = sAnimations.Class.extend({ - selector: '.oe_slide_js_delete_slide', - xmlDependencies: ['/website_slides/static/src/xml/website_slides_upload.xml'], - read_events: { - 'click': '_onDeleteSlideClick', - }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - _openDialog: function (slideID) { - new DeleteSlideDialog(this, slideID).appendTo(document.body); - }, - - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @private - * @param {Event} ev - */ - _onDeleteSlideClick: function (ev) { - var target = $(ev.currentTarget); - this._openDialog(target.attr('slide_id')); - }, - }); - return DeleteSlideDialog; - }); |
