Skip to content

Commit 2b57b18

Browse files
committed
Added support of titleReminder and handle when change occur on offline
1 parent 529c5f6 commit 2b57b18

1 file changed

Lines changed: 40 additions & 18 deletions

File tree

public/js/index.js

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,32 @@ ui.area.codemirror.on('touchstart', function () {
352352
idle.onActive();
353353
});
354354

355+
var haveUnreadChanges = false;
356+
357+
function setHaveUnreadChanges(bool) {
358+
if (!loaded) return;
359+
if (bool && (idle.isAway || Visibility.hidden())) {
360+
haveUnreadChanges = true;
361+
} else if (!bool && !idle.isAway && !Visibility.hidden()) {
362+
haveUnreadChanges = false;
363+
}
364+
}
365+
366+
function updateTitleReminder() {
367+
if (!loaded) return;
368+
if (haveUnreadChanges) {
369+
document.title = '• ' + renderTitle(ui.area.view);
370+
} else {
371+
document.title = renderTitle(ui.area.view);
372+
}
373+
}
374+
355375
function idleStateChange() {
356376
emitUserStatus();
357377
updateOnlineStatus();
378+
if (!idle.isAway)
379+
setHaveUnreadChanges(false);
380+
updateTitleReminder();
358381
}
359382

360383
function setNeedRefresh() {
@@ -381,7 +404,9 @@ Visibility.change(function (e, state) {
381404
editor.focus();
382405
wasFocus = false;
383406
}
407+
setHaveUnreadChanges(false);
384408
}
409+
updateTitleReminder();
385410
});
386411

387412
//when page ready
@@ -867,8 +892,8 @@ function generateScrollspy() {
867892
ui.toc.affix.hide();
868893
ui.toc.toc.show();
869894
}
870-
$(document.body).scroll();
871-
ui.area.view.scroll();
895+
//$(document.body).scroll();
896+
//ui.area.view.scroll();
872897
}
873898

874899
function updateScrollspy() {
@@ -1674,24 +1699,19 @@ editor.on('beforeChange', function (cm, change) {
16741699
}
16751700
var isIgnoreEmitEvent = (ignoreEmitEvents.indexOf(change.origin) != -1);
16761701
if (!isIgnoreEmitEvent) {
1677-
switch (permission) {
1678-
case "freely":
1679-
//na
1680-
break;
1681-
case "editable":
1682-
if (!personalInfo.login) {
1683-
change.canceled = true;
1684-
$('.signin-modal').modal('show');
1685-
}
1686-
break;
1687-
case "locked":
1688-
if (personalInfo.userid != owner) {
1689-
change.canceled = true;
1690-
$('.locked-modal').modal('show');
1691-
}
1692-
break;
1702+
if (!havePermission()) {
1703+
change.canceled = true;
1704+
$('.signin-modal').modal('show');
1705+
}
1706+
} else {
1707+
if (change.origin == 'ignoreHistory') {
1708+
setHaveUnreadChanges(true);
1709+
updateTitleReminder();
16931710
}
16941711
}
1712+
if (cmClient && !socket.connected)
1713+
cmClient.editorAdapter.ignoreNextChange = true;
1714+
});
16951715
editor.on('changes', function (cm, changes) {
16961716
updateHistory();
16971717
preventSyncScroll = true;
@@ -1836,6 +1856,8 @@ function updateViewInner() {
18361856
isDirty = false;
18371857
clearMap();
18381858
//buildMap();
1859+
updateTitleReminder();
1860+
}
18391861

18401862
var updateHistoryDebounce = 600;
18411863

0 commit comments

Comments
 (0)