summaryrefslogtreecommitdiff
path: root/addons/website_slides/static/src/js/activity.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_slides/static/src/js/activity.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_slides/static/src/js/activity.js')
-rw-r--r--addons/website_slides/static/src/js/activity.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/addons/website_slides/static/src/js/activity.js b/addons/website_slides/static/src/js/activity.js
new file mode 100644
index 00000000..ac0ae3cd
--- /dev/null
+++ b/addons/website_slides/static/src/js/activity.js
@@ -0,0 +1,87 @@
+odoo.define('website_slides.Activity', function (require) {
+"use strict";
+
+var field_registry = require('web.field_registry');
+
+require('mail.Activity');
+
+var KanbanActivity = field_registry.get('kanban_activity');
+
+function applyInclude(Activity) {
+ Activity.include({
+ events: _.extend({}, Activity.prototype.events, {
+ 'click .o_activity_action_grant_access': '_onGrantAccess',
+ 'click .o_activity_action_refuse_access': '_onRefuseAccess',
+ }),
+
+ _onGrantAccess: function (event) {
+ var self = this;
+ var partnerId = $(event.currentTarget).data('partner-id');
+ this._rpc({
+ model: 'slide.channel',
+ method: 'action_grant_access',
+ args: [this.res_id, partnerId],
+ }).then(function (result) {
+ self.trigger_up('reload');
+ });
+ },
+
+ _onRefuseAccess: function (event) {
+ var self = this;
+ var partnerId = $(event.currentTarget).data('partner-id');
+ this._rpc({
+ model: 'slide.channel',
+ method: 'action_refuse_access',
+ args: [this.res_id, partnerId],
+ }).then(function () {
+ self.trigger_up('reload');
+ });
+ },
+ });
+}
+
+applyInclude(KanbanActivity);
+
+});
+
+odoo.define('website_slides/static/src/components/activity/activity.js', function (require) {
+'use strict';
+
+const components = {
+ Activity: require('mail/static/src/components/activity/activity.js'),
+};
+const { patch } = require('web.utils');
+
+patch(components.Activity, 'website_slides/static/src/components/activity/activity.js', {
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ async _onGrantAccess(ev) {
+ await this.env.services.rpc({
+ model: 'slide.channel',
+ method: 'action_grant_access',
+ args: [[this.activity.thread.id]],
+ kwargs: { partner_id: this.activity.requestingPartner.id },
+ });
+ this.trigger('reload');
+ },
+ /**
+ * @private
+ */
+ async _onRefuseAccess(ev) {
+ await this.env.services.rpc({
+ model: 'slide.channel',
+ method: 'action_refuse_access',
+ args: [[this.activity.thread.id]],
+ kwargs: { partner_id: this.activity.requestingPartner.id },
+ });
+ this.trigger('reload');
+ },
+});
+
+});