leanote使用本地帳戶時,去掉待同步的小紅點

切換開發者工具,以下圖,點擊左上角的箭頭圖標,選取元素,直接選擇小紅點。 css

 

而後會看到小紅點來自於resources/app/public/themes/default.css文件中2092行:node

.item-dirty:after,.item-err:after,.nb-dirty:after,.nb-new:after {
    content: "";
    width: 7px;
    height: 7px;
    background: #FF6363;
    border-radius: 50%;
    position: absolute
}

開發工具可動態選擇樣式是否生效,點擊複選框中的勾便可。 
而後整個leanote項目中grep 'item-dirty',找到調用的地方。jquery

固然這裏直接修改default.css文件去掉background: #FF6363;也能達到不顯示小紅點的效果。可是實際上還在,只是看不見而已。 
搜索結果發現是在resources/app/public/js/app/note.jsNote.setNoteDirty函數和Note._renderNotes函數。setNoteDirty函數在建立筆記的時候調用,_renderNotes函數在筆記列表發生變化時或者初次加載時調用。安全

Note.setNoteDirty = function(noteId, isDirty) {
    console.trace('setNoteDirty');
    var $leftNoteNav = $(tt('#noteItemList [noteId="?"]', noteId));
    if (!isDirty) {
        $leftNoteNav.removeClass('item-err');
    }
    this.setNoteCache({ NoteId: noteId, IsDirty: isDirty }, false);
    isDirty ? $leftNoteNav.addClass('item-dirty') : $leftNoteNav.removeClass('item-dirty');
    }
};
Note._renderNotes= function(...) {
    if (note.IsDirty || note.IsNew) {
        classes += " item-dirty";
    }
...
}

那麼修改就是判斷當前如果本地帳戶,就不添加item-dirty樣式了。正好該js文件中有個UserInfo.isLocal變量能夠判斷當前用戶是否本地:app

if (note.IsDirty || note.IsNew) {
    console.log("UserInfo.IsLocal:"+UserInfo.IsLocal);
    if(!UserInfo.IsLocal) { //非本地帳戶帳戶才顯示dirty圖標(紅色小圓點)added by wangyong 20171107
    classes += " item-dirty";
    }
}

這裏提醒一下,查看源碼過程當中發現isDirty這個布爾值決定了是否顯示小紅點,可是修改的時候不要直接去改isDirty這個布爾值,源代碼可能基於這個值作了其餘數據上的衝突、hash檢測等等事情。咱們僅在css樣式層面修改就很安全。函數

一樣的方式能夠去掉筆記本上的小紅點。筆記本的小紅點樣式爲nb-dirty nb-new,調用的地方在resources/app/public/js/jquery.ztree.all-3.5.js中,該js中沒有現成的UserInfo可用,所以直接註釋掉了如下代碼……工具

if (node.IsDirty) {
    classes += "nb-dirty "
}
if (node.IsNew) {
    classes += "nb-new ";
}

我也是瞎折騰。。。開發工具

相關文章
相關標籤/搜索