Skip to content

Commit d938bbc

Browse files
committed
compat nc20
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
1 parent 89a90c6 commit d938bbc

9 files changed

+175
-179
lines changed

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ clean:
3535
rm -rf node_modules
3636

3737
# composer packages
38-
composer:
38+
build-composer:
3939
composer install --prefer-dist
4040

41-
appstore: clean composer
41+
appstore: clean build-composer
4242
mkdir -p $(sign_dir)
4343
rsync -a \
4444
--exclude=/build \

appinfo/app.php

-44
This file was deleted.

appinfo/autoload.php

-40
This file was deleted.

appinfo/info.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Users won't be able to find this Circle using Nextcloud search engine.
4343
<repository>https://github.com/nextcloud/circles.git</repository>
4444
<screenshot>https://raw.githubusercontent.com/nextcloud/circles/master/screenshots/0.12.0.png</screenshot>
4545
<dependencies>
46-
<nextcloud min-version="19" max-version="19"/>
46+
<nextcloud min-version="20" max-version="20"/>
4747
</dependencies>
4848

4949
<background-jobs>

composer.json

+10-8
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,24 @@
33
"description": "circles",
44
"minimum-stability": "stable",
55
"license": "agpl",
6+
"config": {
7+
"vendor-dir": "composer/",
8+
"optimize-autoloader": true,
9+
"classmap-authoritative": true,
10+
"autoloader-suffix": "Circles"
11+
},
612
"authors": [
713
{
814
"name": "Maxence Lange",
915
"email": "maxence@nextcloud.com"
1016
}
1117
],
12-
"require": {
13-
"daita/my-small-php-tools": "dev-master"
14-
},
15-
"config": {
16-
"optimize-autoloader": true
17-
},
1818
"autoload": {
1919
"psr-4": {
20-
"UpdateServer\\": "src/",
21-
"Tests\\": "tests/unit/"
20+
"OCA\\Circles\\": "lib/"
2221
}
22+
},
23+
"require": {
24+
"daita/my-small-php-tools": "dev-master"
2325
}
2426
}

js/circles.app.elements.js

+33-32
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
/** global: api */
3636
/** global: define */
3737

38+
3839
var elements = {
3940

4041
newTypeDefinition: null,
@@ -342,7 +343,7 @@ var elements = {
342343
fillExactMembersSearch: function(source, exact) {
343344
curr.exactMemberSearchType = '';
344345
$.each(exact, function(index, value) {
345-
var details = escapeHTML(value.value.shareWith);
346+
var details = nav.escapeHtml(value.value.shareWith);
346347
if (source === 'groups') {
347348
if (exact.length === 1) {
348349
curr.exactMemberSearchType = 'group';
@@ -352,7 +353,7 @@ var elements = {
352353

353354
elements.membersSearchResult.append(
354355
'<div class="members_search exact" source="' + source + '" searchresult="' +
355-
escapeHTML(value.value.shareWith) + '">' + escapeHTML(value.label) + ' (' +
356+
nav.escapeHtml(value.value.shareWith) + '">' + nav.escapeHtml(value.label) + ' (' +
356357
details + ')</div>');
357358
});
358359

@@ -363,23 +364,23 @@ var elements = {
363364
$.each(partial, function(index, value) {
364365

365366
var currSearch = elements.addMember.val().trim();
366-
var line = escapeHTML(value.label);
367+
var line = nav.escapeHtml(value.label);
367368

368369
if (source === 'groups') {
369370
if (currSearch.length > 0) {
370371
line = line.replace(new RegExp('(' + currSearch + ')', 'gi'), '<b>$1</b>');
371372
}
372373
line += ' (group)';
373374
} else {
374-
line += ' (' + escapeHTML(value.value.shareWith) + ')';
375+
line += ' (' + nav.escapeHtml(value.value.shareWith) + ')';
375376
if (currSearch.length > 0) {
376377
line = line.replace(new RegExp('(' + currSearch + ')', 'gi'), '<b>$1</b>');
377378
}
378379
}
379380

380381
elements.membersSearchResult.append(
381382
'<div class="members_search" source="' + source + '" searchresult="' +
382-
escapeHTML(value.value.shareWith) + '">' + line + '</div>');
383+
nav.escapeHtml(value.value.shareWith) + '">' + line + '</div>');
383384
});
384385
},
385386

@@ -395,8 +396,8 @@ var elements = {
395396
$.each(exact, function(index, value) {
396397
elements.groupsSearchResult.append(
397398
'<div class="groups_search exact" searchresult="' +
398-
escapeHTML(value.value.shareWith) + '">' + escapeHTML(value.label) + ' (' +
399-
escapeHTML(value.value.shareWith) + ')</div>');
399+
nav.escapeHtml(value.value.shareWith) + '">' + nav.escapeHtml(value.label) + ' (' +
400+
nav.escapeHtml(value.value.shareWith) + ')</div>');
400401
});
401402

402403
},
@@ -406,14 +407,14 @@ var elements = {
406407
$.each(partial, function(index, value) {
407408

408409
var currSearch = elements.addMember.val().trim();
409-
var line = escapeHTML(value.label) + ' (' + escapeHTML(value.value.shareWith) + ')';
410+
var line = nav.escapeHtml(value.label) + ' (' + nav.escapeHtml(value.value.shareWith) + ')';
410411
if (currSearch.length > 0) {
411412
line = line.replace(new RegExp('(' + currSearch + ')', 'gi'), '<b>$1</b>');
412413
}
413414

414415
elements.groupsSearchResult.append(
415416
'<div class="groups_search" searchresult="' +
416-
escapeHTML(value.value.shareWith) + '">' + line + '</div>');
417+
nav.escapeHtml(value.value.shareWith) + '">' + line + '</div>');
417418
});
418419
},
419420

@@ -432,12 +433,12 @@ var elements = {
432433
generateTmplCircle: function(entry) {
433434
var tmpl = $('#tmpl_circle').html();
434435

435-
tmpl = tmpl.replace(/%title%/g, escapeHTML(entry.name));
436-
tmpl = tmpl.replace(/%type%/g, t('circles', escapeHTML(entry.type_string)));
437-
tmpl = tmpl.replace(/%owner%/g, escapeHTML(entry.owner.display_name));
438-
tmpl = tmpl.replace(/%status%/g, t('circles', escapeHTML(entry.user.status)));
439-
tmpl = tmpl.replace(/%level_string%/g, t('circles', escapeHTML(entry.user.level_string)));
440-
tmpl = tmpl.replace(/%creation%/g, escapeHTML(entry.creation));
436+
tmpl = tmpl.replace(/%title%/g, nav.escapeHtml(entry.name));
437+
tmpl = tmpl.replace(/%type%/g, t('circles', nav.escapeHtml(entry.type_string)));
438+
tmpl = tmpl.replace(/%owner%/g, nav.escapeHtml(entry.owner.display_name));
439+
tmpl = tmpl.replace(/%status%/g, t('circles', nav.escapeHtml(entry.user.status)));
440+
tmpl = tmpl.replace(/%level_string%/g, t('circles', nav.escapeHtml(entry.user.level_string)));
441+
tmpl = tmpl.replace(/%creation%/g, nav.escapeHtml(entry.creation));
441442

442443
return tmpl;
443444
},
@@ -446,9 +447,9 @@ var elements = {
446447
generateTmplMember: function(entry) {
447448
var tmpl = $('#tmpl_member').html();
448449

449-
tmpl = tmpl.replace(/%username%/g, escapeHTML(entry.user_id));
450-
tmpl = tmpl.replace(/%instance%/g, escapeHTML(entry.instance));
451-
tmpl = tmpl.replace(/%type%/g, escapeHTML(entry.user_type));
450+
tmpl = tmpl.replace(/%username%/g, nav.escapeHtml(entry.user_id));
451+
tmpl = tmpl.replace(/%instance%/g, nav.escapeHtml(entry.instance));
452+
tmpl = tmpl.replace(/%type%/g, nav.escapeHtml(entry.user_type));
452453

453454
let displayName = entry.display_name;
454455
if (entry.cached_name !== '') {
@@ -458,11 +459,11 @@ var elements = {
458459
displayName += ' (' + entry.instance + ')';
459460
}
460461

461-
tmpl = tmpl.replace(/%displayname%/g, escapeHTML(displayName));
462-
tmpl = tmpl.replace(/%level%/g, escapeHTML(entry.level));
463-
tmpl = tmpl.replace(/%levelString%/g, escapeHTML(entry.level_string));
464-
tmpl = tmpl.replace(/%status%/g, escapeHTML(entry.status));
465-
tmpl = tmpl.replace(/%joined%/g, escapeHTML(entry.joined));
462+
tmpl = tmpl.replace(/%displayname%/g, nav.escapeHtml(displayName));
463+
tmpl = tmpl.replace(/%level%/g, nav.escapeHtml(entry.level));
464+
tmpl = tmpl.replace(/%levelString%/g, nav.escapeHtml(entry.level_string));
465+
tmpl = tmpl.replace(/%status%/g, nav.escapeHtml(entry.status));
466+
tmpl = tmpl.replace(/%joined%/g, nav.escapeHtml(entry.joined));
466467

467468
return tmpl;
468469
},
@@ -471,10 +472,10 @@ var elements = {
471472
generateTmplGroup: function(entry) {
472473
var tmpl = $('#tmpl_group').html();
473474

474-
tmpl = tmpl.replace(/%groupid%/g, escapeHTML(entry.user_id));
475-
tmpl = tmpl.replace(/%level%/g, escapeHTML(entry.level));
476-
tmpl = tmpl.replace(/%levelString%/g, escapeHTML(entry.level_string));
477-
// tmpl = tmpl.replace(/%joined%/g, escapeHTML(entry.joined));
475+
tmpl = tmpl.replace(/%groupid%/g, nav.escapeHtml(entry.user_id));
476+
tmpl = tmpl.replace(/%level%/g, nav.escapeHtml(entry.level));
477+
tmpl = tmpl.replace(/%levelString%/g, nav.escapeHtml(entry.level_string));
478+
// tmpl = tmpl.replace(/%joined%/g, nav.escapeHtml(entry.joined));
478479

479480
return tmpl;
480481
},
@@ -483,11 +484,11 @@ var elements = {
483484
generateTmplLink: function(entry) {
484485
var tmpl = $('#tmpl_link').html();
485486

486-
tmpl = tmpl.replace(/%id%/g, escapeHTML(entry.unique_id));
487-
tmpl = tmpl.replace(/%token%/g, escapeHTML(entry.token));
488-
tmpl = tmpl.replace(/%address%/g, escapeHTML(entry.address));
489-
tmpl = tmpl.replace(/%status%/g, escapeHTML(entry.status));
490-
tmpl = tmpl.replace(/%joined%/g, escapeHTML(entry.creation));
487+
tmpl = tmpl.replace(/%id%/g, nav.escapeHtml(entry.unique_id));
488+
tmpl = tmpl.replace(/%token%/g, nav.escapeHtml(entry.token));
489+
tmpl = tmpl.replace(/%address%/g, nav.escapeHtml(entry.address));
490+
tmpl = tmpl.replace(/%status%/g, nav.escapeHtml(entry.status));
491+
tmpl = tmpl.replace(/%joined%/g, nav.escapeHtml(entry.creation));
491492

492493
return tmpl;
493494
}

js/circles.app.navigation.js

+53-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,58 @@
3939
/** global: api */
4040
/** global: define */
4141

42+
43+
4244
var nav = {
4345

46+
escapeHtml: function(string) {
47+
var str = '' + string
48+
var matchHtmlRegExp = /["'&<>]/
49+
var match = matchHtmlRegExp.exec(str)
50+
51+
if (!match) {
52+
return str
53+
}
54+
55+
var escape
56+
var html = ''
57+
var index = 0
58+
var lastIndex = 0
59+
60+
for (index = match.index; index < str.length; index++) {
61+
switch (str.charCodeAt(index)) {
62+
case 34: // "
63+
escape = '&quot;'
64+
break
65+
case 38: // &
66+
escape = '&amp;'
67+
break
68+
case 39: // '
69+
escape = '&#39;'
70+
break
71+
case 60: // <
72+
escape = '&lt;'
73+
break
74+
case 62: // >
75+
escape = '&gt;'
76+
break
77+
default:
78+
continue
79+
}
80+
81+
if (lastIndex !== index) {
82+
html += str.substring(lastIndex, index)
83+
}
84+
85+
lastIndex = index + 1
86+
html += escape
87+
}
88+
89+
return lastIndex !== index
90+
? html + str.substring(lastIndex, index)
91+
: html
92+
},
93+
4494
initNavigation: function() {
4595
this.initElementsAddMemberNavigation();
4696
this.initElementsLinkCircleNavigation();
@@ -93,7 +143,8 @@ var nav = {
93143
t('circles', 'Please confirm'),
94144
function(e) {
95145
if (e === true) {
96-
api.addMember(curr.circle, elements.addMember.val(), define.typeGroup, '',
146+
api.addMember(curr.circle, elements.addMember.val(), define.typeGroup,
147+
'',
97148
resultMembers.addMemberResult);
98149
}
99150
});
@@ -611,7 +662,7 @@ var nav = {
611662
elements.circleDetails.children('#type').text(t('circles', details.type_long_string));
612663
if (details.description !== '') {
613664
elements.circleDesc.html(
614-
escapeHTML(details.description).replace(/\n/g, '&nbsp;<br />')).show(
665+
nav.escapeHtml(details.description).replace(/\n/g, '&nbsp;<br />')).show(
615666
define.animationSpeed);
616667
} else {
617668
elements.circleDesc.text('').hide(define.animationSpeed);

0 commit comments

Comments
 (0)