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
|
var HootCommentForm = FormView.extend({
events: {
"focus textarea": "focus",
"mouseup input[type=file]": "focus",
"keydown textarea": "keydown",
},
action: "",
initialize: function (opt) {
this.__super__.initialize.call(this, opt);
this.template = this.$(".template").html();
this.$comment = this.$("[name=comment]");
},
load: function (thread) {
this.action = "/api/thread/" + thread.id + "/comment";
this.$comment.addClass("empty");
if (thread.settings.noupload) {
this.$("[type=file]").hide();
}
},
keydown: function (e) {
if ((e.ctrlKey || e.metaKey || e.altKey) && e.keyCode == 83) {
// "s" key
e.preventDefault();
e.stopPropagation();
this.save();
}
},
focus: function () {
this.$el.addClass("focused");
this.$comment.removeClass("empty");
$("[name=comment]").prop("required", false);
},
validate: function () {
var errors = [];
var comment = $("[name=comment]").val();
var files = this.$("[name=files]").val();
if ((!comment || !comment.length) && !files) {
errors.push("Please enter a comment or add some files.");
}
return errors.length ? errors : null;
},
success: function (data) {
$("[name=comment").val("");
$("[name=files").val("");
// window.location.reload()
console.log(this);
console.log(this.parent);
console.log(data);
data.comment && this.parent.comments.load([data.comment]);
data.files && this.parent.files.add(data.files);
data.files && this.parent.gallery.add(data.files);
},
});
|