Skip to content

Commit f7ac440

Browse files
committed
Merge branch 'master' of https://github.com/bpatrik/pigallery2
2 parents 9e6258b + 6f132b5 commit f7ac440

File tree

1 file changed

+8
-25
lines changed

1 file changed

+8
-25
lines changed

src/frontend/app/ui/gallery/navigator/sorting.service.ts

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,10 @@ export class GallerySortingService {
173173
break;
174174
case SortByTypes.Random:
175175
this.rndService.setSeed(media.length);
176-
media.sort((a: PhotoDTO, b: PhotoDTO): number => {
177-
if (a.name.toLowerCase() < b.name.toLowerCase()) {
178-
return -1;
179-
}
180-
if (a.name.toLowerCase() > b.name.toLowerCase()) {
181-
return 1;
182-
}
183-
return 0;
184-
})
185-
.sort((): number => {
186-
return this.rndService.get() - 0.5;
187-
});
176+
for (let i = media.length - 1; i > 0; i--) {
177+
const j = Math.floor(this.rndService.get() * (i + 1));
178+
[media[i], media[j]] = [media[j], media[i]];
179+
}
188180
break;
189181
}
190182
if (!sorting.ascending) {
@@ -273,19 +265,10 @@ export class GallerySortingService {
273265
break;
274266
case SortByTypes.Random:
275267
this.rndService.setSeed(c.directories.length);
276-
c.directories
277-
.sort((a, b): number => {
278-
if (a.name.toLowerCase() < b.name.toLowerCase()) {
279-
return 1;
280-
}
281-
if (a.name.toLowerCase() > b.name.toLowerCase()) {
282-
return -1;
283-
}
284-
return 0;
285-
})
286-
.sort((): number => {
287-
return this.rndService.get() - 0.5;
288-
});
268+
for (let i = c.directories.length - 1; i > 0; i--) {
269+
const j = Math.floor(this.rndService.get() * (i + 1));
270+
[c.directories[i], c.directories[j]] = [c.directories[j], c.directories[i]];
271+
}
289272
break;
290273
}
291274

0 commit comments

Comments
 (0)