-
-
Notifications
You must be signed in to change notification settings - Fork 104
Expand file tree
/
Copy pathcontentrule-elements--implementation.js
More file actions
71 lines (68 loc) · 2.61 KB
/
Copy pathcontentrule-elements--implementation.js
File metadata and controls
71 lines (68 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import $ from "jquery";
import Modal from "../modal/modal--implementation";
export default class Contentrules {
constructor(el) {
this.el = el;
this.SKIP_OVERLAY_ACTIONS = ["plone.actions.Delete"];
}
init() {
let self = this;
$(
"#configure-conditions .rule-element input, #configure-actions .rule-element input"
)
.off("click")
.on("click", (e) => {
const $target = $(e.currentTarget);
var name = $target.attr("name");
if (
name == "form.button.EditCondition" ||
name == "form.button.EditAction"
) {
return true;
}
$("#spinner").show();
var form = $target.parents("form").first();
var fieldset = form.parents("fieldset").first();
var data = form.serialize() + "&" + name + "=1";
var url = form.attr("action");
$.post(url, data, (html) => {
var newfieldset = $(html).find("#" + fieldset.attr("id"));
fieldset.replaceWith(newfieldset);
this.init();
$("#spinner").hide();
});
return false;
});
$('input[name="form.button.AddCondition"],input[name="form.button.AddAction"]')
.off("click")
.on("click", (e) => {
const target = e.currentTarget;
const $target = $(target);
var form = $target.parent().parent();
var data = form.serialize();
for (var i = 0; i < self.SKIP_OVERLAY_ACTIONS.length; i++) {
if (data.indexOf(self.SKIP_OVERLAY_ACTIONS[i]) !== -1) {
return;
}
}
e.preventDefault();
var url = form.attr("action") + "?" + data;
var conditionAnchor = $('<a href="' + url + '" />').css(
"display",
"none"
);
conditionAnchor.insertAfter(target);
new Modal(conditionAnchor, {
actionOptions: {
isForm: true,
redirectOnResponse: true,
redirectToUrl: () => {
// reload on submit
return window.location.href;
},
},
});
conditionAnchor.trigger("click");
});
}
}