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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
STUDIP.Feedback = {
initiate: function(feedback)
{
var range_id = $(feedback).attr('for');
var range_type = $(feedback).attr('type');
var course_id = $(feedback).attr('context');
$(feedback).load(STUDIP.URLHelper.getURL('dispatch.php/course/feedback/index_for/' + range_id + '/' + range_type + '?cid=' + course_id), function()
{
if ($('.feedback-delete').length) {
$('.feedback-delete').prop("onclick", null).off("click");
$('.feedback-delete').click(function (event) {
event.preventDefault();
var id = $(this).attr('data-id');
STUDIP.Dialog.confirm($(this).attr('data-confirm')).done(function() {
STUDIP.Feedback.delete(id,feedback);
});
});
}
STUDIP.Feedback.initiateView();
});
},
initiateView: function() {
$('.feedback-entry-add').prop("onclick", null).off("click");
$('.feedback-entry-add').find('.accept').click(function (event) {
event.preventDefault();
var id = $(this).closest('article').attr('data-id');
var feedback_id = $(this).closest('form').serialize();
STUDIP.Feedback.addEntry(id,feedback_id);
});
$('.feedback-entry-edit').prop("onclick", null).off("click");
$('.feedback-entry-edit').click(function (event) {
event.preventDefault();
var entry_id = $(this).closest('article').attr('data-id');
var feedback_id = $(this).closest('.feedback-stream').attr('data-id');
STUDIP.Feedback.editEntryForm(entry_id,feedback_id) ;
});
$('.feedback-entry-delete').prop("onclick", null).off("click");
$('.feedback-entry-delete').click(function (event) {
event.preventDefault();
var entry_id = $(this).closest('article').attr('data-id');
var feedback_id = $(this).closest('.feedback-stream').attr('data-id');
STUDIP.Dialog.confirm($(this).attr('data-confirm')).done(function() {
STUDIP.Feedback.deleteEntry(entry_id,feedback_id);
});
});
STUDIP.Feedback.initiateFeedbackEntryForm();
if ($('table.sortable-table').length) {
$('table.sortable-table').each(function(index, element) {
STUDIP.Table.enhanceSortableTable(element);
});
}
},
delete: function(id,feedback)
{
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/delete/' + id);
$.post(url).done(() => {
STUDIP.Feedback.initiate(feedback);
});
},
addEntry: function(feedback_id,data)
{
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/entry_add/' + feedback_id);
$.post(url, data).done(() => {
STUDIP.Feedback.reloadView(feedback_id);
});
},
editEntryForm: function(entry_id,feedback_id)
{
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/entry_edit_form/' + entry_id);
$('#feedback-stream-' + feedback_id).find('.feedback-view').load(url, function() {
STUDIP.Feedback.initiateFeedbackEntryForm();
$('#feedback-stream-' + feedback_id).find('.accept').prop("onclick", null).off("click");
$('#feedback-stream-' + feedback_id).find('.accept').click(function (event) {
event.preventDefault();
var data = $(this).closest('form').serialize();
STUDIP.Feedback.editEntry(entry_id,feedback_id,data);
});
$('#feedback-stream-' + feedback_id).find('.cancel').prop("onclick", null).off("click");
$('#feedback-stream-' + feedback_id).find('.cancel').click(function (event) {
event.preventDefault();
STUDIP.Feedback.reloadView(feedback_id);
});
});
},
editEntry: function(entry_id,feedback_id,data)
{
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/entry_edit/' + entry_id);
$.post(url, data).done(() => {
STUDIP.Feedback.reloadView(feedback_id);
});
},
deleteEntry: function(entry_id,feedback_id)
{
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/entry_delete/' + entry_id);
$.post(url).done(() => {
STUDIP.Feedback.reloadView(feedback_id);
});
},
reloadView: function(feedback_id) {
const url = STUDIP.URLHelper.getURL('dispatch.php/course/feedback/view/' + feedback_id);
$('#feedback-stream-' + feedback_id).find('.feedback-view').load(url, function() {
STUDIP.Feedback.initiateView();
});
},
initiateFeedbackEntryForm: function() {
if ($('.star-rating').length) {
$('.star-rating').hover(
function() {
$(this).addClass('hover');
$(this).prevAll('.star-rating').addClass('hover');
$(this).nextAll('.star-rating').addClass('out');
}, function() {
$(this).removeClass('hover');
$(this).siblings('.star-rating').removeClass('hover out');
}
);
$('.star-rating-input').change(
function() {
$(this).parent().addClass('checked');
$(this).parent().prevAll('.star-rating').addClass('checked');
$(this).parent().nextAll('.star-rating').removeClass('checked');
}
);
}
if ($('.feedback-entry-cancel').length > 0) {
$('.feedback-entry-cancel').prop("onclick", null).off("click");
$('.feedback-entry-cancel').click(function (event) {
event.preventDefault();
$(this).closest('form').each(function () {
this.reset();
$(this).find('.star-rating').removeClass('checked');
});
});
}
}
}
STUDIP.ready(function (event) {
STUDIP.Feedback.initiateFeedbackEntryForm();
if ($('div.feedback-elements').length) {
$('div.feedback-elements', event.target).each((index, element) => {
STUDIP.Feedback.initiate(element);
});
}
});
|