Merge remote-tracking branch 'origin/dev' into dev-binnchx

This commit is contained in:
binnchx committed 2015-01-22 23:18:20 +08:00
commit fb484b2132
6 files changed
+282 -277

No files matched your search

+1 -1
View File
@@ -1 +1 @@
Note.curNoteId="";Note.interval="";Note.itemIsBlog='<div class="item-blog"><i class="fa fa-bold" title="blog"></i></div><div class="item-setting"><i class="fa fa-cog" title="setting"></i></div>';Note.itemTplNoImg='<li href="#" class="item ?" noteId="?">';Note.itemTplNoImg+=Note.itemIsBlog+'<div class="item-desc"><p class="item-title">?</p><p class="item-info"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span></p><p class="desc">?</p></div></li>';Note.itemTpl='<li href="#" class="item ? item-image" noteId="?"><div class="item-thumb" style=""><img src="?"/></div>';Note.itemTpl+=Note.itemIsBlog+'<div class="item-desc" style=""><p class="item-title">?</p><p class="item-info"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span></p><p class="desc">?</p></div></li>';Note.newItemTpl='<li href="#" class="item item-active ?" fromUserId="?" noteId="?">';Note.newItemTpl+=Note.itemIsBlog+'<div class="item-desc" style="right: 0px;"><p class="item-title">?</p><p class="item-text"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span><br /><span class="desc">?</span></p></div></li>';Note.noteItemListO=$("#noteItemList");Note.cacheByNotebookId={all:{}};Note.notebookIds={};Note.isReadOnly=false;Note.intervalTime=6e5;Note.startInterval=function(){Note.interval=setInterval(function(){log("自动保存开始...");changedNote=Note.curChangedSaveIt(false)},Note.intervalTime)};Note.stopInterval=function(){clearInterval(Note.interval);setTimeout(function(){Note.startInterval()},Note.intervalTime)};Note.addNoteCache=function(note){Note.cache[note.NoteId]=note;Note.clearCacheByNotebookId(note.NotebookId)};Note.setNoteCache=function(content,clear){if(!Note.cache[content.NoteId]){Note.cache[content.NoteId]=content}else{$.extend(Note.cache[content.NoteId],content)}if(clear==undefined){clear=true}if(clear){Note.clearCacheByNotebookId(content.NotebookId)}};Note.getCurNote=function(){var self=this;if(self.curNoteId==""){return null}return self.cache[self.curNoteId]};Note.getNote=function(noteId){var self=this;return self.cache[noteId]};Note.clearCacheByNotebookId=function(notebookId){if(notebookId){Note.cacheByNotebookId[notebookId]={};Note.cacheByNotebookId["all"]={};Note.notebookIds[notebookId]=true}};Note.notebookHasNotes=function(notebookId){var notes=Note.getNotesByNotebookId(notebookId);return!isEmpty(notes)};Note.getNotesByNotebookId=function(notebookId,sortBy,isAsc){if(!sortBy){sortBy="UpdatedTime"}if(isAsc=="undefined"){isAsc=false}if(!notebookId){notebookId="all"}if(!Note.cacheByNotebookId[notebookId]){return[]}if(Note.cacheByNotebookId[notebookId][sortBy]){return Note.cacheByNotebookId[notebookId][sortBy]}else{}var notes=[];var sortBys=[];for(var i in Note.cache){if(!i){continue}var note=Note.cache[i];if(note.IsTrash||note.IsShared){continue}if(notebookId=="all"||note.NotebookId==notebookId){notes.push(note)}}notes.sort(function(a,b){var t1=a[sortBy];var t2=b[sortBy];if(isAsc){if(t1<t2){return-1}else if(t1>t2){return 1}}else{if(t1<t2){return 1}else if(t1>t2){return-1}}return 0});Note.cacheByNotebookId[notebookId][sortBy]=notes;return notes};Note.renderNotesAndFirstOneContent=function(ret){if(!isArray(ret)){return}Note.renderNotes(ret);if(!isEmpty(ret[0])){Note.changeNoteForPjax(ret[0].NoteId,true,false)}else{}};Note.curHasChanged=function(force){if(force==undefined){force=true}var cacheNote=Note.cache[Note.curNoteId]||{};var title=$("#noteTitle").val();var tags=Tag.getTags();var contents=getEditorContent(cacheNote.IsMarkdown);var content,preview;var contentText;if(isArray(contents)){content=contents[0];preview=contents[1];contentText=content;if(content&&previewIsEmpty(preview)&&Converter){preview=Converter.makeHtml(content)}if(!content){preview=""}cacheNote.Preview=preview}else{content=contents;try{contentText=$(content).text()}catch(e){}}var hasChanged={hasChanged:false,IsNew:cacheNote.IsNew,IsMarkdown:cacheNote.IsMarkdown,FromUserId:cacheNote.FromUserId,NoteId:cacheNote.NoteId,NotebookId:cacheNote.NotebookId};if(hasChanged.IsNew){$.extend(hasChanged,cacheNote)}if(cacheNote.Title!=title){hasChanged.hasChanged=true;hasChanged.Title=title;if(!hasChanged.Title){}}if(!arrayEqual(cacheNote.Tags,tags)){hasChanged.hasChanged=true;hasChanged.Tags=tags}if(force&&cacheNote.Content!=content||!force&&(!cacheNote.IsMarkdown&&$(cacheNote.Content).text()!=contentText||cacheNote.IsMarkdown&&cacheNote.Content!=contentText)){hasChanged.hasChanged=true;hasChanged.Content=content;var c=preview||content;if(!cacheNote.HasSelfDefined||!cacheNote.IsBlog){hasChanged.Desc=Note.genDesc(c);hasChanged.ImgSrc=Note.getImgSrc(c);hasChanged.Abstract=Note.genAbstract(c)}}else{log("text相同");log(cacheNote.Content==content)}hasChanged["UserId"]=cacheNote["UserId"]||"";return hasChanged};Note.genDesc=function(content){if(!content){reLine truncated Note.curNoteId="";Note.interval="";Note.itemIsBlog='<div class="item-blog"><i class="fa fa-bold" title="blog"></i></div><div class="item-setting"><i class="fa fa-cog" title="setting"></i></div>';Note.itemTplNoImg='<li href="#" class="item ?" noteId="?">';Note.itemTplNoImg+=Note.itemIsBlog+'<div class="item-desc"><p class="item-title">?</p><p class="item-info"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span></p><p class="desc">?</p></div></li>';Note.itemTpl='<li href="#" class="item ? item-image" noteId="?"><div class="item-thumb" style=""><img src="?"/></div>';Note.itemTpl+=Note.itemIsBlog+'<div class="item-desc" style=""><p class="item-title">?</p><p class="item-info"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span></p><p class="desc">?</p></div></li>';Note.newItemTpl='<li href="#" class="item item-active ?" fromUserId="?" noteId="?">';Note.newItemTpl+=Note.itemIsBlog+'<div class="item-desc" style="right: 0px;"><p class="item-title">?</p><p class="item-text"><i class="fa fa-book"></i> <span class="note-notebook">?</span> <i class="fa fa-clock-o"></i> <span class="updated-time">?</span><br /><span class="desc">?</span></p></div></li>';Note.noteItemListO=$("#noteItemList");Note.cacheByNotebookId={all:{}};Note.notebookIds={};Note.isReadOnly=false;Note.intervalTime=6e5;Note.startInterval=function(){Note.interval=setInterval(function(){log("自动保存开始...");changedNote=Note.curChangedSaveIt(false)},Note.intervalTime)};Note.stopInterval=function(){clearInterval(Note.interval);setTimeout(function(){Note.startInterval()},Note.intervalTime)};Note.addNoteCache=function(note){Note.cache[note.NoteId]=note;Note.clearCacheByNotebookId(note.NotebookId)};Note.setNoteCache=function(content,clear){if(!Note.cache[content.NoteId]){Note.cache[content.NoteId]=content}else{$.extend(Note.cache[content.NoteId],content)}if(clear==undefined){clear=true}if(clear){Note.clearCacheByNotebookId(content.NotebookId)}};Note.getCurNote=function(){var self=this;if(self.curNoteId==""){return null}return self.cache[self.curNoteId]};Note.getNote=function(noteId){var self=this;return self.cache[noteId]};Note.clearCacheByNotebookId=function(notebookId){if(notebookId){Note.cacheByNotebookId[notebookId]={};Note.cacheByNotebookId["all"]={};Note.notebookIds[notebookId]=true}};Note.notebookHasNotes=function(notebookId){var notes=Note.getNotesByNotebookId(notebookId);return!isEmpty(notes)};Note.getNotesByNotebookId=function(notebookId,sortBy,isAsc){if(!sortBy){sortBy="UpdatedTime"}if(isAsc=="undefined"){isAsc=false}if(!notebookId){notebookId="all"}if(!Note.cacheByNotebookId[notebookId]){return[]}if(Note.cacheByNotebookId[notebookId][sortBy]){return Note.cacheByNotebookId[notebookId][sortBy]}else{}var notes=[];var sortBys=[];for(var i in Note.cache){if(!i){continue}var note=Note.cache[i];if(note.IsTrash||note.IsShared){continue}if(notebookId=="all"||note.NotebookId==notebookId){notes.push(note)}}notes.sort(function(a,b){var t1=a[sortBy];var t2=b[sortBy];if(isAsc){if(t1<t2){return-1}else if(t1>t2){return 1}}else{if(t1<t2){return 1}else if(t1>t2){return-1}}return 0});Note.cacheByNotebookId[notebookId][sortBy]=notes;return notes};Note.renderNotesAndFirstOneContent=function(ret){if(!isArray(ret)){return}Note.renderNotes(ret);if(!isEmpty(ret[0])){Note.changeNoteForPjax(ret[0].NoteId,true,false)}else{}};Note.curHasChanged=function(force){if(force==undefined){force=true}var cacheNote=Note.cache[Note.curNoteId]||{};var title=$("#noteTitle").val();var tags=Tag.getTags();var contents=getEditorContent(cacheNote.IsMarkdown);var content,preview;var contentText;if(isArray(contents)){content=contents[0];preview=contents[1];contentText=content;if(content&&previewIsEmpty(preview)&&Converter){preview=Converter.makeHtml(content)}if(!content){preview=""}cacheNote.Preview=preview}else{content=contents;try{contentText=$(content).text()}catch(e){}}var hasChanged={hasChanged:false,IsNew:cacheNote.IsNew,IsMarkdown:cacheNote.IsMarkdown,FromUserId:cacheNote.FromUserId,NoteId:cacheNote.NoteId,NotebookId:cacheNote.NotebookId};if(hasChanged.IsNew){$.extend(hasChanged,cacheNote)}if(cacheNote.Title!=title){hasChanged.hasChanged=true;hasChanged.Title=title;if(!hasChanged.Title){}}if(!arrayEqual(cacheNote.Tags,tags)){hasChanged.hasChanged=true;hasChanged.Tags=tags}if(force&&cacheNote.Content!=content||!force&&(!cacheNote.IsMarkdown&&$(cacheNote.Content).text()!=contentText||cacheNote.IsMarkdown&&cacheNote.Content!=contentText)){hasChanged.hasChanged=true;hasChanged.Content=content;var c=preview||content;if(!cacheNote.HasSelfDefined||!cacheNote.IsBlog){hasChanged.Desc=Note.genDesc(c);hasChanged.ImgSrc=Note.getImgSrc(c);hasChanged.Abstract=Note.genAbstract(c)}}else{log("text相同");log(cacheNote.Content==content)}hasChanged["UserId"]=cacheNote["UserId"]||"";return hasChanged};Note.genDesc=function(content){if(!content){reLine truncated
+174 -169
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1 +1 @@
Notebook.curNotebookId="";Notebook.cache={};Notebook.notebooks=[];Notebook.notebookNavForListNote="";Notebook.notebookNavForNewNote="";Notebook.setCache=function(notebook){var notebookId=notebook.NotebookId;if(!notebookId){return}if(!Notebook.cache[notebookId]){Notebook.cache[notebookId]={}}$.extend(Notebook.cache[notebookId],notebook)};Notebook.getCurNotebookId=function(){return Notebook.curNotebookId};Notebook._updateNotebookNumberNotes=function(notebookId,n){var self=this;var notebook=self.getNotebook(notebookId);if(!notebook){return}notebook.NumberNotes+=n;if(notebook.NumberNotes<0){notebook.NumberNotes=0}$("#numberNotes_"+notebookId).html(notebook.NumberNotes)};Notebook.incrNotebookNumberNotes=function(notebookId){var self=this;self._updateNotebookNumberNotes(notebookId,1)};Notebook.minusNotebookNumberNotes=function(notebookId){var self=this;self._updateNotebookNumberNotes(notebookId,-1)};Notebook.getNotebook=function(notebookId){return Notebook.cache[notebookId]};Notebook.getNotebookTitle=function(notebookId){var notebook=Notebook.cache[notebookId];if(notebook){return notebook.Title}else{return"未知"}};Notebook.getTreeSetting=function(isSearch,isShare){var noSearch=!isSearch;var self=this;function addDiyDom(treeId,treeNode){var spaceWidth=5;var switchObj=$("#"+treeId+" #"+treeNode.tId+"_switch"),icoObj=$("#"+treeId+" #"+treeNode.tId+"_ico");switchObj.remove();icoObj.before(switchObj);if(!isShare){if(!Notebook.isAllNotebookId(treeNode.NotebookId)&&!Notebook.isTrashNotebookId(treeNode.NotebookId)){icoObj.after($('<span class="notebook-number-notes" id="numberNotes_'+treeNode.NotebookId+'">'+(treeNode.NumberNotes||0)+"</span>"));icoObj.after($('<span class="fa notebook-setting" title="setting"></span>'))}}else{if(!Share.isDefaultNotebookId(treeNode.NotebookId)){icoObj.after($('<span class="fa notebook-setting" title="setting"></span>'))}}if(treeNode.level>1){var spaceStr="<span style='display: inline-block;width:"+spaceWidth*treeNode.level+"px'></span>";switchObj.before(spaceStr)}}function beforeDrag(treeId,treeNodes){for(var i=0,l=treeNodes.length;i<l;i++){if(treeNodes[i].drag===false){return false}}return true}function beforeDrop(treeId,treeNodes,targetNode,moveType){return targetNode?targetNode.drop!==false:true}function onDrop(e,treeId,treeNodes,targetNode,moveType){var treeNode=treeNodes[0];if(!targetNode){return}var parentNode;var treeObj=self.tree;var ajaxData={curNotebookId:treeNode.NotebookId};if(moveType=="inner"){parentNode=targetNode}else{parentNode=targetNode.getParentNode()}if(!parentNode){var nodes=treeObj.getNodes()}else{ajaxData.parentNotebookId=parentNode.NotebookId;var nextLevel=parentNode.level+1;function filter(node){return node.level==nextLevel}var nodes=treeObj.getNodesByFilter(filter,false,parentNode)}ajaxData.siblings=[];for(var i in nodes){var notebookId=nodes[i].NotebookId;if(!Notebook.isAllNotebookId(notebookId)&&!Notebook.isTrashNotebookId(notebookId)){ajaxData.siblings.push(notebookId)}}ajaxPost("/notebook/dragNotebooks",{data:JSON.stringify(ajaxData)});setTimeout(function(){Notebook.changeNav()},100)}if(!isShare){var onClick=function(e,treeId,treeNode){var notebookId=treeNode.NotebookId;Notebook.changeNotebook(notebookId)};var onDblClick=function(e){var notebookId=$(e.target).attr("notebookId");if(!Notebook.isAllNotebookId(notebookId)&&!Notebook.isTrashNotebookId(notebookId)){self.updateNotebookTitle(e.target)}}}else{var onClick=function(e,treeId,treeNode){var notebookId=treeNode.NotebookId;var fromUserId=$(e.target).closest(".friend-notebooks").attr("fromUserId");Share.changeNotebook(fromUserId,notebookId)};var onDblClick=null}var setting={view:{showLine:false,showIcon:false,selectedMulti:false,dblClickExpand:false,addDiyDom:addDiyDom},data:{key:{name:"Title",children:"Subs"}},edit:{enable:true,showRemoveBtn:false,showRenameBtn:false,drag:{isMove:noSearch,prev:noSearch,inner:noSearch,next:noSearch}},callback:{beforeDrag:beforeDrag,beforeDrop:beforeDrop,onDrop:onDrop,onClick:onClick,onDblClick:onDblClick,beforeRename:function(treeId,treeNode,newName,isCancel){if(newName==""){if(treeNode.IsNew){self.tree.removeNode(treeNode);return true}return false}if(treeNode.Title==newName){return true}if(treeNode.IsNew){var parentNode=treeNode.getParentNode();var parentNotebookId=parentNode?parentNode.NotebookId:"";self.doAddNotebook(treeNode.NotebookId,newName,parentNotebookId)}else{self.doUpdateNotebookTitle(treeNode.NotebookId,newName)}return true}}};if(isSearch){}return setting};Notebook.allNotebookId="0";Notebook.trashNotebookId="-1";Notebook.curNotebookIsTrashOrAll=function(){return Notebook.curNotebookId==Notebook.trashNotebookId||Notebook.curNotebookId==Notebook.allNotebookId};Notebook.renderNotebooks=function(notebooks){var self=this;if(!notebooks||typeof notebooks!="object"||notebooks.length<0){notebooks=[]}notebooks=[{NotebookId:Notebook.allNotebookId,Title:getMsg("all"),drop:false,drag:false}].concat(notebooks);notebooks.push({NotebookId:Notebook.trashNotebookId,Title:getMLine truncated Notebook.curNotebookId="";Notebook.cache={};Notebook.notebooks=[];Notebook.notebookNavForListNote="";Notebook.notebookNavForNewNote="";Notebook.setCache=function(notebook){var notebookId=notebook.NotebookId;if(!notebookId){return}if(!Notebook.cache[notebookId]){Notebook.cache[notebookId]={}}$.extend(Notebook.cache[notebookId],notebook)};Notebook.getCurNotebookId=function(){return Notebook.curNotebookId};Notebook._updateNotebookNumberNotes=function(notebookId,n){var self=this;var notebook=self.getNotebook(notebookId);if(!notebook){return}notebook.NumberNotes+=n;if(notebook.NumberNotes<0){notebook.NumberNotes=0}$("#numberNotes_"+notebookId).html(notebook.NumberNotes)};Notebook.incrNotebookNumberNotes=function(notebookId){var self=this;self._updateNotebookNumberNotes(notebookId,1)};Notebook.minusNotebookNumberNotes=function(notebookId){var self=this;self._updateNotebookNumberNotes(notebookId,-1)};Notebook.getNotebook=function(notebookId){return Notebook.cache[notebookId]};Notebook.getNotebookTitle=function(notebookId){var notebook=Notebook.cache[notebookId];if(notebook){return Note._toHtmlEntity(notebook.Title)}else{return"未知"}};Notebook.getTreeSetting=function(isSearch,isShare){var noSearch=!isSearch;var self=this;function addDiyDom(treeId,treeNode){var spaceWidth=5;var switchObj=$("#"+treeId+" #"+treeNode.tId+"_switch"),icoObj=$("#"+treeId+" #"+treeNode.tId+"_ico");switchObj.remove();icoObj.before(switchObj);if(!isShare){if(!Notebook.isAllNotebookId(treeNode.NotebookId)&&!Notebook.isTrashNotebookId(treeNode.NotebookId)){icoObj.after($('<span class="notebook-number-notes" id="numberNotes_'+treeNode.NotebookId+'">'+(treeNode.NumberNotes||0)+"</span>"));icoObj.after($('<span class="fa notebook-setting" title="setting"></span>'))}}else{if(!Share.isDefaultNotebookId(treeNode.NotebookId)){icoObj.after($('<span class="fa notebook-setting" title="setting"></span>'))}}if(treeNode.level>1){var spaceStr="<span style='display: inline-block;width:"+spaceWidth*treeNode.level+"px'></span>";switchObj.before(spaceStr)}}function beforeDrag(treeId,treeNodes){for(var i=0,l=treeNodes.length;i<l;i++){if(treeNodes[i].drag===false){return false}}return true}function beforeDrop(treeId,treeNodes,targetNode,moveType){return targetNode?targetNode.drop!==false:true}function onDrop(e,treeId,treeNodes,targetNode,moveType){var treeNode=treeNodes[0];if(!targetNode){return}var parentNode;var treeObj=self.tree;var ajaxData={curNotebookId:treeNode.NotebookId};if(moveType=="inner"){parentNode=targetNode}else{parentNode=targetNode.getParentNode()}if(!parentNode){var nodes=treeObj.getNodes()}else{ajaxData.parentNotebookId=parentNode.NotebookId;var nextLevel=parentNode.level+1;function filter(node){return node.level==nextLevel}var nodes=treeObj.getNodesByFilter(filter,false,parentNode)}ajaxData.siblings=[];for(var i in nodes){var notebookId=nodes[i].NotebookId;if(!Notebook.isAllNotebookId(notebookId)&&!Notebook.isTrashNotebookId(notebookId)){ajaxData.siblings.push(notebookId)}}ajaxPost("/notebook/dragNotebooks",{data:JSON.stringify(ajaxData)});setTimeout(function(){Notebook.changeNav()},100)}if(!isShare){var onClick=function(e,treeId,treeNode){var notebookId=treeNode.NotebookId;Notebook.changeNotebook(notebookId)};var onDblClick=function(e){var notebookId=$(e.target).attr("notebookId");if(!Notebook.isAllNotebookId(notebookId)&&!Notebook.isTrashNotebookId(notebookId)){self.updateNotebookTitle(e.target)}}}else{var onClick=function(e,treeId,treeNode){var notebookId=treeNode.NotebookId;var fromUserId=$(e.target).closest(".friend-notebooks").attr("fromUserId");Share.changeNotebook(fromUserId,notebookId)};var onDblClick=null}var setting={view:{showLine:false,showIcon:false,selectedMulti:false,dblClickExpand:false,addDiyDom:addDiyDom},data:{key:{name:"Title",children:"Subs"}},edit:{enable:true,showRemoveBtn:false,showRenameBtn:false,drag:{isMove:noSearch,prev:noSearch,inner:noSearch,next:noSearch}},callback:{beforeDrag:beforeDrag,beforeDrop:beforeDrop,onDrop:onDrop,onClick:onClick,onDblClick:onDblClick,beforeRename:function(treeId,treeNode,newName,isCancel){if(newName==""){if(treeNode.IsNew){self.tree.removeNode(treeNode);return true}return false}if(treeNode.Title==newName){return true}if(treeNode.IsNew){var parentNode=treeNode.getParentNode();var parentNotebookId=parentNode?parentNode.NotebookId:"";self.doAddNotebook(treeNode.NotebookId,newName,parentNotebookId)}else{self.doUpdateNotebookTitle(treeNode.NotebookId,newName)}return true}}};if(isSearch){}return setting};Notebook.allNotebookId="0";Notebook.trashNotebookId="-1";Notebook.curNotebookIsTrashOrAll=function(){return Notebook.curNotebookId==Notebook.trashNotebookId||Notebook.curNotebookId==Notebook.allNotebookId};Notebook.renderNotebooks=function(notebooks){var self=this;if(!notebooks||typeof notebooks!="object"||notebooks.length<0){notebooks=[]}notebooks=[{NotebookId:Notebook.allNotebookId,Title:getMsg("all"),drop:false,drag:false}].concat(notebooks);notebooks.push({NotebookId:Notebook.trashNLine truncated
+87 -87
View File
@@ -1,7 +1,7 @@
Notebook.curNotebookId = ""; Notebook.curNotebookId = "";
Notebook.cache = {}; // notebookId => {}; Notebook.cache = {}; // notebookId => {};
Notebook.notebooks = []; // 按次序 Notebook.notebooks = []; // 按次序
// <li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li> // <li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li>
Notebook.notebookNavForListNote = ""; // html 为了note list上面和新建时的ul Notebook.notebookNavForListNote = ""; // html 为了note list上面和新建时的ul
Notebook.notebookNavForNewNote = ""; // html 为了note list上面和新建时的ul Notebook.notebookNavForNewNote = ""; // html 为了note list上面和新建时的ul
@@ -54,7 +54,7 @@ Notebook.getNotebook = function(notebookId) {
Notebook.getNotebookTitle = function(notebookId) { Notebook.getNotebookTitle = function(notebookId) {
var notebook = Notebook.cache[notebookId]; var notebook = Notebook.cache[notebookId];
if(notebook) { if(notebook) {
return notebook.Title; return Note._toHtmlEntity(notebook.Title);
} else { } else {
return "未知"; return "未知";
} }
@@ -68,10 +68,10 @@ Notebook.getNotebookTitle = function(notebookId) {
<li><a>August 13, 2013</a></li> <li><a>August 13, 2013</a></li>
</ul> </ul>
*/ */
Notebook.getTreeSetting = function(isSearch, isShare){ Notebook.getTreeSetting = function(isSearch, isShare){
var noSearch = !isSearch; var noSearch = !isSearch;
var self = this; var self = this;
// 添加自定义dom // 添加自定义dom
function addDiyDom(treeId, treeNode) { function addDiyDom(treeId, treeNode) {
@@ -116,15 +116,15 @@ Notebook.getTreeSetting = function(isSearch, isShare){
var parentNode; var parentNode;
var treeObj = self.tree; var treeObj = self.tree;
var ajaxData = {curNotebookId: treeNode.NotebookId}; var ajaxData = {curNotebookId: treeNode.NotebookId};
// 成为子节点, 那么只需要得到targetNode下所有的子结点即可 // 成为子节点, 那么只需要得到targetNode下所有的子结点即可
if(moveType == "inner") { if(moveType == "inner") {
parentNode = targetNode; parentNode = targetNode;
} else { } else {
parentNode = targetNode.getParentNode(); parentNode = targetNode.getParentNode();
} }
// 在targetNode之前或之后, // 在targetNode之前或之后,
// 那么: 1) 需要将该parentNode下所有的node重新排序即可; 2) treeNodes[0]为parentNode的子 // 那么: 1) 需要将该parentNode下所有的node重新排序即可; 2) treeNodes[0]为parentNode的子
if(!parentNode) { if(!parentNode) {
var nodes = treeObj.getNodes(); // 得到所有nodes var nodes = treeObj.getNodes(); // 得到所有nodes
@@ -136,7 +136,7 @@ Notebook.getTreeSetting = function(isSearch, isShare){
} }
var nodes = treeObj.getNodesByFilter(filter, false, parentNode); var nodes = treeObj.getNodesByFilter(filter, false, parentNode);
} }
ajaxData.siblings = []; ajaxData.siblings = [];
for(var i in nodes) { for(var i in nodes) {
var notebookId = nodes[i].NotebookId; var notebookId = nodes[i].NotebookId;
@@ -144,15 +144,15 @@ Notebook.getTreeSetting = function(isSearch, isShare){
ajaxData.siblings.push(notebookId); ajaxData.siblings.push(notebookId);
} }
} }
ajaxPost("/notebook/dragNotebooks", {data: JSON.stringify(ajaxData)}); ajaxPost("/notebook/dragNotebooks", {data: JSON.stringify(ajaxData)});
// 这里慢! // 这里慢!
setTimeout(function() { setTimeout(function() {
Notebook.changeNav(); Notebook.changeNav();
}, 100); }, 100);
} }
if(!isShare) { if(!isShare) {
var onClick = function(e, treeId, treeNode) { var onClick = function(e, treeId, treeNode) {
var notebookId = treeNode.NotebookId; var notebookId = treeNode.NotebookId;
@@ -172,7 +172,7 @@ Notebook.getTreeSetting = function(isSearch, isShare){
}; };
var onDblClick = null; var onDblClick = null;
} }
var setting = { var setting = {
view: { view: {
showLine: false, showLine: false,
@@ -216,12 +216,12 @@ Notebook.getTreeSetting = function(isSearch, isShare){
if(treeNode.Title == newName) { if(treeNode.Title == newName) {
return true; return true;
} }
// 如果是新添加的 // 如果是新添加的
if(treeNode.IsNew) { if(treeNode.IsNew) {
var parentNode = treeNode.getParentNode(); var parentNode = treeNode.getParentNode();
var parentNotebookId = parentNode ? parentNode.NotebookId : ""; var parentNotebookId = parentNode ? parentNode.NotebookId : "";
self.doAddNotebook(treeNode.NotebookId, newName, parentNotebookId); self.doAddNotebook(treeNode.NotebookId, newName, parentNotebookId);
} else { } else {
self.doUpdateNotebookTitle(treeNode.NotebookId, newName); self.doUpdateNotebookTitle(treeNode.NotebookId, newName);
@@ -230,11 +230,11 @@ Notebook.getTreeSetting = function(isSearch, isShare){
} }
} }
}; };
// 搜索不能拖拽 // 搜索不能拖拽
if(isSearch) { if(isSearch) {
} }
return setting; return setting;
} }
Notebook.allNotebookId = "0"; Notebook.allNotebookId = "0";
@@ -248,13 +248,13 @@ Notebook.renderNotebooks = function(notebooks) {
if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) { if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) {
notebooks = []; notebooks = [];
} }
notebooks = [{NotebookId: Notebook.allNotebookId, Title: getMsg("all"), drop:false, drag: false}].concat(notebooks); notebooks = [{NotebookId: Notebook.allNotebookId, Title: getMsg("all"), drop:false, drag: false}].concat(notebooks);
notebooks.push({NotebookId: Notebook.trashNotebookId, Title: getMsg("trash"), drop:false, drag: false}); notebooks.push({NotebookId: Notebook.trashNotebookId, Title: getMsg("trash"), drop:false, drag: false});
Notebook.notebooks = notebooks; // 缓存之 Notebook.notebooks = notebooks; // 缓存之
self.tree = $.fn.zTree.init($("#notebookList"), self.getTreeSetting(), notebooks); self.tree = $.fn.zTree.init($("#notebookList"), self.getTreeSetting(), notebooks);
// 展开/折叠图标 // 展开/折叠图标
var $notebookList = $("#notebookList"); var $notebookList = $("#notebookList");
$notebookList.hover(function () { $notebookList.hover(function () {
@@ -264,16 +264,16 @@ Notebook.renderNotebooks = function(notebooks) {
}, function() { }, function() {
$(this).removeClass("showIcon"); $(this).removeClass("showIcon");
}); });
// 缓存所有notebooks信息 // 缓存所有notebooks信息
if(!isEmpty(notebooks)) { if(!isEmpty(notebooks)) {
Notebook.curNotebookId = notebooks[0].NotebookId; Notebook.curNotebookId = notebooks[0].NotebookId;
self.cacheAllNotebooks(notebooks); self.cacheAllNotebooks(notebooks);
} }
// 渲染nav // 渲染nav
Notebook.renderNav(); Notebook.renderNav();
// 渲染第一个notebook作为当前 // 渲染第一个notebook作为当前
Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId); Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId);
} }
@@ -294,7 +294,7 @@ Notebook.expandNotebookTo = function(notebookId, userId) {
var me = this; var me = this;
var selected = false; var selected = false;
var tree = me.tree; var tree = me.tree;
// 共享的 // 共享的
if(userId) { if(userId) {
tree = Share.trees[userId]; tree = Share.trees[userId];
@@ -325,7 +325,7 @@ Notebook.expandNotebookTo = function(notebookId, userId) {
} }
// RenderNotebooks调用, // RenderNotebooks调用,
// nav 为了新建, 快速选择, 移动笔记 // nav 为了新建, 快速选择, 移动笔记
// 这些在添加,修改,删除notebooks都要变动!!! // 这些在添加,修改,删除notebooks都要变动!!!
Notebook.renderNav = function(nav) { Notebook.renderNav = function(nav) {
@@ -365,7 +365,7 @@ Notebook.searchNotebookForList = function(key) {
if(key) { if(key) {
$search.show(); $search.show();
$notebookList.hide(); $notebookList.hide();
var notebooks = self.tree.getNodesByParamFuzzy("Title", key); var notebooks = self.tree.getNodesByParamFuzzy("Title", key);
log('search'); log('search');
log(notebooks); log(notebooks);
@@ -390,25 +390,25 @@ Notebook.searchNotebookForList = function(key) {
Notebook.getChangedNotebooks = function(notebooks) { Notebook.getChangedNotebooks = function(notebooks) {
var self = this; var self = this;
var navForNewNote = ""; var navForNewNote = "";
var len = notebooks.length; var len = notebooks.length;
for(var i = 0; i < len; ++i) { for(var i = 0; i < len; ++i) {
var notebook = notebooks[i]; var notebook = notebooks[i];
var classes = ""; var classes = "";
if(!isEmpty(notebook.Subs)) { if(!isEmpty(notebook.Subs)) {
classes = "dropdown-submenu"; classes = "dropdown-submenu";
} }
var eachForNew = tt('<li role="presentation" class="clearfix ?"><div class="new-note-left pull-left" title="为该笔记本新建笔记" href="#" notebookId="?">?</div><div title="为该笔记本新建markdown笔记" class="new-note-right pull-left" notebookId="?">M</div>', classes, notebook.NotebookId, notebook.Title, notebook.NotebookId); var eachForNew = tt('<li role="presentation" class="clearfix ?"><div class="new-note-left pull-left" title="为该笔记本新建笔记" href="#" notebookId="?">?</div><div title="为该笔记本新建markdown笔记" class="new-note-right pull-left" notebookId="?">M</div>', classes, notebook.NotebookId, Note._toHtmlEntity(notebook.Title), notebook.NotebookId);
if(!isEmpty(notebook.Subs)) { if(!isEmpty(notebook.Subs)) {
eachForNew += "<ul class='dropdown-menu'>"; eachForNew += "<ul class='dropdown-menu'>";
eachForNew += self.getChangedNotebooks(notebook.Subs); eachForNew += self.getChangedNotebooks(notebook.Subs);
eachForNew += "</ul>"; eachForNew += "</ul>";
} }
eachForNew += '</li>'; eachForNew += '</li>';
navForNewNote += eachForNew; navForNewNote += eachForNew;
} }
return navForNewNote; return navForNewNote;
@@ -421,12 +421,12 @@ Notebook.changeNav = function() {
var notebooks = Notebook.tree.getNodes(); var notebooks = Notebook.tree.getNodes();
var pureNotebooks = notebooks.slice(1, -1); // 不含新和垃圾 var pureNotebooks = notebooks.slice(1, -1); // 不含新和垃圾
var html = self.getChangedNotebooks(pureNotebooks); var html = self.getChangedNotebooks(pureNotebooks);
self.everNavForNewNote = html; self.everNavForNewNote = html;
self.everNotebooks = pureNotebooks; self.everNotebooks = pureNotebooks;
$("#notebookNavForNewNote").html(html); $("#notebookNavForNewNote").html(html);
// 移动, 复制重新来, 因为nav变了, 移动至-----的notebook导航也变了 // 移动, 复制重新来, 因为nav变了, 移动至-----的notebook导航也变了
// 这里速度很慢 // 这里速度很慢
var t1 = (new Date()).getTime(); var t1 = (new Date()).getTime();
@@ -437,13 +437,13 @@ Notebook.changeNav = function() {
} }
/** /**
* 我的共享notebooks * 我的共享notebooks
<div id="shareNotebooks"> <div id="shareNotebooks">
<div class="folderNote closed"> <div class="folderNote closed">
<div class="folderHeader"> <div class="folderHeader">
<a> <a>
<h1> <h1>
<i class="fa fa-angle-right"></i> <i class="fa fa-angle-right"></i>
Life's</h1> Life's</h1>
</a> </a>
</div> </div>
@@ -460,11 +460,11 @@ Notebook.renderShareNotebooks = function(sharedUserInfos, shareNotebooks) {
if(isEmpty(sharedUserInfos)) { if(isEmpty(sharedUserInfos)) {
return; return;
} }
if(!shareNotebooks || typeof shareNotebooks != "object" || shareNotebooks.length < 0) { if(!shareNotebooks || typeof shareNotebooks != "object" || shareNotebooks.length < 0) {
return; return;
} }
var $shareNotebooks = $("#shareNotebooks"); var $shareNotebooks = $("#shareNotebooks");
var user2ShareNotebooks = {}; var user2ShareNotebooks = {};
for(var i in shareNotebooks) { for(var i in shareNotebooks) {
@@ -474,18 +474,18 @@ Notebook.renderShareNotebooks = function(sharedUserInfos, shareNotebooks) {
for(var i in sharedUserInfos) { for(var i in sharedUserInfos) {
var userInfo = sharedUserInfos[i]; var userInfo = sharedUserInfos[i];
var userNotebooks = user2ShareNotebooks[userInfo.UserId] || {ShareNotebooks:[]}; var userNotebooks = user2ShareNotebooks[userInfo.UserId] || {ShareNotebooks:[]};
userNotebooks.ShareNotebooks = [{NotebookId: "-2", Title: "默认共享"}].concat(userNotebooks.ShareNotebooks) userNotebooks.ShareNotebooks = [{NotebookId: "-2", Title: "默认共享"}].concat(userNotebooks.ShareNotebooks)
var username = userInfo.Username || userInfo.Email; var username = Note._toHtmlEntity(userInfo.Username || userInfo.Email);
var header = tt('<div class="folderNote closed"><div class="folderHeader"><a><h1 title="? 的共享"><i class="fa fa-angle-right"></i>?</h1></a></div>', username, username); var header = tt('<div class="folderNote closed"><div class="folderHeader"><a><h1 title="? 的共享"><i class="fa fa-angle-right"></i>?</h1></a></div>', username, username);
var body = '<ul class="folderBody">'; var body = '<ul class="folderBody">';
for(var j in userNotebooks.ShareNotebooks) { for(var j in userNotebooks.ShareNotebooks) {
var notebook = userNotebooks.ShareNotebooks[j]; var notebook = userNotebooks.ShareNotebooks[j];
body += tt('<li><a notebookId="?">?</a></li>', notebook.NotebookId, notebook.Title) body += tt('<li><a notebookId="?">?</a></li>', notebook.NotebookId, Note._toHtmlEntity(notebook.Title))
} }
body += "</ul>"; body += "</ul>";
$shareNotebooks.append(header + body + "</div>") $shareNotebooks.append(header + body + "</div>")
} }
} }
@@ -509,9 +509,9 @@ Notebook.changeNotebookNavForNewNote = function(notebookId, title) {
var notebook = Notebook.cache[0]; var notebook = Notebook.cache[0];
title = notebook.Title; title = notebook.Title;
} }
if(!Notebook.isAllNotebookId(notebookId) && !Notebook.isTrashNotebookId(notebookId)) { if(!Notebook.isAllNotebookId(notebookId) && !Notebook.isTrashNotebookId(notebookId)) {
$("#curNotebookForNewNote").html(title).attr("notebookId", notebookId); $("#curNotebookForNewNote").text(title).attr("notebookId", notebookId);
} else if(!$("#curNotebookForNewNote").attr("notebookId")) { } else if(!$("#curNotebookForNewNote").attr("notebookId")) {
// 但又没有一个笔记, 默认选第一个吧 // 但又没有一个笔记, 默认选第一个吧
// 这里很可能会死循环, 万一用户没有其它笔记呢? // 这里很可能会死循环, 万一用户没有其它笔记呢?
@@ -527,36 +527,36 @@ Notebook.changeNotebookNavForNewNote = function(notebookId, title) {
// 改变导航, 两处 // 改变导航, 两处
// 单击左侧, 单击新建下拉时调用 // 单击左侧, 单击新建下拉时调用
// 1 选中左侧导航, // 1 选中左侧导航,
// 2 notelist上面 > // 2 notelist上面 >
// 3 新建笔记 - js > // 3 新建笔记 - js >
// 转成我的nav <-> 共享 // 转成我的nav <-> 共享
Notebook.toggleToMyNav = function(userId, notebookId) { Notebook.toggleToMyNav = function(userId, notebookId) {
$("#sharedNotebookNavForListNav").hide(); $("#sharedNotebookNavForListNav").hide();
$("#myNotebookNavForListNav").show(); $("#myNotebookNavForListNav").show();
$("#newMyNote").show(); $("#newMyNote").show();
$("#newSharedNote").hide(); $("#newSharedNote").hide();
// 搜索tag隐藏 // 搜索tag隐藏
$("#tagSearch").hide(); $("#tagSearch").hide();
} }
Notebook.changeNotebookNav = function(notebookId) { Notebook.changeNotebookNav = function(notebookId) {
Notebook.curNotebookId = notebookId; Notebook.curNotebookId = notebookId;
Notebook.toggleToMyNav(); Notebook.toggleToMyNav();
// 1 改变当前的notebook // 1 改变当前的notebook
Notebook.selectNotebook($(tt('#notebook [notebookId="?"]', notebookId))); Notebook.selectNotebook($(tt('#notebook [notebookId="?"]', notebookId)));
var notebook = Notebook.cache[notebookId]; var notebook = Notebook.cache[notebookId];
if(!notebook) { if(!notebook) {
return; return;
} }
// 2 // 2
$("#curNotebookForListNote").html(notebook.Title); $("#curNotebookForListNote").text(notebook.Title);
// 3 // 3
Notebook.changeNotebookNavForNewNote(notebookId, notebook.Title); Notebook.changeNotebookNavForNewNote(notebookId, notebook.Title);
} }
@@ -582,18 +582,18 @@ Notebook.curActiveNotebookIsAll = function() {
Notebook.changeNotebook = function(notebookId, callback) { Notebook.changeNotebook = function(notebookId, callback) {
var me = this; var me = this;
Notebook.changeNotebookNav(notebookId); Notebook.changeNotebookNav(notebookId);
Notebook.curNotebookId = notebookId; Notebook.curNotebookId = notebookId;
// 1 // 1
Note.curChangedSaveIt(); Note.curChangedSaveIt();
// 2 先清空所有 // 2 先清空所有
Note.clearAll(); Note.clearAll();
var url = "/note/listNotes/"; var url = "/note/listNotes/";
var param = {notebookId: notebookId}; var param = {notebookId: notebookId};
// 废纸篓 // 废纸篓
if(Notebook.isTrashNotebookId(notebookId)) { if(Notebook.isTrashNotebookId(notebookId)) {
url = "/note/listTrashNotes"; url = "/note/listTrashNotes";
@@ -621,11 +621,11 @@ Notebook.changeNotebook = function(notebookId, callback) {
return; return;
} }
} }
// 2 得到笔记本 // 2 得到笔记本
// 这里可以缓存起来, note按notebookId缓存 // 这里可以缓存起来, note按notebookId缓存
me.showNoteAndEditorLoading(); me.showNoteAndEditorLoading();
ajaxGet(url, param, function(cacheNotes) { ajaxGet(url, param, function(cacheNotes) {
if(callback) { if(callback) {
callback(cacheNotes); callback(cacheNotes);
} else { } else {
@@ -657,13 +657,13 @@ Notebook.changeNotebookForNewNote = function(notebookId) {
if(Notebook.isTrashNotebookId(notebookId) || Notebook.isAllNotebookId(notebookId)) { if(Notebook.isTrashNotebookId(notebookId) || Notebook.isAllNotebookId(notebookId)) {
return; return;
} }
Notebook.changeNotebookNav(notebookId, true); Notebook.changeNotebookNav(notebookId, true);
Notebook.curNotebookId = notebookId; Notebook.curNotebookId = notebookId;
var url = "/note/listNotes/"; var url = "/note/listNotes/";
var param = {notebookId: notebookId}; var param = {notebookId: notebookId};
// 2 得到笔记本 // 2 得到笔记本
// 这里可以缓存起来, note按notebookId缓存 // 这里可以缓存起来, note按notebookId缓存
ajaxGet(url, param, function(ret) { ajaxGet(url, param, function(ret) {
@@ -686,7 +686,7 @@ Notebook.shareNotebooks= function(target) {
$("#friendsEmail").focus(); $("#friendsEmail").focus();
}, 500); }, 500);
var notebookId = $(target).attr("notebookId"); var notebookId = $(target).attr("notebookId");
shareNoteOrNotebook(notebookId, false); shareNoteOrNotebook(notebookId, false);
} }
@@ -699,7 +699,7 @@ Notebook.setNotebook2Blog = function(target) {
if(notebook.IsBlog != undefined) { if(notebook.IsBlog != undefined) {
isBlog = !notebook.IsBlog; isBlog = !notebook.IsBlog;
} }
// 那么, 如果当前是该notebook下, 重新渲染之 // 那么, 如果当前是该notebook下, 重新渲染之
if(Notebook.curNotebookId == notebookId) { if(Notebook.curNotebookId == notebookId) {
if(isBlog) { if(isBlog) {
@@ -707,7 +707,7 @@ Notebook.setNotebook2Blog = function(target) {
} else { } else {
$("#noteList .item-blog").hide(); $("#noteList .item-blog").hide();
} }
// 如果当前在所有笔记本下 // 如果当前在所有笔记本下
} else if(Notebook.curNotebookId == Notebook.allNotebookId){ } else if(Notebook.curNotebookId == Notebook.allNotebookId){
$("#noteItemList .item").each(function(){ $("#noteItemList .item").each(function(){
@@ -734,7 +734,7 @@ Notebook.setNotebook2Blog = function(target) {
Notebook.updateNotebookTitle = function(target) { Notebook.updateNotebookTitle = function(target) {
var self = Notebook; var self = Notebook;
var notebookId = $(target).attr("notebookId"); var notebookId = $(target).attr("notebookId");
if(self.tree2) { if(self.tree2) {
self.tree2.editName(self.tree2.getNodeByTId(notebookId)); self.tree2.editName(self.tree2.getNodeByTId(notebookId));
} else { } else {
@@ -748,7 +748,7 @@ Notebook.doUpdateNotebookTitle = function(notebookId, newTitle) {
Notebook.cache[notebookId].Title = newTitle; Notebook.cache[notebookId].Title = newTitle;
// 改变nav // 改变nav
Notebook.changeNav(); Notebook.changeNav();
// 同步 // 同步
if(self.tree2) { if(self.tree2) {
var notebook = self.tree.getNodeByTId(notebookId); var notebook = self.tree.getNodeByTId(notebookId);
@@ -768,7 +768,7 @@ Notebook.addNotebook = function() {
if($("#myNotebooks").hasClass("closed")) { if($("#myNotebooks").hasClass("closed")) {
$("#myNotebooks .folderHeader").trigger("click"); $("#myNotebooks .folderHeader").trigger("click");
} }
// 添加并修改 // 添加并修改
self.tree.addNodes(null, {Title: "", NotebookId: getObjectId(), IsNew: true}, true, true); self.tree.addNodes(null, {Title: "", NotebookId: getObjectId(), IsNew: true}, true, true);
} }
@@ -782,10 +782,10 @@ Notebook.doAddNotebook = function(notebookId, title, parentNotebookId) {
var notebook = self.tree.getNodeByTId(notebookId); var notebook = self.tree.getNodeByTId(notebookId);
$.extend(notebook, ret); $.extend(notebook, ret);
notebook.IsNew = false; notebook.IsNew = false;
// 选中之 // 选中之
Notebook.changeNotebook(notebookId); Notebook.changeNotebook(notebookId);
// 改变nav // 改变nav
Notebook.changeNav(); Notebook.changeNav();
} }
@@ -799,9 +799,9 @@ Notebook.addChildNotebook = function(target) {
if($("#myNotebooks").hasClass("closed")) { if($("#myNotebooks").hasClass("closed")) {
$("#myNotebooks .folderHeader").trigger("click"); $("#myNotebooks .folderHeader").trigger("click");
} }
var notebookId = $(target).attr("notebookId"); var notebookId = $(target).attr("notebookId");
// 添加并修改 // 添加并修改
self.tree.addNodes(self.tree.getNodeByTId(notebookId), {Title: "", NotebookId: getObjectId(), IsNew: true}, false, true); self.tree.addNodes(self.tree.getNodeByTId(notebookId), {Title: "", NotebookId: getObjectId(), IsNew: true}, false, true);
} }
@@ -810,12 +810,12 @@ Notebook.addChildNotebook = function(target) {
// 删除 // 删除
Notebook.deleteNotebook = function(target) { Notebook.deleteNotebook = function(target) {
var self = Notebook; var self = Notebook;
var notebookId = $(target).attr("notebookId"); var notebookId = $(target).attr("notebookId");
if(!notebookId) { if(!notebookId) {
return; return;
} }
ajaxGet("/notebook/deleteNotebook", {notebookId: notebookId}, function(ret) { ajaxGet("/notebook/deleteNotebook", {notebookId: notebookId}, function(ret) {
if(ret.Ok) { if(ret.Ok) {
/* /*
@@ -826,7 +826,7 @@ Notebook.deleteNotebook = function(target) {
self.tree2.removeNode(self.tree2.getNodeByTId(notebookId)); self.tree2.removeNode(self.tree2.getNodeByTId(notebookId));
} }
delete Notebook.cache[notebookId]; delete Notebook.cache[notebookId];
// 改变nav // 改变nav
Notebook.changeNav(); Notebook.changeNav();
} else { } else {
@@ -849,17 +849,17 @@ $(function() {
var notebookId = $(this).find("a").attr("notebookId"); var notebookId = $(this).find("a").attr("notebookId");
Notebook.changeNotebook(notebookId); Notebook.changeNotebook(notebookId);
}); });
// 修改笔记本标题, blur后修改标题之 // 修改笔记本标题, blur后修改标题之
/* /*
enterBlur("#notebookList", "input#editNotebookTitle"); enterBlur("#notebookList", "input#editNotebookTitle");
$("#notebookList").on("blur", "input#editNotebookTitle", Notebook.doUpdateNotebookTitle); $("#notebookList").on("blur", "input#editNotebookTitle", Notebook.doUpdateNotebookTitle);
*/ */
//------------------- //-------------------
// 右键菜单 // 右键菜单
var notebookListMenu = { var notebookListMenu = {
width: 180, width: 180,
items: [ items: [
{ text: getMsg("shareToFriends"), alias: 'shareToFriends', icon: "", faIcon: "fa-share-square-o", action: Notebook.listNotebookShareUserInfo}, { text: getMsg("shareToFriends"), alias: 'shareToFriends', icon: "", faIcon: "fa-share-square-o", action: Notebook.listNotebookShareUserInfo},
{ type: "splitLine" }, { type: "splitLine" },
@@ -875,10 +875,10 @@ $(function() {
parent: "#notebookList ", parent: "#notebookList ",
children: "li a" children: "li a"
} }
// for search // for search
var notebookListMenu2 = { var notebookListMenu2 = {
width: 180, width: 180,
items: [ items: [
{ text: getMsg("shareToFriends"), alias: 'shareToFriends', icon: "", faIcon: "fa-share-square-o", action: Notebook.listNotebookShareUserInfo}, { text: getMsg("shareToFriends"), alias: 'shareToFriends', icon: "", faIcon: "fa-share-square-o", action: Notebook.listNotebookShareUserInfo},
{ type: "splitLine" }, { type: "splitLine" },
@@ -893,7 +893,7 @@ $(function() {
parent: "#notebookListForSearch ", parent: "#notebookListForSearch ",
children: "li a" children: "li a"
} }
function applyrule(menu) { function applyrule(menu) {
var notebookId = $(this).attr("notebookId"); var notebookId = $(this).attr("notebookId");
var notebook = Notebook.cache[notebookId]; var notebook = Notebook.cache[notebookId];
@@ -923,17 +923,17 @@ $(function() {
var notebookId = $(this).attr("notebookId"); var notebookId = $(this).attr("notebookId");
return !Notebook.isTrashNotebookId(notebookId) && !Notebook.isAllNotebookId(notebookId); return !Notebook.isTrashNotebookId(notebookId) && !Notebook.isAllNotebookId(notebookId);
} }
Notebook.contextmenu = $("#notebookList li a").contextmenu(notebookListMenu); Notebook.contextmenu = $("#notebookList li a").contextmenu(notebookListMenu);
Notebook.contextmenuSearch = $("#notebookListForSearch li a").contextmenu(notebookListMenu2); Notebook.contextmenuSearch = $("#notebookListForSearch li a").contextmenu(notebookListMenu2);
// 添加笔记本 // 添加笔记本
$("#addNotebookPlus").click(function(e) { $("#addNotebookPlus").click(function(e) {
e.stopPropagation(); e.stopPropagation();
Notebook.addNotebook(); Notebook.addNotebook();
}); });
// notebook setting // notebook setting
$("#notebookList").on("click", ".notebook-setting", function(e) { $("#notebookList").on("click", ".notebook-setting", function(e) {
e.preventDefault(); e.preventDefault();
+1 -1
View File
@@ -1 +1 @@
Tag.classes={"蓝色":"label label-blue","红色":"label label-red","绿色":"label label-green","黄色":"label label-yellow",blue:"label label-blue",red:"label label-red",green:"label label-green",yellow:"label label-yellow"};Tag.mapCn2En={"蓝色":"blue","红色":"red","绿色":"green","黄色":"yellow"};Tag.mapEn2Cn={blue:"蓝色",red:"红色",green:"绿色",yellow:"黄色"};Tag.t=$("#tags");Tag.getTags=function(){var tags=[];Tag.t.children().each(function(){var text=$(this).text();text=text.substring(0,text.length-1);text=Tag.mapCn2En[text]||text;tags.push(text)});return tags};Tag.clearTags=function(){Tag.t.html("")};Tag.renderTags=function(tags){Tag.t.html("");if(isEmpty(tags)){return}for(var i=0;i<tags.length;++i){var tag=tags[i];Tag.appendTag(tag)}};function revertTagStatus(){$("#addTagTrigger").show();$("#addTagInput").hide()}function hideTagList(event){$("#tagDropdown").removeClass("open");if(event){event.stopPropagation()}}function showTagList(event){$("#tagDropdown").addClass("open");if(event){event.stopPropagation()}}Tag.renderReadOnlyTags=function(tags){$("#noteReadTags").html("");if(isEmpty(tags)){$("#noteReadTags").html(getMsg("noTag"))}var i=true;function getNextDefaultClasses(){if(i){return"label label-default";i=false}else{i=true;return"label label-info"}}for(var i in tags){var text=tags[i];text=Tag.mapEn2Cn[text]||text;var classes=Tag.classes[text];if(!classes){classes=getNextDefaultClasses()}tag=tt('<span class="?">?</span>',classes,text);$("#noteReadTags").append(tag)}};Tag.appendTag=function(tag){var isColor=false;var classes,text;if(typeof tag=="object"){classes=tag.classes;text=tag.text;if(!text){return}}else{tag=$.trim(tag);text=tag;if(!text){return}var classes=Tag.classes[text];if(classes){isColor=true}else{classes="label label-default"}}if(LEA.locale=="zh"){text=Tag.mapEn2Cn[text]||text}tag=tt('<span class="?">?<i title="'+getMsg("delete")+'">X</i></span>',classes,text);$("#tags").children().each(function(){if(isColor){var tagHtml=$("<div></div>").append($(this).clone()).html();if(tagHtml==tag){$(this).remove()}}else if(text+"X"==$(this).text()){$(this).remove()}});$("#tags").append(tag);hideTagList();if(!isColor){reRenderTags()}};function reRenderTags(){var defautClasses=["label label-default","label label-info"];var i=0;$("#tags").children().each(function(){var thisClasses=$(this).attr("class");if(thisClasses=="label label-default"||thisClasses=="label label-info"){$(this).removeClass(thisClasses).addClass(defautClasses[i%2]);i++}})}Tag.renderTagNav=function(tags){tags=tags||[];for(var i in tags){var tag=tags[i];if(tag=="red"||tag=="blue"||tag=="yellow"||tag=="green"){continue}var text=Tag.mapEn2Cn[tag]||tag;var classes=Tag.classes[tag]||"label label-default";$("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span></li>',text,classes,text))}};$(function(){$("#addTagTrigger").click(function(){$(this).hide();$("#addTagInput").show().focus().val("")});$("#addTagInput").click(function(event){showTagList(event)});$("#addTagInput").blur(function(){var val=$(this).val();if(val){Tag.appendTag(val,true)}return;$("#addTagTrigger").show();$("#addTagInput").hide()});$("#addTagInput").keydown(function(e){if(e.keyCode==13){hideTagList();if($("#addTagInput").val()){$(this).trigger("blur");$("#addTagTrigger").trigger("click")}else{$(this).trigger("blur")}}});$("#tagColor li").click(function(event){var a;if($(this).attr("role")){a=$(this).find("span")}else{a=$(this)}Tag.appendTag({classes:a.attr("class"),text:a.text()})});$("#tags").on("click","i",function(){$(this).parent().remove();reRenderTags()});function searchTag(){var tag=$.trim($(this).data("tag"));Note.curChangedSaveIt();Note.clearAll();$("#tagSearch").html($(this).html()).show();showLoading();ajaxGet("/note/searchNoteByTags",{tags:[tag]},function(notes){hideLoading();if(notes){Note.renderNotes(notes);if(!isEmpty(notes)){Note.changeNote(notes[0].NoteId)}}})}$("#myTag .folderBody").on("click","li",searchTag);$("#minTagNav").on("click","li",searchTag)}); Tag.classes={"蓝色":"label label-blue","红色":"label label-red","绿色":"label label-green","黄色":"label label-yellow",blue:"label label-blue",red:"label label-red",green:"label label-green",yellow:"label label-yellow"};Tag.mapCn2En={"蓝色":"blue","红色":"red","绿色":"green","黄色":"yellow"};Tag.mapEn2Cn={blue:"蓝色",red:"红色",green:"绿色",yellow:"黄色"};Tag.t=$("#tags");Tag.getTags=function(){var tags=[];Tag.t.children().each(function(){var text=$(this).text();text=text.substring(0,text.length-1);text=Tag.mapCn2En[text]||text;tags.push(text)});return tags};Tag.clearTags=function(){Tag.t.html("")};Tag.renderTags=function(tags){Tag.t.html("");if(isEmpty(tags)){return}for(var i=0;i<tags.length;++i){var tag=tags[i];Tag.appendTag(tag)}};function revertTagStatus(){$("#addTagTrigger").show();$("#addTagInput").hide()}function hideTagList(event){$("#tagDropdown").removeClass("open");if(event){event.stopPropagation()}}function showTagList(event){$("#tagDropdown").addClass("open");if(event){event.stopPropagation()}}Tag.renderReadOnlyTags=function(tags){$("#noteReadTags").html("");if(isEmpty(tags)){$("#noteReadTags").html(getMsg("noTag"))}var i=true;function getNextDefaultClasses(){if(i){return"label label-default";i=false}else{i=true;return"label label-info"}}for(var i in tags){var text=tags[i];text=Tag.mapEn2Cn[text]||text;var classes=Tag.classes[text];if(!classes){classes=getNextDefaultClasses()}tag=tt('<span class="?">?</span>',classes,Note._toHtmlEntity(text));$("#noteReadTags").append(tag)}};Tag.appendTag=function(tag){var isColor=false;var classes,text;if(typeof tag=="object"){classes=tag.classes;text=tag.text;if(!text){return}}else{tag=$.trim(tag);text=tag;if(!text){return}var classes=Tag.classes[text];if(classes){isColor=true}else{classes="label label-default"}}if(LEA.locale=="zh"){text=Tag.mapEn2Cn[text]||text}tag=tt('<span class="?">?<i title="'+getMsg("delete")+'">X</i></span>',classes,Note._toHtmlEntity(text));$("#tags").children().each(function(){if(isColor){var tagHtml=$("<div></div>").append($(this).clone()).html();if(tagHtml==tag){$(this).remove()}}else if(text+"X"==$(this).text()){$(this).remove()}});$("#tags").append(tag);hideTagList();if(!isColor){reRenderTags()}};function reRenderTags(){var defautClasses=["label label-default","label label-info"];var i=0;$("#tags").children().each(function(){var thisClasses=$(this).attr("class");if(thisClasses=="label label-default"||thisClasses=="label label-info"){$(this).removeClass(thisClasses).addClass(defautClasses[i%2]);i++}})}Tag.renderTagNav=function(tags){tags=tags||[];for(var i in tags){var tag=tags[i];if(tag=="red"||tag=="blue"||tag=="yellow"||tag=="green"){continue}var text=Note._toHtmlEntity(Tag.mapEn2Cn[tag]||tag);var classes=Tag.classes[tag]||"label label-default";$("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span></li>',text,classes,text))}};$(function(){$("#addTagTrigger").click(function(){$(this).hide();$("#addTagInput").show().focus().val("")});$("#addTagInput").click(function(event){showTagList(event)});$("#addTagInput").blur(function(){var val=$(this).val();if(val){Tag.appendTag(val,true)}return;$("#addTagTrigger").show();$("#addTagInput").hide()});$("#addTagInput").keydown(function(e){if(e.keyCode==13){hideTagList();if($("#addTagInput").val()){$(this).trigger("blur");$("#addTagTrigger").trigger("click")}else{$(this).trigger("blur")}}});$("#tagColor li").click(function(event){var a;if($(this).attr("role")){a=$(this).find("span")}else{a=$(this)}Tag.appendTag({classes:a.attr("class"),text:a.text()})});$("#tags").on("click","i",function(){$(this).parent().remove();reRenderTags()});function searchTag(){var tag=$.trim($(this).data("tag"));Note.curChangedSaveIt();Note.clearAll();$("#tagSearch").html($(this).html()).show();showLoading();ajaxGet("/note/searchNoteByTags",{tags:[tag]},function(notes){hideLoading();if(notes){Note.renderNotes(notes);if(!isEmpty(notes)){Note.changeNote(notes[0].NoteId)}}})}$("#myTag .folderBody").on("click","li",searchTag);$("#minTagNav").on("click","li",searchTag)});
+18 -18
View File
@@ -89,7 +89,7 @@ Tag.renderReadOnlyTags = function(tags) {
if(isEmpty(tags)) { if(isEmpty(tags)) {
$("#noteReadTags").html(getMsg("noTag")); $("#noteReadTags").html(getMsg("noTag"));
} }
var i = true; var i = true;
function getNextDefaultClasses() { function getNextDefaultClasses() {
if (i) { if (i) {
@@ -100,7 +100,7 @@ Tag.renderReadOnlyTags = function(tags) {
return "label label-info"; return "label label-info";
} }
} }
for(var i in tags) { for(var i in tags) {
var text = tags[i]; var text = tags[i];
text = Tag.mapEn2Cn[text] || text; text = Tag.mapEn2Cn[text] || text;
@@ -108,8 +108,8 @@ Tag.renderReadOnlyTags = function(tags) {
if(!classes) { if(!classes) {
classes = getNextDefaultClasses(); classes = getNextDefaultClasses();
} }
tag = tt('<span class="?">?</span>', classes, text); tag = tt('<span class="?">?</span>', classes, Note._toHtmlEntity(text));
$("#noteReadTags").append(tag); $("#noteReadTags").append(tag);
} }
} }
@@ -120,7 +120,7 @@ Tag.renderReadOnlyTags = function(tags) {
Tag.appendTag = function(tag) { Tag.appendTag = function(tag) {
var isColor = false; var isColor = false;
var classes, text; var classes, text;
if (typeof tag == "object") { if (typeof tag == "object") {
classes = tag.classes; classes = tag.classes;
text = tag.text; text = tag.text;
@@ -140,11 +140,11 @@ Tag.appendTag = function(tag) {
classes = "label label-default"; classes = "label label-default";
} }
} }
if(LEA.locale == "zh") { if(LEA.locale == "zh") {
text = Tag.mapEn2Cn[text] || text; text = Tag.mapEn2Cn[text] || text;
} }
tag = tt('<span class="?">?<i title="' + getMsg("delete") + '">X</i></span>', classes, text); tag = tt('<span class="?">?<i title="' + getMsg("delete") + '">X</i></span>', classes, Note._toHtmlEntity(text));
// 避免重复 // 避免重复
$("#tags").children().each(function() { $("#tags").children().each(function() {
@@ -192,9 +192,9 @@ Tag.renderTagNav = function(tags) {
if(tag == "red" || tag == "blue" || tag == "yellow" || tag == "green") { if(tag == "red" || tag == "blue" || tag == "yellow" || tag == "green") {
continue; continue;
} }
var text = Tag.mapEn2Cn[tag] || tag; var text = Note._toHtmlEntity(Tag.mapEn2Cn[tag] || tag);
var classes = Tag.classes[tag] || "label label-default"; var classes = Tag.classes[tag] || "label label-default";
$("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span></li>', text, classes, text)); $("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span></li>', text, classes, text));
} }
} }
@@ -206,11 +206,11 @@ $(function() {
$(this).hide(); $(this).hide();
$("#addTagInput").show().focus().val(""); $("#addTagInput").show().focus().val("");
}); });
$("#addTagInput").click(function(event) { $("#addTagInput").click(function(event) {
showTagList(event); showTagList(event);
}); });
$("#addTagInput").blur(function() { $("#addTagInput").blur(function() {
var val = $(this).val(); var val = $(this).val();
if(val) { if(val) {
@@ -258,27 +258,27 @@ $(function() {
// event.stopPropagation(); // event.stopPropagation();
}); });
*/ */
$("#tags").on("click", "i", function() { $("#tags").on("click", "i", function() {
$(this).parent().remove(); $(this).parent().remove();
reRenderTags(); reRenderTags();
}); });
//------------- //-------------
// nav 标签搜索 // nav 标签搜索
function searchTag() { function searchTag() {
var tag = $.trim($(this).data("tag")); var tag = $.trim($(this).data("tag"));
// tag = Tag.mapCn2En[tag] || tag; // tag = Tag.mapCn2En[tag] || tag;
// 学习changeNotebook // 学习changeNotebook
// 1 // 1
Note.curChangedSaveIt(); Note.curChangedSaveIt();
// 2 先清空所有 // 2 先清空所有
// 也会把curNoteId清空 // 也会把curNoteId清空
Note.clearAll(); Note.clearAll();
$("#tagSearch").html($(this).html()).show(); $("#tagSearch").html($(this).html()).show();
showLoading(); showLoading();
ajaxGet("/note/searchNoteByTags", {tags: [tag]}, function(notes) { ajaxGet("/note/searchNoteByTags", {tags: [tag]}, function(notes) {
@@ -287,7 +287,7 @@ $(function() {
// 和note搜索一样 // 和note搜索一样
// 设空, 防止发生上述情况 // 设空, 防止发生上述情况
// Note.curNoteId = ""; // Note.curNoteId = "";
Note.renderNotes(notes); Note.renderNotes(notes);
if(!isEmpty(notes)) { if(!isEmpty(notes)) {
Note.changeNote(notes[0].NoteId); Note.changeNote(notes[0].NoteId);