mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-17 10:22:36 +00:00
Resolve "Fix web-frontend not loading for IE and Safari versions less than 16.4"
This commit is contained in:
parent
ba13b341b9
commit
a4e9087663
5 changed files with 45 additions and 30 deletions
backend/src/baserow/contrib/database/search
changelog/entries/unreleased/bug
e2e-tests
web-frontend/modules/database/search
|
@ -5,14 +5,14 @@ These regexes must be kept in sync with web-frontend/modules/database/search/reg
|
|||
import re
|
||||
|
||||
RE_ONE_OR_MORE_WHITESPACE = re.compile(r"\s+", re.UNICODE)
|
||||
RE_TO_REMOVE_EMAIL_URL_AND_POSITIVE_INT_PUNCTUATION = r"[@:/+]"
|
||||
RE_DASH_OR_DOT_NOT_FOLLOWED_BY_DIGIT = r"[-.](?!\d)"
|
||||
RE_DASH_OR_DOT_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT = r"(?<=\S)[-\.](?=\d)"
|
||||
RE_TO_REMOVE_EMAIL_URL_AND_POSITIVE_INT_PUNCTUATION = r"[@:/+.]"
|
||||
RE_DASH_NOT_FOLLOWED_BY_DIGIT = r"-(?!\d)"
|
||||
RE_DASH_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT = r"(?<=\S)-(?=\d)"
|
||||
RE_STANDALONE_DASH = r"\b-\b"
|
||||
RE_MATCH_ALL_DASH_AND_DOTS_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS = "|".join(
|
||||
RE_MATCH_ALL_DASH_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS = "|".join(
|
||||
[
|
||||
RE_DASH_OR_DOT_NOT_FOLLOWED_BY_DIGIT,
|
||||
RE_DASH_OR_DOT_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT,
|
||||
RE_DASH_NOT_FOLLOWED_BY_DIGIT,
|
||||
RE_DASH_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT,
|
||||
RE_STANDALONE_DASH,
|
||||
]
|
||||
)
|
||||
|
@ -31,13 +31,13 @@ RE_REMOVE_NON_SEARCHABLE_PUNCTUATION_FROM_TSVECTOR_DATA = re.compile(
|
|||
"|".join(
|
||||
[
|
||||
RE_TO_REMOVE_EMAIL_URL_AND_POSITIVE_INT_PUNCTUATION,
|
||||
RE_MATCH_ALL_DASH_AND_DOTS_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
RE_MATCH_ALL_DASH_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
]
|
||||
),
|
||||
re.UNICODE,
|
||||
)
|
||||
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH_OR_DOT = r"[^\w\s\-.]"
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH = r"[^\w\s\-]"
|
||||
|
||||
"""
|
||||
This regex is used on search terms provided by users before we construct a value
|
||||
|
@ -61,9 +61,9 @@ then join with <->!
|
|||
RE_REMOVE_ALL_PUNCTUATION_ALREADY_REMOVED_FROM_TSVS_FOR_QUERY = re.compile(
|
||||
"|".join(
|
||||
[
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH_OR_DOT,
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH,
|
||||
"_",
|
||||
RE_MATCH_ALL_DASH_AND_DOTS_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
RE_MATCH_ALL_DASH_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
]
|
||||
),
|
||||
re.UNICODE,
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"type": "bug",
|
||||
"message": "fix web frontend not loading for ie and safari versions less than 16 4",
|
||||
"issue_number": 1866,
|
||||
"bullet_points": [],
|
||||
"created_at": "2023-07-20"
|
||||
}
|
|
@ -160,6 +160,11 @@ export class TablePage extends BaserowPage {
|
|||
}
|
||||
|
||||
async waitForFirstCellNotBeBlank() {
|
||||
await this.page.evaluate(() => {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(resolve, 1000); // Sleep for 1000 milliseconds (1 second)
|
||||
});
|
||||
});
|
||||
await expect(this.firstNonPrimaryCell.locator('*')).not.toHaveCount(0)
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ import {
|
|||
updateField
|
||||
} from "../../fixtures/field";
|
||||
import {updateRows} from "../../fixtures/rows";
|
||||
import ro from "@faker-js/faker/locales/ro";
|
||||
|
||||
let user = null;
|
||||
let sharedPageTestData: SharedTestData = null;
|
||||
|
@ -436,6 +435,7 @@ const fieldTypes = [
|
|||
doesNotMatch('-', '-'),
|
||||
// Email cases
|
||||
matches('test@google.com', '.com', 'test', 'google'),
|
||||
matches('a.b', 'a', 'b', 'a/b'),
|
||||
// Date cases
|
||||
matches('10-20-2023', '10', '20', '2023', '10-20', '10-20-2023', '20-2023', '10/20/2023'),
|
||||
doesNotMatch('10-20-2023', '23', '0', '3'),
|
||||
|
|
|
@ -4,45 +4,48 @@
|
|||
* more detail on what these regexes are being used for.
|
||||
*/
|
||||
|
||||
const RE_ONE_OR_MORE_WHITESPACE = /\s+/g
|
||||
const RE_DASH_OR_DOT_NOT_FOLLOWED_BY_DIGIT = '[-.](?!\\d)'
|
||||
const RE_DASH_OR_DOT_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT =
|
||||
'(?<=\\S)[-\\.](?=\\d)'
|
||||
const RE_STANDALONE_DASH = '\\b-\\b'
|
||||
const RE_MATCH_ALL_DASH_AND_DOTS_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS =
|
||||
[
|
||||
RE_DASH_OR_DOT_NOT_FOLLOWED_BY_DIGIT,
|
||||
RE_DASH_OR_DOT_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT,
|
||||
function getSearchRegex() {
|
||||
const RE_DASH_NOT_FOLLOWED_BY_DIGIT = '-(?!\\d)'
|
||||
const RE_STANDALONE_DASH = '\\b-\\b'
|
||||
// The backend RE_DASH_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT is
|
||||
// implemented by a second replace call
|
||||
const RE_MATCH_ALL_DASH_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS = [
|
||||
RE_DASH_NOT_FOLLOWED_BY_DIGIT,
|
||||
RE_STANDALONE_DASH,
|
||||
].join('|')
|
||||
|
||||
// Note that \w in python is translated the equivilant unicode word matching javascript
|
||||
// regex \\p{L}\\p{M}
|
||||
const RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH_OR_DOT =
|
||||
'[^\\p{L}\\p{M}\\p{N}\\s\\-.]'
|
||||
const RE_REMOVE_ALL_PUNCTUATION_ALREADY_REMOVED_FROM_TSVS_FOR_QUERY =
|
||||
new RegExp(
|
||||
// Note that \w in python is translated the equivilant unicode word matching javascript
|
||||
// regex \\p{L}\\p{M}
|
||||
const RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH =
|
||||
'[^\\p{L}\\p{M}\\p{N}\\s\\-]'
|
||||
return new RegExp(
|
||||
[
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH_OR_DOT,
|
||||
RE_ALL_NON_WHITESPACE_OR_WORD_CHARACTERS_EXCLUDING_DASH,
|
||||
'_',
|
||||
RE_MATCH_ALL_DASH_AND_DOTS_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
RE_MATCH_ALL_DASH_OTHER_THAN_NEGATIVE_NUMBERS_AND_DECIMAL_NUMBERS,
|
||||
].join('|'),
|
||||
'gu'
|
||||
)
|
||||
}
|
||||
|
||||
export function convertStringToMatchBackendTsvectorData(inputString) {
|
||||
if (inputString === null || inputString === undefined) {
|
||||
return ''
|
||||
}
|
||||
const RE_ONE_OR_MORE_WHITESPACE = /\s+/g
|
||||
// Some browsers don't support look behinds so use a replace with capture groups
|
||||
// instead.
|
||||
const RE_DASH_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT = /(\S)-(\d)/gu
|
||||
const initialTrimmedLoweredInputString = inputString
|
||||
.toString()
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
const punctuationStrippedValueMatchingBackendTsvColumnData =
|
||||
initialTrimmedLoweredInputString
|
||||
.replace(getSearchRegex(), ' ')
|
||||
.replace(
|
||||
RE_REMOVE_ALL_PUNCTUATION_ALREADY_REMOVED_FROM_TSVS_FOR_QUERY,
|
||||
' '
|
||||
RE_DASH_PRECEDED_BY_NON_WHITESPACE_AND_FOLLOWED_BY_DIGIT,
|
||||
'$1 $2'
|
||||
)
|
||||
.toLowerCase()
|
||||
return punctuationStrippedValueMatchingBackendTsvColumnData
|
||||
|
|
Loading…
Add table
Reference in a new issue