summaryrefslogtreecommitdiff
path: root/addons/website_slides/static/src/js/slides_delete_slide.js
diff options
context:
space:
mode:
authorAurélien Warnon <awa@odoo.com>2019-02-21 09:06:26 +0000
committerThibault Delavallée <tde@odoo.com>2019-02-26 16:07:16 +0000
commit5db9ed0391febb7cabfcd7fadb1971abd2fa0bc4 (patch)
treeedb8d33100b9cf70a6d6f3e44b4c772269a1cd59 /addons/website_slides/static/src/js/slides_delete_slide.js
parent362271f35ad1a2c0bb15b1069deaa864c5100a3b (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.js88
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;
- });