Commit 940ff746 authored by Syntax_J's avatar Syntax_J

feat: add filter username

parent 5844ace3
Pipeline #14807 canceled with stages
in 2 minutes and 12 seconds
...@@ -294,3 +294,7 @@ form { ...@@ -294,3 +294,7 @@ form {
bottom: .75rem; bottom: .75rem;
width: 500px; width: 500px;
} }
#title-filter-username {
margin-left: 6px;
}
\ No newline at end of file
...@@ -289,7 +289,12 @@ ...@@ -289,7 +289,12 @@
</div> </div>
</div> </div>
</th> </th>
<th i18n class="title">游戏标题</th> <th class="title">
<div class="d-flex">
<span i18n class="align-self-end">游戏标题</span>
<input i18n-placeholder type="text" class="col-sm-6 form-control form-control-sm" id="title-filter-username" placeholder="支持玩家名称搜索房间" [(ngModel)]="replay_rooms_filter.username" (ngModelChange)="title_username_change_handler($event)" />
</div>
</th>
<th i18n class="users">玩家</th> <th i18n class="users">玩家</th>
<th i18n class="extra">额外选项</th> <th i18n class="extra">额外选项</th>
</tr> </tr>
......
...@@ -188,7 +188,8 @@ export class YGOProComponent implements OnInit, OnDestroy { ...@@ -188,7 +188,8 @@ export class YGOProComponent implements OnInit, OnDestroy {
single: true, single: true,
match: true, match: true,
tag: true, tag: true,
windbot: false windbot: false,
username: ''
}; };
matching: ISubscription | undefined; matching: ISubscription | undefined;
...@@ -199,6 +200,7 @@ export class YGOProComponent implements OnInit, OnDestroy { ...@@ -199,6 +200,7 @@ export class YGOProComponent implements OnInit, OnDestroy {
join_password: string; join_password: string;
host_password = (this.loginService.user.external_id ^ 0x54321).toString(); host_password = (this.loginService.user.external_id ^ 0x54321).toString();
title_username_change_handler = _.debounce(this.title_username_change, 500);
constructor(private http: Http, private appsService: AppsService, private loginService: LoginService, constructor(private http: Http, private appsService: AppsService, private loginService: LoginService,
public settingsService: SettingsService, private ref: ChangeDetectorRef) { public settingsService: SettingsService, private ref: ChangeDetectorRef) {
...@@ -276,6 +278,35 @@ export class YGOProComponent implements OnInit, OnDestroy { ...@@ -276,6 +278,35 @@ export class YGOProComponent implements OnInit, OnDestroy {
}); });
return a_priority - b_priority; return a_priority - b_priority;
}); });
if (this.replay_rooms_filter.username.length > 0) {
this.handle_filter_username();
}
}
handle_filter_username() {
const filter_username = this.replay_rooms_filter.username.toLowerCase().trim();
if (filter_username === '') return;
let username_filter_rooms = [];
this.replay_rooms_show.forEach(room => {
const [user_a, user_b] = room.users;
const user_a_name = (user_a && user_a.username.toLowerCase()) || '';
const user_b_name = (user_b && user_b.username.toLowerCase()) || '';
if (user_a_name !== '' || user_b_name !== '') {
const targetStr = `${user_a_name}/${user_b_name}`;
if (targetStr.includes(filter_username)) {
username_filter_rooms.push(room);
}
}
});
this.replay_rooms_show = username_filter_rooms;
}
title_username_change(input_value: string) {
if (input_value.length) {
this.handle_filter_username();
} else {
this.refresh_replay_rooms();
}
} }
getYGOProData(app: App) { getYGOProData(app: App) {
......
{ {
"name": "mycard", "name": "mycard",
"version": "3.0.54", "version": "3.0.58",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"version": "3.0.54", "version": "3.0.58",
"hasInstallScript": true, "hasInstallScript": true,
"license": "UNLICENSED", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"@angular/animations": "4.2.6", "@angular/animations": "4.2.6",
"@angular/common": "4.2.6", "@angular/common": "4.2.6",
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
"glob": "7.1.2", "glob": "7.1.2",
"ini": "1.3.4", "ini": "1.3.4",
"jquery": "2.2.4", "jquery": "2.2.4",
"jquery-i18n": "github:recurser/jquery-i18n", "jquery-i18n": "recurser/jquery-i18n",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"marked": "0.3.6", "marked": "0.3.6",
"mustache": "^4.2.0", "mustache": "^4.2.0",
...@@ -8904,7 +8904,7 @@ ...@@ -8904,7 +8904,7 @@
}, },
"jquery-i18n": { "jquery-i18n": {
"version": "git+ssh://git@github.com/recurser/jquery-i18n.git#513d1493729a1bb3c5c1937fb8604cf2aedb7884", "version": "git+ssh://git@github.com/recurser/jquery-i18n.git#513d1493729a1bb3c5c1937fb8604cf2aedb7884",
"from": "jquery-i18n@github:recurser/jquery-i18n", "from": "jquery-i18n@recurser/jquery-i18n",
"requires": {} "requires": {}
}, },
"js-tokens": { "js-tokens": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment