add notebook, add sub notebook, delete, rename [ok]
This commit is contained in:
@ -5,7 +5,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/leanote/leanote/app/info"
|
"github.com/leanote/leanote/app/info"
|
||||||
"gopkg.in/mgo.v2/bson"
|
"gopkg.in/mgo.v2/bson"
|
||||||
. "github.com/leanote/leanote/app/lea"
|
// . "github.com/leanote/leanote/app/lea"
|
||||||
// "io/ioutil"
|
// "io/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,11 +29,14 @@ func (c Notebook) DeleteNotebook(notebookId string) revel.Result {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 添加notebook
|
// 添加notebook
|
||||||
func (c Notebook) AddNotebook(notebookId, title string) revel.Result {
|
func (c Notebook) AddNotebook(notebookId, title, parentNotebookId string) revel.Result {
|
||||||
notebook := info.Notebook{NotebookId: bson.ObjectIdHex(notebookId),
|
notebook := info.Notebook{NotebookId: bson.ObjectIdHex(notebookId),
|
||||||
Title: title,
|
Title: title,
|
||||||
Seq: -1,
|
Seq: -1,
|
||||||
UserId: c.GetObjectUserId()}
|
UserId: c.GetObjectUserId()}
|
||||||
|
if(parentNotebookId != "") {
|
||||||
|
notebook.ParentNotebookId = bson.ObjectIdHex(parentNotebookId)
|
||||||
|
}
|
||||||
re := notebookService.AddNotebook(notebook)
|
re := notebookService.AddNotebook(notebook)
|
||||||
|
|
||||||
if(re) {
|
if(re) {
|
||||||
|
@ -191,14 +191,20 @@ func (this *NotebookService) UpdateNotebook(userId, notebookId string, needUpdat
|
|||||||
return db.UpdateByIdAndUserIdMap(db.Notebooks, notebookId, userId, needUpdate)
|
return db.UpdateByIdAndUserIdMap(db.Notebooks, notebookId, userId, needUpdate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查看是否有子notebook
|
||||||
// 先查看该notebookId下是否有notes, 没有则删除
|
// 先查看该notebookId下是否有notes, 没有则删除
|
||||||
func (this *NotebookService) DeleteNotebook(userId, notebookId string) (bool, string) {
|
func (this *NotebookService) DeleteNotebook(userId, notebookId string) (bool, string) {
|
||||||
if db.Count(db.Notes, bson.M{"NotebookId": bson.ObjectIdHex(notebookId),
|
if db.Count(db.Notebooks, bson.M{"ParentNotebookId": bson.ObjectIdHex(notebookId),
|
||||||
"UserId": bson.ObjectIdHex(userId),
|
"UserId": bson.ObjectIdHex(userId)}) == 0 { // 无
|
||||||
"IsTrash": false}) == 0 { // 不包含trash
|
if db.Count(db.Notes, bson.M{"NotebookId": bson.ObjectIdHex(notebookId),
|
||||||
return db.DeleteByIdAndUserId(db.Notebooks, notebookId, userId), ""
|
"UserId": bson.ObjectIdHex(userId),
|
||||||
|
"IsTrash": false}) == 0 { // 不包含trash
|
||||||
|
return db.DeleteByIdAndUserId(db.Notebooks, notebookId, userId), ""
|
||||||
|
}
|
||||||
|
return false, "笔记本下有笔记"
|
||||||
|
} else {
|
||||||
|
return false, "笔记本下有子笔记本"
|
||||||
}
|
}
|
||||||
return false, "笔记本下有笔记"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 排序
|
// 排序
|
||||||
|
@ -923,7 +923,7 @@ function log(o) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="js/jquery-1.9.0.min.js"></script>
|
<script src="js/jquery-1.9.0.min.js"></script>
|
||||||
<script src="js/jquery.ztree.all-3.5.min.js"></script>
|
<script src="js/jquery.ztree.all-3.5.js"></script>
|
||||||
<script src="js/i18n/msg.{{.locale}}.js"></script>
|
<script src="js/i18n/msg.{{.locale}}.js"></script>
|
||||||
<script src="js/common.js"></script>
|
<script src="js/common.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@ -15,7 +15,7 @@ website: http://code.google.com/p/jquerytree/
|
|||||||
.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
|
.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
|
||||||
|
|
||||||
.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
|
.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
|
||||||
text-decoration:none; vertical-align:top; display: inline-block}
|
text-decoration:none; vertical-align:top; display: block}
|
||||||
.ztree li a:hover {text-decoration:underline}
|
.ztree li a:hover {text-decoration:underline}
|
||||||
.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
|
.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
|
||||||
.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
|
.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
|
||||||
@ -27,8 +27,7 @@ website: http://code.google.com/p/jquerytree/
|
|||||||
}
|
}
|
||||||
.ztree li a.tmpTargetNode_prev {}
|
.ztree li a.tmpTargetNode_prev {}
|
||||||
.ztree li a.tmpTargetNode_next {}
|
.ztree li a.tmpTargetNode_next {}
|
||||||
.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
|
|
||||||
font-size:12px; border:1px #7EC4CC solid; *border:0px}
|
|
||||||
.ztree li span {line-height:16px; margin-right:2px}
|
.ztree li span {line-height:16px; margin-right:2px}
|
||||||
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
|
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
|
||||||
border:0 none; cursor: pointer;outline:none;
|
border:0 none; cursor: pointer;outline:none;
|
||||||
@ -106,7 +105,10 @@ ul.ztree.zTreeDragUL {z-index: 333;margin:0; padding:0; position:absolute; width
|
|||||||
|
|
||||||
.ztree li ul{ margin:0; padding:0}
|
.ztree li ul{ margin:0; padding:0}
|
||||||
.ztree li {line-height:30px;}
|
.ztree li {line-height:30px;}
|
||||||
.ztree li a {width:200px;height:30px;padding-top: 0px;}
|
.ztree > li {
|
||||||
|
border-bottom: 1px dashed #eee;
|
||||||
|
}
|
||||||
|
.ztree li a {height:30px;padding-top: 0px;}
|
||||||
.ztree li a:hover {text-decoration:none; background-color: #E7E7E7;}
|
.ztree li a:hover {text-decoration:none; background-color: #E7E7E7;}
|
||||||
.ztree li a span.button.switch {visibility:hidden}
|
.ztree li a span.button.switch {visibility:hidden}
|
||||||
.ztree.showIcon li a span.button.switch {visibility:visible}
|
.ztree.showIcon li a span.button.switch {visibility:visible}
|
||||||
@ -123,4 +125,15 @@ ul.ztree.zTreeDragUL {z-index: 333;margin:0; padding:0; position:absolute; width
|
|||||||
.ztree li span.button.noline_open {background-position: 0 0;}
|
.ztree li span.button.noline_open {background-position: 0 0;}
|
||||||
.ztree li span.button.noline_close {background-position: -18px 0;}
|
.ztree li span.button.noline_close {background-position: -18px 0;}
|
||||||
.ztree li span.button.noline_open.level0 {background-position: 0 -18px;}
|
.ztree li span.button.noline_open.level0 {background-position: 0 -18px;}
|
||||||
.ztree li span.button.noline_close.level0 {background-position: -18px -18px;}
|
.ztree li span.button.noline_close.level0 {background-position: -18px -18px;}
|
||||||
|
|
||||||
|
/* life */
|
||||||
|
.ztree .tree-title {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
|
||||||
|
font-size:12px; border:1px #7EC4CC solid; *border:0px}
|
||||||
|
*/
|
||||||
|
.ztree li a.curSelectedNode_Edit input {
|
||||||
|
}
|
||||||
|
@ -51,6 +51,7 @@ Notebook.curNotebookIsTrashOrAll = function() {
|
|||||||
return Notebook.curNotebookId == Notebook.trashNotebookId || Notebook.curNotebookId == Notebook.allNotebookId ;
|
return Notebook.curNotebookId == Notebook.trashNotebookId || Notebook.curNotebookId == Notebook.allNotebookId ;
|
||||||
}
|
}
|
||||||
Notebook.renderNotebooks = function(notebooks) {
|
Notebook.renderNotebooks = function(notebooks) {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) {
|
if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) {
|
||||||
notebooks = [];
|
notebooks = [];
|
||||||
@ -75,7 +76,7 @@ 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];
|
||||||
var parentNode;
|
var parentNode;
|
||||||
var treeObj = $.fn.zTree.getZTreeObj("notebookList");
|
var treeObj = self.tree;
|
||||||
var ajaxData = {curNotebookId: treeNode.NotebookId};
|
var ajaxData = {curNotebookId: treeNode.NotebookId};
|
||||||
|
|
||||||
// 成为子节点, 那么只需要得到targetNode下所有的子结点即可
|
// 成为子节点, 那么只需要得到targetNode下所有的子结点即可
|
||||||
@ -120,6 +121,7 @@ Notebook.renderNotebooks = function(notebooks) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var setting = {
|
var setting = {
|
||||||
|
|
||||||
view: {
|
view: {
|
||||||
showLine: false,
|
showLine: false,
|
||||||
showIcon: false,
|
showIcon: false,
|
||||||
@ -151,12 +153,39 @@ Notebook.renderNotebooks = function(notebooks) {
|
|||||||
onClick: function(e, treeId, treeNode) {
|
onClick: function(e, treeId, treeNode) {
|
||||||
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) {
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.zTree.init($("#notebookList"), setting, notebooks);
|
self.tree = $.fn.zTree.init($("#notebookList"), setting, notebooks);
|
||||||
|
|
||||||
|
// 展开/折叠图标
|
||||||
var $notebookList = $("#notebookList");
|
var $notebookList = $("#notebookList");
|
||||||
$notebookList.hover(function () {
|
$notebookList.hover(function () {
|
||||||
if (!$notebookList.hasClass("showIcon")) {
|
if (!$notebookList.hasClass("showIcon")) {
|
||||||
@ -166,16 +195,10 @@ Notebook.renderNotebooks = function(notebooks) {
|
|||||||
$notebookList.removeClass("showIcon");
|
$notebookList.removeClass("showIcon");
|
||||||
});
|
});
|
||||||
|
|
||||||
var nav = "";
|
// 缓存所有notebooks信息
|
||||||
for(var i in notebooks) {
|
if(!isEmpty(notebooks)) {
|
||||||
var notebook = notebooks[i];
|
Notebook.curNotebookId = notebooks[0].NotebookId;
|
||||||
Notebook.cache[notebook.NotebookId] = notebook;
|
self.cacheAllNotebooks(notebooks);
|
||||||
var classes = "";
|
|
||||||
if(i == 0) {
|
|
||||||
classes = "active";
|
|
||||||
Notebook.curNotebookId = notebook.NotebookId;
|
|
||||||
}
|
|
||||||
// $notebookList.append(t('<li><a class="?" notebookId="?">?</a></li>', classes, notebook.NotebookId, notebook.Title))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染nav
|
// 渲染nav
|
||||||
@ -185,6 +208,18 @@ Notebook.renderNotebooks = function(notebooks) {
|
|||||||
Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId);
|
Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Notebook.cacheAllNotebooks = function(notebooks) {
|
||||||
|
var self = this;
|
||||||
|
for(var i in notebooks) {
|
||||||
|
var notebook = notebooks[i];
|
||||||
|
Notebook.cache[notebook.NotebookId] = notebook;
|
||||||
|
if(!isEmpty(notebook.Subs)) {
|
||||||
|
self.cacheAllNotebooks(notebook.Subs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// RenderNotebooks调用,
|
// RenderNotebooks调用,
|
||||||
// nav 为了新建, 快速选择, 移动笔记
|
// nav 为了新建, 快速选择, 移动笔记
|
||||||
// 这些在添加,修改,删除notebooks都要变动!!!
|
// 这些在添加,修改,删除notebooks都要变动!!!
|
||||||
@ -223,21 +258,23 @@ Notebook.changeNav = function() {
|
|||||||
$list.each(function() {
|
$list.each(function() {
|
||||||
var notebookId = $(this).attr("notebookId");
|
var notebookId = $(this).attr("notebookId");
|
||||||
var notebook = Notebook.cache[notebookId];
|
var notebook = Notebook.cache[notebookId];
|
||||||
var each = t('<li role="presentation"><a role="menuitem" tabindex="-1" href="#" notebookId="?">?</a></li>', notebook.NotebookId, notebook.Title);
|
if(notebook) {
|
||||||
var eachForNew = t('<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="?">Markdown</div></li>', notebook.NotebookId, notebook.Title, notebook.NotebookId);
|
var each = t('<li role="presentation"><a role="menuitem" tabindex="-1" href="#" notebookId="?">?</a></li>', notebook.NotebookId, notebook.Title);
|
||||||
|
var eachForNew = t('<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="?">Markdown</div></li>', notebook.NotebookId, notebook.Title, notebook.NotebookId);
|
||||||
navForListNote += each;
|
|
||||||
var isActive = $(this).hasClass('active'); // 万一修改的是已选择的, 那么...
|
navForListNote += each;
|
||||||
if(isActive) {
|
var isActive = $(this).hasClass('active'); // 万一修改的是已选择的, 那么...
|
||||||
$("#curNotebookForListNote").html(notebook.Title);
|
|
||||||
}
|
|
||||||
if(i != 0 && i != len) {
|
|
||||||
navForNewNote += eachForNew;
|
|
||||||
if(isActive) {
|
if(isActive) {
|
||||||
$("#curNotebookForNewNote").html(notebook.Title);
|
$("#curNotebookForListNote").html(notebook.Title);
|
||||||
}
|
}
|
||||||
|
if(i != 0 && i != len) {
|
||||||
|
navForNewNote += eachForNew;
|
||||||
|
if(isActive) {
|
||||||
|
$("#curNotebookForNewNote").html(notebook.Title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#notebookNavForListNote").html(navForListNote);
|
$("#notebookNavForListNote").html(navForListNote);
|
||||||
@ -517,29 +554,24 @@ Notebook.setNotebook2Blog = function(target) {
|
|||||||
|
|
||||||
// 修改笔记本标题
|
// 修改笔记本标题
|
||||||
Notebook.updateNotebookTitle = function(target) {
|
Notebook.updateNotebookTitle = function(target) {
|
||||||
|
var self = Notebook;
|
||||||
|
var notebookId = $(target).attr("notebookId");
|
||||||
|
self.tree.editName(self.tree.getNodeByTId(notebookId));
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
var notebookTitle = $(target).text();
|
var notebookTitle = $(target).text();
|
||||||
var id = "editNotebookTitle";
|
var id = "editNotebookTitle";
|
||||||
$(target).html(t('<input type="text" value="?" everValue="?" id="?" notebookId="?"/>', notebookTitle, notebookTitle, id, $(target).attr("notebookId")));
|
$(target).html(t('<input type="text" value="?" everValue="?" id="?" notebookId="?"/>', notebookTitle, notebookTitle, id, $(target).attr("notebookId")));
|
||||||
$("#" + id).focus();
|
$("#" + id).focus();
|
||||||
}
|
}
|
||||||
Notebook.doUpdateNotebookTitle = function() {
|
Notebook.doUpdateNotebookTitle = function(notebookId, newTitle) {
|
||||||
var title = $(this).val();
|
ajaxPost("/notebook/updateNotebookTitle", {notebookId: notebookId, title: newTitle}, function(ret) {
|
||||||
var everTitle = $(this).attr("everTitle");
|
// 修改缓存
|
||||||
var notebookId = $(this).attr("notebookId");
|
Notebook.cache[notebookId].Title = newTitle;
|
||||||
|
// 改变nav
|
||||||
if(!title) {
|
Notebook.changeNav();
|
||||||
title = everTitle;
|
});
|
||||||
}
|
|
||||||
$(this).parent().html(title);
|
|
||||||
|
|
||||||
if(title != everTitle) {
|
|
||||||
ajaxPost("/notebook/updateNotebookTitle", {notebookId: notebookId, title: title}, function(ret) {
|
|
||||||
// 修改缓存
|
|
||||||
Notebook.cache[notebookId].Title = title;
|
|
||||||
// 改变nav
|
|
||||||
Notebook.changeNav();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------
|
//-----------
|
||||||
@ -548,47 +580,53 @@ Notebook.doUpdateNotebookTitle = function() {
|
|||||||
// 2 在所有后面添加<li></li>
|
// 2 在所有后面添加<li></li>
|
||||||
Notebook.addNotebookSeq = 1; // inputId
|
Notebook.addNotebookSeq = 1; // inputId
|
||||||
Notebook.addNotebook = function() {
|
Notebook.addNotebook = function() {
|
||||||
|
var self = Notebook;
|
||||||
if($("#myNotebooks").hasClass("closed")) {
|
if($("#myNotebooks").hasClass("closed")) {
|
||||||
$("#myNotebooks .folderHeader").trigger("click");
|
$("#myNotebooks .folderHeader").trigger("click");
|
||||||
}
|
}
|
||||||
var inputId = "newNotebookInput" + Notebook.addNotebookSeq;
|
|
||||||
Notebook.addNotebookSeq++;
|
|
||||||
$("#notebookList li").eq(0).after(t('<li><a><input id="?"/></a></li>', inputId));
|
|
||||||
|
|
||||||
$("#" + inputId).focus();
|
// 添加并修改
|
||||||
|
self.tree.addNodes(null, {Title: "", NotebookId: getObjectId(), IsNew: true}, true, true);
|
||||||
// 回车调用blur
|
}
|
||||||
enterBlur("#" + inputId);
|
|
||||||
$("#" + inputId).blur(function() {
|
// rename 调用
|
||||||
// 为防多次发生blur
|
Notebook.doAddNotebook = function(notebookId, title, parentNotebookId) {
|
||||||
$(this).unbind("blur");
|
var self = Notebook;
|
||||||
|
ajaxPost("/notebook/addNotebook", {notebookId: notebookId, title: title, parentNotebookId: parentNotebookId}, function(ret) {
|
||||||
var title = $(this).val();
|
if(ret.NotebookId) {
|
||||||
if(!title) {
|
Notebook.cache[ret.NotebookId] = ret;
|
||||||
$(this).parent().parent().remove();
|
var notebook = self.tree.getNodeByTId(notebookId);
|
||||||
} else {
|
$.extend(notebook, ret);
|
||||||
// 添加之
|
notebook.IsNew = false;
|
||||||
var notebookId = getObjectId();
|
|
||||||
var $a = $(this).parent();
|
// 选中之
|
||||||
ajaxPost("/notebook/addNotebook", {notebookId: notebookId, title: title}, function(ret) {
|
Notebook.changeNotebook(notebookId);
|
||||||
if(ret.NotebookId) {
|
|
||||||
Notebook.cache[ret.NotebookId] = ret;
|
// 改变nav
|
||||||
$a.attr("notebookId", notebookId);
|
Notebook.changeNav();
|
||||||
$a.html(title);
|
|
||||||
// 选中之
|
|
||||||
Notebook.changeNotebook(notebookId);
|
|
||||||
|
|
||||||
// 改变nav
|
|
||||||
Notebook.changeNav();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------
|
||||||
|
// 添加子笔记本
|
||||||
|
Notebook.addChildNotebook = function(target) {
|
||||||
|
var self = Notebook;
|
||||||
|
if($("#myNotebooks").hasClass("closed")) {
|
||||||
|
$("#myNotebooks .folderHeader").trigger("click");
|
||||||
|
}
|
||||||
|
|
||||||
|
var notebookId = $(target).attr("notebookId");
|
||||||
|
|
||||||
|
// 添加并修改
|
||||||
|
self.tree.addNodes(self.tree.getNodeByTId(notebookId), {Title: "", NotebookId: getObjectId(), IsNew: true}, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------
|
//-------------
|
||||||
// 删除
|
// 删除
|
||||||
Notebook.deleteNotebook = function(target) {
|
Notebook.deleteNotebook = function(target) {
|
||||||
|
var self = Notebook;
|
||||||
|
|
||||||
var notebookId = $(target).attr("notebookId");
|
var notebookId = $(target).attr("notebookId");
|
||||||
if(!notebookId) {
|
if(!notebookId) {
|
||||||
return;
|
return;
|
||||||
@ -596,8 +634,12 @@ Notebook.deleteNotebook = function(target) {
|
|||||||
|
|
||||||
ajaxGet("/notebook/deleteNotebook", {notebookId: notebookId}, function(ret) {
|
ajaxGet("/notebook/deleteNotebook", {notebookId: notebookId}, function(ret) {
|
||||||
if(ret.Ok) {
|
if(ret.Ok) {
|
||||||
|
/*
|
||||||
$(target).parent().remove();
|
$(target).parent().remove();
|
||||||
|
*/
|
||||||
|
self.tree.removeNode(self.tree.getNodeByTId(notebookId));
|
||||||
delete Notebook.cache[notebookId];
|
delete Notebook.cache[notebookId];
|
||||||
|
|
||||||
// 改变nav
|
// 改变nav
|
||||||
Notebook.changeNav();
|
Notebook.changeNav();
|
||||||
} else {
|
} else {
|
||||||
@ -621,6 +663,12 @@ $(function() {
|
|||||||
Notebook.changeNotebook(notebookId);
|
Notebook.changeNotebook(notebookId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 修改笔记本标题, blur后修改标题之
|
||||||
|
/*
|
||||||
|
enterBlur("#notebookList", "input#editNotebookTitle");
|
||||||
|
$("#notebookList").on("blur", "input#editNotebookTitle", Notebook.doUpdateNotebookTitle);
|
||||||
|
*/
|
||||||
|
|
||||||
//-------------------
|
//-------------------
|
||||||
// 右键菜单
|
// 右键菜单
|
||||||
var notebookListMenu = {
|
var notebookListMenu = {
|
||||||
@ -631,6 +679,7 @@ $(function() {
|
|||||||
{ text: "公开为博客", alias: 'set2Blog', icon: "", action: Notebook.setNotebook2Blog },
|
{ text: "公开为博客", alias: 'set2Blog', icon: "", action: Notebook.setNotebook2Blog },
|
||||||
{ text: "取消公开为博客", alias: 'unset2Blog', icon: "", action: Notebook.setNotebook2Blog }, // Unset
|
{ text: "取消公开为博客", alias: 'unset2Blog', icon: "", action: Notebook.setNotebook2Blog }, // Unset
|
||||||
{ type: "splitLine" },
|
{ type: "splitLine" },
|
||||||
|
{ text: "添加子笔记本", icon: "", action: Notebook.addChildNotebook },
|
||||||
{ text: "重命名", icon: "", action: Notebook.updateNotebookTitle },
|
{ text: "重命名", icon: "", action: Notebook.updateNotebookTitle },
|
||||||
{ text: "删除", icon: "", alias: 'delete', faIcon: "fa-trash-o", action: Notebook.deleteNotebook }
|
{ text: "删除", icon: "", alias: 'delete', faIcon: "fa-trash-o", action: Notebook.deleteNotebook }
|
||||||
],
|
],
|
||||||
@ -640,16 +689,13 @@ $(function() {
|
|||||||
children: "li a"
|
children: "li a"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改笔记本标题, blur后修改标题之
|
|
||||||
enterBlur("#notebookList", "input#editNotebookTitle");
|
|
||||||
$("#notebookList").on("blur", "input#editNotebookTitle", Notebook.doUpdateNotebookTitle);
|
|
||||||
|
|
||||||
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];
|
||||||
if(!notebook) {
|
if(!notebook) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// disabled的items
|
||||||
var items = [];
|
var items = [];
|
||||||
// 是否已公开为blog
|
// 是否已公开为blog
|
||||||
if(!notebook.IsBlog) {
|
if(!notebook.IsBlog) {
|
||||||
|
@ -226,6 +226,7 @@ LEA.cmroot = 1;
|
|||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// bind event
|
||||||
var me = $(option.parent).on('contextmenu', option.children, function(e) {
|
var me = $(option.parent).on('contextmenu', option.children, function(e) {
|
||||||
var bShowContext = (option.onContextMenu && $.isFunction(option.onContextMenu)) ? option.onContextMenu.call(this, e) : true;
|
var bShowContext = (option.onContextMenu && $.isFunction(option.onContextMenu)) ? option.onContextMenu.call(this, e) : true;
|
||||||
if (bShowContext) {
|
if (bShowContext) {
|
||||||
@ -234,6 +235,8 @@ LEA.cmroot = 1;
|
|||||||
}
|
}
|
||||||
root.showMenu(e, this);
|
root.showMenu(e, this);
|
||||||
}
|
}
|
||||||
|
// 阻止冒泡, 默认事件
|
||||||
|
e.preventDefault();
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user