Skip to content

Commit 6d168b9

Browse files
committed
fixed js html strings escaping
1 parent 3c66487 commit 6d168b9

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

js/timer.js

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@
55

66
$( function() {
77

8+
var entityMap = {
9+
'&': '&',
10+
'<': '&lt;',
11+
'>': '&gt;',
12+
'"': '&quot;',
13+
"'": '&#39;',
14+
'/': '&#x2F;',
15+
'`': '&#x60;',
16+
'=': '&#x3D;'
17+
};
18+
19+
function escapeHtml (string) {
20+
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
21+
return entityMap[s];
22+
});
23+
}
24+
825
getWorkItems();
926
var timerInterval;
1027
dialogWorkItemEditForm = $( "#dialog-work-item-edit-form" ).dialog({
@@ -164,6 +181,10 @@
164181
}
165182
function getWorkItems(){
166183
var baseUrl = OC.generateUrl('/apps/timetracker/ajax/work-intervals');
184+
$.ajaxSetup({
185+
scriptCharset: "utf-8",
186+
contentType: "application/json; charset=utf-8"
187+
});
167188
$.getJSON( baseUrl, function( data ) {
168189

169190
if (data.running.length > 0){
@@ -195,9 +216,9 @@
195216

196217
$.each(workItem.children, function (ckey, child){
197218
//debugger;
198-
children.push("<div class='wi-child'><li><div class='wi-child-element'><div class='wi-child-name clickable' data-details='"+child.details+"' data-myid="+child.id+" data-name='"+child.name+"'>"+cutString(child.name,64)+
199-
"<div class='wi-child-details clickable' data-details='"+child.details+"' data-myid="+child.id+" data-name='"+child.name+"'>"+cutString(child.details,64)+"</div>"+"</div>"+
200-
"<span class='fas clickable fa-trash wi-trash' id="+child.id+"></span><span class='set-project' data-myid="+child.id+" data-projectid="+child.projectId+" data-projectname='"+child.projectName+"'></span>"+
219+
children.push("<div class='wi-child'><li><div class='wi-child-element'><div class='wi-child-name clickable' data-details='"+escapeHtml(child.details)+"' data-myid="+child.id+" data-name='"+escapeHtml(child.name)+"'>"+escapeHtml(cutString(child.name,64))+
220+
"<div class='wi-child-details clickable' data-details='"+escapeHtml(child.details)+"' data-myid="+child.id+" data-name='"+escapeHtml(child.name)+"'>"+escapeHtml(cutString(child.details,64))+"</div>"+"</div>"+
221+
"<span class='fas clickable fa-trash wi-trash' id="+child.id+"></span><span class='set-project' data-myid="+child.id+" data-projectid="+child.projectId+" data-projectname='"+escapeHtml(child.projectName)+"'></span>"+
201222
"<span class='set-tag' data-myid="+child.id+" data-tagids='"+child.tags.map(function(tag) {return tag.id}).join(',')+"' data-tagnames='"+child.tags.map(function(tag) {return tag.name}).join(',')+"'></span>"+
202223
"<div class='wi-child-hours' data-myid="+child.id+" data-start-date='"+child.start+"' data-end-date='"+(child.start+child.duration)+"'>"+tsToHour(child.start)+"&nbsp;-&nbsp;"+
203224
((child.running == 1)?'':tsToHour(child.start+child.duration))+

0 commit comments

Comments
 (0)