Skip to content

Commit 558e191

Browse files
committed
fix - show private or public links in snippet tags
depending if the user is public and not owned by the logged in user
1 parent 6a608fb commit 558e191

14 files changed

+62
-72
lines changed

backend/src/common/snippets-search.service.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
const Snippet = require('../model/snippet');
22

3-
const bookmarksSearchHelper = require('./bookmarks-search.helper');
3+
const searchUtils = require('./search.utils');
44

55
let findSnippets = async function (userId, query, page, limit, searchInclude) {
66
//split in text and tags
7-
const searchedTermsAndTags = bookmarksSearchHelper.splitSearchQuery(query);
7+
const searchedTermsAndTags = searchUtils.splitSearchQuery(query);
88
let searchedTerms = searchedTermsAndTags.terms;
99
const searchedTags = searchedTermsAndTags.tags;
1010
let snippets = [];
1111

12-
const {specialSearchFilters, nonSpecialSearchTerms} = bookmarksSearchHelper.extractSpecialSearchTerms(searchedTerms);
12+
const {specialSearchFilters, nonSpecialSearchTerms} = searchUtils.extractSpecialSearchTerms(searchedTerms);
1313

1414
if ( searchedTerms.length > 0 && searchedTags.length > 0 ) {
1515
snippets = await getSnippetsForTagsAndTerms(userId, searchedTags, nonSpecialSearchTerms, page, limit, specialSearchFilters, searchInclude);
@@ -39,7 +39,7 @@ let getSnippetsForTagsAndTerms = async function (userId, searchedTags, nonSpecia
3939
if ( searchInclude === 'any' ) {
4040
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
4141
} else {
42-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
42+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
4343
}
4444
}
4545

@@ -74,7 +74,7 @@ let getSnippetsForSearchedTerms = async function (userId, nonSpecialSearchTerms,
7474
if ( searchInclude === 'any' ) {
7575
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
7676
} else {
77-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
77+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
7878
}
7979
}
8080

@@ -124,7 +124,6 @@ let getSnippetsForSearchedTags = async function (userId, searchedTags, page, lim
124124
let addSpecialSearchFiltersToMongoFilter = function (specialSearchFilters, filter) {
125125
if ( specialSearchFilters.userId ) {
126126
filter.userId = specialSearchFilters.userId;
127-
filter.public = true;
128127
} else if ( specialSearchFilters.privateOnly ) {
129128
filter.public = false;
130129
}

backend/src/routes/public/public-bookmarks-search.service.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
const Bookmark = require('../../model/bookmark');
22
// TODO - remove
33
// const escapeStringRegexp = require('escape-string-regexp');
4-
const bookmarksSearchHelper = require('../../common/bookmarks-search.helper');
4+
const searchUtils = require('../../common/search.utils');
55

66
let findPublicBookmarks = async function (query, page, limit, sort, searchInclude) {
77
//split in text and tags
8-
const searchedTermsAndTags = bookmarksSearchHelper.splitSearchQuery(query);
8+
const searchedTermsAndTags = searchUtils.splitSearchQuery(query);
99
const searchedTerms = searchedTermsAndTags.terms;
1010
const searchedTags = searchedTermsAndTags.tags;
1111
let bookmarks = [];
1212

13-
const {specialSearchFilters, nonSpecialSearchTerms} = bookmarksSearchHelper.extractSpecialSearchTerms(searchedTerms);
13+
const {specialSearchFilters, nonSpecialSearchTerms} = searchUtils.extractSpecialSearchTerms(searchedTerms);
1414

1515
if ( searchedTerms.length > 0 && searchedTags.length > 0 ) {
1616
bookmarks = await getPublicBookmarksForTagsAndTerms(searchedTags, nonSpecialSearchTerms, page, limit, sort, specialSearchFilters, searchInclude);
@@ -51,7 +51,7 @@ let getPublicBookmarksForTagsAndTerms = async function (searchedTags, nonSpecial
5151
if(searchInclude === 'any') {
5252
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
5353
} else {
54-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
54+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
5555
}
5656
}
5757
addSpecialSearchFiltersToMongoFilter(specialSearchFilters, filter);
@@ -88,7 +88,7 @@ let getPublicBookmarksForSearchedTerms = async function (nonSpecialSearchTerms,
8888
if(searchInclude === 'any') {
8989
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
9090
} else {
91-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
91+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
9292
}
9393
}
9494

backend/src/routes/public/public-snippets.router.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ const SnippetsSearchService = require('../../common/snippets-search.service');
66
const PublicSnippetsService = require('./public-snippets.service');
77

88
const PaginationQueryParamsHelper = require('../../common/pagination-query-params-helper');
9-
const PublicBookmarksService = require("./public-bookmarks.service");
109

1110
/**
1211
* Get snippet by shareableId

backend/src/routes/users/bookmarks/personal-bookmarks-search.service.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
const Bookmark = require('../../../model/bookmark');
2-
const bookmarksSearchHelper = require('../../../common/bookmarks-search.helper');
2+
const searchUtils = require('../../../common/search.utils');
33

44
let findPersonalBookmarks = async function (userId, query, page, limit, searchInclude) {
55
//split in text and tags
6-
const searchedTermsAndTags = bookmarksSearchHelper.splitSearchQuery(query);
6+
const searchedTermsAndTags = searchUtils.splitSearchQuery(query);
77
let searchedTerms = searchedTermsAndTags.terms;
88
const searchedTags = searchedTermsAndTags.tags;
99
let bookmarks = [];
1010

11-
const {specialSearchFilters, nonSpecialSearchTerms} = bookmarksSearchHelper.extractSpecialSearchTerms(searchedTerms);
11+
const {specialSearchFilters, nonSpecialSearchTerms} = searchUtils.extractSpecialSearchTerms(searchedTerms);
1212

1313
if ( searchedTerms.length > 0 && searchedTags.length > 0 ) {
1414
bookmarks = await getPersonalBookmarksForTagsAndTerms( userId, searchedTags, nonSpecialSearchTerms, page, limit, specialSearchFilters, searchInclude);
@@ -34,7 +34,7 @@ let getPersonalBookmarksForTagsAndTerms = async function (userId, searchedTags,
3434
if(searchInclude === 'any') {
3535
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
3636
} else {
37-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
37+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
3838
}
3939
}
4040

@@ -63,7 +63,7 @@ let getPersonalBookmarksForSearchedTerms = async function ( userId, nonSpecialSe
6363
if(searchInclude === 'any') {
6464
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
6565
} else {
66-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
66+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
6767
}
6868
}
6969
addSpecialSearchFiltersToMongoFilter(specialSearchFilters, filter);

backend/src/routes/users/bookmarks/personal-bookmarks.router.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ personalBookmarksRouter.get('/', keycloak.protect(), async (request, response, n
5252
} else {
5353
next();
5454
}
55-
5655
});
5756

5857
/* GET bookmark of user by location*/

backend/src/common/notes-search.service.js renamed to backend/src/routes/users/notes/notes-search.service.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
const Note = require('../model/note');
1+
const Note = require('../../../model/note');
22

3-
const bookmarksSearchHelper = require('./bookmarks-search.helper');
3+
const searchUtils = require('../../../common/search.utils');
44

55
let findNotes = async function (userId, query, page, limit, searchInclude) {
66
//split in text and tags
7-
const searchedTermsAndTags = bookmarksSearchHelper.splitSearchQuery(query);
7+
const searchedTermsAndTags = searchUtils.splitSearchQuery(query);
88
let searchedTerms = searchedTermsAndTags.terms;
99
const searchedTags = searchedTermsAndTags.tags;
1010
let notes = [];
1111

12-
const {specialSearchFilters, nonSpecialSearchTerms} = bookmarksSearchHelper.extractSpecialSearchTerms(searchedTerms);
12+
const {specialSearchFilters, nonSpecialSearchTerms} = searchUtils.extractSpecialSearchTerms(searchedTerms);
1313

1414
if ( searchedTerms.length > 0 && searchedTags.length > 0 ) {
1515
notes = await getNotesForTagsAndTerms(userId, searchedTags, nonSpecialSearchTerms, page, limit, specialSearchFilters, searchInclude);
@@ -36,7 +36,7 @@ let getNotesForTagsAndTerms = async function (userId, searchedTags, nonSpecialSe
3636
if ( searchInclude === 'any' ) {
3737
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
3838
} else {
39-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
39+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
4040
}
4141
}
4242

@@ -65,7 +65,7 @@ let getNotesForSearchedTerms = async function (userId, nonSpecialSearchTerms, pa
6565
if ( searchInclude === 'any' ) {
6666
filter.$text = {$search: nonSpecialSearchTerms.join(' ')}
6767
} else {
68-
filter.$text = {$search: bookmarksSearchHelper.generateFullSearchText(nonSpecialSearchTerms)};
68+
filter.$text = {$search: searchUtils.generateFullSearchText(nonSpecialSearchTerms)};
6969
}
7070
}
7171

backend/src/routes/users/notes/personal-notes.router.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const personalNotesRouter = express.Router({mergeParams: true});
33
const Keycloak = require('keycloak-connect');
44

55
const PersonalNotesService = require('./personal-notes.service');
6-
const NotesSearchService = require('../../../common/notes-search.service');
6+
const NotesSearchService = require('./notes-search.service');
77
const UserIdValidator = require('../userid.validator');
88
const PaginationQueryParamsHelper = require('../../../common/pagination-query-params-helper');
99

backend/src/routes/users/personal-search.service.js

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const personalBookmarksSearchService = require('./bookmarks/personal-bookmarks-search.service');
22
const personalSnippetsSearchService = require('../../common/snippets-search.service');
3-
const personalNotesSearchService = require('../../common/notes-search.service');
3+
const personalNotesSearchService = require('./notes/notes-search.service');
44

55
let getPersonalSearchResults = async function (userId, query, page, limit, searchInclude) {
66

@@ -9,31 +9,6 @@ let getPersonalSearchResults = async function (userId, query, page, limit, searc
99
const foundNotes = await personalNotesSearchService.findNotes(userId, query, page, limit, searchInclude);
1010

1111
return merge([foundBookmarks, foundSnippets, foundNotes], scoreDescending);
12-
//return mergeResultsByScore(foundBookmarks, foundSnippets);
13-
}
14-
15-
function mergeResultsByScore(arr1, arr2) {
16-
let i = 0;
17-
let j = 0;
18-
let result = [];
19-
while (i < arr1.length && j < arr2.length) {
20-
if ( arr1[i].score >= arr2[j].score ) {
21-
result.push(arr1[i]);
22-
i++;
23-
} else {
24-
result.push(arr2[j]);
25-
j++;
26-
}
27-
}
28-
while (i < arr1.length) {
29-
result.push(arr1[i]);
30-
i++;
31-
}
32-
while (j < arr2.length) {
33-
result.push(arr2[j]);
34-
j++;
35-
}
36-
return result;
3712
}
3813

3914
function merge(arrays, sortFunc) {

frontend/src/app/search-results/search-results-page.component.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<i class="fa fa-search"></i> Search any
2222
</button>
2323
</span>
24+
<br/>
2425
<br/>
2526
{{searchInOtherCategoriesTip}}
2627
</div>
@@ -54,6 +55,7 @@
5455
<i class="fa fa-search"></i> Search any
5556
</button>
5657
</span>
58+
<br/>
5759
<br/>
5860
{{searchInOtherCategoriesTip}}
5961
</div>
@@ -88,6 +90,7 @@
8890
</button>
8991
</span>
9092
<br/>
93+
<br/>
9194
{{searchInOtherCategoriesTip}}
9295
</div>
9396
<app-async-snippet-list
@@ -118,6 +121,7 @@
118121
</button>
119122
</span>
120123
<br/>
124+
<br/>
121125
{{searchInOtherCategoriesTip}}
122126
</div>
123127
<app-async-note-list
@@ -147,6 +151,7 @@
147151
</button>
148152
</span>
149153
<br/>
154+
<br/>
150155
{{searchInOtherCategoriesTip}}
151156
</div>
152157
<ng-template #showPubliBookmarksResults>
@@ -189,6 +194,7 @@
189194
</button>
190195
</span>
191196
<br/>
197+
<br/>
192198
{{searchInOtherCategoriesTip}}
193199
</div>
194200
<app-async-snippet-list

0 commit comments

Comments
 (0)