Skip to content

Commit d7aee94

Browse files
committed
fix(asana.js): update project header selector and include it in board view
1 parent a448a2c commit d7aee94

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/content/asana.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@
55
*/
66
'use strict';
77

8+
const projectHeaderSelector = () => {
9+
// Try to look for for page project title instead.
10+
const projectHeader = document.querySelector(
11+
'.ProjectPageHeaderProjectTitle-container',
12+
);
13+
14+
if (!projectHeader) {
15+
return '';
16+
}
17+
return projectHeader.textContent
18+
.replace(/\u00a0/g, ' ') // There can be   in Asana header content
19+
.trim();
20+
};
821

922
// Board view. Inserts button next to assignee/due date.
1023
togglbutton.render('.BoardCardLayout:not(.toggl)', { observe: true },
@@ -15,12 +28,14 @@ togglbutton.render('.BoardCardLayout:not(.toggl)', { observe: true },
1528
}
1629

1730
const descriptionSelector = () => boadCardElem.querySelector('.BoardCard-taskName').textContent.trim();
31+
1832

1933
const link = togglbutton.createTimerLink({
2034
className: 'asana-board-view',
2135
description: descriptionSelector,
2236
buttonType: 'minimal',
23-
// N.B. Tags and ProjectName cannot be supported on board view as the information is not available.
37+
projectName: projectHeaderSelector,
38+
// N.B. Tags cannot be supported on board view as the information is not available.
2439
});
2540

2641
const injectContainer = boadCardElem.querySelector('.BoardCardLayout-actionButtons');
@@ -41,19 +56,7 @@ togglbutton.render('.SpreadsheetRow .SpreadsheetTaskName:not(.toggl)', { observe
4156
}
4257

4358
const descriptionSelector = () => taskNameCell.querySelector('textarea').textContent.trim();
44-
const projectHeaderSelector = () => {
45-
// Try to look for for page project title instead.
46-
const projectHeader = document.querySelector(
47-
'.TopbarPageHeaderStructure.ProjectPageHeader .ProjectPageHeaderProjectTitle-shadow',
48-
);
49-
50-
if (!projectHeader) {
51-
return '';
52-
}
53-
return projectHeader.textContent
54-
.replace(/\u00a0/g, ' ') // There can be   in Asana header content
55-
.trim();
56-
};
59+
5760
const projectSelector = () => {
5861
const projectCell = container.querySelector('.SpreadsheetTaskRow-projectsCell');
5962
if (!projectCell) {

0 commit comments

Comments
 (0)