Skip to content

Commit 7c9405f

Browse files
jr-rkmilanmajchrak
authored andcommitted
UFAL/Searching problems in Manage Handles table (#882)
* locked searchbar when searchOption is not picked * edited Resource Type search option to not be case-sensitive * edited Resource Type search option to show nothing when there is no match * try to set lowercase constants without toLowerCase method * Added full list of handles for empty Resource Type search option * refactored empty searchQueries handling and added comment for invalid resourcetype search inputs
1 parent c99c834 commit 7c9405f

4 files changed

Lines changed: 43 additions & 37 deletions

File tree

src/app/handle-page/handle-table/handle-table.component.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ <h5 class="card-header">{{ 'handle-table.title' | translate }}</h5>
2121
</div>
2222
</div>
2323
<input type="text" id="clarin-dc-search-box" class="form-control" aria-label="Text input with dropdown button"
24-
[(ngModel)]="searchQuery">
24+
[(ngModel)]="searchQuery"
25+
[disabled]="!searchOption">
2526
<span class="input-group-append" (click)="searchHandles()">
2627
<button type="submit" class="btn btn-primary search-button">
2728
<i class="fas fa-search"></i>{{'handle-table.dropdown.search-button' | translate}}</button>

src/app/handle-page/handle-table/handle-table.component.ts

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -373,40 +373,45 @@ export class HandleTableComponent implements OnInit {
373373
// parse searchQuery for the server request
374374
// the new sorting query is in the format e.g. `handle:123456`, `resourceTypeId:2`, `url:internal`
375375
let parsedSearchOption = '';
376-
let parsedSearchQuery = this.searchQuery;
377-
switch (this.searchOption) {
378-
case this.handleOption:
379-
parsedSearchOption = HANDLE_SEARCH_OPTION;
380-
break;
381-
case this.internalOption:
382-
// if the handle doesn't have the URL - is internal, if it does - is external
383-
parsedSearchOption = URL_SEARCH_OPTION;
384-
if (this.searchQuery.toLowerCase() === 'yes') {
385-
parsedSearchQuery = 'internal';
386-
} else if (this.searchQuery.toLowerCase() === 'no') {
387-
parsedSearchQuery = 'external';
388-
}
389-
break;
390-
case this.resourceTypeOption:
391-
parsedSearchOption = RESOURCE_TYPE_SEARCH_OPTION;
392-
// parse resourceType from string to the number because the resourceType is integer on the server
393-
switch (this.searchQuery) {
394-
case ITEM:
395-
parsedSearchQuery = '' + 2;
396-
break;
397-
case COLLECTION:
398-
parsedSearchQuery = '' + 3;
399-
break;
400-
case COMMUNITY:
401-
parsedSearchQuery = '' + 4;
402-
break;
403-
case SITE:
404-
parsedSearchQuery = '' + 5;
405-
}
406-
break;
407-
default:
408-
parsedSearchOption = '';
409-
break;
376+
let parsedSearchQuery = '';
377+
if (this.searchQuery) {
378+
parsedSearchQuery = this.searchQuery;
379+
switch (this.searchOption) {
380+
case this.handleOption:
381+
parsedSearchOption = HANDLE_SEARCH_OPTION;
382+
break;
383+
case this.internalOption:
384+
// if the handle doesn't have the URL - is internal, if it does - is external
385+
parsedSearchOption = URL_SEARCH_OPTION;
386+
if (this.searchQuery.toLowerCase() === 'yes') {
387+
parsedSearchQuery = 'internal';
388+
} else if (this.searchQuery.toLowerCase() === 'no') {
389+
parsedSearchQuery = 'external';
390+
}
391+
break;
392+
case this.resourceTypeOption:
393+
parsedSearchOption = RESOURCE_TYPE_SEARCH_OPTION;
394+
// parse resourceType from string to the number because the resourceType is integer on the server
395+
switch (this.searchQuery.toLowerCase()) {
396+
case ITEM.toLowerCase():
397+
parsedSearchQuery = '' + 2;
398+
break;
399+
case COLLECTION.toLowerCase():
400+
parsedSearchQuery = '' + 3;
401+
break;
402+
case COMMUNITY.toLowerCase():
403+
parsedSearchQuery = '' + 4;
404+
break;
405+
case SITE.toLowerCase():
406+
parsedSearchQuery = '' + 5;
407+
break;
408+
// no results for invalid search inputs
409+
default:
410+
parsedSearchQuery = '' + -1;
411+
break;
412+
}
413+
break;
414+
}
410415
}
411416

412417
this.sortConfiguration.field = parsedSearchOption + ':' + parsedSearchQuery;

src/assets/i18n/cs.json5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2469,7 +2469,7 @@
24692469
// "handle-table.table.handle": "Handle",
24702470
"handle-table.table.handle": "Handle",
24712471
// "handle-table.table.internal": "Internal",
2472-
"handle-table.table.internal": "Interní",
2472+
"handle-table.table.internal": "Je interní",
24732473
// "handle-table.table.is-internal": "Yes",
24742474
"handle-table.table.is-internal": "Ano",
24752475
// "handle-table.table.not-internal": "No",

src/assets/i18n/en.json5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2029,7 +2029,7 @@
20292029

20302030
"handle-table.table.handle": "Handle",
20312031

2032-
"handle-table.table.internal": "Internal",
2032+
"handle-table.table.internal": "Is Internal",
20332033

20342034
"handle-table.table.is-internal": "Yes",
20352035

0 commit comments

Comments
 (0)