Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sentry fix #3626

Merged
merged 8 commits into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions public/js/cat_source/es6/actions/SegmentActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import {getSegmentsIssues} from '../api/getSegmentsIssues'
import {sendSegmentVersionIssue} from '../api/sendSegmentVersionIssue'
import {getSegmentVersionsIssues} from '../api/getSegmentVersionsIssues'
import {sendSegmentVersionIssueComment} from '../api/sendSegmentVersionIssueComment'
import SegmentFilter from '../components/header/cattol/segment_filter/segment_filter'

const SegmentActions = {
localStorageCommentsClosed:
Expand Down Expand Up @@ -1401,7 +1402,11 @@ const SegmentActions = {
localStorage.setItem(this.localStorageCommentsClosed, true)
},
gotoNextSegment() {
if (SegmentsFilterUtil.enabled() && SegmentsFilterUtil.filtering()) {
if (
SegmentsFilterUtil.enabled() &&
SegmentsFilterUtil.filtering() &&
SegmentsFilterUtil.open
) {
SegmentsFilterUtil.gotoNextSegment(SegmentStore.getCurrentSegmentId())
} else {
let next = SegmentStore.getNextSegment()
Expand All @@ -1424,7 +1429,11 @@ const SegmentActions = {
// this is expected behaviour in review
// change this if we are filtering, go to the next
// segment, assuming the sample is what we want to revise.
if (SegmentsFilterUtil.enabled() && SegmentsFilterUtil.filtering()) {
if (
SegmentsFilterUtil.enabled() &&
SegmentsFilterUtil.filtering() &&
SegmentsFilterUtil.open
) {
SegmentsFilterUtil.gotoNextTranslatedSegment(sid)
} else {
const nextTranslatedSegment = SegmentStore.getNextSegment({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export const TargetLanguagesSelect = () => {

const getActiveLabel = () => targetLangs.map(({name}) => name).join(',')
const openModal = () =>
languages.length > 0 && setIsOpenMultiselectLanguages(true)
languages?.length > 0 && setIsOpenMultiselectLanguages(true)

return (
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ import {CreateProjectContext} from './CreateProjectContext'
import {orderTmKeys} from '../settingsPanel/Contents/TranslationMemoryGlossaryTab'

export const TmGlossarySelect = () => {
const {SELECT_HEIGHT, tmKeys, setOpenSettings, modifyingCurrentTemplate} =
useContext(CreateProjectContext)
const {
SELECT_HEIGHT,
tmKeys,
setOpenSettings,
modifyingCurrentTemplate,
projectTemplates,
} = useContext(CreateProjectContext)

const tmKeyActive = Array.isArray(tmKeys)
? tmKeys.filter(({isActive}) => isActive)
Expand Down Expand Up @@ -34,7 +39,7 @@ export const TmGlossarySelect = () => {
className={`${hasNoPrivateKeys ? 'select-without-private-keys' : ''}`}
maxHeightDroplist={SELECT_HEIGHT}
showSearchBar={true}
isDisabled={!tmKeys}
isDisabled={!tmKeys || !projectTemplates?.length}
options={tmKeys}
multipleSelect={'dropdown'}
activeOptions={tmKeyActive}
Expand Down
8 changes: 5 additions & 3 deletions public/js/cat_source/es6/components/header/ActionMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ export const ActionMenu = ({
const getQualityReportMenu = () => {
return (
<ul className="menu">
<li className="item" title="Revise" data-value="revise">
<a href={jobUrls.revise_urls[0].url}>Revise</a>
</li>
{jobUrls.revise_urls ? (
<li className="item" title="Revise" data-value="revise">
<a href={jobUrls.revise_urls[0].url}>Revise</a>
</li>
) : null}
<li className="item" title="Translate" data-value="translate">
<a href={jobUrls.translate_url}>Translate</a>
</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -284,9 +284,11 @@ let SegmentFilterUtils = {
gotoNextTranslatedSegment: (sid) => {
const filteredData = SegmentFilterUtils.getLastFilterData()['segment_ids']
if (filteredData) {
const list = filteredData['segment_ids']
const index = list.indexOf('' + sid)
const nextFiltered = index !== list.length - 1 ? list[index + 1] : list[0]
const index = filteredData.indexOf('' + sid)
const nextFiltered =
index !== filteredData.length - 1
? filteredData[index + 1]
: filteredData[0]
let segment = SegmentStore.getSegmentByIdToJS(nextFiltered)
if (segment && segment.status !== 'DRAFT' && segment.status !== 'NEW') {
SegmentActions.openSegment(nextFiltered)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,53 +11,55 @@ import matchTagStructure from '../../../segments/utils/DraftMatecatUtils/matchTa

export const transformTagsToHtml = (text, isRtl = 0) => {
isRtl = !!isRtl
try {
for (let key in tagSignatures) {
const {
placeholderRegex,
decodeNeeded,
style,
placeholder,
regex,
styleRTL,
selfClosing,
} = tagSignatures[key]
if (placeholderRegex) {
let globalRegex = new RegExp(
placeholderRegex.source,
placeholderRegex.flags + 'g',
)
text = text.replace(globalRegex, (match, text) => {
let tagText = decodeNeeded
? Base64.decode(text).replace(/</g, '&lt').replace(/>/g, '&gt') // Forza conversione angolari in &lt o &gt [XLIFF 2.0] Tag senza dataref
: selfClosing
? text
: match
return (
'<span contenteditable="false" class="tag small ' +
(isRtl && styleRTL ? styleRTL : style) +
'">' +
tagText +
'</span>'
if (text) {
try {
for (let key in tagSignatures) {
const {
placeholderRegex,
decodeNeeded,
style,
placeholder,
regex,
styleRTL,
selfClosing,
} = tagSignatures[key]
if (placeholderRegex) {
let globalRegex = new RegExp(
placeholderRegex.source,
placeholderRegex.flags + 'g',
)
})
} else if (regex) {
let globalRegex = new RegExp(regex)
text = text.replace(globalRegex, (match) => {
let tagText = placeholder ? placeholder : match
return (
'<span contenteditable="false" class="tag small ' +
(isRtl && styleRTL ? styleRTL : style) +
'">' +
tagText +
'</span>'
)
})
text = text.replace(globalRegex, (match, text) => {
let tagText = decodeNeeded
? Base64.decode(text).replace(/</g, '&lt').replace(/>/g, '&gt') // Forza conversione angolari in &lt o &gt [XLIFF 2.0] Tag senza dataref
: selfClosing
? text
: match
return (
'<span contenteditable="false" class="tag small ' +
(isRtl && styleRTL ? styleRTL : style) +
'">' +
tagText +
'</span>'
)
})
} else if (regex) {
let globalRegex = new RegExp(regex)
text = text.replace(globalRegex, (match) => {
let tagText = placeholder ? placeholder : match
return (
'<span contenteditable="false" class="tag small ' +
(isRtl && styleRTL ? styleRTL : style) +
'">' +
tagText +
'</span>'
)
})
}
}
text = matchTag(text)
} catch (e) {
console.error('Error parsing tag in transformTagsToHtml function', e)
}
text = matchTag(text)
} catch (e) {
console.error('Error parsing tag in transformTagsToHtml function', e)
}
return text
}
Expand Down
1 change: 1 addition & 0 deletions public/js/cat_source/es6/pages/NewProject.js
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,7 @@ const NewProject = ({
setOpenSettings,
isImportTMXInProgress,
setIsImportTMXInProgress,
projectTemplates,
modifyingCurrentTemplate,
}}
>
Expand Down
28 changes: 13 additions & 15 deletions public/js/cat_source/es6/stores/SegmentStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -279,21 +279,19 @@ const SegmentStore = assign({}, EventEmitter.prototype, {
let selectedSegment = this._segments.find((segment) => {
return segment.get('selected') === true
})
if (!selectedSegment) {
selectedSegment = this.getCurrentSegment()
} else if (selectedSegment) {
selectedSegment = selectedSegment.toJS()
} else {
return
}
let prev = this.getPrevSegment(selectedSegment.sid)
if (prev) {
var index = this.getSegmentIndex(prev.sid)
this._segments = this._segments.map((segment) =>
segment.set('selected', false),
)
this._segments = this._segments.setIn([index, 'selected'], true)
return prev.sid
selectedSegment = !selectedSegment
? this.getCurrentSegment()
: selectedSegment.toJS()
if (selectedSegment) {
let prev = this.getPrevSegment(selectedSegment.sid)
if (prev) {
var index = this.getSegmentIndex(prev.sid)
this._segments = this._segments.map((segment) =>
segment.set('selected', false),
)
this._segments = this._segments.setIn([index, 'selected'], true)
return prev.sid
}
}
},
getSelectedSegmentId() {
Expand Down
2 changes: 1 addition & 1 deletion public/js/cat_source/es6/utils/speech2text.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ const Speech2Text = {
},
startSpeechRecognition: function (microphone) {
const segment = SegmentStore.getCurrentSegment()

if (!segment) return
if (!microphone.hasClass('micSpeechActive')) {
microphone.addClass('micSpeechActive')
Speech2Text.animateSpeechActive()
Expand Down