> {
if (StringHelper.isEmpty(searchServiceHost)) {
this.client = null;
} else {
- this.client = new HttpSolrClient.Builder(searchServiceHost).build();
+ this.client = new HttpSolrClient.Builder(searchServiceHost)
+ .withConnectionTimeout(2000) // timeout for connecting to Solr server
+ .withSocketTimeout(5000) // timeout for reading data
+ .build();
}
}
diff --git a/src/main/java/teammates/ui/servlets/WebSecurityHeaderFilter.java b/src/main/java/teammates/ui/servlets/WebSecurityHeaderFilter.java
index af5ea02f033..ba8f3d64250 100644
--- a/src/main/java/teammates/ui/servlets/WebSecurityHeaderFilter.java
+++ b/src/main/java/teammates/ui/servlets/WebSecurityHeaderFilter.java
@@ -11,17 +11,23 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
+import teammates.common.util.Config;
+
/**
* Filter to add web security headers.
*/
public class WebSecurityHeaderFilter implements Filter {
+ private static final String IMG_SRC_CSP = Config.isDevServer()
+ ? "'self' data: http: https:"
+ : "'self' data: https:";
+
private static final String CSP_POLICY = String.join("; ", Arrays.asList(
"default-src 'none'",
"script-src 'self' https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://cdn.jsdelivr.net/",
"style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net/",
"frame-src 'self' docs.google.com https://www.google.com/recaptcha/",
- "img-src 'self' data: http: https:",
+ "img-src " + IMG_SRC_CSP,
"font-src 'self' https://cdn.jsdelivr.net/",
"connect-src 'self'",
"manifest-src 'self'",
diff --git a/src/main/resources/build.template.properties b/src/main/resources/build.template.properties
index 83dec985857..d407cf4965c 100644
--- a/src/main/resources/build.template.properties
+++ b/src/main/resources/build.template.properties
@@ -16,8 +16,8 @@ app.region=us-central1
# This is the version number of the app.
# Use dashes instead of dots because GAE does not allow dots in version number.
-# e.g. app.version = 7-0-0
-app.version = 7-0-0
+# e.g. app.version = 8-0-0
+app.version = 8-0-0
# This is the URL for the front-end dev server.
# This should be used only during development mode where the dev server needs to be whitelisted for CORS.
diff --git a/src/web/app/pages-instructor/instructor-search-page/__snapshots__/instructor-search-page.component.spec.ts.snap b/src/web/app/pages-instructor/instructor-search-page/__snapshots__/instructor-search-page.component.spec.ts.snap
index 5af3a386ee8..50da198d4ca 100644
--- a/src/web/app/pages-instructor/instructor-search-page/__snapshots__/instructor-search-page.component.spec.ts.snap
+++ b/src/web/app/pages-instructor/instructor-search-page/__snapshots__/instructor-search-page.component.spec.ts.snap
@@ -6,6 +6,7 @@ exports[`InstructorSearchPageComponent should snap with a search key 1`] = `
isSearching="false"
searchParams={[Function Object]}
searchService={[Function SearchService]}
+ searchWarningDisplayed="false"
statusMessageService={[Function StatusMessageService]}
studentsListRowTables={[Function Array]}
>
@@ -77,6 +78,7 @@ exports[`InstructorSearchPageComponent should snap with a student table 1`] = `
isSearching="false"
searchParams={[Function Object]}
searchService={[Function SearchService]}
+ searchWarningDisplayed="false"
statusMessageService={[Function StatusMessageService]}
studentsListRowTables={[Function Array]}
>
@@ -606,6 +608,7 @@ exports[`InstructorSearchPageComponent should snap with default fields 1`] = `
isSearching="false"
searchParams={[Function Object]}
searchService={[Function SearchService]}
+ searchWarningDisplayed="false"
statusMessageService={[Function StatusMessageService]}
studentsListRowTables={[Function Array]}
>
diff --git a/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.html b/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.html
index 1256ec64a38..150e016f07d 100644
--- a/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.html
+++ b/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.html
@@ -1,3 +1,9 @@
+
+ NOTE: We are currently upgrading the search infrastructure of the system.
+ During this period, you may find your search results not up-to-date, particularly for older data.
+
+ The upgrade is expected to finish by Aug 16, 2021. We apologize for any inconvenience caused.
+
diff --git a/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.ts b/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.ts
index 2e8fe64a5da..cbdc5b3c2f0 100644
--- a/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.ts
+++ b/src/web/app/pages-instructor/instructor-search-page/instructor-search-page.component.ts
@@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { forkJoin, Observable, of } from 'rxjs';
import { finalize, map, mergeMap } from 'rxjs/operators';
+import { environment } from '../../../environments/environment';
import { CourseService } from '../../../services/course.service';
import { InstructorSearchResult, SearchService } from '../../../services/search.service';
import { StatusMessageService } from '../../../services/status-message.service';
@@ -28,6 +29,7 @@ export class InstructorSearchPageComponent implements OnInit {
};
studentsListRowTables: SearchStudentsListRowTable[] = [];
isSearching: boolean = false;
+ searchWarningDisplayed: boolean = !!environment.searchWarningDisplayed;
constructor(
private statusMessageService: StatusMessageService,
diff --git a/src/web/data/developers.json b/src/web/data/developers.json
index e59af52ea1f..520c33db15d 100644
--- a/src/web/data/developers.json
+++ b/src/web/data/developers.json
@@ -77,8 +77,7 @@
"username": "95adityajain"
},
{
- "name": "Adrian Lachowicz",
- "username": "Adrian27045"
+ "name": "Adrian Lachowicz"
},
{
"multiple": true,
@@ -133,8 +132,7 @@
"username": "AlexM9200"
},
{
- "name": "Alexander Levy",
- "username": "allevy3"
+ "name": "Alexander Levy"
},
{
"name": "Alexandr Kolymago",
@@ -182,7 +180,7 @@
},
{
"name": "Andrew Jefferson",
- "username": "arkadyt"
+ "username": "iamarkadyt"
},
{
"name": "Andrew Levit",
@@ -320,6 +318,10 @@
"name": "Bjarke S.",
"username": "Wimpzer"
},
+ {
+ "multiple": true,
+ "username": "BoazWu"
+ },
{
"multiple": true,
"name": "Brian Coveney",
@@ -338,6 +340,10 @@
"name": "Chan Junwei",
"username": "chanjunweimy"
},
+ {
+ "name": "Chanwoo Jung",
+ "username": "ChanwooJung1"
+ },
{
"name": "Chao Song",
"username": "songchoa"
@@ -370,6 +376,11 @@
"name": "Chin Yong Wei",
"username": "vertigogarden"
},
+ {
+ "multiple": true,
+ "name": "Chloe Stapleton",
+ "username": "stapletonce"
+ },
{
"name": "Chng Zhi Xuan",
"username": "Chng-Zhi-Xuan"
@@ -437,11 +448,6 @@
"name": "Dante Radovani",
"username": "dRadest"
},
- {
- "multiple": true,
- "name": "Dao Ngoc Hieu",
- "username": "daongochieu2810"
- },
{
"multiple": true,
"name": "Daryl Lim"
@@ -469,6 +475,7 @@
"username": "dp80"
},
{
+ "name": "Diana Ramos",
"username": "Diana-Ramos"
},
{
@@ -555,6 +562,9 @@
"name": "Foo Yong Jie",
"username": "jadow"
},
+ {
+ "username": "frankelsf"
+ },
{
"name": "Fred Xu",
"username": "fairbet"
@@ -591,6 +601,9 @@
"name": "Georgios Theodorou",
"username": "gthd"
},
+ {
+ "username": "Gily-H"
+ },
{
"name": "Gonçalo Garcia",
"username": "GoncaloGarcia"
@@ -676,8 +689,7 @@
"username": "Malkone"
},
{
- "name": "Irene Tenison",
- "username": "ireneten"
+ "name": "Irene Tenison"
},
{
"name": "Ivan Rocha",
@@ -685,7 +697,7 @@
},
{
"name": "Jackson Hoggard",
- "username": "CremBluRay"
+ "username": "JacksonHoggard"
},
{
"name": "Jaikirat Singh Sandhu",
@@ -771,8 +783,7 @@
"username": "lehighjcut"
},
{
- "name": "Jordan Niskanen",
- "username": "jnisky"
+ "name": "Jordan Niskanen"
},
{
"name": "Jorge André",
@@ -912,6 +923,10 @@
"name": "Lakmal Padmakumara",
"username": "rclakmal"
},
+ {
+ "name": "Lan Yu Xuan",
+ "username": "Jellybeano"
+ },
{
"name": "Le Minh Duc",
"username": "darrenlmd"
@@ -935,11 +950,6 @@
"name": "Leonard Hio",
"username": "leonardhml"
},
- {
- "multiple": true,
- "name": "Li Jianhan",
- "username": "jianhandev"
- },
{
"multiple": true,
"name": "Lian Wenhui Florine"
@@ -952,11 +962,6 @@
"name": "Lim Jia Yee",
"username": "jia1"
},
- {
- "multiple": true,
- "name": "Lim Zi Wei",
- "username": "halfwhole"
- },
{
"name": "Liu Jia Hao",
"username": "LIUJIAHAOCS"
@@ -990,12 +995,13 @@
"username": "lmk1988"
},
{
+ "multiple": true,
"name": "Lye Yi Xian",
"username": "lyeyixian"
},
{
"name": "Mac Knight",
- "username": "Shels1909"
+ "username": "mfdooom"
},
{
"name": "Madhav Thakker",
@@ -1081,11 +1087,6 @@
{
"username": "misaunde"
},
- {
- "multiple": true,
- "name": "Mo Zongran",
- "username": "moziliar"
- },
{
"name": "Moaz Baghdadi",
"username": "moazbaghdadi"
@@ -1246,7 +1247,7 @@
{
"multiple": true,
"name": "Peh Shao Hong",
- "username": "pshken"
+ "username": "sh-ao"
},
{
"multiple": true,
@@ -1296,6 +1297,11 @@
"name": "Pravesh Jain",
"username": "praveshjain"
},
+ {
+ "multiple": true,
+ "name": "Priscilla Paulson",
+ "username": "pPris"
+ },
{
"name": "Prithviraj Billa"
},
@@ -1309,8 +1315,7 @@
"username": "Progyan1997"
},
{
- "name": "Pulasthi Harasgama",
- "username": "Pulasthih"
+ "name": "Pulasthi Harasgama"
},
{
"multiple": true,
@@ -1372,7 +1377,7 @@
},
{
"name": "Rohith Mukku",
- "username": "Naruto8"
+ "username": "rohithmukku"
},
{
"username": "RonMosenzon"
@@ -1411,11 +1416,13 @@
"username": "samatdav"
},
{
- "name": "Sandeep Choudhary",
- "username": "Skchoudhary"
+ "multiple": true,
+ "name": "Samuel Fang",
+ "username": "samuelfangjw"
},
{
- "username": "sandysingh11918"
+ "name": "Sandeep Choudhary",
+ "username": "Skchoudhary"
},
{
"name": "Sanjeev Kumar",
@@ -1641,6 +1648,11 @@
"multiple": true,
"name": "Tan Guo Wei"
},
+ {
+ "multiple": true,
+ "name": "Tan Jin",
+ "username": "tjtanjin"
+ },
{
"multiple": true,
"name": "Tan Jun Kiat",
@@ -1709,10 +1721,16 @@
"name": "Thng Kai Yuan",
"username": "thngkaiyuan"
},
+ {
+ "username": "tlhuynh"
+ },
{
"name": "Tom Elliott",
"username": "tomelliott1988"
},
+ {
+ "username": "TomKemperNL"
+ },
{
"username": "tong72"
},
@@ -1804,11 +1822,6 @@
"multiple": true,
"name": "Wu Lifu"
},
- {
- "multiple": true,
- "name": "Wu Qirui",
- "username": "hhdqirui"
- },
{
"name": "Wu Xiao Xiao",
"username": "a0129998"
@@ -1852,11 +1865,6 @@
"name": "Yatri Patel",
"username": "yatri1609"
},
- {
- "multiple": true,
- "name": "Yen Pinhsuan",
- "username": "ypinhsuan"
- },
{
"multiple": true,
"name": "Yen Zi Shyun"
@@ -1899,6 +1907,11 @@
"name": "Zhang Haoqiang",
"username": "haoqiang"
},
+ {
+ "multiple": true,
+ "name": "Zhang Xinyi",
+ "username": "xyzhang00"
+ },
{
"multiple": true,
"name": "Zheng Pingxia"
@@ -1911,27 +1924,44 @@
{
"name": "Zhu Yilun",
"username": "yilun-zhu"
+ }
+ ],
+ "committers": [
+ {
+ "name": "Yen Pinhsuan",
+ "username": "ypinhsuan",
+ "startPeriod": "May 2021"
},
{
- "name": "sofefr",
- "username": "sofefr"
+ "name": "Wu Qirui",
+ "username": "hhdqirui",
+ "startPeriod": "May 2021"
},
{
- "multiple": true,
- "name": "stapletonce",
- "username": "stapletonce"
+ "name": "Li Jianhan",
+ "username": "jianhandev",
+ "startPeriod": "Feb 2021"
},
{
- "name": "tlhuynh",
- "username": "tlhuynh"
- }
- ],
- "committers": [
+ "name": "Lim Zi Wei",
+ "username": "halfwhole",
+ "startPeriod": "Feb 2021"
+ },
+ {
+ "name": "Dao Ngoc Hieu",
+ "username": "daongochieu2810",
+ "startPeriod": "Feb 2021"
+ },
+ {
+ "name": "Mo Zongran",
+ "username": "moziliar",
+ "startPeriod": "Aug 2020"
+ },
{
"name": "Derek Zhuang",
"username": "Derek-Hardy",
"startPeriod": "May 2020",
- "endPeriod": "Jul 2020"
+ "endPeriod": "May 2021"
},
{
"name": "Daryl Chan",
@@ -2126,16 +2156,6 @@
"Committer (Apr 2015 - May 2015)"
]
},
- {
- "name": "Xiao Pu",
- "username": "xpdavid",
- "currentPosition": "Project Mentor (Aug 2020 - )",
- "pastPositions": [
- "Project Lead (Jun 2018 - Aug 2020)",
- "Area Lead (Jan 2018 - May 2018)",
- "Committer (Jan 2017 - Apr 2017)"
- ]
- },
{
"name": "Rahul Rajesh",
"username": "rrtheonlyone",
@@ -2154,18 +2174,10 @@
"Committer (Jan 2020 - May 2020)"
]
},
- {
- "name": "Ni Tianzhen",
- "username": "niqiukun",
- "currentPosition": "Area Lead (Aug 2020 - )",
- "pastPositions": [
- "Committer (Jan 2020 - May 2020)"
- ]
- },
{
"name": "Tiu Wee Han",
"username": "tiuweehan",
- "currentPosition": "Area Lead (Aug 2020 - )",
+ "currentPosition": "Snr Developer (Aug 2020 - )",
"pastPositions": [
"Committer (Jan 2020 - May 2020)"
]
@@ -2186,14 +2198,6 @@
"Committer (Jan 2020 - May 2020)"
]
},
- {
- "name": "Jason Tan",
- "username": "jtankw3",
- "currentPosition": "Snr Developer (Aug 2020 - )",
- "pastPositions": [
- "Committer (Jan 2020 - Jul 2020)"
- ]
- },
{
"name": "Chong Chee Yuan",
"username": "ccyccyccy",
@@ -2210,6 +2214,32 @@
"Committer (May 2020 - Jul 2020)"
]
},
+ {
+ "name": "Xiao Pu",
+ "username": "xpdavid",
+ "pastPositions": [
+ "Project Mentor (Aug 2020 - Dec 2020)",
+ "Project Lead (Jun 2018 - Aug 2020)",
+ "Area Lead (Jan 2018 - May 2018)",
+ "Committer (Jan 2017 - Apr 2017)"
+ ]
+ },
+ {
+ "name": "Ni Tianzhen",
+ "username": "niqiukun",
+ "pastPositions": [
+ "Snr Developer (Aug 2020 - Dec 2020)",
+ "Committer (Jan 2020 - May 2020)"
+ ]
+ },
+ {
+ "name": "Jason Tan",
+ "username": "jtankw3",
+ "pastPositions": [
+ "Snr Developer (Aug 2020 - Dec 2020)",
+ "Committer (Jan 2020 - Jul 2020)"
+ ]
+ },
{
"name": "Jiang Chunhui",
"username": "Adoby7",
diff --git a/src/web/environments/config.template.ts b/src/web/environments/config.template.ts
index b32b24ff2d3..812b5390e3c 100644
--- a/src/web/environments/config.template.ts
+++ b/src/web/environments/config.template.ts
@@ -5,7 +5,7 @@ export const config: any = {
/**
* The application version.
*/
- version: '7.0.0',
+ version: '8.0.0',
/**
* The URL of page to be loaded for the account request page.
@@ -29,4 +29,10 @@ export const config: any = {
* Under maintenance mode, all requests to the front-end will be routed to the "under maintenance" page.
*/
maintenance: false,
+
+ /**
+ * Indicates whether search feature warning should be displayed.
+ */
+ searchWarningDisplayed: false,
+
};