search notebook for list [ok]

This commit is contained in:
iiuazz
2014-09-11 20:55:07 +08:00
parent 883ea1da62
commit ca4eb3aef5
8 changed files with 179 additions and 65 deletions

View File

@ -82,9 +82,7 @@ function log(o) {
<i class="fa fa-angle-down"></i> <i class="fa fa-angle-down"></i>
</a> </a>
<div class="dropdown-menu dropdown-list" style="left: -200px;" > <div class="dropdown-menu dropdown-list" style="left: -200px;" >
<!-- <input type="text" placeholder="search notebook" class="form-control" id="searchNotebookForAdd"/>
<input type="text" placeholder="search notebook"/>
-->
<ul class="clearfix" role="menu" aria-labelledby="dropdownMenu2" id="notebookNavForNewNote"> <ul class="clearfix" role="menu" aria-labelledby="dropdownMenu2" id="notebookNavForNewNote">
</ul> </ul>
</div> </div>
@ -239,8 +237,12 @@ function log(o) {
<i class="fa fa-plus" title="{{msg . "addNotebook"}}"></i> <i class="fa fa-plus" title="{{msg . "addNotebook"}}"></i>
</div> </div>
</div> </div>
<ul class="folderBody ztree" id="notebookList">
</ul> <div class="folderBody">
<input type="text" class="form-control" id="searchNotebookForList" placeholder="search notebook"/>
<ul class="ztree" id="notebookList"></ul>
<ul class="ztree" id="notebookListForSearch"></ul>
</div>
</div> </div>
<div class="folderNote closed" id="myTag"> <div class="folderNote closed" id="myTag">

View File

@ -178,4 +178,27 @@
.new-note-right { .new-note-right {
padding: 0 5px; padding: 0 5px;
padding-left: 3px padding-left: 3px
}
#leanoteMsg {
line-height: 40px; margin-top: 10px; margin-left: 10px;
}
#newNoteWrap {
line-height: 40px; margin-top: 10px;
}
#searchNotebookForAdd {
line-height: normal;
width: 200px;
margin: 0 10px;
margin-bottom: 10px;
height: 30px;
border-color: #ebeff2;
box-shadow: none;
}
#searchNotebookForList {
height: 30px;
width: 90%;
margin: 3px auto;
border-color: #ebeff2;
box-shadow: none;
} }

File diff suppressed because one or more lines are too long

View File

@ -464,7 +464,7 @@ a.raw:hover {
} }
// 重命名, 添加notebook // 重命名, 添加notebook
#notebookList input { #notebookList input, #notebookListForSearch input {
border: 1px solid @borderColor; border: 1px solid @borderColor;
width: 90%; width: 90%;
box-shadow: none; box-shadow: none;
@ -1144,12 +1144,7 @@ background-position:-1px -670px
padding: 5px 0; padding: 5px 0;
} }
} }
#leanoteMsg {
line-height: 40px; margin-top: 10px; margin-left: 10px;
}
#newNoteWrap {
line-height: 40px; margin-top: 10px;
}
#loading { #loading {
display: inline-block; display: inline-block;
width: 20px; width: 20px;

File diff suppressed because one or more lines are too long

View File

@ -443,7 +443,7 @@ a.raw:hover {
} }
// 重命名, 添加notebook // 重命名, 添加notebook
#notebookList input { #notebookList input, #notebookListForSearch input {
border: 1px solid @borderColor; border: 1px solid @borderColor;
width: 90%; width: 90%;
box-shadow: none; box-shadow: none;
@ -1105,12 +1105,6 @@ background-position:-1px -670px
} }
} }
#leanoteMsg {
line-height: 40px; margin-top: 10px; margin-left: 10px;
}
#newNoteWrap {
line-height: 40px; margin-top: 10px;
}
#loading { #loading {
display: inline-block; display: inline-block;
width: 20px; width: 20px;

View File

@ -1294,6 +1294,17 @@ $(function() {
Note.newNote(notebookId); Note.newNote(notebookId);
} }
}); });
$("#searchNotebookForAdd").click(function(e) {
e.stopPropagation();
});
$("#searchNotebookForAdd").keyup(function() {
var key = $(this).val();
Notebook.searchNotebookForAddNote(key);
});
$("#searchNotebookForList").keyup(function() {
var key = $(this).val();
Notebook.searchNotebookForList(key);
});
//--------------------------- //---------------------------
// 搜索, 按enter才搜索 // 搜索, 按enter才搜索

View File

@ -43,24 +43,24 @@ Notebook.getNotebookTitle = function(notebookId) {
<li><a class="active">Hadoop</a></li> <li><a class="active">Hadoop</a></li>
<li><a>August 13, 2013</a></li> <li><a>August 13, 2013</a></li>
</ul> </ul>
*/ */
// TODO 层级
Notebook.allNotebookId = "0"; Notebook.getTreeSetting = function(isSearch){
Notebook.trashNotebookId = "-1"; var noSearch = !isSearch;
Notebook.curNotebookIsTrashOrAll = function() {
return Notebook.curNotebookId == Notebook.trashNotebookId || Notebook.curNotebookId == Notebook.allNotebookId ;
}
Notebook.renderNotebooks = function(notebooks) {
var self = this; var self = this;
// 添加自定义dom
if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) { function addDiyDom(treeId, treeNode) {
notebooks = []; var spaceWidth = 5;
var switchObj = $("#" + treeId + " #" + treeNode.tId + "_switch"),
icoObj = $("#" + treeId + " #" + treeNode.tId + "_ico");
switchObj.remove();
icoObj.before(switchObj);
if (treeNode.level > 1) {
var spaceStr = "<span style='display: inline-block;width:" + (spaceWidth * treeNode.level)+ "px'></span>";
switchObj.before(spaceStr);
}
} }
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});
Notebook.notebooks = notebooks; // 缓存之
// 拖拽 // 拖拽
function beforeDrag(treeId, treeNodes) { function beforeDrag(treeId, treeNodes) {
for (var i=0,l=treeNodes.length; i<l; i++) { for (var i=0,l=treeNodes.length; i<l; i++) {
@ -75,6 +75,10 @@ Notebook.renderNotebooks = function(notebooks) {
} }
function onDrop(e, treeId, treeNodes, targetNode, moveType) { function onDrop(e, treeId, treeNodes, targetNode, moveType) {
var treeNode = treeNodes[0]; var treeNode = treeNodes[0];
// 搜索不能drag
if(!targetNode) {
return;
}
var parentNode; var parentNode;
var treeObj = self.tree; var treeObj = self.tree;
var ajaxData = {curNotebookId: treeNode.NotebookId}; var ajaxData = {curNotebookId: treeNode.NotebookId};
@ -108,20 +112,7 @@ Notebook.renderNotebooks = function(notebooks) {
} }
ajaxPost("/notebook/dragNotebooks", {data: JSON.stringify(ajaxData)}); ajaxPost("/notebook/dragNotebooks", {data: JSON.stringify(ajaxData)});
} }
// 添加自定义dom
function addDiyDom(treeId, treeNode) {
var spaceWidth = 5;
var switchObj = $("#" + treeNode.tId + "_switch"),
icoObj = $("#" + treeNode.tId + "_ico");
switchObj.remove();
icoObj.before(switchObj);
if (treeNode.level > 1) {
var spaceStr = "<span style='display: inline-block;width:" + (spaceWidth * treeNode.level)+ "px'></span>";
switchObj.before(spaceStr);
}
}
var setting = { var setting = {
view: { view: {
showLine: false, showLine: false,
showIcon: false, showIcon: false,
@ -140,10 +131,10 @@ Notebook.renderNotebooks = function(notebooks) {
showRemoveBtn: false, showRemoveBtn: false,
showRenameBtn: false, showRenameBtn: false,
drag: { drag: {
isMove: true, isMove: noSearch,
prev: true, prev: noSearch,
inner: true, inner: noSearch,
next: true next: noSearch
} }
}, },
callback: { callback: {
@ -154,8 +145,6 @@ Notebook.renderNotebooks = function(notebooks) {
var notebookId = treeNode.NotebookId; var notebookId = treeNode.NotebookId;
Notebook.changeNotebook(notebookId); Notebook.changeNotebook(notebookId);
}, },
onRightClick: function(event, treeId, treeNode) {
},
beforeRename: function(treeId, treeNode, newName, isCancel) { beforeRename: function(treeId, treeNode, newName, isCancel) {
if(newName == "") { if(newName == "") {
if(treeNode.IsNew) { if(treeNode.IsNew) {
@ -183,7 +172,29 @@ Notebook.renderNotebooks = function(notebooks) {
} }
}; };
self.tree = $.fn.zTree.init($("#notebookList"), setting, notebooks); // 搜索不能拖拽
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: getMsg("trash"), drop:false, drag: false});
Notebook.notebooks = notebooks; // 缓存之
self.tree = $.fn.zTree.init($("#notebookList"), self.getTreeSetting(), notebooks);
// 展开/折叠图标 // 展开/折叠图标
var $notebookList = $("#notebookList"); var $notebookList = $("#notebookList");
@ -227,6 +238,7 @@ Notebook.renderNav = function(nav) {
var self = this; var self = this;
self.changeNav(); self.changeNav();
return; return;
var navForListNote = ""; var navForListNote = "";
var navForNewNote = ""; var navForNewNote = "";
var navForMoveNote = ""; var navForMoveNote = "";
@ -248,6 +260,47 @@ Notebook.renderNav = function(nav) {
$("#notebookNavForMoveNote").html(navForMoveNote); $("#notebookNavForMoveNote").html(navForMoveNote);
} }
// 搜索notebook
Notebook.searchNotebookForAddNote = function(key) {
var self = this;
if(key) {
var notebooks = self.tree.getNodesByParamFuzzy("Title", key);
if(isEmpty(notebooks)) {
$("#notebookNavForNewNote").html("");
} else {
$("#notebookNavForNewNote").html(self.getChangedNotebooks(notebooks));
}
} else {
$("#notebookNavForNewNote").html(self.everNavForNewNote);
}
}
// 搜索notebook
Notebook.searchNotebookForList = function(key) {
var self = this;
var $search = $("#notebookListForSearch");
var $notebookList = $("#notebookList");
if(key) {
$search.show();
$notebookList.hide();
var notebooks = self.tree.getNodesByParamFuzzy("Title", key);
log(notebooks);
if(isEmpty(notebooks)) {
$search.html("");
} else {
var setting = self.getTreeSetting(true);
self.tree2 = $.fn.zTree.init($search, setting, notebooks);
}
} else {
self.tree2 = null;
$search.hide();
$notebookList.show();
$("#notebookNavForNewNote").html(self.everNavForNewNote);
}
}
// 修改,添加,删除notebook后调用 // 修改,添加,删除notebook后调用
// 改变nav // 改变nav
// 直接从html中取! // 直接从html中取!
@ -277,14 +330,21 @@ Notebook.getChangedNotebooks = function(notebooks) {
} }
return navForNewNote; return navForNewNote;
} }
Notebook.everNavForNewNote = "";
Notebook.everNotebooks = [];
Notebook.changeNav = function() { Notebook.changeNav = function() {
var self = Notebook; var self = Notebook;
var navForListNote = "";
var navForNewNote = ""; var navForNewNote = "";
var notebooks = Notebook.tree.getNodes(); var notebooks = Notebook.tree.getNodes();
var html = self.getChangedNotebooks(notebooks); var html = self.getChangedNotebooks(notebooks);
self.everNavForNewNote = html;
self.everNotebooks = notebooks;
/*
var i = 0; var i = 0;
var $list = $("#notebookList li a"); var $list = $("#notebookList li a");
var len = $list.length - 1; var len = $list.length - 1;
@ -309,6 +369,7 @@ Notebook.changeNav = function() {
i++; i++;
} }
}); });
*/
$("#notebookNavForListNote").html(html); $("#notebookNavForListNote").html(html);
$("#notebookNavForNewNote").html(html); $("#notebookNavForNewNote").html(html);
@ -589,21 +650,27 @@ 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");
self.tree.editName(self.tree.getNodeByTId(notebookId));
return; if(self.tree2) {
self.tree2.editName(self.tree2.getNodeByTId(notebookId));
var notebookTitle = $(target).text(); } else {
var id = "editNotebookTitle"; self.tree.editName(self.tree.getNodeByTId(notebookId));
$(target).html(t('<input type="text" value="?" everValue="?" id="?" notebookId="?"/>', notebookTitle, notebookTitle, id, $(target).attr("notebookId"))); }
$("#" + id).focus();
} }
Notebook.doUpdateNotebookTitle = function(notebookId, newTitle) { Notebook.doUpdateNotebookTitle = function(notebookId, newTitle) {
var self = Notebook;
ajaxPost("/notebook/updateNotebookTitle", {notebookId: notebookId, title: newTitle}, function(ret) { ajaxPost("/notebook/updateNotebookTitle", {notebookId: notebookId, title: newTitle}, function(ret) {
// 修改缓存 // 修改缓存
Notebook.cache[notebookId].Title = newTitle; Notebook.cache[notebookId].Title = newTitle;
// 改变nav // 改变nav
Notebook.changeNav(); Notebook.changeNav();
// 同步
if(self.tree2) {
var notebook = self.tree.getNodeByTId(notebookId);
notebook.Title = newTitle;
self.tree.updateNode(notebook);
}
}); });
} }
@ -671,6 +738,9 @@ Notebook.deleteNotebook = function(target) {
$(target).parent().remove(); $(target).parent().remove();
*/ */
self.tree.removeNode(self.tree.getNodeByTId(notebookId)); self.tree.removeNode(self.tree.getNodeByTId(notebookId));
if(self.tree2) {
self.tree2.removeNode(self.tree2.getNodeByTId(notebookId));
}
delete Notebook.cache[notebookId]; delete Notebook.cache[notebookId];
// 改变nav // 改变nav
@ -722,6 +792,23 @@ $(function() {
children: "li a" children: "li a"
} }
var notebookListMenu2 = {
width: 150,
items: [
{ text: "分享给好友", alias: 'shareToFriends', icon: "", faIcon: "fa-share-square-o", action: Notebook.listNotebookShareUserInfo},
{ type: "splitLine" },
{ text: "公开为博客", alias: 'set2Blog', icon: "", action: Notebook.setNotebook2Blog },
{ text: "取消公开为博客", alias: 'unset2Blog', icon: "", action: Notebook.setNotebook2Blog }, // Unset
{ type: "splitLine" },
{ text: "重命名", icon: "", action: Notebook.updateNotebookTitle },
{ text: "删除", icon: "", alias: 'delete', faIcon: "fa-trash-o", action: Notebook.deleteNotebook }
],
onShow: applyrule,
onContextMenu: beforeContextMenu,
parent: "#notebookListForSearch ",
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];
@ -753,6 +840,8 @@ $(function() {
} }
$("#notebookList li a").contextmenu(notebookListMenu); $("#notebookList li a").contextmenu(notebookListMenu);
$("#notebookListForSearch").contextmenu(notebookListMenu2);
//------------------ //------------------
// 添加notebook // 添加notebook
// 右键菜单 // 右键菜单