blob: 7bd6916f4ff56ed61c892e3e722091f14eba59f2 [file] [log] [blame]
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +02001import {escapeUsername} from '../common/communityConsoleUtils.js';
Adrià Vilanova Martínezd269c622021-09-04 18:35:55 +02002import {getOptions} from '../common/optionsUtils.js';
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +02003
Adrià Vilanova Martínez1f652522021-10-14 00:23:23 +02004import {getSearchUrl, injectPreviousPostsLinksUnifiedProfile} from './utilsCommon/unifiedProfiles.js';
avm99963104bad32021-02-05 22:00:44 +01005
Adrià Vilanova Martínez1f652522021-10-14 00:23:23 +02006// TODO(b/twpowertools/80): Remove this code.
Adrià Vilanova Martínez56d4d182021-06-09 14:56:15 +02007function injectPreviousPostsLinksOldProfile() {
8 if (document.querySelector('.user-profile__user-links') === null) {
avm99963b69eb3d2020-08-20 02:03:44 +02009 var nameElement = document.querySelector('.user-profile__user-name');
avm99963d0757252019-03-30 20:13:00 +010010 if (nameElement !== null) {
avm99963104bad32021-02-05 22:00:44 +010011 var profileLink = document.querySelector('.community-console');
12 if (profileLink === null) {
13 console.error(
14 '[previousposts] ' +
15 'The user is not a PE so we can\'t show the previous posts link.');
16 return;
17 }
18
19 var profileUrl = profileLink.href || '';
20 var profileUrlSplit = profileUrl.split('/forum/');
21 if (profileUrlSplit.length < 2) {
22 console.error('[previousposts] Can\'t get forum id.');
23 return;
24 }
25
26 var forumId = profileUrlSplit[1].split('/')[0];
avm9996314116b02020-11-02 14:04:14 +010027 var name = escapeUsername(nameElement.textContent);
avm99963104bad32021-02-05 22:00:44 +010028 var filter =
29 '(creator:"' + name + '" | replier:"' + name + '") forum:' + forumId;
Adrià Vilanova Martínez56d4d182021-06-09 14:56:15 +020030 var url = getSearchUrl(filter);
avm999630bd07f62020-09-01 20:18:06 +020031
32 var links = document.createElement('div');
33 links.classList.add('user-profile__user-links');
34
35 var linkTitle = document.createElement('div');
36 linkTitle.classList.add('user-profile__user-link-title');
37 linkTitle.textContent = chrome.i18n.getMessage('inject_links');
38
39 links.appendChild(linkTitle);
40
41 var ul = document.createElement('ul');
42
43 var li = document.createElement('li');
44 li.classList.add('user-profile__user-link');
45
46 var a = document.createElement('a');
avm9996306167752020-09-08 00:50:36 +020047 a.classList.add('user-profile__user-link', 'TWPT-user-link');
avm999630bd07f62020-09-01 20:18:06 +020048 a.href = url;
49 a.setAttribute(
50 'data-stats-id', 'user-posts-link--tw-power-tools-by-avm99963');
avm999630bd07f62020-09-01 20:18:06 +020051
avm9996306167752020-09-08 00:50:36 +020052 var badge = document.createElement('span');
53 badge.classList.add('TWPT-badge');
54 badge.setAttribute(
55 'title', chrome.i18n.getMessage('inject_extension_badge_helper', [
56 chrome.i18n.getMessage('appName')
57 ]));
58
59 var badgeImg = document.createElement('img');
60 badgeImg.src =
61 'https://fonts.gstatic.com/s/i/materialicons/repeat/v6/24px.svg';
62
63 badge.appendChild(badgeImg);
64 a.appendChild(badge);
65
66 var span = document.createElement('span');
67 span.textContent = chrome.i18n.getMessage('inject_previousposts');
68
69 a.appendChild(span);
avm999630bd07f62020-09-01 20:18:06 +020070 li.appendChild(a);
71 ul.appendChild(li);
72 links.appendChild(ul);
73
avm99963b69eb3d2020-08-20 02:03:44 +020074 document.querySelector('.user-profile__user-details-container')
avm999630bd07f62020-09-01 20:18:06 +020075 .appendChild(links);
avm99963104bad32021-02-05 22:00:44 +010076 } else {
77 console.error('[previousposts] Can\'t find username.');
avm99963d0757252019-03-30 20:13:00 +010078 }
79 }
Adrià Vilanova Martínez56d4d182021-06-09 14:56:15 +020080}
81
Adrià Vilanova Martínezd269c622021-09-04 18:35:55 +020082getOptions('history').then(options => {
83 if (options?.history) {
Adrià Vilanova Martínez56d4d182021-06-09 14:56:15 +020084 if (document.getElementById('unified-user-profile') !== null)
Adrià Vilanova Martínez1f652522021-10-14 00:23:23 +020085 injectPreviousPostsLinksUnifiedProfile(/* isCommunityConsole = */ false);
Adrià Vilanova Martínez56d4d182021-06-09 14:56:15 +020086 else
87 injectPreviousPostsLinksOldProfile();
88 }
avm99963d0757252019-03-30 20:13:00 +010089});