mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
New logs UI out of beta + fixes (#3868)
* Update new logs pane: remove beta icons, add specific surveys * Remove unneeded reset of log entries * Remove unneeded reset of the autocompile linting error flag * Lower compile event sampling rate ahead of prod release * Never send logs UI subvariant when user is getting the existing UI GitOrigin-RevId: ab726761ba372c6806e56fc0cf841099cc30df50
This commit is contained in:
parent
04fa863f9f
commit
98e631a9c7
7 changed files with 42 additions and 28 deletions
|
@ -121,8 +121,8 @@
|
|||
"loading_recent_github_commits": "",
|
||||
"log_entry_description": "",
|
||||
"log_hint_extra_info": "",
|
||||
"logs_pane_beta_message": "",
|
||||
"logs_pane_beta_message_popup": "",
|
||||
"logs_pane_info_message": "",
|
||||
"logs_pane_info_message_popup": "",
|
||||
"main_file_not_found": "",
|
||||
"make_private": "",
|
||||
"math_display": "",
|
||||
|
|
|
@ -26,7 +26,7 @@ function PreviewFirstErrorPopUp({
|
|||
>
|
||||
<PreviewLogsPaneEntry
|
||||
headerTitle={logEntry.message}
|
||||
headerIcon={<FirstErrorPopUpBetaBadge />}
|
||||
headerIcon={<FirstErrorPopUpInfoBadge />}
|
||||
rawContent={logEntry.content}
|
||||
formattedContent={logEntry.humanReadableHintComponent}
|
||||
extraInfoURL={logEntry.extraInfoURL}
|
||||
|
@ -60,22 +60,22 @@ function PreviewFirstErrorPopUp({
|
|||
)
|
||||
}
|
||||
|
||||
function FirstErrorPopUpBetaBadge() {
|
||||
function FirstErrorPopUpInfoBadge() {
|
||||
const { t } = useTranslation()
|
||||
const logsPaneBetaMessage = t('logs_pane_beta_message_popup')
|
||||
const logsPaneInfoMessage = t('logs_pane_info_message_popup')
|
||||
const tooltip = (
|
||||
<Tooltip id="file-tree-badge-tooltip">{logsPaneBetaMessage}</Tooltip>
|
||||
<Tooltip id="file-tree-badge-tooltip">{logsPaneInfoMessage}</Tooltip>
|
||||
)
|
||||
|
||||
return (
|
||||
<OverlayTrigger placement="bottom" overlay={tooltip} delayHide={100}>
|
||||
<a
|
||||
href="/beta/participate"
|
||||
href="https://forms.gle/AUbDDRvroQ7KFwHR9"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="beta-badge"
|
||||
className="info-badge-fade-bg"
|
||||
>
|
||||
<span className="sr-only">{logsPaneBetaMessage}</span>
|
||||
<span className="sr-only">{logsPaneInfoMessage}</span>
|
||||
</a>
|
||||
</OverlayTrigger>
|
||||
)
|
||||
|
|
|
@ -18,6 +18,7 @@ function PreviewLogsPane({
|
|||
isClearingCache,
|
||||
isCompiling = false,
|
||||
autoCompileHasLintingError = false,
|
||||
variantWithFirstErrorPopup,
|
||||
onLogEntryLocationClick,
|
||||
onClearCache
|
||||
}) {
|
||||
|
@ -113,7 +114,9 @@ function PreviewLogsPane({
|
|||
return (
|
||||
<div className="logs-pane">
|
||||
<div className="logs-pane-content">
|
||||
<LogsPaneBetaNotice />
|
||||
<LogsPaneInfoNotice
|
||||
variantWithFirstErrorPopup={variantWithFirstErrorPopup}
|
||||
/>
|
||||
{autoCompileHasLintingError ? <AutoCompileLintingErrorEntry /> : null}
|
||||
{errors ? errorsUI : null}
|
||||
{validationIssues ? validationIssuesUI : null}
|
||||
|
@ -141,28 +144,31 @@ function AutoCompileLintingErrorEntry() {
|
|||
)
|
||||
}
|
||||
|
||||
function LogsPaneBetaNotice() {
|
||||
function LogsPaneInfoNotice({ variantWithFirstErrorPopup }) {
|
||||
const { t } = useTranslation()
|
||||
const [dismissedBetaNotice, setDismissedBetaNotice] = usePersistedState(
|
||||
`logs_pane.dismissed_beta_notice`,
|
||||
const [dismissedInfoNotice, setDismissedInfoNotice] = usePersistedState(
|
||||
`logs_pane.dismissed_info_notice`,
|
||||
false
|
||||
)
|
||||
|
||||
const surveyLink = variantWithFirstErrorPopup
|
||||
? 'https://forms.gle/AUbDDRvroQ7KFwHR9'
|
||||
: 'https://forms.gle/bRxevtGzBHRk8BKw8'
|
||||
function handleDismissButtonClick() {
|
||||
setDismissedBetaNotice(true)
|
||||
setDismissedInfoNotice(true)
|
||||
}
|
||||
|
||||
return dismissedBetaNotice ? null : (
|
||||
return dismissedInfoNotice ? null : (
|
||||
<div className="log-entry">
|
||||
<div className="log-entry-header log-entry-header-raw">
|
||||
<div className="log-entry-header-icon-container">
|
||||
<span className="beta-badge" />
|
||||
<span className="info-badge" />
|
||||
</div>
|
||||
<h3 className="log-entry-header-title">
|
||||
{t('logs_pane_beta_message')}
|
||||
{t('logs_pane_info_message')}
|
||||
</h3>
|
||||
<a
|
||||
href="/beta/participate"
|
||||
href={surveyLink}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="log-entry-header-link log-entry-header-link-raw"
|
||||
|
@ -184,6 +190,10 @@ function LogsPaneBetaNotice() {
|
|||
)
|
||||
}
|
||||
|
||||
LogsPaneInfoNotice.propTypes = {
|
||||
variantWithFirstErrorPopup: PropTypes.bool
|
||||
}
|
||||
|
||||
PreviewLogsPane.propTypes = {
|
||||
logEntries: PropTypes.shape({
|
||||
all: PropTypes.array,
|
||||
|
@ -196,6 +206,7 @@ PreviewLogsPane.propTypes = {
|
|||
outputFiles: PropTypes.array,
|
||||
isClearingCache: PropTypes.bool,
|
||||
isCompiling: PropTypes.bool,
|
||||
variantWithFirstErrorPopup: PropTypes.bool,
|
||||
onLogEntryLocationClick: PropTypes.func.isRequired,
|
||||
onClearCache: PropTypes.func.isRequired,
|
||||
validationIssues: PropTypes.object,
|
||||
|
|
|
@ -133,6 +133,7 @@ function PreviewPane({
|
|||
onLogEntryLocationClick={onLogEntryLocationClick}
|
||||
isClearingCache={compilerState.isClearingCache}
|
||||
isCompiling={compilerState.isCompiling}
|
||||
variantWithFirstErrorPopup={variantWithFirstErrorPopup}
|
||||
onClearCache={onClearCache}
|
||||
/>
|
||||
) : null}
|
||||
|
|
|
@ -213,7 +213,6 @@ App.controller('PdfController', function(
|
|||
}
|
||||
|
||||
function onDocChanged() {
|
||||
$scope.autoCompileLintingError = false
|
||||
_updateDocLastChangedAt()
|
||||
}
|
||||
|
||||
|
@ -237,6 +236,7 @@ App.controller('PdfController', function(
|
|||
$scope.$watch('autocompile_enabled', (newValue, oldValue) => {
|
||||
if (newValue != null && oldValue !== newValue) {
|
||||
if (newValue === true) {
|
||||
$scope.autoCompileLintingError = false
|
||||
autoCompileIfReady()
|
||||
}
|
||||
localStorage(`autocompile_enabled:${$scope.project_id}`, newValue)
|
||||
|
@ -534,7 +534,6 @@ App.controller('PdfController', function(
|
|||
|
||||
function fetchLogs(fileByPath, options) {
|
||||
let blgFile, chktexFile, logFile
|
||||
$scope.pdf.logEntries = {}
|
||||
|
||||
if (options != null ? options.validation : undefined) {
|
||||
chktexFile = fileByPath['output.chktex']
|
||||
|
@ -702,21 +701,19 @@ App.controller('PdfController', function(
|
|||
function sendCompileMetrics() {
|
||||
const hasCompiled =
|
||||
$scope.pdf.view !== 'errors' && $scope.pdf.view !== 'validation-problems'
|
||||
const sendMetricsForUser =
|
||||
window.user.betaProgram && !window.user.alphaProgram
|
||||
|
||||
if (hasCompiled && sendMetricsForUser) {
|
||||
if (hasCompiled && !window.user.alphaProgram) {
|
||||
const metadata = {
|
||||
errors: $scope.pdf.logEntries.errors.length,
|
||||
warnings: $scope.pdf.logEntries.warnings.length,
|
||||
typesetting: $scope.pdf.logEntries.typesetting.length,
|
||||
newLogsUI: window.showNewLogsUI,
|
||||
subvariant: window.logsUISubvariant || null
|
||||
subvariant: window.showNewLogsUI ? window.logsUISubvariant : null
|
||||
}
|
||||
eventTracking.sendMBSampled(
|
||||
'compile-result',
|
||||
JSON.stringify(metadata),
|
||||
0.05
|
||||
0.01
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
.info-badge-fade-bg {
|
||||
.info-badge;
|
||||
background-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.beta-badge {
|
||||
background-color: @orange;
|
||||
border-radius: @border-radius-base;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"logs_pane_info_message": "We are testing a new logs pane",
|
||||
"logs_pane_info_message_popup": "We are testing a new logs pane. Click here to give feedback.",
|
||||
"github_symlink_error": "Your Github repository contains symbolic link files, which are not currently supported by Overleaf. Please remove these and try again.",
|
||||
"address_line_1": "Address",
|
||||
"address_line_2": "Address (line 2, optional)",
|
||||
"postal_code": "Postal Code",
|
||||
"reload_editor": "Reload editor",
|
||||
"logs_pane_beta_message": "We are beta testing a new logs pane",
|
||||
"logs_pane_beta_message_popup": "We are beta testing a new logs pane. Click here to give feedback and manage your beta program membership.",
|
||||
"compile_error_description": "This project did not compile because of an error",
|
||||
"validation_issue_description": "This project did not compile because of a validation issue",
|
||||
"compile_error_entry_description": "An error which prevented this project from compiling",
|
||||
|
|
Loading…
Reference in a new issue